import * as core from "@terrascript/core"; export interface SourceVpcArgs extends core.SchemaArgs { arn: string | core.StringOut; id: string | core.StringOut; name: string | core.StringOut; } export class SourceVpc extends core.Schema { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; } export interface VpcArgs extends core.SchemaArgs { arn: string | core.StringOut; id: string | core.StringOut; name: string | core.StringOut; } export class Vpc extends core.Schema { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; } export interface ComponentArgs extends core.SchemaArgs { arn: string | core.StringOut; id: string | core.StringOut; name: string | core.StringOut; } export class Component extends core.Schema { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; } export interface TransitGatewayRouteTableRouteArgs extends core.SchemaArgs { attachmentId: string | core.StringOut; destinationCidr: string | core.StringOut; prefixListId: string | core.StringOut; resourceId: string | core.StringOut; resourceType: string | core.StringOut; routeOrigin: string | core.StringOut; state: string | core.StringOut; } export class TransitGatewayRouteTableRoute extends core.Schema { @core.attr(String, { computed: true }) public attachmentId!: string | core.StringOut; @core.attr(String, { computed: true }) public destinationCidr!: string | core.StringOut; @core.attr(String, { computed: true }) public prefixListId!: string | core.StringOut; @core.attr(String, { computed: true }) public resourceId!: string | core.StringOut; @core.attr(String, { computed: true }) public resourceType!: string | core.StringOut; @core.attr(String, { computed: true }) public routeOrigin!: string | core.StringOut; @core.attr(String, { computed: true }) public state!: string | core.StringOut; } export interface SourcePortRangesArgs extends core.SchemaArgs { from: number | core.NumberOut; to: number | core.NumberOut; } export class SourcePortRanges extends core.Schema { @core.attr(Number, { computed: true }) public from!: number | core.NumberOut; @core.attr(Number, { computed: true }) public to!: number | core.NumberOut; } export interface DestinationPortRangesArgs extends core.SchemaArgs { from: number | core.NumberOut; to: number | core.NumberOut; } export class DestinationPortRanges extends core.Schema { @core.attr(Number, { computed: true }) public from!: number | core.NumberOut; @core.attr(Number, { computed: true }) public to!: number | core.NumberOut; } export interface OutboundHeaderArgs extends core.SchemaArgs { destinationAddresses: core.Array | core.ArrayOut; destinationPortRanges: | core.Array | core.ArrayOut; protocol: string | core.StringOut; sourceAddresses: core.Array | core.ArrayOut; sourcePortRanges: | core.Array | core.ArrayOut; } export class OutboundHeader extends core.Schema { @core.attr(String, { computed: true, kind: "array" }) public destinationAddresses!: | core.Array | core.ArrayOut; @core.attr(DestinationPortRanges, { computed: true, kind: "array" }) public destinationPortRanges!: | core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public protocol!: string | core.StringOut; @core.attr(String, { computed: true, kind: "array" }) public sourceAddresses!: core.Array | core.ArrayOut; @core.attr(SourcePortRanges, { computed: true, kind: "array" }) public sourcePortRanges!: | core.Array | core.ArrayOut; } export interface PortRangeArgs extends core.SchemaArgs { from: number | core.NumberOut; to: number | core.NumberOut; } export class PortRange extends core.Schema { @core.attr(Number, { computed: true }) public from!: number | core.NumberOut; @core.attr(Number, { computed: true }) public to!: number | core.NumberOut; } export interface SecurityGroupRuleArgs extends core.SchemaArgs { cidr: string | core.StringOut; direction: string | core.StringOut; portRange: core.Array | core.ArrayOut; prefixListId: string | core.StringOut; protocol: string | core.StringOut; securityGroupId: string | core.StringOut; } export class SecurityGroupRule extends core.Schema { @core.attr(String, { computed: true }) public cidr!: string | core.StringOut; @core.attr(String, { computed: true }) public direction!: string | core.StringOut; @core.attr(PortRange, { computed: true, kind: "array" }) public portRange!: core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public prefixListId!: string | core.StringOut; @core.attr(String, { computed: true }) public protocol!: string | core.StringOut; @core.attr(String, { computed: true }) public securityGroupId!: string | core.StringOut; } export interface AdditionalDetailsArgs extends core.SchemaArgs { additionalDetailType: string | core.StringOut; component: core.Array | core.ArrayOut; } export class AdditionalDetails extends core.Schema { @core.attr(String, { computed: true }) public additionalDetailType!: string | core.StringOut; @core.attr(Component, { computed: true, kind: "array" }) public component!: core.Array | core.ArrayOut; } export interface DestinationVpcArgs extends core.SchemaArgs { arn: string | core.StringOut; id: string | core.StringOut; name: string | core.StringOut; } export class DestinationVpc extends core.Schema { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; } export interface RouteTableRouteArgs extends core.SchemaArgs { destinationCidr: string | core.StringOut; destinationPrefixListId: string | core.StringOut; egressOnlyInternetGatewayId: string | core.StringOut; gatewayId: string | core.StringOut; instanceId: string | core.StringOut; natGatewayId: string | core.StringOut; networkInterfaceId: string | core.StringOut; origin: string | core.StringOut; transitGatewayId: string | core.StringOut; vpcPeeringConnectionId: string | core.StringOut; } export class RouteTableRoute extends core.Schema { @core.attr(String, { computed: true }) public destinationCidr!: string | core.StringOut; @core.attr(String, { computed: true }) public destinationPrefixListId!: string | core.StringOut; @core.attr(String, { computed: true }) public egressOnlyInternetGatewayId!: string | core.StringOut; @core.attr(String, { computed: true }) public gatewayId!: string | core.StringOut; @core.attr(String, { computed: true }) public instanceId!: string | core.StringOut; @core.attr(String, { computed: true }) public natGatewayId!: string | core.StringOut; @core.attr(String, { computed: true }) public networkInterfaceId!: string | core.StringOut; @core.attr(String, { computed: true }) public origin!: string | core.StringOut; @core.attr(String, { computed: true }) public transitGatewayId!: string | core.StringOut; @core.attr(String, { computed: true }) public vpcPeeringConnectionId!: string | core.StringOut; } export interface AttachedToArgs extends core.SchemaArgs { arn: string | core.StringOut; id: string | core.StringOut; name: string | core.StringOut; } export class AttachedTo extends core.Schema { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; } export interface TransitGatewayArgs extends core.SchemaArgs { arn: string | core.StringOut; id: string | core.StringOut; name: string | core.StringOut; } export class TransitGateway extends core.Schema { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; } export interface AclRuleArgs extends core.SchemaArgs { cidr: string | core.StringOut; egress: boolean | core.BooleanOut; portRange: core.Array | core.ArrayOut; protocol: string | core.StringOut; ruleAction: string | core.StringOut; ruleNumber: number | core.NumberOut; } export class AclRule extends core.Schema { @core.attr(String, { computed: true }) public cidr!: string | core.StringOut; @core.attr(Boolean, { computed: true }) public egress!: boolean | core.BooleanOut; @core.attr(PortRange, { computed: true, kind: "array" }) public portRange!: core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public protocol!: string | core.StringOut; @core.attr(String, { computed: true }) public ruleAction!: string | core.StringOut; @core.attr(Number, { computed: true }) public ruleNumber!: number | core.NumberOut; } export interface InboundHeaderArgs extends core.SchemaArgs { destinationAddresses: core.Array | core.ArrayOut; destinationPortRanges: | core.Array | core.ArrayOut; protocol: string | core.StringOut; sourceAddresses: core.Array | core.ArrayOut; sourcePortRanges: | core.Array | core.ArrayOut; } export class InboundHeader extends core.Schema { @core.attr(String, { computed: true, kind: "array" }) public destinationAddresses!: | core.Array | core.ArrayOut; @core.attr(DestinationPortRanges, { computed: true, kind: "array" }) public destinationPortRanges!: | core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public protocol!: string | core.StringOut; @core.attr(String, { computed: true, kind: "array" }) public sourceAddresses!: core.Array | core.ArrayOut; @core.attr(SourcePortRanges, { computed: true, kind: "array" }) public sourcePortRanges!: | core.Array | core.ArrayOut; } export interface SubnetArgs extends core.SchemaArgs { arn: string | core.StringOut; id: string | core.StringOut; name: string | core.StringOut; } export class Subnet extends core.Schema { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; } export interface ReturnPathComponentsArgs extends core.SchemaArgs { aclRule: core.Array | core.ArrayOut; additionalDetails: | core.Array | core.ArrayOut; attachedTo: core.Array | core.ArrayOut; component: core.Array | core.ArrayOut; destinationVpc: core.Array | core.ArrayOut; inboundHeader: core.Array | core.ArrayOut; outboundHeader: core.Array | core.ArrayOut; routeTableRoute: core.Array | core.ArrayOut; securityGroupRule: | core.Array | core.ArrayOut; sequenceNumber: number | core.NumberOut; sourceVpc: core.Array | core.ArrayOut; subnet: core.Array | core.ArrayOut; transitGateway: core.Array | core.ArrayOut; transitGatewayRouteTableRoute: | core.Array | core.ArrayOut; vpc: core.Array | core.ArrayOut; } export class ReturnPathComponents extends core.Schema { @core.attr(AclRule, { computed: true, kind: "array" }) public aclRule!: core.Array | core.ArrayOut; @core.attr(AdditionalDetails, { computed: true, kind: "array" }) public additionalDetails!: | core.Array | core.ArrayOut; @core.attr(AttachedTo, { computed: true, kind: "array" }) public attachedTo!: core.Array | core.ArrayOut; @core.attr(Component, { computed: true, kind: "array" }) public component!: core.Array | core.ArrayOut; @core.attr(DestinationVpc, { computed: true, kind: "array" }) public destinationVpc!: | core.Array | core.ArrayOut; @core.attr(InboundHeader, { computed: true, kind: "array" }) public inboundHeader!: | core.Array | core.ArrayOut; @core.attr(OutboundHeader, { computed: true, kind: "array" }) public outboundHeader!: | core.Array | core.ArrayOut; @core.attr(RouteTableRoute, { computed: true, kind: "array" }) public routeTableRoute!: | core.Array | core.ArrayOut; @core.attr(SecurityGroupRule, { computed: true, kind: "array" }) public securityGroupRule!: | core.Array | core.ArrayOut; @core.attr(Number, { computed: true }) public sequenceNumber!: number | core.NumberOut; @core.attr(SourceVpc, { computed: true, kind: "array" }) public sourceVpc!: core.Array | core.ArrayOut; @core.attr(Subnet, { computed: true, kind: "array" }) public subnet!: core.Array | core.ArrayOut; @core.attr(TransitGateway, { computed: true, kind: "array" }) public transitGateway!: | core.Array | core.ArrayOut; @core.attr(TransitGatewayRouteTableRoute, { computed: true, kind: "array" }) public transitGatewayRouteTableRoute!: | core.Array | core.ArrayOut; @core.attr(Vpc, { computed: true, kind: "array" }) public vpc!: core.Array | core.ArrayOut; } export interface VpnGatewayArgs extends core.SchemaArgs { arn: string | core.StringOut; id: string | core.StringOut; name: string | core.StringOut; } export class VpnGateway extends core.Schema { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; } export interface TransitGatewayAttachmentArgs extends core.SchemaArgs { arn: string | core.StringOut; id: string | core.StringOut; name: string | core.StringOut; } export class TransitGatewayAttachment extends core.Schema { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; } export interface VpnConnectionArgs extends core.SchemaArgs { arn: string | core.StringOut; id: string | core.StringOut; name: string | core.StringOut; } export class VpnConnection extends core.Schema { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; } export interface ElasticLoadBalancerListenerArgs extends core.SchemaArgs { arn: string | core.StringOut; id: string | core.StringOut; name: string | core.StringOut; } export class ElasticLoadBalancerListener extends core.Schema { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; } export interface TransitGatewayRouteTableArgs extends core.SchemaArgs { arn: string | core.StringOut; id: string | core.StringOut; name: string | core.StringOut; } export class TransitGatewayRouteTable extends core.Schema { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; } export interface VpcEndpointArgs extends core.SchemaArgs { arn: string | core.StringOut; id: string | core.StringOut; name: string | core.StringOut; } export class VpcEndpoint extends core.Schema { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; } export interface IngressRouteTableArgs extends core.SchemaArgs { arn: string | core.StringOut; id: string | core.StringOut; name: string | core.StringOut; } export class IngressRouteTable extends core.Schema { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; } export interface SubnetRouteTableArgs extends core.SchemaArgs { arn: string | core.StringOut; id: string | core.StringOut; name: string | core.StringOut; } export class SubnetRouteTable extends core.Schema { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; } export interface ClassicLoadBalancerListenerArgs extends core.SchemaArgs { instancePort: number | core.NumberOut; loadBalancerPort: number | core.NumberOut; } export class ClassicLoadBalancerListener extends core.Schema { @core.attr(Number, { computed: true }) public instancePort!: number | core.NumberOut; @core.attr(Number, { computed: true }) public loadBalancerPort!: number | core.NumberOut; } export interface SecurityGroupArgs extends core.SchemaArgs { arn: string | core.StringOut; id: string | core.StringOut; name: string | core.StringOut; } export class SecurityGroup extends core.Schema { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; } export interface CustomerGatewayArgs extends core.SchemaArgs { arn: string | core.StringOut; id: string | core.StringOut; name: string | core.StringOut; } export class CustomerGateway extends core.Schema { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; } export interface RouteTableArgs extends core.SchemaArgs { arn: string | core.StringOut; id: string | core.StringOut; name: string | core.StringOut; } export class RouteTable extends core.Schema { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; } export interface DestinationArgs extends core.SchemaArgs { arn: string | core.StringOut; id: string | core.StringOut; name: string | core.StringOut; } export class Destination extends core.Schema { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; } export interface LoadBalancerTargetGroupArgs extends core.SchemaArgs { arn: string | core.StringOut; id: string | core.StringOut; name: string | core.StringOut; } export class LoadBalancerTargetGroup extends core.Schema { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; } export interface LoadBalancerTargetGroupsArgs extends core.SchemaArgs { arn: string | core.StringOut; id: string | core.StringOut; name: string | core.StringOut; } export class LoadBalancerTargetGroups extends core.Schema { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; } export interface NatGatewayArgs extends core.SchemaArgs { arn: string | core.StringOut; id: string | core.StringOut; name: string | core.StringOut; } export class NatGateway extends core.Schema { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; } export interface AclArgs extends core.SchemaArgs { arn: string | core.StringOut; id: string | core.StringOut; name: string | core.StringOut; } export class Acl extends core.Schema { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; } export interface NetworkInterfaceArgs extends core.SchemaArgs { arn: string | core.StringOut; id: string | core.StringOut; name: string | core.StringOut; } export class NetworkInterface extends core.Schema { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; } export interface PrefixListArgs extends core.SchemaArgs { arn: string | core.StringOut; id: string | core.StringOut; name: string | core.StringOut; } export class PrefixList extends core.Schema { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; } export interface VpcPeeringConnectionArgs extends core.SchemaArgs { arn: string | core.StringOut; id: string | core.StringOut; name: string | core.StringOut; } export class VpcPeeringConnection extends core.Schema { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; } export interface PortRangesArgs extends core.SchemaArgs { from: number | core.NumberOut; to: number | core.NumberOut; } export class PortRanges extends core.Schema { @core.attr(Number, { computed: true }) public from!: number | core.NumberOut; @core.attr(Number, { computed: true }) public to!: number | core.NumberOut; } export interface SecurityGroupsArgs extends core.SchemaArgs { arn: string | core.StringOut; id: string | core.StringOut; name: string | core.StringOut; } export class SecurityGroups extends core.Schema { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; } export interface InternetGatewayArgs extends core.SchemaArgs { arn: string | core.StringOut; id: string | core.StringOut; name: string | core.StringOut; } export class InternetGateway extends core.Schema { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; } export interface ExplanationsArgs extends core.SchemaArgs { acl: core.Array | core.ArrayOut; aclRule: core.Array | core.ArrayOut; address: string | core.StringOut; addresses: core.Array | core.ArrayOut; attachedTo: core.Array | core.ArrayOut; availabilityZones: core.Array | core.ArrayOut; cidrs: core.Array | core.ArrayOut; classicLoadBalancerListener: | core.Array | core.ArrayOut; component: core.Array | core.ArrayOut; customerGateway: core.Array | core.ArrayOut; destination: core.Array | core.ArrayOut; destinationVpc: core.Array | core.ArrayOut; direction: string | core.StringOut; elasticLoadBalancerListener: | core.Array | core.ArrayOut; explanationCode: string | core.StringOut; ingressRouteTable: | core.Array | core.ArrayOut; internetGateway: core.Array | core.ArrayOut; loadBalancerArn: string | core.StringOut; loadBalancerListenerPort: number | core.NumberOut; loadBalancerTargetGroup: | core.Array | core.ArrayOut; loadBalancerTargetGroups: | core.Array | core.ArrayOut; loadBalancerTargetPort: number | core.NumberOut; missingComponent: string | core.StringOut; natGateway: core.Array | core.ArrayOut; networkInterface: | core.Array | core.ArrayOut; packetField: string | core.StringOut; port: number | core.NumberOut; portRanges: core.Array | core.ArrayOut; prefixList: core.Array | core.ArrayOut; protocols: core.Array | core.ArrayOut; routeTable: core.Array | core.ArrayOut; routeTableRoute: core.Array | core.ArrayOut; securityGroup: core.Array | core.ArrayOut; securityGroupRule: | core.Array | core.ArrayOut; securityGroups: core.Array | core.ArrayOut; sourceVpc: core.Array | core.ArrayOut; state: string | core.StringOut; subnet: core.Array | core.ArrayOut; subnetRouteTable: | core.Array | core.ArrayOut; transitGateway: core.Array | core.ArrayOut; transitGatewayAttachment: | core.Array | core.ArrayOut; transitGatewayRouteTable: | core.Array | core.ArrayOut; transitGatewayRouteTableRoute: | core.Array | core.ArrayOut; vpc: core.Array | core.ArrayOut; vpcEndpoint: core.Array | core.ArrayOut; vpcPeeringConnection: | core.Array | core.ArrayOut; vpnConnection: core.Array | core.ArrayOut; vpnGateway: core.Array | core.ArrayOut; } export class Explanations extends core.Schema { @core.attr(Acl, { computed: true, kind: "array" }) public acl!: core.Array | core.ArrayOut; @core.attr(AclRule, { computed: true, kind: "array" }) public aclRule!: core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public address!: string | core.StringOut; @core.attr(String, { computed: true, kind: "array" }) public addresses!: core.Array | core.ArrayOut; @core.attr(AttachedTo, { computed: true, kind: "array" }) public attachedTo!: core.Array | core.ArrayOut; @core.attr(String, { computed: true, kind: "array" }) public availabilityZones!: core.Array | core.ArrayOut; @core.attr(String, { computed: true, kind: "array" }) public cidrs!: core.Array | core.ArrayOut; @core.attr(ClassicLoadBalancerListener, { computed: true, kind: "array" }) public classicLoadBalancerListener!: | core.Array | core.ArrayOut; @core.attr(Component, { computed: true, kind: "array" }) public component!: core.Array | core.ArrayOut; @core.attr(CustomerGateway, { computed: true, kind: "array" }) public customerGateway!: | core.Array | core.ArrayOut; @core.attr(Destination, { computed: true, kind: "array" }) public destination!: core.Array | core.ArrayOut; @core.attr(DestinationVpc, { computed: true, kind: "array" }) public destinationVpc!: | core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public direction!: string | core.StringOut; @core.attr(ElasticLoadBalancerListener, { computed: true, kind: "array" }) public elasticLoadBalancerListener!: | core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public explanationCode!: string | core.StringOut; @core.attr(IngressRouteTable, { computed: true, kind: "array" }) public ingressRouteTable!: | core.Array | core.ArrayOut; @core.attr(InternetGateway, { computed: true, kind: "array" }) public internetGateway!: | core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public loadBalancerArn!: string | core.StringOut; @core.attr(Number, { computed: true }) public loadBalancerListenerPort!: number | core.NumberOut; @core.attr(LoadBalancerTargetGroup, { computed: true, kind: "array" }) public loadBalancerTargetGroup!: | core.Array | core.ArrayOut; @core.attr(LoadBalancerTargetGroups, { computed: true, kind: "array" }) public loadBalancerTargetGroups!: | core.Array | core.ArrayOut; @core.attr(Number, { computed: true }) public loadBalancerTargetPort!: number | core.NumberOut; @core.attr(String, { computed: true }) public missingComponent!: string | core.StringOut; @core.attr(NatGateway, { computed: true, kind: "array" }) public natGateway!: core.Array | core.ArrayOut; @core.attr(NetworkInterface, { computed: true, kind: "array" }) public networkInterface!: | core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public packetField!: string | core.StringOut; @core.attr(Number, { computed: true }) public port!: number | core.NumberOut; @core.attr(PortRanges, { computed: true, kind: "array" }) public portRanges!: core.Array | core.ArrayOut; @core.attr(PrefixList, { computed: true, kind: "array" }) public prefixList!: core.Array | core.ArrayOut; @core.attr(String, { computed: true, kind: "array" }) public protocols!: core.Array | core.ArrayOut; @core.attr(RouteTable, { computed: true, kind: "array" }) public routeTable!: core.Array | core.ArrayOut; @core.attr(RouteTableRoute, { computed: true, kind: "array" }) public routeTableRoute!: | core.Array | core.ArrayOut; @core.attr(SecurityGroup, { computed: true, kind: "array" }) public securityGroup!: | core.Array | core.ArrayOut; @core.attr(SecurityGroupRule, { computed: true, kind: "array" }) public securityGroupRule!: | core.Array | core.ArrayOut; @core.attr(SecurityGroups, { computed: true, kind: "array" }) public securityGroups!: | core.Array | core.ArrayOut; @core.attr(SourceVpc, { computed: true, kind: "array" }) public sourceVpc!: core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public state!: string | core.StringOut; @core.attr(Subnet, { computed: true, kind: "array" }) public subnet!: core.Array | core.ArrayOut; @core.attr(SubnetRouteTable, { computed: true, kind: "array" }) public subnetRouteTable!: | core.Array | core.ArrayOut; @core.attr(TransitGateway, { computed: true, kind: "array" }) public transitGateway!: | core.Array | core.ArrayOut; @core.attr(TransitGatewayAttachment, { computed: true, kind: "array" }) public transitGatewayAttachment!: | core.Array | core.ArrayOut; @core.attr(TransitGatewayRouteTable, { computed: true, kind: "array" }) public transitGatewayRouteTable!: | core.Array | core.ArrayOut; @core.attr(TransitGatewayRouteTableRoute, { computed: true, kind: "array" }) public transitGatewayRouteTableRoute!: | core.Array | core.ArrayOut; @core.attr(Vpc, { computed: true, kind: "array" }) public vpc!: core.Array | core.ArrayOut; @core.attr(VpcEndpoint, { computed: true, kind: "array" }) public vpcEndpoint!: core.Array | core.ArrayOut; @core.attr(VpcPeeringConnection, { computed: true, kind: "array" }) public vpcPeeringConnection!: | core.Array | core.ArrayOut; @core.attr(VpnConnection, { computed: true, kind: "array" }) public vpnConnection!: | core.Array | core.ArrayOut; @core.attr(VpnGateway, { computed: true, kind: "array" }) public vpnGateway!: core.Array | core.ArrayOut; } export interface ForwardPathComponentsArgs extends core.SchemaArgs { aclRule: core.Array | core.ArrayOut; additionalDetails: | core.Array | core.ArrayOut; attachedTo: core.Array | core.ArrayOut; component: core.Array | core.ArrayOut; destinationVpc: core.Array | core.ArrayOut; inboundHeader: core.Array | core.ArrayOut; outboundHeader: core.Array | core.ArrayOut; routeTableRoute: core.Array | core.ArrayOut; securityGroupRule: | core.Array | core.ArrayOut; sequenceNumber: number | core.NumberOut; sourceVpc: core.Array | core.ArrayOut; subnet: core.Array | core.ArrayOut; transitGateway: core.Array | core.ArrayOut; transitGatewayRouteTableRoute: | core.Array | core.ArrayOut; vpc: core.Array | core.ArrayOut; } export class ForwardPathComponents extends core.Schema { @core.attr(AclRule, { computed: true, kind: "array" }) public aclRule!: core.Array | core.ArrayOut; @core.attr(AdditionalDetails, { computed: true, kind: "array" }) public additionalDetails!: | core.Array | core.ArrayOut; @core.attr(AttachedTo, { computed: true, kind: "array" }) public attachedTo!: core.Array | core.ArrayOut; @core.attr(Component, { computed: true, kind: "array" }) public component!: core.Array | core.ArrayOut; @core.attr(DestinationVpc, { computed: true, kind: "array" }) public destinationVpc!: | core.Array | core.ArrayOut; @core.attr(InboundHeader, { computed: true, kind: "array" }) public inboundHeader!: | core.Array | core.ArrayOut; @core.attr(OutboundHeader, { computed: true, kind: "array" }) public outboundHeader!: | core.Array | core.ArrayOut; @core.attr(RouteTableRoute, { computed: true, kind: "array" }) public routeTableRoute!: | core.Array | core.ArrayOut; @core.attr(SecurityGroupRule, { computed: true, kind: "array" }) public securityGroupRule!: | core.Array | core.ArrayOut; @core.attr(Number, { computed: true }) public sequenceNumber!: number | core.NumberOut; @core.attr(SourceVpc, { computed: true, kind: "array" }) public sourceVpc!: core.Array | core.ArrayOut; @core.attr(Subnet, { computed: true, kind: "array" }) public subnet!: core.Array | core.ArrayOut; @core.attr(TransitGateway, { computed: true, kind: "array" }) public transitGateway!: | core.Array | core.ArrayOut; @core.attr(TransitGatewayRouteTableRoute, { computed: true, kind: "array" }) public transitGatewayRouteTableRoute!: | core.Array | core.ArrayOut; @core.attr(Vpc, { computed: true, kind: "array" }) public vpc!: core.Array | core.ArrayOut; } export interface AlternatePathHintsArgs extends core.SchemaArgs { componentArn: string | core.StringOut; componentId: string | core.StringOut; } export class AlternatePathHints extends core.Schema { @core.attr(String, { computed: true }) public componentArn!: string | core.StringOut; @core.attr(String, { computed: true }) public componentId!: string | core.StringOut; } export interface Ec2NetworkInsightsAnalysisArgs extends core.ResourceArgs { /** * (Optional) A list of ARNs for resources the path must traverse. */ filterInArns?: core.Array | core.ArrayOut; /** * (Required) ID of the Network Insights Path to run an analysis on. */ networkInsightsPathId: string | core.StringOut; /** * (Optional) Map of tags to assign to the resource. If configured with a provider [`default_tags` conf * iguration block](/docs/providers/aws/index.html#default_tags-configuration-block) present, tags with * matching keys will overwrite those defined at the provider-level. */ tags?: core.Map | core.MapOut; /** * Map of tags assigned to the resource, including those inherited from the provider [`default_tags` co * nfiguration block](/docs/providers/aws/index.html#default_tags-configuration-block). */ tagsAll?: core.Map | core.MapOut; /** * (Optional) If enabled, the resource will wait for the Network Insights Analysis status to change to * succeeded` or `failed`. Setting this to `false` will skip the process. Default: `true`. */ waitForCompletion?: boolean | core.BooleanOut; } export class Ec2NetworkInsightsAnalysis extends core.Resource { /** * Potential intermediate components of a feasible path. Described below. */ @core.attr(AlternatePathHints, { computed: true, kind: "array" }) public alternatePathHints!: | core.Array | core.ArrayOut; /** * ARN of the Network Insights Analysis. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * Explanation codes for an unreachable path. See the [AWS documentation](https://docs.aws.amazon.com/A * WSEC2/latest/APIReference/API_Explanation.html) for details. */ @core.attr(Explanations, { computed: true, kind: "array" }) public explanations!: core.Array | core.ArrayOut; /** * (Optional) A list of ARNs for resources the path must traverse. */ @core.attr(String, { kind: "array" }) public filterInArns?: core.Array | core.ArrayOut; /** * The components in the path from source to destination. See the [AWS documentation](https://docs.aws. * amazon.com/AWSEC2/latest/APIReference/API_PathComponent.html) for details. */ @core.attr(ForwardPathComponents, { computed: true, kind: "array" }) public forwardPathComponents!: | core.Array | core.ArrayOut; /** * ID of the Network Insights Analysis. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Required) ID of the Network Insights Path to run an analysis on. */ @core.attr(String) public networkInsightsPathId!: string | core.StringOut; /** * Set to `true` if the destination was reachable. */ @core.attr(Boolean, { computed: true }) public pathFound!: boolean | core.BooleanOut; /** * The components in the path from destination to source. See the [AWS documentation](https://docs.aws. * amazon.com/AWSEC2/latest/APIReference/API_PathComponent.html) for details. */ @core.attr(ReturnPathComponents, { computed: true, kind: "array" }) public returnPathComponents!: | core.Array | core.ArrayOut; /** * The date/time the analysis was started. */ @core.attr(String, { computed: true }) public startDate!: string | core.StringOut; /** * The status of the analysis. `succeeded` means the analysis was completed, not that a path was found, * for that see `path_found`. */ @core.attr(String, { computed: true }) public status!: string | core.StringOut; /** * A message to provide more context when the `status` is `failed`. */ @core.attr(String, { computed: true }) public statusMessage!: string | core.StringOut; /** * (Optional) Map of tags to assign to the resource. If configured with a provider [`default_tags` conf * iguration block](/docs/providers/aws/index.html#default_tags-configuration-block) present, tags with * matching keys will overwrite those defined at the provider-level. */ @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; /** * Map of tags assigned to the resource, including those inherited from the provider [`default_tags` co * nfiguration block](/docs/providers/aws/index.html#default_tags-configuration-block). */ @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; /** * (Optional) If enabled, the resource will wait for the Network Insights Analysis status to change to * succeeded` or `failed`. Setting this to `false` will skip the process. Default: `true`. */ @core.attr(Boolean) public waitForCompletion?: boolean | core.BooleanOut; /** * The warning message. */ @core.attr(String, { computed: true }) public warningMessage!: string | core.StringOut; constructor(name: string, args?: Ec2NetworkInsightsAnalysisArgs) { super(name, "aws_ec2_network_insights_analysis", args); } public override getNamespace(): string { return "aws_vpc"; } }