Skip to content

/AWS1/IF_REV=>CREATEPOLICY()

About CreatePolicy

Creates a resilience policy that defines availability and disaster recovery requirements.

Method Signature

METHODS /AWS1/IF_REV~CREATEPOLICY
  IMPORTING
    !IV_NAME TYPE /AWS1/REVENTITYNAME OPTIONAL
    !IV_DESCRIPTION TYPE /AWS1/REVLONGDESCRIPTION OPTIONAL
    !IO_AVAILABILITYSLO TYPE REF TO /AWS1/CL_REVAVAILABILITYSLO OPTIONAL
    !IO_MULTIAZ TYPE REF TO /AWS1/CL_REVMULTIAZTARGETS OPTIONAL
    !IO_MULTIREGION TYPE REF TO /AWS1/CL_REVMULTIREGIONTARGETS OPTIONAL
    !IO_DATARECOVERY TYPE REF TO /AWS1/CL_REVDATARECTARGETS OPTIONAL
    !IV_KMSKEYID TYPE /AWS1/REVKMSKEYID OPTIONAL
    !IT_TAGS TYPE /AWS1/CL_REVTAGMAP_W=>TT_TAGMAP OPTIONAL
    !IV_CLIENTTOKEN TYPE /AWS1/REVCLIENTTOKEN OPTIONAL
  RETURNING
    VALUE(OO_OUTPUT) TYPE REF TO /aws1/cl_revcreatepolicyrsp
  RAISING
    /AWS1/CX_REVACCESSDENIEDEX
    /AWS1/CX_REVCONFLICTEXCEPTION
    /AWS1/CX_REVINTERNALSERVEREX
    /AWS1/CX_REVRESOURCENOTFOUNDEX
    /AWS1/CX_REVSERVICEQUOTAEXCDEX
    /AWS1/CX_REVVLDTNEXCEPTION
    /AWS1/CX_REVCLIENTEXC
    /AWS1/CX_REVSERVEREXC
    /AWS1/CX_RT_TECHNICAL_GENERIC
    /AWS1/CX_RT_SERVICE_GENERIC.

IMPORTING

Required arguments:

iv_name TYPE /AWS1/REVENTITYNAME /AWS1/REVENTITYNAME

Resource name (used in ARN — no spaces allowed).

Optional arguments:

iv_description TYPE /AWS1/REVLONGDESCRIPTION /AWS1/REVLONGDESCRIPTION

Resource description for services and policies.

io_availabilityslo TYPE REF TO /AWS1/CL_REVAVAILABILITYSLO /AWS1/CL_REVAVAILABILITYSLO

The availability SLO for the resilience policy.

io_multiaz TYPE REF TO /AWS1/CL_REVMULTIAZTARGETS /AWS1/CL_REVMULTIAZTARGETS

The multi-AZ disaster recovery targets for the resilience policy.

io_multiregion TYPE REF TO /AWS1/CL_REVMULTIREGIONTARGETS /AWS1/CL_REVMULTIREGIONTARGETS

The multi-Region disaster recovery targets for the resilience policy.

io_datarecovery TYPE REF TO /AWS1/CL_REVDATARECTARGETS /AWS1/CL_REVDATARECTARGETS

The data recovery targets for the resilience policy.

iv_kmskeyid TYPE /AWS1/REVKMSKEYID /AWS1/REVKMSKEYID

KMS key identifier — accepts key ID, key ARN, alias name, or alias ARN.

it_tags TYPE /AWS1/CL_REVTAGMAP_W=>TT_TAGMAP TT_TAGMAP

Resource tags.

iv_clienttoken TYPE /AWS1/REVCLIENTTOKEN /AWS1/REVCLIENTTOKEN

Idempotency token.

RETURNING

oo_output TYPE REF TO /aws1/cl_revcreatepolicyrsp /AWS1/CL_REVCREATEPOLICYRSP

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->createpolicy(
  io_availabilityslo = new /aws1/cl_revavailabilityslo( '0.1' )
  io_datarecovery = new /aws1/cl_revdatarectargets( 123 )
  io_multiaz = new /aws1/cl_revmultiaztargets(
    iv_disasterrecoveryapproach = |string|
    iv_rpoinminutes = 123
    iv_rtoinminutes = 123
  )
  io_multiregion = new /aws1/cl_revmultiregiontargets(
    iv_disasterrecoveryapproach = |string|
    iv_rpoinminutes = 123
    iv_rtoinminutes = 123
  )
  it_tags = VALUE /aws1/cl_revtagmap_w=>tt_tagmap(
    (
      VALUE /aws1/cl_revtagmap_w=>ts_tagmap_maprow(
        key = |string|
        value = new /aws1/cl_revtagmap_w( |string| )
      )
    )
  )
  iv_clienttoken = |string|
  iv_description = |string|
  iv_kmskeyid = |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_policy = lo_result->get_policy( ).
  IF lo_policy IS NOT INITIAL.
    lv_arn = lo_policy->get_policyarn( ).
    lv_entityname = lo_policy->get_name( ).
    lv_longdescription = lo_policy->get_description( ).
    lo_availabilityslo = lo_policy->get_availabilityslo( ).
    IF lo_availabilityslo IS NOT INITIAL.
      lv_double = lo_availabilityslo->get_target( ).
    ENDIF.
    lo_multiaztargets = lo_policy->get_multiaz( ).
    IF lo_multiaztargets IS NOT INITIAL.
      lv_integer = lo_multiaztargets->get_rtoinminutes( ).
      lv_integer = lo_multiaztargets->get_rpoinminutes( ).
      lv_multiazdisasterrecovery = lo_multiaztargets->get_disasterrecoveryapproach( ).
    ENDIF.
    lo_multiregiontargets = lo_policy->get_multiregion( ).
    IF lo_multiregiontargets IS NOT INITIAL.
      lv_integer = lo_multiregiontargets->get_rtoinminutes( ).
      lv_integer = lo_multiregiontargets->get_rpoinminutes( ).
      lv_multiregiondisasterreco = lo_multiregiontargets->get_disasterrecoveryapproach( ).
    ENDIF.
    lo_datarecoverytargets = lo_policy->get_datarecovery( ).
    IF lo_datarecoverytargets IS NOT INITIAL.
      lv_integer = lo_datarecoverytargets->get_timebetweenbackupsinmins( ).
    ENDIF.
    lv_kmskeyid = lo_policy->get_kmskeyid( ).
    LOOP AT lo_policy->get_tags( ) into ls_row.
      lv_key = ls_row-key.
      lo_value = ls_row-value.
      IF lo_value IS NOT INITIAL.
        lv_tagvalue = lo_value->get_value( ).
      ENDIF.
    ENDLOOP.
    lv_integer = lo_policy->get_associatedservicecount( ).
    lv_timestamp = lo_policy->get_createdat( ).
    lv_timestamp = lo_policy->get_updatedat( ).
  ENDIF.
ENDIF.