@aws-cdk/aws-ec2-alpha 2.245.0-alpha.0 → 2.247.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.jsii CHANGED
@@ -8,7 +8,7 @@
8
8
  "url": "https://aws.amazon.com"
9
9
  },
10
10
  "dependencies": {
11
- "aws-cdk-lib": "^2.245.0",
11
+ "aws-cdk-lib": "^2.247.0",
12
12
  "constructs": "^10.5.0"
13
13
  },
14
14
  "dependencyClosure": {
@@ -2027,6 +2027,19 @@
2027
2027
  }
2028
2028
  }
2029
2029
  },
2030
+ "aws-cdk-lib.aws_interconnect": {
2031
+ "targets": {
2032
+ "dotnet": {
2033
+ "namespace": "Amazon.CDK.AWS.Interconnect"
2034
+ },
2035
+ "java": {
2036
+ "package": "software.amazon.awscdk.services.interconnect"
2037
+ },
2038
+ "python": {
2039
+ "module": "aws_cdk.aws_interconnect"
2040
+ }
2041
+ }
2042
+ },
2030
2043
  "aws-cdk-lib.aws_internetmonitor": {
2031
2044
  "targets": {
2032
2045
  "dotnet": {
@@ -3954,6 +3967,19 @@
3954
3967
  }
3955
3968
  }
3956
3969
  },
3970
+ "aws-cdk-lib.aws_uxc": {
3971
+ "targets": {
3972
+ "dotnet": {
3973
+ "namespace": "Amazon.CDK.AWS.UXC"
3974
+ },
3975
+ "java": {
3976
+ "package": "software.amazon.awscdk.services.uxc"
3977
+ },
3978
+ "python": {
3979
+ "module": "aws_cdk.aws_uxc"
3980
+ }
3981
+ }
3982
+ },
3957
3983
  "aws-cdk-lib.aws_verifiedpermissions": {
3958
3984
  "targets": {
3959
3985
  "dotnet": {
@@ -6246,6 +6272,22 @@
6246
6272
  }
6247
6273
  }
6248
6274
  },
6275
+ "aws-cdk-lib.interfaces.aws_interconnect": {
6276
+ "targets": {
6277
+ "dotnet": {
6278
+ "namespace": "Amazon.CDK.Interfaces.Interconnect"
6279
+ },
6280
+ "go": {
6281
+ "packageName": "interfacesawsinterconnect"
6282
+ },
6283
+ "java": {
6284
+ "package": "software.amazon.awscdk.interfaces.interconnect"
6285
+ },
6286
+ "python": {
6287
+ "module": "aws_cdk.interfaces.aws_interconnect"
6288
+ }
6289
+ }
6290
+ },
6249
6291
  "aws-cdk-lib.interfaces.aws_internetmonitor": {
6250
6292
  "targets": {
6251
6293
  "dotnet": {
@@ -8390,6 +8432,22 @@
8390
8432
  }
8391
8433
  }
8392
8434
  },
