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/redshift/Redshift_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/DateTime.h>
11 #include <aws/core/utils/memory/stl/AWSVector.h>
12 #include <aws/redshift/model/ReservedNodeOfferingType.h>
13 #include <aws/redshift/model/RecurringCharge.h>
14 #include <utility>
15 
16 namespace Aws
17 {
18 namespace Utils
19 {
20 namespace Xml
21 {
22   class XmlNode;
23 } // namespace Xml
24 } // namespace Utils
25 namespace Redshift
26 {
27 namespace Model
28 {
29 
30   /**
31    * <p>Describes a reserved node. You can call the
32    * <a>DescribeReservedNodeOfferings</a> API to obtain the available reserved node
33    * offerings. </p><p><h3>See Also:</h3>   <a
34    * href="http://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ReservedNode">AWS
35    * API Reference</a></p>
36    */
37   class AWS_REDSHIFT_API ReservedNode
38   {
39   public:
40     ReservedNode();
41     ReservedNode(const Aws::Utils::Xml::XmlNode& xmlNode);
42     ReservedNode& operator=(const Aws::Utils::Xml::XmlNode& xmlNode);
43 
44     void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const;
45     void OutputToStream(Aws::OStream& oStream, const char* location) const;
46 
47 
48     /**
49      * <p>The unique identifier for the reservation.</p>
50      */
GetReservedNodeId()51     inline const Aws::String& GetReservedNodeId() const{ return m_reservedNodeId; }
52 
53     /**
54      * <p>The unique identifier for the reservation.</p>
55      */
ReservedNodeIdHasBeenSet()56     inline bool ReservedNodeIdHasBeenSet() const { return m_reservedNodeIdHasBeenSet; }
57 
58     /**
59      * <p>The unique identifier for the reservation.</p>
60      */
SetReservedNodeId(const Aws::String & value)61     inline void SetReservedNodeId(const Aws::String& value) { m_reservedNodeIdHasBeenSet = true; m_reservedNodeId = value; }
62 
63     /**
64      * <p>The unique identifier for the reservation.</p>
65      */
SetReservedNodeId(Aws::String && value)66     inline void SetReservedNodeId(Aws::String&& value) { m_reservedNodeIdHasBeenSet = true; m_reservedNodeId = std::move(value); }
67 
68     /**
69      * <p>The unique identifier for the reservation.</p>
70      */
SetReservedNodeId(const char * value)71     inline void SetReservedNodeId(const char* value) { m_reservedNodeIdHasBeenSet = true; m_reservedNodeId.assign(value); }
72 
73     /**
74      * <p>The unique identifier for the reservation.</p>
75      */
WithReservedNodeId(const Aws::String & value)76     inline ReservedNode& WithReservedNodeId(const Aws::String& value) { SetReservedNodeId(value); return *this;}
77 
78     /**
79      * <p>The unique identifier for the reservation.</p>
80      */
WithReservedNodeId(Aws::String && value)81     inline ReservedNode& WithReservedNodeId(Aws::String&& value) { SetReservedNodeId(std::move(value)); return *this;}
82 
83     /**
84      * <p>The unique identifier for the reservation.</p>
85      */
WithReservedNodeId(const char * value)86     inline ReservedNode& WithReservedNodeId(const char* value) { SetReservedNodeId(value); return *this;}
87 
88 
89     /**
90      * <p>The identifier for the reserved node offering.</p>
91      */
GetReservedNodeOfferingId()92     inline const Aws::String& GetReservedNodeOfferingId() const{ return m_reservedNodeOfferingId; }
93 
94     /**
95      * <p>The identifier for the reserved node offering.</p>
96      */
ReservedNodeOfferingIdHasBeenSet()97     inline bool ReservedNodeOfferingIdHasBeenSet() const { return m_reservedNodeOfferingIdHasBeenSet; }
98 
99     /**
100      * <p>The identifier for the reserved node offering.</p>
101      */
SetReservedNodeOfferingId(const Aws::String & value)102     inline void SetReservedNodeOfferingId(const Aws::String& value) { m_reservedNodeOfferingIdHasBeenSet = true; m_reservedNodeOfferingId = value; }
103 
104     /**
105      * <p>The identifier for the reserved node offering.</p>
106      */
SetReservedNodeOfferingId(Aws::String && value)107     inline void SetReservedNodeOfferingId(Aws::String&& value) { m_reservedNodeOfferingIdHasBeenSet = true; m_reservedNodeOfferingId = std::move(value); }
108 
109     /**
110      * <p>The identifier for the reserved node offering.</p>
111      */
SetReservedNodeOfferingId(const char * value)112     inline void SetReservedNodeOfferingId(const char* value) { m_reservedNodeOfferingIdHasBeenSet = true; m_reservedNodeOfferingId.assign(value); }
113 
114     /**
115      * <p>The identifier for the reserved node offering.</p>
116      */
WithReservedNodeOfferingId(const Aws::String & value)117     inline ReservedNode& WithReservedNodeOfferingId(const Aws::String& value) { SetReservedNodeOfferingId(value); return *this;}
118 
119     /**
120      * <p>The identifier for the reserved node offering.</p>
121      */
WithReservedNodeOfferingId(Aws::String && value)122     inline ReservedNode& WithReservedNodeOfferingId(Aws::String&& value) { SetReservedNodeOfferingId(std::move(value)); return *this;}
123 
124     /**
125      * <p>The identifier for the reserved node offering.</p>
126      */
WithReservedNodeOfferingId(const char * value)127     inline ReservedNode& WithReservedNodeOfferingId(const char* value) { SetReservedNodeOfferingId(value); return *this;}
128 
129 
130     /**
131      * <p>The node type of the reserved node.</p>
132      */
GetNodeType()133     inline const Aws::String& GetNodeType() const{ return m_nodeType; }
134 
135     /**
136      * <p>The node type of the reserved node.</p>
137      */
NodeTypeHasBeenSet()138     inline bool NodeTypeHasBeenSet() const { return m_nodeTypeHasBeenSet; }
139 
140     /**
141      * <p>The node type of the reserved node.</p>
142      */
SetNodeType(const Aws::String & value)143     inline void SetNodeType(const Aws::String& value) { m_nodeTypeHasBeenSet = true; m_nodeType = value; }
144 
145     /**
146      * <p>The node type of the reserved node.</p>
147      */
SetNodeType(Aws::String && value)148     inline void SetNodeType(Aws::String&& value) { m_nodeTypeHasBeenSet = true; m_nodeType = std::move(value); }
149 
150     /**
151      * <p>The node type of the reserved node.</p>
152      */
SetNodeType(const char * value)153     inline void SetNodeType(const char* value) { m_nodeTypeHasBeenSet = true; m_nodeType.assign(value); }
154 
155     /**
156      * <p>The node type of the reserved node.</p>
157      */
WithNodeType(const Aws::String & value)158     inline ReservedNode& WithNodeType(const Aws::String& value) { SetNodeType(value); return *this;}
159 
160     /**
161      * <p>The node type of the reserved node.</p>
162      */
WithNodeType(Aws::String && value)163     inline ReservedNode& WithNodeType(Aws::String&& value) { SetNodeType(std::move(value)); return *this;}
164 
165     /**
166      * <p>The node type of the reserved node.</p>
167      */
WithNodeType(const char * value)168     inline ReservedNode& WithNodeType(const char* value) { SetNodeType(value); return *this;}
169 
170 
171     /**
172      * <p>The time the reservation started. You purchase a reserved node offering for a
173      * duration. This is the start time of that duration.</p>
174      */
GetStartTime()175     inline const Aws::Utils::DateTime& GetStartTime() const{ return m_startTime; }
176 
177     /**
178      * <p>The time the reservation started. You purchase a reserved node offering for a
179      * duration. This is the start time of that duration.</p>
180      */
StartTimeHasBeenSet()181     inline bool StartTimeHasBeenSet() const { return m_startTimeHasBeenSet; }
182 
183     /**
184      * <p>The time the reservation started. You purchase a reserved node offering for a
185      * duration. This is the start time of that duration.</p>
186      */
SetStartTime(const Aws::Utils::DateTime & value)187     inline void SetStartTime(const Aws::Utils::DateTime& value) { m_startTimeHasBeenSet = true; m_startTime = value; }
188 
189     /**
190      * <p>The time the reservation started. You purchase a reserved node offering for a
191      * duration. This is the start time of that duration.</p>
192      */
SetStartTime(Aws::Utils::DateTime && value)193     inline void SetStartTime(Aws::Utils::DateTime&& value) { m_startTimeHasBeenSet = true; m_startTime = std::move(value); }
194 
195     /**
196      * <p>The time the reservation started. You purchase a reserved node offering for a
197      * duration. This is the start time of that duration.</p>
198      */
WithStartTime(const Aws::Utils::DateTime & value)199     inline ReservedNode& WithStartTime(const Aws::Utils::DateTime& value) { SetStartTime(value); return *this;}
200 
201     /**
202      * <p>The time the reservation started. You purchase a reserved node offering for a
203      * duration. This is the start time of that duration.</p>
204      */
WithStartTime(Aws::Utils::DateTime && value)205     inline ReservedNode& WithStartTime(Aws::Utils::DateTime&& value) { SetStartTime(std::move(value)); return *this;}
206 
207 
208     /**
209      * <p>The duration of the node reservation in seconds.</p>
210      */
GetDuration()211     inline int GetDuration() const{ return m_duration; }
212 
213     /**
214      * <p>The duration of the node reservation in seconds.</p>
215      */
DurationHasBeenSet()216     inline bool DurationHasBeenSet() const { return m_durationHasBeenSet; }
217 
218     /**
219      * <p>The duration of the node reservation in seconds.</p>
220      */
SetDuration(int value)221     inline void SetDuration(int value) { m_durationHasBeenSet = true; m_duration = value; }
222 
223     /**
224      * <p>The duration of the node reservation in seconds.</p>
225      */
WithDuration(int value)226     inline ReservedNode& WithDuration(int value) { SetDuration(value); return *this;}
227 
228 
229     /**
230      * <p>The fixed cost Amazon Redshift charges you for this reserved node.</p>
231      */
GetFixedPrice()232     inline double GetFixedPrice() const{ return m_fixedPrice; }
233 
234     /**
235      * <p>The fixed cost Amazon Redshift charges you for this reserved node.</p>
236      */
FixedPriceHasBeenSet()237     inline bool FixedPriceHasBeenSet() const { return m_fixedPriceHasBeenSet; }
238 
239     /**
240      * <p>The fixed cost Amazon Redshift charges you for this reserved node.</p>
241      */
SetFixedPrice(double value)242     inline void SetFixedPrice(double value) { m_fixedPriceHasBeenSet = true; m_fixedPrice = value; }
243 
244     /**
245      * <p>The fixed cost Amazon Redshift charges you for this reserved node.</p>
246      */
WithFixedPrice(double value)247     inline ReservedNode& WithFixedPrice(double value) { SetFixedPrice(value); return *this;}
248 
249 
250     /**
251      * <p>The hourly rate Amazon Redshift charges you for this reserved node.</p>
252      */
GetUsagePrice()253     inline double GetUsagePrice() const{ return m_usagePrice; }
254 
255     /**
256      * <p>The hourly rate Amazon Redshift charges you for this reserved node.</p>
257      */
UsagePriceHasBeenSet()258     inline bool UsagePriceHasBeenSet() const { return m_usagePriceHasBeenSet; }
259 
260     /**
261      * <p>The hourly rate Amazon Redshift charges you for this reserved node.</p>
262      */
SetUsagePrice(double value)263     inline void SetUsagePrice(double value) { m_usagePriceHasBeenSet = true; m_usagePrice = value; }
264 
265     /**
266      * <p>The hourly rate Amazon Redshift charges you for this reserved node.</p>
267      */
WithUsagePrice(double value)268     inline ReservedNode& WithUsagePrice(double value) { SetUsagePrice(value); return *this;}
269 
270 
271     /**
272      * <p>The currency code for the reserved cluster.</p>
273      */
GetCurrencyCode()274     inline const Aws::String& GetCurrencyCode() const{ return m_currencyCode; }
275 
276     /**
277      * <p>The currency code for the reserved cluster.</p>
278      */
CurrencyCodeHasBeenSet()279     inline bool CurrencyCodeHasBeenSet() const { return m_currencyCodeHasBeenSet; }
280 
281     /**
282      * <p>The currency code for the reserved cluster.</p>
283      */
SetCurrencyCode(const Aws::String & value)284     inline void SetCurrencyCode(const Aws::String& value) { m_currencyCodeHasBeenSet = true; m_currencyCode = value; }
285 
286     /**
287      * <p>The currency code for the reserved cluster.</p>
288      */
SetCurrencyCode(Aws::String && value)289     inline void SetCurrencyCode(Aws::String&& value) { m_currencyCodeHasBeenSet = true; m_currencyCode = std::move(value); }
290 
291     /**
292      * <p>The currency code for the reserved cluster.</p>
293      */
SetCurrencyCode(const char * value)294     inline void SetCurrencyCode(const char* value) { m_currencyCodeHasBeenSet = true; m_currencyCode.assign(value); }
295 
296     /**
297      * <p>The currency code for the reserved cluster.</p>
298      */
WithCurrencyCode(const Aws::String & value)299     inline ReservedNode& WithCurrencyCode(const Aws::String& value) { SetCurrencyCode(value); return *this;}
300 
301     /**
302      * <p>The currency code for the reserved cluster.</p>
303      */
WithCurrencyCode(Aws::String && value)304     inline ReservedNode& WithCurrencyCode(Aws::String&& value) { SetCurrencyCode(std::move(value)); return *this;}
305 
306     /**
307      * <p>The currency code for the reserved cluster.</p>
308      */
WithCurrencyCode(const char * value)309     inline ReservedNode& WithCurrencyCode(const char* value) { SetCurrencyCode(value); return *this;}
310 
311 
312     /**
313      * <p>The number of reserved compute nodes.</p>
314      */
GetNodeCount()315     inline int GetNodeCount() const{ return m_nodeCount; }
316 
317     /**
318      * <p>The number of reserved compute nodes.</p>
319      */
NodeCountHasBeenSet()320     inline bool NodeCountHasBeenSet() const { return m_nodeCountHasBeenSet; }
321 
322     /**
323      * <p>The number of reserved compute nodes.</p>
324      */
SetNodeCount(int value)325     inline void SetNodeCount(int value) { m_nodeCountHasBeenSet = true; m_nodeCount = value; }
326 
327     /**
328      * <p>The number of reserved compute nodes.</p>
329      */
WithNodeCount(int value)330     inline ReservedNode& WithNodeCount(int value) { SetNodeCount(value); return *this;}
331 
332 
333     /**
334      * <p>The state of the reserved compute node.</p> <p>Possible Values:</p> <ul> <li>
335      * <p>pending-payment-This reserved node has recently been purchased, and the sale
336      * has been approved, but payment has not yet been confirmed.</p> </li> <li>
337      * <p>active-This reserved node is owned by the caller and is available for
338      * use.</p> </li> <li> <p>payment-failed-Payment failed for the purchase
339      * attempt.</p> </li> <li> <p>retired-The reserved node is no longer available.
340      * </p> </li> <li> <p>exchanging-The owner is exchanging the reserved node for
341      * another reserved node.</p> </li> </ul>
342      */
GetState()343     inline const Aws::String& GetState() const{ return m_state; }
344 
345     /**
346      * <p>The state of the reserved compute node.</p> <p>Possible Values:</p> <ul> <li>
347      * <p>pending-payment-This reserved node has recently been purchased, and the sale
348      * has been approved, but payment has not yet been confirmed.</p> </li> <li>
349      * <p>active-This reserved node is owned by the caller and is available for
350      * use.</p> </li> <li> <p>payment-failed-Payment failed for the purchase
351      * attempt.</p> </li> <li> <p>retired-The reserved node is no longer available.
352      * </p> </li> <li> <p>exchanging-The owner is exchanging the reserved node for
353      * another reserved node.</p> </li> </ul>
354      */
StateHasBeenSet()355     inline bool StateHasBeenSet() const { return m_stateHasBeenSet; }
356 
357     /**
358      * <p>The state of the reserved compute node.</p> <p>Possible Values:</p> <ul> <li>
359      * <p>pending-payment-This reserved node has recently been purchased, and the sale
360      * has been approved, but payment has not yet been confirmed.</p> </li> <li>
361      * <p>active-This reserved node is owned by the caller and is available for
362      * use.</p> </li> <li> <p>payment-failed-Payment failed for the purchase
363      * attempt.</p> </li> <li> <p>retired-The reserved node is no longer available.
364      * </p> </li> <li> <p>exchanging-The owner is exchanging the reserved node for
365      * another reserved node.</p> </li> </ul>
366      */
SetState(const Aws::String & value)367     inline void SetState(const Aws::String& value) { m_stateHasBeenSet = true; m_state = value; }
368 
369     /**
370      * <p>The state of the reserved compute node.</p> <p>Possible Values:</p> <ul> <li>
371      * <p>pending-payment-This reserved node has recently been purchased, and the sale
372      * has been approved, but payment has not yet been confirmed.</p> </li> <li>
373      * <p>active-This reserved node is owned by the caller and is available for
374      * use.</p> </li> <li> <p>payment-failed-Payment failed for the purchase
375      * attempt.</p> </li> <li> <p>retired-The reserved node is no longer available.
376      * </p> </li> <li> <p>exchanging-The owner is exchanging the reserved node for
377      * another reserved node.</p> </li> </ul>
378      */
SetState(Aws::String && value)379     inline void SetState(Aws::String&& value) { m_stateHasBeenSet = true; m_state = std::move(value); }
380 
381     /**
382      * <p>The state of the reserved compute node.</p> <p>Possible Values:</p> <ul> <li>
383      * <p>pending-payment-This reserved node has recently been purchased, and the sale
384      * has been approved, but payment has not yet been confirmed.</p> </li> <li>
385      * <p>active-This reserved node is owned by the caller and is available for
386      * use.</p> </li> <li> <p>payment-failed-Payment failed for the purchase
387      * attempt.</p> </li> <li> <p>retired-The reserved node is no longer available.
388      * </p> </li> <li> <p>exchanging-The owner is exchanging the reserved node for
389      * another reserved node.</p> </li> </ul>
390      */
SetState(const char * value)391     inline void SetState(const char* value) { m_stateHasBeenSet = true; m_state.assign(value); }
392 
393     /**
394      * <p>The state of the reserved compute node.</p> <p>Possible Values:</p> <ul> <li>
395      * <p>pending-payment-This reserved node has recently been purchased, and the sale
396      * has been approved, but payment has not yet been confirmed.</p> </li> <li>
397      * <p>active-This reserved node is owned by the caller and is available for
398      * use.</p> </li> <li> <p>payment-failed-Payment failed for the purchase
399      * attempt.</p> </li> <li> <p>retired-The reserved node is no longer available.
400      * </p> </li> <li> <p>exchanging-The owner is exchanging the reserved node for
401      * another reserved node.</p> </li> </ul>
402      */
WithState(const Aws::String & value)403     inline ReservedNode& WithState(const Aws::String& value) { SetState(value); return *this;}
404 
405     /**
406      * <p>The state of the reserved compute node.</p> <p>Possible Values:</p> <ul> <li>
407      * <p>pending-payment-This reserved node has recently been purchased, and the sale
408      * has been approved, but payment has not yet been confirmed.</p> </li> <li>
409      * <p>active-This reserved node is owned by the caller and is available for
410      * use.</p> </li> <li> <p>payment-failed-Payment failed for the purchase
411      * attempt.</p> </li> <li> <p>retired-The reserved node is no longer available.
412      * </p> </li> <li> <p>exchanging-The owner is exchanging the reserved node for
413      * another reserved node.</p> </li> </ul>
414      */
WithState(Aws::String && value)415     inline ReservedNode& WithState(Aws::String&& value) { SetState(std::move(value)); return *this;}
416 
417     /**
418      * <p>The state of the reserved compute node.</p> <p>Possible Values:</p> <ul> <li>
419      * <p>pending-payment-This reserved node has recently been purchased, and the sale
420      * has been approved, but payment has not yet been confirmed.</p> </li> <li>
421      * <p>active-This reserved node is owned by the caller and is available for
422      * use.</p> </li> <li> <p>payment-failed-Payment failed for the purchase
423      * attempt.</p> </li> <li> <p>retired-The reserved node is no longer available.
424      * </p> </li> <li> <p>exchanging-The owner is exchanging the reserved node for
425      * another reserved node.</p> </li> </ul>
426      */
WithState(const char * value)427     inline ReservedNode& WithState(const char* value) { SetState(value); return *this;}
428 
429 
430     /**
431      * <p>The anticipated utilization of the reserved node, as defined in the reserved
432      * node offering.</p>
433      */
GetOfferingType()434     inline const Aws::String& GetOfferingType() const{ return m_offeringType; }
435 
436     /**
437      * <p>The anticipated utilization of the reserved node, as defined in the reserved
438      * node offering.</p>
439      */
OfferingTypeHasBeenSet()440     inline bool OfferingTypeHasBeenSet() const { return m_offeringTypeHasBeenSet; }
441 
442     /**
443      * <p>The anticipated utilization of the reserved node, as defined in the reserved
444      * node offering.</p>
445      */
SetOfferingType(const Aws::String & value)446     inline void SetOfferingType(const Aws::String& value) { m_offeringTypeHasBeenSet = true; m_offeringType = value; }
447 
448     /**
449      * <p>The anticipated utilization of the reserved node, as defined in the reserved
450      * node offering.</p>
451      */
SetOfferingType(Aws::String && value)452     inline void SetOfferingType(Aws::String&& value) { m_offeringTypeHasBeenSet = true; m_offeringType = std::move(value); }
453 
454     /**
455      * <p>The anticipated utilization of the reserved node, as defined in the reserved
456      * node offering.</p>
457      */
SetOfferingType(const char * value)458     inline void SetOfferingType(const char* value) { m_offeringTypeHasBeenSet = true; m_offeringType.assign(value); }
459 
460     /**
461      * <p>The anticipated utilization of the reserved node, as defined in the reserved
462      * node offering.</p>
463      */
WithOfferingType(const Aws::String & value)464     inline ReservedNode& WithOfferingType(const Aws::String& value) { SetOfferingType(value); return *this;}
465 
466     /**
467      * <p>The anticipated utilization of the reserved node, as defined in the reserved
468      * node offering.</p>
469      */
WithOfferingType(Aws::String && value)470     inline ReservedNode& WithOfferingType(Aws::String&& value) { SetOfferingType(std::move(value)); return *this;}
471 
472     /**
473      * <p>The anticipated utilization of the reserved node, as defined in the reserved
474      * node offering.</p>
475      */
WithOfferingType(const char * value)476     inline ReservedNode& WithOfferingType(const char* value) { SetOfferingType(value); return *this;}
477 
478 
479     /**
480      * <p>The recurring charges for the reserved node.</p>
481      */
GetRecurringCharges()482     inline const Aws::Vector<RecurringCharge>& GetRecurringCharges() const{ return m_recurringCharges; }
483 
484     /**
485      * <p>The recurring charges for the reserved node.</p>
486      */
RecurringChargesHasBeenSet()487     inline bool RecurringChargesHasBeenSet() const { return m_recurringChargesHasBeenSet; }
488 
489     /**
490      * <p>The recurring charges for the reserved node.</p>
491      */
SetRecurringCharges(const Aws::Vector<RecurringCharge> & value)492     inline void SetRecurringCharges(const Aws::Vector<RecurringCharge>& value) { m_recurringChargesHasBeenSet = true; m_recurringCharges = value; }
493 
494     /**
495      * <p>The recurring charges for the reserved node.</p>
496      */
SetRecurringCharges(Aws::Vector<RecurringCharge> && value)497     inline void SetRecurringCharges(Aws::Vector<RecurringCharge>&& value) { m_recurringChargesHasBeenSet = true; m_recurringCharges = std::move(value); }
498 
499     /**
500      * <p>The recurring charges for the reserved node.</p>
501      */
WithRecurringCharges(const Aws::Vector<RecurringCharge> & value)502     inline ReservedNode& WithRecurringCharges(const Aws::Vector<RecurringCharge>& value) { SetRecurringCharges(value); return *this;}
503 
504     /**
505      * <p>The recurring charges for the reserved node.</p>
506      */
WithRecurringCharges(Aws::Vector<RecurringCharge> && value)507     inline ReservedNode& WithRecurringCharges(Aws::Vector<RecurringCharge>&& value) { SetRecurringCharges(std::move(value)); return *this;}
508 
509     /**
510      * <p>The recurring charges for the reserved node.</p>
511      */
AddRecurringCharges(const RecurringCharge & value)512     inline ReservedNode& AddRecurringCharges(const RecurringCharge& value) { m_recurringChargesHasBeenSet = true; m_recurringCharges.push_back(value); return *this; }
513 
514     /**
515      * <p>The recurring charges for the reserved node.</p>
516      */
AddRecurringCharges(RecurringCharge && value)517     inline ReservedNode& AddRecurringCharges(RecurringCharge&& value) { m_recurringChargesHasBeenSet = true; m_recurringCharges.push_back(std::move(value)); return *this; }
518 
519 
520     /**
521      * <p/>
522      */
GetReservedNodeOfferingType()523     inline const ReservedNodeOfferingType& GetReservedNodeOfferingType() const{ return m_reservedNodeOfferingType; }
524 
525     /**
526      * <p/>
527      */
ReservedNodeOfferingTypeHasBeenSet()528     inline bool ReservedNodeOfferingTypeHasBeenSet() const { return m_reservedNodeOfferingTypeHasBeenSet; }
529 
530     /**
531      * <p/>
532      */
SetReservedNodeOfferingType(const ReservedNodeOfferingType & value)533     inline void SetReservedNodeOfferingType(const ReservedNodeOfferingType& value) { m_reservedNodeOfferingTypeHasBeenSet = true; m_reservedNodeOfferingType = value; }
534 
535     /**
536      * <p/>
537      */
SetReservedNodeOfferingType(ReservedNodeOfferingType && value)538     inline void SetReservedNodeOfferingType(ReservedNodeOfferingType&& value) { m_reservedNodeOfferingTypeHasBeenSet = true; m_reservedNodeOfferingType = std::move(value); }
539 
540     /**
541      * <p/>
542      */
WithReservedNodeOfferingType(const ReservedNodeOfferingType & value)543     inline ReservedNode& WithReservedNodeOfferingType(const ReservedNodeOfferingType& value) { SetReservedNodeOfferingType(value); return *this;}
544 
545     /**
546      * <p/>
547      */
WithReservedNodeOfferingType(ReservedNodeOfferingType && value)548     inline ReservedNode& WithReservedNodeOfferingType(ReservedNodeOfferingType&& value) { SetReservedNodeOfferingType(std::move(value)); return *this;}
549 
550   private:
551 
552     Aws::String m_reservedNodeId;
553     bool m_reservedNodeIdHasBeenSet;
554 
555     Aws::String m_reservedNodeOfferingId;
556     bool m_reservedNodeOfferingIdHasBeenSet;
557 
558     Aws::String m_nodeType;
559     bool m_nodeTypeHasBeenSet;
560 
561     Aws::Utils::DateTime m_startTime;
562     bool m_startTimeHasBeenSet;
563 
564     int m_duration;
565     bool m_durationHasBeenSet;
566 
567     double m_fixedPrice;
568     bool m_fixedPriceHasBeenSet;
569 
570     double m_usagePrice;
571     bool m_usagePriceHasBeenSet;
572 
573     Aws::String m_currencyCode;
574     bool m_currencyCodeHasBeenSet;
575 
576     int m_nodeCount;
577     bool m_nodeCountHasBeenSet;
578 
579     Aws::String m_state;
580     bool m_stateHasBeenSet;
581 
582     Aws::String m_offeringType;
583     bool m_offeringTypeHasBeenSet;
584 
585     Aws::Vector<RecurringCharge> m_recurringCharges;
586     bool m_recurringChargesHasBeenSet;
587 
588     ReservedNodeOfferingType m_reservedNodeOfferingType;
589     bool m_reservedNodeOfferingTypeHasBeenSet;
590   };
591 
592 } // namespace Model
593 } // namespace Redshift
594 } // namespace Aws
595