diff --git a/clients/client-transfer/src/models/models_0.ts b/clients/client-transfer/src/models/models_0.ts index be9ebdfb20c7..96c7912717c9 100644 --- a/clients/client-transfer/src/models/models_0.ts +++ b/clients/client-transfer/src/models/models_0.ts @@ -640,6 +640,11 @@ export enum IdentityProviderType { SERVICE_MANAGED = "SERVICE_MANAGED", } +export enum SetStatOption { + DEFAULT = "DEFAULT", + ENABLE_NO_OP = "ENABLE_NO_OP", +} + export enum TlsSessionResumptionMode { DISABLED = "DISABLED", ENABLED = "ENABLED", @@ -704,6 +709,20 @@ export interface ProtocolDetails { * */ TlsSessionResumptionMode?: TlsSessionResumptionMode | string; + + /** + *

Use the SetStatOption to ignore the error that is generated when the client attempts to use SETSTAT on a file you are uploading to an S3 bucket.

+ *

Some SFTP file transfer clients can attempt to change the attributes of remote files, including timestamp and permissions, using commands, such as SETSTAT when uploading the file. + * However, these commands are not compatible with object storage systems, such as Amazon S3. Due to this incompatibility, file uploads from these clients can result in errors even when + * the file is otherwise successfully uploaded.

+ *

Set the value to ENABLE_NO_OP to have the Transfer Family server ignore the SETSTAT command, and upload files without needing to make any changes to your SFTP client. + * While the SetStatOption + * ENABLE_NO_OP setting ignores the error, it does generate a log entry in CloudWatch Logs, so you can determine when the client is making a SETSTAT call.

+ * + *

If you want to preserve the original timestamp for your file, and modify other file attributes using SETSTAT, you can use Amazon EFS as backend storage with Transfer Family.

+ *
+ */ + SetStatOption?: SetStatOption | string; } export namespace ProtocolDetails { @@ -885,19 +904,8 @@ export interface CreateServerRequest { EndpointType?: EndpointType | string; /** - *

The RSA or ECDSA private key to use for your server.

- * - *

Use the following command to generate an RSA 2048 bit key with no passphrase:

- *

- * ssh-keygen -t rsa -b 2048 -N "" -m PEM -f my-new-server-key.

- *

Use a minimum value of 2048 for the -b option: you can create a stronger key using 3072 or 4096.

- * - *

Use the following command to generate an ECDSA 256 bit key with no passphrase:

- *

- * ssh-keygen -t ecdsa -b 256 -N "" -m PEM -f my-new-server-key.

- *

Valid values for the -b option for ECDSA are 256, 384, and 521.

- * - *

For both of these commands, you can replace my-new-server-key with a string of your choice.

+ *

The RSA private key as generated by the ssh-keygen -N "" -m PEM -f + * my-new-server-key command.

* * *

If you aren't planning to migrate existing users from an existing SFTP-enabled @@ -1005,12 +1013,24 @@ export interface CreateServerRequest { /** *

The protocol settings that are configured for your server.

- *

- * Use the PassiveIp parameter to indicate passive mode (for FTP and FTPS protocols). - * Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer. - *

- *

Use the TlsSessionResumptionMode parameter to determine whether or not your Transfer server - * resumes recent, negotiated sessions through a unique session ID.

+ * */ ProtocolDetails?: ProtocolDetails; @@ -3872,15 +3892,25 @@ export interface UpdateServerRequest { Certificate?: string; /** - *

- * The protocol settings that are configured for your server. - *

- *

- * Use the PassiveIp parameter to indicate passive mode (for FTP and FTPS protocols). - * Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer. - *

- *

Use the TlsSessionResumptionMode parameter to determine whether or not your Transfer server - * resumes recent, negotiated sessions through a unique session ID.

+ *

The protocol settings that are configured for your server.

+ * */ ProtocolDetails?: ProtocolDetails; @@ -3917,29 +3947,18 @@ export interface UpdateServerRequest { EndpointType?: EndpointType | string; /** - *

The RSA or ECDSA private key to use for your server.

- * - *

Use the following command to generate an RSA 2048 bit key with no passphrase:

- *

- * ssh-keygen -t rsa -b 2048 -N "" -m PEM -f my-new-server-key.

- *

Use a minimum value of 2048 for the -b option: you can create a stronger key using 3072 or 4096.

- * - *

Use the following command to generate an ECDSA 256 bit key with no passphrase:

- *

- * ssh-keygen -t ecdsa -b 256 -N "" -m PEM -f my-new-server-key.

- *

Valid values for the -b option for ECDSA are 256, 384, and 521.

- * - *

For both of these commands, you can replace my-new-server-key with a string of your choice.

+ *

The RSA private key as generated by ssh-keygen -N "" -m PEM -f + * my-new-server-key.

* * - *

If you aren't planning to migrate existing users from an existing SFTP-enabled - * server to a new server, don't update the host key. Accidentally changing a - * server's host key can be disruptive.

+ *

If you aren't planning to migrate existing users from an existing server to a new + * server, don't update the host key. Accidentally changing a server's host key can + * be disruptive.

*
* * * - *

For more information, see Change the host key for your SFTP-enabled server in the Amazon Web Services Transfer + *

For more information, see Change the host key for your SFTP-enabled server in the Amazon Web ServicesTransfer * Family User Guide.

*/ HostKey?: string; diff --git a/clients/client-transfer/src/protocols/Aws_json1_1.ts b/clients/client-transfer/src/protocols/Aws_json1_1.ts index f7a22f879eb7..efcdc0f3241a 100644 --- a/clients/client-transfer/src/protocols/Aws_json1_1.ts +++ b/clients/client-transfer/src/protocols/Aws_json1_1.ts @@ -2797,6 +2797,7 @@ const serializeAws_json1_1PosixProfile = (input: PosixProfile, context: __SerdeC const serializeAws_json1_1ProtocolDetails = (input: ProtocolDetails, context: __SerdeContext): any => { return { ...(input.PassiveIp !== undefined && input.PassiveIp !== null && { PassiveIp: input.PassiveIp }), + ...(input.SetStatOption !== undefined && input.SetStatOption !== null && { SetStatOption: input.SetStatOption }), ...(input.TlsSessionResumptionMode !== undefined && input.TlsSessionResumptionMode !== null && { TlsSessionResumptionMode: input.TlsSessionResumptionMode }), }; @@ -3770,6 +3771,7 @@ const deserializeAws_json1_1PosixProfile = (output: any, context: __SerdeContext const deserializeAws_json1_1ProtocolDetails = (output: any, context: __SerdeContext): ProtocolDetails => { return { PassiveIp: __expectString(output.PassiveIp), + SetStatOption: __expectString(output.SetStatOption), TlsSessionResumptionMode: __expectString(output.TlsSessionResumptionMode), } as any; }; diff --git a/codegen/sdk-codegen/aws-models/transfer.json b/codegen/sdk-codegen/aws-models/transfer.json index efed2fe9ec5f..ace812cb3154 100644 --- a/codegen/sdk-codegen/aws-models/transfer.json +++ b/codegen/sdk-codegen/aws-models/transfer.json @@ -298,7 +298,7 @@ "HostKey": { "target": "com.amazonaws.transfer#HostKey", "traits": { - "smithy.api#documentation": "

The RSA or ECDSA private key to use for your server.

\n \n

Use the following command to generate an RSA 2048 bit key with no passphrase:

\n

\n ssh-keygen -t rsa -b 2048 -N \"\" -m PEM -f my-new-server-key.

\n

Use a minimum value of 2048 for the -b option: you can create a stronger key using 3072 or 4096.

\n \n

Use the following command to generate an ECDSA 256 bit key with no passphrase:

\n

\n ssh-keygen -t ecdsa -b 256 -N \"\" -m PEM -f my-new-server-key.

\n

Valid values for the -b option for ECDSA are 256, 384, and 521.

\n \n

For both of these commands, you can replace my-new-server-key with a string of your choice.

\n\n \n

If you aren't planning to migrate existing users from an existing SFTP-enabled\n server to a new server, don't update the host key. Accidentally changing a\n server's host key can be disruptive.

\n
\n\n \n\n

For more information, see Change the host key for your SFTP-enabled server in the Amazon Web Services Transfer\n Family User Guide.

" + "smithy.api#documentation": "

The RSA private key as generated by the ssh-keygen -N \"\" -m PEM -f\n my-new-server-key command.

\n\n \n

If you aren't planning to migrate existing users from an existing SFTP-enabled\n server to a new server, don't update the host key. Accidentally changing a\n server's host key can be disruptive.

\n
\n\n \n\n

For more information, see Change the host key for your SFTP-enabled server in the Amazon Web Services Transfer\n Family User Guide.

" } }, "IdentityProviderDetails": { @@ -340,7 +340,7 @@ "ProtocolDetails": { "target": "com.amazonaws.transfer#ProtocolDetails", "traits": { - "smithy.api#documentation": "

The protocol settings that are configured for your server.

\n

\n Use the PassiveIp parameter to indicate passive mode (for FTP and FTPS protocols).\n Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer.\n

\n

Use the TlsSessionResumptionMode parameter to determine whether or not your Transfer server\n resumes recent, negotiated sessions through a unique session ID.

" + "smithy.api#documentation": "

The protocol settings that are configured for your server.

\n " } }, "SecurityPolicyName": { @@ -3236,6 +3236,12 @@ "traits": { "smithy.api#documentation": "

A property used with Transfer servers that use the FTPS protocol. TLS Session Resumption provides a mechanism to resume or share a negotiated secret\n key between the control and data connection for an FTPS session. TlsSessionResumptionMode determines whether or not the server resumes recent,\n negotiated sessions through a unique session ID. This property is available during CreateServer and UpdateServer calls.\n If a TlsSessionResumptionMode value is not specified during CreateServer, it is set to ENFORCED by default.

\n " } + }, + "SetStatOption": { + "target": "com.amazonaws.transfer#SetStatOption", + "traits": { + "smithy.api#documentation": "

Use the SetStatOption to ignore the error that is generated when the client attempts to use SETSTAT on a file you are uploading to an S3 bucket.

\n

Some SFTP file transfer clients can attempt to change the attributes of remote files, including timestamp and permissions, using commands, such as SETSTAT when uploading the file.\n However, these commands are not compatible with object storage systems, such as Amazon S3. Due to this incompatibility, file uploads from these clients can result in errors even when \n the file is otherwise successfully uploaded.

\n

Set the value to ENABLE_NO_OP to have the Transfer Family server ignore the SETSTAT command, and upload files without needing to make any changes to your SFTP client.\n While the SetStatOption \n ENABLE_NO_OP setting ignores the error, it does generate a log entry in CloudWatch Logs, so you can determine when the client is making a SETSTAT call.

\n \n

If you want to preserve the original timestamp for your file, and modify other file attributes using SETSTAT, you can use Amazon EFS as backend storage with Transfer Family.

\n
" + } } }, "traits": { @@ -3661,6 +3667,21 @@ "smithy.api#pattern": "^[\\w-]*$" } }, + "com.amazonaws.transfer#SetStatOption": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "DEFAULT", + "name": "DEFAULT" + }, + { + "value": "ENABLE_NO_OP", + "name": "ENABLE_NO_OP" + } + ] + } + }, "com.amazonaws.transfer#SourceFileLocation": { "type": "string", "traits": { @@ -4459,7 +4480,7 @@ "ProtocolDetails": { "target": "com.amazonaws.transfer#ProtocolDetails", "traits": { - "smithy.api#documentation": "

\n The protocol settings that are configured for your server.\n

\n

\n Use the PassiveIp parameter to indicate passive mode (for FTP and FTPS protocols).\n Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer.\n

\n

Use the TlsSessionResumptionMode parameter to determine whether or not your Transfer server\n resumes recent, negotiated sessions through a unique session ID.

" + "smithy.api#documentation": "

The protocol settings that are configured for your server.

\n " } }, "EndpointDetails": { @@ -4477,7 +4498,7 @@ "HostKey": { "target": "com.amazonaws.transfer#HostKey", "traits": { - "smithy.api#documentation": "

The RSA or ECDSA private key to use for your server.

\n \n

Use the following command to generate an RSA 2048 bit key with no passphrase:

\n

\n ssh-keygen -t rsa -b 2048 -N \"\" -m PEM -f my-new-server-key.

\n

Use a minimum value of 2048 for the -b option: you can create a stronger key using 3072 or 4096.

\n \n

Use the following command to generate an ECDSA 256 bit key with no passphrase:

\n

\n ssh-keygen -t ecdsa -b 256 -N \"\" -m PEM -f my-new-server-key.

\n

Valid values for the -b option for ECDSA are 256, 384, and 521.

\n \n

For both of these commands, you can replace my-new-server-key with a string of your choice.

\n\n \n

If you aren't planning to migrate existing users from an existing SFTP-enabled\n server to a new server, don't update the host key. Accidentally changing a\n server's host key can be disruptive.

\n
\n\n \n\n

For more information, see Change the host key for your SFTP-enabled server in the Amazon Web Services Transfer\n Family User Guide.

" + "smithy.api#documentation": "

The RSA private key as generated by ssh-keygen -N \"\" -m PEM -f\n my-new-server-key.

\n\n \n

If you aren't planning to migrate existing users from an existing server to a new\n server, don't update the host key. Accidentally changing a server's host key can\n be disruptive.

\n
\n\n \n\n

For more information, see Change the host key for your SFTP-enabled server in the Amazon Web ServicesTransfer\n Family User Guide.

" } }, "IdentityProviderDetails": {