AWS SDK for C++

AWS SDK for C++ Version 1.11.606

Loading...
Searching...
No Matches
RunInstancesRequest.h
1
6#pragma once
7#include <aws/ec2/EC2_EXPORTS.h>
8#include <aws/ec2/EC2Request.h>
9#include <aws/core/utils/memory/stl/AWSVector.h>
10#include <aws/core/utils/memory/stl/AWSString.h>
11#include <aws/ec2/model/InstanceType.h>
12#include <aws/ec2/model/RunInstancesMonitoringEnabled.h>
13#include <aws/ec2/model/Placement.h>
14#include <aws/ec2/model/LaunchTemplateSpecification.h>
15#include <aws/ec2/model/InstanceMarketOptionsRequest.h>
16#include <aws/ec2/model/CreditSpecificationRequest.h>
17#include <aws/ec2/model/CpuOptionsRequest.h>
18#include <aws/ec2/model/CapacityReservationSpecification.h>
19#include <aws/ec2/model/HibernationOptionsRequest.h>
20#include <aws/ec2/model/InstanceMetadataOptionsRequest.h>
21#include <aws/ec2/model/EnclaveOptionsRequest.h>
22#include <aws/ec2/model/PrivateDnsNameOptionsRequest.h>
23#include <aws/ec2/model/InstanceMaintenanceOptionsRequest.h>
24#include <aws/ec2/model/InstanceNetworkPerformanceOptionsRequest.h>
25#include <aws/ec2/model/OperatorRequest.h>
26#include <aws/ec2/model/ShutdownBehavior.h>
27#include <aws/ec2/model/IamInstanceProfileSpecification.h>
28#include <aws/ec2/model/BlockDeviceMapping.h>
29#include <aws/ec2/model/InstanceIpv6Address.h>
30#include <aws/ec2/model/ElasticGpuSpecification.h>
31#include <aws/ec2/model/ElasticInferenceAccelerator.h>
32#include <aws/ec2/model/TagSpecification.h>
33#include <aws/ec2/model/LicenseConfigurationRequest.h>
34#include <aws/ec2/model/InstanceNetworkInterfaceSpecification.h>
35#include <utility>
36#include <aws/core/utils/UUID.h>
37
38namespace Aws
39{
40namespace EC2
41{
42namespace Model
43{
44
48 {
49 public:
50 AWS_EC2_API RunInstancesRequest() = default;
51
52 // Service request name is the Operation name which will send this request out,
53 // each operation should has unique request name, so that we can get operation's name from this request.
54 // Note: this is not true for response, multiple operations may have the same response name,
55 // so we can not get operation's name from response.
56 inline virtual const char* GetServiceRequestName() const override { return "RunInstances"; }
57
58 AWS_EC2_API Aws::String SerializePayload() const override;
59
60 protected:
61 AWS_EC2_API void DumpBodyToUrl(Aws::Http::URI& uri ) const override;
62
63 public:
64
66
72 inline const Aws::Vector<BlockDeviceMapping>& GetBlockDeviceMappings() const { return m_blockDeviceMappings; }
73 inline bool BlockDeviceMappingsHasBeenSet() const { return m_blockDeviceMappingsHasBeenSet; }
74 template<typename BlockDeviceMappingsT = Aws::Vector<BlockDeviceMapping>>
75 void SetBlockDeviceMappings(BlockDeviceMappingsT&& value) { m_blockDeviceMappingsHasBeenSet = true; m_blockDeviceMappings = std::forward<BlockDeviceMappingsT>(value); }
76 template<typename BlockDeviceMappingsT = Aws::Vector<BlockDeviceMapping>>
77 RunInstancesRequest& WithBlockDeviceMappings(BlockDeviceMappingsT&& value) { SetBlockDeviceMappings(std::forward<BlockDeviceMappingsT>(value)); return *this;}
78 template<typename BlockDeviceMappingsT = BlockDeviceMapping>
79 RunInstancesRequest& AddBlockDeviceMappings(BlockDeviceMappingsT&& value) { m_blockDeviceMappingsHasBeenSet = true; m_blockDeviceMappings.emplace_back(std::forward<BlockDeviceMappingsT>(value)); return *this; }
81
83
87 inline const Aws::String& GetImageId() const { return m_imageId; }
88 inline bool ImageIdHasBeenSet() const { return m_imageIdHasBeenSet; }
89 template<typename ImageIdT = Aws::String>
90 void SetImageId(ImageIdT&& value) { m_imageIdHasBeenSet = true; m_imageId = std::forward<ImageIdT>(value); }
91 template<typename ImageIdT = Aws::String>
92 RunInstancesRequest& WithImageId(ImageIdT&& value) { SetImageId(std::forward<ImageIdT>(value)); return *this;}
94
96
101 inline InstanceType GetInstanceType() const { return m_instanceType; }
102 inline bool InstanceTypeHasBeenSet() const { return m_instanceTypeHasBeenSet; }
103 inline void SetInstanceType(InstanceType value) { m_instanceTypeHasBeenSet = true; m_instanceType = value; }
104 inline RunInstancesRequest& WithInstanceType(InstanceType value) { SetInstanceType(value); return *this;}
106
108
116 inline int GetIpv6AddressCount() const { return m_ipv6AddressCount; }
117 inline bool Ipv6AddressCountHasBeenSet() const { return m_ipv6AddressCountHasBeenSet; }
118 inline void SetIpv6AddressCount(int value) { m_ipv6AddressCountHasBeenSet = true; m_ipv6AddressCount = value; }
119 inline RunInstancesRequest& WithIpv6AddressCount(int value) { SetIpv6AddressCount(value); return *this;}
121
123
130 inline const Aws::Vector<InstanceIpv6Address>& GetIpv6Addresses() const { return m_ipv6Addresses; }
131 inline bool Ipv6AddressesHasBeenSet() const { return m_ipv6AddressesHasBeenSet; }
132 template<typename Ipv6AddressesT = Aws::Vector<InstanceIpv6Address>>
133 void SetIpv6Addresses(Ipv6AddressesT&& value) { m_ipv6AddressesHasBeenSet = true; m_ipv6Addresses = std::forward<Ipv6AddressesT>(value); }
134 template<typename Ipv6AddressesT = Aws::Vector<InstanceIpv6Address>>
135 RunInstancesRequest& WithIpv6Addresses(Ipv6AddressesT&& value) { SetIpv6Addresses(std::forward<Ipv6AddressesT>(value)); return *this;}
136 template<typename Ipv6AddressesT = InstanceIpv6Address>
137 RunInstancesRequest& AddIpv6Addresses(Ipv6AddressesT&& value) { m_ipv6AddressesHasBeenSet = true; m_ipv6Addresses.emplace_back(std::forward<Ipv6AddressesT>(value)); return *this; }
139
141
147 inline const Aws::String& GetKernelId() const { return m_kernelId; }
148 inline bool KernelIdHasBeenSet() const { return m_kernelIdHasBeenSet; }
149 template<typename KernelIdT = Aws::String>
150 void SetKernelId(KernelIdT&& value) { m_kernelIdHasBeenSet = true; m_kernelId = std::forward<KernelIdT>(value); }
151 template<typename KernelIdT = Aws::String>
152 RunInstancesRequest& WithKernelId(KernelIdT&& value) { SetKernelId(std::forward<KernelIdT>(value)); return *this;}
154
156
165 inline const Aws::String& GetKeyName() const { return m_keyName; }
166 inline bool KeyNameHasBeenSet() const { return m_keyNameHasBeenSet; }
167 template<typename KeyNameT = Aws::String>
168 void SetKeyName(KeyNameT&& value) { m_keyNameHasBeenSet = true; m_keyName = std::forward<KeyNameT>(value); }
169 template<typename KeyNameT = Aws::String>
170 RunInstancesRequest& WithKeyName(KeyNameT&& value) { SetKeyName(std::forward<KeyNameT>(value)); return *this;}
172
174
183 inline int GetMaxCount() const { return m_maxCount; }
184 inline bool MaxCountHasBeenSet() const { return m_maxCountHasBeenSet; }
185 inline void SetMaxCount(int value) { m_maxCountHasBeenSet = true; m_maxCount = value; }
186 inline RunInstancesRequest& WithMaxCount(int value) { SetMaxCount(value); return *this;}
188
190
199 inline int GetMinCount() const { return m_minCount; }
200 inline bool MinCountHasBeenSet() const { return m_minCountHasBeenSet; }
201 inline void SetMinCount(int value) { m_minCountHasBeenSet = true; m_minCount = value; }
202 inline RunInstancesRequest& WithMinCount(int value) { SetMinCount(value); return *this;}
204
206
209 inline const RunInstancesMonitoringEnabled& GetMonitoring() const { return m_monitoring; }
210 inline bool MonitoringHasBeenSet() const { return m_monitoringHasBeenSet; }
211 template<typename MonitoringT = RunInstancesMonitoringEnabled>
212 void SetMonitoring(MonitoringT&& value) { m_monitoringHasBeenSet = true; m_monitoring = std::forward<MonitoringT>(value); }
213 template<typename MonitoringT = RunInstancesMonitoringEnabled>
214 RunInstancesRequest& WithMonitoring(MonitoringT&& value) { SetMonitoring(std::forward<MonitoringT>(value)); return *this;}
216
218
221 inline const Placement& GetPlacement() const { return m_placement; }
222 inline bool PlacementHasBeenSet() const { return m_placementHasBeenSet; }
223 template<typename PlacementT = Placement>
224 void SetPlacement(PlacementT&& value) { m_placementHasBeenSet = true; m_placement = std::forward<PlacementT>(value); }
225 template<typename PlacementT = Placement>
226 RunInstancesRequest& WithPlacement(PlacementT&& value) { SetPlacement(std::forward<PlacementT>(value)); return *this;}
228
230
240 inline const Aws::String& GetRamdiskId() const { return m_ramdiskId; }
241 inline bool RamdiskIdHasBeenSet() const { return m_ramdiskIdHasBeenSet; }
242 template<typename RamdiskIdT = Aws::String>
243 void SetRamdiskId(RamdiskIdT&& value) { m_ramdiskIdHasBeenSet = true; m_ramdiskId = std::forward<RamdiskIdT>(value); }
244 template<typename RamdiskIdT = Aws::String>
245 RunInstancesRequest& WithRamdiskId(RamdiskIdT&& value) { SetRamdiskId(std::forward<RamdiskIdT>(value)); return *this;}
247
249
255 inline const Aws::Vector<Aws::String>& GetSecurityGroupIds() const { return m_securityGroupIds; }
256 inline bool SecurityGroupIdsHasBeenSet() const { return m_securityGroupIdsHasBeenSet; }
257 template<typename SecurityGroupIdsT = Aws::Vector<Aws::String>>
258 void SetSecurityGroupIds(SecurityGroupIdsT&& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds = std::forward<SecurityGroupIdsT>(value); }
259 template<typename SecurityGroupIdsT = Aws::Vector<Aws::String>>
260 RunInstancesRequest& WithSecurityGroupIds(SecurityGroupIdsT&& value) { SetSecurityGroupIds(std::forward<SecurityGroupIdsT>(value)); return *this;}
261 template<typename SecurityGroupIdsT = Aws::String>
262 RunInstancesRequest& AddSecurityGroupIds(SecurityGroupIdsT&& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.emplace_back(std::forward<SecurityGroupIdsT>(value)); return *this; }
264
266
272 inline const Aws::Vector<Aws::String>& GetSecurityGroups() const { return m_securityGroups; }
273 inline bool SecurityGroupsHasBeenSet() const { return m_securityGroupsHasBeenSet; }
274 template<typename SecurityGroupsT = Aws::Vector<Aws::String>>
275 void SetSecurityGroups(SecurityGroupsT&& value) { m_securityGroupsHasBeenSet = true; m_securityGroups = std::forward<SecurityGroupsT>(value); }
276 template<typename SecurityGroupsT = Aws::Vector<Aws::String>>
277 RunInstancesRequest& WithSecurityGroups(SecurityGroupsT&& value) { SetSecurityGroups(std::forward<SecurityGroupsT>(value)); return *this;}
278 template<typename SecurityGroupsT = Aws::String>
279 RunInstancesRequest& AddSecurityGroups(SecurityGroupsT&& value) { m_securityGroupsHasBeenSet = true; m_securityGroups.emplace_back(std::forward<SecurityGroupsT>(value)); return *this; }
281
283
288 inline const Aws::String& GetSubnetId() const { return m_subnetId; }
289 inline bool SubnetIdHasBeenSet() const { return m_subnetIdHasBeenSet; }
290 template<typename SubnetIdT = Aws::String>
291 void SetSubnetId(SubnetIdT&& value) { m_subnetIdHasBeenSet = true; m_subnetId = std::forward<SubnetIdT>(value); }
292 template<typename SubnetIdT = Aws::String>
293 RunInstancesRequest& WithSubnetId(SubnetIdT&& value) { SetSubnetId(std::forward<SubnetIdT>(value)); return *this;}
295
297
304 inline const Aws::String& GetUserData() const { return m_userData; }
305 inline bool UserDataHasBeenSet() const { return m_userDataHasBeenSet; }
306 template<typename UserDataT = Aws::String>
307 void SetUserData(UserDataT&& value) { m_userDataHasBeenSet = true; m_userData = std::forward<UserDataT>(value); }
308 template<typename UserDataT = Aws::String>
309 RunInstancesRequest& WithUserData(UserDataT&& value) { SetUserData(std::forward<UserDataT>(value)); return *this;}
311
313
317 inline const Aws::Vector<ElasticGpuSpecification>& GetElasticGpuSpecification() const { return m_elasticGpuSpecification; }
318 inline bool ElasticGpuSpecificationHasBeenSet() const { return m_elasticGpuSpecificationHasBeenSet; }
319 template<typename ElasticGpuSpecificationT = Aws::Vector<ElasticGpuSpecification>>
320 void SetElasticGpuSpecification(ElasticGpuSpecificationT&& value) { m_elasticGpuSpecificationHasBeenSet = true; m_elasticGpuSpecification = std::forward<ElasticGpuSpecificationT>(value); }
321 template<typename ElasticGpuSpecificationT = Aws::Vector<ElasticGpuSpecification>>
322 RunInstancesRequest& WithElasticGpuSpecification(ElasticGpuSpecificationT&& value) { SetElasticGpuSpecification(std::forward<ElasticGpuSpecificationT>(value)); return *this;}
323 template<typename ElasticGpuSpecificationT = ElasticGpuSpecification>
324 RunInstancesRequest& AddElasticGpuSpecification(ElasticGpuSpecificationT&& value) { m_elasticGpuSpecificationHasBeenSet = true; m_elasticGpuSpecification.emplace_back(std::forward<ElasticGpuSpecificationT>(value)); return *this; }
326
328
332 inline const Aws::Vector<ElasticInferenceAccelerator>& GetElasticInferenceAccelerators() const { return m_elasticInferenceAccelerators; }
333 inline bool ElasticInferenceAcceleratorsHasBeenSet() const { return m_elasticInferenceAcceleratorsHasBeenSet; }
334 template<typename ElasticInferenceAcceleratorsT = Aws::Vector<ElasticInferenceAccelerator>>
335 void SetElasticInferenceAccelerators(ElasticInferenceAcceleratorsT&& value) { m_elasticInferenceAcceleratorsHasBeenSet = true; m_elasticInferenceAccelerators = std::forward<ElasticInferenceAcceleratorsT>(value); }
336 template<typename ElasticInferenceAcceleratorsT = Aws::Vector<ElasticInferenceAccelerator>>
337 RunInstancesRequest& WithElasticInferenceAccelerators(ElasticInferenceAcceleratorsT&& value) { SetElasticInferenceAccelerators(std::forward<ElasticInferenceAcceleratorsT>(value)); return *this;}
338 template<typename ElasticInferenceAcceleratorsT = ElasticInferenceAccelerator>
339 RunInstancesRequest& AddElasticInferenceAccelerators(ElasticInferenceAcceleratorsT&& value) { m_elasticInferenceAcceleratorsHasBeenSet = true; m_elasticInferenceAccelerators.emplace_back(std::forward<ElasticInferenceAcceleratorsT>(value)); return *this; }
341
343
351 inline const Aws::Vector<TagSpecification>& GetTagSpecifications() const { return m_tagSpecifications; }
352 inline bool TagSpecificationsHasBeenSet() const { return m_tagSpecificationsHasBeenSet; }
353 template<typename TagSpecificationsT = Aws::Vector<TagSpecification>>
354 void SetTagSpecifications(TagSpecificationsT&& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications = std::forward<TagSpecificationsT>(value); }
355 template<typename TagSpecificationsT = Aws::Vector<TagSpecification>>
356 RunInstancesRequest& WithTagSpecifications(TagSpecificationsT&& value) { SetTagSpecifications(std::forward<TagSpecificationsT>(value)); return *this;}
357 template<typename TagSpecificationsT = TagSpecification>
358 RunInstancesRequest& AddTagSpecifications(TagSpecificationsT&& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications.emplace_back(std::forward<TagSpecificationsT>(value)); return *this; }
360
362
367 inline const LaunchTemplateSpecification& GetLaunchTemplate() const { return m_launchTemplate; }
368 inline bool LaunchTemplateHasBeenSet() const { return m_launchTemplateHasBeenSet; }
369 template<typename LaunchTemplateT = LaunchTemplateSpecification>
370 void SetLaunchTemplate(LaunchTemplateT&& value) { m_launchTemplateHasBeenSet = true; m_launchTemplate = std::forward<LaunchTemplateT>(value); }
371 template<typename LaunchTemplateT = LaunchTemplateSpecification>
372 RunInstancesRequest& WithLaunchTemplate(LaunchTemplateT&& value) { SetLaunchTemplate(std::forward<LaunchTemplateT>(value)); return *this;}
374
376
382 inline const InstanceMarketOptionsRequest& GetInstanceMarketOptions() const { return m_instanceMarketOptions; }
383 inline bool InstanceMarketOptionsHasBeenSet() const { return m_instanceMarketOptionsHasBeenSet; }
384 template<typename InstanceMarketOptionsT = InstanceMarketOptionsRequest>
385 void SetInstanceMarketOptions(InstanceMarketOptionsT&& value) { m_instanceMarketOptionsHasBeenSet = true; m_instanceMarketOptions = std::forward<InstanceMarketOptionsT>(value); }
386 template<typename InstanceMarketOptionsT = InstanceMarketOptionsRequest>
387 RunInstancesRequest& WithInstanceMarketOptions(InstanceMarketOptionsT&& value) { SetInstanceMarketOptions(std::forward<InstanceMarketOptionsT>(value)); return *this;}
389
391
403 inline const CreditSpecificationRequest& GetCreditSpecification() const { return m_creditSpecification; }
404 inline bool CreditSpecificationHasBeenSet() const { return m_creditSpecificationHasBeenSet; }
405 template<typename CreditSpecificationT = CreditSpecificationRequest>
406 void SetCreditSpecification(CreditSpecificationT&& value) { m_creditSpecificationHasBeenSet = true; m_creditSpecification = std::forward<CreditSpecificationT>(value); }
407 template<typename CreditSpecificationT = CreditSpecificationRequest>
408 RunInstancesRequest& WithCreditSpecification(CreditSpecificationT&& value) { SetCreditSpecification(std::forward<CreditSpecificationT>(value)); return *this;}
410
412
417 inline const CpuOptionsRequest& GetCpuOptions() const { return m_cpuOptions; }
418 inline bool CpuOptionsHasBeenSet() const { return m_cpuOptionsHasBeenSet; }
419 template<typename CpuOptionsT = CpuOptionsRequest>
420 void SetCpuOptions(CpuOptionsT&& value) { m_cpuOptionsHasBeenSet = true; m_cpuOptions = std::forward<CpuOptionsT>(value); }
421 template<typename CpuOptionsT = CpuOptionsRequest>
422 RunInstancesRequest& WithCpuOptions(CpuOptionsT&& value) { SetCpuOptions(std::forward<CpuOptionsT>(value)); return *this;}
424
426
433 inline const CapacityReservationSpecification& GetCapacityReservationSpecification() const { return m_capacityReservationSpecification; }
434 inline bool CapacityReservationSpecificationHasBeenSet() const { return m_capacityReservationSpecificationHasBeenSet; }
435 template<typename CapacityReservationSpecificationT = CapacityReservationSpecification>
436 void SetCapacityReservationSpecification(CapacityReservationSpecificationT&& value) { m_capacityReservationSpecificationHasBeenSet = true; m_capacityReservationSpecification = std::forward<CapacityReservationSpecificationT>(value); }
437 template<typename CapacityReservationSpecificationT = CapacityReservationSpecification>
438 RunInstancesRequest& WithCapacityReservationSpecification(CapacityReservationSpecificationT&& value) { SetCapacityReservationSpecification(std::forward<CapacityReservationSpecificationT>(value)); return *this;}
440
442
452 inline const HibernationOptionsRequest& GetHibernationOptions() const { return m_hibernationOptions; }
453 inline bool HibernationOptionsHasBeenSet() const { return m_hibernationOptionsHasBeenSet; }
454 template<typename HibernationOptionsT = HibernationOptionsRequest>
455 void SetHibernationOptions(HibernationOptionsT&& value) { m_hibernationOptionsHasBeenSet = true; m_hibernationOptions = std::forward<HibernationOptionsT>(value); }
456 template<typename HibernationOptionsT = HibernationOptionsRequest>
457 RunInstancesRequest& WithHibernationOptions(HibernationOptionsT&& value) { SetHibernationOptions(std::forward<HibernationOptionsT>(value)); return *this;}
459
461
464 inline const Aws::Vector<LicenseConfigurationRequest>& GetLicenseSpecifications() const { return m_licenseSpecifications; }
465 inline bool LicenseSpecificationsHasBeenSet() const { return m_licenseSpecificationsHasBeenSet; }
466 template<typename LicenseSpecificationsT = Aws::Vector<LicenseConfigurationRequest>>
467 void SetLicenseSpecifications(LicenseSpecificationsT&& value) { m_licenseSpecificationsHasBeenSet = true; m_licenseSpecifications = std::forward<LicenseSpecificationsT>(value); }
468 template<typename LicenseSpecificationsT = Aws::Vector<LicenseConfigurationRequest>>
469 RunInstancesRequest& WithLicenseSpecifications(LicenseSpecificationsT&& value) { SetLicenseSpecifications(std::forward<LicenseSpecificationsT>(value)); return *this;}
470 template<typename LicenseSpecificationsT = LicenseConfigurationRequest>
471 RunInstancesRequest& AddLicenseSpecifications(LicenseSpecificationsT&& value) { m_licenseSpecificationsHasBeenSet = true; m_licenseSpecifications.emplace_back(std::forward<LicenseSpecificationsT>(value)); return *this; }
473
475
480 inline const InstanceMetadataOptionsRequest& GetMetadataOptions() const { return m_metadataOptions; }
481 inline bool MetadataOptionsHasBeenSet() const { return m_metadataOptionsHasBeenSet; }
482 template<typename MetadataOptionsT = InstanceMetadataOptionsRequest>
483 void SetMetadataOptions(MetadataOptionsT&& value) { m_metadataOptionsHasBeenSet = true; m_metadataOptions = std::forward<MetadataOptionsT>(value); }
484 template<typename MetadataOptionsT = InstanceMetadataOptionsRequest>
485 RunInstancesRequest& WithMetadataOptions(MetadataOptionsT&& value) { SetMetadataOptions(std::forward<MetadataOptionsT>(value)); return *this;}
487
489
497 inline const EnclaveOptionsRequest& GetEnclaveOptions() const { return m_enclaveOptions; }
498 inline bool EnclaveOptionsHasBeenSet() const { return m_enclaveOptionsHasBeenSet; }
499 template<typename EnclaveOptionsT = EnclaveOptionsRequest>
500 void SetEnclaveOptions(EnclaveOptionsT&& value) { m_enclaveOptionsHasBeenSet = true; m_enclaveOptions = std::forward<EnclaveOptionsT>(value); }
501 template<typename EnclaveOptionsT = EnclaveOptionsRequest>
502 RunInstancesRequest& WithEnclaveOptions(EnclaveOptionsT&& value) { SetEnclaveOptions(std::forward<EnclaveOptionsT>(value)); return *this;}
504
506
511 inline const PrivateDnsNameOptionsRequest& GetPrivateDnsNameOptions() const { return m_privateDnsNameOptions; }
512 inline bool PrivateDnsNameOptionsHasBeenSet() const { return m_privateDnsNameOptionsHasBeenSet; }
513 template<typename PrivateDnsNameOptionsT = PrivateDnsNameOptionsRequest>
514 void SetPrivateDnsNameOptions(PrivateDnsNameOptionsT&& value) { m_privateDnsNameOptionsHasBeenSet = true; m_privateDnsNameOptions = std::forward<PrivateDnsNameOptionsT>(value); }
515 template<typename PrivateDnsNameOptionsT = PrivateDnsNameOptionsRequest>
516 RunInstancesRequest& WithPrivateDnsNameOptions(PrivateDnsNameOptionsT&& value) { SetPrivateDnsNameOptions(std::forward<PrivateDnsNameOptionsT>(value)); return *this;}
518
520
523 inline const InstanceMaintenanceOptionsRequest& GetMaintenanceOptions() const { return m_maintenanceOptions; }
524 inline bool MaintenanceOptionsHasBeenSet() const { return m_maintenanceOptionsHasBeenSet; }
525 template<typename MaintenanceOptionsT = InstanceMaintenanceOptionsRequest>
526 void SetMaintenanceOptions(MaintenanceOptionsT&& value) { m_maintenanceOptionsHasBeenSet = true; m_maintenanceOptions = std::forward<MaintenanceOptionsT>(value); }
527 template<typename MaintenanceOptionsT = InstanceMaintenanceOptionsRequest>
528 RunInstancesRequest& WithMaintenanceOptions(MaintenanceOptionsT&& value) { SetMaintenanceOptions(std::forward<MaintenanceOptionsT>(value)); return *this;}
530
532
538 inline bool GetDisableApiStop() const { return m_disableApiStop; }
539 inline bool DisableApiStopHasBeenSet() const { return m_disableApiStopHasBeenSet; }
540 inline void SetDisableApiStop(bool value) { m_disableApiStopHasBeenSet = true; m_disableApiStop = value; }
541 inline RunInstancesRequest& WithDisableApiStop(bool value) { SetDisableApiStop(value); return *this;}
543
545
560 inline bool GetEnablePrimaryIpv6() const { return m_enablePrimaryIpv6; }
561 inline bool EnablePrimaryIpv6HasBeenSet() const { return m_enablePrimaryIpv6HasBeenSet; }
562 inline void SetEnablePrimaryIpv6(bool value) { m_enablePrimaryIpv6HasBeenSet = true; m_enablePrimaryIpv6 = value; }
563 inline RunInstancesRequest& WithEnablePrimaryIpv6(bool value) { SetEnablePrimaryIpv6(value); return *this;}
565
567
570 inline const InstanceNetworkPerformanceOptionsRequest& GetNetworkPerformanceOptions() const { return m_networkPerformanceOptions; }
571 inline bool NetworkPerformanceOptionsHasBeenSet() const { return m_networkPerformanceOptionsHasBeenSet; }
572 template<typename NetworkPerformanceOptionsT = InstanceNetworkPerformanceOptionsRequest>
573 void SetNetworkPerformanceOptions(NetworkPerformanceOptionsT&& value) { m_networkPerformanceOptionsHasBeenSet = true; m_networkPerformanceOptions = std::forward<NetworkPerformanceOptionsT>(value); }
574 template<typename NetworkPerformanceOptionsT = InstanceNetworkPerformanceOptionsRequest>
575 RunInstancesRequest& WithNetworkPerformanceOptions(NetworkPerformanceOptionsT&& value) { SetNetworkPerformanceOptions(std::forward<NetworkPerformanceOptionsT>(value)); return *this;}
577
579
582 inline const OperatorRequest& GetOperator() const { return m_operator; }
583 inline bool OperatorHasBeenSet() const { return m_operatorHasBeenSet; }
584 template<typename OperatorT = OperatorRequest>
585 void SetOperator(OperatorT&& value) { m_operatorHasBeenSet = true; m_operator = std::forward<OperatorT>(value); }
586 template<typename OperatorT = OperatorRequest>
587 RunInstancesRequest& WithOperator(OperatorT&& value) { SetOperator(std::forward<OperatorT>(value)); return *this;}
589
591
597 inline bool GetDryRun() const { return m_dryRun; }
598 inline bool DryRunHasBeenSet() const { return m_dryRunHasBeenSet; }
599 inline void SetDryRun(bool value) { m_dryRunHasBeenSet = true; m_dryRun = value; }
600 inline RunInstancesRequest& WithDryRun(bool value) { SetDryRun(value); return *this;}
602
604
611 inline bool GetDisableApiTermination() const { return m_disableApiTermination; }
612 inline bool DisableApiTerminationHasBeenSet() const { return m_disableApiTerminationHasBeenSet; }
613 inline void SetDisableApiTermination(bool value) { m_disableApiTerminationHasBeenSet = true; m_disableApiTermination = value; }
614 inline RunInstancesRequest& WithDisableApiTermination(bool value) { SetDisableApiTermination(value); return *this;}
616
618
623 inline ShutdownBehavior GetInstanceInitiatedShutdownBehavior() const { return m_instanceInitiatedShutdownBehavior; }
624 inline bool InstanceInitiatedShutdownBehaviorHasBeenSet() const { return m_instanceInitiatedShutdownBehaviorHasBeenSet; }
625 inline void SetInstanceInitiatedShutdownBehavior(ShutdownBehavior value) { m_instanceInitiatedShutdownBehaviorHasBeenSet = true; m_instanceInitiatedShutdownBehavior = value; }
628
630
639 inline const Aws::String& GetPrivateIpAddress() const { return m_privateIpAddress; }
640 inline bool PrivateIpAddressHasBeenSet() const { return m_privateIpAddressHasBeenSet; }
641 template<typename PrivateIpAddressT = Aws::String>
642 void SetPrivateIpAddress(PrivateIpAddressT&& value) { m_privateIpAddressHasBeenSet = true; m_privateIpAddress = std::forward<PrivateIpAddressT>(value); }
643 template<typename PrivateIpAddressT = Aws::String>
644 RunInstancesRequest& WithPrivateIpAddress(PrivateIpAddressT&& value) { SetPrivateIpAddress(std::forward<PrivateIpAddressT>(value)); return *this;}
646
648
655 inline const Aws::String& GetClientToken() const { return m_clientToken; }
656 inline bool ClientTokenHasBeenSet() const { return m_clientTokenHasBeenSet; }
657 template<typename ClientTokenT = Aws::String>
658 void SetClientToken(ClientTokenT&& value) { m_clientTokenHasBeenSet = true; m_clientToken = std::forward<ClientTokenT>(value); }
659 template<typename ClientTokenT = Aws::String>
660 RunInstancesRequest& WithClientToken(ClientTokenT&& value) { SetClientToken(std::forward<ClientTokenT>(value)); return *this;}
662
664
667 inline const Aws::String& GetAdditionalInfo() const { return m_additionalInfo; }
668 inline bool AdditionalInfoHasBeenSet() const { return m_additionalInfoHasBeenSet; }
669 template<typename AdditionalInfoT = Aws::String>
670 void SetAdditionalInfo(AdditionalInfoT&& value) { m_additionalInfoHasBeenSet = true; m_additionalInfo = std::forward<AdditionalInfoT>(value); }
671 template<typename AdditionalInfoT = Aws::String>
672 RunInstancesRequest& WithAdditionalInfo(AdditionalInfoT&& value) { SetAdditionalInfo(std::forward<AdditionalInfoT>(value)); return *this;}
674
676
679 inline const Aws::Vector<InstanceNetworkInterfaceSpecification>& GetNetworkInterfaces() const { return m_networkInterfaces; }
680 inline bool NetworkInterfacesHasBeenSet() const { return m_networkInterfacesHasBeenSet; }
681 template<typename NetworkInterfacesT = Aws::Vector<InstanceNetworkInterfaceSpecification>>
682 void SetNetworkInterfaces(NetworkInterfacesT&& value) { m_networkInterfacesHasBeenSet = true; m_networkInterfaces = std::forward<NetworkInterfacesT>(value); }
683 template<typename NetworkInterfacesT = Aws::Vector<InstanceNetworkInterfaceSpecification>>
684 RunInstancesRequest& WithNetworkInterfaces(NetworkInterfacesT&& value) { SetNetworkInterfaces(std::forward<NetworkInterfacesT>(value)); return *this;}
685 template<typename NetworkInterfacesT = InstanceNetworkInterfaceSpecification>
686 RunInstancesRequest& AddNetworkInterfaces(NetworkInterfacesT&& value) { m_networkInterfacesHasBeenSet = true; m_networkInterfaces.emplace_back(std::forward<NetworkInterfacesT>(value)); return *this; }
688
690
693 inline const IamInstanceProfileSpecification& GetIamInstanceProfile() const { return m_iamInstanceProfile; }
694 inline bool IamInstanceProfileHasBeenSet() const { return m_iamInstanceProfileHasBeenSet; }
695 template<typename IamInstanceProfileT = IamInstanceProfileSpecification>
696 void SetIamInstanceProfile(IamInstanceProfileT&& value) { m_iamInstanceProfileHasBeenSet = true; m_iamInstanceProfile = std::forward<IamInstanceProfileT>(value); }
697 template<typename IamInstanceProfileT = IamInstanceProfileSpecification>
698 RunInstancesRequest& WithIamInstanceProfile(IamInstanceProfileT&& value) { SetIamInstanceProfile(std::forward<IamInstanceProfileT>(value)); return *this;}
700
702
710 inline bool GetEbsOptimized() const { return m_ebsOptimized; }
711 inline bool EbsOptimizedHasBeenSet() const { return m_ebsOptimizedHasBeenSet; }
712 inline void SetEbsOptimized(bool value) { m_ebsOptimizedHasBeenSet = true; m_ebsOptimized = value; }
713 inline RunInstancesRequest& WithEbsOptimized(bool value) { SetEbsOptimized(value); return *this;}
715 private:
716
717 Aws::Vector<BlockDeviceMapping> m_blockDeviceMappings;
718 bool m_blockDeviceMappingsHasBeenSet = false;
719
720 Aws::String m_imageId;
721 bool m_imageIdHasBeenSet = false;
722
723 InstanceType m_instanceType{InstanceType::NOT_SET};
724 bool m_instanceTypeHasBeenSet = false;
725
726 int m_ipv6AddressCount{0};
727 bool m_ipv6AddressCountHasBeenSet = false;
728
729 Aws::Vector<InstanceIpv6Address> m_ipv6Addresses;
730 bool m_ipv6AddressesHasBeenSet = false;
731
732 Aws::String m_kernelId;
733 bool m_kernelIdHasBeenSet = false;
734
735 Aws::String m_keyName;
736 bool m_keyNameHasBeenSet = false;
737
738 int m_maxCount{0};
739 bool m_maxCountHasBeenSet = false;
740
741 int m_minCount{0};
742 bool m_minCountHasBeenSet = false;
743
744 RunInstancesMonitoringEnabled m_monitoring;
745 bool m_monitoringHasBeenSet = false;
746
747 Placement m_placement;
748 bool m_placementHasBeenSet = false;
749
750 Aws::String m_ramdiskId;
751 bool m_ramdiskIdHasBeenSet = false;
752
753 Aws::Vector<Aws::String> m_securityGroupIds;
754 bool m_securityGroupIdsHasBeenSet = false;
755
756 Aws::Vector<Aws::String> m_securityGroups;
757 bool m_securityGroupsHasBeenSet = false;
758
759 Aws::String m_subnetId;
760 bool m_subnetIdHasBeenSet = false;
761
762 Aws::String m_userData;
763 bool m_userDataHasBeenSet = false;
764
765 Aws::Vector<ElasticGpuSpecification> m_elasticGpuSpecification;
766 bool m_elasticGpuSpecificationHasBeenSet = false;
767
768 Aws::Vector<ElasticInferenceAccelerator> m_elasticInferenceAccelerators;
769 bool m_elasticInferenceAcceleratorsHasBeenSet = false;
770
771 Aws::Vector<TagSpecification> m_tagSpecifications;
772 bool m_tagSpecificationsHasBeenSet = false;
773
774 LaunchTemplateSpecification m_launchTemplate;
775 bool m_launchTemplateHasBeenSet = false;
776
777 InstanceMarketOptionsRequest m_instanceMarketOptions;
778 bool m_instanceMarketOptionsHasBeenSet = false;
779
780 CreditSpecificationRequest m_creditSpecification;
781 bool m_creditSpecificationHasBeenSet = false;
782
783 CpuOptionsRequest m_cpuOptions;
784 bool m_cpuOptionsHasBeenSet = false;
785
786 CapacityReservationSpecification m_capacityReservationSpecification;
787 bool m_capacityReservationSpecificationHasBeenSet = false;
788
789 HibernationOptionsRequest m_hibernationOptions;
790 bool m_hibernationOptionsHasBeenSet = false;
791
792 Aws::Vector<LicenseConfigurationRequest> m_licenseSpecifications;
793 bool m_licenseSpecificationsHasBeenSet = false;
794
795 InstanceMetadataOptionsRequest m_metadataOptions;
796 bool m_metadataOptionsHasBeenSet = false;
797
798 EnclaveOptionsRequest m_enclaveOptions;
799 bool m_enclaveOptionsHasBeenSet = false;
800
801 PrivateDnsNameOptionsRequest m_privateDnsNameOptions;
802 bool m_privateDnsNameOptionsHasBeenSet = false;
803
804 InstanceMaintenanceOptionsRequest m_maintenanceOptions;
805 bool m_maintenanceOptionsHasBeenSet = false;
806
807 bool m_disableApiStop{false};
808 bool m_disableApiStopHasBeenSet = false;
809
810 bool m_enablePrimaryIpv6{false};
811 bool m_enablePrimaryIpv6HasBeenSet = false;
812
813 InstanceNetworkPerformanceOptionsRequest m_networkPerformanceOptions;
814 bool m_networkPerformanceOptionsHasBeenSet = false;
815
816 OperatorRequest m_operator;
817 bool m_operatorHasBeenSet = false;
818
819 bool m_dryRun{false};
820 bool m_dryRunHasBeenSet = false;
821
822 bool m_disableApiTermination{false};
823 bool m_disableApiTerminationHasBeenSet = false;
824
825 ShutdownBehavior m_instanceInitiatedShutdownBehavior{ShutdownBehavior::NOT_SET};
826 bool m_instanceInitiatedShutdownBehaviorHasBeenSet = false;
827
828 Aws::String m_privateIpAddress;
829 bool m_privateIpAddressHasBeenSet = false;
830
832 bool m_clientTokenHasBeenSet = true;
833
834 Aws::String m_additionalInfo;
835 bool m_additionalInfoHasBeenSet = false;
836
838 bool m_networkInterfacesHasBeenSet = false;
839
840 IamInstanceProfileSpecification m_iamInstanceProfile;
841 bool m_iamInstanceProfileHasBeenSet = false;
842
843 bool m_ebsOptimized{false};
844 bool m_ebsOptimizedHasBeenSet = false;
845 };
846
847} // namespace Model
848} // namespace EC2
849} // namespace Aws
const Aws::Vector< LicenseConfigurationRequest > & GetLicenseSpecifications() const
const Aws::String & GetKeyName() const
RunInstancesRequest & WithInstanceType(InstanceType value)
RunInstancesRequest & WithAdditionalInfo(AdditionalInfoT &&value)
const Aws::Vector< ElasticGpuSpecification > & GetElasticGpuSpecification() const
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
void SetElasticInferenceAccelerators(ElasticInferenceAcceleratorsT &&value)
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 & WithElasticGpuSpecification(ElasticGpuSpecificationT &&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 & AddElasticGpuSpecification(ElasticGpuSpecificationT &&value)
RunInstancesRequest & WithDisableApiTermination(bool value)
RunInstancesRequest & AddElasticInferenceAccelerators(ElasticInferenceAcceleratorsT &&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 & WithElasticInferenceAccelerators(ElasticInferenceAcceleratorsT &&value)
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)
const Aws::Vector< ElasticInferenceAccelerator > & GetElasticInferenceAccelerators() const
void SetElasticGpuSpecification(ElasticGpuSpecificationT &&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