Skip to content

/AWS1/IF_APS=>CREATEIMAGEBUILDER()

About CreateImageBuilder

Creates an image builder. An image builder is a virtual machine that is used to create an image.

The initial state of the builder is PENDING. When it is ready, the state is RUNNING.

Method Signature

METHODS /AWS1/IF_APS~CREATEIMAGEBUILDER
  IMPORTING
    !IV_NAME TYPE /AWS1/APSNAME OPTIONAL
    !IV_IMAGENAME TYPE /AWS1/APSSTRING OPTIONAL
    !IV_IMAGEARN TYPE /AWS1/APSARN OPTIONAL
    !IV_INSTANCETYPE TYPE /AWS1/APSSTRING OPTIONAL
    !IV_DESCRIPTION TYPE /AWS1/APSDESCRIPTION OPTIONAL
    !IV_DISPLAYNAME TYPE /AWS1/APSDISPLAYNAME OPTIONAL
    !IO_VPCCONFIG TYPE REF TO /AWS1/CL_APSVPCCONFIG OPTIONAL
    !IV_IAMROLEARN TYPE /AWS1/APSARN OPTIONAL
    !IV_ENABLEDEFINTERNETACCESS TYPE /AWS1/APSBOOLEANOBJECT OPTIONAL
    !IO_DOMAINJOININFO TYPE REF TO /AWS1/CL_APSDOMAINJOININFO OPTIONAL
    !IV_APPSTREAMAGENTVERSION TYPE /AWS1/APSAPPSTREAMAGENTVERSION OPTIONAL
    !IT_TAGS TYPE /AWS1/CL_APSTAGS_W=>TT_TAGS OPTIONAL
    !IT_ACCESSENDPOINTS TYPE /AWS1/CL_APSACCESSENDPOINT=>TT_ACCESSENDPOINTLIST OPTIONAL
    !IT_SOFTWARESTOINSTALL TYPE /AWS1/CL_APSSTRINGLIST_W=>TT_STRINGLIST OPTIONAL
    !IT_SOFTWARESTOUNINSTALL TYPE /AWS1/CL_APSSTRINGLIST_W=>TT_STRINGLIST OPTIONAL
  RETURNING
    VALUE(OO_OUTPUT) TYPE REF TO /aws1/cl_apscreimagebuilderrs
  RAISING
    /AWS1/CX_APSCONCURRENTMODEX
    /AWS1/CX_APSINCOMPATIBLEIMAG00
    /AWS1/CX_APSINVACCTSTATUSEX
    /AWS1/CX_APSINVPRMCOMBINATIO00
    /AWS1/CX_APSINVALIDROLEEX
    /AWS1/CX_APSLIMITEXCEEDEDEX
    /AWS1/CX_APSOPNOTPERMITTEDEX
    /AWS1/CX_APSREQUESTLIMITEXCDEX
    /AWS1/CX_APSRESRCALRDYEXISTSEX
    /AWS1/CX_APSRESRCNOTAVAILABL00
    /AWS1/CX_APSRESOURCENOTFOUNDEX
    /AWS1/CX_APSCLIENTEXC
    /AWS1/CX_APSSERVEREXC
    /AWS1/CX_RT_TECHNICAL_GENERIC
    /AWS1/CX_RT_SERVICE_GENERIC.

IMPORTING

Required arguments:

iv_name TYPE /AWS1/APSNAME /AWS1/APSNAME

A unique name for the image builder.

iv_instancetype TYPE /AWS1/APSSTRING /AWS1/APSSTRING

