Skip to content

Commit 08fc8d3

Browse files
author
awstools
committed
feat(client-transfer): Added support for dual-stack (IPv4 and IPv6) endpoints for SFTP public endpoints and VPC-internal endpoints (SFTP, FTPS, FTP, and AS2), enabling customers to configure new servers with IPv4 or dual-stack mode, convert existing servers to dual-stack, and use IPv6 with service APIs.
1 parent 80e2132 commit 08fc8d3

File tree

5 files changed

+90
-19
lines changed

5 files changed

+90
-19
lines changed

clients/client-transfer/src/commands/CreateServerCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ export interface CreateServerCommandOutput extends CreateServerResponse, __Metad
102102
* S3StorageOptions: { // S3StorageOptions
103103
* DirectoryListingOptimization: "ENABLED" || "DISABLED",
104104
* },
105+
* IpAddressType: "IPV4" || "DUALSTACK",
105106
* };
106107
* const command = new CreateServerCommand(input);
107108
* const response = await client.send(command);

clients/client-transfer/src/commands/DescribeServerCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ export interface DescribeServerCommandOutput extends DescribeServerResponse, __M
115115
* // As2ServiceManagedEgressIpAddresses: [ // ServiceManagedEgressIpAddresses
116116
* // "STRING_VALUE",
117117
* // ],
118+
* // IpAddressType: "IPV4" || "DUALSTACK",
118119
* // },
119120
* // };
120121
*

clients/client-transfer/src/commands/UpdateServerCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ export interface UpdateServerCommandOutput extends UpdateServerResponse, __Metad
9595
* S3StorageOptions: { // S3StorageOptions
9696
* DirectoryListingOptimization: "ENABLED" || "DISABLED",
9797
* },
98+
* IpAddressType: "IPV4" || "DUALSTACK",
9899
* };
99100
* const command = new UpdateServerCommand(input);
100101
* const response = await client.send(command);

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

