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/ec2/EC2_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSStreamFwd.h>
9 #include <aws/ec2/model/CurrencyCodeValues.h>
10 #include <aws/core/utils/DateTime.h>
11 #include <aws/core/utils/memory/stl/AWSVector.h>
12 #include <aws/core/utils/memory/stl/AWSString.h>
13 #include <aws/ec2/model/PaymentOption.h>
14 #include <aws/ec2/model/ReservationState.h>
15 #include <aws/ec2/model/Tag.h>
16 #include <utility>
17 
18 namespace Aws
19 {
20 namespace Utils
21 {
22 namespace Xml
23 {
24   class XmlNode;
25 } // namespace Xml
26 } // namespace Utils
27 namespace EC2
28 {
29 namespace Model
30 {
31 
32   /**
33    * <p>Details about the Dedicated Host Reservation and associated Dedicated
34    * Hosts.</p><p><h3>See Also:</h3>   <a
35    * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/HostReservation">AWS
36    * API Reference</a></p>
37    */
38   class AWS_EC2_API HostReservation
39   {
40   public:
41     HostReservation();
42     HostReservation(const Aws::Utils::Xml::XmlNode& xmlNode);
43     HostReservation& operator=(const Aws::Utils::Xml::XmlNode& xmlNode);
44 
45     void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const;
46     void OutputToStream(Aws::OStream& oStream, const char* location) const;
47 
48 
49     /**
50      * <p>The number of Dedicated Hosts the reservation is associated with.</p>
51      */
GetCount()52     inline int GetCount() const{ return m_count; }
53 
54     /**
55      * <p>The number of Dedicated Hosts the reservation is associated with.</p>
56      */
CountHasBeenSet()57     inline bool CountHasBeenSet() const { return m_countHasBeenSet; }
58 
59     /**
60      * <p>The number of Dedicated Hosts the reservation is associated with.</p>
61      */
SetCount(int value)62     inline void SetCount(int value) { m_countHasBeenSet = true; m_count = value; }
63 
64     /**
65      * <p>The number of Dedicated Hosts the reservation is associated with.</p>
66      */
WithCount(int value)67     inline HostReservation& WithCount(int value) { SetCount(value); return *this;}
68 
69 
70     /**
71      * <p>The currency in which the <code>upfrontPrice</code> and
72      * <code>hourlyPrice</code> amounts are specified. At this time, the only supported
73      * currency is <code>USD</code>.</p>
74      */
GetCurrencyCode()75     inline const CurrencyCodeValues& GetCurrencyCode() const{ return m_currencyCode; }
76 
77     /**
78      * <p>The currency in which the <code>upfrontPrice</code> and
79      * <code>hourlyPrice</code> amounts are specified. At this time, the only supported
80      * currency is <code>USD</code>.</p>
81      */
CurrencyCodeHasBeenSet()82     inline bool CurrencyCodeHasBeenSet() const { return m_currencyCodeHasBeenSet; }
83 
84     /**
85      * <p>The currency in which the <code>upfrontPrice</code> and
86      * <code>hourlyPrice</code> amounts are specified. At this time, the only supported
87      * currency is <code>USD</code>.</p>
88      */
SetCurrencyCode(const CurrencyCodeValues & value)89     inline void SetCurrencyCode(const CurrencyCodeValues& value) { m_currencyCodeHasBeenSet = true; m_currencyCode = value; }
90 
91     /**
92      * <p>The currency in which the <code>upfrontPrice</code> and
93      * <code>hourlyPrice</code> amounts are specified. At this time, the only supported
94      * currency is <code>USD</code>.</p>
95      */
SetCurrencyCode(CurrencyCodeValues && value)96     inline void SetCurrencyCode(CurrencyCodeValues&& value) { m_currencyCodeHasBeenSet = true; m_currencyCode = std::move(value); }
97 
98     /**
99      * <p>The currency in which the <code>upfrontPrice</code> and
100      * <code>hourlyPrice</code> amounts are specified. At this time, the only supported
101      * currency is <code>USD</code>.</p>
102      */
WithCurrencyCode(const CurrencyCodeValues & value)103     inline HostReservation& WithCurrencyCode(const CurrencyCodeValues& value) { SetCurrencyCode(value); return *this;}
104 
105     /**
106      * <p>The currency in which the <code>upfrontPrice</code> and
107      * <code>hourlyPrice</code> amounts are specified. At this time, the only supported
108      * currency is <code>USD</code>.</p>
109      */
WithCurrencyCode(CurrencyCodeValues && value)110     inline HostReservation& WithCurrencyCode(CurrencyCodeValues&& value) { SetCurrencyCode(std::move(value)); return *this;}
111 
112 
113     /**
114      * <p>The length of the reservation's term, specified in seconds. Can be
115      * <code>31536000 (1 year)</code> | <code>94608000 (3 years)</code>.</p>
116      */
GetDuration()117     inline int GetDuration() const{ return m_duration; }
118 
119     /**
120      * <p>The length of the reservation's term, specified in seconds. Can be
121      * <code>31536000 (1 year)</code> | <code>94608000 (3 years)</code>.</p>
122      */
DurationHasBeenSet()123     inline bool DurationHasBeenSet() const { return m_durationHasBeenSet; }
124 
125     /**
126      * <p>The length of the reservation's term, specified in seconds. Can be
127      * <code>31536000 (1 year)</code> | <code>94608000 (3 years)</code>.</p>
128      */
SetDuration(int value)129     inline void SetDuration(int value) { m_durationHasBeenSet = true; m_duration = value; }
130 
131     /**
132      * <p>The length of the reservation's term, specified in seconds. Can be
133      * <code>31536000 (1 year)</code> | <code>94608000 (3 years)</code>.</p>
134      */
WithDuration(int value)135     inline HostReservation& WithDuration(int value) { SetDuration(value); return *this;}
136 
137 
138     /**
139      * <p>The date and time that the reservation ends.</p>
140      */
GetEnd()141     inline const Aws::Utils::DateTime& GetEnd() const{ return m_end; }
142 
143     /**
144      * <p>The date and time that the reservation ends.</p>
145      */
EndHasBeenSet()146     inline bool EndHasBeenSet() const { return m_endHasBeenSet; }
147 
148     /**
149      * <p>The date and time that the reservation ends.</p>
150      */
SetEnd(const Aws::Utils::DateTime & value)151     inline void SetEnd(const Aws::Utils::DateTime& value) { m_endHasBeenSet = true; m_end = value; }
152 
153     /**
154      * <p>The date and time that the reservation ends.</p>
155      */
SetEnd(Aws::Utils::DateTime && value)156     inline void SetEnd(Aws::Utils::DateTime&& value) { m_endHasBeenSet = true; m_end = std::move(value); }
157 
158     /**
159      * <p>The date and time that the reservation ends.</p>
160      */
WithEnd(const Aws::Utils::DateTime & value)161     inline HostReservation& WithEnd(const Aws::Utils::DateTime& value) { SetEnd(value); return *this;}
162 
163     /**
164      * <p>The date and time that the reservation ends.</p>
165      */
WithEnd(Aws::Utils::DateTime && value)166     inline HostReservation& WithEnd(Aws::Utils::DateTime&& value) { SetEnd(std::move(value)); return *this;}
167 
168 
169     /**
170      * <p>The IDs of the Dedicated Hosts associated with the reservation.</p>
171      */
GetHostIdSet()172     inline const Aws::Vector<Aws::String>& GetHostIdSet() const{ return m_hostIdSet; }
173 
174     /**
175      * <p>The IDs of the Dedicated Hosts associated with the reservation.</p>
176      */
HostIdSetHasBeenSet()177     inline bool HostIdSetHasBeenSet() const { return m_hostIdSetHasBeenSet; }
178 
179     /**
180      * <p>The IDs of the Dedicated Hosts associated with the reservation.</p>
181      */
SetHostIdSet(const Aws::Vector<Aws::String> & value)182     inline void SetHostIdSet(const Aws::Vector<Aws::String>& value) { m_hostIdSetHasBeenSet = true; m_hostIdSet = value; }
183 
184     /**
185      * <p>The IDs of the Dedicated Hosts associated with the reservation.</p>
186      */
SetHostIdSet(Aws::Vector<Aws::String> && value)187     inline void SetHostIdSet(Aws::Vector<Aws::String>&& value) { m_hostIdSetHasBeenSet = true; m_hostIdSet = std::move(value); }
188 
189     /**
190      * <p>The IDs of the Dedicated Hosts associated with the reservation.</p>
191      */
WithHostIdSet(const Aws::Vector<Aws::String> & value)192     inline HostReservation& WithHostIdSet(const Aws::Vector<Aws::String>& value) { SetHostIdSet(value); return *this;}
193 
194     /**
195      * <p>The IDs of the Dedicated Hosts associated with the reservation.</p>
196      */
WithHostIdSet(Aws::Vector<Aws::String> && value)197     inline HostReservation& WithHostIdSet(Aws::Vector<Aws::String>&& value) { SetHostIdSet(std::move(value)); return *this;}
198 
199     /**
200      * <p>The IDs of the Dedicated Hosts associated with the reservation.</p>
201      */
AddHostIdSet(const Aws::String & value)202     inline HostReservation& AddHostIdSet(const Aws::String& value) { m_hostIdSetHasBeenSet = true; m_hostIdSet.push_back(value); return *this; }
203 
204     /**
205      * <p>The IDs of the Dedicated Hosts associated with the reservation.</p>
206      */
AddHostIdSet(Aws::String && value)207     inline HostReservation& AddHostIdSet(Aws::String&& value) { m_hostIdSetHasBeenSet = true; m_hostIdSet.push_back(std::move(value)); return *this; }
208 
209     /**
210      * <p>The IDs of the Dedicated Hosts associated with the reservation.</p>
211      */
AddHostIdSet(const char * value)212     inline HostReservation& AddHostIdSet(const char* value) { m_hostIdSetHasBeenSet = true; m_hostIdSet.push_back(value); return *this; }
213 
214 
215     /**
216      * <p>The ID of the reservation that specifies the associated Dedicated Hosts.</p>
217      */
GetHostReservationId()218     inline const Aws::String& GetHostReservationId() const{ return m_hostReservationId; }
219 
220     /**
221      * <p>The ID of the reservation that specifies the associated Dedicated Hosts.</p>
222      */
HostReservationIdHasBeenSet()223     inline bool HostReservationIdHasBeenSet() const { return m_hostReservationIdHasBeenSet; }
224 
225     /**
226      * <p>The ID of the reservation that specifies the associated Dedicated Hosts.</p>
227      */
SetHostReservationId(const Aws::String & value)228     inline void SetHostReservationId(const Aws::String& value) { m_hostReservationIdHasBeenSet = true; m_hostReservationId = value; }
229 
230     /**
231      * <p>The ID of the reservation that specifies the associated Dedicated Hosts.</p>
232      */
SetHostReservationId(Aws::String && value)233     inline void SetHostReservationId(Aws::String&& value) { m_hostReservationIdHasBeenSet = true; m_hostReservationId = std::move(value); }
234 
235     /**
236      * <p>The ID of the reservation that specifies the associated Dedicated Hosts.</p>
237      */
SetHostReservationId(const char * value)238     inline void SetHostReservationId(const char* value) { m_hostReservationIdHasBeenSet = true; m_hostReservationId.assign(value); }
239 
240     /**
241      * <p>The ID of the reservation that specifies the associated Dedicated Hosts.</p>
242      */
WithHostReservationId(const Aws::String & value)243     inline HostReservation& WithHostReservationId(const Aws::String& value) { SetHostReservationId(value); return *this;}
244 
245     /**
246      * <p>The ID of the reservation that specifies the associated Dedicated Hosts.</p>
247      */
WithHostReservationId(Aws::String && value)248     inline HostReservation& WithHostReservationId(Aws::String&& value) { SetHostReservationId(std::move(value)); return *this;}
249 
250     /**
251      * <p>The ID of the reservation that specifies the associated Dedicated Hosts.</p>
252      */
WithHostReservationId(const char * value)253     inline HostReservation& WithHostReservationId(const char* value) { SetHostReservationId(value); return *this;}
254 
255 
256     /**
257      * <p>The hourly price of the reservation.</p>
258      */
GetHourlyPrice()259     inline const Aws::String& GetHourlyPrice() const{ return m_hourlyPrice; }
260 
261     /**
262      * <p>The hourly price of the reservation.</p>
263      */
HourlyPriceHasBeenSet()264     inline bool HourlyPriceHasBeenSet() const { return m_hourlyPriceHasBeenSet; }
265 
266     /**
267      * <p>The hourly price of the reservation.</p>
268      */
SetHourlyPrice(const Aws::String & value)269     inline void SetHourlyPrice(const Aws::String& value) { m_hourlyPriceHasBeenSet = true; m_hourlyPrice = value; }
270 
271     /**
272      * <p>The hourly price of the reservation.</p>
273      */
SetHourlyPrice(Aws::String && value)274     inline void SetHourlyPrice(Aws::String&& value) { m_hourlyPriceHasBeenSet = true; m_hourlyPrice = std::move(value); }
275 
276     /**
277      * <p>The hourly price of the reservation.</p>
278      */
SetHourlyPrice(const char * value)279     inline void SetHourlyPrice(const char* value) { m_hourlyPriceHasBeenSet = true; m_hourlyPrice.assign(value); }
280 
281     /**
282      * <p>The hourly price of the reservation.</p>
283      */
WithHourlyPrice(const Aws::String & value)284     inline HostReservation& WithHourlyPrice(const Aws::String& value) { SetHourlyPrice(value); return *this;}
285 
286     /**
287      * <p>The hourly price of the reservation.</p>
288      */
WithHourlyPrice(Aws::String && value)289     inline HostReservation& WithHourlyPrice(Aws::String&& value) { SetHourlyPrice(std::move(value)); return *this;}
290 
291     /**
292      * <p>The hourly price of the reservation.</p>
293      */
WithHourlyPrice(const char * value)294     inline HostReservation& WithHourlyPrice(const char* value) { SetHourlyPrice(value); return *this;}
295 
296 
297     /**
298      * <p>The instance family of the Dedicated Host Reservation. The instance family on
299      * the Dedicated Host must be the same in order for it to benefit from the
300      * reservation.</p>
301      */
GetInstanceFamily()302     inline const Aws::String& GetInstanceFamily() const{ return m_instanceFamily; }
303 
304     /**
305      * <p>The instance family of the Dedicated Host Reservation. The instance family on
306      * the Dedicated Host must be the same in order for it to benefit from the
307      * reservation.</p>
308      */
InstanceFamilyHasBeenSet()309     inline bool InstanceFamilyHasBeenSet() const { return m_instanceFamilyHasBeenSet; }
310 
311     /**
312      * <p>The instance family of the Dedicated Host Reservation. The instance family on
313      * the Dedicated Host must be the same in order for it to benefit from the
314      * reservation.</p>
315      */
SetInstanceFamily(const Aws::String & value)316     inline void SetInstanceFamily(const Aws::String& value) { m_instanceFamilyHasBeenSet = true; m_instanceFamily = value; }
317 
318     /**
319      * <p>The instance family of the Dedicated Host Reservation. The instance family on
320      * the Dedicated Host must be the same in order for it to benefit from the
321      * reservation.</p>
322      */
SetInstanceFamily(Aws::String && value)323     inline void SetInstanceFamily(Aws::String&& value) { m_instanceFamilyHasBeenSet = true; m_instanceFamily = std::move(value); }
324 
325     /**
326      * <p>The instance family of the Dedicated Host Reservation. The instance family on
327      * the Dedicated Host must be the same in order for it to benefit from the
328      * reservation.</p>
329      */
SetInstanceFamily(const char * value)330     inline void SetInstanceFamily(const char* value) { m_instanceFamilyHasBeenSet = true; m_instanceFamily.assign(value); }
331 
332     /**
333      * <p>The instance family of the Dedicated Host Reservation. The instance family on
334      * the Dedicated Host must be the same in order for it to benefit from the
335      * reservation.</p>
336      */
WithInstanceFamily(const Aws::String & value)337     inline HostReservation& WithInstanceFamily(const Aws::String& value) { SetInstanceFamily(value); return *this;}
338 
339     /**
340      * <p>The instance family of the Dedicated Host Reservation. The instance family on
341      * the Dedicated Host must be the same in order for it to benefit from the
342      * reservation.</p>
343      */
WithInstanceFamily(Aws::String && value)344     inline HostReservation& WithInstanceFamily(Aws::String&& value) { SetInstanceFamily(std::move(value)); return *this;}
345 
346     /**
347      * <p>The instance family of the Dedicated Host Reservation. The instance family on
348      * the Dedicated Host must be the same in order for it to benefit from the
349      * reservation.</p>
350      */
WithInstanceFamily(const char * value)351     inline HostReservation& WithInstanceFamily(const char* value) { SetInstanceFamily(value); return *this;}
352 
353 
354     /**
355      * <p>The ID of the reservation. This remains the same regardless of which
356      * Dedicated Hosts are associated with it.</p>
357      */
GetOfferingId()358     inline const Aws::String& GetOfferingId() const{ return m_offeringId; }
359 
360     /**
361      * <p>The ID of the reservation. This remains the same regardless of which
362      * Dedicated Hosts are associated with it.</p>
363      */
OfferingIdHasBeenSet()364     inline bool OfferingIdHasBeenSet() const { return m_offeringIdHasBeenSet; }
365 
366     /**
367      * <p>The ID of the reservation. This remains the same regardless of which
368      * Dedicated Hosts are associated with it.</p>
369      */
SetOfferingId(const Aws::String & value)370     inline void SetOfferingId(const Aws::String& value) { m_offeringIdHasBeenSet = true; m_offeringId = value; }
371 
372     /**
373      * <p>The ID of the reservation. This remains the same regardless of which
374      * Dedicated Hosts are associated with it.</p>
375      */
SetOfferingId(Aws::String && value)376     inline void SetOfferingId(Aws::String&& value) { m_offeringIdHasBeenSet = true; m_offeringId = std::move(value); }
377 
378     /**
379      * <p>The ID of the reservation. This remains the same regardless of which
380      * Dedicated Hosts are associated with it.</p>
381      */
SetOfferingId(const char * value)382     inline void SetOfferingId(const char* value) { m_offeringIdHasBeenSet = true; m_offeringId.assign(value); }
383 
384     /**
385      * <p>The ID of the reservation. This remains the same regardless of which
386      * Dedicated Hosts are associated with it.</p>
387      */
WithOfferingId(const Aws::String & value)388     inline HostReservation& WithOfferingId(const Aws::String& value) { SetOfferingId(value); return *this;}
389 
390     /**
391      * <p>The ID of the reservation. This remains the same regardless of which
392      * Dedicated Hosts are associated with it.</p>
393      */
WithOfferingId(Aws::String && value)394     inline HostReservation& WithOfferingId(Aws::String&& value) { SetOfferingId(std::move(value)); return *this;}
395 
396     /**
397      * <p>The ID of the reservation. This remains the same regardless of which
398      * Dedicated Hosts are associated with it.</p>
399      */
WithOfferingId(const char * value)400     inline HostReservation& WithOfferingId(const char* value) { SetOfferingId(value); return *this;}
401 
402 
403     /**
404      * <p>The payment option selected for this reservation.</p>
405      */
GetPaymentOption()406     inline const PaymentOption& GetPaymentOption() const{ return m_paymentOption; }
407 
408     /**
409      * <p>The payment option selected for this reservation.</p>
410      */
PaymentOptionHasBeenSet()411     inline bool PaymentOptionHasBeenSet() const { return m_paymentOptionHasBeenSet; }
412 
413     /**
414      * <p>The payment option selected for this reservation.</p>
415      */
SetPaymentOption(const PaymentOption & value)416     inline void SetPaymentOption(const PaymentOption& value) { m_paymentOptionHasBeenSet = true; m_paymentOption = value; }
417 
418     /**
419      * <p>The payment option selected for this reservation.</p>
420      */
SetPaymentOption(PaymentOption && value)421     inline void SetPaymentOption(PaymentOption&& value) { m_paymentOptionHasBeenSet = true; m_paymentOption = std::move(value); }
422 
423     /**
424      * <p>The payment option selected for this reservation.</p>
425      */
WithPaymentOption(const PaymentOption & value)426     inline HostReservation& WithPaymentOption(const PaymentOption& value) { SetPaymentOption(value); return *this;}
427 
428     /**
429      * <p>The payment option selected for this reservation.</p>
430      */
WithPaymentOption(PaymentOption && value)431     inline HostReservation& WithPaymentOption(PaymentOption&& value) { SetPaymentOption(std::move(value)); return *this;}
432 
433 
434     /**
435      * <p>The date and time that the reservation started.</p>
436      */
GetStart()437     inline const Aws::Utils::DateTime& GetStart() const{ return m_start; }
438 
439     /**
440      * <p>The date and time that the reservation started.</p>
441      */
StartHasBeenSet()442     inline bool StartHasBeenSet() const { return m_startHasBeenSet; }
443 
444     /**
445      * <p>The date and time that the reservation started.</p>
446      */
SetStart(const Aws::Utils::DateTime & value)447     inline void SetStart(const Aws::Utils::DateTime& value) { m_startHasBeenSet = true; m_start = value; }
448 
449     /**
450      * <p>The date and time that the reservation started.</p>
451      */
SetStart(Aws::Utils::DateTime && value)452     inline void SetStart(Aws::Utils::DateTime&& value) { m_startHasBeenSet = true; m_start = std::move(value); }
453 
454     /**
455      * <p>The date and time that the reservation started.</p>
456      */
WithStart(const Aws::Utils::DateTime & value)457     inline HostReservation& WithStart(const Aws::Utils::DateTime& value) { SetStart(value); return *this;}
458 
459     /**
460      * <p>The date and time that the reservation started.</p>
461      */
WithStart(Aws::Utils::DateTime && value)462     inline HostReservation& WithStart(Aws::Utils::DateTime&& value) { SetStart(std::move(value)); return *this;}
463 
464 
465     /**
466      * <p>The state of the reservation.</p>
467      */
GetState()468     inline const ReservationState& GetState() const{ return m_state; }
469 
470     /**
471      * <p>The state of the reservation.</p>
472      */
StateHasBeenSet()473     inline bool StateHasBeenSet() const { return m_stateHasBeenSet; }
474 
475     /**
476      * <p>The state of the reservation.</p>
477      */
SetState(const ReservationState & value)478     inline void SetState(const ReservationState& value) { m_stateHasBeenSet = true; m_state = value; }
479 
480     /**
481      * <p>The state of the reservation.</p>
482      */
SetState(ReservationState && value)483     inline void SetState(ReservationState&& value) { m_stateHasBeenSet = true; m_state = std::move(value); }
484 
485     /**
486      * <p>The state of the reservation.</p>
487      */
WithState(const ReservationState & value)488     inline HostReservation& WithState(const ReservationState& value) { SetState(value); return *this;}
489 
490     /**
491      * <p>The state of the reservation.</p>
492      */
WithState(ReservationState && value)493     inline HostReservation& WithState(ReservationState&& value) { SetState(std::move(value)); return *this;}
494 
495 
496     /**
497      * <p>The upfront price of the reservation.</p>
498      */
GetUpfrontPrice()499     inline const Aws::String& GetUpfrontPrice() const{ return m_upfrontPrice; }
500 
501     /**
502      * <p>The upfront price of the reservation.</p>
503      */
UpfrontPriceHasBeenSet()504     inline bool UpfrontPriceHasBeenSet() const { return m_upfrontPriceHasBeenSet; }
505 
506     /**
507      * <p>The upfront price of the reservation.</p>
508      */
SetUpfrontPrice(const Aws::String & value)509     inline void SetUpfrontPrice(const Aws::String& value) { m_upfrontPriceHasBeenSet = true; m_upfrontPrice = value; }
510 
511     /**
512      * <p>The upfront price of the reservation.</p>
513      */
SetUpfrontPrice(Aws::String && value)514     inline void SetUpfrontPrice(Aws::String&& value) { m_upfrontPriceHasBeenSet = true; m_upfrontPrice = std::move(value); }
515 
516     /**
517      * <p>The upfront price of the reservation.</p>
518      */
SetUpfrontPrice(const char * value)519     inline void SetUpfrontPrice(const char* value) { m_upfrontPriceHasBeenSet = true; m_upfrontPrice.assign(value); }
520 
521     /**
522      * <p>The upfront price of the reservation.</p>
523      */
WithUpfrontPrice(const Aws::String & value)524     inline HostReservation& WithUpfrontPrice(const Aws::String& value) { SetUpfrontPrice(value); return *this;}
525 
526     /**
527      * <p>The upfront price of the reservation.</p>
528      */
WithUpfrontPrice(Aws::String && value)529     inline HostReservation& WithUpfrontPrice(Aws::String&& value) { SetUpfrontPrice(std::move(value)); return *this;}
530 
531     /**
532      * <p>The upfront price of the reservation.</p>
533      */
WithUpfrontPrice(const char * value)534     inline HostReservation& WithUpfrontPrice(const char* value) { SetUpfrontPrice(value); return *this;}
535 
536 
537     /**
538      * <p>Any tags assigned to the Dedicated Host Reservation.</p>
539      */
GetTags()540     inline const Aws::Vector<Tag>& GetTags() const{ return m_tags; }
541 
542     /**
543      * <p>Any tags assigned to the Dedicated Host Reservation.</p>
544      */
TagsHasBeenSet()545     inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
546 
547     /**
548      * <p>Any tags assigned to the Dedicated Host Reservation.</p>
549      */
SetTags(const Aws::Vector<Tag> & value)550     inline void SetTags(const Aws::Vector<Tag>& value) { m_tagsHasBeenSet = true; m_tags = value; }
551 
552     /**
553      * <p>Any tags assigned to the Dedicated Host Reservation.</p>
554      */
SetTags(Aws::Vector<Tag> && value)555     inline void SetTags(Aws::Vector<Tag>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); }
556 
557     /**
558      * <p>Any tags assigned to the Dedicated Host Reservation.</p>
559      */
WithTags(const Aws::Vector<Tag> & value)560     inline HostReservation& WithTags(const Aws::Vector<Tag>& value) { SetTags(value); return *this;}
561 
562     /**
563      * <p>Any tags assigned to the Dedicated Host Reservation.</p>
564      */
WithTags(Aws::Vector<Tag> && value)565     inline HostReservation& WithTags(Aws::Vector<Tag>&& value) { SetTags(std::move(value)); return *this;}
566 
567     /**
568      * <p>Any tags assigned to the Dedicated Host Reservation.</p>
569      */
AddTags(const Tag & value)570     inline HostReservation& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; }
571 
572     /**
573      * <p>Any tags assigned to the Dedicated Host Reservation.</p>
574      */
AddTags(Tag && value)575     inline HostReservation& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; }
576 
577   private:
578 
579     int m_count;
580     bool m_countHasBeenSet;
581 
582     CurrencyCodeValues m_currencyCode;
583     bool m_currencyCodeHasBeenSet;
584 
585     int m_duration;
586     bool m_durationHasBeenSet;
587 
588     Aws::Utils::DateTime m_end;
589     bool m_endHasBeenSet;
590 
591     Aws::Vector<Aws::String> m_hostIdSet;
592     bool m_hostIdSetHasBeenSet;
593 
594     Aws::String m_hostReservationId;
595     bool m_hostReservationIdHasBeenSet;
596 
597     Aws::String m_hourlyPrice;
598     bool m_hourlyPriceHasBeenSet;
599 
600     Aws::String m_instanceFamily;
601     bool m_instanceFamilyHasBeenSet;
602 
603     Aws::String m_offeringId;
604     bool m_offeringIdHasBeenSet;
605 
606     PaymentOption m_paymentOption;
607     bool m_paymentOptionHasBeenSet;
608 
609     Aws::Utils::DateTime m_start;
610     bool m_startHasBeenSet;
611 
612     ReservationState m_state;
613     bool m_stateHasBeenSet;
614 
615     Aws::String m_upfrontPrice;
616     bool m_upfrontPriceHasBeenSet;
617 
618     Aws::Vector<Tag> m_tags;
619     bool m_tagsHasBeenSet;
620   };
621 
622 } // namespace Model
623 } // namespace EC2
624 } // namespace Aws
625