The instance type to use when launching the image builder. The following instance types are available:

  • stream.standard.small

  • stream.standard.medium

  • stream.standard.large

  • stream.compute.large

  • stream.compute.xlarge

  • stream.compute.2xlarge

  • stream.compute.4xlarge

  • stream.compute.8xlarge

  • stream.memory.large

  • stream.memory.xlarge

  • stream.memory.2xlarge

  • stream.memory.4xlarge

  • stream.memory.8xlarge

  • stream.memory.z1d.large

  • stream.memory.z1d.xlarge

  • stream.memory.z1d.2xlarge

  • stream.memory.z1d.3xlarge

  • stream.memory.z1d.6xlarge

  • stream.memory.z1d.12xlarge

  • stream.graphics-design.large

  • stream.graphics-design.xlarge

  • stream.graphics-design.2xlarge

  • stream.graphics-design.4xlarge

  • stream.graphics-desktop.2xlarge

  • stream.graphics.g4dn.xlarge

  • stream.graphics.g4dn.2xlarge

  • stream.graphics.g4dn.4xlarge

  • stream.graphics.g4dn.8xlarge

  • stream.graphics.g4dn.12xlarge

  • stream.graphics.g4dn.16xlarge

  • stream.graphics-pro.4xlarge

  • stream.graphics-pro.8xlarge

  • stream.graphics-pro.16xlarge

  • stream.graphics.g5.xlarge

  • stream.graphics.g5.2xlarge

  • stream.graphics.g5.4xlarge

  • stream.graphics.g5.8xlarge

  • stream.graphics.g5.16xlarge

  • stream.graphics.g5.12xlarge

  • stream.graphics.g5.24xlarge

  • stream.graphics.g6.xlarge

  • stream.graphics.g6.2xlarge

  • stream.graphics.g6.4xlarge

  • stream.graphics.g6.8xlarge

  • stream.graphics.g6.16xlarge

  • stream.graphics.g6.12xlarge

  • stream.graphics.g6.24xlarge

  • stream.graphics.gr6.4xlarge

  • stream.graphics.gr6.8xlarge

  • stream.graphics.g6f.large

  • stream.graphics.g6f.xlarge

  • stream.graphics.g6f.2xlarge

  • stream.graphics.g6f.4xlarge

  • stream.graphics.gr6f.4xlarge

Optional arguments:

iv_imagename TYPE /AWS1/APSSTRING /AWS1/APSSTRING

The name of the image used to create the image builder.

iv_imagearn TYPE /AWS1/APSARN /AWS1/APSARN

The ARN of the public, private, or shared image to use.

iv_description TYPE /AWS1/APSDESCRIPTION /AWS1/APSDESCRIPTION

The description to display.

iv_displayname TYPE /AWS1/APSDISPLAYNAME /AWS1/APSDISPLAYNAME

The image builder name to display.

io_vpcconfig TYPE REF TO /AWS1/CL_APSVPCCONFIG /AWS1/CL_APSVPCCONFIG

The VPC configuration for the image builder. You can specify only one subnet.

iv_iamrolearn TYPE /AWS1/APSARN /AWS1/APSARN

The Amazon Resource Name (ARN) of the IAM role to apply to the image builder. To assume a role, the image builder calls the AWS Security Token Service (STS) AssumeRole API operation and passes the ARN of the role to use. The operation creates a new session with temporary credentials. AppStream 2.0 retrieves the temporary credentials and creates the appstream_machine_role credential profile on the instance.

For more information, see Using an IAM Role to Grant Permissions to Applications and Scripts Running on AppStream 2.0 Streaming Instances in the Amazon AppStream 2.0 Administration Guide.

iv_enabledefinternetaccess TYPE /AWS1/APSBOOLEANOBJECT /AWS1/APSBOOLEANOBJECT

Enables or disables default internet access for the image builder.

io_domainjoininfo TYPE REF TO /AWS1/CL_APSDOMAINJOININFO /AWS1/CL_APSDOMAINJOININFO

The name of the directory and organizational unit (OU) to use to join the image builder to a Microsoft Active Directory domain.

iv_appstreamagentversion TYPE /AWS1/APSAPPSTREAMAGENTVERSION /AWS1/APSAPPSTREAMAGENTVERSION

The version of the AppStream 2.0 agent to use for this image builder. To use the latest version of the AppStream 2.0 agent, specify [LATEST].

it_tags TYPE /AWS1/CL_APSTAGS_W=>TT_TAGS TT_TAGS

The tags to associate with the image builder. A tag is a key-value pair, and the value is optional. For example, Environment=Test. If you do not specify a value, Environment=.

Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following special characters:

_ . : / = + \ - @

If you do not specify a value, the value is set to an empty string.

For more information about tags, see Tagging Your Resources in the Amazon AppStream 2.0 Administration Guide.

it_accessendpoints TYPE /AWS1/CL_APSACCESSENDPOINT=>TT_ACCESSENDPOINTLIST TT_ACCESSENDPOINTLIST

The list of interface VPC endpoint (interface endpoint) objects. Administrators can connect to the image builder only through the specified endpoints.

it_softwarestoinstall TYPE /AWS1/CL_APSSTRINGLIST_W=>TT_STRINGLIST TT_STRINGLIST

The list of license included applications to install on the image builder during creation.

