/** * 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 ElasticsearchService { namespace Model { /** *

Options to configure endpoint for the Elasticsearch domain.

See * Also:

AWS * API Reference

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

Specify if only HTTPS endpoint should be enabled for the Elasticsearch * domain.

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

Specify if only HTTPS endpoint should be enabled for the Elasticsearch * domain.

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

Specify if only HTTPS endpoint should be enabled for the Elasticsearch * domain.

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

Specify if only HTTPS endpoint should be enabled for the Elasticsearch * domain.

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

Specify the TLS security policy that needs to be applied to the HTTPS * endpoint of Elasticsearch domain.
It can be one of the following values: *

  • Policy-Min-TLS-1-0-2019-07: TLS security policy which supports * TLSv1.0 and higher.
  • Policy-Min-TLS-1-2-2019-07: TLS security * policy which supports only TLSv1.2

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

Specify the TLS security policy that needs to be applied to the HTTPS * endpoint of Elasticsearch domain.
It can be one of the following values: *

  • Policy-Min-TLS-1-0-2019-07: TLS security policy which supports * TLSv1.0 and higher.
  • Policy-Min-TLS-1-2-2019-07: TLS security * policy which supports only TLSv1.2

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

Specify the TLS security policy that needs to be applied to the HTTPS * endpoint of Elasticsearch domain.
It can be one of the following values: *

  • Policy-Min-TLS-1-0-2019-07: TLS security policy which supports * TLSv1.0 and higher.
  • Policy-Min-TLS-1-2-2019-07: TLS security * policy which supports only TLSv1.2

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

Specify the TLS security policy that needs to be applied to the HTTPS * endpoint of Elasticsearch domain.
It can be one of the following values: *

  • Policy-Min-TLS-1-0-2019-07: TLS security policy which supports * TLSv1.0 and higher.
  • Policy-Min-TLS-1-2-2019-07: TLS security * policy which supports only TLSv1.2

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

Specify the TLS security policy that needs to be applied to the HTTPS * endpoint of Elasticsearch domain.
It can be one of the following values: *

  • Policy-Min-TLS-1-0-2019-07: TLS security policy which supports * TLSv1.0 and higher.
  • Policy-Min-TLS-1-2-2019-07: TLS security * policy which supports only TLSv1.2

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

Specify the TLS security policy that needs to be applied to the HTTPS * endpoint of Elasticsearch domain.
It can be one of the following values: *

  • Policy-Min-TLS-1-0-2019-07: TLS security policy which supports * TLSv1.0 and higher.
  • Policy-Min-TLS-1-2-2019-07: TLS security * policy which supports only TLSv1.2

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

Specify if custom endpoint should be enabled for the Elasticsearch * domain.

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

Specify if custom endpoint should be enabled for the Elasticsearch * domain.

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

Specify if custom endpoint should be enabled for the Elasticsearch * domain.

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

Specify if custom endpoint should be enabled for the Elasticsearch * domain.

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

Specify the fully qualified domain for your custom endpoint.

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

Specify the fully qualified domain for your custom endpoint.

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

Specify the fully qualified domain for your custom endpoint.

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

Specify the fully qualified domain for your custom endpoint.

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

Specify the fully qualified domain for your custom endpoint.

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

Specify the fully qualified domain for your custom endpoint.

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

Specify the fully qualified domain for your custom endpoint.

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

Specify the fully qualified domain for your custom endpoint.

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

Specify ACM certificate ARN for your custom endpoint.

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

Specify ACM certificate ARN for your custom endpoint.

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

Specify ACM certificate ARN for your custom endpoint.

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

Specify ACM certificate ARN for your custom endpoint.

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

Specify ACM certificate ARN for your custom endpoint.

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

Specify ACM certificate ARN for your custom endpoint.

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

Specify ACM certificate ARN for your custom endpoint.

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

Specify ACM certificate ARN for your custom endpoint.

*/ 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 ElasticsearchService } // namespace Aws