AWS SDK for C++

AWS SDK for C++ Version 1.11.744

Loading...
Searching...
No Matches
RunInstancesRequest.h
1
6#pragma once
7#include <aws/core/utils/UUID.h>
8#include <aws/core/utils/memory/stl/AWSString.h>
9#include <aws/core/utils/memory/stl/AWSVector.h>
10#include <aws/ec2/EC2Request.h>
11#include <aws/ec2/EC2_EXPORTS.h>
12#include <aws/ec2/model/BlockDeviceMapping.h>
13#include <aws/ec2/model/CapacityReservationSpecification.h>
14#include <aws/ec2/model/CpuOptionsRequest.h>
15#include <aws/ec2/model/CreditSpecificationRequest.h>
16#include <aws/ec2/model/EnclaveOptionsRequest.h>
17#include <aws/ec2/model/HibernationOptionsRequest.h>
18#include <aws/ec2/model/IamInstanceProfileSpecification.h>
19#include <aws/ec2/model/InstanceIpv6Address.h>
20#include <aws/ec2/model/InstanceMaintenanceOptionsRequest.h>
21#include <aws/ec2/model/InstanceMarketOptionsRequest.h>
22#include <aws/ec2/model/InstanceMetadataOptionsRequest.h>
23#include <aws/ec2/model/InstanceNetworkInterfaceSpecification.h>
24#include <aws/ec2/model/InstanceNetworkPerformanceOptionsRequest.h>
25#include <aws/ec2/model/InstanceSecondaryInterfaceSpecificationRequest.h>
26#include <aws/ec2/model/InstanceType.h>
27#include <aws/ec2/model/LaunchTemplateSpecification.h>
28#include <aws/ec2/model/LicenseConfigurationRequest.h>
29#include <aws/ec2/model/OperatorRequest.h>
30#include <aws/ec2/model/Placement.h>
31#include <aws/ec2/model/PrivateDnsNameOptionsRequest.h>
32#include <aws/ec2/model/RunInstancesMonitoringEnabled.h>
33#include <aws/ec2/model/ShutdownBehavior.h>
34#include <aws/ec2/model/TagSpecification.h>
35
36#include <utility>
37
38namespace Aws {
39namespace EC2 {
40namespace Model {
41
45 public:
46 AWS_EC2_API RunInstancesRequest() = default;
47
48 // Service request name is the Operation name which will send this request out,
49 // each operation should has unique request name, so that we can get operation's name from this request.
50 // Note: this is not true for response, multiple operations may have the same response name,
51 // so we can not get operation's name from response.
52 inline virtual const char* GetServiceRequestName() const override { return "RunInstances"; }
53
54 AWS_EC2_API Aws::String SerializePayload() const override;
55
56 protected:
57 AWS_EC2_API void DumpBodyToUrl(Aws::Http::URI& uri) const override;
58
59 public:
61
67 inline const Aws::Vector<BlockDeviceMapping>& GetBlockDeviceMappings() const { return m_blockDeviceMappings; }
68 inline bool BlockDeviceMappingsHasBeenSet() const { return m_blockDeviceMappingsHasBeenSet; }
69 template <typename BlockDeviceMappingsT = Aws::Vector<BlockDeviceMapping>>
70 void SetBlockDeviceMappings(BlockDeviceMappingsT&& value) {
71 m_blockDeviceMappingsHasBeenSet = true;
72 m_blockDeviceMappings = std::forward<BlockDeviceMappingsT>(value);
73 }
74 template <typename BlockDeviceMappingsT = Aws::Vector<BlockDeviceMapping>>
75 RunInstancesRequest& WithBlockDeviceMappings(BlockDeviceMappingsT&& value) {
76 SetBlockDeviceMappings(std::forward<BlockDeviceMappingsT>(value));
77 return *this;
78 }
79 template <typename BlockDeviceMappingsT = BlockDeviceMapping>
80 RunInstancesRequest& AddBlockDeviceMappings(BlockDeviceMappingsT&& value) {
81 m_blockDeviceMappingsHasBeenSet = true;
82 m_blockDeviceMappings.emplace_back(std::forward<BlockDeviceMappingsT>(value));
83 return *this;
84 }
86
88
92 inline const Aws::String& GetImageId() const { return m_imageId; }
93 inline bool ImageIdHasBeenSet() const { return m_imageIdHasBeenSet; }
94 template <typename ImageIdT = Aws::String>
95 void SetImageId(ImageIdT&& value) {
96 m_imageIdHasBeenSet = true;
97 m_imageId = std::forward<ImageIdT>(value);
98 }
99 template <typename ImageIdT = Aws::String>
100 RunInstancesRequest& WithImageId(ImageIdT&& value) {
101 SetImageId(std::forward<ImageIdT>(value));
102 return *this;
103 }
105
107
112 inline InstanceType GetInstanceType() const { return m_instanceType; }
113 inline bool InstanceTypeHasBeenSet() const { return m_instanceTypeHasBeenSet; }
114 inline void SetInstanceType(InstanceType value) {
115 m_instanceTypeHasBeenSet = true;
116 m_instanceType = value;
117 }
119 SetInstanceType(value);
120 return *this;
121 }
123
125
133 inline int GetIpv6AddressCount() const { return m_ipv6AddressCount; }
134 inline bool Ipv6AddressCountHasBeenSet() const { return m_ipv6AddressCountHasBeenSet; }
135 inline void SetIpv6AddressCount(int value) {
136 m_ipv6AddressCountHasBeenSet = true;
137 m_ipv6AddressCount = value;
138 }
140 SetIpv6AddressCount(value);
141 return *this;
142 }
144
146
153 inline const Aws::Vector<InstanceIpv6Address>& GetIpv6Addresses() const { return m_ipv6Addresses; }
154 inline bool Ipv6AddressesHasBeenSet() const { return m_ipv6AddressesHasBeenSet; }
155 template <typename Ipv6AddressesT = Aws::Vector<InstanceIpv6Address>>
156 void SetIpv6Addresses(Ipv6AddressesT&& value) {
157 m_ipv6AddressesHasBeenSet = true;
158 m_ipv6Addresses = std::forward<Ipv6AddressesT>(value);
159 }
160 template <typename Ipv6AddressesT = Aws::Vector<InstanceIpv6Address>>
161 RunInstancesRequest& WithIpv6Addresses(Ipv6AddressesT&& value) {
162 SetIpv6Addresses(std::forward<Ipv6AddressesT>(value));
163 return *this;
164 }
165 template <typename Ipv6AddressesT = InstanceIpv6Address>
166 RunInstancesRequest& AddIpv6Addresses(Ipv6AddressesT&& value) {
167 m_ipv6AddressesHasBeenSet = true;
168 m_ipv6Addresses.emplace_back(std::forward<Ipv6AddressesT>(value));
169 return *this;
170 }
172
174
180 inline const Aws::String& GetKernelId() const { return m_kernelId; }
181 inline bool KernelIdHasBeenSet() const { return m_kernelIdHasBeenSet; }
182 template <typename KernelIdT = Aws::String>
183 void SetKernelId(KernelIdT&& value) {
184 m_kernelIdHasBeenSet = true;
185 m_kernelId = std::forward<KernelIdT>(value);
186 }
187 template <typename KernelIdT = Aws::String>
188 RunInstancesRequest& WithKernelId(KernelIdT&& value) {
189 SetKernelId(std::forward<KernelIdT>(value));
190 return *this;
191 }
193
195
202 inline const Aws::String& GetKeyName() const { return m_keyName; }
203 inline bool KeyNameHasBeenSet() const { return m_keyNameHasBeenSet; }
204 template <typename KeyNameT = Aws::String>
205 void SetKeyName(KeyNameT&& value) {
206 m_keyNameHasBeenSet = true;
207 m_keyName = std::forward<KeyNameT>(value);
208 }
209 template <typename KeyNameT = Aws::String>
210 RunInstancesRequest& WithKeyName(KeyNameT&& value) {
211 SetKeyName(std::forward<KeyNameT>(value));
212 return *this;
213 }
215
217
226 inline int GetMaxCount() const { return m_maxCount; }
227 inline bool MaxCountHasBeenSet() const { return m_maxCountHasBeenSet; }
228 inline void SetMaxCount(int value) {
229 m_maxCountHasBeenSet = true;
230 m_maxCount = value;
231 }
233 SetMaxCount(value);
234 return *this;
235 }
237
239
248 inline int GetMinCount() const { return m_minCount; }
249 inline bool MinCountHasBeenSet() const { return m_minCountHasBeenSet; }
250 inline void SetMinCount(int value) {
251 m_minCountHasBeenSet = true;
252 m_minCount = value;
253 }
255 SetMinCount(value);
256 return *this;
257 }
259
261
264 inline const RunInstancesMonitoringEnabled& GetMonitoring() const { return m_monitoring; }
265 inline bool MonitoringHasBeenSet() const { return m_monitoringHasBeenSet; }
266 template <typename MonitoringT = RunInstancesMonitoringEnabled>
267 void SetMonitoring(MonitoringT&& value) {
268 m_monitoringHasBeenSet = true;
269 m_monitoring = std::forward<MonitoringT>(value);
270 }
271 template <typename MonitoringT = RunInstancesMonitoringEnabled>
272 RunInstancesRequest& WithMonitoring(MonitoringT&& value) {
273 SetMonitoring(std::forward<MonitoringT>(value));
274 return *this;
275 }
277
279
282 inline const Placement& GetPlacement() const { return m_placement; }
283 inline bool PlacementHasBeenSet() const { return m_placementHasBeenSet; }
284 template <typename PlacementT = Placement>
285 void SetPlacement(PlacementT&& value) {
286 m_placementHasBeenSet = true;
287 m_placement = std::forward<PlacementT>(value);
288 }
289 template <typename PlacementT = Placement>
290 RunInstancesRequest& WithPlacement(PlacementT&& value) {
291 SetPlacement(std::forward<PlacementT>(value));
292 return *this;
293 }
295
297
307 inline const Aws::String& GetRamdiskId() const { return m_ramdiskId; }
308 inline bool RamdiskIdHasBeenSet() const { return m_ramdiskIdHasBeenSet; }
309 template <typename RamdiskIdT = Aws::String>
310 void SetRamdiskId(RamdiskIdT&& value) {
311 m_ramdiskIdHasBeenSet = true;
312 m_ramdiskId = std::forward<RamdiskIdT>(value);
313 }
314 template <typename RamdiskIdT = Aws::String>
315 RunInstancesRequest& WithRamdiskId(RamdiskIdT&& value) {
316 SetRamdiskId(std::forward<RamdiskIdT>(value));
317 return *this;
318 }
320
322
327 inline const Aws::Vector<Aws::String>& GetSecurityGroupIds() const { return m_securityGroupIds; }
328 inline bool SecurityGroupIdsHasBeenSet() const { return m_securityGroupIdsHasBeenSet; }
329 template <typename SecurityGroupIdsT = Aws::Vector<Aws::String>>
330 void SetSecurityGroupIds(SecurityGroupIdsT&& value) {
331 m_securityGroupIdsHasBeenSet = true;
332 m_securityGroupIds = std::forward<SecurityGroupIdsT>(value);
333 }
334 template <typename SecurityGroupIdsT = Aws::Vector<Aws::String>>
335 RunInstancesRequest& WithSecurityGroupIds(SecurityGroupIdsT&& value) {
336 SetSecurityGroupIds(std::forward<SecurityGroupIdsT>(value));
337 return *this;
338 }
339 template <typename SecurityGroupIdsT = Aws::String>
340 RunInstancesRequest& AddSecurityGroupIds(SecurityGroupIdsT&& value) {
341 m_securityGroupIdsHasBeenSet = true;
342 m_securityGroupIds.emplace_back(std::forward<SecurityGroupIdsT>(value));
343 return *this;
344 }
346
348
354 inline const Aws::Vector<Aws::String>& GetSecurityGroups() const { return m_securityGroups; }
355 inline bool SecurityGroupsHasBeenSet() const { return m_securityGroupsHasBeenSet; }
356 template <typename SecurityGroupsT = Aws::Vector<Aws::String>>
357 void SetSecurityGroups(SecurityGroupsT&& value) {
358 m_securityGroupsHasBeenSet = true;
359 m_securityGroups = std::forward<SecurityGroupsT>(value);
360 }
361 template <typename SecurityGroupsT = Aws::Vector<Aws::String>>
362 RunInstancesRequest& WithSecurityGroups(SecurityGroupsT&& value) {
363 SetSecurityGroups(std::forward<SecurityGroupsT>(value));
364 return *this;
365 }
366 template <typename SecurityGroupsT = Aws::String>
367 RunInstancesRequest& AddSecurityGroups(SecurityGroupsT&& value) {
368 m_securityGroupsHasBeenSet = true;
369 m_securityGroups.emplace_back(std::forward<SecurityGroupsT>(value));
370 return *this;
371 }
373
375
380 inline const Aws::String& GetSubnetId() const { return m_subnetId; }
381 inline bool SubnetIdHasBeenSet() const { return m_subnetIdHasBeenSet; }
382 template <typename SubnetIdT = Aws::String>
383 void SetSubnetId(SubnetIdT&& value) {
384 m_subnetIdHasBeenSet = true;
385 m_subnetId = std::forward<SubnetIdT>(value);
386 }
387 template <typename SubnetIdT = Aws::String>
388 RunInstancesRequest& WithSubnetId(SubnetIdT&& value) {
389 SetSubnetId(std::forward<SubnetIdT>(value));
390 return *this;
391 }
393
395
402 inline const Aws::String& GetUserData() const { return m_userData; }
403 inline bool UserDataHasBeenSet() const { return m_userDataHasBeenSet; }
404 template <typename UserDataT = Aws::String>
405 void SetUserData(UserDataT&& value) {
406 m_userDataHasBeenSet = true;
407 m_userData = std::forward<UserDataT>(value);
408 }
409 template <typename UserDataT = Aws::String>
410 RunInstancesRequest& WithUserData(UserDataT&& value) {
411 SetUserData(std::forward<UserDataT>(value));
412 return *this;
413 }
415
417
425 inline const Aws::Vector<TagSpecification>& GetTagSpecifications() const { return m_tagSpecifications; }
426 inline bool TagSpecificationsHasBeenSet() const { return m_tagSpecificationsHasBeenSet; }
427 template <typename TagSpecificationsT = Aws::Vector<TagSpecification>>
428 void SetTagSpecifications(TagSpecificationsT&& value) {
429 m_tagSpecificationsHasBeenSet = true;
430 m_tagSpecifications = std::forward<TagSpecificationsT>(value);
431 }
432 template <typename TagSpecificationsT = Aws::Vector<TagSpecification>>
433 RunInstancesRequest& WithTagSpecifications(TagSpecificationsT&& value) {
434 SetTagSpecifications(std::forward<TagSpecificationsT>(value));
435 return *this;
436 }
437 template <typename TagSpecificationsT = TagSpecification>
438 RunInstancesRequest& AddTagSpecifications(TagSpecificationsT&& value) {
439 m_tagSpecificationsHasBeenSet = true;
440 m_tagSpecifications.emplace_back(std::forward<TagSpecificationsT>(value));
441 return *this;
442 }
444
446
451 inline const LaunchTemplateSpecification& GetLaunchTemplate() const { return m_launchTemplate; }
452 inline bool LaunchTemplateHasBeenSet() const { return m_launchTemplateHasBeenSet; }
453 template <typename LaunchTemplateT = LaunchTemplateSpecification>
454 void SetLaunchTemplate(LaunchTemplateT&& value) {
455 m_launchTemplateHasBeenSet = true;
456 m_launchTemplate = std::forward<LaunchTemplateT>(value);
457 }
458 template <typename LaunchTemplateT = LaunchTemplateSpecification>
459 RunInstancesRequest& WithLaunchTemplate(LaunchTemplateT&& value) {
460 SetLaunchTemplate(std::forward<LaunchTemplateT>(value));
461 return *this;
462 }
464
466
472 inline const InstanceMarketOptionsRequest& GetInstanceMarketOptions() const { return m_instanceMarketOptions; }
473 inline bool InstanceMarketOptionsHasBeenSet() const { return m_instanceMarketOptionsHasBeenSet; }
474 template <typename InstanceMarketOptionsT = InstanceMarketOptionsRequest>
475 void SetInstanceMarketOptions(InstanceMarketOptionsT&& value) {
476 m_instanceMarketOptionsHasBeenSet = true;
477 m_instanceMarketOptions = std::forward<InstanceMarketOptionsT>(value);
478 }
479 template <typename InstanceMarketOptionsT = InstanceMarketOptionsRequest>
480 RunInstancesRequest& WithInstanceMarketOptions(InstanceMarketOptionsT&& value) {
481 SetInstanceMarketOptions(std::forward<InstanceMarketOptionsT>(value));
482 return *this;
483 }
485
487
499 inline const CreditSpecificationRequest& GetCreditSpecification() const { return m_creditSpecification; }
500 inline bool CreditSpecificationHasBeenSet() const { return m_creditSpecificationHasBeenSet; }
501 template <typename CreditSpecificationT = CreditSpecificationRequest>
502 void SetCreditSpecification(CreditSpecificationT&& value) {
503 m_creditSpecificationHasBeenSet = true;
504 m_creditSpecification = std::forward<CreditSpecificationT>(value);
505 }
506 template <typename CreditSpecificationT = CreditSpecificationRequest>
507 RunInstancesRequest& WithCreditSpecification(CreditSpecificationT&& value) {
508 SetCreditSpecification(std::forward<CreditSpecificationT>(value));
509 return *this;
510 }
512
514
519 inline const CpuOptionsRequest& GetCpuOptions() const { return m_cpuOptions; }
520 inline bool CpuOptionsHasBeenSet() const { return m_cpuOptionsHasBeenSet; }
521 template <typename CpuOptionsT = CpuOptionsRequest>
522 void SetCpuOptions(CpuOptionsT&& value) {
523 m_cpuOptionsHasBeenSet = true;
524 m_cpuOptions = std::forward<CpuOptionsT>(value);
525 }
526 template <typename CpuOptionsT = CpuOptionsRequest>
527 RunInstancesRequest& WithCpuOptions(CpuOptionsT&& value) {
528 SetCpuOptions(std::forward<CpuOptionsT>(value));
529 return *this;
530 }
532
534
541 inline const CapacityReservationSpecification& GetCapacityReservationSpecification() const { return m_capacityReservationSpecification; }
542 inline bool CapacityReservationSpecificationHasBeenSet() const { return m_capacityReservationSpecificationHasBeenSet; }
543 template <typename CapacityReservationSpecificationT = CapacityReservationSpecification>
544 void SetCapacityReservationSpecification(CapacityReservationSpecificationT&& value) {
545 m_capacityReservationSpecificationHasBeenSet = true;
546 m_capacityReservationSpecification = std::forward<CapacityReservationSpecificationT>(value);
547 }
548 template <typename CapacityReservationSpecificationT = CapacityReservationSpecification>
549 RunInstancesRequest& WithCapacityReservationSpecification(CapacityReservationSpecificationT&& value) {
550 SetCapacityReservationSpecification(std::forward<CapacityReservationSpecificationT>(value));
551 return *this;
552 }
554
556
566 inline const HibernationOptionsRequest& GetHibernationOptions() const { return m_hibernationOptions; }
567 inline bool HibernationOptionsHasBeenSet() const { return m_hibernationOptionsHasBeenSet; }
568 template <typename HibernationOptionsT = HibernationOptionsRequest>
569 void SetHibernationOptions(HibernationOptionsT&& value) {
570 m_hibernationOptionsHasBeenSet = true;
571 m_hibernationOptions = std::forward<HibernationOptionsT>(value);
572 }
573 template <typename HibernationOptionsT = HibernationOptionsRequest>
574 RunInstancesRequest& WithHibernationOptions(HibernationOptionsT&& value) {
575 SetHibernationOptions(std::forward<HibernationOptionsT>(value));
576 return *this;
577 }
579
581
584 inline const Aws::Vector<LicenseConfigurationRequest>& GetLicenseSpecifications() const { return m_licenseSpecifications; }
585 inline bool LicenseSpecificationsHasBeenSet() const { return m_licenseSpecificationsHasBeenSet; }
586 template <typename LicenseSpecificationsT = Aws::Vector<LicenseConfigurationRequest>>
587 void SetLicenseSpecifications(LicenseSpecificationsT&& value) {
588 m_licenseSpecificationsHasBeenSet = true;
589 m_licenseSpecifications = std::forward<LicenseSpecificationsT>(value);
590 }
591 template <typename LicenseSpecificationsT = Aws::Vector<LicenseConfigurationRequest>>
592 RunInstancesRequest& WithLicenseSpecifications(LicenseSpecificationsT&& value) {
593 SetLicenseSpecifications(std::forward<LicenseSpecificationsT>(value));
594 return *this;
595 }
596 template <typename LicenseSpecificationsT = LicenseConfigurationRequest>
597 RunInstancesRequest& AddLicenseSpecifications(LicenseSpecificationsT&& value) {
598 m_licenseSpecificationsHasBeenSet = true;
599 m_licenseSpecifications.emplace_back(std::forward<LicenseSpecificationsT>(value));
600 return *this;
601 }
603
605
610 inline const InstanceMetadataOptionsRequest& GetMetadataOptions() const { return m_metadataOptions; }
611 inline bool MetadataOptionsHasBeenSet() const { return m_metadataOptionsHasBeenSet; }
612 template <typename MetadataOptionsT = InstanceMetadataOptionsRequest>
613 void SetMetadataOptions(MetadataOptionsT&& value) {
614 m_metadataOptionsHasBeenSet = true;
615 m_metadataOptions = std::forward<MetadataOptionsT>(value);
616 }
617 template <typename MetadataOptionsT = InstanceMetadataOptionsRequest>
618 RunInstancesRequest& WithMetadataOptions(MetadataOptionsT&& value) {
619 SetMetadataOptions(std::forward<MetadataOptionsT>(value));
620 return *this;
621 }
623
625
632 inline const EnclaveOptionsRequest& GetEnclaveOptions() const { return m_enclaveOptions; }
633 inline bool EnclaveOptionsHasBeenSet() const { return m_enclaveOptionsHasBeenSet; }
634 template <typename EnclaveOptionsT = EnclaveOptionsRequest>
635 void SetEnclaveOptions(EnclaveOptionsT&& value) {
636 m_enclaveOptionsHasBeenSet = true;
637 m_enclaveOptions = std::forward<EnclaveOptionsT>(value);
638 }
639 template <typename EnclaveOptionsT = EnclaveOptionsRequest>
640 RunInstancesRequest& WithEnclaveOptions(EnclaveOptionsT&& value) {
641 SetEnclaveOptions(std::forward<EnclaveOptionsT>(value));
642 return *this;
643 }
645
647
652 inline const PrivateDnsNameOptionsRequest& GetPrivateDnsNameOptions() const { return m_privateDnsNameOptions; }
653 inline bool PrivateDnsNameOptionsHasBeenSet() const { return m_privateDnsNameOptionsHasBeenSet; }
654 template <typename PrivateDnsNameOptionsT = PrivateDnsNameOptionsRequest>
655 void SetPrivateDnsNameOptions(PrivateDnsNameOptionsT&& value) {
656 m_privateDnsNameOptionsHasBeenSet = true;
657 m_privateDnsNameOptions = std::forward<PrivateDnsNameOptionsT>(value);
658 }
659 template <typename PrivateDnsNameOptionsT = PrivateDnsNameOptionsRequest>
660 RunInstancesRequest& WithPrivateDnsNameOptions(PrivateDnsNameOptionsT&& value) {
661 SetPrivateDnsNameOptions(std::forward<PrivateDnsNameOptionsT>(value));
662 return *this;
663 }
665
667
670 inline const InstanceMaintenanceOptionsRequest& GetMaintenanceOptions() const { return m_maintenanceOptions; }
671 inline bool MaintenanceOptionsHasBeenSet() const { return m_maintenanceOptionsHasBeenSet; }
672 template <typename MaintenanceOptionsT = InstanceMaintenanceOptionsRequest>
673 void SetMaintenanceOptions(MaintenanceOptionsT&& value) {
674 m_maintenanceOptionsHasBeenSet = true;
675 m_maintenanceOptions = std::forward<MaintenanceOptionsT>(value);
676 }
677 template <typename MaintenanceOptionsT = InstanceMaintenanceOptionsRequest>
678 RunInstancesRequest& WithMaintenanceOptions(MaintenanceOptionsT&& value) {
679 SetMaintenanceOptions(std::forward<MaintenanceOptionsT>(value));
680 return *this;
681 }
683
685
691 inline bool GetDisableApiStop() const { return m_disableApiStop; }
692 inline bool DisableApiStopHasBeenSet() const { return m_disableApiStopHasBeenSet; }
693 inline void SetDisableApiStop(bool value) {
694 m_disableApiStopHasBeenSet = true;
695 m_disableApiStop = value;
696 }
698 SetDisableApiStop(value);
699 return *this;
700 }
702
704
719 inline bool GetEnablePrimaryIpv6() const { return m_enablePrimaryIpv6; }
720 inline bool EnablePrimaryIpv6HasBeenSet() const { return m_enablePrimaryIpv6HasBeenSet; }
721 inline void SetEnablePrimaryIpv6(bool value) {
722 m_enablePrimaryIpv6HasBeenSet = true;
723 m_enablePrimaryIpv6 = value;
724 }
727 return *this;
728 }
730
732
735 inline const InstanceNetworkPerformanceOptionsRequest& GetNetworkPerformanceOptions() const { return m_networkPerformanceOptions; }
736 inline bool NetworkPerformanceOptionsHasBeenSet() const { return m_networkPerformanceOptionsHasBeenSet; }
737 template <typename NetworkPerformanceOptionsT = InstanceNetworkPerformanceOptionsRequest>
738 void SetNetworkPerformanceOptions(NetworkPerformanceOptionsT&& value) {
739 m_networkPerformanceOptionsHasBeenSet = true;
740 m_networkPerformanceOptions = std::forward<NetworkPerformanceOptionsT>(value);
741 }
742 template <typename NetworkPerformanceOptionsT = InstanceNetworkPerformanceOptionsRequest>
743 RunInstancesRequest& WithNetworkPerformanceOptions(NetworkPerformanceOptionsT&& value) {
744 SetNetworkPerformanceOptions(std::forward<NetworkPerformanceOptionsT>(value));
745 return *this;
746 }
748
750
753 inline const OperatorRequest& GetOperator() const { return m_operator; }
754 inline bool OperatorHasBeenSet() const { return m_operatorHasBeenSet; }
755 template <typename OperatorT = OperatorRequest>
756 void SetOperator(OperatorT&& value) {
757 m_operatorHasBeenSet = true;
758 m_operator = std::forward<OperatorT>(value);
759 }
760 template <typename OperatorT = OperatorRequest>
761 RunInstancesRequest& WithOperator(OperatorT&& value) {
762 SetOperator(std::forward<OperatorT>(value));
763 return *this;
764 }
766
768
771 inline const Aws::Vector<InstanceSecondaryInterfaceSpecificationRequest>& GetSecondaryInterfaces() const { return m_secondaryInterfaces; }
772 inline bool SecondaryInterfacesHasBeenSet() const { return m_secondaryInterfacesHasBeenSet; }
773 template <typename SecondaryInterfacesT = Aws::Vector<InstanceSecondaryInterfaceSpecificationRequest>>
774 void SetSecondaryInterfaces(SecondaryInterfacesT&& value) {
775 m_secondaryInterfacesHasBeenSet = true;
776 m_secondaryInterfaces = std::forward<SecondaryInterfacesT>(value);
777 }
778 template <typename SecondaryInterfacesT = Aws::Vector<InstanceSecondaryInterfaceSpecificationRequest>>
779 RunInstancesRequest& WithSecondaryInterfaces(SecondaryInterfacesT&& value) {
780 SetSecondaryInterfaces(std::forward<SecondaryInterfacesT>(value));
781 return *this;
782 }
783 template <typename SecondaryInterfacesT = InstanceSecondaryInterfaceSpecificationRequest>
784 RunInstancesRequest& AddSecondaryInterfaces(SecondaryInterfacesT&& value) {
785 m_secondaryInterfacesHasBeenSet = true;
786 m_secondaryInterfaces.emplace_back(std::forward<SecondaryInterfacesT>(value));
787 return *this;
788 }
790
792
798 inline bool GetDryRun() const { return m_dryRun; }
799 inline bool DryRunHasBeenSet() const { return m_dryRunHasBeenSet; }
800 inline void SetDryRun(bool value) {
801 m_dryRunHasBeenSet = true;
802 m_dryRun = value;
803 }
804 inline RunInstancesRequest& WithDryRun(bool value) {
805 SetDryRun(value);
806 return *this;
807 }
809
811
818 inline bool GetDisableApiTermination() const { return m_disableApiTermination; }
819 inline bool DisableApiTerminationHasBeenSet() const { return m_disableApiTerminationHasBeenSet; }
820 inline void SetDisableApiTermination(bool value) {
821 m_disableApiTerminationHasBeenSet = true;
822 m_disableApiTermination = value;
823 }
826 return *this;
827 }
829
831
836 inline ShutdownBehavior GetInstanceInitiatedShutdownBehavior() const { return m_instanceInitiatedShutdownBehavior; }
837 inline bool InstanceInitiatedShutdownBehaviorHasBeenSet() const { return m_instanceInitiatedShutdownBehaviorHasBeenSet; }
839 m_instanceInitiatedShutdownBehaviorHasBeenSet = true;
840 m_instanceInitiatedShutdownBehavior = value;
841 }
844 return *this;
845 }
847
849
858 inline const Aws::String& GetPrivateIpAddress() const { return m_privateIpAddress; }
859 inline bool PrivateIpAddressHasBeenSet() const { return m_privateIpAddressHasBeenSet; }
860 template <typename PrivateIpAddressT = Aws::String>
861 void SetPrivateIpAddress(PrivateIpAddressT&& value) {
862 m_privateIpAddressHasBeenSet = true;
863 m_privateIpAddress = std::forward<PrivateIpAddressT>(value);
864 }
865 template <typename PrivateIpAddressT = Aws::String>
866 RunInstancesRequest& WithPrivateIpAddress(PrivateIpAddressT&& value) {
867 SetPrivateIpAddress(std::forward<PrivateIpAddressT>(value));
868 return *this;
869 }
871
873
881 inline const Aws::String& GetClientToken() const { return m_clientToken; }
882 inline bool ClientTokenHasBeenSet() const { return m_clientTokenHasBeenSet; }
883 template <typename ClientTokenT = Aws::String>
884 void SetClientToken(ClientTokenT&& value) {
885 m_clientTokenHasBeenSet = true;
886 m_clientToken = std::forward<ClientTokenT>(value);
887 }
888 template <typename ClientTokenT = Aws::String>
889 RunInstancesRequest& WithClientToken(ClientTokenT&& value) {
890 SetClientToken(std::forward<ClientTokenT>(value));
891 return *this;
892 }
894
896
899 inline const Aws::String& GetAdditionalInfo() const { return m_additionalInfo; }
900 inline bool AdditionalInfoHasBeenSet() const { return m_additionalInfoHasBeenSet; }
901 template <typename AdditionalInfoT = Aws::String>
902 void SetAdditionalInfo(AdditionalInfoT&& value) {
903 m_additionalInfoHasBeenSet = true;
904 m_additionalInfo = std::forward<AdditionalInfoT>(value);
905 }
906 template <typename AdditionalInfoT = Aws::String>
907 RunInstancesRequest& WithAdditionalInfo(AdditionalInfoT&& value) {
908 SetAdditionalInfo(std::forward<AdditionalInfoT>(value));
909 return *this;
910 }
912
914
917 inline const Aws::Vector<InstanceNetworkInterfaceSpecification>& GetNetworkInterfaces() const { return m_networkInterfaces; }
918 inline bool NetworkInterfacesHasBeenSet() const { return m_networkInterfacesHasBeenSet; }
919 template <typename NetworkInterfacesT = Aws::Vector<InstanceNetworkInterfaceSpecification>>
920 void SetNetworkInterfaces(NetworkInterfacesT&& value) {
921 m_networkInterfacesHasBeenSet = true;
922 m_networkInterfaces = std::forward<NetworkInterfacesT>(value);
923 }
924 template <typename NetworkInterfacesT = Aws::Vector<InstanceNetworkInterfaceSpecification>>
925 RunInstancesRequest& WithNetworkInterfaces(NetworkInterfacesT&& value) {
926 SetNetworkInterfaces(std::forward<NetworkInterfacesT>(value));
927 return *this;
928 }
929 template <typename NetworkInterfacesT = InstanceNetworkInterfaceSpecification>
930 RunInstancesRequest& AddNetworkInterfaces(NetworkInterfacesT&& value) {
931 m_networkInterfacesHasBeenSet = true;
932 m_networkInterfaces.emplace_back(std::forward<NetworkInterfacesT>(value));
933 return *this;
934 }
936
938
941 inline const IamInstanceProfileSpecification& GetIamInstanceProfile() const { return m_iamInstanceProfile; }
942 inline bool IamInstanceProfileHasBeenSet() const { return m_iamInstanceProfileHasBeenSet; }
943 template <typename IamInstanceProfileT = IamInstanceProfileSpecification>
944 void SetIamInstanceProfile(IamInstanceProfileT&& value) {
945 m_iamInstanceProfileHasBeenSet = true;
946 m_iamInstanceProfile = std::forward<IamInstanceProfileT>(value);
947 }
948 template <typename IamInstanceProfileT = IamInstanceProfileSpecification>
949 RunInstancesRequest& WithIamInstanceProfile(IamInstanceProfileT&& value) {
950 SetIamInstanceProfile(std::forward<IamInstanceProfileT>(value));
951 return *this;
952 }
954
956
964 inline bool GetEbsOptimized() const { return m_ebsOptimized; }
965 inline bool EbsOptimizedHasBeenSet() const { return m_ebsOptimizedHasBeenSet; }
966 inline void SetEbsOptimized(bool value) {
967 m_ebsOptimizedHasBeenSet = true;
968 m_ebsOptimized = value;
969 }
971 SetEbsOptimized(value);
972 return *this;
973 }
975 private:
976 Aws::Vector<BlockDeviceMapping> m_blockDeviceMappings;
977
978 Aws::String m_imageId;
979
980 InstanceType m_instanceType{InstanceType::NOT_SET};
981
982 int m_ipv6AddressCount{0};
983
984 Aws::Vector<InstanceIpv6Address> m_ipv6Addresses;
985
986 Aws::String m_kernelId;
987
988 Aws::String m_keyName;
989
990 int m_maxCount{0};
991
992 int m_minCount{0};
993
994 RunInstancesMonitoringEnabled m_monitoring;
995
996 Placement m_placement;
997
998 Aws::String m_ramdiskId;
999
1000 Aws::Vector<Aws::String> m_securityGroupIds;
1001
1002 Aws::Vector<Aws::String> m_securityGroups;
1003
1004 Aws::String m_subnetId;
1005
1006 Aws::String m_userData;
1007
1008 Aws::Vector<TagSpecification> m_tagSpecifications;
1009
1010 LaunchTemplateSpecification m_launchTemplate;
1011
1012 InstanceMarketOptionsRequest m_instanceMarketOptions;
1013
1014 CreditSpecificationRequest m_creditSpecification;
1015
1016 CpuOptionsRequest m_cpuOptions;
1017
1018 CapacityReservationSpecification m_capacityReservationSpecification;
1019
1020 HibernationOptionsRequest m_hibernationOptions;
1021
1022 Aws::Vector<LicenseConfigurationRequest> m_licenseSpecifications;
1023
1024 InstanceMetadataOptionsRequest m_metadataOptions;
1025
1026 EnclaveOptionsRequest m_enclaveOptions;
1027
1028 PrivateDnsNameOptionsRequest m_privateDnsNameOptions;
1029
1030 InstanceMaintenanceOptionsRequest m_maintenanceOptions;
1031
1032 bool m_disableApiStop{false};
1033
1034 bool m_enablePrimaryIpv6{false};
1035
1036 InstanceNetworkPerformanceOptionsRequest m_networkPerformanceOptions;
1037
1038 OperatorRequest m_operator;
1039
1041
1042 bool m_dryRun{false};
1043
1044 bool m_disableApiTermination{false};
1045
1046 ShutdownBehavior m_instanceInitiatedShutdownBehavior{ShutdownBehavior::NOT_SET};
1047
1048 Aws::String m_privateIpAddress;
1049
1051
1052 Aws::String m_additionalInfo;
1053
1055
1056 IamInstanceProfileSpecification m_iamInstanceProfile;
1057
1058 bool m_ebsOptimized{false};
1059 bool m_blockDeviceMappingsHasBeenSet = false;
1060 bool m_imageIdHasBeenSet = false;
1061 bool m_instanceTypeHasBeenSet = false;
1062 bool m_ipv6AddressCountHasBeenSet = false;
1063 bool m_ipv6AddressesHasBeenSet = false;
1064 bool m_kernelIdHasBeenSet = false;
1065 bool m_keyNameHasBeenSet = false;
1066 bool m_maxCountHasBeenSet = false;
1067 bool m_minCountHasBeenSet = false;
1068 bool m_monitoringHasBeenSet = false;
1069 bool m_placementHasBeenSet = false;
1070 bool m_ramdiskIdHasBeenSet = false;
1071 bool m_securityGroupIdsHasBeenSet = false;
1072 bool m_securityGroupsHasBeenSet = false;
1073 bool m_subnetIdHasBeenSet = false;
1074 bool m_userDataHasBeenSet = false;
1075 bool m_tagSpecificationsHasBeenSet = false;
1076 bool m_launchTemplateHasBeenSet = false;
1077 bool m_instanceMarketOptionsHasBeenSet = false;
1078 bool m_creditSpecificationHasBeenSet = false;
1079 bool m_cpuOptionsHasBeenSet = false;
1080 bool m_capacityReservationSpecificationHasBeenSet = false;
1081 bool m_hibernationOptionsHasBeenSet = false;
1082 bool m_licenseSpecificationsHasBeenSet = false;
1083 bool m_metadataOptionsHasBeenSet = false;
1084 bool m_enclaveOptionsHasBeenSet = false;
1085 bool m_privateDnsNameOptionsHasBeenSet = false;
1086 bool m_maintenanceOptionsHasBeenSet = false;
1087 bool m_disableApiStopHasBeenSet = false;
1088 bool m_enablePrimaryIpv6HasBeenSet = false;
1089 bool m_networkPerformanceOptionsHasBeenSet = false;
1090 bool m_operatorHasBeenSet = false;
1091 bool m_secondaryInterfacesHasBeenSet = false;
1092 bool m_dryRunHasBeenSet = false;
1093 bool m_disableApiTerminationHasBeenSet = false;
1094 bool m_instanceInitiatedShutdownBehaviorHasBeenSet = false;
1095 bool m_privateIpAddressHasBeenSet = false;
1096 bool m_clientTokenHasBeenSet = true;
1097 bool m_additionalInfoHasBeenSet = false;
1098 bool m_networkInterfacesHasBeenSet = false;
1099 bool m_iamInstanceProfileHasBeenSet = false;
1100 bool m_ebsOptimizedHasBeenSet = false;
1101};
1102
1103} // namespace Model
1104} // namespace EC2
1105} // namespace Aws
const Aws::Vector< LicenseConfigurationRequest > & GetLicenseSpecifications() const
const Aws::String & GetKeyName() const
RunInstancesRequest & WithInstanceType(InstanceType value)
RunInstancesRequest & WithAdditionalInfo(AdditionalInfoT &&value)
RunInstancesRequest & WithRamdiskId(RamdiskIdT &&value)
RunInstancesRequest & WithPrivateIpAddress(PrivateIpAddressT &&value)
void SetClientToken(ClientTokenT &&value)
const PrivateDnsNameOptionsRequest & GetPrivateDnsNameOptions() const
RunInstancesRequest & WithImageId(ImageIdT &&value)
RunInstancesRequest & WithPrivateDnsNameOptions(PrivateDnsNameOptionsT &&value)
const CreditSpecificationRequest & GetCreditSpecification() const
const Aws::Vector< InstanceIpv6Address > & GetIpv6Addresses() const
const InstanceMaintenanceOptionsRequest & GetMaintenanceOptions() const
RunInstancesRequest & WithMinCount(int value)
RunInstancesRequest & WithDryRun(bool value)
RunInstancesRequest & WithMaintenanceOptions(MaintenanceOptionsT &&value)
const IamInstanceProfileSpecification & GetIamInstanceProfile() const
const Aws::Vector< TagSpecification > & GetTagSpecifications() const
void SetCapacityReservationSpecification(CapacityReservationSpecificationT &&value)
void SetSecurityGroups(SecurityGroupsT &&value)
void SetHibernationOptions(HibernationOptionsT &&value)
const OperatorRequest & GetOperator() const
RunInstancesRequest & WithMonitoring(MonitoringT &&value)
RunInstancesRequest & AddSecurityGroupIds(SecurityGroupIdsT &&value)
const Aws::Vector< Aws::String > & GetSecurityGroups() const
RunInstancesRequest & WithCreditSpecification(CreditSpecificationT &&value)
void SetLicenseSpecifications(LicenseSpecificationsT &&value)
const RunInstancesMonitoringEnabled & GetMonitoring() const
RunInstancesRequest & WithNetworkInterfaces(NetworkInterfacesT &&value)
void SetCreditSpecification(CreditSpecificationT &&value)
RunInstancesRequest & AddBlockDeviceMappings(BlockDeviceMappingsT &&value)
void SetPrivateIpAddress(PrivateIpAddressT &&value)
void SetInstanceInitiatedShutdownBehavior(ShutdownBehavior value)
RunInstancesRequest & WithSecurityGroups(SecurityGroupsT &&value)
RunInstancesRequest & WithCpuOptions(CpuOptionsT &&value)
void SetEnclaveOptions(EnclaveOptionsT &&value)
RunInstancesRequest & WithUserData(UserDataT &&value)
RunInstancesRequest & WithEbsOptimized(bool value)
AWS_EC2_API RunInstancesRequest()=default
const InstanceMetadataOptionsRequest & GetMetadataOptions() const
RunInstancesRequest & AddSecondaryInterfaces(SecondaryInterfacesT &&value)
const Aws::String & GetClientToken() const
const Aws::String & GetUserData() const
RunInstancesRequest & WithMetadataOptions(MetadataOptionsT &&value)
virtual const char * GetServiceRequestName() const override
const Aws::String & GetPrivateIpAddress() const
void SetIamInstanceProfile(IamInstanceProfileT &&value)
RunInstancesRequest & WithLicenseSpecifications(LicenseSpecificationsT &&value)
RunInstancesRequest & WithDisableApiStop(bool value)
void SetLaunchTemplate(LaunchTemplateT &&value)
const CpuOptionsRequest & GetCpuOptions() const
RunInstancesRequest & WithIpv6AddressCount(int value)
void SetSecurityGroupIds(SecurityGroupIdsT &&value)
RunInstancesRequest & WithCapacityReservationSpecification(CapacityReservationSpecificationT &&value)
const Aws::String & GetAdditionalInfo() const
const CapacityReservationSpecification & GetCapacityReservationSpecification() const
void SetBlockDeviceMappings(BlockDeviceMappingsT &&value)
const Aws::Vector< InstanceSecondaryInterfaceSpecificationRequest > & GetSecondaryInterfaces() const
RunInstancesRequest & WithLaunchTemplate(LaunchTemplateT &&value)
RunInstancesRequest & WithSecurityGroupIds(SecurityGroupIdsT &&value)
RunInstancesRequest & WithSubnetId(SubnetIdT &&value)
void SetNetworkPerformanceOptions(NetworkPerformanceOptionsT &&value)
RunInstancesRequest & WithEnclaveOptions(EnclaveOptionsT &&value)
RunInstancesRequest & WithInstanceMarketOptions(InstanceMarketOptionsT &&value)
RunInstancesRequest & WithKeyName(KeyNameT &&value)
RunInstancesRequest & AddIpv6Addresses(Ipv6AddressesT &&value)
RunInstancesRequest & AddLicenseSpecifications(LicenseSpecificationsT &&value)
void SetTagSpecifications(TagSpecificationsT &&value)
RunInstancesRequest & WithOperator(OperatorT &&value)
RunInstancesRequest & AddSecurityGroups(SecurityGroupsT &&value)
AWS_EC2_API void DumpBodyToUrl(Aws::Http::URI &uri) const override
RunInstancesRequest & WithPlacement(PlacementT &&value)
RunInstancesRequest & AddTagSpecifications(TagSpecificationsT &&value)
void SetMaintenanceOptions(MaintenanceOptionsT &&value)
const Aws::String & GetImageId() const
const Aws::Vector< Aws::String > & GetSecurityGroupIds() const
RunInstancesRequest & WithSecondaryInterfaces(SecondaryInterfacesT &&value)
RunInstancesRequest & WithDisableApiTermination(bool value)
RunInstancesRequest & WithBlockDeviceMappings(BlockDeviceMappingsT &&value)
const InstanceNetworkPerformanceOptionsRequest & GetNetworkPerformanceOptions() const
const Aws::Vector< BlockDeviceMapping > & GetBlockDeviceMappings() const
RunInstancesRequest & WithHibernationOptions(HibernationOptionsT &&value)
ShutdownBehavior GetInstanceInitiatedShutdownBehavior() const
const InstanceMarketOptionsRequest & GetInstanceMarketOptions() const
RunInstancesRequest & WithIamInstanceProfile(IamInstanceProfileT &&value)
const Aws::String & GetRamdiskId() const
RunInstancesRequest & WithKernelId(KernelIdT &&value)
const EnclaveOptionsRequest & GetEnclaveOptions() const
void SetMetadataOptions(MetadataOptionsT &&value)
const Aws::String & GetKernelId() const
void SetAdditionalInfo(AdditionalInfoT &&value)
RunInstancesRequest & AddNetworkInterfaces(NetworkInterfacesT &&value)
RunInstancesRequest & WithEnablePrimaryIpv6(bool value)
const LaunchTemplateSpecification & GetLaunchTemplate() const
const Aws::String & GetSubnetId() const
void SetNetworkInterfaces(NetworkInterfacesT &&value)
void SetSecondaryInterfaces(SecondaryInterfacesT &&value)
RunInstancesRequest & WithIpv6Addresses(Ipv6AddressesT &&value)
const Aws::Vector< InstanceNetworkInterfaceSpecification > & GetNetworkInterfaces() const
RunInstancesRequest & WithInstanceInitiatedShutdownBehavior(ShutdownBehavior value)
void SetInstanceMarketOptions(InstanceMarketOptionsT &&value)
void SetPrivateDnsNameOptions(PrivateDnsNameOptionsT &&value)
void SetIpv6Addresses(Ipv6AddressesT &&value)
AWS_EC2_API Aws::String SerializePayload() const override
RunInstancesRequest & WithTagSpecifications(TagSpecificationsT &&value)
RunInstancesRequest & WithClientToken(ClientTokenT &&value)
RunInstancesRequest & WithMaxCount(int value)
RunInstancesRequest & WithNetworkPerformanceOptions(NetworkPerformanceOptionsT &&value)
const HibernationOptionsRequest & GetHibernationOptions() const
static Aws::Utils::UUID PseudoRandomUUID()
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
std::vector< T, Aws::Allocator< T > > Vector