Skip to content

/AWS1/IF_LMV=>UPDATEMICROVMIMAGE()

About UpdateMicrovmImage

Updates the configuration of a MicroVM image and triggers a new version build. This operation uses PUT semantics — all required fields (codeArtifact, baseImageArn, buildRoleArn) must be provided with every request.

Method Signature

METHODS /AWS1/IF_LMV~UPDATEMICROVMIMAGE
  IMPORTING
    !IV_BASEIMAGEARN TYPE /AWS1/LMVNONBLANKSTRING OPTIONAL
    !IV_BASEIMAGEVERSION TYPE /AWS1/LMVVERSION OPTIONAL
    !IV_BUILDROLEARN TYPE /AWS1/LMVROLEARN OPTIONAL
    !IV_DESCRIPTION TYPE /AWS1/LMVSTRING OPTIONAL
    !IO_CODEARTIFACT TYPE REF TO /AWS1/CL_LMVCODEARTIFACT OPTIONAL
    !IO_LOGGING TYPE REF TO /AWS1/CL_LMVLOGGING OPTIONAL
    !IT_EGRESSNETWORKCONNECTORS TYPE /AWS1/CL_LMVNETWORKCNCTRLIST_W=>TT_NETWORKCONNECTORLIST OPTIONAL
    !IT_CPUCONFIGURATIONS TYPE /AWS1/CL_LMVCPUCONFIGURATION=>TT_CPUCONFIGURATIONLIST OPTIONAL
    !IT_RESOURCES TYPE /AWS1/CL_LMVRESOURCES=>TT_RESOURCESLIST OPTIONAL
    !IT_ADDITIONALOSCAPABILITIES TYPE /AWS1/CL_LMVCAPABILITYLIST_W=>TT_CAPABILITYLIST OPTIONAL
    !IO_HOOKS TYPE REF TO /AWS1/CL_LMVHOOKS OPTIONAL
    !IT_ENVIRONMENTVARIABLES TYPE /AWS1/CL_LMVENVVARIABLEMAP_W=>TT_ENVIRONMENTVARIABLEMAP OPTIONAL
    !IV_IMAGEIDENTIFIER TYPE /AWS1/LMVMICROVMIMAGEID OPTIONAL
    !IV_CLIENTTOKEN TYPE /AWS1/LMVSTRING OPTIONAL
  RETURNING
    VALUE(OO_OUTPUT) TYPE REF TO /aws1/cl_lmvupdatemvmimagersp
  RAISING
    /AWS1/CX_LMVACCESSDENIEDEX
    /AWS1/CX_LMVCONFLICTEXCEPTION
    /AWS1/CX_LMVINTERNALSERVEREX
    /AWS1/CX_LMVRESOURCENOTFOUNDEX
    /AWS1/CX_LMVSERVICEQUOTAEXCDEX
    /AWS1/CX_LMVTHROTTLINGEX
    /AWS1/CX_LMVVLDTNEXCEPTION
    /AWS1/CX_LMVCLIENTEXC
    /AWS1/CX_LMVSERVEREXC
    /AWS1/CX_RT_TECHNICAL_GENERIC
    /AWS1/CX_RT_SERVICE_GENERIC.

IMPORTING

Required arguments:

iv_baseimagearn TYPE /AWS1/LMVNONBLANKSTRING /AWS1/LMVNONBLANKSTRING

The ARN of the base MicroVM image.

iv_buildrolearn TYPE /AWS1/LMVROLEARN /AWS1/LMVROLEARN

The ARN of the IAM build role.

io_codeartifact TYPE REF TO /AWS1/CL_LMVCODEARTIFACT /AWS1/CL_LMVCODEARTIFACT

The code artifact containing the application code and metadata for the MicroVM image.

iv_imageidentifier TYPE /AWS1/LMVMICROVMIMAGEID /AWS1/LMVMICROVMIMAGEID

The unique identifier (ARN or ID) of the MicroVM image to update.

Optional arguments:

iv_baseimageversion TYPE /AWS1/LMVVERSION /AWS1/LMVVERSION

The specific version of the base MicroVM image to use.

iv_description TYPE /AWS1/LMVSTRING /AWS1/LMVSTRING

The description of the MicroVM image.

io_logging TYPE REF TO /AWS1/CL_LMVLOGGING /AWS1/CL_LMVLOGGING

The logging configuration for build-time and runtime logs. Specify {"cloudWatch": {"logGroup": "..."}} to stream logs to a custom CloudWatch log group, or {"disabled": {}} to turn off logging.