8435
+ "aws-cdk-lib.interfaces.aws_uxc": {
8436
+ "targets": {
8437
+ "dotnet": {
8438
+ "namespace": "Amazon.CDK.Interfaces.UXC"
8439
+ },
8440
+ "go": {
8441
+ "packageName": "interfacesawsuxc"
8442
+ },
8443
+ "java": {
8444
+ "package": "software.amazon.awscdk.interfaces.uxc"
8445
+ },
8446
+ "python": {
8447
+ "module": "aws_cdk.interfaces.aws_uxc"
8448
+ }
8449
+ }
8450
+ },
8393
8451
  "aws-cdk-lib.interfaces.aws_verifiedpermissions": {
8394
8452
  "targets": {
8395
8453
  "dotnet": {
@@ -8727,7 +8785,7 @@
8727
8785
  },
8728
8786
  "name": "@aws-cdk/aws-ec2-alpha",
8729
8787
  "readme": {
8730
- "markdown": "# Amazon VpcV2 Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n![cdk-constructs: Developer Preview](https://img.shields.io/badge/cdk--constructs-developer--preview-informational.svg?style=for-the-badge)\n\n> The APIs of higher level constructs in this module are in **developer preview** before they\n> become stable. We will only make breaking changes to address unforeseen API issues. Therefore,\n> these APIs are not subject to [Semantic Versioning](https://semver.org/), and breaking changes\n> will be announced in release notes. This means that while you may use them, you may need to\n> update your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\n## VpcV2\n\n`VpcV2` is a re-write of the [`ec2.Vpc`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.Vpc.html) construct. This new construct enables higher level of customization\non the VPC being created. `VpcV2` implements the existing [`IVpc`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.IVpc.html), therefore,\n`VpcV2` is compatible with other constructs that accepts `IVpc` (e.g. [`ApplicationLoadBalancer`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationLoadBalancer.html#construct-props)).\n\n`VpcV2` supports the addition of both primary and secondary addresses. The primary address must be an IPv4 address, which can be specified as a CIDR string or assigned from an IPAM pool. Secondary addresses can be either IPv4 or IPv6.\nBy default, `VpcV2` assigns `10.0.0.0/16` as the primary CIDR if no other CIDR is specified.\n\nBelow is an example of creating a VPC with both IPv4 and IPv6 support:\n\n```ts\nconst stack = new Stack();\nnew VpcV2(this, 'Vpc', {\n primaryAddressBlock: IpAddresses.ipv4('10.0.0.0/24'),\n secondaryAddressBlocks: [\n IpAddresses.amazonProvidedIpv6({cidrBlockName: 'AmazonProvidedIpv6'}),\n ],\n});\n```\n\n`VpcV2` does not automatically create subnets or allocate IP addresses, which is different from the `Vpc` construct.\n\n## SubnetV2\n\n`SubnetV2` is a re-write of the [`ec2.Subnet`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.Subnet.html) construct.\nThis new construct can be used to add subnets to a `VpcV2` instance:\nNote: When defining a subnet with `SubnetV2`, CDK automatically creates a new route table, unless a route table is explicitly provided as an input to the construct.\nTo enable the `mapPublicIpOnLaunch` feature (which is `false` by default), set the property to `true` when creating the subnet.\n\n```ts\nconst stack = new Stack();\nconst myVpc = new VpcV2(this, 'Vpc', {\n secondaryAddressBlocks: [\n IpAddresses.amazonProvidedIpv6({ cidrBlockName: 'AmazonProvidedIp'}),\n ],\n});\n\nnew SubnetV2(this, 'subnetA', {\n vpc: myVpc,\n availabilityZone: 'us-east-1a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n ipv6CidrBlock: new IpCidr('2a05:d02c:25:4000::/60'),\n subnetType: SubnetType.PUBLIC,\n mapPublicIpOnLaunch: true,\n})\n```\n\nSince `VpcV2` does not create subnets automatically, users have full control over IP addresses allocation across subnets.\n\n## IP Addresses Management\n\nAdditional CIDRs can be added to the VPC via the `secondaryAddressBlocks` property.\nThe following example illustrates the options of defining these secondary address blocks using `IPAM`:\n\nNote: There’s currently an issue with IPAM pool deletion that may affect the `cdk --destroy` command. This is because IPAM takes time to detect when the IP address pool has been deallocated after the VPC is deleted. The current workaround is to wait until the IP address is fully deallocated from the pool before retrying the deletion. Below command can be used to check allocations for a pool using CLI\n\n```shell\naws ec2 get-ipam-pool-allocations --ipam-pool-id <ipam-pool-id>\n```\n\nRef: https://docs.aws.amazon.com/cli/latest/reference/ec2/get-ipam-pool-allocations.html\n\n```ts\nconst stack = new Stack();\nconst ipam = new Ipam(this, 'Ipam', {\n operatingRegions: ['us-west-1']\n});\nconst ipamPublicPool = ipam.publicScope.addPool('PublicPoolA', {\n addressFamily: AddressFamily.IP_V6,\n awsService: AwsServiceName.EC2,\n locale: 'us-west-1',\n publicIpSource: IpamPoolPublicIpSource.AMAZON,\n});\nipamPublicPool.provisionCidr('PublicPoolACidrA', { netmaskLength: 52 } );\n\nconst ipamPrivatePool = ipam.privateScope.addPool('PrivatePoolA', {\n addressFamily: AddressFamily.IP_V4,\n});\nipamPrivatePool.provisionCidr('PrivatePoolACidrA', { netmaskLength: 8 } );\n\nnew VpcV2(this, 'Vpc', {\n primaryAddressBlock: IpAddresses.ipv4('10.0.0.0/24'),\n secondaryAddressBlocks: [\n IpAddresses.amazonProvidedIpv6({ cidrBlockName: 'AmazonIpv6' }),\n IpAddresses.ipv6Ipam({\n ipamPool: ipamPublicPool,\n netmaskLength: 52,\n cidrBlockName: 'ipv6Ipam',\n }),\n IpAddresses.ipv4Ipam({\n ipamPool: ipamPrivatePool,\n netmaskLength: 8,\n cidrBlockName: 'ipv4Ipam',\n }),\n ],\n});\n```\n\n### Bring your own IPv6 addresses (BYOIP)\n\nIf you have your own IP address that you would like to use with EC2, you can set up an IPv6 pool via the AWS CLI, and use that pool ID in your application.\n\nOnce you have certified your IP address block with an ROA and have obtained an X-509 certificate, you can run the following command to provision your CIDR block in your AWS account:\n\n```shell\naws ec2 provision-byoip-cidr --region <region> --cidr <your CIDR block> --cidr-authorization-context Message=\"1|aws|<account>|<your CIDR block>|<expiration date>|SHA256\".Signature=\"<signature>\"\n```\n\nWhen your BYOIP CIDR is provisioned, you can run the following command to retrieve your IPv6 pool ID, which will be used in your VPC declaration:\n\n```shell\naws ec2 describe-byoip-cidr --region <region>\n```\n\nFor more help on setting up your IPv6 address, please review the [EC2 Documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html).\n\nOnce you have provisioned your address block, you can use the IPv6 in your VPC as follows:\n\n```ts\nconst myVpc = new VpcV2(this, 'Vpc', {\n primaryAddressBlock: IpAddresses.ipv4('10.1.0.0/16'),\n secondaryAddressBlocks: [IpAddresses.ipv6ByoipPool({\n cidrBlockName: 'MyByoipCidrBlock',\n ipv6PoolId: 'ipv6pool-ec2-someHashValue',\n ipv6CidrBlock: '2001:db8::/32'\n })],\n enableDnsHostnames: true,\n enableDnsSupport: true,\n});\n```\n\n## Routing\n\n`RouteTable` is a new construct that allows for route tables to be customized in a variety of ways. Using this construct, a customized route table can be added to the subnets defined using `SubnetV2`.\nFor instance, the following example shows how a custom route table can be created and appended to a `SubnetV2`:\n\n```ts\nconst myVpc = new VpcV2(this, 'Vpc');\nconst routeTable = new RouteTable(this, 'RouteTable', {\n vpc: myVpc,\n});\nconst subnet = new SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n routeTable,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: SubnetType.PRIVATE_ISOLATED,\n});\n```\n\n`Routes` can be created to link subnets to various different AWS services via gateways and endpoints. Each unique route target has its own dedicated construct that can be routed to a given subnet via the `Route` construct. An example using the `InternetGateway` construct can be seen below:\n\n```ts\nconst stack = new Stack();\nconst myVpc = new VpcV2(this, 'Vpc');\nconst routeTable = new RouteTable(this, 'RouteTable', {\n vpc: myVpc,\n});\nconst subnet = new SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: SubnetType.PRIVATE_ISOLATED });\n\nconst igw = new InternetGateway(this, 'IGW', {\n vpc: myVpc,\n});\nnew Route(this, 'IgwRoute', {\n routeTable,\n destination: '0.0.0.0/0',\n target: { gateway: igw },\n});\n```\n\nAlternatively, `Routes` can also be created via method `addRoute` in the `RouteTable` class. An example using the `EgressOnlyInternetGateway` construct can be seen below:\nNote: `EgressOnlyInternetGateway` can only be used to set up outbound IPv6 routing.\n\n```ts\nconst stack = new Stack();\nconst myVpc = new VpcV2(this, 'Vpc',{\n primaryAddressBlock: IpAddresses.ipv4('10.1.0.0/16'),\n secondaryAddressBlocks: [IpAddresses.amazonProvidedIpv6({\n cidrBlockName: 'AmazonProvided',\n })]\n });\n\nconst eigw = new EgressOnlyInternetGateway(this, 'EIGW', {\n vpc: myVpc,\n});\n\nconst routeTable = new RouteTable(this, 'RouteTable', {\n vpc: myVpc,\n});\n\nrouteTable.addRoute('EIGW', '::/0', { gateway: eigw });\n```\n\nOther route targets may require a deeper set of parameters to set up properly. For instance, the example below illustrates how to set up a `NatGateway`:\n\n```ts\nconst myVpc = new VpcV2(this, 'Vpc');\nconst routeTable = new RouteTable(this, 'RouteTable', {\n vpc: myVpc,\n});\nconst subnet = new SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: SubnetType.PRIVATE_ISOLATED });\n\nconst natgw = new NatGateway(this, 'NatGW', {\n subnet: subnet,\n vpc: myVpc,\n connectivityType: NatConnectivityType.PRIVATE,\n privateIpAddress: '10.0.0.42',\n});\nnew Route(this, 'NatGwRoute', {\n routeTable,\n destination: '0.0.0.0/0',\n target: { gateway: natgw },\n});\n```\n\nIt is also possible to set up endpoints connecting other AWS services. For instance, the example below illustrates the linking of a Dynamo DB endpoint via the existing `ec2.GatewayVpcEndpoint` construct as a route target:\n\n```ts\nconst stack = new Stack();\nconst myVpc = new VpcV2(this, 'Vpc');\nconst routeTable = new RouteTable(this, 'RouteTable', {\n vpc: myVpc,\n});\nconst subnet = new SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: SubnetType.PRIVATE });\n\nconst dynamoEndpoint = new ec2.GatewayVpcEndpoint(this, 'DynamoEndpoint', {\n service: ec2.GatewayVpcEndpointAwsService.DYNAMODB,\n vpc: myVpc,\n subnets: [subnet],\n});\nnew Route(this, 'DynamoDBRoute', {\n routeTable,\n destination: '0.0.0.0/0',\n target: { endpoint: dynamoEndpoint },\n});\n```\n\n## VPC Peering Connection\n\nVPC peering connection allows you to connect two VPCs and route traffic between them using private IP addresses. The VpcV2 construct supports creating VPC peering connections through the `VPCPeeringConnection` construct from the `route` module.\n\nPeering Connection cannot be established between two VPCs with overlapping CIDR ranges. Please make sure the two VPC CIDRs do not overlap with each other else it will throw an error.\n\nFor more information, see [What is VPC peering?](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html).\n\nThe following show examples of how to create a peering connection between two VPCs for all possible combinations of same-account or cross-account, and same-region or cross-region configurations.\n\nNote: You cannot create a VPC peering connection between VPCs that have matching or overlapping CIDR blocks\n\n**Case 1: Same Account and Same Region Peering Connection**\n\n```ts\nconst stack = new Stack();\n\nconst vpcA = new VpcV2(this, 'VpcA', {\n primaryAddressBlock: IpAddresses.ipv4('10.0.0.0/16'),\n});\n\nconst vpcB = new VpcV2(this, 'VpcB', {\n primaryAddressBlock: IpAddresses.ipv4('10.1.0.0/16'),\n});\n\nconst peeringConnection = vpcA.createPeeringConnection('sameAccountSameRegionPeering', {\n acceptorVpc: vpcB,\n});\n```\n\n**Case 2: Same Account and Cross Region Peering Connection**\n\nThere is no difference from Case 1 when calling `createPeeringConnection`. The only change is that one of the VPCs are created in another stack with a different region. To establish cross region VPC peering connection, acceptorVpc needs to be imported to the requestor VPC stack using `fromVpcV2Attributes` method.\n\n```ts\nconst app = new App();\n\nconst stackA = new Stack(app, 'VpcStackA', { env: { account: '000000000000', region: 'us-east-1' } });\nconst stackB = new Stack(app, 'VpcStackB', { env: { account: '000000000000', region: 'us-west-2' } });\n\nconst vpcA = new VpcV2(stackA, 'VpcA', {\n primaryAddressBlock: IpAddresses.ipv4('10.0.0.0/16'),\n});\n\nnew VpcV2(stackB, 'VpcB', {\n primaryAddressBlock: IpAddresses.ipv4('10.1.0.0/16'),\n});\n\nconst vpcB = VpcV2.fromVpcV2Attributes(stackA, 'ImportedVpcB', {\n vpcId: 'MockVpcBid',\n vpcCidrBlock: '10.1.0.0/16',\n region: 'us-west-2',\n ownerAccountId: '000000000000',\n });\n\n\nconst peeringConnection = vpcA.createPeeringConnection('sameAccountCrossRegionPeering', {\n acceptorVpc: vpcB,\n});\n```\n\n**Case 3: Cross Account Peering Connection**\n\nFor cross-account connections, the acceptor account needs an IAM role that grants the requestor account permission to initiate the connection. Create a new IAM role in the acceptor account using method `createAcceptorVpcRole` to provide the necessary permissions.\n\nOnce role is created in account, provide role arn for field `peerRoleArn` under method `createPeeringConnection`\n\n```ts\nconst stack = new Stack();\n\nconst acceptorVpc = new VpcV2(this, 'VpcA', {\n primaryAddressBlock: IpAddresses.ipv4('10.0.0.0/16'),\n});\n\nconst acceptorRoleArn = acceptorVpc.createAcceptorVpcRole('000000000000'); // Requestor account ID\n```\n\nAfter creating an IAM role in the acceptor account, we can initiate the peering connection request from the requestor VPC. Import acceptorVpc to the stack using `fromVpcV2Attributes` method, it is recommended to specify owner account id of the acceptor VPC in case of cross account peering connection, if acceptor VPC is hosted in different region provide region value for import as well.\nThe following code snippet demonstrates how to set up VPC peering between two VPCs in different AWS accounts using CDK:\n\n```ts\nconst stack = new Stack();\n\nconst acceptorVpc = VpcV2.fromVpcV2Attributes(this, 'acceptorVpc', {\n vpcId: 'vpc-XXXX',\n vpcCidrBlock: '10.0.0.0/16',\n region: 'us-east-2',\n ownerAccountId: '111111111111',\n });\n\nconst acceptorRoleArn = 'arn:aws:iam::111111111111:role/VpcPeeringRole';\n\nconst requestorVpc = new VpcV2(this, 'VpcB', {\n primaryAddressBlock: IpAddresses.ipv4('10.1.0.0/16'),\n});\n\nconst peeringConnection = requestorVpc.createPeeringConnection('crossAccountCrossRegionPeering', {\n acceptorVpc: acceptorVpc,\n peerRoleArn: acceptorRoleArn,\n});\n```\n\n### Route Table Configuration\n\nAfter establishing the VPC peering connection, routes must be added to the respective route tables in the VPCs to enable traffic flow. If a route is added to the requestor stack, information will be able to flow from the requestor VPC to the acceptor VPC, but not in the reverse direction. For bi-directional communication, routes need to be added in both VPCs from their respective stacks.\n\nFor more information, see [Update your route tables for a VPC peering connection](https://docs.aws.amazon.com/vpc/latest/peering/vpc-peering-routing.html).\n\n```ts\nconst stack = new Stack();\n\nconst acceptorVpc = new VpcV2(this, 'VpcA', {\n primaryAddressBlock: IpAddresses.ipv4('10.0.0.0/16'),\n});\n\nconst requestorVpc = new VpcV2(this, 'VpcB', {\n primaryAddressBlock: IpAddresses.ipv4('10.1.0.0/16'),\n});\n\nconst peeringConnection = requestorVpc.createPeeringConnection('peeringConnection', {\n acceptorVpc: acceptorVpc,\n});\n\nconst routeTable = new RouteTable(this, 'RouteTable', {\n vpc: requestorVpc,\n});\n\nrouteTable.addRoute('vpcPeeringRoute', '10.0.0.0/16', { gateway: peeringConnection });\n```\n\nThis can also be done using AWS CLI. For more information, see [create-route](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-route.html).\n\n```bash\n# Add a route to the requestor VPC route table\naws ec2 create-route --route-table-id rtb-requestor --destination-cidr-block 10.0.0.0/16 --vpc-peering-connection-id pcx-xxxxxxxx\n\n# For bi-directional add a route in the acceptor vpc account as well\naws ec2 create-route --route-table-id rtb-acceptor --destination-cidr-block 10.1.0.0/16 --vpc-peering-connection-id pcx-xxxxxxxx\n```\n\n### Deleting the Peering Connection\n\nTo delete a VPC peering connection, use the following command:\n\n```bash\naws ec2 delete-vpc-peering-connection --vpc-peering-connection-id pcx-xxxxxxxx\n```\n\nFor more information, see [Delete a VPC peering connection](https://docs.aws.amazon.com/vpc/latest/peering/create-vpc-peering-connection.html#delete-vpc-peering-connection).\n\n## Adding Egress-Only Internet Gateway to VPC\n\nAn egress-only internet gateway is a horizontally scaled, redundant, and highly available VPC component that allows outbound communication over IPv6 from instances in your VPC to the internet, and prevents the internet from initiating an IPv6 connection with your instances.\n\nFor more information see [Enable outbound IPv6 traffic using an egress-only internet gateway](https://docs.aws.amazon.com/vpc/latest/userguide/egress-only-internet-gateway.html).\n\nVpcV2 supports adding an egress only internet gateway to VPC using the `addEgressOnlyInternetGateway` method.\n\nBy default, this method sets up a route to all outbound IPv6 address ranges, unless a specific destination is provided by the user. It can only be configured for IPv6-enabled VPCs.\nThe `Subnets` parameter accepts a `SubnetFilter`, which can be based on a `SubnetType` in VpcV2. A new route will be added to the route tables of all subnets that match this filter.\n\n```ts\nconst stack = new Stack();\nconst myVpc = new VpcV2(this, 'Vpc',{\n primaryAddressBlock: IpAddresses.ipv4('10.1.0.0/16'),\n secondaryAddressBlocks: [IpAddresses.amazonProvidedIpv6({\n cidrBlockName: 'AmazonProvided',\n })]\n });\nconst routeTable = new RouteTable(this, 'RouteTable', {\n vpc: myVpc,\n});\nconst subnet = new SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n ipv6CidrBlock: new IpCidr('2001:db8:1::/64'),\n subnetType: SubnetType.PRIVATE });\n\nmyVpc.addEgressOnlyInternetGateway({\n subnets: [{subnetType: SubnetType.PRIVATE}],\n destination: '::/60',\n})\n```\n\n## Adding NATGateway to the VPC\n\nA NAT gateway is a Network Address Translation (NAT) service.You can use a NAT gateway so that instances in a private subnet can connect to services outside your VPC but external services cannot initiate a connection with those instances.\n\nFor more information, see [NAT gateway basics](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html).\n\nWhen you create a NAT gateway, you specify one of the following connectivity types:\n\n**Public – (Default)**: Instances in private subnets can connect to the internet through a public NAT gateway, but cannot receive unsolicited inbound connections from the internet\n\n**Private**: Instances in private subnets can connect to other VPCs or your on-premises network through a private NAT gateway.\n\nTo define the NAT gateway connectivity type as `ConnectivityType.Public`, you need to ensure that there is an IGW(Internet Gateway) attached to the subnet's VPC.\nSince a NATGW is associated with a particular subnet, providing `subnet` field in the input props is mandatory.\n\nAdditionally, you can set up a route in any route table with the target set to the NAT Gateway. The function `addNatGateway` returns a `NATGateway` object that you can reference later.\n\nThe code example below provides the definition for adding a NAT gateway to your subnet:\n\n```ts\nconst stack = new Stack();\nconst myVpc = new VpcV2(this, 'Vpc');\nconst routeTable = new RouteTable(this, 'RouteTable', {\n vpc: myVpc,\n});\nconst subnet = new SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: SubnetType.PUBLIC });\n\nmyVpc.addInternetGateway();\nmyVpc.addNatGateway({\n subnet: subnet,\n connectivityType: NatConnectivityType.PUBLIC,\n});\n```\n\n## Enable VPNGateway for the VPC\n\nA virtual private gateway is the endpoint on the VPC side of your VPN connection.\n\nFor more information, see [What is AWS Site-to-Site VPN?](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html).\n\nVPN route propagation is a feature in Amazon Web Services (AWS) that automatically updates route tables in your Virtual Private Cloud (VPC) with routes learned from a VPN connection.\n\nTo enable VPN route propagation, use the `vpnRoutePropagation` property to specify the subnets as an input to the function. VPN route propagation will then be enabled for each subnet with the corresponding route table IDs.\n\nAdditionally, you can set up a route in any route table with the target set to the VPN Gateway. The function `enableVpnGatewayV2` returns a `VPNGatewayV2` object that you can reference later.\n\nThe code example below provides the definition for setting up a VPN gateway with `vpnRoutePropagation` enabled:\n\n```ts\nconst stack = new Stack();\nconst myVpc = new VpcV2(this, 'Vpc');\nconst vpnGateway = myVpc.enableVpnGatewayV2({\n vpnRoutePropagation: [{ subnetType: SubnetType.PUBLIC }],\n type: VpnConnectionType.IPSEC_1,\n});\n\nconst routeTable = new RouteTable(stack, 'routeTable', {\n vpc: myVpc\n } );\n\nnew Route(stack, 'route', {\n destination: '172.31.0.0/24',\n target: { gateway: vpnGateway },\n routeTable: routeTable,\n});\n```\n\n## Adding InternetGateway to the VPC\n\nAn internet gateway is a horizontally scaled, redundant, and highly available VPC component that allows communication between your VPC and the internet. It supports both IPv4 and IPv6 traffic.\n\nFor more information, see [Enable VPC internet access using internet gateways](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-igw-internet-access.html).\n\nYou can add an internet gateway to a VPC using `addInternetGateway` method. By default, this method creates a route in all Public Subnets with outbound destination set to `0.0.0.0` for IPv4 and `::0` for IPv6 enabled VPC.\nInstead of using the default settings, you can configure a custom destination range by providing an optional input `destination` to the method.\nIn addition to the custom IP range, you can also choose to filter subnets where default routes should be created.\n\nThe code example below shows how to add an internet gateway with a custom outbound destination IP range:\n\n```ts\nconst stack = new Stack();\nconst myVpc = new VpcV2(this, 'Vpc');\n\nconst subnet = new SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: SubnetType.PUBLIC });\n\nmyVpc.addInternetGateway({\n ipv4Destination: '192.168.0.0/16',\n});\n```\n\nThe following code examples demonstrates how to add an internet gateway with a custom outbound destination IP range for specific subnets:\n\n```ts\nconst stack = new Stack();\nconst myVpc = new VpcV2(this, 'Vpc');\n\nconst mySubnet = new SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: SubnetType.PUBLIC });\n\nmyVpc.addInternetGateway({\n ipv4Destination: '192.168.0.0/16',\n subnets: [mySubnet],\n});\n```\n\n```ts\nconst stack = new Stack();\nconst myVpc = new VpcV2(this, 'Vpc');\n\nmyVpc.addInternetGateway({\n ipv4Destination: '192.168.0.0/16',\n subnets: [{subnetType: SubnetType.PRIVATE_WITH_EGRESS}],\n});\n```\n\n## Importing an existing VPC\n\nYou can import an existing VPC and its subnets using the `VpcV2.fromVpcV2Attributes()` method or an individual subnet using `SubnetV2.fromSubnetV2Attributes()` method.\n\n### Importing a VPC\n\nTo import an existing VPC, use the `VpcV2.fromVpcV2Attributes()` method. You'll need to provide the VPC ID, primary CIDR block, and information about the subnets. You can import secondary address as well created through IPAM, BYOIP(IPv4) or enabled through Amazon Provided IPv6. You must provide VPC Id and its primary CIDR block for importing it.\n\nIf you wish to add a new subnet to imported VPC, new subnet's IP range(IPv4) will be validated against provided secondary and primary address block to confirm that it is within the the range of VPC.\n\nHere's an example of importing a VPC with only the required parameters\n\n``` ts\nconst stack = new Stack();\n\nconst importedVpc = VpcV2.fromVpcV2Attributes(stack, 'ImportedVpc', {\n vpcId: 'mockVpcID',\n vpcCidrBlock: '10.0.0.0/16',\n});\n```\n\nIn case of cross account or cross region VPC, its recommended to provide region and ownerAccountId so that these values for the VPC can be used to populate correct arn value for the VPC. If a VPC region and account ID is not provided, then region and account configured in the stack will be used. Furthermore, these fields will be referenced later while setting up VPC peering connection, so its necessary to set these fields to a correct value.\n\nBelow is an example of importing a cross region and cross account VPC, VPC arn for this case would be 'arn:aws:ec2:us-west-2:123456789012:vpc/mockVpcID'\n\n``` ts\nconst stack = new Stack();\n\n//Importing a cross account or cross region VPC\nconst importedVpc = VpcV2.fromVpcV2Attributes(stack, 'ImportedVpc', {\n vpcId: 'mockVpcID',\n vpcCidrBlock: '10.0.0.0/16',\n ownerAccountId: '123456789012',\n region: 'us-west-2',\n});\n```\n\nHere's an example of how to import a VPC with multiple CIDR blocks, IPv6 support, and different subnet types:\n\nIn this example, we're importing a VPC with:\n\n - A primary CIDR block (10.1.0.0/16)\n - One secondary IPv4 CIDR block (10.2.0.0/16)\n - Two secondary address using IPAM pool (IPv4 and IPv6)\n - VPC has Amazon-provided IPv6 CIDR enabled\n - An isolated subnet in us-west-2a\n - A public subnet in us-west-2b\n\n```ts\nconst stack = new Stack();\n\nconst importedVpc = VpcV2.fromVpcV2Attributes(this, 'ImportedVPC', {\n vpcId: 'vpc-XXX',\n vpcCidrBlock: '10.1.0.0/16',\n secondaryCidrBlocks: [\n {\n cidrBlock: '10.2.0.0/16',\n cidrBlockName: 'ImportedBlock1',\n },\n {\n ipv6IpamPoolId: 'ipam-pool-XXX',\n ipv6NetmaskLength: 52,\n cidrBlockName: 'ImportedIpamIpv6',\n },\n {\n ipv4IpamPoolId: 'ipam-pool-XXX',\n ipv4IpamProvisionedCidrs: ['10.2.0.0/16'],\n cidrBlockName: 'ImportedIpamIpv4',\n },\n {\n amazonProvidedIpv6CidrBlock: true,\n }\n ],\n subnets: [{\n subnetName: 'IsolatedSubnet2',\n subnetId: 'subnet-03cd773c0fe08ed26',\n subnetType: SubnetType.PRIVATE_ISOLATED,\n availabilityZone: 'us-west-2a',\n ipv4CidrBlock: '10.2.0.0/24',\n routeTableId: 'rtb-0871c310f98da2cbb',\n },\n {\n subnetId: 'subnet-0fa477e01db27d820',\n subnetType: SubnetType.PUBLIC,\n availabilityZone: 'us-west-2b',\n ipv4CidrBlock: '10.3.0.0/24',\n routeTableId: 'rtb-014f3043098fe4b96',\n }],\n});\n\n// You can now use the imported VPC in your stack\n\n// Adding a new subnet to the imported VPC\nconst importedSubnet = new SubnetV2(this, 'NewSubnet', {\n availabilityZone: 'us-west-2a',\n ipv4CidrBlock: new IpCidr('10.2.2.0/24'),\n vpc: importedVpc,\n subnetType: SubnetType.PUBLIC,\n});\n\n// Adding gateways to the imported VPC\nimportedVpc.addInternetGateway();\nimportedVpc.addNatGateway({ subnet: importedSubnet });\nimportedVpc.addEgressOnlyInternetGateway();\n```\n\nYou can add more subnets as needed by including additional entries in the `isolatedSubnets`, `publicSubnets`, or other subnet type arrays (e.g., `privateSubnets`).\n\n### Importing Subnets\n\nYou can also import individual subnets using the `SubnetV2.fromSubnetV2Attributes()` method. This is useful when you need to work with specific subnets independently of a VPC.\n\nHere's an example of how to import a subnet:\n\n```ts\nSubnetV2.fromSubnetV2Attributes(this, 'ImportedSubnet', {\n subnetId: 'subnet-0123456789abcdef0',\n availabilityZone: 'us-west-2a',\n ipv4CidrBlock: '10.2.0.0/24',\n routeTableId: 'rtb-0871c310f98da2cbb',\n subnetType: SubnetType.PRIVATE_ISOLATED,\n});\n```\n\nBy importing existing VPCs and subnets, you can easily integrate your existing AWS infrastructure with new resources created through CDK. This is particularly useful when you need to work with pre-existing network configurations or when you're migrating existing infrastructure to CDK.\n\n### Tagging VPC and its components\n\nBy default, when a resource name is given to the construct, it automatically adds a tag with the key `Name` and the value set to the provided resource name. To add additional custom tags, use the Tag Manager, like this: `Tags.of(myConstruct).add('key', 'value');`.\n\nFor example, if the `vpcName` is set to `TestVpc`, the following code will add a tag to the VPC with `key: Name` and `value: TestVpc`.\n\n```ts\nconst vpc = new VpcV2(this, 'VPC-integ-test-tag', {\n primaryAddressBlock: IpAddresses.ipv4('10.1.0.0/16'),\n enableDnsHostnames: true,\n enableDnsSupport: true,\n vpcName: 'CDKintegTestVPC',\n});\n\n// Add custom tags if needed\nTags.of(vpc).add('Environment', 'Production');\n```\n\n## Transit Gateway\n\nThe AWS Transit Gateway construct library allows you to create and configure Transit Gateway resources using AWS CDK.\n\nSee [AWS Transit Gateway Docs](docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html) for more info.\n\n### Overview\n\nThe Transit Gateway construct (`TransitGateway`) is the main entry point for creating and managing your Transit Gateway infrastructure. It provides methods to create route tables, attach VPCs, and configure cross-account access.\n\nThe Transit Gateway construct library provides four main constructs:\n\n- `TransitGateway`: The central hub for your network connections\n- `TransitGatewayRouteTable`: Manages routing between attached networks\n- `TransitGatewayVpcAttachment`: Connects VPCs to the Transit Gateway\n- `TransitGatewayRoute`: Defines routing rules within your Transit Gateway\n\n### Basic Usage\n\nTo create a minimal deployable `TransitGateway`:\n\n```ts\nconst transitGateway = new TransitGateway(this, 'MyTransitGateway');\n```\n\n### Default Transit Gateway Route Table\n\nBy default, `TransitGateway` is created with a default `TransitGatewayRouteTable`, for which automatic Associations and automatic Propagations are enabled.\n\n> Note: When you create a default Transit Gateway in AWS Console, a default Transit Gateway Route Table is automatically created by AWS. However, when using the CDK Transit Gateway L2 construct, the underlying L1 construct is configured with `defaultRouteTableAssociation` and `defaultRouteTablePropagation` explicitly disabled. This ensures that AWS does not create the default route table, allowing the CDK to define a custom default route table instead.\n>\n> As a result, in the AWS Console, the **Default association route table** and **Default propagation route table** settings will appear as disabled. Despite this, the CDK still provides automatic association and propagation functionality through its internal implementation, which can be controlled using the `defaultRouteTableAssociation` and `defaultRouteTablePropagation` properties within the CDK.\n\n\nYou can disable the automatic Association/Propagation on the default `TransitGatewayRouteTable` via the `TransitGateway` properties. This will still create a default route table for you:\n\n```ts\nconst transitGateway = new TransitGateway(this, 'MyTransitGateway', {\n defaultRouteTableAssociation: false,\n defaultRouteTablePropagation: false,\n});\n```\n\n### Transit Gateway Route Table Management\n\nAdd additional Transit Gateway Route Tables using the `addRouteTable()` method:\n\n```ts\nconst transitGateway = new TransitGateway(this, 'MyTransitGateway');\n\nconst routeTable = transitGateway.addRouteTable('CustomRouteTable');\n```\n\n### Attaching VPCs to the Transit Gateway\n\nCurrently only VPC to Transit Gateway attachments are supported.\n\nCreate an attachment from a VPC to the Transit Gateway using the `attachVpc()` method:\n\n```ts\nconst myVpc = new VpcV2(this, 'Vpc');\nconst subnet1 = new SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: SubnetType.PUBLIC\n});\n\nconst subnet2 = new SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.1.0/24'),\n subnetType: SubnetType.PUBLIC\n});\n\nconst transitGateway = new TransitGateway(this, 'MyTransitGateway');\n\n// Create a basic attachment\nconst attachment = transitGateway.attachVpc('VpcAttachment', {\n vpc: myVpc,\n subnets: [subnet1, subnet2]\n});\n\n// Create an attachment with optional parameters\nconst attachmentWithOptions = transitGateway.attachVpc('VpcAttachmentWithOptions', {\n vpc: myVpc,\n subnets: [subnet1],\n vpcAttachmentOptions: {\n dnsSupport: true,\n applianceModeSupport: true,\n ipv6Support: true,\n securityGroupReferencingSupport: true,\n }\n});\n```\n\nIf you want to automatically associate and propagate routes with transit gateway route tables, you can pass the `associationRouteTable` and `propagationRouteTables` parameters. This will automatically create the necessary associations and propagations based on the provided route tables.\n\n```ts\nconst myVpc = new VpcV2(this, 'Vpc');\nconst subnet1 = new SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: SubnetType.PUBLIC\n});\n\nconst subnet2 = new SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.1.0/24'),\n subnetType: SubnetType.PUBLIC\n});\n\nconst transitGateway = new TransitGateway(this, 'MyTransitGateway');\nconst associationRouteTable = transitGateway.addRouteTable('AssociationRouteTable');\nconst propagationRouteTable1 = transitGateway.addRouteTable('PropagationRouteTable1');\nconst propagationRouteTable2 = transitGateway.addRouteTable('PropagationRouteTable2');\n\n// Create an attachment with automatically created association + propagations\nconst attachmentWithRoutes = transitGateway.attachVpc('VpcAttachment', {\n vpc: myVpc,\n subnets: [subnet1, subnet2],\n associationRouteTable: associationRouteTable,\n propagationRouteTables: [propagationRouteTable1, propagationRouteTable2],\n});\n```\n\nIn this example, the `associationRouteTable` is set to `associationRouteTable`, and `propagationRouteTables` is set to an array containing `propagationRouteTable1` and `propagationRouteTable2`. This triggers the automatic creation of route table associations and route propagations between the Transit Gateway and the specified route tables.\n\n### Adding static routes to the route table\n\nAdd static routes using either the `addRoute()` method to add an active route or `addBlackholeRoute()` to add a blackhole route:\n\n```ts\nconst transitGateway = new TransitGateway(this, 'MyTransitGateway');\nconst routeTable = transitGateway.addRouteTable('CustomRouteTable');\n\nconst myVpc = new VpcV2(this, 'Vpc');\nconst subnet = new SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: SubnetType.PUBLIC\n});\n\nconst attachment = transitGateway.attachVpc('VpcAttachment', {\n vpc: myVpc,\n subnets: [subnet]\n});\n\n// Add a static route to direct traffic\nrouteTable.addRoute('StaticRoute', attachment, '10.0.0.0/16');\n\n// Block unwanted traffic with a blackhole route\nrouteTable.addBlackholeRoute('BlackholeRoute', '172.16.0.0/16');\n```\n\n### Route Table Associations and Propagations\n\nConfigure route table associations and enable route propagation:\n\n```ts\nconst transitGateway = new TransitGateway(this, 'MyTransitGateway');\nconst routeTable = transitGateway.addRouteTable('CustomRouteTable');\nconst myVpc = new VpcV2(this, 'Vpc');\nconst subnet = new SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: SubnetType.PUBLIC\n});\nconst attachment = transitGateway.attachVpc('VpcAttachment', {\n vpc: myVpc,\n subnets: [subnet]\n});\n\n// Associate an attachment with a route table\nrouteTable.addAssociation('Association', attachment);\n\n// Enable route propagation for an attachment\nrouteTable.enablePropagation('Propagation', attachment);\n```\n\n**Associations** — The linking of a Transit Gateway attachment to a specific route table, which determines which routes that attachment will use for routing decisions.\n\n**Propagation** — The automatic advertisement of routes from an attachment to a route table, allowing the route table to learn about available network destinations.\n"
8788
+ "markdown": "# Amazon VpcV2 Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n![cdk-constructs: Developer Preview](https://img.shields.io/badge/cdk--constructs-developer--preview-informational.svg?style=for-the-badge)\n\n> The APIs of higher level constructs in this module are in **developer preview** before they\n> become stable. We will only make breaking changes to address unforeseen API issues. Therefore,\n> these APIs are not subject to [Semantic Versioning](https://semver.org/), and breaking changes\n> will be announced in release notes. This means that while you may use them, you may need to\n> update your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\n## VpcV2\n\n`VpcV2` is a re-write of the [`ec2.Vpc`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.Vpc.html) construct. This new construct enables higher level of customization\non the VPC being created. `VpcV2` implements the existing [`IVpc`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.IVpc.html), therefore,\n`VpcV2` is compatible with other constructs that accepts `IVpc` (e.g. [`ApplicationLoadBalancer`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationLoadBalancer.html#construct-props)).\n\n`VpcV2` supports the addition of both primary and secondary addresses. The primary address must be an IPv4 address, which can be specified as a CIDR string or assigned from an IPAM pool. Secondary addresses can be either IPv4 or IPv6.\nBy default, `VpcV2` assigns `10.0.0.0/16` as the primary CIDR if no other CIDR is specified.\n\nBelow is an example of creating a VPC with both IPv4 and IPv6 support:\n\n```ts\nconst stack = new Stack();\nnew VpcV2(this, 'Vpc', {\n primaryAddressBlock: IpAddresses.ipv4('10.0.0.0/24'),\n secondaryAddressBlocks: [\n IpAddresses.amazonProvidedIpv6({cidrBlockName: 'AmazonProvidedIpv6'}),\n ],\n});\n```\n\n`VpcV2` does not automatically create subnets or allocate IP addresses, which is different from the `Vpc` construct.\n\n## SubnetV2\n\n`SubnetV2` is a re-write of the [`ec2.Subnet`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.Subnet.html) construct.\nThis new construct can be used to add subnets to a `VpcV2` instance:\nNote: When defining a subnet with `SubnetV2`, CDK automatically creates a new route table, unless a route table is explicitly provided as an input to the construct.\nTo enable the `mapPublicIpOnLaunch` feature (which is `false` by default), set the property to `true` when creating the subnet.\n\n```ts\nconst stack = new Stack();\nconst myVpc = new VpcV2(this, 'Vpc', {\n secondaryAddressBlocks: [\n IpAddresses.amazonProvidedIpv6({ cidrBlockName: 'AmazonProvidedIp'}),\n ],\n});\n\nnew SubnetV2(this, 'subnetA', {\n vpc: myVpc,\n availabilityZone: 'us-east-1a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n ipv6CidrBlock: new IpCidr('2a05:d02c:25:4000::/60'),\n subnetType: SubnetType.PUBLIC,\n mapPublicIpOnLaunch: true,\n})\n```\n\nSince `VpcV2` does not create subnets automatically, users have full control over IP addresses allocation across subnets.\n\n## IP Addresses Management\n\nAdditional CIDRs can be added to the VPC via the `secondaryAddressBlocks` property.\nThe following example illustrates the options of defining these secondary address blocks using `IPAM`:\n\nNote: There’s currently an issue with IPAM pool deletion that may affect the `cdk --destroy` command. This is because IPAM takes time to detect when the IP address pool has been deallocated after the VPC is deleted. The current workaround is to wait until the IP address is fully deallocated from the pool before retrying the deletion. Below command can be used to check allocations for a pool using CLI\n\n```shell\naws ec2 get-ipam-pool-allocations --ipam-pool-id <ipam-pool-id>\n```\n\nRef: https://docs.aws.amazon.com/cli/latest/reference/ec2/get-ipam-pool-allocations.html\n\n```ts\nconst stack = new Stack();\nconst ipam = new Ipam(this, 'Ipam', {\n operatingRegions: ['us-west-1']\n});\nconst ipamPublicPool = ipam.publicScope.addPool('PublicPoolA', {\n addressFamily: AddressFamily.IP_V6,\n awsService: AwsServiceName.EC2,\n locale: 'us-west-1',\n publicIpSource: IpamPoolPublicIpSource.AMAZON,\n});\nipamPublicPool.provisionCidr('PublicPoolACidrA', { netmaskLength: 52 } );\n\nconst ipamPrivatePool = ipam.privateScope.addPool('PrivatePoolA', {\n addressFamily: AddressFamily.IP_V4,\n});\nipamPrivatePool.provisionCidr('PrivatePoolACidrA', { netmaskLength: 8 } );\n\nnew VpcV2(this, 'Vpc', {\n primaryAddressBlock: IpAddresses.ipv4('10.0.0.0/24'),\n secondaryAddressBlocks: [\n IpAddresses.amazonProvidedIpv6({ cidrBlockName: 'AmazonIpv6' }),\n IpAddresses.ipv6Ipam({\n ipamPool: ipamPublicPool,\n netmaskLength: 52,\n cidrBlockName: 'ipv6Ipam',\n }),\n IpAddresses.ipv4Ipam({\n ipamPool: ipamPrivatePool,\n netmaskLength: 8,\n cidrBlockName: 'ipv4Ipam',\n }),\n ],\n});\n```\n\n### Bring your own IPv6 addresses (BYOIP)\n\nIf you have your own IP address that you would like to use with EC2, you can set up an IPv6 pool via the AWS CLI, and use that pool ID in your application.\n\nOnce you have certified your IP address block with an ROA and have obtained an X-509 certificate, you can run the following command to provision your CIDR block in your AWS account:\n\n```shell\naws ec2 provision-byoip-cidr --region <region> --cidr <your CIDR block> --cidr-authorization-context Message=\"1|aws|<account>|<your CIDR block>|<expiration date>|SHA256\".Signature=\"<signature>\"\n```\n\nWhen your BYOIP CIDR is provisioned, you can run the following command to retrieve your IPv6 pool ID, which will be used in your VPC declaration:\n\n```shell\naws ec2 describe-byoip-cidr --region <region>\n```\n\nFor more help on setting up your IPv6 address, please review the [EC2 Documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html).\n\nOnce you have provisioned your address block, you can use the IPv6 in your VPC as follows:\n\n```ts\nconst myVpc = new VpcV2(this, 'Vpc', {\n primaryAddressBlock: IpAddresses.ipv4('10.1.0.0/16'),\n secondaryAddressBlocks: [IpAddresses.ipv6ByoipPool({\n cidrBlockName: 'MyByoipCidrBlock',\n ipv6PoolId: 'ipv6pool-ec2-someHashValue',\n ipv6CidrBlock: '2001:db8::/32'\n })],\n enableDnsHostnames: true,\n enableDnsSupport: true,\n});\n```\n\n## Routing\n\n`RouteTable` is a new construct that allows for route tables to be customized in a variety of ways. Using this construct, a customized route table can be added to the subnets defined using `SubnetV2`.\nFor instance, the following example shows how a custom route table can be created and appended to a `SubnetV2`:\n\n```ts\nconst myVpc = new VpcV2(this, 'Vpc');\nconst routeTable = new RouteTable(this, 'RouteTable', {\n vpc: myVpc,\n});\nconst subnet = new SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n routeTable,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: SubnetType.PRIVATE_ISOLATED,\n});\n```\n\n`Routes` can be created to link subnets to various different AWS services via gateways and endpoints. Each unique route target has its own dedicated construct that can be routed to a given subnet via the `Route` construct. An example using the `InternetGateway` construct can be seen below:\n\n```ts\nconst stack = new Stack();\nconst myVpc = new VpcV2(this, 'Vpc');\nconst routeTable = new RouteTable(this, 'RouteTable', {\n vpc: myVpc,\n});\nconst subnet = new SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: SubnetType.PRIVATE_ISOLATED });\n\nconst igw = new InternetGateway(this, 'IGW', {\n vpc: myVpc,\n});\nnew Route(this, 'IgwRoute', {\n routeTable,\n destination: '0.0.0.0/0',\n target: { gateway: igw },\n});\n```\n\nAlternatively, `Routes` can also be created via method `addRoute` in the `RouteTable` class. An example using the `EgressOnlyInternetGateway` construct can be seen below:\nNote: `EgressOnlyInternetGateway` can only be used to set up outbound IPv6 routing.\n\n```ts\nconst stack = new Stack();\nconst myVpc = new VpcV2(this, 'Vpc',{\n primaryAddressBlock: IpAddresses.ipv4('10.1.0.0/16'),\n secondaryAddressBlocks: [IpAddresses.amazonProvidedIpv6({\n cidrBlockName: 'AmazonProvided',\n })]\n });\n\nconst eigw = new EgressOnlyInternetGateway(this, 'EIGW', {\n vpc: myVpc,\n});\n\nconst routeTable = new RouteTable(this, 'RouteTable', {\n vpc: myVpc,\n});\n\nrouteTable.addRoute('EIGW', '::/0', { gateway: eigw });\n```\n\nOther route targets may require a deeper set of parameters to set up properly. For instance, the example below illustrates how to set up a `NatGateway`:\n\n```ts\nconst myVpc = new VpcV2(this, 'Vpc');\nconst routeTable = new RouteTable(this, 'RouteTable', {\n vpc: myVpc,\n});\nconst subnet = new SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: SubnetType.PRIVATE_ISOLATED });\n\nconst natgw = new NatGateway(this, 'NatGW', {\n subnet: subnet,\n vpc: myVpc,\n connectivityType: NatConnectivityType.PRIVATE,\n privateIpAddress: '10.0.0.42',\n});\nnew Route(this, 'NatGwRoute', {\n routeTable,\n destination: '0.0.0.0/0',\n target: { gateway: natgw },\n});\n```\n\nIt is also possible to set up endpoints connecting other AWS services. For instance, the example below illustrates the linking of a Dynamo DB endpoint via the existing `ec2.GatewayVpcEndpoint` construct as a route target:\n\n```ts\nconst stack = new Stack();\nconst myVpc = new VpcV2(this, 'Vpc');\nconst routeTable = new RouteTable(this, 'RouteTable', {\n vpc: myVpc,\n});\nconst subnet = new SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: SubnetType.PRIVATE });\n\nconst dynamoEndpoint = new ec2.GatewayVpcEndpoint(this, 'DynamoEndpoint', {\n service: ec2.GatewayVpcEndpointAwsService.DYNAMODB,\n vpc: myVpc,\n subnets: [subnet],\n});\nnew Route(this, 'DynamoDBRoute', {\n routeTable,\n destination: '0.0.0.0/0',\n target: { endpoint: dynamoEndpoint },\n});\n```\n\n## VPC Peering Connection\n\nVPC peering connection allows you to connect two VPCs and route traffic between them using private IP addresses. The VpcV2 construct supports creating VPC peering connections through the `VPCPeeringConnection` construct from the `route` module.\n\nPeering Connection cannot be established between two VPCs with overlapping CIDR ranges. Please make sure the two VPC CIDRs do not overlap with each other else it will throw an error.\n\nFor more information, see [What is VPC peering?](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html).\n\nThe following show examples of how to create a peering connection between two VPCs for all possible combinations of same-account or cross-account, and same-region or cross-region configurations.\n\nNote: You cannot create a VPC peering connection between VPCs that have matching or overlapping CIDR blocks\n\n**Case 1: Same Account and Same Region Peering Connection**\n\n```ts\nconst stack = new Stack();\n\nconst vpcA = new VpcV2(this, 'VpcA', {\n primaryAddressBlock: IpAddresses.ipv4('10.0.0.0/16'),\n});\n\nconst vpcB = new VpcV2(this, 'VpcB', {\n primaryAddressBlock: IpAddresses.ipv4('10.1.0.0/16'),\n});\n\nconst peeringConnection = vpcA.createPeeringConnection('sameAccountSameRegionPeering', {\n acceptorVpc: vpcB,\n});\n```\n\n**Case 2: Same Account and Cross Region Peering Connection**\n\nThere is no difference from Case 1 when calling `createPeeringConnection`. The only change is that one of the VPCs are created in another stack with a different region. To establish cross region VPC peering connection, acceptorVpc needs to be imported to the requestor VPC stack using `fromVpcV2Attributes` method.\n\n```ts\nconst app = new App();\n\nconst stackA = new Stack(app, 'VpcStackA', { env: { account: '000000000000', region: 'us-east-1' } });\nconst stackB = new Stack(app, 'VpcStackB', { env: { account: '000000000000', region: 'us-west-2' } });\n\nconst vpcA = new VpcV2(stackA, 'VpcA', {\n primaryAddressBlock: IpAddresses.ipv4('10.0.0.0/16'),\n});\n\nnew VpcV2(stackB, 'VpcB', {\n primaryAddressBlock: IpAddresses.ipv4('10.1.0.0/16'),\n});\n\nconst vpcB = VpcV2.fromVpcV2Attributes(stackA, 'ImportedVpcB', {\n vpcId: 'MockVpcBid',\n vpcCidrBlock: '10.1.0.0/16',\n region: 'us-west-2',\n ownerAccountId: '000000000000',\n });\n\n\nconst peeringConnection = vpcA.createPeeringConnection('sameAccountCrossRegionPeering', {\n acceptorVpc: vpcB,\n});\n```\n\n**Case 3: Cross Account Peering Connection**\n\nFor cross-account connections, the acceptor account needs an IAM role that grants the requestor account permission to initiate the connection. Create a new IAM role in the acceptor account using method `createAcceptorVpcRole` to provide the necessary permissions.\n\nOnce role is created in account, provide role arn for field `peerRoleArn` under method `createPeeringConnection`\n\n```ts\nconst stack = new Stack();\n\nconst acceptorVpc = new VpcV2(this, 'VpcA', {\n primaryAddressBlock: IpAddresses.ipv4('10.0.0.0/16'),\n});\n\nconst acceptorRoleArn = acceptorVpc.createAcceptorVpcRole('000000000000'); // Requestor account ID\n```\n\nAfter creating an IAM role in the acceptor account, we can initiate the peering connection request from the requestor VPC. Import acceptorVpc to the stack using `fromVpcV2Attributes` method, it is recommended to specify owner account id of the acceptor VPC in case of cross account peering connection, if acceptor VPC is hosted in different region provide region value for import as well.\nThe following code snippet demonstrates how to set up VPC peering between two VPCs in different AWS accounts using CDK:\n\n```ts\nconst stack = new Stack();\n\nconst acceptorVpc = VpcV2.fromVpcV2Attributes(this, 'acceptorVpc', {\n vpcId: 'vpc-XXXX',\n vpcCidrBlock: '10.0.0.0/16',\n region: 'us-east-2',\n ownerAccountId: '111111111111',\n });\n\nconst acceptorRoleArn = 'arn:aws:iam::111111111111:role/VpcPeeringRole';\n\nconst requestorVpc = new VpcV2(this, 'VpcB', {\n primaryAddressBlock: IpAddresses.ipv4('10.1.0.0/16'),\n});\n\nconst peeringConnection = requestorVpc.createPeeringConnection('crossAccountCrossRegionPeering', {\n acceptorVpc: acceptorVpc,\n peerRoleArn: acceptorRoleArn,\n});\n```\n\n### Route Table Configuration\n\nAfter establishing the VPC peering connection, routes must be added to the respective route tables in the VPCs to enable traffic flow. If a route is added to the requestor stack, information will be able to flow from the requestor VPC to the acceptor VPC, but not in the reverse direction. For bi-directional communication, routes need to be added in both VPCs from their respective stacks.\n\nFor more information, see [Update your route tables for a VPC peering connection](https://docs.aws.amazon.com/vpc/latest/peering/vpc-peering-routing.html).\n\n```ts\nconst stack = new Stack();\n\nconst acceptorVpc = new VpcV2(this, 'VpcA', {\n primaryAddressBlock: IpAddresses.ipv4('10.0.0.0/16'),\n});\n\nconst requestorVpc = new VpcV2(this, 'VpcB', {\n primaryAddressBlock: IpAddresses.ipv4('10.1.0.0/16'),\n});\n\nconst peeringConnection = requestorVpc.createPeeringConnection('peeringConnection', {\n acceptorVpc: acceptorVpc,\n});\n\nconst routeTable = new RouteTable(this, 'RouteTable', {\n vpc: requestorVpc,\n});\n\nrouteTable.addRoute('vpcPeeringRoute', '10.0.0.0/16', { gateway: peeringConnection });\n```\n\nThis can also be done using AWS CLI. For more information, see [create-route](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-route.html).\n\n```bash\n# Add a route to the requestor VPC route table\naws ec2 create-route --route-table-id rtb-requestor --destination-cidr-block 10.0.0.0/16 --vpc-peering-connection-id pcx-xxxxxxxx\n\n# For bi-directional add a route in the acceptor vpc account as well\naws ec2 create-route --route-table-id rtb-acceptor --destination-cidr-block 10.1.0.0/16 --vpc-peering-connection-id pcx-xxxxxxxx\n```\n\n### Deleting the Peering Connection\n\nTo delete a VPC peering connection, use the following command:\n\n```bash\naws ec2 delete-vpc-peering-connection --vpc-peering-connection-id pcx-xxxxxxxx\n```\n\nFor more information, see [Delete a VPC peering connection](https://docs.aws.amazon.com/vpc/latest/peering/create-vpc-peering-connection.html#delete-vpc-peering-connection).\n\n## Adding Egress-Only Internet Gateway to VPC\n\nAn egress-only internet gateway is a horizontally scaled, redundant, and highly available VPC component that allows outbound communication over IPv6 from instances in your VPC to the internet, and prevents the internet from initiating an IPv6 connection with your instances.\n\nFor more information see [Enable outbound IPv6 traffic using an egress-only internet gateway](https://docs.aws.amazon.com/vpc/latest/userguide/egress-only-internet-gateway.html).\n\nVpcV2 supports adding an egress only internet gateway to VPC using the `addEgressOnlyInternetGateway` method.\n\nBy default, this method sets up a route to all outbound IPv6 address ranges, unless a specific destination is provided by the user. It can only be configured for IPv6-enabled VPCs.\nThe `Subnets` parameter accepts a `SubnetFilter`, which can be based on a `SubnetType` in VpcV2. A new route will be added to the route tables of all subnets that match this filter.\n\n```ts\nconst stack = new Stack();\nconst myVpc = new VpcV2(this, 'Vpc',{\n primaryAddressBlock: IpAddresses.ipv4('10.1.0.0/16'),\n secondaryAddressBlocks: [IpAddresses.amazonProvidedIpv6({\n cidrBlockName: 'AmazonProvided',\n })]\n });\nconst routeTable = new RouteTable(this, 'RouteTable', {\n vpc: myVpc,\n});\nconst subnet = new SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n ipv6CidrBlock: new IpCidr('2001:db8:1::/64'),\n subnetType: SubnetType.PRIVATE });\n\nmyVpc.addEgressOnlyInternetGateway({\n subnets: [{subnetType: SubnetType.PRIVATE}],\n destination: '::/60',\n})\n```\n\n## Adding NATGateway to the VPC\n\nA NAT gateway is a Network Address Translation (NAT) service.You can use a NAT gateway so that instances in a private subnet can connect to services outside your VPC but external services cannot initiate a connection with those instances.\n\nFor more information, see [NAT gateway basics](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html).\n\nWhen you create a NAT gateway, you specify one of the following connectivity types:\n\n**Public – (Default)**: Instances in private subnets can connect to the internet through a public NAT gateway, but cannot receive unsolicited inbound connections from the internet\n\n**Private**: Instances in private subnets can connect to other VPCs or your on-premises network through a private NAT gateway.\n\nTo define the NAT gateway connectivity type as `ConnectivityType.Public`, you need to ensure that there is an IGW(Internet Gateway) attached to the subnet's VPC.\nSince a NATGW is associated with a particular subnet, providing `subnet` field in the input props is mandatory.\n\nAdditionally, you can set up a route in any route table with the target set to the NAT Gateway. The function `addNatGateway` returns a `NATGateway` object that you can reference later.\n\nThe code example below provides the definition for adding a NAT gateway to your subnet:\n\n```ts\nconst stack = new Stack();\nconst myVpc = new VpcV2(this, 'Vpc');\nconst routeTable = new RouteTable(this, 'RouteTable', {\n vpc: myVpc,\n});\nconst subnet = new SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: SubnetType.PUBLIC });\n\nmyVpc.addInternetGateway();\nmyVpc.addNatGateway({\n subnet: subnet,\n connectivityType: NatConnectivityType.PUBLIC,\n});\n```\n\n## Enable VPNGateway for the VPC\n\nA virtual private gateway is the endpoint on the VPC side of your VPN connection.\n\nFor more information, see [What is AWS Site-to-Site VPN?](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html).\n\nVPN route propagation is a feature in Amazon Web Services (AWS) that automatically updates route tables in your Virtual Private Cloud (VPC) with routes learned from a VPN connection.\n\nTo enable VPN route propagation, use the `vpnRoutePropagation` property to specify the subnets as an input to the function. VPN route propagation will then be enabled for each subnet with the corresponding route table IDs.\n\nAdditionally, you can set up a route in any route table with the target set to the VPN Gateway. The function `enableVpnGatewayV2` returns a `VPNGatewayV2` object that you can reference later.\n\nThe code example below provides the definition for setting up a VPN gateway with `vpnRoutePropagation` enabled:\n\n```ts\nconst stack = new Stack();\nconst myVpc = new VpcV2(this, 'Vpc');\nconst vpnGateway = myVpc.enableVpnGatewayV2({\n vpnRoutePropagation: [{ subnetType: SubnetType.PUBLIC }],\n type: VpnConnectionType.IPSEC_1,\n});\n\nconst routeTable = new RouteTable(stack, 'routeTable', {\n vpc: myVpc\n } );\n\nnew Route(stack, 'route', {\n destination: '172.31.0.0/24',\n target: { gateway: vpnGateway },\n routeTable: routeTable,\n});\n```\n\n## Adding InternetGateway to the VPC\n\nAn internet gateway is a horizontally scaled, redundant, and highly available VPC component that allows communication between your VPC and the internet. It supports both IPv4 and IPv6 traffic.\n\nFor more information, see [Enable VPC internet access using internet gateways](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-igw-internet-access.html).\n\nYou can add an internet gateway to a VPC using `addInternetGateway` method. By default, this method creates a route in all Public Subnets with outbound destination set to `0.0.0.0` for IPv4 and `::0` for IPv6 enabled VPC.\nInstead of using the default settings, you can configure a custom destination range by providing an optional input `destination` to the method.\nIn addition to the custom IP range, you can also choose to filter subnets where default routes should be created.\n\nThe code example below shows how to add an internet gateway with a custom outbound destination IP range:\n\n```ts\nconst stack = new Stack();\nconst myVpc = new VpcV2(this, 'Vpc');\n\nconst subnet = new SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: SubnetType.PUBLIC });\n\nmyVpc.addInternetGateway({\n ipv4Destination: '192.168.0.0/16',\n});\n```\n\nThe following code examples demonstrates how to add an internet gateway with a custom outbound destination IP range for specific subnets:\n\n```ts\nconst stack = new Stack();\nconst myVpc = new VpcV2(this, 'Vpc');\n\nconst mySubnet = new SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: SubnetType.PUBLIC });\n\nmyVpc.addInternetGateway({\n ipv4Destination: '192.168.0.0/16',\n subnets: [mySubnet],\n});\n```\n\n```ts\nconst stack = new Stack();\nconst myVpc = new VpcV2(this, 'Vpc');\n\nmyVpc.addInternetGateway({\n ipv4Destination: '192.168.0.0/16',\n subnets: [{subnetType: SubnetType.PRIVATE_WITH_EGRESS}],\n});\n```\n\n## Importing an existing VPC\n\nYou can import an existing VPC and its subnets using the `VpcV2.fromVpcV2Attributes()` method or an individual subnet using `SubnetV2.fromSubnetV2Attributes()` method.\n\n### Importing a VPC\n\nTo import an existing VPC, use the `VpcV2.fromVpcV2Attributes()` method. You'll need to provide the VPC ID, primary CIDR block, and information about the subnets. You can import secondary address as well created through IPAM, BYOIP(IPv4) or enabled through Amazon Provided IPv6. You must provide VPC Id and its primary CIDR block for importing it.\n\nIf you wish to add a new subnet to imported VPC, new subnet's IP range(IPv4) will be validated against provided secondary and primary address block to confirm that it is within the range of VPC.\n\nHere's an example of importing a VPC with only the required parameters\n\n``` ts\nconst stack = new Stack();\n\nconst importedVpc = VpcV2.fromVpcV2Attributes(stack, 'ImportedVpc', {\n vpcId: 'mockVpcID',\n vpcCidrBlock: '10.0.0.0/16',\n});\n```\n\nIn case of cross account or cross region VPC, its recommended to provide region and ownerAccountId so that these values for the VPC can be used to populate correct arn value for the VPC. If a VPC region and account ID is not provided, then region and account configured in the stack will be used. Furthermore, these fields will be referenced later while setting up VPC peering connection, so its necessary to set these fields to a correct value.\n\nBelow is an example of importing a cross region and cross account VPC, VPC arn for this case would be 'arn:aws:ec2:us-west-2:123456789012:vpc/mockVpcID'\n\n``` ts\nconst stack = new Stack();\n\n//Importing a cross account or cross region VPC\nconst importedVpc = VpcV2.fromVpcV2Attributes(stack, 'ImportedVpc', {\n vpcId: 'mockVpcID',\n vpcCidrBlock: '10.0.0.0/16',\n ownerAccountId: '123456789012',\n region: 'us-west-2',\n});\n```\n\nHere's an example of how to import a VPC with multiple CIDR blocks, IPv6 support, and different subnet types:\n\nIn this example, we're importing a VPC with:\n\n - A primary CIDR block (10.1.0.0/16)\n - One secondary IPv4 CIDR block (10.2.0.0/16)\n - Two secondary address using IPAM pool (IPv4 and IPv6)\n - VPC has Amazon-provided IPv6 CIDR enabled\n - An isolated subnet in us-west-2a\n - A public subnet in us-west-2b\n\n```ts\nconst stack = new Stack();\n\nconst importedVpc = VpcV2.fromVpcV2Attributes(this, 'ImportedVPC', {\n vpcId: 'vpc-XXX',\n vpcCidrBlock: '10.1.0.0/16',\n secondaryCidrBlocks: [\n {\n cidrBlock: '10.2.0.0/16',\n cidrBlockName: 'ImportedBlock1',\n },\n {\n ipv6IpamPoolId: 'ipam-pool-XXX',\n ipv6NetmaskLength: 52,\n cidrBlockName: 'ImportedIpamIpv6',\n },\n {\n ipv4IpamPoolId: 'ipam-pool-XXX',\n ipv4IpamProvisionedCidrs: ['10.2.0.0/16'],\n cidrBlockName: 'ImportedIpamIpv4',\n },\n {\n amazonProvidedIpv6CidrBlock: true,\n }\n ],\n subnets: [{\n subnetName: 'IsolatedSubnet2',\n subnetId: 'subnet-03cd773c0fe08ed26',\n subnetType: SubnetType.PRIVATE_ISOLATED,\n availabilityZone: 'us-west-2a',\n ipv4CidrBlock: '10.2.0.0/24',\n routeTableId: 'rtb-0871c310f98da2cbb',\n },\n {\n subnetId: 'subnet-0fa477e01db27d820',\n subnetType: SubnetType.PUBLIC,\n availabilityZone: 'us-west-2b',\n ipv4CidrBlock: '10.3.0.0/24',\n routeTableId: 'rtb-014f3043098fe4b96',\n }],\n});\n\n// You can now use the imported VPC in your stack\n\n// Adding a new subnet to the imported VPC\nconst importedSubnet = new SubnetV2(this, 'NewSubnet', {\n availabilityZone: 'us-west-2a',\n ipv4CidrBlock: new IpCidr('10.2.2.0/24'),\n vpc: importedVpc,\n subnetType: SubnetType.PUBLIC,\n});\n\n// Adding gateways to the imported VPC\nimportedVpc.addInternetGateway();\nimportedVpc.addNatGateway({ subnet: importedSubnet });\nimportedVpc.addEgressOnlyInternetGateway();\n```\n\nYou can add more subnets as needed by including additional entries in the `isolatedSubnets`, `publicSubnets`, or other subnet type arrays (e.g., `privateSubnets`).\n\n### Importing Subnets\n\nYou can also import individual subnets using the `SubnetV2.fromSubnetV2Attributes()` method. This is useful when you need to work with specific subnets independently of a VPC.\n\nHere's an example of how to import a subnet:\n\n```ts\nSubnetV2.fromSubnetV2Attributes(this, 'ImportedSubnet', {\n subnetId: 'subnet-0123456789abcdef0',\n availabilityZone: 'us-west-2a',\n ipv4CidrBlock: '10.2.0.0/24',\n routeTableId: 'rtb-0871c310f98da2cbb',\n subnetType: SubnetType.PRIVATE_ISOLATED,\n});\n```\n\nBy importing existing VPCs and subnets, you can easily integrate your existing AWS infrastructure with new resources created through CDK. This is particularly useful when you need to work with pre-existing network configurations or when you're migrating existing infrastructure to CDK.\n\n### Tagging VPC and its components\n\nBy default, when a resource name is given to the construct, it automatically adds a tag with the key `Name` and the value set to the provided resource name. To add additional custom tags, use the Tag Manager, like this: `Tags.of(myConstruct).add('key', 'value');`.\n\nFor example, if the `vpcName` is set to `TestVpc`, the following code will add a tag to the VPC with `key: Name` and `value: TestVpc`.\n\n```ts\nconst vpc = new VpcV2(this, 'VPC-integ-test-tag', {\n primaryAddressBlock: IpAddresses.ipv4('10.1.0.0/16'),\n enableDnsHostnames: true,\n enableDnsSupport: true,\n vpcName: 'CDKintegTestVPC',\n});\n\n// Add custom tags if needed\nTags.of(vpc).add('Environment', 'Production');\n```\n\n## Transit Gateway\n\nThe AWS Transit Gateway construct library allows you to create and configure Transit Gateway resources using AWS CDK.\n\nSee [AWS Transit Gateway Docs](docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html) for more info.\n\n### Overview\n\nThe Transit Gateway construct (`TransitGateway`) is the main entry point for creating and managing your Transit Gateway infrastructure. It provides methods to create route tables, attach VPCs, and configure cross-account access.\n\nThe Transit Gateway construct library provides four main constructs:\n\n- `TransitGateway`: The central hub for your network connections\n- `TransitGatewayRouteTable`: Manages routing between attached networks\n- `TransitGatewayVpcAttachment`: Connects VPCs to the Transit Gateway\n- `TransitGatewayRoute`: Defines routing rules within your Transit Gateway\n\n### Basic Usage\n\nTo create a minimal deployable `TransitGateway`:\n\n```ts\nconst transitGateway = new TransitGateway(this, 'MyTransitGateway');\n```\n\n### Default Transit Gateway Route Table\n\nBy default, `TransitGateway` is created with a default `TransitGatewayRouteTable`, for which automatic Associations and automatic Propagations are enabled.\n\n> Note: When you create a default Transit Gateway in AWS Console, a default Transit Gateway Route Table is automatically created by AWS. However, when using the CDK Transit Gateway L2 construct, the underlying L1 construct is configured with `defaultRouteTableAssociation` and `defaultRouteTablePropagation` explicitly disabled. This ensures that AWS does not create the default route table, allowing the CDK to define a custom default route table instead.\n>\n> As a result, in the AWS Console, the **Default association route table** and **Default propagation route table** settings will appear as disabled. Despite this, the CDK still provides automatic association and propagation functionality through its internal implementation, which can be controlled using the `defaultRouteTableAssociation` and `defaultRouteTablePropagation` properties within the CDK.\n\n\nYou can disable the automatic Association/Propagation on the default `TransitGatewayRouteTable` via the `TransitGateway` properties. This will still create a default route table for you:\n\n```ts\nconst transitGateway = new TransitGateway(this, 'MyTransitGateway', {\n defaultRouteTableAssociation: false,\n defaultRouteTablePropagation: false,\n});\n```\n\n### Transit Gateway Route Table Management\n\nAdd additional Transit Gateway Route Tables using the `addRouteTable()` method:\n\n```ts\nconst transitGateway = new TransitGateway(this, 'MyTransitGateway');\n\nconst routeTable = transitGateway.addRouteTable('CustomRouteTable');\n```\n\n### Attaching VPCs to the Transit Gateway\n\nCurrently only VPC to Transit Gateway attachments are supported.\n\nCreate an attachment from a VPC to the Transit Gateway using the `attachVpc()` method:\n\n```ts\nconst myVpc = new VpcV2(this, 'Vpc');\nconst subnet1 = new SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: SubnetType.PUBLIC\n});\n\nconst subnet2 = new SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.1.0/24'),\n subnetType: SubnetType.PUBLIC\n});\n\nconst transitGateway = new TransitGateway(this, 'MyTransitGateway');\n\n// Create a basic attachment\nconst attachment = transitGateway.attachVpc('VpcAttachment', {\n vpc: myVpc,\n subnets: [subnet1, subnet2]\n});\n\n// Create an attachment with optional parameters\nconst attachmentWithOptions = transitGateway.attachVpc('VpcAttachmentWithOptions', {\n vpc: myVpc,\n subnets: [subnet1],\n vpcAttachmentOptions: {\n dnsSupport: true,\n applianceModeSupport: true,\n ipv6Support: true,\n securityGroupReferencingSupport: true,\n }\n});\n```\n\nIf you want to automatically associate and propagate routes with transit gateway route tables, you can pass the `associationRouteTable` and `propagationRouteTables` parameters. This will automatically create the necessary associations and propagations based on the provided route tables.\n\n```ts\nconst myVpc = new VpcV2(this, 'Vpc');\nconst subnet1 = new SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: SubnetType.PUBLIC\n});\n\nconst subnet2 = new SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.1.0/24'),\n subnetType: SubnetType.PUBLIC\n});\n\nconst transitGateway = new TransitGateway(this, 'MyTransitGateway');\nconst associationRouteTable = transitGateway.addRouteTable('AssociationRouteTable');\nconst propagationRouteTable1 = transitGateway.addRouteTable('PropagationRouteTable1');\nconst propagationRouteTable2 = transitGateway.addRouteTable('PropagationRouteTable2');\n\n// Create an attachment with automatically created association + propagations\nconst attachmentWithRoutes = transitGateway.attachVpc('VpcAttachment', {\n vpc: myVpc,\n subnets: [subnet1, subnet2],\n associationRouteTable: associationRouteTable,\n propagationRouteTables: [propagationRouteTable1, propagationRouteTable2],\n});\n```\n\nIn this example, the `associationRouteTable` is set to `associationRouteTable`, and `propagationRouteTables` is set to an array containing `propagationRouteTable1` and `propagationRouteTable2`. This triggers the automatic creation of route table associations and route propagations between the Transit Gateway and the specified route tables.\n\n### Adding static routes to the route table\n\nAdd static routes using either the `addRoute()` method to add an active route or `addBlackholeRoute()` to add a blackhole route:\n\n```ts\nconst transitGateway = new TransitGateway(this, 'MyTransitGateway');\nconst routeTable = transitGateway.addRouteTable('CustomRouteTable');\n\nconst myVpc = new VpcV2(this, 'Vpc');\nconst subnet = new SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: SubnetType.PUBLIC\n});\n\nconst attachment = transitGateway.attachVpc('VpcAttachment', {\n vpc: myVpc,\n subnets: [subnet]\n});\n\n// Add a static route to direct traffic\nrouteTable.addRoute('StaticRoute', attachment, '10.0.0.0/16');\n\n// Block unwanted traffic with a blackhole route\nrouteTable.addBlackholeRoute('BlackholeRoute', '172.16.0.0/16');\n```\n\n### Route Table Associations and Propagations\n\nConfigure route table associations and enable route propagation:\n\n```ts\nconst transitGateway = new TransitGateway(this, 'MyTransitGateway');\nconst routeTable = transitGateway.addRouteTable('CustomRouteTable');\nconst myVpc = new VpcV2(this, 'Vpc');\nconst subnet = new SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: SubnetType.PUBLIC\n});\nconst attachment = transitGateway.attachVpc('VpcAttachment', {\n vpc: myVpc,\n subnets: [subnet]\n});\n\n// Associate an attachment with a route table\nrouteTable.addAssociation('Association', attachment);\n\n// Enable route propagation for an attachment\nrouteTable.enablePropagation('Propagation', attachment);\n```\n\n**Associations** — The linking of a Transit Gateway attachment to a specific route table, which determines which routes that attachment will use for routing decisions.\n\n**Propagation** — The automatic advertisement of routes from an attachment to a route table, allowing the route table to learn about available network destinations.\n"
8731
8789
  },
8732
8790
  "repository": {
8733
8791
  "directory": "packages/@aws-cdk/aws-ec2-alpha",
@@ -9057,7 +9115,7 @@
9057
9115
  },
9058
9116
  "locationInModule": {
9059
9117
  "filename": "lib/route.ts",
9060
- "line": 245
9118
+ "line": 246
9061
9119
  },
9062
9120
  "parameters": [
9063
9121
  {
@@ -9086,7 +9144,7 @@
9086
9144
  "kind": "class",
9087
9145
  "locationInModule": {
9088
9146
  "filename": "lib/route.ts",
9089
- "line": 226
9147
+ "line": 227
9090
9148
  },
9091
9149
  "name": "EgressOnlyInternetGateway",
9092
9150
  "properties": [
@@ -9099,7 +9157,7 @@
9099
9157
  "immutable": true,
9100
9158
  "locationInModule": {
9101
9159
  "filename": "lib/route.ts",
9102
- "line": 229
9160
+ "line": 230
9103
9161
  },
9104
9162
  "name": "PROPERTY_INJECTION_ID",
9105
9163
  "static": true,
@@ -9115,7 +9173,7 @@
9115
9173
  "immutable": true,
9116
9174
  "locationInModule": {
9117
9175
  "filename": "lib/route.ts",
9118
- "line": 243
9176
+ "line": 244
9119
9177
  },
9120
9178
  "name": "resource",
9121
9179
  "type": {
@@ -9130,7 +9188,7 @@
9130
9188
  "immutable": true,
9131
9189
  "locationInModule": {
9132
9190
  "filename": "lib/route.ts",
9133
- "line": 238
9191
+ "line": 239
9134
9192
  },
9135
9193
  "name": "routerTargetId",
9136
9194
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteTarget",
@@ -9146,7 +9204,7 @@
9146
9204
  "immutable": true,
9147
9205
  "locationInModule": {
9148
9206
  "filename": "lib/route.ts",
9149
- "line": 233
9207
+ "line": 234
9150
9208
  },
9151
9209
  "name": "routerType",
9152
9210
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteTarget",
@@ -9172,7 +9230,7 @@
9172
9230
  "kind": "interface",
9173
9231
  "locationInModule": {
9174
9232
  "filename": "lib/vpc-v2-base.ts",
9175
- "line": 52
9233
+ "line": 53
9176
9234
  },
9177
9235
  "name": "EgressOnlyInternetGatewayOptions",
9178
9236
  "properties": [
@@ -9186,7 +9244,7 @@
9186
9244
  "immutable": true,
9187
9245
  "locationInModule": {
9188
9246
  "filename": "lib/vpc-v2-base.ts",
9189
- "line": 65
9247
+ "line": 66
9190
9248
  },
9191
9249
  "name": "destination",
9192
9250
  "optional": true,
@@ -9205,7 +9263,7 @@
9205
9263
  "immutable": true,
9206
9264
  "locationInModule": {
9207
9265
  "filename": "lib/vpc-v2-base.ts",
9208
- "line": 73
9266
+ "line": 74
9209
9267
  },
9210
9268
  "name": "egressOnlyInternetGatewayName",
9211
9269
  "optional": true,
@@ -9223,7 +9281,7 @@
9223
9281
  "immutable": true,
9224
9282
  "locationInModule": {
9225
9283
  "filename": "lib/vpc-v2-base.ts",
9226
- "line": 58
9284
+ "line": 59
9227
9285
  },
9228
9286
  "name": "subnets",
9229
9287
  "optional": true,
@@ -9254,7 +9312,7 @@
9254
9312
  "kind": "interface",
9255
9313
  "locationInModule": {
9256
9314
  "filename": "lib/route.ts",
9257
- "line": 48
9315
+ "line": 49
9258
9316
  },
9259
9317
  "name": "EgressOnlyInternetGatewayProps",
9260
9318
  "properties": [
@@ -9267,7 +9325,7 @@
9267
9325
  "immutable": true,
9268
9326
  "locationInModule": {
9269
9327
  "filename": "lib/route.ts",
9270
- "line": 52
9328
+ "line": 53
9271
9329
  },
9272
9330
  "name": "vpc",
9273
9331
  "type": {
@@ -9284,7 +9342,7 @@
9284
9342
  "immutable": true,
9285
9343
  "locationInModule": {
9286
9344
  "filename": "lib/route.ts",
9287
- "line": 59
9345
+ "line": 60
9288
9346
  },
9289
9347
  "name": "egressOnlyInternetGatewayName",
9290
9348
  "optional": true,
@@ -9553,7 +9611,7 @@
9553
9611
  "kind": "interface",
9554
9612
  "locationInModule": {
9555
9613
  "filename": "lib/route.ts",
9556
- "line": 33
9614
+ "line": 34
9557
9615
  },
9558
9616
  "name": "IRouteTarget",
9559
9617
  "properties": [
@@ -9566,7 +9624,7 @@
9566
9624
  "immutable": true,
9567
9625
  "locationInModule": {
9568
9626
  "filename": "lib/route.ts",
9569
- "line": 42
9627
+ "line": 43
9570
9628
  },
9571
9629
  "name": "routerTargetId",
9572
9630
  "type": {
@@ -9582,7 +9640,7 @@
9582
9640
  "immutable": true,
9583
9641
  "locationInModule": {
9584
9642
  "filename": "lib/route.ts",
9585
- "line": 37
9643
+ "line": 38
9586
9644
  },
9587
9645
  "name": "routerType",
9588
9646
  "type": {
@@ -9605,7 +9663,7 @@
9605
9663
  "kind": "interface",
9606
9664
  "locationInModule": {
9607
9665
  "filename": "lib/route.ts",
9608
- "line": 658
9666
+ "line": 659
9609
9667
  },
9610
9668
  "name": "IRouteV2",
9611
9669
  "properties": [
@@ -9619,7 +9677,7 @@
9619
9677
  "immutable": true,
9620
9678
  "locationInModule": {
9621
9679
  "filename": "lib/route.ts",
9622
- "line": 671
9680
+ "line": 672
9623
9681
  },
9624
9682
  "name": "destination",
9625
9683
  "type": {
@@ -9638,7 +9696,7 @@
9638
9696
  "immutable": true,
9639
9697
  "locationInModule": {
9640
9698
  "filename": "lib/route.ts",
9641
- "line": 663
9699
+ "line": 664
9642
9700
  },
9643
9701
  "name": "routeTable",
9644
9702
  "type": {
@@ -9654,7 +9712,7 @@
9654
9712
  "immutable": true,
9655
9713
  "locationInModule": {
9656
9714
  "filename": "lib/route.ts",
9657
- "line": 676
9715
+ "line": 677
9658
9716
  },
9659
9717
  "name": "target",
9660
9718
  "type": {
@@ -9677,7 +9735,7 @@
9677
9735
  "kind": "interface",
9678
9736
  "locationInModule": {
9679
9737
  "filename": "lib/subnet-v2.ts",
9680
- "line": 133
9738
+ "line": 134
9681
9739
  },
9682
9740
  "name": "ISubnetV2",
9683
9741
  "properties": [
@@ -9690,7 +9748,7 @@
9690
9748
  "immutable": true,
9691
9749
  "locationInModule": {
9692
9750
  "filename": "lib/subnet-v2.ts",
9693
- "line": 138
9751
+ "line": 139
9694
9752
  },
9695
9753
  "name": "ipv6CidrBlock",
9696
9754
  "optional": true,
@@ -9710,7 +9768,7 @@
9710
9768
  "immutable": true,
9711
9769
  "locationInModule": {
9712
9770
  "filename": "lib/subnet-v2.ts",
9713
- "line": 145
9771
+ "line": 146
9714
9772
  },
9715
9773
  "name": "subnetType",
9716
9774
  "optional": true,
@@ -10500,7 +10558,7 @@
10500
10558
  "kind": "interface",
10501
10559
  "locationInModule": {
10502
10560
  "filename": "lib/vpc-v2-base.ts",
10503
- "line": 147
10561
+ "line": 148
10504
10562
  },
10505
10563
  "methods": [
10506
10564
  {
@@ -10512,7 +10570,7 @@
10512
10570
  },
10513
10571
  "locationInModule": {
10514
10572
  "filename": "lib/vpc-v2-base.ts",
10515
- "line": 195
10573
+ "line": 196
10516
10574
  },
10517
10575
  "name": "addEgressOnlyInternetGateway",
10518
10576
  "parameters": [
@@ -10540,7 +10598,7 @@
10540
10598
  },
10541
10599
  "locationInModule": {
10542
10600
  "filename": "lib/vpc-v2-base.ts",
10543
- "line": 203
10601
+ "line": 204
10544
10602
  },
10545
10603
  "name": "addInternetGateway",
10546
10604
  "parameters": [
@@ -10568,7 +10626,7 @@
10568
10626
  },
10569
10627
  "locationInModule": {
10570
10628
  "filename": "lib/vpc-v2-base.ts",
10571
- "line": 220
10629
+ "line": 221
10572
10630
  },
10573
10631
  "name": "addNatGateway",
10574
10632
  "parameters": [
@@ -10594,7 +10652,7 @@
10594
10652
  },
10595
10653
  "locationInModule": {
10596
10654
  "filename": "lib/vpc-v2-base.ts",
10597
- "line": 227
10655
+ "line": 228
10598
10656
  },
10599
10657
  "name": "createAcceptorVpcRole",
10600
10658
  "parameters": [
@@ -10620,7 +10678,7 @@
10620
10678
  },
10621
10679
  "locationInModule": {
10622
10680
  "filename": "lib/vpc-v2-base.ts",
10623
- "line": 234
10681
+ "line": 235
10624
10682
  },
10625
10683
  "name": "createPeeringConnection",
10626
10684
  "parameters": [
@@ -10646,14 +10704,14 @@
10646
10704
  {
10647
10705
  "abstract": true,
10648
10706
  "docs": {
10649
- "default": "- no route propogation",
10707
+ "default": "- no route propagation",
10650
10708
  "remarks": "For more information, see the {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpngateway.html}.",
10651
10709
  "stability": "experimental",
10652
- "summary": "Adds VPN Gateway to VPC and set route propogation."
10710
+ "summary": "Adds VPN Gateway to VPC and set route propagation."
10653
10711
  },
10654
10712
  "locationInModule": {
10655
10713
  "filename": "lib/vpc-v2-base.ts",
10656
- "line": 211
10714
+ "line": 212
10657
10715
  },
10658
10716
  "name": "enableVpnGatewayV2",
10659
10717
  "parameters": [
@@ -10683,7 +10741,7 @@
10683
10741
  "immutable": true,
10684
10742
  "locationInModule": {
10685
10743
  "filename": "lib/vpc-v2-base.ts",
10686
- "line": 161
10744
+ "line": 162
10687
10745
  },
10688
10746
  "name": "ipv4CidrBlock",
10689
10747
  "type": {
@@ -10700,7 +10758,7 @@
10700
10758
  "immutable": true,
10701
10759
  "locationInModule": {
10702
10760
  "filename": "lib/vpc-v2-base.ts",
10703
- "line": 175
10761
+ "line": 176
10704
10762
  },
10705
10763
  "name": "ownerAccountId",
10706
10764
  "type": {
@@ -10717,7 +10775,7 @@
10717
10775
  "immutable": true,
10718
10776
  "locationInModule": {
10719
10777
  "filename": "lib/vpc-v2-base.ts",
10720
- "line": 168
10778
+ "line": 169
10721
10779
  },
10722
10780
  "name": "region",
10723
10781
  "type": {
@@ -10733,7 +10791,7 @@
10733
10791
  "immutable": true,
10734
10792
  "locationInModule": {
10735
10793
  "filename": "lib/vpc-v2-base.ts",
10736
- "line": 182
10794
+ "line": 183
10737
10795
  },
10738
10796
  "name": "ipv4IpamProvisionedCidrs",
10739
10797
  "optional": true,
@@ -10756,7 +10814,7 @@
10756
10814
  "immutable": true,
10757
10815
  "locationInModule": {
10758
10816
  "filename": "lib/vpc-v2-base.ts",
10759
- "line": 153
10817
+ "line": 154
10760
10818
  },
10761
10819
  "name": "secondaryCidrBlock",
10762
10820
  "optional": true,
@@ -10781,7 +10839,7 @@
10781
10839
  "immutable": true,
10782
10840
  "locationInModule": {
10783
10841
  "filename": "lib/vpc-v2-base.ts",
10784
- "line": 188
10842
+ "line": 189
10785
10843
  },
10786
10844
  "name": "vpcName",
10787
10845
  "optional": true,
@@ -10811,7 +10869,7 @@
10811
10869
  },
10812
10870
  "locationInModule": {
10813
10871
  "filename": "lib/route.ts",
10814
- "line": 292
10872
+ "line": 293
10815
10873
  },
10816
10874
  "parameters": [
10817
10875
  {
@@ -10840,7 +10898,7 @@
10840
10898
  "kind": "class",
10841
10899
  "locationInModule": {
10842
10900
  "filename": "lib/route.ts",
10843
- "line": 268
10901
+ "line": 269
10844
10902
  },
10845
10903
  "name": "InternetGateway",
10846
10904
  "properties": [
@@ -10853,7 +10911,7 @@
10853
10911
  "immutable": true,
10854
10912
  "locationInModule": {
10855
10913
  "filename": "lib/route.ts",
10856
- "line": 271
10914
+ "line": 272
10857
10915
  },
10858
10916
  "name": "PROPERTY_INJECTION_ID",
10859
10917
  "static": true,
@@ -10869,7 +10927,7 @@
10869
10927
  "immutable": true,
10870
10928
  "locationInModule": {
10871
10929
  "filename": "lib/route.ts",
10872
- "line": 290
10930
+ "line": 291
10873
10931
  },
10874
10932
  "name": "resource",
10875
10933
  "type": {
@@ -10884,7 +10942,7 @@
10884
10942
  "immutable": true,
10885
10943
  "locationInModule": {
10886
10944
  "filename": "lib/route.ts",
10887
- "line": 280
10945
+ "line": 281
10888
10946
  },
10889
10947
  "name": "routerTargetId",
10890
10948
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteTarget",
@@ -10900,7 +10958,7 @@
10900
10958
  "immutable": true,
10901
10959
  "locationInModule": {
10902
10960
  "filename": "lib/route.ts",
10903
- "line": 275
10961
+ "line": 276
10904
10962
  },
10905
10963
  "name": "routerType",
10906
10964
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteTarget",
@@ -10916,7 +10974,7 @@
10916
10974
  "immutable": true,
10917
10975
  "locationInModule": {
10918
10976
  "filename": "lib/route.ts",
10919
- "line": 285
10977
+ "line": 286
10920
10978
  },
10921
10979
  "name": "vpcId",
10922
10980
  "type": {
@@ -10941,7 +10999,7 @@
10941
10999
  "kind": "interface",
10942
11000
  "locationInModule": {
10943
11001
  "filename": "lib/vpc-v2-base.ts",
10944
- "line": 79
11002
+ "line": 80
10945
11003
  },
10946
11004
  "name": "InternetGatewayOptions",
10947
11005
  "properties": [
@@ -10956,7 +11014,7 @@
10956
11014
  "immutable": true,
10957
11015
  "locationInModule": {
10958
11016
  "filename": "lib/vpc-v2-base.ts",
10959
- "line": 101
11017
+ "line": 102
10960
11018
  },
10961
11019
  "name": "internetGatewayName",
10962
11020
  "optional": true,
@@ -10974,7 +11032,7 @@
10974
11032
  "immutable": true,
10975
11033
  "locationInModule": {
10976
11034
  "filename": "lib/vpc-v2-base.ts",
10977
- "line": 86
11035
+ "line": 87
10978
11036
  },
10979
11037
  "name": "ipv4Destination",
10980
11038
  "optional": true,
@@ -10992,7 +11050,7 @@
10992
11050
  "immutable": true,
10993
11051
  "locationInModule": {
10994
11052
  "filename": "lib/vpc-v2-base.ts",
10995
- "line": 93
11053
+ "line": 94
10996
11054
  },
10997
11055
  "name": "ipv6Destination",
10998
11056
  "optional": true,
@@ -11010,7 +11068,7 @@
11010
11068
  "immutable": true,
11011
11069
  "locationInModule": {
11012
11070
  "filename": "lib/vpc-v2-base.ts",
11013
- "line": 108
11071
+ "line": 109
11014
11072
  },
11015
11073
  "name": "subnets",
11016
11074
  "optional": true,
@@ -11041,7 +11099,7 @@
11041
11099
  "kind": "interface",
11042
11100
  "locationInModule": {
11043
11101
  "filename": "lib/route.ts",
11044
- "line": 65
11102
+ "line": 66
11045
11103
  },
11046
11104
  "name": "InternetGatewayProps",
11047
11105
  "properties": [
@@ -11054,7 +11112,7 @@
11054
11112
  "immutable": true,
11055
11113
  "locationInModule": {
11056
11114
  "filename": "lib/route.ts",
11057
- "line": 69
11115
+ "line": 70
11058
11116
  },
11059
11117
  "name": "vpc",
11060
11118
  "type": {
@@ -11071,7 +11129,7 @@
11071
11129
  "immutable": true,
11072
11130
  "locationInModule": {
11073
11131
  "filename": "lib/route.ts",
11074
- "line": 76
11132
+ "line": 77
11075
11133
  },
11076
11134
  "name": "internetGatewayName",
11077
11135
  "optional": true,
@@ -11257,7 +11315,7 @@
11257
11315
  },
11258
11316
  "locationInModule": {
11259
11317
  "filename": "lib/subnet-v2.ts",
11260
- "line": 39
11318
+ "line": 40
11261
11319
  },
11262
11320
  "parameters": [
11263
11321
  {
@@ -11271,7 +11329,7 @@
11271
11329
  "kind": "class",
11272
11330
  "locationInModule": {
11273
11331
  "filename": "lib/subnet-v2.ts",
11274
- "line": 33
11332
+ "line": 34
11275
11333
  },
11276
11334
  "name": "IpCidr",
11277
11335
  "properties": [
@@ -11283,7 +11341,7 @@
11283
11341
  "immutable": true,
11284
11342
  "locationInModule": {
11285
11343
  "filename": "lib/subnet-v2.ts",
11286
- "line": 38
11344
+ "line": 39
11287
11345
  },
11288
11346
  "name": "cidr",
11289
11347
  "type": {
@@ -11728,7 +11786,7 @@
11728
11786
  "docs": {
11729
11787
  "default": "- Stack.region if defined in the stack",
11730
11788
  "remarks": "Operating Regions are AWS Regions where the IPAM is allowed to manage IP address CIDRs\nFor more information about operating Regions, see [Create an IPAM](https://docs.aws.amazon.com//vpc/latest/ipam/create-ipam.html) in the *Amazon VPC IPAM User Guide* .",
11731
- "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipam.html#cfn-ec2-ipam-operatingregions",
11789
+ "see": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipam.html#cfn-ec2-ipam-operatingregions",
11732
11790
  "stability": "experimental",
11733
11791
  "summary": "The operating Regions for an IPAM."
11734
11792
  },
@@ -11898,7 +11956,7 @@
11898
11956
  "kind": "enum",
11899
11957
  "locationInModule": {
11900
11958
  "filename": "lib/route.ts",
11901
- "line": 18
11959
+ "line": 19
11902
11960
  },
11903
11961
  "members": [
11904
11962
  {
@@ -11938,7 +11996,7 @@
11938
11996
  },
11939
11997
  "locationInModule": {
11940
11998
  "filename": "lib/route.ts",
11941
- "line": 455
11999
+ "line": 456
11942
12000
  },
11943
12001
  "parameters": [
11944
12002
  {
@@ -11967,7 +12025,7 @@
11967
12025
  "kind": "class",
11968
12026
  "locationInModule": {
11969
12027
  "filename": "lib/route.ts",
11970
- "line": 410
12028
+ "line": 411
11971
12029
  },
11972
12030
  "name": "NatGateway",
11973
12031
  "properties": [
@@ -11980,7 +12038,7 @@
11980
12038
  "immutable": true,
11981
12039
  "locationInModule": {
11982
12040
  "filename": "lib/route.ts",
11983
- "line": 413
12041
+ "line": 414
11984
12042
  },
11985
12043
  "name": "PROPERTY_INJECTION_ID",
11986
12044
  "static": true,
@@ -11999,7 +12057,7 @@
11999
12057
  "immutable": true,
12000
12058
  "locationInModule": {
12001
12059
  "filename": "lib/route.ts",
12002
- "line": 418
12060
+ "line": 419
12003
12061
  },
12004
12062
  "name": "natGatewayId",
12005
12063
  "type": {
@@ -12014,7 +12072,7 @@
12014
12072
  "immutable": true,
12015
12073
  "locationInModule": {
12016
12074
  "filename": "lib/route.ts",
12017
- "line": 448
12075
+ "line": 449
12018
12076
  },
12019
12077
  "name": "resource",
12020
12078
  "type": {
@@ -12029,7 +12087,7 @@
12029
12087
  "immutable": true,
12030
12088
  "locationInModule": {
12031
12089
  "filename": "lib/route.ts",
12032
- "line": 428
12090
+ "line": 429
12033
12091
  },
12034
12092
  "name": "routerTargetId",
12035
12093
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteTarget",
@@ -12045,7 +12103,7 @@
12045
12103
  "immutable": true,
12046
12104
  "locationInModule": {
12047
12105
  "filename": "lib/route.ts",
12048
- "line": 423
12106
+ "line": 424
12049
12107
  },
12050
12108
  "name": "routerType",
12051
12109
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteTarget",
@@ -12062,7 +12120,7 @@
12062
12120
  "immutable": true,
12063
12121
  "locationInModule": {
12064
12122
  "filename": "lib/route.ts",
12065
- "line": 435
12123
+ "line": 436
12066
12124
  },
12067
12125
  "name": "connectivityType",
12068
12126
  "optional": true,
@@ -12078,7 +12136,7 @@
12078
12136
  "immutable": true,
12079
12137
  "locationInModule": {
12080
12138
  "filename": "lib/route.ts",
12081
- "line": 453
12139
+ "line": 454
12082
12140
  },
12083
12141
  "name": "eip",
12084
12142
  "optional": true,
@@ -12095,7 +12153,7 @@
12095
12153
  "immutable": true,
12096
12154
  "locationInModule": {
12097
12155
  "filename": "lib/route.ts",
12098
- "line": 443
12156
+ "line": 444
12099
12157
  },
12100
12158
  "name": "maxDrainDuration",
12101
12159
  "optional": true,
@@ -12121,7 +12179,7 @@
12121
12179
  "kind": "interface",
12122
12180
  "locationInModule": {
12123
12181
  "filename": "lib/route.ts",
12124
- "line": 94
12182
+ "line": 95
12125
12183
  },
12126
12184
  "name": "NatGatewayOptions",
12127
12185
  "properties": [
@@ -12134,7 +12192,7 @@
12134
12192
  "immutable": true,
12135
12193
  "locationInModule": {
12136
12194
  "filename": "lib/route.ts",
12137
- "line": 98
12195
+ "line": 99
12138
12196
  },
12139
12197
  "name": "subnet",
12140
12198
  "type": {
@@ -12152,7 +12210,7 @@
12152
12210
  "immutable": true,
12153
12211
  "locationInModule": {
12154
12212
  "filename": "lib/route.ts",
12155
- "line": 107
12213
+ "line": 108
12156
12214
  },
12157
12215
  "name": "allocationId",
12158
12216
  "optional": true,
@@ -12170,7 +12228,7 @@
12170
12228
  "immutable": true,
12171
12229
  "locationInModule": {
12172
12230
  "filename": "lib/route.ts",
12173
- "line": 114
12231
+ "line": 115
12174
12232
  },
12175
12233
  "name": "connectivityType",
12176
12234
  "optional": true,
@@ -12188,7 +12246,7 @@
12188
12246
  "immutable": true,
12189
12247
  "locationInModule": {
12190
12248
  "filename": "lib/route.ts",
12191
- "line": 122
12249
+ "line": 123
12192
12250
  },
12193
12251
  "name": "maxDrainDuration",
12194
12252
  "optional": true,
@@ -12206,7 +12264,7 @@
12206
12264
  "immutable": true,
12207
12265
  "locationInModule": {
12208
12266
  "filename": "lib/route.ts",
12209
- "line": 168
12267
+ "line": 169
12210
12268
  },
12211
12269
  "name": "natGatewayName",
12212
12270
  "optional": true,
@@ -12224,7 +12282,7 @@
12224
12282
  "immutable": true,
12225
12283
  "locationInModule": {
12226
12284
  "filename": "lib/route.ts",
12227
- "line": 129
12285
+ "line": 130
12228
12286
  },
12229
12287
  "name": "privateIpAddress",
12230
12288
  "optional": true,
@@ -12243,7 +12301,7 @@
12243
12301
  "immutable": true,
12244
12302
  "locationInModule": {
12245
12303
  "filename": "lib/route.ts",
12246
- "line": 138
12304
+ "line": 139
12247
12305
  },
12248
12306
  "name": "secondaryAllocationIds",
12249
12307
  "optional": true,
@@ -12268,7 +12326,7 @@
12268
12326
  "immutable": true,
12269
12327
  "locationInModule": {
12270
12328
  "filename": "lib/route.ts",
12271
- "line": 150
12329
+ "line": 151
12272
12330
  },
12273
12331
  "name": "secondaryPrivateIpAddressCount",
12274
12332
  "optional": true,
@@ -12288,7 +12346,7 @@
12288
12346
  "immutable": true,
12289
12347
  "locationInModule": {
12290
12348
  "filename": "lib/route.ts",
12291
- "line": 161
12349
+ "line": 162
12292
12350
  },
12293
12351
  "name": "secondaryPrivateIpAddresses",
12294
12352
  "optional": true,
@@ -12322,7 +12380,7 @@
12322
12380
  "kind": "interface",
12323
12381
  "locationInModule": {
12324
12382
  "filename": "lib/route.ts",
12325
- "line": 174
12383
+ "line": 175
12326
12384
  },
12327
12385
  "name": "NatGatewayProps",
12328
12386
  "properties": [
@@ -12336,7 +12394,7 @@
12336
12394
  "immutable": true,
12337
12395
  "locationInModule": {
12338
12396
  "filename": "lib/route.ts",
12339
- "line": 180
12397
+ "line": 181
12340
12398
  },
12341
12399
  "name": "vpc",
12342
12400
  "optional": true,
@@ -12388,7 +12446,7 @@
12388
12446
  "docs": {
12389
12447
  "default": "- required in case of an IPv6, throws an error if not provided.",
12390
12448
  "remarks": "\"ec2\", for example, allows users to use space for Elastic IP addresses and VPCs.",
12391
- "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampool.html#cfn-ec2-ipampool-awsservice",
12449
+ "see": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampool.html#cfn-ec2-ipampool-awsservice",
12392
12450
  "stability": "experimental",
12393
12451
  "summary": "Limits which service in AWS that the pool can be used in."
12394
12452
  },
@@ -12449,7 +12507,7 @@
12449
12507
  "docs": {
12450
12508
  "default": "- Current operating region of IPAM",
12451
12509
  "remarks": "Should be one of the IPAM operating region.\n Only resources in the same Region as the locale of the pool can get IP address allocations from the pool.\nYou can only allocate a CIDR for a VPC, for example, from an IPAM pool that shares a locale with the VPC’s Region.\nNote that once you choose a Locale for a pool, you cannot modify it. If you choose an AWS Region for locale that has not been configured as an operating Region for the IPAM, you'll get an error.",
12452
- "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampool.html#cfn-ec2-ipampool-locale",
12510
+ "see": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampool.html#cfn-ec2-ipampool-locale",
12453
12511
  "stability": "experimental",
12454
12512
  "summary": "The locale (AWS Region) of the pool."
12455
12513
  },
@@ -12505,7 +12563,7 @@
12505
12563
  },
12506
12564
  "locationInModule": {
12507
12565
  "filename": "lib/route.ts",
12508
- "line": 756
12566
+ "line": 757
12509
12567
  },
12510
12568
  "parameters": [
12511
12569
  {
@@ -12534,7 +12592,7 @@
12534
12592
  "kind": "class",
12535
12593
  "locationInModule": {
12536
12594
  "filename": "lib/route.ts",
12537
- "line": 714
12595
+ "line": 715
12538
12596
  },
12539
12597
  "name": "Route",
12540
12598
  "properties": [
@@ -12547,7 +12605,7 @@
12547
12605
  "immutable": true,
12548
12606
  "locationInModule": {
12549
12607
  "filename": "lib/route.ts",
12550
- "line": 717
12608
+ "line": 718
12551
12609
  },
12552
12610
  "name": "PROPERTY_INJECTION_ID",
12553
12611
  "static": true,
@@ -12564,7 +12622,7 @@
12564
12622
  "immutable": true,
12565
12623
  "locationInModule": {
12566
12624
  "filename": "lib/route.ts",
12567
- "line": 723
12625
+ "line": 724
12568
12626
  },
12569
12627
  "name": "destination",
12570
12628
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteV2",
@@ -12583,7 +12641,7 @@
12583
12641
  "immutable": true,
12584
12642
  "locationInModule": {
12585
12643
  "filename": "lib/route.ts",
12586
- "line": 734
12644
+ "line": 735
12587
12645
  },
12588
12646
  "name": "routeTable",
12589
12647
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteV2",
@@ -12599,7 +12657,7 @@
12599
12657
  "immutable": true,
12600
12658
  "locationInModule": {
12601
12659
  "filename": "lib/route.ts",
12602
- "line": 728
12660
+ "line": 729
12603
12661
  },
12604
12662
  "name": "target",
12605
12663
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteV2",
@@ -12615,7 +12673,7 @@
12615
12673
  "immutable": true,
12616
12674
  "locationInModule": {
12617
12675
  "filename": "lib/route.ts",
12618
- "line": 739
12676
+ "line": 740
12619
12677
  },
12620
12678
  "name": "targetRouterType",
12621
12679
  "type": {
@@ -12630,7 +12688,7 @@
12630
12688
  "immutable": true,
12631
12689
  "locationInModule": {
12632
12690
  "filename": "lib/route.ts",
12633
- "line": 744
12691
+ "line": 745
12634
12692
  },
12635
12693
  "name": "resource",
12636
12694
  "optional": true,
@@ -12656,7 +12714,7 @@
12656
12714
  "kind": "interface",
12657
12715
  "locationInModule": {
12658
12716
  "filename": "lib/route.ts",
12659
- "line": 682
12717
+ "line": 683
12660
12718
  },
12661
12719
  "name": "RouteProps",
12662
12720
  "properties": [
@@ -12670,7 +12728,7 @@
12670
12728
  "immutable": true,
12671
12729
  "locationInModule": {
12672
12730
  "filename": "lib/route.ts",
12673
- "line": 695
12731
+ "line": 696
12674
12732
  },
12675
12733
  "name": "destination",
12676
12734
  "type": {
@@ -12689,7 +12747,7 @@
12689
12747
  "immutable": true,
12690
12748
  "locationInModule": {
12691
12749
  "filename": "lib/route.ts",
12692
- "line": 688
12750
+ "line": 689
12693
12751
  },
12694
12752
  "name": "routeTable",
12695
12753
  "type": {
@@ -12705,7 +12763,7 @@
12705
12763
  "immutable": true,
12706
12764
  "locationInModule": {
12707
12765
  "filename": "lib/route.ts",
12708
- "line": 700
12766
+ "line": 701
12709
12767
  },
12710
12768
  "name": "target",
12711
12769
  "type": {
@@ -12722,7 +12780,7 @@
12722
12780
  "immutable": true,
12723
12781
  "locationInModule": {
12724
12782
  "filename": "lib/route.ts",
12725
- "line": 707
12783
+ "line": 708
12726
12784
  },
12727
12785
  "name": "routeName",
12728
12786
  "optional": true,
@@ -12752,7 +12810,7 @@
12752
12810
  },
12753
12811
  "locationInModule": {
12754
12812
  "filename": "lib/route.ts",
12755
- "line": 837
12813
+ "line": 838
12756
12814
  },
12757
12815
  "parameters": [
12758
12816
  {
@@ -12781,7 +12839,7 @@
12781
12839
  "kind": "class",
12782
12840
  "locationInModule": {
12783
12841
  "filename": "lib/route.ts",
12784
- "line": 823
12842
+ "line": 824
12785
12843
  },
12786
12844
  "methods": [
12787
12845
  {
@@ -12791,7 +12849,7 @@
12791
12849
  },
12792
12850
  "locationInModule": {
12793
12851
  "filename": "lib/route.ts",
12794
- "line": 861
12852
+ "line": 862
12795
12853
  },
12796
12854
  "name": "addRoute",
12797
12855
  "parameters": [
@@ -12843,7 +12901,7 @@
12843
12901
  "immutable": true,
12844
12902
  "locationInModule": {
12845
12903
  "filename": "lib/route.ts",
12846
- "line": 826
12904
+ "line": 827
12847
12905
  },
12848
12906
  "name": "PROPERTY_INJECTION_ID",
12849
12907
  "static": true,
@@ -12859,7 +12917,7 @@
12859
12917
  "immutable": true,
12860
12918
  "locationInModule": {
12861
12919
  "filename": "lib/route.ts",
12862
- "line": 835
12920
+ "line": 836
12863
12921
  },
12864
12922
  "name": "resource",
12865
12923
  "type": {
@@ -12874,7 +12932,7 @@
12874
12932
  "immutable": true,
12875
12933
  "locationInModule": {
12876
12934
  "filename": "lib/route.ts",
12877
- "line": 830
12935
+ "line": 831
12878
12936
  },
12879
12937
  "name": "routeTableId",
12880
12938
  "overrides": "aws-cdk-lib.aws_ec2.IRouteTable",
@@ -12900,7 +12958,7 @@
12900
12958
  "kind": "interface",
12901
12959
  "locationInModule": {
12902
12960
  "filename": "lib/route.ts",
12903
- "line": 805
12961
+ "line": 806
12904
12962
  },
12905
12963
  "name": "RouteTableProps",
12906
12964
  "properties": [
@@ -12913,7 +12971,7 @@
12913
12971
  "immutable": true,
12914
12972
  "locationInModule": {
12915
12973
  "filename": "lib/route.ts",
12916
- "line": 809
12974
+ "line": 810
12917
12975
  },
12918
12976
  "name": "vpc",
12919
12977
  "type": {
@@ -12930,7 +12988,7 @@
12930
12988
  "immutable": true,
12931
12989
  "locationInModule": {
12932
12990
  "filename": "lib/route.ts",
12933
- "line": 816
12991
+ "line": 817
12934
12992
  },
12935
12993
  "name": "routeTableName",
12936
12994
  "optional": true,
@@ -12956,7 +13014,7 @@
12956
13014
  "kind": "interface",
12957
13015
  "locationInModule": {
12958
13016
  "filename": "lib/route.ts",
12959
- "line": 611
13017
+ "line": 612
12960
13018
  },
12961
13019
  "name": "RouteTargetProps",
12962
13020
  "properties": [
@@ -12971,7 +13029,7 @@
12971
13029
  "immutable": true,
12972
13030
  "locationInModule": {
12973
13031
  "filename": "lib/route.ts",
12974
- "line": 626
13032
+ "line": 627
12975
13033
  },
12976
13034
  "name": "endpoint",
12977
13035
  "optional": true,
@@ -12990,7 +13048,7 @@
12990
13048
  "immutable": true,
12991
13049
  "locationInModule": {
12992
13050
  "filename": "lib/route.ts",
12993
- "line": 618
13051
+ "line": 619
12994
13052
  },
12995
13053
  "name": "gateway",
12996
13054
  "optional": true,
@@ -13018,7 +13076,7 @@
13018
13076
  },
13019
13077
  "locationInModule": {
13020
13078
  "filename": "lib/route.ts",
13021
- "line": 649
13079
+ "line": 650
13022
13080
  },
13023
13081
  "parameters": [
13024
13082
  {
@@ -13032,7 +13090,7 @@
13032
13090
  "kind": "class",
13033
13091
  "locationInModule": {
13034
13092
  "filename": "lib/route.ts",
13035
- "line": 632
13093
+ "line": 633
13036
13094
  },
13037
13095
  "name": "RouteTargetType",
13038
13096
  "properties": [
@@ -13046,7 +13104,7 @@
13046
13104
  "immutable": true,
13047
13105
  "locationInModule": {
13048
13106
  "filename": "lib/route.ts",
13049
- "line": 647
13107
+ "line": 648
13050
13108
  },
13051
13109
  "name": "endpoint",
13052
13110
  "optional": true,
@@ -13064,7 +13122,7 @@
13064
13122
  "immutable": true,
13065
13123
  "locationInModule": {
13066
13124
  "filename": "lib/route.ts",
13067
- "line": 639
13125
+ "line": 640
13068
13126
  },
13069
13127
  "name": "gateway",
13070
13128
  "optional": true,
@@ -13134,7 +13192,7 @@
13134
13192
  },
13135
13193
  "locationInModule": {
13136
13194
  "filename": "lib/subnet-v2.ts",
13137
- "line": 289
13195
+ "line": 290
13138
13196
  },
13139
13197
  "parameters": [
13140
13198
  {
@@ -13172,7 +13230,7 @@
13172
13230
  "kind": "class",
13173
13231
  "locationInModule": {
13174
13232
  "filename": "lib/subnet-v2.ts",
13175
- "line": 160
13233
+ "line": 161
13176
13234
  },
13177
13235
  "methods": [
13178
13236
  {
@@ -13182,7 +13240,7 @@
13182
13240
  },
13183
13241
  "locationInModule": {
13184
13242
  "filename": "lib/subnet-v2.ts",
13185
- "line": 168
13243
+ "line": 169
13186
13244
  },
13187
13245
  "name": "fromSubnetV2Attributes",
13188
13246
  "parameters": [
@@ -13219,7 +13277,7 @@
13219
13277
  },
13220
13278
  "locationInModule": {
13221
13279
  "filename": "lib/subnet-v2.ts",
13222
- "line": 384
13280
+ "line": 385
13223
13281
  },
13224
13282
  "name": "associateNetworkAcl",
13225
13283
  "overrides": "aws-cdk-lib.aws_ec2.ISubnet",
@@ -13257,7 +13315,7 @@
13257
13315
  "immutable": true,
13258
13316
  "locationInModule": {
13259
13317
  "filename": "lib/subnet-v2.ts",
13260
- "line": 163
13318
+ "line": 164
13261
13319
  },
13262
13320
  "name": "PROPERTY_INJECTION_ID",
13263
13321
  "static": true,
@@ -13273,7 +13331,7 @@
13273
13331
  "immutable": true,
13274
13332
  "locationInModule": {
13275
13333
  "filename": "lib/subnet-v2.ts",
13276
- "line": 235
13334
+ "line": 236
13277
13335
  },
13278
13336
  "name": "availabilityZone",
13279
13337
  "overrides": "aws-cdk-lib.aws_ec2.ISubnet",
@@ -13289,7 +13347,7 @@
13289
13347
  "immutable": true,
13290
13348
  "locationInModule": {
13291
13349
  "filename": "lib/subnet-v2.ts",
13292
- "line": 247
13350
+ "line": 248
13293
13351
  },
13294
13352
  "name": "internetConnectivityEstablished",
13295
13353
  "overrides": "aws-cdk-lib.aws_ec2.ISubnet",
@@ -13305,7 +13363,7 @@
13305
13363
  "immutable": true,
13306
13364
  "locationInModule": {
13307
13365
  "filename": "lib/subnet-v2.ts",
13308
- "line": 260
13366
+ "line": 261
13309
13367
  },
13310
13368
  "name": "ipv4CidrBlock",
13311
13369
  "overrides": "aws-cdk-lib.aws_ec2.ISubnet",
@@ -13321,7 +13379,7 @@
13321
13379
  "immutable": true,
13322
13380
  "locationInModule": {
13323
13381
  "filename": "lib/subnet-v2.ts",
13324
- "line": 407
13382
+ "line": 408
13325
13383
  },
13326
13384
  "name": "networkAcl",
13327
13385
  "type": {
@@ -13336,7 +13394,7 @@
13336
13394
  "immutable": true,
13337
13395
  "locationInModule": {
13338
13396
  "filename": "lib/subnet-v2.ts",
13339
- "line": 399
13397
+ "line": 400
13340
13398
  },
13341
13399
  "name": "routeTable",
13342
13400
  "overrides": "aws-cdk-lib.aws_ec2.ISubnet",
@@ -13355,7 +13413,7 @@
13355
13413
  "immutable": true,
13356
13414
  "locationInModule": {
13357
13415
  "filename": "lib/subnet-v2.ts",
13358
- "line": 241
13416
+ "line": 242
13359
13417
  },
13360
13418
  "name": "subnetId",
13361
13419
  "overrides": "aws-cdk-lib.aws_ec2.ISubnet",
@@ -13371,7 +13429,7 @@
13371
13429
  "immutable": true,
13372
13430
  "locationInModule": {
13373
13431
  "filename": "lib/subnet-v2.ts",
13374
- "line": 267
13432
+ "line": 268
13375
13433
  },
13376
13434
  "name": "subnetRef",
13377
13435
  "overrides": "aws-cdk-lib.interfaces.aws_ec2.ISubnetRef",
@@ -13387,7 +13445,7 @@
13387
13445
  "immutable": true,
13388
13446
  "locationInModule": {
13389
13447
  "filename": "lib/subnet-v2.ts",
13390
- "line": 265
13448
+ "line": 266
13391
13449
  },
13392
13450
  "name": "ipv6CidrBlock",
13393
13451
  "optional": true,
@@ -13407,7 +13465,7 @@
13407
13465
  "immutable": true,
13408
13466
  "locationInModule": {
13409
13467
  "filename": "lib/subnet-v2.ts",
13410
- "line": 277
13468
+ "line": 278
13411
13469
  },
13412
13470
  "name": "subnetType",
13413
13471
  "optional": true,
@@ -13434,7 +13492,7 @@
13434
13492
  "kind": "interface",
13435
13493
  "locationInModule": {
13436
13494
  "filename": "lib/subnet-v2.ts",
13437
- "line": 415
13495
+ "line": 416
13438
13496
  },
13439
13497
  "name": "SubnetV2Attributes",
13440
13498
  "properties": [
@@ -13448,7 +13506,7 @@
13448
13506
  "immutable": true,
13449
13507
  "locationInModule": {
13450
13508
  "filename": "lib/subnet-v2.ts",
13451
- "line": 421
13509
+ "line": 422
13452
13510
  },
13453
13511
  "name": "availabilityZone",
13454
13512
  "type": {
@@ -13465,7 +13523,7 @@
13465
13523
  "immutable": true,
13466
13524
  "locationInModule": {
13467
13525
  "filename": "lib/subnet-v2.ts",
13468
- "line": 428
13526
+ "line": 429
13469
13527
  },
13470
13528
  "name": "ipv4CidrBlock",
13471
13529
  "type": {
@@ -13481,7 +13539,7 @@
13481
13539
  "immutable": true,
13482
13540
  "locationInModule": {
13483
13541
  "filename": "lib/subnet-v2.ts",
13484
- "line": 447
13542
+ "line": 448
13485
13543
  },
13486
13544
  "name": "subnetId",
13487
13545
  "type": {
@@ -13497,7 +13555,7 @@
13497
13555
  "immutable": true,
13498
13556
  "locationInModule": {
13499
13557
  "filename": "lib/subnet-v2.ts",
13500
- "line": 452
13558
+ "line": 453
13501
13559
  },
13502
13560
  "name": "subnetType",
13503
13561
  "type": {
@@ -13514,7 +13572,7 @@
13514
13572
  "immutable": true,
13515
13573
  "locationInModule": {
13516
13574
  "filename": "lib/subnet-v2.ts",
13517
- "line": 435
13575
+ "line": 436
13518
13576
  },
13519
13577
  "name": "ipv6CidrBlock",
13520
13578
  "optional": true,
@@ -13532,7 +13590,7 @@
13532
13590
  "immutable": true,
13533
13591
  "locationInModule": {
13534
13592
  "filename": "lib/subnet-v2.ts",
13535
- "line": 442
13593
+ "line": 443
13536
13594
  },
13537
13595
  "name": "routeTableId",
13538
13596
  "optional": true,
@@ -13550,7 +13608,7 @@
13550
13608
  "immutable": true,
13551
13609
  "locationInModule": {
13552
13610
  "filename": "lib/subnet-v2.ts",
13553
- "line": 459
13611
+ "line": 460
13554
13612
  },
13555
13613
  "name": "subnetName",
13556
13614
  "optional": true,
@@ -13576,7 +13634,7 @@
13576
13634
  "kind": "interface",
13577
13635
  "locationInModule": {
13578
13636
  "filename": "lib/subnet-v2.ts",
13579
- "line": 57
13637
+ "line": 58
13580
13638
  },
13581
13639
  "name": "SubnetV2Props",
13582
13640
  "properties": [
@@ -13589,7 +13647,7 @@
13589
13647
  "immutable": true,
13590
13648
  "locationInModule": {
13591
13649
  "filename": "lib/subnet-v2.ts",
13592
- "line": 79
13650
+ "line": 80
13593
13651
  },
13594
13652
  "name": "availabilityZone",
13595
13653
  "type": {
@@ -13606,7 +13664,7 @@
13606
13664
  "immutable": true,
13607
13665
  "locationInModule": {
13608
13666
  "filename": "lib/subnet-v2.ts",
13609
- "line": 67
13667
+ "line": 68
13610
13668
  },
13611
13669
  "name": "ipv4CidrBlock",
13612
13670
  "type": {
@@ -13623,7 +13681,7 @@
13623
13681
  "immutable": true,
13624
13682
  "locationInModule": {
13625
13683
  "filename": "lib/subnet-v2.ts",
13626
- "line": 103
13684
+ "line": 104
13627
13685
  },
13628
13686
  "name": "subnetType",
13629
13687
  "type": {
@@ -13639,7 +13697,7 @@
13639
13697
  "immutable": true,
13640
13698
  "locationInModule": {
13641
13699
  "filename": "lib/subnet-v2.ts",
13642
- "line": 61
13700
+ "line": 62
13643
13701
  },
13644
13702
  "name": "vpc",
13645
13703
  "type": {
@@ -13657,7 +13715,7 @@
13657
13715
  "immutable": true,
13658
13716
  "locationInModule": {
13659
13717
  "filename": "lib/subnet-v2.ts",
13660
- "line": 118
13718
+ "line": 119
13661
13719
  },
13662
13720
  "name": "assignIpv6AddressOnCreation",
13663
13721
  "optional": true,
@@ -13675,7 +13733,7 @@
13675
13733
  "immutable": true,
13676
13734
  "locationInModule": {
13677
13735
  "filename": "lib/subnet-v2.ts",
13678
- "line": 93
13736
+ "line": 94
13679
13737
  },
13680
13738
  "name": "defaultRouteTableName",
13681
13739
  "optional": true,
@@ -13693,7 +13751,7 @@
13693
13751
  "immutable": true,
13694
13752
  "locationInModule": {
13695
13753
  "filename": "lib/subnet-v2.ts",
13696
- "line": 74
13754
+ "line": 75
13697
13755
  },
13698
13756
  "name": "ipv6CidrBlock",
13699
13757
  "optional": true,
@@ -13712,7 +13770,7 @@
13712
13770
  "immutable": true,
13713
13771
  "locationInModule": {
13714
13772
  "filename": "lib/subnet-v2.ts",
13715
- "line": 126
13773
+ "line": 127
13716
13774
  },
13717
13775
  "name": "mapPublicIpOnLaunch",
13718
13776
  "optional": true,
@@ -13730,7 +13788,7 @@
13730
13788
  "immutable": true,
13731
13789
  "locationInModule": {
13732
13790
  "filename": "lib/subnet-v2.ts",
13733
- "line": 86
13791
+ "line": 87
13734
13792
  },
13735
13793
  "name": "routeTable",
13736
13794
  "optional": true,
@@ -13748,7 +13806,7 @@
13748
13806
  "immutable": true,
13749
13807
  "locationInModule": {
13750
13808
  "filename": "lib/subnet-v2.ts",
13751
- "line": 110
13809
+ "line": 111
13752
13810
  },
13753
13811
  "name": "subnetName",
13754
13812
  "optional": true,
@@ -15612,7 +15670,7 @@
15612
15670
  },
15613
15671
  "locationInModule": {
15614
15672
  "filename": "lib/route.ts",
15615
- "line": 529
15673
+ "line": 530
15616
15674
  },
15617
15675
  "parameters": [
15618
15676
  {
@@ -15641,7 +15699,7 @@
15641
15699
  "kind": "class",
15642
15700
  "locationInModule": {
15643
15701
  "filename": "lib/route.ts",
15644
- "line": 510
15702
+ "line": 511
15645
15703
  },
15646
15704
  "name": "VPCPeeringConnection",
15647
15705
  "properties": [
@@ -15654,7 +15712,7 @@
15654
15712
  "immutable": true,
15655
15713
  "locationInModule": {
15656
15714
  "filename": "lib/route.ts",
15657
- "line": 513
15715
+ "line": 514
15658
15716
  },
15659
15717
  "name": "PROPERTY_INJECTION_ID",
15660
15718
  "static": true,
@@ -15670,7 +15728,7 @@
15670
15728
  "immutable": true,
15671
15729
  "locationInModule": {
15672
15730
  "filename": "lib/route.ts",
15673
- "line": 527
15731
+ "line": 528
15674
15732
  },
15675
15733
  "name": "resource",
15676
15734
  "type": {
@@ -15685,7 +15743,7 @@
15685
15743
  "immutable": true,
15686
15744
  "locationInModule": {
15687
15745
  "filename": "lib/route.ts",
15688
- "line": 522
15746
+ "line": 523
15689
15747
  },
15690
15748
  "name": "routerTargetId",
15691
15749
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteTarget",
@@ -15701,7 +15759,7 @@
15701
15759
  "immutable": true,
15702
15760
  "locationInModule": {
15703
15761
  "filename": "lib/route.ts",
15704
- "line": 517
15762
+ "line": 518
15705
15763
  },
15706
15764
  "name": "routerType",
15707
15765
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteTarget",
@@ -15727,7 +15785,7 @@
15727
15785
  "kind": "interface",
15728
15786
  "locationInModule": {
15729
15787
  "filename": "lib/route.ts",
15730
- "line": 186
15788
+ "line": 187
15731
15789
  },
15732
15790
  "name": "VPCPeeringConnectionOptions",
15733
15791
  "properties": [
@@ -15740,7 +15798,7 @@
15740
15798
  "immutable": true,
15741
15799
  "locationInModule": {
15742
15800
  "filename": "lib/route.ts",
15743
- "line": 190
15801
+ "line": 191
15744
15802
  },
15745
15803
  "name": "acceptorVpc",
15746
15804
  "type": {
@@ -15757,7 +15815,7 @@
15757
15815
  "immutable": true,
15758
15816
  "locationInModule": {
15759
15817
  "filename": "lib/route.ts",
15760
- "line": 197
15818
+ "line": 198
15761
15819
  },
15762
15820
  "name": "peerRoleArn",
15763
15821
  "optional": true,
@@ -15775,7 +15833,7 @@
15775
15833
  "immutable": true,
15776
15834
  "locationInModule": {
15777
15835
  "filename": "lib/route.ts",
15778
- "line": 204
15836
+ "line": 205
15779
15837
  },
15780
15838
  "name": "vpcPeeringConnectionName",
15781
15839
  "optional": true,
@@ -15804,7 +15862,7 @@
15804
15862
  "kind": "interface",
15805
15863
  "locationInModule": {
15806
15864
  "filename": "lib/route.ts",
15807
- "line": 210
15865
+ "line": 211
15808
15866
  },
15809
15867
  "name": "VPCPeeringConnectionProps",
15810
15868
  "properties": [
@@ -15817,7 +15875,7 @@
15817
15875
  "immutable": true,
15818
15876
  "locationInModule": {
15819
15877
  "filename": "lib/route.ts",
15820
- "line": 214
15878
+ "line": 215
15821
15879
  },
15822
15880
  "name": "requestorVpc",
15823
15881
  "type": {
@@ -15846,7 +15904,7 @@
15846
15904
  },
15847
15905
  "locationInModule": {
15848
15906
  "filename": "lib/route.ts",
15849
- "line": 359
15907
+ "line": 360
15850
15908
  },
15851
15909
  "parameters": [
15852
15910
  {
@@ -15875,7 +15933,7 @@
15875
15933
  "kind": "class",
15876
15934
  "locationInModule": {
15877
15935
  "filename": "lib/route.ts",
15878
- "line": 325
15936
+ "line": 326
15879
15937
  },
15880
15938
  "name": "VPNGatewayV2",
15881
15939
  "properties": [
@@ -15888,7 +15946,7 @@
15888
15946
  "immutable": true,
15889
15947
  "locationInModule": {
15890
15948
  "filename": "lib/route.ts",
15891
- "line": 328
15949
+ "line": 329
15892
15950
  },
15893
15951
  "name": "PROPERTY_INJECTION_ID",
15894
15952
  "static": true,
@@ -15904,7 +15962,7 @@
15904
15962
  "immutable": true,
15905
15963
  "locationInModule": {
15906
15964
  "filename": "lib/route.ts",
15907
- "line": 347
15965
+ "line": 348
15908
15966
  },
15909
15967
  "name": "resource",
15910
15968
  "type": {
@@ -15919,7 +15977,7 @@
15919
15977
  "immutable": true,
15920
15978
  "locationInModule": {
15921
15979
  "filename": "lib/route.ts",
15922
- "line": 337
15980
+ "line": 338
15923
15981
  },
15924
15982
  "name": "routerTargetId",
15925
15983
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteTarget",
@@ -15935,7 +15993,7 @@
15935
15993
  "immutable": true,
15936
15994
  "locationInModule": {
15937
15995
  "filename": "lib/route.ts",
15938
- "line": 332
15996
+ "line": 333
15939
15997
  },
15940
15998
  "name": "routerType",
15941
15999
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteTarget",
@@ -15951,7 +16009,7 @@
15951
16009
  "immutable": true,
15952
16010
  "locationInModule": {
15953
16011
  "filename": "lib/route.ts",
15954
- "line": 342
16012
+ "line": 343
15955
16013
  },
15956
16014
  "name": "vpcId",
15957
16015
  "type": {
@@ -15976,21 +16034,21 @@
15976
16034
  "kind": "interface",
15977
16035
  "locationInModule": {
15978
16036
  "filename": "lib/vpc-v2-base.ts",
15979
- "line": 114
16037
+ "line": 115
15980
16038
  },
15981
16039
  "name": "VPNGatewayV2Options",
15982
16040
  "properties": [
15983
16041
  {
15984
16042
  "abstract": true,
15985
16043
  "docs": {
15986
- "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpngateway.html#cfn-ec2-vpngateway-type",
16044
+ "see": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpngateway.html#cfn-ec2-vpngateway-type",
15987
16045
  "stability": "experimental",
15988
16046
  "summary": "The type of VPN connection the virtual private gateway supports."
15989
16047
  },
15990
16048
  "immutable": true,
15991
16049
  "locationInModule": {
15992
16050
  "filename": "lib/vpc-v2-base.ts",
15993
- "line": 119
16051
+ "line": 120
15994
16052
  },
15995
16053
  "name": "type",
15996
16054
  "type": {
@@ -16007,7 +16065,7 @@
16007
16065
  "immutable": true,
16008
16066
  "locationInModule": {
16009
16067
  "filename": "lib/vpc-v2-base.ts",
16010
- "line": 126
16068
+ "line": 127
16011
16069
  },
16012
16070
  "name": "amazonSideAsn",
16013
16071
  "optional": true,
@@ -16025,7 +16083,7 @@
16025
16083
  "immutable": true,
16026
16084
  "locationInModule": {
16027
16085
  "filename": "lib/vpc-v2-base.ts",
16028
- "line": 133
16086
+ "line": 134
16029
16087
  },
16030
16088
  "name": "vpnGatewayName",
16031
16089
  "optional": true,
@@ -16036,14 +16094,14 @@
16036
16094
  {
16037
16095
  "abstract": true,
16038
16096
  "docs": {
16039
- "default": "- no propogation for routes",
16097
+ "default": "- no propagation for routes",
16040
16098
  "stability": "experimental",
16041
16099
  "summary": "Subnets where the route propagation should be added."
16042
16100
  },
16043
16101
  "immutable": true,
16044
16102
  "locationInModule": {
16045
16103
  "filename": "lib/vpc-v2-base.ts",
16046
- "line": 140
16104
+ "line": 141
16047
16105
  },
16048
16106
  "name": "vpnRoutePropagation",
16049
16107
  "optional": true,
@@ -16077,7 +16135,7 @@
16077
16135
  "kind": "interface",
16078
16136
  "locationInModule": {
16079
16137
  "filename": "lib/route.ts",
16080
- "line": 83
16138
+ "line": 84
16081
16139
  },
16082
16140
  "name": "VPNGatewayV2Props",
16083
16141
  "properties": [
@@ -16090,7 +16148,7 @@
16090
16148
  "immutable": true,
16091
16149
  "locationInModule": {
16092
16150
  "filename": "lib/route.ts",
16093
- "line": 88
16151
+ "line": 89
16094
16152
  },
16095
16153
  "name": "vpc",
16096
16154
  "type": {
@@ -16953,7 +17011,7 @@
16953
17011
  },
16954
17012
  "locationInModule": {
16955
17013
  "filename": "core/lib/resource.ts",
16956
- "line": 120
17014
+ "line": 121
16957
17015
  },
16958
17016
  "parameters": [
16959
17017
  {
@@ -16983,7 +17041,7 @@
16983
17041
  "kind": "class",
16984
17042
  "locationInModule": {
16985
17043
  "filename": "lib/vpc-v2-base.ts",
16986
- "line": 242
17044
+ "line": 243
16987
17045
  },
16988
17046
  "methods": [
16989
17047
  {
@@ -16993,7 +17051,7 @@
16993
17051
  },
16994
17052
  "locationInModule": {
16995
17053
  "filename": "lib/vpc-v2-base.ts",
16996
- "line": 446
17054
+ "line": 447
16997
17055
  },
16998
17056
  "name": "addClientVpnEndpoint",
16999
17057
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -17025,7 +17083,7 @@
17025
17083
  },
17026
17084
  "locationInModule": {
17027
17085
  "filename": "lib/vpc-v2-base.ts",
17028
- "line": 479
17086
+ "line": 480
17029
17087
  },
17030
17088
  "name": "addEgressOnlyInternetGateway",
17031
17089
  "overrides": "@aws-cdk/aws-ec2-alpha.IVpcV2",
@@ -17051,7 +17109,7 @@
17051
17109
  },
17052
17110
  "locationInModule": {
17053
17111
  "filename": "lib/vpc-v2-base.ts",
17054
- "line": 618
17112
+ "line": 619
17055
17113
  },
17056
17114
  "name": "addFlowLog",
17057
17115
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -17083,7 +17141,7 @@
17083
17141
  },
17084
17142
  "locationInModule": {
17085
17143
  "filename": "lib/vpc-v2-base.ts",
17086
- "line": 466
17144
+ "line": 467
17087
17145
  },
17088
17146
  "name": "addGatewayEndpoint",
17089
17147
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -17114,7 +17172,7 @@
17114
17172
  },
17115
17173
  "locationInModule": {
17116
17174
  "filename": "lib/vpc-v2-base.ts",
17117
- "line": 456
17175
+ "line": 457
17118
17176
  },
17119
17177
  "name": "addInterfaceEndpoint",
17120
17178
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -17146,7 +17204,7 @@
17146
17204
  },
17147
17205
  "locationInModule": {
17148
17206
  "filename": "lib/vpc-v2-base.ts",
17149
- "line": 525
17207
+ "line": 526
17150
17208
  },
17151
17209
  "name": "addInternetGateway",
17152
17210
  "overrides": "@aws-cdk/aws-ec2-alpha.IVpcV2",
@@ -17172,7 +17230,7 @@
17172
17230
  },
17173
17231
  "locationInModule": {
17174
17232
  "filename": "lib/vpc-v2-base.ts",
17175
- "line": 605
17233
+ "line": 606
17176
17234
  },
17177
17235
  "name": "addNatGateway",
17178
17236
  "overrides": "@aws-cdk/aws-ec2-alpha.IVpcV2",
@@ -17197,7 +17255,7 @@
17197
17255
  },
17198
17256
  "locationInModule": {
17199
17257
  "filename": "lib/vpc-v2-base.ts",
17200
- "line": 436
17258
+ "line": 437
17201
17259
  },
17202
17260
  "name": "addVpnConnection",
17203
17261
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -17228,7 +17286,7 @@
17228
17286
  },
17229
17287
  "locationInModule": {
17230
17288
  "filename": "lib/vpc-v2-base.ts",
17231
- "line": 628
17289
+ "line": 629
17232
17290
  },
17233
17291
  "name": "createAcceptorVpcRole",
17234
17292
  "overrides": "@aws-cdk/aws-ec2-alpha.IVpcV2",
@@ -17253,7 +17311,7 @@
17253
17311
  },
17254
17312
  "locationInModule": {
17255
17313
  "filename": "lib/vpc-v2-base.ts",
17256
- "line": 658
17314
+ "line": 659
17257
17315
  },
17258
17316
  "name": "createPeeringConnection",
17259
17317
  "overrides": "@aws-cdk/aws-ec2-alpha.IVpcV2",
@@ -17285,7 +17343,7 @@
17285
17343
  },
17286
17344
  "locationInModule": {
17287
17345
  "filename": "lib/vpc-v2-base.ts",
17288
- "line": 379
17346
+ "line": 380
17289
17347
  },
17290
17348
  "name": "enableVpnGateway",
17291
17349
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -17305,7 +17363,7 @@
17305
17363
  },
17306
17364
  "locationInModule": {
17307
17365
  "filename": "lib/vpc-v2-base.ts",
17308
- "line": 417
17366
+ "line": 418
17309
17367
  },
17310
17368
  "name": "enableVpnGatewayV2",
17311
17369
  "overrides": "@aws-cdk/aws-ec2-alpha.IVpcV2",
@@ -17330,7 +17388,7 @@
17330
17388
  },
17331
17389
  "locationInModule": {
17332
17390
  "filename": "lib/vpc-v2-base.ts",
17333
- "line": 689
17391
+ "line": 690
17334
17392
  },
17335
17393
  "name": "selectSubnetObjects",
17336
17394
  "parameters": [
@@ -17362,7 +17420,7 @@
17362
17420
  },
17363
17421
  "locationInModule": {
17364
17422
  "filename": "lib/vpc-v2-base.ts",
17365
- "line": 355
17423
+ "line": 356
17366
17424
  },
17367
17425
  "name": "selectSubnets",
17368
17426
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -17392,7 +17450,7 @@
17392
17450
  "immutable": true,
17393
17451
  "locationInModule": {
17394
17452
  "filename": "lib/vpc-v2-base.ts",
17395
- "line": 276
17453
+ "line": 277
17396
17454
  },
17397
17455
  "name": "availabilityZones",
17398
17456
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -17414,7 +17472,7 @@
17414
17472
  "immutable": true,
17415
17473
  "locationInModule": {
17416
17474
  "filename": "lib/vpc-v2-base.ts",
17417
- "line": 281
17475
+ "line": 282
17418
17476
  },
17419
17477
  "name": "internetConnectivityEstablished",
17420
17478
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -17432,7 +17490,7 @@
17432
17490
  "immutable": true,
17433
17491
  "locationInModule": {
17434
17492
  "filename": "lib/vpc-v2-base.ts",
17435
- "line": 302
17493
+ "line": 303
17436
17494
  },
17437
17495
  "name": "ipv4CidrBlock",
17438
17496
  "overrides": "@aws-cdk/aws-ec2-alpha.IVpcV2",
@@ -17449,7 +17507,7 @@
17449
17507
  "immutable": true,
17450
17508
  "locationInModule": {
17451
17509
  "filename": "lib/vpc-v2-base.ts",
17452
- "line": 271
17510
+ "line": 272
17453
17511
  },
17454
17512
  "name": "isolatedSubnets",
17455
17513
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -17471,7 +17529,7 @@
17471
17529
  "immutable": true,
17472
17530
  "locationInModule": {
17473
17531
  "filename": "lib/vpc-v2-base.ts",
17474
- "line": 317
17532
+ "line": 318
17475
17533
  },
17476
17534
  "name": "ownerAccountId",
17477
17535
  "overrides": "@aws-cdk/aws-ec2-alpha.IVpcV2",
@@ -17487,7 +17545,7 @@
17487
17545
  "immutable": true,
17488
17546
  "locationInModule": {
17489
17547
  "filename": "lib/vpc-v2-base.ts",
17490
- "line": 266
17548
+ "line": 267
17491
17549
  },
17492
17550
  "name": "privateSubnets",
17493
17551
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -17508,7 +17566,7 @@
17508
17566
  "immutable": true,
17509
17567
  "locationInModule": {
17510
17568
  "filename": "lib/vpc-v2-base.ts",
17511
- "line": 261
17569
+ "line": 262
17512
17570
  },
17513
17571
  "name": "publicSubnets",
17514
17572
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -17530,7 +17588,7 @@
17530
17588
  "immutable": true,
17531
17589
  "locationInModule": {
17532
17590
  "filename": "lib/vpc-v2-base.ts",
17533
- "line": 312
17591
+ "line": 313
17534
17592
  },
17535
17593
  "name": "region",
17536
17594
  "overrides": "@aws-cdk/aws-ec2-alpha.IVpcV2",
@@ -17547,7 +17605,7 @@
17547
17605
  "immutable": true,
17548
17606
  "locationInModule": {
17549
17607
  "filename": "lib/vpc-v2-base.ts",
17550
- "line": 251
17608
+ "line": 252
17551
17609
  },
17552
17610
  "name": "vpcArn",
17553
17611
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -17564,7 +17622,7 @@
17564
17622
  "immutable": true,
17565
17623
  "locationInModule": {
17566
17624
  "filename": "lib/vpc-v2-base.ts",
17567
- "line": 256
17625
+ "line": 257
17568
17626
  },
17569
17627
  "name": "vpcCidrBlock",
17570
17628
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -17581,7 +17639,7 @@
17581
17639
  "immutable": true,
17582
17640
  "locationInModule": {
17583
17641
  "filename": "lib/vpc-v2-base.ts",
17584
- "line": 246
17642
+ "line": 247
17585
17643
  },
17586
17644
  "name": "vpcId",
17587
17645
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -17597,7 +17655,7 @@
17597
17655
  "immutable": true,
17598
17656
  "locationInModule": {
17599
17657
  "filename": "lib/vpc-v2-base.ts",
17600
- "line": 369
17658
+ "line": 370
17601
17659
  },
17602
17660
  "name": "vpcRef",
17603
17661
  "overrides": "aws-cdk-lib.interfaces.aws_ec2.IVPCRef",
@@ -17613,7 +17671,7 @@
17613
17671
  "immutable": true,
17614
17672
  "locationInModule": {
17615
17673
  "filename": "lib/vpc-v2-base.ts",
17616
- "line": 682
17674
+ "line": 683
17617
17675
  },
17618
17676
  "name": "egressOnlyInternetGatewayId",
17619
17677
  "optional": true,
@@ -17629,7 +17687,7 @@
17629
17687
  "immutable": true,
17630
17688
  "locationInModule": {
17631
17689
  "filename": "lib/vpc-v2-base.ts",
17632
- "line": 675
17690
+ "line": 676
17633
17691
  },
17634
17692
  "name": "internetGatewayId",
17635
17693
  "optional": true,
@@ -17646,7 +17704,7 @@
17646
17704
  "immutable": true,
17647
17705
  "locationInModule": {
17648
17706
  "filename": "lib/vpc-v2-base.ts",
17649
- "line": 324
17707
+ "line": 325
17650
17708
  },
17651
17709
  "name": "ipv4IpamProvisionedCidrs",
17652
17710
  "optional": true,
@@ -17669,7 +17727,7 @@
17669
17727
  "immutable": true,
17670
17728
  "locationInModule": {
17671
17729
  "filename": "lib/vpc-v2-base.ts",
17672
- "line": 294
17730
+ "line": 295
17673
17731
  },
17674
17732
  "name": "secondaryCidrBlock",
17675
17733
  "optional": true,
@@ -17692,7 +17750,7 @@
17692
17750
  "immutable": true,
17693
17751
  "locationInModule": {
17694
17752
  "filename": "lib/vpc-v2-base.ts",
17695
- "line": 307
17753
+ "line": 308
17696
17754
  },
17697
17755
  "name": "vpcName",
17698
17756
  "optional": true,
@@ -17709,7 +17767,7 @@
17709
17767
  "immutable": true,
17710
17768
  "locationInModule": {
17711
17769
  "filename": "lib/vpc-v2-base.ts",
17712
- "line": 668
17770
+ "line": 669
17713
17771
  },
17714
17772
  "name": "vpnGatewayId",
17715
17773
  "optional": true,
@@ -17725,7 +17783,7 @@
17725
17783
  },
17726
17784
  "locationInModule": {
17727
17785
  "filename": "lib/vpc-v2-base.ts",
17728
- "line": 329
17786
+ "line": 330
17729
17787
  },
17730
17788
  "name": "incompleteSubnetDefinition",
17731
17789
  "protected": true,
@@ -17876,6 +17934,6 @@
17876
17934
  "symbolId": "lib/vpc-v2:VpcV2Props"
17877
17935
  }
17878
17936
  },
17879
- "version": "2.245.0-alpha.0",
17937
+ "version": "2.247.0-alpha.0",
17880
17938
  "fingerprint": "**********"
17881
17939
  }