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

Specifies the configuration for the domain cluster, such as the type and * number of instances.

See Also:

AWS * API Reference

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

The instance type for an Elasticsearch cluster. UltraWarm instance types are * not supported for data instances.

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

The instance type for an Elasticsearch cluster. UltraWarm instance types are * not supported for data instances.

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

The instance type for an Elasticsearch cluster. UltraWarm instance types are * not supported for data instances.

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

The instance type for an Elasticsearch cluster. UltraWarm instance types are * not supported for data instances.

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

The instance type for an Elasticsearch cluster. UltraWarm instance types are * not supported for data instances.

*/ inline ElasticsearchClusterConfig& WithInstanceType(const ESPartitionInstanceType& value) { SetInstanceType(value); return *this;} /** *

The instance type for an Elasticsearch cluster. UltraWarm instance types are * not supported for data instances.

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

The number of instances in the specified domain cluster.

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

The number of instances in the specified domain cluster.

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

The number of instances in the specified domain cluster.

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

The number of instances in the specified domain cluster.

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

A boolean value to indicate whether a dedicated master node is enabled. See * About Dedicated Master Nodes for more information.

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

A boolean value to indicate whether a dedicated master node is enabled. See * About Dedicated Master Nodes for more information.

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

A boolean value to indicate whether a dedicated master node is enabled. See * About Dedicated Master Nodes for more information.

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

A boolean value to indicate whether a dedicated master node is enabled. See * About Dedicated Master Nodes for more information.

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

A boolean value to indicate whether zone awareness is enabled. See About Zone Awareness for more information.

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

A boolean value to indicate whether zone awareness is enabled. See About Zone Awareness for more information.

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

A boolean value to indicate whether zone awareness is enabled. See About Zone Awareness for more information.

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

A boolean value to indicate whether zone awareness is enabled. See About Zone Awareness for more information.

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

Specifies the zone awareness configuration for a domain when zone awareness * is enabled.

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

Specifies the zone awareness configuration for a domain when zone awareness * is enabled.

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

Specifies the zone awareness configuration for a domain when zone awareness * is enabled.

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

Specifies the zone awareness configuration for a domain when zone awareness * is enabled.

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

Specifies the zone awareness configuration for a domain when zone awareness * is enabled.

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

Specifies the zone awareness configuration for a domain when zone awareness * is enabled.

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

The instance type for a dedicated master node.

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

The instance type for a dedicated master node.

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

The instance type for a dedicated master node.

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

The instance type for a dedicated master node.

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

The instance type for a dedicated master node.

*/ inline ElasticsearchClusterConfig& WithDedicatedMasterType(const ESPartitionInstanceType& value) { SetDedicatedMasterType(value); return *this;} /** *

The instance type for a dedicated master node.

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

Total number of dedicated master nodes, active and on standby, for the * cluster.

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

Total number of dedicated master nodes, active and on standby, for the * cluster.

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

Total number of dedicated master nodes, active and on standby, for the * cluster.

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

Total number of dedicated master nodes, active and on standby, for the * cluster.

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

True to enable warm storage.

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

True to enable warm storage.

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

True to enable warm storage.

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

True to enable warm storage.

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

The instance type for the Elasticsearch cluster's warm nodes.

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

The instance type for the Elasticsearch cluster's warm nodes.

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

The instance type for the Elasticsearch cluster's warm nodes.

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

The instance type for the Elasticsearch cluster's warm nodes.

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

The instance type for the Elasticsearch cluster's warm nodes.

*/ inline ElasticsearchClusterConfig& WithWarmType(const ESWarmPartitionInstanceType& value) { SetWarmType(value); return *this;} /** *

The instance type for the Elasticsearch cluster's warm nodes.

*/ inline ElasticsearchClusterConfig& WithWarmType(ESWarmPartitionInstanceType&& 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 ElasticsearchClusterConfig& WithWarmCount(int value) { SetWarmCount(value); return *this;} /** *

Specifies the ColdStorageOptions config for Elasticsearch * Domain

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

Specifies the ColdStorageOptions config for Elasticsearch * Domain

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

Specifies the ColdStorageOptions config for Elasticsearch * Domain

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

Specifies the ColdStorageOptions config for Elasticsearch * Domain

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

Specifies the ColdStorageOptions config for Elasticsearch * Domain

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

Specifies the ColdStorageOptions config for Elasticsearch * Domain

*/ inline ElasticsearchClusterConfig& WithColdStorageOptions(ColdStorageOptions&& value) { SetColdStorageOptions(std::move(value)); return *this;} private: ESPartitionInstanceType 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; ESPartitionInstanceType m_dedicatedMasterType; bool m_dedicatedMasterTypeHasBeenSet = false; int m_dedicatedMasterCount; bool m_dedicatedMasterCountHasBeenSet = false; bool m_warmEnabled; bool m_warmEnabledHasBeenSet = false; ESWarmPartitionInstanceType m_warmType; bool m_warmTypeHasBeenSet = false; int m_warmCount; bool m_warmCountHasBeenSet = false; ColdStorageOptions m_coldStorageOptions; bool m_coldStorageOptionsHasBeenSet = false; }; } // namespace Model } // namespace ElasticsearchService } // namespace Aws