1 /** 2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 * SPDX-License-Identifier: Apache-2.0. 4 */ 5 6 #pragma once 7 #include <aws/opensearch/OpenSearchService_EXPORTS.h> 8 #include <aws/core/utils/memory/stl/AWSVector.h> 9 #include <aws/opensearch/model/InstanceLimits.h> 10 #include <aws/opensearch/model/StorageType.h> 11 #include <aws/opensearch/model/AdditionalLimit.h> 12 #include <utility> 13 14 namespace Aws 15 { 16 namespace Utils 17 { 18 namespace Json 19 { 20 class JsonValue; 21 class JsonView; 22 } // namespace Json 23 } // namespace Utils 24 namespace OpenSearchService 25 { 26 namespace Model 27 { 28 29 /** 30 * <p> Limits for a given InstanceType and for each of its roles. <br/> Limits 31 * contains the following: <code> <a>StorageTypes</a> </code>, <code> 32 * <a>InstanceLimits</a> </code>, and <code> <a>AdditionalLimits</a> </code> 33 * </p><p><h3>See Also:</h3> <a 34 * href="http://docs.aws.amazon.com/goto/WebAPI/opensearch-2021-01-01/Limits">AWS 35 * API Reference</a></p> 36 */ 37 class AWS_OPENSEARCHSERVICE_API Limits 38 { 39 public: 40 Limits(); 41 Limits(Aws::Utils::Json::JsonView jsonValue); 42 Limits& operator=(Aws::Utils::Json::JsonView jsonValue); 43 Aws::Utils::Json::JsonValue Jsonize() const; 44 45 46 /** 47 * <p>Storage-related types and attributes that are available for a given 48 * InstanceType. </p> 49 */ GetStorageTypes()50 inline const Aws::Vector<StorageType>& GetStorageTypes() const{ return m_storageTypes; } 51 52 /** 53 * <p>Storage-related types and attributes that are available for a given 54 * InstanceType. </p> 55 */ StorageTypesHasBeenSet()56 inline bool StorageTypesHasBeenSet() const { return m_storageTypesHasBeenSet; } 57 58 /** 59 * <p>Storage-related types and attributes that are available for a given 60 * InstanceType. </p> 61 */ SetStorageTypes(const Aws::Vector<StorageType> & value)62 inline void SetStorageTypes(const Aws::Vector<StorageType>& value) { m_storageTypesHasBeenSet = true; m_storageTypes = value; } 63 64 /** 65 * <p>Storage-related types and attributes that are available for a given 66 * InstanceType. </p> 67 */ SetStorageTypes(Aws::Vector<StorageType> && value)68 inline void SetStorageTypes(Aws::Vector<StorageType>&& value) { m_storageTypesHasBeenSet = true; m_storageTypes = std::move(value); } 69 70 /** 71 * <p>Storage-related types and attributes that are available for a given 72 * InstanceType. </p> 73 */ WithStorageTypes(const Aws::Vector<StorageType> & value)74 inline Limits& WithStorageTypes(const Aws::Vector<StorageType>& value) { SetStorageTypes(value); return *this;} 75 76 /** 77 * <p>Storage-related types and attributes that are available for a given 78 * InstanceType. </p> 79 */ WithStorageTypes(Aws::Vector<StorageType> && value)80 inline Limits& WithStorageTypes(Aws::Vector<StorageType>&& value) { SetStorageTypes(std::move(value)); return *this;} 81 82 /** 83 * <p>Storage-related types and attributes that are available for a given 84 * InstanceType. </p> 85 */ AddStorageTypes(const StorageType & value)86 inline Limits& AddStorageTypes(const StorageType& value) { m_storageTypesHasBeenSet = true; m_storageTypes.push_back(value); return *this; } 87 88 /** 89 * <p>Storage-related types and attributes that are available for a given 90 * InstanceType. </p> 91 */ AddStorageTypes(StorageType && value)92 inline Limits& AddStorageTypes(StorageType&& value) { m_storageTypesHasBeenSet = true; m_storageTypes.push_back(std::move(value)); return *this; } 93 94 95 GetInstanceLimits()96 inline const InstanceLimits& GetInstanceLimits() const{ return m_instanceLimits; } 97 98 InstanceLimitsHasBeenSet()99 inline bool InstanceLimitsHasBeenSet() const { return m_instanceLimitsHasBeenSet; } 100 101 SetInstanceLimits(const InstanceLimits & value)102 inline void SetInstanceLimits(const InstanceLimits& value) { m_instanceLimitsHasBeenSet = true; m_instanceLimits = value; } 103 104 SetInstanceLimits(InstanceLimits && value)105 inline void SetInstanceLimits(InstanceLimits&& value) { m_instanceLimitsHasBeenSet = true; m_instanceLimits = std::move(value); } 106 107 WithInstanceLimits(const InstanceLimits & value)108 inline Limits& WithInstanceLimits(const InstanceLimits& value) { SetInstanceLimits(value); return *this;} 109 110 WithInstanceLimits(InstanceLimits && value)111 inline Limits& WithInstanceLimits(InstanceLimits&& value) { SetInstanceLimits(std::move(value)); return *this;} 112 113 114 /** 115 * <p> List of additional limits that are specific to a given InstanceType and for 116 * each of its <code> <a>InstanceRole</a> </code> . </p> 117 */ GetAdditionalLimits()118 inline const Aws::Vector<AdditionalLimit>& GetAdditionalLimits() const{ return m_additionalLimits; } 119 120 /** 121 * <p> List of additional limits that are specific to a given InstanceType and for 122 * each of its <code> <a>InstanceRole</a> </code> . </p> 123 */ AdditionalLimitsHasBeenSet()124 inline bool AdditionalLimitsHasBeenSet() const { return m_additionalLimitsHasBeenSet; } 125 126 /** 127 * <p> List of additional limits that are specific to a given InstanceType and for 128 * each of its <code> <a>InstanceRole</a> </code> . </p> 129 */ SetAdditionalLimits(const Aws::Vector<AdditionalLimit> & value)130 inline void SetAdditionalLimits(const Aws::Vector<AdditionalLimit>& value) { m_additionalLimitsHasBeenSet = true; m_additionalLimits = value; } 131 132 /** 133 * <p> List of additional limits that are specific to a given InstanceType and for 134 * each of its <code> <a>InstanceRole</a> </code> . </p> 135 */ SetAdditionalLimits(Aws::Vector<AdditionalLimit> && value)136 inline void SetAdditionalLimits(Aws::Vector<AdditionalLimit>&& value) { m_additionalLimitsHasBeenSet = true; m_additionalLimits = std::move(value); } 137 138 /** 139 * <p> List of additional limits that are specific to a given InstanceType and for 140 * each of its <code> <a>InstanceRole</a> </code> . </p> 141 */ WithAdditionalLimits(const Aws::Vector<AdditionalLimit> & value)142 inline Limits& WithAdditionalLimits(const Aws::Vector<AdditionalLimit>& value) { SetAdditionalLimits(value); return *this;} 143 144 /** 145 * <p> List of additional limits that are specific to a given InstanceType and for 146 * each of its <code> <a>InstanceRole</a> </code> . </p> 147 */ WithAdditionalLimits(Aws::Vector<AdditionalLimit> && value)148 inline Limits& WithAdditionalLimits(Aws::Vector<AdditionalLimit>&& value) { SetAdditionalLimits(std::move(value)); return *this;} 149 150 /** 151 * <p> List of additional limits that are specific to a given InstanceType and for 152 * each of its <code> <a>InstanceRole</a> </code> . </p> 153 */ AddAdditionalLimits(const AdditionalLimit & value)154 inline Limits& AddAdditionalLimits(const AdditionalLimit& value) { m_additionalLimitsHasBeenSet = true; m_additionalLimits.push_back(value); return *this; } 155 156 /** 157 * <p> List of additional limits that are specific to a given InstanceType and for 158 * each of its <code> <a>InstanceRole</a> </code> . </p> 159 */ AddAdditionalLimits(AdditionalLimit && value)160 inline Limits& AddAdditionalLimits(AdditionalLimit&& value) { m_additionalLimitsHasBeenSet = true; m_additionalLimits.push_back(std::move(value)); return *this; } 161 162 private: 163 164 Aws::Vector<StorageType> m_storageTypes; 165 bool m_storageTypesHasBeenSet; 166 167 InstanceLimits m_instanceLimits; 168 bool m_instanceLimitsHasBeenSet; 169 170 Aws::Vector<AdditionalLimit> m_additionalLimits; 171 bool m_additionalLimitsHasBeenSet; 172 }; 173 174 } // namespace Model 175 } // namespace OpenSearchService 176 } // namespace Aws 177