/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace Transfer { namespace Model { /** *

The protocol settings that are configured for your server.

See * Also:

AWS * API Reference

*/ class ProtocolDetails { public: AWS_TRANSFER_API ProtocolDetails(); AWS_TRANSFER_API ProtocolDetails(Aws::Utils::Json::JsonView jsonValue); AWS_TRANSFER_API ProtocolDetails& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_TRANSFER_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

Indicates passive mode, for FTP and FTPS protocols. Enter a single IPv4 * address, such as the public IP address of a firewall, router, or load balancer. * For example:

aws transfer update-server --protocol-details * PassiveIp=0.0.0.0

Replace 0.0.0.0 in the example * above with the actual IP address you want to use.

If you change * the PassiveIp value, you must stop and then restart your Transfer * Family server for the change to take effect. For details on using passive mode * (PASV) in a NAT environment, see Configuring * your FTPS server behind a firewall or NAT with Transfer Family.

*

Special values

The AUTO and 0.0.0.0 * are special values for the PassiveIp parameter. The value * PassiveIp=AUTO is assigned by default to FTP and FTPS type servers. * In this case, the server automatically responds with one of the endpoint IPs * within the PASV response. PassiveIp=0.0.0.0 has a more unique * application for its usage. For example, if you have a High Availability (HA) * Network Load Balancer (NLB) environment, where you have 3 subnets, you can only * specify a single IP address using the PassiveIp parameter. This * reduces the effectiveness of having High Availability. In this case, you can * specify PassiveIp=0.0.0.0. This tells the client to use the same IP * address as the Control connection and utilize all AZs for their connections. * Note, however, that not all FTP clients support the * PassiveIp=0.0.0.0 response. FileZilla and WinSCP do support it. If * you are using other clients, check to see if your client supports the * PassiveIp=0.0.0.0 response.

*/ inline const Aws::String& GetPassiveIp() const{ return m_passiveIp; } /** *

Indicates passive mode, for FTP and FTPS protocols. Enter a single IPv4 * address, such as the public IP address of a firewall, router, or load balancer. * For example:

aws transfer update-server --protocol-details * PassiveIp=0.0.0.0

Replace 0.0.0.0 in the example * above with the actual IP address you want to use.

If you change * the PassiveIp value, you must stop and then restart your Transfer * Family server for the change to take effect. For details on using passive mode * (PASV) in a NAT environment, see Configuring * your FTPS server behind a firewall or NAT with Transfer Family.

*

Special values

The AUTO and 0.0.0.0 * are special values for the PassiveIp parameter. The value * PassiveIp=AUTO is assigned by default to FTP and FTPS type servers. * In this case, the server automatically responds with one of the endpoint IPs * within the PASV response. PassiveIp=0.0.0.0 has a more unique * application for its usage. For example, if you have a High Availability (HA) * Network Load Balancer (NLB) environment, where you have 3 subnets, you can only * specify a single IP address using the PassiveIp parameter. This * reduces the effectiveness of having High Availability. In this case, you can * specify PassiveIp=0.0.0.0. This tells the client to use the same IP * address as the Control connection and utilize all AZs for their connections. * Note, however, that not all FTP clients support the * PassiveIp=0.0.0.0 response. FileZilla and WinSCP do support it. If * you are using other clients, check to see if your client supports the * PassiveIp=0.0.0.0 response.

*/ inline bool PassiveIpHasBeenSet() const { return m_passiveIpHasBeenSet; } /** *

Indicates passive mode, for FTP and FTPS protocols. Enter a single IPv4 * address, such as the public IP address of a firewall, router, or load balancer. * For example:

aws transfer update-server --protocol-details * PassiveIp=0.0.0.0

Replace 0.0.0.0 in the example * above with the actual IP address you want to use.

If you change * the PassiveIp value, you must stop and then restart your Transfer * Family server for the change to take effect. For details on using passive mode * (PASV) in a NAT environment, see Configuring * your FTPS server behind a firewall or NAT with Transfer Family.

*

Special values

The AUTO and 0.0.0.0 * are special values for the PassiveIp parameter. The value * PassiveIp=AUTO is assigned by default to FTP and FTPS type servers. * In this case, the server automatically responds with one of the endpoint IPs * within the PASV response. PassiveIp=0.0.0.0 has a more unique * application for its usage. For example, if you have a High Availability (HA) * Network Load Balancer (NLB) environment, where you have 3 subnets, you can only * specify a single IP address using the PassiveIp parameter. This * reduces the effectiveness of having High Availability. In this case, you can * specify PassiveIp=0.0.0.0. This tells the client to use the same IP * address as the Control connection and utilize all AZs for their connections. * Note, however, that not all FTP clients support the * PassiveIp=0.0.0.0 response. FileZilla and WinSCP do support it. If * you are using other clients, check to see if your client supports the * PassiveIp=0.0.0.0 response.

*/ inline void SetPassiveIp(const Aws::String& value) { m_passiveIpHasBeenSet = true; m_passiveIp = value; } /** *

Indicates passive mode, for FTP and FTPS protocols. Enter a single IPv4 * address, such as the public IP address of a firewall, router, or load balancer. * For example:

aws transfer update-server --protocol-details * PassiveIp=0.0.0.0

Replace 0.0.0.0 in the example * above with the actual IP address you want to use.

If you change * the PassiveIp value, you must stop and then restart your Transfer * Family server for the change to take effect. For details on using passive mode * (PASV) in a NAT environment, see Configuring * your FTPS server behind a firewall or NAT with Transfer Family.

*

Special values

The AUTO and 0.0.0.0 * are special values for the PassiveIp parameter. The value * PassiveIp=AUTO is assigned by default to FTP and FTPS type servers. * In this case, the server automatically responds with one of the endpoint IPs * within the PASV response. PassiveIp=0.0.0.0 has a more unique * application for its usage. For example, if you have a High Availability (HA) * Network Load Balancer (NLB) environment, where you have 3 subnets, you can only * specify a single IP address using the PassiveIp parameter. This * reduces the effectiveness of having High Availability. In this case, you can * specify PassiveIp=0.0.0.0. This tells the client to use the same IP * address as the Control connection and utilize all AZs for their connections. * Note, however, that not all FTP clients support the * PassiveIp=0.0.0.0 response. FileZilla and WinSCP do support it. If * you are using other clients, check to see if your client supports the * PassiveIp=0.0.0.0 response.

*/ inline void SetPassiveIp(Aws::String&& value) { m_passiveIpHasBeenSet = true; m_passiveIp = std::move(value); } /** *

Indicates passive mode, for FTP and FTPS protocols. Enter a single IPv4 * address, such as the public IP address of a firewall, router, or load balancer. * For example:

aws transfer update-server --protocol-details * PassiveIp=0.0.0.0

Replace 0.0.0.0 in the example * above with the actual IP address you want to use.

If you change * the PassiveIp value, you must stop and then restart your Transfer * Family server for the change to take effect. For details on using passive mode * (PASV) in a NAT environment, see Configuring * your FTPS server behind a firewall or NAT with Transfer Family.

*

Special values

The AUTO and 0.0.0.0 * are special values for the PassiveIp parameter. The value * PassiveIp=AUTO is assigned by default to FTP and FTPS type servers. * In this case, the server automatically responds with one of the endpoint IPs * within the PASV response. PassiveIp=0.0.0.0 has a more unique * application for its usage. For example, if you have a High Availability (HA) * Network Load Balancer (NLB) environment, where you have 3 subnets, you can only * specify a single IP address using the PassiveIp parameter. This * reduces the effectiveness of having High Availability. In this case, you can * specify PassiveIp=0.0.0.0. This tells the client to use the same IP * address as the Control connection and utilize all AZs for their connections. * Note, however, that not all FTP clients support the * PassiveIp=0.0.0.0 response. FileZilla and WinSCP do support it. If * you are using other clients, check to see if your client supports the * PassiveIp=0.0.0.0 response.

*/ inline void SetPassiveIp(const char* value) { m_passiveIpHasBeenSet = true; m_passiveIp.assign(value); } /** *

Indicates passive mode, for FTP and FTPS protocols. Enter a single IPv4 * address, such as the public IP address of a firewall, router, or load balancer. * For example:

aws transfer update-server --protocol-details * PassiveIp=0.0.0.0

Replace 0.0.0.0 in the example * above with the actual IP address you want to use.

If you change * the PassiveIp value, you must stop and then restart your Transfer * Family server for the change to take effect. For details on using passive mode * (PASV) in a NAT environment, see Configuring * your FTPS server behind a firewall or NAT with Transfer Family.

*

Special values

The AUTO and 0.0.0.0 * are special values for the PassiveIp parameter. The value * PassiveIp=AUTO is assigned by default to FTP and FTPS type servers. * In this case, the server automatically responds with one of the endpoint IPs * within the PASV response. PassiveIp=0.0.0.0 has a more unique * application for its usage. For example, if you have a High Availability (HA) * Network Load Balancer (NLB) environment, where you have 3 subnets, you can only * specify a single IP address using the PassiveIp parameter. This * reduces the effectiveness of having High Availability. In this case, you can * specify PassiveIp=0.0.0.0. This tells the client to use the same IP * address as the Control connection and utilize all AZs for their connections. * Note, however, that not all FTP clients support the * PassiveIp=0.0.0.0 response. FileZilla and WinSCP do support it. If * you are using other clients, check to see if your client supports the * PassiveIp=0.0.0.0 response.

*/ inline ProtocolDetails& WithPassiveIp(const Aws::String& value) { SetPassiveIp(value); return *this;} /** *

Indicates passive mode, for FTP and FTPS protocols. Enter a single IPv4 * address, such as the public IP address of a firewall, router, or load balancer. * For example:

aws transfer update-server --protocol-details * PassiveIp=0.0.0.0

Replace 0.0.0.0 in the example * above with the actual IP address you want to use.

If you change * the PassiveIp value, you must stop and then restart your Transfer * Family server for the change to take effect. For details on using passive mode * (PASV) in a NAT environment, see Configuring * your FTPS server behind a firewall or NAT with Transfer Family.

*

Special values

The AUTO and 0.0.0.0 * are special values for the PassiveIp parameter. The value * PassiveIp=AUTO is assigned by default to FTP and FTPS type servers. * In this case, the server automatically responds with one of the endpoint IPs * within the PASV response. PassiveIp=0.0.0.0 has a more unique * application for its usage. For example, if you have a High Availability (HA) * Network Load Balancer (NLB) environment, where you have 3 subnets, you can only * specify a single IP address using the PassiveIp parameter. This * reduces the effectiveness of having High Availability. In this case, you can * specify PassiveIp=0.0.0.0. This tells the client to use the same IP * address as the Control connection and utilize all AZs for their connections. * Note, however, that not all FTP clients support the * PassiveIp=0.0.0.0 response. FileZilla and WinSCP do support it. If * you are using other clients, check to see if your client supports the * PassiveIp=0.0.0.0 response.

*/ inline ProtocolDetails& WithPassiveIp(Aws::String&& value) { SetPassiveIp(std::move(value)); return *this;} /** *

Indicates passive mode, for FTP and FTPS protocols. Enter a single IPv4 * address, such as the public IP address of a firewall, router, or load balancer. * For example:

aws transfer update-server --protocol-details * PassiveIp=0.0.0.0

Replace 0.0.0.0 in the example * above with the actual IP address you want to use.

If you change * the PassiveIp value, you must stop and then restart your Transfer * Family server for the change to take effect. For details on using passive mode * (PASV) in a NAT environment, see Configuring * your FTPS server behind a firewall or NAT with Transfer Family.

*

Special values

The AUTO and 0.0.0.0 * are special values for the PassiveIp parameter. The value * PassiveIp=AUTO is assigned by default to FTP and FTPS type servers. * In this case, the server automatically responds with one of the endpoint IPs * within the PASV response. PassiveIp=0.0.0.0 has a more unique * application for its usage. For example, if you have a High Availability (HA) * Network Load Balancer (NLB) environment, where you have 3 subnets, you can only * specify a single IP address using the PassiveIp parameter. This * reduces the effectiveness of having High Availability. In this case, you can * specify PassiveIp=0.0.0.0. This tells the client to use the same IP * address as the Control connection and utilize all AZs for their connections. * Note, however, that not all FTP clients support the * PassiveIp=0.0.0.0 response. FileZilla and WinSCP do support it. If * you are using other clients, check to see if your client supports the * PassiveIp=0.0.0.0 response.

*/ inline ProtocolDetails& WithPassiveIp(const char* value) { SetPassiveIp(value); return *this;} /** *

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

*
  • DISABLED: the server does not process TLS session * resumption client requests and creates a new TLS session for each request.

    *
  • ENABLED: the server processes and accepts clients * that are performing TLS session resumption. The server doesn't reject client * data connections that do not perform the TLS session resumption client * processing.

  • ENFORCED: the server processes and * accepts clients that are performing TLS session resumption. The server rejects * client data connections that do not perform the TLS session resumption client * processing. Before you set the value to ENFORCED, test your * clients.

    Not all FTPS clients perform TLS session resumption. So, * if you choose to enforce TLS session resumption, you prevent any connections * from FTPS clients that don't perform the protocol negotiation. To determine * whether or not you can use the ENFORCED value, you need to test * your clients.

*/ inline const TlsSessionResumptionMode& GetTlsSessionResumptionMode() const{ return m_tlsSessionResumptionMode; } /** *

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

*
  • DISABLED: the server does not process TLS session * resumption client requests and creates a new TLS session for each request.

    *
  • ENABLED: the server processes and accepts clients * that are performing TLS session resumption. The server doesn't reject client * data connections that do not perform the TLS session resumption client * processing.

  • ENFORCED: the server processes and * accepts clients that are performing TLS session resumption. The server rejects * client data connections that do not perform the TLS session resumption client * processing. Before you set the value to ENFORCED, test your * clients.

    Not all FTPS clients perform TLS session resumption. So, * if you choose to enforce TLS session resumption, you prevent any connections * from FTPS clients that don't perform the protocol negotiation. To determine * whether or not you can use the ENFORCED value, you need to test * your clients.

*/ inline bool TlsSessionResumptionModeHasBeenSet() const { return m_tlsSessionResumptionModeHasBeenSet; } /** *

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

*
  • DISABLED: the server does not process TLS session * resumption client requests and creates a new TLS session for each request.

    *
  • ENABLED: the server processes and accepts clients * that are performing TLS session resumption. The server doesn't reject client * data connections that do not perform the TLS session resumption client * processing.

  • ENFORCED: the server processes and * accepts clients that are performing TLS session resumption. The server rejects * client data connections that do not perform the TLS session resumption client * processing. Before you set the value to ENFORCED, test your * clients.

    Not all FTPS clients perform TLS session resumption. So, * if you choose to enforce TLS session resumption, you prevent any connections * from FTPS clients that don't perform the protocol negotiation. To determine * whether or not you can use the ENFORCED value, you need to test * your clients.

*/ inline void SetTlsSessionResumptionMode(const TlsSessionResumptionMode& value) { m_tlsSessionResumptionModeHasBeenSet = true; m_tlsSessionResumptionMode = value; } /** *

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

*
  • DISABLED: the server does not process TLS session * resumption client requests and creates a new TLS session for each request.

    *
  • ENABLED: the server processes and accepts clients * that are performing TLS session resumption. The server doesn't reject client * data connections that do not perform the TLS session resumption client * processing.

  • ENFORCED: the server processes and * accepts clients that are performing TLS session resumption. The server rejects * client data connections that do not perform the TLS session resumption client * processing. Before you set the value to ENFORCED, test your * clients.

    Not all FTPS clients perform TLS session resumption. So, * if you choose to enforce TLS session resumption, you prevent any connections * from FTPS clients that don't perform the protocol negotiation. To determine * whether or not you can use the ENFORCED value, you need to test * your clients.

*/ inline void SetTlsSessionResumptionMode(TlsSessionResumptionMode&& value) { m_tlsSessionResumptionModeHasBeenSet = true; m_tlsSessionResumptionMode = std::move(value); } /** *

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

*
  • DISABLED: the server does not process TLS session * resumption client requests and creates a new TLS session for each request.

    *
  • ENABLED: the server processes and accepts clients * that are performing TLS session resumption. The server doesn't reject client * data connections that do not perform the TLS session resumption client * processing.

  • ENFORCED: the server processes and * accepts clients that are performing TLS session resumption. The server rejects * client data connections that do not perform the TLS session resumption client * processing. Before you set the value to ENFORCED, test your * clients.

    Not all FTPS clients perform TLS session resumption. So, * if you choose to enforce TLS session resumption, you prevent any connections * from FTPS clients that don't perform the protocol negotiation. To determine * whether or not you can use the ENFORCED value, you need to test * your clients.

*/ inline ProtocolDetails& WithTlsSessionResumptionMode(const TlsSessionResumptionMode& value) { SetTlsSessionResumptionMode(value); return *this;} /** *

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

*
  • DISABLED: the server does not process TLS session * resumption client requests and creates a new TLS session for each request.

    *
  • ENABLED: the server processes and accepts clients * that are performing TLS session resumption. The server doesn't reject client * data connections that do not perform the TLS session resumption client * processing.

  • ENFORCED: the server processes and * accepts clients that are performing TLS session resumption. The server rejects * client data connections that do not perform the TLS session resumption client * processing. Before you set the value to ENFORCED, test your * clients.

    Not all FTPS clients perform TLS session resumption. So, * if you choose to enforce TLS session resumption, you prevent any connections * from FTPS clients that don't perform the protocol negotiation. To determine * whether or not you can use the ENFORCED value, you need to test * your clients.

*/ inline ProtocolDetails& WithTlsSessionResumptionMode(TlsSessionResumptionMode&& value) { SetTlsSessionResumptionMode(std::move(value)); return *this;} /** *

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 Amazon 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.

*/ inline const SetStatOption& GetSetStatOption() const{ return m_setStatOption; } /** *

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 Amazon 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.

*/ inline bool SetStatOptionHasBeenSet() const { return m_setStatOptionHasBeenSet; } /** *

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 Amazon 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.

*/ inline void SetSetStatOption(const SetStatOption& value) { m_setStatOptionHasBeenSet = true; m_setStatOption = value; } /** *

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 Amazon 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.

*/ inline void SetSetStatOption(SetStatOption&& value) { m_setStatOptionHasBeenSet = true; m_setStatOption = std::move(value); } /** *

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 Amazon 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.

*/ inline ProtocolDetails& WithSetStatOption(const SetStatOption& value) { SetSetStatOption(value); return *this;} /** *

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 Amazon 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.

*/ inline ProtocolDetails& WithSetStatOption(SetStatOption&& value) { SetSetStatOption(std::move(value)); return *this;} /** *

Indicates the transport method for the AS2 messages. Currently, only HTTP is * supported.

*/ inline const Aws::Vector& GetAs2Transports() const{ return m_as2Transports; } /** *

Indicates the transport method for the AS2 messages. Currently, only HTTP is * supported.

*/ inline bool As2TransportsHasBeenSet() const { return m_as2TransportsHasBeenSet; } /** *

Indicates the transport method for the AS2 messages. Currently, only HTTP is * supported.

*/ inline void SetAs2Transports(const Aws::Vector& value) { m_as2TransportsHasBeenSet = true; m_as2Transports = value; } /** *

Indicates the transport method for the AS2 messages. Currently, only HTTP is * supported.

*/ inline void SetAs2Transports(Aws::Vector&& value) { m_as2TransportsHasBeenSet = true; m_as2Transports = std::move(value); } /** *

Indicates the transport method for the AS2 messages. Currently, only HTTP is * supported.

*/ inline ProtocolDetails& WithAs2Transports(const Aws::Vector& value) { SetAs2Transports(value); return *this;} /** *

Indicates the transport method for the AS2 messages. Currently, only HTTP is * supported.

*/ inline ProtocolDetails& WithAs2Transports(Aws::Vector&& value) { SetAs2Transports(std::move(value)); return *this;} /** *

Indicates the transport method for the AS2 messages. Currently, only HTTP is * supported.

*/ inline ProtocolDetails& AddAs2Transports(const As2Transport& value) { m_as2TransportsHasBeenSet = true; m_as2Transports.push_back(value); return *this; } /** *

Indicates the transport method for the AS2 messages. Currently, only HTTP is * supported.

*/ inline ProtocolDetails& AddAs2Transports(As2Transport&& value) { m_as2TransportsHasBeenSet = true; m_as2Transports.push_back(std::move(value)); return *this; } private: Aws::String m_passiveIp; bool m_passiveIpHasBeenSet = false; TlsSessionResumptionMode m_tlsSessionResumptionMode; bool m_tlsSessionResumptionModeHasBeenSet = false; SetStatOption m_setStatOption; bool m_setStatOptionHasBeenSet = false; Aws::Vector m_as2Transports; bool m_as2TransportsHasBeenSet = false; }; } // namespace Model } // namespace Transfer } // namespace Aws