/** * 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 namespace Aws { namespace Utils { namespace Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace EC2 { namespace Model { /** *

Describes an image.

See Also:

AWS API * Reference

*/ class Image { public: AWS_EC2_API Image(); AWS_EC2_API Image(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_EC2_API Image& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_EC2_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; AWS_EC2_API void OutputToStream(Aws::OStream& oStream, const char* location) const; /** *

The architecture of the image.

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

The architecture of the image.

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

The architecture of the image.

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

The architecture of the image.

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

The architecture of the image.

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

The architecture of the image.

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

The date and time the image was created.

*/ inline const Aws::String& GetCreationDate() const{ return m_creationDate; } /** *

The date and time the image was created.

*/ inline bool CreationDateHasBeenSet() const { return m_creationDateHasBeenSet; } /** *

The date and time the image was created.

*/ inline void SetCreationDate(const Aws::String& value) { m_creationDateHasBeenSet = true; m_creationDate = value; } /** *

The date and time the image was created.

*/ inline void SetCreationDate(Aws::String&& value) { m_creationDateHasBeenSet = true; m_creationDate = std::move(value); } /** *

The date and time the image was created.

*/ inline void SetCreationDate(const char* value) { m_creationDateHasBeenSet = true; m_creationDate.assign(value); } /** *

The date and time the image was created.

*/ inline Image& WithCreationDate(const Aws::String& value) { SetCreationDate(value); return *this;} /** *

The date and time the image was created.

*/ inline Image& WithCreationDate(Aws::String&& value) { SetCreationDate(std::move(value)); return *this;} /** *

The date and time the image was created.

*/ inline Image& WithCreationDate(const char* value) { SetCreationDate(value); return *this;} /** *

The ID of the AMI.

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

The ID of the AMI.

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

The ID of the AMI.

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

The ID of the AMI.

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

The ID of the AMI.

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

The ID of the AMI.

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

The ID of the AMI.

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

The ID of the AMI.

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

The location of the AMI.

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

The location of the AMI.

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

The location of the AMI.

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

The location of the AMI.

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

The location of the AMI.

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

The location of the AMI.

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

The location of the AMI.

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

The location of the AMI.

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

The type of image.

*/ inline const ImageTypeValues& GetImageType() const{ return m_imageType; } /** *

The type of image.

*/ inline bool ImageTypeHasBeenSet() const { return m_imageTypeHasBeenSet; } /** *

The type of image.

*/ inline void SetImageType(const ImageTypeValues& value) { m_imageTypeHasBeenSet = true; m_imageType = value; } /** *

The type of image.

*/ inline void SetImageType(ImageTypeValues&& value) { m_imageTypeHasBeenSet = true; m_imageType = std::move(value); } /** *

The type of image.

*/ inline Image& WithImageType(const ImageTypeValues& value) { SetImageType(value); return *this;} /** *

The type of image.

*/ inline Image& WithImageType(ImageTypeValues&& value) { SetImageType(std::move(value)); return *this;} /** *

Indicates whether the image has public launch permissions. The value is * true if this image has public launch permissions or * false if it has only implicit and explicit launch permissions.

*/ inline bool GetPublic() const{ return m_public; } /** *

Indicates whether the image has public launch permissions. The value is * true if this image has public launch permissions or * false if it has only implicit and explicit launch permissions.

*/ inline bool PublicHasBeenSet() const { return m_publicHasBeenSet; } /** *

Indicates whether the image has public launch permissions. The value is * true if this image has public launch permissions or * false if it has only implicit and explicit launch permissions.

*/ inline void SetPublic(bool value) { m_publicHasBeenSet = true; m_public = value; } /** *

Indicates whether the image has public launch permissions. The value is * true if this image has public launch permissions or * false if it has only implicit and explicit launch permissions.

*/ inline Image& WithPublic(bool value) { SetPublic(value); return *this;} /** *

The kernel associated with the image, if any. Only applicable for machine * images.

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

The kernel associated with the image, if any. Only applicable for machine * images.

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

The kernel associated with the image, if any. Only applicable for machine * images.

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

The kernel associated with the image, if any. Only applicable for machine * images.

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

The kernel associated with the image, if any. Only applicable for machine * images.

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

The kernel associated with the image, if any. Only applicable for machine * images.

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

The kernel associated with the image, if any. Only applicable for machine * images.

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

The kernel associated with the image, if any. Only applicable for machine * images.

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

The ID of the Amazon Web Services account that owns the image.

*/ inline const Aws::String& GetOwnerId() const{ return m_ownerId; } /** *

The ID of the Amazon Web Services account that owns the image.

*/ inline bool OwnerIdHasBeenSet() const { return m_ownerIdHasBeenSet; } /** *

The ID of the Amazon Web Services account that owns the image.

*/ inline void SetOwnerId(const Aws::String& value) { m_ownerIdHasBeenSet = true; m_ownerId = value; } /** *

The ID of the Amazon Web Services account that owns the image.

*/ inline void SetOwnerId(Aws::String&& value) { m_ownerIdHasBeenSet = true; m_ownerId = std::move(value); } /** *

The ID of the Amazon Web Services account that owns the image.

*/ inline void SetOwnerId(const char* value) { m_ownerIdHasBeenSet = true; m_ownerId.assign(value); } /** *

The ID of the Amazon Web Services account that owns the image.

*/ inline Image& WithOwnerId(const Aws::String& value) { SetOwnerId(value); return *this;} /** *

The ID of the Amazon Web Services account that owns the image.

*/ inline Image& WithOwnerId(Aws::String&& value) { SetOwnerId(std::move(value)); return *this;} /** *

The ID of the Amazon Web Services account that owns the image.

*/ inline Image& WithOwnerId(const char* value) { SetOwnerId(value); return *this;} /** *

This value is set to windows for Windows AMIs; otherwise, it is * blank.

*/ inline const PlatformValues& GetPlatform() const{ return m_platform; } /** *

This value is set to windows for Windows AMIs; otherwise, it is * blank.

*/ inline bool PlatformHasBeenSet() const { return m_platformHasBeenSet; } /** *

This value is set to windows for Windows AMIs; otherwise, it is * blank.

*/ inline void SetPlatform(const PlatformValues& value) { m_platformHasBeenSet = true; m_platform = value; } /** *

This value is set to windows for Windows AMIs; otherwise, it is * blank.

*/ inline void SetPlatform(PlatformValues&& value) { m_platformHasBeenSet = true; m_platform = std::move(value); } /** *

This value is set to windows for Windows AMIs; otherwise, it is * blank.

*/ inline Image& WithPlatform(const PlatformValues& value) { SetPlatform(value); return *this;} /** *

This value is set to windows for Windows AMIs; otherwise, it is * blank.

*/ inline Image& WithPlatform(PlatformValues&& value) { SetPlatform(std::move(value)); return *this;} /** *

The platform details associated with the billing code of the AMI. For more * information, see Understand * AMI billing information in the Amazon EC2 User Guide.

*/ inline const Aws::String& GetPlatformDetails() const{ return m_platformDetails; } /** *

The platform details associated with the billing code of the AMI. For more * information, see Understand * AMI billing information in the Amazon EC2 User Guide.

*/ inline bool PlatformDetailsHasBeenSet() const { return m_platformDetailsHasBeenSet; } /** *

The platform details associated with the billing code of the AMI. For more * information, see Understand * AMI billing information in the Amazon EC2 User Guide.

*/ inline void SetPlatformDetails(const Aws::String& value) { m_platformDetailsHasBeenSet = true; m_platformDetails = value; } /** *

The platform details associated with the billing code of the AMI. For more * information, see Understand * AMI billing information in the Amazon EC2 User Guide.

*/ inline void SetPlatformDetails(Aws::String&& value) { m_platformDetailsHasBeenSet = true; m_platformDetails = std::move(value); } /** *

The platform details associated with the billing code of the AMI. For more * information, see Understand * AMI billing information in the Amazon EC2 User Guide.

*/ inline void SetPlatformDetails(const char* value) { m_platformDetailsHasBeenSet = true; m_platformDetails.assign(value); } /** *

The platform details associated with the billing code of the AMI. For more * information, see Understand * AMI billing information in the Amazon EC2 User Guide.

*/ inline Image& WithPlatformDetails(const Aws::String& value) { SetPlatformDetails(value); return *this;} /** *

The platform details associated with the billing code of the AMI. For more * information, see Understand * AMI billing information in the Amazon EC2 User Guide.

*/ inline Image& WithPlatformDetails(Aws::String&& value) { SetPlatformDetails(std::move(value)); return *this;} /** *

The platform details associated with the billing code of the AMI. For more * information, see Understand * AMI billing information in the Amazon EC2 User Guide.

*/ inline Image& WithPlatformDetails(const char* value) { SetPlatformDetails(value); return *this;} /** *

The operation of the Amazon EC2 instance and the billing code that is * associated with the AMI. usageOperation corresponds to the lineitem/Operation * column on your Amazon Web Services Cost and Usage Report and in the Amazon * Web Services Price List API. You can view these fields on the * Instances or AMIs pages in the Amazon EC2 console, or in the * responses that are returned by the DescribeImages * command in the Amazon EC2 API, or the describe-images * command in the CLI.

*/ inline const Aws::String& GetUsageOperation() const{ return m_usageOperation; } /** *

The operation of the Amazon EC2 instance and the billing code that is * associated with the AMI. usageOperation corresponds to the lineitem/Operation * column on your Amazon Web Services Cost and Usage Report and in the Amazon * Web Services Price List API. You can view these fields on the * Instances or AMIs pages in the Amazon EC2 console, or in the * responses that are returned by the DescribeImages * command in the Amazon EC2 API, or the describe-images * command in the CLI.

*/ inline bool UsageOperationHasBeenSet() const { return m_usageOperationHasBeenSet; } /** *

The operation of the Amazon EC2 instance and the billing code that is * associated with the AMI. usageOperation corresponds to the lineitem/Operation * column on your Amazon Web Services Cost and Usage Report and in the Amazon * Web Services Price List API. You can view these fields on the * Instances or AMIs pages in the Amazon EC2 console, or in the * responses that are returned by the DescribeImages * command in the Amazon EC2 API, or the describe-images * command in the CLI.

*/ inline void SetUsageOperation(const Aws::String& value) { m_usageOperationHasBeenSet = true; m_usageOperation = value; } /** *

The operation of the Amazon EC2 instance and the billing code that is * associated with the AMI. usageOperation corresponds to the lineitem/Operation * column on your Amazon Web Services Cost and Usage Report and in the Amazon * Web Services Price List API. You can view these fields on the * Instances or AMIs pages in the Amazon EC2 console, or in the * responses that are returned by the DescribeImages * command in the Amazon EC2 API, or the describe-images * command in the CLI.

*/ inline void SetUsageOperation(Aws::String&& value) { m_usageOperationHasBeenSet = true; m_usageOperation = std::move(value); } /** *

The operation of the Amazon EC2 instance and the billing code that is * associated with the AMI. usageOperation corresponds to the lineitem/Operation * column on your Amazon Web Services Cost and Usage Report and in the Amazon * Web Services Price List API. You can view these fields on the * Instances or AMIs pages in the Amazon EC2 console, or in the * responses that are returned by the DescribeImages * command in the Amazon EC2 API, or the describe-images * command in the CLI.

*/ inline void SetUsageOperation(const char* value) { m_usageOperationHasBeenSet = true; m_usageOperation.assign(value); } /** *

The operation of the Amazon EC2 instance and the billing code that is * associated with the AMI. usageOperation corresponds to the lineitem/Operation * column on your Amazon Web Services Cost and Usage Report and in the Amazon * Web Services Price List API. You can view these fields on the * Instances or AMIs pages in the Amazon EC2 console, or in the * responses that are returned by the DescribeImages * command in the Amazon EC2 API, or the describe-images * command in the CLI.

*/ inline Image& WithUsageOperation(const Aws::String& value) { SetUsageOperation(value); return *this;} /** *

The operation of the Amazon EC2 instance and the billing code that is * associated with the AMI. usageOperation corresponds to the lineitem/Operation * column on your Amazon Web Services Cost and Usage Report and in the Amazon * Web Services Price List API. You can view these fields on the * Instances or AMIs pages in the Amazon EC2 console, or in the * responses that are returned by the DescribeImages * command in the Amazon EC2 API, or the describe-images * command in the CLI.

*/ inline Image& WithUsageOperation(Aws::String&& value) { SetUsageOperation(std::move(value)); return *this;} /** *

The operation of the Amazon EC2 instance and the billing code that is * associated with the AMI. usageOperation corresponds to the lineitem/Operation * column on your Amazon Web Services Cost and Usage Report and in the Amazon * Web Services Price List API. You can view these fields on the * Instances or AMIs pages in the Amazon EC2 console, or in the * responses that are returned by the DescribeImages * command in the Amazon EC2 API, or the describe-images * command in the CLI.

*/ inline Image& WithUsageOperation(const char* value) { SetUsageOperation(value); return *this;} /** *

Any product codes associated with the AMI.

*/ inline const Aws::Vector& GetProductCodes() const{ return m_productCodes; } /** *

Any product codes associated with the AMI.

*/ inline bool ProductCodesHasBeenSet() const { return m_productCodesHasBeenSet; } /** *

Any product codes associated with the AMI.

*/ inline void SetProductCodes(const Aws::Vector& value) { m_productCodesHasBeenSet = true; m_productCodes = value; } /** *

Any product codes associated with the AMI.

*/ inline void SetProductCodes(Aws::Vector&& value) { m_productCodesHasBeenSet = true; m_productCodes = std::move(value); } /** *

Any product codes associated with the AMI.

*/ inline Image& WithProductCodes(const Aws::Vector& value) { SetProductCodes(value); return *this;} /** *

Any product codes associated with the AMI.

*/ inline Image& WithProductCodes(Aws::Vector&& value) { SetProductCodes(std::move(value)); return *this;} /** *

Any product codes associated with the AMI.

*/ inline Image& AddProductCodes(const ProductCode& value) { m_productCodesHasBeenSet = true; m_productCodes.push_back(value); return *this; } /** *

Any product codes associated with the AMI.

*/ inline Image& AddProductCodes(ProductCode&& value) { m_productCodesHasBeenSet = true; m_productCodes.push_back(std::move(value)); return *this; } /** *

The RAM disk associated with the image, if any. Only applicable for machine * images.

*/ inline const Aws::String& GetRamdiskId() const{ return m_ramdiskId; } /** *

The RAM disk associated with the image, if any. Only applicable for machine * images.

*/ inline bool RamdiskIdHasBeenSet() const { return m_ramdiskIdHasBeenSet; } /** *

The RAM disk associated with the image, if any. Only applicable for machine * images.

*/ inline void SetRamdiskId(const Aws::String& value) { m_ramdiskIdHasBeenSet = true; m_ramdiskId = value; } /** *

The RAM disk associated with the image, if any. Only applicable for machine * images.

*/ inline void SetRamdiskId(Aws::String&& value) { m_ramdiskIdHasBeenSet = true; m_ramdiskId = std::move(value); } /** *

The RAM disk associated with the image, if any. Only applicable for machine * images.

*/ inline void SetRamdiskId(const char* value) { m_ramdiskIdHasBeenSet = true; m_ramdiskId.assign(value); } /** *

The RAM disk associated with the image, if any. Only applicable for machine * images.

*/ inline Image& WithRamdiskId(const Aws::String& value) { SetRamdiskId(value); return *this;} /** *

The RAM disk associated with the image, if any. Only applicable for machine * images.

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

The RAM disk associated with the image, if any. Only applicable for machine * images.

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

The current state of the AMI. If the state is available, the * image is successfully registered and can be used to launch an instance.

*/ inline const ImageState& GetState() const{ return m_state; } /** *

The current state of the AMI. If the state is available, the * image is successfully registered and can be used to launch an instance.

*/ inline bool StateHasBeenSet() const { return m_stateHasBeenSet; } /** *

The current state of the AMI. If the state is available, the * image is successfully registered and can be used to launch an instance.

*/ inline void SetState(const ImageState& value) { m_stateHasBeenSet = true; m_state = value; } /** *

The current state of the AMI. If the state is available, the * image is successfully registered and can be used to launch an instance.

*/ inline void SetState(ImageState&& value) { m_stateHasBeenSet = true; m_state = std::move(value); } /** *

The current state of the AMI. If the state is available, the * image is successfully registered and can be used to launch an instance.

*/ inline Image& WithState(const ImageState& value) { SetState(value); return *this;} /** *

The current state of the AMI. If the state is available, the * image is successfully registered and can be used to launch an instance.

*/ inline Image& WithState(ImageState&& value) { SetState(std::move(value)); return *this;} /** *

Any block device mapping entries.

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

Any block device mapping entries.

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

Any block device mapping entries.

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

Any block device mapping entries.

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

Any block device mapping entries.

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

Any block device mapping entries.

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

Any block device mapping entries.

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

Any block device mapping entries.

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

The description of the AMI that was provided during image creation.

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

The description of the AMI that was provided during image creation.

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

The description of the AMI that was provided during image creation.

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

The description of the AMI that was provided during image creation.

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

The description of the AMI that was provided during image creation.

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

The description of the AMI that was provided during image creation.

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

The description of the AMI that was provided during image creation.

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

The description of the AMI that was provided during image creation.

*/ inline Image& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

Specifies whether enhanced networking with ENA is enabled.

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

Specifies whether enhanced networking with ENA is enabled.

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

Specifies whether enhanced networking with ENA is enabled.

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

Specifies whether enhanced networking with ENA is enabled.

*/ inline Image& WithEnaSupport(bool value) { SetEnaSupport(value); return *this;} /** *

The hypervisor type of the image.

*/ inline const HypervisorType& GetHypervisor() const{ return m_hypervisor; } /** *

The hypervisor type of the image.

*/ inline bool HypervisorHasBeenSet() const { return m_hypervisorHasBeenSet; } /** *

The hypervisor type of the image.

*/ inline void SetHypervisor(const HypervisorType& value) { m_hypervisorHasBeenSet = true; m_hypervisor = value; } /** *

The hypervisor type of the image.

*/ inline void SetHypervisor(HypervisorType&& value) { m_hypervisorHasBeenSet = true; m_hypervisor = std::move(value); } /** *

The hypervisor type of the image.

*/ inline Image& WithHypervisor(const HypervisorType& value) { SetHypervisor(value); return *this;} /** *

The hypervisor type of the image.

*/ inline Image& WithHypervisor(HypervisorType&& value) { SetHypervisor(std::move(value)); return *this;} /** *

The Amazon Web Services account alias (for example, amazon, * self) or the Amazon Web Services account ID of the AMI owner.

*/ inline const Aws::String& GetImageOwnerAlias() const{ return m_imageOwnerAlias; } /** *

The Amazon Web Services account alias (for example, amazon, * self) or the Amazon Web Services account ID of the AMI owner.

*/ inline bool ImageOwnerAliasHasBeenSet() const { return m_imageOwnerAliasHasBeenSet; } /** *

The Amazon Web Services account alias (for example, amazon, * self) or the Amazon Web Services account ID of the AMI owner.

*/ inline void SetImageOwnerAlias(const Aws::String& value) { m_imageOwnerAliasHasBeenSet = true; m_imageOwnerAlias = value; } /** *

The Amazon Web Services account alias (for example, amazon, * self) or the Amazon Web Services account ID of the AMI owner.

*/ inline void SetImageOwnerAlias(Aws::String&& value) { m_imageOwnerAliasHasBeenSet = true; m_imageOwnerAlias = std::move(value); } /** *

The Amazon Web Services account alias (for example, amazon, * self) or the Amazon Web Services account ID of the AMI owner.

*/ inline void SetImageOwnerAlias(const char* value) { m_imageOwnerAliasHasBeenSet = true; m_imageOwnerAlias.assign(value); } /** *

The Amazon Web Services account alias (for example, amazon, * self) or the Amazon Web Services account ID of the AMI owner.

*/ inline Image& WithImageOwnerAlias(const Aws::String& value) { SetImageOwnerAlias(value); return *this;} /** *

The Amazon Web Services account alias (for example, amazon, * self) or the Amazon Web Services account ID of the AMI owner.

*/ inline Image& WithImageOwnerAlias(Aws::String&& value) { SetImageOwnerAlias(std::move(value)); return *this;} /** *

The Amazon Web Services account alias (for example, amazon, * self) or the Amazon Web Services account ID of the AMI owner.

*/ inline Image& WithImageOwnerAlias(const char* value) { SetImageOwnerAlias(value); return *this;} /** *

The name of the AMI that was provided during image creation.

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

The name of the AMI that was provided during image creation.

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

The name of the AMI that was provided during image creation.

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

The name of the AMI that was provided during image creation.

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

The name of the AMI that was provided during image creation.

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

The name of the AMI that was provided during image creation.

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

The name of the AMI that was provided during image creation.

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

The name of the AMI that was provided during image creation.

*/ inline Image& WithName(const char* value) { SetName(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 Image& WithRootDeviceName(const Aws::String& value) { SetRootDeviceName(value); return *this;} /** *

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

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

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

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

The type of root device used by the AMI. The AMI can use an Amazon EBS volume * or an instance store volume.

*/ inline const DeviceType& GetRootDeviceType() const{ return m_rootDeviceType; } /** *

The type of root device used by the AMI. The AMI can use an Amazon EBS volume * or an instance store volume.

*/ inline bool RootDeviceTypeHasBeenSet() const { return m_rootDeviceTypeHasBeenSet; } /** *

The type of root device used by the AMI. The AMI can use an Amazon EBS volume * or an instance store volume.

*/ inline void SetRootDeviceType(const DeviceType& value) { m_rootDeviceTypeHasBeenSet = true; m_rootDeviceType = value; } /** *

The type of root device used by the AMI. The AMI can use an Amazon EBS volume * or an instance store volume.

*/ inline void SetRootDeviceType(DeviceType&& value) { m_rootDeviceTypeHasBeenSet = true; m_rootDeviceType = std::move(value); } /** *

The type of root device used by the AMI. The AMI can use an Amazon EBS volume * or an instance store volume.

*/ inline Image& WithRootDeviceType(const DeviceType& value) { SetRootDeviceType(value); return *this;} /** *

The type of root device used by the AMI. The AMI can use an Amazon EBS volume * or an instance store volume.

*/ inline Image& WithRootDeviceType(DeviceType&& value) { SetRootDeviceType(std::move(value)); return *this;} /** *

Specifies whether enhanced networking with the Intel 82599 Virtual Function * interface is enabled.

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

Specifies whether enhanced networking with the Intel 82599 Virtual Function * interface is enabled.

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

Specifies whether enhanced networking with the Intel 82599 Virtual Function * interface is enabled.

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

Specifies whether enhanced networking with the Intel 82599 Virtual Function * interface is enabled.

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

Specifies whether enhanced networking with the Intel 82599 Virtual Function * interface is enabled.

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

Specifies whether enhanced networking with the Intel 82599 Virtual Function * interface is enabled.

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

Specifies whether enhanced networking with the Intel 82599 Virtual Function * interface is enabled.

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

Specifies whether enhanced networking with the Intel 82599 Virtual Function * interface is enabled.

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

The reason for the state change.

*/ inline const StateReason& GetStateReason() const{ return m_stateReason; } /** *

The reason for the state change.

*/ inline bool StateReasonHasBeenSet() const { return m_stateReasonHasBeenSet; } /** *

The reason for the state change.

*/ inline void SetStateReason(const StateReason& value) { m_stateReasonHasBeenSet = true; m_stateReason = value; } /** *

The reason for the state change.

*/ inline void SetStateReason(StateReason&& value) { m_stateReasonHasBeenSet = true; m_stateReason = std::move(value); } /** *

The reason for the state change.

*/ inline Image& WithStateReason(const StateReason& value) { SetStateReason(value); return *this;} /** *

The reason for the state change.

*/ inline Image& WithStateReason(StateReason&& value) { SetStateReason(std::move(value)); return *this;} /** *

Any tags assigned to the image.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

Any tags assigned to the image.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

Any tags assigned to the image.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

Any tags assigned to the image.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

Any tags assigned to the image.

*/ inline Image& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

Any tags assigned to the image.

*/ inline Image& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

Any tags assigned to the image.

*/ inline Image& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

Any tags assigned to the image.

*/ inline Image& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } /** *

The type of virtualization of the AMI.

*/ inline const VirtualizationType& GetVirtualizationType() const{ return m_virtualizationType; } /** *

The type of virtualization of the AMI.

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

The type of virtualization of the AMI.

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

The type of virtualization of the AMI.

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

The type of virtualization of the AMI.

*/ inline Image& WithVirtualizationType(const VirtualizationType& value) { SetVirtualizationType(value); return *this;} /** *

The type of virtualization of the AMI.

*/ inline Image& WithVirtualizationType(VirtualizationType&& value) { SetVirtualizationType(std::move(value)); return *this;} /** *

The boot mode of the image. 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 image. For more information, see Boot * modes in the Amazon EC2 User Guide.

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

The boot mode of the image. 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 image. 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 image. For more information, see Boot * modes in the Amazon EC2 User Guide.

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

The boot mode of the image. For more information, see Boot * modes in the Amazon EC2 User Guide.

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

If the image is configured for NitroTPM support, the value is * v2.0. For more information, see NitroTPM * in the Amazon EC2 User Guide.

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

If the image is configured for NitroTPM support, the value is * v2.0. For more information, see NitroTPM * in the Amazon EC2 User Guide.

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

If the image is configured for NitroTPM support, the value is * v2.0. For more information, see NitroTPM * in the Amazon EC2 User Guide.

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

If the image is configured for NitroTPM support, the value is * v2.0. For more information, see NitroTPM * in the Amazon EC2 User Guide.

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

If the image is configured for NitroTPM support, the value is * v2.0. For more information, see NitroTPM * in the Amazon EC2 User Guide.

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

If the image is configured for NitroTPM support, the value is * v2.0. For more information, see NitroTPM * in the Amazon EC2 User Guide.

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

The date and time to deprecate the AMI, in UTC, in the following format: * YYYY-MM-DDTHH:MM:SSZ. If you specified * a value for seconds, Amazon EC2 rounds the seconds to the nearest minute.

*/ inline const Aws::String& GetDeprecationTime() const{ return m_deprecationTime; } /** *

The date and time to deprecate the AMI, in UTC, in the following format: * YYYY-MM-DDTHH:MM:SSZ. If you specified * a value for seconds, Amazon EC2 rounds the seconds to the nearest minute.

*/ inline bool DeprecationTimeHasBeenSet() const { return m_deprecationTimeHasBeenSet; } /** *

The date and time to deprecate the AMI, in UTC, in the following format: * YYYY-MM-DDTHH:MM:SSZ. If you specified * a value for seconds, Amazon EC2 rounds the seconds to the nearest minute.

*/ inline void SetDeprecationTime(const Aws::String& value) { m_deprecationTimeHasBeenSet = true; m_deprecationTime = value; } /** *

The date and time to deprecate the AMI, in UTC, in the following format: * YYYY-MM-DDTHH:MM:SSZ. If you specified * a value for seconds, Amazon EC2 rounds the seconds to the nearest minute.

*/ inline void SetDeprecationTime(Aws::String&& value) { m_deprecationTimeHasBeenSet = true; m_deprecationTime = std::move(value); } /** *

The date and time to deprecate the AMI, in UTC, in the following format: * YYYY-MM-DDTHH:MM:SSZ. If you specified * a value for seconds, Amazon EC2 rounds the seconds to the nearest minute.

*/ inline void SetDeprecationTime(const char* value) { m_deprecationTimeHasBeenSet = true; m_deprecationTime.assign(value); } /** *

The date and time to deprecate the AMI, in UTC, in the following format: * YYYY-MM-DDTHH:MM:SSZ. If you specified * a value for seconds, Amazon EC2 rounds the seconds to the nearest minute.

*/ inline Image& WithDeprecationTime(const Aws::String& value) { SetDeprecationTime(value); return *this;} /** *

The date and time to deprecate the AMI, in UTC, in the following format: * YYYY-MM-DDTHH:MM:SSZ. If you specified * a value for seconds, Amazon EC2 rounds the seconds to the nearest minute.

*/ inline Image& WithDeprecationTime(Aws::String&& value) { SetDeprecationTime(std::move(value)); return *this;} /** *

The date and time to deprecate the AMI, in UTC, in the following format: * YYYY-MM-DDTHH:MM:SSZ. If you specified * a value for seconds, Amazon EC2 rounds the seconds to the nearest minute.

*/ inline Image& WithDeprecationTime(const char* value) { SetDeprecationTime(value); return *this;} /** *

If v2.0, it indicates 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.

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

If v2.0, it indicates 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.

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

If v2.0, it indicates 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.

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

If v2.0, it indicates 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.

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

If v2.0, it indicates 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.

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

If v2.0, it indicates 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.

*/ inline Image& WithImdsSupport(ImdsSupportValues&& value) { SetImdsSupport(std::move(value)); return *this;} private: ArchitectureValues m_architecture; bool m_architectureHasBeenSet = false; Aws::String m_creationDate; bool m_creationDateHasBeenSet = false; Aws::String m_imageId; bool m_imageIdHasBeenSet = false; Aws::String m_imageLocation; bool m_imageLocationHasBeenSet = false; ImageTypeValues m_imageType; bool m_imageTypeHasBeenSet = false; bool m_public; bool m_publicHasBeenSet = false; Aws::String m_kernelId; bool m_kernelIdHasBeenSet = false; Aws::String m_ownerId; bool m_ownerIdHasBeenSet = false; PlatformValues m_platform; bool m_platformHasBeenSet = false; Aws::String m_platformDetails; bool m_platformDetailsHasBeenSet = false; Aws::String m_usageOperation; bool m_usageOperationHasBeenSet = false; Aws::Vector m_productCodes; bool m_productCodesHasBeenSet = false; Aws::String m_ramdiskId; bool m_ramdiskIdHasBeenSet = false; ImageState m_state; bool m_stateHasBeenSet = false; Aws::Vector m_blockDeviceMappings; bool m_blockDeviceMappingsHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; bool m_enaSupport; bool m_enaSupportHasBeenSet = false; HypervisorType m_hypervisor; bool m_hypervisorHasBeenSet = false; Aws::String m_imageOwnerAlias; bool m_imageOwnerAliasHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_rootDeviceName; bool m_rootDeviceNameHasBeenSet = false; DeviceType m_rootDeviceType; bool m_rootDeviceTypeHasBeenSet = false; Aws::String m_sriovNetSupport; bool m_sriovNetSupportHasBeenSet = false; StateReason m_stateReason; bool m_stateReasonHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; VirtualizationType m_virtualizationType; bool m_virtualizationTypeHasBeenSet = false; BootModeValues m_bootMode; bool m_bootModeHasBeenSet = false; TpmSupportValues m_tpmSupport; bool m_tpmSupportHasBeenSet = false; Aws::String m_deprecationTime; bool m_deprecationTimeHasBeenSet = false; ImdsSupportValues m_imdsSupport; bool m_imdsSupportHasBeenSet = false; }; } // namespace Model } // namespace EC2 } // namespace Aws