Possible values include the following:

  • Microsoft_Office_2021_LTSC_Professional_Plus_32Bit

  • Microsoft_Office_2021_LTSC_Professional_Plus_64Bit

  • Microsoft_Office_2024_LTSC_Professional_Plus_32Bit

  • Microsoft_Office_2024_LTSC_Professional_Plus_64Bit

  • Microsoft_Visio_2021_LTSC_Professional_32Bit

  • Microsoft_Visio_2021_LTSC_Professional_64Bit

  • Microsoft_Visio_2024_LTSC_Professional_32Bit

  • Microsoft_Visio_2024_LTSC_Professional_64Bit

  • Microsoft_Project_2021_Professional_32Bit

  • Microsoft_Project_2021_Professional_64Bit

  • Microsoft_Project_2024_Professional_32Bit

  • Microsoft_Project_2024_Professional_64Bit

  • Microsoft_Office_2021_LTSC_Standard_32Bit

  • Microsoft_Office_2021_LTSC_Standard_64Bit

  • Microsoft_Office_2024_LTSC_Standard_32Bit

  • Microsoft_Office_2024_LTSC_Standard_64Bit

  • Microsoft_Visio_2021_LTSC_Standard_32Bit

  • Microsoft_Visio_2021_LTSC_Standard_64Bit

  • Microsoft_Visio_2024_LTSC_Standard_32Bit

  • Microsoft_Visio_2024_LTSC_Standard_64Bit

  • Microsoft_Project_2021_Standard_32Bit

  • Microsoft_Project_2021_Standard_64Bit

  • Microsoft_Project_2024_Standard_32Bit

  • Microsoft_Project_2024_Standard_64Bit

it_softwarestouninstall TYPE /AWS1/CL_APSSTRINGLIST_W=>TT_STRINGLIST TT_STRINGLIST

The list of license included applications to uninstall from the image builder during creation.

Possible values include the following:

  • Microsoft_Office_2021_LTSC_Professional_Plus_32Bit

  • Microsoft_Office_2021_LTSC_Professional_Plus_64Bit

  • Microsoft_Office_2024_LTSC_Professional_Plus_32Bit

  • Microsoft_Office_2024_LTSC_Professional_Plus_64Bit

  • Microsoft_Visio_2021_LTSC_Professional_32Bit

  • Microsoft_Visio_2021_LTSC_Professional_64Bit

  • Microsoft_Visio_2024_LTSC_Professional_32Bit

  • Microsoft_Visio_2024_LTSC_Professional_64Bit

  • Microsoft_Project_2021_Professional_32Bit

  • Microsoft_Project_2021_Professional_64Bit

  • Microsoft_Project_2024_Professional_32Bit

  • Microsoft_Project_2024_Professional_64Bit

  • Microsoft_Office_2021_LTSC_Standard_32Bit

  • Microsoft_Office_2021_LTSC_Standard_64Bit

  • Microsoft_Office_2024_LTSC_Standard_32Bit

  • Microsoft_Office_2024_LTSC_Standard_64Bit

  • Microsoft_Visio_2021_LTSC_Standard_32Bit

  • Microsoft_Visio_2021_LTSC_Standard_64Bit

  • Microsoft_Visio_2024_LTSC_Standard_32Bit

  • Microsoft_Visio_2024_LTSC_Standard_64Bit

  • Microsoft_Project_2021_Standard_32Bit

  • Microsoft_Project_2021_Standard_64Bit

  • Microsoft_Project_2024_Standard_32Bit

  • Microsoft_Project_2024_Standard_64Bit

RETURNING

oo_output TYPE REF TO /aws1/cl_apscreimagebuilderrs /AWS1/CL_APSCREIMAGEBUILDERRS

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->createimagebuilder(
  io_domainjoininfo = new /aws1/cl_apsdomainjoininfo(
    iv_directoryname = |string|
    iv_orgalunitdistinguishedn00 = |string|
  )
  io_vpcconfig = new /aws1/cl_apsvpcconfig(
    it_securitygroupids = VALUE /aws1/cl_apssecgroupidlist_w=>tt_securitygroupidlist(
      ( new /aws1/cl_apssecgroupidlist_w( |string| ) )
    )
    it_subnetids = VALUE /aws1/cl_apssubnetidlist_w=>tt_subnetidlist(
      ( new /aws1/cl_apssubnetidlist_w( |string| ) )
    )
  )
  it_accessendpoints = VALUE /aws1/cl_apsaccessendpoint=>tt_accessendpointlist(
    (
      new /aws1/cl_apsaccessendpoint(
        iv_endpointtype = |string|
        iv_vpceid = |string|
      )
    )
  )
  it_softwarestoinstall = VALUE /aws1/cl_apsstringlist_w=>tt_stringlist(
    ( new /aws1/cl_apsstringlist_w( |string| ) )
  )
  it_softwarestouninstall = VALUE /aws1/cl_apsstringlist_w=>tt_stringlist(
    ( new /aws1/cl_apsstringlist_w( |string| ) )
  )
  it_tags = VALUE /aws1/cl_apstags_w=>tt_tags(
    (
      VALUE /aws1/cl_apstags_w=>ts_tags_maprow(
        value = new /aws1/cl_apstags_w( |string| )
        key = |string|
      )
    )
  )
  iv_appstreamagentversion = |string|
  iv_description = |string|
  iv_displayname = |string|
  iv_enabledefinternetaccess = ABAP_TRUE
  iv_iamrolearn = |string|
  iv_imagearn = |string|
  iv_imagename = |string|
  iv_instancetype = |string|
  iv_name = |string|
).

