Skip to content

/AWS1/IF_BDO=>CREATEMEMORY()

About CreateMemory

Creates a new Amazon Bedrock AgentCore Memory resource.

Method Signature

METHODS /AWS1/IF_BDO~CREATEMEMORY
  IMPORTING
    !IV_CLIENTTOKEN TYPE /AWS1/BDONONEMPTYSTRING OPTIONAL
    !IV_NAME TYPE /AWS1/BDONAME OPTIONAL
    !IV_DESCRIPTION TYPE /AWS1/BDODESCRIPTION OPTIONAL
    !IV_ENCRYPTIONKEYARN TYPE /AWS1/BDOARN OPTIONAL
    !IV_MEMORYEXECUTIONROLEARN TYPE /AWS1/BDOARN OPTIONAL
    !IV_EVENTEXPIRYDURATION TYPE /AWS1/BDOINTEGER OPTIONAL
    !IT_MEMORYSTRATEGIES TYPE /AWS1/CL_BDOMEMORYSTRAGINPUT=>TT_MEMORYSTRATEGYINPUTLIST OPTIONAL
    !IT_TAGS TYPE /AWS1/CL_BDOTAGSMAP_W=>TT_TAGSMAP OPTIONAL
  RETURNING
    VALUE(OO_OUTPUT) TYPE REF TO /aws1/cl_bdocreatememoryoutput
  RAISING
    /AWS1/CX_BDOACCESSDENIEDEX
    /AWS1/CX_BDOCONFLICTEXCEPTION
    /AWS1/CX_BDORESOURCENOTFOUNDEX
    /AWS1/CX_BDOSERVICEEXCEPTION
    /AWS1/CX_BDOSERVICEQUOTAEXCDEX
    /AWS1/CX_BDOTHROTTLEDEXCEPTION
    /AWS1/CX_BDOVALIDATIONEX
    /AWS1/CX_BDOCLIENTEXC
    /AWS1/CX_BDOSERVEREXC
    /AWS1/CX_RT_TECHNICAL_GENERIC
    /AWS1/CX_RT_SERVICE_GENERIC.

IMPORTING

Required arguments:

iv_name TYPE /AWS1/BDONAME /AWS1/BDONAME

The name of the memory. The name must be unique within your account.

iv_eventexpiryduration TYPE /AWS1/BDOINTEGER /AWS1/BDOINTEGER

The duration after which memory events expire. Specified as an ISO 8601 duration.

Optional arguments:

iv_clienttoken TYPE /AWS1/BDONONEMPTYSTRING /AWS1/BDONONEMPTYSTRING

A unique, case-sensitive identifier to ensure that the operation completes no more than one time. If this token matches a previous request, Amazon Bedrock ignores the request but does not return an error.

iv_description TYPE /AWS1/BDODESCRIPTION /AWS1/BDODESCRIPTION

The description of the memory.

iv_encryptionkeyarn TYPE /AWS1/BDOARN /AWS1/BDOARN

The Amazon Resource Name (ARN) of the KMS key used to encrypt the memory data.

iv_memoryexecutionrolearn TYPE /AWS1/BDOARN /AWS1/BDOARN

The Amazon Resource Name (ARN) of the IAM role that provides permissions for the memory to access Amazon Web Services services.

it_memorystrategies TYPE /AWS1/CL_BDOMEMORYSTRAGINPUT=>TT_MEMORYSTRATEGYINPUTLIST TT_MEMORYSTRATEGYINPUTLIST

The memory strategies to use for this memory. Strategies define how information is extracted, processed, and consolidated.

it_tags TYPE /AWS1/CL_BDOTAGSMAP_W=>TT_TAGSMAP TT_TAGSMAP

A map of tag keys and values to assign to an AgentCore Memory. Tags enable you to categorize your resources in different ways, for example, by purpose, owner, or environment.

RETURNING

