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

Details about the configuration of an OpenSearch cluster.

See * Also:

AWS * API Reference

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

The number of data nodes to use in the OpenSearch domain.

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

The number of data nodes to use in the OpenSearch domain.

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

The number of data nodes to use in the OpenSearch domain.

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

The number of data nodes to use in the OpenSearch domain.

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

Whether UltraWarm is enabled.

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

Whether UltraWarm is enabled.

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

Whether UltraWarm is enabled.

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

Whether UltraWarm is enabled.

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

The number of UltraWarm instances.

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

The number of UltraWarm instances.

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

The number of UltraWarm instances.

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

The number of UltraWarm instances.

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

Whether to use a dedicated master node for the OpenSearch domain. A dedicated * master node performs cluster management tasks, but does not hold data or respond * to data upload requests.

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

Whether to use a dedicated master node for the OpenSearch domain. A dedicated * master node performs cluster management tasks, but does not hold data or respond * to data upload requests.

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

Whether to use a dedicated master node for the OpenSearch domain. A dedicated * master node performs cluster management tasks, but does not hold data or respond * to data upload requests.

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

Whether to use a dedicated master node for the OpenSearch domain. A dedicated * master node performs cluster management tasks, but does not hold data or respond * to data upload requests.

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

Configuration options for zone awareness. Provided if * ZoneAwarenessEnabled is true.

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

Configuration options for zone awareness. Provided if * ZoneAwarenessEnabled is true.

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

Configuration options for zone awareness. Provided if * ZoneAwarenessEnabled is true.

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

Configuration options for zone awareness. Provided if * ZoneAwarenessEnabled is true.

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

Configuration options for zone awareness. Provided if * ZoneAwarenessEnabled is true.

