/** * 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 { /** *

Contains the parameters for RegisterImage.

See Also:

AWS * API Reference

*/ class RegisterImageRequest : public EC2Request { public: AWS_EC2_API RegisterImageRequest(); // 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 "RegisterImage"; } AWS_EC2_API Aws::String SerializePayload() const override; protected: AWS_EC2_API void DumpBodyToUrl(Aws::Http::URI& uri ) const override; public: /** *

The full path to your AMI manifest in Amazon S3 storage. The specified bucket * must have the aws-exec-read canned access control list (ACL) to * ensure that it can be accessed by Amazon EC2. For more information, see Canned * ACLs in the Amazon S3 Service Developer Guide.

*/ inline const Aws::String& GetImageLocation() const{ return m_imageLocation; } /** *

The full path to your AMI manifest in Amazon S3 storage. The specified bucket * must have the aws-exec-read canned access control list (ACL) to * ensure that it can be accessed by Amazon EC2. For more information, see Canned * ACLs in the Amazon S3 Service Developer Guide.

*/ inline bool ImageLocationHasBeenSet() const { return m_imageLocationHasBeenSet; } /** *

The full path to your AMI manifest in Amazon S3 storage. The specified bucket * must have the aws-exec-read canned access control list (ACL) to * ensure that it can be accessed by Amazon EC2. For more information, see Canned * ACLs in the Amazon S3 Service Developer Guide.

*/ inline void SetImageLocation(const Aws::String& value) { m_imageLocationHasBeenSet = true; m_imageLocation = value; } /** *

The full path to your AMI manifest in Amazon S3 storage. The specified bucket * must have the aws-exec-read canned access control list (ACL) to * ensure that it can be accessed by Amazon EC2. For more information, see Canned * ACLs in the Amazon S3 Service Developer Guide.

*/ inline void SetImageLocation(Aws::String&& value) { m_imageLocationHasBeenSet = true; m_imageLocation = std::move(value); } /** *

The full path to your AMI manifest in Amazon S3 storage. The specified bucket * must have the aws-exec-read canned access control list (ACL) to * ensure that it can be accessed by Amazon EC2. For more information, see Canned * ACLs in the Amazon S3 Service Developer Guide.

*/ inline void SetImageLocation(const char* value) { m_imageLocationHasBeenSet = true; m_imageLocation.assign(value); } /** *

The full path to your AMI manifest in Amazon S3 storage. The specified bucket * must have the aws-exec-read canned access control list (ACL) to * ensure that it can be accessed by Amazon EC2. For more information, see Canned * ACLs in the Amazon S3 Service Developer Guide.

*/ inline RegisterImageRequest& WithImageLocation(const Aws::String& value) { SetImageLocation(value); return *this;} /** *

The full path to your AMI manifest in Amazon S3 storage. The specified bucket * must have the aws-exec-read canned access control list (ACL) to * ensure that it can be accessed by Amazon EC2. For more information, see Canned * ACLs in the Amazon S3 Service Developer Guide.

*/ inline RegisterImageRequest& WithImageLocation(Aws::String&& value) { SetImageLocation(std::move(value)); return *this;} /** *

The full path to your AMI manifest in Amazon S3 storage. The specified bucket * must have the aws-exec-read canned access control list (ACL) to * ensure that it can be accessed by Amazon EC2. For more information, see Canned * ACLs in the Amazon S3 Service Developer Guide.

*/ inline RegisterImageRequest& WithImageLocation(const char* value) { SetImageLocation(value); return *this;} /** *

The architecture of the AMI.

Default: For Amazon EBS-backed AMIs, * i386. For instance store-backed AMIs, the architecture specified in * the manifest file.

*/ inline const ArchitectureValues& GetArchitecture() const{ return m_architecture; } /** *

The architecture of the AMI.

Default: For Amazon EBS-backed AMIs, * i386. For instance store-backed AMIs, the architecture specified in * the manifest file.

*/ inline bool ArchitectureHasBeenSet() const { return m_architectureHasBeenSet; } /** *

The architecture of the AMI.

Default: For Amazon EBS-backed AMIs, * i386. For instance store-backed AMIs, the architecture specified in * the manifest file.

*/ inline void SetArchitecture(const ArchitectureValues& value) { m_architectureHasBeenSet = true; m_architecture = value; } /** *

The architecture of the AMI.

Default: For Amazon EBS-backed AMIs, * i386. For instance store-backed AMIs, the architecture specified in * the manifest file.

*/ inline void SetArchitecture(ArchitectureValues&& value) { m_architectureHasBeenSet = true; m_architecture = std::move(value); } /** *

The architecture of the AMI.

Default: For Amazon EBS-backed AMIs, * i386. For instance store-backed AMIs, the architecture specified in * the manifest file.

*/ inline RegisterImageRequest& WithArchitecture(const ArchitectureValues& value) { SetArchitecture(value); return *this;} /** *

The architecture of the AMI.

Default: For Amazon EBS-backed AMIs, * i386. For instance store-backed AMIs, the architecture specified in * the manifest file.

*/ inline RegisterImageRequest& WithArchitecture(ArchitectureValues&& value) { SetArchitecture(std::move(value)); return *this;} /** *

The block device mapping entries.

If you specify an Amazon EBS volume * using the ID of an Amazon EBS snapshot, you can't specify the encryption state * of the volume.

If you create an AMI on an Outpost, then all backing * snapshots must be on the same Outpost or in the Region of that Outpost. AMIs on * an Outpost that include local snapshots can be used to launch instances on the * same Outpost only. For more information, Amazon * EBS local snapshots on Outposts in the Amazon EC2 User Guide.

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

The block device mapping entries.

If you specify an Amazon EBS volume * using the ID of an Amazon EBS snapshot, you can't specify the encryption state * of the volume.

If you create an AMI on an Outpost, then all backing * snapshots must be on the same Outpost or in the Region of that Outpost. AMIs on * an Outpost that include local snapshots can be used to launch instances on the * same Outpost only. For more information, Amazon * EBS local snapshots on Outposts in the Amazon EC2 User Guide.

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

The block device mapping entries.

If you specify an Amazon EBS volume * using the ID of an Amazon EBS snapshot, you can't specify the encryption state * of the volume.

If you create an AMI on an Outpost, then all backing * snapshots must be on the same Outpost or in the Region of that Outpost. AMIs on * an Outpost that include local snapshots can be used to launch instances on the * same Outpost only. For more information, Amazon * EBS local snapshots on Outposts in the Amazon EC2 User Guide.

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

The block device mapping entries.

If you specify an Amazon EBS volume * using the ID of an Amazon EBS snapshot, you can't specify the encryption state * of the volume.

If you create an AMI on an Outpost, then all backing * snapshots must be on the same Outpost or in the Region of that Outpost. AMIs on * an Outpost that include local snapshots can be used to launch instances on the * same Outpost only. For more information, Amazon * EBS local snapshots on Outposts in the Amazon EC2 User Guide.

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

The block device mapping entries.

If you specify an Amazon EBS volume * using the ID of an Amazon EBS snapshot, you can't specify the encryption state * of the volume.

If you create an AMI on an Outpost, then all backing * snapshots must be on the same Outpost or in the Region of that Outpost. AMIs on * an Outpost that include local snapshots can be used to launch instances on the * same Outpost only. For more information, Amazon * EBS local snapshots on Outposts in the Amazon EC2 User Guide.

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

The block device mapping entries.

If you specify an Amazon EBS volume * using the ID of an Amazon EBS snapshot, you can't specify the encryption state * of the volume.

If you create an AMI on an Outpost, then all backing * snapshots must be on the same Outpost or in the Region of that Outpost. AMIs on * an Outpost that include local snapshots can be used to launch instances on the * same Outpost only. For more information, Amazon * EBS local snapshots on Outposts in the Amazon EC2 User Guide.

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

The block device mapping entries.

If you specify an Amazon EBS volume * using the ID of an Amazon EBS snapshot, you can't specify the encryption state * of the volume.

If you create an AMI on an Outpost, then all backing * snapshots must be on the same Outpost or in the Region of that Outpost. AMIs on * an Outpost that include local snapshots can be used to launch instances on the * same Outpost only. For more information, Amazon * EBS local snapshots on Outposts in the Amazon EC2 User Guide.

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

The block device mapping entries.

If you specify an Amazon EBS volume * using the ID of an Amazon EBS snapshot, you can't specify the encryption state * of the volume.

If you create an AMI on an Outpost, then all backing * snapshots must be on the same Outpost or in the Region of that Outpost. AMIs on * an Outpost that include local snapshots can be used to launch instances on the * same Outpost only. For more information, Amazon * EBS local snapshots on Outposts in the Amazon EC2 User Guide.

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

A description for your AMI.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

A description for your AMI.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

A description for your AMI.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

A description for your AMI.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

A description for your AMI.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

A description for your AMI.

*/ inline RegisterImageRequest& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

A description for your AMI.

*/ inline RegisterImageRequest& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

A description for your AMI.

*/ inline RegisterImageRequest& WithDescription(const char* value) { SetDescription(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 RegisterImageRequest& WithDryRun(bool value) { SetDryRun(value); return *this;} /** *

Set to true to enable enhanced networking with ENA for the AMI * and any instances that you launch from the AMI.

This option is supported * only for HVM AMIs. Specifying this option with a PV AMI can make instances * launched from the AMI unreachable.

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

Set to true to enable enhanced networking with ENA for the AMI * and any instances that you launch from the AMI.

This option is supported * only for HVM AMIs. Specifying this option with a PV AMI can make instances * launched from the AMI unreachable.

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

Set to true to enable enhanced networking with ENA for the AMI * and any instances that you launch from the AMI.

This option is supported * only for HVM AMIs. Specifying this option with a PV AMI can make instances * launched from the AMI unreachable.

*/ inline void SetEnaSupport(bool value) { m_enaSupportHasBeenSet = true; m_enaSupport = value; } /** *

Set to true to enable enhanced networking with ENA for the AMI * and any instances that you launch from the AMI.

This option is supported * only for HVM AMIs. Specifying this option with a PV AMI can make instances * launched from the AMI unreachable.

*/ inline RegisterImageRequest& WithEnaSupport(bool value) { SetEnaSupport(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 RegisterImageRequest& WithKernelId(const Aws::String& value) { SetKernelId(value); return *this;} /** *

The ID of the kernel.

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

The ID of the kernel.

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

A name for your AMI.

Constraints: 3-128 alphanumeric characters, * parentheses (()), square brackets ([]), spaces ( ), periods (.), slashes (/), * dashes (-), single quotes ('), at-signs (@), or underscores(_)

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

A name for your AMI.

Constraints: 3-128 alphanumeric characters, * parentheses (()), square brackets ([]), spaces ( ), periods (.), slashes (/), * dashes (-), single quotes ('), at-signs (@), or underscores(_)

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

A name for your AMI.

Constraints: 3-128 alphanumeric characters, * parentheses (()), square brackets ([]), spaces ( ), periods (.), slashes (/), * dashes (-), single quotes ('), at-signs (@), or underscores(_)

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

A name for your AMI.

Constraints: 3-128 alphanumeric characters, * parentheses (()), square brackets ([]), spaces ( ), periods (.), slashes (/), * dashes (-), single quotes ('), at-signs (@), or underscores(_)

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

A name for your AMI.

Constraints: 3-128 alphanumeric characters, * parentheses (()), square brackets ([]), spaces ( ), periods (.), slashes (/), * dashes (-), single quotes ('), at-signs (@), or underscores(_)

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

A name for your AMI.

Constraints: 3-128 alphanumeric characters, * parentheses (()), square brackets ([]), spaces ( ), periods (.), slashes (/), * dashes (-), single quotes ('), at-signs (@), or underscores(_)

*/ inline RegisterImageRequest& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

A name for your AMI.

Constraints: 3-128 alphanumeric characters, * parentheses (()), square brackets ([]), spaces ( ), periods (.), slashes (/), * dashes (-), single quotes ('), at-signs (@), or underscores(_)

*/ inline RegisterImageRequest& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

A name for your AMI.

Constraints: 3-128 alphanumeric characters, * parentheses (()), square brackets ([]), spaces ( ), periods (.), slashes (/), * dashes (-), single quotes ('), at-signs (@), or underscores(_)

*/ inline RegisterImageRequest& WithName(const char* value) { SetName(value); return *this;} /** *

The billing product codes. Your account must be authorized to specify billing * product codes.

If your account is not authorized to specify billing * product codes, you can publish AMIs that include billable software and list them * on the Amazon Web Services Marketplace. You must first register as a seller on * the Amazon Web Services Marketplace. For more information, see Getting * started as a seller and AMI-based * products in the Amazon Web Services Marketplace Seller Guide.

*/ inline const Aws::Vector& GetBillingProducts() const{ return m_billingProducts; } /** *

The billing product codes. Your account must be authorized to specify billing * product codes.

If your account is not authorized to specify billing * product codes, you can publish AMIs that include billable software and list them * on the Amazon Web Services Marketplace. You must first register as a seller on * the Amazon Web Services Marketplace. For more information, see Getting * started as a seller and AMI-based * products in the Amazon Web Services Marketplace Seller Guide.

*/ inline bool BillingProductsHasBeenSet() const { return m_billingProductsHasBeenSet; } /** *

The billing product codes. Your account must be authorized to specify billing * product codes.

If your account is not authorized to specify billing * product codes, you can publish AMIs that include billable software and list them * on the Amazon Web Services Marketplace. You must first register as a seller on * the Amazon Web Services Marketplace. For more information, see Getting * started as a seller and AMI-based * products in the Amazon Web Services Marketplace Seller Guide.

*/ inline void SetBillingProducts(const Aws::Vector& value) { m_billingProductsHasBeenSet = true; m_billingProducts = value; } /** *

The billing product codes. Your account must be authorized to specify billing * product codes.

If your account is not authorized to specify billing * product codes, you can publish AMIs that include billable software and list them * on the Amazon Web Services Marketplace. You must first register as a seller on * the Amazon Web Services Marketplace. For more information, see Getting * started as a seller and AMI-based * products in the Amazon Web Services Marketplace Seller Guide.

*/ inline void SetBillingProducts(Aws::Vector&& value) { m_billingProductsHasBeenSet = true; m_billingProducts = std::move(value); } /** *

The billing product codes. Your account must be authorized to specify billing * product codes.

If your account is not authorized to specify billing * product codes, you can publish AMIs that include billable software and list them * on the Amazon Web Services Marketplace. You must first register as a seller on * the Amazon Web Services Marketplace. For more information, see Getting * started as a seller and AMI-based * products in the Amazon Web Services Marketplace Seller Guide.

*/ inline RegisterImageRequest& WithBillingProducts(const Aws::Vector& value) { SetBillingProducts(value); return *this;} /** *

The billing product codes. Your account must be authorized to specify billing * product codes.

If your account is not authorized to specify billing * product codes, you can publish AMIs that include billable software and list them * on the Amazon Web Services Marketplace. You must first register as a seller on * the Amazon Web Services Marketplace. For more information, see Getting * started as a seller and AMI-based * products in the Amazon Web Services Marketplace Seller Guide.

*/ inline RegisterImageRequest& WithBillingProducts(Aws::Vector&& value) { SetBillingProducts(std::move(value)); return *this;} /** *

The billing product codes. Your account must be authorized to specify billing * product codes.

If your account is not authorized to specify billing * product codes, you can publish AMIs that include billable software and list them * on the Amazon Web Services Marketplace. You must first register as a seller on * the Amazon Web Services Marketplace. For more information, see Getting * started as a seller and AMI-based * products in the Amazon Web Services Marketplace Seller Guide.

*/ inline RegisterImageRequest& AddBillingProducts(const Aws::String& value) { m_billingProductsHasBeenSet = true; m_billingProducts.push_back(value); return *this; } /** *

The billing product codes. Your account must be authorized to specify billing * product codes.

If your account is not authorized to specify billing * product codes, you can publish AMIs that include billable software and list them * on the Amazon Web Services Marketplace. You must first register as a seller on * the Amazon Web Services Marketplace. For more information, see Getting * started as a seller and AMI-based * products in the Amazon Web Services Marketplace Seller Guide.

*/ inline RegisterImageRequest& AddBillingProducts(Aws::String&& value) { m_billingProductsHasBeenSet = true; m_billingProducts.push_back(std::move(value)); return *this; } /** *

The billing product codes. Your account must be authorized to specify billing * product codes.

If your account is not authorized to specify billing * product codes, you can publish AMIs that include billable software and list them * on the Amazon Web Services Marketplace. You must first register as a seller on * the Amazon Web Services Marketplace. For more information, see Getting * started as a seller and AMI-based * products in the Amazon Web Services Marketplace Seller Guide.

*/ inline RegisterImageRequest& AddBillingProducts(const char* value) { m_billingProductsHasBeenSet = true; m_billingProducts.push_back(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 RegisterImageRequest& WithRamdiskId(const Aws::String& value) { SetRamdiskId(value); return *this;} /** *

The ID of the RAM disk.

*/ inline RegisterImageRequest& WithRamdiskId(Aws::String&& value) { SetRamdiskId(std::move(value)); return *this;} /** *

The ID of the RAM disk.

*/ inline RegisterImageRequest& WithRamdiskId(const char* value) { SetRamdiskId(value); return *this;} /** *

The device name of the root device volume (for example, * /dev/sda1).

*/ inline const Aws::String& GetRootDeviceName() const{ return m_rootDeviceName; } /** *

The device name of the root device volume (for example, * /dev/sda1).

*/ inline bool RootDeviceNameHasBeenSet() const { return m_rootDeviceNameHasBeenSet; } /** *

The device name of the root device volume (for example, * /dev/sda1).

*/ inline void SetRootDeviceName(const Aws::String& value) { m_rootDeviceNameHasBeenSet = true; m_rootDeviceName = value; } /** *

The device name of the root device volume (for example, * /dev/sda1).

*/ inline void SetRootDeviceName(Aws::String&& value) { m_rootDeviceNameHasBeenSet = true; m_rootDeviceName = std::move(value); } /** *

The device name of the root device volume (for example, * /dev/sda1).

*/ inline void SetRootDeviceName(const char* value) { m_rootDeviceNameHasBeenSet = true; m_rootDeviceName.assign(value); } /** *

The device name of the root device volume (for example, * /dev/sda1).

*/ inline RegisterImageRequest& WithRootDeviceName(const Aws::String& value) { SetRootDeviceName(value); return *this;} /** *

The device name of the root device volume (for example, * /dev/sda1).

*/ inline RegisterImageRequest& WithRootDeviceName(Aws::String&& value) { SetRootDeviceName(std::move(value)); return *this;} /** *

The device name of the root device volume (for example, * /dev/sda1).

*/ inline RegisterImageRequest& WithRootDeviceName(const char* value) { SetRootDeviceName(value); return *this;} /** *

Set to simple to enable enhanced networking with the Intel 82599 * Virtual Function interface for the AMI and any instances that you launch from * the AMI.

There is no way to disable sriovNetSupport at this * time.

This option is supported only for HVM AMIs. Specifying this option * with a PV AMI can make instances launched from the AMI unreachable.

*/ inline const Aws::String& GetSriovNetSupport() const{ return m_sriovNetSupport; } /** *

Set to simple to enable enhanced networking with the Intel 82599 * Virtual Function interface for the AMI and any instances that you launch from * the AMI.

There is no way to disable sriovNetSupport at this * time.

This option is supported only for HVM AMIs. Specifying this option * with a PV AMI can make instances launched from the AMI unreachable.

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

Set to simple to enable enhanced networking with the Intel 82599 * Virtual Function interface for the AMI and any instances that you launch from * the AMI.

There is no way to disable sriovNetSupport at this * time.

This option is supported only for HVM AMIs. Specifying this option * with a PV AMI can make instances launched from the AMI unreachable.

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

Set to simple to enable enhanced networking with the Intel 82599 * Virtual Function interface for the AMI and any instances that you launch from * the AMI.

There is no way to disable sriovNetSupport at this * time.

This option is supported only for HVM AMIs. Specifying this option * with a PV AMI can make instances launched from the AMI unreachable.

*/ inline void SetSriovNetSupport(Aws::String&& 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 AMI and any instances that you launch from * the AMI.

There is no way to disable sriovNetSupport at this * time.

This option is supported only for HVM AMIs. Specifying this option * with a PV AMI can make instances launched from the AMI unreachable.

*/ inline void SetSriovNetSupport(const char* value) { m_sriovNetSupportHasBeenSet = true; m_sriovNetSupport.assign(value); } /** *

Set to simple to enable enhanced networking with the Intel 82599 * Virtual Function interface for the AMI and any instances that you launch from * the AMI.

There is no way to disable sriovNetSupport at this * time.

This option is supported only for HVM AMIs. Specifying this option * with a PV AMI can make instances launched from the AMI unreachable.

*/ inline RegisterImageRequest& WithSriovNetSupport(const Aws::String& value) { SetSriovNetSupport(value); return *this;} /** *

Set to simple to enable enhanced networking with the Intel 82599 * Virtual Function interface for the AMI and any instances that you launch from * the AMI.

There is no way to disable sriovNetSupport at this * time.

This option is supported only for HVM AMIs. Specifying this option * with a PV AMI can make instances launched from the AMI unreachable.

*/ inline RegisterImageRequest& WithSriovNetSupport(Aws::String&& value) { SetSriovNetSupport(std::move(value)); return *this;} /** *

Set to simple to enable enhanced networking with the Intel 82599 * Virtual Function interface for the AMI and any instances that you launch from * the AMI.

There is no way to disable sriovNetSupport at this * time.

This option is supported only for HVM AMIs. Specifying this option * with a PV AMI can make instances launched from the AMI unreachable.

*/ inline RegisterImageRequest& WithSriovNetSupport(const char* value) { SetSriovNetSupport(value); return *this;} /** *

The type of virtualization (hvm | paravirtual).

*

Default: paravirtual

*/ inline const Aws::String& GetVirtualizationType() const{ return m_virtualizationType; } /** *

The type of virtualization (hvm | paravirtual).

*

Default: paravirtual

*/ inline bool VirtualizationTypeHasBeenSet() const { return m_virtualizationTypeHasBeenSet; } /** *

The type of virtualization (hvm | paravirtual).

*

Default: paravirtual

*/ inline void SetVirtualizationType(const Aws::String& value) { m_virtualizationTypeHasBeenSet = true; m_virtualizationType = value; } /** *

The type of virtualization (hvm | paravirtual).

*

Default: paravirtual

*/ inline void SetVirtualizationType(Aws::String&& value) { m_virtualizationTypeHasBeenSet = true; m_virtualizationType = std::move(value); } /** *

The type of virtualization (hvm | paravirtual).

*

Default: paravirtual

*/ inline void SetVirtualizationType(const char* value) { m_virtualizationTypeHasBeenSet = true; m_virtualizationType.assign(value); } /** *

The type of virtualization (hvm | paravirtual).

*

Default: paravirtual

*/ inline RegisterImageRequest& WithVirtualizationType(const Aws::String& value) { SetVirtualizationType(value); return *this;} /** *

The type of virtualization (hvm | paravirtual).

*

Default: paravirtual

*/ inline RegisterImageRequest& WithVirtualizationType(Aws::String&& value) { SetVirtualizationType(std::move(value)); return *this;} /** *

The type of virtualization (hvm | paravirtual).

*

Default: paravirtual

*/ inline RegisterImageRequest& WithVirtualizationType(const char* value) { SetVirtualizationType(value); return *this;} /** *

The boot mode of the AMI. A value of uefi-preferred indicates * that the AMI supports both UEFI and Legacy BIOS.

The operating * system contained in the AMI must be configured to support the specified boot * mode.

For more information, see Boot * modes in the Amazon EC2 User Guide.

*/ inline const BootModeValues& GetBootMode() const{ return m_bootMode; } /** *

The boot mode of the AMI. A value of uefi-preferred indicates * that the AMI supports both UEFI and Legacy BIOS.

The operating * system contained in the AMI must be configured to support the specified boot * mode.

For more information, see Boot * modes in the Amazon EC2 User Guide.

*/ inline bool BootModeHasBeenSet() const { return m_bootModeHasBeenSet; } /** *

The boot mode of the AMI. A value of uefi-preferred indicates * that the AMI supports both UEFI and Legacy BIOS.

The operating * system contained in the AMI must be configured to support the specified boot * mode.

For more information, see Boot * modes in the Amazon EC2 User Guide.

*/ inline void SetBootMode(const BootModeValues& value) { m_bootModeHasBeenSet = true; m_bootMode = value; } /** *

The boot mode of the AMI. A value of uefi-preferred indicates * that the AMI supports both UEFI and Legacy BIOS.

The operating * system contained in the AMI must be configured to support the specified boot * mode.

For more information, see Boot * modes in the Amazon EC2 User Guide.

*/ inline void SetBootMode(BootModeValues&& value) { m_bootModeHasBeenSet = true; m_bootMode = std::move(value); } /** *

The boot mode of the AMI. A value of uefi-preferred indicates * that the AMI supports both UEFI and Legacy BIOS.

The operating * system contained in the AMI must be configured to support the specified boot * mode.

For more information, see Boot * modes in the Amazon EC2 User Guide.

*/ inline RegisterImageRequest& WithBootMode(const BootModeValues& value) { SetBootMode(value); return *this;} /** *

The boot mode of the AMI. A value of uefi-preferred indicates * that the AMI supports both UEFI and Legacy BIOS.

The operating * system contained in the AMI must be configured to support the specified boot * mode.

For more information, see Boot * modes in the Amazon EC2 User Guide.

*/ inline RegisterImageRequest& WithBootMode(BootModeValues&& value) { SetBootMode(std::move(value)); return *this;} /** *

Set to v2.0 to enable Trusted Platform Module (TPM) support. For * more information, see NitroTPM * in the Amazon EC2 User Guide.

*/ inline const TpmSupportValues& GetTpmSupport() const{ return m_tpmSupport; } /** *

Set to v2.0 to enable Trusted Platform Module (TPM) support. For * more information, see NitroTPM * in the Amazon EC2 User Guide.

*/ inline bool TpmSupportHasBeenSet() const { return m_tpmSupportHasBeenSet; } /** *

Set to v2.0 to enable Trusted Platform Module (TPM) support. For * more information, see NitroTPM * in the Amazon EC2 User Guide.

*/ inline void SetTpmSupport(const TpmSupportValues& value) { m_tpmSupportHasBeenSet = true; m_tpmSupport = value; } /** *

Set to v2.0 to enable Trusted Platform Module (TPM) support. For * more information, see NitroTPM * in the Amazon EC2 User Guide.

*/ inline void SetTpmSupport(TpmSupportValues&& value) { m_tpmSupportHasBeenSet = true; m_tpmSupport = std::move(value); } /** *

Set to v2.0 to enable Trusted Platform Module (TPM) support. For * more information, see NitroTPM * in the Amazon EC2 User Guide.

*/ inline RegisterImageRequest& WithTpmSupport(const TpmSupportValues& value) { SetTpmSupport(value); return *this;} /** *

Set to v2.0 to enable Trusted Platform Module (TPM) support. For * more information, see NitroTPM * in the Amazon EC2 User Guide.

*/ inline RegisterImageRequest& WithTpmSupport(TpmSupportValues&& value) { SetTpmSupport(std::move(value)); return *this;} /** *

Base64 representation of the non-volatile UEFI variable store. To retrieve * the UEFI data, use the GetInstanceUefiData * command. You can inspect and modify the UEFI data by using the python-uefivars tool on * GitHub. For more information, see UEFI * Secure Boot in the Amazon EC2 User Guide.

*/ inline const Aws::String& GetUefiData() const{ return m_uefiData; } /** *

Base64 representation of the non-volatile UEFI variable store. To retrieve * the UEFI data, use the GetInstanceUefiData * command. You can inspect and modify the UEFI data by using the python-uefivars tool on * GitHub. For more information, see UEFI * Secure Boot in the Amazon EC2 User Guide.

*/ inline bool UefiDataHasBeenSet() const { return m_uefiDataHasBeenSet; } /** *

Base64 representation of the non-volatile UEFI variable store. To retrieve * the UEFI data, use the GetInstanceUefiData * command. You can inspect and modify the UEFI data by using the python-uefivars tool on * GitHub. For more information, see UEFI * Secure Boot in the Amazon EC2 User Guide.

*/ inline void SetUefiData(const Aws::String& value) { m_uefiDataHasBeenSet = true; m_uefiData = value; } /** *

Base64 representation of the non-volatile UEFI variable store. To retrieve * the UEFI data, use the GetInstanceUefiData * command. You can inspect and modify the UEFI data by using the python-uefivars tool on * GitHub. For more information, see UEFI * Secure Boot in the Amazon EC2 User Guide.

*/ inline void SetUefiData(Aws::String&& value) { m_uefiDataHasBeenSet = true; m_uefiData = std::move(value); } /** *

Base64 representation of the non-volatile UEFI variable store. To retrieve * the UEFI data, use the GetInstanceUefiData * command. You can inspect and modify the UEFI data by using the python-uefivars tool on * GitHub. For more information, see UEFI * Secure Boot in the Amazon EC2 User Guide.

*/ inline void SetUefiData(const char* value) { m_uefiDataHasBeenSet = true; m_uefiData.assign(value); } /** *

Base64 representation of the non-volatile UEFI variable store. To retrieve * the UEFI data, use the GetInstanceUefiData * command. You can inspect and modify the UEFI data by using the python-uefivars tool on * GitHub. For more information, see UEFI * Secure Boot in the Amazon EC2 User Guide.

*/ inline RegisterImageRequest& WithUefiData(const Aws::String& value) { SetUefiData(value); return *this;} /** *

Base64 representation of the non-volatile UEFI variable store. To retrieve * the UEFI data, use the GetInstanceUefiData * command. You can inspect and modify the UEFI data by using the python-uefivars tool on * GitHub. For more information, see UEFI * Secure Boot in the Amazon EC2 User Guide.

*/ inline RegisterImageRequest& WithUefiData(Aws::String&& value) { SetUefiData(std::move(value)); return *this;} /** *

Base64 representation of the non-volatile UEFI variable store. To retrieve * the UEFI data, use the GetInstanceUefiData * command. You can inspect and modify the UEFI data by using the python-uefivars tool on * GitHub. For more information, see UEFI * Secure Boot in the Amazon EC2 User Guide.

*/ inline RegisterImageRequest& WithUefiData(const char* value) { SetUefiData(value); return *this;} /** *

Set to v2.0 to indicate that IMDSv2 is specified in the AMI. * Instances launched from this AMI will have HttpTokens automatically * set to required so that, by default, the instance requires that * IMDSv2 is used when requesting instance metadata. In addition, * HttpPutResponseHopLimit is set to 2. For more * information, see Configure * the AMI in the Amazon EC2 User Guide.

If you set the * value to v2.0, make sure that your AMI software can support * IMDSv2.

*/ inline const ImdsSupportValues& GetImdsSupport() const{ return m_imdsSupport; } /** *

Set to v2.0 to indicate that IMDSv2 is specified in the AMI. * Instances launched from this AMI will have HttpTokens automatically * set to required so that, by default, the instance requires that * IMDSv2 is used when requesting instance metadata. In addition, * HttpPutResponseHopLimit is set to 2. For more * information, see Configure * the AMI in the Amazon EC2 User Guide.

If you set the * value to v2.0, make sure that your AMI software can support * IMDSv2.

*/ inline bool ImdsSupportHasBeenSet() const { return m_imdsSupportHasBeenSet; } /** *

Set to v2.0 to indicate that IMDSv2 is specified in the AMI. * Instances launched from this AMI will have HttpTokens automatically * set to required so that, by default, the instance requires that * IMDSv2 is used when requesting instance metadata. In addition, * HttpPutResponseHopLimit is set to 2. For more * information, see Configure * the AMI in the Amazon EC2 User Guide.

If you set the * value to v2.0, make sure that your AMI software can support * IMDSv2.

*/ inline void SetImdsSupport(const ImdsSupportValues& value) { m_imdsSupportHasBeenSet = true; m_imdsSupport = value; } /** *

Set to v2.0 to indicate that IMDSv2 is specified in the AMI. * Instances launched from this AMI will have HttpTokens automatically * set to required so that, by default, the instance requires that * IMDSv2 is used when requesting instance metadata. In addition, * HttpPutResponseHopLimit is set to 2. For more * information, see Configure * the AMI in the Amazon EC2 User Guide.

If you set the * value to v2.0, make sure that your AMI software can support * IMDSv2.

*/ inline void SetImdsSupport(ImdsSupportValues&& value) { m_imdsSupportHasBeenSet = true; m_imdsSupport = std::move(value); } /** *

Set to v2.0 to indicate that IMDSv2 is specified in the AMI. * Instances launched from this AMI will have HttpTokens automatically * set to required so that, by default, the instance requires that * IMDSv2 is used when requesting instance metadata. In addition, * HttpPutResponseHopLimit is set to 2. For more * information, see Configure * the AMI in the Amazon EC2 User Guide.

If you set the * value to v2.0, make sure that your AMI software can support * IMDSv2.

*/ inline RegisterImageRequest& WithImdsSupport(const ImdsSupportValues& value) { SetImdsSupport(value); return *this;} /** *

Set to v2.0 to indicate that IMDSv2 is specified in the AMI. * Instances launched from this AMI will have HttpTokens automatically * set to required so that, by default, the instance requires that * IMDSv2 is used when requesting instance metadata. In addition, * HttpPutResponseHopLimit is set to 2. For more * information, see Configure * the AMI in the Amazon EC2 User Guide.

If you set the * value to v2.0, make sure that your AMI software can support * IMDSv2.

*/ inline RegisterImageRequest& WithImdsSupport(ImdsSupportValues&& value) { SetImdsSupport(std::move(value)); return *this;} private: Aws::String m_imageLocation; bool m_imageLocationHasBeenSet = false; ArchitectureValues m_architecture; bool m_architectureHasBeenSet = false; Aws::Vector m_blockDeviceMappings; bool m_blockDeviceMappingsHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; bool m_dryRun; bool m_dryRunHasBeenSet = false; bool m_enaSupport; bool m_enaSupportHasBeenSet = false; Aws::String m_kernelId; bool m_kernelIdHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; Aws::Vector m_billingProducts; bool m_billingProductsHasBeenSet = false; Aws::String m_ramdiskId; bool m_ramdiskIdHasBeenSet = false; Aws::String m_rootDeviceName; bool m_rootDeviceNameHasBeenSet = false; Aws::String m_sriovNetSupport; bool m_sriovNetSupportHasBeenSet = false; Aws::String m_virtualizationType; bool m_virtualizationTypeHasBeenSet = false; BootModeValues m_bootMode; bool m_bootModeHasBeenSet = false; TpmSupportValues m_tpmSupport; bool m_tpmSupportHasBeenSet = false; Aws::String m_uefiData; bool m_uefiDataHasBeenSet = false; ImdsSupportValues m_imdsSupport; bool m_imdsSupportHasBeenSet = false; }; } // namespace Model } // namespace EC2 } // namespace Aws