/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace SecurityHub { namespace Model { /** *

The information to include in an Amazon Elastic Compute Cloud (Amazon EC2) * launch template.

See Also:

AWS * API Reference

*/ class AwsEc2LaunchTemplateDataDetails { public: AWS_SECURITYHUB_API AwsEc2LaunchTemplateDataDetails(); AWS_SECURITYHUB_API AwsEc2LaunchTemplateDataDetails(Aws::Utils::Json::JsonView jsonValue); AWS_SECURITYHUB_API AwsEc2LaunchTemplateDataDetails& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_SECURITYHUB_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

Information about a block device mapping for an Amazon EC2 launch template. *

*/ inline const Aws::Vector& GetBlockDeviceMappingSet() const{ return m_blockDeviceMappingSet; } /** *

Information about a block device mapping for an Amazon EC2 launch template. *

*/ inline bool BlockDeviceMappingSetHasBeenSet() const { return m_blockDeviceMappingSetHasBeenSet; } /** *

Information about a block device mapping for an Amazon EC2 launch template. *

*/ inline void SetBlockDeviceMappingSet(const Aws::Vector& value) { m_blockDeviceMappingSetHasBeenSet = true; m_blockDeviceMappingSet = value; } /** *

Information about a block device mapping for an Amazon EC2 launch template. *

*/ inline void SetBlockDeviceMappingSet(Aws::Vector&& value) { m_blockDeviceMappingSetHasBeenSet = true; m_blockDeviceMappingSet = std::move(value); } /** *

Information about a block device mapping for an Amazon EC2 launch template. *

*/ inline AwsEc2LaunchTemplateDataDetails& WithBlockDeviceMappingSet(const Aws::Vector& value) { SetBlockDeviceMappingSet(value); return *this;} /** *

Information about a block device mapping for an Amazon EC2 launch template. *

*/ inline AwsEc2LaunchTemplateDataDetails& WithBlockDeviceMappingSet(Aws::Vector&& value) { SetBlockDeviceMappingSet(std::move(value)); return *this;} /** *

Information about a block device mapping for an Amazon EC2 launch template. *

*/ inline AwsEc2LaunchTemplateDataDetails& AddBlockDeviceMappingSet(const AwsEc2LaunchTemplateDataBlockDeviceMappingSetDetails& value) { m_blockDeviceMappingSetHasBeenSet = true; m_blockDeviceMappingSet.push_back(value); return *this; } /** *

Information about a block device mapping for an Amazon EC2 launch template. *

*/ inline AwsEc2LaunchTemplateDataDetails& AddBlockDeviceMappingSet(AwsEc2LaunchTemplateDataBlockDeviceMappingSetDetails&& value) { m_blockDeviceMappingSetHasBeenSet = true; m_blockDeviceMappingSet.push_back(std::move(value)); return *this; } /** *

Specifies an instance's Capacity Reservation targeting option. You can * specify only one option at a time.

*/ inline const AwsEc2LaunchTemplateDataCapacityReservationSpecificationDetails& GetCapacityReservationSpecification() const{ return m_capacityReservationSpecification; } /** *

Specifies an instance's Capacity Reservation targeting option. You can * specify only one option at a time.

*/ inline bool CapacityReservationSpecificationHasBeenSet() const { return m_capacityReservationSpecificationHasBeenSet; } /** *

Specifies an instance's Capacity Reservation targeting option. You can * specify only one option at a time.

*/ inline void SetCapacityReservationSpecification(const AwsEc2LaunchTemplateDataCapacityReservationSpecificationDetails& value) { m_capacityReservationSpecificationHasBeenSet = true; m_capacityReservationSpecification = value; } /** *

Specifies an instance's Capacity Reservation targeting option. You can * specify only one option at a time.

*/ inline void SetCapacityReservationSpecification(AwsEc2LaunchTemplateDataCapacityReservationSpecificationDetails&& value) { m_capacityReservationSpecificationHasBeenSet = true; m_capacityReservationSpecification = std::move(value); } /** *

Specifies an instance's Capacity Reservation targeting option. You can * specify only one option at a time.

*/ inline AwsEc2LaunchTemplateDataDetails& WithCapacityReservationSpecification(const AwsEc2LaunchTemplateDataCapacityReservationSpecificationDetails& value) { SetCapacityReservationSpecification(value); return *this;} /** *

Specifies an instance's Capacity Reservation targeting option. You can * specify only one option at a time.

*/ inline AwsEc2LaunchTemplateDataDetails& WithCapacityReservationSpecification(AwsEc2LaunchTemplateDataCapacityReservationSpecificationDetails&& value) { SetCapacityReservationSpecification(std::move(value)); return *this;} /** *

Specifies the CPU options for an instance. For more information, see Optimize * CPU options in the Amazon Elastic Compute Cloud User Guide.

*/ inline const AwsEc2LaunchTemplateDataCpuOptionsDetails& GetCpuOptions() const{ return m_cpuOptions; } /** *

Specifies the CPU options for an instance. For more information, see Optimize * CPU options in the Amazon Elastic Compute Cloud User Guide.

*/ inline bool CpuOptionsHasBeenSet() const { return m_cpuOptionsHasBeenSet; } /** *

Specifies the CPU options for an instance. For more information, see Optimize * CPU options in the Amazon Elastic Compute Cloud User Guide.

*/ inline void SetCpuOptions(const AwsEc2LaunchTemplateDataCpuOptionsDetails& value) { m_cpuOptionsHasBeenSet = true; m_cpuOptions = value; } /** *

Specifies the CPU options for an instance. For more information, see Optimize * CPU options in the Amazon Elastic Compute Cloud User Guide.

*/ inline void SetCpuOptions(AwsEc2LaunchTemplateDataCpuOptionsDetails&& value) { m_cpuOptionsHasBeenSet = true; m_cpuOptions = std::move(value); } /** *

Specifies the CPU options for an instance. For more information, see Optimize * CPU options in the Amazon Elastic Compute Cloud User Guide.

*/ inline AwsEc2LaunchTemplateDataDetails& WithCpuOptions(const AwsEc2LaunchTemplateDataCpuOptionsDetails& value) { SetCpuOptions(value); return *this;} /** *

Specifies the CPU options for an instance. For more information, see Optimize * CPU options in the Amazon Elastic Compute Cloud User Guide.

*/ inline AwsEc2LaunchTemplateDataDetails& WithCpuOptions(AwsEc2LaunchTemplateDataCpuOptionsDetails&& value) { SetCpuOptions(std::move(value)); return *this;} /** *

Specifies the credit option for CPU usage of a T2, T3, or T3a instance.

*/ inline const AwsEc2LaunchTemplateDataCreditSpecificationDetails& GetCreditSpecification() const{ return m_creditSpecification; } /** *

Specifies the credit option for CPU usage of a T2, T3, or T3a instance.

*/ inline bool CreditSpecificationHasBeenSet() const { return m_creditSpecificationHasBeenSet; } /** *

Specifies the credit option for CPU usage of a T2, T3, or T3a instance.

*/ inline void SetCreditSpecification(const AwsEc2LaunchTemplateDataCreditSpecificationDetails& value) { m_creditSpecificationHasBeenSet = true; m_creditSpecification = value; } /** *

Specifies the credit option for CPU usage of a T2, T3, or T3a instance.

*/ inline void SetCreditSpecification(AwsEc2LaunchTemplateDataCreditSpecificationDetails&& value) { m_creditSpecificationHasBeenSet = true; m_creditSpecification = std::move(value); } /** *

Specifies the credit option for CPU usage of a T2, T3, or T3a instance.

*/ inline AwsEc2LaunchTemplateDataDetails& WithCreditSpecification(const AwsEc2LaunchTemplateDataCreditSpecificationDetails& value) { SetCreditSpecification(value); return *this;} /** *

Specifies the credit option for CPU usage of a T2, T3, or T3a instance.

*/ inline AwsEc2LaunchTemplateDataDetails& WithCreditSpecification(AwsEc2LaunchTemplateDataCreditSpecificationDetails&& value) { SetCreditSpecification(std::move(value)); return *this;} /** *

Indicates whether to enable the instance for stop protection. For more * information, see Enable * stop protection in the Amazon EC2 User Guide.

*/ inline bool GetDisableApiStop() const{ return m_disableApiStop; } /** *

Indicates whether to enable the instance for stop protection. For more * information, see Enable * stop protection in the Amazon EC2 User Guide.

*/ inline bool DisableApiStopHasBeenSet() const { return m_disableApiStopHasBeenSet; } /** *

Indicates whether to enable the instance for stop protection. For more * information, see Enable * stop protection in the Amazon EC2 User Guide.

*/ inline void SetDisableApiStop(bool value) { m_disableApiStopHasBeenSet = true; m_disableApiStop = value; } /** *

Indicates whether to enable the instance for stop protection. For more * information, see Enable * stop protection in the Amazon EC2 User Guide.

*/ inline AwsEc2LaunchTemplateDataDetails& WithDisableApiStop(bool value) { SetDisableApiStop(value); return *this;} /** *

If you set this parameter to true, you can't terminate the * instance using the Amazon EC2 console, CLI, or API. If set to true, * you can.

*/ inline bool GetDisableApiTermination() const{ return m_disableApiTermination; } /** *

If you set this parameter to true, you can't terminate the * instance using the Amazon EC2 console, CLI, or API. If set to true, * you can.

*/ inline bool DisableApiTerminationHasBeenSet() const { return m_disableApiTerminationHasBeenSet; } /** *

If you set this parameter to true, you can't terminate the * instance using the Amazon EC2 console, CLI, or API. If set to true, * you can.

*/ inline void SetDisableApiTermination(bool value) { m_disableApiTerminationHasBeenSet = true; m_disableApiTermination = value; } /** *

If you set this parameter to true, you can't terminate the * instance using the Amazon EC2 console, CLI, or API. If set to true, * you can.

*/ inline AwsEc2LaunchTemplateDataDetails& WithDisableApiTermination(bool value) { SetDisableApiTermination(value); return *this;} /** *

Indicates whether the instance is optimized for Amazon EBS I/O.

*/ inline bool GetEbsOptimized() const{ return m_ebsOptimized; } /** *

Indicates whether the instance is optimized for Amazon EBS I/O.

*/ inline bool EbsOptimizedHasBeenSet() const { return m_ebsOptimizedHasBeenSet; } /** *

Indicates whether the instance is optimized for Amazon EBS I/O.

*/ inline void SetEbsOptimized(bool value) { m_ebsOptimizedHasBeenSet = true; m_ebsOptimized = value; } /** *

Indicates whether the instance is optimized for Amazon EBS I/O.

*/ inline AwsEc2LaunchTemplateDataDetails& WithEbsOptimized(bool value) { SetEbsOptimized(value); return *this;} /** *

Provides details about Elastic Graphics accelerators to associate with the * instance.

*/ inline const Aws::Vector& GetElasticGpuSpecificationSet() const{ return m_elasticGpuSpecificationSet; } /** *

Provides details about Elastic Graphics accelerators to associate with the * instance.

*/ inline bool ElasticGpuSpecificationSetHasBeenSet() const { return m_elasticGpuSpecificationSetHasBeenSet; } /** *

Provides details about Elastic Graphics accelerators to associate with the * instance.

*/ inline void SetElasticGpuSpecificationSet(const Aws::Vector& value) { m_elasticGpuSpecificationSetHasBeenSet = true; m_elasticGpuSpecificationSet = value; } /** *

Provides details about Elastic Graphics accelerators to associate with the * instance.

*/ inline void SetElasticGpuSpecificationSet(Aws::Vector&& value) { m_elasticGpuSpecificationSetHasBeenSet = true; m_elasticGpuSpecificationSet = std::move(value); } /** *

Provides details about Elastic Graphics accelerators to associate with the * instance.

*/ inline AwsEc2LaunchTemplateDataDetails& WithElasticGpuSpecificationSet(const Aws::Vector& value) { SetElasticGpuSpecificationSet(value); return *this;} /** *

Provides details about Elastic Graphics accelerators to associate with the * instance.

*/ inline AwsEc2LaunchTemplateDataDetails& WithElasticGpuSpecificationSet(Aws::Vector&& value) { SetElasticGpuSpecificationSet(std::move(value)); return *this;} /** *

Provides details about Elastic Graphics accelerators to associate with the * instance.

*/ inline AwsEc2LaunchTemplateDataDetails& AddElasticGpuSpecificationSet(const AwsEc2LaunchTemplateDataElasticGpuSpecificationSetDetails& value) { m_elasticGpuSpecificationSetHasBeenSet = true; m_elasticGpuSpecificationSet.push_back(value); return *this; } /** *

Provides details about Elastic Graphics accelerators to associate with the * instance.

*/ inline AwsEc2LaunchTemplateDataDetails& AddElasticGpuSpecificationSet(AwsEc2LaunchTemplateDataElasticGpuSpecificationSetDetails&& value) { m_elasticGpuSpecificationSetHasBeenSet = true; m_elasticGpuSpecificationSet.push_back(std::move(value)); return *this; } /** *

The Amazon Elastic Inference accelerator for the instance.

*/ inline const Aws::Vector& GetElasticInferenceAcceleratorSet() const{ return m_elasticInferenceAcceleratorSet; } /** *

The Amazon Elastic Inference accelerator for the instance.

*/ inline bool ElasticInferenceAcceleratorSetHasBeenSet() const { return m_elasticInferenceAcceleratorSetHasBeenSet; } /** *

The Amazon Elastic Inference accelerator for the instance.

*/ inline void SetElasticInferenceAcceleratorSet(const Aws::Vector& value) { m_elasticInferenceAcceleratorSetHasBeenSet = true; m_elasticInferenceAcceleratorSet = value; } /** *

The Amazon Elastic Inference accelerator for the instance.

*/ inline void SetElasticInferenceAcceleratorSet(Aws::Vector&& value) { m_elasticInferenceAcceleratorSetHasBeenSet = true; m_elasticInferenceAcceleratorSet = std::move(value); } /** *

The Amazon Elastic Inference accelerator for the instance.

*/ inline AwsEc2LaunchTemplateDataDetails& WithElasticInferenceAcceleratorSet(const Aws::Vector& value) { SetElasticInferenceAcceleratorSet(value); return *this;} /** *

The Amazon Elastic Inference accelerator for the instance.

*/ inline AwsEc2LaunchTemplateDataDetails& WithElasticInferenceAcceleratorSet(Aws::Vector&& value) { SetElasticInferenceAcceleratorSet(std::move(value)); return *this;} /** *

The Amazon Elastic Inference accelerator for the instance.

*/ inline AwsEc2LaunchTemplateDataDetails& AddElasticInferenceAcceleratorSet(const AwsEc2LaunchTemplateDataElasticInferenceAcceleratorSetDetails& value) { m_elasticInferenceAcceleratorSetHasBeenSet = true; m_elasticInferenceAcceleratorSet.push_back(value); return *this; } /** *

The Amazon Elastic Inference accelerator for the instance.

*/ inline AwsEc2LaunchTemplateDataDetails& AddElasticInferenceAcceleratorSet(AwsEc2LaunchTemplateDataElasticInferenceAcceleratorSetDetails&& value) { m_elasticInferenceAcceleratorSetHasBeenSet = true; m_elasticInferenceAcceleratorSet.push_back(std::move(value)); return *this; } /** *

Indicates whether the Amazon EC2 instance is enabled for Amazon Web Services * Nitro Enclaves.

*/ inline const AwsEc2LaunchTemplateDataEnclaveOptionsDetails& GetEnclaveOptions() const{ return m_enclaveOptions; } /** *

Indicates whether the Amazon EC2 instance is enabled for Amazon Web Services * Nitro Enclaves.

*/ inline bool EnclaveOptionsHasBeenSet() const { return m_enclaveOptionsHasBeenSet; } /** *

Indicates whether the Amazon EC2 instance is enabled for Amazon Web Services * Nitro Enclaves.

*/ inline void SetEnclaveOptions(const AwsEc2LaunchTemplateDataEnclaveOptionsDetails& value) { m_enclaveOptionsHasBeenSet = true; m_enclaveOptions = value; } /** *

Indicates whether the Amazon EC2 instance is enabled for Amazon Web Services * Nitro Enclaves.

*/ inline void SetEnclaveOptions(AwsEc2LaunchTemplateDataEnclaveOptionsDetails&& value) { m_enclaveOptionsHasBeenSet = true; m_enclaveOptions = std::move(value); } /** *

Indicates whether the Amazon EC2 instance is enabled for Amazon Web Services * Nitro Enclaves.

*/ inline AwsEc2LaunchTemplateDataDetails& WithEnclaveOptions(const AwsEc2LaunchTemplateDataEnclaveOptionsDetails& value) { SetEnclaveOptions(value); return *this;} /** *

Indicates whether the Amazon EC2 instance is enabled for Amazon Web Services * Nitro Enclaves.

*/ inline AwsEc2LaunchTemplateDataDetails& WithEnclaveOptions(AwsEc2LaunchTemplateDataEnclaveOptionsDetails&& value) { SetEnclaveOptions(std::move(value)); return *this;} /** *

Specifies whether your Amazon EC2 instance is configured for hibernation. *

*/ inline const AwsEc2LaunchTemplateDataHibernationOptionsDetails& GetHibernationOptions() const{ return m_hibernationOptions; } /** *

Specifies whether your Amazon EC2 instance is configured for hibernation. *

*/ inline bool HibernationOptionsHasBeenSet() const { return m_hibernationOptionsHasBeenSet; } /** *

Specifies whether your Amazon EC2 instance is configured for hibernation. *

*/ inline void SetHibernationOptions(const AwsEc2LaunchTemplateDataHibernationOptionsDetails& value) { m_hibernationOptionsHasBeenSet = true; m_hibernationOptions = value; } /** *

Specifies whether your Amazon EC2 instance is configured for hibernation. *

*/ inline void SetHibernationOptions(AwsEc2LaunchTemplateDataHibernationOptionsDetails&& value) { m_hibernationOptionsHasBeenSet = true; m_hibernationOptions = std::move(value); } /** *

Specifies whether your Amazon EC2 instance is configured for hibernation. *

*/ inline AwsEc2LaunchTemplateDataDetails& WithHibernationOptions(const AwsEc2LaunchTemplateDataHibernationOptionsDetails& value) { SetHibernationOptions(value); return *this;} /** *

Specifies whether your Amazon EC2 instance is configured for hibernation. *

*/ inline AwsEc2LaunchTemplateDataDetails& WithHibernationOptions(AwsEc2LaunchTemplateDataHibernationOptionsDetails&& value) { SetHibernationOptions(std::move(value)); return *this;} /** *

The name or Amazon Resource Name (ARN) of an IAM instance profile.

*/ inline const AwsEc2LaunchTemplateDataIamInstanceProfileDetails& GetIamInstanceProfile() const{ return m_iamInstanceProfile; } /** *

The name or Amazon Resource Name (ARN) of an IAM instance profile.

*/ inline bool IamInstanceProfileHasBeenSet() const { return m_iamInstanceProfileHasBeenSet; } /** *

The name or Amazon Resource Name (ARN) of an IAM instance profile.

*/ inline void SetIamInstanceProfile(const AwsEc2LaunchTemplateDataIamInstanceProfileDetails& value) { m_iamInstanceProfileHasBeenSet = true; m_iamInstanceProfile = value; } /** *

The name or Amazon Resource Name (ARN) of an IAM instance profile.

*/ inline void SetIamInstanceProfile(AwsEc2LaunchTemplateDataIamInstanceProfileDetails&& value) { m_iamInstanceProfileHasBeenSet = true; m_iamInstanceProfile = std::move(value); } /** *

The name or Amazon Resource Name (ARN) of an IAM instance profile.

*/ inline AwsEc2LaunchTemplateDataDetails& WithIamInstanceProfile(const AwsEc2LaunchTemplateDataIamInstanceProfileDetails& value) { SetIamInstanceProfile(value); return *this;} /** *

The name or Amazon Resource Name (ARN) of an IAM instance profile.

*/ inline AwsEc2LaunchTemplateDataDetails& WithIamInstanceProfile(AwsEc2LaunchTemplateDataIamInstanceProfileDetails&& value) { SetIamInstanceProfile(std::move(value)); return *this;} /** *

The ID of the Amazon Machine Image (AMI).

*/ inline const Aws::String& GetImageId() const{ return m_imageId; } /** *

The ID of the Amazon Machine Image (AMI).

*/ inline bool ImageIdHasBeenSet() const { return m_imageIdHasBeenSet; } /** *

The ID of the Amazon Machine Image (AMI).

*/ inline void SetImageId(const Aws::String& value) { m_imageIdHasBeenSet = true; m_imageId = value; } /** *

The ID of the Amazon Machine Image (AMI).

*/ inline void SetImageId(Aws::String&& value) { m_imageIdHasBeenSet = true; m_imageId = std::move(value); } /** *

The ID of the Amazon Machine Image (AMI).

*/ inline void SetImageId(const char* value) { m_imageIdHasBeenSet = true; m_imageId.assign(value); } /** *

The ID of the Amazon Machine Image (AMI).

*/ inline AwsEc2LaunchTemplateDataDetails& WithImageId(const Aws::String& value) { SetImageId(value); return *this;} /** *

The ID of the Amazon Machine Image (AMI).

*/ inline AwsEc2LaunchTemplateDataDetails& WithImageId(Aws::String&& value) { SetImageId(std::move(value)); return *this;} /** *

The ID of the Amazon Machine Image (AMI).

*/ inline AwsEc2LaunchTemplateDataDetails& WithImageId(const char* value) { SetImageId(value); return *this;} /** *

Provides the options for specifying the instance initiated shutdown * behavior.

*/ inline const Aws::String& GetInstanceInitiatedShutdownBehavior() const{ return m_instanceInitiatedShutdownBehavior; } /** *

Provides the options for specifying the instance initiated shutdown * behavior.

*/ inline bool InstanceInitiatedShutdownBehaviorHasBeenSet() const { return m_instanceInitiatedShutdownBehaviorHasBeenSet; } /** *

Provides the options for specifying the instance initiated shutdown * behavior.

*/ inline void SetInstanceInitiatedShutdownBehavior(const Aws::String& value) { m_instanceInitiatedShutdownBehaviorHasBeenSet = true; m_instanceInitiatedShutdownBehavior = value; } /** *

Provides the options for specifying the instance initiated shutdown * behavior.

*/ inline void SetInstanceInitiatedShutdownBehavior(Aws::String&& value) { m_instanceInitiatedShutdownBehaviorHasBeenSet = true; m_instanceInitiatedShutdownBehavior = std::move(value); } /** *

Provides the options for specifying the instance initiated shutdown * behavior.

*/ inline void SetInstanceInitiatedShutdownBehavior(const char* value) { m_instanceInitiatedShutdownBehaviorHasBeenSet = true; m_instanceInitiatedShutdownBehavior.assign(value); } /** *

Provides the options for specifying the instance initiated shutdown * behavior.

*/ inline AwsEc2LaunchTemplateDataDetails& WithInstanceInitiatedShutdownBehavior(const Aws::String& value) { SetInstanceInitiatedShutdownBehavior(value); return *this;} /** *

Provides the options for specifying the instance initiated shutdown * behavior.

*/ inline AwsEc2LaunchTemplateDataDetails& WithInstanceInitiatedShutdownBehavior(Aws::String&& value) { SetInstanceInitiatedShutdownBehavior(std::move(value)); return *this;} /** *

Provides the options for specifying the instance initiated shutdown * behavior.

*/ inline AwsEc2LaunchTemplateDataDetails& WithInstanceInitiatedShutdownBehavior(const char* value) { SetInstanceInitiatedShutdownBehavior(value); return *this;} /** *

Specifies the market (purchasing) option for an instance.

*/ inline const AwsEc2LaunchTemplateDataInstanceMarketOptionsDetails& GetInstanceMarketOptions() const{ return m_instanceMarketOptions; } /** *

Specifies the market (purchasing) option for an instance.

*/ inline bool InstanceMarketOptionsHasBeenSet() const { return m_instanceMarketOptionsHasBeenSet; } /** *

Specifies the market (purchasing) option for an instance.

*/ inline void SetInstanceMarketOptions(const AwsEc2LaunchTemplateDataInstanceMarketOptionsDetails& value) { m_instanceMarketOptionsHasBeenSet = true; m_instanceMarketOptions = value; } /** *

Specifies the market (purchasing) option for an instance.

*/ inline void SetInstanceMarketOptions(AwsEc2LaunchTemplateDataInstanceMarketOptionsDetails&& value) { m_instanceMarketOptionsHasBeenSet = true; m_instanceMarketOptions = std::move(value); } /** *

Specifies the market (purchasing) option for an instance.

*/ inline AwsEc2LaunchTemplateDataDetails& WithInstanceMarketOptions(const AwsEc2LaunchTemplateDataInstanceMarketOptionsDetails& value) { SetInstanceMarketOptions(value); return *this;} /** *

Specifies the market (purchasing) option for an instance.

*/ inline AwsEc2LaunchTemplateDataDetails& WithInstanceMarketOptions(AwsEc2LaunchTemplateDataInstanceMarketOptionsDetails&& value) { SetInstanceMarketOptions(std::move(value)); return *this;} /** *

The attributes for the instance types. When you specify instance attributes, * Amazon EC2 will identify instance types with these attributes. If you specify * InstanceRequirements, you can't specify InstanceType. *

*/ inline const AwsEc2LaunchTemplateDataInstanceRequirementsDetails& GetInstanceRequirements() const{ return m_instanceRequirements; } /** *

The attributes for the instance types. When you specify instance attributes, * Amazon EC2 will identify instance types with these attributes. If you specify * InstanceRequirements, you can't specify InstanceType. *

*/ inline bool InstanceRequirementsHasBeenSet() const { return m_instanceRequirementsHasBeenSet; } /** *

The attributes for the instance types. When you specify instance attributes, * Amazon EC2 will identify instance types with these attributes. If you specify * InstanceRequirements, you can't specify InstanceType. *

*/ inline void SetInstanceRequirements(const AwsEc2LaunchTemplateDataInstanceRequirementsDetails& value) { m_instanceRequirementsHasBeenSet = true; m_instanceRequirements = value; } /** *

The attributes for the instance types. When you specify instance attributes, * Amazon EC2 will identify instance types with these attributes. If you specify * InstanceRequirements, you can't specify InstanceType. *

*/ inline void SetInstanceRequirements(AwsEc2LaunchTemplateDataInstanceRequirementsDetails&& value) { m_instanceRequirementsHasBeenSet = true; m_instanceRequirements = std::move(value); } /** *

The attributes for the instance types. When you specify instance attributes, * Amazon EC2 will identify instance types with these attributes. If you specify * InstanceRequirements, you can't specify InstanceType. *

*/ inline AwsEc2LaunchTemplateDataDetails& WithInstanceRequirements(const AwsEc2LaunchTemplateDataInstanceRequirementsDetails& value) { SetInstanceRequirements(value); return *this;} /** *

The attributes for the instance types. When you specify instance attributes, * Amazon EC2 will identify instance types with these attributes. If you specify * InstanceRequirements, you can't specify InstanceType. *

*/ inline AwsEc2LaunchTemplateDataDetails& WithInstanceRequirements(AwsEc2LaunchTemplateDataInstanceRequirementsDetails&& value) { SetInstanceRequirements(std::move(value)); return *this;} /** *

The instance type. For more information, see Instance * types in the Amazon EC2 User Guide. If you specify * InstanceType, you can't specify InstanceRequirements. *

*/ inline const Aws::String& GetInstanceType() const{ return m_instanceType; } /** *

The instance type. For more information, see Instance * types in the Amazon EC2 User Guide. If you specify * InstanceType, you can't specify InstanceRequirements. *

*/ inline bool InstanceTypeHasBeenSet() const { return m_instanceTypeHasBeenSet; } /** *

The instance type. For more information, see Instance * types in the Amazon EC2 User Guide. If you specify * InstanceType, you can't specify InstanceRequirements. *

*/ inline void SetInstanceType(const Aws::String& value) { m_instanceTypeHasBeenSet = true; m_instanceType = value; } /** *

The instance type. For more information, see Instance * types in the Amazon EC2 User Guide. If you specify * InstanceType, you can't specify InstanceRequirements. *

*/ inline void SetInstanceType(Aws::String&& value) { m_instanceTypeHasBeenSet = true; m_instanceType = std::move(value); } /** *

The instance type. For more information, see Instance * types in the Amazon EC2 User Guide. If you specify * InstanceType, you can't specify InstanceRequirements. *

*/ inline void SetInstanceType(const char* value) { m_instanceTypeHasBeenSet = true; m_instanceType.assign(value); } /** *

The instance type. For more information, see Instance * types in the Amazon EC2 User Guide. If you specify * InstanceType, you can't specify InstanceRequirements. *

*/ inline AwsEc2LaunchTemplateDataDetails& WithInstanceType(const Aws::String& value) { SetInstanceType(value); return *this;} /** *

The instance type. For more information, see Instance * types in the Amazon EC2 User Guide. If you specify * InstanceType, you can't specify InstanceRequirements. *

*/ inline AwsEc2LaunchTemplateDataDetails& WithInstanceType(Aws::String&& value) { SetInstanceType(std::move(value)); return *this;} /** *

The instance type. For more information, see Instance * types in the Amazon EC2 User Guide. If you specify * InstanceType, you can't specify InstanceRequirements. *

*/ inline AwsEc2LaunchTemplateDataDetails& WithInstanceType(const char* value) { SetInstanceType(value); return *this;} /** *

The ID of the kernel.

*/ inline const Aws::String& GetKernelId() const{ return m_kernelId; } /** *

The ID of the kernel.

*/ inline bool KernelIdHasBeenSet() const { return m_kernelIdHasBeenSet; } /** *

The ID of the kernel.

*/ inline void SetKernelId(const Aws::String& value) { m_kernelIdHasBeenSet = true; m_kernelId = value; } /** *

The ID of the kernel.

*/ inline void SetKernelId(Aws::String&& value) { m_kernelIdHasBeenSet = true; m_kernelId = std::move(value); } /** *

The ID of the kernel.

*/ inline void SetKernelId(const char* value) { m_kernelIdHasBeenSet = true; m_kernelId.assign(value); } /** *

The ID of the kernel.

*/ inline AwsEc2LaunchTemplateDataDetails& WithKernelId(const Aws::String& value) { SetKernelId(value); return *this;} /** *

The ID of the kernel.

*/ inline AwsEc2LaunchTemplateDataDetails& WithKernelId(Aws::String&& value) { SetKernelId(std::move(value)); return *this;} /** *

The ID of the kernel.

*/ inline AwsEc2LaunchTemplateDataDetails& WithKernelId(const char* value) { SetKernelId(value); return *this;} /** *

The name of the key pair that allows users to connect to the instance.

*/ inline const Aws::String& GetKeyName() const{ return m_keyName; } /** *

The name of the key pair that allows users to connect to the instance.

*/ inline bool KeyNameHasBeenSet() const { return m_keyNameHasBeenSet; } /** *

The name of the key pair that allows users to connect to the instance.

*/ inline void SetKeyName(const Aws::String& value) { m_keyNameHasBeenSet = true; m_keyName = value; } /** *

The name of the key pair that allows users to connect to the instance.

*/ inline void SetKeyName(Aws::String&& value) { m_keyNameHasBeenSet = true; m_keyName = std::move(value); } /** *

The name of the key pair that allows users to connect to the instance.

*/ inline void SetKeyName(const char* value) { m_keyNameHasBeenSet = true; m_keyName.assign(value); } /** *

The name of the key pair that allows users to connect to the instance.

*/ inline AwsEc2LaunchTemplateDataDetails& WithKeyName(const Aws::String& value) { SetKeyName(value); return *this;} /** *

The name of the key pair that allows users to connect to the instance.

*/ inline AwsEc2LaunchTemplateDataDetails& WithKeyName(Aws::String&& value) { SetKeyName(std::move(value)); return *this;} /** *

The name of the key pair that allows users to connect to the instance.

*/ inline AwsEc2LaunchTemplateDataDetails& WithKeyName(const char* value) { SetKeyName(value); return *this;} /** *

Specifies a license configuration for an instance.

*/ inline const Aws::Vector& GetLicenseSet() const{ return m_licenseSet; } /** *

Specifies a license configuration for an instance.

*/ inline bool LicenseSetHasBeenSet() const { return m_licenseSetHasBeenSet; } /** *

Specifies a license configuration for an instance.

*/ inline void SetLicenseSet(const Aws::Vector& value) { m_licenseSetHasBeenSet = true; m_licenseSet = value; } /** *

Specifies a license configuration for an instance.

*/ inline void SetLicenseSet(Aws::Vector&& value) { m_licenseSetHasBeenSet = true; m_licenseSet = std::move(value); } /** *

Specifies a license configuration for an instance.

*/ inline AwsEc2LaunchTemplateDataDetails& WithLicenseSet(const Aws::Vector& value) { SetLicenseSet(value); return *this;} /** *

Specifies a license configuration for an instance.

*/ inline AwsEc2LaunchTemplateDataDetails& WithLicenseSet(Aws::Vector&& value) { SetLicenseSet(std::move(value)); return *this;} /** *

Specifies a license configuration for an instance.

*/ inline AwsEc2LaunchTemplateDataDetails& AddLicenseSet(const AwsEc2LaunchTemplateDataLicenseSetDetails& value) { m_licenseSetHasBeenSet = true; m_licenseSet.push_back(value); return *this; } /** *

Specifies a license configuration for an instance.

*/ inline AwsEc2LaunchTemplateDataDetails& AddLicenseSet(AwsEc2LaunchTemplateDataLicenseSetDetails&& value) { m_licenseSetHasBeenSet = true; m_licenseSet.push_back(std::move(value)); return *this; } /** *

The maintenance options of your instance.

*/ inline const AwsEc2LaunchTemplateDataMaintenanceOptionsDetails& GetMaintenanceOptions() const{ return m_maintenanceOptions; } /** *

The maintenance options of your instance.

*/ inline bool MaintenanceOptionsHasBeenSet() const { return m_maintenanceOptionsHasBeenSet; } /** *

The maintenance options of your instance.

*/ inline void SetMaintenanceOptions(const AwsEc2LaunchTemplateDataMaintenanceOptionsDetails& value) { m_maintenanceOptionsHasBeenSet = true; m_maintenanceOptions = value; } /** *

The maintenance options of your instance.

*/ inline void SetMaintenanceOptions(AwsEc2LaunchTemplateDataMaintenanceOptionsDetails&& value) { m_maintenanceOptionsHasBeenSet = true; m_maintenanceOptions = std::move(value); } /** *

The maintenance options of your instance.

*/ inline AwsEc2LaunchTemplateDataDetails& WithMaintenanceOptions(const AwsEc2LaunchTemplateDataMaintenanceOptionsDetails& value) { SetMaintenanceOptions(value); return *this;} /** *

The maintenance options of your instance.

*/ inline AwsEc2LaunchTemplateDataDetails& WithMaintenanceOptions(AwsEc2LaunchTemplateDataMaintenanceOptionsDetails&& value) { SetMaintenanceOptions(std::move(value)); return *this;} /** *

The metadata options for the instance. For more information, see Instance * metadata and user data in the Amazon EC2 User Guide.

*/ inline const AwsEc2LaunchTemplateDataMetadataOptionsDetails& GetMetadataOptions() const{ return m_metadataOptions; } /** *

The metadata options for the instance. For more information, see Instance * metadata and user data in the Amazon EC2 User Guide.

*/ inline bool MetadataOptionsHasBeenSet() const { return m_metadataOptionsHasBeenSet; } /** *

The metadata options for the instance. For more information, see Instance * metadata and user data in the Amazon EC2 User Guide.

*/ inline void SetMetadataOptions(const AwsEc2LaunchTemplateDataMetadataOptionsDetails& value) { m_metadataOptionsHasBeenSet = true; m_metadataOptions = value; } /** *

The metadata options for the instance. For more information, see Instance * metadata and user data in the Amazon EC2 User Guide.

*/ inline void SetMetadataOptions(AwsEc2LaunchTemplateDataMetadataOptionsDetails&& value) { m_metadataOptionsHasBeenSet = true; m_metadataOptions = std::move(value); } /** *

The metadata options for the instance. For more information, see Instance * metadata and user data in the Amazon EC2 User Guide.

*/ inline AwsEc2LaunchTemplateDataDetails& WithMetadataOptions(const AwsEc2LaunchTemplateDataMetadataOptionsDetails& value) { SetMetadataOptions(value); return *this;} /** *

The metadata options for the instance. For more information, see Instance * metadata and user data in the Amazon EC2 User Guide.

*/ inline AwsEc2LaunchTemplateDataDetails& WithMetadataOptions(AwsEc2LaunchTemplateDataMetadataOptionsDetails&& value) { SetMetadataOptions(std::move(value)); return *this;} /** *

The monitoring for the instance.

*/ inline const AwsEc2LaunchTemplateDataMonitoringDetails& GetMonitoring() const{ return m_monitoring; } /** *

The monitoring for the instance.

*/ inline bool MonitoringHasBeenSet() const { return m_monitoringHasBeenSet; } /** *

The monitoring for the instance.

*/ inline void SetMonitoring(const AwsEc2LaunchTemplateDataMonitoringDetails& value) { m_monitoringHasBeenSet = true; m_monitoring = value; } /** *

The monitoring for the instance.

*/ inline void SetMonitoring(AwsEc2LaunchTemplateDataMonitoringDetails&& value) { m_monitoringHasBeenSet = true; m_monitoring = std::move(value); } /** *

The monitoring for the instance.

*/ inline AwsEc2LaunchTemplateDataDetails& WithMonitoring(const AwsEc2LaunchTemplateDataMonitoringDetails& value) { SetMonitoring(value); return *this;} /** *

The monitoring for the instance.

*/ inline AwsEc2LaunchTemplateDataDetails& WithMonitoring(AwsEc2LaunchTemplateDataMonitoringDetails&& value) { SetMonitoring(std::move(value)); return *this;} /** *

Specifies the parameters for a network interface that is attached to the * instance.

*/ inline const Aws::Vector& GetNetworkInterfaceSet() const{ return m_networkInterfaceSet; } /** *

Specifies the parameters for a network interface that is attached to the * instance.

*/ inline bool NetworkInterfaceSetHasBeenSet() const { return m_networkInterfaceSetHasBeenSet; } /** *

Specifies the parameters for a network interface that is attached to the * instance.

*/ inline void SetNetworkInterfaceSet(const Aws::Vector& value) { m_networkInterfaceSetHasBeenSet = true; m_networkInterfaceSet = value; } /** *

Specifies the parameters for a network interface that is attached to the * instance.

*/ inline void SetNetworkInterfaceSet(Aws::Vector&& value) { m_networkInterfaceSetHasBeenSet = true; m_networkInterfaceSet = std::move(value); } /** *

Specifies the parameters for a network interface that is attached to the * instance.

*/ inline AwsEc2LaunchTemplateDataDetails& WithNetworkInterfaceSet(const Aws::Vector& value) { SetNetworkInterfaceSet(value); return *this;} /** *

Specifies the parameters for a network interface that is attached to the * instance.

*/ inline AwsEc2LaunchTemplateDataDetails& WithNetworkInterfaceSet(Aws::Vector&& value) { SetNetworkInterfaceSet(std::move(value)); return *this;} /** *

Specifies the parameters for a network interface that is attached to the * instance.

*/ inline AwsEc2LaunchTemplateDataDetails& AddNetworkInterfaceSet(const AwsEc2LaunchTemplateDataNetworkInterfaceSetDetails& value) { m_networkInterfaceSetHasBeenSet = true; m_networkInterfaceSet.push_back(value); return *this; } /** *

Specifies the parameters for a network interface that is attached to the * instance.

*/ inline AwsEc2LaunchTemplateDataDetails& AddNetworkInterfaceSet(AwsEc2LaunchTemplateDataNetworkInterfaceSetDetails&& value) { m_networkInterfaceSetHasBeenSet = true; m_networkInterfaceSet.push_back(std::move(value)); return *this; } /** *

Specifies the placement of an instance.

*/ inline const AwsEc2LaunchTemplateDataPlacementDetails& GetPlacement() const{ return m_placement; } /** *

Specifies the placement of an instance.

*/ inline bool PlacementHasBeenSet() const { return m_placementHasBeenSet; } /** *

Specifies the placement of an instance.

*/ inline void SetPlacement(const AwsEc2LaunchTemplateDataPlacementDetails& value) { m_placementHasBeenSet = true; m_placement = value; } /** *

Specifies the placement of an instance.

*/ inline void SetPlacement(AwsEc2LaunchTemplateDataPlacementDetails&& value) { m_placementHasBeenSet = true; m_placement = std::move(value); } /** *

Specifies the placement of an instance.

*/ inline AwsEc2LaunchTemplateDataDetails& WithPlacement(const AwsEc2LaunchTemplateDataPlacementDetails& value) { SetPlacement(value); return *this;} /** *

Specifies the placement of an instance.

*/ inline AwsEc2LaunchTemplateDataDetails& WithPlacement(AwsEc2LaunchTemplateDataPlacementDetails&& value) { SetPlacement(std::move(value)); return *this;} /** *

The options for the instance hostname.

*/ inline const AwsEc2LaunchTemplateDataPrivateDnsNameOptionsDetails& GetPrivateDnsNameOptions() const{ return m_privateDnsNameOptions; } /** *

The options for the instance hostname.

*/ inline bool PrivateDnsNameOptionsHasBeenSet() const { return m_privateDnsNameOptionsHasBeenSet; } /** *

The options for the instance hostname.

*/ inline void SetPrivateDnsNameOptions(const AwsEc2LaunchTemplateDataPrivateDnsNameOptionsDetails& value) { m_privateDnsNameOptionsHasBeenSet = true; m_privateDnsNameOptions = value; } /** *

The options for the instance hostname.

*/ inline void SetPrivateDnsNameOptions(AwsEc2LaunchTemplateDataPrivateDnsNameOptionsDetails&& value) { m_privateDnsNameOptionsHasBeenSet = true; m_privateDnsNameOptions = std::move(value); } /** *

The options for the instance hostname.

*/ inline AwsEc2LaunchTemplateDataDetails& WithPrivateDnsNameOptions(const AwsEc2LaunchTemplateDataPrivateDnsNameOptionsDetails& value) { SetPrivateDnsNameOptions(value); return *this;} /** *

The options for the instance hostname.

*/ inline AwsEc2LaunchTemplateDataDetails& WithPrivateDnsNameOptions(AwsEc2LaunchTemplateDataPrivateDnsNameOptionsDetails&& value) { SetPrivateDnsNameOptions(std::move(value)); return *this;} /** *

The ID of the RAM disk.

*/ inline const Aws::String& GetRamDiskId() const{ return m_ramDiskId; } /** *

The ID of the RAM disk.

*/ inline bool RamDiskIdHasBeenSet() const { return m_ramDiskIdHasBeenSet; } /** *

The ID of the RAM disk.

*/ inline void SetRamDiskId(const Aws::String& value) { m_ramDiskIdHasBeenSet = true; m_ramDiskId = value; } /** *

The ID of the RAM disk.

*/ inline void SetRamDiskId(Aws::String&& value) { m_ramDiskIdHasBeenSet = true; m_ramDiskId = std::move(value); } /** *

The ID of the RAM disk.

*/ inline void SetRamDiskId(const char* value) { m_ramDiskIdHasBeenSet = true; m_ramDiskId.assign(value); } /** *

The ID of the RAM disk.

*/ inline AwsEc2LaunchTemplateDataDetails& WithRamDiskId(const Aws::String& value) { SetRamDiskId(value); return *this;} /** *

The ID of the RAM disk.

*/ inline AwsEc2LaunchTemplateDataDetails& WithRamDiskId(Aws::String&& value) { SetRamDiskId(std::move(value)); return *this;} /** *

The ID of the RAM disk.

*/ inline AwsEc2LaunchTemplateDataDetails& WithRamDiskId(const char* value) { SetRamDiskId(value); return *this;} /** *

One or more security group IDs.

*/ inline const Aws::Vector& GetSecurityGroupIdSet() const{ return m_securityGroupIdSet; } /** *

One or more security group IDs.

*/ inline bool SecurityGroupIdSetHasBeenSet() const { return m_securityGroupIdSetHasBeenSet; } /** *

One or more security group IDs.

*/ inline void SetSecurityGroupIdSet(const Aws::Vector& value) { m_securityGroupIdSetHasBeenSet = true; m_securityGroupIdSet = value; } /** *

One or more security group IDs.

*/ inline void SetSecurityGroupIdSet(Aws::Vector&& value) { m_securityGroupIdSetHasBeenSet = true; m_securityGroupIdSet = std::move(value); } /** *

One or more security group IDs.

*/ inline AwsEc2LaunchTemplateDataDetails& WithSecurityGroupIdSet(const Aws::Vector& value) { SetSecurityGroupIdSet(value); return *this;} /** *

One or more security group IDs.

*/ inline AwsEc2LaunchTemplateDataDetails& WithSecurityGroupIdSet(Aws::Vector&& value) { SetSecurityGroupIdSet(std::move(value)); return *this;} /** *

One or more security group IDs.

*/ inline AwsEc2LaunchTemplateDataDetails& AddSecurityGroupIdSet(const Aws::String& value) { m_securityGroupIdSetHasBeenSet = true; m_securityGroupIdSet.push_back(value); return *this; } /** *

One or more security group IDs.

*/ inline AwsEc2LaunchTemplateDataDetails& AddSecurityGroupIdSet(Aws::String&& value) { m_securityGroupIdSetHasBeenSet = true; m_securityGroupIdSet.push_back(std::move(value)); return *this; } /** *

One or more security group IDs.

*/ inline AwsEc2LaunchTemplateDataDetails& AddSecurityGroupIdSet(const char* value) { m_securityGroupIdSetHasBeenSet = true; m_securityGroupIdSet.push_back(value); return *this; } /** *

One or more security group names. For a nondefault VPC, you must use * security group IDs instead. You cannot specify both a security group ID and * security name in the same request.

*/ inline const Aws::Vector& GetSecurityGroupSet() const{ return m_securityGroupSet; } /** *

One or more security group names. For a nondefault VPC, you must use * security group IDs instead. You cannot specify both a security group ID and * security name in the same request.

*/ inline bool SecurityGroupSetHasBeenSet() const { return m_securityGroupSetHasBeenSet; } /** *

One or more security group names. For a nondefault VPC, you must use * security group IDs instead. You cannot specify both a security group ID and * security name in the same request.

*/ inline void SetSecurityGroupSet(const Aws::Vector& value) { m_securityGroupSetHasBeenSet = true; m_securityGroupSet = value; } /** *

One or more security group names. For a nondefault VPC, you must use * security group IDs instead. You cannot specify both a security group ID and * security name in the same request.

*/ inline void SetSecurityGroupSet(Aws::Vector&& value) { m_securityGroupSetHasBeenSet = true; m_securityGroupSet = std::move(value); } /** *

One or more security group names. For a nondefault VPC, you must use * security group IDs instead. You cannot specify both a security group ID and * security name in the same request.

*/ inline AwsEc2LaunchTemplateDataDetails& WithSecurityGroupSet(const Aws::Vector& value) { SetSecurityGroupSet(value); return *this;} /** *

One or more security group names. For a nondefault VPC, you must use * security group IDs instead. You cannot specify both a security group ID and * security name in the same request.

*/ inline AwsEc2LaunchTemplateDataDetails& WithSecurityGroupSet(Aws::Vector&& value) { SetSecurityGroupSet(std::move(value)); return *this;} /** *

One or more security group names. For a nondefault VPC, you must use * security group IDs instead. You cannot specify both a security group ID and * security name in the same request.

*/ inline AwsEc2LaunchTemplateDataDetails& AddSecurityGroupSet(const Aws::String& value) { m_securityGroupSetHasBeenSet = true; m_securityGroupSet.push_back(value); return *this; } /** *

One or more security group names. For a nondefault VPC, you must use * security group IDs instead. You cannot specify both a security group ID and * security name in the same request.

*/ inline AwsEc2LaunchTemplateDataDetails& AddSecurityGroupSet(Aws::String&& value) { m_securityGroupSetHasBeenSet = true; m_securityGroupSet.push_back(std::move(value)); return *this; } /** *

One or more security group names. For a nondefault VPC, you must use * security group IDs instead. You cannot specify both a security group ID and * security name in the same request.

*/ inline AwsEc2LaunchTemplateDataDetails& AddSecurityGroupSet(const char* value) { m_securityGroupSetHasBeenSet = true; m_securityGroupSet.push_back(value); return *this; } /** *

The user data to make available to the instance.

*/ inline const Aws::String& GetUserData() const{ return m_userData; } /** *

The user data to make available to the instance.

*/ inline bool UserDataHasBeenSet() const { return m_userDataHasBeenSet; } /** *

The user data to make available to the instance.

*/ inline void SetUserData(const Aws::String& value) { m_userDataHasBeenSet = true; m_userData = value; } /** *

The user data to make available to the instance.

*/ inline void SetUserData(Aws::String&& value) { m_userDataHasBeenSet = true; m_userData = std::move(value); } /** *

The user data to make available to the instance.

*/ inline void SetUserData(const char* value) { m_userDataHasBeenSet = true; m_userData.assign(value); } /** *

The user data to make available to the instance.

*/ inline AwsEc2LaunchTemplateDataDetails& WithUserData(const Aws::String& value) { SetUserData(value); return *this;} /** *

The user data to make available to the instance.

*/ inline AwsEc2LaunchTemplateDataDetails& WithUserData(Aws::String&& value) { SetUserData(std::move(value)); return *this;} /** *

The user data to make available to the instance.

*/ inline AwsEc2LaunchTemplateDataDetails& WithUserData(const char* value) { SetUserData(value); return *this;} private: Aws::Vector m_blockDeviceMappingSet; bool m_blockDeviceMappingSetHasBeenSet = false; AwsEc2LaunchTemplateDataCapacityReservationSpecificationDetails m_capacityReservationSpecification; bool m_capacityReservationSpecificationHasBeenSet = false; AwsEc2LaunchTemplateDataCpuOptionsDetails m_cpuOptions; bool m_cpuOptionsHasBeenSet = false; AwsEc2LaunchTemplateDataCreditSpecificationDetails m_creditSpecification; bool m_creditSpecificationHasBeenSet = false; bool m_disableApiStop; bool m_disableApiStopHasBeenSet = false; bool m_disableApiTermination; bool m_disableApiTerminationHasBeenSet = false; bool m_ebsOptimized; bool m_ebsOptimizedHasBeenSet = false; Aws::Vector m_elasticGpuSpecificationSet; bool m_elasticGpuSpecificationSetHasBeenSet = false; Aws::Vector m_elasticInferenceAcceleratorSet; bool m_elasticInferenceAcceleratorSetHasBeenSet = false; AwsEc2LaunchTemplateDataEnclaveOptionsDetails m_enclaveOptions; bool m_enclaveOptionsHasBeenSet = false; AwsEc2LaunchTemplateDataHibernationOptionsDetails m_hibernationOptions; bool m_hibernationOptionsHasBeenSet = false; AwsEc2LaunchTemplateDataIamInstanceProfileDetails m_iamInstanceProfile; bool m_iamInstanceProfileHasBeenSet = false; Aws::String m_imageId; bool m_imageIdHasBeenSet = false; Aws::String m_instanceInitiatedShutdownBehavior; bool m_instanceInitiatedShutdownBehaviorHasBeenSet = false; AwsEc2LaunchTemplateDataInstanceMarketOptionsDetails m_instanceMarketOptions; bool m_instanceMarketOptionsHasBeenSet = false; AwsEc2LaunchTemplateDataInstanceRequirementsDetails m_instanceRequirements; bool m_instanceRequirementsHasBeenSet = false; Aws::String m_instanceType; bool m_instanceTypeHasBeenSet = false; Aws::String m_kernelId; bool m_kernelIdHasBeenSet = false; Aws::String m_keyName; bool m_keyNameHasBeenSet = false; Aws::Vector m_licenseSet; bool m_licenseSetHasBeenSet = false; AwsEc2LaunchTemplateDataMaintenanceOptionsDetails m_maintenanceOptions; bool m_maintenanceOptionsHasBeenSet = false; AwsEc2LaunchTemplateDataMetadataOptionsDetails m_metadataOptions; bool m_metadataOptionsHasBeenSet = false; AwsEc2LaunchTemplateDataMonitoringDetails m_monitoring; bool m_monitoringHasBeenSet = false; Aws::Vector m_networkInterfaceSet; bool m_networkInterfaceSetHasBeenSet = false; AwsEc2LaunchTemplateDataPlacementDetails m_placement; bool m_placementHasBeenSet = false; AwsEc2LaunchTemplateDataPrivateDnsNameOptionsDetails m_privateDnsNameOptions; bool m_privateDnsNameOptionsHasBeenSet = false; Aws::String m_ramDiskId; bool m_ramDiskIdHasBeenSet = false; Aws::Vector m_securityGroupIdSet; bool m_securityGroupIdSetHasBeenSet = false; Aws::Vector m_securityGroupSet; bool m_securityGroupSetHasBeenSet = false; Aws::String m_userData; bool m_userDataHasBeenSet = false; }; } // namespace Model } // namespace SecurityHub } // namespace Aws