AWS SDK for C++

AWS SDK for C++ Version 1.11.717

Loading...
Searching...
No Matches
ReservedInstances.h
1
6#pragma once
7#include <aws/core/utils/DateTime.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/ec2/EC2_EXPORTS.h>
12#include <aws/ec2/model/CurrencyCodeValues.h>
13#include <aws/ec2/model/InstanceType.h>
14#include <aws/ec2/model/OfferingClassType.h>
15#include <aws/ec2/model/OfferingTypeValues.h>
16#include <aws/ec2/model/RIProductDescription.h>
17#include <aws/ec2/model/RecurringCharge.h>
18#include <aws/ec2/model/ReservedInstanceState.h>
19#include <aws/ec2/model/Scope.h>
20#include <aws/ec2/model/Tag.h>
21#include <aws/ec2/model/Tenancy.h>
22
23#include <utility>
24
25namespace Aws {
26namespace Utils {
27namespace Xml {
28class XmlNode;
29} // namespace Xml
30} // namespace Utils
31namespace EC2 {
32namespace Model {
33
40 public:
41 AWS_EC2_API ReservedInstances() = default;
42 AWS_EC2_API ReservedInstances(const Aws::Utils::Xml::XmlNode& xmlNode);
44
45 AWS_EC2_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const;
46 AWS_EC2_API void OutputToStream(Aws::OStream& oStream, const char* location) const;
47
49
54 inline CurrencyCodeValues GetCurrencyCode() const { return m_currencyCode; }
55 inline bool CurrencyCodeHasBeenSet() const { return m_currencyCodeHasBeenSet; }
57 m_currencyCodeHasBeenSet = true;
58 m_currencyCode = value;
59 }
61 SetCurrencyCode(value);
62 return *this;
63 }
65
67
70 inline Tenancy GetInstanceTenancy() const { return m_instanceTenancy; }
71 inline bool InstanceTenancyHasBeenSet() const { return m_instanceTenancyHasBeenSet; }
72 inline void SetInstanceTenancy(Tenancy value) {
73 m_instanceTenancyHasBeenSet = true;
74 m_instanceTenancy = value;
75 }
77 SetInstanceTenancy(value);
78 return *this;
79 }
81
83
86 inline OfferingClassType GetOfferingClass() const { return m_offeringClass; }
87 inline bool OfferingClassHasBeenSet() const { return m_offeringClassHasBeenSet; }
89 m_offeringClassHasBeenSet = true;
90 m_offeringClass = value;
91 }
93 SetOfferingClass(value);
94 return *this;
95 }
97
99
102 inline OfferingTypeValues GetOfferingType() const { return m_offeringType; }
103 inline bool OfferingTypeHasBeenSet() const { return m_offeringTypeHasBeenSet; }
105 m_offeringTypeHasBeenSet = true;
106 m_offeringType = value;
107 }
109 SetOfferingType(value);
110 return *this;
111 }
113
115
118 inline const Aws::Vector<RecurringCharge>& GetRecurringCharges() const { return m_recurringCharges; }
119 inline bool RecurringChargesHasBeenSet() const { return m_recurringChargesHasBeenSet; }
120 template <typename RecurringChargesT = Aws::Vector<RecurringCharge>>
121 void SetRecurringCharges(RecurringChargesT&& value) {
122 m_recurringChargesHasBeenSet = true;
123 m_recurringCharges = std::forward<RecurringChargesT>(value);
124 }
125 template <typename RecurringChargesT = Aws::Vector<RecurringCharge>>
126 ReservedInstances& WithRecurringCharges(RecurringChargesT&& value) {
127 SetRecurringCharges(std::forward<RecurringChargesT>(value));
128 return *this;
129 }
130 template <typename RecurringChargesT = RecurringCharge>
131 ReservedInstances& AddRecurringCharges(RecurringChargesT&& value) {
132 m_recurringChargesHasBeenSet = true;
133 m_recurringCharges.emplace_back(std::forward<RecurringChargesT>(value));
134 return *this;
135 }
137
139
142 inline Scope GetScope() const { return m_scope; }
143 inline bool ScopeHasBeenSet() const { return m_scopeHasBeenSet; }
144 inline void SetScope(Scope value) {
145 m_scopeHasBeenSet = true;
146 m_scope = value;
147 }
149 SetScope(value);
150 return *this;
151 }
153
155
158 inline const Aws::Vector<Tag>& GetTags() const { return m_tags; }
159 inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
160 template <typename TagsT = Aws::Vector<Tag>>
161 void SetTags(TagsT&& value) {
162 m_tagsHasBeenSet = true;
163 m_tags = std::forward<TagsT>(value);
164 }
165 template <typename TagsT = Aws::Vector<Tag>>
166 ReservedInstances& WithTags(TagsT&& value) {
167 SetTags(std::forward<TagsT>(value));
168 return *this;
169 }
170 template <typename TagsT = Tag>
171 ReservedInstances& AddTags(TagsT&& value) {
172 m_tagsHasBeenSet = true;
173 m_tags.emplace_back(std::forward<TagsT>(value));
174 return *this;
175 }
177
179
182 inline const Aws::String& GetAvailabilityZoneId() const { return m_availabilityZoneId; }
183 inline bool AvailabilityZoneIdHasBeenSet() const { return m_availabilityZoneIdHasBeenSet; }
184 template <typename AvailabilityZoneIdT = Aws::String>
185 void SetAvailabilityZoneId(AvailabilityZoneIdT&& value) {
186 m_availabilityZoneIdHasBeenSet = true;
187 m_availabilityZoneId = std::forward<AvailabilityZoneIdT>(value);
188 }
189 template <typename AvailabilityZoneIdT = Aws::String>
190 ReservedInstances& WithAvailabilityZoneId(AvailabilityZoneIdT&& value) {
191 SetAvailabilityZoneId(std::forward<AvailabilityZoneIdT>(value));
192 return *this;
193 }
195
197
200 inline const Aws::String& GetReservedInstancesId() const { return m_reservedInstancesId; }
201 inline bool ReservedInstancesIdHasBeenSet() const { return m_reservedInstancesIdHasBeenSet; }
202 template <typename ReservedInstancesIdT = Aws::String>
203 void SetReservedInstancesId(ReservedInstancesIdT&& value) {
204 m_reservedInstancesIdHasBeenSet = true;
205 m_reservedInstancesId = std::forward<ReservedInstancesIdT>(value);
206 }
207 template <typename ReservedInstancesIdT = Aws::String>
208 ReservedInstances& WithReservedInstancesId(ReservedInstancesIdT&& value) {
209 SetReservedInstancesId(std::forward<ReservedInstancesIdT>(value));
210 return *this;
211 }
213
215
218 inline InstanceType GetInstanceType() const { return m_instanceType; }
219 inline bool InstanceTypeHasBeenSet() const { return m_instanceTypeHasBeenSet; }
220 inline void SetInstanceType(InstanceType value) {
221 m_instanceTypeHasBeenSet = true;
222 m_instanceType = value;
223 }
225 SetInstanceType(value);
226 return *this;
227 }
229
231
234 inline const Aws::String& GetAvailabilityZone() const { return m_availabilityZone; }
235 inline bool AvailabilityZoneHasBeenSet() const { return m_availabilityZoneHasBeenSet; }
236 template <typename AvailabilityZoneT = Aws::String>
237 void SetAvailabilityZone(AvailabilityZoneT&& value) {
238 m_availabilityZoneHasBeenSet = true;
239 m_availabilityZone = std::forward<AvailabilityZoneT>(value);
240 }
241 template <typename AvailabilityZoneT = Aws::String>
242 ReservedInstances& WithAvailabilityZone(AvailabilityZoneT&& value) {
243 SetAvailabilityZone(std::forward<AvailabilityZoneT>(value));
244 return *this;
245 }
247
249
252 inline const Aws::Utils::DateTime& GetStart() const { return m_start; }
253 inline bool StartHasBeenSet() const { return m_startHasBeenSet; }
254 template <typename StartT = Aws::Utils::DateTime>
255 void SetStart(StartT&& value) {
256 m_startHasBeenSet = true;
257 m_start = std::forward<StartT>(value);
258 }
259 template <typename StartT = Aws::Utils::DateTime>
260 ReservedInstances& WithStart(StartT&& value) {
261 SetStart(std::forward<StartT>(value));
262 return *this;
263 }
265
267
270 inline const Aws::Utils::DateTime& GetEnd() const { return m_end; }
271 inline bool EndHasBeenSet() const { return m_endHasBeenSet; }
272 template <typename EndT = Aws::Utils::DateTime>
273 void SetEnd(EndT&& value) {
274 m_endHasBeenSet = true;
275 m_end = std::forward<EndT>(value);
276 }
277 template <typename EndT = Aws::Utils::DateTime>
278 ReservedInstances& WithEnd(EndT&& value) {
279 SetEnd(std::forward<EndT>(value));
280 return *this;
281 }
283
285
288 inline long long GetDuration() const { return m_duration; }
289 inline bool DurationHasBeenSet() const { return m_durationHasBeenSet; }
290 inline void SetDuration(long long value) {
291 m_durationHasBeenSet = true;
292 m_duration = value;
293 }
294 inline ReservedInstances& WithDuration(long long value) {
295 SetDuration(value);
296 return *this;
297 }
299
301
304 inline double GetUsagePrice() const { return m_usagePrice; }
305 inline bool UsagePriceHasBeenSet() const { return m_usagePriceHasBeenSet; }
306 inline void SetUsagePrice(double value) {
307 m_usagePriceHasBeenSet = true;
308 m_usagePrice = value;
309 }
310 inline ReservedInstances& WithUsagePrice(double value) {
311 SetUsagePrice(value);
312 return *this;
313 }
315
317
320 inline double GetFixedPrice() const { return m_fixedPrice; }
321 inline bool FixedPriceHasBeenSet() const { return m_fixedPriceHasBeenSet; }
322 inline void SetFixedPrice(double value) {
323 m_fixedPriceHasBeenSet = true;
324 m_fixedPrice = value;
325 }
326 inline ReservedInstances& WithFixedPrice(double value) {
327 SetFixedPrice(value);
328 return *this;
329 }
331
333
336 inline int GetInstanceCount() const { return m_instanceCount; }
337 inline bool InstanceCountHasBeenSet() const { return m_instanceCountHasBeenSet; }
338 inline void SetInstanceCount(int value) {
339 m_instanceCountHasBeenSet = true;
340 m_instanceCount = value;
341 }
343 SetInstanceCount(value);
344 return *this;
345 }
347
349
352 inline RIProductDescription GetProductDescription() const { return m_productDescription; }
353 inline bool ProductDescriptionHasBeenSet() const { return m_productDescriptionHasBeenSet; }
355 m_productDescriptionHasBeenSet = true;
356 m_productDescription = value;
357 }
360 return *this;
361 }
363
365
368 inline ReservedInstanceState GetState() const { return m_state; }
369 inline bool StateHasBeenSet() const { return m_stateHasBeenSet; }
370 inline void SetState(ReservedInstanceState value) {
371 m_stateHasBeenSet = true;
372 m_state = value;
373 }
375 SetState(value);
376 return *this;
377 }
379 private:
381
382 Tenancy m_instanceTenancy{Tenancy::NOT_SET};
383
385
387
388 Aws::Vector<RecurringCharge> m_recurringCharges;
389
390 Scope m_scope{Scope::NOT_SET};
391
392 Aws::Vector<Tag> m_tags;
393
394 Aws::String m_availabilityZoneId;
395
396 Aws::String m_reservedInstancesId;
397
398 InstanceType m_instanceType{InstanceType::NOT_SET};
399
400 Aws::String m_availabilityZone;
401
402 Aws::Utils::DateTime m_start{};
403
404 Aws::Utils::DateTime m_end{};
405
406 long long m_duration{0};
407
408 double m_usagePrice{0.0};
409
410 double m_fixedPrice{0.0};
411
412 int m_instanceCount{0};
413
415
417 bool m_currencyCodeHasBeenSet = false;
418 bool m_instanceTenancyHasBeenSet = false;
419 bool m_offeringClassHasBeenSet = false;
420 bool m_offeringTypeHasBeenSet = false;
421 bool m_recurringChargesHasBeenSet = false;
422 bool m_scopeHasBeenSet = false;
423 bool m_tagsHasBeenSet = false;
424 bool m_availabilityZoneIdHasBeenSet = false;
425 bool m_reservedInstancesIdHasBeenSet = false;
426 bool m_instanceTypeHasBeenSet = false;
427 bool m_availabilityZoneHasBeenSet = false;
428 bool m_startHasBeenSet = false;
429 bool m_endHasBeenSet = false;
430 bool m_durationHasBeenSet = false;
431 bool m_usagePriceHasBeenSet = false;
432 bool m_fixedPriceHasBeenSet = false;
433 bool m_instanceCountHasBeenSet = false;
434 bool m_productDescriptionHasBeenSet = false;
435 bool m_stateHasBeenSet = false;
436};
437
438} // namespace Model
439} // namespace EC2
440} // namespace Aws
ReservedInstanceState GetState() const
const Aws::Utils::DateTime & GetStart() const
ReservedInstances & WithOfferingType(OfferingTypeValues value)
ReservedInstances & WithEnd(EndT &&value)
void SetOfferingType(OfferingTypeValues value)
AWS_EC2_API ReservedInstances()=default
AWS_EC2_API void OutputToStream(Aws::OStream &oStream, const char *location) const
CurrencyCodeValues GetCurrencyCode() const
ReservedInstances & WithState(ReservedInstanceState value)
ReservedInstances & WithTags(TagsT &&value)
AWS_EC2_API void OutputToStream(Aws::OStream &ostream, const char *location, unsigned index, const char *locationValue) const
const Aws::String & GetAvailabilityZoneId() const
ReservedInstances & WithInstanceTenancy(Tenancy value)
ReservedInstances & AddTags(TagsT &&value)
void SetAvailabilityZoneId(AvailabilityZoneIdT &&value)
ReservedInstances & WithFixedPrice(double value)
AWS_EC2_API ReservedInstances(const Aws::Utils::Xml::XmlNode &xmlNode)
void SetCurrencyCode(CurrencyCodeValues value)
ReservedInstances & WithAvailabilityZone(AvailabilityZoneT &&value)
ReservedInstances & WithScope(Scope value)
RIProductDescription GetProductDescription() const
ReservedInstances & WithInstanceCount(int value)
AWS_EC2_API ReservedInstances & operator=(const Aws::Utils::Xml::XmlNode &xmlNode)
const Aws::String & GetAvailabilityZone() const
void SetAvailabilityZone(AvailabilityZoneT &&value)
ReservedInstances & WithInstanceType(InstanceType value)
ReservedInstances & WithDuration(long long value)
ReservedInstances & WithAvailabilityZoneId(AvailabilityZoneIdT &&value)
void SetRecurringCharges(RecurringChargesT &&value)
OfferingClassType GetOfferingClass() const
const Aws::Vector< Tag > & GetTags() const
void SetInstanceType(InstanceType value)
const Aws::Utils::DateTime & GetEnd() const
ReservedInstances & WithReservedInstancesId(ReservedInstancesIdT &&value)
ReservedInstances & AddRecurringCharges(RecurringChargesT &&value)
ReservedInstances & WithCurrencyCode(CurrencyCodeValues value)
const Aws::String & GetReservedInstancesId() const
void SetOfferingClass(OfferingClassType value)
ReservedInstances & WithProductDescription(RIProductDescription value)
void SetState(ReservedInstanceState value)
ReservedInstances & WithOfferingClass(OfferingClassType value)
OfferingTypeValues GetOfferingType() const
void SetReservedInstancesId(ReservedInstancesIdT &&value)
const Aws::Vector< RecurringCharge > & GetRecurringCharges() const
void SetProductDescription(RIProductDescription value)
ReservedInstances & WithUsagePrice(double value)
ReservedInstances & WithStart(StartT &&value)
ReservedInstances & WithRecurringCharges(RecurringChargesT &&value)
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
std::vector< T, Aws::Allocator< T > > Vector
std::basic_ostream< char, std::char_traits< char > > OStream