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

Container for the configuration of an OpenSearch Service * domain.

See Also:

AWS * API Reference

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

The OpenSearch or Elasticsearch version that the domain is running.

*/ inline const VersionStatus& GetEngineVersion() const{ return m_engineVersion; } /** *

The OpenSearch or Elasticsearch version that the domain is running.

*/ inline bool EngineVersionHasBeenSet() const { return m_engineVersionHasBeenSet; } /** *

The OpenSearch or Elasticsearch version that the domain is running.

*/ inline void SetEngineVersion(const VersionStatus& value) { m_engineVersionHasBeenSet = true; m_engineVersion = value; } /** *

The OpenSearch or Elasticsearch version that the domain is running.

*/ inline void SetEngineVersion(VersionStatus&& value) { m_engineVersionHasBeenSet = true; m_engineVersion = std::move(value); } /** *

The OpenSearch or Elasticsearch version that the domain is running.

*/ inline DomainConfig& WithEngineVersion(const VersionStatus& value) { SetEngineVersion(value); return *this;} /** *

The OpenSearch or Elasticsearch version that the domain is running.

*/ inline DomainConfig& WithEngineVersion(VersionStatus&& value) { SetEngineVersion(std::move(value)); return *this;} /** *

Container for the cluster configuration of a the domain.

*/ inline const ClusterConfigStatus& GetClusterConfig() const{ return m_clusterConfig; } /** *

Container for the cluster configuration of a the domain.

*/ inline bool ClusterConfigHasBeenSet() const { return m_clusterConfigHasBeenSet; } /** *

Container for the cluster configuration of a the domain.

*/ inline void SetClusterConfig(const ClusterConfigStatus& value) { m_clusterConfigHasBeenSet = true; m_clusterConfig = value; } /** *

Container for the cluster configuration of a the domain.

*/ inline void SetClusterConfig(ClusterConfigStatus&& value) { m_clusterConfigHasBeenSet = true; m_clusterConfig = std::move(value); } /** *

Container for the cluster configuration of a the domain.

*/ inline DomainConfig& WithClusterConfig(const ClusterConfigStatus& value) { SetClusterConfig(value); return *this;} /** *

Container for the cluster configuration of a the domain.

*/ inline DomainConfig& WithClusterConfig(ClusterConfigStatus&& value) { SetClusterConfig(std::move(value)); return *this;} /** *

Container for EBS options configured for the domain.

*/ inline const EBSOptionsStatus& GetEBSOptions() const{ return m_eBSOptions; } /** *

Container for EBS options configured for the domain.

*/ inline bool EBSOptionsHasBeenSet() const { return m_eBSOptionsHasBeenSet; } /** *

Container for EBS options configured for the domain.

*/ inline void SetEBSOptions(const EBSOptionsStatus& value) { m_eBSOptionsHasBeenSet = true; m_eBSOptions = value; } /** *

Container for EBS options configured for the domain.

*/ inline void SetEBSOptions(EBSOptionsStatus&& value) { m_eBSOptionsHasBeenSet = true; m_eBSOptions = std::move(value); } /** *

Container for EBS options configured for the domain.

*/ inline DomainConfig& WithEBSOptions(const EBSOptionsStatus& value) { SetEBSOptions(value); return *this;} /** *

Container for EBS options configured for the domain.

*/ inline DomainConfig& WithEBSOptions(EBSOptionsStatus&& value) { SetEBSOptions(std::move(value)); return *this;} /** *

Specifies the access policies for the domain.

*/ inline const AccessPoliciesStatus& GetAccessPolicies() const{ return m_accessPolicies; } /** *

Specifies the access policies for the domain.

*/ inline bool AccessPoliciesHasBeenSet() const { return m_accessPoliciesHasBeenSet; } /** *

Specifies the access policies for the domain.

*/ inline void SetAccessPolicies(const AccessPoliciesStatus& value) { m_accessPoliciesHasBeenSet = true; m_accessPolicies = value; } /** *

Specifies the access policies for the domain.

*/ inline void SetAccessPolicies(AccessPoliciesStatus&& value) { m_accessPoliciesHasBeenSet = true; m_accessPolicies = std::move(value); } /** *

Specifies the access policies for the domain.

*/ inline DomainConfig& WithAccessPolicies(const AccessPoliciesStatus& value) { SetAccessPolicies(value); return *this;} /** *

Specifies the access policies for the domain.

*/ inline DomainConfig& WithAccessPolicies(AccessPoliciesStatus&& value) { SetAccessPolicies(std::move(value)); return *this;} /** *

DEPRECATED. Container for parameters required to configure automated * snapshots of domain indexes.

*/ inline const SnapshotOptionsStatus& GetSnapshotOptions() const{ return m_snapshotOptions; } /** *

DEPRECATED. Container for parameters required to configure automated * snapshots of domain indexes.

*/ inline bool SnapshotOptionsHasBeenSet() const { return m_snapshotOptionsHasBeenSet; } /** *

DEPRECATED. Container for parameters required to configure automated * snapshots of domain indexes.

*/ inline void SetSnapshotOptions(const SnapshotOptionsStatus& value) { m_snapshotOptionsHasBeenSet = true; m_snapshotOptions = value; } /** *

DEPRECATED. Container for parameters required to configure automated * snapshots of domain indexes.

*/ inline void SetSnapshotOptions(SnapshotOptionsStatus&& value) { m_snapshotOptionsHasBeenSet = true; m_snapshotOptions = std::move(value); } /** *

DEPRECATED. Container for parameters required to configure automated * snapshots of domain indexes.

*/ inline DomainConfig& WithSnapshotOptions(const SnapshotOptionsStatus& value) { SetSnapshotOptions(value); return *this;} /** *

DEPRECATED. Container for parameters required to configure automated * snapshots of domain indexes.

*/ inline DomainConfig& WithSnapshotOptions(SnapshotOptionsStatus&& value) { SetSnapshotOptions(std::move(value)); return *this;} /** *

The current VPC options for the domain and the status of any updates to their * configuration.

*/ inline const VPCDerivedInfoStatus& GetVPCOptions() const{ return m_vPCOptions; } /** *

The current VPC options for the domain and the status of any updates to their * configuration.

*/ inline bool VPCOptionsHasBeenSet() const { return m_vPCOptionsHasBeenSet; } /** *

The current VPC options for the domain and the status of any updates to their * configuration.

*/ inline void SetVPCOptions(const VPCDerivedInfoStatus& value) { m_vPCOptionsHasBeenSet = true; m_vPCOptions = value; } /** *

The current VPC options for the domain and the status of any updates to their * configuration.

*/ inline void SetVPCOptions(VPCDerivedInfoStatus&& value) { m_vPCOptionsHasBeenSet = true; m_vPCOptions = std::move(value); } /** *

The current VPC options for the domain and the status of any updates to their * configuration.

*/ inline DomainConfig& WithVPCOptions(const VPCDerivedInfoStatus& value) { SetVPCOptions(value); return *this;} /** *

The current VPC options for the domain and the status of any updates to their * configuration.

*/ inline DomainConfig& WithVPCOptions(VPCDerivedInfoStatus&& value) { SetVPCOptions(std::move(value)); return *this;} /** *

Container for Amazon Cognito options for the domain.

*/ inline const CognitoOptionsStatus& GetCognitoOptions() const{ return m_cognitoOptions; } /** *

Container for Amazon Cognito options for the domain.

*/ inline bool CognitoOptionsHasBeenSet() const { return m_cognitoOptionsHasBeenSet; } /** *

Container for Amazon Cognito options for the domain.

*/ inline void SetCognitoOptions(const CognitoOptionsStatus& value) { m_cognitoOptionsHasBeenSet = true; m_cognitoOptions = value; } /** *

Container for Amazon Cognito options for the domain.

*/ inline void SetCognitoOptions(CognitoOptionsStatus&& value) { m_cognitoOptionsHasBeenSet = true; m_cognitoOptions = std::move(value); } /** *

Container for Amazon Cognito options for the domain.

*/ inline DomainConfig& WithCognitoOptions(const CognitoOptionsStatus& value) { SetCognitoOptions(value); return *this;} /** *

Container for Amazon Cognito options for the domain.

*/ inline DomainConfig& WithCognitoOptions(CognitoOptionsStatus&& value) { SetCognitoOptions(std::move(value)); return *this;} /** *

Key-value pairs to enable encryption at rest.

*/ inline const EncryptionAtRestOptionsStatus& GetEncryptionAtRestOptions() const{ return m_encryptionAtRestOptions; } /** *

Key-value pairs to enable encryption at rest.

*/ inline bool EncryptionAtRestOptionsHasBeenSet() const { return m_encryptionAtRestOptionsHasBeenSet; } /** *

Key-value pairs to enable encryption at rest.

*/ inline void SetEncryptionAtRestOptions(const EncryptionAtRestOptionsStatus& value) { m_encryptionAtRestOptionsHasBeenSet = true; m_encryptionAtRestOptions = value; } /** *

Key-value pairs to enable encryption at rest.

*/ inline void SetEncryptionAtRestOptions(EncryptionAtRestOptionsStatus&& value) { m_encryptionAtRestOptionsHasBeenSet = true; m_encryptionAtRestOptions = std::move(value); } /** *

Key-value pairs to enable encryption at rest.

*/ inline DomainConfig& WithEncryptionAtRestOptions(const EncryptionAtRestOptionsStatus& value) { SetEncryptionAtRestOptions(value); return *this;} /** *

Key-value pairs to enable encryption at rest.

*/ inline DomainConfig& WithEncryptionAtRestOptions(EncryptionAtRestOptionsStatus&& value) { SetEncryptionAtRestOptions(std::move(value)); return *this;} /** *

Whether node-to-node encryption is enabled or disabled.

*/ inline const NodeToNodeEncryptionOptionsStatus& GetNodeToNodeEncryptionOptions() const{ return m_nodeToNodeEncryptionOptions; } /** *

Whether node-to-node encryption is enabled or disabled.

*/ inline bool NodeToNodeEncryptionOptionsHasBeenSet() const { return m_nodeToNodeEncryptionOptionsHasBeenSet; } /** *

Whether node-to-node encryption is enabled or disabled.

*/ inline void SetNodeToNodeEncryptionOptions(const NodeToNodeEncryptionOptionsStatus& value) { m_nodeToNodeEncryptionOptionsHasBeenSet = true; m_nodeToNodeEncryptionOptions = value; } /** *

Whether node-to-node encryption is enabled or disabled.

*/ inline void SetNodeToNodeEncryptionOptions(NodeToNodeEncryptionOptionsStatus&& value) { m_nodeToNodeEncryptionOptionsHasBeenSet = true; m_nodeToNodeEncryptionOptions = std::move(value); } /** *

Whether node-to-node encryption is enabled or disabled.

*/ inline DomainConfig& WithNodeToNodeEncryptionOptions(const NodeToNodeEncryptionOptionsStatus& value) { SetNodeToNodeEncryptionOptions(value); return *this;} /** *

Whether node-to-node encryption is enabled or disabled.

*/ inline DomainConfig& WithNodeToNodeEncryptionOptions(NodeToNodeEncryptionOptionsStatus&& value) { SetNodeToNodeEncryptionOptions(std::move(value)); return *this;} /** *

Key-value pairs to specify advanced configuration options. For more * information, see Advanced * options.

*/ inline const AdvancedOptionsStatus& GetAdvancedOptions() const{ return m_advancedOptions; } /** *

Key-value pairs to specify advanced configuration options. For more * information, see Advanced * options.

*/ inline bool AdvancedOptionsHasBeenSet() const { return m_advancedOptionsHasBeenSet; } /** *

Key-value pairs to specify advanced configuration options. For more * information, see Advanced * options.

*/ inline void SetAdvancedOptions(const AdvancedOptionsStatus& value) { m_advancedOptionsHasBeenSet = true; m_advancedOptions = value; } /** *

Key-value pairs to specify advanced configuration options. For more * information, see Advanced * options.

*/ inline void SetAdvancedOptions(AdvancedOptionsStatus&& value) { m_advancedOptionsHasBeenSet = true; m_advancedOptions = std::move(value); } /** *

Key-value pairs to specify advanced configuration options. For more * information, see Advanced * options.

*/ inline DomainConfig& WithAdvancedOptions(const AdvancedOptionsStatus& value) { SetAdvancedOptions(value); return *this;} /** *

Key-value pairs to specify advanced configuration options. For more * information, see Advanced * options.

*/ inline DomainConfig& WithAdvancedOptions(AdvancedOptionsStatus&& value) { SetAdvancedOptions(std::move(value)); return *this;} /** *

Key-value pairs to configure log publishing.

*/ inline const LogPublishingOptionsStatus& GetLogPublishingOptions() const{ return m_logPublishingOptions; } /** *

Key-value pairs to configure log publishing.

*/ inline bool LogPublishingOptionsHasBeenSet() const { return m_logPublishingOptionsHasBeenSet; } /** *

Key-value pairs to configure log publishing.

*/ inline void SetLogPublishingOptions(const LogPublishingOptionsStatus& value) { m_logPublishingOptionsHasBeenSet = true; m_logPublishingOptions = value; } /** *

Key-value pairs to configure log publishing.

*/ inline void SetLogPublishingOptions(LogPublishingOptionsStatus&& value) { m_logPublishingOptionsHasBeenSet = true; m_logPublishingOptions = std::move(value); } /** *

Key-value pairs to configure log publishing.

*/ inline DomainConfig& WithLogPublishingOptions(const LogPublishingOptionsStatus& value) { SetLogPublishingOptions(value); return *this;} /** *

Key-value pairs to configure log publishing.

*/ inline DomainConfig& WithLogPublishingOptions(LogPublishingOptionsStatus&& value) { SetLogPublishingOptions(std::move(value)); return *this;} /** *

Additional options for the domain endpoint, such as whether to require HTTPS * for all traffic.

*/ inline const DomainEndpointOptionsStatus& GetDomainEndpointOptions() const{ return m_domainEndpointOptions; } /** *

Additional options for the domain endpoint, such as whether to require HTTPS * for all traffic.

*/ inline bool DomainEndpointOptionsHasBeenSet() const { return m_domainEndpointOptionsHasBeenSet; } /** *

Additional options for the domain endpoint, such as whether to require HTTPS * for all traffic.

*/ inline void SetDomainEndpointOptions(const DomainEndpointOptionsStatus& value) { m_domainEndpointOptionsHasBeenSet = true; m_domainEndpointOptions = value; } /** *

Additional options for the domain endpoint, such as whether to require HTTPS * for all traffic.

*/ inline void SetDomainEndpointOptions(DomainEndpointOptionsStatus&& value) { m_domainEndpointOptionsHasBeenSet = true; m_domainEndpointOptions = std::move(value); } /** *

Additional options for the domain endpoint, such as whether to require HTTPS * for all traffic.

*/ inline DomainConfig& WithDomainEndpointOptions(const DomainEndpointOptionsStatus& value) { SetDomainEndpointOptions(value); return *this;} /** *

Additional options for the domain endpoint, such as whether to require HTTPS * for all traffic.

*/ inline DomainConfig& WithDomainEndpointOptions(DomainEndpointOptionsStatus&& value) { SetDomainEndpointOptions(std::move(value)); return *this;} /** *

Container for fine-grained access control settings for the domain.

*/ inline const AdvancedSecurityOptionsStatus& GetAdvancedSecurityOptions() const{ return m_advancedSecurityOptions; } /** *

Container for fine-grained access control settings for the domain.

*/ inline bool AdvancedSecurityOptionsHasBeenSet() const { return m_advancedSecurityOptionsHasBeenSet; } /** *

Container for fine-grained access control settings for the domain.

*/ inline void SetAdvancedSecurityOptions(const AdvancedSecurityOptionsStatus& value) { m_advancedSecurityOptionsHasBeenSet = true; m_advancedSecurityOptions = value; } /** *

Container for fine-grained access control settings for the domain.

*/ inline void SetAdvancedSecurityOptions(AdvancedSecurityOptionsStatus&& value) { m_advancedSecurityOptionsHasBeenSet = true; m_advancedSecurityOptions = std::move(value); } /** *

Container for fine-grained access control settings for the domain.

*/ inline DomainConfig& WithAdvancedSecurityOptions(const AdvancedSecurityOptionsStatus& value) { SetAdvancedSecurityOptions(value); return *this;} /** *

Container for fine-grained access control settings for the domain.

*/ inline DomainConfig& WithAdvancedSecurityOptions(AdvancedSecurityOptionsStatus&& value) { SetAdvancedSecurityOptions(std::move(value)); return *this;} /** *

Container for Auto-Tune settings for the domain.

*/ inline const AutoTuneOptionsStatus& GetAutoTuneOptions() const{ return m_autoTuneOptions; } /** *

Container for Auto-Tune settings for the domain.

*/ inline bool AutoTuneOptionsHasBeenSet() const { return m_autoTuneOptionsHasBeenSet; } /** *

Container for Auto-Tune settings for the domain.

*/ inline void SetAutoTuneOptions(const AutoTuneOptionsStatus& value) { m_autoTuneOptionsHasBeenSet = true; m_autoTuneOptions = value; } /** *

Container for Auto-Tune settings for the domain.

*/ inline void SetAutoTuneOptions(AutoTuneOptionsStatus&& value) { m_autoTuneOptionsHasBeenSet = true; m_autoTuneOptions = std::move(value); } /** *

Container for Auto-Tune settings for the domain.

*/ inline DomainConfig& WithAutoTuneOptions(const AutoTuneOptionsStatus& value) { SetAutoTuneOptions(value); return *this;} /** *

Container for Auto-Tune settings for the domain.

*/ inline DomainConfig& WithAutoTuneOptions(AutoTuneOptionsStatus&& value) { SetAutoTuneOptions(std::move(value)); return *this;} /** *

Container for information about the progress of an existing configuration * change.

*/ inline const ChangeProgressDetails& GetChangeProgressDetails() const{ return m_changeProgressDetails; } /** *

Container for information about the progress of an existing configuration * change.

*/ inline bool ChangeProgressDetailsHasBeenSet() const { return m_changeProgressDetailsHasBeenSet; } /** *

Container for information about the progress of an existing configuration * change.

*/ inline void SetChangeProgressDetails(const ChangeProgressDetails& value) { m_changeProgressDetailsHasBeenSet = true; m_changeProgressDetails = value; } /** *

Container for information about the progress of an existing configuration * change.

*/ inline void SetChangeProgressDetails(ChangeProgressDetails&& value) { m_changeProgressDetailsHasBeenSet = true; m_changeProgressDetails = std::move(value); } /** *

Container for information about the progress of an existing configuration * change.

*/ inline DomainConfig& WithChangeProgressDetails(const ChangeProgressDetails& value) { SetChangeProgressDetails(value); return *this;} /** *

Container for information about the progress of an existing configuration * change.

*/ inline DomainConfig& WithChangeProgressDetails(ChangeProgressDetails&& value) { SetChangeProgressDetails(std::move(value)); return *this;} /** *

Container for off-peak window options for the domain.

*/ inline const OffPeakWindowOptionsStatus& GetOffPeakWindowOptions() const{ return m_offPeakWindowOptions; } /** *

Container for off-peak window options for the domain.

*/ inline bool OffPeakWindowOptionsHasBeenSet() const { return m_offPeakWindowOptionsHasBeenSet; } /** *

Container for off-peak window options for the domain.

*/ inline void SetOffPeakWindowOptions(const OffPeakWindowOptionsStatus& value) { m_offPeakWindowOptionsHasBeenSet = true; m_offPeakWindowOptions = value; } /** *

Container for off-peak window options for the domain.

*/ inline void SetOffPeakWindowOptions(OffPeakWindowOptionsStatus&& value) { m_offPeakWindowOptionsHasBeenSet = true; m_offPeakWindowOptions = std::move(value); } /** *

Container for off-peak window options for the domain.

*/ inline DomainConfig& WithOffPeakWindowOptions(const OffPeakWindowOptionsStatus& value) { SetOffPeakWindowOptions(value); return *this;} /** *

Container for off-peak window options for the domain.

*/ inline DomainConfig& WithOffPeakWindowOptions(OffPeakWindowOptionsStatus&& value) { SetOffPeakWindowOptions(std::move(value)); return *this;} /** *

Software update options for the domain.

*/ inline const SoftwareUpdateOptionsStatus& GetSoftwareUpdateOptions() const{ return m_softwareUpdateOptions; } /** *

Software update options for the domain.

*/ inline bool SoftwareUpdateOptionsHasBeenSet() const { return m_softwareUpdateOptionsHasBeenSet; } /** *

Software update options for the domain.

*/ inline void SetSoftwareUpdateOptions(const SoftwareUpdateOptionsStatus& value) { m_softwareUpdateOptionsHasBeenSet = true; m_softwareUpdateOptions = value; } /** *

Software update options for the domain.

*/ inline void SetSoftwareUpdateOptions(SoftwareUpdateOptionsStatus&& value) { m_softwareUpdateOptionsHasBeenSet = true; m_softwareUpdateOptions = std::move(value); } /** *

Software update options for the domain.

*/ inline DomainConfig& WithSoftwareUpdateOptions(const SoftwareUpdateOptionsStatus& value) { SetSoftwareUpdateOptions(value); return *this;} /** *

Software update options for the domain.

*/ inline DomainConfig& WithSoftwareUpdateOptions(SoftwareUpdateOptionsStatus&& value) { SetSoftwareUpdateOptions(std::move(value)); return *this;} private: VersionStatus m_engineVersion; bool m_engineVersionHasBeenSet = false; ClusterConfigStatus m_clusterConfig; bool m_clusterConfigHasBeenSet = false; EBSOptionsStatus m_eBSOptions; bool m_eBSOptionsHasBeenSet = false; AccessPoliciesStatus m_accessPolicies; bool m_accessPoliciesHasBeenSet = false; SnapshotOptionsStatus m_snapshotOptions; bool m_snapshotOptionsHasBeenSet = false; VPCDerivedInfoStatus m_vPCOptions; bool m_vPCOptionsHasBeenSet = false; CognitoOptionsStatus m_cognitoOptions; bool m_cognitoOptionsHasBeenSet = false; EncryptionAtRestOptionsStatus m_encryptionAtRestOptions; bool m_encryptionAtRestOptionsHasBeenSet = false; NodeToNodeEncryptionOptionsStatus m_nodeToNodeEncryptionOptions; bool m_nodeToNodeEncryptionOptionsHasBeenSet = false; AdvancedOptionsStatus m_advancedOptions; bool m_advancedOptionsHasBeenSet = false; LogPublishingOptionsStatus m_logPublishingOptions; bool m_logPublishingOptionsHasBeenSet = false; DomainEndpointOptionsStatus m_domainEndpointOptions; bool m_domainEndpointOptionsHasBeenSet = false; AdvancedSecurityOptionsStatus m_advancedSecurityOptions; bool m_advancedSecurityOptionsHasBeenSet = false; AutoTuneOptionsStatus m_autoTuneOptions; bool m_autoTuneOptionsHasBeenSet = false; ChangeProgressDetails m_changeProgressDetails; bool m_changeProgressDetailsHasBeenSet = false; OffPeakWindowOptionsStatus m_offPeakWindowOptions; bool m_offPeakWindowOptionsHasBeenSet = false; SoftwareUpdateOptionsStatus m_softwareUpdateOptions; bool m_softwareUpdateOptionsHasBeenSet = false; }; } // namespace Model } // namespace OpenSearchService } // namespace Aws