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/elasticache/ElastiCache_EXPORTS.h>
8 #include <aws/elasticache/ElastiCacheRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/elasticache/model/AZMode.h>
11 #include <aws/core/utils/memory/stl/AWSVector.h>
12 #include <aws/elasticache/model/OutpostMode.h>
13 #include <aws/elasticache/model/Tag.h>
14 #include <aws/elasticache/model/LogDeliveryConfigurationRequest.h>
15 #include <utility>
16 
17 namespace Aws
18 {
19 namespace ElastiCache
20 {
21 namespace Model
22 {
23 
24   /**
25    * <p>Represents the input of a CreateCacheCluster operation.</p><p><h3>See
26    * Also:</h3>   <a
27    * href="http://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/CreateCacheClusterMessage">AWS
28    * API Reference</a></p>
29    */
30   class AWS_ELASTICACHE_API CreateCacheClusterRequest : public ElastiCacheRequest
31   {
32   public:
33     CreateCacheClusterRequest();
34 
35     // Service request name is the Operation name which will send this request out,
36     // each operation should has unique request name, so that we can get operation's name from this request.
37     // Note: this is not true for response, multiple operations may have the same response name,
38     // so we can not get operation's name from response.
GetServiceRequestName()39     inline virtual const char* GetServiceRequestName() const override { return "CreateCacheCluster"; }
40 
41     Aws::String SerializePayload() const override;
42 
43   protected:
44     void DumpBodyToUrl(Aws::Http::URI& uri ) const override;
45 
46   public:
47 
48     /**
49      * <p>The node group (shard) identifier. This parameter is stored as a lowercase
50      * string.</p> <p> <b>Constraints:</b> </p> <ul> <li> <p>A name must contain from 1
51      * to 50 alphanumeric characters or hyphens.</p> </li> <li> <p>The first character
52      * must be a letter.</p> </li> <li> <p>A name cannot end with a hyphen or contain
53      * two consecutive hyphens.</p> </li> </ul>
54      */
GetCacheClusterId()55     inline const Aws::String& GetCacheClusterId() const{ return m_cacheClusterId; }
56 
57     /**
58      * <p>The node group (shard) identifier. This parameter is stored as a lowercase
59      * string.</p> <p> <b>Constraints:</b> </p> <ul> <li> <p>A name must contain from 1
60      * to 50 alphanumeric characters or hyphens.</p> </li> <li> <p>The first character
61      * must be a letter.</p> </li> <li> <p>A name cannot end with a hyphen or contain
62      * two consecutive hyphens.</p> </li> </ul>
63      */
CacheClusterIdHasBeenSet()64     inline bool CacheClusterIdHasBeenSet() const { return m_cacheClusterIdHasBeenSet; }
65 
66     /**
67      * <p>The node group (shard) identifier. This parameter is stored as a lowercase
68      * string.</p> <p> <b>Constraints:</b> </p> <ul> <li> <p>A name must contain from 1
69      * to 50 alphanumeric characters or hyphens.</p> </li> <li> <p>The first character
70      * must be a letter.</p> </li> <li> <p>A name cannot end with a hyphen or contain
71      * two consecutive hyphens.</p> </li> </ul>
72      */
SetCacheClusterId(const Aws::String & value)73     inline void SetCacheClusterId(const Aws::String& value) { m_cacheClusterIdHasBeenSet = true; m_cacheClusterId = value; }
74 
75     /**
76      * <p>The node group (shard) identifier. This parameter is stored as a lowercase
77      * string.</p> <p> <b>Constraints:</b> </p> <ul> <li> <p>A name must contain from 1
78      * to 50 alphanumeric characters or hyphens.</p> </li> <li> <p>The first character
79      * must be a letter.</p> </li> <li> <p>A name cannot end with a hyphen or contain
80      * two consecutive hyphens.</p> </li> </ul>
81      */
SetCacheClusterId(Aws::String && value)82     inline void SetCacheClusterId(Aws::String&& value) { m_cacheClusterIdHasBeenSet = true; m_cacheClusterId = std::move(value); }
83 
84     /**
85      * <p>The node group (shard) identifier. This parameter is stored as a lowercase
86      * string.</p> <p> <b>Constraints:</b> </p> <ul> <li> <p>A name must contain from 1
87      * to 50 alphanumeric characters or hyphens.</p> </li> <li> <p>The first character
88      * must be a letter.</p> </li> <li> <p>A name cannot end with a hyphen or contain
89      * two consecutive hyphens.</p> </li> </ul>
90      */
SetCacheClusterId(const char * value)91     inline void SetCacheClusterId(const char* value) { m_cacheClusterIdHasBeenSet = true; m_cacheClusterId.assign(value); }
92 
93     /**
94      * <p>The node group (shard) identifier. This parameter is stored as a lowercase
95      * string.</p> <p> <b>Constraints:</b> </p> <ul> <li> <p>A name must contain from 1
96      * to 50 alphanumeric characters or hyphens.</p> </li> <li> <p>The first character
97      * must be a letter.</p> </li> <li> <p>A name cannot end with a hyphen or contain
98      * two consecutive hyphens.</p> </li> </ul>
99      */
WithCacheClusterId(const Aws::String & value)100     inline CreateCacheClusterRequest& WithCacheClusterId(const Aws::String& value) { SetCacheClusterId(value); return *this;}
101 
102     /**
103      * <p>The node group (shard) identifier. This parameter is stored as a lowercase
104      * string.</p> <p> <b>Constraints:</b> </p> <ul> <li> <p>A name must contain from 1
105      * to 50 alphanumeric characters or hyphens.</p> </li> <li> <p>The first character
106      * must be a letter.</p> </li> <li> <p>A name cannot end with a hyphen or contain
107      * two consecutive hyphens.</p> </li> </ul>
108      */
WithCacheClusterId(Aws::String && value)109     inline CreateCacheClusterRequest& WithCacheClusterId(Aws::String&& value) { SetCacheClusterId(std::move(value)); return *this;}
110 
111     /**
112      * <p>The node group (shard) identifier. This parameter is stored as a lowercase
113      * string.</p> <p> <b>Constraints:</b> </p> <ul> <li> <p>A name must contain from 1
114      * to 50 alphanumeric characters or hyphens.</p> </li> <li> <p>The first character
115      * must be a letter.</p> </li> <li> <p>A name cannot end with a hyphen or contain
116      * two consecutive hyphens.</p> </li> </ul>
117      */
WithCacheClusterId(const char * value)118     inline CreateCacheClusterRequest& WithCacheClusterId(const char* value) { SetCacheClusterId(value); return *this;}
119 
120 
121     /**
122      * <p>The ID of the replication group to which this cluster should belong. If this
123      * parameter is specified, the cluster is added to the specified replication group
124      * as a read replica; otherwise, the cluster is a standalone primary that is not
125      * part of any replication group.</p> <p>If the specified replication group is
126      * Multi-AZ enabled and the Availability Zone is not specified, the cluster is
127      * created in Availability Zones that provide the best spread of read replicas
128      * across Availability Zones.</p>  <p>This parameter is only valid if the
129      * <code>Engine</code> parameter is <code>redis</code>.</p>
130      */
GetReplicationGroupId()131     inline const Aws::String& GetReplicationGroupId() const{ return m_replicationGroupId; }
132 
133     /**
134      * <p>The ID of the replication group to which this cluster should belong. If this
135      * parameter is specified, the cluster is added to the specified replication group
136      * as a read replica; otherwise, the cluster is a standalone primary that is not
137      * part of any replication group.</p> <p>If the specified replication group is
138      * Multi-AZ enabled and the Availability Zone is not specified, the cluster is
139      * created in Availability Zones that provide the best spread of read replicas
140      * across Availability Zones.</p>  <p>This parameter is only valid if the
141      * <code>Engine</code> parameter is <code>redis</code>.</p>
142      */
ReplicationGroupIdHasBeenSet()143     inline bool ReplicationGroupIdHasBeenSet() const { return m_replicationGroupIdHasBeenSet; }
144 
145     /**
146      * <p>The ID of the replication group to which this cluster should belong. If this
147      * parameter is specified, the cluster is added to the specified replication group
148      * as a read replica; otherwise, the cluster is a standalone primary that is not
149      * part of any replication group.</p> <p>If the specified replication group is
150      * Multi-AZ enabled and the Availability Zone is not specified, the cluster is
151      * created in Availability Zones that provide the best spread of read replicas
152      * across Availability Zones.</p>  <p>This parameter is only valid if the
153      * <code>Engine</code> parameter is <code>redis</code>.</p>
154      */
SetReplicationGroupId(const Aws::String & value)155     inline void SetReplicationGroupId(const Aws::String& value) { m_replicationGroupIdHasBeenSet = true; m_replicationGroupId = value; }
156 
157     /**
158      * <p>The ID of the replication group to which this cluster should belong. If this
159      * parameter is specified, the cluster is added to the specified replication group
160      * as a read replica; otherwise, the cluster is a standalone primary that is not
161      * part of any replication group.</p> <p>If the specified replication group is
162      * Multi-AZ enabled and the Availability Zone is not specified, the cluster is
163      * created in Availability Zones that provide the best spread of read replicas
164      * across Availability Zones.</p>  <p>This parameter is only valid if the
165      * <code>Engine</code> parameter is <code>redis</code>.</p>
166      */
SetReplicationGroupId(Aws::String && value)167     inline void SetReplicationGroupId(Aws::String&& value) { m_replicationGroupIdHasBeenSet = true; m_replicationGroupId = std::move(value); }
168 
169     /**
170      * <p>The ID of the replication group to which this cluster should belong. If this
171      * parameter is specified, the cluster is added to the specified replication group
172      * as a read replica; otherwise, the cluster is a standalone primary that is not
173      * part of any replication group.</p> <p>If the specified replication group is
174      * Multi-AZ enabled and the Availability Zone is not specified, the cluster is
175      * created in Availability Zones that provide the best spread of read replicas
176      * across Availability Zones.</p>  <p>This parameter is only valid if the
177      * <code>Engine</code> parameter is <code>redis</code>.</p>
178      */
SetReplicationGroupId(const char * value)179     inline void SetReplicationGroupId(const char* value) { m_replicationGroupIdHasBeenSet = true; m_replicationGroupId.assign(value); }
180 
181     /**
182      * <p>The ID of the replication group to which this cluster should belong. If this
183      * parameter is specified, the cluster is added to the specified replication group
184      * as a read replica; otherwise, the cluster is a standalone primary that is not
185      * part of any replication group.</p> <p>If the specified replication group is
186      * Multi-AZ enabled and the Availability Zone is not specified, the cluster is
187      * created in Availability Zones that provide the best spread of read replicas
188      * across Availability Zones.</p>  <p>This parameter is only valid if the
189      * <code>Engine</code> parameter is <code>redis</code>.</p>
190      */
WithReplicationGroupId(const Aws::String & value)191     inline CreateCacheClusterRequest& WithReplicationGroupId(const Aws::String& value) { SetReplicationGroupId(value); return *this;}
192 
193     /**
194      * <p>The ID of the replication group to which this cluster should belong. If this
195      * parameter is specified, the cluster is added to the specified replication group
196      * as a read replica; otherwise, the cluster is a standalone primary that is not
197      * part of any replication group.</p> <p>If the specified replication group is
198      * Multi-AZ enabled and the Availability Zone is not specified, the cluster is
199      * created in Availability Zones that provide the best spread of read replicas
200      * across Availability Zones.</p>  <p>This parameter is only valid if the
201      * <code>Engine</code> parameter is <code>redis</code>.</p>
202      */
WithReplicationGroupId(Aws::String && value)203     inline CreateCacheClusterRequest& WithReplicationGroupId(Aws::String&& value) { SetReplicationGroupId(std::move(value)); return *this;}
204 
205     /**
206      * <p>The ID of the replication group to which this cluster should belong. If this
207      * parameter is specified, the cluster is added to the specified replication group
208      * as a read replica; otherwise, the cluster is a standalone primary that is not
209      * part of any replication group.</p> <p>If the specified replication group is
210      * Multi-AZ enabled and the Availability Zone is not specified, the cluster is
211      * created in Availability Zones that provide the best spread of read replicas
212      * across Availability Zones.</p>  <p>This parameter is only valid if the
213      * <code>Engine</code> parameter is <code>redis</code>.</p>
214      */
WithReplicationGroupId(const char * value)215     inline CreateCacheClusterRequest& WithReplicationGroupId(const char* value) { SetReplicationGroupId(value); return *this;}
216 
217 
218     /**
219      * <p>Specifies whether the nodes in this Memcached cluster are created in a single
220      * Availability Zone or created across multiple Availability Zones in the cluster's
221      * region.</p> <p>This parameter is only supported for Memcached clusters.</p>
222      * <p>If the <code>AZMode</code> and <code>PreferredAvailabilityZones</code> are
223      * not specified, ElastiCache assumes <code>single-az</code> mode.</p>
224      */
GetAZMode()225     inline const AZMode& GetAZMode() const{ return m_aZMode; }
226 
227     /**
228      * <p>Specifies whether the nodes in this Memcached cluster are created in a single
229      * Availability Zone or created across multiple Availability Zones in the cluster's
230      * region.</p> <p>This parameter is only supported for Memcached clusters.</p>
231      * <p>If the <code>AZMode</code> and <code>PreferredAvailabilityZones</code> are
232      * not specified, ElastiCache assumes <code>single-az</code> mode.</p>
233      */
AZModeHasBeenSet()234     inline bool AZModeHasBeenSet() const { return m_aZModeHasBeenSet; }
235 
236     /**
237      * <p>Specifies whether the nodes in this Memcached cluster are created in a single
238      * Availability Zone or created across multiple Availability Zones in the cluster's
239      * region.</p> <p>This parameter is only supported for Memcached clusters.</p>
240      * <p>If the <code>AZMode</code> and <code>PreferredAvailabilityZones</code> are
241      * not specified, ElastiCache assumes <code>single-az</code> mode.</p>
242      */
SetAZMode(const AZMode & value)243     inline void SetAZMode(const AZMode& value) { m_aZModeHasBeenSet = true; m_aZMode = value; }
244 
245     /**
246      * <p>Specifies whether the nodes in this Memcached cluster are created in a single
247      * Availability Zone or created across multiple Availability Zones in the cluster's
248      * region.</p> <p>This parameter is only supported for Memcached clusters.</p>
249      * <p>If the <code>AZMode</code> and <code>PreferredAvailabilityZones</code> are
250      * not specified, ElastiCache assumes <code>single-az</code> mode.</p>
251      */
SetAZMode(AZMode && value)252     inline void SetAZMode(AZMode&& value) { m_aZModeHasBeenSet = true; m_aZMode = std::move(value); }
253 
254     /**
255      * <p>Specifies whether the nodes in this Memcached cluster are created in a single
256      * Availability Zone or created across multiple Availability Zones in the cluster's
257      * region.</p> <p>This parameter is only supported for Memcached clusters.</p>
258      * <p>If the <code>AZMode</code> and <code>PreferredAvailabilityZones</code> are
259      * not specified, ElastiCache assumes <code>single-az</code> mode.</p>
260      */
WithAZMode(const AZMode & value)261     inline CreateCacheClusterRequest& WithAZMode(const AZMode& value) { SetAZMode(value); return *this;}
262 
263     /**
264      * <p>Specifies whether the nodes in this Memcached cluster are created in a single
265      * Availability Zone or created across multiple Availability Zones in the cluster's
266      * region.</p> <p>This parameter is only supported for Memcached clusters.</p>
267      * <p>If the <code>AZMode</code> and <code>PreferredAvailabilityZones</code> are
268      * not specified, ElastiCache assumes <code>single-az</code> mode.</p>
269      */
WithAZMode(AZMode && value)270     inline CreateCacheClusterRequest& WithAZMode(AZMode&& value) { SetAZMode(std::move(value)); return *this;}
271 
272 
273     /**
274      * <p>The EC2 Availability Zone in which the cluster is created.</p> <p>All nodes
275      * belonging to this cluster are placed in the preferred Availability Zone. If you
276      * want to create your nodes across multiple Availability Zones, use
277      * <code>PreferredAvailabilityZones</code>.</p> <p>Default: System chosen
278      * Availability Zone.</p>
279      */
GetPreferredAvailabilityZone()280     inline const Aws::String& GetPreferredAvailabilityZone() const{ return m_preferredAvailabilityZone; }
281 
282     /**
283      * <p>The EC2 Availability Zone in which the cluster is created.</p> <p>All nodes
284      * belonging to this cluster are placed in the preferred Availability Zone. If you
285      * want to create your nodes across multiple Availability Zones, use
286      * <code>PreferredAvailabilityZones</code>.</p> <p>Default: System chosen
287      * Availability Zone.</p>
288      */
PreferredAvailabilityZoneHasBeenSet()289     inline bool PreferredAvailabilityZoneHasBeenSet() const { return m_preferredAvailabilityZoneHasBeenSet; }
290 
291     /**
292      * <p>The EC2 Availability Zone in which the cluster is created.</p> <p>All nodes
293      * belonging to this cluster are placed in the preferred Availability Zone. If you
294      * want to create your nodes across multiple Availability Zones, use
295      * <code>PreferredAvailabilityZones</code>.</p> <p>Default: System chosen
296      * Availability Zone.</p>
297      */
SetPreferredAvailabilityZone(const Aws::String & value)298     inline void SetPreferredAvailabilityZone(const Aws::String& value) { m_preferredAvailabilityZoneHasBeenSet = true; m_preferredAvailabilityZone = value; }
299 
300     /**
301      * <p>The EC2 Availability Zone in which the cluster is created.</p> <p>All nodes
302      * belonging to this cluster are placed in the preferred Availability Zone. If you
303      * want to create your nodes across multiple Availability Zones, use
304      * <code>PreferredAvailabilityZones</code>.</p> <p>Default: System chosen
305      * Availability Zone.</p>
306      */
SetPreferredAvailabilityZone(Aws::String && value)307     inline void SetPreferredAvailabilityZone(Aws::String&& value) { m_preferredAvailabilityZoneHasBeenSet = true; m_preferredAvailabilityZone = std::move(value); }
308 
309     /**
310      * <p>The EC2 Availability Zone in which the cluster is created.</p> <p>All nodes
311      * belonging to this cluster are placed in the preferred Availability Zone. If you
312      * want to create your nodes across multiple Availability Zones, use
313      * <code>PreferredAvailabilityZones</code>.</p> <p>Default: System chosen
314      * Availability Zone.</p>
315      */
SetPreferredAvailabilityZone(const char * value)316     inline void SetPreferredAvailabilityZone(const char* value) { m_preferredAvailabilityZoneHasBeenSet = true; m_preferredAvailabilityZone.assign(value); }
317 
318     /**
319      * <p>The EC2 Availability Zone in which the cluster is created.</p> <p>All nodes
320      * belonging to this cluster are placed in the preferred Availability Zone. If you
321      * want to create your nodes across multiple Availability Zones, use
322      * <code>PreferredAvailabilityZones</code>.</p> <p>Default: System chosen
323      * Availability Zone.</p>
324      */
WithPreferredAvailabilityZone(const Aws::String & value)325     inline CreateCacheClusterRequest& WithPreferredAvailabilityZone(const Aws::String& value) { SetPreferredAvailabilityZone(value); return *this;}
326 
327     /**
328      * <p>The EC2 Availability Zone in which the cluster is created.</p> <p>All nodes
329      * belonging to this cluster are placed in the preferred Availability Zone. If you
330      * want to create your nodes across multiple Availability Zones, use
331      * <code>PreferredAvailabilityZones</code>.</p> <p>Default: System chosen
332      * Availability Zone.</p>
333      */
WithPreferredAvailabilityZone(Aws::String && value)334     inline CreateCacheClusterRequest& WithPreferredAvailabilityZone(Aws::String&& value) { SetPreferredAvailabilityZone(std::move(value)); return *this;}
335 
336     /**
337      * <p>The EC2 Availability Zone in which the cluster is created.</p> <p>All nodes
338      * belonging to this cluster are placed in the preferred Availability Zone. If you
339      * want to create your nodes across multiple Availability Zones, use
340      * <code>PreferredAvailabilityZones</code>.</p> <p>Default: System chosen
341      * Availability Zone.</p>
342      */
WithPreferredAvailabilityZone(const char * value)343     inline CreateCacheClusterRequest& WithPreferredAvailabilityZone(const char* value) { SetPreferredAvailabilityZone(value); return *this;}
344 
345 
346     /**
347      * <p>A list of the Availability Zones in which cache nodes are created. The order
348      * of the zones in the list is not important.</p> <p>This option is only supported
349      * on Memcached.</p>  <p>If you are creating your cluster in an Amazon VPC
350      * (recommended) you can only locate nodes in Availability Zones that are
351      * associated with the subnets in the selected subnet group.</p> <p>The number of
352      * Availability Zones listed must equal the value of
353      * <code>NumCacheNodes</code>.</p>  <p>If you want all the nodes in the same
354      * Availability Zone, use <code>PreferredAvailabilityZone</code> instead, or repeat
355      * the Availability Zone multiple times in the list.</p> <p>Default: System chosen
356      * Availability Zones.</p>
357      */
GetPreferredAvailabilityZones()358     inline const Aws::Vector<Aws::String>& GetPreferredAvailabilityZones() const{ return m_preferredAvailabilityZones; }
359 
360     /**
361      * <p>A list of the Availability Zones in which cache nodes are created. The order
362      * of the zones in the list is not important.</p> <p>This option is only supported
363      * on Memcached.</p>  <p>If you are creating your cluster in an Amazon VPC
364      * (recommended) you can only locate nodes in Availability Zones that are
365      * associated with the subnets in the selected subnet group.</p> <p>The number of
366      * Availability Zones listed must equal the value of
367      * <code>NumCacheNodes</code>.</p>  <p>If you want all the nodes in the same
368      * Availability Zone, use <code>PreferredAvailabilityZone</code> instead, or repeat
369      * the Availability Zone multiple times in the list.</p> <p>Default: System chosen
370      * Availability Zones.</p>
371      */
PreferredAvailabilityZonesHasBeenSet()372     inline bool PreferredAvailabilityZonesHasBeenSet() const { return m_preferredAvailabilityZonesHasBeenSet; }
373 
374     /**
375      * <p>A list of the Availability Zones in which cache nodes are created. The order
376      * of the zones in the list is not important.</p> <p>This option is only supported
377      * on Memcached.</p>  <p>If you are creating your cluster in an Amazon VPC
378      * (recommended) you can only locate nodes in Availability Zones that are
379      * associated with the subnets in the selected subnet group.</p> <p>The number of
380      * Availability Zones listed must equal the value of
381      * <code>NumCacheNodes</code>.</p>  <p>If you want all the nodes in the same
382      * Availability Zone, use <code>PreferredAvailabilityZone</code> instead, or repeat
383      * the Availability Zone multiple times in the list.</p> <p>Default: System chosen
384      * Availability Zones.</p>
385      */
SetPreferredAvailabilityZones(const Aws::Vector<Aws::String> & value)386     inline void SetPreferredAvailabilityZones(const Aws::Vector<Aws::String>& value) { m_preferredAvailabilityZonesHasBeenSet = true; m_preferredAvailabilityZones = value; }
387 
388     /**
389      * <p>A list of the Availability Zones in which cache nodes are created. The order
390      * of the zones in the list is not important.</p> <p>This option is only supported
391      * on Memcached.</p>  <p>If you are creating your cluster in an Amazon VPC
392      * (recommended) you can only locate nodes in Availability Zones that are
393      * associated with the subnets in the selected subnet group.</p> <p>The number of
394      * Availability Zones listed must equal the value of
395      * <code>NumCacheNodes</code>.</p>  <p>If you want all the nodes in the same
396      * Availability Zone, use <code>PreferredAvailabilityZone</code> instead, or repeat
397      * the Availability Zone multiple times in the list.</p> <p>Default: System chosen
398      * Availability Zones.</p>
399      */
SetPreferredAvailabilityZones(Aws::Vector<Aws::String> && value)400     inline void SetPreferredAvailabilityZones(Aws::Vector<Aws::String>&& value) { m_preferredAvailabilityZonesHasBeenSet = true; m_preferredAvailabilityZones = std::move(value); }
401 
402     /**
403      * <p>A list of the Availability Zones in which cache nodes are created. The order
404      * of the zones in the list is not important.</p> <p>This option is only supported
405      * on Memcached.</p>  <p>If you are creating your cluster in an Amazon VPC
406      * (recommended) you can only locate nodes in Availability Zones that are
407      * associated with the subnets in the selected subnet group.</p> <p>The number of
408      * Availability Zones listed must equal the value of
409      * <code>NumCacheNodes</code>.</p>  <p>If you want all the nodes in the same
410      * Availability Zone, use <code>PreferredAvailabilityZone</code> instead, or repeat
411      * the Availability Zone multiple times in the list.</p> <p>Default: System chosen
412      * Availability Zones.</p>
413      */
WithPreferredAvailabilityZones(const Aws::Vector<Aws::String> & value)414     inline CreateCacheClusterRequest& WithPreferredAvailabilityZones(const Aws::Vector<Aws::String>& value) { SetPreferredAvailabilityZones(value); return *this;}
415 
416     /**
417      * <p>A list of the Availability Zones in which cache nodes are created. The order
418      * of the zones in the list is not important.</p> <p>This option is only supported
419      * on Memcached.</p>  <p>If you are creating your cluster in an Amazon VPC
420      * (recommended) you can only locate nodes in Availability Zones that are
421      * associated with the subnets in the selected subnet group.</p> <p>The number of
422      * Availability Zones listed must equal the value of
423      * <code>NumCacheNodes</code>.</p>  <p>If you want all the nodes in the same
424      * Availability Zone, use <code>PreferredAvailabilityZone</code> instead, or repeat
425      * the Availability Zone multiple times in the list.</p> <p>Default: System chosen
426      * Availability Zones.</p>
427      */
WithPreferredAvailabilityZones(Aws::Vector<Aws::String> && value)428     inline CreateCacheClusterRequest& WithPreferredAvailabilityZones(Aws::Vector<Aws::String>&& value) { SetPreferredAvailabilityZones(std::move(value)); return *this;}
429 
430     /**
431      * <p>A list of the Availability Zones in which cache nodes are created. The order
432      * of the zones in the list is not important.</p> <p>This option is only supported
433      * on Memcached.</p>  <p>If you are creating your cluster in an Amazon VPC
434      * (recommended) you can only locate nodes in Availability Zones that are
435      * associated with the subnets in the selected subnet group.</p> <p>The number of
436      * Availability Zones listed must equal the value of
437      * <code>NumCacheNodes</code>.</p>  <p>If you want all the nodes in the same
438      * Availability Zone, use <code>PreferredAvailabilityZone</code> instead, or repeat
439      * the Availability Zone multiple times in the list.</p> <p>Default: System chosen
440      * Availability Zones.</p>
441      */
AddPreferredAvailabilityZones(const Aws::String & value)442     inline CreateCacheClusterRequest& AddPreferredAvailabilityZones(const Aws::String& value) { m_preferredAvailabilityZonesHasBeenSet = true; m_preferredAvailabilityZones.push_back(value); return *this; }
443 
444     /**
445      * <p>A list of the Availability Zones in which cache nodes are created. The order
446      * of the zones in the list is not important.</p> <p>This option is only supported
447      * on Memcached.</p>  <p>If you are creating your cluster in an Amazon VPC
448      * (recommended) you can only locate nodes in Availability Zones that are
449      * associated with the subnets in the selected subnet group.</p> <p>The number of
450      * Availability Zones listed must equal the value of
451      * <code>NumCacheNodes</code>.</p>  <p>If you want all the nodes in the same
452      * Availability Zone, use <code>PreferredAvailabilityZone</code> instead, or repeat
453      * the Availability Zone multiple times in the list.</p> <p>Default: System chosen
454      * Availability Zones.</p>
455      */
AddPreferredAvailabilityZones(Aws::String && value)456     inline CreateCacheClusterRequest& AddPreferredAvailabilityZones(Aws::String&& value) { m_preferredAvailabilityZonesHasBeenSet = true; m_preferredAvailabilityZones.push_back(std::move(value)); return *this; }
457 
458     /**
459      * <p>A list of the Availability Zones in which cache nodes are created. The order
460      * of the zones in the list is not important.</p> <p>This option is only supported
461      * on Memcached.</p>  <p>If you are creating your cluster in an Amazon VPC
462      * (recommended) you can only locate nodes in Availability Zones that are
463      * associated with the subnets in the selected subnet group.</p> <p>The number of
464      * Availability Zones listed must equal the value of
465      * <code>NumCacheNodes</code>.</p>  <p>If you want all the nodes in the same
466      * Availability Zone, use <code>PreferredAvailabilityZone</code> instead, or repeat
467      * the Availability Zone multiple times in the list.</p> <p>Default: System chosen
468      * Availability Zones.</p>
469      */
AddPreferredAvailabilityZones(const char * value)470     inline CreateCacheClusterRequest& AddPreferredAvailabilityZones(const char* value) { m_preferredAvailabilityZonesHasBeenSet = true; m_preferredAvailabilityZones.push_back(value); return *this; }
471 
472 
473     /**
474      * <p>The initial number of cache nodes that the cluster has.</p> <p>For clusters
475      * running Redis, this value must be 1. For clusters running Memcached, this value
476      * must be between 1 and 40.</p> <p>If you need more than 40 nodes for your
477      * Memcached cluster, please fill out the ElastiCache Limit Increase Request form
478      * at <a
479      * href="http://aws.amazon.com/contact-us/elasticache-node-limit-request/">http://aws.amazon.com/contact-us/elasticache-node-limit-request/</a>.</p>
480      */
GetNumCacheNodes()481     inline int GetNumCacheNodes() const{ return m_numCacheNodes; }
482 
483     /**
484      * <p>The initial number of cache nodes that the cluster has.</p> <p>For clusters
485      * running Redis, this value must be 1. For clusters running Memcached, this value
486      * must be between 1 and 40.</p> <p>If you need more than 40 nodes for your
487      * Memcached cluster, please fill out the ElastiCache Limit Increase Request form
488      * at <a
489      * href="http://aws.amazon.com/contact-us/elasticache-node-limit-request/">http://aws.amazon.com/contact-us/elasticache-node-limit-request/</a>.</p>
490      */
NumCacheNodesHasBeenSet()491     inline bool NumCacheNodesHasBeenSet() const { return m_numCacheNodesHasBeenSet; }
492 
493     /**
494      * <p>The initial number of cache nodes that the cluster has.</p> <p>For clusters
495      * running Redis, this value must be 1. For clusters running Memcached, this value
496      * must be between 1 and 40.</p> <p>If you need more than 40 nodes for your
497      * Memcached cluster, please fill out the ElastiCache Limit Increase Request form
498      * at <a
499      * href="http://aws.amazon.com/contact-us/elasticache-node-limit-request/">http://aws.amazon.com/contact-us/elasticache-node-limit-request/</a>.</p>
500      */
SetNumCacheNodes(int value)501     inline void SetNumCacheNodes(int value) { m_numCacheNodesHasBeenSet = true; m_numCacheNodes = value; }
502 
503     /**
504      * <p>The initial number of cache nodes that the cluster has.</p> <p>For clusters
505      * running Redis, this value must be 1. For clusters running Memcached, this value
506      * must be between 1 and 40.</p> <p>If you need more than 40 nodes for your
507      * Memcached cluster, please fill out the ElastiCache Limit Increase Request form
508      * at <a
509      * href="http://aws.amazon.com/contact-us/elasticache-node-limit-request/">http://aws.amazon.com/contact-us/elasticache-node-limit-request/</a>.</p>
510      */
WithNumCacheNodes(int value)511     inline CreateCacheClusterRequest& WithNumCacheNodes(int value) { SetNumCacheNodes(value); return *this;}
512 
513 
514     /**
515      * <p>The compute and memory capacity of the nodes in the node group (shard).</p>
516      * <p>The following node types are supported by ElastiCache. Generally speaking,
517      * the current generation types provide more memory and computational power at
518      * lower cost when compared to their equivalent previous generation
519      * counterparts.</p> <ul> <li> <p>General purpose:</p> <ul> <li> <p>Current
520      * generation: </p> <p> <b>M6g node types</b> (available only for Redis engine
521      * version 5.0.6 onward and for Memcached engine version 1.5.16 onward).</p> <p>
522      * <code>cache.m6g.large</code>, <code>cache.m6g.xlarge</code>,
523      * <code>cache.m6g.2xlarge</code>, <code>cache.m6g.4xlarge</code>,
524      * <code>cache.m6g.8xlarge</code>, <code>cache.m6g.12xlarge</code>,
525      * <code>cache.m6g.16xlarge</code> </p>  <p>For region availability, see <a
526      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported
527      * Node Types</a> </p>  <p> <b>M5 node types:</b>
528      * <code>cache.m5.large</code>, <code>cache.m5.xlarge</code>,
529      * <code>cache.m5.2xlarge</code>, <code>cache.m5.4xlarge</code>,
530      * <code>cache.m5.12xlarge</code>, <code>cache.m5.24xlarge</code> </p> <p> <b>M4
531      * node types:</b> <code>cache.m4.large</code>, <code>cache.m4.xlarge</code>,
532      * <code>cache.m4.2xlarge</code>, <code>cache.m4.4xlarge</code>,
533      * <code>cache.m4.10xlarge</code> </p> <p> <b>T3 node types:</b>
534      * <code>cache.t3.micro</code>, <code>cache.t3.small</code>,
535      * <code>cache.t3.medium</code> </p> <p> <b>T2 node types:</b>
536      * <code>cache.t2.micro</code>, <code>cache.t2.small</code>,
537      * <code>cache.t2.medium</code> </p> </li> <li> <p>Previous generation: (not
538      * recommended)</p> <p> <b>T1 node types:</b> <code>cache.t1.micro</code> </p> <p>
539      * <b>M1 node types:</b> <code>cache.m1.small</code>, <code>cache.m1.medium</code>,
540      * <code>cache.m1.large</code>, <code>cache.m1.xlarge</code> </p> <p> <b>M3 node
541      * types:</b> <code>cache.m3.medium</code>, <code>cache.m3.large</code>,
542      * <code>cache.m3.xlarge</code>, <code>cache.m3.2xlarge</code> </p> </li> </ul>
543      * </li> <li> <p>Compute optimized:</p> <ul> <li> <p>Previous generation: (not
544      * recommended)</p> <p> <b>C1 node types:</b> <code>cache.c1.xlarge</code> </p>
545      * </li> </ul> </li> <li> <p>Memory optimized:</p> <ul> <li> <p>Current generation:
546      * </p> <p> <b>R6g node types</b> (available only for Redis engine version 5.0.6
547      * onward and for Memcached engine version 1.5.16 onward).</p> <p>
548      * <code>cache.r6g.large</code>, <code>cache.r6g.xlarge</code>,
549      * <code>cache.r6g.2xlarge</code>, <code>cache.r6g.4xlarge</code>,
550      * <code>cache.r6g.8xlarge</code>, <code>cache.r6g.12xlarge</code>,
551      * <code>cache.r6g.16xlarge</code> </p>  <p>For region availability, see <a
552      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported
553      * Node Types</a> </p>  <p> <b>R5 node types:</b>
554      * <code>cache.r5.large</code>, <code>cache.r5.xlarge</code>,
555      * <code>cache.r5.2xlarge</code>, <code>cache.r5.4xlarge</code>,
556      * <code>cache.r5.12xlarge</code>, <code>cache.r5.24xlarge</code> </p> <p> <b>R4
557      * node types:</b> <code>cache.r4.large</code>, <code>cache.r4.xlarge</code>,
558      * <code>cache.r4.2xlarge</code>, <code>cache.r4.4xlarge</code>,
559      * <code>cache.r4.8xlarge</code>, <code>cache.r4.16xlarge</code> </p> </li> <li>
560      * <p>Previous generation: (not recommended)</p> <p> <b>M2 node types:</b>
561      * <code>cache.m2.xlarge</code>, <code>cache.m2.2xlarge</code>,
562      * <code>cache.m2.4xlarge</code> </p> <p> <b>R3 node types:</b>
563      * <code>cache.r3.large</code>, <code>cache.r3.xlarge</code>,
564      * <code>cache.r3.2xlarge</code>, <code>cache.r3.4xlarge</code>,
565      * <code>cache.r3.8xlarge</code> </p> </li> </ul> </li> </ul> <p> <b>Additional
566      * node type info</b> </p> <ul> <li> <p>All current generation instance types are
567      * created in Amazon VPC by default.</p> </li> <li> <p>Redis append-only files
568      * (AOF) are not supported for T1 or T2 instances.</p> </li> <li> <p>Redis Multi-AZ
569      * with automatic failover is not supported on T1 instances.</p> </li> <li>
570      * <p>Redis configuration variables <code>appendonly</code> and
571      * <code>appendfsync</code> are not supported on Redis version 2.8.22 and
572      * later.</p> </li> </ul>
573      */
GetCacheNodeType()574     inline const Aws::String& GetCacheNodeType() const{ return m_cacheNodeType; }
575 
576     /**
577      * <p>The compute and memory capacity of the nodes in the node group (shard).</p>
578      * <p>The following node types are supported by ElastiCache. Generally speaking,
579      * the current generation types provide more memory and computational power at
580      * lower cost when compared to their equivalent previous generation
581      * counterparts.</p> <ul> <li> <p>General purpose:</p> <ul> <li> <p>Current
582      * generation: </p> <p> <b>M6g node types</b> (available only for Redis engine
583      * version 5.0.6 onward and for Memcached engine version 1.5.16 onward).</p> <p>
584      * <code>cache.m6g.large</code>, <code>cache.m6g.xlarge</code>,
585      * <code>cache.m6g.2xlarge</code>, <code>cache.m6g.4xlarge</code>,
586      * <code>cache.m6g.8xlarge</code>, <code>cache.m6g.12xlarge</code>,
587      * <code>cache.m6g.16xlarge</code> </p>  <p>For region availability, see <a
588      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported
589      * Node Types</a> </p>  <p> <b>M5 node types:</b>
590      * <code>cache.m5.large</code>, <code>cache.m5.xlarge</code>,
591      * <code>cache.m5.2xlarge</code>, <code>cache.m5.4xlarge</code>,
592      * <code>cache.m5.12xlarge</code>, <code>cache.m5.24xlarge</code> </p> <p> <b>M4
593      * node types:</b> <code>cache.m4.large</code>, <code>cache.m4.xlarge</code>,
594      * <code>cache.m4.2xlarge</code>, <code>cache.m4.4xlarge</code>,
595      * <code>cache.m4.10xlarge</code> </p> <p> <b>T3 node types:</b>
596      * <code>cache.t3.micro</code>, <code>cache.t3.small</code>,
597      * <code>cache.t3.medium</code> </p> <p> <b>T2 node types:</b>
598      * <code>cache.t2.micro</code>, <code>cache.t2.small</code>,
599      * <code>cache.t2.medium</code> </p> </li> <li> <p>Previous generation: (not
600      * recommended)</p> <p> <b>T1 node types:</b> <code>cache.t1.micro</code> </p> <p>
601      * <b>M1 node types:</b> <code>cache.m1.small</code>, <code>cache.m1.medium</code>,
602      * <code>cache.m1.large</code>, <code>cache.m1.xlarge</code> </p> <p> <b>M3 node
603      * types:</b> <code>cache.m3.medium</code>, <code>cache.m3.large</code>,
604      * <code>cache.m3.xlarge</code>, <code>cache.m3.2xlarge</code> </p> </li> </ul>
605      * </li> <li> <p>Compute optimized:</p> <ul> <li> <p>Previous generation: (not
606      * recommended)</p> <p> <b>C1 node types:</b> <code>cache.c1.xlarge</code> </p>
607      * </li> </ul> </li> <li> <p>Memory optimized:</p> <ul> <li> <p>Current generation:
608      * </p> <p> <b>R6g node types</b> (available only for Redis engine version 5.0.6
609      * onward and for Memcached engine version 1.5.16 onward).</p> <p>
610      * <code>cache.r6g.large</code>, <code>cache.r6g.xlarge</code>,
611      * <code>cache.r6g.2xlarge</code>, <code>cache.r6g.4xlarge</code>,
612      * <code>cache.r6g.8xlarge</code>, <code>cache.r6g.12xlarge</code>,
613      * <code>cache.r6g.16xlarge</code> </p>  <p>For region availability, see <a
614      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported
615      * Node Types</a> </p>  <p> <b>R5 node types:</b>
616      * <code>cache.r5.large</code>, <code>cache.r5.xlarge</code>,
617      * <code>cache.r5.2xlarge</code>, <code>cache.r5.4xlarge</code>,
618      * <code>cache.r5.12xlarge</code>, <code>cache.r5.24xlarge</code> </p> <p> <b>R4
619      * node types:</b> <code>cache.r4.large</code>, <code>cache.r4.xlarge</code>,
620      * <code>cache.r4.2xlarge</code>, <code>cache.r4.4xlarge</code>,
621      * <code>cache.r4.8xlarge</code>, <code>cache.r4.16xlarge</code> </p> </li> <li>
622      * <p>Previous generation: (not recommended)</p> <p> <b>M2 node types:</b>
623      * <code>cache.m2.xlarge</code>, <code>cache.m2.2xlarge</code>,
624      * <code>cache.m2.4xlarge</code> </p> <p> <b>R3 node types:</b>
625      * <code>cache.r3.large</code>, <code>cache.r3.xlarge</code>,
626      * <code>cache.r3.2xlarge</code>, <code>cache.r3.4xlarge</code>,
627      * <code>cache.r3.8xlarge</code> </p> </li> </ul> </li> </ul> <p> <b>Additional
628      * node type info</b> </p> <ul> <li> <p>All current generation instance types are
629      * created in Amazon VPC by default.</p> </li> <li> <p>Redis append-only files
630      * (AOF) are not supported for T1 or T2 instances.</p> </li> <li> <p>Redis Multi-AZ
631      * with automatic failover is not supported on T1 instances.</p> </li> <li>
632      * <p>Redis configuration variables <code>appendonly</code> and
633      * <code>appendfsync</code> are not supported on Redis version 2.8.22 and
634      * later.</p> </li> </ul>
635      */
CacheNodeTypeHasBeenSet()636     inline bool CacheNodeTypeHasBeenSet() const { return m_cacheNodeTypeHasBeenSet; }
637 
638     /**
639      * <p>The compute and memory capacity of the nodes in the node group (shard).</p>
640      * <p>The following node types are supported by ElastiCache. Generally speaking,
641      * the current generation types provide more memory and computational power at
642      * lower cost when compared to their equivalent previous generation
643      * counterparts.</p> <ul> <li> <p>General purpose:</p> <ul> <li> <p>Current
644      * generation: </p> <p> <b>M6g node types</b> (available only for Redis engine
645      * version 5.0.6 onward and for Memcached engine version 1.5.16 onward).</p> <p>
646      * <code>cache.m6g.large</code>, <code>cache.m6g.xlarge</code>,
647      * <code>cache.m6g.2xlarge</code>, <code>cache.m6g.4xlarge</code>,
648      * <code>cache.m6g.8xlarge</code>, <code>cache.m6g.12xlarge</code>,
649      * <code>cache.m6g.16xlarge</code> </p>  <p>For region availability, see <a
650      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported
651      * Node Types</a> </p>  <p> <b>M5 node types:</b>
652      * <code>cache.m5.large</code>, <code>cache.m5.xlarge</code>,
653      * <code>cache.m5.2xlarge</code>, <code>cache.m5.4xlarge</code>,
654      * <code>cache.m5.12xlarge</code>, <code>cache.m5.24xlarge</code> </p> <p> <b>M4
655      * node types:</b> <code>cache.m4.large</code>, <code>cache.m4.xlarge</code>,
656      * <code>cache.m4.2xlarge</code>, <code>cache.m4.4xlarge</code>,
657      * <code>cache.m4.10xlarge</code> </p> <p> <b>T3 node types:</b>
658      * <code>cache.t3.micro</code>, <code>cache.t3.small</code>,
659      * <code>cache.t3.medium</code> </p> <p> <b>T2 node types:</b>
660      * <code>cache.t2.micro</code>, <code>cache.t2.small</code>,
661      * <code>cache.t2.medium</code> </p> </li> <li> <p>Previous generation: (not
662      * recommended)</p> <p> <b>T1 node types:</b> <code>cache.t1.micro</code> </p> <p>
663      * <b>M1 node types:</b> <code>cache.m1.small</code>, <code>cache.m1.medium</code>,
664      * <code>cache.m1.large</code>, <code>cache.m1.xlarge</code> </p> <p> <b>M3 node
665      * types:</b> <code>cache.m3.medium</code>, <code>cache.m3.large</code>,
666      * <code>cache.m3.xlarge</code>, <code>cache.m3.2xlarge</code> </p> </li> </ul>
667      * </li> <li> <p>Compute optimized:</p> <ul> <li> <p>Previous generation: (not
668      * recommended)</p> <p> <b>C1 node types:</b> <code>cache.c1.xlarge</code> </p>
669      * </li> </ul> </li> <li> <p>Memory optimized:</p> <ul> <li> <p>Current generation:
670      * </p> <p> <b>R6g node types</b> (available only for Redis engine version 5.0.6
671      * onward and for Memcached engine version 1.5.16 onward).</p> <p>
672      * <code>cache.r6g.large</code>, <code>cache.r6g.xlarge</code>,
673      * <code>cache.r6g.2xlarge</code>, <code>cache.r6g.4xlarge</code>,
674      * <code>cache.r6g.8xlarge</code>, <code>cache.r6g.12xlarge</code>,
675      * <code>cache.r6g.16xlarge</code> </p>  <p>For region availability, see <a
676      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported
677      * Node Types</a> </p>  <p> <b>R5 node types:</b>
678      * <code>cache.r5.large</code>, <code>cache.r5.xlarge</code>,
679      * <code>cache.r5.2xlarge</code>, <code>cache.r5.4xlarge</code>,
680      * <code>cache.r5.12xlarge</code>, <code>cache.r5.24xlarge</code> </p> <p> <b>R4
681      * node types:</b> <code>cache.r4.large</code>, <code>cache.r4.xlarge</code>,
682      * <code>cache.r4.2xlarge</code>, <code>cache.r4.4xlarge</code>,
683      * <code>cache.r4.8xlarge</code>, <code>cache.r4.16xlarge</code> </p> </li> <li>
684      * <p>Previous generation: (not recommended)</p> <p> <b>M2 node types:</b>
685      * <code>cache.m2.xlarge</code>, <code>cache.m2.2xlarge</code>,
686      * <code>cache.m2.4xlarge</code> </p> <p> <b>R3 node types:</b>
687      * <code>cache.r3.large</code>, <code>cache.r3.xlarge</code>,
688      * <code>cache.r3.2xlarge</code>, <code>cache.r3.4xlarge</code>,
689      * <code>cache.r3.8xlarge</code> </p> </li> </ul> </li> </ul> <p> <b>Additional
690      * node type info</b> </p> <ul> <li> <p>All current generation instance types are
691      * created in Amazon VPC by default.</p> </li> <li> <p>Redis append-only files
692      * (AOF) are not supported for T1 or T2 instances.</p> </li> <li> <p>Redis Multi-AZ
693      * with automatic failover is not supported on T1 instances.</p> </li> <li>
694      * <p>Redis configuration variables <code>appendonly</code> and
695      * <code>appendfsync</code> are not supported on Redis version 2.8.22 and
696      * later.</p> </li> </ul>
697      */
SetCacheNodeType(const Aws::String & value)698     inline void SetCacheNodeType(const Aws::String& value) { m_cacheNodeTypeHasBeenSet = true; m_cacheNodeType = value; }
699 
700     /**
701      * <p>The compute and memory capacity of the nodes in the node group (shard).</p>
702      * <p>The following node types are supported by ElastiCache. Generally speaking,
703      * the current generation types provide more memory and computational power at
704      * lower cost when compared to their equivalent previous generation
705      * counterparts.</p> <ul> <li> <p>General purpose:</p> <ul> <li> <p>Current
706      * generation: </p> <p> <b>M6g node types</b> (available only for Redis engine
707      * version 5.0.6 onward and for Memcached engine version 1.5.16 onward).</p> <p>
708      * <code>cache.m6g.large</code>, <code>cache.m6g.xlarge</code>,
709      * <code>cache.m6g.2xlarge</code>, <code>cache.m6g.4xlarge</code>,
710      * <code>cache.m6g.8xlarge</code>, <code>cache.m6g.12xlarge</code>,
711      * <code>cache.m6g.16xlarge</code> </p>  <p>For region availability, see <a
712      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported
713      * Node Types</a> </p>  <p> <b>M5 node types:</b>
714      * <code>cache.m5.large</code>, <code>cache.m5.xlarge</code>,
715      * <code>cache.m5.2xlarge</code>, <code>cache.m5.4xlarge</code>,
716      * <code>cache.m5.12xlarge</code>, <code>cache.m5.24xlarge</code> </p> <p> <b>M4
717      * node types:</b> <code>cache.m4.large</code>, <code>cache.m4.xlarge</code>,
718      * <code>cache.m4.2xlarge</code>, <code>cache.m4.4xlarge</code>,
719      * <code>cache.m4.10xlarge</code> </p> <p> <b>T3 node types:</b>
720      * <code>cache.t3.micro</code>, <code>cache.t3.small</code>,
721      * <code>cache.t3.medium</code> </p> <p> <b>T2 node types:</b>
722      * <code>cache.t2.micro</code>, <code>cache.t2.small</code>,
723      * <code>cache.t2.medium</code> </p> </li> <li> <p>Previous generation: (not
724      * recommended)</p> <p> <b>T1 node types:</b> <code>cache.t1.micro</code> </p> <p>
725      * <b>M1 node types:</b> <code>cache.m1.small</code>, <code>cache.m1.medium</code>,
726      * <code>cache.m1.large</code>, <code>cache.m1.xlarge</code> </p> <p> <b>M3 node
727      * types:</b> <code>cache.m3.medium</code>, <code>cache.m3.large</code>,
728      * <code>cache.m3.xlarge</code>, <code>cache.m3.2xlarge</code> </p> </li> </ul>
729      * </li> <li> <p>Compute optimized:</p> <ul> <li> <p>Previous generation: (not
730      * recommended)</p> <p> <b>C1 node types:</b> <code>cache.c1.xlarge</code> </p>
731      * </li> </ul> </li> <li> <p>Memory optimized:</p> <ul> <li> <p>Current generation:
732      * </p> <p> <b>R6g node types</b> (available only for Redis engine version 5.0.6
733      * onward and for Memcached engine version 1.5.16 onward).</p> <p>
734      * <code>cache.r6g.large</code>, <code>cache.r6g.xlarge</code>,
735      * <code>cache.r6g.2xlarge</code>, <code>cache.r6g.4xlarge</code>,
736      * <code>cache.r6g.8xlarge</code>, <code>cache.r6g.12xlarge</code>,
737      * <code>cache.r6g.16xlarge</code> </p>  <p>For region availability, see <a
738      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported
739      * Node Types</a> </p>  <p> <b>R5 node types:</b>
740      * <code>cache.r5.large</code>, <code>cache.r5.xlarge</code>,
741      * <code>cache.r5.2xlarge</code>, <code>cache.r5.4xlarge</code>,
742      * <code>cache.r5.12xlarge</code>, <code>cache.r5.24xlarge</code> </p> <p> <b>R4
743      * node types:</b> <code>cache.r4.large</code>, <code>cache.r4.xlarge</code>,
744      * <code>cache.r4.2xlarge</code>, <code>cache.r4.4xlarge</code>,
745      * <code>cache.r4.8xlarge</code>, <code>cache.r4.16xlarge</code> </p> </li> <li>
746      * <p>Previous generation: (not recommended)</p> <p> <b>M2 node types:</b>
747      * <code>cache.m2.xlarge</code>, <code>cache.m2.2xlarge</code>,
748      * <code>cache.m2.4xlarge</code> </p> <p> <b>R3 node types:</b>
749      * <code>cache.r3.large</code>, <code>cache.r3.xlarge</code>,
750      * <code>cache.r3.2xlarge</code>, <code>cache.r3.4xlarge</code>,
751      * <code>cache.r3.8xlarge</code> </p> </li> </ul> </li> </ul> <p> <b>Additional
752      * node type info</b> </p> <ul> <li> <p>All current generation instance types are
753      * created in Amazon VPC by default.</p> </li> <li> <p>Redis append-only files
754      * (AOF) are not supported for T1 or T2 instances.</p> </li> <li> <p>Redis Multi-AZ
755      * with automatic failover is not supported on T1 instances.</p> </li> <li>
756      * <p>Redis configuration variables <code>appendonly</code> and
757      * <code>appendfsync</code> are not supported on Redis version 2.8.22 and
758      * later.</p> </li> </ul>
759      */
SetCacheNodeType(Aws::String && value)760     inline void SetCacheNodeType(Aws::String&& value) { m_cacheNodeTypeHasBeenSet = true; m_cacheNodeType = std::move(value); }
761 
762     /**
763      * <p>The compute and memory capacity of the nodes in the node group (shard).</p>
764      * <p>The following node types are supported by ElastiCache. Generally speaking,
765      * the current generation types provide more memory and computational power at
766      * lower cost when compared to their equivalent previous generation
767      * counterparts.</p> <ul> <li> <p>General purpose:</p> <ul> <li> <p>Current
768      * generation: </p> <p> <b>M6g node types</b> (available only for Redis engine
769      * version 5.0.6 onward and for Memcached engine version 1.5.16 onward).</p> <p>
770      * <code>cache.m6g.large</code>, <code>cache.m6g.xlarge</code>,
771      * <code>cache.m6g.2xlarge</code>, <code>cache.m6g.4xlarge</code>,
772      * <code>cache.m6g.8xlarge</code>, <code>cache.m6g.12xlarge</code>,
773      * <code>cache.m6g.16xlarge</code> </p>  <p>For region availability, see <a
774      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported
775      * Node Types</a> </p>  <p> <b>M5 node types:</b>
776      * <code>cache.m5.large</code>, <code>cache.m5.xlarge</code>,
777      * <code>cache.m5.2xlarge</code>, <code>cache.m5.4xlarge</code>,
778      * <code>cache.m5.12xlarge</code>, <code>cache.m5.24xlarge</code> </p> <p> <b>M4
779      * node types:</b> <code>cache.m4.large</code>, <code>cache.m4.xlarge</code>,
780      * <code>cache.m4.2xlarge</code>, <code>cache.m4.4xlarge</code>,
781      * <code>cache.m4.10xlarge</code> </p> <p> <b>T3 node types:</b>
782      * <code>cache.t3.micro</code>, <code>cache.t3.small</code>,
783      * <code>cache.t3.medium</code> </p> <p> <b>T2 node types:</b>
784      * <code>cache.t2.micro</code>, <code>cache.t2.small</code>,
785      * <code>cache.t2.medium</code> </p> </li> <li> <p>Previous generation: (not
786      * recommended)</p> <p> <b>T1 node types:</b> <code>cache.t1.micro</code> </p> <p>
787      * <b>M1 node types:</b> <code>cache.m1.small</code>, <code>cache.m1.medium</code>,
788      * <code>cache.m1.large</code>, <code>cache.m1.xlarge</code> </p> <p> <b>M3 node
789      * types:</b> <code>cache.m3.medium</code>, <code>cache.m3.large</code>,
790      * <code>cache.m3.xlarge</code>, <code>cache.m3.2xlarge</code> </p> </li> </ul>
791      * </li> <li> <p>Compute optimized:</p> <ul> <li> <p>Previous generation: (not
792      * recommended)</p> <p> <b>C1 node types:</b> <code>cache.c1.xlarge</code> </p>
793      * </li> </ul> </li> <li> <p>Memory optimized:</p> <ul> <li> <p>Current generation:
794      * </p> <p> <b>R6g node types</b> (available only for Redis engine version 5.0.6
795      * onward and for Memcached engine version 1.5.16 onward).</p> <p>
796      * <code>cache.r6g.large</code>, <code>cache.r6g.xlarge</code>,
797      * <code>cache.r6g.2xlarge</code>, <code>cache.r6g.4xlarge</code>,
798      * <code>cache.r6g.8xlarge</code>, <code>cache.r6g.12xlarge</code>,
799      * <code>cache.r6g.16xlarge</code> </p>  <p>For region availability, see <a
800      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported
801      * Node Types</a> </p>  <p> <b>R5 node types:</b>
802      * <code>cache.r5.large</code>, <code>cache.r5.xlarge</code>,
803      * <code>cache.r5.2xlarge</code>, <code>cache.r5.4xlarge</code>,
804      * <code>cache.r5.12xlarge</code>, <code>cache.r5.24xlarge</code> </p> <p> <b>R4
805      * node types:</b> <code>cache.r4.large</code>, <code>cache.r4.xlarge</code>,
806      * <code>cache.r4.2xlarge</code>, <code>cache.r4.4xlarge</code>,
807      * <code>cache.r4.8xlarge</code>, <code>cache.r4.16xlarge</code> </p> </li> <li>
808      * <p>Previous generation: (not recommended)</p> <p> <b>M2 node types:</b>
809      * <code>cache.m2.xlarge</code>, <code>cache.m2.2xlarge</code>,
810      * <code>cache.m2.4xlarge</code> </p> <p> <b>R3 node types:</b>
811      * <code>cache.r3.large</code>, <code>cache.r3.xlarge</code>,
812      * <code>cache.r3.2xlarge</code>, <code>cache.r3.4xlarge</code>,
813      * <code>cache.r3.8xlarge</code> </p> </li> </ul> </li> </ul> <p> <b>Additional
814      * node type info</b> </p> <ul> <li> <p>All current generation instance types are
815      * created in Amazon VPC by default.</p> </li> <li> <p>Redis append-only files
816      * (AOF) are not supported for T1 or T2 instances.</p> </li> <li> <p>Redis Multi-AZ
817      * with automatic failover is not supported on T1 instances.</p> </li> <li>
818      * <p>Redis configuration variables <code>appendonly</code> and
819      * <code>appendfsync</code> are not supported on Redis version 2.8.22 and
820      * later.</p> </li> </ul>
821      */
SetCacheNodeType(const char * value)822     inline void SetCacheNodeType(const char* value) { m_cacheNodeTypeHasBeenSet = true; m_cacheNodeType.assign(value); }
823 
824     /**
825      * <p>The compute and memory capacity of the nodes in the node group (shard).</p>
826      * <p>The following node types are supported by ElastiCache. Generally speaking,
827      * the current generation types provide more memory and computational power at
828      * lower cost when compared to their equivalent previous generation
829      * counterparts.</p> <ul> <li> <p>General purpose:</p> <ul> <li> <p>Current
830      * generation: </p> <p> <b>M6g node types</b> (available only for Redis engine
831      * version 5.0.6 onward and for Memcached engine version 1.5.16 onward).</p> <p>
832      * <code>cache.m6g.large</code>, <code>cache.m6g.xlarge</code>,
833      * <code>cache.m6g.2xlarge</code>, <code>cache.m6g.4xlarge</code>,
834      * <code>cache.m6g.8xlarge</code>, <code>cache.m6g.12xlarge</code>,
835      * <code>cache.m6g.16xlarge</code> </p>  <p>For region availability, see <a
836      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported
837      * Node Types</a> </p>  <p> <b>M5 node types:</b>
838      * <code>cache.m5.large</code>, <code>cache.m5.xlarge</code>,
839      * <code>cache.m5.2xlarge</code>, <code>cache.m5.4xlarge</code>,
840      * <code>cache.m5.12xlarge</code>, <code>cache.m5.24xlarge</code> </p> <p> <b>M4
841      * node types:</b> <code>cache.m4.large</code>, <code>cache.m4.xlarge</code>,
842      * <code>cache.m4.2xlarge</code>, <code>cache.m4.4xlarge</code>,
843      * <code>cache.m4.10xlarge</code> </p> <p> <b>T3 node types:</b>
844      * <code>cache.t3.micro</code>, <code>cache.t3.small</code>,
845      * <code>cache.t3.medium</code> </p> <p> <b>T2 node types:</b>
846      * <code>cache.t2.micro</code>, <code>cache.t2.small</code>,
847      * <code>cache.t2.medium</code> </p> </li> <li> <p>Previous generation: (not
848      * recommended)</p> <p> <b>T1 node types:</b> <code>cache.t1.micro</code> </p> <p>
849      * <b>M1 node types:</b> <code>cache.m1.small</code>, <code>cache.m1.medium</code>,
850      * <code>cache.m1.large</code>, <code>cache.m1.xlarge</code> </p> <p> <b>M3 node
851      * types:</b> <code>cache.m3.medium</code>, <code>cache.m3.large</code>,
852      * <code>cache.m3.xlarge</code>, <code>cache.m3.2xlarge</code> </p> </li> </ul>
853      * </li> <li> <p>Compute optimized:</p> <ul> <li> <p>Previous generation: (not
854      * recommended)</p> <p> <b>C1 node types:</b> <code>cache.c1.xlarge</code> </p>
855      * </li> </ul> </li> <li> <p>Memory optimized:</p> <ul> <li> <p>Current generation:
856      * </p> <p> <b>R6g node types</b> (available only for Redis engine version 5.0.6
857      * onward and for Memcached engine version 1.5.16 onward).</p> <p>
858      * <code>cache.r6g.large</code>, <code>cache.r6g.xlarge</code>,
859      * <code>cache.r6g.2xlarge</code>, <code>cache.r6g.4xlarge</code>,
860      * <code>cache.r6g.8xlarge</code>, <code>cache.r6g.12xlarge</code>,
861      * <code>cache.r6g.16xlarge</code> </p>  <p>For region availability, see <a
862      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported
863      * Node Types</a> </p>  <p> <b>R5 node types:</b>
864      * <code>cache.r5.large</code>, <code>cache.r5.xlarge</code>,
865      * <code>cache.r5.2xlarge</code>, <code>cache.r5.4xlarge</code>,
866      * <code>cache.r5.12xlarge</code>, <code>cache.r5.24xlarge</code> </p> <p> <b>R4
867      * node types:</b> <code>cache.r4.large</code>, <code>cache.r4.xlarge</code>,
868      * <code>cache.r4.2xlarge</code>, <code>cache.r4.4xlarge</code>,
869      * <code>cache.r4.8xlarge</code>, <code>cache.r4.16xlarge</code> </p> </li> <li>
870      * <p>Previous generation: (not recommended)</p> <p> <b>M2 node types:</b>
871      * <code>cache.m2.xlarge</code>, <code>cache.m2.2xlarge</code>,
872      * <code>cache.m2.4xlarge</code> </p> <p> <b>R3 node types:</b>
873      * <code>cache.r3.large</code>, <code>cache.r3.xlarge</code>,
874      * <code>cache.r3.2xlarge</code>, <code>cache.r3.4xlarge</code>,
875      * <code>cache.r3.8xlarge</code> </p> </li> </ul> </li> </ul> <p> <b>Additional
876      * node type info</b> </p> <ul> <li> <p>All current generation instance types are
877      * created in Amazon VPC by default.</p> </li> <li> <p>Redis append-only files
878      * (AOF) are not supported for T1 or T2 instances.</p> </li> <li> <p>Redis Multi-AZ
879      * with automatic failover is not supported on T1 instances.</p> </li> <li>
880      * <p>Redis configuration variables <code>appendonly</code> and
881      * <code>appendfsync</code> are not supported on Redis version 2.8.22 and
882      * later.</p> </li> </ul>
883      */
WithCacheNodeType(const Aws::String & value)884     inline CreateCacheClusterRequest& WithCacheNodeType(const Aws::String& value) { SetCacheNodeType(value); return *this;}
885 
886     /**
887      * <p>The compute and memory capacity of the nodes in the node group (shard).</p>
888      * <p>The following node types are supported by ElastiCache. Generally speaking,
889      * the current generation types provide more memory and computational power at
890      * lower cost when compared to their equivalent previous generation
891      * counterparts.</p> <ul> <li> <p>General purpose:</p> <ul> <li> <p>Current
892      * generation: </p> <p> <b>M6g node types</b> (available only for Redis engine
893      * version 5.0.6 onward and for Memcached engine version 1.5.16 onward).</p> <p>
894      * <code>cache.m6g.large</code>, <code>cache.m6g.xlarge</code>,
895      * <code>cache.m6g.2xlarge</code>, <code>cache.m6g.4xlarge</code>,
896      * <code>cache.m6g.8xlarge</code>, <code>cache.m6g.12xlarge</code>,
897      * <code>cache.m6g.16xlarge</code> </p>  <p>For region availability, see <a
898      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported
899      * Node Types</a> </p>  <p> <b>M5 node types:</b>
900      * <code>cache.m5.large</code>, <code>cache.m5.xlarge</code>,
901      * <code>cache.m5.2xlarge</code>, <code>cache.m5.4xlarge</code>,
902      * <code>cache.m5.12xlarge</code>, <code>cache.m5.24xlarge</code> </p> <p> <b>M4
903      * node types:</b> <code>cache.m4.large</code>, <code>cache.m4.xlarge</code>,
904      * <code>cache.m4.2xlarge</code>, <code>cache.m4.4xlarge</code>,
905      * <code>cache.m4.10xlarge</code> </p> <p> <b>T3 node types:</b>
906      * <code>cache.t3.micro</code>, <code>cache.t3.small</code>,
907      * <code>cache.t3.medium</code> </p> <p> <b>T2 node types:</b>
908      * <code>cache.t2.micro</code>, <code>cache.t2.small</code>,
909      * <code>cache.t2.medium</code> </p> </li> <li> <p>Previous generation: (not
910      * recommended)</p> <p> <b>T1 node types:</b> <code>cache.t1.micro</code> </p> <p>
911      * <b>M1 node types:</b> <code>cache.m1.small</code>, <code>cache.m1.medium</code>,
912      * <code>cache.m1.large</code>, <code>cache.m1.xlarge</code> </p> <p> <b>M3 node
913      * types:</b> <code>cache.m3.medium</code>, <code>cache.m3.large</code>,
914      * <code>cache.m3.xlarge</code>, <code>cache.m3.2xlarge</code> </p> </li> </ul>
915      * </li> <li> <p>Compute optimized:</p> <ul> <li> <p>Previous generation: (not
916      * recommended)</p> <p> <b>C1 node types:</b> <code>cache.c1.xlarge</code> </p>
917      * </li> </ul> </li> <li> <p>Memory optimized:</p> <ul> <li> <p>Current generation:
918      * </p> <p> <b>R6g node types</b> (available only for Redis engine version 5.0.6
919      * onward and for Memcached engine version 1.5.16 onward).</p> <p>
920      * <code>cache.r6g.large</code>, <code>cache.r6g.xlarge</code>,
921      * <code>cache.r6g.2xlarge</code>, <code>cache.r6g.4xlarge</code>,
922      * <code>cache.r6g.8xlarge</code>, <code>cache.r6g.12xlarge</code>,
923      * <code>cache.r6g.16xlarge</code> </p>  <p>For region availability, see <a
924      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported
925      * Node Types</a> </p>  <p> <b>R5 node types:</b>
926      * <code>cache.r5.large</code>, <code>cache.r5.xlarge</code>,
927      * <code>cache.r5.2xlarge</code>, <code>cache.r5.4xlarge</code>,
928      * <code>cache.r5.12xlarge</code>, <code>cache.r5.24xlarge</code> </p> <p> <b>R4
929      * node types:</b> <code>cache.r4.large</code>, <code>cache.r4.xlarge</code>,
930      * <code>cache.r4.2xlarge</code>, <code>cache.r4.4xlarge</code>,
931      * <code>cache.r4.8xlarge</code>, <code>cache.r4.16xlarge</code> </p> </li> <li>
932      * <p>Previous generation: (not recommended)</p> <p> <b>M2 node types:</b>
933      * <code>cache.m2.xlarge</code>, <code>cache.m2.2xlarge</code>,
934      * <code>cache.m2.4xlarge</code> </p> <p> <b>R3 node types:</b>
935      * <code>cache.r3.large</code>, <code>cache.r3.xlarge</code>,
936      * <code>cache.r3.2xlarge</code>, <code>cache.r3.4xlarge</code>,
937      * <code>cache.r3.8xlarge</code> </p> </li> </ul> </li> </ul> <p> <b>Additional
938      * node type info</b> </p> <ul> <li> <p>All current generation instance types are
939      * created in Amazon VPC by default.</p> </li> <li> <p>Redis append-only files
940      * (AOF) are not supported for T1 or T2 instances.</p> </li> <li> <p>Redis Multi-AZ
941      * with automatic failover is not supported on T1 instances.</p> </li> <li>
942      * <p>Redis configuration variables <code>appendonly</code> and
943      * <code>appendfsync</code> are not supported on Redis version 2.8.22 and
944      * later.</p> </li> </ul>
945      */
WithCacheNodeType(Aws::String && value)946     inline CreateCacheClusterRequest& WithCacheNodeType(Aws::String&& value) { SetCacheNodeType(std::move(value)); return *this;}
947 
948     /**
949      * <p>The compute and memory capacity of the nodes in the node group (shard).</p>
950      * <p>The following node types are supported by ElastiCache. Generally speaking,
951      * the current generation types provide more memory and computational power at
952      * lower cost when compared to their equivalent previous generation
953      * counterparts.</p> <ul> <li> <p>General purpose:</p> <ul> <li> <p>Current
954      * generation: </p> <p> <b>M6g node types</b> (available only for Redis engine
955      * version 5.0.6 onward and for Memcached engine version 1.5.16 onward).</p> <p>
956      * <code>cache.m6g.large</code>, <code>cache.m6g.xlarge</code>,
957      * <code>cache.m6g.2xlarge</code>, <code>cache.m6g.4xlarge</code>,
958      * <code>cache.m6g.8xlarge</code>, <code>cache.m6g.12xlarge</code>,
959      * <code>cache.m6g.16xlarge</code> </p>  <p>For region availability, see <a
960      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported
961      * Node Types</a> </p>  <p> <b>M5 node types:</b>
962      * <code>cache.m5.large</code>, <code>cache.m5.xlarge</code>,
963      * <code>cache.m5.2xlarge</code>, <code>cache.m5.4xlarge</code>,
964      * <code>cache.m5.12xlarge</code>, <code>cache.m5.24xlarge</code> </p> <p> <b>M4
965      * node types:</b> <code>cache.m4.large</code>, <code>cache.m4.xlarge</code>,
966      * <code>cache.m4.2xlarge</code>, <code>cache.m4.4xlarge</code>,
967      * <code>cache.m4.10xlarge</code> </p> <p> <b>T3 node types:</b>
968      * <code>cache.t3.micro</code>, <code>cache.t3.small</code>,
969      * <code>cache.t3.medium</code> </p> <p> <b>T2 node types:</b>
970      * <code>cache.t2.micro</code>, <code>cache.t2.small</code>,
971      * <code>cache.t2.medium</code> </p> </li> <li> <p>Previous generation: (not
972      * recommended)</p> <p> <b>T1 node types:</b> <code>cache.t1.micro</code> </p> <p>
973      * <b>M1 node types:</b> <code>cache.m1.small</code>, <code>cache.m1.medium</code>,
974      * <code>cache.m1.large</code>, <code>cache.m1.xlarge</code> </p> <p> <b>M3 node
975      * types:</b> <code>cache.m3.medium</code>, <code>cache.m3.large</code>,
976      * <code>cache.m3.xlarge</code>, <code>cache.m3.2xlarge</code> </p> </li> </ul>
977      * </li> <li> <p>Compute optimized:</p> <ul> <li> <p>Previous generation: (not
978      * recommended)</p> <p> <b>C1 node types:</b> <code>cache.c1.xlarge</code> </p>
979      * </li> </ul> </li> <li> <p>Memory optimized:</p> <ul> <li> <p>Current generation:
980      * </p> <p> <b>R6g node types</b> (available only for Redis engine version 5.0.6
981      * onward and for Memcached engine version 1.5.16 onward).</p> <p>
982      * <code>cache.r6g.large</code>, <code>cache.r6g.xlarge</code>,
983      * <code>cache.r6g.2xlarge</code>, <code>cache.r6g.4xlarge</code>,
984      * <code>cache.r6g.8xlarge</code>, <code>cache.r6g.12xlarge</code>,
985      * <code>cache.r6g.16xlarge</code> </p>  <p>For region availability, see <a
986      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported
987      * Node Types</a> </p>  <p> <b>R5 node types:</b>
988      * <code>cache.r5.large</code>, <code>cache.r5.xlarge</code>,
989      * <code>cache.r5.2xlarge</code>, <code>cache.r5.4xlarge</code>,
990      * <code>cache.r5.12xlarge</code>, <code>cache.r5.24xlarge</code> </p> <p> <b>R4
991      * node types:</b> <code>cache.r4.large</code>, <code>cache.r4.xlarge</code>,
992      * <code>cache.r4.2xlarge</code>, <code>cache.r4.4xlarge</code>,
993      * <code>cache.r4.8xlarge</code>, <code>cache.r4.16xlarge</code> </p> </li> <li>
994      * <p>Previous generation: (not recommended)</p> <p> <b>M2 node types:</b>
995      * <code>cache.m2.xlarge</code>, <code>cache.m2.2xlarge</code>,
996      * <code>cache.m2.4xlarge</code> </p> <p> <b>R3 node types:</b>
997      * <code>cache.r3.large</code>, <code>cache.r3.xlarge</code>,
998      * <code>cache.r3.2xlarge</code>, <code>cache.r3.4xlarge</code>,
999      * <code>cache.r3.8xlarge</code> </p> </li> </ul> </li> </ul> <p> <b>Additional
1000      * node type info</b> </p> <ul> <li> <p>All current generation instance types are
1001      * created in Amazon VPC by default.</p> </li> <li> <p>Redis append-only files
1002      * (AOF) are not supported for T1 or T2 instances.</p> </li> <li> <p>Redis Multi-AZ
1003      * with automatic failover is not supported on T1 instances.</p> </li> <li>
1004      * <p>Redis configuration variables <code>appendonly</code> and
1005      * <code>appendfsync</code> are not supported on Redis version 2.8.22 and
1006      * later.</p> </li> </ul>
1007      */
WithCacheNodeType(const char * value)1008     inline CreateCacheClusterRequest& WithCacheNodeType(const char* value) { SetCacheNodeType(value); return *this;}
1009 
1010 
1011     /**
1012      * <p>The name of the cache engine to be used for this cluster.</p> <p>Valid values
1013      * for this parameter are: <code>memcached</code> | <code>redis</code> </p>
1014      */
GetEngine()1015     inline const Aws::String& GetEngine() const{ return m_engine; }
1016 
1017     /**
1018      * <p>The name of the cache engine to be used for this cluster.</p> <p>Valid values
1019      * for this parameter are: <code>memcached</code> | <code>redis</code> </p>
1020      */
EngineHasBeenSet()1021     inline bool EngineHasBeenSet() const { return m_engineHasBeenSet; }
1022 
1023     /**
1024      * <p>The name of the cache engine to be used for this cluster.</p> <p>Valid values
1025      * for this parameter are: <code>memcached</code> | <code>redis</code> </p>
1026      */
SetEngine(const Aws::String & value)1027     inline void SetEngine(const Aws::String& value) { m_engineHasBeenSet = true; m_engine = value; }
1028 
1029     /**
1030      * <p>The name of the cache engine to be used for this cluster.</p> <p>Valid values
1031      * for this parameter are: <code>memcached</code> | <code>redis</code> </p>
1032      */
SetEngine(Aws::String && value)1033     inline void SetEngine(Aws::String&& value) { m_engineHasBeenSet = true; m_engine = std::move(value); }
1034 
1035     /**
1036      * <p>The name of the cache engine to be used for this cluster.</p> <p>Valid values
1037      * for this parameter are: <code>memcached</code> | <code>redis</code> </p>
1038      */
SetEngine(const char * value)1039     inline void SetEngine(const char* value) { m_engineHasBeenSet = true; m_engine.assign(value); }
1040 
1041     /**
1042      * <p>The name of the cache engine to be used for this cluster.</p> <p>Valid values
1043      * for this parameter are: <code>memcached</code> | <code>redis</code> </p>
1044      */
WithEngine(const Aws::String & value)1045     inline CreateCacheClusterRequest& WithEngine(const Aws::String& value) { SetEngine(value); return *this;}
1046 
1047     /**
1048      * <p>The name of the cache engine to be used for this cluster.</p> <p>Valid values
1049      * for this parameter are: <code>memcached</code> | <code>redis</code> </p>
1050      */
WithEngine(Aws::String && value)1051     inline CreateCacheClusterRequest& WithEngine(Aws::String&& value) { SetEngine(std::move(value)); return *this;}
1052 
1053     /**
1054      * <p>The name of the cache engine to be used for this cluster.</p> <p>Valid values
1055      * for this parameter are: <code>memcached</code> | <code>redis</code> </p>
1056      */
WithEngine(const char * value)1057     inline CreateCacheClusterRequest& WithEngine(const char* value) { SetEngine(value); return *this;}
1058 
1059 
1060     /**
1061      * <p>The version number of the cache engine to be used for this cluster. To view
1062      * the supported cache engine versions, use the DescribeCacheEngineVersions
1063      * operation.</p> <p> <b>Important:</b> You can upgrade to a newer engine version
1064      * (see <a
1065      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SelectEngine.html#VersionManagement">Selecting
1066      * a Cache Engine and Version</a>), but you cannot downgrade to an earlier engine
1067      * version. If you want to use an earlier engine version, you must delete the
1068      * existing cluster or replication group and create it anew with the earlier engine
1069      * version. </p>
1070      */
GetEngineVersion()1071     inline const Aws::String& GetEngineVersion() const{ return m_engineVersion; }
1072 
1073     /**
1074      * <p>The version number of the cache engine to be used for this cluster. To view
1075      * the supported cache engine versions, use the DescribeCacheEngineVersions
1076      * operation.</p> <p> <b>Important:</b> You can upgrade to a newer engine version
1077      * (see <a
1078      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SelectEngine.html#VersionManagement">Selecting
1079      * a Cache Engine and Version</a>), but you cannot downgrade to an earlier engine
1080      * version. If you want to use an earlier engine version, you must delete the
1081      * existing cluster or replication group and create it anew with the earlier engine
1082      * version. </p>
1083      */
EngineVersionHasBeenSet()1084     inline bool EngineVersionHasBeenSet() const { return m_engineVersionHasBeenSet; }
1085 
1086     /**
1087      * <p>The version number of the cache engine to be used for this cluster. To view
1088      * the supported cache engine versions, use the DescribeCacheEngineVersions
1089      * operation.</p> <p> <b>Important:</b> You can upgrade to a newer engine version
1090      * (see <a
1091      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SelectEngine.html#VersionManagement">Selecting
1092      * a Cache Engine and Version</a>), but you cannot downgrade to an earlier engine
1093      * version. If you want to use an earlier engine version, you must delete the
1094      * existing cluster or replication group and create it anew with the earlier engine
1095      * version. </p>
1096      */
SetEngineVersion(const Aws::String & value)1097     inline void SetEngineVersion(const Aws::String& value) { m_engineVersionHasBeenSet = true; m_engineVersion = value; }
1098 
1099     /**
1100      * <p>The version number of the cache engine to be used for this cluster. To view
1101      * the supported cache engine versions, use the DescribeCacheEngineVersions
1102      * operation.</p> <p> <b>Important:</b> You can upgrade to a newer engine version
1103      * (see <a
1104      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SelectEngine.html#VersionManagement">Selecting
1105      * a Cache Engine and Version</a>), but you cannot downgrade to an earlier engine
1106      * version. If you want to use an earlier engine version, you must delete the
1107      * existing cluster or replication group and create it anew with the earlier engine
1108      * version. </p>
1109      */
SetEngineVersion(Aws::String && value)1110     inline void SetEngineVersion(Aws::String&& value) { m_engineVersionHasBeenSet = true; m_engineVersion = std::move(value); }
1111 
1112     /**
1113      * <p>The version number of the cache engine to be used for this cluster. To view
1114      * the supported cache engine versions, use the DescribeCacheEngineVersions
1115      * operation.</p> <p> <b>Important:</b> You can upgrade to a newer engine version
1116      * (see <a
1117      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SelectEngine.html#VersionManagement">Selecting
1118      * a Cache Engine and Version</a>), but you cannot downgrade to an earlier engine
1119      * version. If you want to use an earlier engine version, you must delete the
1120      * existing cluster or replication group and create it anew with the earlier engine
1121      * version. </p>
1122      */
SetEngineVersion(const char * value)1123     inline void SetEngineVersion(const char* value) { m_engineVersionHasBeenSet = true; m_engineVersion.assign(value); }
1124 
1125     /**
1126      * <p>The version number of the cache engine to be used for this cluster. To view
1127      * the supported cache engine versions, use the DescribeCacheEngineVersions
1128      * operation.</p> <p> <b>Important:</b> You can upgrade to a newer engine version
1129      * (see <a
1130      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SelectEngine.html#VersionManagement">Selecting
1131      * a Cache Engine and Version</a>), but you cannot downgrade to an earlier engine
1132      * version. If you want to use an earlier engine version, you must delete the
1133      * existing cluster or replication group and create it anew with the earlier engine
1134      * version. </p>
1135      */
WithEngineVersion(const Aws::String & value)1136     inline CreateCacheClusterRequest& WithEngineVersion(const Aws::String& value) { SetEngineVersion(value); return *this;}
1137 
1138     /**
1139      * <p>The version number of the cache engine to be used for this cluster. To view
1140      * the supported cache engine versions, use the DescribeCacheEngineVersions
1141      * operation.</p> <p> <b>Important:</b> You can upgrade to a newer engine version
1142      * (see <a
1143      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SelectEngine.html#VersionManagement">Selecting
1144      * a Cache Engine and Version</a>), but you cannot downgrade to an earlier engine
1145      * version. If you want to use an earlier engine version, you must delete the
1146      * existing cluster or replication group and create it anew with the earlier engine
1147      * version. </p>
1148      */
WithEngineVersion(Aws::String && value)1149     inline CreateCacheClusterRequest& WithEngineVersion(Aws::String&& value) { SetEngineVersion(std::move(value)); return *this;}
1150 
1151     /**
1152      * <p>The version number of the cache engine to be used for this cluster. To view
1153      * the supported cache engine versions, use the DescribeCacheEngineVersions
1154      * operation.</p> <p> <b>Important:</b> You can upgrade to a newer engine version
1155      * (see <a
1156      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SelectEngine.html#VersionManagement">Selecting
1157      * a Cache Engine and Version</a>), but you cannot downgrade to an earlier engine
1158      * version. If you want to use an earlier engine version, you must delete the
1159      * existing cluster or replication group and create it anew with the earlier engine
1160      * version. </p>
1161      */
WithEngineVersion(const char * value)1162     inline CreateCacheClusterRequest& WithEngineVersion(const char* value) { SetEngineVersion(value); return *this;}
1163 
1164 
1165     /**
1166      * <p>The name of the parameter group to associate with this cluster. If this
1167      * argument is omitted, the default parameter group for the specified engine is
1168      * used. You cannot use any parameter group which has
1169      * <code>cluster-enabled='yes'</code> when creating a cluster.</p>
1170      */
GetCacheParameterGroupName()1171     inline const Aws::String& GetCacheParameterGroupName() const{ return m_cacheParameterGroupName; }
1172 
1173     /**
1174      * <p>The name of the parameter group to associate with this cluster. If this
1175      * argument is omitted, the default parameter group for the specified engine is
1176      * used. You cannot use any parameter group which has
1177      * <code>cluster-enabled='yes'</code> when creating a cluster.</p>
1178      */
CacheParameterGroupNameHasBeenSet()1179     inline bool CacheParameterGroupNameHasBeenSet() const { return m_cacheParameterGroupNameHasBeenSet; }
1180 
1181     /**
1182      * <p>The name of the parameter group to associate with this cluster. If this
1183      * argument is omitted, the default parameter group for the specified engine is
1184      * used. You cannot use any parameter group which has
1185      * <code>cluster-enabled='yes'</code> when creating a cluster.</p>
1186      */
SetCacheParameterGroupName(const Aws::String & value)1187     inline void SetCacheParameterGroupName(const Aws::String& value) { m_cacheParameterGroupNameHasBeenSet = true; m_cacheParameterGroupName = value; }
1188 
1189     /**
1190      * <p>The name of the parameter group to associate with this cluster. If this
1191      * argument is omitted, the default parameter group for the specified engine is
1192      * used. You cannot use any parameter group which has
1193      * <code>cluster-enabled='yes'</code> when creating a cluster.</p>
1194      */
SetCacheParameterGroupName(Aws::String && value)1195     inline void SetCacheParameterGroupName(Aws::String&& value) { m_cacheParameterGroupNameHasBeenSet = true; m_cacheParameterGroupName = std::move(value); }
1196 
1197     /**
1198      * <p>The name of the parameter group to associate with this cluster. If this
1199      * argument is omitted, the default parameter group for the specified engine is
1200      * used. You cannot use any parameter group which has
1201      * <code>cluster-enabled='yes'</code> when creating a cluster.</p>
1202      */
SetCacheParameterGroupName(const char * value)1203     inline void SetCacheParameterGroupName(const char* value) { m_cacheParameterGroupNameHasBeenSet = true; m_cacheParameterGroupName.assign(value); }
1204 
1205     /**
1206      * <p>The name of the parameter group to associate with this cluster. If this
1207      * argument is omitted, the default parameter group for the specified engine is
1208      * used. You cannot use any parameter group which has
1209      * <code>cluster-enabled='yes'</code> when creating a cluster.</p>
1210      */
WithCacheParameterGroupName(const Aws::String & value)1211     inline CreateCacheClusterRequest& WithCacheParameterGroupName(const Aws::String& value) { SetCacheParameterGroupName(value); return *this;}
1212 
1213     /**
1214      * <p>The name of the parameter group to associate with this cluster. If this
1215      * argument is omitted, the default parameter group for the specified engine is
1216      * used. You cannot use any parameter group which has
1217      * <code>cluster-enabled='yes'</code> when creating a cluster.</p>
1218      */
WithCacheParameterGroupName(Aws::String && value)1219     inline CreateCacheClusterRequest& WithCacheParameterGroupName(Aws::String&& value) { SetCacheParameterGroupName(std::move(value)); return *this;}
1220 
1221     /**
1222      * <p>The name of the parameter group to associate with this cluster. If this
1223      * argument is omitted, the default parameter group for the specified engine is
1224      * used. You cannot use any parameter group which has
1225      * <code>cluster-enabled='yes'</code> when creating a cluster.</p>
1226      */
WithCacheParameterGroupName(const char * value)1227     inline CreateCacheClusterRequest& WithCacheParameterGroupName(const char* value) { SetCacheParameterGroupName(value); return *this;}
1228 
1229 
1230     /**
1231      * <p>The name of the subnet group to be used for the cluster.</p> <p>Use this
1232      * parameter only when you are creating a cluster in an Amazon Virtual Private
1233      * Cloud (Amazon VPC).</p>  <p>If you're going to launch your cluster in
1234      * an Amazon VPC, you need to create a subnet group before you start creating a
1235      * cluster. For more information, see <a
1236      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SubnetGroups.html">Subnets
1237      * and Subnet Groups</a>.</p>
1238      */
GetCacheSubnetGroupName()1239     inline const Aws::String& GetCacheSubnetGroupName() const{ return m_cacheSubnetGroupName; }
1240 
1241     /**
1242      * <p>The name of the subnet group to be used for the cluster.</p> <p>Use this
1243      * parameter only when you are creating a cluster in an Amazon Virtual Private
1244      * Cloud (Amazon VPC).</p>  <p>If you're going to launch your cluster in
1245      * an Amazon VPC, you need to create a subnet group before you start creating a
1246      * cluster. For more information, see <a
1247      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SubnetGroups.html">Subnets
1248      * and Subnet Groups</a>.</p>
1249      */
CacheSubnetGroupNameHasBeenSet()1250     inline bool CacheSubnetGroupNameHasBeenSet() const { return m_cacheSubnetGroupNameHasBeenSet; }
1251 
1252     /**
1253      * <p>The name of the subnet group to be used for the cluster.</p> <p>Use this
1254      * parameter only when you are creating a cluster in an Amazon Virtual Private
1255      * Cloud (Amazon VPC).</p>  <p>If you're going to launch your cluster in
1256      * an Amazon VPC, you need to create a subnet group before you start creating a
1257      * cluster. For more information, see <a
1258      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SubnetGroups.html">Subnets
1259      * and Subnet Groups</a>.</p>
1260      */
SetCacheSubnetGroupName(const Aws::String & value)1261     inline void SetCacheSubnetGroupName(const Aws::String& value) { m_cacheSubnetGroupNameHasBeenSet = true; m_cacheSubnetGroupName = value; }
1262 
1263     /**
1264      * <p>The name of the subnet group to be used for the cluster.</p> <p>Use this
1265      * parameter only when you are creating a cluster in an Amazon Virtual Private
1266      * Cloud (Amazon VPC).</p>  <p>If you're going to launch your cluster in
1267      * an Amazon VPC, you need to create a subnet group before you start creating a
1268      * cluster. For more information, see <a
1269      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SubnetGroups.html">Subnets
1270      * and Subnet Groups</a>.</p>
1271      */
SetCacheSubnetGroupName(Aws::String && value)1272     inline void SetCacheSubnetGroupName(Aws::String&& value) { m_cacheSubnetGroupNameHasBeenSet = true; m_cacheSubnetGroupName = std::move(value); }
1273 
1274     /**
1275      * <p>The name of the subnet group to be used for the cluster.</p> <p>Use this
1276      * parameter only when you are creating a cluster in an Amazon Virtual Private
1277      * Cloud (Amazon VPC).</p>  <p>If you're going to launch your cluster in
1278      * an Amazon VPC, you need to create a subnet group before you start creating a
1279      * cluster. For more information, see <a
1280      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SubnetGroups.html">Subnets
1281      * and Subnet Groups</a>.</p>
1282      */
SetCacheSubnetGroupName(const char * value)1283     inline void SetCacheSubnetGroupName(const char* value) { m_cacheSubnetGroupNameHasBeenSet = true; m_cacheSubnetGroupName.assign(value); }
1284 
1285     /**
1286      * <p>The name of the subnet group to be used for the cluster.</p> <p>Use this
1287      * parameter only when you are creating a cluster in an Amazon Virtual Private
1288      * Cloud (Amazon VPC).</p>  <p>If you're going to launch your cluster in
1289      * an Amazon VPC, you need to create a subnet group before you start creating a
1290      * cluster. For more information, see <a
1291      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SubnetGroups.html">Subnets
1292      * and Subnet Groups</a>.</p>
1293      */
WithCacheSubnetGroupName(const Aws::String & value)1294     inline CreateCacheClusterRequest& WithCacheSubnetGroupName(const Aws::String& value) { SetCacheSubnetGroupName(value); return *this;}
1295 
1296     /**
1297      * <p>The name of the subnet group to be used for the cluster.</p> <p>Use this
1298      * parameter only when you are creating a cluster in an Amazon Virtual Private
1299      * Cloud (Amazon VPC).</p>  <p>If you're going to launch your cluster in
1300      * an Amazon VPC, you need to create a subnet group before you start creating a
1301      * cluster. For more information, see <a
1302      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SubnetGroups.html">Subnets
1303      * and Subnet Groups</a>.</p>
1304      */
WithCacheSubnetGroupName(Aws::String && value)1305     inline CreateCacheClusterRequest& WithCacheSubnetGroupName(Aws::String&& value) { SetCacheSubnetGroupName(std::move(value)); return *this;}
1306 
1307     /**
1308      * <p>The name of the subnet group to be used for the cluster.</p> <p>Use this
1309      * parameter only when you are creating a cluster in an Amazon Virtual Private
1310      * Cloud (Amazon VPC).</p>  <p>If you're going to launch your cluster in
1311      * an Amazon VPC, you need to create a subnet group before you start creating a
1312      * cluster. For more information, see <a
1313      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SubnetGroups.html">Subnets
1314      * and Subnet Groups</a>.</p>
1315      */
WithCacheSubnetGroupName(const char * value)1316     inline CreateCacheClusterRequest& WithCacheSubnetGroupName(const char* value) { SetCacheSubnetGroupName(value); return *this;}
1317 
1318 
1319     /**
1320      * <p>A list of security group names to associate with this cluster.</p> <p>Use
1321      * this parameter only when you are creating a cluster outside of an Amazon Virtual
1322      * Private Cloud (Amazon VPC).</p>
1323      */
GetCacheSecurityGroupNames()1324     inline const Aws::Vector<Aws::String>& GetCacheSecurityGroupNames() const{ return m_cacheSecurityGroupNames; }
1325 
1326     /**
1327      * <p>A list of security group names to associate with this cluster.</p> <p>Use
1328      * this parameter only when you are creating a cluster outside of an Amazon Virtual
1329      * Private Cloud (Amazon VPC).</p>
1330      */
CacheSecurityGroupNamesHasBeenSet()1331     inline bool CacheSecurityGroupNamesHasBeenSet() const { return m_cacheSecurityGroupNamesHasBeenSet; }
1332 
1333     /**
1334      * <p>A list of security group names to associate with this cluster.</p> <p>Use
1335      * this parameter only when you are creating a cluster outside of an Amazon Virtual
1336      * Private Cloud (Amazon VPC).</p>
1337      */
SetCacheSecurityGroupNames(const Aws::Vector<Aws::String> & value)1338     inline void SetCacheSecurityGroupNames(const Aws::Vector<Aws::String>& value) { m_cacheSecurityGroupNamesHasBeenSet = true; m_cacheSecurityGroupNames = value; }
1339 
1340     /**
1341      * <p>A list of security group names to associate with this cluster.</p> <p>Use
1342      * this parameter only when you are creating a cluster outside of an Amazon Virtual
1343      * Private Cloud (Amazon VPC).</p>
1344      */
SetCacheSecurityGroupNames(Aws::Vector<Aws::String> && value)1345     inline void SetCacheSecurityGroupNames(Aws::Vector<Aws::String>&& value) { m_cacheSecurityGroupNamesHasBeenSet = true; m_cacheSecurityGroupNames = std::move(value); }
1346 
1347     /**
1348      * <p>A list of security group names to associate with this cluster.</p> <p>Use
1349      * this parameter only when you are creating a cluster outside of an Amazon Virtual
1350      * Private Cloud (Amazon VPC).</p>
1351      */
WithCacheSecurityGroupNames(const Aws::Vector<Aws::String> & value)1352     inline CreateCacheClusterRequest& WithCacheSecurityGroupNames(const Aws::Vector<Aws::String>& value) { SetCacheSecurityGroupNames(value); return *this;}
1353 
1354     /**
1355      * <p>A list of security group names to associate with this cluster.</p> <p>Use
1356      * this parameter only when you are creating a cluster outside of an Amazon Virtual
1357      * Private Cloud (Amazon VPC).</p>
1358      */
WithCacheSecurityGroupNames(Aws::Vector<Aws::String> && value)1359     inline CreateCacheClusterRequest& WithCacheSecurityGroupNames(Aws::Vector<Aws::String>&& value) { SetCacheSecurityGroupNames(std::move(value)); return *this;}
1360 
1361     /**
1362      * <p>A list of security group names to associate with this cluster.</p> <p>Use
1363      * this parameter only when you are creating a cluster outside of an Amazon Virtual
1364      * Private Cloud (Amazon VPC).</p>
1365      */
AddCacheSecurityGroupNames(const Aws::String & value)1366     inline CreateCacheClusterRequest& AddCacheSecurityGroupNames(const Aws::String& value) { m_cacheSecurityGroupNamesHasBeenSet = true; m_cacheSecurityGroupNames.push_back(value); return *this; }
1367 
1368     /**
1369      * <p>A list of security group names to associate with this cluster.</p> <p>Use
1370      * this parameter only when you are creating a cluster outside of an Amazon Virtual
1371      * Private Cloud (Amazon VPC).</p>
1372      */
AddCacheSecurityGroupNames(Aws::String && value)1373     inline CreateCacheClusterRequest& AddCacheSecurityGroupNames(Aws::String&& value) { m_cacheSecurityGroupNamesHasBeenSet = true; m_cacheSecurityGroupNames.push_back(std::move(value)); return *this; }
1374 
1375     /**
1376      * <p>A list of security group names to associate with this cluster.</p> <p>Use
1377      * this parameter only when you are creating a cluster outside of an Amazon Virtual
1378      * Private Cloud (Amazon VPC).</p>
1379      */
AddCacheSecurityGroupNames(const char * value)1380     inline CreateCacheClusterRequest& AddCacheSecurityGroupNames(const char* value) { m_cacheSecurityGroupNamesHasBeenSet = true; m_cacheSecurityGroupNames.push_back(value); return *this; }
1381 
1382 
1383     /**
1384      * <p>One or more VPC security groups associated with the cluster.</p> <p>Use this
1385      * parameter only when you are creating a cluster in an Amazon Virtual Private
1386      * Cloud (Amazon VPC).</p>
1387      */
GetSecurityGroupIds()1388     inline const Aws::Vector<Aws::String>& GetSecurityGroupIds() const{ return m_securityGroupIds; }
1389 
1390     /**
1391      * <p>One or more VPC security groups associated with the cluster.</p> <p>Use this
1392      * parameter only when you are creating a cluster in an Amazon Virtual Private
1393      * Cloud (Amazon VPC).</p>
1394      */
SecurityGroupIdsHasBeenSet()1395     inline bool SecurityGroupIdsHasBeenSet() const { return m_securityGroupIdsHasBeenSet; }
1396 
1397     /**
1398      * <p>One or more VPC security groups associated with the cluster.</p> <p>Use this
1399      * parameter only when you are creating a cluster in an Amazon Virtual Private
1400      * Cloud (Amazon VPC).</p>
1401      */
SetSecurityGroupIds(const Aws::Vector<Aws::String> & value)1402     inline void SetSecurityGroupIds(const Aws::Vector<Aws::String>& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds = value; }
1403 
1404     /**
1405      * <p>One or more VPC security groups associated with the cluster.</p> <p>Use this
1406      * parameter only when you are creating a cluster in an Amazon Virtual Private
1407      * Cloud (Amazon VPC).</p>
1408      */
SetSecurityGroupIds(Aws::Vector<Aws::String> && value)1409     inline void SetSecurityGroupIds(Aws::Vector<Aws::String>&& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds = std::move(value); }
1410 
1411     /**
1412      * <p>One or more VPC security groups associated with the cluster.</p> <p>Use this
1413      * parameter only when you are creating a cluster in an Amazon Virtual Private
1414      * Cloud (Amazon VPC).</p>
1415      */
WithSecurityGroupIds(const Aws::Vector<Aws::String> & value)1416     inline CreateCacheClusterRequest& WithSecurityGroupIds(const Aws::Vector<Aws::String>& value) { SetSecurityGroupIds(value); return *this;}
1417 
1418     /**
1419      * <p>One or more VPC security groups associated with the cluster.</p> <p>Use this
1420      * parameter only when you are creating a cluster in an Amazon Virtual Private
1421      * Cloud (Amazon VPC).</p>
1422      */
WithSecurityGroupIds(Aws::Vector<Aws::String> && value)1423     inline CreateCacheClusterRequest& WithSecurityGroupIds(Aws::Vector<Aws::String>&& value) { SetSecurityGroupIds(std::move(value)); return *this;}
1424 
1425     /**
1426      * <p>One or more VPC security groups associated with the cluster.</p> <p>Use this
1427      * parameter only when you are creating a cluster in an Amazon Virtual Private
1428      * Cloud (Amazon VPC).</p>
1429      */
AddSecurityGroupIds(const Aws::String & value)1430     inline CreateCacheClusterRequest& AddSecurityGroupIds(const Aws::String& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(value); return *this; }
1431 
1432     /**
1433      * <p>One or more VPC security groups associated with the cluster.</p> <p>Use this
1434      * parameter only when you are creating a cluster in an Amazon Virtual Private
1435      * Cloud (Amazon VPC).</p>
1436      */
AddSecurityGroupIds(Aws::String && value)1437     inline CreateCacheClusterRequest& AddSecurityGroupIds(Aws::String&& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(std::move(value)); return *this; }
1438 
1439     /**
1440      * <p>One or more VPC security groups associated with the cluster.</p> <p>Use this
1441      * parameter only when you are creating a cluster in an Amazon Virtual Private
1442      * Cloud (Amazon VPC).</p>
1443      */
AddSecurityGroupIds(const char * value)1444     inline CreateCacheClusterRequest& AddSecurityGroupIds(const char* value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(value); return *this; }
1445 
1446 
1447     /**
1448      * <p>A list of tags to be added to this resource.</p>
1449      */
GetTags()1450     inline const Aws::Vector<Tag>& GetTags() const{ return m_tags; }
1451 
1452     /**
1453      * <p>A list of tags to be added to this resource.</p>
1454      */
TagsHasBeenSet()1455     inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
1456 
1457     /**
1458      * <p>A list of tags to be added to this resource.</p>
1459      */
SetTags(const Aws::Vector<Tag> & value)1460     inline void SetTags(const Aws::Vector<Tag>& value) { m_tagsHasBeenSet = true; m_tags = value; }
1461 
1462     /**
1463      * <p>A list of tags to be added to this resource.</p>
1464      */
SetTags(Aws::Vector<Tag> && value)1465     inline void SetTags(Aws::Vector<Tag>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); }
1466 
1467     /**
1468      * <p>A list of tags to be added to this resource.</p>
1469      */
WithTags(const Aws::Vector<Tag> & value)1470     inline CreateCacheClusterRequest& WithTags(const Aws::Vector<Tag>& value) { SetTags(value); return *this;}
1471 
1472     /**
1473      * <p>A list of tags to be added to this resource.</p>
1474      */
WithTags(Aws::Vector<Tag> && value)1475     inline CreateCacheClusterRequest& WithTags(Aws::Vector<Tag>&& value) { SetTags(std::move(value)); return *this;}
1476 
1477     /**
1478      * <p>A list of tags to be added to this resource.</p>
1479      */
AddTags(const Tag & value)1480     inline CreateCacheClusterRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; }
1481 
1482     /**
1483      * <p>A list of tags to be added to this resource.</p>
1484      */
AddTags(Tag && value)1485     inline CreateCacheClusterRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; }
1486 
1487 
1488     /**
1489      * <p>A single-element string list containing an Amazon Resource Name (ARN) that
1490      * uniquely identifies a Redis RDB snapshot file stored in Amazon S3. The snapshot
1491      * file is used to populate the node group (shard). The Amazon S3 object name in
1492      * the ARN cannot contain any commas.</p>  <p>This parameter is only valid if
1493      * the <code>Engine</code> parameter is <code>redis</code>.</p>  <p>Example
1494      * of an Amazon S3 ARN: <code>arn:aws:s3:::my_bucket/snapshot1.rdb</code> </p>
1495      */
GetSnapshotArns()1496     inline const Aws::Vector<Aws::String>& GetSnapshotArns() const{ return m_snapshotArns; }
1497 
1498     /**
1499      * <p>A single-element string list containing an Amazon Resource Name (ARN) that
1500      * uniquely identifies a Redis RDB snapshot file stored in Amazon S3. The snapshot
1501      * file is used to populate the node group (shard). The Amazon S3 object name in
1502      * the ARN cannot contain any commas.</p>  <p>This parameter is only valid if
1503      * the <code>Engine</code> parameter is <code>redis</code>.</p>  <p>Example
1504      * of an Amazon S3 ARN: <code>arn:aws:s3:::my_bucket/snapshot1.rdb</code> </p>
1505      */
SnapshotArnsHasBeenSet()1506     inline bool SnapshotArnsHasBeenSet() const { return m_snapshotArnsHasBeenSet; }
1507 
1508     /**
1509      * <p>A single-element string list containing an Amazon Resource Name (ARN) that
1510      * uniquely identifies a Redis RDB snapshot file stored in Amazon S3. The snapshot
1511      * file is used to populate the node group (shard). The Amazon S3 object name in
1512      * the ARN cannot contain any commas.</p>  <p>This parameter is only valid if
1513      * the <code>Engine</code> parameter is <code>redis</code>.</p>  <p>Example
1514      * of an Amazon S3 ARN: <code>arn:aws:s3:::my_bucket/snapshot1.rdb</code> </p>
1515      */
SetSnapshotArns(const Aws::Vector<Aws::String> & value)1516     inline void SetSnapshotArns(const Aws::Vector<Aws::String>& value) { m_snapshotArnsHasBeenSet = true; m_snapshotArns = value; }
1517 
1518     /**
1519      * <p>A single-element string list containing an Amazon Resource Name (ARN) that
1520      * uniquely identifies a Redis RDB snapshot file stored in Amazon S3. The snapshot
1521      * file is used to populate the node group (shard). The Amazon S3 object name in
1522      * the ARN cannot contain any commas.</p>  <p>This parameter is only valid if
1523      * the <code>Engine</code> parameter is <code>redis</code>.</p>  <p>Example
1524      * of an Amazon S3 ARN: <code>arn:aws:s3:::my_bucket/snapshot1.rdb</code> </p>
1525      */
SetSnapshotArns(Aws::Vector<Aws::String> && value)1526     inline void SetSnapshotArns(Aws::Vector<Aws::String>&& value) { m_snapshotArnsHasBeenSet = true; m_snapshotArns = std::move(value); }
1527 
1528     /**
1529      * <p>A single-element string list containing an Amazon Resource Name (ARN) that
1530      * uniquely identifies a Redis RDB snapshot file stored in Amazon S3. The snapshot
1531      * file is used to populate the node group (shard). The Amazon S3 object name in
1532      * the ARN cannot contain any commas.</p>  <p>This parameter is only valid if
1533      * the <code>Engine</code> parameter is <code>redis</code>.</p>  <p>Example
1534      * of an Amazon S3 ARN: <code>arn:aws:s3:::my_bucket/snapshot1.rdb</code> </p>
1535      */
WithSnapshotArns(const Aws::Vector<Aws::String> & value)1536     inline CreateCacheClusterRequest& WithSnapshotArns(const Aws::Vector<Aws::String>& value) { SetSnapshotArns(value); return *this;}
1537 
1538     /**
1539      * <p>A single-element string list containing an Amazon Resource Name (ARN) that
1540      * uniquely identifies a Redis RDB snapshot file stored in Amazon S3. The snapshot
1541      * file is used to populate the node group (shard). The Amazon S3 object name in
1542      * the ARN cannot contain any commas.</p>  <p>This parameter is only valid if
1543      * the <code>Engine</code> parameter is <code>redis</code>.</p>  <p>Example
1544      * of an Amazon S3 ARN: <code>arn:aws:s3:::my_bucket/snapshot1.rdb</code> </p>
1545      */
WithSnapshotArns(Aws::Vector<Aws::String> && value)1546     inline CreateCacheClusterRequest& WithSnapshotArns(Aws::Vector<Aws::String>&& value) { SetSnapshotArns(std::move(value)); return *this;}
1547 
1548     /**
1549      * <p>A single-element string list containing an Amazon Resource Name (ARN) that
1550      * uniquely identifies a Redis RDB snapshot file stored in Amazon S3. The snapshot
1551      * file is used to populate the node group (shard). The Amazon S3 object name in
1552      * the ARN cannot contain any commas.</p>  <p>This parameter is only valid if
1553      * the <code>Engine</code> parameter is <code>redis</code>.</p>  <p>Example
1554      * of an Amazon S3 ARN: <code>arn:aws:s3:::my_bucket/snapshot1.rdb</code> </p>
1555      */
AddSnapshotArns(const Aws::String & value)1556     inline CreateCacheClusterRequest& AddSnapshotArns(const Aws::String& value) { m_snapshotArnsHasBeenSet = true; m_snapshotArns.push_back(value); return *this; }
1557 
1558     /**
1559      * <p>A single-element string list containing an Amazon Resource Name (ARN) that
1560      * uniquely identifies a Redis RDB snapshot file stored in Amazon S3. The snapshot
1561      * file is used to populate the node group (shard). The Amazon S3 object name in
1562      * the ARN cannot contain any commas.</p>  <p>This parameter is only valid if
1563      * the <code>Engine</code> parameter is <code>redis</code>.</p>  <p>Example
1564      * of an Amazon S3 ARN: <code>arn:aws:s3:::my_bucket/snapshot1.rdb</code> </p>
1565      */
AddSnapshotArns(Aws::String && value)1566     inline CreateCacheClusterRequest& AddSnapshotArns(Aws::String&& value) { m_snapshotArnsHasBeenSet = true; m_snapshotArns.push_back(std::move(value)); return *this; }
1567 
1568     /**
1569      * <p>A single-element string list containing an Amazon Resource Name (ARN) that
1570      * uniquely identifies a Redis RDB snapshot file stored in Amazon S3. The snapshot
1571      * file is used to populate the node group (shard). The Amazon S3 object name in
1572      * the ARN cannot contain any commas.</p>  <p>This parameter is only valid if
1573      * the <code>Engine</code> parameter is <code>redis</code>.</p>  <p>Example
1574      * of an Amazon S3 ARN: <code>arn:aws:s3:::my_bucket/snapshot1.rdb</code> </p>
1575      */
AddSnapshotArns(const char * value)1576     inline CreateCacheClusterRequest& AddSnapshotArns(const char* value) { m_snapshotArnsHasBeenSet = true; m_snapshotArns.push_back(value); return *this; }
1577 
1578 
1579     /**
1580      * <p>The name of a Redis snapshot from which to restore data into the new node
1581      * group (shard). The snapshot status changes to <code>restoring</code> while the
1582      * new node group (shard) is being created.</p>  <p>This parameter is only
1583      * valid if the <code>Engine</code> parameter is <code>redis</code>.</p>
1584      */
GetSnapshotName()1585     inline const Aws::String& GetSnapshotName() const{ return m_snapshotName; }
1586 
1587     /**
1588      * <p>The name of a Redis snapshot from which to restore data into the new node
1589      * group (shard). The snapshot status changes to <code>restoring</code> while the
1590      * new node group (shard) is being created.</p>  <p>This parameter is only
1591      * valid if the <code>Engine</code> parameter is <code>redis</code>.</p>
1592      */
SnapshotNameHasBeenSet()1593     inline bool SnapshotNameHasBeenSet() const { return m_snapshotNameHasBeenSet; }
1594 
1595     /**
1596      * <p>The name of a Redis snapshot from which to restore data into the new node
1597      * group (shard). The snapshot status changes to <code>restoring</code> while the
1598      * new node group (shard) is being created.</p>  <p>This parameter is only
1599      * valid if the <code>Engine</code> parameter is <code>redis</code>.</p>
1600      */
SetSnapshotName(const Aws::String & value)1601     inline void SetSnapshotName(const Aws::String& value) { m_snapshotNameHasBeenSet = true; m_snapshotName = value; }
1602 
1603     /**
1604      * <p>The name of a Redis snapshot from which to restore data into the new node
1605      * group (shard). The snapshot status changes to <code>restoring</code> while the
1606      * new node group (shard) is being created.</p>  <p>This parameter is only
1607      * valid if the <code>Engine</code> parameter is <code>redis</code>.</p>
1608      */
SetSnapshotName(Aws::String && value)1609     inline void SetSnapshotName(Aws::String&& value) { m_snapshotNameHasBeenSet = true; m_snapshotName = std::move(value); }
1610 
1611     /**
1612      * <p>The name of a Redis snapshot from which to restore data into the new node
1613      * group (shard). The snapshot status changes to <code>restoring</code> while the
1614      * new node group (shard) is being created.</p>  <p>This parameter is only
1615      * valid if the <code>Engine</code> parameter is <code>redis</code>.</p>
1616      */
SetSnapshotName(const char * value)1617     inline void SetSnapshotName(const char* value) { m_snapshotNameHasBeenSet = true; m_snapshotName.assign(value); }
1618 
1619     /**
1620      * <p>The name of a Redis snapshot from which to restore data into the new node
1621      * group (shard). The snapshot status changes to <code>restoring</code> while the
1622      * new node group (shard) is being created.</p>  <p>This parameter is only
1623      * valid if the <code>Engine</code> parameter is <code>redis</code>.</p>
1624      */
WithSnapshotName(const Aws::String & value)1625     inline CreateCacheClusterRequest& WithSnapshotName(const Aws::String& value) { SetSnapshotName(value); return *this;}
1626 
1627     /**
1628      * <p>The name of a Redis snapshot from which to restore data into the new node
1629      * group (shard). The snapshot status changes to <code>restoring</code> while the
1630      * new node group (shard) is being created.</p>  <p>This parameter is only
1631      * valid if the <code>Engine</code> parameter is <code>redis</code>.</p>
1632      */
WithSnapshotName(Aws::String && value)1633     inline CreateCacheClusterRequest& WithSnapshotName(Aws::String&& value) { SetSnapshotName(std::move(value)); return *this;}
1634 
1635     /**
1636      * <p>The name of a Redis snapshot from which to restore data into the new node
1637      * group (shard). The snapshot status changes to <code>restoring</code> while the
1638      * new node group (shard) is being created.</p>  <p>This parameter is only
1639      * valid if the <code>Engine</code> parameter is <code>redis</code>.</p>
1640      */
WithSnapshotName(const char * value)1641     inline CreateCacheClusterRequest& WithSnapshotName(const char* value) { SetSnapshotName(value); return *this;}
1642 
1643 
1644     /**
1645      * <p>Specifies the weekly time range during which maintenance on the cluster is
1646      * performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H
1647      * Clock UTC). The minimum maintenance window is a 60 minute period. Valid values
1648      * for <code>ddd</code> are:</p>
1649      */
GetPreferredMaintenanceWindow()1650     inline const Aws::String& GetPreferredMaintenanceWindow() const{ return m_preferredMaintenanceWindow; }
1651 
1652     /**
1653      * <p>Specifies the weekly time range during which maintenance on the cluster is
1654      * performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H
1655      * Clock UTC). The minimum maintenance window is a 60 minute period. Valid values
1656      * for <code>ddd</code> are:</p>
1657      */
PreferredMaintenanceWindowHasBeenSet()1658     inline bool PreferredMaintenanceWindowHasBeenSet() const { return m_preferredMaintenanceWindowHasBeenSet; }
1659 
1660     /**
1661      * <p>Specifies the weekly time range during which maintenance on the cluster is
1662      * performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H
1663      * Clock UTC). The minimum maintenance window is a 60 minute period. Valid values
1664      * for <code>ddd</code> are:</p>
1665      */
SetPreferredMaintenanceWindow(const Aws::String & value)1666     inline void SetPreferredMaintenanceWindow(const Aws::String& value) { m_preferredMaintenanceWindowHasBeenSet = true; m_preferredMaintenanceWindow = value; }
1667 
1668     /**
1669      * <p>Specifies the weekly time range during which maintenance on the cluster is
1670      * performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H
1671      * Clock UTC). The minimum maintenance window is a 60 minute period. Valid values
1672      * for <code>ddd</code> are:</p>
1673      */
SetPreferredMaintenanceWindow(Aws::String && value)1674     inline void SetPreferredMaintenanceWindow(Aws::String&& value) { m_preferredMaintenanceWindowHasBeenSet = true; m_preferredMaintenanceWindow = std::move(value); }
1675 
1676     /**
1677      * <p>Specifies the weekly time range during which maintenance on the cluster is
1678      * performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H
1679      * Clock UTC). The minimum maintenance window is a 60 minute period. Valid values
1680      * for <code>ddd</code> are:</p>
1681      */
SetPreferredMaintenanceWindow(const char * value)1682     inline void SetPreferredMaintenanceWindow(const char* value) { m_preferredMaintenanceWindowHasBeenSet = true; m_preferredMaintenanceWindow.assign(value); }
1683 
1684     /**
1685      * <p>Specifies the weekly time range during which maintenance on the cluster is
1686      * performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H
1687      * Clock UTC). The minimum maintenance window is a 60 minute period. Valid values
1688      * for <code>ddd</code> are:</p>
1689      */
WithPreferredMaintenanceWindow(const Aws::String & value)1690     inline CreateCacheClusterRequest& WithPreferredMaintenanceWindow(const Aws::String& value) { SetPreferredMaintenanceWindow(value); return *this;}
1691 
1692     /**
1693      * <p>Specifies the weekly time range during which maintenance on the cluster is
1694      * performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H
1695      * Clock UTC). The minimum maintenance window is a 60 minute period. Valid values
1696      * for <code>ddd</code> are:</p>
1697      */
WithPreferredMaintenanceWindow(Aws::String && value)1698     inline CreateCacheClusterRequest& WithPreferredMaintenanceWindow(Aws::String&& value) { SetPreferredMaintenanceWindow(std::move(value)); return *this;}
1699 
1700     /**
1701      * <p>Specifies the weekly time range during which maintenance on the cluster is
1702      * performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H
1703      * Clock UTC). The minimum maintenance window is a 60 minute period. Valid values
1704      * for <code>ddd</code> are:</p>
1705      */
WithPreferredMaintenanceWindow(const char * value)1706     inline CreateCacheClusterRequest& WithPreferredMaintenanceWindow(const char* value) { SetPreferredMaintenanceWindow(value); return *this;}
1707 
1708 
1709     /**
1710      * <p>The port number on which each of the cache nodes accepts connections.</p>
1711      */
GetPort()1712     inline int GetPort() const{ return m_port; }
1713 
1714     /**
1715      * <p>The port number on which each of the cache nodes accepts connections.</p>
1716      */
PortHasBeenSet()1717     inline bool PortHasBeenSet() const { return m_portHasBeenSet; }
1718 
1719     /**
1720      * <p>The port number on which each of the cache nodes accepts connections.</p>
1721      */
SetPort(int value)1722     inline void SetPort(int value) { m_portHasBeenSet = true; m_port = value; }
1723 
1724     /**
1725      * <p>The port number on which each of the cache nodes accepts connections.</p>
1726      */
WithPort(int value)1727     inline CreateCacheClusterRequest& WithPort(int value) { SetPort(value); return *this;}
1728 
1729 
1730     /**
1731      * <p>The Amazon Resource Name (ARN) of the Amazon Simple Notification Service
1732      * (SNS) topic to which notifications are sent.</p>  <p>The Amazon SNS topic
1733      * owner must be the same as the cluster owner.</p>
1734      */
GetNotificationTopicArn()1735     inline const Aws::String& GetNotificationTopicArn() const{ return m_notificationTopicArn; }
1736 
1737     /**
1738      * <p>The Amazon Resource Name (ARN) of the Amazon Simple Notification Service
1739      * (SNS) topic to which notifications are sent.</p>  <p>The Amazon SNS topic
1740      * owner must be the same as the cluster owner.</p>
1741      */
NotificationTopicArnHasBeenSet()1742     inline bool NotificationTopicArnHasBeenSet() const { return m_notificationTopicArnHasBeenSet; }
1743 
1744     /**
1745      * <p>The Amazon Resource Name (ARN) of the Amazon Simple Notification Service
1746      * (SNS) topic to which notifications are sent.</p>  <p>The Amazon SNS topic
1747      * owner must be the same as the cluster owner.</p>
1748      */
SetNotificationTopicArn(const Aws::String & value)1749     inline void SetNotificationTopicArn(const Aws::String& value) { m_notificationTopicArnHasBeenSet = true; m_notificationTopicArn = value; }
1750 
1751     /**
1752      * <p>The Amazon Resource Name (ARN) of the Amazon Simple Notification Service
1753      * (SNS) topic to which notifications are sent.</p>  <p>The Amazon SNS topic
1754      * owner must be the same as the cluster owner.</p>
1755      */
SetNotificationTopicArn(Aws::String && value)1756     inline void SetNotificationTopicArn(Aws::String&& value) { m_notificationTopicArnHasBeenSet = true; m_notificationTopicArn = std::move(value); }
1757 
1758     /**
1759      * <p>The Amazon Resource Name (ARN) of the Amazon Simple Notification Service
1760      * (SNS) topic to which notifications are sent.</p>  <p>The Amazon SNS topic
1761      * owner must be the same as the cluster owner.</p>
1762      */
SetNotificationTopicArn(const char * value)1763     inline void SetNotificationTopicArn(const char* value) { m_notificationTopicArnHasBeenSet = true; m_notificationTopicArn.assign(value); }
1764 
1765     /**
1766      * <p>The Amazon Resource Name (ARN) of the Amazon Simple Notification Service
1767      * (SNS) topic to which notifications are sent.</p>  <p>The Amazon SNS topic
1768      * owner must be the same as the cluster owner.</p>
1769      */
WithNotificationTopicArn(const Aws::String & value)1770     inline CreateCacheClusterRequest& WithNotificationTopicArn(const Aws::String& value) { SetNotificationTopicArn(value); return *this;}
1771 
1772     /**
1773      * <p>The Amazon Resource Name (ARN) of the Amazon Simple Notification Service
1774      * (SNS) topic to which notifications are sent.</p>  <p>The Amazon SNS topic
1775      * owner must be the same as the cluster owner.</p>
1776      */
WithNotificationTopicArn(Aws::String && value)1777     inline CreateCacheClusterRequest& WithNotificationTopicArn(Aws::String&& value) { SetNotificationTopicArn(std::move(value)); return *this;}
1778 
1779     /**
1780      * <p>The Amazon Resource Name (ARN) of the Amazon Simple Notification Service
1781      * (SNS) topic to which notifications are sent.</p>  <p>The Amazon SNS topic
1782      * owner must be the same as the cluster owner.</p>
1783      */
WithNotificationTopicArn(const char * value)1784     inline CreateCacheClusterRequest& WithNotificationTopicArn(const char* value) { SetNotificationTopicArn(value); return *this;}
1785 
1786 
1787     /**
1788      * <p>This parameter is currently disabled.</p>
1789      */
GetAutoMinorVersionUpgrade()1790     inline bool GetAutoMinorVersionUpgrade() const{ return m_autoMinorVersionUpgrade; }
1791 
1792     /**
1793      * <p>This parameter is currently disabled.</p>
1794      */
AutoMinorVersionUpgradeHasBeenSet()1795     inline bool AutoMinorVersionUpgradeHasBeenSet() const { return m_autoMinorVersionUpgradeHasBeenSet; }
1796 
1797     /**
1798      * <p>This parameter is currently disabled.</p>
1799      */
SetAutoMinorVersionUpgrade(bool value)1800     inline void SetAutoMinorVersionUpgrade(bool value) { m_autoMinorVersionUpgradeHasBeenSet = true; m_autoMinorVersionUpgrade = value; }
1801 
1802     /**
1803      * <p>This parameter is currently disabled.</p>
1804      */
WithAutoMinorVersionUpgrade(bool value)1805     inline CreateCacheClusterRequest& WithAutoMinorVersionUpgrade(bool value) { SetAutoMinorVersionUpgrade(value); return *this;}
1806 
1807 
1808     /**
1809      * <p>The number of days for which ElastiCache retains automatic snapshots before
1810      * deleting them. For example, if you set <code>SnapshotRetentionLimit</code> to 5,
1811      * a snapshot taken today is retained for 5 days before being deleted.</p>
1812      * <p>This parameter is only valid if the <code>Engine</code> parameter is
1813      * <code>redis</code>.</p>  <p>Default: 0 (i.e., automatic backups are
1814      * disabled for this cache cluster).</p>
1815      */
GetSnapshotRetentionLimit()1816     inline int GetSnapshotRetentionLimit() const{ return m_snapshotRetentionLimit; }
1817 
1818     /**
1819      * <p>The number of days for which ElastiCache retains automatic snapshots before
1820      * deleting them. For example, if you set <code>SnapshotRetentionLimit</code> to 5,
1821      * a snapshot taken today is retained for 5 days before being deleted.</p>
1822      * <p>This parameter is only valid if the <code>Engine</code> parameter is
1823      * <code>redis</code>.</p>  <p>Default: 0 (i.e., automatic backups are
1824      * disabled for this cache cluster).</p>
1825      */
SnapshotRetentionLimitHasBeenSet()1826     inline bool SnapshotRetentionLimitHasBeenSet() const { return m_snapshotRetentionLimitHasBeenSet; }
1827 
1828     /**
1829      * <p>The number of days for which ElastiCache retains automatic snapshots before
1830      * deleting them. For example, if you set <code>SnapshotRetentionLimit</code> to 5,
1831      * a snapshot taken today is retained for 5 days before being deleted.</p>
1832      * <p>This parameter is only valid if the <code>Engine</code> parameter is
1833      * <code>redis</code>.</p>  <p>Default: 0 (i.e., automatic backups are
1834      * disabled for this cache cluster).</p>
1835      */
SetSnapshotRetentionLimit(int value)1836     inline void SetSnapshotRetentionLimit(int value) { m_snapshotRetentionLimitHasBeenSet = true; m_snapshotRetentionLimit = value; }
1837 
1838     /**
1839      * <p>The number of days for which ElastiCache retains automatic snapshots before
1840      * deleting them. For example, if you set <code>SnapshotRetentionLimit</code> to 5,
1841      * a snapshot taken today is retained for 5 days before being deleted.</p>
1842      * <p>This parameter is only valid if the <code>Engine</code> parameter is
1843      * <code>redis</code>.</p>  <p>Default: 0 (i.e., automatic backups are
1844      * disabled for this cache cluster).</p>
1845      */
WithSnapshotRetentionLimit(int value)1846     inline CreateCacheClusterRequest& WithSnapshotRetentionLimit(int value) { SetSnapshotRetentionLimit(value); return *this;}
1847 
1848 
1849     /**
1850      * <p>The daily time range (in UTC) during which ElastiCache begins taking a daily
1851      * snapshot of your node group (shard).</p> <p>Example: <code>05:00-09:00</code>
1852      * </p> <p>If you do not specify this parameter, ElastiCache automatically chooses
1853      * an appropriate time range.</p>  <p>This parameter is only valid if the
1854      * <code>Engine</code> parameter is <code>redis</code>.</p>
1855      */
GetSnapshotWindow()1856     inline const Aws::String& GetSnapshotWindow() const{ return m_snapshotWindow; }
1857 
1858     /**
1859      * <p>The daily time range (in UTC) during which ElastiCache begins taking a daily
1860      * snapshot of your node group (shard).</p> <p>Example: <code>05:00-09:00</code>
1861      * </p> <p>If you do not specify this parameter, ElastiCache automatically chooses
1862      * an appropriate time range.</p>  <p>This parameter is only valid if the
1863      * <code>Engine</code> parameter is <code>redis</code>.</p>
1864      */
SnapshotWindowHasBeenSet()1865     inline bool SnapshotWindowHasBeenSet() const { return m_snapshotWindowHasBeenSet; }
1866 
1867     /**
1868      * <p>The daily time range (in UTC) during which ElastiCache begins taking a daily
1869      * snapshot of your node group (shard).</p> <p>Example: <code>05:00-09:00</code>
1870      * </p> <p>If you do not specify this parameter, ElastiCache automatically chooses
1871      * an appropriate time range.</p>  <p>This parameter is only valid if the
1872      * <code>Engine</code> parameter is <code>redis</code>.</p>
1873      */
SetSnapshotWindow(const Aws::String & value)1874     inline void SetSnapshotWindow(const Aws::String& value) { m_snapshotWindowHasBeenSet = true; m_snapshotWindow = value; }
1875 
1876     /**
1877      * <p>The daily time range (in UTC) during which ElastiCache begins taking a daily
1878      * snapshot of your node group (shard).</p> <p>Example: <code>05:00-09:00</code>
1879      * </p> <p>If you do not specify this parameter, ElastiCache automatically chooses
1880      * an appropriate time range.</p>  <p>This parameter is only valid if the
1881      * <code>Engine</code> parameter is <code>redis</code>.</p>
1882      */
SetSnapshotWindow(Aws::String && value)1883     inline void SetSnapshotWindow(Aws::String&& value) { m_snapshotWindowHasBeenSet = true; m_snapshotWindow = std::move(value); }
1884 
1885     /**
1886      * <p>The daily time range (in UTC) during which ElastiCache begins taking a daily
1887      * snapshot of your node group (shard).</p> <p>Example: <code>05:00-09:00</code>
1888      * </p> <p>If you do not specify this parameter, ElastiCache automatically chooses
1889      * an appropriate time range.</p>  <p>This parameter is only valid if the
1890      * <code>Engine</code> parameter is <code>redis</code>.</p>
1891      */
SetSnapshotWindow(const char * value)1892     inline void SetSnapshotWindow(const char* value) { m_snapshotWindowHasBeenSet = true; m_snapshotWindow.assign(value); }
1893 
1894     /**
1895      * <p>The daily time range (in UTC) during which ElastiCache begins taking a daily
1896      * snapshot of your node group (shard).</p> <p>Example: <code>05:00-09:00</code>
1897      * </p> <p>If you do not specify this parameter, ElastiCache automatically chooses
1898      * an appropriate time range.</p>  <p>This parameter is only valid if the
1899      * <code>Engine</code> parameter is <code>redis</code>.</p>
1900      */
WithSnapshotWindow(const Aws::String & value)1901     inline CreateCacheClusterRequest& WithSnapshotWindow(const Aws::String& value) { SetSnapshotWindow(value); return *this;}
1902 
1903     /**
1904      * <p>The daily time range (in UTC) during which ElastiCache begins taking a daily
1905      * snapshot of your node group (shard).</p> <p>Example: <code>05:00-09:00</code>
1906      * </p> <p>If you do not specify this parameter, ElastiCache automatically chooses
1907      * an appropriate time range.</p>  <p>This parameter is only valid if the
1908      * <code>Engine</code> parameter is <code>redis</code>.</p>
1909      */
WithSnapshotWindow(Aws::String && value)1910     inline CreateCacheClusterRequest& WithSnapshotWindow(Aws::String&& value) { SetSnapshotWindow(std::move(value)); return *this;}
1911 
1912     /**
1913      * <p>The daily time range (in UTC) during which ElastiCache begins taking a daily
1914      * snapshot of your node group (shard).</p> <p>Example: <code>05:00-09:00</code>
1915      * </p> <p>If you do not specify this parameter, ElastiCache automatically chooses
1916      * an appropriate time range.</p>  <p>This parameter is only valid if the
1917      * <code>Engine</code> parameter is <code>redis</code>.</p>
1918      */
WithSnapshotWindow(const char * value)1919     inline CreateCacheClusterRequest& WithSnapshotWindow(const char* value) { SetSnapshotWindow(value); return *this;}
1920 
1921 
1922     /**
1923      * <p> <b>Reserved parameter.</b> The password used to access a password protected
1924      * server.</p> <p>Password constraints:</p> <ul> <li> <p>Must be only printable
1925      * ASCII characters.</p> </li> <li> <p>Must be at least 16 characters and no more
1926      * than 128 characters in length.</p> </li> <li> <p>The only permitted printable
1927      * special characters are !, &amp;, #, $, ^, &lt;, &gt;, and -. Other printable
1928      * special characters cannot be used in the AUTH token.</p> </li> </ul> <p>For more
1929      * information, see <a href="http://redis.io/commands/AUTH">AUTH password</a> at
1930      * http://redis.io/commands/AUTH.</p>
1931      */
GetAuthToken()1932     inline const Aws::String& GetAuthToken() const{ return m_authToken; }
1933 
1934     /**
1935      * <p> <b>Reserved parameter.</b> The password used to access a password protected
1936      * server.</p> <p>Password constraints:</p> <ul> <li> <p>Must be only printable
1937      * ASCII characters.</p> </li> <li> <p>Must be at least 16 characters and no more
1938      * than 128 characters in length.</p> </li> <li> <p>The only permitted printable
1939      * special characters are !, &amp;, #, $, ^, &lt;, &gt;, and -. Other printable
1940      * special characters cannot be used in the AUTH token.</p> </li> </ul> <p>For more
1941      * information, see <a href="http://redis.io/commands/AUTH">AUTH password</a> at
1942      * http://redis.io/commands/AUTH.</p>
1943      */
AuthTokenHasBeenSet()1944     inline bool AuthTokenHasBeenSet() const { return m_authTokenHasBeenSet; }
1945 
1946     /**
1947      * <p> <b>Reserved parameter.</b> The password used to access a password protected
1948      * server.</p> <p>Password constraints:</p> <ul> <li> <p>Must be only printable
1949      * ASCII characters.</p> </li> <li> <p>Must be at least 16 characters and no more
1950      * than 128 characters in length.</p> </li> <li> <p>The only permitted printable
1951      * special characters are !, &amp;, #, $, ^, &lt;, &gt;, and -. Other printable
1952      * special characters cannot be used in the AUTH token.</p> </li> </ul> <p>For more
1953      * information, see <a href="http://redis.io/commands/AUTH">AUTH password</a> at
1954      * http://redis.io/commands/AUTH.</p>
1955      */
SetAuthToken(const Aws::String & value)1956     inline void SetAuthToken(const Aws::String& value) { m_authTokenHasBeenSet = true; m_authToken = value; }
1957 
1958     /**
1959      * <p> <b>Reserved parameter.</b> The password used to access a password protected
1960      * server.</p> <p>Password constraints:</p> <ul> <li> <p>Must be only printable
1961      * ASCII characters.</p> </li> <li> <p>Must be at least 16 characters and no more
1962      * than 128 characters in length.</p> </li> <li> <p>The only permitted printable
1963      * special characters are !, &amp;, #, $, ^, &lt;, &gt;, and -. Other printable
1964      * special characters cannot be used in the AUTH token.</p> </li> </ul> <p>For more
1965      * information, see <a href="http://redis.io/commands/AUTH">AUTH password</a> at
1966      * http://redis.io/commands/AUTH.</p>
1967      */
SetAuthToken(Aws::String && value)1968     inline void SetAuthToken(Aws::String&& value) { m_authTokenHasBeenSet = true; m_authToken = std::move(value); }
1969 
1970     /**
1971      * <p> <b>Reserved parameter.</b> The password used to access a password protected
1972      * server.</p> <p>Password constraints:</p> <ul> <li> <p>Must be only printable
1973      * ASCII characters.</p> </li> <li> <p>Must be at least 16 characters and no more
1974      * than 128 characters in length.</p> </li> <li> <p>The only permitted printable
1975      * special characters are !, &amp;, #, $, ^, &lt;, &gt;, and -. Other printable
1976      * special characters cannot be used in the AUTH token.</p> </li> </ul> <p>For more
1977      * information, see <a href="http://redis.io/commands/AUTH">AUTH password</a> at
1978      * http://redis.io/commands/AUTH.</p>
1979      */
SetAuthToken(const char * value)1980     inline void SetAuthToken(const char* value) { m_authTokenHasBeenSet = true; m_authToken.assign(value); }
1981 
1982     /**
1983      * <p> <b>Reserved parameter.</b> The password used to access a password protected
1984      * server.</p> <p>Password constraints:</p> <ul> <li> <p>Must be only printable
1985      * ASCII characters.</p> </li> <li> <p>Must be at least 16 characters and no more
1986      * than 128 characters in length.</p> </li> <li> <p>The only permitted printable
1987      * special characters are !, &amp;, #, $, ^, &lt;, &gt;, and -. Other printable
1988      * special characters cannot be used in the AUTH token.</p> </li> </ul> <p>For more
1989      * information, see <a href="http://redis.io/commands/AUTH">AUTH password</a> at
1990      * http://redis.io/commands/AUTH.</p>
1991      */
WithAuthToken(const Aws::String & value)1992     inline CreateCacheClusterRequest& WithAuthToken(const Aws::String& value) { SetAuthToken(value); return *this;}
1993 
1994     /**
1995      * <p> <b>Reserved parameter.</b> The password used to access a password protected
1996      * server.</p> <p>Password constraints:</p> <ul> <li> <p>Must be only printable
1997      * ASCII characters.</p> </li> <li> <p>Must be at least 16 characters and no more
1998      * than 128 characters in length.</p> </li> <li> <p>The only permitted printable
1999      * special characters are !, &amp;, #, $, ^, &lt;, &gt;, and -. Other printable
2000      * special characters cannot be used in the AUTH token.</p> </li> </ul> <p>For more
2001      * information, see <a href="http://redis.io/commands/AUTH">AUTH password</a> at
2002      * http://redis.io/commands/AUTH.</p>
2003      */
WithAuthToken(Aws::String && value)2004     inline CreateCacheClusterRequest& WithAuthToken(Aws::String&& value) { SetAuthToken(std::move(value)); return *this;}
2005 
2006     /**
2007      * <p> <b>Reserved parameter.</b> The password used to access a password protected
2008      * server.</p> <p>Password constraints:</p> <ul> <li> <p>Must be only printable
2009      * ASCII characters.</p> </li> <li> <p>Must be at least 16 characters and no more
2010      * than 128 characters in length.</p> </li> <li> <p>The only permitted printable
2011      * special characters are !, &amp;, #, $, ^, &lt;, &gt;, and -. Other printable
2012      * special characters cannot be used in the AUTH token.</p> </li> </ul> <p>For more
2013      * information, see <a href="http://redis.io/commands/AUTH">AUTH password</a> at
2014      * http://redis.io/commands/AUTH.</p>
2015      */
WithAuthToken(const char * value)2016     inline CreateCacheClusterRequest& WithAuthToken(const char* value) { SetAuthToken(value); return *this;}
2017 
2018 
2019     /**
2020      * <p>Specifies whether the nodes in the cluster are created in a single outpost or
2021      * across multiple outposts.</p>
2022      */
GetOutpostMode()2023     inline const OutpostMode& GetOutpostMode() const{ return m_outpostMode; }
2024 
2025     /**
2026      * <p>Specifies whether the nodes in the cluster are created in a single outpost or
2027      * across multiple outposts.</p>
2028      */
OutpostModeHasBeenSet()2029     inline bool OutpostModeHasBeenSet() const { return m_outpostModeHasBeenSet; }
2030 
2031     /**
2032      * <p>Specifies whether the nodes in the cluster are created in a single outpost or
2033      * across multiple outposts.</p>
2034      */
SetOutpostMode(const OutpostMode & value)2035     inline void SetOutpostMode(const OutpostMode& value) { m_outpostModeHasBeenSet = true; m_outpostMode = value; }
2036 
2037     /**
2038      * <p>Specifies whether the nodes in the cluster are created in a single outpost or
2039      * across multiple outposts.</p>
2040      */
SetOutpostMode(OutpostMode && value)2041     inline void SetOutpostMode(OutpostMode&& value) { m_outpostModeHasBeenSet = true; m_outpostMode = std::move(value); }
2042 
2043     /**
2044      * <p>Specifies whether the nodes in the cluster are created in a single outpost or
2045      * across multiple outposts.</p>
2046      */
WithOutpostMode(const OutpostMode & value)2047     inline CreateCacheClusterRequest& WithOutpostMode(const OutpostMode& value) { SetOutpostMode(value); return *this;}
2048 
2049     /**
2050      * <p>Specifies whether the nodes in the cluster are created in a single outpost or
2051      * across multiple outposts.</p>
2052      */
WithOutpostMode(OutpostMode && value)2053     inline CreateCacheClusterRequest& WithOutpostMode(OutpostMode&& value) { SetOutpostMode(std::move(value)); return *this;}
2054 
2055 
2056     /**
2057      * <p>The outpost ARN in which the cache cluster is created.</p>
2058      */
GetPreferredOutpostArn()2059     inline const Aws::String& GetPreferredOutpostArn() const{ return m_preferredOutpostArn; }
2060 
2061     /**
2062      * <p>The outpost ARN in which the cache cluster is created.</p>
2063      */
PreferredOutpostArnHasBeenSet()2064     inline bool PreferredOutpostArnHasBeenSet() const { return m_preferredOutpostArnHasBeenSet; }
2065 
2066     /**
2067      * <p>The outpost ARN in which the cache cluster is created.</p>
2068      */
SetPreferredOutpostArn(const Aws::String & value)2069     inline void SetPreferredOutpostArn(const Aws::String& value) { m_preferredOutpostArnHasBeenSet = true; m_preferredOutpostArn = value; }
2070 
2071     /**
2072      * <p>The outpost ARN in which the cache cluster is created.</p>
2073      */
SetPreferredOutpostArn(Aws::String && value)2074     inline void SetPreferredOutpostArn(Aws::String&& value) { m_preferredOutpostArnHasBeenSet = true; m_preferredOutpostArn = std::move(value); }
2075 
2076     /**
2077      * <p>The outpost ARN in which the cache cluster is created.</p>
2078      */
SetPreferredOutpostArn(const char * value)2079     inline void SetPreferredOutpostArn(const char* value) { m_preferredOutpostArnHasBeenSet = true; m_preferredOutpostArn.assign(value); }
2080 
2081     /**
2082      * <p>The outpost ARN in which the cache cluster is created.</p>
2083      */
WithPreferredOutpostArn(const Aws::String & value)2084     inline CreateCacheClusterRequest& WithPreferredOutpostArn(const Aws::String& value) { SetPreferredOutpostArn(value); return *this;}
2085 
2086     /**
2087      * <p>The outpost ARN in which the cache cluster is created.</p>
2088      */
WithPreferredOutpostArn(Aws::String && value)2089     inline CreateCacheClusterRequest& WithPreferredOutpostArn(Aws::String&& value) { SetPreferredOutpostArn(std::move(value)); return *this;}
2090 
2091     /**
2092      * <p>The outpost ARN in which the cache cluster is created.</p>
2093      */
WithPreferredOutpostArn(const char * value)2094     inline CreateCacheClusterRequest& WithPreferredOutpostArn(const char* value) { SetPreferredOutpostArn(value); return *this;}
2095 
2096 
2097     /**
2098      * <p>The outpost ARNs in which the cache cluster is created.</p>
2099      */
GetPreferredOutpostArns()2100     inline const Aws::Vector<Aws::String>& GetPreferredOutpostArns() const{ return m_preferredOutpostArns; }
2101 
2102     /**
2103      * <p>The outpost ARNs in which the cache cluster is created.</p>
2104      */
PreferredOutpostArnsHasBeenSet()2105     inline bool PreferredOutpostArnsHasBeenSet() const { return m_preferredOutpostArnsHasBeenSet; }
2106 
2107     /**
2108      * <p>The outpost ARNs in which the cache cluster is created.</p>
2109      */
SetPreferredOutpostArns(const Aws::Vector<Aws::String> & value)2110     inline void SetPreferredOutpostArns(const Aws::Vector<Aws::String>& value) { m_preferredOutpostArnsHasBeenSet = true; m_preferredOutpostArns = value; }
2111 
2112     /**
2113      * <p>The outpost ARNs in which the cache cluster is created.</p>
2114      */
SetPreferredOutpostArns(Aws::Vector<Aws::String> && value)2115     inline void SetPreferredOutpostArns(Aws::Vector<Aws::String>&& value) { m_preferredOutpostArnsHasBeenSet = true; m_preferredOutpostArns = std::move(value); }
2116 
2117     /**
2118      * <p>The outpost ARNs in which the cache cluster is created.</p>
2119      */
WithPreferredOutpostArns(const Aws::Vector<Aws::String> & value)2120     inline CreateCacheClusterRequest& WithPreferredOutpostArns(const Aws::Vector<Aws::String>& value) { SetPreferredOutpostArns(value); return *this;}
2121 
2122     /**
2123      * <p>The outpost ARNs in which the cache cluster is created.</p>
2124      */
WithPreferredOutpostArns(Aws::Vector<Aws::String> && value)2125     inline CreateCacheClusterRequest& WithPreferredOutpostArns(Aws::Vector<Aws::String>&& value) { SetPreferredOutpostArns(std::move(value)); return *this;}
2126 
2127     /**
2128      * <p>The outpost ARNs in which the cache cluster is created.</p>
2129      */
AddPreferredOutpostArns(const Aws::String & value)2130     inline CreateCacheClusterRequest& AddPreferredOutpostArns(const Aws::String& value) { m_preferredOutpostArnsHasBeenSet = true; m_preferredOutpostArns.push_back(value); return *this; }
2131 
2132     /**
2133      * <p>The outpost ARNs in which the cache cluster is created.</p>
2134      */
AddPreferredOutpostArns(Aws::String && value)2135     inline CreateCacheClusterRequest& AddPreferredOutpostArns(Aws::String&& value) { m_preferredOutpostArnsHasBeenSet = true; m_preferredOutpostArns.push_back(std::move(value)); return *this; }
2136 
2137     /**
2138      * <p>The outpost ARNs in which the cache cluster is created.</p>
2139      */
AddPreferredOutpostArns(const char * value)2140     inline CreateCacheClusterRequest& AddPreferredOutpostArns(const char* value) { m_preferredOutpostArnsHasBeenSet = true; m_preferredOutpostArns.push_back(value); return *this; }
2141 
2142 
2143     /**
2144      * <p>Specifies the destination, format and type of the logs. </p>
2145      */
GetLogDeliveryConfigurations()2146     inline const Aws::Vector<LogDeliveryConfigurationRequest>& GetLogDeliveryConfigurations() const{ return m_logDeliveryConfigurations; }
2147 
2148     /**
2149      * <p>Specifies the destination, format and type of the logs. </p>
2150      */
LogDeliveryConfigurationsHasBeenSet()2151     inline bool LogDeliveryConfigurationsHasBeenSet() const { return m_logDeliveryConfigurationsHasBeenSet; }
2152 
2153     /**
2154      * <p>Specifies the destination, format and type of the logs. </p>
2155      */
SetLogDeliveryConfigurations(const Aws::Vector<LogDeliveryConfigurationRequest> & value)2156     inline void SetLogDeliveryConfigurations(const Aws::Vector<LogDeliveryConfigurationRequest>& value) { m_logDeliveryConfigurationsHasBeenSet = true; m_logDeliveryConfigurations = value; }
2157 
2158     /**
2159      * <p>Specifies the destination, format and type of the logs. </p>
2160      */
SetLogDeliveryConfigurations(Aws::Vector<LogDeliveryConfigurationRequest> && value)2161     inline void SetLogDeliveryConfigurations(Aws::Vector<LogDeliveryConfigurationRequest>&& value) { m_logDeliveryConfigurationsHasBeenSet = true; m_logDeliveryConfigurations = std::move(value); }
2162 
2163     /**
2164      * <p>Specifies the destination, format and type of the logs. </p>
2165      */
WithLogDeliveryConfigurations(const Aws::Vector<LogDeliveryConfigurationRequest> & value)2166     inline CreateCacheClusterRequest& WithLogDeliveryConfigurations(const Aws::Vector<LogDeliveryConfigurationRequest>& value) { SetLogDeliveryConfigurations(value); return *this;}
2167 
2168     /**
2169      * <p>Specifies the destination, format and type of the logs. </p>
2170      */
WithLogDeliveryConfigurations(Aws::Vector<LogDeliveryConfigurationRequest> && value)2171     inline CreateCacheClusterRequest& WithLogDeliveryConfigurations(Aws::Vector<LogDeliveryConfigurationRequest>&& value) { SetLogDeliveryConfigurations(std::move(value)); return *this;}
2172 
2173     /**
2174      * <p>Specifies the destination, format and type of the logs. </p>
2175      */
AddLogDeliveryConfigurations(const LogDeliveryConfigurationRequest & value)2176     inline CreateCacheClusterRequest& AddLogDeliveryConfigurations(const LogDeliveryConfigurationRequest& value) { m_logDeliveryConfigurationsHasBeenSet = true; m_logDeliveryConfigurations.push_back(value); return *this; }
2177 
2178     /**
2179      * <p>Specifies the destination, format and type of the logs. </p>
2180      */
AddLogDeliveryConfigurations(LogDeliveryConfigurationRequest && value)2181     inline CreateCacheClusterRequest& AddLogDeliveryConfigurations(LogDeliveryConfigurationRequest&& value) { m_logDeliveryConfigurationsHasBeenSet = true; m_logDeliveryConfigurations.push_back(std::move(value)); return *this; }
2182 
2183   private:
2184 
2185     Aws::String m_cacheClusterId;
2186     bool m_cacheClusterIdHasBeenSet;
2187 
2188     Aws::String m_replicationGroupId;
2189     bool m_replicationGroupIdHasBeenSet;
2190 
2191     AZMode m_aZMode;
2192     bool m_aZModeHasBeenSet;
2193 
2194     Aws::String m_preferredAvailabilityZone;
2195     bool m_preferredAvailabilityZoneHasBeenSet;
2196 
2197     Aws::Vector<Aws::String> m_preferredAvailabilityZones;
2198     bool m_preferredAvailabilityZonesHasBeenSet;
2199 
2200     int m_numCacheNodes;
2201     bool m_numCacheNodesHasBeenSet;
2202 
2203     Aws::String m_cacheNodeType;
2204     bool m_cacheNodeTypeHasBeenSet;
2205 
2206     Aws::String m_engine;
2207     bool m_engineHasBeenSet;
2208 
2209     Aws::String m_engineVersion;
2210     bool m_engineVersionHasBeenSet;
2211 
2212     Aws::String m_cacheParameterGroupName;
2213     bool m_cacheParameterGroupNameHasBeenSet;
2214 
2215     Aws::String m_cacheSubnetGroupName;
2216     bool m_cacheSubnetGroupNameHasBeenSet;
2217 
2218     Aws::Vector<Aws::String> m_cacheSecurityGroupNames;
2219     bool m_cacheSecurityGroupNamesHasBeenSet;
2220 
2221     Aws::Vector<Aws::String> m_securityGroupIds;
2222     bool m_securityGroupIdsHasBeenSet;
2223 
2224     Aws::Vector<Tag> m_tags;
2225     bool m_tagsHasBeenSet;
2226 
2227     Aws::Vector<Aws::String> m_snapshotArns;
2228     bool m_snapshotArnsHasBeenSet;
2229 
2230     Aws::String m_snapshotName;
2231     bool m_snapshotNameHasBeenSet;
2232 
2233     Aws::String m_preferredMaintenanceWindow;
2234     bool m_preferredMaintenanceWindowHasBeenSet;
2235 
2236     int m_port;
2237     bool m_portHasBeenSet;
2238 
2239     Aws::String m_notificationTopicArn;
2240     bool m_notificationTopicArnHasBeenSet;
2241 
2242     bool m_autoMinorVersionUpgrade;
2243     bool m_autoMinorVersionUpgradeHasBeenSet;
2244 
2245     int m_snapshotRetentionLimit;
2246     bool m_snapshotRetentionLimitHasBeenSet;
2247 
2248     Aws::String m_snapshotWindow;
2249     bool m_snapshotWindowHasBeenSet;
2250 
2251     Aws::String m_authToken;
2252     bool m_authTokenHasBeenSet;
2253 
2254     OutpostMode m_outpostMode;
2255     bool m_outpostModeHasBeenSet;
2256 
2257     Aws::String m_preferredOutpostArn;
2258     bool m_preferredOutpostArnHasBeenSet;
2259 
2260     Aws::Vector<Aws::String> m_preferredOutpostArns;
2261     bool m_preferredOutpostArnsHasBeenSet;
2262 
2263     Aws::Vector<LogDeliveryConfigurationRequest> m_logDeliveryConfigurations;
2264     bool m_logDeliveryConfigurationsHasBeenSet;
2265   };
2266 
2267 } // namespace Model
2268 } // namespace ElastiCache
2269 } // namespace Aws
2270