*/ inline AwsOpenSearchServiceDomainClusterConfigDetails& WithZoneAwarenessConfig(const AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails& value) { SetZoneAwarenessConfig(value); return *this;} /** *

Configuration options for zone awareness. Provided if * ZoneAwarenessEnabled is true.

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

The number of instances to use for the master node. If this attribute is * specified, then DedicatedMasterEnabled must be * true.

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

The number of instances to use for the master node. If this attribute is * specified, then DedicatedMasterEnabled must be * true.

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

The number of instances to use for the master node. If this attribute is * specified, then DedicatedMasterEnabled must be * true.

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

The number of instances to use for the master node. If this attribute is * specified, then DedicatedMasterEnabled must be * true.

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

The instance type for your data nodes.

For a list of valid values, see * Supported * instance types in Amazon OpenSearch Service in the Amazon OpenSearch * Service Developer Guide.

*/ inline const Aws::String& GetInstanceType() const{ return m_instanceType; } /** *

The instance type for your data nodes.

For a list of valid values, see * Supported * instance types in Amazon OpenSearch Service in the Amazon OpenSearch * Service Developer Guide.

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

The instance type for your data nodes.

For a list of valid values, see * Supported * instance types in Amazon OpenSearch Service in the Amazon OpenSearch * Service Developer Guide.

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

The instance type for your data nodes.

For a list of valid values, see * Supported * instance types in Amazon OpenSearch Service in the Amazon OpenSearch * Service Developer Guide.

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

The instance type for your data nodes.

For a list of valid values, see * Supported * instance types in Amazon OpenSearch Service in the Amazon OpenSearch * Service Developer Guide.

*/ inline void SetInstanceType(const char* value) { m_instanceTypeHasBeenSet = true; m_instanceType.assign(value); } /** *

The instance type for your data nodes.

For a list of valid values, see * Supported * instance types in Amazon OpenSearch Service in the Amazon OpenSearch * Service Developer Guide.

*/ inline AwsOpenSearchServiceDomainClusterConfigDetails& WithInstanceType(const Aws::String& value) { SetInstanceType(value); return *this;} /** *

The instance type for your data nodes.

For a list of valid values, see * Supported * instance types in Amazon OpenSearch Service in the Amazon OpenSearch * Service Developer Guide.

*/ inline AwsOpenSearchServiceDomainClusterConfigDetails& WithInstanceType(Aws::String&& value) { SetInstanceType(std::move(value)); return *this;} /** *

The instance type for your data nodes.

For a list of valid values, see * Supported * instance types in Amazon OpenSearch Service in the Amazon OpenSearch * Service Developer Guide.

*/ inline AwsOpenSearchServiceDomainClusterConfigDetails& WithInstanceType(const char* value) { SetInstanceType(value); return *this;} /** *

The type of UltraWarm instance.

*/ inline const Aws::String& GetWarmType() const{ return m_warmType; } /** *

The type of UltraWarm instance.

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

The type of UltraWarm instance.

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

The type of UltraWarm instance.

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

The type of UltraWarm instance.

*/ inline void SetWarmType(const char* value) { m_warmTypeHasBeenSet = true; m_warmType.assign(value); } /** *

The type of UltraWarm instance.

*/ inline AwsOpenSearchServiceDomainClusterConfigDetails& WithWarmType(const Aws::String& value) { SetWarmType(value); return *this;} /** *

The type of UltraWarm instance.

*/ inline AwsOpenSearchServiceDomainClusterConfigDetails& WithWarmType(Aws::String&& value) { SetWarmType(std::move(value)); return *this;} /** *

The type of UltraWarm instance.

*/ inline AwsOpenSearchServiceDomainClusterConfigDetails& WithWarmType(const char* value) { SetWarmType(value); return *this;} /** *

Whether to enable zone awareness for the OpenSearch domain. When zone * awareness is enabled, OpenSearch Service allocates the cluster's nodes and * replica index shards across Availability Zones (AZs) in the same Region. This * prevents data loss and minimizes downtime if a node or data center fails.

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

Whether to enable zone awareness for the OpenSearch domain. When zone * awareness is enabled, OpenSearch Service allocates the cluster's nodes and * replica index shards across Availability Zones (AZs) in the same Region. This * prevents data loss and minimizes downtime if a node or data center fails.

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

Whether to enable zone awareness for the OpenSearch domain. When zone * awareness is enabled, OpenSearch Service allocates the cluster's nodes and * replica index shards across Availability Zones (AZs) in the same Region. This * prevents data loss and minimizes downtime if a node or data center fails.

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

Whether to enable zone awareness for the OpenSearch domain. When zone * awareness is enabled, OpenSearch Service allocates the cluster's nodes and * replica index shards across Availability Zones (AZs) in the same Region. This * prevents data loss and minimizes downtime if a node or data center fails.

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

The hardware configuration of the computer that hosts the dedicated master * node.

If this attribute is specified, then * DedicatedMasterEnabled must be true.

*/ inline const Aws::String& GetDedicatedMasterType() const{ return m_dedicatedMasterType; } /** *

The hardware configuration of the computer that hosts the dedicated master * node.

If this attribute is specified, then * DedicatedMasterEnabled must be true.

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

The hardware configuration of the computer that hosts the dedicated master * node.

If this attribute is specified, then * DedicatedMasterEnabled must be true.

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

The hardware configuration of the computer that hosts the dedicated master * node.

If this attribute is specified, then * DedicatedMasterEnabled must be true.

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

The hardware configuration of the computer that hosts the dedicated master * node.

If this attribute is specified, then * DedicatedMasterEnabled must be true.

*/ inline void SetDedicatedMasterType(const char* value) { m_dedicatedMasterTypeHasBeenSet = true; m_dedicatedMasterType.assign(value); } /** *

The hardware configuration of the computer that hosts the dedicated master * node.

If this attribute is specified, then * DedicatedMasterEnabled must be true.

*/ inline AwsOpenSearchServiceDomainClusterConfigDetails& WithDedicatedMasterType(const Aws::String& value) { SetDedicatedMasterType(value); return *this;} /** *

The hardware configuration of the computer that hosts the dedicated master * node.

If this attribute is specified, then * DedicatedMasterEnabled must be true.

*/ inline AwsOpenSearchServiceDomainClusterConfigDetails& WithDedicatedMasterType(Aws::String&& value) { SetDedicatedMasterType(std::move(value)); return *this;} /** *

The hardware configuration of the computer that hosts the dedicated master * node.

If this attribute is specified, then * DedicatedMasterEnabled must be true.

*/ inline AwsOpenSearchServiceDomainClusterConfigDetails& WithDedicatedMasterType(const char* value) { SetDedicatedMasterType(value); return *this;} private: int m_instanceCount; bool m_instanceCountHasBeenSet = false; bool m_warmEnabled; bool m_warmEnabledHasBeenSet = false; int m_warmCount; bool m_warmCountHasBeenSet = false; bool m_dedicatedMasterEnabled; bool m_dedicatedMasterEnabledHasBeenSet = false; AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails m_zoneAwarenessConfig; bool m_zoneAwarenessConfigHasBeenSet = false; int m_dedicatedMasterCount; bool m_dedicatedMasterCountHasBeenSet = false; Aws::String m_instanceType; bool m_instanceTypeHasBeenSet = false; Aws::String m_warmType; bool m_warmTypeHasBeenSet = false; bool m_zoneAwarenessEnabled; bool m_zoneAwarenessEnabledHasBeenSet = false; Aws::String m_dedicatedMasterType; bool m_dedicatedMasterTypeHasBeenSet = false; }; } // namespace Model } // namespace SecurityHub } // namespace Aws