import * as core from "@terrascript/core"; export interface Ec2TransitGatewayConnectPeerArgs extends core.ResourceArgs { /** * (Optional) The BGP ASN number assigned customer device. If not provided, it will use the same BGP AS * N as is associated with Transit Gateway. */ bgpAsn?: string | core.StringOut; /** * (Required) The CIDR block that will be used for addressing within the tunnel. It must contain exactl * y one IPv4 CIDR block and up to one IPv6 CIDR block. The IPv4 CIDR block must be /29 size and must b * e within 169.254.0.0/16 range, with exception of: 169.254.0.0/29, 169.254.1.0/29, 169.254.2.0/29, 16 * 9.254.3.0/29, 169.254.4.0/29, 169.254.5.0/29, 169.254.169.248/29. The IPv6 CIDR block must be /125 s * ize and must be within fd00::/8. The first IP from each CIDR block is assigned for customer gateway, * the second and third is for Transit Gateway (An example: from range 169.254.100.0/29, .1 is assigne * d to customer gateway and .2 and .3 are assigned to Transit Gateway) */ insideCidrBlocks: core.Array | core.ArrayOut; /** * (Required) The IP addressed assigned to customer device, which will be used as tunnel endpoint. It c * an be IPv4 or IPv6 address, but must be the same address family as `transit_gateway_address` */ peerAddress: string | core.StringOut; /** * (Optional) Key-value tags for the EC2 Transit Gateway Connect Peer. If configured with a provider [` * default_tags` configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs * #default_tags-configuration-block) present, tags with matching keys will overwrite those defined at * the provider-level. */ tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ tagsAll?: core.Map | core.MapOut; /** * (Optional) The IP address assigned to Transit Gateway, which will be used as tunnel endpoint. This a * ddress must be from associated Transit Gateway CIDR block. The address must be from the same address * family as `peer_address`. If not set explicitly, it will be selected from associated Transit Gatewa * y CIDR blocks */ transitGatewayAddress?: string | core.StringOut; /** * (Required) The Transit Gateway Connect */ transitGatewayAttachmentId: string | core.StringOut; } export class Ec2TransitGatewayConnectPeer extends core.Resource { /** * EC2 Transit Gateway Connect Peer ARN */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Optional) The BGP ASN number assigned customer device. If not provided, it will use the same BGP AS * N as is associated with Transit Gateway. */ @core.attr(String, { computed: true }) public bgpAsn?: string | core.StringOut; /** * EC2 Transit Gateway Connect Peer identifier */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Required) The CIDR block that will be used for addressing within the tunnel. It must contain exactl * y one IPv4 CIDR block and up to one IPv6 CIDR block. The IPv4 CIDR block must be /29 size and must b * e within 169.254.0.0/16 range, with exception of: 169.254.0.0/29, 169.254.1.0/29, 169.254.2.0/29, 16 * 9.254.3.0/29, 169.254.4.0/29, 169.254.5.0/29, 169.254.169.248/29. The IPv6 CIDR block must be /125 s * ize and must be within fd00::/8. The first IP from each CIDR block is assigned for customer gateway, * the second and third is for Transit Gateway (An example: from range 169.254.100.0/29, .1 is assigne * d to customer gateway and .2 and .3 are assigned to Transit Gateway) */ @core.attr(String, { kind: "array" }) public insideCidrBlocks!: core.Array | core.ArrayOut; /** * (Required) The IP addressed assigned to customer device, which will be used as tunnel endpoint. It c * an be IPv4 or IPv6 address, but must be the same address family as `transit_gateway_address` */ @core.attr(String) public peerAddress!: string | core.StringOut; /** * (Optional) Key-value tags for the EC2 Transit Gateway Connect Peer. If configured with a provider [` * default_tags` configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs * #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; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; /** * (Optional) The IP address assigned to Transit Gateway, which will be used as tunnel endpoint. This a * ddress must be from associated Transit Gateway CIDR block. The address must be from the same address * family as `peer_address`. If not set explicitly, it will be selected from associated Transit Gatewa * y CIDR blocks */ @core.attr(String, { computed: true }) public transitGatewayAddress?: string | core.StringOut; /** * (Required) The Transit Gateway Connect */ @core.attr(String) public transitGatewayAttachmentId!: string | core.StringOut; constructor(name: string, args?: Ec2TransitGatewayConnectPeerArgs) { super(name, "aws_ec2_transit_gateway_connect_peer", args); } public override getNamespace(): string { return "aws_transit_gateway"; } }