/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #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 cluster configuration of an OpenSearch Service domain. For * more information, see Creating * and managing Amazon OpenSearch Service domains.

See Also:

* AWS * API Reference

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

Instance type of data nodes in the cluster.

*/ inline const OpenSearchPartitionInstanceType& GetInstanceType() const{ return m_instanceType; } /** *

Instance type of data nodes in the cluster.

*/ inline bool InstanceTypeHasBeenSet() const { return m_instanceTypeHasBeenSet; } /** *

Instance type of data nodes in the cluster.

*/ inline void SetInstanceType(const OpenSearchPartitionInstanceType& value) { m_instanceTypeHasBeenSet = true; m_instanceType = value; } /** *

Instance type of data nodes in the cluster.

*/ inline void SetInstanceType(OpenSearchPartitionInstanceType&& value) { m_instanceTypeHasBeenSet = true; m_instanceType = std::move(value); } /** *

Instance type of data nodes in the cluster.

*/ inline ClusterConfig& WithInstanceType(const OpenSearchPartitionInstanceType& value) { SetInstanceType(value); return *this;} /** *

Instance type of data nodes in the cluster.

*/ inline ClusterConfig& WithInstanceType(OpenSearchPartitionInstanceType&& value) { SetInstanceType(std::move(value)); return *this;} /** *

Number of dedicated master nodes in the cluster. This number must be greater * than 1, otherwise you receive a validation exception.

*/ inline int GetInstanceCount() const{ return m_instanceCount; } /** *

Number of dedicated master nodes in the cluster. This number must be greater * than 1, otherwise you receive a validation exception.

*/ inline bool InstanceCountHasBeenSet() const { return m_instanceCountHasBeenSet; } /** *

Number of dedicated master nodes in the cluster. This number must be greater * than 1, otherwise you receive a validation exception.

*/ inline void SetInstanceCount(int value) { m_instanceCountHasBeenSet = true; m_instanceCount = value; } /** *

Number of dedicated master nodes in the cluster. This number must be greater * than 1, otherwise you receive a validation exception.

*/ inline ClusterConfig& WithInstanceCount(int value) { SetInstanceCount(value); return *this;} /** *

Indicates whether dedicated master nodes are enabled for the * cluster.True if the cluster will use a dedicated master * node.False if the cluster will not.

*/ inline bool GetDedicatedMasterEnabled() const{ return m_dedicatedMasterEnabled; } /** *

Indicates whether dedicated master nodes are enabled for the * cluster.True if the cluster will use a dedicated master * node.False if the cluster will not.

*/ inline bool DedicatedMasterEnabledHasBeenSet() const { return m_dedicatedMasterEnabledHasBeenSet; } /** *

Indicates whether dedicated master nodes are enabled for the * cluster.True if the cluster will use a dedicated master * node.False if the cluster will not.

*/ inline void SetDedicatedMasterEnabled(bool value) { m_dedicatedMasterEnabledHasBeenSet = true; m_dedicatedMasterEnabled = value; } /** *

Indicates whether dedicated master nodes are enabled for the * cluster.True if the cluster will use a dedicated master * node.False if the cluster will not.

*/ inline ClusterConfig& WithDedicatedMasterEnabled(bool value) { SetDedicatedMasterEnabled(value); return *this;} /** *

Indicates whether multiple Availability Zones are enabled. For more * information, see Configuring * a multi-AZ domain in Amazon OpenSearch Service.

*/ inline bool GetZoneAwarenessEnabled() const{ return m_zoneAwarenessEnabled; } /** *

Indicates whether multiple Availability Zones are enabled. For more * information, see Configuring * a multi-AZ domain in Amazon OpenSearch Service.

*/ inline bool ZoneAwarenessEnabledHasBeenSet() const { return m_zoneAwarenessEnabledHasBeenSet; } /** *

Indicates whether multiple Availability Zones are enabled. For more * information, see Configuring * a multi-AZ domain in Amazon OpenSearch Service.

*/ inline void SetZoneAwarenessEnabled(bool value) { m_zoneAwarenessEnabledHasBeenSet = true; m_zoneAwarenessEnabled = value; } /** *

Indicates whether multiple Availability Zones are enabled. For more * information, see Configuring * a multi-AZ domain in Amazon OpenSearch Service.

*/ inline ClusterConfig& WithZoneAwarenessEnabled(bool value) { SetZoneAwarenessEnabled(value); return *this;} /** *

Container for zone awareness configuration options. Only required if * ZoneAwarenessEnabled is true.

*/ inline const ZoneAwarenessConfig& GetZoneAwarenessConfig() const{ return m_zoneAwarenessConfig; } /** *

Container for zone awareness configuration options. Only required if * ZoneAwarenessEnabled is true.

*/ inline bool ZoneAwarenessConfigHasBeenSet() const { return m_zoneAwarenessConfigHasBeenSet; } /** *

Container for zone awareness configuration options. Only required if * ZoneAwarenessEnabled is true.

*/ inline void SetZoneAwarenessConfig(const ZoneAwarenessConfig& value) { m_zoneAwarenessConfigHasBeenSet = true; m_zoneAwarenessConfig = value; } /** *

Container for zone awareness configuration options. Only required if * ZoneAwarenessEnabled is true.

*/ inline void SetZoneAwarenessConfig(ZoneAwarenessConfig&& value) { m_zoneAwarenessConfigHasBeenSet = true; m_zoneAwarenessConfig = std::move(value); } /** *

Container for zone awareness configuration options. Only required if * ZoneAwarenessEnabled is true.

*/ inline ClusterConfig& WithZoneAwarenessConfig(const ZoneAwarenessConfig& value) { SetZoneAwarenessConfig(value); return *this;} /** *

Container for zone awareness configuration options. Only required if * ZoneAwarenessEnabled is true.

*/ inline ClusterConfig& WithZoneAwarenessConfig(ZoneAwarenessConfig&& value) { SetZoneAwarenessConfig(std::move(value)); return *this;} /** *

OpenSearch Service instance type of the dedicated master nodes in the * cluster.

*/ inline const OpenSearchPartitionInstanceType& GetDedicatedMasterType() const{ return m_dedicatedMasterType; } /** *

OpenSearch Service instance type of the dedicated master nodes in the * cluster.

*/ inline bool DedicatedMasterTypeHasBeenSet() const { return m_dedicatedMasterTypeHasBeenSet; } /** *

OpenSearch Service instance type of the dedicated master nodes in the * cluster.

*/ inline void SetDedicatedMasterType(const OpenSearchPartitionInstanceType& value) { m_dedicatedMasterTypeHasBeenSet = true; m_dedicatedMasterType = value; } /** *

OpenSearch Service instance type of the dedicated master nodes in the * cluster.

*/ inline void SetDedicatedMasterType(OpenSearchPartitionInstanceType&& value) { m_dedicatedMasterTypeHasBeenSet = true; m_dedicatedMasterType = std::move(value); } /** *

OpenSearch Service instance type of the dedicated master nodes in the * cluster.

*/ inline ClusterConfig& WithDedicatedMasterType(const OpenSearchPartitionInstanceType& value) { SetDedicatedMasterType(value); return *this;} /** *

OpenSearch Service instance type of the dedicated master nodes in the * cluster.

*/ inline ClusterConfig& WithDedicatedMasterType(OpenSearchPartitionInstanceType&& value) { SetDedicatedMasterType(std::move(value)); return *this;} /** *

Number of dedicated master nodes in the cluster. This number must be greater * than 2 and not 4, otherwise you receive a validation exception.

*/ inline int GetDedicatedMasterCount() const{ return m_dedicatedMasterCount; } /** *

Number of dedicated master nodes in the cluster. This number must be greater * than 2 and not 4, otherwise you receive a validation exception.

*/ inline bool DedicatedMasterCountHasBeenSet() const { return m_dedicatedMasterCountHasBeenSet; } /** *

Number of dedicated master nodes in the cluster. This number must be greater * than 2 and not 4, otherwise you receive a validation exception.

*/ inline void SetDedicatedMasterCount(int value) { m_dedicatedMasterCountHasBeenSet = true; m_dedicatedMasterCount = value; } /** *

Number of dedicated master nodes in the cluster. This number must be greater * than 2 and not 4, otherwise you receive a validation exception.

*/ inline ClusterConfig& WithDedicatedMasterCount(int value) { SetDedicatedMasterCount(value); return *this;} /** *

Whether to enable warm storage for the cluster.

*/ inline bool GetWarmEnabled() const{ return m_warmEnabled; } /** *

Whether to enable warm storage for the cluster.

*/ inline bool WarmEnabledHasBeenSet() const { return m_warmEnabledHasBeenSet; } /** *

Whether to enable warm storage for the cluster.

*/ inline void SetWarmEnabled(bool value) { m_warmEnabledHasBeenSet = true; m_warmEnabled = value; } /** *

Whether to enable warm storage for the cluster.

*/ inline ClusterConfig& WithWarmEnabled(bool value) { SetWarmEnabled(value); return *this;} /** *

The instance type for the cluster's warm nodes.

*/ inline const OpenSearchWarmPartitionInstanceType& GetWarmType() const{ return m_warmType; } /** *

The instance type for the cluster's warm nodes.

*/ inline bool WarmTypeHasBeenSet() const { return m_warmTypeHasBeenSet; } /** *

The instance type for the cluster's warm nodes.

*/ inline void SetWarmType(const OpenSearchWarmPartitionInstanceType& value) { m_warmTypeHasBeenSet = true; m_warmType = value; } /** *

The instance type for the cluster's warm nodes.

*/ inline void SetWarmType(OpenSearchWarmPartitionInstanceType&& value) { m_warmTypeHasBeenSet = true; m_warmType = std::move(value); } /** *

The instance type for the cluster's warm nodes.

*/ inline ClusterConfig& WithWarmType(const OpenSearchWarmPartitionInstanceType& value) { SetWarmType(value); return *this;} /** *

The instance type for the cluster's warm nodes.

*/ inline ClusterConfig& WithWarmType(OpenSearchWarmPartitionInstanceType&& value) { SetWarmType(std::move(value)); return *this;} /** *

The number of warm nodes in the cluster.

*/ inline int GetWarmCount() const{ return m_warmCount; } /** *

The number of warm nodes in the cluster.

*/ inline bool WarmCountHasBeenSet() const { return m_warmCountHasBeenSet; } /** *

The number of warm nodes in the cluster.

*/ inline void SetWarmCount(int value) { m_warmCountHasBeenSet = true; m_warmCount = value; } /** *

The number of warm nodes in the cluster.

*/ inline ClusterConfig& WithWarmCount(int value) { SetWarmCount(value); return *this;} /** *

Container for cold storage configuration options.

*/ inline const ColdStorageOptions& GetColdStorageOptions() const{ return m_coldStorageOptions; } /** *

Container for cold storage configuration options.

*/ inline bool ColdStorageOptionsHasBeenSet() const { return m_coldStorageOptionsHasBeenSet; } /** *

Container for cold storage configuration options.

*/ inline void SetColdStorageOptions(const ColdStorageOptions& value) { m_coldStorageOptionsHasBeenSet = true; m_coldStorageOptions = value; } /** *

Container for cold storage configuration options.

*/ inline void SetColdStorageOptions(ColdStorageOptions&& value) { m_coldStorageOptionsHasBeenSet = true; m_coldStorageOptions = std::move(value); } /** *

Container for cold storage configuration options.

*/ inline ClusterConfig& WithColdStorageOptions(const ColdStorageOptions& value) { SetColdStorageOptions(value); return *this;} /** *

Container for cold storage configuration options.

*/ inline ClusterConfig& WithColdStorageOptions(ColdStorageOptions&& value) { SetColdStorageOptions(std::move(value)); return *this;} /** *

A boolean that indicates whether a multi-AZ domain is turned on with a * standby AZ. For more information, see Configuring * a multi-AZ domain in Amazon OpenSearch Service.

*/ inline bool GetMultiAZWithStandbyEnabled() const{ return m_multiAZWithStandbyEnabled; } /** *

A boolean that indicates whether a multi-AZ domain is turned on with a * standby AZ. For more information, see Configuring * a multi-AZ domain in Amazon OpenSearch Service.

*/ inline bool MultiAZWithStandbyEnabledHasBeenSet() const { return m_multiAZWithStandbyEnabledHasBeenSet; } /** *

A boolean that indicates whether a multi-AZ domain is turned on with a * standby AZ. For more information, see Configuring * a multi-AZ domain in Amazon OpenSearch Service.

*/ inline void SetMultiAZWithStandbyEnabled(bool value) { m_multiAZWithStandbyEnabledHasBeenSet = true; m_multiAZWithStandbyEnabled = value; } /** *

A boolean that indicates whether a multi-AZ domain is turned on with a * standby AZ. For more information, see Configuring * a multi-AZ domain in Amazon OpenSearch Service.

*/ inline ClusterConfig& WithMultiAZWithStandbyEnabled(bool value) { SetMultiAZWithStandbyEnabled(value); return *this;} private: OpenSearchPartitionInstanceType m_instanceType; bool m_instanceTypeHasBeenSet = false; int m_instanceCount; bool m_instanceCountHasBeenSet = false; bool m_dedicatedMasterEnabled; bool m_dedicatedMasterEnabledHasBeenSet = false; bool m_zoneAwarenessEnabled; bool m_zoneAwarenessEnabledHasBeenSet = false; ZoneAwarenessConfig m_zoneAwarenessConfig; bool m_zoneAwarenessConfigHasBeenSet = false; OpenSearchPartitionInstanceType m_dedicatedMasterType; bool m_dedicatedMasterTypeHasBeenSet = false; int m_dedicatedMasterCount; bool m_dedicatedMasterCountHasBeenSet = false; bool m_warmEnabled; bool m_warmEnabledHasBeenSet = false; OpenSearchWarmPartitionInstanceType m_warmType; bool m_warmTypeHasBeenSet = false; int m_warmCount; bool m_warmCountHasBeenSet = false; ColdStorageOptions m_coldStorageOptions; bool m_coldStorageOptionsHasBeenSet = false; bool m_multiAZWithStandbyEnabled; bool m_multiAZWithStandbyEnabledHasBeenSet = false; }; } // namespace Model } // namespace OpenSearchService } // namespace Aws