/** * 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 #include #include namespace Aws { namespace Transfer { namespace Model { /** */ class AWS_TRANSFER_API UpdateServerRequest : public TransferRequest { public: UpdateServerRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "UpdateServer"; } Aws::String SerializePayload() const override; Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The Amazon Resource Name (ARN) of the AWS Certificate Manager (ACM) * certificate. Required when Protocols is set to * FTPS.

To request a new public certificate, see Request * a public certificate in the AWS Certificate Manager User Guide.

*

To import an existing certificate into ACM, see Importing * certificates into ACM in the AWS Certificate Manager User Guide.

*

To request a private certificate to use FTPS through private IP addresses, * see Request * a private certificate in the AWS Certificate Manager User Guide.

*

Certificates with the following cryptographic algorithms and key sizes are * supported:

  • 2048-bit RSA (RSA_2048)

  • 4096-bit * RSA (RSA_4096)

  • Elliptic Prime Curve 256 bit * (EC_prime256v1)

  • Elliptic Prime Curve 384 bit * (EC_secp384r1)

  • Elliptic Prime Curve 521 bit (EC_secp521r1)

    *

The certificate must be a valid SSL/TLS X.509 version 3 * certificate with FQDN or IP address specified and information about the * issuer.

*/ inline const Aws::String& GetCertificate() const{ return m_certificate; } /** *

The Amazon Resource Name (ARN) of the AWS Certificate Manager (ACM) * certificate. Required when Protocols is set to * FTPS.

To request a new public certificate, see Request * a public certificate in the AWS Certificate Manager User Guide.

*

To import an existing certificate into ACM, see Importing * certificates into ACM in the AWS Certificate Manager User Guide.

*

To request a private certificate to use FTPS through private IP addresses, * see Request * a private certificate in the AWS Certificate Manager User Guide.

*

Certificates with the following cryptographic algorithms and key sizes are * supported:

  • 2048-bit RSA (RSA_2048)

  • 4096-bit * RSA (RSA_4096)

  • Elliptic Prime Curve 256 bit * (EC_prime256v1)

  • Elliptic Prime Curve 384 bit * (EC_secp384r1)

  • Elliptic Prime Curve 521 bit (EC_secp521r1)

    *

The certificate must be a valid SSL/TLS X.509 version 3 * certificate with FQDN or IP address specified and information about the * issuer.

*/ inline bool CertificateHasBeenSet() const { return m_certificateHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the AWS Certificate Manager (ACM) * certificate. Required when Protocols is set to * FTPS.

To request a new public certificate, see Request * a public certificate in the AWS Certificate Manager User Guide.

*

To import an existing certificate into ACM, see Importing * certificates into ACM in the AWS Certificate Manager User Guide.

*

To request a private certificate to use FTPS through private IP addresses, * see Request * a private certificate in the AWS Certificate Manager User Guide.

*

Certificates with the following cryptographic algorithms and key sizes are * supported:

  • 2048-bit RSA (RSA_2048)

  • 4096-bit * RSA (RSA_4096)

  • Elliptic Prime Curve 256 bit * (EC_prime256v1)

  • Elliptic Prime Curve 384 bit * (EC_secp384r1)

  • Elliptic Prime Curve 521 bit (EC_secp521r1)

    *

The certificate must be a valid SSL/TLS X.509 version 3 * certificate with FQDN or IP address specified and information about the * issuer.

*/ inline void SetCertificate(const Aws::String& value) { m_certificateHasBeenSet = true; m_certificate = value; } /** *

The Amazon Resource Name (ARN) of the AWS Certificate Manager (ACM) * certificate. Required when Protocols is set to * FTPS.

To request a new public certificate, see Request * a public certificate in the AWS Certificate Manager User Guide.

*

To import an existing certificate into ACM, see Importing * certificates into ACM in the AWS Certificate Manager User Guide.

*

To request a private certificate to use FTPS through private IP addresses, * see Request * a private certificate in the AWS Certificate Manager User Guide.

*

Certificates with the following cryptographic algorithms and key sizes are * supported:

  • 2048-bit RSA (RSA_2048)

  • 4096-bit * RSA (RSA_4096)

  • Elliptic Prime Curve 256 bit * (EC_prime256v1)

  • Elliptic Prime Curve 384 bit * (EC_secp384r1)

  • Elliptic Prime Curve 521 bit (EC_secp521r1)

    *

The certificate must be a valid SSL/TLS X.509 version 3 * certificate with FQDN or IP address specified and information about the * issuer.

*/ inline void SetCertificate(Aws::String&& value) { m_certificateHasBeenSet = true; m_certificate = std::move(value); } /** *

The Amazon Resource Name (ARN) of the AWS Certificate Manager (ACM) * certificate. Required when Protocols is set to * FTPS.

To request a new public certificate, see Request * a public certificate in the AWS Certificate Manager User Guide.

*

To import an existing certificate into ACM, see Importing * certificates into ACM in the AWS Certificate Manager User Guide.

*

To request a private certificate to use FTPS through private IP addresses, * see Request * a private certificate in the AWS Certificate Manager User Guide.

*

Certificates with the following cryptographic algorithms and key sizes are * supported:

  • 2048-bit RSA (RSA_2048)

  • 4096-bit * RSA (RSA_4096)

  • Elliptic Prime Curve 256 bit * (EC_prime256v1)

  • Elliptic Prime Curve 384 bit * (EC_secp384r1)

  • Elliptic Prime Curve 521 bit (EC_secp521r1)

    *

The certificate must be a valid SSL/TLS X.509 version 3 * certificate with FQDN or IP address specified and information about the * issuer.

*/ inline void SetCertificate(const char* value) { m_certificateHasBeenSet = true; m_certificate.assign(value); } /** *

The Amazon Resource Name (ARN) of the AWS Certificate Manager (ACM) * certificate. Required when Protocols is set to * FTPS.

To request a new public certificate, see Request * a public certificate in the AWS Certificate Manager User Guide.

*

To import an existing certificate into ACM, see Importing * certificates into ACM in the AWS Certificate Manager User Guide.

*

To request a private certificate to use FTPS through private IP addresses, * see Request * a private certificate in the AWS Certificate Manager User Guide.

*

Certificates with the following cryptographic algorithms and key sizes are * supported:

  • 2048-bit RSA (RSA_2048)

  • 4096-bit * RSA (RSA_4096)

  • Elliptic Prime Curve 256 bit * (EC_prime256v1)

  • Elliptic Prime Curve 384 bit * (EC_secp384r1)

  • Elliptic Prime Curve 521 bit (EC_secp521r1)

    *

The certificate must be a valid SSL/TLS X.509 version 3 * certificate with FQDN or IP address specified and information about the * issuer.

*/ inline UpdateServerRequest& WithCertificate(const Aws::String& value) { SetCertificate(value); return *this;} /** *

The Amazon Resource Name (ARN) of the AWS Certificate Manager (ACM) * certificate. Required when Protocols is set to * FTPS.

To request a new public certificate, see Request * a public certificate in the AWS Certificate Manager User Guide.

*

To import an existing certificate into ACM, see Importing * certificates into ACM in the AWS Certificate Manager User Guide.

*

To request a private certificate to use FTPS through private IP addresses, * see Request * a private certificate in the AWS Certificate Manager User Guide.

*

Certificates with the following cryptographic algorithms and key sizes are * supported:

  • 2048-bit RSA (RSA_2048)

  • 4096-bit * RSA (RSA_4096)

  • Elliptic Prime Curve 256 bit * (EC_prime256v1)

  • Elliptic Prime Curve 384 bit * (EC_secp384r1)

  • Elliptic Prime Curve 521 bit (EC_secp521r1)

    *

The certificate must be a valid SSL/TLS X.509 version 3 * certificate with FQDN or IP address specified and information about the * issuer.

*/ inline UpdateServerRequest& WithCertificate(Aws::String&& value) { SetCertificate(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the AWS Certificate Manager (ACM) * certificate. Required when Protocols is set to * FTPS.

To request a new public certificate, see Request * a public certificate in the AWS Certificate Manager User Guide.

*

To import an existing certificate into ACM, see Importing * certificates into ACM in the AWS Certificate Manager User Guide.

*

To request a private certificate to use FTPS through private IP addresses, * see Request * a private certificate in the AWS Certificate Manager User Guide.

*

Certificates with the following cryptographic algorithms and key sizes are * supported:

  • 2048-bit RSA (RSA_2048)

  • 4096-bit * RSA (RSA_4096)

  • Elliptic Prime Curve 256 bit * (EC_prime256v1)

  • Elliptic Prime Curve 384 bit * (EC_secp384r1)

  • Elliptic Prime Curve 521 bit (EC_secp521r1)

    *

The certificate must be a valid SSL/TLS X.509 version 3 * certificate with FQDN or IP address specified and information about the * issuer.

*/ inline UpdateServerRequest& WithCertificate(const char* value) { SetCertificate(value); return *this;} /** *

The virtual private cloud (VPC) endpoint settings that are configured for * your file transfer protocol-enabled server. With a VPC endpoint, you can * restrict access to your server to resources only within your VPC. To control * incoming internet traffic, you will need to associate one or more Elastic IP * addresses with your server's endpoint.

*/ inline const EndpointDetails& GetEndpointDetails() const{ return m_endpointDetails; } /** *

The virtual private cloud (VPC) endpoint settings that are configured for * your file transfer protocol-enabled server. With a VPC endpoint, you can * restrict access to your server to resources only within your VPC. To control * incoming internet traffic, you will need to associate one or more Elastic IP * addresses with your server's endpoint.

*/ inline bool EndpointDetailsHasBeenSet() const { return m_endpointDetailsHasBeenSet; } /** *

The virtual private cloud (VPC) endpoint settings that are configured for * your file transfer protocol-enabled server. With a VPC endpoint, you can * restrict access to your server to resources only within your VPC. To control * incoming internet traffic, you will need to associate one or more Elastic IP * addresses with your server's endpoint.

*/ inline void SetEndpointDetails(const EndpointDetails& value) { m_endpointDetailsHasBeenSet = true; m_endpointDetails = value; } /** *

The virtual private cloud (VPC) endpoint settings that are configured for * your file transfer protocol-enabled server. With a VPC endpoint, you can * restrict access to your server to resources only within your VPC. To control * incoming internet traffic, you will need to associate one or more Elastic IP * addresses with your server's endpoint.

*/ inline void SetEndpointDetails(EndpointDetails&& value) { m_endpointDetailsHasBeenSet = true; m_endpointDetails = std::move(value); } /** *

The virtual private cloud (VPC) endpoint settings that are configured for * your file transfer protocol-enabled server. With a VPC endpoint, you can * restrict access to your server to resources only within your VPC. To control * incoming internet traffic, you will need to associate one or more Elastic IP * addresses with your server's endpoint.

*/ inline UpdateServerRequest& WithEndpointDetails(const EndpointDetails& value) { SetEndpointDetails(value); return *this;} /** *

The virtual private cloud (VPC) endpoint settings that are configured for * your file transfer protocol-enabled server. With a VPC endpoint, you can * restrict access to your server to resources only within your VPC. To control * incoming internet traffic, you will need to associate one or more Elastic IP * addresses with your server's endpoint.

*/ inline UpdateServerRequest& WithEndpointDetails(EndpointDetails&& value) { SetEndpointDetails(std::move(value)); return *this;} /** *

The type of endpoint that you want your file transfer protocol-enabled server * to connect to. You can choose to connect to the public internet or a VPC * endpoint. With a VPC endpoint, you can restrict access to your server and * resources only within your VPC.

It is recommended that you use * VPC as the EndpointType. With this endpoint type, you * have the option to directly associate up to three Elastic IPv4 addresses (BYO IP * included) with your server's endpoint and use VPC security groups to restrict * traffic by the client's public IP address. This is not possible with * EndpointType set to VPC_ENDPOINT.

*/ inline const EndpointType& GetEndpointType() const{ return m_endpointType; } /** *

The type of endpoint that you want your file transfer protocol-enabled server * to connect to. You can choose to connect to the public internet or a VPC * endpoint. With a VPC endpoint, you can restrict access to your server and * resources only within your VPC.

It is recommended that you use * VPC as the EndpointType. With this endpoint type, you * have the option to directly associate up to three Elastic IPv4 addresses (BYO IP * included) with your server's endpoint and use VPC security groups to restrict * traffic by the client's public IP address. This is not possible with * EndpointType set to VPC_ENDPOINT.

*/ inline bool EndpointTypeHasBeenSet() const { return m_endpointTypeHasBeenSet; } /** *

The type of endpoint that you want your file transfer protocol-enabled server * to connect to. You can choose to connect to the public internet or a VPC * endpoint. With a VPC endpoint, you can restrict access to your server and * resources only within your VPC.

It is recommended that you use * VPC as the EndpointType. With this endpoint type, you * have the option to directly associate up to three Elastic IPv4 addresses (BYO IP * included) with your server's endpoint and use VPC security groups to restrict * traffic by the client's public IP address. This is not possible with * EndpointType set to VPC_ENDPOINT.

*/ inline void SetEndpointType(const EndpointType& value) { m_endpointTypeHasBeenSet = true; m_endpointType = value; } /** *

The type of endpoint that you want your file transfer protocol-enabled server * to connect to. You can choose to connect to the public internet or a VPC * endpoint. With a VPC endpoint, you can restrict access to your server and * resources only within your VPC.

It is recommended that you use * VPC as the EndpointType. With this endpoint type, you * have the option to directly associate up to three Elastic IPv4 addresses (BYO IP * included) with your server's endpoint and use VPC security groups to restrict * traffic by the client's public IP address. This is not possible with * EndpointType set to VPC_ENDPOINT.

*/ inline void SetEndpointType(EndpointType&& value) { m_endpointTypeHasBeenSet = true; m_endpointType = std::move(value); } /** *

The type of endpoint that you want your file transfer protocol-enabled server * to connect to. You can choose to connect to the public internet or a VPC * endpoint. With a VPC endpoint, you can restrict access to your server and * resources only within your VPC.

It is recommended that you use * VPC as the EndpointType. With this endpoint type, you * have the option to directly associate up to three Elastic IPv4 addresses (BYO IP * included) with your server's endpoint and use VPC security groups to restrict * traffic by the client's public IP address. This is not possible with * EndpointType set to VPC_ENDPOINT.

*/ inline UpdateServerRequest& WithEndpointType(const EndpointType& value) { SetEndpointType(value); return *this;} /** *

The type of endpoint that you want your file transfer protocol-enabled server * to connect to. You can choose to connect to the public internet or a VPC * endpoint. With a VPC endpoint, you can restrict access to your server and * resources only within your VPC.

It is recommended that you use * VPC as the EndpointType. With this endpoint type, you * have the option to directly associate up to three Elastic IPv4 addresses (BYO IP * included) with your server's endpoint and use VPC security groups to restrict * traffic by the client's public IP address. This is not possible with * EndpointType set to VPC_ENDPOINT.

*/ inline UpdateServerRequest& WithEndpointType(EndpointType&& value) { SetEndpointType(std::move(value)); return *this;} /** *

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 file transfer protocol-enabled 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 AWS Transfer Family User * Guide.

*/ inline const Aws::String& GetHostKey() const{ return m_hostKey; } /** *

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 file transfer protocol-enabled 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 AWS Transfer Family User * Guide.

*/ inline bool HostKeyHasBeenSet() const { return m_hostKeyHasBeenSet; } /** *

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 file transfer protocol-enabled 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 AWS Transfer Family User * Guide.

*/ inline void SetHostKey(const Aws::String& value) { m_hostKeyHasBeenSet = true; m_hostKey = value; } /** *

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 file transfer protocol-enabled 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 AWS Transfer Family User * Guide.

*/ inline void SetHostKey(Aws::String&& value) { m_hostKeyHasBeenSet = true; m_hostKey = std::move(value); } /** *

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 file transfer protocol-enabled 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 AWS Transfer Family User * Guide.

*/ inline void SetHostKey(const char* value) { m_hostKeyHasBeenSet = true; m_hostKey.assign(value); } /** *

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 file transfer protocol-enabled 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 AWS Transfer Family User * Guide.

*/ inline UpdateServerRequest& WithHostKey(const Aws::String& value) { SetHostKey(value); return *this;} /** *

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 file transfer protocol-enabled 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 AWS Transfer Family User * Guide.

*/ inline UpdateServerRequest& WithHostKey(Aws::String&& value) { SetHostKey(std::move(value)); return *this;} /** *

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 file transfer protocol-enabled 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 AWS Transfer Family User * Guide.

*/ inline UpdateServerRequest& WithHostKey(const char* value) { SetHostKey(value); return *this;} /** *

An array containing all of the information required to call a customer's * authentication API method.

*/ inline const IdentityProviderDetails& GetIdentityProviderDetails() const{ return m_identityProviderDetails; } /** *

An array containing all of the information required to call a customer's * authentication API method.

*/ inline bool IdentityProviderDetailsHasBeenSet() const { return m_identityProviderDetailsHasBeenSet; } /** *

An array containing all of the information required to call a customer's * authentication API method.

*/ inline void SetIdentityProviderDetails(const IdentityProviderDetails& value) { m_identityProviderDetailsHasBeenSet = true; m_identityProviderDetails = value; } /** *

An array containing all of the information required to call a customer's * authentication API method.

*/ inline void SetIdentityProviderDetails(IdentityProviderDetails&& value) { m_identityProviderDetailsHasBeenSet = true; m_identityProviderDetails = std::move(value); } /** *

An array containing all of the information required to call a customer's * authentication API method.

*/ inline UpdateServerRequest& WithIdentityProviderDetails(const IdentityProviderDetails& value) { SetIdentityProviderDetails(value); return *this;} /** *

An array containing all of the information required to call a customer's * authentication API method.

*/ inline UpdateServerRequest& WithIdentityProviderDetails(IdentityProviderDetails&& value) { SetIdentityProviderDetails(std::move(value)); return *this;} /** *

Changes the AWS Identity and Access Management (IAM) role that allows Amazon * S3 events to be logged in Amazon CloudWatch, turning logging on or off.

*/ inline const Aws::String& GetLoggingRole() const{ return m_loggingRole; } /** *

Changes the AWS Identity and Access Management (IAM) role that allows Amazon * S3 events to be logged in Amazon CloudWatch, turning logging on or off.

*/ inline bool LoggingRoleHasBeenSet() const { return m_loggingRoleHasBeenSet; } /** *

Changes the AWS Identity and Access Management (IAM) role that allows Amazon * S3 events to be logged in Amazon CloudWatch, turning logging on or off.

*/ inline void SetLoggingRole(const Aws::String& value) { m_loggingRoleHasBeenSet = true; m_loggingRole = value; } /** *

Changes the AWS Identity and Access Management (IAM) role that allows Amazon * S3 events to be logged in Amazon CloudWatch, turning logging on or off.

*/ inline void SetLoggingRole(Aws::String&& value) { m_loggingRoleHasBeenSet = true; m_loggingRole = std::move(value); } /** *

Changes the AWS Identity and Access Management (IAM) role that allows Amazon * S3 events to be logged in Amazon CloudWatch, turning logging on or off.

*/ inline void SetLoggingRole(const char* value) { m_loggingRoleHasBeenSet = true; m_loggingRole.assign(value); } /** *

Changes the AWS Identity and Access Management (IAM) role that allows Amazon * S3 events to be logged in Amazon CloudWatch, turning logging on or off.

*/ inline UpdateServerRequest& WithLoggingRole(const Aws::String& value) { SetLoggingRole(value); return *this;} /** *

Changes the AWS Identity and Access Management (IAM) role that allows Amazon * S3 events to be logged in Amazon CloudWatch, turning logging on or off.

*/ inline UpdateServerRequest& WithLoggingRole(Aws::String&& value) { SetLoggingRole(std::move(value)); return *this;} /** *

Changes the AWS Identity and Access Management (IAM) role that allows Amazon * S3 events to be logged in Amazon CloudWatch, turning logging on or off.

*/ inline UpdateServerRequest& WithLoggingRole(const char* value) { SetLoggingRole(value); return *this;} /** *

Specifies the file transfer protocol or protocols over which your file * transfer protocol client can connect to your server's endpoint. The available * protocols are:

  • Secure Shell (SSH) File Transfer Protocol * (SFTP): File transfer over SSH

  • File Transfer Protocol Secure * (FTPS): File transfer with TLS encryption

  • File Transfer * Protocol (FTP): Unencrypted file transfer

If you * select FTPS, you must choose a certificate stored in AWS * Certificate Manager (ACM) which will be used to identify your server when * clients connect to it over FTPS.

If Protocol includes either * FTP or FTPS, then the EndpointType must * be VPC and the IdentityProviderType must be * API_GATEWAY.

If Protocol includes * FTP, then AddressAllocationIds cannot be * associated.

If Protocol is set only to SFTP, * the EndpointType can be set to PUBLIC and the * IdentityProviderType can be set to * SERVICE_MANAGED.

*/ inline const Aws::Vector& GetProtocols() const{ return m_protocols; } /** *

Specifies the file transfer protocol or protocols over which your file * transfer protocol client can connect to your server's endpoint. The available * protocols are:

  • Secure Shell (SSH) File Transfer Protocol * (SFTP): File transfer over SSH

  • File Transfer Protocol Secure * (FTPS): File transfer with TLS encryption

  • File Transfer * Protocol (FTP): Unencrypted file transfer

If you * select FTPS, you must choose a certificate stored in AWS * Certificate Manager (ACM) which will be used to identify your server when * clients connect to it over FTPS.

If Protocol includes either * FTP or FTPS, then the EndpointType must * be VPC and the IdentityProviderType must be * API_GATEWAY.

If Protocol includes * FTP, then AddressAllocationIds cannot be * associated.

If Protocol is set only to SFTP, * the EndpointType can be set to PUBLIC and the * IdentityProviderType can be set to * SERVICE_MANAGED.

*/ inline bool ProtocolsHasBeenSet() const { return m_protocolsHasBeenSet; } /** *

Specifies the file transfer protocol or protocols over which your file * transfer protocol client can connect to your server's endpoint. The available * protocols are:

  • Secure Shell (SSH) File Transfer Protocol * (SFTP): File transfer over SSH

  • File Transfer Protocol Secure * (FTPS): File transfer with TLS encryption

  • File Transfer * Protocol (FTP): Unencrypted file transfer

If you * select FTPS, you must choose a certificate stored in AWS * Certificate Manager (ACM) which will be used to identify your server when * clients connect to it over FTPS.

If Protocol includes either * FTP or FTPS, then the EndpointType must * be VPC and the IdentityProviderType must be * API_GATEWAY.

If Protocol includes * FTP, then AddressAllocationIds cannot be * associated.

If Protocol is set only to SFTP, * the EndpointType can be set to PUBLIC and the * IdentityProviderType can be set to * SERVICE_MANAGED.

*/ inline void SetProtocols(const Aws::Vector& value) { m_protocolsHasBeenSet = true; m_protocols = value; } /** *

Specifies the file transfer protocol or protocols over which your file * transfer protocol client can connect to your server's endpoint. The available * protocols are:

  • Secure Shell (SSH) File Transfer Protocol * (SFTP): File transfer over SSH

  • File Transfer Protocol Secure * (FTPS): File transfer with TLS encryption

  • File Transfer * Protocol (FTP): Unencrypted file transfer

If you * select FTPS, you must choose a certificate stored in AWS * Certificate Manager (ACM) which will be used to identify your server when * clients connect to it over FTPS.

If Protocol includes either * FTP or FTPS, then the EndpointType must * be VPC and the IdentityProviderType must be * API_GATEWAY.

If Protocol includes * FTP, then AddressAllocationIds cannot be * associated.

If Protocol is set only to SFTP, * the EndpointType can be set to PUBLIC and the * IdentityProviderType can be set to * SERVICE_MANAGED.

*/ inline void SetProtocols(Aws::Vector&& value) { m_protocolsHasBeenSet = true; m_protocols = std::move(value); } /** *

Specifies the file transfer protocol or protocols over which your file * transfer protocol client can connect to your server's endpoint. The available * protocols are:

  • Secure Shell (SSH) File Transfer Protocol * (SFTP): File transfer over SSH

  • File Transfer Protocol Secure * (FTPS): File transfer with TLS encryption

  • File Transfer * Protocol (FTP): Unencrypted file transfer

If you * select FTPS, you must choose a certificate stored in AWS * Certificate Manager (ACM) which will be used to identify your server when * clients connect to it over FTPS.

If Protocol includes either * FTP or FTPS, then the EndpointType must * be VPC and the IdentityProviderType must be * API_GATEWAY.

If Protocol includes * FTP, then AddressAllocationIds cannot be * associated.

If Protocol is set only to SFTP, * the EndpointType can be set to PUBLIC and the * IdentityProviderType can be set to * SERVICE_MANAGED.

*/ inline UpdateServerRequest& WithProtocols(const Aws::Vector& value) { SetProtocols(value); return *this;} /** *

Specifies the file transfer protocol or protocols over which your file * transfer protocol client can connect to your server's endpoint. The available * protocols are:

  • Secure Shell (SSH) File Transfer Protocol * (SFTP): File transfer over SSH

  • File Transfer Protocol Secure * (FTPS): File transfer with TLS encryption

  • File Transfer * Protocol (FTP): Unencrypted file transfer

If you * select FTPS, you must choose a certificate stored in AWS * Certificate Manager (ACM) which will be used to identify your server when * clients connect to it over FTPS.

If Protocol includes either * FTP or FTPS, then the EndpointType must * be VPC and the IdentityProviderType must be * API_GATEWAY.

If Protocol includes * FTP, then AddressAllocationIds cannot be * associated.

If Protocol is set only to SFTP, * the EndpointType can be set to PUBLIC and the * IdentityProviderType can be set to * SERVICE_MANAGED.

*/ inline UpdateServerRequest& WithProtocols(Aws::Vector&& value) { SetProtocols(std::move(value)); return *this;} /** *

Specifies the file transfer protocol or protocols over which your file * transfer protocol client can connect to your server's endpoint. The available * protocols are:

  • Secure Shell (SSH) File Transfer Protocol * (SFTP): File transfer over SSH

  • File Transfer Protocol Secure * (FTPS): File transfer with TLS encryption

  • File Transfer * Protocol (FTP): Unencrypted file transfer

If you * select FTPS, you must choose a certificate stored in AWS * Certificate Manager (ACM) which will be used to identify your server when * clients connect to it over FTPS.

If Protocol includes either * FTP or FTPS, then the EndpointType must * be VPC and the IdentityProviderType must be * API_GATEWAY.

If Protocol includes * FTP, then AddressAllocationIds cannot be * associated.

If Protocol is set only to SFTP, * the EndpointType can be set to PUBLIC and the * IdentityProviderType can be set to * SERVICE_MANAGED.

*/ inline UpdateServerRequest& AddProtocols(const Protocol& value) { m_protocolsHasBeenSet = true; m_protocols.push_back(value); return *this; } /** *

Specifies the file transfer protocol or protocols over which your file * transfer protocol client can connect to your server's endpoint. The available * protocols are:

  • Secure Shell (SSH) File Transfer Protocol * (SFTP): File transfer over SSH

  • File Transfer Protocol Secure * (FTPS): File transfer with TLS encryption

  • File Transfer * Protocol (FTP): Unencrypted file transfer

If you * select FTPS, you must choose a certificate stored in AWS * Certificate Manager (ACM) which will be used to identify your server when * clients connect to it over FTPS.

If Protocol includes either * FTP or FTPS, then the EndpointType must * be VPC and the IdentityProviderType must be * API_GATEWAY.

If Protocol includes * FTP, then AddressAllocationIds cannot be * associated.

If Protocol is set only to SFTP, * the EndpointType can be set to PUBLIC and the * IdentityProviderType can be set to * SERVICE_MANAGED.

*/ inline UpdateServerRequest& AddProtocols(Protocol&& value) { m_protocolsHasBeenSet = true; m_protocols.push_back(std::move(value)); return *this; } /** *

Specifies the name of the security policy that is attached to the server.

*/ inline const Aws::String& GetSecurityPolicyName() const{ return m_securityPolicyName; } /** *

Specifies the name of the security policy that is attached to the server.

*/ inline bool SecurityPolicyNameHasBeenSet() const { return m_securityPolicyNameHasBeenSet; } /** *

Specifies the name of the security policy that is attached to the server.

*/ inline void SetSecurityPolicyName(const Aws::String& value) { m_securityPolicyNameHasBeenSet = true; m_securityPolicyName = value; } /** *

Specifies the name of the security policy that is attached to the server.

*/ inline void SetSecurityPolicyName(Aws::String&& value) { m_securityPolicyNameHasBeenSet = true; m_securityPolicyName = std::move(value); } /** *

Specifies the name of the security policy that is attached to the server.

*/ inline void SetSecurityPolicyName(const char* value) { m_securityPolicyNameHasBeenSet = true; m_securityPolicyName.assign(value); } /** *

Specifies the name of the security policy that is attached to the server.

*/ inline UpdateServerRequest& WithSecurityPolicyName(const Aws::String& value) { SetSecurityPolicyName(value); return *this;} /** *

Specifies the name of the security policy that is attached to the server.

*/ inline UpdateServerRequest& WithSecurityPolicyName(Aws::String&& value) { SetSecurityPolicyName(std::move(value)); return *this;} /** *

Specifies the name of the security policy that is attached to the server.

*/ inline UpdateServerRequest& WithSecurityPolicyName(const char* value) { SetSecurityPolicyName(value); return *this;} /** *

A system-assigned unique identifier for a file transfer protocol-enabled * server instance that the user account is assigned to.

*/ inline const Aws::String& GetServerId() const{ return m_serverId; } /** *

A system-assigned unique identifier for a file transfer protocol-enabled * server instance that the user account is assigned to.

*/ inline bool ServerIdHasBeenSet() const { return m_serverIdHasBeenSet; } /** *

A system-assigned unique identifier for a file transfer protocol-enabled * server instance that the user account is assigned to.

*/ inline void SetServerId(const Aws::String& value) { m_serverIdHasBeenSet = true; m_serverId = value; } /** *

A system-assigned unique identifier for a file transfer protocol-enabled * server instance that the user account is assigned to.

*/ inline void SetServerId(Aws::String&& value) { m_serverIdHasBeenSet = true; m_serverId = std::move(value); } /** *

A system-assigned unique identifier for a file transfer protocol-enabled * server instance that the user account is assigned to.

*/ inline void SetServerId(const char* value) { m_serverIdHasBeenSet = true; m_serverId.assign(value); } /** *

A system-assigned unique identifier for a file transfer protocol-enabled * server instance that the user account is assigned to.

*/ inline UpdateServerRequest& WithServerId(const Aws::String& value) { SetServerId(value); return *this;} /** *

A system-assigned unique identifier for a file transfer protocol-enabled * server instance that the user account is assigned to.

*/ inline UpdateServerRequest& WithServerId(Aws::String&& value) { SetServerId(std::move(value)); return *this;} /** *

A system-assigned unique identifier for a file transfer protocol-enabled * server instance that the user account is assigned to.

*/ inline UpdateServerRequest& WithServerId(const char* value) { SetServerId(value); return *this;} private: Aws::String m_certificate; bool m_certificateHasBeenSet; EndpointDetails m_endpointDetails; bool m_endpointDetailsHasBeenSet; EndpointType m_endpointType; bool m_endpointTypeHasBeenSet; Aws::String m_hostKey; bool m_hostKeyHasBeenSet; IdentityProviderDetails m_identityProviderDetails; bool m_identityProviderDetailsHasBeenSet; Aws::String m_loggingRole; bool m_loggingRoleHasBeenSet; Aws::Vector m_protocols; bool m_protocolsHasBeenSet; Aws::String m_securityPolicyName; bool m_securityPolicyNameHasBeenSet; Aws::String m_serverId; bool m_serverIdHasBeenSet; }; } // namespace Model } // namespace Transfer } // namespace Aws