This is an example of reading all possible response values

lo_result = lo_result.
IF lo_result IS NOT INITIAL.
  lo_imagebuilder = lo_result->get_imagebuilder( ).
  IF lo_imagebuilder IS NOT INITIAL.
    lv_string = lo_imagebuilder->get_name( ).
    lv_arn = lo_imagebuilder->get_arn( ).
    lv_arn = lo_imagebuilder->get_imagearn( ).
    lv_string = lo_imagebuilder->get_description( ).
    lv_string = lo_imagebuilder->get_displayname( ).
    lo_vpcconfig = lo_imagebuilder->get_vpcconfig( ).
    IF lo_vpcconfig IS NOT INITIAL.
      LOOP AT lo_vpcconfig->get_subnetids( ) into lo_row.
        lo_row_1 = lo_row.
        IF lo_row_1 IS NOT INITIAL.
          lv_string = lo_row_1->get_value( ).
        ENDIF.
      ENDLOOP.
      LOOP AT lo_vpcconfig->get_securitygroupids( ) into lo_row_2.
        lo_row_3 = lo_row_2.
        IF lo_row_3 IS NOT INITIAL.
          lv_string = lo_row_3->get_value( ).
        ENDIF.
      ENDLOOP.
    ENDIF.
    lv_string = lo_imagebuilder->get_instancetype( ).
    lv_platformtype = lo_imagebuilder->get_platform( ).
    lv_arn = lo_imagebuilder->get_iamrolearn( ).
    lv_imagebuilderstate = lo_imagebuilder->get_state( ).
    lo_imagebuilderstatechange = lo_imagebuilder->get_statechangereason( ).
    IF lo_imagebuilderstatechange IS NOT INITIAL.
      lv_imagebuilderstatechange_1 = lo_imagebuilderstatechange->get_code( ).
      lv_string = lo_imagebuilderstatechange->get_message( ).
    ENDIF.
    lv_timestamp = lo_imagebuilder->get_createdtime( ).
    lv_booleanobject = lo_imagebuilder->get_enabledefinternetaccess( ).
    lo_domainjoininfo = lo_imagebuilder->get_domainjoininfo( ).
    IF lo_domainjoininfo IS NOT INITIAL.
      lv_directoryname = lo_domainjoininfo->get_directoryname( ).
      lv_organizationalunitdisti = lo_domainjoininfo->get_orgalunitdistinguished00( ).
    ENDIF.
    lo_networkaccessconfigurat = lo_imagebuilder->get_networkaccessconf( ).
    IF lo_networkaccessconfigurat IS NOT INITIAL.
      lv_string = lo_networkaccessconfigurat->get_eniprivateipaddress( ).
      lv_string = lo_networkaccessconfigurat->get_eniid( ).
    ENDIF.
    LOOP AT lo_imagebuilder->get_imagebuildererrors( ) into lo_row_4.
      lo_row_5 = lo_row_4.
      IF lo_row_5 IS NOT INITIAL.
        lv_fleeterrorcode = lo_row_5->get_errorcode( ).
        lv_string = lo_row_5->get_errormessage( ).
        lv_timestamp = lo_row_5->get_errortimestamp( ).
      ENDIF.
    ENDLOOP.
    lv_appstreamagentversion = lo_imagebuilder->get_appstreamagentversion( ).
    LOOP AT lo_imagebuilder->get_accessendpoints( ) into lo_row_6.
      lo_row_7 = lo_row_6.
      IF lo_row_7 IS NOT INITIAL.
        lv_accessendpointtype = lo_row_7->get_endpointtype( ).
        lv_string = lo_row_7->get_vpceid( ).
      ENDIF.
    ENDLOOP.
    lv_latestappstreamagentver = lo_imagebuilder->get_latestappstreamagentvrs( ).
  ENDIF.
ENDIF.