/** * 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 #include #include #include namespace Aws { namespace Transfer { namespace Model { /** */ class CreateServerRequest : public TransferRequest { public: AWS_TRANSFER_API 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_TRANSFER_API Aws::String SerializePayload() const override; AWS_TRANSFER_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

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

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

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

*

To request a private certificate to use FTPS through private IP addresses, * see Request * a private certificate in the 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 Certificate Manager (ACM) certificate. * Required when Protocols is set to FTPS.

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

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

*

To request a private certificate to use FTPS through private IP addresses, * see Request * a private certificate in the 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 Certificate Manager (ACM) certificate. * Required when Protocols is set to FTPS.

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

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

*

To request a private certificate to use FTPS through private IP addresses, * see Request * a private certificate in the 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 Certificate Manager (ACM) certificate. * Required when Protocols is set to FTPS.

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

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

*

To request a private certificate to use FTPS through private IP addresses, * see Request * a private certificate in the 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 Certificate Manager (ACM) certificate. * Required when Protocols is set to FTPS.

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

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

*

To request a private certificate to use FTPS through private IP addresses, * see Request * a private certificate in the 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 Certificate Manager (ACM) certificate. * Required when Protocols is set to FTPS.

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

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

*

To request a private certificate to use FTPS through private IP addresses, * see Request * a private certificate in the 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 Certificate Manager (ACM) certificate. * Required when Protocols is set to FTPS.

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

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

*

To request a private certificate to use FTPS through private IP addresses, * see Request * a private certificate in the 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 Certificate Manager (ACM) certificate. * Required when Protocols is set to FTPS.

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

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

*

To request a private certificate to use FTPS through private IP addresses, * see Request * a private certificate in the 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 domain of the storage system that is used for file transfers. There are * two domains available: Amazon Simple Storage Service (Amazon S3) and Amazon * Elastic File System (Amazon EFS). The default value is S3.

After * the server is created, the domain cannot be changed.

*/ inline const Domain& GetDomain() const{ return m_domain; } /** *

The domain of the storage system that is used for file transfers. There are * two domains available: Amazon Simple Storage Service (Amazon S3) and Amazon * Elastic File System (Amazon EFS). The default value is S3.

After * the server is created, the domain cannot be changed.

*/ inline bool DomainHasBeenSet() const { return m_domainHasBeenSet; } /** *

The domain of the storage system that is used for file transfers. There are * two domains available: Amazon Simple Storage Service (Amazon S3) and Amazon * Elastic File System (Amazon EFS). The default value is S3.

After * the server is created, the domain cannot be changed.

*/ inline void SetDomain(const Domain& value) { m_domainHasBeenSet = true; m_domain = value; } /** *

The domain of the storage system that is used for file transfers. There are * two domains available: Amazon Simple Storage Service (Amazon S3) and Amazon * Elastic File System (Amazon EFS). The default value is S3.

After * the server is created, the domain cannot be changed.

*/ inline void SetDomain(Domain&& value) { m_domainHasBeenSet = true; m_domain = std::move(value); } /** *

The domain of the storage system that is used for file transfers. There are * two domains available: Amazon Simple Storage Service (Amazon S3) and Amazon * Elastic File System (Amazon EFS). The default value is S3.

After * the server is created, the domain cannot be changed.

*/ inline CreateServerRequest& WithDomain(const Domain& value) { SetDomain(value); return *this;} /** *

The domain of the storage system that is used for file transfers. There are * two domains available: Amazon Simple Storage Service (Amazon S3) and Amazon * Elastic File System (Amazon EFS). The default value is S3.

After * the server is created, the domain cannot be changed.

*/ inline CreateServerRequest& WithDomain(Domain&& value) { SetDomain(std::move(value)); return *this;} /** *

The virtual private cloud (VPC) endpoint settings that are configured for * your server. When you host your endpoint within your VPC, you can make your * endpoint accessible only to resources within your VPC, or you can attach Elastic * IP addresses and make your endpoint 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 server. When you host your endpoint within your VPC, you can make your * endpoint accessible only to resources within your VPC, or you can attach Elastic * IP addresses and make your endpoint 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 server. When you host your endpoint within your VPC, you can make your * endpoint accessible only to resources within your VPC, or you can attach Elastic * IP addresses and make your endpoint 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 server. When you host your endpoint within your VPC, you can make your * endpoint accessible only to resources within your VPC, or you can attach Elastic * IP addresses and make your endpoint 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 server. When you host your endpoint within your VPC, you can make your * endpoint accessible only to resources within your VPC, or you can attach Elastic * IP addresses and make your endpoint 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 server. When you host your endpoint within your VPC, you can make your * endpoint accessible only to resources within your VPC, or you can attach Elastic * IP addresses and make your endpoint 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 endpoint that you want your server to use. You can choose to make * your server's endpoint publicly accessible (PUBLIC) or host it inside your VPC. * With an endpoint that is hosted in a VPC, you can restrict access to your server * and resources only within your VPC or choose to make it internet facing by * attaching Elastic IP addresses directly to it.

After May 19, * 2021, you won't be able to create a server using * EndpointType=VPC_ENDPOINT in your Amazon Web Services account if * your account hasn't already done so before May 19, 2021. If you have already * created servers with EndpointType=VPC_ENDPOINT in your Amazon Web * Services account on or before May 19, 2021, you will not be affected. After this * date, use EndpointType=VPC.

For more * information, see * https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#deprecate-vpc-endpoint.

*

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 server to use. You can choose to make * your server's endpoint publicly accessible (PUBLIC) or host it inside your VPC. * With an endpoint that is hosted in a VPC, you can restrict access to your server * and resources only within your VPC or choose to make it internet facing by * attaching Elastic IP addresses directly to it.

After May 19, * 2021, you won't be able to create a server using * EndpointType=VPC_ENDPOINT in your Amazon Web Services account if * your account hasn't already done so before May 19, 2021. If you have already * created servers with EndpointType=VPC_ENDPOINT in your Amazon Web * Services account on or before May 19, 2021, you will not be affected. After this * date, use EndpointType=VPC.

For more * information, see * https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#deprecate-vpc-endpoint.

*

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 server to use. You can choose to make * your server's endpoint publicly accessible (PUBLIC) or host it inside your VPC. * With an endpoint that is hosted in a VPC, you can restrict access to your server * and resources only within your VPC or choose to make it internet facing by * attaching Elastic IP addresses directly to it.

After May 19, * 2021, you won't be able to create a server using * EndpointType=VPC_ENDPOINT in your Amazon Web Services account if * your account hasn't already done so before May 19, 2021. If you have already * created servers with EndpointType=VPC_ENDPOINT in your Amazon Web * Services account on or before May 19, 2021, you will not be affected. After this * date, use EndpointType=VPC.

For more * information, see * https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#deprecate-vpc-endpoint.

*

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 server to use. You can choose to make * your server's endpoint publicly accessible (PUBLIC) or host it inside your VPC. * With an endpoint that is hosted in a VPC, you can restrict access to your server * and resources only within your VPC or choose to make it internet facing by * attaching Elastic IP addresses directly to it.

After May 19, * 2021, you won't be able to create a server using * EndpointType=VPC_ENDPOINT in your Amazon Web Services account if * your account hasn't already done so before May 19, 2021. If you have already * created servers with EndpointType=VPC_ENDPOINT in your Amazon Web * Services account on or before May 19, 2021, you will not be affected. After this * date, use EndpointType=VPC.

For more * information, see * https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#deprecate-vpc-endpoint.

*

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 server to use. You can choose to make * your server's endpoint publicly accessible (PUBLIC) or host it inside your VPC. * With an endpoint that is hosted in a VPC, you can restrict access to your server * and resources only within your VPC or choose to make it internet facing by * attaching Elastic IP addresses directly to it.

After May 19, * 2021, you won't be able to create a server using * EndpointType=VPC_ENDPOINT in your Amazon Web Services account if * your account hasn't already done so before May 19, 2021. If you have already * created servers with EndpointType=VPC_ENDPOINT in your Amazon Web * Services account on or before May 19, 2021, you will not be affected. After this * date, use EndpointType=VPC.

For more * information, see * https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#deprecate-vpc-endpoint.

*

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 endpoint that you want your server to use. You can choose to make * your server's endpoint publicly accessible (PUBLIC) or host it inside your VPC. * With an endpoint that is hosted in a VPC, you can restrict access to your server * and resources only within your VPC or choose to make it internet facing by * attaching Elastic IP addresses directly to it.

After May 19, * 2021, you won't be able to create a server using * EndpointType=VPC_ENDPOINT in your Amazon Web Services account if * your account hasn't already done so before May 19, 2021. If you have already * created servers with EndpointType=VPC_ENDPOINT in your Amazon Web * Services account on or before May 19, 2021, you will not be affected. After this * date, use EndpointType=VPC.

For more * information, see * https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#deprecate-vpc-endpoint.

*

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, ECDSA, or ED25519 private key to use for your SFTP-enabled server. * You can add multiple host keys, in case you want to rotate keys, or have a set * of active keys that use different algorithms.

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

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

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

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

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

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

Use the following command to generate an * ED25519 key with no passphrase:

ssh-keygen -t ed25519 -N "" -f * my-new-server-key.

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

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 Manage * host keys for your SFTP-enabled server in the Transfer Family User * Guide.

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

The RSA, ECDSA, or ED25519 private key to use for your SFTP-enabled server. * You can add multiple host keys, in case you want to rotate keys, or have a set * of active keys that use different algorithms.

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

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

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

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

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

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

Use the following command to generate an * ED25519 key with no passphrase:

ssh-keygen -t ed25519 -N "" -f * my-new-server-key.

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

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 Manage * host keys for your SFTP-enabled server in the Transfer Family User * Guide.

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

The RSA, ECDSA, or ED25519 private key to use for your SFTP-enabled server. * You can add multiple host keys, in case you want to rotate keys, or have a set * of active keys that use different algorithms.

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

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

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

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

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

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

Use the following command to generate an * ED25519 key with no passphrase:

ssh-keygen -t ed25519 -N "" -f * my-new-server-key.

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

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 Manage * host keys for your SFTP-enabled server in the Transfer Family User * Guide.

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

The RSA, ECDSA, or ED25519 private key to use for your SFTP-enabled server. * You can add multiple host keys, in case you want to rotate keys, or have a set * of active keys that use different algorithms.

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

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

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

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

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

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

Use the following command to generate an * ED25519 key with no passphrase:

ssh-keygen -t ed25519 -N "" -f * my-new-server-key.

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

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 Manage * host keys for your SFTP-enabled server in the Transfer Family User * Guide.

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

The RSA, ECDSA, or ED25519 private key to use for your SFTP-enabled server. * You can add multiple host keys, in case you want to rotate keys, or have a set * of active keys that use different algorithms.

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

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

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

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

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

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

Use the following command to generate an * ED25519 key with no passphrase:

ssh-keygen -t ed25519 -N "" -f * my-new-server-key.

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

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 Manage * host keys for your SFTP-enabled server in the Transfer Family User * Guide.

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

The RSA, ECDSA, or ED25519 private key to use for your SFTP-enabled server. * You can add multiple host keys, in case you want to rotate keys, or have a set * of active keys that use different algorithms.

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

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

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

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

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

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

Use the following command to generate an * ED25519 key with no passphrase:

ssh-keygen -t ed25519 -N "" -f * my-new-server-key.

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

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 Manage * host keys for your SFTP-enabled server in the Transfer Family User * Guide.

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

The RSA, ECDSA, or ED25519 private key to use for your SFTP-enabled server. * You can add multiple host keys, in case you want to rotate keys, or have a set * of active keys that use different algorithms.

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

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

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

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

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

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

Use the following command to generate an * ED25519 key with no passphrase:

ssh-keygen -t ed25519 -N "" -f * my-new-server-key.

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

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 Manage * host keys for your SFTP-enabled server in the Transfer Family User * Guide.

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

The RSA, ECDSA, or ED25519 private key to use for your SFTP-enabled server. * You can add multiple host keys, in case you want to rotate keys, or have a set * of active keys that use different algorithms.

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

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

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

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

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

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

Use the following command to generate an * ED25519 key with no passphrase:

ssh-keygen -t ed25519 -N "" -f * my-new-server-key.

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

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 Manage * host keys for your SFTP-enabled server in the Transfer Family User * Guide.

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

Required when IdentityProviderType is set to * AWS_DIRECTORY_SERVICE, Amazon Web Services_LAMBDA or * API_GATEWAY. Accepts an array containing all of the information * required to use a directory in AWS_DIRECTORY_SERVICE or invoke 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 * AWS_DIRECTORY_SERVICE, Amazon Web Services_LAMBDA or * API_GATEWAY. Accepts an array containing all of the information * required to use a directory in AWS_DIRECTORY_SERVICE or invoke 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 * AWS_DIRECTORY_SERVICE, Amazon Web Services_LAMBDA or * API_GATEWAY. Accepts an array containing all of the information * required to use a directory in AWS_DIRECTORY_SERVICE or invoke 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 * AWS_DIRECTORY_SERVICE, Amazon Web Services_LAMBDA or * API_GATEWAY. Accepts an array containing all of the information * required to use a directory in AWS_DIRECTORY_SERVICE or invoke 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 * AWS_DIRECTORY_SERVICE, Amazon Web Services_LAMBDA or * API_GATEWAY. Accepts an array containing all of the information * required to use a directory in AWS_DIRECTORY_SERVICE or invoke 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 * AWS_DIRECTORY_SERVICE, Amazon Web Services_LAMBDA or * API_GATEWAY. Accepts an array containing all of the information * required to use a directory in AWS_DIRECTORY_SERVICE or invoke 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;} /** *

The mode of authentication for a server. The default value is * SERVICE_MANAGED, which allows you to store and access user * credentials within the Transfer Family service.

Use * AWS_DIRECTORY_SERVICE to provide access to Active Directory groups * in Directory Service for Microsoft Active Directory or Microsoft Active * Directory in your on-premises environment or in Amazon Web Services using AD * Connector. This option also requires you to provide a Directory ID by using the * IdentityProviderDetails parameter.

Use the * API_GATEWAY value to integrate with an identity provider of your * choosing. The API_GATEWAY setting requires you to provide an Amazon * API Gateway endpoint URL to call for authentication by using the * IdentityProviderDetails parameter.

Use the * AWS_LAMBDA value to directly use an Lambda function as your * identity provider. If you choose this value, you must specify the ARN for the * Lambda function in the Function parameter for the * IdentityProviderDetails data type.

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

The mode of authentication for a server. The default value is * SERVICE_MANAGED, which allows you to store and access user * credentials within the Transfer Family service.

Use * AWS_DIRECTORY_SERVICE to provide access to Active Directory groups * in Directory Service for Microsoft Active Directory or Microsoft Active * Directory in your on-premises environment or in Amazon Web Services using AD * Connector. This option also requires you to provide a Directory ID by using the * IdentityProviderDetails parameter.

Use the * API_GATEWAY value to integrate with an identity provider of your * choosing. The API_GATEWAY setting requires you to provide an Amazon * API Gateway endpoint URL to call for authentication by using the * IdentityProviderDetails parameter.

Use the * AWS_LAMBDA value to directly use an Lambda function as your * identity provider. If you choose this value, you must specify the ARN for the * Lambda function in the Function parameter for the * IdentityProviderDetails data type.

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

The mode of authentication for a server. The default value is * SERVICE_MANAGED, which allows you to store and access user * credentials within the Transfer Family service.

Use * AWS_DIRECTORY_SERVICE to provide access to Active Directory groups * in Directory Service for Microsoft Active Directory or Microsoft Active * Directory in your on-premises environment or in Amazon Web Services using AD * Connector. This option also requires you to provide a Directory ID by using the * IdentityProviderDetails parameter.

Use the * API_GATEWAY value to integrate with an identity provider of your * choosing. The API_GATEWAY setting requires you to provide an Amazon * API Gateway endpoint URL to call for authentication by using the * IdentityProviderDetails parameter.

Use the * AWS_LAMBDA value to directly use an Lambda function as your * identity provider. If you choose this value, you must specify the ARN for the * Lambda function in the Function parameter for the * IdentityProviderDetails data type.

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

The mode of authentication for a server. The default value is * SERVICE_MANAGED, which allows you to store and access user * credentials within the Transfer Family service.

Use * AWS_DIRECTORY_SERVICE to provide access to Active Directory groups * in Directory Service for Microsoft Active Directory or Microsoft Active * Directory in your on-premises environment or in Amazon Web Services using AD * Connector. This option also requires you to provide a Directory ID by using the * IdentityProviderDetails parameter.

Use the * API_GATEWAY value to integrate with an identity provider of your * choosing. The API_GATEWAY setting requires you to provide an Amazon * API Gateway endpoint URL to call for authentication by using the * IdentityProviderDetails parameter.

Use the * AWS_LAMBDA value to directly use an Lambda function as your * identity provider. If you choose this value, you must specify the ARN for the * Lambda function in the Function parameter for the * IdentityProviderDetails data type.

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

The mode of authentication for a server. The default value is * SERVICE_MANAGED, which allows you to store and access user * credentials within the Transfer Family service.

Use * AWS_DIRECTORY_SERVICE to provide access to Active Directory groups * in Directory Service for Microsoft Active Directory or Microsoft Active * Directory in your on-premises environment or in Amazon Web Services using AD * Connector. This option also requires you to provide a Directory ID by using the * IdentityProviderDetails parameter.

Use the * API_GATEWAY value to integrate with an identity provider of your * choosing. The API_GATEWAY setting requires you to provide an Amazon * API Gateway endpoint URL to call for authentication by using the * IdentityProviderDetails parameter.

Use the * AWS_LAMBDA value to directly use an Lambda function as your * identity provider. If you choose this value, you must specify the ARN for the * Lambda function in the Function parameter for the * IdentityProviderDetails data type.

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

The mode of authentication for a server. The default value is * SERVICE_MANAGED, which allows you to store and access user * credentials within the Transfer Family service.

Use * AWS_DIRECTORY_SERVICE to provide access to Active Directory groups * in Directory Service for Microsoft Active Directory or Microsoft Active * Directory in your on-premises environment or in Amazon Web Services using AD * Connector. This option also requires you to provide a Directory ID by using the * IdentityProviderDetails parameter.

Use the * API_GATEWAY value to integrate with an identity provider of your * choosing. The API_GATEWAY setting requires you to provide an Amazon * API Gateway endpoint URL to call for authentication by using the * IdentityProviderDetails parameter.

Use the * AWS_LAMBDA value to directly use an Lambda function as your * identity provider. If you choose this value, you must specify the ARN for the * Lambda function in the Function parameter for the * IdentityProviderDetails data type.

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

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) * role that allows a server to turn on Amazon CloudWatch logging for Amazon S3 or * Amazon EFSevents. When set, you can view user activity in your CloudWatch * logs.

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

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) * role that allows a server to turn on Amazon CloudWatch logging for Amazon S3 or * Amazon EFSevents. When set, you can view user activity in your CloudWatch * logs.

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

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) * role that allows a server to turn on Amazon CloudWatch logging for Amazon S3 or * Amazon EFSevents. When set, you can view user activity in your CloudWatch * logs.

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

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) * role that allows a server to turn on Amazon CloudWatch logging for Amazon S3 or * Amazon EFSevents. When set, you can view user activity in your CloudWatch * logs.

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

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) * role that allows a server to turn on Amazon CloudWatch logging for Amazon S3 or * Amazon EFSevents. When set, you can view user activity in your CloudWatch * logs.

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

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) * role that allows a server to turn on Amazon CloudWatch logging for Amazon S3 or * Amazon EFSevents. When set, you can view user activity in your CloudWatch * logs.

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

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) * role that allows a server to turn on Amazon CloudWatch logging for Amazon S3 or * Amazon EFSevents. When set, you can view user activity in your CloudWatch * logs.

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

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) * role that allows a server to turn on Amazon CloudWatch logging for Amazon S3 or * Amazon EFSevents. When set, you can view user activity in your CloudWatch * logs.

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

Specifies a string to display when users connect to a server. This string is * displayed after the user authenticates.

The SFTP protocol does not * support post-authentication display banners.

*/ inline const Aws::String& GetPostAuthenticationLoginBanner() const{ return m_postAuthenticationLoginBanner; } /** *

Specifies a string to display when users connect to a server. This string is * displayed after the user authenticates.

The SFTP protocol does not * support post-authentication display banners.

*/ inline bool PostAuthenticationLoginBannerHasBeenSet() const { return m_postAuthenticationLoginBannerHasBeenSet; } /** *

Specifies a string to display when users connect to a server. This string is * displayed after the user authenticates.

The SFTP protocol does not * support post-authentication display banners.

*/ inline void SetPostAuthenticationLoginBanner(const Aws::String& value) { m_postAuthenticationLoginBannerHasBeenSet = true; m_postAuthenticationLoginBanner = value; } /** *

Specifies a string to display when users connect to a server. This string is * displayed after the user authenticates.

The SFTP protocol does not * support post-authentication display banners.

*/ inline void SetPostAuthenticationLoginBanner(Aws::String&& value) { m_postAuthenticationLoginBannerHasBeenSet = true; m_postAuthenticationLoginBanner = std::move(value); } /** *

Specifies a string to display when users connect to a server. This string is * displayed after the user authenticates.

The SFTP protocol does not * support post-authentication display banners.

*/ inline void SetPostAuthenticationLoginBanner(const char* value) { m_postAuthenticationLoginBannerHasBeenSet = true; m_postAuthenticationLoginBanner.assign(value); } /** *

Specifies a string to display when users connect to a server. This string is * displayed after the user authenticates.

The SFTP protocol does not * support post-authentication display banners.

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

Specifies a string to display when users connect to a server. This string is * displayed after the user authenticates.

The SFTP protocol does not * support post-authentication display banners.

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

Specifies a string to display when users connect to a server. This string is * displayed after the user authenticates.

The SFTP protocol does not * support post-authentication display banners.

*/ inline CreateServerRequest& WithPostAuthenticationLoginBanner(const char* value) { SetPostAuthenticationLoginBanner(value); return *this;} /** *

Specifies a string to display when users connect to a server. This string is * displayed before the user authenticates. For example, the following banner * displays details about using the system:

This system is for the * use of authorized users only. Individuals using this computer system without * authority, or in excess of their authority, are subject to having all of their * activities on this system monitored and recorded by system personnel. *

*/ inline const Aws::String& GetPreAuthenticationLoginBanner() const{ return m_preAuthenticationLoginBanner; } /** *

Specifies a string to display when users connect to a server. This string is * displayed before the user authenticates. For example, the following banner * displays details about using the system:

This system is for the * use of authorized users only. Individuals using this computer system without * authority, or in excess of their authority, are subject to having all of their * activities on this system monitored and recorded by system personnel. *

*/ inline bool PreAuthenticationLoginBannerHasBeenSet() const { return m_preAuthenticationLoginBannerHasBeenSet; } /** *

Specifies a string to display when users connect to a server. This string is * displayed before the user authenticates. For example, the following banner * displays details about using the system:

This system is for the * use of authorized users only. Individuals using this computer system without * authority, or in excess of their authority, are subject to having all of their * activities on this system monitored and recorded by system personnel. *

*/ inline void SetPreAuthenticationLoginBanner(const Aws::String& value) { m_preAuthenticationLoginBannerHasBeenSet = true; m_preAuthenticationLoginBanner = value; } /** *

Specifies a string to display when users connect to a server. This string is * displayed before the user authenticates. For example, the following banner * displays details about using the system:

This system is for the * use of authorized users only. Individuals using this computer system without * authority, or in excess of their authority, are subject to having all of their * activities on this system monitored and recorded by system personnel. *

*/ inline void SetPreAuthenticationLoginBanner(Aws::String&& value) { m_preAuthenticationLoginBannerHasBeenSet = true; m_preAuthenticationLoginBanner = std::move(value); } /** *

Specifies a string to display when users connect to a server. This string is * displayed before the user authenticates. For example, the following banner * displays details about using the system:

This system is for the * use of authorized users only. Individuals using this computer system without * authority, or in excess of their authority, are subject to having all of their * activities on this system monitored and recorded by system personnel. *

*/ inline void SetPreAuthenticationLoginBanner(const char* value) { m_preAuthenticationLoginBannerHasBeenSet = true; m_preAuthenticationLoginBanner.assign(value); } /** *

Specifies a string to display when users connect to a server. This string is * displayed before the user authenticates. For example, the following banner * displays details about using the system:

This system is for the * use of authorized users only. Individuals using this computer system without * authority, or in excess of their authority, are subject to having all of their * activities on this system monitored and recorded by system personnel. *

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

Specifies a string to display when users connect to a server. This string is * displayed before the user authenticates. For example, the following banner * displays details about using the system:

This system is for the * use of authorized users only. Individuals using this computer system without * authority, or in excess of their authority, are subject to having all of their * activities on this system monitored and recorded by system personnel. *

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

Specifies a string to display when users connect to a server. This string is * displayed before the user authenticates. For example, the following banner * displays details about using the system:

This system is for the * use of authorized users only. Individuals using this computer system without * authority, or in excess of their authority, are subject to having all of their * activities on this system monitored and recorded by system personnel. *

*/ inline CreateServerRequest& WithPreAuthenticationLoginBanner(const char* value) { SetPreAuthenticationLoginBanner(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

  • AS2 (Applicability Statement 2): used * for transporting structured business-to-business data

*
  • If you select FTPS, you must choose a certificate * stored in Certificate Manager (ACM) which is 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 either * AWS_DIRECTORY_SERVICE, AWS_LAMBDA, or * 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 any of * the supported identity types: SERVICE_MANAGED, * AWS_DIRECTORY_SERVICE, AWS_LAMBDA, or * API_GATEWAY.

  • If Protocol includes * AS2, then the EndpointType must be VPC, * and domain must be Amazon S3.

*/ 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

  • AS2 (Applicability Statement 2): used * for transporting structured business-to-business data

*
  • If you select FTPS, you must choose a certificate * stored in Certificate Manager (ACM) which is 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 either * AWS_DIRECTORY_SERVICE, AWS_LAMBDA, or * 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 any of * the supported identity types: SERVICE_MANAGED, * AWS_DIRECTORY_SERVICE, AWS_LAMBDA, or * API_GATEWAY.

  • If Protocol includes * AS2, then the EndpointType must be VPC, * and domain must be Amazon S3.

*/ 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

  • AS2 (Applicability Statement 2): used * for transporting structured business-to-business data

*
  • If you select FTPS, you must choose a certificate * stored in Certificate Manager (ACM) which is 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 either * AWS_DIRECTORY_SERVICE, AWS_LAMBDA, or * 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 any of * the supported identity types: SERVICE_MANAGED, * AWS_DIRECTORY_SERVICE, AWS_LAMBDA, or * API_GATEWAY.

  • If Protocol includes * AS2, then the EndpointType must be VPC, * and domain must be Amazon S3.

*/ 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

  • AS2 (Applicability Statement 2): used * for transporting structured business-to-business data

*
  • If you select FTPS, you must choose a certificate * stored in Certificate Manager (ACM) which is 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 either * AWS_DIRECTORY_SERVICE, AWS_LAMBDA, or * 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 any of * the supported identity types: SERVICE_MANAGED, * AWS_DIRECTORY_SERVICE, AWS_LAMBDA, or * API_GATEWAY.

  • If Protocol includes * AS2, then the EndpointType must be VPC, * and domain must be Amazon S3.

*/ 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

  • AS2 (Applicability Statement 2): used * for transporting structured business-to-business data

*
  • If you select FTPS, you must choose a certificate * stored in Certificate Manager (ACM) which is 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 either * AWS_DIRECTORY_SERVICE, AWS_LAMBDA, or * 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 any of * the supported identity types: SERVICE_MANAGED, * AWS_DIRECTORY_SERVICE, AWS_LAMBDA, or * API_GATEWAY.

  • If Protocol includes * AS2, then the EndpointType must be VPC, * and domain must be Amazon S3.

*/ 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

  • AS2 (Applicability Statement 2): used * for transporting structured business-to-business data

*
  • If you select FTPS, you must choose a certificate * stored in Certificate Manager (ACM) which is 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 either * AWS_DIRECTORY_SERVICE, AWS_LAMBDA, or * 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 any of * the supported identity types: SERVICE_MANAGED, * AWS_DIRECTORY_SERVICE, AWS_LAMBDA, or * API_GATEWAY.

  • If Protocol includes * AS2, then the EndpointType must be VPC, * and domain must be Amazon S3.

*/ 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

  • AS2 (Applicability Statement 2): used * for transporting structured business-to-business data

*
  • If you select FTPS, you must choose a certificate * stored in Certificate Manager (ACM) which is 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 either * AWS_DIRECTORY_SERVICE, AWS_LAMBDA, or * 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 any of * the supported identity types: SERVICE_MANAGED, * AWS_DIRECTORY_SERVICE, AWS_LAMBDA, or * API_GATEWAY.

  • If Protocol includes * AS2, then the EndpointType must be VPC, * and domain must be Amazon S3.

*/ 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

  • AS2 (Applicability Statement 2): used * for transporting structured business-to-business data

*
  • If you select FTPS, you must choose a certificate * stored in Certificate Manager (ACM) which is 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 either * AWS_DIRECTORY_SERVICE, AWS_LAMBDA, or * 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 any of * the supported identity types: SERVICE_MANAGED, * AWS_DIRECTORY_SERVICE, AWS_LAMBDA, or * API_GATEWAY.

  • If Protocol includes * AS2, then the EndpointType must be VPC, * and domain must be Amazon S3.

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

The protocol settings that are configured for your server.

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

  • *
  • To ignore the error that is generated when the client attempts to use * the SETSTAT command on a file that you are uploading to an Amazon * S3 bucket, use the SetStatOption parameter. To have the Transfer * Family server ignore the SETSTAT command and upload files without * needing to make any changes to your SFTP client, set the value to * ENABLE_NO_OP. If you set the SetStatOption parameter * to ENABLE_NO_OP, Transfer Family generates a log entry to Amazon * CloudWatch Logs, so that you can determine when the client is making a * SETSTAT call.

  • To determine whether your Transfer * Family server resumes recent, negotiated sessions through a unique session ID, * use the TlsSessionResumptionMode parameter.

  • * As2Transports indicates the transport method for the AS2 messages. * Currently, only HTTP is supported.

*/ inline const ProtocolDetails& GetProtocolDetails() const{ return m_protocolDetails; } /** *

The protocol settings that are configured for your server.

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

  • *
  • To ignore the error that is generated when the client attempts to use * the SETSTAT command on a file that you are uploading to an Amazon * S3 bucket, use the SetStatOption parameter. To have the Transfer * Family server ignore the SETSTAT command and upload files without * needing to make any changes to your SFTP client, set the value to * ENABLE_NO_OP. If you set the SetStatOption parameter * to ENABLE_NO_OP, Transfer Family generates a log entry to Amazon * CloudWatch Logs, so that you can determine when the client is making a * SETSTAT call.

  • To determine whether your Transfer * Family server resumes recent, negotiated sessions through a unique session ID, * use the TlsSessionResumptionMode parameter.

  • * As2Transports indicates the transport method for the AS2 messages. * Currently, only HTTP is supported.

*/ inline bool ProtocolDetailsHasBeenSet() const { return m_protocolDetailsHasBeenSet; } /** *

The protocol settings that are configured for your server.

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

  • *
  • To ignore the error that is generated when the client attempts to use * the SETSTAT command on a file that you are uploading to an Amazon * S3 bucket, use the SetStatOption parameter. To have the Transfer * Family server ignore the SETSTAT command and upload files without * needing to make any changes to your SFTP client, set the value to * ENABLE_NO_OP. If you set the SetStatOption parameter * to ENABLE_NO_OP, Transfer Family generates a log entry to Amazon * CloudWatch Logs, so that you can determine when the client is making a * SETSTAT call.

  • To determine whether your Transfer * Family server resumes recent, negotiated sessions through a unique session ID, * use the TlsSessionResumptionMode parameter.

  • * As2Transports indicates the transport method for the AS2 messages. * Currently, only HTTP is supported.

*/ inline void SetProtocolDetails(const ProtocolDetails& value) { m_protocolDetailsHasBeenSet = true; m_protocolDetails = value; } /** *

The protocol settings that are configured for your server.

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

  • *
  • To ignore the error that is generated when the client attempts to use * the SETSTAT command on a file that you are uploading to an Amazon * S3 bucket, use the SetStatOption parameter. To have the Transfer * Family server ignore the SETSTAT command and upload files without * needing to make any changes to your SFTP client, set the value to * ENABLE_NO_OP. If you set the SetStatOption parameter * to ENABLE_NO_OP, Transfer Family generates a log entry to Amazon * CloudWatch Logs, so that you can determine when the client is making a * SETSTAT call.

  • To determine whether your Transfer * Family server resumes recent, negotiated sessions through a unique session ID, * use the TlsSessionResumptionMode parameter.

  • * As2Transports indicates the transport method for the AS2 messages. * Currently, only HTTP is supported.

*/ inline void SetProtocolDetails(ProtocolDetails&& value) { m_protocolDetailsHasBeenSet = true; m_protocolDetails = std::move(value); } /** *

The protocol settings that are configured for your server.

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

  • *
  • To ignore the error that is generated when the client attempts to use * the SETSTAT command on a file that you are uploading to an Amazon * S3 bucket, use the SetStatOption parameter. To have the Transfer * Family server ignore the SETSTAT command and upload files without * needing to make any changes to your SFTP client, set the value to * ENABLE_NO_OP. If you set the SetStatOption parameter * to ENABLE_NO_OP, Transfer Family generates a log entry to Amazon * CloudWatch Logs, so that you can determine when the client is making a * SETSTAT call.

  • To determine whether your Transfer * Family server resumes recent, negotiated sessions through a unique session ID, * use the TlsSessionResumptionMode parameter.

  • * As2Transports indicates the transport method for the AS2 messages. * Currently, only HTTP is supported.

*/ inline CreateServerRequest& WithProtocolDetails(const ProtocolDetails& value) { SetProtocolDetails(value); return *this;} /** *

The protocol settings that are configured for your server.

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

  • *
  • To ignore the error that is generated when the client attempts to use * the SETSTAT command on a file that you are uploading to an Amazon * S3 bucket, use the SetStatOption parameter. To have the Transfer * Family server ignore the SETSTAT command and upload files without * needing to make any changes to your SFTP client, set the value to * ENABLE_NO_OP. If you set the SetStatOption parameter * to ENABLE_NO_OP, Transfer Family generates a log entry to Amazon * CloudWatch Logs, so that you can determine when the client is making a * SETSTAT call.

  • To determine whether your Transfer * Family server resumes recent, negotiated sessions through a unique session ID, * use the TlsSessionResumptionMode parameter.

  • * As2Transports indicates the transport method for the AS2 messages. * Currently, only HTTP is supported.

*/ inline CreateServerRequest& WithProtocolDetails(ProtocolDetails&& value) { SetProtocolDetails(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 servers.

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

Key-value pairs that can be used to group and search for servers.

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

Key-value pairs that can be used to group and search for 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 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 servers.

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

Key-value pairs that can be used to group and search for 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 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 servers.

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

Specifies the workflow ID for the workflow to assign and the execution role * that's used for executing the workflow.

In addition to a workflow to * execute when a file is uploaded completely, WorkflowDetails can * also contain a workflow ID (and execution role) for a workflow to execute on * partial upload. A partial upload occurs when the server session disconnects * while the file is still being uploaded.

*/ inline const WorkflowDetails& GetWorkflowDetails() const{ return m_workflowDetails; } /** *

Specifies the workflow ID for the workflow to assign and the execution role * that's used for executing the workflow.

In addition to a workflow to * execute when a file is uploaded completely, WorkflowDetails can * also contain a workflow ID (and execution role) for a workflow to execute on * partial upload. A partial upload occurs when the server session disconnects * while the file is still being uploaded.

*/ inline bool WorkflowDetailsHasBeenSet() const { return m_workflowDetailsHasBeenSet; } /** *

Specifies the workflow ID for the workflow to assign and the execution role * that's used for executing the workflow.

In addition to a workflow to * execute when a file is uploaded completely, WorkflowDetails can * also contain a workflow ID (and execution role) for a workflow to execute on * partial upload. A partial upload occurs when the server session disconnects * while the file is still being uploaded.

*/ inline void SetWorkflowDetails(const WorkflowDetails& value) { m_workflowDetailsHasBeenSet = true; m_workflowDetails = value; } /** *

Specifies the workflow ID for the workflow to assign and the execution role * that's used for executing the workflow.

In addition to a workflow to * execute when a file is uploaded completely, WorkflowDetails can * also contain a workflow ID (and execution role) for a workflow to execute on * partial upload. A partial upload occurs when the server session disconnects * while the file is still being uploaded.

*/ inline void SetWorkflowDetails(WorkflowDetails&& value) { m_workflowDetailsHasBeenSet = true; m_workflowDetails = std::move(value); } /** *

Specifies the workflow ID for the workflow to assign and the execution role * that's used for executing the workflow.

In addition to a workflow to * execute when a file is uploaded completely, WorkflowDetails can * also contain a workflow ID (and execution role) for a workflow to execute on * partial upload. A partial upload occurs when the server session disconnects * while the file is still being uploaded.

*/ inline CreateServerRequest& WithWorkflowDetails(const WorkflowDetails& value) { SetWorkflowDetails(value); return *this;} /** *

Specifies the workflow ID for the workflow to assign and the execution role * that's used for executing the workflow.

In addition to a workflow to * execute when a file is uploaded completely, WorkflowDetails can * also contain a workflow ID (and execution role) for a workflow to execute on * partial upload. A partial upload occurs when the server session disconnects * while the file is still being uploaded.

*/ inline CreateServerRequest& WithWorkflowDetails(WorkflowDetails&& value) { SetWorkflowDetails(std::move(value)); return *this;} /** *

Specifies the log groups to which your server logs are sent.

To * specify a log group, you must provide the ARN for an existing log group. In this * case, the format of the log group is as follows:

* arn:aws:logs:region-name:amazon-account-id:log-group:log-group-name:* *

For example, * arn:aws:logs:us-east-1:111122223333:log-group:mytestgroup:*

*

If you have previously specified a log group for a server, you can clear it, * and in effect turn off structured logging, by providing an empty value for this * parameter in an update-server call. For example:

* update-server --server-id s-1234567890abcdef0 * --structured-log-destinations

*/ inline const Aws::Vector& GetStructuredLogDestinations() const{ return m_structuredLogDestinations; } /** *

Specifies the log groups to which your server logs are sent.

To * specify a log group, you must provide the ARN for an existing log group. In this * case, the format of the log group is as follows:

* arn:aws:logs:region-name:amazon-account-id:log-group:log-group-name:* *

For example, * arn:aws:logs:us-east-1:111122223333:log-group:mytestgroup:*

*

If you have previously specified a log group for a server, you can clear it, * and in effect turn off structured logging, by providing an empty value for this * parameter in an update-server call. For example:

* update-server --server-id s-1234567890abcdef0 * --structured-log-destinations

*/ inline bool StructuredLogDestinationsHasBeenSet() const { return m_structuredLogDestinationsHasBeenSet; } /** *

Specifies the log groups to which your server logs are sent.

To * specify a log group, you must provide the ARN for an existing log group. In this * case, the format of the log group is as follows:

* arn:aws:logs:region-name:amazon-account-id:log-group:log-group-name:* *

For example, * arn:aws:logs:us-east-1:111122223333:log-group:mytestgroup:*

*

If you have previously specified a log group for a server, you can clear it, * and in effect turn off structured logging, by providing an empty value for this * parameter in an update-server call. For example:

* update-server --server-id s-1234567890abcdef0 * --structured-log-destinations

*/ inline void SetStructuredLogDestinations(const Aws::Vector& value) { m_structuredLogDestinationsHasBeenSet = true; m_structuredLogDestinations = value; } /** *

Specifies the log groups to which your server logs are sent.

To * specify a log group, you must provide the ARN for an existing log group. In this * case, the format of the log group is as follows:

* arn:aws:logs:region-name:amazon-account-id:log-group:log-group-name:* *

For example, * arn:aws:logs:us-east-1:111122223333:log-group:mytestgroup:*

*

If you have previously specified a log group for a server, you can clear it, * and in effect turn off structured logging, by providing an empty value for this * parameter in an update-server call. For example:

* update-server --server-id s-1234567890abcdef0 * --structured-log-destinations

*/ inline void SetStructuredLogDestinations(Aws::Vector&& value) { m_structuredLogDestinationsHasBeenSet = true; m_structuredLogDestinations = std::move(value); } /** *

Specifies the log groups to which your server logs are sent.

To * specify a log group, you must provide the ARN for an existing log group. In this * case, the format of the log group is as follows:

* arn:aws:logs:region-name:amazon-account-id:log-group:log-group-name:* *

For example, * arn:aws:logs:us-east-1:111122223333:log-group:mytestgroup:*

*

If you have previously specified a log group for a server, you can clear it, * and in effect turn off structured logging, by providing an empty value for this * parameter in an update-server call. For example:

* update-server --server-id s-1234567890abcdef0 * --structured-log-destinations

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

Specifies the log groups to which your server logs are sent.

To * specify a log group, you must provide the ARN for an existing log group. In this * case, the format of the log group is as follows:

* arn:aws:logs:region-name:amazon-account-id:log-group:log-group-name:* *

For example, * arn:aws:logs:us-east-1:111122223333:log-group:mytestgroup:*

*

If you have previously specified a log group for a server, you can clear it, * and in effect turn off structured logging, by providing an empty value for this * parameter in an update-server call. For example:

* update-server --server-id s-1234567890abcdef0 * --structured-log-destinations

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

Specifies the log groups to which your server logs are sent.

To * specify a log group, you must provide the ARN for an existing log group. In this * case, the format of the log group is as follows:

* arn:aws:logs:region-name:amazon-account-id:log-group:log-group-name:* *

For example, * arn:aws:logs:us-east-1:111122223333:log-group:mytestgroup:*

*

If you have previously specified a log group for a server, you can clear it, * and in effect turn off structured logging, by providing an empty value for this * parameter in an update-server call. For example:

* update-server --server-id s-1234567890abcdef0 * --structured-log-destinations

*/ inline CreateServerRequest& AddStructuredLogDestinations(const Aws::String& value) { m_structuredLogDestinationsHasBeenSet = true; m_structuredLogDestinations.push_back(value); return *this; } /** *

Specifies the log groups to which your server logs are sent.

To * specify a log group, you must provide the ARN for an existing log group. In this * case, the format of the log group is as follows:

* arn:aws:logs:region-name:amazon-account-id:log-group:log-group-name:* *

For example, * arn:aws:logs:us-east-1:111122223333:log-group:mytestgroup:*

*

If you have previously specified a log group for a server, you can clear it, * and in effect turn off structured logging, by providing an empty value for this * parameter in an update-server call. For example:

* update-server --server-id s-1234567890abcdef0 * --structured-log-destinations

*/ inline CreateServerRequest& AddStructuredLogDestinations(Aws::String&& value) { m_structuredLogDestinationsHasBeenSet = true; m_structuredLogDestinations.push_back(std::move(value)); return *this; } /** *

Specifies the log groups to which your server logs are sent.

To * specify a log group, you must provide the ARN for an existing log group. In this * case, the format of the log group is as follows:

* arn:aws:logs:region-name:amazon-account-id:log-group:log-group-name:* *

For example, * arn:aws:logs:us-east-1:111122223333:log-group:mytestgroup:*

*

If you have previously specified a log group for a server, you can clear it, * and in effect turn off structured logging, by providing an empty value for this * parameter in an update-server call. For example:

* update-server --server-id s-1234567890abcdef0 * --structured-log-destinations

*/ inline CreateServerRequest& AddStructuredLogDestinations(const char* value) { m_structuredLogDestinationsHasBeenSet = true; m_structuredLogDestinations.push_back(value); return *this; } private: Aws::String m_certificate; bool m_certificateHasBeenSet = false; Domain m_domain; bool m_domainHasBeenSet = false; EndpointDetails m_endpointDetails; bool m_endpointDetailsHasBeenSet = false; EndpointType m_endpointType; bool m_endpointTypeHasBeenSet = false; Aws::String m_hostKey; bool m_hostKeyHasBeenSet = false; IdentityProviderDetails m_identityProviderDetails; bool m_identityProviderDetailsHasBeenSet = false; IdentityProviderType m_identityProviderType; bool m_identityProviderTypeHasBeenSet = false; Aws::String m_loggingRole; bool m_loggingRoleHasBeenSet = false; Aws::String m_postAuthenticationLoginBanner; bool m_postAuthenticationLoginBannerHasBeenSet = false; Aws::String m_preAuthenticationLoginBanner; bool m_preAuthenticationLoginBannerHasBeenSet = false; Aws::Vector m_protocols; bool m_protocolsHasBeenSet = false; ProtocolDetails m_protocolDetails; bool m_protocolDetailsHasBeenSet = false; Aws::String m_securityPolicyName; bool m_securityPolicyNameHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; WorkflowDetails m_workflowDetails; bool m_workflowDetailsHasBeenSet = false; Aws::Vector m_structuredLogDestinations; bool m_structuredLogDestinationsHasBeenSet = false; }; } // namespace Model } // namespace Transfer } // namespace Aws