@aws-cdk/aws-ec2-alpha 2.158.0-alpha.0 → 2.159.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.158.0",
11
+ "aws-cdk-lib": "^2.159.0",
12
12
  "constructs": "^10.0.0"
13
13
  },
14
14
  "dependencyClosure": {
@@ -3883,7 +3883,7 @@
3883
3883
  },
3884
3884
  "name": "@aws-cdk/aws-ec2-alpha",
3885
3885
  "readme": {
3886
- "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 vpc_v2.VpcV2(this, 'Vpc', {\n primaryAddressBlock: vpc_v2.IpAddresses.ipv4('10.0.0.0/24'),\n secondaryAddressBlocks: [\n vpc_v2.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\nImporting existing VPC in an account into CDK as a `VpcV2` is not yet supported.\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 vpc_v2.VpcV2(this, 'Vpc', {\n secondaryAddressBlocks: [\n vpc_v2.IpAddresses.amazonProvidedIpv6({ cidrBlockName: 'AmazonProvidedIp'}),\n ],\n});\n\nnew vpc_v2.SubnetV2(this, 'subnetA', {\n vpc: myVpc,\n availabilityZone: 'us-east-1a',\n ipv4CidrBlock: new vpc_v2.IpCidr('10.0.0.0/24'),\n ipv6CidrBlock: new vpc_v2.IpCidr('2a05:d02c:25:4000::/60'),\n subnetType: ec2.SubnetType.PRIVATE_ISOLATED,\n})\n```\n\nSame as `VpcV2`, importing existing subnets is not yet supported.\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: vpc_v2.AddressFamily.IP_V6,\n awsService: AwsServiceName.EC2,\n locale: 'us-west-1',\n publicIpSource: vpc_v2.IpamPoolPublicIpSource.AMAZON,\n});\nipamPublicPool.provisionCidr('PublicPoolACidrA', { netmaskLength: 52 } );\n\nconst ipamPrivatePool = ipam.privateScope.addPool('PrivatePoolA', {\n addressFamily: vpc_v2.AddressFamily.IP_V4,\n});\nipamPrivatePool.provisionCidr('PrivatePoolACidrA', { netmaskLength: 8 } );\n\nnew vpc_v2.VpcV2(this, 'Vpc', {\n primaryAddressBlock: vpc_v2.IpAddresses.ipv4('10.0.0.0/24'),\n secondaryAddressBlocks: [\n vpc_v2.IpAddresses.amazonProvidedIpv6({ cidrBlockName: 'AmazonIpv6' }),\n vpc_v2.IpAddresses.ipv6Ipam({\n ipamPool: ipamPublicPool,\n netmaskLength: 52,\n cidrBlockName: 'ipv6Ipam',\n }),\n vpc_v2.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 vpc_v2.VpcV2(this, 'Vpc');\nconst routeTable = new vpc_v2.RouteTable(this, 'RouteTable', {\n vpc: myVpc,\n});\nconst subnet = new vpc_v2.SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n routeTable,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: ec2.SubnetType.PRIVATE_ISOLATED,\n});\n```\n\n`Route`s 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 vpc_v2.VpcV2(this, 'Vpc');\nconst routeTable = new vpc_v2.RouteTable(this, 'RouteTable', {\n vpc: myVpc,\n});\nconst subnet = new vpc_v2.SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: ec2.SubnetType.PRIVATE_ISOLATED });\n\nconst igw = new vpc_v2.InternetGateway(this, 'IGW', {\n vpc: myVpc,\n});\nnew vpc_v2.Route(this, 'IgwRoute', {\n routeTable,\n destination: '0.0.0.0/0',\n target: { gateway: igw },\n});\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 vpc_v2.VpcV2(this, 'Vpc');\nconst routeTable = new vpc_v2.RouteTable(this, 'RouteTable', {\n vpc: myVpc,\n});\nconst subnet = new vpc_v2.SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: ec2.SubnetType.PRIVATE_ISOLATED });\n\nconst natgw = new vpc_v2.NatGateway(this, 'NatGW', {\n subnet: subnet,\n vpc: myVpc,\n connectivityType: NatConnectivityType.PRIVATE,\n privateIpAddress: '10.0.0.42',\n});\nnew vpc_v2.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 myVpc = new vpc_v2.VpcV2(this, 'Vpc');\nconst routeTable = new vpc_v2.RouteTable(this, 'RouteTable', {\n vpc: myVpc,\n});\nconst subnet = new vpc_v2.SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: ec2.SubnetType.PRIVATE });\n\nconst dynamoEndpoint = new ec2.GatewayVpcEndpoint(this, 'DynamoEndpoint', {\n service: ec2.GatewayVpcEndpointAwsService.DYNAMODB,\n vpc: myVpc,\n subnets: [subnet],\n});\nnew vpc_v2.Route(this, 'DynamoDBRoute', {\n routeTable,\n destination: '0.0.0.0/0',\n target: { endpoint: dynamoEndpoint },\n});\n```\n"
3886
+ "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\nImporting existing VPC in an account into CDK as a `VpcV2` is not yet supported.\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\nSame as `VpcV2`, importing existing subnets is not yet supported.\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"
3887
3887
  },
