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

The domain name configuration.

See Also:

AWS * API Reference

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

A domain name for the API.

*/ inline const Aws::String& GetApiGatewayDomainName() const{ return m_apiGatewayDomainName; } /** *

A domain name for the API.

*/ inline bool ApiGatewayDomainNameHasBeenSet() const { return m_apiGatewayDomainNameHasBeenSet; } /** *

A domain name for the API.

*/ inline void SetApiGatewayDomainName(const Aws::String& value) { m_apiGatewayDomainNameHasBeenSet = true; m_apiGatewayDomainName = value; } /** *

A domain name for the API.

*/ inline void SetApiGatewayDomainName(Aws::String&& value) { m_apiGatewayDomainNameHasBeenSet = true; m_apiGatewayDomainName = std::move(value); } /** *

A domain name for the API.

*/ inline void SetApiGatewayDomainName(const char* value) { m_apiGatewayDomainNameHasBeenSet = true; m_apiGatewayDomainName.assign(value); } /** *

A domain name for the API.

*/ inline DomainNameConfiguration& WithApiGatewayDomainName(const Aws::String& value) { SetApiGatewayDomainName(value); return *this;} /** *

A domain name for the API.

*/ inline DomainNameConfiguration& WithApiGatewayDomainName(Aws::String&& value) { SetApiGatewayDomainName(std::move(value)); return *this;} /** *

A domain name for the API.

*/ inline DomainNameConfiguration& WithApiGatewayDomainName(const char* value) { SetApiGatewayDomainName(value); return *this;} /** *

An AWS-managed certificate that will be used by the edge-optimized endpoint * for this domain name. AWS Certificate Manager is the only supported source.

*/ inline const Aws::String& GetCertificateArn() const{ return m_certificateArn; } /** *

An AWS-managed certificate that will be used by the edge-optimized endpoint * for this domain name. AWS Certificate Manager is the only supported source.

*/ inline bool CertificateArnHasBeenSet() const { return m_certificateArnHasBeenSet; } /** *

An AWS-managed certificate that will be used by the edge-optimized endpoint * for this domain name. AWS Certificate Manager is the only supported source.

*/ inline void SetCertificateArn(const Aws::String& value) { m_certificateArnHasBeenSet = true; m_certificateArn = value; } /** *

An AWS-managed certificate that will be used by the edge-optimized endpoint * for this domain name. AWS Certificate Manager is the only supported source.

*/ inline void SetCertificateArn(Aws::String&& value) { m_certificateArnHasBeenSet = true; m_certificateArn = std::move(value); } /** *

An AWS-managed certificate that will be used by the edge-optimized endpoint * for this domain name. AWS Certificate Manager is the only supported source.

*/ inline void SetCertificateArn(const char* value) { m_certificateArnHasBeenSet = true; m_certificateArn.assign(value); } /** *

An AWS-managed certificate that will be used by the edge-optimized endpoint * for this domain name. AWS Certificate Manager is the only supported source.

*/ inline DomainNameConfiguration& WithCertificateArn(const Aws::String& value) { SetCertificateArn(value); return *this;} /** *

An AWS-managed certificate that will be used by the edge-optimized endpoint * for this domain name. AWS Certificate Manager is the only supported source.

*/ inline DomainNameConfiguration& WithCertificateArn(Aws::String&& value) { SetCertificateArn(std::move(value)); return *this;} /** *

An AWS-managed certificate that will be used by the edge-optimized endpoint * for this domain name. AWS Certificate Manager is the only supported source.

*/ inline DomainNameConfiguration& WithCertificateArn(const char* value) { SetCertificateArn(value); return *this;} /** *

The user-friendly name of the certificate that will be used by the * edge-optimized endpoint for this domain name.

*/ inline const Aws::String& GetCertificateName() const{ return m_certificateName; } /** *

The user-friendly name of the certificate that will be used by the * edge-optimized endpoint for this domain name.

*/ inline bool CertificateNameHasBeenSet() const { return m_certificateNameHasBeenSet; } /** *

The user-friendly name of the certificate that will be used by the * edge-optimized endpoint for this domain name.

*/ inline void SetCertificateName(const Aws::String& value) { m_certificateNameHasBeenSet = true; m_certificateName = value; } /** *

The user-friendly name of the certificate that will be used by the * edge-optimized endpoint for this domain name.

*/ inline void SetCertificateName(Aws::String&& value) { m_certificateNameHasBeenSet = true; m_certificateName = std::move(value); } /** *

The user-friendly name of the certificate that will be used by the * edge-optimized endpoint for this domain name.

*/ inline void SetCertificateName(const char* value) { m_certificateNameHasBeenSet = true; m_certificateName.assign(value); } /** *

The user-friendly name of the certificate that will be used by the * edge-optimized endpoint for this domain name.

*/ inline DomainNameConfiguration& WithCertificateName(const Aws::String& value) { SetCertificateName(value); return *this;} /** *

The user-friendly name of the certificate that will be used by the * edge-optimized endpoint for this domain name.

*/ inline DomainNameConfiguration& WithCertificateName(Aws::String&& value) { SetCertificateName(std::move(value)); return *this;} /** *

The user-friendly name of the certificate that will be used by the * edge-optimized endpoint for this domain name.

*/ inline DomainNameConfiguration& WithCertificateName(const char* value) { SetCertificateName(value); return *this;} /** *

The timestamp when the certificate that was used by edge-optimized endpoint * for this domain name was uploaded.

*/ inline const Aws::Utils::DateTime& GetCertificateUploadDate() const{ return m_certificateUploadDate; } /** *

The timestamp when the certificate that was used by edge-optimized endpoint * for this domain name was uploaded.

*/ inline bool CertificateUploadDateHasBeenSet() const { return m_certificateUploadDateHasBeenSet; } /** *

The timestamp when the certificate that was used by edge-optimized endpoint * for this domain name was uploaded.

*/ inline void SetCertificateUploadDate(const Aws::Utils::DateTime& value) { m_certificateUploadDateHasBeenSet = true; m_certificateUploadDate = value; } /** *

The timestamp when the certificate that was used by edge-optimized endpoint * for this domain name was uploaded.

*/ inline void SetCertificateUploadDate(Aws::Utils::DateTime&& value) { m_certificateUploadDateHasBeenSet = true; m_certificateUploadDate = std::move(value); } /** *

The timestamp when the certificate that was used by edge-optimized endpoint * for this domain name was uploaded.

*/ inline DomainNameConfiguration& WithCertificateUploadDate(const Aws::Utils::DateTime& value) { SetCertificateUploadDate(value); return *this;} /** *

The timestamp when the certificate that was used by edge-optimized endpoint * for this domain name was uploaded.

*/ inline DomainNameConfiguration& WithCertificateUploadDate(Aws::Utils::DateTime&& value) { SetCertificateUploadDate(std::move(value)); return *this;} /** *

The status of the domain name migration. The valid values are AVAILABLE, * UPDATING, PENDING_CERTIFICATE_REIMPORT, and PENDING_OWNERSHIP_VERIFICATION. If * the status is UPDATING, the domain cannot be modified further until the existing * operation is complete. If it is AVAILABLE, the domain can be updated.

*/ inline const DomainNameStatus& GetDomainNameStatus() const{ return m_domainNameStatus; } /** *

The status of the domain name migration. The valid values are AVAILABLE, * UPDATING, PENDING_CERTIFICATE_REIMPORT, and PENDING_OWNERSHIP_VERIFICATION. If * the status is UPDATING, the domain cannot be modified further until the existing * operation is complete. If it is AVAILABLE, the domain can be updated.

*/ inline bool DomainNameStatusHasBeenSet() const { return m_domainNameStatusHasBeenSet; } /** *

The status of the domain name migration. The valid values are AVAILABLE, * UPDATING, PENDING_CERTIFICATE_REIMPORT, and PENDING_OWNERSHIP_VERIFICATION. If * the status is UPDATING, the domain cannot be modified further until the existing * operation is complete. If it is AVAILABLE, the domain can be updated.

*/ inline void SetDomainNameStatus(const DomainNameStatus& value) { m_domainNameStatusHasBeenSet = true; m_domainNameStatus = value; } /** *

The status of the domain name migration. The valid values are AVAILABLE, * UPDATING, PENDING_CERTIFICATE_REIMPORT, and PENDING_OWNERSHIP_VERIFICATION. If * the status is UPDATING, the domain cannot be modified further until the existing * operation is complete. If it is AVAILABLE, the domain can be updated.

*/ inline void SetDomainNameStatus(DomainNameStatus&& value) { m_domainNameStatusHasBeenSet = true; m_domainNameStatus = std::move(value); } /** *

The status of the domain name migration. The valid values are AVAILABLE, * UPDATING, PENDING_CERTIFICATE_REIMPORT, and PENDING_OWNERSHIP_VERIFICATION. If * the status is UPDATING, the domain cannot be modified further until the existing * operation is complete. If it is AVAILABLE, the domain can be updated.

*/ inline DomainNameConfiguration& WithDomainNameStatus(const DomainNameStatus& value) { SetDomainNameStatus(value); return *this;} /** *

The status of the domain name migration. The valid values are AVAILABLE, * UPDATING, PENDING_CERTIFICATE_REIMPORT, and PENDING_OWNERSHIP_VERIFICATION. If * the status is UPDATING, the domain cannot be modified further until the existing * operation is complete. If it is AVAILABLE, the domain can be updated.

*/ inline DomainNameConfiguration& WithDomainNameStatus(DomainNameStatus&& value) { SetDomainNameStatus(std::move(value)); return *this;} /** *

An optional text message containing detailed information about status of the * domain name migration.

*/ inline const Aws::String& GetDomainNameStatusMessage() const{ return m_domainNameStatusMessage; } /** *

An optional text message containing detailed information about status of the * domain name migration.

*/ inline bool DomainNameStatusMessageHasBeenSet() const { return m_domainNameStatusMessageHasBeenSet; } /** *

An optional text message containing detailed information about status of the * domain name migration.

*/ inline void SetDomainNameStatusMessage(const Aws::String& value) { m_domainNameStatusMessageHasBeenSet = true; m_domainNameStatusMessage = value; } /** *

An optional text message containing detailed information about status of the * domain name migration.

*/ inline void SetDomainNameStatusMessage(Aws::String&& value) { m_domainNameStatusMessageHasBeenSet = true; m_domainNameStatusMessage = std::move(value); } /** *

An optional text message containing detailed information about status of the * domain name migration.

*/ inline void SetDomainNameStatusMessage(const char* value) { m_domainNameStatusMessageHasBeenSet = true; m_domainNameStatusMessage.assign(value); } /** *

An optional text message containing detailed information about status of the * domain name migration.

*/ inline DomainNameConfiguration& WithDomainNameStatusMessage(const Aws::String& value) { SetDomainNameStatusMessage(value); return *this;} /** *

An optional text message containing detailed information about status of the * domain name migration.

*/ inline DomainNameConfiguration& WithDomainNameStatusMessage(Aws::String&& value) { SetDomainNameStatusMessage(std::move(value)); return *this;} /** *

An optional text message containing detailed information about status of the * domain name migration.

*/ inline DomainNameConfiguration& WithDomainNameStatusMessage(const char* value) { SetDomainNameStatusMessage(value); return *this;} /** *

The endpoint type.

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

The endpoint type.

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

The endpoint type.

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

The endpoint type.

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

The endpoint type.

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

The endpoint type.

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

The Amazon Route 53 Hosted Zone ID of the endpoint.

*/ inline const Aws::String& GetHostedZoneId() const{ return m_hostedZoneId; } /** *

The Amazon Route 53 Hosted Zone ID of the endpoint.

*/ inline bool HostedZoneIdHasBeenSet() const { return m_hostedZoneIdHasBeenSet; } /** *

The Amazon Route 53 Hosted Zone ID of the endpoint.

*/ inline void SetHostedZoneId(const Aws::String& value) { m_hostedZoneIdHasBeenSet = true; m_hostedZoneId = value; } /** *

The Amazon Route 53 Hosted Zone ID of the endpoint.

*/ inline void SetHostedZoneId(Aws::String&& value) { m_hostedZoneIdHasBeenSet = true; m_hostedZoneId = std::move(value); } /** *

The Amazon Route 53 Hosted Zone ID of the endpoint.

*/ inline void SetHostedZoneId(const char* value) { m_hostedZoneIdHasBeenSet = true; m_hostedZoneId.assign(value); } /** *

The Amazon Route 53 Hosted Zone ID of the endpoint.

*/ inline DomainNameConfiguration& WithHostedZoneId(const Aws::String& value) { SetHostedZoneId(value); return *this;} /** *

The Amazon Route 53 Hosted Zone ID of the endpoint.

*/ inline DomainNameConfiguration& WithHostedZoneId(Aws::String&& value) { SetHostedZoneId(std::move(value)); return *this;} /** *

The Amazon Route 53 Hosted Zone ID of the endpoint.

*/ inline DomainNameConfiguration& WithHostedZoneId(const char* value) { SetHostedZoneId(value); return *this;} /** *

The Transport Layer Security (TLS) version of the security policy for this * domain name. The valid values are TLS_1_0 and TLS_1_2.

*/ inline const SecurityPolicy& GetSecurityPolicy() const{ return m_securityPolicy; } /** *

The Transport Layer Security (TLS) version of the security policy for this * domain name. The valid values are TLS_1_0 and TLS_1_2.

*/ inline bool SecurityPolicyHasBeenSet() const { return m_securityPolicyHasBeenSet; } /** *

The Transport Layer Security (TLS) version of the security policy for this * domain name. The valid values are TLS_1_0 and TLS_1_2.

*/ inline void SetSecurityPolicy(const SecurityPolicy& value) { m_securityPolicyHasBeenSet = true; m_securityPolicy = value; } /** *

The Transport Layer Security (TLS) version of the security policy for this * domain name. The valid values are TLS_1_0 and TLS_1_2.

*/ inline void SetSecurityPolicy(SecurityPolicy&& value) { m_securityPolicyHasBeenSet = true; m_securityPolicy = std::move(value); } /** *

The Transport Layer Security (TLS) version of the security policy for this * domain name. The valid values are TLS_1_0 and TLS_1_2.

*/ inline DomainNameConfiguration& WithSecurityPolicy(const SecurityPolicy& value) { SetSecurityPolicy(value); return *this;} /** *

The Transport Layer Security (TLS) version of the security policy for this * domain name. The valid values are TLS_1_0 and TLS_1_2.

*/ inline DomainNameConfiguration& WithSecurityPolicy(SecurityPolicy&& value) { SetSecurityPolicy(std::move(value)); return *this;} /** *

The ARN of the public certificate issued by ACM to validate ownership of your * custom domain. Only required when configuring mutual TLS and using an ACM * imported or private CA certificate ARN as the regionalCertificateArn

*/ inline const Aws::String& GetOwnershipVerificationCertificateArn() const{ return m_ownershipVerificationCertificateArn; } /** *

The ARN of the public certificate issued by ACM to validate ownership of your * custom domain. Only required when configuring mutual TLS and using an ACM * imported or private CA certificate ARN as the regionalCertificateArn

*/ inline bool OwnershipVerificationCertificateArnHasBeenSet() const { return m_ownershipVerificationCertificateArnHasBeenSet; } /** *

The ARN of the public certificate issued by ACM to validate ownership of your * custom domain. Only required when configuring mutual TLS and using an ACM * imported or private CA certificate ARN as the regionalCertificateArn

*/ inline void SetOwnershipVerificationCertificateArn(const Aws::String& value) { m_ownershipVerificationCertificateArnHasBeenSet = true; m_ownershipVerificationCertificateArn = value; } /** *

The ARN of the public certificate issued by ACM to validate ownership of your * custom domain. Only required when configuring mutual TLS and using an ACM * imported or private CA certificate ARN as the regionalCertificateArn

*/ inline void SetOwnershipVerificationCertificateArn(Aws::String&& value) { m_ownershipVerificationCertificateArnHasBeenSet = true; m_ownershipVerificationCertificateArn = std::move(value); } /** *

The ARN of the public certificate issued by ACM to validate ownership of your * custom domain. Only required when configuring mutual TLS and using an ACM * imported or private CA certificate ARN as the regionalCertificateArn

*/ inline void SetOwnershipVerificationCertificateArn(const char* value) { m_ownershipVerificationCertificateArnHasBeenSet = true; m_ownershipVerificationCertificateArn.assign(value); } /** *

The ARN of the public certificate issued by ACM to validate ownership of your * custom domain. Only required when configuring mutual TLS and using an ACM * imported or private CA certificate ARN as the regionalCertificateArn

*/ inline DomainNameConfiguration& WithOwnershipVerificationCertificateArn(const Aws::String& value) { SetOwnershipVerificationCertificateArn(value); return *this;} /** *

The ARN of the public certificate issued by ACM to validate ownership of your * custom domain. Only required when configuring mutual TLS and using an ACM * imported or private CA certificate ARN as the regionalCertificateArn

*/ inline DomainNameConfiguration& WithOwnershipVerificationCertificateArn(Aws::String&& value) { SetOwnershipVerificationCertificateArn(std::move(value)); return *this;} /** *

The ARN of the public certificate issued by ACM to validate ownership of your * custom domain. Only required when configuring mutual TLS and using an ACM * imported or private CA certificate ARN as the regionalCertificateArn

*/ inline DomainNameConfiguration& WithOwnershipVerificationCertificateArn(const char* value) { SetOwnershipVerificationCertificateArn(value); return *this;} private: Aws::String m_apiGatewayDomainName; bool m_apiGatewayDomainNameHasBeenSet = false; Aws::String m_certificateArn; bool m_certificateArnHasBeenSet = false; Aws::String m_certificateName; bool m_certificateNameHasBeenSet = false; Aws::Utils::DateTime m_certificateUploadDate; bool m_certificateUploadDateHasBeenSet = false; DomainNameStatus m_domainNameStatus; bool m_domainNameStatusHasBeenSet = false; Aws::String m_domainNameStatusMessage; bool m_domainNameStatusMessageHasBeenSet = false; EndpointType m_endpointType; bool m_endpointTypeHasBeenSet = false; Aws::String m_hostedZoneId; bool m_hostedZoneIdHasBeenSet = false; SecurityPolicy m_securityPolicy; bool m_securityPolicyHasBeenSet = false; Aws::String m_ownershipVerificationCertificateArn; bool m_ownershipVerificationCertificateArnHasBeenSet = false; }; } // namespace Model } // namespace ApiGatewayV2 } // namespace Aws