it_egressnetworkconnectors TYPE /AWS1/CL_LMVNETWORKCNCTRLIST_W=>TT_NETWORKCONNECTORLIST TT_NETWORKCONNECTORLIST

The list of egress network connectors available to the MicroVM at runtime.

it_cpuconfigurations TYPE /AWS1/CL_LMVCPUCONFIGURATION=>TT_CPUCONFIGURATIONLIST TT_CPUCONFIGURATIONLIST

The list of supported CPU configurations for the MicroVM.

it_resources TYPE /AWS1/CL_LMVRESOURCES=>TT_RESOURCESLIST TT_RESOURCESLIST

The resource requirements for the MicroVM.

it_additionaloscapabilities TYPE /AWS1/CL_LMVCAPABILITYLIST_W=>TT_CAPABILITYLIST TT_CAPABILITYLIST

Additional OS capabilities granted to the MicroVM runtime environment.

io_hooks TYPE REF TO /AWS1/CL_LMVHOOKS /AWS1/CL_LMVHOOKS

Lifecycle hook configuration for MicroVMs and MicroVM images.

it_environmentvariables TYPE /AWS1/CL_LMVENVVARIABLEMAP_W=>TT_ENVIRONMENTVARIABLEMAP TT_ENVIRONMENTVARIABLEMAP

Environment variables set in the MicroVM runtime environment.

iv_clienttoken TYPE /AWS1/LMVSTRING /AWS1/LMVSTRING

A unique, case-sensitive identifier you provide to ensure the idempotency of the request.

RETURNING

oo_output TYPE REF TO /aws1/cl_lmvupdatemvmimagersp /AWS1/CL_LMVUPDATEMVMIMAGERSP

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->updatemicrovmimage(
  io_codeartifact = new /aws1/cl_lmvcodeartifact( |string| )
  io_hooks = new /aws1/cl_lmvhooks(
    io_microvmhooks = new /aws1/cl_lmvmicrovmhooks(
      iv_resume = |string|
      iv_resumetimeoutinseconds = 123
      iv_run = |string|
      iv_runtimeoutinseconds = 123
      iv_suspend = |string|
      iv_suspendtimeoutinseconds = 123
      iv_terminate = |string|
      iv_terminatetimeoutinseconds = 123
    )
    io_microvmimagehooks = new /aws1/cl_lmvmicrovmimagehooks(
      iv_ready = |string|
      iv_readytimeoutinseconds = 123
      iv_validate = |string|
      iv_validatetimeoutinseconds = 123
    )
    iv_port = 123
  )
  io_logging = new /aws1/cl_lmvlogging(
    io_cloudwatch = new /aws1/cl_lmvcloudwatchlogging(
      iv_loggroup = |string|
      iv_logstream = |string|
    )
    io_disabled = new /aws1/cl_lmvloggingdisabled( )
  )
  it_additionaloscapabilities = VALUE /aws1/cl_lmvcapabilitylist_w=>tt_capabilitylist(
    ( new /aws1/cl_lmvcapabilitylist_w( |string| ) )
  )
  it_cpuconfigurations = VALUE /aws1/cl_lmvcpuconfiguration=>tt_cpuconfigurationlist(
    ( new /aws1/cl_lmvcpuconfiguration( |string| ) )
  )
  it_egressnetworkconnectors = VALUE /aws1/cl_lmvnetworkcnctrlist_w=>tt_networkconnectorlist(
    ( new /aws1/cl_lmvnetworkcnctrlist_w( |string| ) )
  )
  it_environmentvariables = VALUE /aws1/cl_lmvenvvariablemap_w=>tt_environmentvariablemap(
    (
      VALUE /aws1/cl_lmvenvvariablemap_w=>ts_envvariablemap_maprow(
        key = |string|
        value = new /aws1/cl_lmvenvvariablemap_w( |string| )
      )
    )
  )
  it_resources = VALUE /aws1/cl_lmvresources=>tt_resourceslist(
    ( new /aws1/cl_lmvresources( 123 ) )
  )
  iv_baseimagearn = |string|
  iv_baseimageversion = |string|
  iv_buildrolearn = |string|
  iv_clienttoken = |string|
  iv_description = |string|
  iv_imageidentifier = |string|
).

This is an example of reading all possible response values