3888
3888
  "repository": {
3889
3889
  "directory": "packages/@aws-cdk/aws-ec2-alpha",
@@ -3928,7 +3928,7 @@
3928
3928
  "see": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampool.html#cfn-ec2-ipampool-addressfamily",
3929
3929
  "stability": "experimental",
3930
3930
  "summary": "Represents the address family for IP addresses in an IPAM pool.",
3931
- "example": "\nconst stack = new Stack();\nconst ipam = new Ipam(this, 'Ipam', {\n operatingRegion: ['us-west-1']\n});\nconst ipamPublicPool = ipam.publicScope.addPool('PublicPoolA', {\n addressFamily: vpc_v2.AddressFamily.IP_V6,\n awsService: AwsServiceName.EC2,\n locale: 'us-west-1',\n publicIpSource: vpc_v2.IpamPoolPublicIpSource.AMAZON,\n});\nipamPublicPool.provisionCidr('PublicPoolACidrA', { netmaskLength: 52 } );\n\nconst ipamPrivatePool = ipam.privateScope.addPool('PrivatePoolA', {\n addressFamily: vpc_v2.AddressFamily.IP_V4,\n});\nipamPrivatePool.provisionCidr('PrivatePoolACidrA', { netmaskLength: 8 } );\n\nnew vpc_v2.VpcV2(this, 'Vpc', {\n primaryAddressBlock: vpc_v2.IpAddresses.ipv4('10.0.0.0/24'),\n secondaryAddressBlocks: [\n vpc_v2.IpAddresses.amazonProvidedIpv6({ cidrBlockName: 'AmazonIpv6' }),\n vpc_v2.IpAddresses.ipv6Ipam({\n ipamPool: ipamPublicPool,\n netmaskLength: 52,\n cidrBlockName: 'ipv6Ipam',\n }),\n vpc_v2.IpAddresses.ipv4Ipam({\n ipamPool: ipamPrivatePool,\n netmaskLength: 8,\n cidrBlockName: 'ipv4Ipam',\n }),\n ],\n});",
3931
+ "example": "\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});",
3932
3932
  "custom": {
3933
3933
  "exampleMetadata": "infused"
3934
3934
  }
@@ -3990,11 +3990,11 @@
3990
3990
  "docs": {
3991
3991
  "custom": {
3992
3992
  "resource": "AWS::EC2::EgressOnlyInternetGateway",
3993
- "exampleMetadata": "fixture=_generated"
3993
+ "exampleMetadata": "infused"
3994
3994
  },
3995
3995
  "stability": "experimental",
3996
3996
  "summary": "Creates an egress-only internet gateway.",
3997
- "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 egressOnlyInternetGateway = new ec2_alpha.EgressOnlyInternetGateway(this, 'MyEgressOnlyInternetGateway', {\n vpc: vpcV2,\n\n // the properties below are optional\n egressOnlyInternetGatewayName: 'egressOnlyInternetGatewayName',\n});"
3997
+ "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 });"
3998
3998
  },
3999
3999
  "fqn": "@aws-cdk/aws-ec2-alpha.EgressOnlyInternetGateway",
4000
4000
  "initializer": {
@@ -4003,7 +4003,7 @@
4003
4003
  },
4004
4004
  "locationInModule": {
4005
4005
  "filename": "lib/route.ts",
4006
- "line": 200
4006
+ "line": 198
4007
4007
  },
4008
4008
  "parameters": [
4009
4009
  {
@@ -4032,7 +4032,7 @@
4032
4032
  "kind": "class",
4033
4033
  "locationInModule": {
4034
4034
  "filename": "lib/route.ts",
4035
- "line": 184
4035
+ "line": 182
4036
4036
  },
4037
4037
  "name": "EgressOnlyInternetGateway",
4038
4038
  "properties": [
@@ -4044,7 +4044,7 @@
4044
4044
  "immutable": true,
4045
4045
  "locationInModule": {
4046
4046
  "filename": "lib/route.ts",
4047
- "line": 198
4047
+ "line": 196
4048
4048
  },
4049
4049
  "name": "resource",
4050
4050
  "type": {
@@ -4059,7 +4059,7 @@
4059
4059
  "immutable": true,
4060
4060
  "locationInModule": {
4061
4061
  "filename": "lib/route.ts",
4062
- "line": 193
4062
+ "line": 191
4063
4063
  },
4064
4064
  "name": "routerTargetId",
4065
4065
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteTarget",
@@ -4075,7 +4075,7 @@
4075
4075
  "immutable": true,
4076
4076
  "locationInModule": {
4077
4077
  "filename": "lib/route.ts",
4078
- "line": 188
4078
+ "line": 186
4079
4079
  },
4080
4080
  "name": "routerType",
4081
4081
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteTarget",
@@ -4086,22 +4086,85 @@
4086
4086
  ],
4087
4087
  "symbolId": "lib/route:EgressOnlyInternetGateway"
4088
4088
  },
4089
+ "@aws-cdk/aws-ec2-alpha.EgressOnlyInternetGatewayOptions": {
4090
+ "assembly": "@aws-cdk/aws-ec2-alpha",
4091
+ "datatype": true,
4092
+ "docs": {
4093
+ "stability": "experimental",
4094
+ "summary": "Options to define EgressOnlyInternetGateway for VPC.",
4095
+ "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 });\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})",
4096
+ "custom": {
4097
+ "exampleMetadata": "infused"
4098
+ }
4099
+ },
4100
+ "fqn": "@aws-cdk/aws-ec2-alpha.EgressOnlyInternetGatewayOptions",
4101
+ "kind": "interface",
4102
+ "locationInModule": {
4103
+ "filename": "lib/vpc-v2-base.ts",
4104
+ "line": 11
4105
+ },
4106
+ "name": "EgressOnlyInternetGatewayOptions",
4107
+ "properties": [
4108
+ {
4109
+ "abstract": true,
4110
+ "docs": {
4111
+ "default": "- '::/0' all Ipv6 traffic",
4112
+ "stability": "experimental",
4113
+ "summary": "Destination Ipv6 address for EGW route."
4114
+ },
4115
+ "immutable": true,
4116
+ "locationInModule": {
4117
+ "filename": "lib/vpc-v2-base.ts",
4118
+ "line": 24
4119
+ },
4120
+ "name": "destination",
4121
+ "optional": true,
4122
+ "type": {
4123
+ "primitive": "string"
4124
+ }
4125
+ },
4126
+ {
4127
+ "abstract": true,
4128
+ "docs": {
4129
+ "default": "- no route created",
4130
+ "stability": "experimental",
4131
+ "summary": "List of subnets where route to EGW will be added."
4132
+ },
4133
+ "immutable": true,
4134
+ "locationInModule": {
4135
+ "filename": "lib/vpc-v2-base.ts",
4136
+ "line": 17
4137
+ },
4138
+ "name": "subnets",
4139
+ "optional": true,
4140
+ "type": {
4141
+ "collection": {
4142
+ "elementtype": {
4143
+ "fqn": "aws-cdk-lib.aws_ec2.SubnetSelection"
4144
+ },
4145
+ "kind": "array"
4146
+ }
4147
+ }
4148
+ }
4149
+ ],
4150
+ "symbolId": "lib/vpc-v2-base:EgressOnlyInternetGatewayOptions"
4151
+ },
4089
4152
  "@aws-cdk/aws-ec2-alpha.EgressOnlyInternetGatewayProps": {
4090
4153
  "assembly": "@aws-cdk/aws-ec2-alpha",
4091
4154
  "datatype": true,
4092
4155
  "docs": {
4093
4156
  "stability": "experimental",
4094
4157
  "summary": "Properties to define an egress-only internet gateway.",
4095
- "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 egressOnlyInternetGatewayProps: ec2_alpha.EgressOnlyInternetGatewayProps = {\n vpc: vpcV2,\n\n // the properties below are optional\n egressOnlyInternetGatewayName: 'egressOnlyInternetGatewayName',\n};",
4158
+ "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 });",
4096
4159
  "custom": {
4097
- "exampleMetadata": "fixture=_generated"
4160
+ "exampleMetadata": "infused"
4098
4161
  }
4099
4162
  },
4100
4163
  "fqn": "@aws-cdk/aws-ec2-alpha.EgressOnlyInternetGatewayProps",
4101
4164
  "kind": "interface",
4102
4165
  "locationInModule": {
4103
4166
  "filename": "lib/route.ts",
4104
- "line": 41
4167
+ "line": 43
4105
4168
  },
4106
4169
  "name": "EgressOnlyInternetGatewayProps",
4107
4170
  "properties": [
@@ -4114,7 +4177,7 @@
4114
4177
  "immutable": true,
4115
4178
  "locationInModule": {
4116
4179
  "filename": "lib/route.ts",
4117
- "line": 45
4180
+ "line": 47
4118
4181
  },
4119
4182
  "name": "vpc",
4120
4183
  "type": {
@@ -4124,14 +4187,14 @@
4124
4187
  {
4125
4188
  "abstract": true,
4126
4189
  "docs": {
4127
- "default": "none",
4190
+ "default": "- provisioned without a resource name",
4128
4191
  "stability": "experimental",
4129
4192
  "summary": "The resource name of the egress-only internet gateway."
4130
4193
  },
4131
4194
  "immutable": true,
4132
4195
  "locationInModule": {
4133
4196
  "filename": "lib/route.ts",
4134
- "line": 51
4197
+ "line": 54
4135
4198
  },
4136
4199
  "name": "egressOnlyInternetGatewayName",
4137
4200
  "optional": true,
@@ -4152,7 +4215,7 @@
4152
4215
  "kind": "interface",
4153
4216
  "locationInModule": {
4154
4217
  "filename": "lib/vpc-v2.ts",
4155
- "line": 121
4218
+ "line": 119
4156
4219
  },
4157
4220
  "methods": [
4158
4221
  {
@@ -4163,7 +4226,7 @@
4163
4226
  },
4164
4227
  "locationInModule": {
4165
4228
  "filename": "lib/vpc-v2.ts",
4166
- "line": 127
4229
+ "line": 125
4167
4230
  },
4168
4231
  "name": "allocateVpcCidr",
4169
4232
  "returns": {
@@ -4186,7 +4249,7 @@
4186
4249
  "kind": "interface",
4187
4250
  "locationInModule": {
4188
4251
  "filename": "lib/ipam.ts",
4189
- "line": 175
4252
+ "line": 183
4190
4253
  },
4191
4254
  "methods": [
4192
4255
  {
@@ -4197,7 +4260,7 @@
4197
4260
  },
4198
4261
  "locationInModule": {
4199
4262
  "filename": "lib/ipam.ts",
4200
- "line": 190
4263
+ "line": 198
4201
4264
  },
4202
4265
  "name": "provisionCidr",
4203
4266
  "parameters": [
@@ -4232,7 +4295,7 @@
4232
4295
  "immutable": true,
4233
4296
  "locationInModule": {
4234
4297
  "filename": "lib/ipam.ts",
4235
- "line": 185
4298
+ "line": 193
4236
4299
  },
4237
4300
  "name": "ipamCidrs",
4238
4301
  "type": {
@@ -4256,7 +4319,7 @@
4256
4319
  "immutable": true,
4257
4320
  "locationInModule": {
4258
4321
  "filename": "lib/ipam.ts",
4259
- "line": 180
4322
+ "line": 188
4260
4323
  },
4261
4324
  "name": "ipamPoolId",
4262
4325
  "type": {
@@ -4276,7 +4339,7 @@
4276
4339
  "kind": "interface",
4277
4340
  "locationInModule": {
4278
4341
  "filename": "lib/ipam.ts",
4279
- "line": 263
4342
+ "line": 273
4280
4343
  },
4281
4344
  "methods": [
4282
4345
  {
@@ -4287,7 +4350,7 @@
4287
4350
  },
4288
4351
  "locationInModule": {
4289
4352
  "filename": "lib/ipam.ts",
4290
- "line": 284
4353
+ "line": 294
4291
4354
  },
4292
4355
  "name": "addPool",
4293
4356
  "parameters": [
@@ -4322,7 +4385,7 @@
4322
4385
  "immutable": true,
4323
4386
  "locationInModule": {
4324
4387
  "filename": "lib/ipam.ts",
4325
- "line": 269
4388
+ "line": 279
4326
4389
  },
4327
4390
  "name": "scope",
4328
4391
  "type": {
@@ -4338,7 +4401,7 @@
4338
4401
  "immutable": true,
4339
4402
  "locationInModule": {
4340
4403
  "filename": "lib/ipam.ts",
4341
- "line": 274
4404
+ "line": 284
4342
4405
  },
4343
4406
  "name": "scopeId",
4344
4407
  "type": {
@@ -4354,7 +4417,7 @@
4354
4417
  "immutable": true,
4355
4418
  "locationInModule": {
4356
4419
  "filename": "lib/ipam.ts",
4357
- "line": 279
4420
+ "line": 289
4358
4421
  },
4359
4422
  "name": "scopeType",
4360
4423
  "optional": true,
@@ -4372,10 +4435,13 @@
4372
4435
  "summary": "Interface to define a routing target, such as an egress-only internet gateway or VPC endpoint."
4373
4436
  },
4374
4437
  "fqn": "@aws-cdk/aws-ec2-alpha.IRouteTarget",
4438
+ "interfaces": [
4439
+ "constructs.IDependable"
4440
+ ],
4375
4441
  "kind": "interface",
4376
4442
  "locationInModule": {
4377
4443
  "filename": "lib/route.ts",
4378
- "line": 26
4444
+ "line": 28
4379
4445
  },
4380
4446
  "name": "IRouteTarget",
4381
4447
  "properties": [
@@ -4388,7 +4454,7 @@
4388
4454
  "immutable": true,
4389
4455
  "locationInModule": {
4390
4456
  "filename": "lib/route.ts",
4391
- "line": 35
4457
+ "line": 37
4392
4458
  },
4393
4459
  "name": "routerTargetId",
4394
4460
  "type": {
@@ -4404,7 +4470,7 @@
4404
4470
  "immutable": true,
4405
4471
  "locationInModule": {
4406
4472
  "filename": "lib/route.ts",
4407
- "line": 30
4473
+ "line": 32
4408
4474
  },
4409
4475
  "name": "routerType",
4410
4476
  "type": {
@@ -4421,10 +4487,13 @@
4421
4487
  "summary": "Interface to define a route."
4422
4488
  },
4423
4489
  "fqn": "@aws-cdk/aws-ec2-alpha.IRouteV2",
4490
+ "interfaces": [
4491
+ "aws-cdk-lib.IResource"
4492
+ ],
4424
4493
  "kind": "interface",
4425
4494
  "locationInModule": {
4426
4495
  "filename": "lib/route.ts",
4427
- "line": 411
4496
+ "line": 459
4428
4497
  },
4429
4498
  "name": "IRouteV2",
4430
4499
  "properties": [
@@ -4438,7 +4507,7 @@
4438
4507
  "immutable": true,
4439
4508
  "locationInModule": {
4440
4509
  "filename": "lib/route.ts",
4441
- "line": 424
4510
+ "line": 472
4442
4511
  },
4443
4512
  "name": "destination",
4444
4513
  "type": {
@@ -4457,7 +4526,7 @@
4457
4526
  "immutable": true,
4458
4527
  "locationInModule": {
4459
4528
  "filename": "lib/route.ts",
4460
- "line": 416
4529
+ "line": 464
4461
4530
  },
4462
4531
  "name": "routeTable",
4463
4532
  "type": {
@@ -4473,7 +4542,7 @@
4473
4542
  "immutable": true,
4474
4543
  "locationInModule": {
4475
4544
  "filename": "lib/route.ts",
4476
- "line": 429
4545
+ "line": 477
4477
4546
  },
4478
4547
  "name": "target",
4479
4548
  "type": {
@@ -4496,7 +4565,7 @@
4496
4565
  "kind": "interface",
4497
4566
  "locationInModule": {
4498
4567
  "filename": "lib/subnet-v2.ts",
4499
- "line": 91
4568
+ "line": 94
4500
4569
  },
4501
4570
  "name": "ISubnetV2",
4502
4571
  "properties": [
@@ -4509,13 +4578,33 @@
4509
4578
  "immutable": true,
4510
4579
  "locationInModule": {
4511
4580
  "filename": "lib/subnet-v2.ts",
4512
- "line": 96
4581
+ "line": 99
4513
4582
  },
4514
4583
  "name": "ipv6CidrBlock",
4515
4584
  "optional": true,
4516
4585
  "type": {
4517
4586
  "primitive": "string"
4518
4587
  }
4588
+ },
4589
+ {
4590
+ "abstract": true,
4591
+ "docs": {
4592
+ "custom": {
4593
+ "attribute": "SubnetType"
4594
+ },
4595
+ "stability": "experimental",
4596
+ "summary": "The type of subnet (public or private) that this subnet represents."
4597
+ },
4598
+ "immutable": true,
4599
+ "locationInModule": {
4600
+ "filename": "lib/subnet-v2.ts",
4601
+ "line": 106
4602
+ },
4603
+ "name": "subnetType",
4604
+ "optional": true,
4605
+ "type": {
4606
+ "fqn": "aws-cdk-lib.aws_ec2.SubnetType"
4607
+ }
4519
4608
  }
4520
4609
  ],
4521
4610
  "symbolId": "lib/subnet-v2:ISubnetV2"
@@ -4533,8 +4622,109 @@
4533
4622
  "kind": "interface",
4534
4623
  "locationInModule": {
4535
4624
  "filename": "lib/vpc-v2-base.ts",
4536
- "line": 10
4625
+ "line": 83
4537
4626
  },
4627
+ "methods": [
4628
+ {
4629
+ "abstract": true,
4630
+ "docs": {
4631
+ "remarks": "Can only be used for ipv6 enabled VPCs.\nFor more information, see the {@link https://docs.aws.amazon.com/vpc/latest/userguide/egress-only-internet-gateway-basics.html}.",
4632
+ "stability": "experimental",
4633
+ "summary": "Add an Egress only Internet Gateway to current VPC."
4634
+ },
4635
+ "locationInModule": {
4636
+ "filename": "lib/vpc-v2-base.ts",
4637
+ "line": 104
4638
+ },
4639
+ "name": "addEgressOnlyInternetGateway",
4640
+ "parameters": [
4641
+ {
4642
+ "name": "options",
4643
+ "optional": true,
4644
+ "type": {
4645
+ "fqn": "@aws-cdk/aws-ec2-alpha.EgressOnlyInternetGatewayOptions"
4646
+ }
4647
+ }
4648
+ ]
4649
+ },
4650
+ {
4651
+ "abstract": true,
4652
+ "docs": {
4653
+ "default": "- defines route for all ipv4('0.0.0.0') and ipv6 addresses('::/0')",
4654
+ "remarks": "For more information, see the {@link https://docs.aws.amazon.com/vpc/latest/userguide/vpc-igw-internet-access.html}.",
4655
+ "stability": "experimental",
4656
+ "summary": "Adds an Internet Gateway to current VPC."
4657
+ },
4658
+ "locationInModule": {
4659
+ "filename": "lib/vpc-v2-base.ts",
4660
+ "line": 112
4661
+ },
4662
+ "name": "addInternetGateway",
4663
+ "parameters": [
4664
+ {
4665
+ "name": "options",
4666
+ "optional": true,
4667
+ "type": {
4668
+ "fqn": "@aws-cdk/aws-ec2-alpha.InternetGatewayOptions"
4669
+ }
4670
+ }
4671
+ ]
4672
+ },
4673
+ {
4674
+ "abstract": true,
4675
+ "docs": {
4676
+ "default": "ConnectivityType.Public",
4677
+ "remarks": "NAT Gateway Connectivity can be of type `Public` or `Private`.\nFor more information, see the {@link https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html}.",
4678
+ "stability": "experimental",
4679
+ "summary": "Adds a new NAT Gateway to VPC A NAT gateway is a Network Address Translation (NAT) service."
4680
+ },
4681
+ "locationInModule": {
4682
+ "filename": "lib/vpc-v2-base.ts",
4683
+ "line": 129
4684
+ },
4685
+ "name": "addNatGateway",
4686
+ "parameters": [
4687
+ {
4688
+ "name": "options",
4689
+ "type": {
4690
+ "fqn": "@aws-cdk/aws-ec2-alpha.NatGatewayOptions"
4691
+ }
4692
+ }
4693
+ ],
4694
+ "returns": {
4695
+ "type": {
4696
+ "fqn": "@aws-cdk/aws-ec2-alpha.NatGateway"
4697
+ }
4698
+ }
4699
+ },
4700
+ {
4701
+ "abstract": true,
4702
+ "docs": {
4703
+ "default": "- no route propogation",
4704
+ "remarks": "For more information, see the {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpngateway.html}.",
4705
+ "stability": "experimental",
4706
+ "summary": "Adds VPN Gateway to VPC and set route propogation."
4707
+ },
4708
+ "locationInModule": {
4709
+ "filename": "lib/vpc-v2-base.ts",
4710
+ "line": 120
4711
+ },
4712
+ "name": "enableVpnGatewayV2",
4713
+ "parameters": [
4714
+ {
4715
+ "name": "options",
4716
+ "type": {
4717
+ "fqn": "@aws-cdk/aws-ec2-alpha.VPNGatewayV2Options"
4718
+ }
4719
+ }
4720
+ ],
4721
+ "returns": {
4722
+ "type": {
4723
+ "fqn": "@aws-cdk/aws-ec2-alpha.VPNGatewayV2"
4724
+ }
4725
+ }
4726
+ }
4727
+ ],
4538
4728
  "name": "IVpcV2",
4539
4729
  "properties": [
4540
4730
  {
@@ -4547,7 +4737,7 @@
4547
4737
  "immutable": true,
4548
4738
  "locationInModule": {
4549
4739
  "filename": "lib/vpc-v2-base.ts",
4550
- "line": 24
4740
+ "line": 97
4551
4741
  },
4552
4742
  "name": "ipv4CidrBlock",
4553
4743
  "type": {
@@ -4564,7 +4754,7 @@
4564
4754
  "immutable": true,
4565
4755
  "locationInModule": {
4566
4756
  "filename": "lib/vpc-v2-base.ts",
4567
- "line": 16
4757
+ "line": 89
4568
4758
  },
4569
4759
  "name": "secondaryCidrBlock",
4570
4760
  "type": {
@@ -4589,7 +4779,7 @@
4589
4779
  },
4590
4780
  "stability": "experimental",
4591
4781
  "summary": "Creates an internet gateway.",
4592
- "example": "const stack = new Stack();\nconst myVpc = new vpc_v2.VpcV2(this, 'Vpc');\nconst routeTable = new vpc_v2.RouteTable(this, 'RouteTable', {\n vpc: myVpc,\n});\nconst subnet = new vpc_v2.SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: ec2.SubnetType.PRIVATE_ISOLATED });\n\nconst igw = new vpc_v2.InternetGateway(this, 'IGW', {\n vpc: myVpc,\n});\nnew vpc_v2.Route(this, 'IgwRoute', {\n routeTable,\n destination: '0.0.0.0/0',\n target: { gateway: igw },\n});"
4782
+ "example": "const 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});"
4593
4783
  },
4594
4784
  "fqn": "@aws-cdk/aws-ec2-alpha.InternetGateway",
4595
4785
  "initializer": {
@@ -4598,7 +4788,7 @@
4598
4788
  },
4599
4789
  "locationInModule": {
4600
4790
  "filename": "lib/route.ts",
4601
- "line": 239
4791
+ "line": 237
4602
4792
  },
4603
4793
  "parameters": [
4604
4794
  {
@@ -4627,7 +4817,7 @@
4627
4817
  "kind": "class",
4628
4818
  "locationInModule": {
4629
4819
  "filename": "lib/route.ts",
4630
- "line": 218
4820
+ "line": 216
4631
4821
  },
4632
4822
  "name": "InternetGateway",
4633
4823
  "properties": [
@@ -4639,7 +4829,7 @@
4639
4829
  "immutable": true,
4640
4830
  "locationInModule": {
4641
4831
  "filename": "lib/route.ts",
4642
- "line": 237
4832
+ "line": 235
4643
4833
  },
4644
4834
  "name": "resource",
4645
4835
  "type": {
@@ -4654,7 +4844,7 @@
4654
4844
  "immutable": true,
4655
4845
  "locationInModule": {
4656
4846
  "filename": "lib/route.ts",
4657
- "line": 227
4847
+ "line": 225
4658
4848
  },
4659
4849
  "name": "routerTargetId",
4660
4850
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteTarget",
@@ -4670,7 +4860,7 @@
4670
4860
  "immutable": true,
4671
4861
  "locationInModule": {
4672
4862
  "filename": "lib/route.ts",
4673
- "line": 222
4863
+ "line": 220
4674
4864
  },
4675
4865
  "name": "routerType",
4676
4866
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteTarget",
@@ -4686,7 +4876,7 @@
4686
4876
  "immutable": true,
4687
4877
  "locationInModule": {
4688
4878
  "filename": "lib/route.ts",
4689
- "line": 232
4879
+ "line": 230
4690
4880
  },
4691
4881
  "name": "vpcId",
4692
4882
  "type": {
@@ -4696,13 +4886,71 @@
4696
4886
  ],
4697
4887
  "symbolId": "lib/route:InternetGateway"
4698
4888
  },
4889
+ "@aws-cdk/aws-ec2-alpha.InternetGatewayOptions": {
4890
+ "assembly": "@aws-cdk/aws-ec2-alpha",
4891
+ "datatype": true,
4892
+ "docs": {
4893
+ "stability": "experimental",
4894
+ "summary": "Options to define InternetGateway for VPC.",
4895
+ "example": "\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});",
4896
+ "custom": {
4897
+ "exampleMetadata": "infused"
4898
+ }
4899
+ },
4900
+ "fqn": "@aws-cdk/aws-ec2-alpha.InternetGatewayOptions",
4901
+ "kind": "interface",
4902
+ "locationInModule": {
4903
+ "filename": "lib/vpc-v2-base.ts",
4904
+ "line": 30
4905
+ },
4906
+ "name": "InternetGatewayOptions",
4907
+ "properties": [
4908
+ {
4909
+ "abstract": true,
4910
+ "docs": {
4911
+ "default": "- '0.0.0.0' all Ipv4 traffic",
4912
+ "stability": "experimental",
4913
+ "summary": "Destination Ipv6 address for EGW route."
4914
+ },
4915
+ "immutable": true,
4916
+ "locationInModule": {
4917
+ "filename": "lib/vpc-v2-base.ts",
4918
+ "line": 37
4919
+ },
4920
+ "name": "ipv4Destination",
4921
+ "optional": true,
4922
+ "type": {
4923
+ "primitive": "string"
4924
+ }
4925
+ },
4926
+ {
4927
+ "abstract": true,
4928
+ "docs": {
4929
+ "default": "- '::/0' all Ipv6 traffic",
4930
+ "stability": "experimental",
4931
+ "summary": "Destination Ipv6 address for EGW route."
4932
+ },
4933
+ "immutable": true,
4934
+ "locationInModule": {
4935
+ "filename": "lib/vpc-v2-base.ts",
4936
+ "line": 44
4937
+ },
4938
+ "name": "ipv6Destination",
4939
+ "optional": true,
4940
+ "type": {
4941
+ "primitive": "string"
4942
+ }
4943
+ }
4944
+ ],
4945
+ "symbolId": "lib/vpc-v2-base:InternetGatewayOptions"
4946
+ },
4699
4947
  "@aws-cdk/aws-ec2-alpha.InternetGatewayProps": {
4700
4948
  "assembly": "@aws-cdk/aws-ec2-alpha",
4701
4949
  "datatype": true,
4702
4950
  "docs": {
4703
4951
  "stability": "experimental",
4704
4952
  "summary": "Properties to define an internet gateway.",
4705
- "example": "const stack = new Stack();\nconst myVpc = new vpc_v2.VpcV2(this, 'Vpc');\nconst routeTable = new vpc_v2.RouteTable(this, 'RouteTable', {\n vpc: myVpc,\n});\nconst subnet = new vpc_v2.SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: ec2.SubnetType.PRIVATE_ISOLATED });\n\nconst igw = new vpc_v2.InternetGateway(this, 'IGW', {\n vpc: myVpc,\n});\nnew vpc_v2.Route(this, 'IgwRoute', {\n routeTable,\n destination: '0.0.0.0/0',\n target: { gateway: igw },\n});",
4953
+ "example": "const 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});",
4706
4954
  "custom": {
4707
4955
  "exampleMetadata": "infused"
4708
4956
  }
@@ -4711,7 +4959,7 @@
4711
4959
  "kind": "interface",
4712
4960
  "locationInModule": {
4713
4961
  "filename": "lib/route.ts",
4714
- "line": 57
4962
+ "line": 60
4715
4963
  },
4716
4964
  "name": "InternetGatewayProps",
4717
4965
  "properties": [
@@ -4724,7 +4972,7 @@
4724
4972
  "immutable": true,
4725
4973
  "locationInModule": {
4726
4974
  "filename": "lib/route.ts",
4727
- "line": 61
4975
+ "line": 64
4728
4976
  },
4729
4977
  "name": "vpc",
4730
4978
  "type": {
@@ -4734,14 +4982,14 @@
4734
4982
  {
4735
4983
  "abstract": true,
4736
4984
  "docs": {
4737
- "default": "none",
4985
+ "default": "- provisioned without a resource name",
4738
4986
  "stability": "experimental",
4739
4987
  "summary": "The resource name of the internet gateway."
4740
4988
  },
4741
4989
  "immutable": true,
4742
4990
  "locationInModule": {
4743
4991
  "filename": "lib/route.ts",
4744
- "line": 67
4992
+ "line": 71
4745
4993
  },
4746
4994
  "name": "internetGatewayName",
4747
4995
  "optional": true,
@@ -4757,9 +5005,9 @@
4757
5005
  "docs": {
4758
5006
  "stability": "experimental",
4759
5007
  "summary": "IpAddress options to define VPC V2.",
4760
- "example": "\nconst stack = new Stack();\nconst myVpc = new vpc_v2.VpcV2(this, 'Vpc', {\n secondaryAddressBlocks: [\n vpc_v2.IpAddresses.amazonProvidedIpv6({ cidrBlockName: 'AmazonProvidedIp'}),\n ],\n});\n\nnew vpc_v2.SubnetV2(this, 'subnetA', {\n vpc: myVpc,\n availabilityZone: 'us-east-1a',\n ipv4CidrBlock: new vpc_v2.IpCidr('10.0.0.0/24'),\n ipv6CidrBlock: new vpc_v2.IpCidr('2a05:d02c:25:4000::/60'),\n subnetType: ec2.SubnetType.PRIVATE_ISOLATED,\n})",
5008
+ "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 ipAddresses = new ec2_alpha.IpAddresses();",
4761
5009
  "custom": {
4762
- "exampleMetadata": "infused"
5010
+ "exampleMetadata": "fixture=_generated"
4763
5011
  }
4764
5012
  },
4765
5013
  "fqn": "@aws-cdk/aws-ec2-alpha.IpAddresses",
@@ -4890,7 +5138,7 @@
4890
5138
  "docs": {
4891
5139
  "stability": "experimental",
4892
5140
  "summary": "IPv4 or IPv6 CIDR range for the subnet.",
4893
- "example": "const stack = new Stack();\nconst myVpc = new vpc_v2.VpcV2(this, 'Vpc');\nconst routeTable = new vpc_v2.RouteTable(this, 'RouteTable', {\n vpc: myVpc,\n});\nconst subnet = new vpc_v2.SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: ec2.SubnetType.PRIVATE_ISOLATED });\n\nconst igw = new vpc_v2.InternetGateway(this, 'IGW', {\n vpc: myVpc,\n});\nnew vpc_v2.Route(this, 'IgwRoute', {\n routeTable,\n destination: '0.0.0.0/0',\n target: { gateway: igw },\n});",
5141
+ "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});",
4894
5142
  "custom": {
4895
5143
  "exampleMetadata": "infused"
4896
5144
  }
@@ -4902,7 +5150,7 @@
4902
5150
  },
4903
5151
  "locationInModule": {
4904
5152
  "filename": "lib/subnet-v2.ts",
4905
- "line": 24
5153
+ "line": 25
4906
5154
  },
4907
5155
  "parameters": [
4908
5156
  {
@@ -4916,7 +5164,7 @@
4916
5164
  "kind": "class",
4917
5165
  "locationInModule": {
4918
5166
  "filename": "lib/subnet-v2.ts",
4919
- "line": 17
5167
+ "line": 18
4920
5168
  },
4921
5169
  "name": "IpCidr",
4922
5170
  "properties": [
@@ -4928,7 +5176,7 @@
4928
5176
  "immutable": true,
4929
5177
  "locationInModule": {
4930
5178
  "filename": "lib/subnet-v2.ts",
4931
- "line": 23
5179
+ "line": 24
4932
5180
  },
4933
5181
  "name": "cidr",
4934
5182
  "type": {
@@ -4949,7 +5197,7 @@
4949
5197
  "see": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamscope.html",
4950
5198
  "stability": "experimental",
4951
5199
  "summary": "Creates new IPAM with default public and private scope.",
4952
- "example": "\nconst stack = new Stack();\nconst ipam = new Ipam(this, 'Ipam', {\n operatingRegion: ['us-west-1']\n});\nconst ipamPublicPool = ipam.publicScope.addPool('PublicPoolA', {\n addressFamily: vpc_v2.AddressFamily.IP_V6,\n awsService: AwsServiceName.EC2,\n locale: 'us-west-1',\n publicIpSource: vpc_v2.IpamPoolPublicIpSource.AMAZON,\n});\nipamPublicPool.provisionCidr('PublicPoolACidrA', { netmaskLength: 52 } );\n\nconst ipamPrivatePool = ipam.privateScope.addPool('PrivatePoolA', {\n addressFamily: vpc_v2.AddressFamily.IP_V4,\n});\nipamPrivatePool.provisionCidr('PrivatePoolACidrA', { netmaskLength: 8 } );\n\nnew vpc_v2.VpcV2(this, 'Vpc', {\n primaryAddressBlock: vpc_v2.IpAddresses.ipv4('10.0.0.0/24'),\n secondaryAddressBlocks: [\n vpc_v2.IpAddresses.amazonProvidedIpv6({ cidrBlockName: 'AmazonIpv6' }),\n vpc_v2.IpAddresses.ipv6Ipam({\n ipamPool: ipamPublicPool,\n netmaskLength: 52,\n cidrBlockName: 'ipv6Ipam',\n }),\n vpc_v2.IpAddresses.ipv4Ipam({\n ipamPool: ipamPrivatePool,\n netmaskLength: 8,\n cidrBlockName: 'ipv4Ipam',\n }),\n ],\n});"
5200
+ "example": "\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});"
4953
5201
  },
4954
5202
  "fqn": "@aws-cdk/aws-ec2-alpha.Ipam",
4955
5203
  "initializer": {
@@ -4958,7 +5206,7 @@
4958
5206
  },
4959
5207
  "locationInModule": {
4960
5208
  "filename": "lib/ipam.ts",
4961
- "line": 472
5209
+ "line": 482
4962
5210
  },
4963
5211
  "parameters": [
4964
5212
  {
@@ -4985,7 +5233,7 @@
4985
5233
  "kind": "class",
4986
5234
  "locationInModule": {
4987
5235
  "filename": "lib/ipam.ts",
4988
- "line": 439
5236
+ "line": 449
4989
5237
  },
4990
5238
  "methods": [
4991
5239
  {
@@ -4995,7 +5243,7 @@
4995
5243
  },
4996
5244
  "locationInModule": {
4997
5245
  "filename": "lib/ipam.ts",
4998
- "line": 506
5246
+ "line": 516
4999
5247
  },
5000
5248
  "name": "addScope",
5001
5249
  "parameters": [
@@ -5038,7 +5286,7 @@
5038
5286
  "immutable": true,
5039
5287
  "locationInModule": {
5040
5288
  "filename": "lib/ipam.ts",
5041
- "line": 460
5289
+ "line": 470
5042
5290
  },
5043
5291
  "name": "ipamId",
5044
5292
  "type": {
@@ -5053,7 +5301,7 @@
5053
5301
  "immutable": true,
5054
5302
  "locationInModule": {
5055
5303
  "filename": "lib/ipam.ts",
5056
- "line": 465
5304
+ "line": 475
5057
5305
  },
5058
5306
  "name": "operatingRegions",
5059
5307
  "type": {
@@ -5075,7 +5323,7 @@
5075
5323
  "immutable": true,
5076
5324
  "locationInModule": {
5077
5325
  "filename": "lib/ipam.ts",
5078
- "line": 452
5326
+ "line": 462
5079
5327
  },
5080
5328
  "name": "privateScope",
5081
5329
  "type": {
@@ -5092,7 +5340,7 @@
5092
5340
  "immutable": true,
5093
5341
  "locationInModule": {
5094
5342
  "filename": "lib/ipam.ts",
5095
- "line": 445
5343
+ "line": 455
5096
5344
  },
5097
5345
  "name": "publicScope",
5098
5346
  "type": {
@@ -5107,7 +5355,7 @@
5107
5355
  "immutable": true,
5108
5356
  "locationInModule": {
5109
5357
  "filename": "lib/ipam.ts",
5110
- "line": 470
5358
+ "line": 480
5111
5359
  },
5112
5360
  "name": "scopes",
5113
5361
  "type": {
@@ -5129,7 +5377,7 @@
5129
5377
  "remarks": "For more information, see the {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipam.html}.",
5130
5378
  "stability": "experimental",
5131
5379
  "summary": "Options for configuring an IP Address Manager (IPAM).",
5132
- "example": "\nconst stack = new Stack();\nconst ipam = new Ipam(this, 'Ipam', {\n operatingRegion: ['us-west-1']\n});\nconst ipamPublicPool = ipam.publicScope.addPool('PublicPoolA', {\n addressFamily: vpc_v2.AddressFamily.IP_V6,\n awsService: AwsServiceName.EC2,\n locale: 'us-west-1',\n publicIpSource: vpc_v2.IpamPoolPublicIpSource.AMAZON,\n});\nipamPublicPool.provisionCidr('PublicPoolACidrA', { netmaskLength: 52 } );\n\nconst ipamPrivatePool = ipam.privateScope.addPool('PrivatePoolA', {\n addressFamily: vpc_v2.AddressFamily.IP_V4,\n});\nipamPrivatePool.provisionCidr('PrivatePoolACidrA', { netmaskLength: 8 } );\n\nnew vpc_v2.VpcV2(this, 'Vpc', {\n primaryAddressBlock: vpc_v2.IpAddresses.ipv4('10.0.0.0/24'),\n secondaryAddressBlocks: [\n vpc_v2.IpAddresses.amazonProvidedIpv6({ cidrBlockName: 'AmazonIpv6' }),\n vpc_v2.IpAddresses.ipv6Ipam({\n ipamPool: ipamPublicPool,\n netmaskLength: 52,\n cidrBlockName: 'ipv6Ipam',\n }),\n vpc_v2.IpAddresses.ipv4Ipam({\n ipamPool: ipamPrivatePool,\n netmaskLength: 8,\n cidrBlockName: 'ipv4Ipam',\n }),\n ],\n});",
5380
+ "example": "\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});",
5133
5381
  "custom": {
5134
5382
  "exampleMetadata": "infused"
5135
5383
  }
@@ -5138,7 +5386,7 @@
5138
5386
  "kind": "interface",
5139
5387
  "locationInModule": {
5140
5388
  "filename": "lib/ipam.ts",
5141
- "line": 235
5389
+ "line": 245
5142
5390
  },
5143
5391
  "name": "IpamOptions",
5144
5392
  "properties": [
@@ -5151,7 +5399,7 @@
5151
5399
  "immutable": true,
5152
5400
  "locationInModule": {
5153
5401
  "filename": "lib/ipam.ts",
5154
- "line": 257
5402
+ "line": 267
5155
5403
  },
5156
5404
  "name": "cidrBlockName",
5157
5405
  "type": {
@@ -5161,14 +5409,14 @@
5161
5409
  {
5162
5410
  "abstract": true,
5163
5411
  "docs": {
5164
- "default": "- None",
5412
+ "default": "- no pool attached to VPC secondary address",
5165
5413
  "stability": "experimental",
5166
5414
  "summary": "Ipv4 or an Ipv6 IPAM pool Only required when using AWS Ipam."
5167
5415
  },
5168
5416
  "immutable": true,
5169
5417
  "locationInModule": {
5170
5418
  "filename": "lib/ipam.ts",
5171
- "line": 251
5419
+ "line": 261
5172
5420
  },
5173
5421
  "name": "ipamPool",
5174
5422
  "optional": true,
@@ -5179,14 +5427,14 @@
5179
5427
  {
5180
5428
  "abstract": true,
5181
5429
  "docs": {
5182
- "default": "- None",
5430
+ "default": "- no netmask length for IPAM attached to VPC secondary address",
5183
5431
  "stability": "experimental",
5184
5432
  "summary": "CIDR Mask for Vpc Only required when using AWS Ipam."
5185
5433
  },
5186
5434
  "immutable": true,
5187
5435
  "locationInModule": {
5188
5436
  "filename": "lib/ipam.ts",
5189
- "line": 243
5437
+ "line": 253
5190
5438
  },
5191
5439
  "name": "netmaskLength",
5192
5440
  "optional": true,
@@ -5205,7 +5453,7 @@
5205
5453
  "see": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampoolcidr.html",
5206
5454
  "stability": "experimental",
5207
5455
  "summary": "Options to provision CIDRs to an IPAM pool.",
5208
- "example": "\nconst stack = new Stack();\nconst ipam = new Ipam(this, 'Ipam', {\n operatingRegion: ['us-west-1']\n});\nconst ipamPublicPool = ipam.publicScope.addPool('PublicPoolA', {\n addressFamily: vpc_v2.AddressFamily.IP_V6,\n awsService: AwsServiceName.EC2,\n locale: 'us-west-1',\n publicIpSource: vpc_v2.IpamPoolPublicIpSource.AMAZON,\n});\nipamPublicPool.provisionCidr('PublicPoolACidrA', { netmaskLength: 52 } );\n\nconst ipamPrivatePool = ipam.privateScope.addPool('PrivatePoolA', {\n addressFamily: vpc_v2.AddressFamily.IP_V4,\n});\nipamPrivatePool.provisionCidr('PrivatePoolACidrA', { netmaskLength: 8 } );\n\nnew vpc_v2.VpcV2(this, 'Vpc', {\n primaryAddressBlock: vpc_v2.IpAddresses.ipv4('10.0.0.0/24'),\n secondaryAddressBlocks: [\n vpc_v2.IpAddresses.amazonProvidedIpv6({ cidrBlockName: 'AmazonIpv6' }),\n vpc_v2.IpAddresses.ipv6Ipam({\n ipamPool: ipamPublicPool,\n netmaskLength: 52,\n cidrBlockName: 'ipv6Ipam',\n }),\n vpc_v2.IpAddresses.ipv4Ipam({\n ipamPool: ipamPrivatePool,\n netmaskLength: 8,\n cidrBlockName: 'ipv4Ipam',\n }),\n ],\n});",
5456
+ "example": "\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});",
5209
5457
  "custom": {
5210
5458
  "exampleMetadata": "infused"
5211
5459
  }
@@ -5214,21 +5462,21 @@
5214
5462
  "kind": "interface",
5215
5463
  "locationInModule": {
5216
5464
  "filename": "lib/ipam.ts",
5217
- "line": 158
5465
+ "line": 164
5218
5466
  },
5219
5467
  "name": "IpamPoolCidrProvisioningOptions",
5220
5468
  "properties": [
5221
5469
  {
5222
5470
  "abstract": true,
5223
5471
  "docs": {
5224
- "default": "none",
5472
+ "default": "- pool provisioned without netmask length, need netmask length in this case",
5225
5473
  "stability": "experimental",
5226
5474
  "summary": "Ipv6 CIDR block for the IPAM pool."
5227
5475
  },
5228
5476
  "immutable": true,
5229
5477
  "locationInModule": {
5230
5478
  "filename": "lib/ipam.ts",
5231
- "line": 169
5479
+ "line": 177
5232
5480
  },
5233
5481
  "name": "cidr",
5234
5482
  "optional": true,
@@ -5239,14 +5487,14 @@
5239
5487
  {
5240
5488
  "abstract": true,
5241
5489
  "docs": {
5242
- "default": "none",
5490
+ "default": "- pool provisioned without netmask length, need cidr range in this case",
5243
5491
  "stability": "experimental",
5244
5492
  "summary": "Ipv6 Netmask length for the CIDR."
5245
5493
  },
5246
5494
  "immutable": true,
5247
5495
  "locationInModule": {
5248
5496
  "filename": "lib/ipam.ts",
5249
- "line": 163
5497
+ "line": 170
5250
5498
  },
5251
5499
  "name": "netmaskLength",
5252
5500
  "optional": true,
@@ -5264,7 +5512,7 @@
5264
5512
  "see": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampool.html#cfn-ec2-ipampool-publicipsource",
5265
5513
  "stability": "experimental",
5266
5514
  "summary": "The IP address source for pools in the public scope.",
5267
- "example": "\nconst stack = new Stack();\nconst ipam = new Ipam(this, 'Ipam', {\n operatingRegion: ['us-west-1']\n});\nconst ipamPublicPool = ipam.publicScope.addPool('PublicPoolA', {\n addressFamily: vpc_v2.AddressFamily.IP_V6,\n awsService: AwsServiceName.EC2,\n locale: 'us-west-1',\n publicIpSource: vpc_v2.IpamPoolPublicIpSource.AMAZON,\n});\nipamPublicPool.provisionCidr('PublicPoolACidrA', { netmaskLength: 52 } );\n\nconst ipamPrivatePool = ipam.privateScope.addPool('PrivatePoolA', {\n addressFamily: vpc_v2.AddressFamily.IP_V4,\n});\nipamPrivatePool.provisionCidr('PrivatePoolACidrA', { netmaskLength: 8 } );\n\nnew vpc_v2.VpcV2(this, 'Vpc', {\n primaryAddressBlock: vpc_v2.IpAddresses.ipv4('10.0.0.0/24'),\n secondaryAddressBlocks: [\n vpc_v2.IpAddresses.amazonProvidedIpv6({ cidrBlockName: 'AmazonIpv6' }),\n vpc_v2.IpAddresses.ipv6Ipam({\n ipamPool: ipamPublicPool,\n netmaskLength: 52,\n cidrBlockName: 'ipv6Ipam',\n }),\n vpc_v2.IpAddresses.ipv4Ipam({\n ipamPool: ipamPrivatePool,\n netmaskLength: 8,\n cidrBlockName: 'ipv4Ipam',\n }),\n ],\n});",
5515
+ "example": "\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});",
5268
5516
  "custom": {
5269
5517
  "exampleMetadata": "infused"
5270
5518
  }
@@ -5300,7 +5548,7 @@
5300
5548
  "docs": {
5301
5549
  "stability": "experimental",
5302
5550
  "summary": "Options to create a new Ipam in the account.",
5303
- "example": "\nconst stack = new Stack();\nconst ipam = new Ipam(this, 'Ipam', {\n operatingRegion: ['us-west-1']\n});\nconst ipamPublicPool = ipam.publicScope.addPool('PublicPoolA', {\n addressFamily: vpc_v2.AddressFamily.IP_V6,\n awsService: AwsServiceName.EC2,\n locale: 'us-west-1',\n publicIpSource: vpc_v2.IpamPoolPublicIpSource.AMAZON,\n});\nipamPublicPool.provisionCidr('PublicPoolACidrA', { netmaskLength: 52 } );\n\nconst ipamPrivatePool = ipam.privateScope.addPool('PrivatePoolA', {\n addressFamily: vpc_v2.AddressFamily.IP_V4,\n});\nipamPrivatePool.provisionCidr('PrivatePoolACidrA', { netmaskLength: 8 } );\n\nnew vpc_v2.VpcV2(this, 'Vpc', {\n primaryAddressBlock: vpc_v2.IpAddresses.ipv4('10.0.0.0/24'),\n secondaryAddressBlocks: [\n vpc_v2.IpAddresses.amazonProvidedIpv6({ cidrBlockName: 'AmazonIpv6' }),\n vpc_v2.IpAddresses.ipv6Ipam({\n ipamPool: ipamPublicPool,\n netmaskLength: 52,\n cidrBlockName: 'ipv6Ipam',\n }),\n vpc_v2.IpAddresses.ipv4Ipam({\n ipamPool: ipamPrivatePool,\n netmaskLength: 8,\n cidrBlockName: 'ipv4Ipam',\n }),\n ],\n});",
5551
+ "example": "\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});",
5304
5552
  "custom": {
5305
5553
  "exampleMetadata": "infused"
5306
5554
  }
@@ -5316,14 +5564,14 @@
5316
5564
  {
5317
5565
  "abstract": true,
5318
5566
  "docs": {
5319
- "default": "none",
5567
+ "default": "- If no name provided, no tags will be added to the IPAM",
5320
5568
  "stability": "experimental",
5321
5569
  "summary": "Name of IPAM that can be used for tagging resource."
5322
5570
  },
5323
5571
  "immutable": true,
5324
5572
  "locationInModule": {
5325
5573
  "filename": "lib/ipam.ts",
5326
- "line": 70
5574
+ "line": 72
5327
5575
  },
5328
5576
  "name": "ipamName",
5329
5577
  "optional": true,
@@ -5334,7 +5582,7 @@
5334
5582
  {
5335
5583
  "abstract": true,
5336
5584
  "docs": {
5337
- "default": "Stack.region if defined else []",
5585
+ "default": "- Stack.region if defined in the stack",
5338
5586
  "remarks": "Operating Regions are AWS Regions where the IPAM is allowed to manage IP address CIDRs\nFor more information about operating Regions, see [Create an IPAM](https://docs.aws.amazon.com//vpc/latest/ipam/create-ipam.html) in the *Amazon VPC IPAM User Guide* .",
5339
5587
  "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipam.html#cfn-ec2-ipam-operatingregions",
5340
5588
  "stability": "experimental",
@@ -5343,7 +5591,7 @@
5343
5591
  "immutable": true,
5344
5592
  "locationInModule": {
5345
5593
  "filename": "lib/ipam.ts",
5346
- "line": 64
5594
+ "line": 65
5347
5595
  },
5348
5596
  "name": "operatingRegion",
5349
5597
  "optional": true,
@@ -5374,21 +5622,21 @@
5374
5622
  "kind": "interface",
5375
5623
  "locationInModule": {
5376
5624
  "filename": "lib/ipam.ts",
5377
- "line": 221
5625
+ "line": 230
5378
5626
  },
5379
5627
  "name": "IpamScopeOptions",
5380
5628
  "properties": [
5381
5629
  {
5382
5630
  "abstract": true,
5383
5631
  "docs": {
5384
- "default": "none",
5632
+ "default": "- no tags will be added to the scope",
5385
5633
  "stability": "experimental",
5386
5634
  "summary": "IPAM scope name that will be used for tagging."
5387
5635
  },
5388
5636
  "immutable": true,
5389
5637
  "locationInModule": {
5390
5638
  "filename": "lib/ipam.ts",
5391
- "line": 227
5639
+ "line": 237
5392
5640
  },
5393
5641
  "name": "ipamScopeName",
5394
5642
  "optional": true,
@@ -5409,7 +5657,7 @@
5409
5657
  "kind": "enum",
5410
5658
  "locationInModule": {
5411
5659
  "filename": "lib/ipam.ts",
5412
- "line": 76
5660
+ "line": 78
5413
5661
  },
5414
5662
  "members": [
5415
5663
  {
@@ -5436,7 +5684,7 @@
5436
5684
  "remarks": "The default is public connectivity.\nSee: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-natgateway.html#cfn-ec2-natgateway-connectivitytype",
5437
5685
  "stability": "experimental",
5438
5686
  "summary": "Indicates whether the NAT gateway supports public or private connectivity.",
5439
- "example": "\nconst myVpc = new vpc_v2.VpcV2(this, 'Vpc');\nconst routeTable = new vpc_v2.RouteTable(this, 'RouteTable', {\n vpc: myVpc,\n});\nconst subnet = new vpc_v2.SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: ec2.SubnetType.PRIVATE_ISOLATED });\n\nconst natgw = new vpc_v2.NatGateway(this, 'NatGW', {\n subnet: subnet,\n vpc: myVpc,\n connectivityType: NatConnectivityType.PRIVATE,\n privateIpAddress: '10.0.0.42',\n});\nnew vpc_v2.Route(this, 'NatGwRoute', {\n routeTable,\n destination: '0.0.0.0/0',\n target: { gateway: natgw },\n});",
5687
+ "example": "\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});",
5440
5688
  "custom": {
5441
5689
  "exampleMetadata": "infused"
5442
5690
  }
@@ -5445,7 +5693,7 @@
5445
5693
  "kind": "enum",
5446
5694
  "locationInModule": {
5447
5695
  "filename": "lib/route.ts",
5448
- "line": 11
5696
+ "line": 13
5449
5697
  },
5450
5698
  "members": [
5451
5699
  {
@@ -5476,7 +5724,7 @@
5476
5724
  },
5477
5725
  "stability": "experimental",
5478
5726
  "summary": "Creates a network address translation (NAT) gateway.",
5479
- "example": "\nconst myVpc = new vpc_v2.VpcV2(this, 'Vpc');\nconst routeTable = new vpc_v2.RouteTable(this, 'RouteTable', {\n vpc: myVpc,\n});\nconst subnet = new vpc_v2.SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: ec2.SubnetType.PRIVATE_ISOLATED });\n\nconst natgw = new vpc_v2.NatGateway(this, 'NatGW', {\n subnet: subnet,\n vpc: myVpc,\n connectivityType: NatConnectivityType.PRIVATE,\n privateIpAddress: '10.0.0.42',\n});\nnew vpc_v2.Route(this, 'NatGwRoute', {\n routeTable,\n destination: '0.0.0.0/0',\n target: { gateway: natgw },\n});"
5727
+ "example": "\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});"
5480
5728
  },
5481
5729
  "fqn": "@aws-cdk/aws-ec2-alpha.NatGateway",
5482
5730
  "initializer": {
@@ -5485,7 +5733,7 @@
5485
5733
  },
5486
5734
  "locationInModule": {
5487
5735
  "filename": "lib/route.ts",
5488
- "line": 326
5736
+ "line": 364
5489
5737
  },
5490
5738
  "parameters": [
5491
5739
  {
@@ -5514,7 +5762,7 @@
5514
5762
  "kind": "class",
5515
5763
  "locationInModule": {
5516
5764
  "filename": "lib/route.ts",
5517
- "line": 297
5765
+ "line": 333
5518
5766
  },
5519
5767
  "name": "NatGateway",
5520
5768
  "properties": [
@@ -5526,7 +5774,7 @@
5526
5774
  "immutable": true,
5527
5775
  "locationInModule": {
5528
5776
  "filename": "lib/route.ts",
5529
- "line": 324
5777
+ "line": 362
5530
5778
  },
5531
5779
  "name": "resource",
5532
5780
  "type": {
@@ -5541,7 +5789,7 @@
5541
5789
  "immutable": true,
5542
5790
  "locationInModule": {
5543
5791
  "filename": "lib/route.ts",
5544
- "line": 306
5792
+ "line": 342
5545
5793
  },
5546
5794
  "name": "routerTargetId",
5547
5795
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteTarget",
@@ -5557,7 +5805,7 @@
5557
5805
  "immutable": true,
5558
5806
  "locationInModule": {
5559
5807
  "filename": "lib/route.ts",
5560
- "line": 301
5808
+ "line": 337
5561
5809
  },
5562
5810
  "name": "routerType",
5563
5811
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteTarget",
@@ -5574,24 +5822,24 @@
5574
5822
  "immutable": true,
5575
5823
  "locationInModule": {
5576
5824
  "filename": "lib/route.ts",
5577
- "line": 312
5825
+ "line": 349
5578
5826
  },
5579
5827
  "name": "connectivityType",
5580
5828
  "optional": true,
5581
5829
  "type": {
5582
- "primitive": "string"
5830
+ "fqn": "@aws-cdk/aws-ec2-alpha.NatConnectivityType"
5583
5831
  }
5584
5832
  },
5585
5833
  {
5586
5834
  "docs": {
5587
- "default": "350 seconds",
5835
+ "default": "'350 seconds'",
5588
5836
  "stability": "experimental",
5589
5837
  "summary": "The maximum amount of time to wait before forcibly releasing the IP addresses if connections are still in progress."
5590
5838
  },
5591
5839
  "immutable": true,
5592
5840
  "locationInModule": {
5593
5841
  "filename": "lib/route.ts",
5594
- "line": 319
5842
+ "line": 357
5595
5843
  },
5596
5844
  "name": "maxDrainDuration",
5597
5845
  "optional": true,
@@ -5602,24 +5850,24 @@
5602
5850
  ],
5603
5851
  "symbolId": "lib/route:NatGateway"
5604
5852
  },
5605
- "@aws-cdk/aws-ec2-alpha.NatGatewayProps": {
5853
+ "@aws-cdk/aws-ec2-alpha.NatGatewayOptions": {
5606
5854
  "assembly": "@aws-cdk/aws-ec2-alpha",
5607
5855
  "datatype": true,
5608
5856
  "docs": {
5609
5857
  "stability": "experimental",
5610
- "summary": "Properties to define a NAT gateway.",
5611
- "example": "\nconst myVpc = new vpc_v2.VpcV2(this, 'Vpc');\nconst routeTable = new vpc_v2.RouteTable(this, 'RouteTable', {\n vpc: myVpc,\n});\nconst subnet = new vpc_v2.SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: ec2.SubnetType.PRIVATE_ISOLATED });\n\nconst natgw = new vpc_v2.NatGateway(this, 'NatGW', {\n subnet: subnet,\n vpc: myVpc,\n connectivityType: NatConnectivityType.PRIVATE,\n privateIpAddress: '10.0.0.42',\n});\nnew vpc_v2.Route(this, 'NatGwRoute', {\n routeTable,\n destination: '0.0.0.0/0',\n target: { gateway: natgw },\n});",
5858
+ "summary": "Options to define a NAT gateway.",
5859
+ "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});",
5612
5860
  "custom": {
5613
5861
  "exampleMetadata": "infused"
5614
5862
  }
5615
5863
  },
5616
- "fqn": "@aws-cdk/aws-ec2-alpha.NatGatewayProps",
5864
+ "fqn": "@aws-cdk/aws-ec2-alpha.NatGatewayOptions",
5617
5865
  "kind": "interface",
5618
5866
  "locationInModule": {
5619
5867
  "filename": "lib/route.ts",
5620
- "line": 102
5868
+ "line": 89
5621
5869
  },
5622
- "name": "NatGatewayProps",
5870
+ "name": "NatGatewayOptions",
5623
5871
  "properties": [
5624
5872
  {
5625
5873
  "abstract": true,
@@ -5630,17 +5878,17 @@
5630
5878
  "immutable": true,
5631
5879
  "locationInModule": {
5632
5880
  "filename": "lib/route.ts",
5633
- "line": 106
5881
+ "line": 93
5634
5882
  },
5635
5883
  "name": "subnet",
5636
5884
  "type": {
5637
- "fqn": "aws-cdk-lib.aws_ec2.ISubnet"
5885
+ "fqn": "@aws-cdk/aws-ec2-alpha.ISubnetV2"
5638
5886
  }
5639
5887
  },
5640
5888
  {
5641
5889
  "abstract": true,
5642
5890
  "docs": {
5643
- "default": "attr.allocationID of a new Elastic IP created by default\n//TODO: ADD L2 for elastic ip",
5891
+ "default": "- attr.allocationID of a new Elastic IP created by default\n//TODO: ADD L2 for elastic ip",
5644
5892
  "remarks": "This property is required for a public NAT\ngateway and cannot be specified with a private NAT gateway.",
5645
5893
  "stability": "experimental",
5646
5894
  "summary": "AllocationID of Elastic IP address that's associated with the NAT gateway."
@@ -5648,7 +5896,7 @@
5648
5896
  "immutable": true,
5649
5897
  "locationInModule": {
5650
5898
  "filename": "lib/route.ts",
5651
- "line": 120
5899
+ "line": 102
5652
5900
  },
5653
5901
  "name": "allocationId",
5654
5902
  "optional": true,
@@ -5659,14 +5907,14 @@
5659
5907
  {
5660
5908
  "abstract": true,
5661
5909
  "docs": {
5662
- "default": "public",
5910
+ "default": "NatConnectivityType.Public",
5663
5911
  "stability": "experimental",
5664
5912
  "summary": "Indicates whether the NAT gateway supports public or private connectivity."
5665
5913
  },
5666
5914
  "immutable": true,
5667
5915
  "locationInModule": {
5668
5916
  "filename": "lib/route.ts",
5669
- "line": 126
5917
+ "line": 109
5670
5918
  },
5671
5919
  "name": "connectivityType",
5672
5920
  "optional": true,
@@ -5677,14 +5925,14 @@
5677
5925
  {
5678
5926
  "abstract": true,
5679
5927
  "docs": {
5680
- "default": "350 seconds",
5928
+ "default": "350seconds",
5681
5929
  "stability": "experimental",
5682
5930
  "summary": "The maximum amount of time to wait before forcibly releasing the IP addresses if connections are still in progress."
5683
5931
  },
5684
5932
  "immutable": true,
5685
5933
  "locationInModule": {
5686
5934
  "filename": "lib/route.ts",
5687
- "line": 133
5935
+ "line": 117
5688
5936
  },
5689
5937
  "name": "maxDrainDuration",
5690
5938
  "optional": true,
@@ -5695,14 +5943,14 @@
5695
5943
  {
5696
5944
  "abstract": true,
5697
5945
  "docs": {
5698
- "default": "none",
5946
+ "default": "- NATGW provisioned without any name",
5699
5947
  "stability": "experimental",
5700
5948
  "summary": "The resource name of the NAT gateway."
5701
5949
  },
5702
5950
  "immutable": true,
5703
5951
  "locationInModule": {
5704
5952
  "filename": "lib/route.ts",
5705
- "line": 176
5953
+ "line": 163
5706
5954
  },
5707
5955
  "name": "natGatewayName",
5708
5956
  "optional": true,
@@ -5713,15 +5961,14 @@
5713
5961
  {
5714
5962
  "abstract": true,
5715
5963
  "docs": {
5716
- "default": "none",
5717
- "remarks": "If you don't provide an\naddress, a private IPv4 address will be automatically assigned.",
5964
+ "default": "- If you don't provide an address, a private IPv4 address will be automatically assigned.",
5718
5965
  "stability": "experimental",
5719
5966
  "summary": "The private IPv4 address to assign to the NAT gateway."
5720
5967
  },
5721
5968
  "immutable": true,
5722
5969
  "locationInModule": {
5723
5970
  "filename": "lib/route.ts",
5724
- "line": 140
5971
+ "line": 124
5725
5972
  },
5726
5973
  "name": "privateIpAddress",
5727
5974
  "optional": true,
@@ -5732,7 +5979,7 @@
5732
5979
  {
5733
5980
  "abstract": true,
5734
5981
  "docs": {
5735
- "default": "none",
5982
+ "default": "- no secondary allocation IDs attached to NATGW",
5736
5983
  "see": "https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating",
5737
5984
  "stability": "experimental",
5738
5985
  "summary": "Secondary EIP allocation IDs."
@@ -5740,7 +5987,7 @@
5740
5987
  "immutable": true,
5741
5988
  "locationInModule": {
5742
5989
  "filename": "lib/route.ts",
5743
- "line": 147
5990
+ "line": 133
5744
5991
  },
5745
5992
  "name": "secondaryAllocationIds",
5746
5993
  "optional": true,
@@ -5756,7 +6003,7 @@
5756
6003
  {
5757
6004
  "abstract": true,
5758
6005
  "docs": {
5759
- "default": "none",
6006
+ "default": "- no secondary allocation IDs associated with NATGW",
5760
6007
  "remarks": "`SecondaryPrivateIpAddressCount` and `SecondaryPrivateIpAddresses` cannot be\nset at the same time.",
5761
6008
  "see": "https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating",
5762
6009
  "stability": "experimental",
@@ -5765,7 +6012,7 @@
5765
6012
  "immutable": true,
5766
6013
  "locationInModule": {
5767
6014
  "filename": "lib/route.ts",
5768
- "line": 159
6015
+ "line": 145
5769
6016
  },
5770
6017
  "name": "secondaryPrivateIpAddressCount",
5771
6018
  "optional": true,
@@ -5776,7 +6023,7 @@
5776
6023
  {
5777
6024
  "abstract": true,
5778
6025
  "docs": {
5779
- "default": "none",
6026
+ "default": "- no secondary private IpAddresses associated with NATGW",
5780
6027
  "remarks": "`SecondaryPrivateIpAddressCount` and `SecondaryPrivateIpAddresses` cannot be\nset at the same time.",
5781
6028
  "see": "https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating",
5782
6029
  "stability": "experimental",
@@ -5785,7 +6032,7 @@
5785
6032
  "immutable": true,
5786
6033
  "locationInModule": {
5787
6034
  "filename": "lib/route.ts",
5788
- "line": 170
6035
+ "line": 156
5789
6036
  },
5790
6037
  "name": "secondaryPrivateIpAddresses",
5791
6038
  "optional": true,
@@ -5797,18 +6044,43 @@
5797
6044
  "kind": "array"
5798
6045
  }
5799
6046
  }
5800
- },
6047
+ }
6048
+ ],
6049
+ "symbolId": "lib/route:NatGatewayOptions"
6050
+ },
6051
+ "@aws-cdk/aws-ec2-alpha.NatGatewayProps": {
6052
+ "assembly": "@aws-cdk/aws-ec2-alpha",
6053
+ "datatype": true,
6054
+ "docs": {
6055
+ "stability": "experimental",
6056
+ "summary": "Properties to define a NAT gateway.",
6057
+ "example": "\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});",
6058
+ "custom": {
6059
+ "exampleMetadata": "infused"
6060
+ }
6061
+ },
6062
+ "fqn": "@aws-cdk/aws-ec2-alpha.NatGatewayProps",
6063
+ "interfaces": [
6064
+ "@aws-cdk/aws-ec2-alpha.NatGatewayOptions"
6065
+ ],
6066
+ "kind": "interface",
6067
+ "locationInModule": {
6068
+ "filename": "lib/route.ts",
6069
+ "line": 169
6070
+ },
6071
+ "name": "NatGatewayProps",
6072
+ "properties": [
5801
6073
  {
5802
6074
  "abstract": true,
5803
6075
  "docs": {
5804
- "default": "none",
6076
+ "default": "- no elastic ip associated, required in case of public connectivity if `AllocationId` is not defined",
5805
6077
  "stability": "experimental",
5806
6078
  "summary": "The ID of the VPC in which the NAT gateway is located."
5807
6079
  },
5808
6080
  "immutable": true,
5809
6081
  "locationInModule": {
5810
6082
  "filename": "lib/route.ts",
5811
- "line": 112
6083
+ "line": 175
5812
6084
  },
5813
6085
  "name": "vpc",
5814
6086
  "optional": true,
@@ -5826,7 +6098,7 @@
5826
6098
  "see": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampool.html",
5827
6099
  "stability": "experimental",
5828
6100
  "summary": "Options for configuring an IPAM pool.",
5829
- "example": "\nconst stack = new Stack();\nconst ipam = new Ipam(this, 'Ipam', {\n operatingRegion: ['us-west-1']\n});\nconst ipamPublicPool = ipam.publicScope.addPool('PublicPoolA', {\n addressFamily: vpc_v2.AddressFamily.IP_V6,\n awsService: AwsServiceName.EC2,\n locale: 'us-west-1',\n publicIpSource: vpc_v2.IpamPoolPublicIpSource.AMAZON,\n});\nipamPublicPool.provisionCidr('PublicPoolACidrA', { netmaskLength: 52 } );\n\nconst ipamPrivatePool = ipam.privateScope.addPool('PrivatePoolA', {\n addressFamily: vpc_v2.AddressFamily.IP_V4,\n});\nipamPrivatePool.provisionCidr('PrivatePoolACidrA', { netmaskLength: 8 } );\n\nnew vpc_v2.VpcV2(this, 'Vpc', {\n primaryAddressBlock: vpc_v2.IpAddresses.ipv4('10.0.0.0/24'),\n secondaryAddressBlocks: [\n vpc_v2.IpAddresses.amazonProvidedIpv6({ cidrBlockName: 'AmazonIpv6' }),\n vpc_v2.IpAddresses.ipv6Ipam({\n ipamPool: ipamPublicPool,\n netmaskLength: 52,\n cidrBlockName: 'ipv6Ipam',\n }),\n vpc_v2.IpAddresses.ipv4Ipam({\n ipamPool: ipamPrivatePool,\n netmaskLength: 8,\n cidrBlockName: 'ipv4Ipam',\n }),\n ],\n});",
6101
+ "example": "\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});",
5830
6102
  "custom": {
5831
6103
  "exampleMetadata": "infused"
5832
6104
  }
@@ -5835,7 +6107,7 @@
5835
6107
  "kind": "interface",
5836
6108
  "locationInModule": {
5837
6109
  "filename": "lib/ipam.ts",
5838
- "line": 93
6110
+ "line": 95
5839
6111
  },
5840
6112
  "name": "PoolOptions",
5841
6113
  "properties": [
@@ -5848,7 +6120,7 @@
5848
6120
  "immutable": true,
5849
6121
  "locationInModule": {
5850
6122
  "filename": "lib/ipam.ts",
5851
- "line": 98
6123
+ "line": 100
5852
6124
  },
5853
6125
  "name": "addressFamily",
5854
6126
  "type": {
@@ -5858,7 +6130,7 @@
5858
6130
  {
5859
6131
  "abstract": true,
5860
6132
  "docs": {
5861
- "default": "- No service",
6133
+ "default": "- required in case of an IPv6, throws an error if not provided.",
5862
6134
  "remarks": "\"ec2\", for example, allows users to use space for Elastic IP addresses and VPCs.",
5863
6135
  "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampool.html#cfn-ec2-ipampool-awsservice",
5864
6136
  "stability": "experimental",
@@ -5867,7 +6139,7 @@
5867
6139
  "immutable": true,
5868
6140
  "locationInModule": {
5869
6141
  "filename": "lib/ipam.ts",
5870
- "line": 133
6142
+ "line": 138
5871
6143
  },
5872
6144
  "name": "awsService",
5873
6145
  "optional": true,
@@ -5885,7 +6157,7 @@
5885
6157
  "immutable": true,
5886
6158
  "locationInModule": {
5887
6159
  "filename": "lib/ipam.ts",
5888
- "line": 104
6160
+ "line": 107
5889
6161
  },
5890
6162
  "name": "ipv4ProvisionedCidrs",
5891
6163
  "optional": true,
@@ -5901,7 +6173,7 @@
5901
6173
  {
5902
6174
  "abstract": true,
5903
6175
  "docs": {
5904
- "default": "- Current operating region",
6176
+ "default": "- Current operating region of IPAM",
5905
6177
  "remarks": "Should be one of the IPAM operating region.\n Only resources in the same Region as the locale of the pool can get IP address allocations from the pool.\nYou can only allocate a CIDR for a VPC, for example, from an IPAM pool that shares a locale with the VPC’s Region.\nNote that once you choose a Locale for a pool, you cannot modify it. If you choose an AWS Region for locale that has not been configured as an operating Region for the IPAM, you'll get an error.",
5906
6178
  "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampool.html#cfn-ec2-ipampool-locale",
5907
6179
  "stability": "experimental",
@@ -5910,7 +6182,7 @@
5910
6182
  "immutable": true,
5911
6183
  "locationInModule": {
5912
6184
  "filename": "lib/ipam.ts",
5913
- "line": 114
6185
+ "line": 118
5914
6186
  },
5915
6187
  "name": "locale",
5916
6188
  "optional": true,
@@ -5929,7 +6201,7 @@
5929
6201
  "immutable": true,
5930
6202
  "locationInModule": {
5931
6203
  "filename": "lib/ipam.ts",
5932
- "line": 122
6204
+ "line": 127
5933
6205
  },
5934
6206
  "name": "publicIpSource",
5935
6207
  "optional": true,
@@ -5950,7 +6222,7 @@
5950
6222
  },
5951
6223
  "stability": "experimental",
5952
6224
  "summary": "Creates a new route with added functionality.",
5953
- "example": "\nconst myVpc = new vpc_v2.VpcV2(this, 'Vpc');\nconst routeTable = new vpc_v2.RouteTable(this, 'RouteTable', {\n vpc: myVpc,\n});\nconst subnet = new vpc_v2.SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: ec2.SubnetType.PRIVATE_ISOLATED });\n\nconst natgw = new vpc_v2.NatGateway(this, 'NatGW', {\n subnet: subnet,\n vpc: myVpc,\n connectivityType: NatConnectivityType.PRIVATE,\n privateIpAddress: '10.0.0.42',\n});\nnew vpc_v2.Route(this, 'NatGwRoute', {\n routeTable,\n destination: '0.0.0.0/0',\n target: { gateway: natgw },\n});"
6225
+ "example": "\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});"
5954
6226
  },
5955
6227
  "fqn": "@aws-cdk/aws-ec2-alpha.Route",
5956
6228
  "initializer": {
@@ -5959,7 +6231,7 @@
5959
6231
  },
5960
6232
  "locationInModule": {
5961
6233
  "filename": "lib/route.ts",
5962
- "line": 494
6234
+ "line": 554
5963
6235
  },
5964
6236
  "parameters": [
5965
6237
  {
@@ -5988,7 +6260,7 @@
5988
6260
  "kind": "class",
5989
6261
  "locationInModule": {
5990
6262
  "filename": "lib/route.ts",
5991
- "line": 465
6263
+ "line": 515
5992
6264
  },
5993
6265
  "name": "Route",
5994
6266
  "properties": [
@@ -6001,7 +6273,7 @@
6001
6273
  "immutable": true,
6002
6274
  "locationInModule": {
6003
6275
  "filename": "lib/route.ts",
6004
- "line": 471
6276
+ "line": 521
6005
6277
  },
6006
6278
  "name": "destination",
6007
6279
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteV2",
@@ -6020,7 +6292,7 @@
6020
6292
  "immutable": true,
6021
6293
  "locationInModule": {
6022
6294
  "filename": "lib/route.ts",
6023
- "line": 482
6295
+ "line": 532
6024
6296
  },
6025
6297
  "name": "routeTable",
6026
6298
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteV2",
@@ -6036,7 +6308,7 @@
6036
6308
  "immutable": true,
6037
6309
  "locationInModule": {
6038
6310
  "filename": "lib/route.ts",
6039
- "line": 476
6311
+ "line": 526
6040
6312
  },
6041
6313
  "name": "target",
6042
6314
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteV2",
@@ -6052,7 +6324,7 @@
6052
6324
  "immutable": true,
6053
6325
  "locationInModule": {
6054
6326
  "filename": "lib/route.ts",
6055
- "line": 487
6327
+ "line": 537
6056
6328
  },
6057
6329
  "name": "targetRouterType",
6058
6330
  "type": {
@@ -6067,7 +6339,7 @@
6067
6339
  "immutable": true,
6068
6340
  "locationInModule": {
6069
6341
  "filename": "lib/route.ts",
6070
- "line": 492
6342
+ "line": 542
6071
6343
  },
6072
6344
  "name": "resource",
6073
6345
  "optional": true,
@@ -6084,7 +6356,7 @@
6084
6356
  "docs": {
6085
6357
  "stability": "experimental",
6086
6358
  "summary": "Properties to define a route.",
6087
- "example": "\nconst myVpc = new vpc_v2.VpcV2(this, 'Vpc');\nconst routeTable = new vpc_v2.RouteTable(this, 'RouteTable', {\n vpc: myVpc,\n});\nconst subnet = new vpc_v2.SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: ec2.SubnetType.PRIVATE_ISOLATED });\n\nconst natgw = new vpc_v2.NatGateway(this, 'NatGW', {\n subnet: subnet,\n vpc: myVpc,\n connectivityType: NatConnectivityType.PRIVATE,\n privateIpAddress: '10.0.0.42',\n});\nnew vpc_v2.Route(this, 'NatGwRoute', {\n routeTable,\n destination: '0.0.0.0/0',\n target: { gateway: natgw },\n});",
6359
+ "example": "\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});",
6088
6360
  "custom": {
6089
6361
  "exampleMetadata": "infused"
6090
6362
  }
@@ -6093,7 +6365,7 @@
6093
6365
  "kind": "interface",
6094
6366
  "locationInModule": {
6095
6367
  "filename": "lib/route.ts",
6096
- "line": 435
6368
+ "line": 483
6097
6369
  },
6098
6370
  "name": "RouteProps",
6099
6371
  "properties": [
@@ -6107,7 +6379,7 @@
6107
6379
  "immutable": true,
6108
6380
  "locationInModule": {
6109
6381
  "filename": "lib/route.ts",
6110
- "line": 447
6382
+ "line": 496
6111
6383
  },
6112
6384
  "name": "destination",
6113
6385
  "type": {
@@ -6126,7 +6398,7 @@
6126
6398
  "immutable": true,
6127
6399
  "locationInModule": {
6128
6400
  "filename": "lib/route.ts",
6129
- "line": 440
6401
+ "line": 489
6130
6402
  },
6131
6403
  "name": "routeTable",
6132
6404
  "type": {
@@ -6142,7 +6414,7 @@
6142
6414
  "immutable": true,
6143
6415
  "locationInModule": {
6144
6416
  "filename": "lib/route.ts",
6145
- "line": 452
6417
+ "line": 501
6146
6418
  },
6147
6419
  "name": "target",
6148
6420
  "type": {
@@ -6152,14 +6424,14 @@
6152
6424
  {
6153
6425
  "abstract": true,
6154
6426
  "docs": {
6155
- "default": "none",
6427
+ "default": "- provisioned without a route name",
6156
6428
  "stability": "experimental",
6157
6429
  "summary": "The resource name of the route."
6158
6430
  },
6159
6431
  "immutable": true,
6160
6432
  "locationInModule": {
6161
6433
  "filename": "lib/route.ts",
6162
- "line": 458
6434
+ "line": 508
6163
6435
  },
6164
6436
  "name": "routeName",
6165
6437
  "optional": true,
@@ -6180,7 +6452,7 @@
6180
6452
  },
6181
6453
  "stability": "experimental",
6182
6454
  "summary": "Creates a route table for the specified VPC.",
6183
- "example": "const stack = new Stack();\nconst myVpc = new vpc_v2.VpcV2(this, 'Vpc');\nconst routeTable = new vpc_v2.RouteTable(this, 'RouteTable', {\n vpc: myVpc,\n});\nconst subnet = new vpc_v2.SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: ec2.SubnetType.PRIVATE_ISOLATED });\n\nconst igw = new vpc_v2.InternetGateway(this, 'IGW', {\n vpc: myVpc,\n});\nnew vpc_v2.Route(this, 'IgwRoute', {\n routeTable,\n destination: '0.0.0.0/0',\n target: { gateway: igw },\n});"
6455
+ "example": "\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});"
6184
6456
  },
6185
6457
  "fqn": "@aws-cdk/aws-ec2-alpha.RouteTable",
6186
6458
  "initializer": {
@@ -6189,7 +6461,7 @@
6189
6461
  },
6190
6462
  "locationInModule": {
6191
6463
  "filename": "lib/route.ts",
6192
- "line": 562
6464
+ "line": 627
6193
6465
  },
6194
6466
  "parameters": [
6195
6467
  {
@@ -6209,18 +6481,56 @@
6209
6481
  "type": {
6210
6482
  "fqn": "@aws-cdk/aws-ec2-alpha.RouteTableProps"
6211
6483
  }
6212
- }
6213
- ]
6214
- },
6215
- "interfaces": [
6216
- "aws-cdk-lib.aws_ec2.IRouteTable",
6217
- "constructs.IDependable"
6484
+ }
6485
+ ]
6486
+ },
6487
+ "interfaces": [
6488
+ "aws-cdk-lib.aws_ec2.IRouteTable"
6489
+ ],
6490
+ "kind": "class",
6491
+ "locationInModule": {
6492
+ "filename": "lib/route.ts",
6493
+ "line": 616
6494
+ },
6495
+ "methods": [
6496
+ {
6497
+ "docs": {
6498
+ "stability": "experimental",
6499
+ "summary": "Adds a new custom route to the route table."
6500
+ },
6501
+ "locationInModule": {
6502
+ "filename": "lib/route.ts",
6503
+ "line": 644
6504
+ },
6505
+ "name": "addRoute",
6506
+ "parameters": [
6507
+ {
6508
+ "name": "id",
6509
+ "type": {
6510
+ "primitive": "string"
6511
+ }
6512
+ },
6513
+ {
6514
+ "docs": {
6515
+ "summary": "The IPv4 or IPv6 CIDR block used for the destination match."
6516
+ },
6517
+ "name": "destination",
6518
+ "type": {
6519
+ "primitive": "string"
6520
+ }
6521
+ },
6522
+ {
6523
+ "docs": {
6524
+ "summary": "The gateway or endpoint targeted by the route."
6525
+ },
6526
+ "name": "target",
6527
+ "type": {
6528
+ "fqn": "@aws-cdk/aws-ec2-alpha.RouteTargetType"
6529
+ }
6530
+ }
6531
+ ]
6532
+ }
6218
6533
  ],
6219
- "kind": "class",
6220
- "locationInModule": {
6221
- "filename": "lib/route.ts",
6222
- "line": 551
6223
- },
6224
6534
  "name": "RouteTable",
6225
6535
  "properties": [
6226
6536
  {
@@ -6231,7 +6541,7 @@
6231
6541
  "immutable": true,
6232
6542
  "locationInModule": {
6233
6543
  "filename": "lib/route.ts",
6234
- "line": 560
6544
+ "line": 625
6235
6545
  },
6236
6546
  "name": "resource",
6237
6547
  "type": {
@@ -6246,7 +6556,7 @@
6246
6556
  "immutable": true,
6247
6557
  "locationInModule": {
6248
6558
  "filename": "lib/route.ts",
6249
- "line": 555
6559
+ "line": 620
6250
6560
  },
6251
6561
  "name": "routeTableId",
6252
6562
  "overrides": "aws-cdk-lib.aws_ec2.IRouteTable",
@@ -6263,7 +6573,7 @@
6263
6573
  "docs": {
6264
6574
  "stability": "experimental",
6265
6575
  "summary": "Properties to define a route table.",
6266
- "example": "const stack = new Stack();\nconst myVpc = new vpc_v2.VpcV2(this, 'Vpc');\nconst routeTable = new vpc_v2.RouteTable(this, 'RouteTable', {\n vpc: myVpc,\n});\nconst subnet = new vpc_v2.SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: ec2.SubnetType.PRIVATE_ISOLATED });\n\nconst igw = new vpc_v2.InternetGateway(this, 'IGW', {\n vpc: myVpc,\n});\nnew vpc_v2.Route(this, 'IgwRoute', {\n routeTable,\n destination: '0.0.0.0/0',\n target: { gateway: igw },\n});",
6576
+ "example": "\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});",
6267
6577
  "custom": {
6268
6578
  "exampleMetadata": "infused"
6269
6579
  }
@@ -6272,7 +6582,7 @@
6272
6582
  "kind": "interface",
6273
6583
  "locationInModule": {
6274
6584
  "filename": "lib/route.ts",
6275
- "line": 534
6585
+ "line": 598
6276
6586
  },
6277
6587
  "name": "RouteTableProps",
6278
6588
  "properties": [
@@ -6285,7 +6595,7 @@
6285
6595
  "immutable": true,
6286
6596
  "locationInModule": {
6287
6597
  "filename": "lib/route.ts",
6288
- "line": 538
6598
+ "line": 602
6289
6599
  },
6290
6600
  "name": "vpc",
6291
6601
  "type": {
@@ -6295,14 +6605,14 @@
6295
6605
  {
6296
6606
  "abstract": true,
6297
6607
  "docs": {
6298
- "default": "none",
6608
+ "default": "- provisioned without a route table name",
6299
6609
  "stability": "experimental",
6300
6610
  "summary": "The resource name of the route table."
6301
6611
  },
6302
6612
  "immutable": true,
6303
6613
  "locationInModule": {
6304
6614
  "filename": "lib/route.ts",
6305
- "line": 544
6615
+ "line": 609
6306
6616
  },
6307
6617
  "name": "routeTableName",
6308
6618
  "optional": true,
@@ -6328,14 +6638,14 @@
6328
6638
  "kind": "interface",
6329
6639
  "locationInModule": {
6330
6640
  "filename": "lib/route.ts",
6331
- "line": 364
6641
+ "line": 408
6332
6642
  },
6333
6643
  "name": "RouteTargetProps",
6334
6644
  "properties": [
6335
6645
  {
6336
6646
  "abstract": true,
6337
6647
  "docs": {
6338
- "default": "none",
6648
+ "default": "- target is not set to an endpoint, in this case a gateway is needed.",
6339
6649
  "remarks": "This is used for targets such as\nVPC endpoints.",
6340
6650
  "stability": "experimental",
6341
6651
  "summary": "The endpoint route target."
@@ -6343,7 +6653,7 @@
6343
6653
  "immutable": true,
6344
6654
  "locationInModule": {
6345
6655
  "filename": "lib/route.ts",
6346
- "line": 377
6656
+ "line": 423
6347
6657
  },
6348
6658
  "name": "endpoint",
6349
6659
  "optional": true,
@@ -6354,7 +6664,7 @@
6354
6664
  {
6355
6665
  "abstract": true,
6356
6666
  "docs": {
6357
- "default": "none",
6667
+ "default": "- target is not set to a gateway, in this case an endpoint is needed.",
6358
6668
  "remarks": "This is used for targets such as\negress-only internet gateway or VPC peering connection.",
6359
6669
  "stability": "experimental",
6360
6670
  "summary": "The gateway route target."
@@ -6362,7 +6672,7 @@
6362
6672
  "immutable": true,
6363
6673
  "locationInModule": {
6364
6674
  "filename": "lib/route.ts",
6365
- "line": 370
6675
+ "line": 415
6366
6676
  },
6367
6677
  "name": "gateway",
6368
6678
  "optional": true,
@@ -6378,7 +6688,7 @@
6378
6688
  "docs": {
6379
6689
  "stability": "experimental",
6380
6690
  "summary": "The gateway or endpoint targeted by the route.",
6381
- "example": "\nconst myVpc = new vpc_v2.VpcV2(this, 'Vpc');\nconst routeTable = new vpc_v2.RouteTable(this, 'RouteTable', {\n vpc: myVpc,\n});\nconst subnet = new vpc_v2.SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: ec2.SubnetType.PRIVATE_ISOLATED });\n\nconst natgw = new vpc_v2.NatGateway(this, 'NatGW', {\n subnet: subnet,\n vpc: myVpc,\n connectivityType: NatConnectivityType.PRIVATE,\n privateIpAddress: '10.0.0.42',\n});\nnew vpc_v2.Route(this, 'NatGwRoute', {\n routeTable,\n destination: '0.0.0.0/0',\n target: { gateway: natgw },\n});",
6691
+ "example": "const 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});",
6382
6692
  "custom": {
6383
6693
  "exampleMetadata": "infused"
6384
6694
  }
@@ -6390,7 +6700,7 @@
6390
6700
  },
6391
6701
  "locationInModule": {
6392
6702
  "filename": "lib/route.ts",
6393
- "line": 398
6703
+ "line": 446
6394
6704
  },
6395
6705
  "parameters": [
6396
6706
  {
@@ -6404,13 +6714,13 @@
6404
6714
  "kind": "class",
6405
6715
  "locationInModule": {
6406
6716
  "filename": "lib/route.ts",
6407
- "line": 383
6717
+ "line": 429
6408
6718
  },
6409
6719
  "name": "RouteTargetType",
6410
6720
  "properties": [
6411
6721
  {
6412
6722
  "docs": {
6413
- "default": "none",
6723
+ "default": "- target is not set to an endpoint, in this case a gateway is needed.",
6414
6724
  "remarks": "This is used for targets such as\nVPC endpoints.",
6415
6725
  "stability": "experimental",
6416
6726
  "summary": "The endpoint route target."
@@ -6418,7 +6728,7 @@
6418
6728
  "immutable": true,
6419
6729
  "locationInModule": {
6420
6730
  "filename": "lib/route.ts",
6421
- "line": 396
6731
+ "line": 444
6422
6732
  },
6423
6733
  "name": "endpoint",
6424
6734
  "optional": true,
@@ -6428,7 +6738,7 @@
6428
6738
  },
6429
6739
  {
6430
6740
  "docs": {
6431
- "default": "none",
6741
+ "default": "- target is not set to a gateway, in this case an endpoint is needed.",
6432
6742
  "remarks": "This is used for targets such as\negress-only internet gateway or VPC peering connection.",
6433
6743
  "stability": "experimental",
6434
6744
  "summary": "The gateway route target."
@@ -6436,7 +6746,7 @@
6436
6746
  "immutable": true,
6437
6747
  "locationInModule": {
6438
6748
  "filename": "lib/route.ts",
6439
- "line": 389
6749
+ "line": 436
6440
6750
  },
6441
6751
  "name": "gateway",
6442
6752
  "optional": true,
@@ -6453,7 +6763,7 @@
6453
6763
  "docs": {
6454
6764
  "stability": "experimental",
6455
6765
  "summary": "Additional props needed for secondary Address.",
6456
- "example": "\nconst stack = new Stack();\nconst myVpc = new vpc_v2.VpcV2(this, 'Vpc', {\n secondaryAddressBlocks: [\n vpc_v2.IpAddresses.amazonProvidedIpv6({ cidrBlockName: 'AmazonProvidedIp'}),\n ],\n});\n\nnew vpc_v2.SubnetV2(this, 'subnetA', {\n vpc: myVpc,\n availabilityZone: 'us-east-1a',\n ipv4CidrBlock: new vpc_v2.IpCidr('10.0.0.0/24'),\n ipv6CidrBlock: new vpc_v2.IpCidr('2a05:d02c:25:4000::/60'),\n subnetType: ec2.SubnetType.PRIVATE_ISOLATED,\n})",
6766
+ "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 });",
6457
6767
  "custom": {
6458
6768
  "exampleMetadata": "infused"
6459
6769
  }
@@ -6496,7 +6806,7 @@
6496
6806
  "remarks": "It extends the Resource class and implements the ISubnet interface.\n\nInstances of this class can be used to create and manage subnets within a VpcV2 instance.\nSubnets can be configured with specific IP address ranges (IPv4 and IPv6), availability zones,\nand subnet types (e.g., public, private, isolated).",
6497
6807
  "stability": "experimental",
6498
6808
  "summary": "The SubnetV2 class represents a subnet within a VPC (Virtual Private Cloud) in AWS.",
6499
- "example": "const stack = new Stack();\nconst myVpc = new vpc_v2.VpcV2(this, 'Vpc');\nconst routeTable = new vpc_v2.RouteTable(this, 'RouteTable', {\n vpc: myVpc,\n});\nconst subnet = new vpc_v2.SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: ec2.SubnetType.PRIVATE_ISOLATED });\n\nconst igw = new vpc_v2.InternetGateway(this, 'IGW', {\n vpc: myVpc,\n});\nnew vpc_v2.Route(this, 'IgwRoute', {\n routeTable,\n destination: '0.0.0.0/0',\n target: { gateway: igw },\n});"
6809
+ "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});"
6500
6810
  },
6501
6811
  "fqn": "@aws-cdk/aws-ec2-alpha.SubnetV2",
6502
6812
  "initializer": {
@@ -6506,7 +6816,7 @@
6506
6816
  },
6507
6817
  "locationInModule": {
6508
6818
  "filename": "lib/subnet-v2.ts",
6509
- "line": 167
6819
+ "line": 174
6510
6820
  },
6511
6821
  "parameters": [
6512
6822
  {
@@ -6544,7 +6854,7 @@
6544
6854
  "kind": "class",
6545
6855
  "locationInModule": {
6546
6856
  "filename": "lib/subnet-v2.ts",
6547
- "line": 111
6857
+ "line": 121
6548
6858
  },
6549
6859
  "methods": [
6550
6860
  {
@@ -6554,7 +6864,7 @@
6554
6864
  },
6555
6865
  "locationInModule": {
6556
6866
  "filename": "lib/subnet-v2.ts",
6557
- "line": 243
6867
+ "line": 252
6558
6868
  },
6559
6869
  "name": "associateNetworkAcl",
6560
6870
  "overrides": "aws-cdk-lib.aws_ec2.ISubnet",
@@ -6591,7 +6901,7 @@
6591
6901
  "immutable": true,
6592
6902
  "locationInModule": {
6593
6903
  "filename": "lib/subnet-v2.ts",
6594
- "line": 116
6904
+ "line": 126
6595
6905
  },
6596
6906
  "name": "availabilityZone",
6597
6907
  "overrides": "aws-cdk-lib.aws_ec2.ISubnet",
@@ -6607,7 +6917,7 @@
6607
6917
  "immutable": true,
6608
6918
  "locationInModule": {
6609
6919
  "filename": "lib/subnet-v2.ts",
6610
- "line": 128
6920
+ "line": 138
6611
6921
  },
6612
6922
  "name": "internetConnectivityEstablished",
6613
6923
  "overrides": "aws-cdk-lib.aws_ec2.ISubnet",
@@ -6623,7 +6933,7 @@
6623
6933
  "immutable": true,
6624
6934
  "locationInModule": {
6625
6935
  "filename": "lib/subnet-v2.ts",
6626
- "line": 141
6936
+ "line": 151
6627
6937
  },
6628
6938
  "name": "ipv4CidrBlock",
6629
6939
  "overrides": "aws-cdk-lib.aws_ec2.ISubnet",
@@ -6639,7 +6949,7 @@
6639
6949
  "immutable": true,
6640
6950
  "locationInModule": {
6641
6951
  "filename": "lib/subnet-v2.ts",
6642
- "line": 257
6952
+ "line": 274
6643
6953
  },
6644
6954
  "name": "networkAcl",
6645
6955
  "type": {
@@ -6649,12 +6959,12 @@
6649
6959
  {
6650
6960
  "docs": {
6651
6961
  "stability": "experimental",
6652
- "summary": "The route table for this subnet."
6962
+ "summary": "Return the Route Table associated with this subnet."
6653
6963
  },
6654
6964
  "immutable": true,
6655
6965
  "locationInModule": {
6656
6966
  "filename": "lib/subnet-v2.ts",
6657
- "line": 151
6967
+ "line": 266
6658
6968
  },
6659
6969
  "name": "routeTable",
6660
6970
  "overrides": "aws-cdk-lib.aws_ec2.ISubnet",
@@ -6673,7 +6983,7 @@
6673
6983
  "immutable": true,
6674
6984
  "locationInModule": {
6675
6985
  "filename": "lib/subnet-v2.ts",
6676
- "line": 122
6986
+ "line": 132
6677
6987
  },
6678
6988
  "name": "subnetId",
6679
6989
  "overrides": "aws-cdk-lib.aws_ec2.ISubnet",
@@ -6683,37 +6993,39 @@
6683
6993
  },
6684
6994
  {
6685
6995
  "docs": {
6686
- "custom": {
6687
- "attribute": "SubnetType"
6688
- },
6689
6996
  "stability": "experimental",
6690
- "summary": "The type of subnet (public or private) that this subnet represents."
6997
+ "summary": "The IPv6 CIDR Block for this subnet."
6691
6998
  },
6692
6999
  "immutable": true,
6693
7000
  "locationInModule": {
6694
7001
  "filename": "lib/subnet-v2.ts",
6695
- "line": 157
7002
+ "line": 156
6696
7003
  },
6697
- "name": "subnetType",
7004
+ "name": "ipv6CidrBlock",
7005
+ "optional": true,
7006
+ "overrides": "@aws-cdk/aws-ec2-alpha.ISubnetV2",
6698
7007
  "type": {
6699
- "fqn": "aws-cdk-lib.aws_ec2.SubnetType"
7008
+ "primitive": "string"
6700
7009
  }
6701
7010
  },
6702
7011
  {
6703
7012
  "docs": {
7013
+ "custom": {
7014
+ "attribute": "SubnetType"
7015
+ },
6704
7016
  "stability": "experimental",
6705
- "summary": "The IPv6 CIDR Block for this subnet."
7017
+ "summary": "The type of subnet (public or private) that this subnet represents."
6706
7018
  },
6707
7019
  "immutable": true,
6708
7020
  "locationInModule": {
6709
7021
  "filename": "lib/subnet-v2.ts",
6710
- "line": 146
7022
+ "line": 162
6711
7023
  },
6712
- "name": "ipv6CidrBlock",
7024
+ "name": "subnetType",
6713
7025
  "optional": true,
6714
7026
  "overrides": "@aws-cdk/aws-ec2-alpha.ISubnetV2",
6715
7027
  "type": {
6716
- "primitive": "string"
7028
+ "fqn": "aws-cdk-lib.aws_ec2.SubnetType"
6717
7029
  }
6718
7030
  }
6719
7031
  ],
@@ -6725,7 +7037,7 @@
6725
7037
  "docs": {
6726
7038
  "stability": "experimental",
6727
7039
  "summary": "Properties to define subnet for VPC.",
6728
- "example": "const stack = new Stack();\nconst myVpc = new vpc_v2.VpcV2(this, 'Vpc');\nconst routeTable = new vpc_v2.RouteTable(this, 'RouteTable', {\n vpc: myVpc,\n});\nconst subnet = new vpc_v2.SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: ec2.SubnetType.PRIVATE_ISOLATED });\n\nconst igw = new vpc_v2.InternetGateway(this, 'IGW', {\n vpc: myVpc,\n});\nnew vpc_v2.Route(this, 'IgwRoute', {\n routeTable,\n destination: '0.0.0.0/0',\n target: { gateway: igw },\n});",
7040
+ "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});",
6729
7041
  "custom": {
6730
7042
  "exampleMetadata": "infused"
6731
7043
  }
@@ -6734,7 +7046,7 @@
6734
7046
  "kind": "interface",
6735
7047
  "locationInModule": {
6736
7048
  "filename": "lib/subnet-v2.ts",
6737
- "line": 32
7049
+ "line": 33
6738
7050
  },
6739
7051
  "name": "SubnetV2Props",
6740
7052
  "properties": [
@@ -6747,7 +7059,7 @@
6747
7059
  "immutable": true,
6748
7060
  "locationInModule": {
6749
7061
  "filename": "lib/subnet-v2.ts",
6750
- "line": 53
7062
+ "line": 55
6751
7063
  },
6752
7064
  "name": "availabilityZone",
6753
7065
  "type": {
@@ -6764,7 +7076,7 @@
6764
7076
  "immutable": true,
6765
7077
  "locationInModule": {
6766
7078
  "filename": "lib/subnet-v2.ts",
6767
- "line": 42
7079
+ "line": 43
6768
7080
  },
6769
7081
  "name": "ipv4CidrBlock",
6770
7082
  "type": {
@@ -6781,7 +7093,7 @@
6781
7093
  "immutable": true,
6782
7094
  "locationInModule": {
6783
7095
  "filename": "lib/subnet-v2.ts",
6784
- "line": 69
7096
+ "line": 72
6785
7097
  },
6786
7098
  "name": "subnetType",
6787
7099
  "type": {
@@ -6797,7 +7109,7 @@
6797
7109
  "immutable": true,
6798
7110
  "locationInModule": {
6799
7111
  "filename": "lib/subnet-v2.ts",
6800
- "line": 36
7112
+ "line": 37
6801
7113
  },
6802
7114
  "name": "vpc",
6803
7115
  "type": {
@@ -6807,7 +7119,7 @@
6807
7119
  {
6808
7120
  "abstract": true,
6809
7121
  "docs": {
6810
- "default": "false",
7122
+ "default": "- undefined in case not provided as an input",
6811
7123
  "remarks": "If you specify AssignIpv6AddressOnCreation, you must also specify Ipv6CidrBlock.",
6812
7124
  "stability": "experimental",
6813
7125
  "summary": "Indicates whether a network interface created in this subnet receives an IPv6 address."
@@ -6815,7 +7127,7 @@
6815
7127
  "immutable": true,
6816
7128
  "locationInModule": {
6817
7129
  "filename": "lib/subnet-v2.ts",
6818
- "line": 84
7130
+ "line": 87
6819
7131
  },
6820
7132
  "name": "assignIpv6AddressOnCreation",
6821
7133
  "optional": true,
@@ -6826,14 +7138,14 @@
6826
7138
  {
6827
7139
  "abstract": true,
6828
7140
  "docs": {
6829
- "default": "No Ipv6 address",
7141
+ "default": "- No Ipv6 address",
6830
7142
  "stability": "experimental",
6831
7143
  "summary": "Ipv6 CIDR Range for subnet."
6832
7144
  },
6833
7145
  "immutable": true,
6834
7146
  "locationInModule": {
6835
7147
  "filename": "lib/subnet-v2.ts",
6836
- "line": 48
7148
+ "line": 50
6837
7149
  },
6838
7150
  "name": "ipv6CidrBlock",
6839
7151
  "optional": true,
@@ -6844,14 +7156,14 @@
6844
7156
  {
6845
7157
  "abstract": true,
6846
7158
  "docs": {
6847
- "default": "Default route table",
7159
+ "default": "- a default route table created",
6848
7160
  "stability": "experimental",
6849
7161
  "summary": "Custom Route for subnet."
6850
7162
  },
6851
7163
  "immutable": true,
6852
7164
  "locationInModule": {
6853
7165
  "filename": "lib/subnet-v2.ts",
6854
- "line": 59
7166
+ "line": 62
6855
7167
  },
6856
7168
  "name": "routeTable",
6857
7169
  "optional": true,
@@ -6862,14 +7174,14 @@
6862
7174
  {
6863
7175
  "abstract": true,
6864
7176
  "docs": {
6865
- "default": "none",
7177
+ "default": "- provisioned with an autogenerated name by CDK",
6866
7178
  "stability": "experimental",
6867
7179
  "summary": "Subnet name."
6868
7180
  },
6869
7181
  "immutable": true,
6870
7182
  "locationInModule": {
6871
7183
  "filename": "lib/subnet-v2.ts",
6872
- "line": 75
7184
+ "line": 79
6873
7185
  },
6874
7186
  "name": "subnetName",
6875
7187
  "optional": true,
@@ -6880,26 +7192,26 @@
6880
7192
  ],
6881
7193
  "symbolId": "lib/subnet-v2:SubnetV2Props"
6882
7194
  },
6883
- "@aws-cdk/aws-ec2-alpha.VPNGateway": {
7195
+ "@aws-cdk/aws-ec2-alpha.VPNGatewayV2": {
6884
7196
  "assembly": "@aws-cdk/aws-ec2-alpha",
6885
7197
  "base": "aws-cdk-lib.Resource",
6886
7198
  "docs": {
6887
7199
  "custom": {
6888
7200
  "resource": "AWS::EC2::VPNGateway",
6889
- "exampleMetadata": "fixture=_generated"
7201
+ "exampleMetadata": "infused"
6890
7202
  },
6891
7203
  "stability": "experimental",
6892
7204
  "summary": "Creates a virtual private gateway.",
6893
- "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 { aws_ec2 as ec2 } from 'aws-cdk-lib';\n\ndeclare const vpcV2: ec2_alpha.VpcV2;\nconst vPNGateway = new ec2_alpha.VPNGateway(this, 'MyVPNGateway', {\n type: ec2.VpnConnectionType.IPSEC_1,\n vpc: vpcV2,\n\n // the properties below are optional\n amazonSideAsn: 123,\n vpnGatewayName: 'vpnGatewayName',\n});"
7205
+ "example": "\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});"
6894
7206
  },
6895
- "fqn": "@aws-cdk/aws-ec2-alpha.VPNGateway",
7207
+ "fqn": "@aws-cdk/aws-ec2-alpha.VPNGatewayV2",
6896
7208
  "initializer": {
6897
7209
  "docs": {
6898
7210
  "stability": "experimental"
6899
7211
  },
6900
7212
  "locationInModule": {
6901
7213
  "filename": "lib/route.ts",
6902
- "line": 277
7214
+ "line": 290
6903
7215
  },
6904
7216
  "parameters": [
6905
7217
  {
@@ -6917,7 +7229,7 @@
6917
7229
  {
6918
7230
  "name": "props",
6919
7231
  "type": {
6920
- "fqn": "@aws-cdk/aws-ec2-alpha.VPNGatewayProps"
7232
+ "fqn": "@aws-cdk/aws-ec2-alpha.VPNGatewayV2Props"
6921
7233
  }
6922
7234
  }
6923
7235
  ]
@@ -6928,9 +7240,9 @@
6928
7240
  "kind": "class",
6929
7241
  "locationInModule": {
6930
7242
  "filename": "lib/route.ts",
6931
- "line": 256
7243
+ "line": 259
6932
7244
  },
6933
- "name": "VPNGateway",
7245
+ "name": "VPNGatewayV2",
6934
7246
  "properties": [
6935
7247
  {
6936
7248
  "docs": {
@@ -6940,7 +7252,7 @@
6940
7252
  "immutable": true,
6941
7253
  "locationInModule": {
6942
7254
  "filename": "lib/route.ts",
6943
- "line": 275
7255
+ "line": 278
6944
7256
  },
6945
7257
  "name": "resource",
6946
7258
  "type": {
@@ -6955,7 +7267,7 @@
6955
7267
  "immutable": true,
6956
7268
  "locationInModule": {
6957
7269
  "filename": "lib/route.ts",
6958
- "line": 265
7270
+ "line": 268
6959
7271
  },
6960
7272
  "name": "routerTargetId",
6961
7273
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteTarget",
@@ -6971,7 +7283,7 @@
6971
7283
  "immutable": true,
6972
7284
  "locationInModule": {
6973
7285
  "filename": "lib/route.ts",
6974
- "line": 260
7286
+ "line": 263
6975
7287
  },
6976
7288
  "name": "routerType",
6977
7289
  "overrides": "@aws-cdk/aws-ec2-alpha.IRouteTarget",
@@ -6987,7 +7299,7 @@
6987
7299
  "immutable": true,
6988
7300
  "locationInModule": {
6989
7301
  "filename": "lib/route.ts",
6990
- "line": 270
7302
+ "line": 273
6991
7303
  },
6992
7304
  "name": "vpcId",
6993
7305
  "type": {
@@ -6995,26 +7307,26 @@
6995
7307
  }
6996
7308
  }
6997
7309
  ],
6998
- "symbolId": "lib/route:VPNGateway"
7310
+ "symbolId": "lib/route:VPNGatewayV2"
6999
7311
  },
7000
- "@aws-cdk/aws-ec2-alpha.VPNGatewayProps": {
7312
+ "@aws-cdk/aws-ec2-alpha.VPNGatewayV2Options": {
7001
7313
  "assembly": "@aws-cdk/aws-ec2-alpha",
7002
7314
  "datatype": true,
7003
7315
  "docs": {
7004
7316
  "stability": "experimental",
7005
- "summary": "Properties to define a VPN gateway.",
7006
- "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 { aws_ec2 as ec2 } from 'aws-cdk-lib';\n\ndeclare const vpcV2: ec2_alpha.VpcV2;\nconst vPNGatewayProps: ec2_alpha.VPNGatewayProps = {\n type: ec2.VpnConnectionType.IPSEC_1,\n vpc: vpcV2,\n\n // the properties below are optional\n amazonSideAsn: 123,\n vpnGatewayName: 'vpnGatewayName',\n};",
7317
+ "summary": "Options to define VPNGatewayV2 for VPC.",
7318
+ "example": "\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});",
7007
7319
  "custom": {
7008
- "exampleMetadata": "fixture=_generated"
7320
+ "exampleMetadata": "infused"
7009
7321
  }
7010
7322
  },
7011
- "fqn": "@aws-cdk/aws-ec2-alpha.VPNGatewayProps",
7323
+ "fqn": "@aws-cdk/aws-ec2-alpha.VPNGatewayV2Options",
7012
7324
  "kind": "interface",
7013
7325
  "locationInModule": {
7014
- "filename": "lib/route.ts",
7015
- "line": 74
7326
+ "filename": "lib/vpc-v2-base.ts",
7327
+ "line": 50
7016
7328
  },
7017
- "name": "VPNGatewayProps",
7329
+ "name": "VPNGatewayV2Options",
7018
7330
  "properties": [
7019
7331
  {
7020
7332
  "abstract": true,
@@ -7025,8 +7337,8 @@
7025
7337
  },
7026
7338
  "immutable": true,
7027
7339
  "locationInModule": {
7028
- "filename": "lib/route.ts",
7029
- "line": 79
7340
+ "filename": "lib/vpc-v2-base.ts",
7341
+ "line": 55
7030
7342
  },
7031
7343
  "name": "type",
7032
7344
  "type": {
@@ -7036,57 +7348,105 @@
7036
7348
  {
7037
7349
  "abstract": true,
7038
7350
  "docs": {
7351
+ "default": "- no ASN set for BGP session",
7039
7352
  "stability": "experimental",
7040
- "summary": "The ID of the VPC for which to create the VPN gateway."
7353
+ "summary": "The private Autonomous System Number (ASN) for the Amazon side of a BGP session."
7041
7354
  },
7042
7355
  "immutable": true,
7043
7356
  "locationInModule": {
7044
- "filename": "lib/route.ts",
7045
- "line": 84
7357
+ "filename": "lib/vpc-v2-base.ts",
7358
+ "line": 62
7046
7359
  },
7047
- "name": "vpc",
7360
+ "name": "amazonSideAsn",
7361
+ "optional": true,
7048
7362
  "type": {
7049
- "fqn": "@aws-cdk/aws-ec2-alpha.IVpcV2"
7363
+ "primitive": "number"
7050
7364
  }
7051
7365
  },
7052
7366
  {
7053
7367
  "abstract": true,
7054
7368
  "docs": {
7055
- "default": "none",
7369
+ "default": "- resource provisioned without any name",
7056
7370
  "stability": "experimental",
7057
- "summary": "The private Autonomous System Number (ASN) for the Amazon side of a BGP session."
7371
+ "summary": "The resource name of the VPN gateway."
7058
7372
  },
7059
7373
  "immutable": true,
7060
7374
  "locationInModule": {
7061
- "filename": "lib/route.ts",
7062
- "line": 90
7375
+ "filename": "lib/vpc-v2-base.ts",
7376
+ "line": 69
7063
7377
  },
7064
- "name": "amazonSideAsn",
7378
+ "name": "vpnGatewayName",
7065
7379
  "optional": true,
7066
7380
  "type": {
7067
- "primitive": "number"
7381
+ "primitive": "string"
7068
7382
  }
7069
7383
  },
7070
7384
  {
7071
7385
  "abstract": true,
7072
7386
  "docs": {
7073
- "default": "none",
7387
+ "default": "- no propogation for routes",
7074
7388
  "stability": "experimental",
7075
- "summary": "The resource name of the VPN gateway."
7389
+ "summary": "Subnets where the route propagation should be added."
7076
7390
  },
7077
7391
  "immutable": true,
7078
7392
  "locationInModule": {
7079
- "filename": "lib/route.ts",
7080
- "line": 96
7393
+ "filename": "lib/vpc-v2-base.ts",
7394
+ "line": 76
7081
7395
  },
7082
- "name": "vpnGatewayName",
7396
+ "name": "vpnRoutePropagation",
7083
7397
  "optional": true,
7084
7398
  "type": {
7085
- "primitive": "string"
7399
+ "collection": {
7400
+ "elementtype": {
7401
+ "fqn": "aws-cdk-lib.aws_ec2.SubnetSelection"
7402
+ },
7403
+ "kind": "array"
7404
+ }
7405
+ }
7406
+ }
7407
+ ],
7408
+ "symbolId": "lib/vpc-v2-base:VPNGatewayV2Options"
7409
+ },
7410
+ "@aws-cdk/aws-ec2-alpha.VPNGatewayV2Props": {
7411
+ "assembly": "@aws-cdk/aws-ec2-alpha",
7412
+ "datatype": true,
7413
+ "docs": {
7414
+ "stability": "experimental",
7415
+ "summary": "Properties to define a VPN gateway.",
7416
+ "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 { aws_ec2 as ec2 } from 'aws-cdk-lib';\n\ndeclare const subnet: ec2.Subnet;\ndeclare const subnetFilter: ec2.SubnetFilter;\ndeclare const vpcV2: ec2_alpha.VpcV2;\nconst vPNGatewayV2Props: ec2_alpha.VPNGatewayV2Props = {\n type: ec2.VpnConnectionType.IPSEC_1,\n vpc: vpcV2,\n\n // the properties below are optional\n amazonSideAsn: 123,\n vpnGatewayName: 'vpnGatewayName',\n vpnRoutePropagation: [{\n availabilityZones: ['availabilityZones'],\n onePerAz: false,\n subnetFilters: [subnetFilter],\n subnetGroupName: 'subnetGroupName',\n subnets: [subnet],\n subnetType: ec2.SubnetType.PRIVATE_ISOLATED,\n }],\n};",
7417
+ "custom": {
7418
+ "exampleMetadata": "fixture=_generated"
7419
+ }
7420
+ },
7421
+ "fqn": "@aws-cdk/aws-ec2-alpha.VPNGatewayV2Props",
7422
+ "interfaces": [
7423
+ "@aws-cdk/aws-ec2-alpha.VPNGatewayV2Options"
7424
+ ],
7425
+ "kind": "interface",
7426
+ "locationInModule": {
7427
+ "filename": "lib/route.ts",
7428
+ "line": 78
7429
+ },
7430
+ "name": "VPNGatewayV2Props",
7431
+ "properties": [
7432
+ {
7433
+ "abstract": true,
7434
+ "docs": {
7435
+ "stability": "experimental",
7436
+ "summary": "The ID of the VPC for which to create the VPN gateway."
7437
+ },
7438
+ "immutable": true,
7439
+ "locationInModule": {
7440
+ "filename": "lib/route.ts",
7441
+ "line": 83
7442
+ },
7443
+ "name": "vpc",
7444
+ "type": {
7445
+ "fqn": "@aws-cdk/aws-ec2-alpha.IVpcV2"
7086
7446
  }
7087
7447
  }
7088
7448
  ],
7089
- "symbolId": "lib/route:VPNGatewayProps"
7449
+ "symbolId": "lib/route:VPNGatewayV2Props"
7090
7450
  },
7091
7451
  "@aws-cdk/aws-ec2-alpha.VpcCidrOptions": {
7092
7452
  "assembly": "@aws-cdk/aws-ec2-alpha",
@@ -7094,7 +7454,7 @@
7094
7454
  "docs": {
7095
7455
  "stability": "experimental",
7096
7456
  "summary": "Consolidated return parameters to pass to VPC construct.",
7097
- "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 ipv4NetmaskLength: 123,\n ipv6CidrBlock: 'ipv6CidrBlock',\n ipv6IpamPool: ipamPool,\n ipv6NetmaskLength: 123,\n};",
7457
+ "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 ipv4NetmaskLength: 123,\n ipv6IpamPool: ipamPool,\n ipv6NetmaskLength: 123,\n};",
7098
7458
  "custom": {
7099
7459
  "exampleMetadata": "fixture=_generated"
7100
7460
  }
@@ -7117,7 +7477,7 @@
7117
7477
  "immutable": true,
7118
7478
  "locationInModule": {
7119
7479
  "filename": "lib/vpc-v2.ts",
7120
- "line": 102
7480
+ "line": 98
7121
7481
  },
7122
7482
  "name": "amazonProvided",
7123
7483
  "optional": true,
@@ -7128,14 +7488,14 @@
7128
7488
  {
7129
7489
  "abstract": true,
7130
7490
  "docs": {
7131
- "default": ": no name for primary addresses",
7491
+ "default": "- no name for primary addresses",
7132
7492
  "stability": "experimental",
7133
7493
  "summary": "Required to set Secondary cidr block resource name in order to generate unique logical id for the resource."
7134
7494
  },
7135
7495
  "immutable": true,
7136
7496
  "locationInModule": {
7137
7497
  "filename": "lib/vpc-v2.ts",
7138
- "line": 115
7498
+ "line": 113
7139
7499
  },
7140
7500
  "name": "cidrBlockName",
7141
7501
  "optional": true,
@@ -7153,7 +7513,7 @@
7153
7513
  "immutable": true,
7154
7514
  "locationInModule": {
7155
7515
  "filename": "lib/vpc-v2.ts",
7156
- "line": 108
7516
+ "line": 105
7157
7517
  },
7158
7518
  "name": "dependencies",
7159
7519
  "optional": true,
@@ -7169,14 +7529,14 @@
7169
7529
  {
7170
7530
  "abstract": true,
7171
7531
  "docs": {
7172
- "default": "- '10.0.0.0/16'",
7532
+ "default": "'10.0.0.0/16'",
7173
7533
  "stability": "experimental",
7174
7534
  "summary": "IPv4 CIDR Block."
7175
7535
  },
7176
7536
  "immutable": true,
7177
7537
  "locationInModule": {
7178
7538
  "filename": "lib/vpc-v2.ts",
7179
- "line": 61
7539
+ "line": 62
7180
7540
  },
7181
7541
  "name": "ipv4CidrBlock",
7182
7542
  "optional": true,
@@ -7194,7 +7554,7 @@
7194
7554
  "immutable": true,
7195
7555
  "locationInModule": {
7196
7556
  "filename": "lib/vpc-v2.ts",
7197
- "line": 75
7557
+ "line": 76
7198
7558
  },
7199
7559
  "name": "ipv4IpamPool",
7200
7560
  "optional": true,
@@ -7212,7 +7572,7 @@
7212
7572
  "immutable": true,
7213
7573
  "locationInModule": {
7214
7574
  "filename": "lib/vpc-v2.ts",
7215
- "line": 68
7575
+ "line": 69
7216
7576
  },
7217
7577
  "name": "ipv4NetmaskLength",
7218
7578
  "optional": true,
@@ -7220,24 +7580,6 @@
7220
7580
  "primitive": "number"
7221
7581
  }
7222
7582
  },
7223
- {
7224
- "abstract": true,
7225
- "docs": {
7226
- "default": "- No ipv6 address",
7227
- "stability": "experimental",
7228
- "summary": "Implementing Ipv6."
7229
- },
7230
- "immutable": true,
7231
- "locationInModule": {
7232
- "filename": "lib/vpc-v2.ts",
7233
- "line": 81
7234
- },
7235
- "name": "ipv6CidrBlock",
7236
- "optional": true,
7237
- "type": {
7238
- "primitive": "string"
7239
- }
7240
- },
7241
7583
  {
7242
7584
  "abstract": true,
7243
7585
  "docs": {
@@ -7248,7 +7590,7 @@
7248
7590
  "immutable": true,
7249
7591
  "locationInModule": {
7250
7592
  "filename": "lib/vpc-v2.ts",
7251
- "line": 96
7593
+ "line": 91
7252
7594
  },
7253
7595
  "name": "ipv6IpamPool",
7254
7596
  "optional": true,
@@ -7266,7 +7608,7 @@
7266
7608
  "immutable": true,
7267
7609
  "locationInModule": {
7268
7610
  "filename": "lib/vpc-v2.ts",
7269
- "line": 88
7611
+ "line": 83
7270
7612
  },
7271
7613
  "name": "ipv6NetmaskLength",
7272
7614
  "optional": true,
@@ -7288,7 +7630,7 @@
7288
7630
  "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}.",
7289
7631
  "stability": "experimental",
7290
7632
  "summary": "This class provides a foundation for creating and configuring a VPC with advanced features such as IPAM (IP Address Management) and IPv6 support.",
7291
- "example": "\nconst myVpc = new vpc_v2.VpcV2(this, 'Vpc');\nconst routeTable = new vpc_v2.RouteTable(this, 'RouteTable', {\n vpc: myVpc,\n});\nconst subnet = new vpc_v2.SubnetV2(this, 'Subnet', {\n vpc: myVpc,\n availabilityZone: 'eu-west-2a',\n ipv4CidrBlock: new IpCidr('10.0.0.0/24'),\n subnetType: ec2.SubnetType.PRIVATE });\n\nconst dynamoEndpoint = new ec2.GatewayVpcEndpoint(this, 'DynamoEndpoint', {\n service: ec2.GatewayVpcEndpointAwsService.DYNAMODB,\n vpc: myVpc,\n subnets: [subnet],\n});\nnew vpc_v2.Route(this, 'DynamoDBRoute', {\n routeTable,\n destination: '0.0.0.0/0',\n target: { endpoint: dynamoEndpoint },\n});"
7633
+ "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});"
7292
7634
  },
7293
7635
  "fqn": "@aws-cdk/aws-ec2-alpha.VpcV2",
7294
7636
  "initializer": {
@@ -7297,7 +7639,7 @@
7297
7639
  },
7298
7640
  "locationInModule": {
7299
7641
  "filename": "lib/vpc-v2.ts",
7300
- "line": 272
7642
+ "line": 271
7301
7643
  },
7302
7644
  "parameters": [
7303
7645
  {
@@ -7324,7 +7666,7 @@
7324
7666
  "kind": "class",
7325
7667
  "locationInModule": {
7326
7668
  "filename": "lib/vpc-v2.ts",
7327
- "line": 189
7669
+ "line": 192
7328
7670
  },
7329
7671
  "name": "VpcV2",
7330
7672
  "properties": [
@@ -7336,7 +7678,7 @@
7336
7678
  "immutable": true,
7337
7679
  "locationInModule": {
7338
7680
  "filename": "lib/vpc-v2.ts",
7339
- "line": 225
7681
+ "line": 228
7340
7682
  },
7341
7683
  "name": "dnsHostnamesEnabled",
7342
7684
  "type": {
@@ -7351,7 +7693,7 @@
7351
7693
  "immutable": true,
7352
7694
  "locationInModule": {
7353
7695
  "filename": "lib/vpc-v2.ts",
7354
- "line": 230
7696
+ "line": 233
7355
7697
  },
7356
7698
  "name": "dnsSupportEnabled",
7357
7699
  "type": {
@@ -7366,7 +7708,7 @@
7366
7708
  "immutable": true,
7367
7709
  "locationInModule": {
7368
7710
  "filename": "lib/vpc-v2.ts",
7369
- "line": 250
7711
+ "line": 253
7370
7712
  },
7371
7713
  "name": "internetConnectivityEstablished",
7372
7714
  "overrides": "@aws-cdk/aws-ec2-alpha.VpcV2Base",
@@ -7382,7 +7724,7 @@
7382
7724
  "immutable": true,
7383
7725
  "locationInModule": {
7384
7726
  "filename": "lib/vpc-v2.ts",
7385
- "line": 215
7727
+ "line": 218
7386
7728
  },
7387
7729
  "name": "ipAddresses",
7388
7730
  "type": {
@@ -7398,7 +7740,7 @@
7398
7740
  "immutable": true,
7399
7741
  "locationInModule": {
7400
7742
  "filename": "lib/vpc-v2.ts",
7401
- "line": 270
7743
+ "line": 269
7402
7744
  },
7403
7745
  "name": "ipv4CidrBlock",
7404
7746
  "overrides": "@aws-cdk/aws-ec2-alpha.VpcV2Base",
@@ -7415,7 +7757,7 @@
7415
7757
  "immutable": true,
7416
7758
  "locationInModule": {
7417
7759
  "filename": "lib/vpc-v2.ts",
7418
- "line": 210
7760
+ "line": 213
7419
7761
  },
7420
7762
  "name": "ipv6CidrBlocks",
7421
7763
  "type": {
@@ -7435,7 +7777,7 @@
7435
7777
  "immutable": true,
7436
7778
  "locationInModule": {
7437
7779
  "filename": "lib/vpc-v2.ts",
7438
- "line": 235
7780
+ "line": 238
7439
7781
  },
7440
7782
  "name": "isolatedSubnets",
7441
7783
  "overrides": "@aws-cdk/aws-ec2-alpha.VpcV2Base",
@@ -7456,7 +7798,7 @@
7456
7798
  "immutable": true,
7457
7799
  "locationInModule": {
7458
7800
  "filename": "lib/vpc-v2.ts",
7459
- "line": 245
7801
+ "line": 248
7460
7802
  },
7461
7803
  "name": "privateSubnets",
7462
7804
  "overrides": "@aws-cdk/aws-ec2-alpha.VpcV2Base",
@@ -7477,7 +7819,7 @@
7477
7819
  "immutable": true,
7478
7820
  "locationInModule": {
7479
7821
  "filename": "lib/vpc-v2.ts",
7480
- "line": 240
7822
+ "line": 243
7481
7823
  },
7482
7824
  "name": "publicSubnets",
7483
7825
  "overrides": "@aws-cdk/aws-ec2-alpha.VpcV2Base",
@@ -7498,7 +7840,7 @@
7498
7840
  "immutable": true,
7499
7841
  "locationInModule": {
7500
7842
  "filename": "lib/vpc-v2.ts",
7501
- "line": 220
7843
+ "line": 223
7502
7844
  },
7503
7845
  "name": "resource",
7504
7846
  "type": {
@@ -7513,7 +7855,7 @@
7513
7855
  "immutable": true,
7514
7856
  "locationInModule": {
7515
7857
  "filename": "lib/vpc-v2.ts",
7516
- "line": 260
7858
+ "line": 258
7517
7859
  },
7518
7860
  "name": "secondaryCidrBlock",
7519
7861
  "overrides": "@aws-cdk/aws-ec2-alpha.VpcV2Base",
@@ -7530,12 +7872,12 @@
7530
7872
  "docs": {
7531
7873
  "default": "false",
7532
7874
  "stability": "experimental",
7533
- "summary": "For validation to define IPv6 subnets, set to true in case of Amazon Provided IPv6 cidr range IPv6 addresses can be attached to the subnets."
7875
+ "summary": "For validation to define IPv6 subnets, set to true in case of Amazon Provided IPv6 cidr range if true, IPv6 addresses can be attached to the subnets."
7534
7876
  },
7535
7877
  "immutable": true,
7536
7878
  "locationInModule": {
7537
7879
  "filename": "lib/vpc-v2.ts",
7538
- "line": 268
7880
+ "line": 267
7539
7881
  },
7540
7882
  "name": "useIpv6",
7541
7883
  "type": {
@@ -7553,7 +7895,7 @@
7553
7895
  "immutable": true,
7554
7896
  "locationInModule": {
7555
7897
  "filename": "lib/vpc-v2.ts",
7556
- "line": 199
7898
+ "line": 202
7557
7899
  },
7558
7900
  "name": "vpcArn",
7559
7901
  "overrides": "@aws-cdk/aws-ec2-alpha.VpcV2Base",
@@ -7572,7 +7914,7 @@
7572
7914
  "immutable": true,
7573
7915
  "locationInModule": {
7574
7916
  "filename": "lib/vpc-v2.ts",
7575
- "line": 204
7917
+ "line": 207
7576
7918
  },
7577
7919
  "name": "vpcCidrBlock",
7578
7920
  "overrides": "@aws-cdk/aws-ec2-alpha.VpcV2Base",
@@ -7588,7 +7930,7 @@
7588
7930
  "immutable": true,
7589
7931
  "locationInModule": {
7590
7932
  "filename": "lib/vpc-v2.ts",
7591
- "line": 194
7933
+ "line": 197
7592
7934
  },
7593
7935
  "name": "vpcId",
7594
7936
  "overrides": "@aws-cdk/aws-ec2-alpha.VpcV2Base",
@@ -7645,7 +7987,7 @@
7645
7987
  "kind": "class",
7646
7988
  "locationInModule": {
7647
7989
  "filename": "lib/vpc-v2-base.ts",
7648
- "line": 33
7990
+ "line": 138
7649
7991
  },
7650
7992
  "methods": [
7651
7993
  {
@@ -7655,7 +7997,7 @@
7655
7997
  },
7656
7998
  "locationInModule": {
7657
7999
  "filename": "lib/vpc-v2-base.ts",
7658
- "line": 172
8000
+ "line": 309
7659
8001
  },
7660
8002
  "name": "addClientVpnEndpoint",
7661
8003
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -7679,6 +8021,28 @@
7679
8021
  }
7680
8022
  }
7681
8023
  },
8024
+ {
8025
+ "docs": {
8026
+ "default": "- in case of no input subnets, no route is created",
8027
+ "stability": "experimental",
8028
+ "summary": "Adds a new Egress Only Internet Gateway to this VPC and defines a new route to the route table of given subnets."
8029
+ },
8030
+ "locationInModule": {
8031
+ "filename": "lib/vpc-v2-base.ts",
8032
+ "line": 342
8033
+ },
8034
+ "name": "addEgressOnlyInternetGateway",
8035
+ "overrides": "@aws-cdk/aws-ec2-alpha.IVpcV2",
8036
+ "parameters": [
8037
+ {
8038
+ "name": "options",
8039
+ "optional": true,
8040
+ "type": {
8041
+ "fqn": "@aws-cdk/aws-ec2-alpha.EgressOnlyInternetGatewayOptions"
8042
+ }
8043
+ }
8044
+ ]
8045
+ },
7682
8046
  {
7683
8047
  "docs": {
7684
8048
  "stability": "experimental",
@@ -7686,7 +8050,7 @@
7686
8050
  },
7687
8051
  "locationInModule": {
7688
8052
  "filename": "lib/vpc-v2-base.ts",
7689
- "line": 202
8053
+ "line": 441
7690
8054
  },
7691
8055
  "name": "addFlowLog",
7692
8056
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -7718,7 +8082,7 @@
7718
8082
  },
7719
8083
  "locationInModule": {
7720
8084
  "filename": "lib/vpc-v2-base.ts",
7721
- "line": 192
8085
+ "line": 329
7722
8086
  },
7723
8087
  "name": "addGatewayEndpoint",
7724
8088
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -7749,7 +8113,7 @@
7749
8113
  },
7750
8114
  "locationInModule": {
7751
8115
  "filename": "lib/vpc-v2-base.ts",
7752
- "line": 182
8116
+ "line": 319
7753
8117
  },
7754
8118
  "name": "addInterfaceEndpoint",
7755
8119
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -7773,6 +8137,53 @@
7773
8137
  }
7774
8138
  }
7775
8139
  },
8140
+ {
8141
+ "docs": {
8142
+ "default": "- creates a new route for public subnets(with all outbound access) to the Internet Gateway.",
8143
+ "stability": "experimental",
8144
+ "summary": "Adds a new Internet Gateway to this VPC."
8145
+ },
8146
+ "locationInModule": {
8147
+ "filename": "lib/vpc-v2-base.ts",
8148
+ "line": 380
8149
+ },
8150
+ "name": "addInternetGateway",
8151
+ "overrides": "@aws-cdk/aws-ec2-alpha.IVpcV2",
8152
+ "parameters": [
8153
+ {
8154
+ "name": "options",
8155
+ "optional": true,
8156
+ "type": {
8157
+ "fqn": "@aws-cdk/aws-ec2-alpha.InternetGatewayOptions"
8158
+ }
8159
+ }
8160
+ ]
8161
+ },
8162
+ {
8163
+ "docs": {
8164
+ "stability": "experimental",
8165
+ "summary": "Adds a new NAT Gateway to the given subnet of this VPC of given subnets."
8166
+ },
8167
+ "locationInModule": {
8168
+ "filename": "lib/vpc-v2-base.ts",
8169
+ "line": 428
8170
+ },
8171
+ "name": "addNatGateway",
8172
+ "overrides": "@aws-cdk/aws-ec2-alpha.IVpcV2",
8173
+ "parameters": [
8174
+ {
8175
+ "name": "options",
8176
+ "type": {
8177
+ "fqn": "@aws-cdk/aws-ec2-alpha.NatGatewayOptions"
8178
+ }
8179
+ }
8180
+ ],
8181
+ "returns": {
8182
+ "type": {
8183
+ "fqn": "@aws-cdk/aws-ec2-alpha.NatGateway"
8184
+ }
8185
+ }
8186
+ },
7776
8187
  {
7777
8188
  "docs": {
7778
8189
  "stability": "experimental",
@@ -7780,7 +8191,7 @@
7780
8191
  },
7781
8192
  "locationInModule": {
7782
8193
  "filename": "lib/vpc-v2-base.ts",
7783
- "line": 162
8194
+ "line": 299
7784
8195
  },
7785
8196
  "name": "addVpnConnection",
7786
8197
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -7806,12 +8217,13 @@
7806
8217
  },
7807
8218
  {
7808
8219
  "docs": {
7809
- "stability": "experimental",
8220
+ "deprecated": "use enableVpnGatewayV2 for compatibility with VPCV2.Route",
8221
+ "stability": "deprecated",
7810
8222
  "summary": "Adds a VPN Gateway to this VPC."
7811
8223
  },
7812
8224
  "locationInModule": {
7813
8225
  "filename": "lib/vpc-v2-base.ts",
7814
- "line": 124
8226
+ "line": 242
7815
8227
  },
7816
8228
  "name": "enableVpnGateway",
7817
8229
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -7824,6 +8236,31 @@
7824
8236
  }
7825
8237
  ]
7826
8238
  },
8239
+ {
8240
+ "docs": {
8241
+ "stability": "experimental",
8242
+ "summary": "Adds VPNGAtewayV2 to this VPC."
8243
+ },
8244
+ "locationInModule": {
8245
+ "filename": "lib/vpc-v2-base.ts",
8246
+ "line": 280
8247
+ },
8248
+ "name": "enableVpnGatewayV2",
8249
+ "overrides": "@aws-cdk/aws-ec2-alpha.IVpcV2",
8250
+ "parameters": [
8251
+ {
8252
+ "name": "options",
8253
+ "type": {
8254
+ "fqn": "@aws-cdk/aws-ec2-alpha.VPNGatewayV2Options"
8255
+ }
8256
+ }
8257
+ ],
8258
+ "returns": {
8259
+ "type": {
8260
+ "fqn": "@aws-cdk/aws-ec2-alpha.VPNGatewayV2"
8261
+ }
8262
+ }
8263
+ },
7827
8264
  {
7828
8265
  "docs": {
7829
8266
  "stability": "experimental",
@@ -7831,7 +8268,7 @@
7831
8268
  },
7832
8269
  "locationInModule": {
7833
8270
  "filename": "lib/vpc-v2-base.ts",
7834
- "line": 219
8271
+ "line": 465
7835
8272
  },
7836
8273
  "name": "selectSubnetObjects",
7837
8274
  "parameters": [
@@ -7863,7 +8300,7 @@
7863
8300
  },
7864
8301
  "locationInModule": {
7865
8302
  "filename": "lib/vpc-v2-base.ts",
7866
- "line": 107
8303
+ "line": 224
7867
8304
  },
7868
8305
  "name": "selectSubnets",
7869
8306
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -7893,7 +8330,7 @@
7893
8330
  "immutable": true,
7894
8331
  "locationInModule": {
7895
8332
  "filename": "lib/vpc-v2-base.ts",
7896
- "line": 68
8333
+ "line": 173
7897
8334
  },
7898
8335
  "name": "availabilityZones",
7899
8336
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -7915,7 +8352,7 @@
7915
8352
  "immutable": true,
7916
8353
  "locationInModule": {
7917
8354
  "filename": "lib/vpc-v2-base.ts",
7918
- "line": 73
8355
+ "line": 178
7919
8356
  },
7920
8357
  "name": "internetConnectivityEstablished",
7921
8358
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -7933,7 +8370,7 @@
7933
8370
  "immutable": true,
7934
8371
  "locationInModule": {
7935
8372
  "filename": "lib/vpc-v2-base.ts",
7936
- "line": 87
8373
+ "line": 199
7937
8374
  },
7938
8375
  "name": "ipv4CidrBlock",
7939
8376
  "overrides": "@aws-cdk/aws-ec2-alpha.IVpcV2",
@@ -7950,7 +8387,7 @@
7950
8387
  "immutable": true,
7951
8388
  "locationInModule": {
7952
8389
  "filename": "lib/vpc-v2-base.ts",
7953
- "line": 63
8390
+ "line": 168
7954
8391
  },
7955
8392
  "name": "isolatedSubnets",
7956
8393
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -7971,7 +8408,7 @@
7971
8408
  "immutable": true,
7972
8409
  "locationInModule": {
7973
8410
  "filename": "lib/vpc-v2-base.ts",
7974
- "line": 58
8411
+ "line": 163
7975
8412
  },
7976
8413
  "name": "privateSubnets",
7977
8414
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -7992,7 +8429,7 @@
7992
8429
  "immutable": true,
7993
8430
  "locationInModule": {
7994
8431
  "filename": "lib/vpc-v2-base.ts",
7995
- "line": 53
8432
+ "line": 158
7996
8433
  },
7997
8434
  "name": "publicSubnets",
7998
8435
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -8014,7 +8451,7 @@
8014
8451
  "immutable": true,
8015
8452
  "locationInModule": {
8016
8453
  "filename": "lib/vpc-v2-base.ts",
8017
- "line": 79
8454
+ "line": 191
8018
8455
  },
8019
8456
  "name": "secondaryCidrBlock",
8020
8457
  "overrides": "@aws-cdk/aws-ec2-alpha.IVpcV2",
@@ -8036,7 +8473,7 @@
8036
8473
  "immutable": true,
8037
8474
  "locationInModule": {
8038
8475
  "filename": "lib/vpc-v2-base.ts",
8039
- "line": 43
8476
+ "line": 148
8040
8477
  },
8041
8478
  "name": "vpcArn",
8042
8479
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -8053,7 +8490,7 @@
8053
8490
  "immutable": true,
8054
8491
  "locationInModule": {
8055
8492
  "filename": "lib/vpc-v2-base.ts",
8056
- "line": 48
8493
+ "line": 153
8057
8494
  },
8058
8495
  "name": "vpcCidrBlock",
8059
8496
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -8070,7 +8507,7 @@
8070
8507
  "immutable": true,
8071
8508
  "locationInModule": {
8072
8509
  "filename": "lib/vpc-v2-base.ts",
8073
- "line": 38
8510
+ "line": 143
8074
8511
  },
8075
8512
  "name": "vpcId",
8076
8513
  "overrides": "aws-cdk-lib.aws_ec2.IVpc",
@@ -8078,6 +8515,22 @@
8078
8515
  "primitive": "string"
8079
8516
  }
8080
8517
  },
8518
+ {
8519
+ "docs": {
8520
+ "stability": "experimental",
8521
+ "summary": "Returns the id of the Internet Gateway (if enabled)."
8522
+ },
8523
+ "immutable": true,
8524
+ "locationInModule": {
8525
+ "filename": "lib/vpc-v2-base.ts",
8526
+ "line": 458
8527
+ },
8528
+ "name": "internetGatewayId",
8529
+ "optional": true,
8530
+ "type": {
8531
+ "primitive": "string"
8532
+ }
8533
+ },
8081
8534
  {
8082
8535
  "docs": {
8083
8536
  "stability": "experimental",
@@ -8086,7 +8539,7 @@
8086
8539
  "immutable": true,
8087
8540
  "locationInModule": {
8088
8541
  "filename": "lib/vpc-v2-base.ts",
8089
- "line": 212
8542
+ "line": 451
8090
8543
  },
8091
8544
  "name": "vpnGatewayId",
8092
8545
  "optional": true,
@@ -8102,7 +8555,7 @@
8102
8555
  },
8103
8556
  "locationInModule": {
8104
8557
  "filename": "lib/vpc-v2-base.ts",
8105
- "line": 92
8558
+ "line": 204
8106
8559
  },
8107
8560
  "name": "incompleteSubnetDefinition",
8108
8561
  "protected": true,
@@ -8119,7 +8572,7 @@
8119
8572
  "docs": {
8120
8573
  "stability": "experimental",
8121
8574
  "summary": "Properties to define VPC [disable-awslint:from-method].",
8122
- "example": "\nconst stack = new Stack();\nconst myVpc = new vpc_v2.VpcV2(this, 'Vpc', {\n secondaryAddressBlocks: [\n vpc_v2.IpAddresses.amazonProvidedIpv6({ cidrBlockName: 'AmazonProvidedIp'}),\n ],\n});\n\nnew vpc_v2.SubnetV2(this, 'subnetA', {\n vpc: myVpc,\n availabilityZone: 'us-east-1a',\n ipv4CidrBlock: new vpc_v2.IpCidr('10.0.0.0/24'),\n ipv6CidrBlock: new vpc_v2.IpCidr('2a05:d02c:25:4000::/60'),\n subnetType: ec2.SubnetType.PRIVATE_ISOLATED,\n})",
8575
+ "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 });",
8123
8576
  "custom": {
8124
8577
  "exampleMetadata": "infused"
8125
8578
  }
@@ -8128,7 +8581,7 @@
8128
8581
  "kind": "interface",
8129
8582
  "locationInModule": {
8130
8583
  "filename": "lib/vpc-v2.ts",
8131
- "line": 135
8584
+ "line": 133
8132
8585
  },
8133
8586
  "name": "VpcV2Props",
8134
8587
  "properties": [
@@ -8143,7 +8596,7 @@
8143
8596
  "immutable": true,
8144
8597
  "locationInModule": {
8145
8598
  "filename": "lib/vpc-v2.ts",
8146
- "line": 173
8599
+ "line": 175
8147
8600
  },
8148
8601
  "name": "defaultInstanceTenancy",
8149
8602
  "optional": true,
@@ -8161,7 +8614,7 @@
8161
8614
  "immutable": true,
8162
8615
  "locationInModule": {
8163
8616
  "filename": "lib/vpc-v2.ts",
8164
- "line": 155
8617
+ "line": 156
8165
8618
  },
8166
8619
  "name": "enableDnsHostnames",
8167
8620
  "optional": true,
@@ -8179,7 +8632,7 @@
8179
8632
  "immutable": true,
8180
8633
  "locationInModule": {
8181
8634
  "filename": "lib/vpc-v2.ts",
8182
- "line": 161
8635
+ "line": 163
8183
8636
  },
8184
8637
  "name": "enableDnsSupport",
8185
8638
  "optional": true,
@@ -8191,13 +8644,14 @@
8191
8644
  "abstract": true,
8192
8645
  "docs": {
8193
8646
  "default": "- Ipv4 CIDR Block ('10.0.0.0/16')",
8647
+ "see": "https://docs.aws.amazon.com/vpc/latest/userguide/vpc-cidr-blocks.html",
8194
8648
  "stability": "experimental",
8195
- "summary": "A must IPv4 CIDR block for the VPC https://docs.aws.amazon.com/vpc/latest/userguide/vpc-cidr-blocks.html."
8649
+ "summary": "A must IPv4 CIDR block for the VPC."
8196
8650
  },
8197
8651
  "immutable": true,
8198
8652
  "locationInModule": {
8199
8653
  "filename": "lib/vpc-v2.ts",
8200
- "line": 141
8654
+ "line": 140
8201
8655
  },
8202
8656
  "name": "primaryAddressBlock",
8203
8657
  "optional": true,
@@ -8209,7 +8663,8 @@
8209
8663
  "abstract": true,
8210
8664
  "docs": {
8211
8665
  "default": "- No secondary IP address",
8212
- "remarks": "Can be IPv4 or IPv6, two IPv4 ranges must follow RFC#1918 convention\nFor more information, see the {@link https://docs.aws.amazon.com/vpc/latest/userguide/vpc-cidr-blocks.html#vpc-resize}.",
8666
+ "remarks": "Can be IPv4 or IPv6, two IPv4 ranges must follow RFC#1918 convention\nFor more information,",
8667
+ "see": "https://docs.aws.amazon.com/vpc/latest/userguide/vpc-cidr-blocks.html#vpc-resize}.",
8213
8668
  "stability": "experimental",
8214
8669
  "summary": "The secondary CIDR blocks associated with the VPC."
8215
8670
  },
@@ -8232,14 +8687,14 @@
8232
8687
  {
8233
8688
  "abstract": true,
8234
8689
  "docs": {
8235
- "default": ": autogenerated by CDK",
8690
+ "default": "- autogenerated by CDK",
8236
8691
  "stability": "experimental",
8237
8692
  "summary": "Physical name for the VPC."
8238
8693
  },
8239
8694
  "immutable": true,
8240
8695
  "locationInModule": {
8241
8696
  "filename": "lib/vpc-v2.ts",
8242
- "line": 179
8697
+ "line": 182
8243
8698
  },
8244
8699
  "name": "vpcName",
8245
8700
  "optional": true,
@@ -8251,6 +8706,6 @@
8251
8706
  "symbolId": "lib/vpc-v2:VpcV2Props"
8252
8707
  }
8253
8708
  },
8254
- "version": "2.158.0-alpha.0",
8709
+ "version": "2.159.0-alpha.0",
8255
8710
  "fingerprint": "**********"
8256
8711
  }