/** * 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 namespace Aws { namespace EC2 { namespace Model { /** */ class AWS_EC2_API ModifyInstanceAttributeRequest : public EC2Request { public: ModifyInstanceAttributeRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "ModifyInstanceAttribute"; } Aws::String SerializePayload() const override; protected: void DumpBodyToUrl(Aws::Http::URI& uri ) const override; public: /** *

Specifies whether source/destination checking is enabled. A value of * true means that checking is enabled, and false means * that checking is disabled. This value must be false for a NAT * instance to perform NAT.

*/ inline const AttributeBooleanValue& GetSourceDestCheck() const{ return m_sourceDestCheck; } /** *

Specifies whether source/destination checking is enabled. A value of * true means that checking is enabled, and false means * that checking is disabled. This value must be false for a NAT * instance to perform NAT.

*/ inline bool SourceDestCheckHasBeenSet() const { return m_sourceDestCheckHasBeenSet; } /** *

Specifies whether source/destination checking is enabled. A value of * true means that checking is enabled, and false means * that checking is disabled. This value must be false for a NAT * instance to perform NAT.

*/ inline void SetSourceDestCheck(const AttributeBooleanValue& value) { m_sourceDestCheckHasBeenSet = true; m_sourceDestCheck = value; } /** *

Specifies whether source/destination checking is enabled. A value of * true means that checking is enabled, and false means * that checking is disabled. This value must be false for a NAT * instance to perform NAT.

*/ inline void SetSourceDestCheck(AttributeBooleanValue&& value) { m_sourceDestCheckHasBeenSet = true; m_sourceDestCheck = std::move(value); } /** *

Specifies whether source/destination checking is enabled. A value of * true means that checking is enabled, and false means * that checking is disabled. This value must be false for a NAT * instance to perform NAT.

*/ inline ModifyInstanceAttributeRequest& WithSourceDestCheck(const AttributeBooleanValue& value) { SetSourceDestCheck(value); return *this;} /** *

Specifies whether source/destination checking is enabled. A value of * true means that checking is enabled, and false means * that checking is disabled. This value must be false for a NAT * instance to perform NAT.

*/ inline ModifyInstanceAttributeRequest& WithSourceDestCheck(AttributeBooleanValue&& value) { SetSourceDestCheck(std::move(value)); return *this;} /** *

The name of the attribute.

*/ inline const InstanceAttributeName& GetAttribute() const{ return m_attribute; } /** *

The name of the attribute.

*/ inline bool AttributeHasBeenSet() const { return m_attributeHasBeenSet; } /** *

The name of the attribute.

*/ inline void SetAttribute(const InstanceAttributeName& value) { m_attributeHasBeenSet = true; m_attribute = value; } /** *

The name of the attribute.

*/ inline void SetAttribute(InstanceAttributeName&& value) { m_attributeHasBeenSet = true; m_attribute = std::move(value); } /** *

The name of the attribute.

*/ inline ModifyInstanceAttributeRequest& WithAttribute(const InstanceAttributeName& value) { SetAttribute(value); return *this;} /** *

The name of the attribute.

*/ inline ModifyInstanceAttributeRequest& WithAttribute(InstanceAttributeName&& value) { SetAttribute(std::move(value)); return *this;} /** *

Modifies the DeleteOnTermination attribute for volumes that are * currently attached. The volume must be owned by the caller. If no value is * specified for DeleteOnTermination, the default is true * and the volume is deleted when the instance is terminated.

To add * instance store volumes to an Amazon EBS-backed instance, you must add them when * you launch the instance. For more information, see Updating * the block device mapping when launching an instance in the Amazon Elastic * Compute Cloud User Guide.

*/ inline const Aws::Vector& GetBlockDeviceMappings() const{ return m_blockDeviceMappings; } /** *

Modifies the DeleteOnTermination attribute for volumes that are * currently attached. The volume must be owned by the caller. If no value is * specified for DeleteOnTermination, the default is true * and the volume is deleted when the instance is terminated.

To add * instance store volumes to an Amazon EBS-backed instance, you must add them when * you launch the instance. For more information, see Updating * the block device mapping when launching an instance in the Amazon Elastic * Compute Cloud User Guide.

*/ inline bool BlockDeviceMappingsHasBeenSet() const { return m_blockDeviceMappingsHasBeenSet; } /** *

Modifies the DeleteOnTermination attribute for volumes that are * currently attached. The volume must be owned by the caller. If no value is * specified for DeleteOnTermination, the default is true * and the volume is deleted when the instance is terminated.

To add * instance store volumes to an Amazon EBS-backed instance, you must add them when * you launch the instance. For more information, see Updating * the block device mapping when launching an instance in the Amazon Elastic * Compute Cloud User Guide.

*/ inline void SetBlockDeviceMappings(const Aws::Vector& value) { m_blockDeviceMappingsHasBeenSet = true; m_blockDeviceMappings = value; } /** *

Modifies the DeleteOnTermination attribute for volumes that are * currently attached. The volume must be owned by the caller. If no value is * specified for DeleteOnTermination, the default is true * and the volume is deleted when the instance is terminated.

To add * instance store volumes to an Amazon EBS-backed instance, you must add them when * you launch the instance. For more information, see Updating * the block device mapping when launching an instance in the Amazon Elastic * Compute Cloud User Guide.

*/ inline void SetBlockDeviceMappings(Aws::Vector&& value) { m_blockDeviceMappingsHasBeenSet = true; m_blockDeviceMappings = std::move(value); } /** *

Modifies the DeleteOnTermination attribute for volumes that are * currently attached. The volume must be owned by the caller. If no value is * specified for DeleteOnTermination, the default is true * and the volume is deleted when the instance is terminated.

To add * instance store volumes to an Amazon EBS-backed instance, you must add them when * you launch the instance. For more information, see Updating * the block device mapping when launching an instance in the Amazon Elastic * Compute Cloud User Guide.

*/ inline ModifyInstanceAttributeRequest& WithBlockDeviceMappings(const Aws::Vector& value) { SetBlockDeviceMappings(value); return *this;} /** *

Modifies the DeleteOnTermination attribute for volumes that are * currently attached. The volume must be owned by the caller. If no value is * specified for DeleteOnTermination, the default is true * and the volume is deleted when the instance is terminated.

To add * instance store volumes to an Amazon EBS-backed instance, you must add them when * you launch the instance. For more information, see Updating * the block device mapping when launching an instance in the Amazon Elastic * Compute Cloud User Guide.

*/ inline ModifyInstanceAttributeRequest& WithBlockDeviceMappings(Aws::Vector&& value) { SetBlockDeviceMappings(std::move(value)); return *this;} /** *

Modifies the DeleteOnTermination attribute for volumes that are * currently attached. The volume must be owned by the caller. If no value is * specified for DeleteOnTermination, the default is true * and the volume is deleted when the instance is terminated.

To add * instance store volumes to an Amazon EBS-backed instance, you must add them when * you launch the instance. For more information, see Updating * the block device mapping when launching an instance in the Amazon Elastic * Compute Cloud User Guide.

*/ inline ModifyInstanceAttributeRequest& AddBlockDeviceMappings(const InstanceBlockDeviceMappingSpecification& value) { m_blockDeviceMappingsHasBeenSet = true; m_blockDeviceMappings.push_back(value); return *this; } /** *

Modifies the DeleteOnTermination attribute for volumes that are * currently attached. The volume must be owned by the caller. If no value is * specified for DeleteOnTermination, the default is true * and the volume is deleted when the instance is terminated.

To add * instance store volumes to an Amazon EBS-backed instance, you must add them when * you launch the instance. For more information, see Updating * the block device mapping when launching an instance in the Amazon Elastic * Compute Cloud User Guide.

*/ inline ModifyInstanceAttributeRequest& AddBlockDeviceMappings(InstanceBlockDeviceMappingSpecification&& value) { m_blockDeviceMappingsHasBeenSet = true; m_blockDeviceMappings.push_back(std::move(value)); return *this; } /** *

If the value is true, you can't terminate the instance using the * Amazon EC2 console, CLI, or API; otherwise, you can. You cannot use this * parameter for Spot Instances.

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

If the value is true, you can't terminate the instance using the * Amazon EC2 console, CLI, or API; otherwise, you can. You cannot use this * parameter for Spot Instances.

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

If the value is true, you can't terminate the instance using the * Amazon EC2 console, CLI, or API; otherwise, you can. You cannot use this * parameter for Spot Instances.

*/ inline void SetDisableApiTermination(const AttributeBooleanValue& value) { m_disableApiTerminationHasBeenSet = true; m_disableApiTermination = value; } /** *

If the value is true, you can't terminate the instance using the * Amazon EC2 console, CLI, or API; otherwise, you can. You cannot use this * parameter for Spot Instances.

*/ inline void SetDisableApiTermination(AttributeBooleanValue&& value) { m_disableApiTerminationHasBeenSet = true; m_disableApiTermination = std::move(value); } /** *

If the value is true, you can't terminate the instance using the * Amazon EC2 console, CLI, or API; otherwise, you can. You cannot use this * parameter for Spot Instances.

*/ inline ModifyInstanceAttributeRequest& WithDisableApiTermination(const AttributeBooleanValue& value) { SetDisableApiTermination(value); return *this;} /** *

If the value is true, you can't terminate the instance using the * Amazon EC2 console, CLI, or API; otherwise, you can. You cannot use this * parameter for Spot Instances.

*/ inline ModifyInstanceAttributeRequest& WithDisableApiTermination(AttributeBooleanValue&& value) { SetDisableApiTermination(std::move(value)); return *this;} /** *

Checks whether you have the required permissions for the action, without * actually making the request, and provides an error response. If you have the * required permissions, the error response is DryRunOperation. * Otherwise, it is UnauthorizedOperation.

*/ inline bool GetDryRun() const{ return m_dryRun; } /** *

Checks whether you have the required permissions for the action, without * actually making the request, and provides an error response. If you have the * required permissions, the error response is DryRunOperation. * Otherwise, it is UnauthorizedOperation.

*/ inline bool DryRunHasBeenSet() const { return m_dryRunHasBeenSet; } /** *

Checks whether you have the required permissions for the action, without * actually making the request, and provides an error response. If you have the * required permissions, the error response is DryRunOperation. * Otherwise, it is UnauthorizedOperation.

*/ inline void SetDryRun(bool value) { m_dryRunHasBeenSet = true; m_dryRun = value; } /** *

Checks whether you have the required permissions for the action, without * actually making the request, and provides an error response. If you have the * required permissions, the error response is DryRunOperation. * Otherwise, it is UnauthorizedOperation.

*/ inline ModifyInstanceAttributeRequest& WithDryRun(bool value) { SetDryRun(value); return *this;} /** *

Specifies whether the instance is optimized for Amazon EBS I/O. This * optimization provides dedicated throughput to Amazon EBS and an optimized * configuration stack to provide optimal EBS I/O performance. This optimization * isn't available with all instance types. Additional usage charges apply when * using an EBS Optimized instance.

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

Specifies whether the instance is optimized for Amazon EBS I/O. This * optimization provides dedicated throughput to Amazon EBS and an optimized * configuration stack to provide optimal EBS I/O performance. This optimization * isn't available with all instance types. Additional usage charges apply when * using an EBS Optimized instance.

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

Specifies whether the instance is optimized for Amazon EBS I/O. This * optimization provides dedicated throughput to Amazon EBS and an optimized * configuration stack to provide optimal EBS I/O performance. This optimization * isn't available with all instance types. Additional usage charges apply when * using an EBS Optimized instance.

*/ inline void SetEbsOptimized(const AttributeBooleanValue& value) { m_ebsOptimizedHasBeenSet = true; m_ebsOptimized = value; } /** *

Specifies whether the instance is optimized for Amazon EBS I/O. This * optimization provides dedicated throughput to Amazon EBS and an optimized * configuration stack to provide optimal EBS I/O performance. This optimization * isn't available with all instance types. Additional usage charges apply when * using an EBS Optimized instance.

*/ inline void SetEbsOptimized(AttributeBooleanValue&& value) { m_ebsOptimizedHasBeenSet = true; m_ebsOptimized = std::move(value); } /** *

Specifies whether the instance is optimized for Amazon EBS I/O. This * optimization provides dedicated throughput to Amazon EBS and an optimized * configuration stack to provide optimal EBS I/O performance. This optimization * isn't available with all instance types. Additional usage charges apply when * using an EBS Optimized instance.

*/ inline ModifyInstanceAttributeRequest& WithEbsOptimized(const AttributeBooleanValue& value) { SetEbsOptimized(value); return *this;} /** *

Specifies whether the instance is optimized for Amazon EBS I/O. This * optimization provides dedicated throughput to Amazon EBS and an optimized * configuration stack to provide optimal EBS I/O performance. This optimization * isn't available with all instance types. Additional usage charges apply when * using an EBS Optimized instance.

*/ inline ModifyInstanceAttributeRequest& WithEbsOptimized(AttributeBooleanValue&& value) { SetEbsOptimized(std::move(value)); return *this;} /** *

Set to true to enable enhanced networking with ENA for the * instance.

This option is supported only for HVM instances. Specifying * this option with a PV instance can make it unreachable.

*/ inline const AttributeBooleanValue& GetEnaSupport() const{ return m_enaSupport; } /** *

Set to true to enable enhanced networking with ENA for the * instance.

This option is supported only for HVM instances. Specifying * this option with a PV instance can make it unreachable.

*/ inline bool EnaSupportHasBeenSet() const { return m_enaSupportHasBeenSet; } /** *

Set to true to enable enhanced networking with ENA for the * instance.

This option is supported only for HVM instances. Specifying * this option with a PV instance can make it unreachable.

*/ inline void SetEnaSupport(const AttributeBooleanValue& value) { m_enaSupportHasBeenSet = true; m_enaSupport = value; } /** *

Set to true to enable enhanced networking with ENA for the * instance.

This option is supported only for HVM instances. Specifying * this option with a PV instance can make it unreachable.

*/ inline void SetEnaSupport(AttributeBooleanValue&& value) { m_enaSupportHasBeenSet = true; m_enaSupport = std::move(value); } /** *

Set to true to enable enhanced networking with ENA for the * instance.

This option is supported only for HVM instances. Specifying * this option with a PV instance can make it unreachable.

*/ inline ModifyInstanceAttributeRequest& WithEnaSupport(const AttributeBooleanValue& value) { SetEnaSupport(value); return *this;} /** *

Set to true to enable enhanced networking with ENA for the * instance.

This option is supported only for HVM instances. Specifying * this option with a PV instance can make it unreachable.

*/ inline ModifyInstanceAttributeRequest& WithEnaSupport(AttributeBooleanValue&& value) { SetEnaSupport(std::move(value)); return *this;} /** *

[EC2-VPC] Changes the security groups of the instance. You must specify at * least one security group, even if it's just the default security group for the * VPC. You must specify the security group ID, not the security group name.

*/ inline const Aws::Vector& GetGroups() const{ return m_groups; } /** *

[EC2-VPC] Changes the security groups of the instance. You must specify at * least one security group, even if it's just the default security group for the * VPC. You must specify the security group ID, not the security group name.

*/ inline bool GroupsHasBeenSet() const { return m_groupsHasBeenSet; } /** *

[EC2-VPC] Changes the security groups of the instance. You must specify at * least one security group, even if it's just the default security group for the * VPC. You must specify the security group ID, not the security group name.

*/ inline void SetGroups(const Aws::Vector& value) { m_groupsHasBeenSet = true; m_groups = value; } /** *

[EC2-VPC] Changes the security groups of the instance. You must specify at * least one security group, even if it's just the default security group for the * VPC. You must specify the security group ID, not the security group name.

*/ inline void SetGroups(Aws::Vector&& value) { m_groupsHasBeenSet = true; m_groups = std::move(value); } /** *

[EC2-VPC] Changes the security groups of the instance. You must specify at * least one security group, even if it's just the default security group for the * VPC. You must specify the security group ID, not the security group name.

*/ inline ModifyInstanceAttributeRequest& WithGroups(const Aws::Vector& value) { SetGroups(value); return *this;} /** *

[EC2-VPC] Changes the security groups of the instance. You must specify at * least one security group, even if it's just the default security group for the * VPC. You must specify the security group ID, not the security group name.

*/ inline ModifyInstanceAttributeRequest& WithGroups(Aws::Vector&& value) { SetGroups(std::move(value)); return *this;} /** *

[EC2-VPC] Changes the security groups of the instance. You must specify at * least one security group, even if it's just the default security group for the * VPC. You must specify the security group ID, not the security group name.

*/ inline ModifyInstanceAttributeRequest& AddGroups(const Aws::String& value) { m_groupsHasBeenSet = true; m_groups.push_back(value); return *this; } /** *

[EC2-VPC] Changes the security groups of the instance. You must specify at * least one security group, even if it's just the default security group for the * VPC. You must specify the security group ID, not the security group name.

*/ inline ModifyInstanceAttributeRequest& AddGroups(Aws::String&& value) { m_groupsHasBeenSet = true; m_groups.push_back(std::move(value)); return *this; } /** *

[EC2-VPC] Changes the security groups of the instance. You must specify at * least one security group, even if it's just the default security group for the * VPC. You must specify the security group ID, not the security group name.

*/ inline ModifyInstanceAttributeRequest& AddGroups(const char* value) { m_groupsHasBeenSet = true; m_groups.push_back(value); return *this; } /** *

The ID of the instance.

*/ inline const Aws::String& GetInstanceId() const{ return m_instanceId; } /** *

The ID of the instance.

*/ inline bool InstanceIdHasBeenSet() const { return m_instanceIdHasBeenSet; } /** *

The ID of the instance.

*/ inline void SetInstanceId(const Aws::String& value) { m_instanceIdHasBeenSet = true; m_instanceId = value; } /** *

The ID of the instance.

*/ inline void SetInstanceId(Aws::String&& value) { m_instanceIdHasBeenSet = true; m_instanceId = std::move(value); } /** *

The ID of the instance.

*/ inline void SetInstanceId(const char* value) { m_instanceIdHasBeenSet = true; m_instanceId.assign(value); } /** *

The ID of the instance.

*/ inline ModifyInstanceAttributeRequest& WithInstanceId(const Aws::String& value) { SetInstanceId(value); return *this;} /** *

The ID of the instance.

*/ inline ModifyInstanceAttributeRequest& WithInstanceId(Aws::String&& value) { SetInstanceId(std::move(value)); return *this;} /** *

The ID of the instance.

*/ inline ModifyInstanceAttributeRequest& WithInstanceId(const char* value) { SetInstanceId(value); return *this;} /** *

Specifies whether an instance stops or terminates when you initiate shutdown * from the instance (using the operating system command for system shutdown).

*/ inline const AttributeValue& GetInstanceInitiatedShutdownBehavior() const{ return m_instanceInitiatedShutdownBehavior; } /** *

Specifies whether an instance stops or terminates when you initiate shutdown * from the instance (using the operating system command for system shutdown).

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

Specifies whether an instance stops or terminates when you initiate shutdown * from the instance (using the operating system command for system shutdown).

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

Specifies whether an instance stops or terminates when you initiate shutdown * from the instance (using the operating system command for system shutdown).

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

Specifies whether an instance stops or terminates when you initiate shutdown * from the instance (using the operating system command for system shutdown).

*/ inline ModifyInstanceAttributeRequest& WithInstanceInitiatedShutdownBehavior(const AttributeValue& value) { SetInstanceInitiatedShutdownBehavior(value); return *this;} /** *

Specifies whether an instance stops or terminates when you initiate shutdown * from the instance (using the operating system command for system shutdown).

*/ inline ModifyInstanceAttributeRequest& WithInstanceInitiatedShutdownBehavior(AttributeValue&& value) { SetInstanceInitiatedShutdownBehavior(std::move(value)); return *this;} /** *

Changes the instance type to the specified value. For more information, see * Instance * types. If the instance type is not valid, the error returned is * InvalidInstanceAttributeValue.

*/ inline const AttributeValue& GetInstanceType() const{ return m_instanceType; } /** *

Changes the instance type to the specified value. For more information, see * Instance * types. If the instance type is not valid, the error returned is * InvalidInstanceAttributeValue.

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

Changes the instance type to the specified value. For more information, see * Instance * types. If the instance type is not valid, the error returned is * InvalidInstanceAttributeValue.

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

Changes the instance type to the specified value. For more information, see * Instance * types. If the instance type is not valid, the error returned is * InvalidInstanceAttributeValue.

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

Changes the instance type to the specified value. For more information, see * Instance * types. If the instance type is not valid, the error returned is * InvalidInstanceAttributeValue.

*/ inline ModifyInstanceAttributeRequest& WithInstanceType(const AttributeValue& value) { SetInstanceType(value); return *this;} /** *

Changes the instance type to the specified value. For more information, see * Instance * types. If the instance type is not valid, the error returned is * InvalidInstanceAttributeValue.

*/ inline ModifyInstanceAttributeRequest& WithInstanceType(AttributeValue&& value) { SetInstanceType(std::move(value)); return *this;} /** *

Changes the instance's kernel to the specified value. We recommend that you * use PV-GRUB instead of kernels and RAM disks. For more information, see PV-GRUB.

*/ inline const AttributeValue& GetKernel() const{ return m_kernel; } /** *

Changes the instance's kernel to the specified value. We recommend that you * use PV-GRUB instead of kernels and RAM disks. For more information, see PV-GRUB.

*/ inline bool KernelHasBeenSet() const { return m_kernelHasBeenSet; } /** *

Changes the instance's kernel to the specified value. We recommend that you * use PV-GRUB instead of kernels and RAM disks. For more information, see PV-GRUB.

*/ inline void SetKernel(const AttributeValue& value) { m_kernelHasBeenSet = true; m_kernel = value; } /** *

Changes the instance's kernel to the specified value. We recommend that you * use PV-GRUB instead of kernels and RAM disks. For more information, see PV-GRUB.

*/ inline void SetKernel(AttributeValue&& value) { m_kernelHasBeenSet = true; m_kernel = std::move(value); } /** *

Changes the instance's kernel to the specified value. We recommend that you * use PV-GRUB instead of kernels and RAM disks. For more information, see PV-GRUB.

*/ inline ModifyInstanceAttributeRequest& WithKernel(const AttributeValue& value) { SetKernel(value); return *this;} /** *

Changes the instance's kernel to the specified value. We recommend that you * use PV-GRUB instead of kernels and RAM disks. For more information, see PV-GRUB.

*/ inline ModifyInstanceAttributeRequest& WithKernel(AttributeValue&& value) { SetKernel(std::move(value)); return *this;} /** *

Changes the instance's RAM disk to the specified value. We recommend that you * use PV-GRUB instead of kernels and RAM disks. For more information, see PV-GRUB.

*/ inline const AttributeValue& GetRamdisk() const{ return m_ramdisk; } /** *

Changes the instance's RAM disk to the specified value. We recommend that you * use PV-GRUB instead of kernels and RAM disks. For more information, see PV-GRUB.

*/ inline bool RamdiskHasBeenSet() const { return m_ramdiskHasBeenSet; } /** *

Changes the instance's RAM disk to the specified value. We recommend that you * use PV-GRUB instead of kernels and RAM disks. For more information, see PV-GRUB.

*/ inline void SetRamdisk(const AttributeValue& value) { m_ramdiskHasBeenSet = true; m_ramdisk = value; } /** *

Changes the instance's RAM disk to the specified value. We recommend that you * use PV-GRUB instead of kernels and RAM disks. For more information, see PV-GRUB.

*/ inline void SetRamdisk(AttributeValue&& value) { m_ramdiskHasBeenSet = true; m_ramdisk = std::move(value); } /** *

Changes the instance's RAM disk to the specified value. We recommend that you * use PV-GRUB instead of kernels and RAM disks. For more information, see PV-GRUB.

*/ inline ModifyInstanceAttributeRequest& WithRamdisk(const AttributeValue& value) { SetRamdisk(value); return *this;} /** *

Changes the instance's RAM disk to the specified value. We recommend that you * use PV-GRUB instead of kernels and RAM disks. For more information, see PV-GRUB.

*/ inline ModifyInstanceAttributeRequest& WithRamdisk(AttributeValue&& value) { SetRamdisk(std::move(value)); return *this;} /** *

Set to simple to enable enhanced networking with the Intel 82599 * Virtual Function interface for the instance.

There is no way to disable * enhanced networking with the Intel 82599 Virtual Function interface at this * time.

This option is supported only for HVM instances. Specifying this * option with a PV instance can make it unreachable.

*/ inline const AttributeValue& GetSriovNetSupport() const{ return m_sriovNetSupport; } /** *

Set to simple to enable enhanced networking with the Intel 82599 * Virtual Function interface for the instance.

There is no way to disable * enhanced networking with the Intel 82599 Virtual Function interface at this * time.

This option is supported only for HVM instances. Specifying this * option with a PV instance can make it unreachable.

*/ inline bool SriovNetSupportHasBeenSet() const { return m_sriovNetSupportHasBeenSet; } /** *

Set to simple to enable enhanced networking with the Intel 82599 * Virtual Function interface for the instance.

There is no way to disable * enhanced networking with the Intel 82599 Virtual Function interface at this * time.

This option is supported only for HVM instances. Specifying this * option with a PV instance can make it unreachable.

*/ inline void SetSriovNetSupport(const AttributeValue& value) { m_sriovNetSupportHasBeenSet = true; m_sriovNetSupport = value; } /** *

Set to simple to enable enhanced networking with the Intel 82599 * Virtual Function interface for the instance.

There is no way to disable * enhanced networking with the Intel 82599 Virtual Function interface at this * time.

This option is supported only for HVM instances. Specifying this * option with a PV instance can make it unreachable.

*/ inline void SetSriovNetSupport(AttributeValue&& value) { m_sriovNetSupportHasBeenSet = true; m_sriovNetSupport = std::move(value); } /** *

Set to simple to enable enhanced networking with the Intel 82599 * Virtual Function interface for the instance.

There is no way to disable * enhanced networking with the Intel 82599 Virtual Function interface at this * time.

This option is supported only for HVM instances. Specifying this * option with a PV instance can make it unreachable.

*/ inline ModifyInstanceAttributeRequest& WithSriovNetSupport(const AttributeValue& value) { SetSriovNetSupport(value); return *this;} /** *

Set to simple to enable enhanced networking with the Intel 82599 * Virtual Function interface for the instance.

There is no way to disable * enhanced networking with the Intel 82599 Virtual Function interface at this * time.

This option is supported only for HVM instances. Specifying this * option with a PV instance can make it unreachable.

*/ inline ModifyInstanceAttributeRequest& WithSriovNetSupport(AttributeValue&& value) { SetSriovNetSupport(std::move(value)); return *this;} /** *

Changes the instance's user data to the specified value. If you are using an * AWS SDK or command line tool, base64-encoding is performed for you, and you can * load the text from a file. Otherwise, you must provide base64-encoded text.

*/ inline const BlobAttributeValue& GetUserData() const{ return m_userData; } /** *

Changes the instance's user data to the specified value. If you are using an * AWS SDK or command line tool, base64-encoding is performed for you, and you can * load the text from a file. Otherwise, you must provide base64-encoded text.

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

Changes the instance's user data to the specified value. If you are using an * AWS SDK or command line tool, base64-encoding is performed for you, and you can * load the text from a file. Otherwise, you must provide base64-encoded text.

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

Changes the instance's user data to the specified value. If you are using an * AWS SDK or command line tool, base64-encoding is performed for you, and you can * load the text from a file. Otherwise, you must provide base64-encoded text.

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

Changes the instance's user data to the specified value. If you are using an * AWS SDK or command line tool, base64-encoding is performed for you, and you can * load the text from a file. Otherwise, you must provide base64-encoded text.

*/ inline ModifyInstanceAttributeRequest& WithUserData(const BlobAttributeValue& value) { SetUserData(value); return *this;} /** *

Changes the instance's user data to the specified value. If you are using an * AWS SDK or command line tool, base64-encoding is performed for you, and you can * load the text from a file. Otherwise, you must provide base64-encoded text.

*/ inline ModifyInstanceAttributeRequest& WithUserData(BlobAttributeValue&& value) { SetUserData(std::move(value)); return *this;} /** *

A new value for the attribute. Use only with the kernel, * ramdisk, userData, disableApiTermination, * or instanceInitiatedShutdownBehavior attribute.

*/ inline const Aws::String& GetValue() const{ return m_value; } /** *

A new value for the attribute. Use only with the kernel, * ramdisk, userData, disableApiTermination, * or instanceInitiatedShutdownBehavior attribute.

*/ inline bool ValueHasBeenSet() const { return m_valueHasBeenSet; } /** *

A new value for the attribute. Use only with the kernel, * ramdisk, userData, disableApiTermination, * or instanceInitiatedShutdownBehavior attribute.

*/ inline void SetValue(const Aws::String& value) { m_valueHasBeenSet = true; m_value = value; } /** *

A new value for the attribute. Use only with the kernel, * ramdisk, userData, disableApiTermination, * or instanceInitiatedShutdownBehavior attribute.

*/ inline void SetValue(Aws::String&& value) { m_valueHasBeenSet = true; m_value = std::move(value); } /** *

A new value for the attribute. Use only with the kernel, * ramdisk, userData, disableApiTermination, * or instanceInitiatedShutdownBehavior attribute.

*/ inline void SetValue(const char* value) { m_valueHasBeenSet = true; m_value.assign(value); } /** *

A new value for the attribute. Use only with the kernel, * ramdisk, userData, disableApiTermination, * or instanceInitiatedShutdownBehavior attribute.

*/ inline ModifyInstanceAttributeRequest& WithValue(const Aws::String& value) { SetValue(value); return *this;} /** *

A new value for the attribute. Use only with the kernel, * ramdisk, userData, disableApiTermination, * or instanceInitiatedShutdownBehavior attribute.

*/ inline ModifyInstanceAttributeRequest& WithValue(Aws::String&& value) { SetValue(std::move(value)); return *this;} /** *

A new value for the attribute. Use only with the kernel, * ramdisk, userData, disableApiTermination, * or instanceInitiatedShutdownBehavior attribute.

*/ inline ModifyInstanceAttributeRequest& WithValue(const char* value) { SetValue(value); return *this;} private: AttributeBooleanValue m_sourceDestCheck; bool m_sourceDestCheckHasBeenSet; InstanceAttributeName m_attribute; bool m_attributeHasBeenSet; Aws::Vector m_blockDeviceMappings; bool m_blockDeviceMappingsHasBeenSet; AttributeBooleanValue m_disableApiTermination; bool m_disableApiTerminationHasBeenSet; bool m_dryRun; bool m_dryRunHasBeenSet; AttributeBooleanValue m_ebsOptimized; bool m_ebsOptimizedHasBeenSet; AttributeBooleanValue m_enaSupport; bool m_enaSupportHasBeenSet; Aws::Vector m_groups; bool m_groupsHasBeenSet; Aws::String m_instanceId; bool m_instanceIdHasBeenSet; AttributeValue m_instanceInitiatedShutdownBehavior; bool m_instanceInitiatedShutdownBehaviorHasBeenSet; AttributeValue m_instanceType; bool m_instanceTypeHasBeenSet; AttributeValue m_kernel; bool m_kernelHasBeenSet; AttributeValue m_ramdisk; bool m_ramdiskHasBeenSet; AttributeValue m_sriovNetSupport; bool m_sriovNetSupportHasBeenSet; BlobAttributeValue m_userData; bool m_userDataHasBeenSet; Aws::String m_value; bool m_valueHasBeenSet; }; } // namespace Model } // namespace EC2 } // namespace Aws