7#include <aws/ec2/EC2_EXPORTS.h>
8#include <aws/core/utils/memory/stl/AWSStreamFwd.h>
9#include <aws/core/utils/memory/stl/AWSString.h>
10#include <aws/ec2/model/LaunchTemplateIamInstanceProfileSpecificationRequest.h>
11#include <aws/core/utils/memory/stl/AWSVector.h>
12#include <aws/ec2/model/InstanceType.h>
13#include <aws/ec2/model/LaunchTemplatesMonitoringRequest.h>
14#include <aws/ec2/model/LaunchTemplatePlacementRequest.h>
15#include <aws/ec2/model/ShutdownBehavior.h>
16#include <aws/ec2/model/LaunchTemplateInstanceMarketOptionsRequest.h>
17#include <aws/ec2/model/CreditSpecificationRequest.h>
18#include <aws/ec2/model/LaunchTemplateCpuOptionsRequest.h>
19#include <aws/ec2/model/LaunchTemplateCapacityReservationSpecificationRequest.h>
20#include <aws/ec2/model/LaunchTemplateHibernationOptionsRequest.h>
21#include <aws/ec2/model/LaunchTemplateInstanceMetadataOptionsRequest.h>
22#include <aws/ec2/model/LaunchTemplateEnclaveOptionsRequest.h>
23#include <aws/ec2/model/InstanceRequirementsRequest.h>
24#include <aws/ec2/model/LaunchTemplatePrivateDnsNameOptionsRequest.h>
25#include <aws/ec2/model/LaunchTemplateInstanceMaintenanceOptionsRequest.h>
26#include <aws/ec2/model/LaunchTemplateBlockDeviceMappingRequest.h>
27#include <aws/ec2/model/LaunchTemplateInstanceNetworkInterfaceSpecificationRequest.h>
28#include <aws/ec2/model/LaunchTemplateTagSpecificationRequest.h>
29#include <aws/ec2/model/ElasticGpuSpecification.h>
30#include <aws/ec2/model/LaunchTemplateElasticInferenceAccelerator.h>
31#include <aws/ec2/model/LaunchTemplateLicenseConfigurationRequest.h>
77 inline void SetKernelId(
const char* value) { m_kernelIdHasBeenSet =
true; m_kernelId.assign(value); }
93 inline void SetEbsOptimized(
bool value) { m_ebsOptimizedHasBeenSet =
true; m_ebsOptimized = value; }
165 inline void SetImageId(
const char* value) { m_imageIdHasBeenSet =
true; m_imageId.assign(value); }
201 inline void SetKeyName(
const char* value) { m_keyNameHasBeenSet =
true; m_keyName.assign(value); }
242 inline void SetRamDiskId(
const char* value) { m_ramDiskIdHasBeenSet =
true; m_ramDiskId.assign(value); }
295 inline void SetUserData(
const char* value) { m_userDataHasBeenSet =
true; m_userData.assign(value); }
583 inline void SetDisableApiStop(
bool value) { m_disableApiStopHasBeenSet =
true; m_disableApiStop = value; }
589 bool m_kernelIdHasBeenSet =
false;
592 bool m_ebsOptimizedHasBeenSet =
false;
595 bool m_iamInstanceProfileHasBeenSet =
false;
598 bool m_blockDeviceMappingsHasBeenSet =
false;
601 bool m_networkInterfacesHasBeenSet =
false;
604 bool m_imageIdHasBeenSet =
false;
607 bool m_instanceTypeHasBeenSet =
false;
610 bool m_keyNameHasBeenSet =
false;
613 bool m_monitoringHasBeenSet =
false;
616 bool m_placementHasBeenSet =
false;
619 bool m_ramDiskIdHasBeenSet =
false;
621 bool m_disableApiTermination;
622 bool m_disableApiTerminationHasBeenSet =
false;
625 bool m_instanceInitiatedShutdownBehaviorHasBeenSet =
false;
628 bool m_userDataHasBeenSet =
false;
631 bool m_tagSpecificationsHasBeenSet =
false;
634 bool m_elasticGpuSpecificationsHasBeenSet =
false;
637 bool m_elasticInferenceAcceleratorsHasBeenSet =
false;
640 bool m_securityGroupIdsHasBeenSet =
false;
643 bool m_securityGroupsHasBeenSet =
false;
646 bool m_instanceMarketOptionsHasBeenSet =
false;
649 bool m_creditSpecificationHasBeenSet =
false;
652 bool m_cpuOptionsHasBeenSet =
false;
655 bool m_capacityReservationSpecificationHasBeenSet =
false;
658 bool m_licenseSpecificationsHasBeenSet =
false;
661 bool m_hibernationOptionsHasBeenSet =
false;
664 bool m_metadataOptionsHasBeenSet =
false;
667 bool m_enclaveOptionsHasBeenSet =
false;
670 bool m_instanceRequirementsHasBeenSet =
false;
673 bool m_privateDnsNameOptionsHasBeenSet =
false;
676 bool m_maintenanceOptionsHasBeenSet =
false;
678 bool m_disableApiStop;
679 bool m_disableApiStopHasBeenSet =
false;
RequestLaunchTemplateData & WithHibernationOptions(LaunchTemplateHibernationOptionsRequest &&value)
RequestLaunchTemplateData & AddTagSpecifications(LaunchTemplateTagSpecificationRequest &&value)
void SetMetadataOptions(const LaunchTemplateInstanceMetadataOptionsRequest &value)
void SetKeyName(const char *value)
bool HibernationOptionsHasBeenSet() const
void SetEnclaveOptions(const LaunchTemplateEnclaveOptionsRequest &value)
void SetInstanceMarketOptions(const LaunchTemplateInstanceMarketOptionsRequest &value)
void SetInstanceRequirements(InstanceRequirementsRequest &&value)
const Aws::Vector< LaunchTemplateElasticInferenceAccelerator > & GetElasticInferenceAccelerators() const
const ShutdownBehavior & GetInstanceInitiatedShutdownBehavior() const
RequestLaunchTemplateData & AddElasticInferenceAccelerators(const LaunchTemplateElasticInferenceAccelerator &value)
RequestLaunchTemplateData & AddNetworkInterfaces(LaunchTemplateInstanceNetworkInterfaceSpecificationRequest &&value)
RequestLaunchTemplateData & WithKeyName(const Aws::String &value)
bool InstanceRequirementsHasBeenSet() const
const LaunchTemplateInstanceMarketOptionsRequest & GetInstanceMarketOptions() const
void SetSecurityGroupIds(Aws::Vector< Aws::String > &&value)
bool EbsOptimizedHasBeenSet() const
AWS_EC2_API void OutputToStream(Aws::OStream &oStream, const char *location) const
RequestLaunchTemplateData & WithRamDiskId(Aws::String &&value)
const Aws::String & GetKeyName() const
RequestLaunchTemplateData & WithTagSpecifications(const Aws::Vector< LaunchTemplateTagSpecificationRequest > &value)
RequestLaunchTemplateData & WithInstanceMarketOptions(LaunchTemplateInstanceMarketOptionsRequest &&value)
RequestLaunchTemplateData & WithInstanceRequirements(InstanceRequirementsRequest &&value)
RequestLaunchTemplateData & WithBlockDeviceMappings(Aws::Vector< LaunchTemplateBlockDeviceMappingRequest > &&value)
RequestLaunchTemplateData & WithEnclaveOptions(LaunchTemplateEnclaveOptionsRequest &&value)
RequestLaunchTemplateData & WithInstanceRequirements(const InstanceRequirementsRequest &value)
const Aws::Vector< LaunchTemplateLicenseConfigurationRequest > & GetLicenseSpecifications() const
bool SecurityGroupIdsHasBeenSet() const
void SetSecurityGroups(Aws::Vector< Aws::String > &&value)
RequestLaunchTemplateData & AddTagSpecifications(const LaunchTemplateTagSpecificationRequest &value)
AWS_EC2_API void OutputToStream(Aws::OStream &ostream, const char *location, unsigned index, const char *locationValue) const
RequestLaunchTemplateData & WithMaintenanceOptions(LaunchTemplateInstanceMaintenanceOptionsRequest &&value)
const LaunchTemplatePlacementRequest & GetPlacement() const
void SetSecurityGroups(const Aws::Vector< Aws::String > &value)
RequestLaunchTemplateData & AddSecurityGroupIds(const Aws::String &value)
RequestLaunchTemplateData & WithMaintenanceOptions(const LaunchTemplateInstanceMaintenanceOptionsRequest &value)
RequestLaunchTemplateData & WithMonitoring(LaunchTemplatesMonitoringRequest &&value)
void SetRamDiskId(const Aws::String &value)
bool PlacementHasBeenSet() const
RequestLaunchTemplateData & WithKernelId(Aws::String &&value)
const Aws::Vector< Aws::String > & GetSecurityGroups() const
const LaunchTemplatesMonitoringRequest & GetMonitoring() const
RequestLaunchTemplateData & AddBlockDeviceMappings(LaunchTemplateBlockDeviceMappingRequest &&value)
void SetKernelId(Aws::String &&value)
RequestLaunchTemplateData & AddElasticGpuSpecifications(const ElasticGpuSpecification &value)
RequestLaunchTemplateData & WithRamDiskId(const char *value)
RequestLaunchTemplateData & AddSecurityGroupIds(Aws::String &&value)
bool GetEbsOptimized() const
bool RamDiskIdHasBeenSet() const
RequestLaunchTemplateData & AddElasticGpuSpecifications(ElasticGpuSpecification &&value)
RequestLaunchTemplateData & WithCapacityReservationSpecification(LaunchTemplateCapacityReservationSpecificationRequest &&value)
bool MaintenanceOptionsHasBeenSet() const
RequestLaunchTemplateData & WithHibernationOptions(const LaunchTemplateHibernationOptionsRequest &value)
bool KernelIdHasBeenSet() const
bool CpuOptionsHasBeenSet() const
RequestLaunchTemplateData & AddSecurityGroups(const Aws::String &value)
const InstanceType & GetInstanceType() const
RequestLaunchTemplateData & WithCapacityReservationSpecification(const LaunchTemplateCapacityReservationSpecificationRequest &value)
const InstanceRequirementsRequest & GetInstanceRequirements() const
bool CreditSpecificationHasBeenSet() const
void SetCapacityReservationSpecification(LaunchTemplateCapacityReservationSpecificationRequest &&value)
bool InstanceMarketOptionsHasBeenSet() const
const Aws::String & GetUserData() const
RequestLaunchTemplateData & WithEnclaveOptions(const LaunchTemplateEnclaveOptionsRequest &value)
const Aws::String & GetRamDiskId() const
void SetEnclaveOptions(LaunchTemplateEnclaveOptionsRequest &&value)
void SetMonitoring(const LaunchTemplatesMonitoringRequest &value)
void SetHibernationOptions(LaunchTemplateHibernationOptionsRequest &&value)
RequestLaunchTemplateData & WithIamInstanceProfile(const LaunchTemplateIamInstanceProfileSpecificationRequest &value)
RequestLaunchTemplateData & WithImageId(Aws::String &&value)
RequestLaunchTemplateData & AddBlockDeviceMappings(const LaunchTemplateBlockDeviceMappingRequest &value)
RequestLaunchTemplateData & WithCpuOptions(LaunchTemplateCpuOptionsRequest &&value)
void SetPrivateDnsNameOptions(LaunchTemplatePrivateDnsNameOptionsRequest &&value)
void SetPlacement(const LaunchTemplatePlacementRequest &value)
RequestLaunchTemplateData & AddLicenseSpecifications(const LaunchTemplateLicenseConfigurationRequest &value)
RequestLaunchTemplateData & WithPrivateDnsNameOptions(LaunchTemplatePrivateDnsNameOptionsRequest &&value)
const CreditSpecificationRequest & GetCreditSpecification() const
void SetBlockDeviceMappings(const Aws::Vector< LaunchTemplateBlockDeviceMappingRequest > &value)
bool PrivateDnsNameOptionsHasBeenSet() const
void SetImageId(const char *value)
AWS_EC2_API RequestLaunchTemplateData()
RequestLaunchTemplateData & WithInstanceInitiatedShutdownBehavior(ShutdownBehavior &&value)
RequestLaunchTemplateData & WithCreditSpecification(const CreditSpecificationRequest &value)
bool DisableApiTerminationHasBeenSet() const
RequestLaunchTemplateData & WithUserData(const char *value)
RequestLaunchTemplateData & AddElasticInferenceAccelerators(LaunchTemplateElasticInferenceAccelerator &&value)
bool BlockDeviceMappingsHasBeenSet() const
const Aws::Vector< ElasticGpuSpecification > & GetElasticGpuSpecifications() const
RequestLaunchTemplateData & WithIamInstanceProfile(LaunchTemplateIamInstanceProfileSpecificationRequest &&value)
bool ImageIdHasBeenSet() const
RequestLaunchTemplateData & WithUserData(const Aws::String &value)
void SetRamDiskId(Aws::String &&value)
const LaunchTemplateInstanceMaintenanceOptionsRequest & GetMaintenanceOptions() const
RequestLaunchTemplateData & WithInstanceMarketOptions(const LaunchTemplateInstanceMarketOptionsRequest &value)
RequestLaunchTemplateData & WithImageId(const Aws::String &value)
const LaunchTemplateIamInstanceProfileSpecificationRequest & GetIamInstanceProfile() const
const LaunchTemplateCapacityReservationSpecificationRequest & GetCapacityReservationSpecification() const
RequestLaunchTemplateData & WithSecurityGroups(Aws::Vector< Aws::String > &&value)
void SetPlacement(LaunchTemplatePlacementRequest &&value)
void SetInstanceType(InstanceType &&value)
void SetSecurityGroupIds(const Aws::Vector< Aws::String > &value)
void SetCreditSpecification(const CreditSpecificationRequest &value)
AWS_EC2_API RequestLaunchTemplateData & operator=(const Aws::Utils::Xml::XmlNode &xmlNode)
bool NetworkInterfacesHasBeenSet() const
bool InstanceTypeHasBeenSet() const
RequestLaunchTemplateData & WithElasticGpuSpecifications(Aws::Vector< ElasticGpuSpecification > &&value)
bool DisableApiStopHasBeenSet() const
void SetNetworkInterfaces(const Aws::Vector< LaunchTemplateInstanceNetworkInterfaceSpecificationRequest > &value)
RequestLaunchTemplateData & WithRamDiskId(const Aws::String &value)
RequestLaunchTemplateData & AddSecurityGroupIds(const char *value)
RequestLaunchTemplateData & WithMetadataOptions(const LaunchTemplateInstanceMetadataOptionsRequest &value)
void SetCreditSpecification(CreditSpecificationRequest &&value)
const Aws::Vector< Aws::String > & GetSecurityGroupIds() const
void SetMaintenanceOptions(LaunchTemplateInstanceMaintenanceOptionsRequest &&value)
RequestLaunchTemplateData & WithLicenseSpecifications(Aws::Vector< LaunchTemplateLicenseConfigurationRequest > &&value)
bool UserDataHasBeenSet() const
const Aws::Vector< LaunchTemplateInstanceNetworkInterfaceSpecificationRequest > & GetNetworkInterfaces() const
void SetInstanceInitiatedShutdownBehavior(const ShutdownBehavior &value)
void SetInstanceMarketOptions(LaunchTemplateInstanceMarketOptionsRequest &&value)
void SetMonitoring(LaunchTemplatesMonitoringRequest &&value)
RequestLaunchTemplateData & WithElasticInferenceAccelerators(Aws::Vector< LaunchTemplateElasticInferenceAccelerator > &&value)
const Aws::String & GetImageId() const
void SetImageId(Aws::String &&value)
RequestLaunchTemplateData & AddLicenseSpecifications(LaunchTemplateLicenseConfigurationRequest &&value)
void SetIamInstanceProfile(const LaunchTemplateIamInstanceProfileSpecificationRequest &value)
bool TagSpecificationsHasBeenSet() const
RequestLaunchTemplateData & WithBlockDeviceMappings(const Aws::Vector< LaunchTemplateBlockDeviceMappingRequest > &value)
void SetLicenseSpecifications(const Aws::Vector< LaunchTemplateLicenseConfigurationRequest > &value)
void SetEbsOptimized(bool value)
void SetKernelId(const char *value)
RequestLaunchTemplateData & WithPlacement(const LaunchTemplatePlacementRequest &value)
void SetTagSpecifications(Aws::Vector< LaunchTemplateTagSpecificationRequest > &&value)
bool IamInstanceProfileHasBeenSet() const
void SetLicenseSpecifications(Aws::Vector< LaunchTemplateLicenseConfigurationRequest > &&value)
RequestLaunchTemplateData & WithElasticInferenceAccelerators(const Aws::Vector< LaunchTemplateElasticInferenceAccelerator > &value)
const LaunchTemplateInstanceMetadataOptionsRequest & GetMetadataOptions() const
bool ElasticGpuSpecificationsHasBeenSet() const
void SetKeyName(Aws::String &&value)
RequestLaunchTemplateData & WithLicenseSpecifications(const Aws::Vector< LaunchTemplateLicenseConfigurationRequest > &value)
const Aws::Vector< LaunchTemplateTagSpecificationRequest > & GetTagSpecifications() const
void SetKernelId(const Aws::String &value)
const Aws::Vector< LaunchTemplateBlockDeviceMappingRequest > & GetBlockDeviceMappings() const
RequestLaunchTemplateData & WithPlacement(LaunchTemplatePlacementRequest &&value)
void SetNetworkInterfaces(Aws::Vector< LaunchTemplateInstanceNetworkInterfaceSpecificationRequest > &&value)
RequestLaunchTemplateData & AddSecurityGroups(Aws::String &&value)
bool EnclaveOptionsHasBeenSet() const
void SetImageId(const Aws::String &value)
const LaunchTemplatePrivateDnsNameOptionsRequest & GetPrivateDnsNameOptions() const
RequestLaunchTemplateData & WithPrivateDnsNameOptions(const LaunchTemplatePrivateDnsNameOptionsRequest &value)
void SetIamInstanceProfile(LaunchTemplateIamInstanceProfileSpecificationRequest &&value)
bool CapacityReservationSpecificationHasBeenSet() const
void SetMaintenanceOptions(const LaunchTemplateInstanceMaintenanceOptionsRequest &value)
void SetBlockDeviceMappings(Aws::Vector< LaunchTemplateBlockDeviceMappingRequest > &&value)
bool MonitoringHasBeenSet() const
RequestLaunchTemplateData & WithUserData(Aws::String &&value)
RequestLaunchTemplateData & AddNetworkInterfaces(const LaunchTemplateInstanceNetworkInterfaceSpecificationRequest &value)
void SetDisableApiStop(bool value)
void SetTagSpecifications(const Aws::Vector< LaunchTemplateTagSpecificationRequest > &value)
void SetCpuOptions(LaunchTemplateCpuOptionsRequest &&value)
RequestLaunchTemplateData & WithSecurityGroupIds(Aws::Vector< Aws::String > &&value)
AWS_EC2_API RequestLaunchTemplateData(const Aws::Utils::Xml::XmlNode &xmlNode)
void SetCpuOptions(const LaunchTemplateCpuOptionsRequest &value)
void SetPrivateDnsNameOptions(const LaunchTemplatePrivateDnsNameOptionsRequest &value)
RequestLaunchTemplateData & WithCreditSpecification(CreditSpecificationRequest &&value)
void SetDisableApiTermination(bool value)
RequestLaunchTemplateData & WithDisableApiStop(bool value)
void SetInstanceType(const InstanceType &value)
RequestLaunchTemplateData & WithCpuOptions(const LaunchTemplateCpuOptionsRequest &value)
RequestLaunchTemplateData & WithNetworkInterfaces(Aws::Vector< LaunchTemplateInstanceNetworkInterfaceSpecificationRequest > &&value)
RequestLaunchTemplateData & WithImageId(const char *value)
void SetElasticInferenceAccelerators(Aws::Vector< LaunchTemplateElasticInferenceAccelerator > &&value)
bool GetDisableApiTermination() const
RequestLaunchTemplateData & WithKeyName(Aws::String &&value)
bool MetadataOptionsHasBeenSet() const
const Aws::String & GetKernelId() const
void SetRamDiskId(const char *value)
const LaunchTemplateCpuOptionsRequest & GetCpuOptions() const
RequestLaunchTemplateData & WithTagSpecifications(Aws::Vector< LaunchTemplateTagSpecificationRequest > &&value)
RequestLaunchTemplateData & WithElasticGpuSpecifications(const Aws::Vector< ElasticGpuSpecification > &value)
RequestLaunchTemplateData & WithSecurityGroups(const Aws::Vector< Aws::String > &value)
RequestLaunchTemplateData & WithKernelId(const Aws::String &value)
const LaunchTemplateEnclaveOptionsRequest & GetEnclaveOptions() const
void SetUserData(const Aws::String &value)
RequestLaunchTemplateData & AddSecurityGroups(const char *value)
void SetInstanceInitiatedShutdownBehavior(ShutdownBehavior &&value)
void SetElasticGpuSpecifications(Aws::Vector< ElasticGpuSpecification > &&value)
RequestLaunchTemplateData & WithDisableApiTermination(bool value)
bool KeyNameHasBeenSet() const
RequestLaunchTemplateData & WithKeyName(const char *value)
RequestLaunchTemplateData & WithKernelId(const char *value)
RequestLaunchTemplateData & WithInstanceInitiatedShutdownBehavior(const ShutdownBehavior &value)
void SetMetadataOptions(LaunchTemplateInstanceMetadataOptionsRequest &&value)
bool ElasticInferenceAcceleratorsHasBeenSet() const
RequestLaunchTemplateData & WithSecurityGroupIds(const Aws::Vector< Aws::String > &value)
void SetKeyName(const Aws::String &value)
void SetUserData(Aws::String &&value)
RequestLaunchTemplateData & WithEbsOptimized(bool value)
const LaunchTemplateHibernationOptionsRequest & GetHibernationOptions() const
bool LicenseSpecificationsHasBeenSet() const
void SetElasticInferenceAccelerators(const Aws::Vector< LaunchTemplateElasticInferenceAccelerator > &value)
void SetElasticGpuSpecifications(const Aws::Vector< ElasticGpuSpecification > &value)
void SetUserData(const char *value)
RequestLaunchTemplateData & WithMetadataOptions(LaunchTemplateInstanceMetadataOptionsRequest &&value)
bool InstanceInitiatedShutdownBehaviorHasBeenSet() const
RequestLaunchTemplateData & WithInstanceType(const InstanceType &value)
void SetInstanceRequirements(const InstanceRequirementsRequest &value)
void SetHibernationOptions(const LaunchTemplateHibernationOptionsRequest &value)
void SetCapacityReservationSpecification(const LaunchTemplateCapacityReservationSpecificationRequest &value)
bool SecurityGroupsHasBeenSet() const
RequestLaunchTemplateData & WithMonitoring(const LaunchTemplatesMonitoringRequest &value)
bool GetDisableApiStop() const
RequestLaunchTemplateData & WithNetworkInterfaces(const Aws::Vector< LaunchTemplateInstanceNetworkInterfaceSpecificationRequest > &value)
RequestLaunchTemplateData & WithInstanceType(InstanceType &&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