AWS SDK for C++

AWS SDK for C++ Version 1.11.717

Loading...
Searching...
No Matches
SpotInstanceRequest.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/InstanceInterruptionBehavior.h>
13#include <aws/ec2/model/LaunchSpecification.h>
14#include <aws/ec2/model/RIProductDescription.h>
15#include <aws/ec2/model/SpotInstanceState.h>
16#include <aws/ec2/model/SpotInstanceStateFault.h>
17#include <aws/ec2/model/SpotInstanceStatus.h>
18#include <aws/ec2/model/SpotInstanceType.h>
19#include <aws/ec2/model/Tag.h>
20
21#include <utility>
22
23namespace Aws {
24namespace Utils {
25namespace Xml {
26class XmlNode;
27} // namespace Xml
28} // namespace Utils
29namespace EC2 {
30namespace Model {
31
38 public:
39 AWS_EC2_API SpotInstanceRequest() = default;
40 AWS_EC2_API SpotInstanceRequest(const Aws::Utils::Xml::XmlNode& xmlNode);
42
43 AWS_EC2_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const;
44 AWS_EC2_API void OutputToStream(Aws::OStream& oStream, const char* location) const;
45
47
50 inline const Aws::String& GetActualBlockHourlyPrice() const { return m_actualBlockHourlyPrice; }
51 inline bool ActualBlockHourlyPriceHasBeenSet() const { return m_actualBlockHourlyPriceHasBeenSet; }
52 template <typename ActualBlockHourlyPriceT = Aws::String>
53 void SetActualBlockHourlyPrice(ActualBlockHourlyPriceT&& value) {
54 m_actualBlockHourlyPriceHasBeenSet = true;
55 m_actualBlockHourlyPrice = std::forward<ActualBlockHourlyPriceT>(value);
56 }
57 template <typename ActualBlockHourlyPriceT = Aws::String>
58 SpotInstanceRequest& WithActualBlockHourlyPrice(ActualBlockHourlyPriceT&& value) {
59 SetActualBlockHourlyPrice(std::forward<ActualBlockHourlyPriceT>(value));
60 return *this;
61 }
63
65
70 inline const Aws::String& GetAvailabilityZoneGroup() const { return m_availabilityZoneGroup; }
71 inline bool AvailabilityZoneGroupHasBeenSet() const { return m_availabilityZoneGroupHasBeenSet; }
72 template <typename AvailabilityZoneGroupT = Aws::String>
73 void SetAvailabilityZoneGroup(AvailabilityZoneGroupT&& value) {
74 m_availabilityZoneGroupHasBeenSet = true;
75 m_availabilityZoneGroup = std::forward<AvailabilityZoneGroupT>(value);
76 }
77 template <typename AvailabilityZoneGroupT = Aws::String>
78 SpotInstanceRequest& WithAvailabilityZoneGroup(AvailabilityZoneGroupT&& value) {
79 SetAvailabilityZoneGroup(std::forward<AvailabilityZoneGroupT>(value));
80 return *this;
81 }
83
85
88 inline int GetBlockDurationMinutes() const { return m_blockDurationMinutes; }
89 inline bool BlockDurationMinutesHasBeenSet() const { return m_blockDurationMinutesHasBeenSet; }
90 inline void SetBlockDurationMinutes(int value) {
91 m_blockDurationMinutesHasBeenSet = true;
92 m_blockDurationMinutes = value;
93 }
96 return *this;
97 }
99
101
106 inline const Aws::Utils::DateTime& GetCreateTime() const { return m_createTime; }
107 inline bool CreateTimeHasBeenSet() const { return m_createTimeHasBeenSet; }
108 template <typename CreateTimeT = Aws::Utils::DateTime>
109 void SetCreateTime(CreateTimeT&& value) {
110 m_createTimeHasBeenSet = true;
111 m_createTime = std::forward<CreateTimeT>(value);
112 }
113 template <typename CreateTimeT = Aws::Utils::DateTime>
114 SpotInstanceRequest& WithCreateTime(CreateTimeT&& value) {
115 SetCreateTime(std::forward<CreateTimeT>(value));
116 return *this;
117 }
119
121
124 inline const SpotInstanceStateFault& GetFault() const { return m_fault; }
125 inline bool FaultHasBeenSet() const { return m_faultHasBeenSet; }
126 template <typename FaultT = SpotInstanceStateFault>
127 void SetFault(FaultT&& value) {
128 m_faultHasBeenSet = true;
129 m_fault = std::forward<FaultT>(value);
130 }
131 template <typename FaultT = SpotInstanceStateFault>
133 SetFault(std::forward<FaultT>(value));
134 return *this;
135 }
137
139
143 inline const Aws::String& GetInstanceId() const { return m_instanceId; }
144 inline bool InstanceIdHasBeenSet() const { return m_instanceIdHasBeenSet; }
145 template <typename InstanceIdT = Aws::String>
146 void SetInstanceId(InstanceIdT&& value) {
147 m_instanceIdHasBeenSet = true;
148 m_instanceId = std::forward<InstanceIdT>(value);
149 }
150 template <typename InstanceIdT = Aws::String>
151 SpotInstanceRequest& WithInstanceId(InstanceIdT&& value) {
152 SetInstanceId(std::forward<InstanceIdT>(value));
153 return *this;
154 }
156
158
162 inline const Aws::String& GetLaunchGroup() const { return m_launchGroup; }
163 inline bool LaunchGroupHasBeenSet() const { return m_launchGroupHasBeenSet; }
164 template <typename LaunchGroupT = Aws::String>
165 void SetLaunchGroup(LaunchGroupT&& value) {
166 m_launchGroupHasBeenSet = true;
167 m_launchGroup = std::forward<LaunchGroupT>(value);
168 }
169 template <typename LaunchGroupT = Aws::String>
170 SpotInstanceRequest& WithLaunchGroup(LaunchGroupT&& value) {
171 SetLaunchGroup(std::forward<LaunchGroupT>(value));
172 return *this;
173 }
175
177
180 inline const LaunchSpecification& GetLaunchSpecification() const { return m_launchSpecification; }
181 inline bool LaunchSpecificationHasBeenSet() const { return m_launchSpecificationHasBeenSet; }
182 template <typename LaunchSpecificationT = LaunchSpecification>
183 void SetLaunchSpecification(LaunchSpecificationT&& value) {
184 m_launchSpecificationHasBeenSet = true;
185 m_launchSpecification = std::forward<LaunchSpecificationT>(value);
186 }
187 template <typename LaunchSpecificationT = LaunchSpecification>
188 SpotInstanceRequest& WithLaunchSpecification(LaunchSpecificationT&& value) {
189 SetLaunchSpecification(std::forward<LaunchSpecificationT>(value));
190 return *this;
191 }
193
195
200 inline const Aws::String& GetLaunchedAvailabilityZone() const { return m_launchedAvailabilityZone; }
201 inline bool LaunchedAvailabilityZoneHasBeenSet() const { return m_launchedAvailabilityZoneHasBeenSet; }
202 template <typename LaunchedAvailabilityZoneT = Aws::String>
203 void SetLaunchedAvailabilityZone(LaunchedAvailabilityZoneT&& value) {
204 m_launchedAvailabilityZoneHasBeenSet = true;
205 m_launchedAvailabilityZone = std::forward<LaunchedAvailabilityZoneT>(value);
206 }
207 template <typename LaunchedAvailabilityZoneT = Aws::String>
208 SpotInstanceRequest& WithLaunchedAvailabilityZone(LaunchedAvailabilityZoneT&& value) {
209 SetLaunchedAvailabilityZone(std::forward<LaunchedAvailabilityZoneT>(value));
210 return *this;
211 }
213
215
220 inline const Aws::String& GetLaunchedAvailabilityZoneId() const { return m_launchedAvailabilityZoneId; }
221 inline bool LaunchedAvailabilityZoneIdHasBeenSet() const { return m_launchedAvailabilityZoneIdHasBeenSet; }
222 template <typename LaunchedAvailabilityZoneIdT = Aws::String>
223 void SetLaunchedAvailabilityZoneId(LaunchedAvailabilityZoneIdT&& value) {
224 m_launchedAvailabilityZoneIdHasBeenSet = true;
225 m_launchedAvailabilityZoneId = std::forward<LaunchedAvailabilityZoneIdT>(value);
226 }
227 template <typename LaunchedAvailabilityZoneIdT = Aws::String>
228 SpotInstanceRequest& WithLaunchedAvailabilityZoneId(LaunchedAvailabilityZoneIdT&& value) {
229 SetLaunchedAvailabilityZoneId(std::forward<LaunchedAvailabilityZoneIdT>(value));
230 return *this;
231 }
233
235
238 inline RIProductDescription GetProductDescription() const { return m_productDescription; }
239 inline bool ProductDescriptionHasBeenSet() const { return m_productDescriptionHasBeenSet; }
241 m_productDescriptionHasBeenSet = true;
242 m_productDescription = value;
243 }
246 return *this;
247 }
249
251
254 inline const Aws::String& GetSpotInstanceRequestId() const { return m_spotInstanceRequestId; }
255 inline bool SpotInstanceRequestIdHasBeenSet() const { return m_spotInstanceRequestIdHasBeenSet; }
256 template <typename SpotInstanceRequestIdT = Aws::String>
257 void SetSpotInstanceRequestId(SpotInstanceRequestIdT&& value) {
258 m_spotInstanceRequestIdHasBeenSet = true;
259 m_spotInstanceRequestId = std::forward<SpotInstanceRequestIdT>(value);
260 }
261 template <typename SpotInstanceRequestIdT = Aws::String>
262 SpotInstanceRequest& WithSpotInstanceRequestId(SpotInstanceRequestIdT&& value) {
263 SetSpotInstanceRequestId(std::forward<SpotInstanceRequestIdT>(value));
264 return *this;
265 }
267
269
277 inline const Aws::String& GetSpotPrice() const { return m_spotPrice; }
278 inline bool SpotPriceHasBeenSet() const { return m_spotPriceHasBeenSet; }
279 template <typename SpotPriceT = Aws::String>
280 void SetSpotPrice(SpotPriceT&& value) {
281 m_spotPriceHasBeenSet = true;
282 m_spotPrice = std::forward<SpotPriceT>(value);
283 }
284 template <typename SpotPriceT = Aws::String>
285 SpotInstanceRequest& WithSpotPrice(SpotPriceT&& value) {
286 SetSpotPrice(std::forward<SpotPriceT>(value));
287 return *this;
288 }
290
292
298 inline SpotInstanceState GetState() const { return m_state; }
299 inline bool StateHasBeenSet() const { return m_stateHasBeenSet; }
300 inline void SetState(SpotInstanceState value) {
301 m_stateHasBeenSet = true;
302 m_state = value;
303 }
305 SetState(value);
306 return *this;
307 }
309
311
314 inline const SpotInstanceStatus& GetStatus() const { return m_status; }
315 inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; }
316 template <typename StatusT = SpotInstanceStatus>
317 void SetStatus(StatusT&& value) {
318 m_statusHasBeenSet = true;
319 m_status = std::forward<StatusT>(value);
320 }
321 template <typename StatusT = SpotInstanceStatus>
322 SpotInstanceRequest& WithStatus(StatusT&& value) {
323 SetStatus(std::forward<StatusT>(value));
324 return *this;
325 }
327
329
332 inline const Aws::Vector<Tag>& GetTags() const { return m_tags; }
333 inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
334 template <typename TagsT = Aws::Vector<Tag>>
335 void SetTags(TagsT&& value) {
336 m_tagsHasBeenSet = true;
337 m_tags = std::forward<TagsT>(value);
338 }
339 template <typename TagsT = Aws::Vector<Tag>>
341 SetTags(std::forward<TagsT>(value));
342 return *this;
343 }
344 template <typename TagsT = Tag>
345 SpotInstanceRequest& AddTags(TagsT&& value) {
346 m_tagsHasBeenSet = true;
347 m_tags.emplace_back(std::forward<TagsT>(value));
348 return *this;
349 }
351
353
356 inline SpotInstanceType GetType() const { return m_type; }
357 inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; }
358 inline void SetType(SpotInstanceType value) {
359 m_typeHasBeenSet = true;
360 m_type = value;
361 }
363 SetType(value);
364 return *this;
365 }
367
369
374 inline const Aws::Utils::DateTime& GetValidFrom() const { return m_validFrom; }
375 inline bool ValidFromHasBeenSet() const { return m_validFromHasBeenSet; }
376 template <typename ValidFromT = Aws::Utils::DateTime>
377 void SetValidFrom(ValidFromT&& value) {
378 m_validFromHasBeenSet = true;
379 m_validFrom = std::forward<ValidFromT>(value);
380 }
381 template <typename ValidFromT = Aws::Utils::DateTime>
382 SpotInstanceRequest& WithValidFrom(ValidFromT&& value) {
383 SetValidFrom(std::forward<ValidFromT>(value));
384 return *this;
385 }
387
389
399 inline const Aws::Utils::DateTime& GetValidUntil() const { return m_validUntil; }
400 inline bool ValidUntilHasBeenSet() const { return m_validUntilHasBeenSet; }
401 template <typename ValidUntilT = Aws::Utils::DateTime>
402 void SetValidUntil(ValidUntilT&& value) {
403 m_validUntilHasBeenSet = true;
404 m_validUntil = std::forward<ValidUntilT>(value);
405 }
406 template <typename ValidUntilT = Aws::Utils::DateTime>
407 SpotInstanceRequest& WithValidUntil(ValidUntilT&& value) {
408 SetValidUntil(std::forward<ValidUntilT>(value));
409 return *this;
410 }
412
414
417 inline InstanceInterruptionBehavior GetInstanceInterruptionBehavior() const { return m_instanceInterruptionBehavior; }
418 inline bool InstanceInterruptionBehaviorHasBeenSet() const { return m_instanceInterruptionBehaviorHasBeenSet; }
420 m_instanceInterruptionBehaviorHasBeenSet = true;
421 m_instanceInterruptionBehavior = value;
422 }
425 return *this;
426 }
428 private:
429 Aws::String m_actualBlockHourlyPrice;
430
431 Aws::String m_availabilityZoneGroup;
432
433 int m_blockDurationMinutes{0};
434
435 Aws::Utils::DateTime m_createTime{};
436
437 SpotInstanceStateFault m_fault;
438
439 Aws::String m_instanceId;
440
441 Aws::String m_launchGroup;
442
443 LaunchSpecification m_launchSpecification;
444
445 Aws::String m_launchedAvailabilityZone;
446
447 Aws::String m_launchedAvailabilityZoneId;
448
450
451 Aws::String m_spotInstanceRequestId;
452
453 Aws::String m_spotPrice;
454
456
457 SpotInstanceStatus m_status;
458
459 Aws::Vector<Tag> m_tags;
460
462
463 Aws::Utils::DateTime m_validFrom{};
464
465 Aws::Utils::DateTime m_validUntil{};
466
468 bool m_actualBlockHourlyPriceHasBeenSet = false;
469 bool m_availabilityZoneGroupHasBeenSet = false;
470 bool m_blockDurationMinutesHasBeenSet = false;
471 bool m_createTimeHasBeenSet = false;
472 bool m_faultHasBeenSet = false;
473 bool m_instanceIdHasBeenSet = false;
474 bool m_launchGroupHasBeenSet = false;
475 bool m_launchSpecificationHasBeenSet = false;
476 bool m_launchedAvailabilityZoneHasBeenSet = false;
477 bool m_launchedAvailabilityZoneIdHasBeenSet = false;
478 bool m_productDescriptionHasBeenSet = false;
479 bool m_spotInstanceRequestIdHasBeenSet = false;
480 bool m_spotPriceHasBeenSet = false;
481 bool m_stateHasBeenSet = false;
482 bool m_statusHasBeenSet = false;
483 bool m_tagsHasBeenSet = false;
484 bool m_typeHasBeenSet = false;
485 bool m_validFromHasBeenSet = false;
486 bool m_validUntilHasBeenSet = false;
487 bool m_instanceInterruptionBehaviorHasBeenSet = false;
488};
489
490} // namespace Model
491} // namespace EC2
492} // namespace Aws
void SetState(SpotInstanceState value)
SpotInstanceRequest & WithActualBlockHourlyPrice(ActualBlockHourlyPriceT &&value)
SpotInstanceRequest & WithSpotPrice(SpotPriceT &&value)
SpotInstanceRequest & WithState(SpotInstanceState value)
void SetSpotInstanceRequestId(SpotInstanceRequestIdT &&value)
SpotInstanceRequest & WithStatus(StatusT &&value)
const Aws::String & GetLaunchedAvailabilityZoneId() const
AWS_EC2_API void OutputToStream(Aws::OStream &ostream, const char *location, unsigned index, const char *locationValue) const
AWS_EC2_API void OutputToStream(Aws::OStream &oStream, const char *location) const
AWS_EC2_API SpotInstanceRequest()=default
const SpotInstanceStatus & GetStatus() const
const SpotInstanceStateFault & GetFault() const
SpotInstanceRequest & WithProductDescription(RIProductDescription value)
const Aws::Utils::DateTime & GetCreateTime() const
SpotInstanceRequest & WithLaunchedAvailabilityZoneId(LaunchedAvailabilityZoneIdT &&value)
AWS_EC2_API SpotInstanceRequest(const Aws::Utils::Xml::XmlNode &xmlNode)
SpotInstanceRequest & WithValidUntil(ValidUntilT &&value)
SpotInstanceRequest & WithCreateTime(CreateTimeT &&value)
SpotInstanceRequest & WithType(SpotInstanceType value)
void SetLaunchSpecification(LaunchSpecificationT &&value)
SpotInstanceRequest & WithAvailabilityZoneGroup(AvailabilityZoneGroupT &&value)
SpotInstanceRequest & WithFault(FaultT &&value)
const Aws::String & GetActualBlockHourlyPrice() const
const Aws::Utils::DateTime & GetValidUntil() const
const Aws::String & GetLaunchGroup() const
RIProductDescription GetProductDescription() const
const LaunchSpecification & GetLaunchSpecification() const
AWS_EC2_API SpotInstanceRequest & operator=(const Aws::Utils::Xml::XmlNode &xmlNode)
SpotInstanceRequest & WithValidFrom(ValidFromT &&value)
void SetLaunchedAvailabilityZone(LaunchedAvailabilityZoneT &&value)
const Aws::Vector< Tag > & GetTags() const
void SetProductDescription(RIProductDescription value)
InstanceInterruptionBehavior GetInstanceInterruptionBehavior() const
SpotInstanceRequest & WithTags(TagsT &&value)
void SetLaunchedAvailabilityZoneId(LaunchedAvailabilityZoneIdT &&value)
const Aws::String & GetLaunchedAvailabilityZone() const
void SetType(SpotInstanceType value)
const Aws::String & GetInstanceId() const
SpotInstanceRequest & WithLaunchSpecification(LaunchSpecificationT &&value)
void SetLaunchGroup(LaunchGroupT &&value)
SpotInstanceRequest & WithInstanceInterruptionBehavior(InstanceInterruptionBehavior value)
SpotInstanceRequest & WithBlockDurationMinutes(int value)
SpotInstanceRequest & WithLaunchedAvailabilityZone(LaunchedAvailabilityZoneT &&value)
const Aws::Utils::DateTime & GetValidFrom() const
void SetInstanceInterruptionBehavior(InstanceInterruptionBehavior value)
SpotInstanceRequest & WithLaunchGroup(LaunchGroupT &&value)
const Aws::String & GetSpotPrice() const
const Aws::String & GetAvailabilityZoneGroup() const
SpotInstanceRequest & AddTags(TagsT &&value)
SpotInstanceRequest & WithInstanceId(InstanceIdT &&value)
void SetActualBlockHourlyPrice(ActualBlockHourlyPriceT &&value)
const Aws::String & GetSpotInstanceRequestId() const
void SetAvailabilityZoneGroup(AvailabilityZoneGroupT &&value)
SpotInstanceRequest & WithSpotInstanceRequestId(SpotInstanceRequestIdT &&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