/** * 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 { /** *

Limits for a given instance type and for each of its roles.

See * Also:

AWS * API Reference

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

Storage-related attributes that are available for a given instance type.

*/ inline const Aws::Vector& GetStorageTypes() const{ return m_storageTypes; } /** *

Storage-related attributes that are available for a given instance type.

*/ inline bool StorageTypesHasBeenSet() const { return m_storageTypesHasBeenSet; } /** *

Storage-related attributes that are available for a given instance type.

*/ inline void SetStorageTypes(const Aws::Vector& value) { m_storageTypesHasBeenSet = true; m_storageTypes = value; } /** *

Storage-related attributes that are available for a given instance type.

*/ inline void SetStorageTypes(Aws::Vector&& value) { m_storageTypesHasBeenSet = true; m_storageTypes = std::move(value); } /** *

Storage-related attributes that are available for a given instance type.

*/ inline Limits& WithStorageTypes(const Aws::Vector& value) { SetStorageTypes(value); return *this;} /** *

Storage-related attributes that are available for a given instance type.

*/ inline Limits& WithStorageTypes(Aws::Vector&& value) { SetStorageTypes(std::move(value)); return *this;} /** *

Storage-related attributes that are available for a given instance type.

*/ inline Limits& AddStorageTypes(const StorageType& value) { m_storageTypesHasBeenSet = true; m_storageTypes.push_back(value); return *this; } /** *

Storage-related attributes that are available for a given instance type.

*/ inline Limits& AddStorageTypes(StorageType&& value) { m_storageTypesHasBeenSet = true; m_storageTypes.push_back(std::move(value)); return *this; } /** *

The limits for a given instance type.

*/ inline const InstanceLimits& GetInstanceLimits() const{ return m_instanceLimits; } /** *

The limits for a given instance type.

*/ inline bool InstanceLimitsHasBeenSet() const { return m_instanceLimitsHasBeenSet; } /** *

The limits for a given instance type.

*/ inline void SetInstanceLimits(const InstanceLimits& value) { m_instanceLimitsHasBeenSet = true; m_instanceLimits = value; } /** *

The limits for a given instance type.

*/ inline void SetInstanceLimits(InstanceLimits&& value) { m_instanceLimitsHasBeenSet = true; m_instanceLimits = std::move(value); } /** *

The limits for a given instance type.

*/ inline Limits& WithInstanceLimits(const InstanceLimits& value) { SetInstanceLimits(value); return *this;} /** *

The limits for a given instance type.

*/ inline Limits& WithInstanceLimits(InstanceLimits&& value) { SetInstanceLimits(std::move(value)); return *this;} /** *

List of additional limits that are specific to a given instance type for each * of its instance roles.

*/ inline const Aws::Vector& GetAdditionalLimits() const{ return m_additionalLimits; } /** *

List of additional limits that are specific to a given instance type for each * of its instance roles.

*/ inline bool AdditionalLimitsHasBeenSet() const { return m_additionalLimitsHasBeenSet; } /** *

List of additional limits that are specific to a given instance type for each * of its instance roles.

*/ inline void SetAdditionalLimits(const Aws::Vector& value) { m_additionalLimitsHasBeenSet = true; m_additionalLimits = value; } /** *

List of additional limits that are specific to a given instance type for each * of its instance roles.

*/ inline void SetAdditionalLimits(Aws::Vector&& value) { m_additionalLimitsHasBeenSet = true; m_additionalLimits = std::move(value); } /** *

List of additional limits that are specific to a given instance type for each * of its instance roles.

*/ inline Limits& WithAdditionalLimits(const Aws::Vector& value) { SetAdditionalLimits(value); return *this;} /** *

List of additional limits that are specific to a given instance type for each * of its instance roles.

*/ inline Limits& WithAdditionalLimits(Aws::Vector&& value) { SetAdditionalLimits(std::move(value)); return *this;} /** *

List of additional limits that are specific to a given instance type for each * of its instance roles.

*/ inline Limits& AddAdditionalLimits(const AdditionalLimit& value) { m_additionalLimitsHasBeenSet = true; m_additionalLimits.push_back(value); return *this; } /** *

List of additional limits that are specific to a given instance type for each * of its instance roles.

*/ inline Limits& AddAdditionalLimits(AdditionalLimit&& value) { m_additionalLimitsHasBeenSet = true; m_additionalLimits.push_back(std::move(value)); return *this; } private: Aws::Vector m_storageTypes; bool m_storageTypesHasBeenSet = false; InstanceLimits m_instanceLimits; bool m_instanceLimitsHasBeenSet = false; Aws::Vector m_additionalLimits; bool m_additionalLimitsHasBeenSet = false; }; } // namespace Model } // namespace OpenSearchService } // namespace Aws