/AWS1/IF_EC2=>IMPORTIMAGE()¶
About ImportImage¶
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).
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.
Method Signature¶
METHODS /AWS1/IF_EC2~IMPORTIMAGE
IMPORTING
!IV_ARCHITECTURE TYPE /AWS1/EC2STRING OPTIONAL
!IO_CLIENTDATA TYPE REF TO /AWS1/CL_EC2CLIENTDATA OPTIONAL
!IV_CLIENTTOKEN TYPE /AWS1/EC2STRING OPTIONAL
!IV_DESCRIPTION TYPE /AWS1/EC2STRING OPTIONAL
!IT_DISKCONTAINERS TYPE /AWS1/CL_EC2IMAGEDISKCONTAINER=>TT_IMAGEDISKCONTAINERLIST OPTIONAL
!IV_DRYRUN TYPE /AWS1/EC2BOOLEAN OPTIONAL
!IV_ENCRYPTED TYPE /AWS1/EC2BOOLEAN OPTIONAL
!IV_HYPERVISOR TYPE /AWS1/EC2STRING OPTIONAL
!IV_KMSKEYID TYPE /AWS1/EC2KMSKEYID OPTIONAL
!IV_LICENSETYPE TYPE /AWS1/EC2STRING OPTIONAL
!IV_PLATFORM TYPE /AWS1/EC2STRING OPTIONAL
!IV_ROLENAME TYPE /AWS1/EC2STRING OPTIONAL
!IT_LICENSESPECIFICATIONS TYPE /AWS1/CL_EC2IMPIMAGELICENSEC01=>TT_IMPIMAGELICENSESPECLISTREQ OPTIONAL
!IT_TAGSPECIFICATIONS TYPE /AWS1/CL_EC2TAGSPECIFICATION=>TT_TAGSPECIFICATIONLIST OPTIONAL
!IV_USAGEOPERATION TYPE /AWS1/EC2STRING OPTIONAL
!IV_BOOTMODE TYPE /AWS1/EC2BOOTMODEVALUES OPTIONAL
RETURNING
VALUE(OO_OUTPUT) TYPE REF TO /aws1/cl_ec2importimageresult
RAISING
/AWS1/CX_EC2CLIENTEXC
/AWS1/CX_EC2SERVEREXC
/AWS1/CX_RT_TECHNICAL_GENERIC
/AWS1/CX_RT_SERVICE_GENERIC.
IMPORTING¶
Optional arguments:¶
iv_architecture TYPE /AWS1/EC2STRING /AWS1/EC2STRING¶
The architecture of the virtual machine.
Valid values:
i386|x86_64
io_clientdata TYPE REF TO /AWS1/CL_EC2CLIENTDATA /AWS1/CL_EC2CLIENTDATA¶
The client-specific data.
iv_clienttoken TYPE /AWS1/EC2STRING /AWS1/EC2STRING¶
The token to enable idempotency for VM import requests.
iv_description TYPE /AWS1/EC2STRING /AWS1/EC2STRING¶
A description string for the import image task.
it_diskcontainers TYPE /AWS1/CL_EC2IMAGEDISKCONTAINER=>TT_IMAGEDISKCONTAINERLIST TT_IMAGEDISKCONTAINERLIST¶
Information about the disk containers.
iv_dryrun TYPE /AWS1/EC2BOOLEAN /AWS1/EC2BOOLEAN¶
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 isUnauthorizedOperation.
iv_encrypted TYPE /AWS1/EC2BOOLEAN /AWS1/EC2BOOLEAN¶
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.
iv_hypervisor TYPE /AWS1/EC2STRING /AWS1/EC2STRING¶
The target hypervisor platform.
Valid values:
xen
iv_kmskeyid TYPE /AWS1/EC2KMSKEYID /AWS1/EC2KMSKEYID¶
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
KmsKeyIdis specified, theEncryptedflag 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:kmsnamespace, followed by the Region of the key, the Amazon Web Services account ID of the key owner, thekeynamespace, 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:kmsnamespace, followed by the Region of the key, the Amazon Web Services account ID of the key owner, thealiasnamespace, and then the key alias. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias.Amazon Web Services parses
KmsKeyIdasynchronously, 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.
iv_licensetype TYPE /AWS1/EC2STRING /AWS1/EC2STRING¶
The license type to be used for the Amazon Machine Image (AMI) after importing.
Specify
AWSto replace the source-system license with an Amazon Web Services license orBYOLto retain the source-system license. Leaving this parameter undefined is the same as choosingAWSwhen importing a Windows Server operating system, and the same as choosingBYOLwhen 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.
iv_platform TYPE /AWS1/EC2STRING /AWS1/EC2STRING¶
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
iv_rolename TYPE /AWS1/EC2STRING /AWS1/EC2STRING¶
The name of the role to use when not using the default role, 'vmimport'.
it_licensespecifications TYPE /AWS1/CL_EC2IMPIMAGELICENSEC01=>TT_IMPIMAGELICENSESPECLISTREQ TT_IMPIMAGELICENSESPECLISTREQ¶
The ARNs of the license configurations.
it_tagspecifications TYPE /AWS1/CL_EC2TAGSPECIFICATION=>TT_TAGSPECIFICATIONLIST TT_TAGSPECIFICATIONLIST¶
The tags to apply to the import image task during creation.
iv_usageoperation TYPE /AWS1/EC2STRING /AWS1/EC2STRING¶
The usage operation value. For more information, see Licensing options in the VM Import/Export User Guide.
iv_bootmode TYPE /AWS1/EC2BOOTMODEVALUES /AWS1/EC2BOOTMODEVALUES¶
The boot mode of the virtual machine.
The
uefi-preferredboot mode isn't supported for importing images. For more information, see Boot modes in the VM Import/Export User Guide.
RETURNING¶
oo_output TYPE REF TO /aws1/cl_ec2importimageresult /AWS1/CL_EC2IMPORTIMAGERESULT¶
Domain /AWS1/RT_ACCOUNT_ID Primitive Type NUMC
Examples¶
Syntax Example¶
This is an example of the syntax for calling the method. It includes every possible argument and initializes every possible value. The data provided is not necessarily semantically accurate (for example the value "string" may be provided for something that is intended to be an instance ID, or in some cases two arguments may be mutually exclusive). The syntax shows the ABAP syntax for creating the various data structures.
DATA(lo_result) = lo_client->importimage(
io_clientdata = new /aws1/cl_ec2clientdata(
iv_comment = |string|
iv_uploadend = '20150101000000.0000000'
iv_uploadsize = '0.1'
iv_uploadstart = '20150101000000.0000000'
)
it_diskcontainers = VALUE /aws1/cl_ec2imagediskcontainer=>tt_imagediskcontainerlist(
(
new /aws1/cl_ec2imagediskcontainer(
io_userbucket = new /aws1/cl_ec2userbucket(
iv_s3bucket = |string|
iv_s3key = |string|
)
iv_description = |string|
iv_devicename = |string|
iv_format = |string|
iv_snapshotid = |string|
iv_url = |string|
)
)
)
it_licensespecifications = VALUE /aws1/cl_ec2impimagelicensec01=>tt_impimagelicensespeclistreq(
( new /aws1/cl_ec2impimagelicensec01( |string| ) )
)
it_tagspecifications = VALUE /aws1/cl_ec2tagspecification=>tt_tagspecificationlist(
(
new /aws1/cl_ec2tagspecification(
it_tags = VALUE /aws1/cl_ec2tag=>tt_taglist(
(
new /aws1/cl_ec2tag(
iv_key = |string|
iv_value = |string|
)
)
)
iv_resourcetype = |string|
)
)
)
iv_architecture = |string|
iv_bootmode = |string|
iv_clienttoken = |string|
iv_description = |string|
iv_dryrun = ABAP_TRUE
iv_encrypted = ABAP_TRUE
iv_hypervisor = |string|
iv_kmskeyid = |string|
iv_licensetype = |string|
iv_platform = |string|
iv_rolename = |string|
iv_usageoperation = |string|
).
This is an example of reading all possible response values
lo_result = lo_result.
IF lo_result IS NOT INITIAL.
lv_string = lo_result->get_architecture( ).
lv_string = lo_result->get_description( ).
lv_boolean = lo_result->get_encrypted( ).
lv_string = lo_result->get_hypervisor( ).
lv_string = lo_result->get_imageid( ).
lv_importimagetaskid = lo_result->get_importtaskid( ).
lv_kmskeyid = lo_result->get_kmskeyid( ).
lv_string = lo_result->get_licensetype( ).
lv_string = lo_result->get_platform( ).
lv_string = lo_result->get_progress( ).
LOOP AT lo_result->get_snapshotdetails( ) into lo_row.
lo_row_1 = lo_row.
IF lo_row_1 IS NOT INITIAL.
lv_string = lo_row_1->get_description( ).
lv_string = lo_row_1->get_devicename( ).
lv_double = lo_row_1->get_diskimagesize( ).
lv_string = lo_row_1->get_format( ).
lv_string = lo_row_1->get_progress( ).
lv_string = lo_row_1->get_snapshotid( ).
lv_string = lo_row_1->get_status( ).
lv_string = lo_row_1->get_statusmessage( ).
lv_sensitiveurl = lo_row_1->get_url( ).
lo_userbucketdetails = lo_row_1->get_userbucket( ).
IF lo_userbucketdetails IS NOT INITIAL.
lv_string = lo_userbucketdetails->get_s3bucket( ).
lv_string = lo_userbucketdetails->get_s3key( ).
ENDIF.
ENDIF.
ENDLOOP.
lv_string = lo_result->get_status( ).
lv_string = lo_result->get_statusmessage( ).
LOOP AT lo_result->get_licensespecifications( ) into lo_row_2.
lo_row_3 = lo_row_2.
IF lo_row_3 IS NOT INITIAL.
lv_string = lo_row_3->get_licenseconfigurationarn( ).
ENDIF.
ENDLOOP.
LOOP AT lo_result->get_tags( ) into lo_row_4.
lo_row_5 = lo_row_4.
IF lo_row_5 IS NOT INITIAL.
lv_string = lo_row_5->get_key( ).
lv_string = lo_row_5->get_value( ).
ENDIF.
ENDLOOP.
lv_string = lo_result->get_usageoperation( ).
ENDIF.