Skip to content

Commit 8f2eb0c

Browse files
author
awstools
committed
feat(client-ec2): This release adds support for Private IP VPNs, a new feature allowing S2S VPN connections to use private ip addresses as the tunnel outside ip address over Direct Connect as transport.
1 parent 8997986 commit 8f2eb0c

File tree

7 files changed

+103
-18
lines changed

7 files changed

+103
-18
lines changed

clients/client-ec2/src/EC2.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4536,10 +4536,9 @@ export class EC2 extends EC2Client {
45364536
}
45374537

45384538
/**
4539-
* <p>Provides information to Amazon Web Services about your VPN customer gateway device. The
4540-
* customer gateway is the appliance at your end of the VPN connection. (The device on the
4541-
* Amazon Web Services side of the VPN connection is the virtual private gateway.) You
4542-
* must provide the internet-routable IP address of the customer gateway's external
4539+
* <p>Provides information to Amazon Web Services about your customer gateway device. The
4540+
* customer gateway device is the appliance at your end of the VPN connection. You
4541+
* must provide the IP address of the customer gateway device’s external
45434542
* interface. The IP address must be static and can be behind a device performing network
45444543
* address translation (NAT).</p>
45454544
* <p>For devices that use Border Gateway Protocol (BGP), you can also provide the device's

clients/client-ec2/src/commands/CreateCustomerGatewayCommand.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,9 @@ export interface CreateCustomerGatewayCommandInput extends CreateCustomerGateway
2323
export interface CreateCustomerGatewayCommandOutput extends CreateCustomerGatewayResult, __MetadataBearer {}
2424

2525
/**
26-
* <p>Provides information to Amazon Web Services about your VPN customer gateway device. The
27-
* customer gateway is the appliance at your end of the VPN connection. (The device on the
28-
* Amazon Web Services side of the VPN connection is the virtual private gateway.) You
29-
* must provide the internet-routable IP address of the customer gateway's external
26+
* <p>Provides information to Amazon Web Services about your customer gateway device. The
27+
* customer gateway device is the appliance at your end of the VPN connection. You
28+
* must provide the IP address of the customer gateway device’s external
3029
* interface. The IP address must be static and can be behind a device performing network
3130
* address translation (NAT).</p>
3231
* <p>For devices that use Border Gateway Protocol (BGP), you can also provide the device's

clients/client-ec2/src/models/models_0.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8112,7 +8112,8 @@ export interface CreateCustomerGatewayRequest {
81128112
BgpAsn: number | undefined;
81138113

81148114
/**
8115-
* <p>The Internet-routable IP address for the customer gateway's outside interface. The
8115+
* <p>
8116+
* <i>This member has been deprecated.</i> The Internet-routable IP address for the customer gateway's outside interface. The
81168117
* address must be static.</p>
81178118
*/
81188119
PublicIp?: string;
@@ -8139,6 +8140,13 @@ export interface CreateCustomerGatewayRequest {
81398140
*/
81408141
DeviceName?: string;
81418142

8143+
/**
8144+
* <p>
8145+
* IPv4 address for the customer gateway device's outside interface. The address must be static.
8146+
* </p>
8147+
*/
8148+
IpAddress?: string;
8149+
81428150
/**
81438151
* <p>Checks whether you have the required permissions for the action, without actually
81448152
* making the request, and provides an error response. If you have the required
@@ -8173,7 +8181,7 @@ export interface CustomerGateway {
81738181
CustomerGatewayId?: string;
81748182

81758183
/**
8176-
* <p>The Internet-routable IP address of the customer gateway's outside interface.</p>
8184+
* <p>The IP address of the customer gateway device's outside interface.</p>
81778185
*/
81788186
IpAddress?: string;
81798187

clients/client-ec2/src/models/models_2.ts

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2675,6 +2675,21 @@ export interface VpnConnectionOptionsSpecification {
26752675
* </p>
26762676
*/
26772677
RemoteIpv6NetworkCidr?: string;
2678+
2679+
/**
2680+
* <p>The type of IPv4 address assigned to the outside interface of the customer gateway device.</p>
2681+
* <p>Valid values: <code>PrivateIpv4</code> | <code>PublicIpv4</code>
2682+
* </p>
2683+
* <p>Default: <code>PublicIpv4</code>
2684+
* </p>
2685+
*/
2686+
OutsideIpAddressType?: string;
2687+
2688+
/**
2689+
* <p>The transit gateway attachment ID to use for the VPN tunnel.</p>
2690+
* <p>Required if <code>OutsideIpAddressType</code> is set to <code>PrivateIpv4</code>.</p>
2691+
*/
2692+
TransportTransitGatewayAttachmentId?: string;
26782693
}
26792694

26802695
export namespace VpnConnectionOptionsSpecification {
@@ -3033,6 +3048,20 @@ export interface VpnConnectionOptions {
30333048
*/
30343049
RemoteIpv6NetworkCidr?: string;
30353050

3051+
/**
3052+
* <p>The type of IPv4 address assigned to the outside interface of the customer gateway.</p>
3053+
* <p>Valid values: <code>PrivateIpv4</code> | <code>PublicIpv4</code>
3054+
* </p>
3055+
* <p>Default: <code>PublicIpv4</code>
3056+
* </p>
3057+
*/
3058+
OutsideIpAddressType?: string;
3059+
3060+
/**
3061+
* <p>The transit gateway attachment ID in use for the VPN tunnel.</p>
3062+
*/
3063+
TransportTransitGatewayAttachmentId?: string;
3064+
30363065
/**
30373066
* <p>Indicates whether the VPN tunnels process IPv4 or IPv6 traffic.</p>
30383067
*/

clients/client-ec2/src/models/models_3.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -675,8 +675,8 @@ export interface DescribeCustomerGatewaysRequest {
675675
* </li>
676676
* <li>
677677
* <p>
678-
* <code>ip-address</code> - The IP address of the customer gateway's
679-
* Internet-routable external interface.</p>
678+
* <code>ip-address</code> - The IP address of the customer gateway
679+
* device's external interface.</p>
680680
* </li>
681681
* <li>
682682
* <p>

clients/client-ec2/src/protocols/Aws_ec2.ts

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34642,7 +34642,7 @@ const serializeAws_ec2CreateCustomerGatewayRequest = (
3464234642
entries["BgpAsn"] = input.BgpAsn;
3464334643
}
3464434644
if (input.PublicIp !== undefined && input.PublicIp !== null) {
34645-
entries["IpAddress"] = input.PublicIp;
34645+
entries["PublicIp"] = input.PublicIp;
3464634646
}
3464734647
if (input.CertificateArn !== undefined && input.CertificateArn !== null) {
3464834648
entries["CertificateArn"] = input.CertificateArn;
@@ -34660,6 +34660,9 @@ const serializeAws_ec2CreateCustomerGatewayRequest = (
3466034660
if (input.DeviceName !== undefined && input.DeviceName !== null) {
3466134661
entries["DeviceName"] = input.DeviceName;
3466234662
}
34663+
if (input.IpAddress !== undefined && input.IpAddress !== null) {
34664+
entries["IpAddress"] = input.IpAddress;
34665+
}
3466334666
if (input.DryRun !== undefined && input.DryRun !== null) {
3466434667
entries["DryRun"] = input.DryRun;
3466534668
}
@@ -53501,6 +53504,12 @@ const serializeAws_ec2VpnConnectionOptionsSpecification = (
5350153504
if (input.RemoteIpv6NetworkCidr !== undefined && input.RemoteIpv6NetworkCidr !== null) {
5350253505
entries["RemoteIpv6NetworkCidr"] = input.RemoteIpv6NetworkCidr;
5350353506
}
53507+
if (input.OutsideIpAddressType !== undefined && input.OutsideIpAddressType !== null) {
53508+
entries["OutsideIpAddressType"] = input.OutsideIpAddressType;
53509+
}
53510+
if (input.TransportTransitGatewayAttachmentId !== undefined && input.TransportTransitGatewayAttachmentId !== null) {
53511+
entries["TransportTransitGatewayAttachmentId"] = input.TransportTransitGatewayAttachmentId;
53512+
}
5350453513
return entries;
5350553514
};
5350653515

@@ -81457,6 +81466,8 @@ const deserializeAws_ec2VpnConnectionOptions = (output: any, context: __SerdeCon
8145781466
RemoteIpv4NetworkCidr: undefined,
8145881467
LocalIpv6NetworkCidr: undefined,
8145981468
RemoteIpv6NetworkCidr: undefined,
81469+
OutsideIpAddressType: undefined,
81470+
TransportTransitGatewayAttachmentId: undefined,
8146081471
TunnelInsideIpVersion: undefined,
8146181472
TunnelOptions: undefined,
8146281473
};
@@ -81478,6 +81489,12 @@ const deserializeAws_ec2VpnConnectionOptions = (output: any, context: __SerdeCon
8147881489
if (output["remoteIpv6NetworkCidr"] !== undefined) {
8147981490
contents.RemoteIpv6NetworkCidr = __expectString(output["remoteIpv6NetworkCidr"]);
8148081491
}
81492+
if (output["outsideIpAddressType"] !== undefined) {
81493+
contents.OutsideIpAddressType = __expectString(output["outsideIpAddressType"]);
81494+
}
81495+
if (output["transportTransitGatewayAttachmentId"] !== undefined) {
81496+
contents.TransportTransitGatewayAttachmentId = __expectString(output["transportTransitGatewayAttachmentId"]);
81497+
}
8148181498
if (output["tunnelInsideIpVersion"] !== undefined) {
8148281499
contents.TunnelInsideIpVersion = __expectString(output["tunnelInsideIpVersion"]);
8148381500
}

codegen/sdk-codegen/aws-models/ec2.json

Lines changed: 38 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10506,7 +10506,7 @@
1050610506
"target": "com.amazonaws.ec2#CreateCustomerGatewayResult"
1050710507
},
1050810508
"traits": {
10509-
"smithy.api#documentation": "<p>Provides information to Amazon Web Services about your VPN customer gateway device. The\n customer gateway is the appliance at your end of the VPN connection. (The device on the\n Amazon Web Services side of the VPN connection is the virtual private gateway.) You\n must provide the internet-routable IP address of the customer gateway's external\n interface. The IP address must be static and can be behind a device performing network\n address translation (NAT).</p>\n <p>For devices that use Border Gateway Protocol (BGP), you can also provide the device's\n BGP Autonomous System Number (ASN). You can use an existing ASN assigned to your network.\n If you don't have an ASN already, you can use a private ASN. For more information, see \n <a href=\"https://docs.aws.amazon.com/vpn/latest/s2svpn/cgw-options.html\">Customer gateway \n options for your Site-to-Site VPN connection</a> in the <i>Amazon Web Services Site-to-Site VPN User Guide</i>.</p>\n <p>To create more than one customer gateway with the same VPN type, IP address, and\n BGP ASN, specify a unique device name for each customer gateway. An identical request\n returns information about the existing customer gateway; it doesn't create a new customer\n gateway.</p>"
10509+
"smithy.api#documentation": "<p>Provides information to Amazon Web Services about your customer gateway device. The\n customer gateway device is the appliance at your end of the VPN connection. You\n must provide the IP address of the customer gateway device’s external\n interface. The IP address must be static and can be behind a device performing network\n address translation (NAT).</p>\n <p>For devices that use Border Gateway Protocol (BGP), you can also provide the device's\n BGP Autonomous System Number (ASN). You can use an existing ASN assigned to your network.\n If you don't have an ASN already, you can use a private ASN. For more information, see \n <a href=\"https://docs.aws.amazon.com/vpn/latest/s2svpn/cgw-options.html\">Customer gateway \n options for your Site-to-Site VPN connection</a> in the <i>Amazon Web Services Site-to-Site VPN User Guide</i>.</p>\n <p>To create more than one customer gateway with the same VPN type, IP address, and\n BGP ASN, specify a unique device name for each customer gateway. An identical request\n returns information about the existing customer gateway; it doesn't create a new customer\n gateway.</p>"
1051010510
}
1051110511
},
1051210512
"com.amazonaws.ec2#CreateCustomerGatewayRequest": {
@@ -10522,8 +10522,7 @@
1052210522
"PublicIp": {
1052310523
"target": "com.amazonaws.ec2#String",
1052410524
"traits": {
10525-
"smithy.api#documentation": "<p>The Internet-routable IP address for the customer gateway's outside interface. The\n address must be static.</p>",
10526-
"smithy.api#xmlName": "IpAddress"
10525+
"smithy.api#documentation": "<p>\n <i>This member has been deprecated.</i> The Internet-routable IP address for the customer gateway's outside interface. The\n address must be static.</p>"
1052710526
}
1052810527
},
1052910528
"CertificateArn": {
@@ -10552,6 +10551,12 @@
1055210551
"smithy.api#documentation": "<p>A name for the customer gateway device.</p>\n <p>Length Constraints: Up to 255 characters.</p>"
1055310552
}
1055410553
},
10554+
"IpAddress": {
10555+
"target": "com.amazonaws.ec2#String",
10556+
"traits": {
10557+
"smithy.api#documentation": "<p>\n IPv4 address for the customer gateway device's outside interface. The address must be static.\n </p>"
10558+
}
10559+
},
1055510560
"DryRun": {
1055610561
"target": "com.amazonaws.ec2#Boolean",
1055710562
"traits": {
@@ -15679,7 +15684,7 @@
1567915684
"target": "com.amazonaws.ec2#String",
1568015685
"traits": {
1568115686
"aws.protocols#ec2QueryName": "IpAddress",
15682-
"smithy.api#documentation": "<p>The Internet-routable IP address of the customer gateway's outside interface.</p>",
15687+
"smithy.api#documentation": "<p>The IP address of the customer gateway device's outside interface.</p>",
1568315688
"smithy.api#xmlName": "ipAddress"
1568415689
}
1568515690
},
@@ -20616,7 +20621,7 @@
2061620621
"Filters": {
2061720622
"target": "com.amazonaws.ec2#FilterList",
2061820623
"traits": {
20619-
"smithy.api#documentation": "<p>One or more filters.</p>\n <ul>\n <li>\n <p>\n <code>bgp-asn</code> - The customer gateway's Border Gateway Protocol (BGP)\n Autonomous System Number (ASN).</p>\n </li>\n <li>\n <p>\n <code>customer-gateway-id</code> - The ID of the customer gateway.</p>\n </li>\n <li>\n <p>\n <code>ip-address</code> - The IP address of the customer gateway's\n Internet-routable external interface.</p>\n </li>\n <li>\n <p>\n <code>state</code> - The state of the customer gateway (<code>pending</code> |\n <code>available</code> | <code>deleting</code> |\n <code>deleted</code>).</p>\n </li>\n <li>\n <p>\n <code>type</code> - The type of customer gateway. Currently, the only\n supported type is <code>ipsec.1</code>.</p>\n </li>\n <li> \n <p>\n <code>tag</code>:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value.</p> \n </li>\n <li> \n <p>\n <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.</p> \n </li>\n </ul>",
20624+
"smithy.api#documentation": "<p>One or more filters.</p>\n <ul>\n <li>\n <p>\n <code>bgp-asn</code> - The customer gateway's Border Gateway Protocol (BGP)\n Autonomous System Number (ASN).</p>\n </li>\n <li>\n <p>\n <code>customer-gateway-id</code> - The ID of the customer gateway.</p>\n </li>\n <li>\n <p>\n <code>ip-address</code> - The IP address of the customer gateway\n device's external interface.</p>\n </li>\n <li>\n <p>\n <code>state</code> - The state of the customer gateway (<code>pending</code> |\n <code>available</code> | <code>deleting</code> |\n <code>deleted</code>).</p>\n </li>\n <li>\n <p>\n <code>type</code> - The type of customer gateway. Currently, the only\n supported type is <code>ipsec.1</code>.</p>\n </li>\n <li> \n <p>\n <code>tag</code>:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value.</p> \n </li>\n <li> \n <p>\n <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.</p> \n </li>\n </ul>",
2062020625
"smithy.api#xmlName": "Filter"
2062120626
}
2062220627
},
@@ -80085,6 +80090,22 @@
8008580090
"smithy.api#xmlName": "remoteIpv6NetworkCidr"
8008680091
}
8008780092
},
80093+
"OutsideIpAddressType": {
80094+
"target": "com.amazonaws.ec2#String",
80095+
"traits": {
80096+
"aws.protocols#ec2QueryName": "OutsideIpAddressType",
80097+
"smithy.api#documentation": "<p>The type of IPv4 address assigned to the outside interface of the customer gateway.</p>\n <p>Valid values: <code>PrivateIpv4</code> | <code>PublicIpv4</code>\n </p>\n <p>Default: <code>PublicIpv4</code>\n </p>",
80098+
"smithy.api#xmlName": "outsideIpAddressType"
80099+
}
80100+
},
80101+
"TransportTransitGatewayAttachmentId": {
80102+
"target": "com.amazonaws.ec2#String",
80103+
"traits": {
80104+
"aws.protocols#ec2QueryName": "TransportTransitGatewayAttachmentId",
80105+
"smithy.api#documentation": "<p>The transit gateway attachment ID in use for the VPN tunnel.</p>",
80106+
"smithy.api#xmlName": "transportTransitGatewayAttachmentId"
80107+
}
80108+
},
8008880109
"TunnelInsideIpVersion": {
8008980110
"target": "com.amazonaws.ec2#TunnelInsideIpVersion",
8009080111
"traits": {
@@ -80158,6 +80179,18 @@
8015880179
"traits": {
8015980180
"smithy.api#documentation": "<p>The IPv6 CIDR on the Amazon Web Services side of the VPN connection.</p>\n <p>Default: <code>::/0</code>\n </p>"
8016080181
}
80182+
},
80183+
"OutsideIpAddressType": {
80184+
"target": "com.amazonaws.ec2#String",
80185+
"traits": {
80186+
"smithy.api#documentation": "<p>The type of IPv4 address assigned to the outside interface of the customer gateway device.</p>\n <p>Valid values: <code>PrivateIpv4</code> | <code>PublicIpv4</code>\n </p>\n <p>Default: <code>PublicIpv4</code>\n </p>"
80187+
}
80188+
},
80189+
"TransportTransitGatewayAttachmentId": {
80190+
"target": "com.amazonaws.ec2#TransitGatewayAttachmentId",
80191+
"traits": {
80192+
"smithy.api#documentation": "<p>The transit gateway attachment ID to use for the VPN tunnel.</p>\n <p>Required if <code>OutsideIpAddressType</code> is set to <code>PrivateIpv4</code>.</p>"
80193+
}
8016180194
}
8016280195
},
8016380196
"traits": {

0 commit comments

Comments
 (0)