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

Options to configure a custom endpoint for an OpenSearch Service * domain.

See Also:

AWS * API Reference

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

True to require that all traffic to the domain arrive over HTTPS.

*/ inline bool GetEnforceHTTPS() const{ return m_enforceHTTPS; } /** *

True to require that all traffic to the domain arrive over HTTPS.

*/ inline bool EnforceHTTPSHasBeenSet() const { return m_enforceHTTPSHasBeenSet; } /** *

True to require that all traffic to the domain arrive over HTTPS.

*/ inline void SetEnforceHTTPS(bool value) { m_enforceHTTPSHasBeenSet = true; m_enforceHTTPS = value; } /** *

True to require that all traffic to the domain arrive over HTTPS.

*/ inline DomainEndpointOptions& WithEnforceHTTPS(bool value) { SetEnforceHTTPS(value); return *this;} /** *

Specify the TLS security policy to apply to the HTTPS endpoint of the * domain.

Can be one of the following values:

  • * Policy-Min-TLS-1-0-2019-07: TLS security policy which supports TLS * version 1.0 and higher.

  • Policy-Min-TLS-1-2-2019-07: * TLS security policy which supports only TLS version 1.2

*/ inline const TLSSecurityPolicy& GetTLSSecurityPolicy() const{ return m_tLSSecurityPolicy; } /** *

Specify the TLS security policy to apply to the HTTPS endpoint of the * domain.

Can be one of the following values:

  • * Policy-Min-TLS-1-0-2019-07: TLS security policy which supports TLS * version 1.0 and higher.

  • Policy-Min-TLS-1-2-2019-07: * TLS security policy which supports only TLS version 1.2

*/ inline bool TLSSecurityPolicyHasBeenSet() const { return m_tLSSecurityPolicyHasBeenSet; } /** *

Specify the TLS security policy to apply to the HTTPS endpoint of the * domain.

Can be one of the following values:

  • * Policy-Min-TLS-1-0-2019-07: TLS security policy which supports TLS * version 1.0 and higher.

  • Policy-Min-TLS-1-2-2019-07: * TLS security policy which supports only TLS version 1.2

*/ inline void SetTLSSecurityPolicy(const TLSSecurityPolicy& value) { m_tLSSecurityPolicyHasBeenSet = true; m_tLSSecurityPolicy = value; } /** *

Specify the TLS security policy to apply to the HTTPS endpoint of the * domain.

Can be one of the following values:

  • * Policy-Min-TLS-1-0-2019-07: TLS security policy which supports TLS * version 1.0 and higher.

  • Policy-Min-TLS-1-2-2019-07: * TLS security policy which supports only TLS version 1.2

*/ inline void SetTLSSecurityPolicy(TLSSecurityPolicy&& value) { m_tLSSecurityPolicyHasBeenSet = true; m_tLSSecurityPolicy = std::move(value); } /** *

Specify the TLS security policy to apply to the HTTPS endpoint of the * domain.

Can be one of the following values:

  • * Policy-Min-TLS-1-0-2019-07: TLS security policy which supports TLS * version 1.0 and higher.

  • Policy-Min-TLS-1-2-2019-07: * TLS security policy which supports only TLS version 1.2

*/ inline DomainEndpointOptions& WithTLSSecurityPolicy(const TLSSecurityPolicy& value) { SetTLSSecurityPolicy(value); return *this;} /** *

Specify the TLS security policy to apply to the HTTPS endpoint of the * domain.

Can be one of the following values:

  • * Policy-Min-TLS-1-0-2019-07: TLS security policy which supports TLS * version 1.0 and higher.

  • Policy-Min-TLS-1-2-2019-07: * TLS security policy which supports only TLS version 1.2

*/ inline DomainEndpointOptions& WithTLSSecurityPolicy(TLSSecurityPolicy&& value) { SetTLSSecurityPolicy(std::move(value)); return *this;} /** *

Whether to enable a custom endpoint for the domain.

*/ inline bool GetCustomEndpointEnabled() const{ return m_customEndpointEnabled; } /** *

Whether to enable a custom endpoint for the domain.

*/ inline bool CustomEndpointEnabledHasBeenSet() const { return m_customEndpointEnabledHasBeenSet; } /** *

Whether to enable a custom endpoint for the domain.

*/ inline void SetCustomEndpointEnabled(bool value) { m_customEndpointEnabledHasBeenSet = true; m_customEndpointEnabled = value; } /** *

Whether to enable a custom endpoint for the domain.

*/ inline DomainEndpointOptions& WithCustomEndpointEnabled(bool value) { SetCustomEndpointEnabled(value); return *this;} /** *

The fully qualified URL for the custom endpoint.

*/ inline const Aws::String& GetCustomEndpoint() const{ return m_customEndpoint; } /** *

The fully qualified URL for the custom endpoint.

*/ inline bool CustomEndpointHasBeenSet() const { return m_customEndpointHasBeenSet; } /** *

The fully qualified URL for the custom endpoint.

*/ inline void SetCustomEndpoint(const Aws::String& value) { m_customEndpointHasBeenSet = true; m_customEndpoint = value; } /** *

The fully qualified URL for the custom endpoint.

*/ inline void SetCustomEndpoint(Aws::String&& value) { m_customEndpointHasBeenSet = true; m_customEndpoint = std::move(value); } /** *

The fully qualified URL for the custom endpoint.

*/ inline void SetCustomEndpoint(const char* value) { m_customEndpointHasBeenSet = true; m_customEndpoint.assign(value); } /** *

The fully qualified URL for the custom endpoint.

*/ inline DomainEndpointOptions& WithCustomEndpoint(const Aws::String& value) { SetCustomEndpoint(value); return *this;} /** *

The fully qualified URL for the custom endpoint.

*/ inline DomainEndpointOptions& WithCustomEndpoint(Aws::String&& value) { SetCustomEndpoint(std::move(value)); return *this;} /** *

The fully qualified URL for the custom endpoint.

*/ inline DomainEndpointOptions& WithCustomEndpoint(const char* value) { SetCustomEndpoint(value); return *this;} /** *

The ARN for your security certificate, managed in Amazon Web Services * Certificate Manager (ACM).

*/ inline const Aws::String& GetCustomEndpointCertificateArn() const{ return m_customEndpointCertificateArn; } /** *

The ARN for your security certificate, managed in Amazon Web Services * Certificate Manager (ACM).

*/ inline bool CustomEndpointCertificateArnHasBeenSet() const { return m_customEndpointCertificateArnHasBeenSet; } /** *

The ARN for your security certificate, managed in Amazon Web Services * Certificate Manager (ACM).

*/ inline void SetCustomEndpointCertificateArn(const Aws::String& value) { m_customEndpointCertificateArnHasBeenSet = true; m_customEndpointCertificateArn = value; } /** *

The ARN for your security certificate, managed in Amazon Web Services * Certificate Manager (ACM).

*/ inline void SetCustomEndpointCertificateArn(Aws::String&& value) { m_customEndpointCertificateArnHasBeenSet = true; m_customEndpointCertificateArn = std::move(value); } /** *

The ARN for your security certificate, managed in Amazon Web Services * Certificate Manager (ACM).

*/ inline void SetCustomEndpointCertificateArn(const char* value) { m_customEndpointCertificateArnHasBeenSet = true; m_customEndpointCertificateArn.assign(value); } /** *

The ARN for your security certificate, managed in Amazon Web Services * Certificate Manager (ACM).

*/ inline DomainEndpointOptions& WithCustomEndpointCertificateArn(const Aws::String& value) { SetCustomEndpointCertificateArn(value); return *this;} /** *

The ARN for your security certificate, managed in Amazon Web Services * Certificate Manager (ACM).

*/ inline DomainEndpointOptions& WithCustomEndpointCertificateArn(Aws::String&& value) { SetCustomEndpointCertificateArn(std::move(value)); return *this;} /** *

The ARN for your security certificate, managed in Amazon Web Services * Certificate Manager (ACM).

*/ inline DomainEndpointOptions& WithCustomEndpointCertificateArn(const char* value) { SetCustomEndpointCertificateArn(value); return *this;} private: bool m_enforceHTTPS; bool m_enforceHTTPSHasBeenSet = false; TLSSecurityPolicy m_tLSSecurityPolicy; bool m_tLSSecurityPolicyHasBeenSet = false; bool m_customEndpointEnabled; bool m_customEndpointEnabledHasBeenSet = false; Aws::String m_customEndpoint; bool m_customEndpointHasBeenSet = false; Aws::String m_customEndpointCertificateArn; bool m_customEndpointCertificateArnHasBeenSet = false; }; } // namespace Model } // namespace OpenSearchService } // namespace Aws