Lines changed: 41 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1740,7 +1740,7 @@ export interface PosixProfile {
17401740
*/
17411741
export interface CreateAccessRequest {
17421742
/**
1743-
* <p>The landing directory (folder) for a user when they log in to the server using the client.</p> <p>A <code>HomeDirectory</code> example is <code>/bucket_name/home/mydirectory</code>.</p> <note> <p>The <code>HomeDirectory</code> parameter is only used if <code>HomeDirectoryType</code> is set to <code>PATH</code>.</p> </note>
1743+
* <p>The landing directory (folder) for a user when they log in to the server using the client.</p> <p>A <code>HomeDirectory</code> example is <code>/bucket_name/home/mydirectory</code>.</p> <note> <p>You can use the <code>HomeDirectory</code> parameter for <code>HomeDirectoryType</code> when it is set to either <code>PATH</code> or <code>LOGICAL</code>.</p> </note>
17441744
* @public
17451745
*/
17461746
HomeDirectory?: string | undefined;
@@ -1879,7 +1879,7 @@ export type Domain = (typeof Domain)[keyof typeof Domain];
18791879
*/
18801880
export interface EndpointDetails {
18811881
/**
1882-
* <p>A list of address allocation IDs that are required to attach an Elastic IP address to your server's endpoint.</p> <p>An address allocation ID corresponds to the allocation ID of an Elastic IP address. This value can be retrieved from the <code>allocationId</code> field from the Amazon EC2 <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Address.html">Address</a> data type. One way to retrieve this value is by calling the EC2 <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAddresses.html">DescribeAddresses</a> API.</p> <p>This parameter is optional. Set this parameter if you want to make your VPC endpoint public-facing. For details, see <a href="https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#create-internet-facing-endpoint">Create an internet-facing endpoint for your server</a>.</p> <note> <p>This property can only be set as follows:</p> <ul> <li> <p> <code>EndpointType</code> must be set to <code>VPC</code> </p> </li> <li> <p>The Transfer Family server must be offline.</p> </li> <li> <p>You cannot set this parameter for Transfer Family servers that use the FTP protocol.</p> </li> <li> <p>The server must already have <code>SubnetIds</code> populated (<code>SubnetIds</code> and <code>AddressAllocationIds</code> cannot be updated simultaneously).</p> </li> <li> <p> <code>AddressAllocationIds</code> can't contain duplicates, and must be equal in length to <code>SubnetIds</code>. For example, if you have three subnet IDs, you must also specify three address allocation IDs.</p> </li> <li> <p>Call the <code>UpdateServer</code> API to set or change this parameter.</p> </li> </ul> </note>
1882+
* <p>A list of address allocation IDs that are required to attach an Elastic IP address to your server's endpoint.</p> <p>An address allocation ID corresponds to the allocation ID of an Elastic IP address. This value can be retrieved from the <code>allocationId</code> field from the Amazon EC2 <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Address.html">Address</a> data type. One way to retrieve this value is by calling the EC2 <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAddresses.html">DescribeAddresses</a> API.</p> <p>This parameter is optional. Set this parameter if you want to make your VPC endpoint public-facing. For details, see <a href="https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#create-internet-facing-endpoint">Create an internet-facing endpoint for your server</a>.</p> <note> <p>This property can only be set as follows:</p> <ul> <li> <p> <code>EndpointType</code> must be set to <code>VPC</code> </p> </li> <li> <p>The Transfer Family server must be offline.</p> </li> <li> <p>You cannot set this parameter for Transfer Family servers that use the FTP protocol.</p> </li> <li> <p>The server must already have <code>SubnetIds</code> populated (<code>SubnetIds</code> and <code>AddressAllocationIds</code> cannot be updated simultaneously).</p> </li> <li> <p> <code>AddressAllocationIds</code> can't contain duplicates, and must be equal in length to <code>SubnetIds</code>. For example, if you have three subnet IDs, you must also specify three address allocation IDs.</p> </li> <li> <p>Call the <code>UpdateServer</code> API to set or change this parameter.</p> </li> <li> <p>You can't set address allocation IDs for servers that have an <code>IpAddressType</code> set to <code>DUALSTACK</code> You can only set this property if <code>IpAddressType</code> is set to <code>IPV4</code>.</p> </li> </ul> </note>
18831883
* @public
18841884
*/
18851885
AddressAllocationIds?: string[] | undefined;
@@ -1992,6 +1992,20 @@ export const IdentityProviderType = {
19921992
*/
19931993
export type IdentityProviderType = (typeof IdentityProviderType)[keyof typeof IdentityProviderType];
19941994

1995+
/**
1996+
* @public
1997+
* @enum
1998+
*/
1999+
export const IpAddressType = {
2000+
DUALSTACK: "DUALSTACK",
2001+
IPV4: "IPV4",
2002+
} as const;
2003+
2004+
/**
2005+
* @public
2006+
*/
2007+
export type IpAddressType = (typeof IpAddressType)[keyof typeof IpAddressType];
2008+
19952009
/**
19962010
* @public
19972011
* @enum
@@ -2235,6 +2249,12 @@ export interface CreateServerRequest {
22352249
* @public
22362250
*/
22372251
S3StorageOptions?: S3StorageOptions | undefined;
2252+
2253+
/**
2254+
* <p>Specifies whether to use IPv4 only, or to use dual-stack (IPv4 and IPv6) for your Transfer Family endpoint. The default value is <code>IPV4</code>.</p> <important> <p>The <code>IpAddressType</code> parameter has the following limitations:</p> <ul> <li> <p>It cannot be changed while the server is online. You must stop the server before modifying this parameter.</p> </li> <li> <p>It cannot be updated to <code>DUALSTACK</code> if the server has <code>AddressAllocationIds</code> specified.</p> </li> </ul> </important> <note> <p>When using <code>DUALSTACK</code> as the <code>IpAddressType</code>, you cannot set the <code>AddressAllocationIds</code> parameter for the <a href="https://docs.aws.amazon.com/transfer/latest/APIReference/API_EndpointDetails.html">EndpointDetails</a> for the server.</p> </note>
2255+
* @public
2256+
*/
2257+
IpAddressType?: IpAddressType | undefined;
22382258
}
22392259

22402260
/**
@@ -2253,7 +2273,7 @@ export interface CreateServerResponse {
22532273
*/
22542274
export interface CreateUserRequest {
22552275
/**
2256-
* <p>The landing directory (folder) for a user when they log in to the server using the client.</p> <p>A <code>HomeDirectory</code> example is <code>/bucket_name/home/mydirectory</code>.</p> <note> <p>The <code>HomeDirectory</code> parameter is only used if <code>HomeDirectoryType</code> is set to <code>PATH</code>.</p> </note>
2276+
* <p>The landing directory (folder) for a user when they log in to the server using the client.</p> <p>A <code>HomeDirectory</code> example is <code>/bucket_name/home/mydirectory</code>.</p> <note> <p>You can use the <code>HomeDirectory</code> parameter for <code>HomeDirectoryType</code> when it is set to either <code>PATH</code> or <code>LOGICAL</code>.</p> </note>
22572277
* @public
22582278
*/
22592279
HomeDirectory?: string | undefined;
@@ -2890,7 +2910,7 @@ export interface DescribeAccessRequest {
28902910
*/
28912911
export interface DescribedAccess {
28922912
/**
2893-
* <p>The landing directory (folder) for a user when they log in to the server using the client.</p> <p>A <code>HomeDirectory</code> example is <code>/bucket_name/home/mydirectory</code>.</p> <note> <p>The <code>HomeDirectory</code> parameter is only used if <code>HomeDirectoryType</code> is set to <code>PATH</code>.</p> </note>
2913+
* <p>The landing directory (folder) for a user when they log in to the server using the client.</p> <p>A <code>HomeDirectory</code> example is <code>/bucket_name/home/mydirectory</code>.</p> <note> <p>You can use the <code>HomeDirectory</code> parameter for <code>HomeDirectoryType</code> when it is set to either <code>PATH</code> or <code>LOGICAL</code>.</p> </note>
28942914
* @public
28952915
*/
28962916
HomeDirectory?: string | undefined;
@@ -3557,6 +3577,12 @@ export interface DescribedServer {
35573577
* @public
35583578
*/
35593579
As2ServiceManagedEgressIpAddresses?: string[] | undefined;
3580+
3581+
/**
3582+
* <p>Specifies whether to use IPv4 only, or to use dual-stack (IPv4 and IPv6) for your Transfer Family endpoint. The default value is <code>IPV4</code>.</p> <important> <p>The <code>IpAddressType</code> parameter has the following limitations:</p> <ul> <li> <p>It cannot be changed while the server is online. You must stop the server before modifying this parameter.</p> </li> <li> <p>It cannot be updated to <code>DUALSTACK</code> if the server has <code>AddressAllocationIds</code> specified.</p> </li> </ul> </important> <note> <p>When using <code>DUALSTACK</code> as the <code>IpAddressType</code>, you cannot set the <code>AddressAllocationIds</code> parameter for the <a href="https://docs.aws.amazon.com/transfer/latest/APIReference/API_EndpointDetails.html">EndpointDetails</a> for the server.</p> </note>
3583+
* @public
3584+
*/
3585+
IpAddressType?: IpAddressType | undefined;
35603586
}
35613587

35623588
/**
@@ -3595,7 +3621,7 @@ export interface DescribedUser {
35953621
Arn: string | undefined;
35963622

35973623
/**
3598-
* <p>The landing directory (folder) for a user when they log in to the server using the client.</p> <p>A <code>HomeDirectory</code> example is <code>/bucket_name/home/mydirectory</code>.</p> <note> <p>The <code>HomeDirectory</code> parameter is only used if <code>HomeDirectoryType</code> is set to <code>PATH</code>.</p> </note>
3624+
* <p>The landing directory (folder) for a user when they log in to the server using the client.</p> <p>A <code>HomeDirectory</code> example is <code>/bucket_name/home/mydirectory</code>.</p> <note> <p>You can use the <code>HomeDirectory</code> parameter for <code>HomeDirectoryType</code> when it is set to either <code>PATH</code> or <code>LOGICAL</code>.</p> </note>
35993625
* @public
36003626
*/
36013627
HomeDirectory?: string | undefined;
@@ -4171,7 +4197,7 @@ export interface ListAccessesRequest {
41714197
*/
41724198
export interface ListedAccess {
41734199
/**
4174-
* <p>The landing directory (folder) for a user when they log in to the server using the client.</p> <p>A <code>HomeDirectory</code> example is <code>/bucket_name/home/mydirectory</code>.</p> <note> <p>The <code>HomeDirectory</code> parameter is only used if <code>HomeDirectoryType</code> is set to <code>PATH</code>.</p> </note>
4200+
* <p>The landing directory (folder) for a user when they log in to the server using the client.</p> <p>A <code>HomeDirectory</code> example is <code>/bucket_name/home/mydirectory</code>.</p> <note> <p>You can use the <code>HomeDirectory</code> parameter for <code>HomeDirectoryType</code> when it is set to either <code>PATH</code> or <code>LOGICAL</code>.</p> </note>
41754201
* @public
41764202
*/
41774203
HomeDirectory?: string | undefined;
@@ -4386,7 +4412,7 @@ export interface ListedUser {
43864412
Arn: string | undefined;
43874413

43884414
/**
4389-
* <p>The landing directory (folder) for a user when they log in to the server using the client.</p> <p>A <code>HomeDirectory</code> example is <code>/bucket_name/home/mydirectory</code>.</p> <note> <p>The <code>HomeDirectory</code> parameter is only used if <code>HomeDirectoryType</code> is set to <code>PATH</code>.</p> </note>
4415+
* <p>The landing directory (folder) for a user when they log in to the server using the client.</p> <p>A <code>HomeDirectory</code> example is <code>/bucket_name/home/mydirectory</code>.</p> <note> <p>You can use the <code>HomeDirectory</code> parameter for <code>HomeDirectoryType</code> when it is set to either <code>PATH</code> or <code>LOGICAL</code>.</p> </note>
43904416
* @public
43914417
*/
43924418
HomeDirectory?: string | undefined;
@@ -5031,6 +5057,12 @@ export interface UpdateServerRequest {
50315057
* @public
50325058
*/
50335059
S3StorageOptions?: S3StorageOptions | undefined;
5060+
5061+
/**
5062+
* <p>Specifies whether to use IPv4 only, or to use dual-stack (IPv4 and IPv6) for your Transfer Family endpoint. The default value is <code>IPV4</code>.</p> <important> <p>The <code>IpAddressType</code> parameter has the following limitations:</p> <ul> <li> <p>It cannot be changed while the server is online. You must stop the server before modifying this parameter.</p> </li> <li> <p>It cannot be updated to <code>DUALSTACK</code> if the server has <code>AddressAllocationIds</code> specified.</p> </li> </ul> </important> <note> <p>When using <code>DUALSTACK</code> as the <code>IpAddressType</code>, you cannot set the <code>AddressAllocationIds</code> parameter for the <a href="https://docs.aws.amazon.com/transfer/latest/APIReference/API_EndpointDetails.html">EndpointDetails</a> for the server.</p> </note>
5063+
* @public
5064+
*/
5065+
IpAddressType?: IpAddressType | undefined;
50345066
}
50355067

50365068
/**
@@ -5375,7 +5407,7 @@ export interface UntagResourceRequest {
53755407
*/
53765408
export interface UpdateAccessRequest {
53775409
/**
5378-
* <p>The landing directory (folder) for a user when they log in to the server using the client.</p> <p>A <code>HomeDirectory</code> example is <code>/bucket_name/home/mydirectory</code>.</p> <note> <p>The <code>HomeDirectory</code> parameter is only used if <code>HomeDirectoryType</code> is set to <code>PATH</code>.</p> </note>
5410+
* <p>The landing directory (folder) for a user when they log in to the server using the client.</p> <p>A <code>HomeDirectory</code> example is <code>/bucket_name/home/mydirectory</code>.</p> <note> <p>You can use the <code>HomeDirectory</code> parameter for <code>HomeDirectoryType</code> when it is set to either <code>PATH</code> or <code>LOGICAL</code>.</p> </note>
53795411
* @public
53805412
*/
53815413
HomeDirectory?: string | undefined;
@@ -5485,7 +5517,7 @@ export interface UpdateHostKeyResponse {
54855517
*/
54865518
export interface UpdateUserRequest {
54875519
/**
5488-
* <p>The landing directory (folder) for a user when they log in to the server using the client.</p> <p>A <code>HomeDirectory</code> example is <code>/bucket_name/home/mydirectory</code>.</p> <note> <p>The <code>HomeDirectory</code> parameter is only used if <code>HomeDirectoryType</code> is set to <code>PATH</code>.</p> </note>
5520+
* <p>The landing directory (folder) for a user when they log in to the server using the client.</p> <p>A <code>HomeDirectory</code> example is <code>/bucket_name/home/mydirectory</code>.</p> <note> <p>You can use the <code>HomeDirectory</code> parameter for <code>HomeDirectoryType</code> when it is set to either <code>PATH</code> or <code>LOGICAL</code>.</p> </note>
54895521
* @public
54905522
*/
54915523
HomeDirectory?: string | undefined;

0 commit comments

Comments
 (0)