7#include <aws/ec2/EC2_EXPORTS.h>
8#include <aws/core/utils/memory/stl/AWSStreamFwd.h>
9#include <aws/ec2/model/ArchitectureValues.h>
10#include <aws/core/utils/memory/stl/AWSVector.h>
11#include <aws/core/utils/memory/stl/AWSString.h>
12#include <aws/ec2/model/HypervisorType.h>
13#include <aws/ec2/model/IamInstanceProfile.h>
14#include <aws/ec2/model/InstanceLifecycleType.h>
15#include <aws/ec2/model/DeviceType.h>
16#include <aws/ec2/model/StateReason.h>
17#include <aws/ec2/model/VirtualizationType.h>
18#include <aws/ec2/model/CpuOptions.h>
19#include <aws/ec2/model/CapacityReservationSpecificationResponse.h>
20#include <aws/ec2/model/HibernationOptions.h>
21#include <aws/ec2/model/InstanceMetadataOptionsResponse.h>
22#include <aws/ec2/model/EnclaveOptions.h>
23#include <aws/ec2/model/BootModeValues.h>
24#include <aws/core/utils/DateTime.h>
25#include <aws/ec2/model/PrivateDnsNameOptionsResponse.h>
26#include <aws/ec2/model/InstanceMaintenanceOptions.h>
27#include <aws/ec2/model/InstanceBootModeValues.h>
28#include <aws/ec2/model/InstanceNetworkPerformanceOptions.h>
29#include <aws/ec2/model/OperatorResponse.h>
30#include <aws/ec2/model/InstanceState.h>
31#include <aws/ec2/model/InstanceType.h>
32#include <aws/ec2/model/Placement.h>
33#include <aws/ec2/model/PlatformValues.h>
34#include <aws/ec2/model/Monitoring.h>
35#include <aws/ec2/model/InstanceBlockDeviceMapping.h>
36#include <aws/ec2/model/ElasticGpuAssociation.h>
37#include <aws/ec2/model/ElasticInferenceAcceleratorAssociation.h>
38#include <aws/ec2/model/InstanceNetworkInterface.h>
39#include <aws/ec2/model/GroupIdentifier.h>
40#include <aws/ec2/model/Tag.h>
41#include <aws/ec2/model/LicenseConfiguration.h>
42#include <aws/ec2/model/ProductCode.h>
91 template<
typename BlockDeviceMappingsT = Aws::Vector<InstanceBlockDeviceMapping>>
92 void SetBlockDeviceMappings(BlockDeviceMappingsT&& value) { m_blockDeviceMappingsHasBeenSet =
true; m_blockDeviceMappings = std::forward<BlockDeviceMappingsT>(value); }
93 template<
typename BlockDeviceMappingsT = Aws::Vector<InstanceBlockDeviceMapping>>
95 template<
typename BlockDeviceMappingsT = InstanceBlockDeviceMapping>
96 Instance&
AddBlockDeviceMappings(BlockDeviceMappingsT&& value) { m_blockDeviceMappingsHasBeenSet =
true; m_blockDeviceMappings.emplace_back(std::forward<BlockDeviceMappingsT>(value));
return *
this; }
106 template<
typename ClientTokenT = Aws::String>
107 void SetClientToken(ClientTokenT&& value) { m_clientTokenHasBeenSet =
true; m_clientToken = std::forward<ClientTokenT>(value); }
108 template<
typename ClientTokenT = Aws::String>
122 inline void SetEbsOptimized(
bool value) { m_ebsOptimizedHasBeenSet =
true; m_ebsOptimized = value; }
132 inline void SetEnaSupport(
bool value) { m_enaSupportHasBeenSet =
true; m_enaSupport = value; }
153 template<
typename IamInstanceProfileT = IamInstanceProfile>
154 void SetIamInstanceProfile(IamInstanceProfileT&& value) { m_iamInstanceProfileHasBeenSet =
true; m_iamInstanceProfile = std::forward<IamInstanceProfileT>(value); }
155 template<
typename IamInstanceProfileT = IamInstanceProfile>
176 template<
typename ElasticGpuAssociationsT = Aws::Vector<ElasticGpuAssociation>>
177 void SetElasticGpuAssociations(ElasticGpuAssociationsT&& value) { m_elasticGpuAssociationsHasBeenSet =
true; m_elasticGpuAssociations = std::forward<ElasticGpuAssociationsT>(value); }
178 template<
typename ElasticGpuAssociationsT = Aws::Vector<ElasticGpuAssociation>>
180 template<
typename ElasticGpuAssociationsT = ElasticGpuAssociation>
181 Instance&
AddElasticGpuAssociations(ElasticGpuAssociationsT&& value) { m_elasticGpuAssociationsHasBeenSet =
true; m_elasticGpuAssociations.emplace_back(std::forward<ElasticGpuAssociationsT>(value));
return *
this; }
191 template<
typename ElasticInferenceAcceleratorAssociationsT = Aws::Vector<ElasticInferenceAcceleratorAssociation>>
192 void SetElasticInferenceAcceleratorAssociations(ElasticInferenceAcceleratorAssociationsT&& value) { m_elasticInferenceAcceleratorAssociationsHasBeenSet =
true; m_elasticInferenceAcceleratorAssociations = std::forward<ElasticInferenceAcceleratorAssociationsT>(value); }
193 template<
typename ElasticInferenceAcceleratorAssociationsT = Aws::Vector<ElasticInferenceAcceleratorAssociation>>
195 template<
typename ElasticInferenceAcceleratorAssociationsT = ElasticInferenceAcceleratorAssociation>
196 Instance&
AddElasticInferenceAcceleratorAssociations(ElasticInferenceAcceleratorAssociationsT&& value) { m_elasticInferenceAcceleratorAssociationsHasBeenSet =
true; m_elasticInferenceAcceleratorAssociations.emplace_back(std::forward<ElasticInferenceAcceleratorAssociationsT>(value));
return *
this; }
205 template<
typename NetworkInterfacesT = Aws::Vector<InstanceNetworkInterface>>
206 void SetNetworkInterfaces(NetworkInterfacesT&& value) { m_networkInterfacesHasBeenSet =
true; m_networkInterfaces = std::forward<NetworkInterfacesT>(value); }
207 template<
typename NetworkInterfacesT = Aws::Vector<InstanceNetworkInterface>>
209 template<
typename NetworkInterfacesT = InstanceNetworkInterface>
210 Instance&
AddNetworkInterfaces(NetworkInterfacesT&& value) { m_networkInterfacesHasBeenSet =
true; m_networkInterfaces.emplace_back(std::forward<NetworkInterfacesT>(value));
return *
this; }
219 template<
typename OutpostArnT = Aws::String>
220 void SetOutpostArn(OutpostArnT&& value) { m_outpostArnHasBeenSet =
true; m_outpostArn = std::forward<OutpostArnT>(value); }
221 template<
typename OutpostArnT = Aws::String>
232 template<
typename RootDeviceNameT = Aws::String>
233 void SetRootDeviceName(RootDeviceNameT&& value) { m_rootDeviceNameHasBeenSet =
true; m_rootDeviceName = std::forward<RootDeviceNameT>(value); }
234 template<
typename RootDeviceNameT = Aws::String>
255 template<
typename SecurityGroupsT = Aws::Vector<GroupIdentifier>>
256 void SetSecurityGroups(SecurityGroupsT&& value) { m_securityGroupsHasBeenSet =
true; m_securityGroups = std::forward<SecurityGroupsT>(value); }
257 template<
typename SecurityGroupsT = Aws::Vector<GroupIdentifier>>
259 template<
typename SecurityGroupsT = GroupIdentifier>
260 Instance&
AddSecurityGroups(SecurityGroupsT&& value) { m_securityGroupsHasBeenSet =
true; m_securityGroups.emplace_back(std::forward<SecurityGroupsT>(value));
return *
this; }
269 inline void SetSourceDestCheck(
bool value) { m_sourceDestCheckHasBeenSet =
true; m_sourceDestCheck = value; }
279 template<
typename SpotInstanceRequestIdT = Aws::String>
280 void SetSpotInstanceRequestId(SpotInstanceRequestIdT&& value) { m_spotInstanceRequestIdHasBeenSet =
true; m_spotInstanceRequestId = std::forward<SpotInstanceRequestIdT>(value); }
281 template<
typename SpotInstanceRequestIdT = Aws::String>
292 template<
typename SriovNetSupportT = Aws::String>
293 void SetSriovNetSupport(SriovNetSupportT&& value) { m_sriovNetSupportHasBeenSet =
true; m_sriovNetSupport = std::forward<SriovNetSupportT>(value); }
294 template<
typename SriovNetSupportT = Aws::String>
304 template<
typename StateReasonT = StateReason>
305 void SetStateReason(StateReasonT&& value) { m_stateReasonHasBeenSet =
true; m_stateReason = std::forward<StateReasonT>(value); }
306 template<
typename StateReasonT = StateReason>
316 template<
typename TagsT = Aws::Vector<Tag>>
317 void SetTags(TagsT&& value) { m_tagsHasBeenSet =
true; m_tags = std::forward<TagsT>(value); }
318 template<
typename TagsT = Aws::Vector<Tag>>
320 template<
typename TagsT = Tag>
321 Instance&
AddTags(TagsT&& value) { m_tagsHasBeenSet =
true; m_tags.emplace_back(std::forward<TagsT>(value));
return *
this; }
340 template<
typename CpuOptionsT = CpuOptions>
341 void SetCpuOptions(CpuOptionsT&& value) { m_cpuOptionsHasBeenSet =
true; m_cpuOptions = std::forward<CpuOptionsT>(value); }
342 template<
typename CpuOptionsT = CpuOptions>
354 template<
typename CapacityBlockIdT = Aws::String>
355 void SetCapacityBlockId(CapacityBlockIdT&& value) { m_capacityBlockIdHasBeenSet =
true; m_capacityBlockId = std::forward<CapacityBlockIdT>(value); }
356 template<
typename CapacityBlockIdT = Aws::String>
366 template<
typename CapacityReservationIdT = Aws::String>
367 void SetCapacityReservationId(CapacityReservationIdT&& value) { m_capacityReservationIdHasBeenSet =
true; m_capacityReservationId = std::forward<CapacityReservationIdT>(value); }
368 template<
typename CapacityReservationIdT = Aws::String>
378 template<
typename CapacityReservationSpecificationT = CapacityReservationSpecificationResponse>
379 void SetCapacityReservationSpecification(CapacityReservationSpecificationT&& value) { m_capacityReservationSpecificationHasBeenSet =
true; m_capacityReservationSpecification = std::forward<CapacityReservationSpecificationT>(value); }
380 template<
typename CapacityReservationSpecificationT = CapacityReservationSpecificationResponse>
390 template<
typename HibernationOptionsT = HibernationOptions>
391 void SetHibernationOptions(HibernationOptionsT&& value) { m_hibernationOptionsHasBeenSet =
true; m_hibernationOptions = std::forward<HibernationOptionsT>(value); }
392 template<
typename HibernationOptionsT = HibernationOptions>
402 template<
typename LicensesT = Aws::Vector<LicenseConfiguration>>
403 void SetLicenses(LicensesT&& value) { m_licensesHasBeenSet =
true; m_licenses = std::forward<LicensesT>(value); }
404 template<
typename LicensesT = Aws::Vector<LicenseConfiguration>>
406 template<
typename LicensesT = LicenseConfiguration>
407 Instance&
AddLicenses(LicensesT&& value) { m_licensesHasBeenSet =
true; m_licenses.emplace_back(std::forward<LicensesT>(value));
return *
this; }
416 template<
typename MetadataOptionsT = InstanceMetadataOptionsResponse>
417 void SetMetadataOptions(MetadataOptionsT&& value) { m_metadataOptionsHasBeenSet =
true; m_metadataOptions = std::forward<MetadataOptionsT>(value); }
418 template<
typename MetadataOptionsT = InstanceMetadataOptionsResponse>
429 template<
typename EnclaveOptionsT = EnclaveOptions>
430 void SetEnclaveOptions(EnclaveOptionsT&& value) { m_enclaveOptionsHasBeenSet =
true; m_enclaveOptions = std::forward<EnclaveOptionsT>(value); }
431 template<
typename EnclaveOptionsT = EnclaveOptions>
460 template<
typename PlatformDetailsT = Aws::String>
461 void SetPlatformDetails(PlatformDetailsT&& value) { m_platformDetailsHasBeenSet =
true; m_platformDetails = std::forward<PlatformDetailsT>(value); }
462 template<
typename PlatformDetailsT = Aws::String>
474 template<
typename UsageOperationT = Aws::String>
475 void SetUsageOperation(UsageOperationT&& value) { m_usageOperationHasBeenSet =
true; m_usageOperation = std::forward<UsageOperationT>(value); }
476 template<
typename UsageOperationT = Aws::String>
486 template<
typename UsageOperationUpdateTimeT = Aws::Utils::DateTime>
487 void SetUsageOperationUpdateTime(UsageOperationUpdateTimeT&& value) { m_usageOperationUpdateTimeHasBeenSet =
true; m_usageOperationUpdateTime = std::forward<UsageOperationUpdateTimeT>(value); }
488 template<
typename UsageOperationUpdateTimeT = Aws::Utils::DateTime>
498 template<
typename PrivateDnsNameOptionsT = PrivateDnsNameOptionsResponse>
499 void SetPrivateDnsNameOptions(PrivateDnsNameOptionsT&& value) { m_privateDnsNameOptionsHasBeenSet =
true; m_privateDnsNameOptions = std::forward<PrivateDnsNameOptionsT>(value); }
500 template<
typename PrivateDnsNameOptionsT = PrivateDnsNameOptionsResponse>
510 template<
typename Ipv6AddressT = Aws::String>
511 void SetIpv6Address(Ipv6AddressT&& value) { m_ipv6AddressHasBeenSet =
true; m_ipv6Address = std::forward<Ipv6AddressT>(value); }
512 template<
typename Ipv6AddressT = Aws::String>
525 template<
typename TpmSupportT = Aws::String>
526 void SetTpmSupport(TpmSupportT&& value) { m_tpmSupportHasBeenSet =
true; m_tpmSupport = std::forward<TpmSupportT>(value); }
527 template<
typename TpmSupportT = Aws::String>
538 template<
typename Ma
intenanceOptionsT = InstanceMa
intenanceOptions>
539 void SetMaintenanceOptions(MaintenanceOptionsT&& value) { m_maintenanceOptionsHasBeenSet =
true; m_maintenanceOptions = std::forward<MaintenanceOptionsT>(value); }
540 template<
typename Ma
intenanceOptionsT = InstanceMa
intenanceOptions>
563 template<
typename NetworkPerformanceOptionsT = InstanceNetworkPerformanceOptions>
564 void SetNetworkPerformanceOptions(NetworkPerformanceOptionsT&& value) { m_networkPerformanceOptionsHasBeenSet =
true; m_networkPerformanceOptions = std::forward<NetworkPerformanceOptionsT>(value); }
565 template<
typename NetworkPerformanceOptionsT = InstanceNetworkPerformanceOptions>
575 template<
typename OperatorT = OperatorResponse>
576 void SetOperator(OperatorT&& value) { m_operatorHasBeenSet =
true; m_operator = std::forward<OperatorT>(value); }
577 template<
typename OperatorT = OperatorResponse>
587 template<
typename InstanceIdT = Aws::String>
588 void SetInstanceId(InstanceIdT&& value) { m_instanceIdHasBeenSet =
true; m_instanceId = std::forward<InstanceIdT>(value); }
589 template<
typename InstanceIdT = Aws::String>
599 template<
typename ImageIdT = Aws::String>
600 void SetImageId(ImageIdT&& value) { m_imageIdHasBeenSet =
true; m_imageId = std::forward<ImageIdT>(value); }
601 template<
typename ImageIdT = Aws::String>
611 template<
typename StateT = InstanceState>
612 void SetState(StateT&& value) { m_stateHasBeenSet =
true; m_state = std::forward<StateT>(value); }
613 template<
typename StateT = InstanceState>
629 template<
typename PrivateDnsNameT = Aws::String>
630 void SetPrivateDnsName(PrivateDnsNameT&& value) { m_privateDnsNameHasBeenSet =
true; m_privateDnsName = std::forward<PrivateDnsNameT>(value); }
631 template<
typename PrivateDnsNameT = Aws::String>
646 template<
typename PublicDnsNameT = Aws::String>
647 void SetPublicDnsName(PublicDnsNameT&& value) { m_publicDnsNameHasBeenSet =
true; m_publicDnsName = std::forward<PublicDnsNameT>(value); }
648 template<
typename PublicDnsNameT = Aws::String>
659 template<
typename StateTransitionReasonT = Aws::String>
660 void SetStateTransitionReason(StateTransitionReasonT&& value) { m_stateTransitionReasonHasBeenSet =
true; m_stateTransitionReason = std::forward<StateTransitionReasonT>(value); }
661 template<
typename StateTransitionReasonT = Aws::String>
672 template<
typename KeyNameT = Aws::String>
673 void SetKeyName(KeyNameT&& value) { m_keyNameHasBeenSet =
true; m_keyName = std::forward<KeyNameT>(value); }
674 template<
typename KeyNameT = Aws::String>
685 inline void SetAmiLaunchIndex(
int value) { m_amiLaunchIndexHasBeenSet =
true; m_amiLaunchIndex = value; }
695 template<
typename ProductCodesT = Aws::Vector<ProductCode>>
696 void SetProductCodes(ProductCodesT&& value) { m_productCodesHasBeenSet =
true; m_productCodes = std::forward<ProductCodesT>(value); }
697 template<
typename ProductCodesT = Aws::Vector<ProductCode>>
699 template<
typename ProductCodesT = ProductCode>
700 Instance&
AddProductCodes(ProductCodesT&& value) { m_productCodesHasBeenSet =
true; m_productCodes.emplace_back(std::forward<ProductCodesT>(value));
return *
this; }
721 template<
typename LaunchTimeT = Aws::Utils::DateTime>
722 void SetLaunchTime(LaunchTimeT&& value) { m_launchTimeHasBeenSet =
true; m_launchTime = std::forward<LaunchTimeT>(value); }
723 template<
typename LaunchTimeT = Aws::Utils::DateTime>
733 template<
typename PlacementT = Placement>
734 void SetPlacement(PlacementT&& value) { m_placementHasBeenSet =
true; m_placement = std::forward<PlacementT>(value); }
735 template<
typename PlacementT = Placement>
745 template<
typename KernelIdT = Aws::String>
746 void SetKernelId(KernelIdT&& value) { m_kernelIdHasBeenSet =
true; m_kernelId = std::forward<KernelIdT>(value); }
747 template<
typename KernelIdT = Aws::String>
757 template<
typename RamdiskIdT = Aws::String>
758 void SetRamdiskId(RamdiskIdT&& value) { m_ramdiskIdHasBeenSet =
true; m_ramdiskId = std::forward<RamdiskIdT>(value); }
759 template<
typename RamdiskIdT = Aws::String>
780 template<
typename MonitoringT = Monitoring>
781 void SetMonitoring(MonitoringT&& value) { m_monitoringHasBeenSet =
true; m_monitoring = std::forward<MonitoringT>(value); }
782 template<
typename MonitoringT = Monitoring>
792 template<
typename SubnetIdT = Aws::String>
793 void SetSubnetId(SubnetIdT&& value) { m_subnetIdHasBeenSet =
true; m_subnetId = std::forward<SubnetIdT>(value); }
794 template<
typename SubnetIdT = Aws::String>
804 template<
typename VpcIdT = Aws::String>
805 void SetVpcId(VpcIdT&& value) { m_vpcIdHasBeenSet =
true; m_vpcId = std::forward<VpcIdT>(value); }
806 template<
typename VpcIdT = Aws::String>
816 template<
typename PrivateIpAddressT = Aws::String>
817 void SetPrivateIpAddress(PrivateIpAddressT&& value) { m_privateIpAddressHasBeenSet =
true; m_privateIpAddress = std::forward<PrivateIpAddressT>(value); }
818 template<
typename PrivateIpAddressT = Aws::String>
830 template<
typename PublicIpAddressT = Aws::String>
831 void SetPublicIpAddress(PublicIpAddressT&& value) { m_publicIpAddressHasBeenSet =
true; m_publicIpAddress = std::forward<PublicIpAddressT>(value); }
832 template<
typename PublicIpAddressT = Aws::String>
838 bool m_architectureHasBeenSet =
false;
841 bool m_blockDeviceMappingsHasBeenSet =
false;
844 bool m_clientTokenHasBeenSet =
false;
846 bool m_ebsOptimized{
false};
847 bool m_ebsOptimizedHasBeenSet =
false;
849 bool m_enaSupport{
false};
850 bool m_enaSupportHasBeenSet =
false;
853 bool m_hypervisorHasBeenSet =
false;
855 IamInstanceProfile m_iamInstanceProfile;
856 bool m_iamInstanceProfileHasBeenSet =
false;
859 bool m_instanceLifecycleHasBeenSet =
false;
862 bool m_elasticGpuAssociationsHasBeenSet =
false;
865 bool m_elasticInferenceAcceleratorAssociationsHasBeenSet =
false;
868 bool m_networkInterfacesHasBeenSet =
false;
871 bool m_outpostArnHasBeenSet =
false;
874 bool m_rootDeviceNameHasBeenSet =
false;
877 bool m_rootDeviceTypeHasBeenSet =
false;
880 bool m_securityGroupsHasBeenSet =
false;
882 bool m_sourceDestCheck{
false};
883 bool m_sourceDestCheckHasBeenSet =
false;
886 bool m_spotInstanceRequestIdHasBeenSet =
false;
889 bool m_sriovNetSupportHasBeenSet =
false;
891 StateReason m_stateReason;
892 bool m_stateReasonHasBeenSet =
false;
895 bool m_tagsHasBeenSet =
false;
898 bool m_virtualizationTypeHasBeenSet =
false;
900 CpuOptions m_cpuOptions;
901 bool m_cpuOptionsHasBeenSet =
false;
904 bool m_capacityBlockIdHasBeenSet =
false;
907 bool m_capacityReservationIdHasBeenSet =
false;
909 CapacityReservationSpecificationResponse m_capacityReservationSpecification;
910 bool m_capacityReservationSpecificationHasBeenSet =
false;
912 HibernationOptions m_hibernationOptions;
913 bool m_hibernationOptionsHasBeenSet =
false;
916 bool m_licensesHasBeenSet =
false;
918 InstanceMetadataOptionsResponse m_metadataOptions;
919 bool m_metadataOptionsHasBeenSet =
false;
921 EnclaveOptions m_enclaveOptions;
922 bool m_enclaveOptionsHasBeenSet =
false;
925 bool m_bootModeHasBeenSet =
false;
928 bool m_platformDetailsHasBeenSet =
false;
931 bool m_usageOperationHasBeenSet =
false;
934 bool m_usageOperationUpdateTimeHasBeenSet =
false;
936 PrivateDnsNameOptionsResponse m_privateDnsNameOptions;
937 bool m_privateDnsNameOptionsHasBeenSet =
false;
940 bool m_ipv6AddressHasBeenSet =
false;
943 bool m_tpmSupportHasBeenSet =
false;
945 InstanceMaintenanceOptions m_maintenanceOptions;
946 bool m_maintenanceOptionsHasBeenSet =
false;
949 bool m_currentInstanceBootModeHasBeenSet =
false;
951 InstanceNetworkPerformanceOptions m_networkPerformanceOptions;
952 bool m_networkPerformanceOptionsHasBeenSet =
false;
954 OperatorResponse m_operator;
955 bool m_operatorHasBeenSet =
false;
958 bool m_instanceIdHasBeenSet =
false;
961 bool m_imageIdHasBeenSet =
false;
963 InstanceState m_state;
964 bool m_stateHasBeenSet =
false;
967 bool m_privateDnsNameHasBeenSet =
false;
970 bool m_publicDnsNameHasBeenSet =
false;
973 bool m_stateTransitionReasonHasBeenSet =
false;
976 bool m_keyNameHasBeenSet =
false;
978 int m_amiLaunchIndex{0};
979 bool m_amiLaunchIndexHasBeenSet =
false;
982 bool m_productCodesHasBeenSet =
false;
985 bool m_instanceTypeHasBeenSet =
false;
988 bool m_launchTimeHasBeenSet =
false;
990 Placement m_placement;
991 bool m_placementHasBeenSet =
false;
994 bool m_kernelIdHasBeenSet =
false;
997 bool m_ramdiskIdHasBeenSet =
false;
1000 bool m_platformHasBeenSet =
false;
1002 Monitoring m_monitoring;
1003 bool m_monitoringHasBeenSet =
false;
1006 bool m_subnetIdHasBeenSet =
false;
1009 bool m_vpcIdHasBeenSet =
false;
1012 bool m_privateIpAddressHasBeenSet =
false;
1015 bool m_publicIpAddressHasBeenSet =
false;
void SetStateTransitionReason(StateTransitionReasonT &&value)
const Aws::Vector< InstanceBlockDeviceMapping > & GetBlockDeviceMappings() const
Instance & WithVirtualizationType(VirtualizationType value)
bool StateTransitionReasonHasBeenSet() const
void SetProductCodes(ProductCodesT &&value)
const Aws::String & GetCapacityBlockId() const
ArchitectureValues GetArchitecture() const
Instance & WithTags(TagsT &&value)
Instance & WithPrivateDnsName(PrivateDnsNameT &&value)
bool RootDeviceNameHasBeenSet() const
Instance & WithClientToken(ClientTokenT &&value)
bool PrivateDnsNameOptionsHasBeenSet() const
const InstanceState & GetState() const
void SetLicenses(LicensesT &&value)
void SetState(StateT &&value)
void SetPlatformDetails(PlatformDetailsT &&value)
Instance & WithProductCodes(ProductCodesT &&value)
Instance & WithLaunchTime(LaunchTimeT &&value)
Instance & WithCapacityBlockId(CapacityBlockIdT &&value)
bool ElasticInferenceAcceleratorAssociationsHasBeenSet() const
Instance & WithMetadataOptions(MetadataOptionsT &&value)
Instance & AddTags(TagsT &&value)
bool BlockDeviceMappingsHasBeenSet() const
Instance & WithVpcId(VpcIdT &&value)
void SetClientToken(ClientTokenT &&value)
bool GetEnaSupport() const
const Aws::String & GetKeyName() const
void SetOperator(OperatorT &&value)
const Aws::String & GetIpv6Address() const
void SetBootMode(BootModeValues value)
bool LicensesHasBeenSet() const
Instance & WithLicenses(LicensesT &&value)
Instance & WithCpuOptions(CpuOptionsT &&value)
HypervisorType GetHypervisor() const
bool CapacityBlockIdHasBeenSet() const
bool Ipv6AddressHasBeenSet() const
bool HibernationOptionsHasBeenSet() const
VirtualizationType GetVirtualizationType() const
AWS_EC2_API Instance()=default
Instance & AddElasticGpuAssociations(ElasticGpuAssociationsT &&value)
bool KeyNameHasBeenSet() const
bool PlatformDetailsHasBeenSet() const
const Aws::Vector< LicenseConfiguration > & GetLicenses() const
void SetEnaSupport(bool value)
Instance & AddProductCodes(ProductCodesT &&value)
const Aws::Vector< ProductCode > & GetProductCodes() const
const Aws::String & GetVpcId() const
PlatformValues GetPlatform() const
Instance & WithSourceDestCheck(bool value)
bool CurrentInstanceBootModeHasBeenSet() const
const Aws::Vector< ElasticGpuAssociation > & GetElasticGpuAssociations() const
void SetInstanceType(InstanceType value)
Instance & WithRamdiskId(RamdiskIdT &&value)
void SetElasticInferenceAcceleratorAssociations(ElasticInferenceAcceleratorAssociationsT &&value)
const OperatorResponse & GetOperator() const
Instance & WithArchitecture(ArchitectureValues value)
Instance & WithImageId(ImageIdT &&value)
Instance & WithPrivateDnsNameOptions(PrivateDnsNameOptionsT &&value)
bool EnaSupportHasBeenSet() const
void SetUsageOperationUpdateTime(UsageOperationUpdateTimeT &&value)
Instance & WithHibernationOptions(HibernationOptionsT &&value)
const Aws::String & GetCapacityReservationId() const
Instance & WithStateTransitionReason(StateTransitionReasonT &&value)
const StateReason & GetStateReason() const
const Aws::String & GetPrivateDnsName() const
bool MonitoringHasBeenSet() const
Instance & WithSubnetId(SubnetIdT &&value)
bool AmiLaunchIndexHasBeenSet() const
void SetKeyName(KeyNameT &&value)
Instance & WithPublicDnsName(PublicDnsNameT &&value)
Instance & WithCapacityReservationId(CapacityReservationIdT &&value)
bool InstanceLifecycleHasBeenSet() const
void SetRamdiskId(RamdiskIdT &&value)
bool PublicIpAddressHasBeenSet() const
AWS_EC2_API void OutputToStream(Aws::OStream &oStream, const char *location) const
const Aws::String & GetPublicDnsName() const
void SetMetadataOptions(MetadataOptionsT &&value)
const Aws::Utils::DateTime & GetUsageOperationUpdateTime() const
bool NetworkPerformanceOptionsHasBeenSet() const
Instance & WithCurrentInstanceBootMode(InstanceBootModeValues value)
const Aws::String & GetOutpostArn() const
void SetPrivateDnsName(PrivateDnsNameT &&value)
void SetOutpostArn(OutpostArnT &&value)
Instance & WithMonitoring(MonitoringT &&value)
const Aws::String & GetPublicIpAddress() const
const Placement & GetPlacement() const
void SetPrivateDnsNameOptions(PrivateDnsNameOptionsT &&value)
void SetImageId(ImageIdT &&value)
Instance & WithBlockDeviceMappings(BlockDeviceMappingsT &&value)
Instance & WithHypervisor(HypervisorType value)
Instance & AddSecurityGroups(SecurityGroupsT &&value)
bool SubnetIdHasBeenSet() const
const Aws::String & GetKernelId() const
Instance & AddElasticInferenceAcceleratorAssociations(ElasticInferenceAcceleratorAssociationsT &&value)
Instance & WithBootMode(BootModeValues value)
InstanceType GetInstanceType() const
void SetIamInstanceProfile(IamInstanceProfileT &&value)
Instance & WithRootDeviceName(RootDeviceNameT &&value)
void SetEnclaveOptions(EnclaveOptionsT &&value)
bool LaunchTimeHasBeenSet() const
bool CapacityReservationSpecificationHasBeenSet() const
void SetRootDeviceName(RootDeviceNameT &&value)
Instance & WithElasticGpuAssociations(ElasticGpuAssociationsT &&value)
bool PublicDnsNameHasBeenSet() const
bool TagsHasBeenSet() const
const Aws::Utils::DateTime & GetLaunchTime() const
bool SriovNetSupportHasBeenSet() const
bool RootDeviceTypeHasBeenSet() const
const Aws::String & GetSriovNetSupport() const
const Aws::String & GetRootDeviceName() const
Instance & WithStateReason(StateReasonT &&value)
void SetSecurityGroups(SecurityGroupsT &&value)
const Aws::String & GetImageId() const
bool PrivateIpAddressHasBeenSet() const
Instance & WithKernelId(KernelIdT &&value)
void SetInstanceLifecycle(InstanceLifecycleType value)
Instance & WithOutpostArn(OutpostArnT &&value)
Instance & WithEnaSupport(bool value)
Instance & WithSecurityGroups(SecurityGroupsT &&value)
int GetAmiLaunchIndex() const
const InstanceMaintenanceOptions & GetMaintenanceOptions() const
Instance & WithOperator(OperatorT &&value)
void SetTpmSupport(TpmSupportT &&value)
bool InstanceIdHasBeenSet() const
void SetInstanceId(InstanceIdT &&value)
const Aws::Vector< Tag > & GetTags() const
bool EbsOptimizedHasBeenSet() const
bool GetEbsOptimized() const
void SetRootDeviceType(DeviceType value)
bool SpotInstanceRequestIdHasBeenSet() const
Instance & WithInstanceId(InstanceIdT &&value)
Instance & WithUsageOperation(UsageOperationT &&value)
bool TpmSupportHasBeenSet() const
bool CpuOptionsHasBeenSet() const
bool SourceDestCheckHasBeenSet() const
bool ClientTokenHasBeenSet() const
Instance & WithInstanceLifecycle(InstanceLifecycleType value)
const Aws::String & GetRamdiskId() const
bool VpcIdHasBeenSet() const
Instance & WithNetworkPerformanceOptions(NetworkPerformanceOptionsT &&value)
void SetCapacityReservationId(CapacityReservationIdT &&value)
void SetPlatform(PlatformValues value)
void SetVpcId(VpcIdT &&value)
void SetPublicIpAddress(PublicIpAddressT &&value)
const Aws::String & GetPrivateIpAddress() const
bool OperatorHasBeenSet() const
bool PrivateDnsNameHasBeenSet() const
bool StateReasonHasBeenSet() const
void SetLaunchTime(LaunchTimeT &&value)
Instance & WithInstanceType(InstanceType value)
void SetVirtualizationType(VirtualizationType value)
const EnclaveOptions & GetEnclaveOptions() const
void SetNetworkPerformanceOptions(NetworkPerformanceOptionsT &&value)
bool EnclaveOptionsHasBeenSet() const
AWS_EC2_API Instance & operator=(const Aws::Utils::Xml::XmlNode &xmlNode)
const HibernationOptions & GetHibernationOptions() const
const Aws::String & GetSubnetId() const
Instance & AddNetworkInterfaces(NetworkInterfacesT &&value)
const IamInstanceProfile & GetIamInstanceProfile() const
void SetSriovNetSupport(SriovNetSupportT &&value)
bool ImageIdHasBeenSet() const
void SetSpotInstanceRequestId(SpotInstanceRequestIdT &&value)
const PrivateDnsNameOptionsResponse & GetPrivateDnsNameOptions() const
void SetPlacement(PlacementT &&value)
void SetTags(TagsT &&value)
bool MaintenanceOptionsHasBeenSet() const
void SetHibernationOptions(HibernationOptionsT &&value)
bool ArchitectureHasBeenSet() const
const Aws::Vector< GroupIdentifier > & GetSecurityGroups() const
void SetEbsOptimized(bool value)
Instance & WithPlacement(PlacementT &&value)
Instance & AddBlockDeviceMappings(BlockDeviceMappingsT &&value)
const InstanceNetworkPerformanceOptions & GetNetworkPerformanceOptions() const
void SetElasticGpuAssociations(ElasticGpuAssociationsT &&value)
const Aws::Vector< InstanceNetworkInterface > & GetNetworkInterfaces() const
bool VirtualizationTypeHasBeenSet() const
Instance & WithIpv6Address(Ipv6AddressT &&value)
bool BootModeHasBeenSet() const
const CpuOptions & GetCpuOptions() const
const Aws::String & GetPlatformDetails() const
bool ElasticGpuAssociationsHasBeenSet() const
void SetCapacityReservationSpecification(CapacityReservationSpecificationT &&value)
Instance & WithAmiLaunchIndex(int value)
Instance & WithState(StateT &&value)
Instance & WithSriovNetSupport(SriovNetSupportT &&value)
Instance & WithKeyName(KeyNameT &&value)
bool MetadataOptionsHasBeenSet() const
const InstanceMetadataOptionsResponse & GetMetadataOptions() const
void SetNetworkInterfaces(NetworkInterfacesT &&value)
const Aws::String & GetUsageOperation() const
Instance & WithCapacityReservationSpecification(CapacityReservationSpecificationT &&value)
void SetSubnetId(SubnetIdT &&value)
void SetKernelId(KernelIdT &&value)
bool StateHasBeenSet() const
Instance & WithElasticInferenceAcceleratorAssociations(ElasticInferenceAcceleratorAssociationsT &&value)
bool UsageOperationUpdateTimeHasBeenSet() const
bool InstanceTypeHasBeenSet() const
void SetPrivateIpAddress(PrivateIpAddressT &&value)
bool PlacementHasBeenSet() const
DeviceType GetRootDeviceType() const
bool HypervisorHasBeenSet() const
void SetCpuOptions(CpuOptionsT &&value)
void SetSourceDestCheck(bool value)
Instance & WithPlatformDetails(PlatformDetailsT &&value)
bool KernelIdHasBeenSet() const
Instance & WithUsageOperationUpdateTime(UsageOperationUpdateTimeT &&value)
const Aws::String & GetStateTransitionReason() const
bool RamdiskIdHasBeenSet() const
void SetStateReason(StateReasonT &&value)
bool SecurityGroupsHasBeenSet() const
InstanceBootModeValues GetCurrentInstanceBootMode() const
bool ProductCodesHasBeenSet() const
bool OutpostArnHasBeenSet() const
void SetUsageOperation(UsageOperationT &&value)
bool UsageOperationHasBeenSet() const
const Monitoring & GetMonitoring() const
const Aws::Vector< ElasticInferenceAcceleratorAssociation > & GetElasticInferenceAcceleratorAssociations() const
const Aws::String & GetSpotInstanceRequestId() const
void SetAmiLaunchIndex(int value)
bool PlatformHasBeenSet() const
bool GetSourceDestCheck() const
InstanceLifecycleType GetInstanceLifecycle() const
void SetCapacityBlockId(CapacityBlockIdT &&value)
const Aws::String & GetInstanceId() const
void SetIpv6Address(Ipv6AddressT &&value)
Instance & WithEbsOptimized(bool value)
Instance & WithMaintenanceOptions(MaintenanceOptionsT &&value)
Instance & WithRootDeviceType(DeviceType value)
void SetMaintenanceOptions(MaintenanceOptionsT &&value)
void SetArchitecture(ArchitectureValues value)
Instance & AddLicenses(LicensesT &&value)
Instance & WithIamInstanceProfile(IamInstanceProfileT &&value)
Instance & WithNetworkInterfaces(NetworkInterfacesT &&value)
bool IamInstanceProfileHasBeenSet() const
bool NetworkInterfacesHasBeenSet() const
const Aws::String & GetClientToken() const
BootModeValues GetBootMode() const
Instance & WithPublicIpAddress(PublicIpAddressT &&value)
Instance & WithSpotInstanceRequestId(SpotInstanceRequestIdT &&value)
Instance & WithPlatform(PlatformValues value)
Instance & WithPrivateIpAddress(PrivateIpAddressT &&value)
AWS_EC2_API void OutputToStream(Aws::OStream &ostream, const char *location, unsigned index, const char *locationValue) const
void SetPublicDnsName(PublicDnsNameT &&value)
bool CapacityReservationIdHasBeenSet() const
void SetHypervisor(HypervisorType value)
AWS_EC2_API Instance(const Aws::Utils::Xml::XmlNode &xmlNode)
Instance & WithEnclaveOptions(EnclaveOptionsT &&value)
Instance & WithTpmSupport(TpmSupportT &&value)
void SetBlockDeviceMappings(BlockDeviceMappingsT &&value)
void SetCurrentInstanceBootMode(InstanceBootModeValues value)
const CapacityReservationSpecificationResponse & GetCapacityReservationSpecification() const
const Aws::String & GetTpmSupport() const
void SetMonitoring(MonitoringT &&value)
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
std::vector< T, Aws::Allocator< T > > Vector
std::basic_ostream< char, std::char_traits< char > > OStream