/** * 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 Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace Transfer { namespace Model { /** *

Describes the properties of a file transfer protocol-enabled server that was * specified.

See Also:

AWS * API Reference

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

Specifies the unique Amazon Resource Name (ARN) of the server.

*/ inline const Aws::String& GetArn() const{ return m_arn; } /** *

Specifies the unique Amazon Resource Name (ARN) of the server.

*/ inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; } /** *

Specifies the unique Amazon Resource Name (ARN) of the server.

*/ inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; } /** *

Specifies the unique Amazon Resource Name (ARN) of the server.

*/ inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); } /** *

Specifies the unique Amazon Resource Name (ARN) of the server.

*/ inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); } /** *

Specifies the unique Amazon Resource Name (ARN) of the server.

*/ inline DescribedServer& WithArn(const Aws::String& value) { SetArn(value); return *this;} /** *

Specifies the unique Amazon Resource Name (ARN) of the server.

*/ inline DescribedServer& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;} /** *

Specifies the unique Amazon Resource Name (ARN) of the server.

*/ inline DescribedServer& WithArn(const char* value) { SetArn(value); return *this;} /** *

Specifies the ARN of the Amazon Web ServicesCertificate Manager (ACM) * certificate. Required when Protocols is set to * FTPS.

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

Specifies the ARN of the Amazon Web ServicesCertificate Manager (ACM) * certificate. Required when Protocols is set to * FTPS.

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

Specifies the ARN of the Amazon Web ServicesCertificate Manager (ACM) * certificate. Required when Protocols is set to * FTPS.

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

Specifies the ARN of the Amazon Web ServicesCertificate Manager (ACM) * certificate. Required when Protocols is set to * FTPS.

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

Specifies the ARN of the Amazon Web ServicesCertificate Manager (ACM) * certificate. Required when Protocols is set to * FTPS.

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

Specifies the ARN of the Amazon Web ServicesCertificate Manager (ACM) * certificate. Required when Protocols is set to * FTPS.

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

Specifies the ARN of the Amazon Web ServicesCertificate Manager (ACM) * certificate. Required when Protocols is set to * FTPS.

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

Specifies the ARN of the Amazon Web ServicesCertificate Manager (ACM) * certificate. Required when Protocols is set to * FTPS.

*/ inline DescribedServer& WithCertificate(const char* value) { SetCertificate(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 DescribedServer& 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 DescribedServer& WithProtocolDetails(ProtocolDetails&& value) { SetProtocolDetails(std::move(value)); return *this;} /** *

Specifies the domain of the storage system that is used for file * transfers.

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

Specifies the domain of the storage system that is used for file * transfers.

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

Specifies the domain of the storage system that is used for file * transfers.

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

Specifies the domain of the storage system that is used for file * transfers.

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

Specifies the domain of the storage system that is used for file * transfers.

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

Specifies the domain of the storage system that is used for file * transfers.

*/ inline DescribedServer& 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 DescribedServer& 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 DescribedServer& WithEndpointDetails(EndpointDetails&& value) { SetEndpointDetails(std::move(value)); return *this;} /** *

Defines the type of endpoint that your server is connected to. If your server * is connected to a VPC endpoint, your server isn't accessible over the public * internet.

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

Defines the type of endpoint that your server is connected to. If your server * is connected to a VPC endpoint, your server isn't accessible over the public * internet.

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

Defines the type of endpoint that your server is connected to. If your server * is connected to a VPC endpoint, your server isn't accessible over the public * internet.

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

Defines the type of endpoint that your server is connected to. If your server * is connected to a VPC endpoint, your server isn't accessible over the public * internet.

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

Defines the type of endpoint that your server is connected to. If your server * is connected to a VPC endpoint, your server isn't accessible over the public * internet.

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

Defines the type of endpoint that your server is connected to. If your server * is connected to a VPC endpoint, your server isn't accessible over the public * internet.

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

Specifies the Base64-encoded SHA256 fingerprint of the server's host key. * This value is equivalent to the output of the ssh-keygen -l -f * my-new-server-key command.

*/ inline const Aws::String& GetHostKeyFingerprint() const{ return m_hostKeyFingerprint; } /** *

Specifies the Base64-encoded SHA256 fingerprint of the server's host key. * This value is equivalent to the output of the ssh-keygen -l -f * my-new-server-key command.

*/ inline bool HostKeyFingerprintHasBeenSet() const { return m_hostKeyFingerprintHasBeenSet; } /** *

Specifies the Base64-encoded SHA256 fingerprint of the server's host key. * This value is equivalent to the output of the ssh-keygen -l -f * my-new-server-key command.

*/ inline void SetHostKeyFingerprint(const Aws::String& value) { m_hostKeyFingerprintHasBeenSet = true; m_hostKeyFingerprint = value; } /** *

Specifies the Base64-encoded SHA256 fingerprint of the server's host key. * This value is equivalent to the output of the ssh-keygen -l -f * my-new-server-key command.

*/ inline void SetHostKeyFingerprint(Aws::String&& value) { m_hostKeyFingerprintHasBeenSet = true; m_hostKeyFingerprint = std::move(value); } /** *

Specifies the Base64-encoded SHA256 fingerprint of the server's host key. * This value is equivalent to the output of the ssh-keygen -l -f * my-new-server-key command.

*/ inline void SetHostKeyFingerprint(const char* value) { m_hostKeyFingerprintHasBeenSet = true; m_hostKeyFingerprint.assign(value); } /** *

Specifies the Base64-encoded SHA256 fingerprint of the server's host key. * This value is equivalent to the output of the ssh-keygen -l -f * my-new-server-key command.

*/ inline DescribedServer& WithHostKeyFingerprint(const Aws::String& value) { SetHostKeyFingerprint(value); return *this;} /** *

Specifies the Base64-encoded SHA256 fingerprint of the server's host key. * This value is equivalent to the output of the ssh-keygen -l -f * my-new-server-key command.

*/ inline DescribedServer& WithHostKeyFingerprint(Aws::String&& value) { SetHostKeyFingerprint(std::move(value)); return *this;} /** *

Specifies the Base64-encoded SHA256 fingerprint of the server's host key. * This value is equivalent to the output of the ssh-keygen -l -f * my-new-server-key command.

*/ inline DescribedServer& WithHostKeyFingerprint(const char* value) { SetHostKeyFingerprint(value); return *this;} /** *

Specifies information to call a customer-supplied authentication API. This * field is not populated when the IdentityProviderType of a server is * AWS_DIRECTORY_SERVICE or SERVICE_MANAGED.

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

Specifies information to call a customer-supplied authentication API. This * field is not populated when the IdentityProviderType of a server is * AWS_DIRECTORY_SERVICE or SERVICE_MANAGED.

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

Specifies information to call a customer-supplied authentication API. This * field is not populated when the IdentityProviderType of a server is * AWS_DIRECTORY_SERVICE or SERVICE_MANAGED.

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

Specifies information to call a customer-supplied authentication API. This * field is not populated when the IdentityProviderType of a server is * AWS_DIRECTORY_SERVICE or SERVICE_MANAGED.

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

Specifies information to call a customer-supplied authentication API. This * field is not populated when the IdentityProviderType of a server is * AWS_DIRECTORY_SERVICE or SERVICE_MANAGED.

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

Specifies information to call a customer-supplied authentication API. This * field is not populated when the IdentityProviderType of a server is * AWS_DIRECTORY_SERVICE or SERVICE_MANAGED.

*/ inline DescribedServer& 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 DescribedServer& 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 DescribedServer& 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 DescribedServer& 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 DescribedServer& 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 DescribedServer& 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 DescribedServer& 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 DescribedServer& 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 DescribedServer& 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 DescribedServer& 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 DescribedServer& 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 DescribedServer& 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 DescribedServer& 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 DescribedServer& 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 DescribedServer& 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 DescribedServer& 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 DescribedServer& WithSecurityPolicyName(const Aws::String& value) { SetSecurityPolicyName(value); return *this;} /** *

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

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

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

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

Specifies the unique system-assigned identifier for a server that you * instantiate.

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

Specifies the unique system-assigned identifier for a server that you * instantiate.

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

Specifies the unique system-assigned identifier for a server that you * instantiate.

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

Specifies the unique system-assigned identifier for a server that you * instantiate.

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

Specifies the unique system-assigned identifier for a server that you * instantiate.

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

Specifies the unique system-assigned identifier for a server that you * instantiate.

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

Specifies the unique system-assigned identifier for a server that you * instantiate.

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

Specifies the unique system-assigned identifier for a server that you * instantiate.

*/ inline DescribedServer& WithServerId(const char* value) { SetServerId(value); return *this;} /** *

The condition of the server that was described. A value of * ONLINE indicates that the server can accept jobs and transfer * files. A State value of OFFLINE means that the server * cannot perform file transfer operations.

The states of * STARTING and STOPPING indicate that the server is in * an intermediate state, either not fully able to respond, or not fully offline. * The values of START_FAILED or STOP_FAILED can indicate * an error condition.

*/ inline const State& GetState() const{ return m_state; } /** *

The condition of the server that was described. A value of * ONLINE indicates that the server can accept jobs and transfer * files. A State value of OFFLINE means that the server * cannot perform file transfer operations.

The states of * STARTING and STOPPING indicate that the server is in * an intermediate state, either not fully able to respond, or not fully offline. * The values of START_FAILED or STOP_FAILED can indicate * an error condition.

*/ inline bool StateHasBeenSet() const { return m_stateHasBeenSet; } /** *

The condition of the server that was described. A value of * ONLINE indicates that the server can accept jobs and transfer * files. A State value of OFFLINE means that the server * cannot perform file transfer operations.

The states of * STARTING and STOPPING indicate that the server is in * an intermediate state, either not fully able to respond, or not fully offline. * The values of START_FAILED or STOP_FAILED can indicate * an error condition.

*/ inline void SetState(const State& value) { m_stateHasBeenSet = true; m_state = value; } /** *

The condition of the server that was described. A value of * ONLINE indicates that the server can accept jobs and transfer * files. A State value of OFFLINE means that the server * cannot perform file transfer operations.

The states of * STARTING and STOPPING indicate that the server is in * an intermediate state, either not fully able to respond, or not fully offline. * The values of START_FAILED or STOP_FAILED can indicate * an error condition.

*/ inline void SetState(State&& value) { m_stateHasBeenSet = true; m_state = std::move(value); } /** *

The condition of the server that was described. A value of * ONLINE indicates that the server can accept jobs and transfer * files. A State value of OFFLINE means that the server * cannot perform file transfer operations.

The states of * STARTING and STOPPING indicate that the server is in * an intermediate state, either not fully able to respond, or not fully offline. * The values of START_FAILED or STOP_FAILED can indicate * an error condition.

*/ inline DescribedServer& WithState(const State& value) { SetState(value); return *this;} /** *

The condition of the server that was described. A value of * ONLINE indicates that the server can accept jobs and transfer * files. A State value of OFFLINE means that the server * cannot perform file transfer operations.

The states of * STARTING and STOPPING indicate that the server is in * an intermediate state, either not fully able to respond, or not fully offline. * The values of START_FAILED or STOP_FAILED can indicate * an error condition.

*/ inline DescribedServer& WithState(State&& value) { SetState(std::move(value)); return *this;} /** *

Specifies the key-value pairs that you can use to search for and group * servers that were assigned to the server that was described.

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

Specifies the key-value pairs that you can use to search for and group * servers that were assigned to the server that was described.

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

Specifies the key-value pairs that you can use to search for and group * servers that were assigned to the server that was described.

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

Specifies the key-value pairs that you can use to search for and group * servers that were assigned to the server that was described.

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

Specifies the key-value pairs that you can use to search for and group * servers that were assigned to the server that was described.

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

Specifies the key-value pairs that you can use to search for and group * servers that were assigned to the server that was described.

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

Specifies the key-value pairs that you can use to search for and group * servers that were assigned to the server that was described.

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

Specifies the key-value pairs that you can use to search for and group * servers that were assigned to the server that was described.

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

Specifies the number of users that are assigned to a server you specified * with the ServerId.

*/ inline int GetUserCount() const{ return m_userCount; } /** *

Specifies the number of users that are assigned to a server you specified * with the ServerId.

*/ inline bool UserCountHasBeenSet() const { return m_userCountHasBeenSet; } /** *

Specifies the number of users that are assigned to a server you specified * with the ServerId.

*/ inline void SetUserCount(int value) { m_userCountHasBeenSet = true; m_userCount = value; } /** *

Specifies the number of users that are assigned to a server you specified * with the ServerId.

*/ inline DescribedServer& WithUserCount(int value) { SetUserCount(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 DescribedServer& 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 DescribedServer& 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 DescribedServer& 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 DescribedServer& 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 DescribedServer& 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 DescribedServer& 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 DescribedServer& AddStructuredLogDestinations(const char* value) { m_structuredLogDestinationsHasBeenSet = true; m_structuredLogDestinations.push_back(value); return *this; } private: Aws::String m_arn; bool m_arnHasBeenSet = false; Aws::String m_certificate; bool m_certificateHasBeenSet = false; ProtocolDetails m_protocolDetails; bool m_protocolDetailsHasBeenSet = 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_hostKeyFingerprint; bool m_hostKeyFingerprintHasBeenSet = 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; Aws::String m_securityPolicyName; bool m_securityPolicyNameHasBeenSet = false; Aws::String m_serverId; bool m_serverIdHasBeenSet = false; State m_state; bool m_stateHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; int m_userCount; bool m_userCountHasBeenSet = false; WorkflowDetails m_workflowDetails; bool m_workflowDetailsHasBeenSet = false; Aws::Vector m_structuredLogDestinations; bool m_structuredLogDestinationsHasBeenSet = false; }; } // namespace Model } // namespace Transfer } // namespace Aws