AWS SDK for C++

AWS SDK for C++ Version 1.11.716

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/InstanceType.h>
26#include <aws/ec2/model/LaunchTemplateSpecification.h>
27#include <aws/ec2/model/LicenseConfigurationRequest.h>
28#include <aws/ec2/model/OperatorRequest.h>
29#include <aws/ec2/model/Placement.h>
30#include <aws/ec2/model/PrivateDnsNameOptionsRequest.h>
31#include <aws/ec2/model/RunInstancesMonitoringEnabled.h>
32#include <aws/ec2/model/ShutdownBehavior.h>
33#include <aws/ec2/model/TagSpecification.h>
34
35#include <utility>
36
37namespace Aws {
38namespace EC2 {
39namespace Model {
40
44 public:
45 AWS_EC2_API RunInstancesRequest() = default;
46
47 // Service request name is the Operation name which will send this request out,
48 // each operation should has unique request name, so that we can get operation's name from this request.
49 // Note: this is not true for response, multiple operations may have the same response name,
50 // so we can not get operation's name from response.
51 inline virtual const char* GetServiceRequestName() const override { return "RunInstances"; }
52
53 AWS_EC2_API Aws::String SerializePayload() const override;
54
55 protected:
56 AWS_EC2_API void DumpBodyToUrl(Aws::Http::URI& uri) const override;
57
58 public:
60
66 inline const Aws::Vector<BlockDeviceMapping>& GetBlockDeviceMappings() const { return m_blockDeviceMappings; }
67 inline bool BlockDeviceMappingsHasBeenSet() const { return m_blockDeviceMappingsHasBeenSet; }
68 template <typename BlockDeviceMappingsT = Aws::Vector<BlockDeviceMapping>>
69 void SetBlockDeviceMappings(BlockDeviceMappingsT&& value) {
70 m_blockDeviceMappingsHasBeenSet = true;
71 m_blockDeviceMappings = std::forward<BlockDeviceMappingsT>(value);
72 }
73 template <typename BlockDeviceMappingsT = Aws::Vector<BlockDeviceMapping>>
74 RunInstancesRequest& WithBlockDeviceMappings(BlockDeviceMappingsT&& value) {
75 SetBlockDeviceMappings(std::forward<BlockDeviceMappingsT>(value));
76 return *this;
77 }
78 template <typename BlockDeviceMappingsT = BlockDeviceMapping>
79 RunInstancesRequest& AddBlockDeviceMappings(BlockDeviceMappingsT&& value) {
80 m_blockDeviceMappingsHasBeenSet = true;
81 m_blockDeviceMappings.emplace_back(std::forward<BlockDeviceMappingsT>(value));
82 return *this;
83 }
85
87
91 inline const Aws::String& GetImageId() const { return m_imageId; }
92 inline bool ImageIdHasBeenSet() const { return m_imageIdHasBeenSet; }
93 template <typename ImageIdT = Aws::String>
94 void SetImageId(ImageIdT&& value) {
95 m_imageIdHasBeenSet = true;
96 m_imageId = std::forward<ImageIdT>(value);
97 }
98 template <typename ImageIdT = Aws::String>
99 RunInstancesRequest& WithImageId(ImageIdT&& value) {
100 SetImageId(std::forward<ImageIdT>(value));
101 return *this;
102 }
104
106
111 inline InstanceType GetInstanceType() const { return m_instanceType; }
112 inline bool InstanceTypeHasBeenSet() const { return m_instanceTypeHasBeenSet; }
113 inline void SetInstanceType(InstanceType value) {
114 m_instanceTypeHasBeenSet = true;
115 m_instanceType = value;
116 }
118 SetInstanceType(value);
119 return *this;
120 }
122
124
132 inline int GetIpv6AddressCount() const { return m_ipv6AddressCount; }
133 inline bool Ipv6AddressCountHasBeenSet() const { return m_ipv6AddressCountHasBeenSet; }
134 inline void SetIpv6AddressCount(int value) {
135 m_ipv6AddressCountHasBeenSet = true;
136 m_ipv6AddressCount = value;
137 }
139 SetIpv6AddressCount(value);
140 return *this;
141 }
143
145
152 inline const Aws::Vector<InstanceIpv6Address>& GetIpv6Addresses() const { return m_ipv6Addresses; }
153 inline bool Ipv6AddressesHasBeenSet() const { return m_ipv6AddressesHasBeenSet; }
154 template <typename Ipv6AddressesT = Aws::Vector<InstanceIpv6Address>>
155 void SetIpv6Addresses(Ipv6AddressesT&& value) {
156 m_ipv6AddressesHasBeenSet = true;
157 m_ipv6Addresses = std::forward<Ipv6AddressesT>(value);
158 }
159 template <typename Ipv6AddressesT = Aws::Vector<InstanceIpv6Address>>
160 RunInstancesRequest& WithIpv6Addresses(Ipv6AddressesT&& value) {
161 SetIpv6Addresses(std::forward<Ipv6AddressesT>(value));
162 return *this;
163 }
164 template <typename Ipv6AddressesT = InstanceIpv6Address>
165 RunInstancesRequest& AddIpv6Addresses(Ipv6AddressesT&& value) {
166 m_ipv6AddressesHasBeenSet = true;
167 m_ipv6Addresses.emplace_back(std::forward<Ipv6AddressesT>(value));
168 return *this;
169 }
171
173
179 inline const Aws::String& GetKernelId() const { return m_kernelId; }
180 inline bool KernelIdHasBeenSet() const { return m_kernelIdHasBeenSet; }
181 template <typename KernelIdT = Aws::String>
182 void SetKernelId(KernelIdT&& value) {
183 m_kernelIdHasBeenSet = true;
184 m_kernelId = std::forward<KernelIdT>(value);
185 }
186 template <typename KernelIdT = Aws::String>
187 RunInstancesRequest& WithKernelId(KernelIdT&& value) {
188 SetKernelId(std::forward<KernelIdT>(value));
189 return *this;
190 }
192
194
201 inline const Aws::String& GetKeyName() const { return m_keyName; }
202 inline bool KeyNameHasBeenSet() const { return m_keyNameHasBeenSet; }
203 template <typename KeyNameT = Aws::String>
204 void SetKeyName(KeyNameT&& value) {
205 m_keyNameHasBeenSet = true;
206 m_keyName = std::forward<KeyNameT>(value);
207 }
208 template <typename KeyNameT = Aws::String>
209 RunInstancesRequest& WithKeyName(KeyNameT&& value) {
210 SetKeyName(std::forward<KeyNameT>(value));
211 return *this;
212 }
214
216
225 inline int GetMaxCount() const { return m_maxCount; }
226 inline bool MaxCountHasBeenSet() const { return m_maxCountHasBeenSet; }
227 inline void SetMaxCount(int value) {
228 m_maxCountHasBeenSet = true;
229 m_maxCount = value;
230 }
232 SetMaxCount(value);
233 return *this;
234 }
236
238
247 inline int GetMinCount() const { return m_minCount; }
248 inline bool MinCountHasBeenSet() const { return m_minCountHasBeenSet; }
249 inline void SetMinCount(int value) {
250 m_minCountHasBeenSet = true;
251 m_minCount = value;
252 }
254 SetMinCount(value);
255 return *this;
256 }
258
260
263 inline const RunInstancesMonitoringEnabled& GetMonitoring() const { return m_monitoring; }
264 inline bool MonitoringHasBeenSet() const { return m_monitoringHasBeenSet; }
265 template <typename MonitoringT = RunInstancesMonitoringEnabled>
266 void SetMonitoring(MonitoringT&& value) {
267 m_monitoringHasBeenSet = true;
268 m_monitoring = std::forward<MonitoringT>(value);
269 }
270 template <typename MonitoringT = RunInstancesMonitoringEnabled>
271 RunInstancesRequest& WithMonitoring(MonitoringT&& value) {
272 SetMonitoring(std::forward<MonitoringT>(value));
273 return *this;
274 }
276
278
281 inline const Placement& GetPlacement() const { return m_placement; }
282 inline bool PlacementHasBeenSet() const { return m_placementHasBeenSet; }
283 template <typename PlacementT = Placement>
284 void SetPlacement(PlacementT&& value) {
285 m_placementHasBeenSet = true;
286 m_placement = std::forward<PlacementT>(value);
287 }
288 template <typename PlacementT = Placement>
289 RunInstancesRequest& WithPlacement(PlacementT&& value) {
290 SetPlacement(std::forward<PlacementT>(value));
291 return *this;
292 }
294
296
306 inline const Aws::String& GetRamdiskId() const { return m_ramdiskId; }
307 inline bool RamdiskIdHasBeenSet() const { return m_ramdiskIdHasBeenSet; }
308 template <typename RamdiskIdT = Aws::String>
309 void SetRamdiskId(RamdiskIdT&& value) {
310 m_ramdiskIdHasBeenSet = true;
311 m_ramdiskId = std::forward<RamdiskIdT>(value);
312 }
313 template <typename RamdiskIdT = Aws::String>
314 RunInstancesRequest& WithRamdiskId(RamdiskIdT&& value) {
315 SetRamdiskId(std::forward<RamdiskIdT>(value));
316 return *this;
317 }
319
321
326 inline const Aws::Vector<Aws::String>& GetSecurityGroupIds() const { return m_securityGroupIds; }
327 inline bool SecurityGroupIdsHasBeenSet() const { return m_securityGroupIdsHasBeenSet; }
328 template <typename SecurityGroupIdsT = Aws::Vector<Aws::String>>
329 void SetSecurityGroupIds(SecurityGroupIdsT&& value) {
330 m_securityGroupIdsHasBeenSet = true;
331 m_securityGroupIds = std::forward<SecurityGroupIdsT>(value);
332 }
333 template <typename SecurityGroupIdsT = Aws::Vector<Aws::String>>
334 RunInstancesRequest& WithSecurityGroupIds(SecurityGroupIdsT&& value) {
335 SetSecurityGroupIds(std::forward<SecurityGroupIdsT>(value));
336 return *this;
337 }
338 template <typename SecurityGroupIdsT = Aws::String>
339 RunInstancesRequest& AddSecurityGroupIds(SecurityGroupIdsT&& value) {
340 m_securityGroupIdsHasBeenSet = true;
341 m_securityGroupIds.emplace_back(std::forward<SecurityGroupIdsT>(value));
342 return *this;
343 }
345
347
353 inline const Aws::Vector<Aws::String>& GetSecurityGroups() const { return m_securityGroups; }
354 inline bool SecurityGroupsHasBeenSet() const { return m_securityGroupsHasBeenSet; }
355 template <typename SecurityGroupsT = Aws::Vector<Aws::String>>
356 void SetSecurityGroups(SecurityGroupsT&& value) {
357 m_securityGroupsHasBeenSet = true;
358 m_securityGroups = std::forward<SecurityGroupsT>(value);
359 }
360 template <typename SecurityGroupsT = Aws::Vector<Aws::String>>
361 RunInstancesRequest& WithSecurityGroups(SecurityGroupsT&& value) {
362 SetSecurityGroups(std::forward<SecurityGroupsT>(value));
363 return *this;
364 }
365 template <typename SecurityGroupsT = Aws::String>
366 RunInstancesRequest& AddSecurityGroups(SecurityGroupsT&& value) {
367 m_securityGroupsHasBeenSet = true;
368 m_securityGroups.emplace_back(std::forward<SecurityGroupsT>(value));
369 return *this;
370 }
372
374
379 inline const Aws::String& GetSubnetId() const { return m_subnetId; }
380 inline bool SubnetIdHasBeenSet() const { return m_subnetIdHasBeenSet; }
381 template <typename SubnetIdT = Aws::String>
382 void SetSubnetId(SubnetIdT&& value) {
383 m_subnetIdHasBeenSet = true;
384 m_subnetId = std::forward<SubnetIdT>(value);
385 }
386 template <typename SubnetIdT = Aws::String>
387 RunInstancesRequest& WithSubnetId(SubnetIdT&& value) {
388 SetSubnetId(std::forward<SubnetIdT>(value));
389 return *this;
390 }
392
394
401 inline const Aws::String& GetUserData() const { return m_userData; }
402 inline bool UserDataHasBeenSet() const { return m_userDataHasBeenSet; }
403 template <typename UserDataT = Aws::String>
404 void SetUserData(UserDataT&& value) {
405 m_userDataHasBeenSet = true;
406 m_userData = std::forward<UserDataT>(value);
407 }
408 template <typename UserDataT = Aws::String>
409 RunInstancesRequest& WithUserData(UserDataT&& value) {
410 SetUserData(std::forward<UserDataT>(value));
411 return *this;
412 }
414
416
424 inline const Aws::Vector<TagSpecification>& GetTagSpecifications() const { return m_tagSpecifications; }
425 inline bool TagSpecificationsHasBeenSet() const { return m_tagSpecificationsHasBeenSet; }
426 template <typename TagSpecificationsT = Aws::Vector<TagSpecification>>
427 void SetTagSpecifications(TagSpecificationsT&& value) {
428 m_tagSpecificationsHasBeenSet = true;
429 m_tagSpecifications = std::forward<TagSpecificationsT>(value);
430 }
431 template <typename TagSpecificationsT = Aws::Vector<TagSpecification>>
432 RunInstancesRequest& WithTagSpecifications(TagSpecificationsT&& value) {
433 SetTagSpecifications(std::forward<TagSpecificationsT>(value));
434 return *this;
435 }
436 template <typename TagSpecificationsT = TagSpecification>
437 RunInstancesRequest& AddTagSpecifications(TagSpecificationsT&& value) {
438 m_tagSpecificationsHasBeenSet = true;
439 m_tagSpecifications.emplace_back(std::forward<TagSpecificationsT>(value));
440 return *this;
441 }
443
445
450 inline const LaunchTemplateSpecification& GetLaunchTemplate() const { return m_launchTemplate; }
451 inline bool LaunchTemplateHasBeenSet() const { return m_launchTemplateHasBeenSet; }
452 template <typename LaunchTemplateT = LaunchTemplateSpecification>
453 void SetLaunchTemplate(LaunchTemplateT&& value) {
454 m_launchTemplateHasBeenSet = true;
455 m_launchTemplate = std::forward<LaunchTemplateT>(value);
456 }
457 template <typename LaunchTemplateT = LaunchTemplateSpecification>
458 RunInstancesRequest& WithLaunchTemplate(LaunchTemplateT&& value) {
459 SetLaunchTemplate(std::forward<LaunchTemplateT>(value));
460 return *this;
461 }
463
465
471 inline const InstanceMarketOptionsRequest& GetInstanceMarketOptions() const { return m_instanceMarketOptions; }
472 inline bool InstanceMarketOptionsHasBeenSet() const { return m_instanceMarketOptionsHasBeenSet; }
473 template <typename InstanceMarketOptionsT = InstanceMarketOptionsRequest>
474 void SetInstanceMarketOptions(InstanceMarketOptionsT&& value) {
475 m_instanceMarketOptionsHasBeenSet = true;
476 m_instanceMarketOptions = std::forward<InstanceMarketOptionsT>(value);
477 }
478 template <typename InstanceMarketOptionsT = InstanceMarketOptionsRequest>
479 RunInstancesRequest& WithInstanceMarketOptions(InstanceMarketOptionsT&& value) {
480 SetInstanceMarketOptions(std::forward<InstanceMarketOptionsT>(value));
481 return *this;
482 }
484
486
498 inline const CreditSpecificationRequest& GetCreditSpecification() const { return m_creditSpecification; }
499 inline bool CreditSpecificationHasBeenSet() const { return m_creditSpecificationHasBeenSet; }
500 template <typename CreditSpecificationT = CreditSpecificationRequest>
501 void SetCreditSpecification(CreditSpecificationT&& value) {
502 m_creditSpecificationHasBeenSet = true;
503 m_creditSpecification = std::forward<CreditSpecificationT>(value);
504 }
505 template <typename CreditSpecificationT = CreditSpecificationRequest>
506 RunInstancesRequest& WithCreditSpecification(CreditSpecificationT&& value) {
507 SetCreditSpecification(std::forward<CreditSpecificationT>(value));
508 return *this;
509 }
511
513
518 inline const CpuOptionsRequest& GetCpuOptions() const { return m_cpuOptions; }
519 inline bool CpuOptionsHasBeenSet() const { return m_cpuOptionsHasBeenSet; }
520 template <typename CpuOptionsT = CpuOptionsRequest>
521 void SetCpuOptions(CpuOptionsT&& value) {
522 m_cpuOptionsHasBeenSet = true;
523 m_cpuOptions = std::forward<CpuOptionsT>(value);
524 }
525 template <typename CpuOptionsT = CpuOptionsRequest>
526 RunInstancesRequest& WithCpuOptions(CpuOptionsT&& value) {
527 SetCpuOptions(std::forward<CpuOptionsT>(value));
528 return *this;
529 }
531
533
540 inline const CapacityReservationSpecification& GetCapacityReservationSpecification() const { return m_capacityReservationSpecification; }
541 inline bool CapacityReservationSpecificationHasBeenSet() const { return m_capacityReservationSpecificationHasBeenSet; }
542 template <typename CapacityReservationSpecificationT = CapacityReservationSpecification>
543 void SetCapacityReservationSpecification(CapacityReservationSpecificationT&& value) {
544 m_capacityReservationSpecificationHasBeenSet = true;
545 m_capacityReservationSpecification = std::forward<CapacityReservationSpecificationT>(value);
546 }
547 template <typename CapacityReservationSpecificationT = CapacityReservationSpecification>
548 RunInstancesRequest& WithCapacityReservationSpecification(CapacityReservationSpecificationT&& value) {
549 SetCapacityReservationSpecification(std::forward<CapacityReservationSpecificationT>(value));
550 return *this;
551 }
553
555
565 inline const HibernationOptionsRequest& GetHibernationOptions() const { return m_hibernationOptions; }
566 inline bool HibernationOptionsHasBeenSet() const { return m_hibernationOptionsHasBeenSet; }
567 template <typename HibernationOptionsT = HibernationOptionsRequest>
568 void SetHibernationOptions(HibernationOptionsT&& value) {
569 m_hibernationOptionsHasBeenSet = true;
570 m_hibernationOptions = std::forward<HibernationOptionsT>(value);
571 }
572 template <typename HibernationOptionsT = HibernationOptionsRequest>
573 RunInstancesRequest& WithHibernationOptions(HibernationOptionsT&& value) {
574 SetHibernationOptions(std::forward<HibernationOptionsT>(value));
575 return *this;
576 }
578
580
583 inline const Aws::Vector<LicenseConfigurationRequest>& GetLicenseSpecifications() const { return m_licenseSpecifications; }
584 inline bool LicenseSpecificationsHasBeenSet() const { return m_licenseSpecificationsHasBeenSet; }
585 template <typename LicenseSpecificationsT = Aws::Vector<LicenseConfigurationRequest>>
586 void SetLicenseSpecifications(LicenseSpecificationsT&& value) {
587 m_licenseSpecificationsHasBeenSet = true;
588 m_licenseSpecifications = std::forward<LicenseSpecificationsT>(value);
589 }
590 template <typename LicenseSpecificationsT = Aws::Vector<LicenseConfigurationRequest>>
591 RunInstancesRequest& WithLicenseSpecifications(LicenseSpecificationsT&& value) {
592 SetLicenseSpecifications(std::forward<LicenseSpecificationsT>(value));
593 return *this;
594 }
595 template <typename LicenseSpecificationsT = LicenseConfigurationRequest>
596 RunInstancesRequest& AddLicenseSpecifications(LicenseSpecificationsT&& value) {
597 m_licenseSpecificationsHasBeenSet = true;
598 m_licenseSpecifications.emplace_back(std::forward<LicenseSpecificationsT>(value));
599 return *this;
600 }
602
604
609 inline const InstanceMetadataOptionsRequest& GetMetadataOptions() const { return m_metadataOptions; }
610 inline bool MetadataOptionsHasBeenSet() const { return m_metadataOptionsHasBeenSet; }
611 template <typename MetadataOptionsT = InstanceMetadataOptionsRequest>
612 void SetMetadataOptions(MetadataOptionsT&& value) {
613 m_metadataOptionsHasBeenSet = true;
614 m_metadataOptions = std::forward<MetadataOptionsT>(value);
615 }
616 template <typename MetadataOptionsT = InstanceMetadataOptionsRequest>
617 RunInstancesRequest& WithMetadataOptions(MetadataOptionsT&& value) {
618 SetMetadataOptions(std::forward<MetadataOptionsT>(value));
619 return *this;
620 }
622
624
631 inline const EnclaveOptionsRequest& GetEnclaveOptions() const { return m_enclaveOptions; }
632 inline bool EnclaveOptionsHasBeenSet() const { return m_enclaveOptionsHasBeenSet; }
633 template <typename EnclaveOptionsT = EnclaveOptionsRequest>
634 void SetEnclaveOptions(EnclaveOptionsT&& value) {
635 m_enclaveOptionsHasBeenSet = true;
636 m_enclaveOptions = std::forward<EnclaveOptionsT>(value);
637 }
638 template <typename EnclaveOptionsT = EnclaveOptionsRequest>
639 RunInstancesRequest& WithEnclaveOptions(EnclaveOptionsT&& value) {
640 SetEnclaveOptions(std::forward<EnclaveOptionsT>(value));
641 return *this;
642 }
644
646
651 inline const PrivateDnsNameOptionsRequest& GetPrivateDnsNameOptions() const { return m_privateDnsNameOptions; }
652 inline bool PrivateDnsNameOptionsHasBeenSet() const { return m_privateDnsNameOptionsHasBeenSet; }
653 template <typename PrivateDnsNameOptionsT = PrivateDnsNameOptionsRequest>
654 void SetPrivateDnsNameOptions(PrivateDnsNameOptionsT&& value) {
655 m_privateDnsNameOptionsHasBeenSet = true;
656 m_privateDnsNameOptions = std::forward<PrivateDnsNameOptionsT>(value);
657 }
658 template <typename PrivateDnsNameOptionsT = PrivateDnsNameOptionsRequest>
659 RunInstancesRequest& WithPrivateDnsNameOptions(PrivateDnsNameOptionsT&& value) {
660 SetPrivateDnsNameOptions(std::forward<PrivateDnsNameOptionsT>(value));
661 return *this;
662 }
664
666
669 inline const InstanceMaintenanceOptionsRequest& GetMaintenanceOptions() const { return m_maintenanceOptions; }
670 inline bool MaintenanceOptionsHasBeenSet() const { return m_maintenanceOptionsHasBeenSet; }
671 template <typename MaintenanceOptionsT = InstanceMaintenanceOptionsRequest>
672 void SetMaintenanceOptions(MaintenanceOptionsT&& value) {
673 m_maintenanceOptionsHasBeenSet = true;
674 m_maintenanceOptions = std::forward<MaintenanceOptionsT>(value);
675 }
676 template <typename MaintenanceOptionsT = InstanceMaintenanceOptionsRequest>
677 RunInstancesRequest& WithMaintenanceOptions(MaintenanceOptionsT&& value) {
678 SetMaintenanceOptions(std::forward<MaintenanceOptionsT>(value));
679 return *this;
680 }
682
684
690 inline bool GetDisableApiStop() const { return m_disableApiStop; }
691 inline bool DisableApiStopHasBeenSet() const { return m_disableApiStopHasBeenSet; }
692 inline void SetDisableApiStop(bool value) {
693 m_disableApiStopHasBeenSet = true;
694 m_disableApiStop = value;
695 }
697 SetDisableApiStop(value);
698 return *this;
699 }
701
703
718 inline bool GetEnablePrimaryIpv6() const { return m_enablePrimaryIpv6; }
719 inline bool EnablePrimaryIpv6HasBeenSet() const { return m_enablePrimaryIpv6HasBeenSet; }
720 inline void SetEnablePrimaryIpv6(bool value) {
721 m_enablePrimaryIpv6HasBeenSet = true;
722 m_enablePrimaryIpv6 = value;
723 }
726 return *this;
727 }
729
731
734 inline const InstanceNetworkPerformanceOptionsRequest& GetNetworkPerformanceOptions() const { return m_networkPerformanceOptions; }
735 inline bool NetworkPerformanceOptionsHasBeenSet() const { return m_networkPerformanceOptionsHasBeenSet; }
736 template <typename NetworkPerformanceOptionsT = InstanceNetworkPerformanceOptionsRequest>
737 void SetNetworkPerformanceOptions(NetworkPerformanceOptionsT&& value) {
738 m_networkPerformanceOptionsHasBeenSet = true;
739 m_networkPerformanceOptions = std::forward<NetworkPerformanceOptionsT>(value);
740 }
741 template <typename NetworkPerformanceOptionsT = InstanceNetworkPerformanceOptionsRequest>
742 RunInstancesRequest& WithNetworkPerformanceOptions(NetworkPerformanceOptionsT&& value) {
743 SetNetworkPerformanceOptions(std::forward<NetworkPerformanceOptionsT>(value));
744 return *this;
745 }
747
749
752 inline const OperatorRequest& GetOperator() const { return m_operator; }
753 inline bool OperatorHasBeenSet() const { return m_operatorHasBeenSet; }
754 template <typename OperatorT = OperatorRequest>
755 void SetOperator(OperatorT&& value) {
756 m_operatorHasBeenSet = true;
757 m_operator = std::forward<OperatorT>(value);
758 }
759 template <typename OperatorT = OperatorRequest>
760 RunInstancesRequest& WithOperator(OperatorT&& value) {
761 SetOperator(std::forward<OperatorT>(value));
762 return *this;
763 }
765
767
773 inline bool GetDryRun() const { return m_dryRun; }
774 inline bool DryRunHasBeenSet() const { return m_dryRunHasBeenSet; }
775 inline void SetDryRun(bool value) {
776 m_dryRunHasBeenSet = true;
777 m_dryRun = value;
778 }
779 inline RunInstancesRequest& WithDryRun(bool value) {
780 SetDryRun(value);
781 return *this;
782 }
784
786
793 inline bool GetDisableApiTermination() const { return m_disableApiTermination; }
794 inline bool DisableApiTerminationHasBeenSet() const { return m_disableApiTerminationHasBeenSet; }
795 inline void SetDisableApiTermination(bool value) {
796 m_disableApiTerminationHasBeenSet = true;
797 m_disableApiTermination = value;
798 }
801 return *this;
802 }
804
806
811 inline ShutdownBehavior GetInstanceInitiatedShutdownBehavior() const { return m_instanceInitiatedShutdownBehavior; }
812 inline bool InstanceInitiatedShutdownBehaviorHasBeenSet() const { return m_instanceInitiatedShutdownBehaviorHasBeenSet; }
814 m_instanceInitiatedShutdownBehaviorHasBeenSet = true;
815 m_instanceInitiatedShutdownBehavior = value;
816 }
819 return *this;
820 }
822
824
833 inline const Aws::String& GetPrivateIpAddress() const { return m_privateIpAddress; }
834 inline bool PrivateIpAddressHasBeenSet() const { return m_privateIpAddressHasBeenSet; }
835 template <typename PrivateIpAddressT = Aws::String>
836 void SetPrivateIpAddress(PrivateIpAddressT&& value) {
837 m_privateIpAddressHasBeenSet = true;
838 m_privateIpAddress = std::forward<PrivateIpAddressT>(value);
839 }
840 template <typename PrivateIpAddressT = Aws::String>
841 RunInstancesRequest& WithPrivateIpAddress(PrivateIpAddressT&& value) {
842 SetPrivateIpAddress(std::forward<PrivateIpAddressT>(value));
843 return *this;
844 }
846
848
856 inline const Aws::String& GetClientToken() const { return m_clientToken; }
857 inline bool ClientTokenHasBeenSet() const { return m_clientTokenHasBeenSet; }
858 template <typename ClientTokenT = Aws::String>
859 void SetClientToken(ClientTokenT&& value) {
860 m_clientTokenHasBeenSet = true;
861 m_clientToken = std::forward<ClientTokenT>(value);
862 }
863 template <typename ClientTokenT = Aws::String>
864 RunInstancesRequest& WithClientToken(ClientTokenT&& value) {
865 SetClientToken(std::forward<ClientTokenT>(value));
866 return *this;
867 }
869
871
874 inline const Aws::String& GetAdditionalInfo() const { return m_additionalInfo; }
875 inline bool AdditionalInfoHasBeenSet() const { return m_additionalInfoHasBeenSet; }
876 template <typename AdditionalInfoT = Aws::String>
877 void SetAdditionalInfo(AdditionalInfoT&& value) {
878 m_additionalInfoHasBeenSet = true;
879 m_additionalInfo = std::forward<AdditionalInfoT>(value);
880 }
881 template <typename AdditionalInfoT = Aws::String>
882 RunInstancesRequest& WithAdditionalInfo(AdditionalInfoT&& value) {
883 SetAdditionalInfo(std::forward<AdditionalInfoT>(value));
884 return *this;
885 }
887
889
892 inline const Aws::Vector<InstanceNetworkInterfaceSpecification>& GetNetworkInterfaces() const { return m_networkInterfaces; }
893 inline bool NetworkInterfacesHasBeenSet() const { return m_networkInterfacesHasBeenSet; }
894 template <typename NetworkInterfacesT = Aws::Vector<InstanceNetworkInterfaceSpecification>>
895 void SetNetworkInterfaces(NetworkInterfacesT&& value) {
896 m_networkInterfacesHasBeenSet = true;
897 m_networkInterfaces = std::forward<NetworkInterfacesT>(value);
898 }
899 template <typename NetworkInterfacesT = Aws::Vector<InstanceNetworkInterfaceSpecification>>
900 RunInstancesRequest& WithNetworkInterfaces(NetworkInterfacesT&& value) {
901 SetNetworkInterfaces(std::forward<NetworkInterfacesT>(value));
902 return *this;
903 }
904 template <typename NetworkInterfacesT = InstanceNetworkInterfaceSpecification>
905 RunInstancesRequest& AddNetworkInterfaces(NetworkInterfacesT&& value) {
906 m_networkInterfacesHasBeenSet = true;
907 m_networkInterfaces.emplace_back(std::forward<NetworkInterfacesT>(value));
908 return *this;
909 }
911
913
916 inline const IamInstanceProfileSpecification& GetIamInstanceProfile() const { return m_iamInstanceProfile; }
917 inline bool IamInstanceProfileHasBeenSet() const { return m_iamInstanceProfileHasBeenSet; }
918 template <typename IamInstanceProfileT = IamInstanceProfileSpecification>
919 void SetIamInstanceProfile(IamInstanceProfileT&& value) {
920 m_iamInstanceProfileHasBeenSet = true;
921 m_iamInstanceProfile = std::forward<IamInstanceProfileT>(value);
922 }
923 template <typename IamInstanceProfileT = IamInstanceProfileSpecification>
924 RunInstancesRequest& WithIamInstanceProfile(IamInstanceProfileT&& value) {
925 SetIamInstanceProfile(std::forward<IamInstanceProfileT>(value));
926 return *this;
927 }
929
931
939 inline bool GetEbsOptimized() const { return m_ebsOptimized; }
940 inline bool EbsOptimizedHasBeenSet() const { return m_ebsOptimizedHasBeenSet; }
941 inline void SetEbsOptimized(bool value) {
942 m_ebsOptimizedHasBeenSet = true;
943 m_ebsOptimized = value;
944 }
946 SetEbsOptimized(value);
947 return *this;
948 }
950 private:
951 Aws::Vector<BlockDeviceMapping> m_blockDeviceMappings;
952
953 Aws::String m_imageId;
954
955 InstanceType m_instanceType{InstanceType::NOT_SET};
956
957 int m_ipv6AddressCount{0};
958
959 Aws::Vector<InstanceIpv6Address> m_ipv6Addresses;
960
961 Aws::String m_kernelId;
962
963 Aws::String m_keyName;
964
965 int m_maxCount{0};
966
967 int m_minCount{0};
968
969 RunInstancesMonitoringEnabled m_monitoring;
970
971 Placement m_placement;
972
973 Aws::String m_ramdiskId;
974
975 Aws::Vector<Aws::String> m_securityGroupIds;
976
977 Aws::Vector<Aws::String> m_securityGroups;
978
979 Aws::String m_subnetId;
980
981 Aws::String m_userData;
982
983 Aws::Vector<TagSpecification> m_tagSpecifications;
984
985 LaunchTemplateSpecification m_launchTemplate;
986
987 InstanceMarketOptionsRequest m_instanceMarketOptions;
988
989 CreditSpecificationRequest m_creditSpecification;
990
991 CpuOptionsRequest m_cpuOptions;
992
993 CapacityReservationSpecification m_capacityReservationSpecification;
994
995 HibernationOptionsRequest m_hibernationOptions;
996
997 Aws::Vector<LicenseConfigurationRequest> m_licenseSpecifications;
998
999 InstanceMetadataOptionsRequest m_metadataOptions;
1000
1001 EnclaveOptionsRequest m_enclaveOptions;
1002
1003 PrivateDnsNameOptionsRequest m_privateDnsNameOptions;
1004
1005 InstanceMaintenanceOptionsRequest m_maintenanceOptions;
1006
1007 bool m_disableApiStop{false};
1008
1009 bool m_enablePrimaryIpv6{false};
1010
1011 InstanceNetworkPerformanceOptionsRequest m_networkPerformanceOptions;
1012
1013 OperatorRequest m_operator;
1014
1015 bool m_dryRun{false};
1016
1017 bool m_disableApiTermination{false};
1018
1019 ShutdownBehavior m_instanceInitiatedShutdownBehavior{ShutdownBehavior::NOT_SET};
1020
1021 Aws::String m_privateIpAddress;
1022
1024
1025 Aws::String m_additionalInfo;
1026
1028
1029 IamInstanceProfileSpecification m_iamInstanceProfile;
1030
1031 bool m_ebsOptimized{false};
1032 bool m_blockDeviceMappingsHasBeenSet = false;
1033 bool m_imageIdHasBeenSet = false;
1034 bool m_instanceTypeHasBeenSet = false;
1035 bool m_ipv6AddressCountHasBeenSet = false;
1036 bool m_ipv6AddressesHasBeenSet = false;
1037 bool m_kernelIdHasBeenSet = false;
1038 bool m_keyNameHasBeenSet = false;
1039 bool m_maxCountHasBeenSet = false;
1040 bool m_minCountHasBeenSet = false;
1041 bool m_monitoringHasBeenSet = false;
1042 bool m_placementHasBeenSet = false;
1043 bool m_ramdiskIdHasBeenSet = false;
1044 bool m_securityGroupIdsHasBeenSet = false;
1045 bool m_securityGroupsHasBeenSet = false;
1046 bool m_subnetIdHasBeenSet = false;
1047 bool m_userDataHasBeenSet = false;
1048 bool m_tagSpecificationsHasBeenSet = false;
1049 bool m_launchTemplateHasBeenSet = false;
1050 bool m_instanceMarketOptionsHasBeenSet = false;
1051 bool m_creditSpecificationHasBeenSet = false;
1052 bool m_cpuOptionsHasBeenSet = false;
1053 bool m_capacityReservationSpecificationHasBeenSet = false;
1054 bool m_hibernationOptionsHasBeenSet = false;
1055 bool m_licenseSpecificationsHasBeenSet = false;
1056 bool m_metadataOptionsHasBeenSet = false;
1057 bool m_enclaveOptionsHasBeenSet = false;
1058 bool m_privateDnsNameOptionsHasBeenSet = false;
1059 bool m_maintenanceOptionsHasBeenSet = false;
1060 bool m_disableApiStopHasBeenSet = false;
1061 bool m_enablePrimaryIpv6HasBeenSet = false;
1062 bool m_networkPerformanceOptionsHasBeenSet = false;
1063 bool m_operatorHasBeenSet = false;
1064 bool m_dryRunHasBeenSet = false;
1065 bool m_disableApiTerminationHasBeenSet = false;
1066 bool m_instanceInitiatedShutdownBehaviorHasBeenSet = false;
1067 bool m_privateIpAddressHasBeenSet = false;
1068 bool m_clientTokenHasBeenSet = true;
1069 bool m_additionalInfoHasBeenSet = false;
1070 bool m_networkInterfacesHasBeenSet = false;
1071 bool m_iamInstanceProfileHasBeenSet = false;
1072 bool m_ebsOptimizedHasBeenSet = false;
1073};
1074
1075} // namespace Model
1076} // namespace EC2
1077} // 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
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)
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 & 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)
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