lo_result = lo_result.
IF lo_result IS NOT INITIAL.
  lv_nonblankstring = lo_result->get_imagearn( ).
  lv_imagename = lo_result->get_name( ).
  lv_microvmimagestate = lo_result->get_state( ).
  lv_nonblankstring = lo_result->get_latestactiveimageversion( ).
  lv_nonblankstring = lo_result->get_latestfailedimageversion( ).
  lv_timestamp = lo_result->get_createdat( ).
  lv_nonblankstring = lo_result->get_baseimagearn( ).
  lv_version = lo_result->get_baseimageversion( ).
  lv_rolearn = lo_result->get_buildrolearn( ).
  lv_string = lo_result->get_description( ).
  lo_codeartifact = lo_result->get_codeartifact( ).
  IF lo_codeartifact IS NOT INITIAL.
    lv_nonblankstring = lo_codeartifact->get_uri( ).
  ENDIF.
  lo_logging = lo_result->get_logging( ).
  IF lo_logging IS NOT INITIAL.
    lo_loggingdisabled = lo_logging->get_disabled( ).
    IF lo_loggingdisabled IS NOT INITIAL.
    ENDIF.
    lo_cloudwatchlogging = lo_logging->get_cloudwatch( ).
    IF lo_cloudwatchlogging IS NOT INITIAL.
      lv_string_1 = lo_cloudwatchlogging->get_loggroup( ).
      lv_string_1 = lo_cloudwatchlogging->get_logstream( ).
    ENDIF.
  ENDIF.
  LOOP AT lo_result->get_egressnetworkconnectors( ) into lo_row.
    lo_row_1 = lo_row.
    IF lo_row_1 IS NOT INITIAL.
      lv_networkconnector = lo_row_1->get_value( ).
    ENDIF.
  ENDLOOP.
  LOOP AT lo_result->get_cpuconfigurations( ) into lo_row_2.
    lo_row_3 = lo_row_2.
    IF lo_row_3 IS NOT INITIAL.
      lv_architecture = lo_row_3->get_architecture( ).
    ENDIF.
  ENDLOOP.
  LOOP AT lo_result->get_resources( ) into lo_row_4.
    lo_row_5 = lo_row_4.
    IF lo_row_5 IS NOT INITIAL.
      lv_integer = lo_row_5->get_minimummemoryinmib( ).
    ENDIF.
  ENDLOOP.
  LOOP AT lo_result->get_additionaloscapabilities( ) into lo_row_6.
    lo_row_7 = lo_row_6.
    IF lo_row_7 IS NOT INITIAL.
      lv_capability = lo_row_7->get_value( ).
    ENDIF.
  ENDLOOP.
  lo_hooks = lo_result->get_hooks( ).
  IF lo_hooks IS NOT INITIAL.
    lv_integer = lo_hooks->get_port( ).
    lo_microvmhooks = lo_hooks->get_microvmhooks( ).
    IF lo_microvmhooks IS NOT INITIAL.
      lv_hookstate = lo_microvmhooks->get_run( ).
      lv_integer = lo_microvmhooks->get_runtimeoutinseconds( ).
      lv_hookstate = lo_microvmhooks->get_resume( ).
      lv_integer = lo_microvmhooks->get_resumetimeoutinseconds( ).
      lv_hookstate = lo_microvmhooks->get_suspend( ).
      lv_integer = lo_microvmhooks->get_suspendtimeoutinseconds( ).
      lv_hookstate = lo_microvmhooks->get_terminate( ).
      lv_integer = lo_microvmhooks->get_termtimeoutinseconds( ).
    ENDIF.
    lo_microvmimagehooks = lo_hooks->get_microvmimagehooks( ).
    IF lo_microvmimagehooks IS NOT INITIAL.
      lv_hookstate = lo_microvmimagehooks->get_ready( ).
      lv_integer = lo_microvmimagehooks->get_readytimeoutinseconds( ).
      lv_hookstate = lo_microvmimagehooks->get_validate( ).
      lv_integer = lo_microvmimagehooks->get_validatetimeoutinseconds( ).
    ENDIF.
  ENDIF.
  LOOP AT lo_result->get_environmentvariables( ) into ls_row_8.
    lv_key = ls_row_8-key.
    lo_value = ls_row_8-value.
    IF lo_value IS NOT INITIAL.
      lv_environmentvariablevalu = lo_value->get_value( ).
    ENDIF.
  ENDLOOP.
  lv_timestamp = lo_result->get_updatedat( ).
  lv_nonblankstring = lo_result->get_imageversion( ).
ENDIF.