/** * 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 #include #include namespace Aws { namespace Transfer { namespace Model { /** */ class AWS_TRANSFER_API CreateServerRequest : public TransferRequest { public: CreateServerRequest(); // 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 "CreateServer"; } 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 CreateServerRequest& 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 CreateServerRequest& 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 CreateServerRequest& 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. When you host your endpoint within * your VPC, you can make it accessible only to resources within your VPC, or you * can attach Elastic IPs and make it accessible to clients over the internet. Your * VPC's default security groups are automatically assigned to your 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. When you host your endpoint within * your VPC, you can make it accessible only to resources within your VPC, or you * can attach Elastic IPs and make it accessible to clients over the internet. Your * VPC's default security groups are automatically assigned to your 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. When you host your endpoint within * your VPC, you can make it accessible only to resources within your VPC, or you * can attach Elastic IPs and make it accessible to clients over the internet. Your * VPC's default security groups are automatically assigned to your 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. When you host your endpoint within * your VPC, you can make it accessible only to resources within your VPC, or you * can attach Elastic IPs and make it accessible to clients over the internet. Your * VPC's default security groups are automatically assigned to your 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. When you host your endpoint within * your VPC, you can make it accessible only to resources within your VPC, or you * can attach Elastic IPs and make it accessible to clients over the internet. Your * VPC's default security groups are automatically assigned to your endpoint.

*/ inline CreateServerRequest& 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. When you host your endpoint within * your VPC, you can make it accessible only to resources within your VPC, or you * can attach Elastic IPs and make it accessible to clients over the internet. Your * VPC's default security groups are automatically assigned to your endpoint.

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

The type of VPC 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 VPC 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 VPC 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 VPC 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 VPC 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 CreateServerRequest& WithEndpointType(const EndpointType& value) { SetEndpointType(value); return *this;} /** *

The type of VPC 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 CreateServerRequest& WithEndpointType(EndpointType&& value) { SetEndpointType(std::move(value)); return *this;} /** *

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 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 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 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 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 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 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 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 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 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 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 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 CreateServerRequest& WithHostKey(const Aws::String& value) { SetHostKey(value); return *this;} /** *

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 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 CreateServerRequest& WithHostKey(Aws::String&& value) { SetHostKey(std::move(value)); return *this;} /** *

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 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 CreateServerRequest& WithHostKey(const char* value) { SetHostKey(value); return *this;} /** *

Required when IdentityProviderType is set to * API_GATEWAY. Accepts an array containing all of the information * required to call a customer-supplied authentication API, including the API * Gateway URL. Not required when IdentityProviderType is set to * SERVICE_MANAGED.

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

Required when IdentityProviderType is set to * API_GATEWAY. Accepts an array containing all of the information * required to call a customer-supplied authentication API, including the API * Gateway URL. Not required when IdentityProviderType is set to * SERVICE_MANAGED.

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

Required when IdentityProviderType is set to * API_GATEWAY. Accepts an array containing all of the information * required to call a customer-supplied authentication API, including the API * Gateway URL. Not required when IdentityProviderType is set to * SERVICE_MANAGED.

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

Required when IdentityProviderType is set to * API_GATEWAY. Accepts an array containing all of the information * required to call a customer-supplied authentication API, including the API * Gateway URL. Not required when IdentityProviderType is set to * SERVICE_MANAGED.

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

Required when IdentityProviderType is set to * API_GATEWAY. Accepts an array containing all of the information * required to call a customer-supplied authentication API, including the API * Gateway URL. Not required when IdentityProviderType is set to * SERVICE_MANAGED.

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

Required when IdentityProviderType is set to * API_GATEWAY. Accepts an array containing all of the information * required to call a customer-supplied authentication API, including the API * Gateway URL. Not required when IdentityProviderType is set to * SERVICE_MANAGED.

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

Specifies the mode of authentication for a file transfer protocol-enabled * server. The default value is SERVICE_MANAGED, which allows you to * store and access user credentials within the AWS Transfer Family service. Use * the API_GATEWAY value to integrate with an identity provider of * your choosing. The API_GATEWAY setting requires you to provide an * API Gateway endpoint URL to call for authentication using the * IdentityProviderDetails parameter.

*/ inline const IdentityProviderType& GetIdentityProviderType() const{ return m_identityProviderType; } /** *

Specifies the mode of authentication for a file transfer protocol-enabled * server. The default value is SERVICE_MANAGED, which allows you to * store and access user credentials within the AWS Transfer Family service. Use * the API_GATEWAY value to integrate with an identity provider of * your choosing. The API_GATEWAY setting requires you to provide an * API Gateway endpoint URL to call for authentication using the * IdentityProviderDetails parameter.

*/ inline bool IdentityProviderTypeHasBeenSet() const { return m_identityProviderTypeHasBeenSet; } /** *

Specifies the mode of authentication for a file transfer protocol-enabled * server. The default value is SERVICE_MANAGED, which allows you to * store and access user credentials within the AWS Transfer Family service. Use * the API_GATEWAY value to integrate with an identity provider of * your choosing. The API_GATEWAY setting requires you to provide an * API Gateway endpoint URL to call for authentication using the * IdentityProviderDetails parameter.

*/ inline void SetIdentityProviderType(const IdentityProviderType& value) { m_identityProviderTypeHasBeenSet = true; m_identityProviderType = value; } /** *

Specifies the mode of authentication for a file transfer protocol-enabled * server. The default value is SERVICE_MANAGED, which allows you to * store and access user credentials within the AWS Transfer Family service. Use * the API_GATEWAY value to integrate with an identity provider of * your choosing. The API_GATEWAY setting requires you to provide an * API Gateway endpoint URL to call for authentication using the * IdentityProviderDetails parameter.

*/ inline void SetIdentityProviderType(IdentityProviderType&& value) { m_identityProviderTypeHasBeenSet = true; m_identityProviderType = std::move(value); } /** *

Specifies the mode of authentication for a file transfer protocol-enabled * server. The default value is SERVICE_MANAGED, which allows you to * store and access user credentials within the AWS Transfer Family service. Use * the API_GATEWAY value to integrate with an identity provider of * your choosing. The API_GATEWAY setting requires you to provide an * API Gateway endpoint URL to call for authentication using the * IdentityProviderDetails parameter.

*/ inline CreateServerRequest& WithIdentityProviderType(const IdentityProviderType& value) { SetIdentityProviderType(value); return *this;} /** *

Specifies the mode of authentication for a file transfer protocol-enabled * server. The default value is SERVICE_MANAGED, which allows you to * store and access user credentials within the AWS Transfer Family service. Use * the API_GATEWAY value to integrate with an identity provider of * your choosing. The API_GATEWAY setting requires you to provide an * API Gateway endpoint URL to call for authentication using the * IdentityProviderDetails parameter.

*/ inline CreateServerRequest& WithIdentityProviderType(IdentityProviderType&& value) { SetIdentityProviderType(std::move(value)); return *this;} /** *

Allows the service to write your users' activity to your Amazon CloudWatch * logs for monitoring and auditing purposes.

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

Allows the service to write your users' activity to your Amazon CloudWatch * logs for monitoring and auditing purposes.

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

Allows the service to write your users' activity to your Amazon CloudWatch * logs for monitoring and auditing purposes.

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

Allows the service to write your users' activity to your Amazon CloudWatch * logs for monitoring and auditing purposes.

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

Allows the service to write your users' activity to your Amazon CloudWatch * logs for monitoring and auditing purposes.

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

Allows the service to write your users' activity to your Amazon CloudWatch * logs for monitoring and auditing purposes.

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

Allows the service to write your users' activity to your Amazon CloudWatch * logs for monitoring and auditing purposes.

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

Allows the service to write your users' activity to your Amazon CloudWatch * logs for monitoring and auditing purposes.

*/ inline CreateServerRequest& 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:

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

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

  • *
  • FTP (File Transfer Protocol): 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 file transfer protocol-enabled 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:

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

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

  • *
  • FTP (File Transfer Protocol): 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 file transfer protocol-enabled 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:

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

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

  • *
  • FTP (File Transfer Protocol): 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 file transfer protocol-enabled 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:

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

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

  • *
  • FTP (File Transfer Protocol): 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 file transfer protocol-enabled 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:

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

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

  • *
  • FTP (File Transfer Protocol): 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 file transfer protocol-enabled 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 CreateServerRequest& 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:

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

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

  • *
  • FTP (File Transfer Protocol): 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 file transfer protocol-enabled 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 CreateServerRequest& 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:

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

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

  • *
  • FTP (File Transfer Protocol): 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 file transfer protocol-enabled 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 CreateServerRequest& 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:

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

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

  • *
  • FTP (File Transfer Protocol): 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 file transfer protocol-enabled 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 CreateServerRequest& 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 CreateServerRequest& WithSecurityPolicyName(const Aws::String& value) { SetSecurityPolicyName(value); return *this;} /** *

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

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

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

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

Key-value pairs that can be used to group and search for file transfer * protocol-enabled servers.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

Key-value pairs that can be used to group and search for file transfer * protocol-enabled servers.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

Key-value pairs that can be used to group and search for file transfer * protocol-enabled servers.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

Key-value pairs that can be used to group and search for file transfer * protocol-enabled servers.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

Key-value pairs that can be used to group and search for file transfer * protocol-enabled servers.

*/ inline CreateServerRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

Key-value pairs that can be used to group and search for file transfer * protocol-enabled servers.

*/ inline CreateServerRequest& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

Key-value pairs that can be used to group and search for file transfer * protocol-enabled servers.

*/ inline CreateServerRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

Key-value pairs that can be used to group and search for file transfer * protocol-enabled servers.

*/ inline CreateServerRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(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; IdentityProviderType m_identityProviderType; bool m_identityProviderTypeHasBeenSet; Aws::String m_loggingRole; bool m_loggingRoleHasBeenSet; Aws::Vector m_protocols; bool m_protocolsHasBeenSet; Aws::String m_securityPolicyName; bool m_securityPolicyNameHasBeenSet; Aws::Vector m_tags; bool m_tagsHasBeenSet; }; } // namespace Model } // namespace Transfer } // namespace Aws