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/es/ElasticsearchService_EXPORTS.h>
8 #include <aws/es/model/ESPartitionInstanceType.h>
9 #include <aws/es/model/ZoneAwarenessConfig.h>
10 #include <aws/es/model/ESWarmPartitionInstanceType.h>
11 #include <aws/es/model/ColdStorageOptions.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 ElasticsearchService
25 {
26 namespace Model
27 {
28 
29   /**
30    * <p>Specifies the configuration for the domain cluster, such as the type and
31    * number of instances.</p><p><h3>See Also:</h3>   <a
32    * href="http://docs.aws.amazon.com/goto/WebAPI/es-2015-01-01/ElasticsearchClusterConfig">AWS
33    * API Reference</a></p>
34    */
35   class AWS_ELASTICSEARCHSERVICE_API ElasticsearchClusterConfig
36   {
37   public:
38     ElasticsearchClusterConfig();
39     ElasticsearchClusterConfig(Aws::Utils::Json::JsonView jsonValue);
40     ElasticsearchClusterConfig& operator=(Aws::Utils::Json::JsonView jsonValue);
41     Aws::Utils::Json::JsonValue Jsonize() const;
42 
43 
44     /**
45      * <p>The instance type for an Elasticsearch cluster. UltraWarm instance types are
46      * not supported for data instances.</p>
47      */
GetInstanceType()48     inline const ESPartitionInstanceType& GetInstanceType() const{ return m_instanceType; }
49 
50     /**
51      * <p>The instance type for an Elasticsearch cluster. UltraWarm instance types are
52      * not supported for data instances.</p>
53      */
InstanceTypeHasBeenSet()54     inline bool InstanceTypeHasBeenSet() const { return m_instanceTypeHasBeenSet; }
55 
56     /**
57      * <p>The instance type for an Elasticsearch cluster. UltraWarm instance types are
58      * not supported for data instances.</p>
59      */
SetInstanceType(const ESPartitionInstanceType & value)60     inline void SetInstanceType(const ESPartitionInstanceType& value) { m_instanceTypeHasBeenSet = true; m_instanceType = value; }
61 
62     /**
63      * <p>The instance type for an Elasticsearch cluster. UltraWarm instance types are
64      * not supported for data instances.</p>
65      */
SetInstanceType(ESPartitionInstanceType && value)66     inline void SetInstanceType(ESPartitionInstanceType&& value) { m_instanceTypeHasBeenSet = true; m_instanceType = std::move(value); }
67 
68     /**
69      * <p>The instance type for an Elasticsearch cluster. UltraWarm instance types are
70      * not supported for data instances.</p>
71      */
WithInstanceType(const ESPartitionInstanceType & value)72     inline ElasticsearchClusterConfig& WithInstanceType(const ESPartitionInstanceType& value) { SetInstanceType(value); return *this;}
73 
74     /**
75      * <p>The instance type for an Elasticsearch cluster. UltraWarm instance types are
76      * not supported for data instances.</p>
77      */
WithInstanceType(ESPartitionInstanceType && value)78     inline ElasticsearchClusterConfig& WithInstanceType(ESPartitionInstanceType&& value) { SetInstanceType(std::move(value)); return *this;}
79 
80 
81     /**
82      * <p>The number of instances in the specified domain cluster.</p>
83      */
GetInstanceCount()84     inline int GetInstanceCount() const{ return m_instanceCount; }
85 
86     /**
87      * <p>The number of instances in the specified domain cluster.</p>
88      */
InstanceCountHasBeenSet()89     inline bool InstanceCountHasBeenSet() const { return m_instanceCountHasBeenSet; }
90 
91     /**
92      * <p>The number of instances in the specified domain cluster.</p>
93      */
SetInstanceCount(int value)94     inline void SetInstanceCount(int value) { m_instanceCountHasBeenSet = true; m_instanceCount = value; }
95 
96     /**
97      * <p>The number of instances in the specified domain cluster.</p>
98      */
WithInstanceCount(int value)99     inline ElasticsearchClusterConfig& WithInstanceCount(int value) { SetInstanceCount(value); return *this;}
100 
101 
102     /**
103      * <p>A boolean value to indicate whether a dedicated master node is enabled. See
104      * <a
105      * href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains.html#es-managedomains-dedicatedmasternodes"
106      * target="_blank">About Dedicated Master Nodes</a> for more information.</p>
107      */
GetDedicatedMasterEnabled()108     inline bool GetDedicatedMasterEnabled() const{ return m_dedicatedMasterEnabled; }
109 
110     /**
111      * <p>A boolean value to indicate whether a dedicated master node is enabled. See
112      * <a
113      * href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains.html#es-managedomains-dedicatedmasternodes"
114      * target="_blank">About Dedicated Master Nodes</a> for more information.</p>
115      */
DedicatedMasterEnabledHasBeenSet()116     inline bool DedicatedMasterEnabledHasBeenSet() const { return m_dedicatedMasterEnabledHasBeenSet; }
117 
118     /**
119      * <p>A boolean value to indicate whether a dedicated master node is enabled. See
120      * <a
121      * href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains.html#es-managedomains-dedicatedmasternodes"
122      * target="_blank">About Dedicated Master Nodes</a> for more information.</p>
123      */
SetDedicatedMasterEnabled(bool value)124     inline void SetDedicatedMasterEnabled(bool value) { m_dedicatedMasterEnabledHasBeenSet = true; m_dedicatedMasterEnabled = value; }
125 
126     /**
127      * <p>A boolean value to indicate whether a dedicated master node is enabled. See
128      * <a
129      * href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains.html#es-managedomains-dedicatedmasternodes"
130      * target="_blank">About Dedicated Master Nodes</a> for more information.</p>
131      */
WithDedicatedMasterEnabled(bool value)132     inline ElasticsearchClusterConfig& WithDedicatedMasterEnabled(bool value) { SetDedicatedMasterEnabled(value); return *this;}
133 
134 
135     /**
136      * <p>A boolean value to indicate whether zone awareness is enabled. See <a
137      * href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains.html#es-managedomains-zoneawareness"
138      * target="_blank">About Zone Awareness</a> for more information.</p>
139      */
GetZoneAwarenessEnabled()140     inline bool GetZoneAwarenessEnabled() const{ return m_zoneAwarenessEnabled; }
141 
142     /**
143      * <p>A boolean value to indicate whether zone awareness is enabled. See <a
144      * href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains.html#es-managedomains-zoneawareness"
145      * target="_blank">About Zone Awareness</a> for more information.</p>
146      */
ZoneAwarenessEnabledHasBeenSet()147     inline bool ZoneAwarenessEnabledHasBeenSet() const { return m_zoneAwarenessEnabledHasBeenSet; }
148 
149     /**
150      * <p>A boolean value to indicate whether zone awareness is enabled. See <a
151      * href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains.html#es-managedomains-zoneawareness"
152      * target="_blank">About Zone Awareness</a> for more information.</p>
153      */
SetZoneAwarenessEnabled(bool value)154     inline void SetZoneAwarenessEnabled(bool value) { m_zoneAwarenessEnabledHasBeenSet = true; m_zoneAwarenessEnabled = value; }
155 
156     /**
157      * <p>A boolean value to indicate whether zone awareness is enabled. See <a
158      * href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains.html#es-managedomains-zoneawareness"
159      * target="_blank">About Zone Awareness</a> for more information.</p>
160      */
WithZoneAwarenessEnabled(bool value)161     inline ElasticsearchClusterConfig& WithZoneAwarenessEnabled(bool value) { SetZoneAwarenessEnabled(value); return *this;}
162 
163 
164     /**
165      * <p>Specifies the zone awareness configuration for a domain when zone awareness
166      * is enabled.</p>
167      */
GetZoneAwarenessConfig()168     inline const ZoneAwarenessConfig& GetZoneAwarenessConfig() const{ return m_zoneAwarenessConfig; }
169 
170     /**
171      * <p>Specifies the zone awareness configuration for a domain when zone awareness
172      * is enabled.</p>
173      */
ZoneAwarenessConfigHasBeenSet()174     inline bool ZoneAwarenessConfigHasBeenSet() const { return m_zoneAwarenessConfigHasBeenSet; }
175 
176     /**
177      * <p>Specifies the zone awareness configuration for a domain when zone awareness
178      * is enabled.</p>
179      */
SetZoneAwarenessConfig(const ZoneAwarenessConfig & value)180     inline void SetZoneAwarenessConfig(const ZoneAwarenessConfig& value) { m_zoneAwarenessConfigHasBeenSet = true; m_zoneAwarenessConfig = value; }
181 
182     /**
183      * <p>Specifies the zone awareness configuration for a domain when zone awareness
184      * is enabled.</p>
185      */
SetZoneAwarenessConfig(ZoneAwarenessConfig && value)186     inline void SetZoneAwarenessConfig(ZoneAwarenessConfig&& value) { m_zoneAwarenessConfigHasBeenSet = true; m_zoneAwarenessConfig = std::move(value); }
187 
188     /**
189      * <p>Specifies the zone awareness configuration for a domain when zone awareness
190      * is enabled.</p>
191      */
WithZoneAwarenessConfig(const ZoneAwarenessConfig & value)192     inline ElasticsearchClusterConfig& WithZoneAwarenessConfig(const ZoneAwarenessConfig& value) { SetZoneAwarenessConfig(value); return *this;}
193 
194     /**
195      * <p>Specifies the zone awareness configuration for a domain when zone awareness
196      * is enabled.</p>
197      */
WithZoneAwarenessConfig(ZoneAwarenessConfig && value)198     inline ElasticsearchClusterConfig& WithZoneAwarenessConfig(ZoneAwarenessConfig&& value) { SetZoneAwarenessConfig(std::move(value)); return *this;}
199 
200 
201     /**
202      * <p>The instance type for a dedicated master node.</p>
203      */
GetDedicatedMasterType()204     inline const ESPartitionInstanceType& GetDedicatedMasterType() const{ return m_dedicatedMasterType; }
205 
206     /**
207      * <p>The instance type for a dedicated master node.</p>
208      */
DedicatedMasterTypeHasBeenSet()209     inline bool DedicatedMasterTypeHasBeenSet() const { return m_dedicatedMasterTypeHasBeenSet; }
210 
211     /**
212      * <p>The instance type for a dedicated master node.</p>
213      */
SetDedicatedMasterType(const ESPartitionInstanceType & value)214     inline void SetDedicatedMasterType(const ESPartitionInstanceType& value) { m_dedicatedMasterTypeHasBeenSet = true; m_dedicatedMasterType = value; }
215 
216     /**
217      * <p>The instance type for a dedicated master node.</p>
218      */
SetDedicatedMasterType(ESPartitionInstanceType && value)219     inline void SetDedicatedMasterType(ESPartitionInstanceType&& value) { m_dedicatedMasterTypeHasBeenSet = true; m_dedicatedMasterType = std::move(value); }
220 
221     /**
222      * <p>The instance type for a dedicated master node.</p>
223      */
WithDedicatedMasterType(const ESPartitionInstanceType & value)224     inline ElasticsearchClusterConfig& WithDedicatedMasterType(const ESPartitionInstanceType& value) { SetDedicatedMasterType(value); return *this;}
225 
226     /**
227      * <p>The instance type for a dedicated master node.</p>
228      */
WithDedicatedMasterType(ESPartitionInstanceType && value)229     inline ElasticsearchClusterConfig& WithDedicatedMasterType(ESPartitionInstanceType&& value) { SetDedicatedMasterType(std::move(value)); return *this;}
230 
231 
232     /**
233      * <p>Total number of dedicated master nodes, active and on standby, for the
234      * cluster.</p>
235      */
GetDedicatedMasterCount()236     inline int GetDedicatedMasterCount() const{ return m_dedicatedMasterCount; }
237 
238     /**
239      * <p>Total number of dedicated master nodes, active and on standby, for the
240      * cluster.</p>
241      */
DedicatedMasterCountHasBeenSet()242     inline bool DedicatedMasterCountHasBeenSet() const { return m_dedicatedMasterCountHasBeenSet; }
243 
244     /**
245      * <p>Total number of dedicated master nodes, active and on standby, for the
246      * cluster.</p>
247      */
SetDedicatedMasterCount(int value)248     inline void SetDedicatedMasterCount(int value) { m_dedicatedMasterCountHasBeenSet = true; m_dedicatedMasterCount = value; }
249 
250     /**
251      * <p>Total number of dedicated master nodes, active and on standby, for the
252      * cluster.</p>
253      */
WithDedicatedMasterCount(int value)254     inline ElasticsearchClusterConfig& WithDedicatedMasterCount(int value) { SetDedicatedMasterCount(value); return *this;}
255 
256 
257     /**
258      * <p>True to enable warm storage.</p>
259      */
GetWarmEnabled()260     inline bool GetWarmEnabled() const{ return m_warmEnabled; }
261 
262     /**
263      * <p>True to enable warm storage.</p>
264      */
WarmEnabledHasBeenSet()265     inline bool WarmEnabledHasBeenSet() const { return m_warmEnabledHasBeenSet; }
266 
267     /**
268      * <p>True to enable warm storage.</p>
269      */
SetWarmEnabled(bool value)270     inline void SetWarmEnabled(bool value) { m_warmEnabledHasBeenSet = true; m_warmEnabled = value; }
271 
272     /**
273      * <p>True to enable warm storage.</p>
274      */
WithWarmEnabled(bool value)275     inline ElasticsearchClusterConfig& WithWarmEnabled(bool value) { SetWarmEnabled(value); return *this;}
276 
277 
278     /**
279      * <p>The instance type for the Elasticsearch cluster's warm nodes.</p>
280      */
GetWarmType()281     inline const ESWarmPartitionInstanceType& GetWarmType() const{ return m_warmType; }
282 
283     /**
284      * <p>The instance type for the Elasticsearch cluster's warm nodes.</p>
285      */
WarmTypeHasBeenSet()286     inline bool WarmTypeHasBeenSet() const { return m_warmTypeHasBeenSet; }
287 
288     /**
289      * <p>The instance type for the Elasticsearch cluster's warm nodes.</p>
290      */
SetWarmType(const ESWarmPartitionInstanceType & value)291     inline void SetWarmType(const ESWarmPartitionInstanceType& value) { m_warmTypeHasBeenSet = true; m_warmType = value; }
292 
293     /**
294      * <p>The instance type for the Elasticsearch cluster's warm nodes.</p>
295      */
SetWarmType(ESWarmPartitionInstanceType && value)296     inline void SetWarmType(ESWarmPartitionInstanceType&& value) { m_warmTypeHasBeenSet = true; m_warmType = std::move(value); }
297 
298     /**
299      * <p>The instance type for the Elasticsearch cluster's warm nodes.</p>
300      */
WithWarmType(const ESWarmPartitionInstanceType & value)301     inline ElasticsearchClusterConfig& WithWarmType(const ESWarmPartitionInstanceType& value) { SetWarmType(value); return *this;}
302 
303     /**
304      * <p>The instance type for the Elasticsearch cluster's warm nodes.</p>
305      */
WithWarmType(ESWarmPartitionInstanceType && value)306     inline ElasticsearchClusterConfig& WithWarmType(ESWarmPartitionInstanceType&& value) { SetWarmType(std::move(value)); return *this;}
307 
308 
309     /**
310      * <p>The number of warm nodes in the cluster.</p>
311      */
GetWarmCount()312     inline int GetWarmCount() const{ return m_warmCount; }
313 
314     /**
315      * <p>The number of warm nodes in the cluster.</p>
316      */
WarmCountHasBeenSet()317     inline bool WarmCountHasBeenSet() const { return m_warmCountHasBeenSet; }
318 
319     /**
320      * <p>The number of warm nodes in the cluster.</p>
321      */
SetWarmCount(int value)322     inline void SetWarmCount(int value) { m_warmCountHasBeenSet = true; m_warmCount = value; }
323 
324     /**
325      * <p>The number of warm nodes in the cluster.</p>
326      */
WithWarmCount(int value)327     inline ElasticsearchClusterConfig& WithWarmCount(int value) { SetWarmCount(value); return *this;}
328 
329 
330     /**
331      * <p>Specifies the <code>ColdStorageOptions</code> config for Elasticsearch
332      * Domain</p>
333      */
GetColdStorageOptions()334     inline const ColdStorageOptions& GetColdStorageOptions() const{ return m_coldStorageOptions; }
335 
336     /**
337      * <p>Specifies the <code>ColdStorageOptions</code> config for Elasticsearch
338      * Domain</p>
339      */
ColdStorageOptionsHasBeenSet()340     inline bool ColdStorageOptionsHasBeenSet() const { return m_coldStorageOptionsHasBeenSet; }
341 
342     /**
343      * <p>Specifies the <code>ColdStorageOptions</code> config for Elasticsearch
344      * Domain</p>
345      */
SetColdStorageOptions(const ColdStorageOptions & value)346     inline void SetColdStorageOptions(const ColdStorageOptions& value) { m_coldStorageOptionsHasBeenSet = true; m_coldStorageOptions = value; }
347 
348     /**
349      * <p>Specifies the <code>ColdStorageOptions</code> config for Elasticsearch
350      * Domain</p>
351      */
SetColdStorageOptions(ColdStorageOptions && value)352     inline void SetColdStorageOptions(ColdStorageOptions&& value) { m_coldStorageOptionsHasBeenSet = true; m_coldStorageOptions = std::move(value); }
353 
354     /**
355      * <p>Specifies the <code>ColdStorageOptions</code> config for Elasticsearch
356      * Domain</p>
357      */
WithColdStorageOptions(const ColdStorageOptions & value)358     inline ElasticsearchClusterConfig& WithColdStorageOptions(const ColdStorageOptions& value) { SetColdStorageOptions(value); return *this;}
359 
360     /**
361      * <p>Specifies the <code>ColdStorageOptions</code> config for Elasticsearch
362      * Domain</p>
363      */
WithColdStorageOptions(ColdStorageOptions && value)364     inline ElasticsearchClusterConfig& WithColdStorageOptions(ColdStorageOptions&& value) { SetColdStorageOptions(std::move(value)); return *this;}
365 
366   private:
367 
368     ESPartitionInstanceType m_instanceType;
369     bool m_instanceTypeHasBeenSet;
370 
371     int m_instanceCount;
372     bool m_instanceCountHasBeenSet;
373 
374     bool m_dedicatedMasterEnabled;
375     bool m_dedicatedMasterEnabledHasBeenSet;
376 
377     bool m_zoneAwarenessEnabled;
378     bool m_zoneAwarenessEnabledHasBeenSet;
379 
380     ZoneAwarenessConfig m_zoneAwarenessConfig;
381     bool m_zoneAwarenessConfigHasBeenSet;
382 
383     ESPartitionInstanceType m_dedicatedMasterType;
384     bool m_dedicatedMasterTypeHasBeenSet;
385 
386     int m_dedicatedMasterCount;
387     bool m_dedicatedMasterCountHasBeenSet;
388 
389     bool m_warmEnabled;
390     bool m_warmEnabledHasBeenSet;
391 
392     ESWarmPartitionInstanceType m_warmType;
393     bool m_warmTypeHasBeenSet;
394 
395     int m_warmCount;
396     bool m_warmCountHasBeenSet;
397 
398     ColdStorageOptions m_coldStorageOptions;
399     bool m_coldStorageOptionsHasBeenSet;
400   };
401 
402 } // namespace Model
403 } // namespace ElasticsearchService
404 } // namespace Aws
405