oo_output TYPE REF TO /aws1/cl_bdocreatememoryoutput /AWS1/CL_BDOCREATEMEMORYOUTPUT

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->creatememory(
  it_memorystrategies = VALUE /aws1/cl_bdomemorystraginput=>tt_memorystrategyinputlist(
    (
      new /aws1/cl_bdomemorystraginput(
        io_custommemorystrategy = new /aws1/cl_bdocustmemstraginput(
          io_configuration = new /aws1/cl_bdocustomconfinput(
            io_selfmanagedconfiguration = new /aws1/cl_bdoselfmanagedconfinp(
              io_invocationconfiguration = new /aws1/cl_bdoinvcconfinput(
                iv_payloaddeliverybucketname = |string|
                iv_topicarn = |string|
              )
              it_triggerconditions = VALUE /aws1/cl_bdotriggercondinput=>tt_triggerconditioninputlist(
                (
                  new /aws1/cl_bdotriggercondinput(
                    io_messagebasedtrigger = new /aws1/cl_bdomsgbasedtriggerinp( 123 )
                    io_timebasedtrigger = new /aws1/cl_bdotimebasedtrigger00( 123 )
                    io_tokenbasedtrigger = new /aws1/cl_bdotokbasedtriggerinp( 123 )
                  )
                )
              )
              iv_historicalctxwindowsize = 123
            )
            io_semanticoverride = new /aws1/cl_bdosemanovrdconfinput(
              io_consolidation = new /aws1/cl_bdosemovrconsconfinp(
                iv_appendtoprompt = |string|
                iv_modelid = |string|
              )
              io_extraction = new /aws1/cl_bdosemovrextconfinput(
                iv_appendtoprompt = |string|
                iv_modelid = |string|
              )
            )
            io_summaryoverride = new /aws1/cl_bdosummovrdconfinput(
              io_consolidation = new /aws1/cl_bdosummovrconsconfinp(
                iv_appendtoprompt = |string|
                iv_modelid = |string|
              )
            )
            io_userpreferenceoverride = new /aws1/cl_bdouserprefovrconfinp(
              io_consolidation = new /aws1/cl_bdouserprefovrconsc00(
                iv_appendtoprompt = |string|
                iv_modelid = |string|
              )
              io_extraction = new /aws1/cl_bdouserprefovrextco00(
                iv_appendtoprompt = |string|
                iv_modelid = |string|
              )
            )
          )
          it_namespaces = VALUE /aws1/cl_bdonamespaceslist_w=>tt_namespaceslist(
            ( new /aws1/cl_bdonamespaceslist_w( |string| ) )
          )
          iv_description = |string|
          iv_name = |string|
        )
        io_semanticmemorystrategy = new /aws1/cl_bdosemanmemstraginput(
          it_namespaces = VALUE /aws1/cl_bdonamespaceslist_w=>tt_namespaceslist(
            ( new /aws1/cl_bdonamespaceslist_w( |string| ) )
          )
          iv_description = |string|
          iv_name = |string|
        )
        io_summarymemorystrategy = new /aws1/cl_bdosummmemstraginput(
          it_namespaces = VALUE /aws1/cl_bdonamespaceslist_w=>tt_namespaceslist(
            ( new /aws1/cl_bdonamespaceslist_w( |string| ) )
          )
          iv_description = |string|
          iv_name = |string|
        )
        io_userprefmemorystrategy = new /aws1/cl_bdouserprefmemstgyinp(
          it_namespaces = VALUE /aws1/cl_bdonamespaceslist_w=>tt_namespaceslist(
            ( new /aws1/cl_bdonamespaceslist_w( |string| ) )
          )
          iv_description = |string|
          iv_name = |string|
        )
      )
    )
  )
  it_tags = VALUE /aws1/cl_bdotagsmap_w=>tt_tagsmap(
    (
      VALUE /aws1/cl_bdotagsmap_w=>ts_tagsmap_maprow(
        key = |string|
        value = new /aws1/cl_bdotagsmap_w( |string| )
      )
    )
  )
  iv_clienttoken = |string|
  iv_description = |string|
  iv_encryptionkeyarn = |string|
  iv_eventexpiryduration = 123
  iv_memoryexecutionrolearn = |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_memory = lo_result->get_memory( ).
  IF lo_memory IS NOT INITIAL.
    lv_memoryarn = lo_memory->get_arn( ).
    lv_memoryid = lo_memory->get_id( ).
    lv_name = lo_memory->get_name( ).
    lv_description = lo_memory->get_description( ).
    lv_arn = lo_memory->get_encryptionkeyarn( ).
    lv_arn = lo_memory->get_memoryexecutionrolearn( ).
    lv_integer = lo_memory->get_eventexpiryduration( ).
    lv_memorystatus = lo_memory->get_status( ).
    lv_string = lo_memory->get_failurereason( ).
    lv_timestamp = lo_memory->get_createdat( ).
    lv_timestamp = lo_memory->get_updatedat( ).
    LOOP AT lo_memory->get_strategies( ) into lo_row.
      lo_row_1 = lo_row.
      IF lo_row_1 IS NOT INITIAL.
        lv_memorystrategyid = lo_row_1->get_strategyid( ).
        lv_name = lo_row_1->get_name( ).
        lv_description = lo_row_1->get_description( ).
        lo_strategyconfiguration = lo_row_1->get_configuration( ).
        IF lo_strategyconfiguration IS NOT INITIAL.
          lv_overridetype = lo_strategyconfiguration->get_type( ).
          lo_extractionconfiguration = lo_strategyconfiguration->get_extraction( ).
          IF lo_extractionconfiguration IS NOT INITIAL.
            lo_customextractionconfigu = lo_extractionconfiguration->get_customextractionconf( ).
            IF lo_customextractionconfigu IS NOT INITIAL.
              lo_semanticextractionoverr = lo_customextractionconfigu->get_semanticextoverride( ).
              IF lo_semanticextractionoverr IS NOT INITIAL.
                lv_prompt = lo_semanticextractionoverr->get_appendtoprompt( ).
                lv_string = lo_semanticextractionoverr->get_modelid( ).
              ENDIF.
              lo_userpreferenceextractio = lo_customextractionconfigu->get_userprefextoverride( ).
              IF lo_userpreferenceextractio IS NOT INITIAL.
                lv_prompt = lo_userpreferenceextractio->get_appendtoprompt( ).
                lv_string = lo_userpreferenceextractio->get_modelid( ).
              ENDIF.
            ENDIF.
          ENDIF.
          lo_consolidationconfigurat = lo_strategyconfiguration->get_consolidation( ).
          IF lo_consolidationconfigurat IS NOT INITIAL.
            lo_customconsolidationconf = lo_consolidationconfigurat->get_customconsolconf( ).
            IF lo_customconsolidationconf IS NOT INITIAL.
              lo_semanticconsolidationov = lo_customconsolidationconf->get_semanticconsoloverride( ).
              IF lo_semanticconsolidationov IS NOT INITIAL.
                lv_prompt = lo_semanticconsolidationov->get_appendtoprompt( ).
                lv_string = lo_semanticconsolidationov->get_modelid( ).
              ENDIF.
              lo_summaryconsolidationove = lo_customconsolidationconf->get_summaryconsoloverride( ).
              IF lo_summaryconsolidationove IS NOT INITIAL.
                lv_prompt = lo_summaryconsolidationove->get_appendtoprompt( ).
                lv_string = lo_summaryconsolidationove->get_modelid( ).
              ENDIF.
              lo_userpreferenceconsolida = lo_customconsolidationconf->get_userprefconsoloverride( ).
              IF lo_userpreferenceconsolida IS NOT INITIAL.
                lv_prompt = lo_userpreferenceconsolida->get_appendtoprompt( ).
                lv_string = lo_userpreferenceconsolida->get_modelid( ).
              ENDIF.
            ENDIF.
          ENDIF.
          lo_selfmanagedconfiguratio = lo_strategyconfiguration->get_selfmanagedconfiguration( ).
          IF lo_selfmanagedconfiguratio IS NOT INITIAL.
            LOOP AT lo_selfmanagedconfiguratio->get_triggerconditions( ) into lo_row_2.
              lo_row_3 = lo_row_2.
              IF lo_row_3 IS NOT INITIAL.
                lo_messagebasedtrigger = lo_row_3->get_messagebasedtrigger( ).
                IF lo_messagebasedtrigger IS NOT INITIAL.
                  lv_integer = lo_messagebasedtrigger->get_messagecount( ).
                ENDIF.
                lo_tokenbasedtrigger = lo_row_3->get_tokenbasedtrigger( ).
                IF lo_tokenbasedtrigger IS NOT INITIAL.
                  lv_integer = lo_tokenbasedtrigger->get_tokencount( ).
                ENDIF.
                lo_timebasedtrigger = lo_row_3->get_timebasedtrigger( ).
                IF lo_timebasedtrigger IS NOT INITIAL.
                  lv_integer = lo_timebasedtrigger->get_idlesessiontimeout( ).
                ENDIF.
              ENDIF.
            ENDLOOP.
            lo_invocationconfiguration = lo_selfmanagedconfiguratio->get_invocationconfiguration( ).
            IF lo_invocationconfiguration IS NOT INITIAL.
              lv_arn = lo_invocationconfiguration->get_topicarn( ).
              lv_string = lo_invocationconfiguration->get_payloaddlvrybucketname( ).
            ENDIF.
            lv_integer = lo_selfmanagedconfiguratio->get_historicalctxwindowsize( ).
          ENDIF.
        ENDIF.
        lv_memorystrategytype = lo_row_1->get_type( ).
        LOOP AT lo_row_1->get_namespaces( ) into lo_row_4.
          lo_row_5 = lo_row_4.
          IF lo_row_5 IS NOT INITIAL.
            lv_namespace = lo_row_5->get_value( ).
          ENDIF.
        ENDLOOP.
        lv_timestamp = lo_row_1->get_createdat( ).
        lv_timestamp = lo_row_1->get_updatedat( ).
        lv_memorystrategystatus = lo_row_1->get_status( ).
      ENDIF.
    ENDLOOP.
  ENDIF.
ENDIF.