@aws-cdk/aws-ec2-alpha 2.168.0-alpha.0 → 2.170.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.168.0",
11
+ "aws-cdk-lib": "^2.170.0",
12
12
  "constructs": "^10.0.0"
13
13
  },
14
14
  "dependencyClosure": {
@@ -2840,6 +2840,19 @@
2840
2840
  }
2841
2841
  }
2842
2842
  },
2843
+ "aws-cdk-lib.aws_rbin": {
2844
+ "targets": {
2845
+ "dotnet": {
2846
+ "package": "Amazon.CDK.AWS.Rbin"
2847
+ },
2848
+ "java": {
2849
+ "package": "software.amazon.awscdk.services.rbin"
2850
+ },
2851
+ "python": {
2852
+ "module": "aws_cdk.aws_rbin"
2853
+ }
2854
+ }
2855
+ },
2843
2856
  "aws-cdk-lib.aws_rds": {
2844
2857
  "targets": {
2845
2858
  "dotnet": {
@@ -3896,7 +3909,7 @@
3896
3909
  },
3897
3910
  "name": "@aws-cdk/aws-ec2-alpha",
3898
3911
  "readme": {
3899
- "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## 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"
3912
+ "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"
3900
3913
  },
3901
3914
  "repository": {
3902
3915
  "directory": "packages/@aws-cdk/aws-ec2-alpha",
@@ -4016,7 +4029,7 @@
4016
4029
  },
4017
4030
  "locationInModule": {
4018
4031
  "filename": "lib/route.ts",
4019
- "line": 198
4032
+ "line": 232
4020
4033
  },
4021
4034
  "parameters": [
4022
4035
  {
@@ -4045,7 +4058,7 @@
4045
4058
  "kind": "class",
4046
4059
  "locationInModule": {
4047
4060
  "filename": "lib/route.ts",
4048
- "line": 182
4061
+ "line": 216
4049
4062
  },
4050
4063
  "name": "EgressOnlyInternetGateway",
4051
4064
  "properties": [
@@ -4057,7 +4070,7 @@
4057
4070
  "immutable": true,
4058
4071
  "locationInModule": {
4059
4072
  "filename": "lib/route.ts",
4060
- "line": 196
4073
+ "line": 230
4061
4074
  },
4062
4075
  "name": "resource",
4063
4076
  "type": {
@@ -4072,7 +4085,7 @@
4072
4085
  "immutable": true,
4073
4086
  "locationInModule": {
4074
4087
  "filename": "lib/route.ts",
4075
- "line": 191
4088
+ "line": 225
4076
4089
  },
4077
4090
  "name": "routerTargetId",
4078
4091
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteTarget",
@@ -4088,7 +4101,7 @@
4088
4101
  "immutable": true,
4089
4102
  "locationInModule": {
4090
4103
  "filename": "lib/route.ts",
4091
- "line": 186
4104
+ "line": 220
4092
4105
  },
4093
4106
  "name": "routerType",
4094
4107
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteTarget",
@@ -4114,7 +4127,7 @@
4114
4127
  "kind": "interface",
4115
4128
  "locationInModule": {
4116
4129
  "filename": "lib/vpc-v2-base.ts",
4117
- "line": 12
4130
+ "line": 13
4118
4131
  },
4119
4132
  "name": "EgressOnlyInternetGatewayOptions",
4120
4133
  "properties": [
@@ -4128,7 +4141,7 @@
4128
4141
  "immutable": true,
4129
4142
  "locationInModule": {
4130
4143
  "filename": "lib/vpc-v2-base.ts",
4131
- "line": 25
4144
+ "line": 26
4132
4145
  },
4133
4146
  "name": "destination",
4134
4147
  "optional": true,
@@ -4146,7 +4159,7 @@
4146
4159
  "immutable": true,
4147
4160
  "locationInModule": {
4148
4161
  "filename": "lib/vpc-v2-base.ts",
4149
- "line": 18
4162
+ "line": 19
4150
4163
  },
4151
4164
  "name": "subnets",
4152
4165
  "optional": true,
@@ -4528,7 +4541,7 @@
4528
4541
  "kind": "interface",
4529
4542
  "locationInModule": {
4530
4543
  "filename": "lib/route.ts",
4531
- "line": 459
4544
+ "line": 590
4532
4545
  },
4533
4546
  "name": "IRouteV2",
4534
4547
  "properties": [
@@ -4542,7 +4555,7 @@
4542
4555
  "immutable": true,
4543
4556
  "locationInModule": {
4544
4557
  "filename": "lib/route.ts",
4545
- "line": 472
4558
+ "line": 603
4546
4559
  },
4547
4560
  "name": "destination",
4548
4561
  "type": {
@@ -4561,7 +4574,7 @@
4561
4574
  "immutable": true,
4562
4575
  "locationInModule": {
4563
4576
  "filename": "lib/route.ts",
4564
- "line": 464
4577
+ "line": 595
4565
4578
  },
4566
4579
  "name": "routeTable",
4567
4580
  "type": {
@@ -4577,7 +4590,7 @@
4577
4590
  "immutable": true,
4578
4591
  "locationInModule": {
4579
4592
  "filename": "lib/route.ts",
4580
- "line": 477
4593
+ "line": 608
4581
4594
  },
4582
4595
  "name": "target",
4583
4596
  "type": {
@@ -4743,7 +4756,7 @@
4743
4756
  "kind": "interface",
4744
4757
  "locationInModule": {
4745
4758
  "filename": "lib/vpc-v2-base.ts",
4746
- "line": 84
4759
+ "line": 85
4747
4760
  },
4748
4761
  "methods": [
4749
4762
  {
@@ -4755,7 +4768,7 @@
4755
4768
  },
4756
4769
  "locationInModule": {
4757
4770
  "filename": "lib/vpc-v2-base.ts",
4758
- "line": 126
4771
+ "line": 127
4759
4772
  },
4760
4773
  "name": "addEgressOnlyInternetGateway",
4761
4774
  "parameters": [
@@ -4778,7 +4791,7 @@
4778
4791
  },
4779
4792
  "locationInModule": {
4780
4793
  "filename": "lib/vpc-v2-base.ts",
4781
- "line": 134
4794
+ "line": 135
4782
4795
  },
4783
4796
  "name": "addInternetGateway",
4784
4797
  "parameters": [
@@ -4801,7 +4814,7 @@
4801
4814
  },
4802
4815
  "locationInModule": {
4803
4816
  "filename": "lib/vpc-v2-base.ts",
4804
- "line": 151
4817
+ "line": 152
4805
4818
  },
4806
4819
  "name": "addNatGateway",
4807
4820
  "parameters": [
@@ -4818,6 +4831,64 @@
4818
4831
  }
4819
4832
  }
4820
4833
  },
4834
+ {
4835
+ "abstract": true,
4836
+ "docs": {
4837
+ "remarks": "For more information, see the {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/peer-with-vpc-in-another-account.html}.",
4838
+ "stability": "experimental",
4839
+ "summary": "Adds a new role to acceptor VPC account A cross account role is required for the VPC to peer with another account."
4840
+ },
4841
+ "locationInModule": {
4842
+ "filename": "lib/vpc-v2-base.ts",
4843
+ "line": 159
4844
+ },
4845
+ "name": "createAcceptorVpcRole",
4846
+ "parameters": [
4847
+ {
4848
+ "name": "requestorAccountId",
4849
+ "type": {
4850
+ "primitive": "string"
4851
+ }
4852
+ }
4853
+ ],
4854
+ "returns": {
4855
+ "type": {
4856
+ "fqn": "aws-cdk-lib.aws_iam.Role"
4857
+ }
4858
+ }
4859
+ },
4860
+ {
4861
+ "abstract": true,
4862
+ "docs": {
4863
+ "remarks": "For more information, see the {@link https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html}.",
4864
+ "stability": "experimental",
4865
+ "summary": "Creates a new peering connection A peering connection is a private virtual network established between two VPCs."
4866
+ },
4867
+ "locationInModule": {
4868
+ "filename": "lib/vpc-v2-base.ts",
4869
+ "line": 166
4870
+ },
4871
+ "name": "createPeeringConnection",
4872
+ "parameters": [
4873
+ {
4874
+ "name": "id",
4875
+ "type": {
4876
+ "primitive": "string"
4877
+ }
4878
+ },
4879
+ {
4880
+ "name": "options",
4881
+ "type": {
4882
+ "fqn": "@aws-cdk/aws-ec2-alpha.VPCPeeringConnectionOptions"
4883
+ }
4884
+ }
4885
+ ],
4886
+ "returns": {
4887
+ "type": {
4888
+ "fqn": "@aws-cdk/aws-ec2-alpha.VPCPeeringConnection"
4889
+ }
4890
+ }
4891
+ },
4821
4892
  {
4822
4893
  "abstract": true,
4823
4894
  "docs": {
@@ -4828,7 +4899,7 @@
4828
4899
  },
4829
4900
  "locationInModule": {
4830
4901
  "filename": "lib/vpc-v2-base.ts",
4831
- "line": 142
4902
+ "line": 143
4832
4903
  },
4833
4904
  "name": "enableVpnGatewayV2",
4834
4905
  "parameters": [
@@ -4858,7 +4929,7 @@
4858
4929
  "immutable": true,
4859
4930
  "locationInModule": {
4860
4931
  "filename": "lib/vpc-v2-base.ts",
4861
- "line": 98
4932
+ "line": 99
4862
4933
  },
4863
4934
  "name": "ipv4CidrBlock",
4864
4935
  "type": {
@@ -4875,7 +4946,7 @@
4875
4946
  "immutable": true,
4876
4947
  "locationInModule": {
4877
4948
  "filename": "lib/vpc-v2-base.ts",
4878
- "line": 112
4949
+ "line": 113
4879
4950
  },
4880
4951
  "name": "ownerAccountId",
4881
4952
  "type": {
@@ -4892,7 +4963,7 @@
4892
4963
  "immutable": true,
4893
4964
  "locationInModule": {
4894
4965
  "filename": "lib/vpc-v2-base.ts",
4895
- "line": 105
4966
+ "line": 106
4896
4967
  },
4897
4968
  "name": "region",
4898
4969
  "type": {
@@ -4908,7 +4979,7 @@
4908
4979
  "immutable": true,
4909
4980
  "locationInModule": {
4910
4981
  "filename": "lib/vpc-v2-base.ts",
4911
- "line": 119
4982
+ "line": 120
4912
4983
  },
4913
4984
  "name": "ipv4IpamProvisionedCidrs",
4914
4985
  "optional": true,
@@ -4931,7 +5002,7 @@
4931
5002
  "immutable": true,
4932
5003
  "locationInModule": {
4933
5004
  "filename": "lib/vpc-v2-base.ts",
4934
- "line": 90
5005
+ "line": 91
4935
5006
  },
4936
5007
  "name": "secondaryCidrBlock",
4937
5008
  "optional": true,
@@ -4966,7 +5037,7 @@
4966
5037
  },
4967
5038
  "locationInModule": {
4968
5039
  "filename": "lib/route.ts",
4969
- "line": 237
5040
+ "line": 271
4970
5041
  },
4971
5042
  "parameters": [
4972
5043
  {
@@ -4995,7 +5066,7 @@
4995
5066
  "kind": "class",
4996
5067
  "locationInModule": {
4997
5068
  "filename": "lib/route.ts",
4998
- "line": 216
5069
+ "line": 250
4999
5070
  },
5000
5071
  "name": "InternetGateway",
5001
5072
  "properties": [
@@ -5007,7 +5078,7 @@
5007
5078
  "immutable": true,
5008
5079
  "locationInModule": {
5009
5080
  "filename": "lib/route.ts",
5010
- "line": 235
5081
+ "line": 269
5011
5082
  },
5012
5083
  "name": "resource",
5013
5084
  "type": {
@@ -5022,7 +5093,7 @@
5022
5093
  "immutable": true,
5023
5094
  "locationInModule": {
5024
5095
  "filename": "lib/route.ts",
5025
- "line": 225
5096
+ "line": 259
5026
5097
  },
5027
5098
  "name": "routerTargetId",
5028
5099
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteTarget",
@@ -5038,7 +5109,7 @@
5038
5109
  "immutable": true,
5039
5110
  "locationInModule": {
5040
5111
  "filename": "lib/route.ts",
5041
- "line": 220
5112
+ "line": 254
5042
5113
  },
5043
5114
  "name": "routerType",
5044
5115
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteTarget",
@@ -5054,7 +5125,7 @@
5054
5125
  "immutable": true,
5055
5126
  "locationInModule": {
5056
5127
  "filename": "lib/route.ts",
5057
- "line": 230
5128
+ "line": 264
5058
5129
  },
5059
5130
  "name": "vpcId",
5060
5131
  "type": {
@@ -5079,7 +5150,7 @@
5079
5150
  "kind": "interface",
5080
5151
  "locationInModule": {
5081
5152
  "filename": "lib/vpc-v2-base.ts",
5082
- "line": 31
5153
+ "line": 32
5083
5154
  },
5084
5155
  "name": "InternetGatewayOptions",
5085
5156
  "properties": [
@@ -5093,7 +5164,7 @@
5093
5164
  "immutable": true,
5094
5165
  "locationInModule": {
5095
5166
  "filename": "lib/vpc-v2-base.ts",
5096
- "line": 38
5167
+ "line": 39
5097
5168
  },
5098
5169
  "name": "ipv4Destination",
5099
5170
  "optional": true,
@@ -5111,7 +5182,7 @@
5111
5182
  "immutable": true,
5112
5183
  "locationInModule": {
5113
5184
  "filename": "lib/vpc-v2-base.ts",
5114
- "line": 45
5185
+ "line": 46
5115
5186
  },
5116
5187
  "name": "ipv6Destination",
5117
5188
  "optional": true,
@@ -5911,7 +5982,7 @@
5911
5982
  },
5912
5983
  "locationInModule": {
5913
5984
  "filename": "lib/route.ts",
5914
- "line": 364
5985
+ "line": 398
5915
5986
  },
5916
5987
  "parameters": [
5917
5988
  {
@@ -5940,7 +6011,7 @@
5940
6011
  "kind": "class",
5941
6012
  "locationInModule": {
5942
6013
  "filename": "lib/route.ts",
5943
- "line": 333
6014
+ "line": 367
5944
6015
  },
5945
6016
  "name": "NatGateway",
5946
6017
  "properties": [
@@ -5952,7 +6023,7 @@
5952
6023
  "immutable": true,
5953
6024
  "locationInModule": {
5954
6025
  "filename": "lib/route.ts",
5955
- "line": 362
6026
+ "line": 396
5956
6027
  },
5957
6028
  "name": "resource",
5958
6029
  "type": {
@@ -5967,7 +6038,7 @@
5967
6038
  "immutable": true,
5968
6039
  "locationInModule": {
5969
6040
  "filename": "lib/route.ts",
5970
- "line": 342
6041
+ "line": 376
5971
6042
  },
5972
6043
  "name": "routerTargetId",
5973
6044
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteTarget",
@@ -5983,7 +6054,7 @@
5983
6054
  "immutable": true,
5984
6055
  "locationInModule": {
5985
6056
  "filename": "lib/route.ts",
5986
- "line": 337
6057
+ "line": 371
5987
6058
  },
5988
6059
  "name": "routerType",
5989
6060
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteTarget",
@@ -6000,7 +6071,7 @@
6000
6071
  "immutable": true,
6001
6072
  "locationInModule": {
6002
6073
  "filename": "lib/route.ts",
6003
- "line": 349
6074
+ "line": 383
6004
6075
  },
6005
6076
  "name": "connectivityType",
6006
6077
  "optional": true,
@@ -6017,7 +6088,7 @@
6017
6088
  "immutable": true,
6018
6089
  "locationInModule": {
6019
6090
  "filename": "lib/route.ts",
6020
- "line": 357
6091
+ "line": 391
6021
6092
  },
6022
6093
  "name": "maxDrainDuration",
6023
6094
  "optional": true,
@@ -6409,7 +6480,7 @@
6409
6480
  },
6410
6481
  "locationInModule": {
6411
6482
  "filename": "lib/route.ts",
6412
- "line": 554
6483
+ "line": 685
6413
6484
  },
6414
6485
  "parameters": [
6415
6486
  {
@@ -6438,7 +6509,7 @@
6438
6509
  "kind": "class",
6439
6510
  "locationInModule": {
6440
6511
  "filename": "lib/route.ts",
6441
- "line": 515
6512
+ "line": 646
6442
6513
  },
6443
6514
  "name": "Route",
6444
6515
  "properties": [
@@ -6451,7 +6522,7 @@
6451
6522
  "immutable": true,
6452
6523
  "locationInModule": {
6453
6524
  "filename": "lib/route.ts",
6454
- "line": 521
6525
+ "line": 652
6455
6526
  },
6456
6527
  "name": "destination",
6457
6528
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteV2",
@@ -6470,7 +6541,7 @@
6470
6541
  "immutable": true,
6471
6542
  "locationInModule": {
6472
6543
  "filename": "lib/route.ts",
6473
- "line": 532
6544
+ "line": 663
6474
6545
  },
6475
6546
  "name": "routeTable",
6476
6547
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteV2",
@@ -6486,7 +6557,7 @@
6486
6557
  "immutable": true,
6487
6558
  "locationInModule": {
6488
6559
  "filename": "lib/route.ts",
6489
- "line": 526
6560
+ "line": 657
6490
6561
  },
6491
6562
  "name": "target",
6492
6563
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteV2",
@@ -6502,7 +6573,7 @@
6502
6573
  "immutable": true,
6503
6574
  "locationInModule": {
6504
6575
  "filename": "lib/route.ts",
6505
- "line": 537
6576
+ "line": 668
6506
6577
  },
6507
6578
  "name": "targetRouterType",
6508
6579
  "type": {
@@ -6517,7 +6588,7 @@
6517
6588
  "immutable": true,
6518
6589
  "locationInModule": {
6519
6590
  "filename": "lib/route.ts",
6520
- "line": 542
6591
+ "line": 673
6521
6592
  },
6522
6593
  "name": "resource",
6523
6594
  "optional": true,
@@ -6543,7 +6614,7 @@
6543
6614
  "kind": "interface",
6544
6615
  "locationInModule": {
6545
6616
  "filename": "lib/route.ts",
6546
- "line": 483
6617
+ "line": 614
6547
6618
  },
6548
6619
  "name": "RouteProps",
6549
6620
  "properties": [
@@ -6557,7 +6628,7 @@
6557
6628
  "immutable": true,
6558
6629
  "locationInModule": {
6559
6630
  "filename": "lib/route.ts",
6560
- "line": 496
6631
+ "line": 627
6561
6632
  },
6562
6633
  "name": "destination",
6563
6634
  "type": {
@@ -6576,7 +6647,7 @@
6576
6647
  "immutable": true,
6577
6648
  "locationInModule": {
6578
6649
  "filename": "lib/route.ts",
6579
- "line": 489
6650
+ "line": 620
6580
6651
  },
6581
6652
  "name": "routeTable",
6582
6653
  "type": {
@@ -6592,7 +6663,7 @@
6592
6663
  "immutable": true,
6593
6664
  "locationInModule": {
6594
6665
  "filename": "lib/route.ts",
6595
- "line": 501
6666
+ "line": 632
6596
6667
  },
6597
6668
  "name": "target",
6598
6669
  "type": {
@@ -6609,7 +6680,7 @@
6609
6680
  "immutable": true,
6610
6681
  "locationInModule": {
6611
6682
  "filename": "lib/route.ts",
6612
- "line": 508
6683
+ "line": 639
6613
6684
  },
6614
6685
  "name": "routeName",
6615
6686
  "optional": true,
@@ -6639,7 +6710,7 @@
6639
6710
  },
6640
6711
  "locationInModule": {
6641
6712
  "filename": "lib/route.ts",
6642
- "line": 627
6713
+ "line": 758
6643
6714
  },
6644
6715
  "parameters": [
6645
6716
  {
@@ -6668,7 +6739,7 @@
6668
6739
  "kind": "class",
6669
6740
  "locationInModule": {
6670
6741
  "filename": "lib/route.ts",
6671
- "line": 616
6742
+ "line": 747
6672
6743
  },
6673
6744
  "methods": [
6674
6745
  {
@@ -6678,7 +6749,7 @@
6678
6749
  },
6679
6750
  "locationInModule": {
6680
6751
  "filename": "lib/route.ts",
6681
- "line": 644
6752
+ "line": 775
6682
6753
  },
6683
6754
  "name": "addRoute",
6684
6755
  "parameters": [
@@ -6719,7 +6790,7 @@
6719
6790
  "immutable": true,
6720
6791
  "locationInModule": {
6721
6792
  "filename": "lib/route.ts",
6722
- "line": 625
6793
+ "line": 756
6723
6794
  },
6724
6795
  "name": "resource",
6725
6796
  "type": {
@@ -6734,7 +6805,7 @@
6734
6805
  "immutable": true,
6735
6806
  "locationInModule": {
6736
6807
  "filename": "lib/route.ts",
6737
- "line": 620
6808
+ "line": 751
6738
6809
  },
6739
6810
  "name": "routeTableId",
6740
6811
  "overrides": "aws-cdk-lib.aws_ec2.IRouteTable",
@@ -6760,7 +6831,7 @@
6760
6831
  "kind": "interface",
6761
6832
  "locationInModule": {
6762
6833
  "filename": "lib/route.ts",
6763
- "line": 598
6834
+ "line": 729
6764
6835
  },
6765
6836
  "name": "RouteTableProps",
6766
6837
  "properties": [
@@ -6773,7 +6844,7 @@
6773
6844
  "immutable": true,
6774
6845
  "locationInModule": {
6775
6846
  "filename": "lib/route.ts",
6776
- "line": 602
6847
+ "line": 733
6777
6848
  },
6778
6849
  "name": "vpc",
6779
6850
  "type": {
@@ -6790,7 +6861,7 @@
6790
6861
  "immutable": true,
6791
6862
  "locationInModule": {
6792
6863
  "filename": "lib/route.ts",
6793
- "line": 609
6864
+ "line": 740
6794
6865
  },
6795
6866
  "name": "routeTableName",
6796
6867
  "optional": true,
@@ -6816,7 +6887,7 @@
6816
6887
  "kind": "interface",
6817
6888
  "locationInModule": {
6818
6889
  "filename": "lib/route.ts",
6819
- "line": 408
6890
+ "line": 539
6820
6891
  },
6821
6892
  "name": "RouteTargetProps",
6822
6893
  "properties": [
@@ -6831,7 +6902,7 @@
6831
6902
  "immutable": true,
6832
6903
  "locationInModule": {
6833
6904
  "filename": "lib/route.ts",
6834
- "line": 423
6905
+ "line": 554
6835
6906
  },
6836
6907
  "name": "endpoint",
6837
6908
  "optional": true,
@@ -6850,7 +6921,7 @@
6850
6921
  "immutable": true,
6851
6922
  "locationInModule": {
6852
6923
  "filename": "lib/route.ts",
6853
- "line": 415
6924
+ "line": 546
6854
6925
  },
6855
6926
  "name": "gateway",
6856
6927
  "optional": true,
@@ -6878,7 +6949,7 @@
6878
6949
  },
6879
6950
  "locationInModule": {
6880
6951
  "filename": "lib/route.ts",
6881
- "line": 446
6952
+ "line": 577
6882
6953
  },
6883
6954
  "parameters": [
6884
6955
  {
@@ -6892,7 +6963,7 @@
6892
6963
  "kind": "class",
6893
6964
  "locationInModule": {
6894
6965
  "filename": "lib/route.ts",
6895
- "line": 429
6966
+ "line": 560
6896
6967
  },
6897
6968
  "name": "RouteTargetType",
6898
6969
  "properties": [
@@ -6906,7 +6977,7 @@
6906
6977
  "immutable": true,
6907
6978
  "locationInModule": {
6908
6979
  "filename": "lib/route.ts",
6909
- "line": 444
6980
+ "line": 575
6910
6981
  },
6911
6982
  "name": "endpoint",
6912
6983
  "optional": true,
@@ -6924,7 +6995,7 @@
6924
6995
  "immutable": true,
6925
6996
  "locationInModule": {
6926
6997
  "filename": "lib/route.ts",
6927
- "line": 436
6998
+ "line": 567
6928
6999
  },
6929
7000
  "name": "gateway",
6930
7001
  "optional": true,
@@ -7720,6 +7791,223 @@
7720
7791
  ],
7721
7792
  "symbolId": "lib/vpc-v2:VPCCidrBlockattributes"
7722
7793
  },
7794
+ "@aws-cdk/aws-ec2-alpha.VPCPeeringConnection": {
7795
+ "assembly": "@aws-cdk/aws-ec2-alpha",
7796
+ "base": "aws-cdk-lib.Resource",
7797
+ "docs": {
7798
+ "custom": {
7799
+ "resource": "AWS::EC2::VPCPeeringConnection",
7800
+ "exampleMetadata": "infused"
7801
+ },
7802
+ "stability": "experimental",
7803
+ "summary": "Creates a peering connection between two VPCs.",
7804
+ "example": "const 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 });"
7805
+ },
7806
+ "fqn": "@aws-cdk/aws-ec2-alpha.VPCPeeringConnection",
7807
+ "initializer": {
7808
+ "docs": {
7809
+ "stability": "experimental"
7810
+ },
7811
+ "locationInModule": {
7812
+ "filename": "lib/route.ts",
7813
+ "line": 460
7814
+ },
7815
+ "parameters": [
7816
+ {
7817
+ "name": "scope",
7818
+ "type": {
7819
+ "fqn": "constructs.Construct"
7820
+ }
7821
+ },
7822
+ {
7823
+ "name": "id",
7824
+ "type": {
7825
+ "primitive": "string"
7826
+ }
7827
+ },
7828
+ {
7829
+ "name": "props",
7830
+ "type": {
7831
+ "fqn": "@aws-cdk/aws-ec2-alpha.VPCPeeringConnectionProps"
7832
+ }
7833
+ }
7834
+ ]
7835
+ },
7836
+ "interfaces": [
7837
+ "@aws-cdk/aws-ec2-alpha.IRouteTarget"
7838
+ ],
7839
+ "kind": "class",
7840
+ "locationInModule": {
7841
+ "filename": "lib/route.ts",
7842
+ "line": 443
7843
+ },
7844
+ "name": "VPCPeeringConnection",
7845
+ "properties": [
7846
+ {
7847
+ "docs": {
7848
+ "stability": "experimental",
7849
+ "summary": "The VPC peering connection CFN resource."
7850
+ },
7851
+ "immutable": true,
7852
+ "locationInModule": {
7853
+ "filename": "lib/route.ts",
7854
+ "line": 458
7855
+ },
7856
+ "name": "resource",
7857
+ "type": {
7858
+ "fqn": "aws-cdk-lib.aws_ec2.CfnVPCPeeringConnection"
7859
+ }
7860
+ },
7861
+ {
7862
+ "docs": {
7863
+ "stability": "experimental",
7864
+ "summary": "The ID of the route target."
7865
+ },
7866
+ "immutable": true,
7867
+ "locationInModule": {
7868
+ "filename": "lib/route.ts",
7869
+ "line": 453
7870
+ },
7871
+ "name": "routerTargetId",
7872
+ "overrides": "@aws-cdk/aws-ec2-alpha.IRouteTarget",
7873
+ "type": {
7874
+ "primitive": "string"
7875
+ }
7876
+ },
7877
+ {
7878
+ "docs": {
7879
+ "stability": "experimental",
7880
+ "summary": "The type of router used in the route."
7881
+ },
7882
+ "immutable": true,
7883
+ "locationInModule": {
7884
+ "filename": "lib/route.ts",
7885
+ "line": 448
7886
+ },
7887
+ "name": "routerType",
7888
+ "overrides": "@aws-cdk/aws-ec2-alpha.IRouteTarget",
7889
+ "type": {
7890
+ "fqn": "aws-cdk-lib.aws_ec2.RouterType"
7891
+ }
7892
+ }
7893
+ ],
7894
+ "symbolId": "lib/route:VPCPeeringConnection"
7895
+ },
7896
+ "@aws-cdk/aws-ec2-alpha.VPCPeeringConnectionOptions": {
7897
+ "assembly": "@aws-cdk/aws-ec2-alpha",
7898
+ "datatype": true,
7899
+ "docs": {
7900
+ "stability": "experimental",
7901
+ "summary": "Options to define a VPC peering connection.",
7902
+ "example": "const 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 });",
7903
+ "custom": {
7904
+ "exampleMetadata": "infused"
7905
+ }
7906
+ },
7907
+ "fqn": "@aws-cdk/aws-ec2-alpha.VPCPeeringConnectionOptions",
7908
+ "kind": "interface",
7909
+ "locationInModule": {
7910
+ "filename": "lib/route.ts",
7911
+ "line": 181
7912
+ },
7913
+ "name": "VPCPeeringConnectionOptions",
7914
+ "properties": [
7915
+ {
7916
+ "abstract": true,
7917
+ "docs": {
7918
+ "stability": "experimental",
7919
+ "summary": "The VPC that is accepting the peering connection."
7920
+ },
7921
+ "immutable": true,
7922
+ "locationInModule": {
7923
+ "filename": "lib/route.ts",
7924
+ "line": 185
7925
+ },
7926
+ "name": "acceptorVpc",
7927
+ "type": {
7928
+ "fqn": "@aws-cdk/aws-ec2-alpha.IVpcV2"
7929
+ }
7930
+ },
7931
+ {
7932
+ "abstract": true,
7933
+ "docs": {
7934
+ "default": "- no peerRoleArn needed if not cross account connection",
7935
+ "stability": "experimental",
7936
+ "summary": "The role arn created in the acceptor account."
7937
+ },
7938
+ "immutable": true,
7939
+ "locationInModule": {
7940
+ "filename": "lib/route.ts",
7941
+ "line": 192
7942
+ },
7943
+ "name": "peerRoleArn",
7944
+ "optional": true,
7945
+ "type": {
7946
+ "primitive": "string"
7947
+ }
7948
+ },
7949
+ {
7950
+ "abstract": true,
7951
+ "docs": {
7952
+ "default": "- peering connection provisioned without any name",
7953
+ "stability": "experimental",
7954
+ "summary": "The resource name of the peering connection."
7955
+ },
7956
+ "immutable": true,
7957
+ "locationInModule": {
7958
+ "filename": "lib/route.ts",
7959
+ "line": 199
7960
+ },
7961
+ "name": "vpcPeeringConnectionName",
7962
+ "optional": true,
7963
+ "type": {
7964
+ "primitive": "string"
7965
+ }
7966
+ }
7967
+ ],
7968
+ "symbolId": "lib/route:VPCPeeringConnectionOptions"
7969
+ },
7970
+ "@aws-cdk/aws-ec2-alpha.VPCPeeringConnectionProps": {
7971
+ "assembly": "@aws-cdk/aws-ec2-alpha",
7972
+ "datatype": true,
7973
+ "docs": {
7974
+ "stability": "experimental",
7975
+ "summary": "Properties to define a VPC peering connection.",
7976
+ "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';\n\ndeclare const vpcV2: ec2_alpha.VpcV2;\nconst vPCPeeringConnectionProps: ec2_alpha.VPCPeeringConnectionProps = {\n acceptorVpc: vpcV2,\n requestorVpc: vpcV2,\n\n // the properties below are optional\n peerRoleArn: 'peerRoleArn',\n vpcPeeringConnectionName: 'vpcPeeringConnectionName',\n};",
7977
+ "custom": {
7978
+ "exampleMetadata": "fixture=_generated"
7979
+ }
7980
+ },
7981
+ "fqn": "@aws-cdk/aws-ec2-alpha.VPCPeeringConnectionProps",
7982
+ "interfaces": [
7983
+ "@aws-cdk/aws-ec2-alpha.VPCPeeringConnectionOptions"
7984
+ ],
7985
+ "kind": "interface",
7986
+ "locationInModule": {
7987
+ "filename": "lib/route.ts",
7988
+ "line": 205
7989
+ },
7990
+ "name": "VPCPeeringConnectionProps",
7991
+ "properties": [
7992
+ {
7993
+ "abstract": true,
7994
+ "docs": {
7995
+ "stability": "experimental",
7996
+ "summary": "The VPC that is requesting the peering connection."
7997
+ },
7998
+ "immutable": true,
7999
+ "locationInModule": {
8000
+ "filename": "lib/route.ts",
8001
+ "line": 209
8002
+ },
8003
+ "name": "requestorVpc",
8004
+ "type": {
8005
+ "fqn": "@aws-cdk/aws-ec2-alpha.IVpcV2"
8006
+ }
8007
+ }
8008
+ ],
8009
+ "symbolId": "lib/route:VPCPeeringConnectionProps"
8010
+ },
7723
8011
  "@aws-cdk/aws-ec2-alpha.VPNGatewayV2": {
7724
8012
  "assembly": "@aws-cdk/aws-ec2-alpha",
7725
8013
  "base": "aws-cdk-lib.Resource",
@@ -7739,7 +8027,7 @@
7739
8027
  },
7740
8028
  "locationInModule": {
7741
8029
  "filename": "lib/route.ts",
7742
- "line": 290
8030
+ "line": 324
7743
8031
  },
7744
8032
  "parameters": [
7745
8033
  {
@@ -7768,7 +8056,7 @@
7768
8056
  "kind": "class",
7769
8057
  "locationInModule": {
7770
8058
  "filename": "lib/route.ts",
7771
- "line": 259
8059
+ "line": 293
7772
8060
  },
7773
8061
  "name": "VPNGatewayV2",
7774
8062
  "properties": [
@@ -7780,7 +8068,7 @@
7780
8068
  "immutable": true,
7781
8069
  "locationInModule": {
7782
8070
  "filename": "lib/route.ts",
7783
- "line": 278
8071
+ "line": 312
7784
8072
  },
7785
8073
  "name": "resource",
7786
8074
  "type": {
@@ -7795,7 +8083,7 @@
7795
8083
  "immutable": true,
7796
8084
  "locationInModule": {
7797
8085
  "filename": "lib/route.ts",
7798
- "line": 268
8086
+ "line": 302
7799
8087
  },
7800
8088
  "name": "routerTargetId",
7801
8089
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteTarget",
@@ -7811,7 +8099,7 @@
7811
8099
  "immutable": true,
7812
8100
  "locationInModule": {
7813
8101
  "filename": "lib/route.ts",
7814
- "line": 263
8102
+ "line": 297
7815
8103
  },
7816
8104
  "name": "routerType",
7817
8105
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteTarget",
@@ -7827,7 +8115,7 @@
7827
8115
  "immutable": true,
7828
8116
  "locationInModule": {
7829
8117
  "filename": "lib/route.ts",
7830
- "line": 273
8118
+ "line": 307
7831
8119
  },
7832
8120
  "name": "vpcId",
7833
8121
  "type": {
@@ -7852,7 +8140,7 @@
7852
8140
  "kind": "interface",
7853
8141
  "locationInModule": {
7854
8142
  "filename": "lib/vpc-v2-base.ts",
7855
- "line": 51
8143
+ "line": 52
7856
8144
  },
7857
8145
  "name": "VPNGatewayV2Options",
7858
8146
  "properties": [
@@ -7866,7 +8154,7 @@
7866
8154
  "immutable": true,
7867
8155
  "locationInModule": {
7868
8156
  "filename": "lib/vpc-v2-base.ts",
7869
- "line": 56
8157
+ "line": 57
7870
8158
  },
7871
8159
  "name": "type",
7872
8160
  "type": {
@@ -7883,7 +8171,7 @@
7883
8171
  "immutable": true,
7884
8172
  "locationInModule": {
7885
8173
  "filename": "lib/vpc-v2-base.ts",
7886
- "line": 63
8174
+ "line": 64
7887
8175
  },
7888
8176
  "name": "amazonSideAsn",
7889
8177
  "optional": true,
@@ -7901,7 +8189,7 @@
7901
8189
  "immutable": true,
7902
8190
  "locationInModule": {
7903
8191
  "filename": "lib/vpc-v2-base.ts",
7904
- "line": 70
8192
+ "line": 71
7905
8193
  },
7906
8194
  "name": "vpnGatewayName",
7907
8195
  "optional": true,
@@ -7919,7 +8207,7 @@
7919
8207
  "immutable": true,
7920
8208
  "locationInModule": {
7921
8209
  "filename": "lib/vpc-v2-base.ts",
7922
- "line": 77
8210
+ "line": 78
7923
8211
  },
7924
8212
  "name": "vpnRoutePropagation",
7925
8213
  "optional": true,
@@ -8181,7 +8469,7 @@
8181
8469
  "remarks": "For more information, see the {@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.Vpc.html AWS CDK Documentation on VPCs}.",
8182
8470
  "stability": "experimental",
8183
8471
  "summary": "This class provides a foundation for creating and configuring a VPC with advanced features such as IPAM (IP Address Management) and IPv6 support.",
8184
- "example": "\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});"
8472
+ "example": "\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 });"
8185
8473
  },
8186
8474
  "fqn": "@aws-cdk/aws-ec2-alpha.VpcV2",
8187
8475
  "initializer": {
@@ -8399,7 +8687,7 @@
8399
8687
  {
8400
8688
  "docs": {
8401
8689
  "stability": "experimental",
8402
- "summary": "Pbulic Subnets that are part of this VPC."
8690
+ "summary": "Public Subnets that are part of this VPC."
8403
8691
  },
8404
8692
  "immutable": true,
8405
8693
  "locationInModule": {
@@ -8592,7 +8880,7 @@
8592
8880
  "docs": {
8593
8881
  "stability": "experimental",
8594
8882
  "summary": "Options to import a VPC created outside of CDK stack.",
8595
- "example": "\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});",
8883
+ "example": "const 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});",
8596
8884
  "custom": {
8597
8885
  "exampleMetadata": "infused"
8598
8886
  }
@@ -8786,7 +9074,7 @@
8786
9074
  "kind": "class",
8787
9075
  "locationInModule": {
8788
9076
  "filename": "lib/vpc-v2-base.ts",
8789
- "line": 160
9077
+ "line": 174
8790
9078
  },
8791
9079
  "methods": [
8792
9080
  {
@@ -8796,7 +9084,7 @@
8796
9084
  },
8797
9085
  "locationInModule": {
8798
9086
  "filename": "lib/vpc-v2-base.ts",
8799
- "line": 348
9087
+ "line": 362
8800
9088
  },
8801
9089
  "name": "addClientVpnEndpoint",
8802
9090
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -8828,7 +9116,7 @@
8828
9116
  },
8829
9117
  "locationInModule": {
8830
9118
  "filename": "lib/vpc-v2-base.ts",
8831
- "line": 381
9119
+ "line": 395
8832
9120
  },
8833
9121
  "name": "addEgressOnlyInternetGateway",
8834
9122
  "overrides": "@aws-cdk/aws-ec2-alpha.IVpcV2",
@@ -8849,7 +9137,7 @@
8849
9137
  },
8850
9138
  "locationInModule": {
8851
9139
  "filename": "lib/vpc-v2-base.ts",
8852
- "line": 483
9140
+ "line": 497
8853
9141
  },
8854
9142
  "name": "addFlowLog",
8855
9143
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -8881,7 +9169,7 @@
8881
9169
  },
8882
9170
  "locationInModule": {
8883
9171
  "filename": "lib/vpc-v2-base.ts",
8884
- "line": 368
9172
+ "line": 382
8885
9173
  },
8886
9174
  "name": "addGatewayEndpoint",
8887
9175
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -8912,7 +9200,7 @@
8912
9200
  },
8913
9201
  "locationInModule": {
8914
9202
  "filename": "lib/vpc-v2-base.ts",
8915
- "line": 358
9203
+ "line": 372
8916
9204
  },
8917
9205
  "name": "addInterfaceEndpoint",
8918
9206
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -8944,7 +9232,7 @@
8944
9232
  },
8945
9233
  "locationInModule": {
8946
9234
  "filename": "lib/vpc-v2-base.ts",
8947
- "line": 422
9235
+ "line": 436
8948
9236
  },
8949
9237
  "name": "addInternetGateway",
8950
9238
  "overrides": "@aws-cdk/aws-ec2-alpha.IVpcV2",
@@ -8965,7 +9253,7 @@
8965
9253
  },
8966
9254
  "locationInModule": {
8967
9255
  "filename": "lib/vpc-v2-base.ts",
8968
- "line": 470
9256
+ "line": 484
8969
9257
  },
8970
9258
  "name": "addNatGateway",
8971
9259
  "overrides": "@aws-cdk/aws-ec2-alpha.IVpcV2",
@@ -8990,7 +9278,7 @@
8990
9278
  },
8991
9279
  "locationInModule": {
8992
9280
  "filename": "lib/vpc-v2-base.ts",
8993
- "line": 338
9281
+ "line": 352
8994
9282
  },
8995
9283
  "name": "addVpnConnection",
8996
9284
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -9014,6 +9302,62 @@
9014
9302
  }
9015
9303
  }
9016
9304
  },
9305
+ {
9306
+ "docs": {
9307
+ "stability": "experimental",
9308
+ "summary": "Creates peering connection role for acceptor VPC."
9309
+ },
9310
+ "locationInModule": {
9311
+ "filename": "lib/vpc-v2-base.ts",
9312
+ "line": 507
9313
+ },
9314
+ "name": "createAcceptorVpcRole",
9315
+ "overrides": "@aws-cdk/aws-ec2-alpha.IVpcV2",
9316
+ "parameters": [
9317
+ {
9318
+ "name": "requestorAccountId",
9319
+ "type": {
9320
+ "primitive": "string"
9321
+ }
9322
+ }
9323
+ ],
9324
+ "returns": {
9325
+ "type": {
9326
+ "fqn": "aws-cdk-lib.aws_iam.Role"
9327
+ }
9328
+ }
9329
+ },
9330
+ {
9331
+ "docs": {
9332
+ "stability": "experimental",
9333
+ "summary": "Creates a peering connection."
9334
+ },
9335
+ "locationInModule": {
9336
+ "filename": "lib/vpc-v2-base.ts",
9337
+ "line": 537
9338
+ },
9339
+ "name": "createPeeringConnection",
9340
+ "overrides": "@aws-cdk/aws-ec2-alpha.IVpcV2",
9341
+ "parameters": [
9342
+ {
9343
+ "name": "id",
9344
+ "type": {
9345
+ "primitive": "string"
9346
+ }
9347
+ },
9348
+ {
9349
+ "name": "options",
9350
+ "type": {
9351
+ "fqn": "@aws-cdk/aws-ec2-alpha.VPCPeeringConnectionOptions"
9352
+ }
9353
+ }
9354
+ ],
9355
+ "returns": {
9356
+ "type": {
9357
+ "fqn": "@aws-cdk/aws-ec2-alpha.VPCPeeringConnection"
9358
+ }
9359
+ }
9360
+ },
9017
9361
  {
9018
9362
  "docs": {
9019
9363
  "deprecated": "use enableVpnGatewayV2 for compatibility with VPCV2.Route",
@@ -9022,7 +9366,7 @@
9022
9366
  },
9023
9367
  "locationInModule": {
9024
9368
  "filename": "lib/vpc-v2-base.ts",
9025
- "line": 281
9369
+ "line": 295
9026
9370
  },
9027
9371
  "name": "enableVpnGateway",
9028
9372
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -9042,7 +9386,7 @@
9042
9386
  },
9043
9387
  "locationInModule": {
9044
9388
  "filename": "lib/vpc-v2-base.ts",
9045
- "line": 319
9389
+ "line": 333
9046
9390
  },
9047
9391
  "name": "enableVpnGatewayV2",
9048
9392
  "overrides": "@aws-cdk/aws-ec2-alpha.IVpcV2",
@@ -9067,7 +9411,7 @@
9067
9411
  },
9068
9412
  "locationInModule": {
9069
9413
  "filename": "lib/vpc-v2-base.ts",
9070
- "line": 507
9414
+ "line": 561
9071
9415
  },
9072
9416
  "name": "selectSubnetObjects",
9073
9417
  "parameters": [
@@ -9099,7 +9443,7 @@
9099
9443
  },
9100
9444
  "locationInModule": {
9101
9445
  "filename": "lib/vpc-v2-base.ts",
9102
- "line": 263
9446
+ "line": 277
9103
9447
  },
9104
9448
  "name": "selectSubnets",
9105
9449
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -9129,7 +9473,7 @@
9129
9473
  "immutable": true,
9130
9474
  "locationInModule": {
9131
9475
  "filename": "lib/vpc-v2-base.ts",
9132
- "line": 195
9476
+ "line": 209
9133
9477
  },
9134
9478
  "name": "availabilityZones",
9135
9479
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -9151,7 +9495,7 @@
9151
9495
  "immutable": true,
9152
9496
  "locationInModule": {
9153
9497
  "filename": "lib/vpc-v2-base.ts",
9154
- "line": 200
9498
+ "line": 214
9155
9499
  },
9156
9500
  "name": "internetConnectivityEstablished",
9157
9501
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -9169,7 +9513,7 @@
9169
9513
  "immutable": true,
9170
9514
  "locationInModule": {
9171
9515
  "filename": "lib/vpc-v2-base.ts",
9172
- "line": 221
9516
+ "line": 235
9173
9517
  },
9174
9518
  "name": "ipv4CidrBlock",
9175
9519
  "overrides": "@aws-cdk/aws-ec2-alpha.IVpcV2",
@@ -9186,7 +9530,7 @@
9186
9530
  "immutable": true,
9187
9531
  "locationInModule": {
9188
9532
  "filename": "lib/vpc-v2-base.ts",
9189
- "line": 190
9533
+ "line": 204
9190
9534
  },
9191
9535
  "name": "isolatedSubnets",
9192
9536
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -9208,7 +9552,7 @@
9208
9552
  "immutable": true,
9209
9553
  "locationInModule": {
9210
9554
  "filename": "lib/vpc-v2-base.ts",
9211
- "line": 231
9555
+ "line": 245
9212
9556
  },
9213
9557
  "name": "ownerAccountId",
9214
9558
  "overrides": "@aws-cdk/aws-ec2-alpha.IVpcV2",
@@ -9224,7 +9568,7 @@
9224
9568
  "immutable": true,
9225
9569
  "locationInModule": {
9226
9570
  "filename": "lib/vpc-v2-base.ts",
9227
- "line": 185
9571
+ "line": 199
9228
9572
  },
9229
9573
  "name": "privateSubnets",
9230
9574
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -9245,7 +9589,7 @@
9245
9589
  "immutable": true,
9246
9590
  "locationInModule": {
9247
9591
  "filename": "lib/vpc-v2-base.ts",
9248
- "line": 180
9592
+ "line": 194
9249
9593
  },
9250
9594
  "name": "publicSubnets",
9251
9595
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -9267,7 +9611,7 @@
9267
9611
  "immutable": true,
9268
9612
  "locationInModule": {
9269
9613
  "filename": "lib/vpc-v2-base.ts",
9270
- "line": 226
9614
+ "line": 240
9271
9615
  },
9272
9616
  "name": "region",
9273
9617
  "overrides": "@aws-cdk/aws-ec2-alpha.IVpcV2",
@@ -9284,7 +9628,7 @@
9284
9628
  "immutable": true,
9285
9629
  "locationInModule": {
9286
9630
  "filename": "lib/vpc-v2-base.ts",
9287
- "line": 170
9631
+ "line": 184
9288
9632
  },
9289
9633
  "name": "vpcArn",
9290
9634
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -9301,7 +9645,7 @@
9301
9645
  "immutable": true,
9302
9646
  "locationInModule": {
9303
9647
  "filename": "lib/vpc-v2-base.ts",
9304
- "line": 175
9648
+ "line": 189
9305
9649
  },
9306
9650
  "name": "vpcCidrBlock",
9307
9651
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -9318,7 +9662,7 @@
9318
9662
  "immutable": true,
9319
9663
  "locationInModule": {
9320
9664
  "filename": "lib/vpc-v2-base.ts",
9321
- "line": 165
9665
+ "line": 179
9322
9666
  },
9323
9667
  "name": "vpcId",
9324
9668
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -9334,7 +9678,7 @@
9334
9678
  "immutable": true,
9335
9679
  "locationInModule": {
9336
9680
  "filename": "lib/vpc-v2-base.ts",
9337
- "line": 500
9681
+ "line": 554
9338
9682
  },
9339
9683
  "name": "internetGatewayId",
9340
9684
  "optional": true,
@@ -9351,7 +9695,7 @@
9351
9695
  "immutable": true,
9352
9696
  "locationInModule": {
9353
9697
  "filename": "lib/vpc-v2-base.ts",
9354
- "line": 238
9698
+ "line": 252
9355
9699
  },
9356
9700
  "name": "ipv4IpamProvisionedCidrs",
9357
9701
  "optional": true,
@@ -9374,7 +9718,7 @@
9374
9718
  "immutable": true,
9375
9719
  "locationInModule": {
9376
9720
  "filename": "lib/vpc-v2-base.ts",
9377
- "line": 213
9721
+ "line": 227
9378
9722
  },
9379
9723
  "name": "secondaryCidrBlock",
9380
9724
  "optional": true,
@@ -9396,7 +9740,7 @@
9396
9740
  "immutable": true,
9397
9741
  "locationInModule": {
9398
9742
  "filename": "lib/vpc-v2-base.ts",
9399
- "line": 493
9743
+ "line": 547
9400
9744
  },
9401
9745
  "name": "vpnGatewayId",
9402
9746
  "optional": true,
@@ -9412,7 +9756,7 @@
9412
9756
  },
9413
9757
  "locationInModule": {
9414
9758
  "filename": "lib/vpc-v2-base.ts",
9415
- "line": 243
9759
+ "line": 257
9416
9760
  },
9417
9761
  "name": "incompleteSubnetDefinition",
9418
9762
  "protected": true,
@@ -9563,6 +9907,6 @@
9563
9907
  "symbolId": "lib/vpc-v2:VpcV2Props"
9564
9908
  }
9565
9909
  },
9566
- "version": "2.168.0-alpha.0",
9910
+ "version": "2.170.0-alpha.0",
9567
9911
  "fingerprint": "**********"
9568
9912
  }