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/core/utils/memory/stl/AWSStreamFwd.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/core/utils/memory/stl/AWSVector.h>
11 #include <aws/elasticache/model/RecurringCharge.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 namespace Utils
17 {
18 namespace Xml
19 {
20   class XmlNode;
21 } // namespace Xml
22 } // namespace Utils
23 namespace ElastiCache
24 {
25 namespace Model
26 {
27 
28   /**
29    * <p>Describes all of the attributes of a reserved cache node
30    * offering.</p><p><h3>See Also:</h3>   <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/ReservedCacheNodesOffering">AWS
32    * API Reference</a></p>
33    */
34   class AWS_ELASTICACHE_API ReservedCacheNodesOffering
35   {
36   public:
37     ReservedCacheNodesOffering();
38     ReservedCacheNodesOffering(const Aws::Utils::Xml::XmlNode& xmlNode);
39     ReservedCacheNodesOffering& operator=(const Aws::Utils::Xml::XmlNode& xmlNode);
40 
41     void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const;
42     void OutputToStream(Aws::OStream& oStream, const char* location) const;
43 
44 
45     /**
46      * <p>A unique identifier for the reserved cache node offering.</p>
47      */
GetReservedCacheNodesOfferingId()48     inline const Aws::String& GetReservedCacheNodesOfferingId() const{ return m_reservedCacheNodesOfferingId; }
49 
50     /**
51      * <p>A unique identifier for the reserved cache node offering.</p>
52      */
ReservedCacheNodesOfferingIdHasBeenSet()53     inline bool ReservedCacheNodesOfferingIdHasBeenSet() const { return m_reservedCacheNodesOfferingIdHasBeenSet; }
54 
55     /**
56      * <p>A unique identifier for the reserved cache node offering.</p>
57      */
SetReservedCacheNodesOfferingId(const Aws::String & value)58     inline void SetReservedCacheNodesOfferingId(const Aws::String& value) { m_reservedCacheNodesOfferingIdHasBeenSet = true; m_reservedCacheNodesOfferingId = value; }
59 
60     /**
61      * <p>A unique identifier for the reserved cache node offering.</p>
62      */
SetReservedCacheNodesOfferingId(Aws::String && value)63     inline void SetReservedCacheNodesOfferingId(Aws::String&& value) { m_reservedCacheNodesOfferingIdHasBeenSet = true; m_reservedCacheNodesOfferingId = std::move(value); }
64 
65     /**
66      * <p>A unique identifier for the reserved cache node offering.</p>
67      */
SetReservedCacheNodesOfferingId(const char * value)68     inline void SetReservedCacheNodesOfferingId(const char* value) { m_reservedCacheNodesOfferingIdHasBeenSet = true; m_reservedCacheNodesOfferingId.assign(value); }
69 
70     /**
71      * <p>A unique identifier for the reserved cache node offering.</p>
72      */
WithReservedCacheNodesOfferingId(const Aws::String & value)73     inline ReservedCacheNodesOffering& WithReservedCacheNodesOfferingId(const Aws::String& value) { SetReservedCacheNodesOfferingId(value); return *this;}
74 
75     /**
76      * <p>A unique identifier for the reserved cache node offering.</p>
77      */
WithReservedCacheNodesOfferingId(Aws::String && value)78     inline ReservedCacheNodesOffering& WithReservedCacheNodesOfferingId(Aws::String&& value) { SetReservedCacheNodesOfferingId(std::move(value)); return *this;}
79 
80     /**
81      * <p>A unique identifier for the reserved cache node offering.</p>
82      */
WithReservedCacheNodesOfferingId(const char * value)83     inline ReservedCacheNodesOffering& WithReservedCacheNodesOfferingId(const char* value) { SetReservedCacheNodesOfferingId(value); return *this;}
84 
85 
86     /**
87      * <p>The cache node type for the reserved cache node.</p> <p>The following node
88      * types are supported by ElastiCache. Generally speaking, the current generation
89      * types provide more memory and computational power at lower cost when compared to
90      * their equivalent previous generation counterparts.</p> <ul> <li> <p>General
91      * purpose:</p> <ul> <li> <p>Current generation: </p> <p> <b>M6g node types</b>
92      * (available only for Redis engine version 5.0.6 onward and for Memcached engine
93      * version 1.5.16 onward).</p> <p> <code>cache.m6g.large</code>,
94      * <code>cache.m6g.xlarge</code>, <code>cache.m6g.2xlarge</code>,
95      * <code>cache.m6g.4xlarge</code>, <code>cache.m6g.8xlarge</code>,
96      * <code>cache.m6g.12xlarge</code>, <code>cache.m6g.16xlarge</code> </p>
97      * <p>For region availability, see <a
98      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported
99      * Node Types</a> </p>  <p> <b>M5 node types:</b>
100      * <code>cache.m5.large</code>, <code>cache.m5.xlarge</code>,
101      * <code>cache.m5.2xlarge</code>, <code>cache.m5.4xlarge</code>,
102      * <code>cache.m5.12xlarge</code>, <code>cache.m5.24xlarge</code> </p> <p> <b>M4
103      * node types:</b> <code>cache.m4.large</code>, <code>cache.m4.xlarge</code>,
104      * <code>cache.m4.2xlarge</code>, <code>cache.m4.4xlarge</code>,
105      * <code>cache.m4.10xlarge</code> </p> <p> <b>T3 node types:</b>
106      * <code>cache.t3.micro</code>, <code>cache.t3.small</code>,
107      * <code>cache.t3.medium</code> </p> <p> <b>T2 node types:</b>
108      * <code>cache.t2.micro</code>, <code>cache.t2.small</code>,
109      * <code>cache.t2.medium</code> </p> </li> <li> <p>Previous generation: (not
110      * recommended)</p> <p> <b>T1 node types:</b> <code>cache.t1.micro</code> </p> <p>
111      * <b>M1 node types:</b> <code>cache.m1.small</code>, <code>cache.m1.medium</code>,
112      * <code>cache.m1.large</code>, <code>cache.m1.xlarge</code> </p> <p> <b>M3 node
113      * types:</b> <code>cache.m3.medium</code>, <code>cache.m3.large</code>,
114      * <code>cache.m3.xlarge</code>, <code>cache.m3.2xlarge</code> </p> </li> </ul>
115      * </li> <li> <p>Compute optimized:</p> <ul> <li> <p>Previous generation: (not
116      * recommended)</p> <p> <b>C1 node types:</b> <code>cache.c1.xlarge</code> </p>
117      * </li> </ul> </li> <li> <p>Memory optimized:</p> <ul> <li> <p>Current generation:
118      * </p> <p> <b>R6g node types</b> (available only for Redis engine version 5.0.6
119      * onward and for Memcached engine version 1.5.16 onward).</p> <p>
120      * <code>cache.r6g.large</code>, <code>cache.r6g.xlarge</code>,
121      * <code>cache.r6g.2xlarge</code>, <code>cache.r6g.4xlarge</code>,
122      * <code>cache.r6g.8xlarge</code>, <code>cache.r6g.12xlarge</code>,
123      * <code>cache.r6g.16xlarge</code> </p>  <p>For region availability, see <a
124      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported
125      * Node Types</a> </p>  <p> <b>R5 node types:</b>
126      * <code>cache.r5.large</code>, <code>cache.r5.xlarge</code>,
127      * <code>cache.r5.2xlarge</code>, <code>cache.r5.4xlarge</code>,
128      * <code>cache.r5.12xlarge</code>, <code>cache.r5.24xlarge</code> </p> <p> <b>R4
129      * node types:</b> <code>cache.r4.large</code>, <code>cache.r4.xlarge</code>,
130      * <code>cache.r4.2xlarge</code>, <code>cache.r4.4xlarge</code>,
131      * <code>cache.r4.8xlarge</code>, <code>cache.r4.16xlarge</code> </p> </li> <li>
132      * <p>Previous generation: (not recommended)</p> <p> <b>M2 node types:</b>
133      * <code>cache.m2.xlarge</code>, <code>cache.m2.2xlarge</code>,
134      * <code>cache.m2.4xlarge</code> </p> <p> <b>R3 node types:</b>
135      * <code>cache.r3.large</code>, <code>cache.r3.xlarge</code>,
136      * <code>cache.r3.2xlarge</code>, <code>cache.r3.4xlarge</code>,
137      * <code>cache.r3.8xlarge</code> </p> </li> </ul> </li> </ul> <p> <b>Additional
138      * node type info</b> </p> <ul> <li> <p>All current generation instance types are
139      * created in Amazon VPC by default.</p> </li> <li> <p>Redis append-only files
140      * (AOF) are not supported for T1 or T2 instances.</p> </li> <li> <p>Redis Multi-AZ
141      * with automatic failover is not supported on T1 instances.</p> </li> <li>
142      * <p>Redis configuration variables <code>appendonly</code> and
143      * <code>appendfsync</code> are not supported on Redis version 2.8.22 and
144      * later.</p> </li> </ul>
145      */
GetCacheNodeType()146     inline const Aws::String& GetCacheNodeType() const{ return m_cacheNodeType; }
147 
148     /**
149      * <p>The cache node type for the reserved cache node.</p> <p>The following node
150      * types are supported by ElastiCache. Generally speaking, the current generation
151      * types provide more memory and computational power at lower cost when compared to
152      * their equivalent previous generation counterparts.</p> <ul> <li> <p>General
153      * purpose:</p> <ul> <li> <p>Current generation: </p> <p> <b>M6g node types</b>
154      * (available only for Redis engine version 5.0.6 onward and for Memcached engine
155      * version 1.5.16 onward).</p> <p> <code>cache.m6g.large</code>,
156      * <code>cache.m6g.xlarge</code>, <code>cache.m6g.2xlarge</code>,
157      * <code>cache.m6g.4xlarge</code>, <code>cache.m6g.8xlarge</code>,
158      * <code>cache.m6g.12xlarge</code>, <code>cache.m6g.16xlarge</code> </p>
159      * <p>For region availability, see <a
160      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported
161      * Node Types</a> </p>  <p> <b>M5 node types:</b>
162      * <code>cache.m5.large</code>, <code>cache.m5.xlarge</code>,
163      * <code>cache.m5.2xlarge</code>, <code>cache.m5.4xlarge</code>,
164      * <code>cache.m5.12xlarge</code>, <code>cache.m5.24xlarge</code> </p> <p> <b>M4
165      * node types:</b> <code>cache.m4.large</code>, <code>cache.m4.xlarge</code>,
166      * <code>cache.m4.2xlarge</code>, <code>cache.m4.4xlarge</code>,
167      * <code>cache.m4.10xlarge</code> </p> <p> <b>T3 node types:</b>
168      * <code>cache.t3.micro</code>, <code>cache.t3.small</code>,
169      * <code>cache.t3.medium</code> </p> <p> <b>T2 node types:</b>
170      * <code>cache.t2.micro</code>, <code>cache.t2.small</code>,
171      * <code>cache.t2.medium</code> </p> </li> <li> <p>Previous generation: (not
172      * recommended)</p> <p> <b>T1 node types:</b> <code>cache.t1.micro</code> </p> <p>
173      * <b>M1 node types:</b> <code>cache.m1.small</code>, <code>cache.m1.medium</code>,
174      * <code>cache.m1.large</code>, <code>cache.m1.xlarge</code> </p> <p> <b>M3 node
175      * types:</b> <code>cache.m3.medium</code>, <code>cache.m3.large</code>,
176      * <code>cache.m3.xlarge</code>, <code>cache.m3.2xlarge</code> </p> </li> </ul>
177      * </li> <li> <p>Compute optimized:</p> <ul> <li> <p>Previous generation: (not
178      * recommended)</p> <p> <b>C1 node types:</b> <code>cache.c1.xlarge</code> </p>
179      * </li> </ul> </li> <li> <p>Memory optimized:</p> <ul> <li> <p>Current generation:
180      * </p> <p> <b>R6g node types</b> (available only for Redis engine version 5.0.6
181      * onward and for Memcached engine version 1.5.16 onward).</p> <p>
182      * <code>cache.r6g.large</code>, <code>cache.r6g.xlarge</code>,
183      * <code>cache.r6g.2xlarge</code>, <code>cache.r6g.4xlarge</code>,
184      * <code>cache.r6g.8xlarge</code>, <code>cache.r6g.12xlarge</code>,
185      * <code>cache.r6g.16xlarge</code> </p>  <p>For region availability, see <a
186      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported
187      * Node Types</a> </p>  <p> <b>R5 node types:</b>
188      * <code>cache.r5.large</code>, <code>cache.r5.xlarge</code>,
189      * <code>cache.r5.2xlarge</code>, <code>cache.r5.4xlarge</code>,
190      * <code>cache.r5.12xlarge</code>, <code>cache.r5.24xlarge</code> </p> <p> <b>R4
191      * node types:</b> <code>cache.r4.large</code>, <code>cache.r4.xlarge</code>,
192      * <code>cache.r4.2xlarge</code>, <code>cache.r4.4xlarge</code>,
193      * <code>cache.r4.8xlarge</code>, <code>cache.r4.16xlarge</code> </p> </li> <li>
194      * <p>Previous generation: (not recommended)</p> <p> <b>M2 node types:</b>
195      * <code>cache.m2.xlarge</code>, <code>cache.m2.2xlarge</code>,
196      * <code>cache.m2.4xlarge</code> </p> <p> <b>R3 node types:</b>
197      * <code>cache.r3.large</code>, <code>cache.r3.xlarge</code>,
198      * <code>cache.r3.2xlarge</code>, <code>cache.r3.4xlarge</code>,
199      * <code>cache.r3.8xlarge</code> </p> </li> </ul> </li> </ul> <p> <b>Additional
200      * node type info</b> </p> <ul> <li> <p>All current generation instance types are
201      * created in Amazon VPC by default.</p> </li> <li> <p>Redis append-only files
202      * (AOF) are not supported for T1 or T2 instances.</p> </li> <li> <p>Redis Multi-AZ
203      * with automatic failover is not supported on T1 instances.</p> </li> <li>
204      * <p>Redis configuration variables <code>appendonly</code> and
205      * <code>appendfsync</code> are not supported on Redis version 2.8.22 and
206      * later.</p> </li> </ul>
207      */
CacheNodeTypeHasBeenSet()208     inline bool CacheNodeTypeHasBeenSet() const { return m_cacheNodeTypeHasBeenSet; }
209 
210     /**
211      * <p>The cache node type for the reserved cache node.</p> <p>The following node
212      * types are supported by ElastiCache. Generally speaking, the current generation
213      * types provide more memory and computational power at lower cost when compared to
214      * their equivalent previous generation counterparts.</p> <ul> <li> <p>General
215      * purpose:</p> <ul> <li> <p>Current generation: </p> <p> <b>M6g node types</b>
216      * (available only for Redis engine version 5.0.6 onward and for Memcached engine
217      * version 1.5.16 onward).</p> <p> <code>cache.m6g.large</code>,
218      * <code>cache.m6g.xlarge</code>, <code>cache.m6g.2xlarge</code>,
219      * <code>cache.m6g.4xlarge</code>, <code>cache.m6g.8xlarge</code>,
220      * <code>cache.m6g.12xlarge</code>, <code>cache.m6g.16xlarge</code> </p>
221      * <p>For region availability, see <a
222      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported
223      * Node Types</a> </p>  <p> <b>M5 node types:</b>
224      * <code>cache.m5.large</code>, <code>cache.m5.xlarge</code>,
225      * <code>cache.m5.2xlarge</code>, <code>cache.m5.4xlarge</code>,
226      * <code>cache.m5.12xlarge</code>, <code>cache.m5.24xlarge</code> </p> <p> <b>M4
227      * node types:</b> <code>cache.m4.large</code>, <code>cache.m4.xlarge</code>,
228      * <code>cache.m4.2xlarge</code>, <code>cache.m4.4xlarge</code>,
229      * <code>cache.m4.10xlarge</code> </p> <p> <b>T3 node types:</b>
230      * <code>cache.t3.micro</code>, <code>cache.t3.small</code>,
231      * <code>cache.t3.medium</code> </p> <p> <b>T2 node types:</b>
232      * <code>cache.t2.micro</code>, <code>cache.t2.small</code>,
233      * <code>cache.t2.medium</code> </p> </li> <li> <p>Previous generation: (not
234      * recommended)</p> <p> <b>T1 node types:</b> <code>cache.t1.micro</code> </p> <p>
235      * <b>M1 node types:</b> <code>cache.m1.small</code>, <code>cache.m1.medium</code>,
236      * <code>cache.m1.large</code>, <code>cache.m1.xlarge</code> </p> <p> <b>M3 node
237      * types:</b> <code>cache.m3.medium</code>, <code>cache.m3.large</code>,
238      * <code>cache.m3.xlarge</code>, <code>cache.m3.2xlarge</code> </p> </li> </ul>
239      * </li> <li> <p>Compute optimized:</p> <ul> <li> <p>Previous generation: (not
240      * recommended)</p> <p> <b>C1 node types:</b> <code>cache.c1.xlarge</code> </p>
241      * </li> </ul> </li> <li> <p>Memory optimized:</p> <ul> <li> <p>Current generation:
242      * </p> <p> <b>R6g node types</b> (available only for Redis engine version 5.0.6
243      * onward and for Memcached engine version 1.5.16 onward).</p> <p>
244      * <code>cache.r6g.large</code>, <code>cache.r6g.xlarge</code>,
245      * <code>cache.r6g.2xlarge</code>, <code>cache.r6g.4xlarge</code>,
246      * <code>cache.r6g.8xlarge</code>, <code>cache.r6g.12xlarge</code>,
247      * <code>cache.r6g.16xlarge</code> </p>  <p>For region availability, see <a
248      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported
249      * Node Types</a> </p>  <p> <b>R5 node types:</b>
250      * <code>cache.r5.large</code>, <code>cache.r5.xlarge</code>,
251      * <code>cache.r5.2xlarge</code>, <code>cache.r5.4xlarge</code>,
252      * <code>cache.r5.12xlarge</code>, <code>cache.r5.24xlarge</code> </p> <p> <b>R4
253      * node types:</b> <code>cache.r4.large</code>, <code>cache.r4.xlarge</code>,
254      * <code>cache.r4.2xlarge</code>, <code>cache.r4.4xlarge</code>,
255      * <code>cache.r4.8xlarge</code>, <code>cache.r4.16xlarge</code> </p> </li> <li>
256      * <p>Previous generation: (not recommended)</p> <p> <b>M2 node types:</b>
257      * <code>cache.m2.xlarge</code>, <code>cache.m2.2xlarge</code>,
258      * <code>cache.m2.4xlarge</code> </p> <p> <b>R3 node types:</b>
259      * <code>cache.r3.large</code>, <code>cache.r3.xlarge</code>,
260      * <code>cache.r3.2xlarge</code>, <code>cache.r3.4xlarge</code>,
261      * <code>cache.r3.8xlarge</code> </p> </li> </ul> </li> </ul> <p> <b>Additional
262      * node type info</b> </p> <ul> <li> <p>All current generation instance types are
263      * created in Amazon VPC by default.</p> </li> <li> <p>Redis append-only files
264      * (AOF) are not supported for T1 or T2 instances.</p> </li> <li> <p>Redis Multi-AZ
265      * with automatic failover is not supported on T1 instances.</p> </li> <li>
266      * <p>Redis configuration variables <code>appendonly</code> and
267      * <code>appendfsync</code> are not supported on Redis version 2.8.22 and
268      * later.</p> </li> </ul>
269      */
SetCacheNodeType(const Aws::String & value)270     inline void SetCacheNodeType(const Aws::String& value) { m_cacheNodeTypeHasBeenSet = true; m_cacheNodeType = value; }
271 
272     /**
273      * <p>The cache node type for the reserved cache node.</p> <p>The following node
274      * types are supported by ElastiCache. Generally speaking, the current generation
275      * types provide more memory and computational power at lower cost when compared to
276      * their equivalent previous generation counterparts.</p> <ul> <li> <p>General
277      * purpose:</p> <ul> <li> <p>Current generation: </p> <p> <b>M6g node types</b>
278      * (available only for Redis engine version 5.0.6 onward and for Memcached engine
279      * version 1.5.16 onward).</p> <p> <code>cache.m6g.large</code>,
280      * <code>cache.m6g.xlarge</code>, <code>cache.m6g.2xlarge</code>,
281      * <code>cache.m6g.4xlarge</code>, <code>cache.m6g.8xlarge</code>,
282      * <code>cache.m6g.12xlarge</code>, <code>cache.m6g.16xlarge</code> </p>
283      * <p>For region availability, see <a
284      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported
285      * Node Types</a> </p>  <p> <b>M5 node types:</b>
286      * <code>cache.m5.large</code>, <code>cache.m5.xlarge</code>,
287      * <code>cache.m5.2xlarge</code>, <code>cache.m5.4xlarge</code>,
288      * <code>cache.m5.12xlarge</code>, <code>cache.m5.24xlarge</code> </p> <p> <b>M4
289      * node types:</b> <code>cache.m4.large</code>, <code>cache.m4.xlarge</code>,
290      * <code>cache.m4.2xlarge</code>, <code>cache.m4.4xlarge</code>,
291      * <code>cache.m4.10xlarge</code> </p> <p> <b>T3 node types:</b>
292      * <code>cache.t3.micro</code>, <code>cache.t3.small</code>,
293      * <code>cache.t3.medium</code> </p> <p> <b>T2 node types:</b>
294      * <code>cache.t2.micro</code>, <code>cache.t2.small</code>,
295      * <code>cache.t2.medium</code> </p> </li> <li> <p>Previous generation: (not
296      * recommended)</p> <p> <b>T1 node types:</b> <code>cache.t1.micro</code> </p> <p>
297      * <b>M1 node types:</b> <code>cache.m1.small</code>, <code>cache.m1.medium</code>,
298      * <code>cache.m1.large</code>, <code>cache.m1.xlarge</code> </p> <p> <b>M3 node
299      * types:</b> <code>cache.m3.medium</code>, <code>cache.m3.large</code>,
300      * <code>cache.m3.xlarge</code>, <code>cache.m3.2xlarge</code> </p> </li> </ul>
301      * </li> <li> <p>Compute optimized:</p> <ul> <li> <p>Previous generation: (not
302      * recommended)</p> <p> <b>C1 node types:</b> <code>cache.c1.xlarge</code> </p>
303      * </li> </ul> </li> <li> <p>Memory optimized:</p> <ul> <li> <p>Current generation:
304      * </p> <p> <b>R6g node types</b> (available only for Redis engine version 5.0.6
305      * onward and for Memcached engine version 1.5.16 onward).</p> <p>
306      * <code>cache.r6g.large</code>, <code>cache.r6g.xlarge</code>,
307      * <code>cache.r6g.2xlarge</code>, <code>cache.r6g.4xlarge</code>,
308      * <code>cache.r6g.8xlarge</code>, <code>cache.r6g.12xlarge</code>,
309      * <code>cache.r6g.16xlarge</code> </p>  <p>For region availability, see <a
310      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported
311      * Node Types</a> </p>  <p> <b>R5 node types:</b>
312      * <code>cache.r5.large</code>, <code>cache.r5.xlarge</code>,
313      * <code>cache.r5.2xlarge</code>, <code>cache.r5.4xlarge</code>,
314      * <code>cache.r5.12xlarge</code>, <code>cache.r5.24xlarge</code> </p> <p> <b>R4
315      * node types:</b> <code>cache.r4.large</code>, <code>cache.r4.xlarge</code>,
316      * <code>cache.r4.2xlarge</code>, <code>cache.r4.4xlarge</code>,
317      * <code>cache.r4.8xlarge</code>, <code>cache.r4.16xlarge</code> </p> </li> <li>
318      * <p>Previous generation: (not recommended)</p> <p> <b>M2 node types:</b>
319      * <code>cache.m2.xlarge</code>, <code>cache.m2.2xlarge</code>,
320      * <code>cache.m2.4xlarge</code> </p> <p> <b>R3 node types:</b>
321      * <code>cache.r3.large</code>, <code>cache.r3.xlarge</code>,
322      * <code>cache.r3.2xlarge</code>, <code>cache.r3.4xlarge</code>,
323      * <code>cache.r3.8xlarge</code> </p> </li> </ul> </li> </ul> <p> <b>Additional
324      * node type info</b> </p> <ul> <li> <p>All current generation instance types are
325      * created in Amazon VPC by default.</p> </li> <li> <p>Redis append-only files
326      * (AOF) are not supported for T1 or T2 instances.</p> </li> <li> <p>Redis Multi-AZ
327      * with automatic failover is not supported on T1 instances.</p> </li> <li>
328      * <p>Redis configuration variables <code>appendonly</code> and
329      * <code>appendfsync</code> are not supported on Redis version 2.8.22 and
330      * later.</p> </li> </ul>
331      */
SetCacheNodeType(Aws::String && value)332     inline void SetCacheNodeType(Aws::String&& value) { m_cacheNodeTypeHasBeenSet = true; m_cacheNodeType = std::move(value); }
333 
334     /**
335      * <p>The cache node type for the reserved cache node.</p> <p>The following node
336      * types are supported by ElastiCache. Generally speaking, the current generation
337      * types provide more memory and computational power at lower cost when compared to
338      * their equivalent previous generation counterparts.</p> <ul> <li> <p>General
339      * purpose:</p> <ul> <li> <p>Current generation: </p> <p> <b>M6g node types</b>
340      * (available only for Redis engine version 5.0.6 onward and for Memcached engine
341      * version 1.5.16 onward).</p> <p> <code>cache.m6g.large</code>,
342      * <code>cache.m6g.xlarge</code>, <code>cache.m6g.2xlarge</code>,
343      * <code>cache.m6g.4xlarge</code>, <code>cache.m6g.8xlarge</code>,
344      * <code>cache.m6g.12xlarge</code>, <code>cache.m6g.16xlarge</code> </p>
345      * <p>For region availability, see <a
346      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported
347      * Node Types</a> </p>  <p> <b>M5 node types:</b>
348      * <code>cache.m5.large</code>, <code>cache.m5.xlarge</code>,
349      * <code>cache.m5.2xlarge</code>, <code>cache.m5.4xlarge</code>,
350      * <code>cache.m5.12xlarge</code>, <code>cache.m5.24xlarge</code> </p> <p> <b>M4
351      * node types:</b> <code>cache.m4.large</code>, <code>cache.m4.xlarge</code>,
352      * <code>cache.m4.2xlarge</code>, <code>cache.m4.4xlarge</code>,
353      * <code>cache.m4.10xlarge</code> </p> <p> <b>T3 node types:</b>
354      * <code>cache.t3.micro</code>, <code>cache.t3.small</code>,
355      * <code>cache.t3.medium</code> </p> <p> <b>T2 node types:</b>
356      * <code>cache.t2.micro</code>, <code>cache.t2.small</code>,
357      * <code>cache.t2.medium</code> </p> </li> <li> <p>Previous generation: (not
358      * recommended)</p> <p> <b>T1 node types:</b> <code>cache.t1.micro</code> </p> <p>
359      * <b>M1 node types:</b> <code>cache.m1.small</code>, <code>cache.m1.medium</code>,
360      * <code>cache.m1.large</code>, <code>cache.m1.xlarge</code> </p> <p> <b>M3 node
361      * types:</b> <code>cache.m3.medium</code>, <code>cache.m3.large</code>,
362      * <code>cache.m3.xlarge</code>, <code>cache.m3.2xlarge</code> </p> </li> </ul>
363      * </li> <li> <p>Compute optimized:</p> <ul> <li> <p>Previous generation: (not
364      * recommended)</p> <p> <b>C1 node types:</b> <code>cache.c1.xlarge</code> </p>
365      * </li> </ul> </li> <li> <p>Memory optimized:</p> <ul> <li> <p>Current generation:
366      * </p> <p> <b>R6g node types</b> (available only for Redis engine version 5.0.6
367      * onward and for Memcached engine version 1.5.16 onward).</p> <p>
368      * <code>cache.r6g.large</code>, <code>cache.r6g.xlarge</code>,
369      * <code>cache.r6g.2xlarge</code>, <code>cache.r6g.4xlarge</code>,
370      * <code>cache.r6g.8xlarge</code>, <code>cache.r6g.12xlarge</code>,
371      * <code>cache.r6g.16xlarge</code> </p>  <p>For region availability, see <a
372      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported
373      * Node Types</a> </p>  <p> <b>R5 node types:</b>
374      * <code>cache.r5.large</code>, <code>cache.r5.xlarge</code>,
375      * <code>cache.r5.2xlarge</code>, <code>cache.r5.4xlarge</code>,
376      * <code>cache.r5.12xlarge</code>, <code>cache.r5.24xlarge</code> </p> <p> <b>R4
377      * node types:</b> <code>cache.r4.large</code>, <code>cache.r4.xlarge</code>,
378      * <code>cache.r4.2xlarge</code>, <code>cache.r4.4xlarge</code>,
379      * <code>cache.r4.8xlarge</code>, <code>cache.r4.16xlarge</code> </p> </li> <li>
380      * <p>Previous generation: (not recommended)</p> <p> <b>M2 node types:</b>
381      * <code>cache.m2.xlarge</code>, <code>cache.m2.2xlarge</code>,
382      * <code>cache.m2.4xlarge</code> </p> <p> <b>R3 node types:</b>
383      * <code>cache.r3.large</code>, <code>cache.r3.xlarge</code>,
384      * <code>cache.r3.2xlarge</code>, <code>cache.r3.4xlarge</code>,
385      * <code>cache.r3.8xlarge</code> </p> </li> </ul> </li> </ul> <p> <b>Additional
386      * node type info</b> </p> <ul> <li> <p>All current generation instance types are
387      * created in Amazon VPC by default.</p> </li> <li> <p>Redis append-only files
388      * (AOF) are not supported for T1 or T2 instances.</p> </li> <li> <p>Redis Multi-AZ
389      * with automatic failover is not supported on T1 instances.</p> </li> <li>
390      * <p>Redis configuration variables <code>appendonly</code> and
391      * <code>appendfsync</code> are not supported on Redis version 2.8.22 and
392      * later.</p> </li> </ul>
393      */
SetCacheNodeType(const char * value)394     inline void SetCacheNodeType(const char* value) { m_cacheNodeTypeHasBeenSet = true; m_cacheNodeType.assign(value); }
395 
396     /**
397      * <p>The cache node type for the reserved cache node.</p> <p>The following node
398      * types are supported by ElastiCache. Generally speaking, the current generation
399      * types provide more memory and computational power at lower cost when compared to
400      * their equivalent previous generation counterparts.</p> <ul> <li> <p>General
401      * purpose:</p> <ul> <li> <p>Current generation: </p> <p> <b>M6g node types</b>
402      * (available only for Redis engine version 5.0.6 onward and for Memcached engine
403      * version 1.5.16 onward).</p> <p> <code>cache.m6g.large</code>,
404      * <code>cache.m6g.xlarge</code>, <code>cache.m6g.2xlarge</code>,
405      * <code>cache.m6g.4xlarge</code>, <code>cache.m6g.8xlarge</code>,
406      * <code>cache.m6g.12xlarge</code>, <code>cache.m6g.16xlarge</code> </p>
407      * <p>For region availability, see <a
408      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported
409      * Node Types</a> </p>  <p> <b>M5 node types:</b>
410      * <code>cache.m5.large</code>, <code>cache.m5.xlarge</code>,
411      * <code>cache.m5.2xlarge</code>, <code>cache.m5.4xlarge</code>,
412      * <code>cache.m5.12xlarge</code>, <code>cache.m5.24xlarge</code> </p> <p> <b>M4
413      * node types:</b> <code>cache.m4.large</code>, <code>cache.m4.xlarge</code>,
414      * <code>cache.m4.2xlarge</code>, <code>cache.m4.4xlarge</code>,
415      * <code>cache.m4.10xlarge</code> </p> <p> <b>T3 node types:</b>
416      * <code>cache.t3.micro</code>, <code>cache.t3.small</code>,
417      * <code>cache.t3.medium</code> </p> <p> <b>T2 node types:</b>
418      * <code>cache.t2.micro</code>, <code>cache.t2.small</code>,
419      * <code>cache.t2.medium</code> </p> </li> <li> <p>Previous generation: (not
420      * recommended)</p> <p> <b>T1 node types:</b> <code>cache.t1.micro</code> </p> <p>
421      * <b>M1 node types:</b> <code>cache.m1.small</code>, <code>cache.m1.medium</code>,
422      * <code>cache.m1.large</code>, <code>cache.m1.xlarge</code> </p> <p> <b>M3 node
423      * types:</b> <code>cache.m3.medium</code>, <code>cache.m3.large</code>,
424      * <code>cache.m3.xlarge</code>, <code>cache.m3.2xlarge</code> </p> </li> </ul>
425      * </li> <li> <p>Compute optimized:</p> <ul> <li> <p>Previous generation: (not
426      * recommended)</p> <p> <b>C1 node types:</b> <code>cache.c1.xlarge</code> </p>
427      * </li> </ul> </li> <li> <p>Memory optimized:</p> <ul> <li> <p>Current generation:
428      * </p> <p> <b>R6g node types</b> (available only for Redis engine version 5.0.6
429      * onward and for Memcached engine version 1.5.16 onward).</p> <p>
430      * <code>cache.r6g.large</code>, <code>cache.r6g.xlarge</code>,
431      * <code>cache.r6g.2xlarge</code>, <code>cache.r6g.4xlarge</code>,
432      * <code>cache.r6g.8xlarge</code>, <code>cache.r6g.12xlarge</code>,
433      * <code>cache.r6g.16xlarge</code> </p>  <p>For region availability, see <a
434      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported
435      * Node Types</a> </p>  <p> <b>R5 node types:</b>
436      * <code>cache.r5.large</code>, <code>cache.r5.xlarge</code>,
437      * <code>cache.r5.2xlarge</code>, <code>cache.r5.4xlarge</code>,
438      * <code>cache.r5.12xlarge</code>, <code>cache.r5.24xlarge</code> </p> <p> <b>R4
439      * node types:</b> <code>cache.r4.large</code>, <code>cache.r4.xlarge</code>,
440      * <code>cache.r4.2xlarge</code>, <code>cache.r4.4xlarge</code>,
441      * <code>cache.r4.8xlarge</code>, <code>cache.r4.16xlarge</code> </p> </li> <li>
442      * <p>Previous generation: (not recommended)</p> <p> <b>M2 node types:</b>
443      * <code>cache.m2.xlarge</code>, <code>cache.m2.2xlarge</code>,
444      * <code>cache.m2.4xlarge</code> </p> <p> <b>R3 node types:</b>
445      * <code>cache.r3.large</code>, <code>cache.r3.xlarge</code>,
446      * <code>cache.r3.2xlarge</code>, <code>cache.r3.4xlarge</code>,
447      * <code>cache.r3.8xlarge</code> </p> </li> </ul> </li> </ul> <p> <b>Additional
448      * node type info</b> </p> <ul> <li> <p>All current generation instance types are
449      * created in Amazon VPC by default.</p> </li> <li> <p>Redis append-only files
450      * (AOF) are not supported for T1 or T2 instances.</p> </li> <li> <p>Redis Multi-AZ
451      * with automatic failover is not supported on T1 instances.</p> </li> <li>
452      * <p>Redis configuration variables <code>appendonly</code> and
453      * <code>appendfsync</code> are not supported on Redis version 2.8.22 and
454      * later.</p> </li> </ul>
455      */
WithCacheNodeType(const Aws::String & value)456     inline ReservedCacheNodesOffering& WithCacheNodeType(const Aws::String& value) { SetCacheNodeType(value); return *this;}
457 
458     /**
459      * <p>The cache node type for the reserved cache node.</p> <p>The following node
460      * types are supported by ElastiCache. Generally speaking, the current generation
461      * types provide more memory and computational power at lower cost when compared to
462      * their equivalent previous generation counterparts.</p> <ul> <li> <p>General
463      * purpose:</p> <ul> <li> <p>Current generation: </p> <p> <b>M6g node types</b>
464      * (available only for Redis engine version 5.0.6 onward and for Memcached engine
465      * version 1.5.16 onward).</p> <p> <code>cache.m6g.large</code>,
466      * <code>cache.m6g.xlarge</code>, <code>cache.m6g.2xlarge</code>,
467      * <code>cache.m6g.4xlarge</code>, <code>cache.m6g.8xlarge</code>,
468      * <code>cache.m6g.12xlarge</code>, <code>cache.m6g.16xlarge</code> </p>
469      * <p>For region availability, see <a
470      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported
471      * Node Types</a> </p>  <p> <b>M5 node types:</b>
472      * <code>cache.m5.large</code>, <code>cache.m5.xlarge</code>,
473      * <code>cache.m5.2xlarge</code>, <code>cache.m5.4xlarge</code>,
474      * <code>cache.m5.12xlarge</code>, <code>cache.m5.24xlarge</code> </p> <p> <b>M4
475      * node types:</b> <code>cache.m4.large</code>, <code>cache.m4.xlarge</code>,
476      * <code>cache.m4.2xlarge</code>, <code>cache.m4.4xlarge</code>,
477      * <code>cache.m4.10xlarge</code> </p> <p> <b>T3 node types:</b>
478      * <code>cache.t3.micro</code>, <code>cache.t3.small</code>,
479      * <code>cache.t3.medium</code> </p> <p> <b>T2 node types:</b>
480      * <code>cache.t2.micro</code>, <code>cache.t2.small</code>,
481      * <code>cache.t2.medium</code> </p> </li> <li> <p>Previous generation: (not
482      * recommended)</p> <p> <b>T1 node types:</b> <code>cache.t1.micro</code> </p> <p>
483      * <b>M1 node types:</b> <code>cache.m1.small</code>, <code>cache.m1.medium</code>,
484      * <code>cache.m1.large</code>, <code>cache.m1.xlarge</code> </p> <p> <b>M3 node
485      * types:</b> <code>cache.m3.medium</code>, <code>cache.m3.large</code>,
486      * <code>cache.m3.xlarge</code>, <code>cache.m3.2xlarge</code> </p> </li> </ul>
487      * </li> <li> <p>Compute optimized:</p> <ul> <li> <p>Previous generation: (not
488      * recommended)</p> <p> <b>C1 node types:</b> <code>cache.c1.xlarge</code> </p>
489      * </li> </ul> </li> <li> <p>Memory optimized:</p> <ul> <li> <p>Current generation:
490      * </p> <p> <b>R6g node types</b> (available only for Redis engine version 5.0.6
491      * onward and for Memcached engine version 1.5.16 onward).</p> <p>
492      * <code>cache.r6g.large</code>, <code>cache.r6g.xlarge</code>,
493      * <code>cache.r6g.2xlarge</code>, <code>cache.r6g.4xlarge</code>,
494      * <code>cache.r6g.8xlarge</code>, <code>cache.r6g.12xlarge</code>,
495      * <code>cache.r6g.16xlarge</code> </p>  <p>For region availability, see <a
496      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported
497      * Node Types</a> </p>  <p> <b>R5 node types:</b>
498      * <code>cache.r5.large</code>, <code>cache.r5.xlarge</code>,
499      * <code>cache.r5.2xlarge</code>, <code>cache.r5.4xlarge</code>,
500      * <code>cache.r5.12xlarge</code>, <code>cache.r5.24xlarge</code> </p> <p> <b>R4
501      * node types:</b> <code>cache.r4.large</code>, <code>cache.r4.xlarge</code>,
502      * <code>cache.r4.2xlarge</code>, <code>cache.r4.4xlarge</code>,
503      * <code>cache.r4.8xlarge</code>, <code>cache.r4.16xlarge</code> </p> </li> <li>
504      * <p>Previous generation: (not recommended)</p> <p> <b>M2 node types:</b>
505      * <code>cache.m2.xlarge</code>, <code>cache.m2.2xlarge</code>,
506      * <code>cache.m2.4xlarge</code> </p> <p> <b>R3 node types:</b>
507      * <code>cache.r3.large</code>, <code>cache.r3.xlarge</code>,
508      * <code>cache.r3.2xlarge</code>, <code>cache.r3.4xlarge</code>,
509      * <code>cache.r3.8xlarge</code> </p> </li> </ul> </li> </ul> <p> <b>Additional
510      * node type info</b> </p> <ul> <li> <p>All current generation instance types are
511      * created in Amazon VPC by default.</p> </li> <li> <p>Redis append-only files
512      * (AOF) are not supported for T1 or T2 instances.</p> </li> <li> <p>Redis Multi-AZ
513      * with automatic failover is not supported on T1 instances.</p> </li> <li>
514      * <p>Redis configuration variables <code>appendonly</code> and
515      * <code>appendfsync</code> are not supported on Redis version 2.8.22 and
516      * later.</p> </li> </ul>
517      */
WithCacheNodeType(Aws::String && value)518     inline ReservedCacheNodesOffering& WithCacheNodeType(Aws::String&& value) { SetCacheNodeType(std::move(value)); return *this;}
519 
520     /**
521      * <p>The cache node type for the reserved cache node.</p> <p>The following node
522      * types are supported by ElastiCache. Generally speaking, the current generation
523      * types provide more memory and computational power at lower cost when compared to
524      * their equivalent previous generation counterparts.</p> <ul> <li> <p>General
525      * purpose:</p> <ul> <li> <p>Current generation: </p> <p> <b>M6g node types</b>
526      * (available only for Redis engine version 5.0.6 onward and for Memcached engine
527      * version 1.5.16 onward).</p> <p> <code>cache.m6g.large</code>,
528      * <code>cache.m6g.xlarge</code>, <code>cache.m6g.2xlarge</code>,
529      * <code>cache.m6g.4xlarge</code>, <code>cache.m6g.8xlarge</code>,
530      * <code>cache.m6g.12xlarge</code>, <code>cache.m6g.16xlarge</code> </p>
531      * <p>For region availability, see <a
532      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported
533      * Node Types</a> </p>  <p> <b>M5 node types:</b>
534      * <code>cache.m5.large</code>, <code>cache.m5.xlarge</code>,
535      * <code>cache.m5.2xlarge</code>, <code>cache.m5.4xlarge</code>,
536      * <code>cache.m5.12xlarge</code>, <code>cache.m5.24xlarge</code> </p> <p> <b>M4
537      * node types:</b> <code>cache.m4.large</code>, <code>cache.m4.xlarge</code>,
538      * <code>cache.m4.2xlarge</code>, <code>cache.m4.4xlarge</code>,
539      * <code>cache.m4.10xlarge</code> </p> <p> <b>T3 node types:</b>
540      * <code>cache.t3.micro</code>, <code>cache.t3.small</code>,
541      * <code>cache.t3.medium</code> </p> <p> <b>T2 node types:</b>
542      * <code>cache.t2.micro</code>, <code>cache.t2.small</code>,
543      * <code>cache.t2.medium</code> </p> </li> <li> <p>Previous generation: (not
544      * recommended)</p> <p> <b>T1 node types:</b> <code>cache.t1.micro</code> </p> <p>
545      * <b>M1 node types:</b> <code>cache.m1.small</code>, <code>cache.m1.medium</code>,
546      * <code>cache.m1.large</code>, <code>cache.m1.xlarge</code> </p> <p> <b>M3 node
547      * types:</b> <code>cache.m3.medium</code>, <code>cache.m3.large</code>,
548      * <code>cache.m3.xlarge</code>, <code>cache.m3.2xlarge</code> </p> </li> </ul>
549      * </li> <li> <p>Compute optimized:</p> <ul> <li> <p>Previous generation: (not
550      * recommended)</p> <p> <b>C1 node types:</b> <code>cache.c1.xlarge</code> </p>
551      * </li> </ul> </li> <li> <p>Memory optimized:</p> <ul> <li> <p>Current generation:
552      * </p> <p> <b>R6g node types</b> (available only for Redis engine version 5.0.6
553      * onward and for Memcached engine version 1.5.16 onward).</p> <p>
554      * <code>cache.r6g.large</code>, <code>cache.r6g.xlarge</code>,
555      * <code>cache.r6g.2xlarge</code>, <code>cache.r6g.4xlarge</code>,
556      * <code>cache.r6g.8xlarge</code>, <code>cache.r6g.12xlarge</code>,
557      * <code>cache.r6g.16xlarge</code> </p>  <p>For region availability, see <a
558      * href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported
559      * Node Types</a> </p>  <p> <b>R5 node types:</b>
560      * <code>cache.r5.large</code>, <code>cache.r5.xlarge</code>,
561      * <code>cache.r5.2xlarge</code>, <code>cache.r5.4xlarge</code>,
562      * <code>cache.r5.12xlarge</code>, <code>cache.r5.24xlarge</code> </p> <p> <b>R4
563      * node types:</b> <code>cache.r4.large</code>, <code>cache.r4.xlarge</code>,
564      * <code>cache.r4.2xlarge</code>, <code>cache.r4.4xlarge</code>,
565      * <code>cache.r4.8xlarge</code>, <code>cache.r4.16xlarge</code> </p> </li> <li>
566      * <p>Previous generation: (not recommended)</p> <p> <b>M2 node types:</b>
567      * <code>cache.m2.xlarge</code>, <code>cache.m2.2xlarge</code>,
568      * <code>cache.m2.4xlarge</code> </p> <p> <b>R3 node types:</b>
569      * <code>cache.r3.large</code>, <code>cache.r3.xlarge</code>,
570      * <code>cache.r3.2xlarge</code>, <code>cache.r3.4xlarge</code>,
571      * <code>cache.r3.8xlarge</code> </p> </li> </ul> </li> </ul> <p> <b>Additional
572      * node type info</b> </p> <ul> <li> <p>All current generation instance types are
573      * created in Amazon VPC by default.</p> </li> <li> <p>Redis append-only files
574      * (AOF) are not supported for T1 or T2 instances.</p> </li> <li> <p>Redis Multi-AZ
575      * with automatic failover is not supported on T1 instances.</p> </li> <li>
576      * <p>Redis configuration variables <code>appendonly</code> and
577      * <code>appendfsync</code> are not supported on Redis version 2.8.22 and
578      * later.</p> </li> </ul>
579      */
WithCacheNodeType(const char * value)580     inline ReservedCacheNodesOffering& WithCacheNodeType(const char* value) { SetCacheNodeType(value); return *this;}
581 
582 
583     /**
584      * <p>The duration of the offering. in seconds.</p>
585      */
GetDuration()586     inline int GetDuration() const{ return m_duration; }
587 
588     /**
589      * <p>The duration of the offering. in seconds.</p>
590      */
DurationHasBeenSet()591     inline bool DurationHasBeenSet() const { return m_durationHasBeenSet; }
592 
593     /**
594      * <p>The duration of the offering. in seconds.</p>
595      */
SetDuration(int value)596     inline void SetDuration(int value) { m_durationHasBeenSet = true; m_duration = value; }
597 
598     /**
599      * <p>The duration of the offering. in seconds.</p>
600      */
WithDuration(int value)601     inline ReservedCacheNodesOffering& WithDuration(int value) { SetDuration(value); return *this;}
602 
603 
604     /**
605      * <p>The fixed price charged for this offering.</p>
606      */
GetFixedPrice()607     inline double GetFixedPrice() const{ return m_fixedPrice; }
608 
609     /**
610      * <p>The fixed price charged for this offering.</p>
611      */
FixedPriceHasBeenSet()612     inline bool FixedPriceHasBeenSet() const { return m_fixedPriceHasBeenSet; }
613 
614     /**
615      * <p>The fixed price charged for this offering.</p>
616      */
SetFixedPrice(double value)617     inline void SetFixedPrice(double value) { m_fixedPriceHasBeenSet = true; m_fixedPrice = value; }
618 
619     /**
620      * <p>The fixed price charged for this offering.</p>
621      */
WithFixedPrice(double value)622     inline ReservedCacheNodesOffering& WithFixedPrice(double value) { SetFixedPrice(value); return *this;}
623 
624 
625     /**
626      * <p>The hourly price charged for this offering.</p>
627      */
GetUsagePrice()628     inline double GetUsagePrice() const{ return m_usagePrice; }
629 
630     /**
631      * <p>The hourly price charged for this offering.</p>
632      */
UsagePriceHasBeenSet()633     inline bool UsagePriceHasBeenSet() const { return m_usagePriceHasBeenSet; }
634 
635     /**
636      * <p>The hourly price charged for this offering.</p>
637      */
SetUsagePrice(double value)638     inline void SetUsagePrice(double value) { m_usagePriceHasBeenSet = true; m_usagePrice = value; }
639 
640     /**
641      * <p>The hourly price charged for this offering.</p>
642      */
WithUsagePrice(double value)643     inline ReservedCacheNodesOffering& WithUsagePrice(double value) { SetUsagePrice(value); return *this;}
644 
645 
646     /**
647      * <p>The cache engine used by the offering.</p>
648      */
GetProductDescription()649     inline const Aws::String& GetProductDescription() const{ return m_productDescription; }
650 
651     /**
652      * <p>The cache engine used by the offering.</p>
653      */
ProductDescriptionHasBeenSet()654     inline bool ProductDescriptionHasBeenSet() const { return m_productDescriptionHasBeenSet; }
655 
656     /**
657      * <p>The cache engine used by the offering.</p>
658      */
SetProductDescription(const Aws::String & value)659     inline void SetProductDescription(const Aws::String& value) { m_productDescriptionHasBeenSet = true; m_productDescription = value; }
660 
661     /**
662      * <p>The cache engine used by the offering.</p>
663      */
SetProductDescription(Aws::String && value)664     inline void SetProductDescription(Aws::String&& value) { m_productDescriptionHasBeenSet = true; m_productDescription = std::move(value); }
665 
666     /**
667      * <p>The cache engine used by the offering.</p>
668      */
SetProductDescription(const char * value)669     inline void SetProductDescription(const char* value) { m_productDescriptionHasBeenSet = true; m_productDescription.assign(value); }
670 
671     /**
672      * <p>The cache engine used by the offering.</p>
673      */
WithProductDescription(const Aws::String & value)674     inline ReservedCacheNodesOffering& WithProductDescription(const Aws::String& value) { SetProductDescription(value); return *this;}
675 
676     /**
677      * <p>The cache engine used by the offering.</p>
678      */
WithProductDescription(Aws::String && value)679     inline ReservedCacheNodesOffering& WithProductDescription(Aws::String&& value) { SetProductDescription(std::move(value)); return *this;}
680 
681     /**
682      * <p>The cache engine used by the offering.</p>
683      */
WithProductDescription(const char * value)684     inline ReservedCacheNodesOffering& WithProductDescription(const char* value) { SetProductDescription(value); return *this;}
685 
686 
687     /**
688      * <p>The offering type.</p>
689      */
GetOfferingType()690     inline const Aws::String& GetOfferingType() const{ return m_offeringType; }
691 
692     /**
693      * <p>The offering type.</p>
694      */
OfferingTypeHasBeenSet()695     inline bool OfferingTypeHasBeenSet() const { return m_offeringTypeHasBeenSet; }
696 
697     /**
698      * <p>The offering type.</p>
699      */
SetOfferingType(const Aws::String & value)700     inline void SetOfferingType(const Aws::String& value) { m_offeringTypeHasBeenSet = true; m_offeringType = value; }
701 
702     /**
703      * <p>The offering type.</p>
704      */
SetOfferingType(Aws::String && value)705     inline void SetOfferingType(Aws::String&& value) { m_offeringTypeHasBeenSet = true; m_offeringType = std::move(value); }
706 
707     /**
708      * <p>The offering type.</p>
709      */
SetOfferingType(const char * value)710     inline void SetOfferingType(const char* value) { m_offeringTypeHasBeenSet = true; m_offeringType.assign(value); }
711 
712     /**
713      * <p>The offering type.</p>
714      */
WithOfferingType(const Aws::String & value)715     inline ReservedCacheNodesOffering& WithOfferingType(const Aws::String& value) { SetOfferingType(value); return *this;}
716 
717     /**
718      * <p>The offering type.</p>
719      */
WithOfferingType(Aws::String && value)720     inline ReservedCacheNodesOffering& WithOfferingType(Aws::String&& value) { SetOfferingType(std::move(value)); return *this;}
721 
722     /**
723      * <p>The offering type.</p>
724      */
WithOfferingType(const char * value)725     inline ReservedCacheNodesOffering& WithOfferingType(const char* value) { SetOfferingType(value); return *this;}
726 
727 
728     /**
729      * <p>The recurring price charged to run this reserved cache node.</p>
730      */
GetRecurringCharges()731     inline const Aws::Vector<RecurringCharge>& GetRecurringCharges() const{ return m_recurringCharges; }
732 
733     /**
734      * <p>The recurring price charged to run this reserved cache node.</p>
735      */
RecurringChargesHasBeenSet()736     inline bool RecurringChargesHasBeenSet() const { return m_recurringChargesHasBeenSet; }
737 
738     /**
739      * <p>The recurring price charged to run this reserved cache node.</p>
740      */
SetRecurringCharges(const Aws::Vector<RecurringCharge> & value)741     inline void SetRecurringCharges(const Aws::Vector<RecurringCharge>& value) { m_recurringChargesHasBeenSet = true; m_recurringCharges = value; }
742 
743     /**
744      * <p>The recurring price charged to run this reserved cache node.</p>
745      */
SetRecurringCharges(Aws::Vector<RecurringCharge> && value)746     inline void SetRecurringCharges(Aws::Vector<RecurringCharge>&& value) { m_recurringChargesHasBeenSet = true; m_recurringCharges = std::move(value); }
747 
748     /**
749      * <p>The recurring price charged to run this reserved cache node.</p>
750      */
WithRecurringCharges(const Aws::Vector<RecurringCharge> & value)751     inline ReservedCacheNodesOffering& WithRecurringCharges(const Aws::Vector<RecurringCharge>& value) { SetRecurringCharges(value); return *this;}
752 
753     /**
754      * <p>The recurring price charged to run this reserved cache node.</p>
755      */
WithRecurringCharges(Aws::Vector<RecurringCharge> && value)756     inline ReservedCacheNodesOffering& WithRecurringCharges(Aws::Vector<RecurringCharge>&& value) { SetRecurringCharges(std::move(value)); return *this;}
757 
758     /**
759      * <p>The recurring price charged to run this reserved cache node.</p>
760      */
AddRecurringCharges(const RecurringCharge & value)761     inline ReservedCacheNodesOffering& AddRecurringCharges(const RecurringCharge& value) { m_recurringChargesHasBeenSet = true; m_recurringCharges.push_back(value); return *this; }
762 
763     /**
764      * <p>The recurring price charged to run this reserved cache node.</p>
765      */
AddRecurringCharges(RecurringCharge && value)766     inline ReservedCacheNodesOffering& AddRecurringCharges(RecurringCharge&& value) { m_recurringChargesHasBeenSet = true; m_recurringCharges.push_back(std::move(value)); return *this; }
767 
768   private:
769 
770     Aws::String m_reservedCacheNodesOfferingId;
771     bool m_reservedCacheNodesOfferingIdHasBeenSet;
772 
773     Aws::String m_cacheNodeType;
774     bool m_cacheNodeTypeHasBeenSet;
775 
776     int m_duration;
777     bool m_durationHasBeenSet;
778 
779     double m_fixedPrice;
780     bool m_fixedPriceHasBeenSet;
781 
782     double m_usagePrice;
783     bool m_usagePriceHasBeenSet;
784 
785     Aws::String m_productDescription;
786     bool m_productDescriptionHasBeenSet;
787 
788     Aws::String m_offeringType;
789     bool m_offeringTypeHasBeenSet;
790 
791     Aws::Vector<RecurringCharge> m_recurringCharges;
792     bool m_recurringChargesHasBeenSet;
793   };
794 
795 } // namespace Model
796 } // namespace ElastiCache
797 } // namespace Aws
798