Skip to content

EC2  >  Operations  >  import_image

import_image

Operation

import_image async

import_image(input: ImportImageInput, plugins: list[Plugin] | None = None) -> ImportImageOutput
Note

To import your virtual machines (VMs) with a console-based experience, you can use the Import virtual machine images to Amazon Web Services template in the Migration Hub Orchestrator console. For more information, see the Migration Hub Orchestrator User Guide .

Import single or multi-volume disk images or EBS snapshots into an Amazon Machine Image (AMI).

Warning

Amazon Web Services VM Import/Export strongly recommends specifying a value for either the --license-type or --usage-operation parameter when you create a new VM Import task. This ensures your operating system is licensed appropriately and your billing is optimized.

For more information, see Importing a VM as an image using VM Import/Export in the VM Import/Export User Guide.

Parameters:

Name Type Description Default
input ImportImageInput

An instance of ImportImageInput.

required
plugins list[Plugin] | None

A list of callables that modify the configuration dynamically. Changes made by these plugins only apply for the duration of the operation execution and will not affect any other operation invocations.

None

Returns:

Type Description
ImportImageOutput

An instance of ImportImageOutput.

Input

ImportImageInput dataclass

Bases: _SerdeShape

Dataclass for ImportImageInput structure.

Attributes

architecture class-attribute instance-attribute
architecture: str | None = ...

The architecture of the virtual machine.

Valid values: i386 | x86_64

boot_mode class-attribute instance-attribute
boot_mode: str | None = ...

The boot mode of the virtual machine.

Note

The uefi-preferred boot mode isn't supported for importing images. For more information, see Boot modes in the VM Import/Export User Guide.

client_data class-attribute instance-attribute
client_data: ClientData | None = ...

The client-specific data.

client_token class-attribute instance-attribute
client_token: str | None = ...

The token to enable idempotency for VM import requests.

description class-attribute instance-attribute
description: str | None = ...

A description string for the import image task.

disk_containers class-attribute instance-attribute
disk_containers: list[ImageDiskContainer] | None = ...

Information about the disk containers.

dry_run class-attribute instance-attribute
dry_run: bool | None = ...

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.

encrypted class-attribute instance-attribute
encrypted: bool | None = ...

Specifies whether the destination AMI of the imported image should be encrypted. The default KMS key for EBS is used unless you specify a non-default KMS key using KmsKeyId. For more information, see Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide.

hypervisor class-attribute instance-attribute
hypervisor: str | None = ...

The target hypervisor platform.

Valid values: xen

kms_key_id class-attribute instance-attribute
kms_key_id: str | None = ...

An identifier for the symmetric KMS key to use when creating the encrypted AMI. This parameter is only required if you want to use a non-default KMS key; if this parameter is not specified, the default KMS key for EBS is used. If a KmsKeyId is specified, the Encrypted flag must also be set.

The KMS key identifier may be provided in any of the following formats:

  • Key ID

  • Key alias

  • ARN using key ID. The ID ARN contains the arn:aws:kms namespace, followed by the Region of the key, the Amazon Web Services account ID of the key owner, the key namespace, and then the key ID. For example, arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef.

  • ARN using key alias. The alias ARN contains the arn:aws:kms namespace, followed by the Region of the key, the Amazon Web Services account ID of the key owner, the alias namespace, and then the key alias. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias.

Amazon Web Services parses KmsKeyId asynchronously, meaning that the action you call may appear to complete even though you provided an invalid identifier. This action will eventually report failure.

The specified KMS key must exist in the Region that the AMI is being copied to.

Amazon EBS does not support asymmetric KMS keys.

license_specifications class-attribute instance-attribute
license_specifications: list[ImportImageLicenseConfigurationRequest] | None = ...

The ARNs of the license configurations.

license_type class-attribute instance-attribute
license_type: str | None = ...

The license type to be used for the Amazon Machine Image (AMI) after importing.

Specify AWS to replace the source-system license with an Amazon Web Services license or BYOL to retain the source-system license. Leaving this parameter undefined is the same as choosing AWS when importing a Windows Server operating system, and the same as choosing BYOL when importing a Windows client operating system (such as Windows 10) or a Linux operating system.

To use BYOL, you must have existing licenses with rights to use these licenses in a third party cloud, such as Amazon Web Services. For more information, see Prerequisites in the VM Import/Export User Guide.

platform class-attribute instance-attribute
platform: str | None = ...

The operating system of the virtual machine. If you import a VM that is compatible with Unified Extensible Firmware Interface (UEFI) using an EBS snapshot, you must specify a value for the platform.

Valid values: Windows | Linux

role_name class-attribute instance-attribute
role_name: str | None = ...

The name of the role to use when not using the default role, 'vmimport'.

tag_specifications class-attribute instance-attribute
tag_specifications: list[TagSpecification] | None = ...

The tags to apply to the import image task during creation.

usage_operation class-attribute instance-attribute
usage_operation: str | None = ...

The usage operation value. For more information, see Licensing options in the VM Import/Export User Guide.

Output

ImportImageOutput dataclass

Bases: _SerdeShape

Dataclass for ImportImageOutput structure.

Attributes

architecture class-attribute instance-attribute
architecture: str | None = ...

The architecture of the virtual machine.

description class-attribute instance-attribute
description: str | None = ...

A description of the import task.

encrypted class-attribute instance-attribute
encrypted: bool | None = ...

Indicates whether the AMI is encrypted.

hypervisor class-attribute instance-attribute
hypervisor: str | None = ...

The target hypervisor of the import task.

image_id class-attribute instance-attribute
image_id: str | None = ...

The ID of the Amazon Machine Image (AMI) created by the import task.

import_task_id class-attribute instance-attribute
import_task_id: str | None = ...

The task ID of the import image task.

kms_key_id class-attribute instance-attribute
kms_key_id: str | None = ...

The identifier for the symmetric KMS key that was used to create the encrypted AMI.

license_specifications class-attribute instance-attribute
license_specifications: list[ImportImageLicenseConfigurationResponse] | None = ...

The ARNs of the license configurations.

license_type class-attribute instance-attribute
license_type: str | None = ...

The license type of the virtual machine.

platform class-attribute instance-attribute
platform: str | None = ...

The operating system of the virtual machine.

progress class-attribute instance-attribute
progress: str | None = ...

The progress of the task.

response_metadata class-attribute instance-attribute
response_metadata: ResponseMetadata = ...

Metadata about the response that produced this output. Use this to recover the request identifiers a service's support team needs in order to investigate a call. Members of the metadata are individually optional.

snapshot_details class-attribute instance-attribute
snapshot_details: list[SnapshotDetail] | None = ...

Information about the snapshots.

status class-attribute instance-attribute
status: str | None = ...

A brief status of the task.

status_message class-attribute instance-attribute
status_message: str | None = ...

A detailed status message of the import task.

tags class-attribute instance-attribute
tags: list[Tag] | None = ...

Any tags assigned to the import image task.

usage_operation class-attribute instance-attribute
usage_operation: str | None = ...

The usage operation value.