@aws-cdk/aws-ec2-alpha 2.175.1-alpha.0 → 2.177.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.175.1",
11
+ "aws-cdk-lib": "^2.177.0",
12
12
  "constructs": "^10.0.0"
13
13
  },
14
14
  "dependencyClosure": {
@@ -1878,19 +1878,6 @@
1878
1878
  }
1879
1879
  }
1880
1880
  },
1881
- "aws-cdk-lib.aws_iot1click": {
1882
- "targets": {
1883
- "dotnet": {
1884
- "namespace": "Amazon.CDK.AWS.IoT1Click"
1885
- },
1886
- "java": {
1887
- "package": "software.amazon.awscdk.services.iot1click"
1888
- },
1889
- "python": {
1890
- "module": "aws_cdk.aws_iot1click"
1891
- }
1892
- }
1893
- },
1894
1881
  "aws-cdk-lib.aws_iotanalytics": {
1895
1882
  "targets": {
1896
1883
  "dotnet": {
@@ -2580,6 +2567,32 @@
2580
2567
  }
2581
2568
  }
2582
2569
  },
2570
+ "aws-cdk-lib.aws_notifications": {
2571
+ "targets": {
2572
+ "dotnet": {
2573
+ "package": "Amazon.CDK.AWS.Notifications"
2574
+ },
2575
+ "java": {
2576
+ "package": "software.amazon.awscdk.services.notifications"
2577
+ },
2578
+ "python": {
2579
+ "module": "aws_cdk.aws_notifications"
2580
+ }
2581
+ }
2582
+ },
2583
+ "aws-cdk-lib.aws_notificationscontacts": {
2584
+ "targets": {
2585
+ "dotnet": {
2586
+ "package": "Amazon.CDK.AWS.NotificationsContacts"
2587
+ },
2588
+ "java": {
2589
+ "package": "software.amazon.awscdk.services.notificationscontacts"
2590
+ },
2591
+ "python": {
2592
+ "module": "aws_cdk.aws_notificationscontacts"
2593
+ }
2594
+ }
2595
+ },
2583
2596
  "aws-cdk-lib.aws_oam": {
2584
2597
  "targets": {
2585
2598
  "dotnet": {
@@ -3926,7 +3939,7 @@
3926
3939
  "stability": "experimental"
3927
3940
  },
3928
3941
  "homepage": "https://github.com/aws/aws-cdk",
3929
- "jsiiVersion": "5.7.3 (build e7089ad)",
3942
+ "jsiiVersion": "5.7.4 (build fc2a28e)",
3930
3943
  "keywords": [
3931
3944
  "aws",
3932
3945
  "cdk",
@@ -3948,7 +3961,7 @@
3948
3961
  },
3949
3962
  "name": "@aws-cdk/aws-ec2-alpha",
3950
3963
  "readme": {
3951
- "markdown": "# Amazon VpcV2 Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n![cdk-constructs: Experimental](https://img.shields.io/badge/cdk--constructs-experimental-important.svg?style=for-the-badge)\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\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\nTo create a VPC with both IPv4 and IPv6 support:\n\n```ts\n\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:\n\n```ts\n\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.PRIVATE_ISOLATED,\n})\n```\n\n## IP Addresses Management\n\nBy default `VpcV2` uses `10.0.0.0/16` as the primary CIDR if none is defined.\nAdditional CIDRs can be adding to the VPC via the `secondaryAddressBlocks` prop.\nThe following example illustrates the different options of defining the address blocks:\n\n```ts\n\nconst stack = new Stack();\nconst ipam = new Ipam(this, 'Ipam', {\n operatingRegion: ['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\nSince `VpcV2` does not create subnets automatically, users have full control over IP addresses allocation across subnets.\n\n\n## Routing\n\n`RouteTable` is a new construct that allows for route tables to be customized in a variety of ways. For instance, the following example shows how a custom route table can be created and appended to a subnet:\n\n```ts\n\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\n\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\n\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\n\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\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 accpeptorVpc 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\n\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\n\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 propogation, 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 `vpnRoutePropogation` enabled:\n\n```ts\n\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 destinatation range by providing an optional input `destination` to the method.\n\nThe code example below shows how to add an internet gateway with a custom outbound destination IP range:\n\n```ts\n\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\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\n\nconst stack = new Stack();\n\nconst importedVpc = VpcV2.fromVpcV2Attributes(stack, 'ImportedVpc', {\n vpcId: 'mockVpcID',\n vpcCidrBlock: '10.0.0.0/16',\n});\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 acount VPC, VPC arn for this case would be 'arn:aws:ec2:us-west-2:123456789012:vpc/mockVpcID'\n\n``` ts\n\nconst stack = new Stack();\n\n//Importing a cross acount 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```\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\n\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\n\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\n\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"
3964
+ "markdown": "# Amazon VpcV2 Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n![cdk-constructs: Experimental](https://img.shields.io/badge/cdk--constructs-experimental-important.svg?style=for-the-badge)\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\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\nTo create a VPC with both IPv4 and IPv6 support:\n\n```ts\n\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:\n\n```ts\n\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.PRIVATE_ISOLATED,\n})\n```\n\n## IP Addresses Management\n\nBy default `VpcV2` uses `10.0.0.0/16` as the primary CIDR if none is defined.\nAdditional CIDRs can be adding to the VPC via the `secondaryAddressBlocks` prop.\nThe following example illustrates the different options of defining the address blocks:\n\n```ts\n\nconst stack = new Stack();\nconst ipam = new Ipam(this, 'Ipam', {\n operatingRegion: ['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\nSince `VpcV2` does not create subnets automatically, users have full control over IP addresses allocation across subnets.\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. For instance, the following example shows how a custom route table can be created and appended to a subnet:\n\n```ts\n\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\n\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\n\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\n\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\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\n\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\n\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\n\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.\n\nThe code example below shows how to add an internet gateway with a custom outbound destination IP range:\n\n```ts\n\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\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\n\nconst stack = new Stack();\n\nconst importedVpc = VpcV2.fromVpcV2Attributes(stack, 'ImportedVpc', {\n vpcId: 'mockVpcID',\n vpcCidrBlock: '10.0.0.0/16',\n});\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\n\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```\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\n\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\n\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\n\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"
3952
3965
  },
3953
3966
  "repository": {
3954
3967
  "directory": "packages/@aws-cdk/aws-ec2-alpha",
@@ -4299,7 +4312,7 @@
4299
4312
  "kind": "interface",
4300
4313
  "locationInModule": {
4301
4314
  "filename": "lib/vpc-v2.ts",
4302
- "line": 129
4315
+ "line": 170
4303
4316
  },
4304
4317
  "methods": [
4305
4318
  {
@@ -4310,7 +4323,7 @@
4310
4323
  },
4311
4324
  "locationInModule": {
4312
4325
  "filename": "lib/vpc-v2.ts",
4313
- "line": 135
4326
+ "line": 176
4314
4327
  },
4315
4328
  "name": "allocateVpcCidr",
4316
4329
  "returns": {
@@ -4599,7 +4612,7 @@
4599
4612
  "kind": "interface",
4600
4613
  "locationInModule": {
4601
4614
  "filename": "lib/route.ts",
4602
- "line": 623
4615
+ "line": 620
4603
4616
  },
4604
4617
  "name": "IRouteV2",
4605
4618
  "properties": [
@@ -4613,7 +4626,7 @@
4613
4626
  "immutable": true,
4614
4627
  "locationInModule": {
4615
4628
  "filename": "lib/route.ts",
4616
- "line": 636
4629
+ "line": 633
4617
4630
  },
4618
4631
  "name": "destination",
4619
4632
  "type": {
@@ -4632,7 +4645,7 @@
4632
4645
  "immutable": true,
4633
4646
  "locationInModule": {
4634
4647
  "filename": "lib/route.ts",
4635
- "line": 628
4648
+ "line": 625
4636
4649
  },
4637
4650
  "name": "routeTable",
4638
4651
  "type": {
@@ -4648,7 +4661,7 @@
4648
4661
  "immutable": true,
4649
4662
  "locationInModule": {
4650
4663
  "filename": "lib/route.ts",
4651
- "line": 641
4664
+ "line": 638
4652
4665
  },
4653
4666
  "name": "target",
4654
4667
  "type": {
@@ -4671,7 +4684,7 @@
4671
4684
  "kind": "interface",
4672
4685
  "locationInModule": {
4673
4686
  "filename": "lib/subnet-v2.ts",
4674
- "line": 104
4687
+ "line": 103
4675
4688
  },
4676
4689
  "name": "ISubnetV2",
4677
4690
  "properties": [
@@ -4684,7 +4697,7 @@
4684
4697
  "immutable": true,
4685
4698
  "locationInModule": {
4686
4699
  "filename": "lib/subnet-v2.ts",
4687
- "line": 109
4700
+ "line": 108
4688
4701
  },
4689
4702
  "name": "ipv6CidrBlock",
4690
4703
  "optional": true,
@@ -4704,7 +4717,7 @@
4704
4717
  "immutable": true,
4705
4718
  "locationInModule": {
4706
4719
  "filename": "lib/subnet-v2.ts",
4707
- "line": 116
4720
+ "line": 115
4708
4721
  },
4709
4722
  "name": "subnetType",
4710
4723
  "optional": true,
@@ -4725,7 +4738,7 @@
4725
4738
  "kind": "interface",
4726
4739
  "locationInModule": {
4727
4740
  "filename": "lib/vpc-v2.ts",
4728
- "line": 639
4741
+ "line": 693
4729
4742
  },
4730
4743
  "name": "IVPCCidrBlock",
4731
4744
  "properties": [
@@ -4738,7 +4751,7 @@
4738
4751
  "immutable": true,
4739
4752
  "locationInModule": {
4740
4753
  "filename": "lib/vpc-v2.ts",
4741
- "line": 643
4754
+ "line": 697
4742
4755
  },
4743
4756
  "name": "amazonProvidedIpv6CidrBlock",
4744
4757
  "optional": true,
@@ -4756,7 +4769,7 @@
4756
4769
  "immutable": true,
4757
4770
  "locationInModule": {
4758
4771
  "filename": "lib/vpc-v2.ts",
4759
- "line": 650
4772
+ "line": 704
4760
4773
  },
4761
4774
  "name": "cidrBlock",
4762
4775
  "optional": true,
@@ -4773,7 +4786,7 @@
4773
4786
  "immutable": true,
4774
4787
  "locationInModule": {
4775
4788
  "filename": "lib/vpc-v2.ts",
4776
- "line": 660
4789
+ "line": 714
4777
4790
  },
4778
4791
  "name": "ipv4IpamPoolId",
4779
4792
  "optional": true,
@@ -4781,6 +4794,23 @@
4781
4794
  "primitive": "string"
4782
4795
  }
4783
4796
  },
4797
+ {
4798
+ "abstract": true,
4799
+ "docs": {
4800
+ "stability": "experimental",
4801
+ "summary": "The IPv6 CIDR block from the specified IPv6 address pool."
4802
+ },
4803
+ "immutable": true,
4804
+ "locationInModule": {
4805
+ "filename": "lib/vpc-v2.ts",
4806
+ "line": 719
4807
+ },
4808
+ "name": "ipv6CidrBlock",
4809
+ "optional": true,
4810
+ "type": {
4811
+ "primitive": "string"
4812
+ }
4813
+ },
4784
4814
  {
4785
4815
  "abstract": true,
4786
4816
  "docs": {
@@ -4790,13 +4820,30 @@
4790
4820
  "immutable": true,
4791
4821
  "locationInModule": {
4792
4822
  "filename": "lib/vpc-v2.ts",
4793
- "line": 655
4823
+ "line": 709
4794
4824
  },
4795
4825
  "name": "ipv6IpamPoolId",
4796
4826
  "optional": true,
4797
4827
  "type": {
4798
4828
  "primitive": "string"
4799
4829
  }
4830
+ },
4831
+ {
4832
+ "abstract": true,
4833
+ "docs": {
4834
+ "stability": "experimental",
4835
+ "summary": "The ID of the IPv6 address pool from which to allocate the IPv6 CIDR block."
4836
+ },
4837
+ "immutable": true,
4838
+ "locationInModule": {
4839
+ "filename": "lib/vpc-v2.ts",
4840
+ "line": 724
4841
+ },
4842
+ "name": "ipv6Pool",
4843
+ "optional": true,
4844
+ "type": {
4845
+ "primitive": "string"
4846
+ }
4800
4847
  }
4801
4848
  ],
4802
4849
  "symbolId": "lib/vpc-v2:IVPCCidrBlock"
@@ -5365,7 +5412,7 @@
5365
5412
  "kind": "class",
5366
5413
  "locationInModule": {
5367
5414
  "filename": "lib/vpc-v2.ts",
5368
- "line": 23
5415
+ "line": 44
5369
5416
  },
5370
5417
  "methods": [
5371
5418
  {
@@ -5375,7 +5422,7 @@
5375
5422
  },
5376
5423
  "locationInModule": {
5377
5424
  "filename": "lib/vpc-v2.ts",
5378
- "line": 49
5425
+ "line": 69
5379
5426
  },
5380
5427
  "name": "amazonProvidedIpv6",
5381
5428
  "parameters": [
@@ -5400,7 +5447,7 @@
5400
5447
  },
5401
5448
  "locationInModule": {
5402
5449
  "filename": "lib/vpc-v2.ts",
5403
- "line": 28
5450
+ "line": 48
5404
5451
  },
5405
5452
  "name": "ipv4",
5406
5453
  "parameters": [
@@ -5432,7 +5479,7 @@
5432
5479
  },
5433
5480
  "locationInModule": {
5434
5481
  "filename": "lib/vpc-v2.ts",
5435
- "line": 35
5482
+ "line": 55
5436
5483
  },
5437
5484
  "name": "ipv4Ipam",
5438
5485
  "parameters": [
@@ -5450,6 +5497,31 @@
5450
5497
  },
5451
5498
  "static": true
5452
5499
  },
5500
+ {
5501
+ "docs": {
5502
+ "stability": "experimental",
5503
+ "summary": "A BYOIP IPv6 address pool."
5504
+ },
5505
+ "locationInModule": {
5506
+ "filename": "lib/vpc-v2.ts",
5507
+ "line": 76
5508
+ },
5509
+ "name": "ipv6ByoipPool",
5510
+ "parameters": [
5511
+ {
5512
+ "name": "props",
5513
+ "type": {
5514
+ "fqn": "@aws-cdk/aws-ec2-alpha.Ipv6PoolSecondaryAddressProps"
5515
+ }
5516
+ }
5517
+ ],
5518
+ "returns": {
5519
+ "type": {
5520
+ "fqn": "@aws-cdk/aws-ec2-alpha.IIpAddresses"
5521
+ }
5522
+ },
5523
+ "static": true
5524
+ },
5453
5525
  {
5454
5526
  "docs": {
5455
5527
  "stability": "experimental",
@@ -5457,7 +5529,7 @@
5457
5529
  },
5458
5530
  "locationInModule": {
5459
5531
  "filename": "lib/vpc-v2.ts",
5460
- "line": 42
5532
+ "line": 62
5461
5533
  },
5462
5534
  "name": "ipv6Ipam",
5463
5535
  "parameters": [
@@ -5496,7 +5568,7 @@
5496
5568
  },
5497
5569
  "locationInModule": {
5498
5570
  "filename": "lib/subnet-v2.ts",
5499
- "line": 25
5571
+ "line": 24
5500
5572
  },
5501
5573
  "parameters": [
5502
5574
  {
@@ -5522,7 +5594,7 @@
5522
5594
  "immutable": true,
5523
5595
  "locationInModule": {
5524
5596
  "filename": "lib/subnet-v2.ts",
5525
- "line": 24
5597
+ "line": 23
5526
5598
  },
5527
5599
  "name": "cidr",
5528
5600
  "type": {
@@ -5552,7 +5624,7 @@
5552
5624
  },
5553
5625
  "locationInModule": {
5554
5626
  "filename": "lib/ipam.ts",
5555
- "line": 512
5627
+ "line": 509
5556
5628
  },
5557
5629
  "parameters": [
5558
5630
  {
@@ -5579,7 +5651,7 @@
5579
5651
  "kind": "class",
5580
5652
  "locationInModule": {
5581
5653
  "filename": "lib/ipam.ts",
5582
- "line": 472
5654
+ "line": 469
5583
5655
  },
5584
5656
  "methods": [
5585
5657
  {
@@ -5589,7 +5661,7 @@
5589
5661
  },
5590
5662
  "locationInModule": {
5591
5663
  "filename": "lib/ipam.ts",
5592
- "line": 549
5664
+ "line": 546
5593
5665
  },
5594
5666
  "name": "addScope",
5595
5667
  "parameters": [
@@ -5632,7 +5704,7 @@
5632
5704
  "immutable": true,
5633
5705
  "locationInModule": {
5634
5706
  "filename": "lib/ipam.ts",
5635
- "line": 493
5707
+ "line": 490
5636
5708
  },
5637
5709
  "name": "ipamId",
5638
5710
  "type": {
@@ -5647,7 +5719,7 @@
5647
5719
  "immutable": true,
5648
5720
  "locationInModule": {
5649
5721
  "filename": "lib/ipam.ts",
5650
- "line": 498
5722
+ "line": 495
5651
5723
  },
5652
5724
  "name": "operatingRegions",
5653
5725
  "type": {
@@ -5669,7 +5741,7 @@
5669
5741
  "immutable": true,
5670
5742
  "locationInModule": {
5671
5743
  "filename": "lib/ipam.ts",
5672
- "line": 485
5744
+ "line": 482
5673
5745
  },
5674
5746
  "name": "privateScope",
5675
5747
  "type": {
@@ -5686,7 +5758,7 @@
5686
5758
  "immutable": true,
5687
5759
  "locationInModule": {
5688
5760
  "filename": "lib/ipam.ts",
5689
- "line": 478
5761
+ "line": 475
5690
5762
  },
5691
5763
  "name": "publicScope",
5692
5764
  "type": {
@@ -5701,7 +5773,7 @@
5701
5773
  "immutable": true,
5702
5774
  "locationInModule": {
5703
5775
  "filename": "lib/ipam.ts",
5704
- "line": 503
5776
+ "line": 500
5705
5777
  },
5706
5778
  "name": "scopes",
5707
5779
  "type": {
@@ -5725,7 +5797,7 @@
5725
5797
  "immutable": true,
5726
5798
  "locationInModule": {
5727
5799
  "filename": "lib/ipam.ts",
5728
- "line": 510
5800
+ "line": 507
5729
5801
  },
5730
5802
  "name": "ipamName",
5731
5803
  "optional": true,
@@ -6044,6 +6116,67 @@
6044
6116
  "name": "IpamScopeType",
6045
6117
  "symbolId": "lib/ipam:IpamScopeType"
6046
6118
  },
6119
+ "@aws-cdk/aws-ec2-alpha.Ipv6PoolSecondaryAddressProps": {
6120
+ "assembly": "@aws-cdk/aws-ec2-alpha",
6121
+ "datatype": true,
6122
+ "docs": {
6123
+ "stability": "experimental",
6124
+ "summary": "Additional props needed for BYOIP IPv6 address props.",
6125
+ "example": "const 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});",
6126
+ "custom": {
6127
+ "exampleMetadata": "infused"
6128
+ }
6129
+ },
6130
+ "fqn": "@aws-cdk/aws-ec2-alpha.Ipv6PoolSecondaryAddressProps",
6131
+ "interfaces": [
6132
+ "@aws-cdk/aws-ec2-alpha.SecondaryAddressProps"
6133
+ ],
6134
+ "kind": "interface",
6135
+ "locationInModule": {
6136
+ "filename": "lib/vpc-v2.ts",
6137
+ "line": 23
6138
+ },
6139
+ "name": "Ipv6PoolSecondaryAddressProps",
6140
+ "properties": [
6141
+ {
6142
+ "abstract": true,
6143
+ "docs": {
6144
+ "remarks": "The most specific IPv6 address range that you can bring is /48 for CIDRs that are publicly advertisable\nand /56 for CIDRs that are not publicly advertisable.",
6145
+ "see": "https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html#byoip-definitions",
6146
+ "stability": "experimental",
6147
+ "summary": "A valid IPv6 CIDR block from the IPv6 address pool onboarded to AWS using BYOIP."
6148
+ },
6149
+ "immutable": true,
6150
+ "locationInModule": {
6151
+ "filename": "lib/vpc-v2.ts",
6152
+ "line": 38
6153
+ },
6154
+ "name": "ipv6CidrBlock",
6155
+ "type": {
6156
+ "primitive": "string"
6157
+ }
6158
+ },
6159
+ {
6160
+ "abstract": true,
6161
+ "docs": {
6162
+ "remarks": "Note: BYOIP Pool ID is different from the IPAM Pool ID.\nTo onboard your IPv6 address range to your AWS account please refer to the below documentation",
6163
+ "see": "https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/byoip-onboard.html",
6164
+ "stability": "experimental",
6165
+ "summary": "ID of the IPv6 address pool from which to allocate the IPv6 CIDR block."
6166
+ },
6167
+ "immutable": true,
6168
+ "locationInModule": {
6169
+ "filename": "lib/vpc-v2.ts",
6170
+ "line": 30
6171
+ },
6172
+ "name": "ipv6PoolId",
6173
+ "type": {
6174
+ "primitive": "string"
6175
+ }
6176
+ }
6177
+ ],
6178
+ "symbolId": "lib/vpc-v2:Ipv6PoolSecondaryAddressProps"
6179
+ },
6047
6180
  "@aws-cdk/aws-ec2-alpha.NatConnectivityType": {
6048
6181
  "assembly": "@aws-cdk/aws-ec2-alpha",
6049
6182
  "docs": {
@@ -6099,7 +6232,7 @@
6099
6232
  },
6100
6233
  "locationInModule": {
6101
6234
  "filename": "lib/route.ts",
6102
- "line": 423
6235
+ "line": 422
6103
6236
  },
6104
6237
  "parameters": [
6105
6238
  {
@@ -6143,7 +6276,7 @@
6143
6276
  "immutable": true,
6144
6277
  "locationInModule": {
6145
6278
  "filename": "lib/route.ts",
6146
- "line": 391
6279
+ "line": 390
6147
6280
  },
6148
6281
  "name": "natGatewayId",
6149
6282
  "type": {
@@ -6158,7 +6291,7 @@
6158
6291
  "immutable": true,
6159
6292
  "locationInModule": {
6160
6293
  "filename": "lib/route.ts",
6161
- "line": 421
6294
+ "line": 420
6162
6295
  },
6163
6296
  "name": "resource",
6164
6297
  "type": {
@@ -6173,7 +6306,7 @@
6173
6306
  "immutable": true,
6174
6307
  "locationInModule": {
6175
6308
  "filename": "lib/route.ts",
6176
- "line": 401
6309
+ "line": 400
6177
6310
  },
6178
6311
  "name": "routerTargetId",
6179
6312
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteTarget",
@@ -6189,7 +6322,7 @@
6189
6322
  "immutable": true,
6190
6323
  "locationInModule": {
6191
6324
  "filename": "lib/route.ts",
6192
- "line": 396
6325
+ "line": 395
6193
6326
  },
6194
6327
  "name": "routerType",
6195
6328
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteTarget",
@@ -6206,7 +6339,7 @@
6206
6339
  "immutable": true,
6207
6340
  "locationInModule": {
6208
6341
  "filename": "lib/route.ts",
6209
- "line": 408
6342
+ "line": 407
6210
6343
  },
6211
6344
  "name": "connectivityType",
6212
6345
  "optional": true,
@@ -6223,7 +6356,7 @@
6223
6356
  "immutable": true,
6224
6357
  "locationInModule": {
6225
6358
  "filename": "lib/route.ts",
6226
- "line": 416
6359
+ "line": 415
6227
6360
  },
6228
6361
  "name": "maxDrainDuration",
6229
6362
  "optional": true,
@@ -6633,7 +6766,7 @@
6633
6766
  },
6634
6767
  "locationInModule": {
6635
6768
  "filename": "lib/route.ts",
6636
- "line": 718
6769
+ "line": 715
6637
6770
  },
6638
6771
  "parameters": [
6639
6772
  {
@@ -6662,7 +6795,7 @@
6662
6795
  "kind": "class",
6663
6796
  "locationInModule": {
6664
6797
  "filename": "lib/route.ts",
6665
- "line": 679
6798
+ "line": 676
6666
6799
  },
6667
6800
  "name": "Route",
6668
6801
  "properties": [
@@ -6675,7 +6808,7 @@
6675
6808
  "immutable": true,
6676
6809
  "locationInModule": {
6677
6810
  "filename": "lib/route.ts",
6678
- "line": 685
6811
+ "line": 682
6679
6812
  },
6680
6813
  "name": "destination",
6681
6814
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteV2",
@@ -6694,7 +6827,7 @@
6694
6827
  "immutable": true,
6695
6828
  "locationInModule": {
6696
6829
  "filename": "lib/route.ts",
6697
- "line": 696
6830
+ "line": 693
6698
6831
  },
6699
6832
  "name": "routeTable",
6700
6833
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteV2",
@@ -6710,7 +6843,7 @@
6710
6843
  "immutable": true,
6711
6844
  "locationInModule": {
6712
6845
  "filename": "lib/route.ts",
6713
- "line": 690
6846
+ "line": 687
6714
6847
  },
6715
6848
  "name": "target",
6716
6849
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteV2",
@@ -6721,12 +6854,12 @@
6721
6854
  {
6722
6855
  "docs": {
6723
6856
  "stability": "experimental",
6724
- "summary": "The type of router the route is targetting."
6857
+ "summary": "The type of router the route is targeting."
6725
6858
  },
6726
6859
  "immutable": true,
6727
6860
  "locationInModule": {
6728
6861
  "filename": "lib/route.ts",
6729
- "line": 701
6862
+ "line": 698
6730
6863
  },
6731
6864
  "name": "targetRouterType",
6732
6865
  "type": {
@@ -6741,7 +6874,7 @@
6741
6874
  "immutable": true,
6742
6875
  "locationInModule": {
6743
6876
  "filename": "lib/route.ts",
6744
- "line": 706
6877
+ "line": 703
6745
6878
  },
6746
6879
  "name": "resource",
6747
6880
  "optional": true,
@@ -6767,7 +6900,7 @@
6767
6900
  "kind": "interface",
6768
6901
  "locationInModule": {
6769
6902
  "filename": "lib/route.ts",
6770
- "line": 647
6903
+ "line": 644
6771
6904
  },
6772
6905
  "name": "RouteProps",
6773
6906
  "properties": [
@@ -6781,7 +6914,7 @@
6781
6914
  "immutable": true,
6782
6915
  "locationInModule": {
6783
6916
  "filename": "lib/route.ts",
6784
- "line": 660
6917
+ "line": 657
6785
6918
  },
6786
6919
  "name": "destination",
6787
6920
  "type": {
@@ -6800,7 +6933,7 @@
6800
6933
  "immutable": true,
6801
6934
  "locationInModule": {
6802
6935
  "filename": "lib/route.ts",
6803
- "line": 653
6936
+ "line": 650
6804
6937
  },
6805
6938
  "name": "routeTable",
6806
6939
  "type": {
@@ -6816,7 +6949,7 @@
6816
6949
  "immutable": true,
6817
6950
  "locationInModule": {
6818
6951
  "filename": "lib/route.ts",
6819
- "line": 665
6952
+ "line": 662
6820
6953
  },
6821
6954
  "name": "target",
6822
6955
  "type": {
@@ -6833,7 +6966,7 @@
6833
6966
  "immutable": true,
6834
6967
  "locationInModule": {
6835
6968
  "filename": "lib/route.ts",
6836
- "line": 672
6969
+ "line": 669
6837
6970
  },
6838
6971
  "name": "routeName",
6839
6972
  "optional": true,
@@ -6863,7 +6996,7 @@
6863
6996
  },
6864
6997
  "locationInModule": {
6865
6998
  "filename": "lib/route.ts",
6866
- "line": 790
6999
+ "line": 787
6867
7000
  },
6868
7001
  "parameters": [
6869
7002
  {
@@ -6892,7 +7025,7 @@
6892
7025
  "kind": "class",
6893
7026
  "locationInModule": {
6894
7027
  "filename": "lib/route.ts",
6895
- "line": 779
7028
+ "line": 776
6896
7029
  },
6897
7030
  "methods": [
6898
7031
  {
@@ -6902,7 +7035,7 @@
6902
7035
  },
6903
7036
  "locationInModule": {
6904
7037
  "filename": "lib/route.ts",
6905
- "line": 811
7038
+ "line": 808
6906
7039
  },
6907
7040
  "name": "addRoute",
6908
7041
  "parameters": [
@@ -6953,7 +7086,7 @@
6953
7086
  "immutable": true,
6954
7087
  "locationInModule": {
6955
7088
  "filename": "lib/route.ts",
6956
- "line": 788
7089
+ "line": 785
6957
7090
  },
6958
7091
  "name": "resource",
6959
7092
  "type": {
@@ -6968,7 +7101,7 @@
6968
7101
  "immutable": true,
6969
7102
  "locationInModule": {
6970
7103
  "filename": "lib/route.ts",
6971
- "line": 783
7104
+ "line": 780
6972
7105
  },
6973
7106
  "name": "routeTableId",
6974
7107
  "overrides": "aws-cdk-lib.aws_ec2.IRouteTable",
@@ -6994,7 +7127,7 @@
6994
7127
  "kind": "interface",
6995
7128
  "locationInModule": {
6996
7129
  "filename": "lib/route.ts",
6997
- "line": 761
7130
+ "line": 758
6998
7131
  },
6999
7132
  "name": "RouteTableProps",
7000
7133
  "properties": [
@@ -7007,7 +7140,7 @@
7007
7140
  "immutable": true,
7008
7141
  "locationInModule": {
7009
7142
  "filename": "lib/route.ts",
7010
- "line": 765
7143
+ "line": 762
7011
7144
  },
7012
7145
  "name": "vpc",
7013
7146
  "type": {
@@ -7024,7 +7157,7 @@
7024
7157
  "immutable": true,
7025
7158
  "locationInModule": {
7026
7159
  "filename": "lib/route.ts",
7027
- "line": 772
7160
+ "line": 769
7028
7161
  },
7029
7162
  "name": "routeTableName",
7030
7163
  "optional": true,
@@ -7050,7 +7183,7 @@
7050
7183
  "kind": "interface",
7051
7184
  "locationInModule": {
7052
7185
  "filename": "lib/route.ts",
7053
- "line": 572
7186
+ "line": 569
7054
7187
  },
7055
7188
  "name": "RouteTargetProps",
7056
7189
  "properties": [
@@ -7065,7 +7198,7 @@
7065
7198
  "immutable": true,
7066
7199
  "locationInModule": {
7067
7200
  "filename": "lib/route.ts",
7068
- "line": 587
7201
+ "line": 584
7069
7202
  },
7070
7203
  "name": "endpoint",
7071
7204
  "optional": true,
@@ -7084,7 +7217,7 @@
7084
7217
  "immutable": true,
7085
7218
  "locationInModule": {
7086
7219
  "filename": "lib/route.ts",
7087
- "line": 579
7220
+ "line": 576
7088
7221
  },
7089
7222
  "name": "gateway",
7090
7223
  "optional": true,
@@ -7112,7 +7245,7 @@
7112
7245
  },
7113
7246
  "locationInModule": {
7114
7247
  "filename": "lib/route.ts",
7115
- "line": 610
7248
+ "line": 607
7116
7249
  },
7117
7250
  "parameters": [
7118
7251
  {
@@ -7126,7 +7259,7 @@
7126
7259
  "kind": "class",
7127
7260
  "locationInModule": {
7128
7261
  "filename": "lib/route.ts",
7129
- "line": 593
7262
+ "line": 590
7130
7263
  },
7131
7264
  "name": "RouteTargetType",
7132
7265
  "properties": [
@@ -7140,7 +7273,7 @@
7140
7273
  "immutable": true,
7141
7274
  "locationInModule": {
7142
7275
  "filename": "lib/route.ts",
7143
- "line": 608
7276
+ "line": 605
7144
7277
  },
7145
7278
  "name": "endpoint",
7146
7279
  "optional": true,
@@ -7158,7 +7291,7 @@
7158
7291
  "immutable": true,
7159
7292
  "locationInModule": {
7160
7293
  "filename": "lib/route.ts",
7161
- "line": 600
7294
+ "line": 597
7162
7295
  },
7163
7296
  "name": "gateway",
7164
7297
  "optional": true,
@@ -7228,7 +7361,7 @@
7228
7361
  },
7229
7362
  "locationInModule": {
7230
7363
  "filename": "lib/subnet-v2.ts",
7231
- "line": 246
7364
+ "line": 243
7232
7365
  },
7233
7366
  "parameters": [
7234
7367
  {
@@ -7266,7 +7399,7 @@
7266
7399
  "kind": "class",
7267
7400
  "locationInModule": {
7268
7401
  "filename": "lib/subnet-v2.ts",
7269
- "line": 131
7402
+ "line": 130
7270
7403
  },
7271
7404
  "methods": [
7272
7405
  {
@@ -7276,7 +7409,7 @@
7276
7409
  },
7277
7410
  "locationInModule": {
7278
7411
  "filename": "lib/subnet-v2.ts",
7279
- "line": 136
7412
+ "line": 134
7280
7413
  },
7281
7414
  "name": "fromSubnetV2Attributes",
7282
7415
  "parameters": [
@@ -7313,7 +7446,7 @@
7313
7446
  },
7314
7447
  "locationInModule": {
7315
7448
  "filename": "lib/subnet-v2.ts",
7316
- "line": 333
7449
+ "line": 330
7317
7450
  },
7318
7451
  "name": "associateNetworkAcl",
7319
7452
  "overrides": "aws-cdk-lib.aws_ec2.ISubnet",
@@ -7350,7 +7483,7 @@
7350
7483
  "immutable": true,
7351
7484
  "locationInModule": {
7352
7485
  "filename": "lib/subnet-v2.ts",
7353
- "line": 198
7486
+ "line": 195
7354
7487
  },
7355
7488
  "name": "availabilityZone",
7356
7489
  "overrides": "aws-cdk-lib.aws_ec2.ISubnet",
@@ -7366,7 +7499,7 @@
7366
7499
  "immutable": true,
7367
7500
  "locationInModule": {
7368
7501
  "filename": "lib/subnet-v2.ts",
7369
- "line": 210
7502
+ "line": 207
7370
7503
  },
7371
7504
  "name": "internetConnectivityEstablished",
7372
7505
  "overrides": "aws-cdk-lib.aws_ec2.ISubnet",
@@ -7382,7 +7515,7 @@
7382
7515
  "immutable": true,
7383
7516
  "locationInModule": {
7384
7517
  "filename": "lib/subnet-v2.ts",
7385
- "line": 223
7518
+ "line": 220
7386
7519
  },
7387
7520
  "name": "ipv4CidrBlock",
7388
7521
  "overrides": "aws-cdk-lib.aws_ec2.ISubnet",
@@ -7398,7 +7531,7 @@
7398
7531
  "immutable": true,
7399
7532
  "locationInModule": {
7400
7533
  "filename": "lib/subnet-v2.ts",
7401
- "line": 355
7534
+ "line": 352
7402
7535
  },
7403
7536
  "name": "networkAcl",
7404
7537
  "type": {
@@ -7413,7 +7546,7 @@
7413
7546
  "immutable": true,
7414
7547
  "locationInModule": {
7415
7548
  "filename": "lib/subnet-v2.ts",
7416
- "line": 347
7549
+ "line": 344
7417
7550
  },
7418
7551
  "name": "routeTable",
7419
7552
  "overrides": "aws-cdk-lib.aws_ec2.ISubnet",
@@ -7432,7 +7565,7 @@
7432
7565
  "immutable": true,
7433
7566
  "locationInModule": {
7434
7567
  "filename": "lib/subnet-v2.ts",
7435
- "line": 204
7568
+ "line": 201
7436
7569
  },
7437
7570
  "name": "subnetId",
7438
7571
  "overrides": "aws-cdk-lib.aws_ec2.ISubnet",
@@ -7448,7 +7581,7 @@
7448
7581
  "immutable": true,
7449
7582
  "locationInModule": {
7450
7583
  "filename": "lib/subnet-v2.ts",
7451
- "line": 228
7584
+ "line": 225
7452
7585
  },
7453
7586
  "name": "ipv6CidrBlock",
7454
7587
  "optional": true,
@@ -7468,7 +7601,7 @@
7468
7601
  "immutable": true,
7469
7602
  "locationInModule": {
7470
7603
  "filename": "lib/subnet-v2.ts",
7471
- "line": 234
7604
+ "line": 231
7472
7605
  },
7473
7606
  "name": "subnetType",
7474
7607
  "optional": true,
@@ -7495,7 +7628,7 @@
7495
7628
  "kind": "interface",
7496
7629
  "locationInModule": {
7497
7630
  "filename": "lib/subnet-v2.ts",
7498
- "line": 363
7631
+ "line": 360
7499
7632
  },
7500
7633
  "name": "SubnetV2Attributes",
7501
7634
  "properties": [
@@ -7509,7 +7642,7 @@
7509
7642
  "immutable": true,
7510
7643
  "locationInModule": {
7511
7644
  "filename": "lib/subnet-v2.ts",
7512
- "line": 369
7645
+ "line": 366
7513
7646
  },
7514
7647
  "name": "availabilityZone",
7515
7648
  "type": {
@@ -7526,7 +7659,7 @@
7526
7659
  "immutable": true,
7527
7660
  "locationInModule": {
7528
7661
  "filename": "lib/subnet-v2.ts",
7529
- "line": 376
7662
+ "line": 373
7530
7663
  },
7531
7664
  "name": "ipv4CidrBlock",
7532
7665
  "type": {
@@ -7542,7 +7675,7 @@
7542
7675
  "immutable": true,
7543
7676
  "locationInModule": {
7544
7677
  "filename": "lib/subnet-v2.ts",
7545
- "line": 395
7678
+ "line": 392
7546
7679
  },
7547
7680
  "name": "subnetId",
7548
7681
  "type": {
@@ -7558,7 +7691,7 @@
7558
7691
  "immutable": true,
7559
7692
  "locationInModule": {
7560
7693
  "filename": "lib/subnet-v2.ts",
7561
- "line": 400
7694
+ "line": 397
7562
7695
  },
7563
7696
  "name": "subnetType",
7564
7697
  "type": {
@@ -7575,7 +7708,7 @@
7575
7708
  "immutable": true,
7576
7709
  "locationInModule": {
7577
7710
  "filename": "lib/subnet-v2.ts",
7578
- "line": 383
7711
+ "line": 380
7579
7712
  },
7580
7713
  "name": "ipv6CidrBlock",
7581
7714
  "optional": true,
@@ -7593,7 +7726,7 @@
7593
7726
  "immutable": true,
7594
7727
  "locationInModule": {
7595
7728
  "filename": "lib/subnet-v2.ts",
7596
- "line": 390
7729
+ "line": 387
7597
7730
  },
7598
7731
  "name": "routeTableId",
7599
7732
  "optional": true,
@@ -7611,7 +7744,7 @@
7611
7744
  "immutable": true,
7612
7745
  "locationInModule": {
7613
7746
  "filename": "lib/subnet-v2.ts",
7614
- "line": 407
7747
+ "line": 404
7615
7748
  },
7616
7749
  "name": "subnetName",
7617
7750
  "optional": true,
@@ -7637,7 +7770,7 @@
7637
7770
  "kind": "interface",
7638
7771
  "locationInModule": {
7639
7772
  "filename": "lib/subnet-v2.ts",
7640
- "line": 43
7773
+ "line": 42
7641
7774
  },
7642
7775
  "name": "SubnetV2Props",
7643
7776
  "properties": [
@@ -7650,7 +7783,7 @@
7650
7783
  "immutable": true,
7651
7784
  "locationInModule": {
7652
7785
  "filename": "lib/subnet-v2.ts",
7653
- "line": 65
7786
+ "line": 64
7654
7787
  },
7655
7788
  "name": "availabilityZone",
7656
7789
  "type": {
@@ -7667,7 +7800,7 @@
7667
7800
  "immutable": true,
7668
7801
  "locationInModule": {
7669
7802
  "filename": "lib/subnet-v2.ts",
7670
- "line": 53
7803
+ "line": 52
7671
7804
  },
7672
7805
  "name": "ipv4CidrBlock",
7673
7806
  "type": {
@@ -7684,7 +7817,7 @@
7684
7817
  "immutable": true,
7685
7818
  "locationInModule": {
7686
7819
  "filename": "lib/subnet-v2.ts",
7687
- "line": 82
7820
+ "line": 81
7688
7821
  },
7689
7822
  "name": "subnetType",
7690
7823
  "type": {
@@ -7700,7 +7833,7 @@
7700
7833
  "immutable": true,
7701
7834
  "locationInModule": {
7702
7835
  "filename": "lib/subnet-v2.ts",
7703
- "line": 47
7836
+ "line": 46
7704
7837
  },
7705
7838
  "name": "vpc",
7706
7839
  "type": {
@@ -7718,7 +7851,7 @@
7718
7851
  "immutable": true,
7719
7852
  "locationInModule": {
7720
7853
  "filename": "lib/subnet-v2.ts",
7721
- "line": 97
7854
+ "line": 96
7722
7855
  },
7723
7856
  "name": "assignIpv6AddressOnCreation",
7724
7857
  "optional": true,
@@ -7736,7 +7869,7 @@
7736
7869
  "immutable": true,
7737
7870
  "locationInModule": {
7738
7871
  "filename": "lib/subnet-v2.ts",
7739
- "line": 60
7872
+ "line": 59
7740
7873
  },
7741
7874
  "name": "ipv6CidrBlock",
7742
7875
  "optional": true,
@@ -7754,7 +7887,7 @@
7754
7887
  "immutable": true,
7755
7888
  "locationInModule": {
7756
7889
  "filename": "lib/subnet-v2.ts",
7757
- "line": 72
7890
+ "line": 71
7758
7891
  },
7759
7892
  "name": "routeTable",
7760
7893
  "optional": true,
@@ -7772,7 +7905,7 @@
7772
7905
  "immutable": true,
7773
7906
  "locationInModule": {
7774
7907
  "filename": "lib/subnet-v2.ts",
7775
- "line": 89
7908
+ "line": 88
7776
7909
  },
7777
7910
  "name": "subnetName",
7778
7911
  "optional": true,
@@ -7789,7 +7922,7 @@
7789
7922
  "docs": {
7790
7923
  "stability": "experimental",
7791
7924
  "summary": "Attributes for VPCCidrBlock used for defining a new CIDR Block and also for importing an existing CIDR.",
7792
- "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as ec2_alpha from '@aws-cdk/aws-ec2-alpha';\nconst vPCCidrBlockattributes: ec2_alpha.VPCCidrBlockattributes = {\n amazonProvidedIpv6CidrBlock: false,\n cidrBlock: 'cidrBlock',\n cidrBlockName: 'cidrBlockName',\n ipv4IpamPoolId: 'ipv4IpamPoolId',\n ipv4IpamProvisionedCidrs: ['ipv4IpamProvisionedCidrs'],\n ipv4NetmaskLength: 123,\n ipv6IpamPoolId: 'ipv6IpamPoolId',\n ipv6NetmaskLength: 123,\n};",
7925
+ "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as ec2_alpha from '@aws-cdk/aws-ec2-alpha';\nconst vPCCidrBlockattributes: ec2_alpha.VPCCidrBlockattributes = {\n amazonProvidedIpv6CidrBlock: false,\n cidrBlock: 'cidrBlock',\n cidrBlockName: 'cidrBlockName',\n ipv4IpamPoolId: 'ipv4IpamPoolId',\n ipv4IpamProvisionedCidrs: ['ipv4IpamProvisionedCidrs'],\n ipv4NetmaskLength: 123,\n ipv6CidrBlock: 'ipv6CidrBlock',\n ipv6IpamPoolId: 'ipv6IpamPoolId',\n ipv6NetmaskLength: 123,\n ipv6Pool: 'ipv6Pool',\n};",
7793
7926
  "custom": {
7794
7927
  "exampleMetadata": "fixture=_generated"
7795
7928
  }
@@ -7798,7 +7931,7 @@
7798
7931
  "kind": "interface",
7799
7932
  "locationInModule": {
7800
7933
  "filename": "lib/vpc-v2.ts",
7801
- "line": 667
7934
+ "line": 731
7802
7935
  },
7803
7936
  "name": "VPCCidrBlockattributes",
7804
7937
  "properties": [
@@ -7812,7 +7945,7 @@
7812
7945
  "immutable": true,
7813
7946
  "locationInModule": {
7814
7947
  "filename": "lib/vpc-v2.ts",
7815
- "line": 673
7948
+ "line": 737
7816
7949
  },
7817
7950
  "name": "amazonProvidedIpv6CidrBlock",
7818
7951
  "optional": true,
@@ -7830,7 +7963,7 @@
7830
7963
  "immutable": true,
7831
7964
  "locationInModule": {
7832
7965
  "filename": "lib/vpc-v2.ts",
7833
- "line": 680
7966
+ "line": 744
7834
7967
  },
7835
7968
  "name": "cidrBlock",
7836
7969
  "optional": true,
@@ -7848,7 +7981,7 @@
7848
7981
  "immutable": true,
7849
7982
  "locationInModule": {
7850
7983
  "filename": "lib/vpc-v2.ts",
7851
- "line": 687
7984
+ "line": 751
7852
7985
  },
7853
7986
  "name": "cidrBlockName",
7854
7987
  "optional": true,
@@ -7866,7 +7999,7 @@
7866
7999
  "immutable": true,
7867
8000
  "locationInModule": {
7868
8001
  "filename": "lib/vpc-v2.ts",
7869
- "line": 715
8002
+ "line": 779
7870
8003
  },
7871
8004
  "name": "ipv4IpamPoolId",
7872
8005
  "optional": true,
@@ -7884,7 +8017,7 @@
7884
8017
  "immutable": true,
7885
8018
  "locationInModule": {
7886
8019
  "filename": "lib/vpc-v2.ts",
7887
- "line": 723
8020
+ "line": 787
7888
8021
  },
7889
8022
  "name": "ipv4IpamProvisionedCidrs",
7890
8023
  "optional": true,
@@ -7907,7 +8040,7 @@
7907
8040
  "immutable": true,
7908
8041
  "locationInModule": {
7909
8042
  "filename": "lib/vpc-v2.ts",
7910
- "line": 701
8043
+ "line": 765
7911
8044
  },
7912
8045
  "name": "ipv4NetmaskLength",
7913
8046
  "optional": true,
@@ -7915,6 +8048,24 @@
7915
8048
  "primitive": "number"
7916
8049
  }
7917
8050
  },
8051
+ {
8052
+ "abstract": true,
8053
+ "docs": {
8054
+ "default": "- No IPv6 CIDR block associated with VPC.",
8055
+ "stability": "experimental",
8056
+ "summary": "The IPv6 CIDR block from the specified IPv6 address pool."
8057
+ },
8058
+ "immutable": true,
8059
+ "locationInModule": {
8060
+ "filename": "lib/vpc-v2.ts",
8061
+ "line": 794
8062
+ },
8063
+ "name": "ipv6CidrBlock",
8064
+ "optional": true,
8065
+ "type": {
8066
+ "primitive": "string"
8067
+ }
8068
+ },
7918
8069
  {
7919
8070
  "abstract": true,
7920
8071
  "docs": {
@@ -7925,7 +8076,7 @@
7925
8076
  "immutable": true,
7926
8077
  "locationInModule": {
7927
8078
  "filename": "lib/vpc-v2.ts",
7928
- "line": 708
8079
+ "line": 772
7929
8080
  },
7930
8081
  "name": "ipv6IpamPoolId",
7931
8082
  "optional": true,
@@ -7943,13 +8094,32 @@
7943
8094
  "immutable": true,
7944
8095
  "locationInModule": {
7945
8096
  "filename": "lib/vpc-v2.ts",
7946
- "line": 694
8097
+ "line": 758
7947
8098
  },
7948
8099
  "name": "ipv6NetmaskLength",
7949
8100
  "optional": true,
7950
8101
  "type": {
7951
8102
  "primitive": "number"
7952
8103
  }
8104
+ },
8105
+ {
8106
+ "abstract": true,
8107
+ "docs": {
8108
+ "default": "- No BYOIP pool associated with VPC.",
8109
+ "remarks": "Note: BYOIP Pool ID is different than IPAM Pool ID.",
8110
+ "stability": "experimental",
8111
+ "summary": "The ID of the IPv6 address pool from which to allocate the IPv6 CIDR block."
8112
+ },
8113
+ "immutable": true,
8114
+ "locationInModule": {
8115
+ "filename": "lib/vpc-v2.ts",
8116
+ "line": 802
8117
+ },
8118
+ "name": "ipv6Pool",
8119
+ "optional": true,
8120
+ "type": {
8121
+ "primitive": "string"
8122
+ }
7953
8123
  }
7954
8124
  ],
7955
8125
  "symbolId": "lib/vpc-v2:VPCCidrBlockattributes"
@@ -7973,7 +8143,7 @@
7973
8143
  },
7974
8144
  "locationInModule": {
7975
8145
  "filename": "lib/route.ts",
7976
- "line": 490
8146
+ "line": 488
7977
8147
  },
7978
8148
  "parameters": [
7979
8149
  {
@@ -8002,7 +8172,7 @@
8002
8172
  "kind": "class",
8003
8173
  "locationInModule": {
8004
8174
  "filename": "lib/route.ts",
8005
- "line": 473
8175
+ "line": 472
8006
8176
  },
8007
8177
  "name": "VPCPeeringConnection",
8008
8178
  "properties": [
@@ -8014,7 +8184,7 @@
8014
8184
  "immutable": true,
8015
8185
  "locationInModule": {
8016
8186
  "filename": "lib/route.ts",
8017
- "line": 488
8187
+ "line": 486
8018
8188
  },
8019
8189
  "name": "resource",
8020
8190
  "type": {
@@ -8029,7 +8199,7 @@
8029
8199
  "immutable": true,
8030
8200
  "locationInModule": {
8031
8201
  "filename": "lib/route.ts",
8032
- "line": 483
8202
+ "line": 481
8033
8203
  },
8034
8204
  "name": "routerTargetId",
8035
8205
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteTarget",
@@ -8045,7 +8215,7 @@
8045
8215
  "immutable": true,
8046
8216
  "locationInModule": {
8047
8217
  "filename": "lib/route.ts",
8048
- "line": 478
8218
+ "line": 476
8049
8219
  },
8050
8220
  "name": "routerType",
8051
8221
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteTarget",
@@ -8433,7 +8603,7 @@
8433
8603
  "docs": {
8434
8604
  "stability": "experimental",
8435
8605
  "summary": "Consolidated return parameters to pass to VPC construct.",
8436
- "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as ec2_alpha from '@aws-cdk/aws-ec2-alpha';\nimport * as cdk from 'aws-cdk-lib';\n\ndeclare const cfnResource: cdk.CfnResource;\ndeclare const ipamPool: ec2_alpha.IIpamPool;\nconst vpcCidrOptions: ec2_alpha.VpcCidrOptions = {\n amazonProvided: false,\n cidrBlockName: 'cidrBlockName',\n dependencies: [cfnResource],\n ipv4CidrBlock: 'ipv4CidrBlock',\n ipv4IpamPool: ipamPool,\n ipv4IpamProvisionedCidrs: ['ipv4IpamProvisionedCidrs'],\n ipv4NetmaskLength: 123,\n ipv6IpamPool: ipamPool,\n ipv6NetmaskLength: 123,\n};",
8606
+ "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as ec2_alpha from '@aws-cdk/aws-ec2-alpha';\nimport * as cdk from 'aws-cdk-lib';\n\ndeclare const cfnResource: cdk.CfnResource;\ndeclare const ipamPool: ec2_alpha.IIpamPool;\nconst vpcCidrOptions: ec2_alpha.VpcCidrOptions = {\n amazonProvided: false,\n cidrBlockName: 'cidrBlockName',\n dependencies: [cfnResource],\n ipv4CidrBlock: 'ipv4CidrBlock',\n ipv4IpamPool: ipamPool,\n ipv4IpamProvisionedCidrs: ['ipv4IpamProvisionedCidrs'],\n ipv4NetmaskLength: 123,\n ipv6CidrBlock: 'ipv6CidrBlock',\n ipv6IpamPool: ipamPool,\n ipv6NetmaskLength: 123,\n ipv6PoolId: 'ipv6PoolId',\n};",
8437
8607
  "custom": {
8438
8608
  "exampleMetadata": "fixture=_generated"
8439
8609
  }
@@ -8442,7 +8612,7 @@
8442
8612
  "kind": "interface",
8443
8613
  "locationInModule": {
8444
8614
  "filename": "lib/vpc-v2.ts",
8445
- "line": 57
8615
+ "line": 84
8446
8616
  },
8447
8617
  "name": "VpcCidrOptions",
8448
8618
  "properties": [
@@ -8456,7 +8626,7 @@
8456
8626
  "immutable": true,
8457
8627
  "locationInModule": {
8458
8628
  "filename": "lib/vpc-v2.ts",
8459
- "line": 100
8629
+ "line": 127
8460
8630
  },
8461
8631
  "name": "amazonProvided",
8462
8632
  "optional": true,
@@ -8474,7 +8644,7 @@
8474
8644
  "immutable": true,
8475
8645
  "locationInModule": {
8476
8646
  "filename": "lib/vpc-v2.ts",
8477
- "line": 115
8647
+ "line": 142
8478
8648
  },
8479
8649
  "name": "cidrBlockName",
8480
8650
  "optional": true,
@@ -8492,7 +8662,7 @@
8492
8662
  "immutable": true,
8493
8663
  "locationInModule": {
8494
8664
  "filename": "lib/vpc-v2.ts",
8495
- "line": 107
8665
+ "line": 134
8496
8666
  },
8497
8667
  "name": "dependencies",
8498
8668
  "optional": true,
@@ -8515,7 +8685,7 @@
8515
8685
  "immutable": true,
8516
8686
  "locationInModule": {
8517
8687
  "filename": "lib/vpc-v2.ts",
8518
- "line": 64
8688
+ "line": 91
8519
8689
  },
8520
8690
  "name": "ipv4CidrBlock",
8521
8691
  "optional": true,
@@ -8533,7 +8703,7 @@
8533
8703
  "immutable": true,
8534
8704
  "locationInModule": {
8535
8705
  "filename": "lib/vpc-v2.ts",
8536
- "line": 78
8706
+ "line": 105
8537
8707
  },
8538
8708
  "name": "ipv4IpamPool",
8539
8709
  "optional": true,
@@ -8551,7 +8721,7 @@
8551
8721
  "immutable": true,
8552
8722
  "locationInModule": {
8553
8723
  "filename": "lib/vpc-v2.ts",
8554
- "line": 123
8724
+ "line": 150
8555
8725
  },
8556
8726
  "name": "ipv4IpamProvisionedCidrs",
8557
8727
  "optional": true,
@@ -8574,7 +8744,7 @@
8574
8744
  "immutable": true,
8575
8745
  "locationInModule": {
8576
8746
  "filename": "lib/vpc-v2.ts",
8577
- "line": 71
8747
+ "line": 98
8578
8748
  },
8579
8749
  "name": "ipv4NetmaskLength",
8580
8750
  "optional": true,
@@ -8582,6 +8752,24 @@
8582
8752
  "primitive": "number"
8583
8753
  }
8584
8754
  },
8755
+ {
8756
+ "abstract": true,
8757
+ "docs": {
8758
+ "default": "- None",
8759
+ "stability": "experimental",
8760
+ "summary": "IPv6 CIDR block from the BOYIP IPv6 address pool."
8761
+ },
8762
+ "immutable": true,
8763
+ "locationInModule": {
8764
+ "filename": "lib/vpc-v2.ts",
8765
+ "line": 157
8766
+ },
8767
+ "name": "ipv6CidrBlock",
8768
+ "optional": true,
8769
+ "type": {
8770
+ "primitive": "string"
8771
+ }
8772
+ },
8585
8773
  {
8586
8774
  "abstract": true,
8587
8775
  "docs": {
@@ -8592,7 +8780,7 @@
8592
8780
  "immutable": true,
8593
8781
  "locationInModule": {
8594
8782
  "filename": "lib/vpc-v2.ts",
8595
- "line": 93
8783
+ "line": 120
8596
8784
  },
8597
8785
  "name": "ipv6IpamPool",
8598
8786
  "optional": true,
@@ -8610,13 +8798,31 @@
8610
8798
  "immutable": true,
8611
8799
  "locationInModule": {
8612
8800
  "filename": "lib/vpc-v2.ts",
8613
- "line": 85
8801
+ "line": 112
8614
8802
  },
8615
8803
  "name": "ipv6NetmaskLength",
8616
8804
  "optional": true,
8617
8805
  "type": {
8618
8806
  "primitive": "number"
8619
8807
  }
8808
+ },
8809
+ {
8810
+ "abstract": true,
8811
+ "docs": {
8812
+ "default": "- None",
8813
+ "stability": "experimental",
8814
+ "summary": "ID of the BYOIP IPv6 address pool from which to allocate the IPv6 CIDR block."
8815
+ },
8816
+ "immutable": true,
8817
+ "locationInModule": {
8818
+ "filename": "lib/vpc-v2.ts",
8819
+ "line": 164
8820
+ },
8821
+ "name": "ipv6PoolId",
8822
+ "optional": true,
8823
+ "type": {
8824
+ "primitive": "string"
8825
+ }
8620
8826
  }
8621
8827
  ],
8622
8828
  "symbolId": "lib/vpc-v2:VpcCidrOptions"
@@ -8641,7 +8847,7 @@
8641
8847
  },
8642
8848
  "locationInModule": {
8643
8849
  "filename": "lib/vpc-v2.ts",
8644
- "line": 454
8850
+ "line": 493
8645
8851
  },
8646
8852
  "parameters": [
8647
8853
  {
@@ -8668,7 +8874,7 @@
8668
8874
  "kind": "class",
8669
8875
  "locationInModule": {
8670
8876
  "filename": "lib/vpc-v2.ts",
8671
- "line": 266
8877
+ "line": 307
8672
8878
  },
8673
8879
  "methods": [
8674
8880
  {
@@ -8678,7 +8884,7 @@
8678
8884
  },
8679
8885
  "locationInModule": {
8680
8886
  "filename": "lib/vpc-v2.ts",
8681
- "line": 271
8887
+ "line": 311
8682
8888
  },
8683
8889
  "name": "fromVpcV2Attributes",
8684
8890
  "parameters": [
@@ -8719,7 +8925,7 @@
8719
8925
  "immutable": true,
8720
8926
  "locationInModule": {
8721
8927
  "filename": "lib/vpc-v2.ts",
8722
- "line": 388
8928
+ "line": 427
8723
8929
  },
8724
8930
  "name": "dnsHostnamesEnabled",
8725
8931
  "type": {
@@ -8734,7 +8940,7 @@
8734
8940
  "immutable": true,
8735
8941
  "locationInModule": {
8736
8942
  "filename": "lib/vpc-v2.ts",
8737
- "line": 393
8943
+ "line": 432
8738
8944
  },
8739
8945
  "name": "dnsSupportEnabled",
8740
8946
  "type": {
@@ -8749,7 +8955,7 @@
8749
8955
  "immutable": true,
8750
8956
  "locationInModule": {
8751
8957
  "filename": "lib/vpc-v2.ts",
8752
- "line": 413
8958
+ "line": 452
8753
8959
  },
8754
8960
  "name": "internetConnectivityEstablished",
8755
8961
  "overrides": "@aws-cdk/aws-ec2-alpha.VpcV2Base",
@@ -8765,7 +8971,7 @@
8765
8971
  "immutable": true,
8766
8972
  "locationInModule": {
8767
8973
  "filename": "lib/vpc-v2.ts",
8768
- "line": 378
8974
+ "line": 417
8769
8975
  },
8770
8976
  "name": "ipAddresses",
8771
8977
  "type": {
@@ -8781,7 +8987,7 @@
8781
8987
  "immutable": true,
8782
8988
  "locationInModule": {
8783
8989
  "filename": "lib/vpc-v2.ts",
8784
- "line": 452
8990
+ "line": 491
8785
8991
  },
8786
8992
  "name": "ipv4CidrBlock",
8787
8993
  "overrides": "@aws-cdk/aws-ec2-alpha.VpcV2Base",
@@ -8798,7 +9004,7 @@
8798
9004
  "immutable": true,
8799
9005
  "locationInModule": {
8800
9006
  "filename": "lib/vpc-v2.ts",
8801
- "line": 373
9007
+ "line": 412
8802
9008
  },
8803
9009
  "name": "ipv6CidrBlocks",
8804
9010
  "type": {
@@ -8818,7 +9024,7 @@
8818
9024
  "immutable": true,
8819
9025
  "locationInModule": {
8820
9026
  "filename": "lib/vpc-v2.ts",
8821
- "line": 398
9027
+ "line": 437
8822
9028
  },
8823
9029
  "name": "isolatedSubnets",
8824
9030
  "overrides": "@aws-cdk/aws-ec2-alpha.VpcV2Base",
@@ -8839,7 +9045,7 @@
8839
9045
  "immutable": true,
8840
9046
  "locationInModule": {
8841
9047
  "filename": "lib/vpc-v2.ts",
8842
- "line": 435
9048
+ "line": 474
8843
9049
  },
8844
9050
  "name": "ownerAccountId",
8845
9051
  "overrides": "@aws-cdk/aws-ec2-alpha.VpcV2Base",
@@ -8855,7 +9061,7 @@
8855
9061
  "immutable": true,
8856
9062
  "locationInModule": {
8857
9063
  "filename": "lib/vpc-v2.ts",
8858
- "line": 408
9064
+ "line": 447
8859
9065
  },
8860
9066
  "name": "privateSubnets",
8861
9067
  "overrides": "@aws-cdk/aws-ec2-alpha.VpcV2Base",
@@ -8876,7 +9082,7 @@
8876
9082
  "immutable": true,
8877
9083
  "locationInModule": {
8878
9084
  "filename": "lib/vpc-v2.ts",
8879
- "line": 403
9085
+ "line": 442
8880
9086
  },
8881
9087
  "name": "publicSubnets",
8882
9088
  "overrides": "@aws-cdk/aws-ec2-alpha.VpcV2Base",
@@ -8897,7 +9103,7 @@
8897
9103
  "immutable": true,
8898
9104
  "locationInModule": {
8899
9105
  "filename": "lib/vpc-v2.ts",
8900
- "line": 430
9106
+ "line": 469
8901
9107
  },
8902
9108
  "name": "region",
8903
9109
  "overrides": "@aws-cdk/aws-ec2-alpha.VpcV2Base",
@@ -8913,7 +9119,7 @@
8913
9119
  "immutable": true,
8914
9120
  "locationInModule": {
8915
9121
  "filename": "lib/vpc-v2.ts",
8916
- "line": 383
9122
+ "line": 422
8917
9123
  },
8918
9124
  "name": "resource",
8919
9125
  "type": {
@@ -8929,7 +9135,7 @@
8929
9135
  "immutable": true,
8930
9136
  "locationInModule": {
8931
9137
  "filename": "lib/vpc-v2.ts",
8932
- "line": 444
9138
+ "line": 483
8933
9139
  },
8934
9140
  "name": "useIpv6",
8935
9141
  "type": {
@@ -8947,7 +9153,7 @@
8947
9153
  "immutable": true,
8948
9154
  "locationInModule": {
8949
9155
  "filename": "lib/vpc-v2.ts",
8950
- "line": 362
9156
+ "line": 401
8951
9157
  },
8952
9158
  "name": "vpcArn",
8953
9159
  "overrides": "@aws-cdk/aws-ec2-alpha.VpcV2Base",
@@ -8966,7 +9172,7 @@
8966
9172
  "immutable": true,
8967
9173
  "locationInModule": {
8968
9174
  "filename": "lib/vpc-v2.ts",
8969
- "line": 367
9175
+ "line": 406
8970
9176
  },
8971
9177
  "name": "vpcCidrBlock",
8972
9178
  "overrides": "@aws-cdk/aws-ec2-alpha.VpcV2Base",
@@ -8982,7 +9188,7 @@
8982
9188
  "immutable": true,
8983
9189
  "locationInModule": {
8984
9190
  "filename": "lib/vpc-v2.ts",
8985
- "line": 357
9191
+ "line": 396
8986
9192
  },
8987
9193
  "name": "vpcId",
8988
9194
  "overrides": "@aws-cdk/aws-ec2-alpha.VpcV2Base",
@@ -8998,7 +9204,7 @@
8998
9204
  "immutable": true,
8999
9205
  "locationInModule": {
9000
9206
  "filename": "lib/vpc-v2.ts",
9001
- "line": 425
9207
+ "line": 464
9002
9208
  },
9003
9209
  "name": "ipv4IpamProvisionedCidrs",
9004
9210
  "optional": true,
@@ -9020,7 +9226,7 @@
9020
9226
  "immutable": true,
9021
9227
  "locationInModule": {
9022
9228
  "filename": "lib/vpc-v2.ts",
9023
- "line": 418
9229
+ "line": 457
9024
9230
  },
9025
9231
  "name": "secondaryCidrBlock",
9026
9232
  "optional": true,
@@ -9045,7 +9251,7 @@
9045
9251
  "immutable": true,
9046
9252
  "locationInModule": {
9047
9253
  "filename": "lib/vpc-v2.ts",
9048
- "line": 450
9254
+ "line": 489
9049
9255
  },
9050
9256
  "name": "vpcName",
9051
9257
  "optional": true,
@@ -9072,7 +9278,7 @@
9072
9278
  "kind": "interface",
9073
9279
  "locationInModule": {
9074
9280
  "filename": "lib/vpc-v2.ts",
9075
- "line": 203
9281
+ "line": 244
9076
9282
  },
9077
9283
  "name": "VpcV2Attributes",
9078
9284
  "properties": [
@@ -9085,7 +9291,7 @@
9085
9291
  "immutable": true,
9086
9292
  "locationInModule": {
9087
9293
  "filename": "lib/vpc-v2.ts",
9088
- "line": 235
9294
+ "line": 276
9089
9295
  },
9090
9296
  "name": "vpcCidrBlock",
9091
9297
  "type": {
@@ -9101,7 +9307,7 @@
9101
9307
  "immutable": true,
9102
9308
  "locationInModule": {
9103
9309
  "filename": "lib/vpc-v2.ts",
9104
- "line": 209
9310
+ "line": 250
9105
9311
  },
9106
9312
  "name": "vpcId",
9107
9313
  "type": {
@@ -9118,7 +9324,7 @@
9118
9324
  "immutable": true,
9119
9325
  "locationInModule": {
9120
9326
  "filename": "lib/vpc-v2.ts",
9121
- "line": 229
9327
+ "line": 270
9122
9328
  },
9123
9329
  "name": "ownerAccountId",
9124
9330
  "optional": true,
@@ -9136,7 +9342,7 @@
9136
9342
  "immutable": true,
9137
9343
  "locationInModule": {
9138
9344
  "filename": "lib/vpc-v2.ts",
9139
- "line": 219
9345
+ "line": 260
9140
9346
  },
9141
9347
  "name": "region",
9142
9348
  "optional": true,
@@ -9154,7 +9360,7 @@
9154
9360
  "immutable": true,
9155
9361
  "locationInModule": {
9156
9362
  "filename": "lib/vpc-v2.ts",
9157
- "line": 256
9363
+ "line": 297
9158
9364
  },
9159
9365
  "name": "secondaryCidrBlocks",
9160
9366
  "optional": true,
@@ -9177,7 +9383,7 @@
9177
9383
  "immutable": true,
9178
9384
  "locationInModule": {
9179
9385
  "filename": "lib/vpc-v2.ts",
9180
- "line": 249
9386
+ "line": 290
9181
9387
  },
9182
9388
  "name": "subnets",
9183
9389
  "optional": true,
@@ -9200,7 +9406,7 @@
9200
9406
  "immutable": true,
9201
9407
  "locationInModule": {
9202
9408
  "filename": "lib/vpc-v2.ts",
9203
- "line": 242
9409
+ "line": 283
9204
9410
  },
9205
9411
  "name": "vpnGatewayId",
9206
9412
  "optional": true,
@@ -9267,7 +9473,7 @@
9267
9473
  },
9268
9474
  "locationInModule": {
9269
9475
  "filename": "lib/vpc-v2-base.ts",
9270
- "line": 390
9476
+ "line": 389
9271
9477
  },
9272
9478
  "name": "addClientVpnEndpoint",
9273
9479
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -9299,7 +9505,7 @@
9299
9505
  },
9300
9506
  "locationInModule": {
9301
9507
  "filename": "lib/vpc-v2-base.ts",
9302
- "line": 423
9508
+ "line": 422
9303
9509
  },
9304
9510
  "name": "addEgressOnlyInternetGateway",
9305
9511
  "overrides": "@aws-cdk/aws-ec2-alpha.IVpcV2",
@@ -9320,7 +9526,7 @@
9320
9526
  },
9321
9527
  "locationInModule": {
9322
9528
  "filename": "lib/vpc-v2-base.ts",
9323
- "line": 531
9529
+ "line": 530
9324
9530
  },
9325
9531
  "name": "addFlowLog",
9326
9532
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -9352,7 +9558,7 @@
9352
9558
  },
9353
9559
  "locationInModule": {
9354
9560
  "filename": "lib/vpc-v2-base.ts",
9355
- "line": 410
9561
+ "line": 409
9356
9562
  },
9357
9563
  "name": "addGatewayEndpoint",
9358
9564
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -9383,7 +9589,7 @@
9383
9589
  },
9384
9590
  "locationInModule": {
9385
9591
  "filename": "lib/vpc-v2-base.ts",
9386
- "line": 400
9592
+ "line": 399
9387
9593
  },
9388
9594
  "name": "addInterfaceEndpoint",
9389
9595
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -9415,7 +9621,7 @@
9415
9621
  },
9416
9622
  "locationInModule": {
9417
9623
  "filename": "lib/vpc-v2-base.ts",
9418
- "line": 467
9624
+ "line": 466
9419
9625
  },
9420
9626
  "name": "addInternetGateway",
9421
9627
  "overrides": "@aws-cdk/aws-ec2-alpha.IVpcV2",
@@ -9436,7 +9642,7 @@
9436
9642
  },
9437
9643
  "locationInModule": {
9438
9644
  "filename": "lib/vpc-v2-base.ts",
9439
- "line": 518
9645
+ "line": 517
9440
9646
  },
9441
9647
  "name": "addNatGateway",
9442
9648
  "overrides": "@aws-cdk/aws-ec2-alpha.IVpcV2",
@@ -9461,7 +9667,7 @@
9461
9667
  },
9462
9668
  "locationInModule": {
9463
9669
  "filename": "lib/vpc-v2-base.ts",
9464
- "line": 380
9670
+ "line": 379
9465
9671
  },
9466
9672
  "name": "addVpnConnection",
9467
9673
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -9492,7 +9698,7 @@
9492
9698
  },
9493
9699
  "locationInModule": {
9494
9700
  "filename": "lib/vpc-v2-base.ts",
9495
- "line": 541
9701
+ "line": 540
9496
9702
  },
9497
9703
  "name": "createAcceptorVpcRole",
9498
9704
  "overrides": "@aws-cdk/aws-ec2-alpha.IVpcV2",
@@ -9517,7 +9723,7 @@
9517
9723
  },
9518
9724
  "locationInModule": {
9519
9725
  "filename": "lib/vpc-v2-base.ts",
9520
- "line": 571
9726
+ "line": 570
9521
9727
  },
9522
9728
  "name": "createPeeringConnection",
9523
9729
  "overrides": "@aws-cdk/aws-ec2-alpha.IVpcV2",
@@ -9549,7 +9755,7 @@
9549
9755
  },
9550
9756
  "locationInModule": {
9551
9757
  "filename": "lib/vpc-v2-base.ts",
9552
- "line": 322
9758
+ "line": 321
9553
9759
  },
9554
9760
  "name": "enableVpnGateway",
9555
9761
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -9569,7 +9775,7 @@
9569
9775
  },
9570
9776
  "locationInModule": {
9571
9777
  "filename": "lib/vpc-v2-base.ts",
9572
- "line": 360
9778
+ "line": 359
9573
9779
  },
9574
9780
  "name": "enableVpnGatewayV2",
9575
9781
  "overrides": "@aws-cdk/aws-ec2-alpha.IVpcV2",
@@ -9594,7 +9800,7 @@
9594
9800
  },
9595
9801
  "locationInModule": {
9596
9802
  "filename": "lib/vpc-v2-base.ts",
9597
- "line": 595
9803
+ "line": 594
9598
9804
  },
9599
9805
  "name": "selectSubnetObjects",
9600
9806
  "parameters": [
@@ -9626,7 +9832,7 @@
9626
9832
  },
9627
9833
  "locationInModule": {
9628
9834
  "filename": "lib/vpc-v2-base.ts",
9629
- "line": 304
9835
+ "line": 303
9630
9836
  },
9631
9837
  "name": "selectSubnets",
9632
9838
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -9656,7 +9862,7 @@
9656
9862
  "immutable": true,
9657
9863
  "locationInModule": {
9658
9864
  "filename": "lib/vpc-v2-base.ts",
9659
- "line": 231
9865
+ "line": 230
9660
9866
  },
9661
9867
  "name": "availabilityZones",
9662
9868
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -9678,7 +9884,7 @@
9678
9884
  "immutable": true,
9679
9885
  "locationInModule": {
9680
9886
  "filename": "lib/vpc-v2-base.ts",
9681
- "line": 236
9887
+ "line": 235
9682
9888
  },
9683
9889
  "name": "internetConnectivityEstablished",
9684
9890
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -9696,7 +9902,7 @@
9696
9902
  "immutable": true,
9697
9903
  "locationInModule": {
9698
9904
  "filename": "lib/vpc-v2-base.ts",
9699
- "line": 257
9905
+ "line": 256
9700
9906
  },
9701
9907
  "name": "ipv4CidrBlock",
9702
9908
  "overrides": "@aws-cdk/aws-ec2-alpha.IVpcV2",
@@ -9713,7 +9919,7 @@
9713
9919
  "immutable": true,
9714
9920
  "locationInModule": {
9715
9921
  "filename": "lib/vpc-v2-base.ts",
9716
- "line": 226
9922
+ "line": 225
9717
9923
  },
9718
9924
  "name": "isolatedSubnets",
9719
9925
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -9735,7 +9941,7 @@
9735
9941
  "immutable": true,
9736
9942
  "locationInModule": {
9737
9943
  "filename": "lib/vpc-v2-base.ts",
9738
- "line": 272
9944
+ "line": 271
9739
9945
  },
9740
9946
  "name": "ownerAccountId",
9741
9947
  "overrides": "@aws-cdk/aws-ec2-alpha.IVpcV2",
@@ -9751,7 +9957,7 @@
9751
9957
  "immutable": true,
9752
9958
  "locationInModule": {
9753
9959
  "filename": "lib/vpc-v2-base.ts",
9754
- "line": 221
9960
+ "line": 220
9755
9961
  },
9756
9962
  "name": "privateSubnets",
9757
9963
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -9772,7 +9978,7 @@
9772
9978
  "immutable": true,
9773
9979
  "locationInModule": {
9774
9980
  "filename": "lib/vpc-v2-base.ts",
9775
- "line": 216
9981
+ "line": 215
9776
9982
  },
9777
9983
  "name": "publicSubnets",
9778
9984
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -9794,7 +10000,7 @@
9794
10000
  "immutable": true,
9795
10001
  "locationInModule": {
9796
10002
  "filename": "lib/vpc-v2-base.ts",
9797
- "line": 267
10003
+ "line": 266
9798
10004
  },
9799
10005
  "name": "region",
9800
10006
  "overrides": "@aws-cdk/aws-ec2-alpha.IVpcV2",
@@ -9811,7 +10017,7 @@
9811
10017
  "immutable": true,
9812
10018
  "locationInModule": {
9813
10019
  "filename": "lib/vpc-v2-base.ts",
9814
- "line": 206
10020
+ "line": 205
9815
10021
  },
9816
10022
  "name": "vpcArn",
9817
10023
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -9828,7 +10034,7 @@
9828
10034
  "immutable": true,
9829
10035
  "locationInModule": {
9830
10036
  "filename": "lib/vpc-v2-base.ts",
9831
- "line": 211
10037
+ "line": 210
9832
10038
  },
9833
10039
  "name": "vpcCidrBlock",
9834
10040
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -9845,7 +10051,7 @@
9845
10051
  "immutable": true,
9846
10052
  "locationInModule": {
9847
10053
  "filename": "lib/vpc-v2-base.ts",
9848
- "line": 201
10054
+ "line": 200
9849
10055
  },
9850
10056
  "name": "vpcId",
9851
10057
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -9861,7 +10067,7 @@
9861
10067
  "immutable": true,
9862
10068
  "locationInModule": {
9863
10069
  "filename": "lib/vpc-v2-base.ts",
9864
- "line": 588
10070
+ "line": 587
9865
10071
  },
9866
10072
  "name": "internetGatewayId",
9867
10073
  "optional": true,
@@ -9878,7 +10084,7 @@
9878
10084
  "immutable": true,
9879
10085
  "locationInModule": {
9880
10086
  "filename": "lib/vpc-v2-base.ts",
9881
- "line": 279
10087
+ "line": 278
9882
10088
  },
9883
10089
  "name": "ipv4IpamProvisionedCidrs",
9884
10090
  "optional": true,
@@ -9901,7 +10107,7 @@
9901
10107
  "immutable": true,
9902
10108
  "locationInModule": {
9903
10109
  "filename": "lib/vpc-v2-base.ts",
9904
- "line": 249
10110
+ "line": 248
9905
10111
  },
9906
10112
  "name": "secondaryCidrBlock",
9907
10113
  "optional": true,
@@ -9924,7 +10130,7 @@
9924
10130
  "immutable": true,
9925
10131
  "locationInModule": {
9926
10132
  "filename": "lib/vpc-v2-base.ts",
9927
- "line": 262
10133
+ "line": 261
9928
10134
  },
9929
10135
  "name": "vpcName",
9930
10136
  "optional": true,
@@ -9941,7 +10147,7 @@
9941
10147
  "immutable": true,
9942
10148
  "locationInModule": {
9943
10149
  "filename": "lib/vpc-v2-base.ts",
9944
- "line": 581
10150
+ "line": 580
9945
10151
  },
9946
10152
  "name": "vpnGatewayId",
9947
10153
  "optional": true,
@@ -9957,7 +10163,7 @@
9957
10163
  },
9958
10164
  "locationInModule": {
9959
10165
  "filename": "lib/vpc-v2-base.ts",
9960
- "line": 284
10166
+ "line": 283
9961
10167
  },
9962
10168
  "name": "incompleteSubnetDefinition",
9963
10169
  "protected": true,
@@ -9983,7 +10189,7 @@
9983
10189
  "kind": "interface",
9984
10190
  "locationInModule": {
9985
10191
  "filename": "lib/vpc-v2.ts",
9986
- "line": 148
10192
+ "line": 189
9987
10193
  },
9988
10194
  "name": "VpcV2Props",
9989
10195
  "properties": [
@@ -9998,7 +10204,7 @@
9998
10204
  "immutable": true,
9999
10205
  "locationInModule": {
10000
10206
  "filename": "lib/vpc-v2.ts",
10001
- "line": 190
10207
+ "line": 231
10002
10208
  },
10003
10209
  "name": "defaultInstanceTenancy",
10004
10210
  "optional": true,
@@ -10016,7 +10222,7 @@
10016
10222
  "immutable": true,
10017
10223
  "locationInModule": {
10018
10224
  "filename": "lib/vpc-v2.ts",
10019
- "line": 171
10225
+ "line": 212
10020
10226
  },
10021
10227
  "name": "enableDnsHostnames",
10022
10228
  "optional": true,
@@ -10034,7 +10240,7 @@
10034
10240
  "immutable": true,
10035
10241
  "locationInModule": {
10036
10242
  "filename": "lib/vpc-v2.ts",
10037
- "line": 178
10243
+ "line": 219
10038
10244
  },
10039
10245
  "name": "enableDnsSupport",
10040
10246
  "optional": true,
@@ -10053,7 +10259,7 @@
10053
10259
  "immutable": true,
10054
10260
  "locationInModule": {
10055
10261
  "filename": "lib/vpc-v2.ts",
10056
- "line": 155
10262
+ "line": 196
10057
10263
  },
10058
10264
  "name": "primaryAddressBlock",
10059
10265
  "optional": true,
@@ -10073,7 +10279,7 @@
10073
10279
  "immutable": true,
10074
10280
  "locationInModule": {
10075
10281
  "filename": "lib/vpc-v2.ts",
10076
- "line": 164
10282
+ "line": 205
10077
10283
  },
10078
10284
  "name": "secondaryAddressBlocks",
10079
10285
  "optional": true,
@@ -10096,7 +10302,7 @@
10096
10302
  "immutable": true,
10097
10303
  "locationInModule": {
10098
10304
  "filename": "lib/vpc-v2.ts",
10099
- "line": 197
10305
+ "line": 238
10100
10306
  },
10101
10307
  "name": "vpcName",
10102
10308
  "optional": true,
@@ -10108,6 +10314,6 @@
10108
10314
  "symbolId": "lib/vpc-v2:VpcV2Props"
10109
10315
  }
10110
10316
  },
10111
- "version": "2.175.1-alpha.0",
10317
+ "version": "2.177.0-alpha.0",
10112
10318
  "fingerprint": "**********"
10113
10319
  }