Skip to content

/AWS1/IF_BDO=>CREATEOAUTH2CREDPROVIDER()

About CreateOauth2CredentialProvider

Creates a new OAuth2 credential provider.

Method Signature

METHODS /AWS1/IF_BDO~CREATEOAUTH2CREDPROVIDER
  IMPORTING
    !IV_NAME TYPE /AWS1/BDOCREDPROVIDERNAME OPTIONAL
    !IV_CREDENTIALPROVIDERVENDOR TYPE /AWS1/BDOCREDPVDRVENDORTYPE OPTIONAL
    !IO_OAUTH2PROVIDERCONFIGINPUT TYPE REF TO /AWS1/CL_BDOOAUTH2PVDRCFGINPUT OPTIONAL
    !IT_TAGS TYPE /AWS1/CL_BDOTAGSMAP_W=>TT_TAGSMAP OPTIONAL
  RETURNING
    VALUE(OO_OUTPUT) TYPE REF TO /aws1/cl_bdocreo2credpvdrrsp
  RAISING
    /AWS1/CX_BDOACCESSDENIEDEX
    /AWS1/CX_BDOCONFLICTEXCEPTION
    /AWS1/CX_BDODECRYPTIONFAILURE
    /AWS1/CX_BDOENCRYPTIONFAILURE
    /AWS1/CX_BDOINTERNALSERVEREX
    /AWS1/CX_BDORESLIMITEXCDEX
    /AWS1/CX_BDORESOURCENOTFOUNDEX
    /AWS1/CX_BDOSERVICEQUOTAEXCDEX
    /AWS1/CX_BDOTHROTTLINGEX
    /AWS1/CX_BDOUNAUTHORIZEDEX
    /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/BDOCREDPROVIDERNAME /AWS1/BDOCREDPROVIDERNAME

The name of the OAuth2 credential provider. The name must be unique within your account.

iv_credentialprovidervendor TYPE /AWS1/BDOCREDPVDRVENDORTYPE /AWS1/BDOCREDPVDRVENDORTYPE

The vendor of the OAuth2 credential provider. This specifies which OAuth2 implementation to use.

io_oauth2providerconfiginput TYPE REF TO /AWS1/CL_BDOOAUTH2PVDRCFGINPUT /AWS1/CL_BDOOAUTH2PVDRCFGINPUT

The configuration settings for the OAuth2 provider, including client ID, client secret, and other vendor-specific settings.

Optional arguments:

it_tags TYPE /AWS1/CL_BDOTAGSMAP_W=>TT_TAGSMAP TT_TAGSMAP

A map of tag keys and values to assign to the OAuth2 credential provider. 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_bdocreo2credpvdrrsp /AWS1/CL_BDOCREO2CREDPVDRRSP

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->createoauth2credprovider(
  io_oauth2providerconfiginput = new /aws1/cl_bdooauth2pvdrcfginput(
    io_atlsnoauth2providerconfig = new /aws1/cl_bdoatlsno2pvdrcfginp(
      iv_clientid = |string|
      iv_clientsecret = |string|
    )
    io_customoauth2pvdrconfig = new /aws1/cl_bdocusto2pvdrcfginput(
      io_oauthdiscovery = new /aws1/cl_bdooauth2discovery(
        io_authservermetadata = new /aws1/cl_bdooauth2authsrvmet(
          it_responsetypes = VALUE /aws1/cl_bdoresponselisttype_w=>tt_responselisttype(
            ( new /aws1/cl_bdoresponselisttype_w( |string| ) )
          )
          it_tokenendpointauthmethods = VALUE /aws1/cl_bdotokendptauthmths00=>tt_tokenendptauthmethodstype(
            ( new /aws1/cl_bdotokendptauthmths00( |string| ) )
          )
          iv_authorizationendpoint = |string|
          iv_issuer = |string|
          iv_tokenendpoint = |string|
        )
        iv_discoveryurl = |string|
      )
      iv_clientid = |string|
      iv_clientsecret = |string|
    )
    io_githuboauth2pvdrconfig = new /aws1/cl_bdogito2pvdrcfginput(
      iv_clientid = |string|
      iv_clientsecret = |string|
    )
    io_googleoauth2pvdrconfig = new /aws1/cl_bdogoogo2pvdrcfginput(
      iv_clientid = |string|
      iv_clientsecret = |string|
    )
    io_includedoauth2pvdrconfig = new /aws1/cl_bdoincldo2pvdrcfginp(
      iv_authorizationendpoint = |string|
      iv_clientid = |string|
      iv_clientsecret = |string|
      iv_issuer = |string|
      iv_tokenendpoint = |string|
    )
    io_linkedinoauth2pvdrconfig = new /aws1/cl_bdolnkdno2pvdrcfginp(
      iv_clientid = |string|
      iv_clientsecret = |string|
    )
    io_msftoauth2providerconfig = new /aws1/cl_bdomsfto2pvdrcfginput(
      iv_clientid = |string|
      iv_clientsecret = |string|
      iv_tenantid = |string|
    )
    io_sforceoauth2pvdrconfig = new /aws1/cl_bdosforceo2pvdrcfginp(
      iv_clientid = |string|
      iv_clientsecret = |string|
    )
    io_slackoauth2providerconfig = new /aws1/cl_bdoslacko2pvdrcfginp(
      iv_clientid = |string|
      iv_clientsecret = |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_credentialprovidervendor = |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_secret = lo_result->get_clientsecretarn( ).
  IF lo_secret IS NOT INITIAL.
    lv_secretarn = lo_secret->get_secretarn( ).
  ENDIF.
  lv_credentialprovidername = lo_result->get_name( ).
  lv_credentialproviderarnty = lo_result->get_credentialproviderarn( ).
  lv_string = lo_result->get_callbackurl( ).
  lo_oauth2providerconfigout = lo_result->get_oauth2pvdrconfigoutput( ).
  IF lo_oauth2providerconfigout IS NOT INITIAL.
    lo_customoauth2providercon = lo_oauth2providerconfigout->get_customoauth2pvdrconfig( ).
    IF lo_customoauth2providercon IS NOT INITIAL.
      lo_oauth2discovery = lo_customoauth2providercon->get_oauthdiscovery( ).
      IF lo_oauth2discovery IS NOT INITIAL.
        lv_discoveryurltype = lo_oauth2discovery->get_discoveryurl( ).
        lo_oauth2authorizationserv = lo_oauth2discovery->get_authservermetadata( ).
        IF lo_oauth2authorizationserv IS NOT INITIAL.
          lv_issuerurltype = lo_oauth2authorizationserv->get_issuer( ).
          lv_authorizationendpointty = lo_oauth2authorizationserv->get_authorizationendpoint( ).
          lv_tokenendpointtype = lo_oauth2authorizationserv->get_tokenendpoint( ).
          LOOP AT lo_oauth2authorizationserv->get_responsetypes( ) into lo_row.
            lo_row_1 = lo_row.
            IF lo_row_1 IS NOT INITIAL.
              lv_responsetype = lo_row_1->get_value( ).
            ENDIF.
          ENDLOOP.
          LOOP AT lo_oauth2authorizationserv->get_tokenendpointauthmethods( ) into lo_row_2.
            lo_row_3 = lo_row_2.
            IF lo_row_3 IS NOT INITIAL.
              lv_tokenauthmethod = lo_row_3->get_value( ).
            ENDIF.
          ENDLOOP.
        ENDIF.
      ENDIF.
      lv_clientidtype = lo_customoauth2providercon->get_clientid( ).
    ENDIF.
    lo_googleoauth2providercon = lo_oauth2providerconfigout->get_googleoauth2pvdrconfig( ).
    IF lo_googleoauth2providercon IS NOT INITIAL.
      lo_oauth2discovery = lo_googleoauth2providercon->get_oauthdiscovery( ).
      IF lo_oauth2discovery IS NOT INITIAL.
        lv_discoveryurltype = lo_oauth2discovery->get_discoveryurl( ).
        lo_oauth2authorizationserv = lo_oauth2discovery->get_authservermetadata( ).
        IF lo_oauth2authorizationserv IS NOT INITIAL.
          lv_issuerurltype = lo_oauth2authorizationserv->get_issuer( ).
          lv_authorizationendpointty = lo_oauth2authorizationserv->get_authorizationendpoint( ).
          lv_tokenendpointtype = lo_oauth2authorizationserv->get_tokenendpoint( ).
          LOOP AT lo_oauth2authorizationserv->get_responsetypes( ) into lo_row.
            lo_row_1 = lo_row.
            IF lo_row_1 IS NOT INITIAL.
              lv_responsetype = lo_row_1->get_value( ).
            ENDIF.
          ENDLOOP.
          LOOP AT lo_oauth2authorizationserv->get_tokenendpointauthmethods( ) into lo_row_2.
            lo_row_3 = lo_row_2.
            IF lo_row_3 IS NOT INITIAL.
              lv_tokenauthmethod = lo_row_3->get_value( ).
            ENDIF.
          ENDLOOP.
        ENDIF.
      ENDIF.
      lv_clientidtype = lo_googleoauth2providercon->get_clientid( ).
    ENDIF.
    lo_githuboauth2providercon = lo_oauth2providerconfigout->get_githuboauth2pvdrconfig( ).
    IF lo_githuboauth2providercon IS NOT INITIAL.
      lo_oauth2discovery = lo_githuboauth2providercon->get_oauthdiscovery( ).
      IF lo_oauth2discovery IS NOT INITIAL.
        lv_discoveryurltype = lo_oauth2discovery->get_discoveryurl( ).
        lo_oauth2authorizationserv = lo_oauth2discovery->get_authservermetadata( ).
        IF lo_oauth2authorizationserv IS NOT INITIAL.
          lv_issuerurltype = lo_oauth2authorizationserv->get_issuer( ).
          lv_authorizationendpointty = lo_oauth2authorizationserv->get_authorizationendpoint( ).
          lv_tokenendpointtype = lo_oauth2authorizationserv->get_tokenendpoint( ).
          LOOP AT lo_oauth2authorizationserv->get_responsetypes( ) into lo_row.
            lo_row_1 = lo_row.
            IF lo_row_1 IS NOT INITIAL.
              lv_responsetype = lo_row_1->get_value( ).
            ENDIF.
          ENDLOOP.
          LOOP AT lo_oauth2authorizationserv->get_tokenendpointauthmethods( ) into lo_row_2.
            lo_row_3 = lo_row_2.
            IF lo_row_3 IS NOT INITIAL.
              lv_tokenauthmethod = lo_row_3->get_value( ).
            ENDIF.
          ENDLOOP.
        ENDIF.
      ENDIF.
      lv_clientidtype = lo_githuboauth2providercon->get_clientid( ).
    ENDIF.
    lo_slackoauth2providerconf = lo_oauth2providerconfigout->get_slackoauth2pvdrconfig( ).
    IF lo_slackoauth2providerconf IS NOT INITIAL.
      lo_oauth2discovery = lo_slackoauth2providerconf->get_oauthdiscovery( ).
      IF lo_oauth2discovery IS NOT INITIAL.
        lv_discoveryurltype = lo_oauth2discovery->get_discoveryurl( ).
        lo_oauth2authorizationserv = lo_oauth2discovery->get_authservermetadata( ).
        IF lo_oauth2authorizationserv IS NOT INITIAL.
          lv_issuerurltype = lo_oauth2authorizationserv->get_issuer( ).
          lv_authorizationendpointty = lo_oauth2authorizationserv->get_authorizationendpoint( ).
          lv_tokenendpointtype = lo_oauth2authorizationserv->get_tokenendpoint( ).
          LOOP AT lo_oauth2authorizationserv->get_responsetypes( ) into lo_row.
            lo_row_1 = lo_row.
            IF lo_row_1 IS NOT INITIAL.
              lv_responsetype = lo_row_1->get_value( ).
            ENDIF.
          ENDLOOP.
          LOOP AT lo_oauth2authorizationserv->get_tokenendpointauthmethods( ) into lo_row_2.
            lo_row_3 = lo_row_2.
            IF lo_row_3 IS NOT INITIAL.
              lv_tokenauthmethod = lo_row_3->get_value( ).
            ENDIF.
          ENDLOOP.
        ENDIF.
      ENDIF.
      lv_clientidtype = lo_slackoauth2providerconf->get_clientid( ).
    ENDIF.
    lo_salesforceoauth2provide = lo_oauth2providerconfigout->get_sforceoauth2pvdrconfig( ).
    IF lo_salesforceoauth2provide IS NOT INITIAL.
      lo_oauth2discovery = lo_salesforceoauth2provide->get_oauthdiscovery( ).
      IF lo_oauth2discovery IS NOT INITIAL.
        lv_discoveryurltype = lo_oauth2discovery->get_discoveryurl( ).
        lo_oauth2authorizationserv = lo_oauth2discovery->get_authservermetadata( ).
        IF lo_oauth2authorizationserv IS NOT INITIAL.
          lv_issuerurltype = lo_oauth2authorizationserv->get_issuer( ).
          lv_authorizationendpointty = lo_oauth2authorizationserv->get_authorizationendpoint( ).
          lv_tokenendpointtype = lo_oauth2authorizationserv->get_tokenendpoint( ).
          LOOP AT lo_oauth2authorizationserv->get_responsetypes( ) into lo_row.
            lo_row_1 = lo_row.
            IF lo_row_1 IS NOT INITIAL.
              lv_responsetype = lo_row_1->get_value( ).
            ENDIF.
          ENDLOOP.
          LOOP AT lo_oauth2authorizationserv->get_tokenendpointauthmethods( ) into lo_row_2.
            lo_row_3 = lo_row_2.
            IF lo_row_3 IS NOT INITIAL.
              lv_tokenauthmethod = lo_row_3->get_value( ).
            ENDIF.
          ENDLOOP.
        ENDIF.
      ENDIF.
      lv_clientidtype = lo_salesforceoauth2provide->get_clientid( ).
    ENDIF.
    lo_microsoftoauth2provider = lo_oauth2providerconfigout->get_msftoauth2providerconfig( ).
    IF lo_microsoftoauth2provider IS NOT INITIAL.
      lo_oauth2discovery = lo_microsoftoauth2provider->get_oauthdiscovery( ).
      IF lo_oauth2discovery IS NOT INITIAL.
        lv_discoveryurltype = lo_oauth2discovery->get_discoveryurl( ).
        lo_oauth2authorizationserv = lo_oauth2discovery->get_authservermetadata( ).
        IF lo_oauth2authorizationserv IS NOT INITIAL.
          lv_issuerurltype = lo_oauth2authorizationserv->get_issuer( ).
          lv_authorizationendpointty = lo_oauth2authorizationserv->get_authorizationendpoint( ).
          lv_tokenendpointtype = lo_oauth2authorizationserv->get_tokenendpoint( ).
          LOOP AT lo_oauth2authorizationserv->get_responsetypes( ) into lo_row.
            lo_row_1 = lo_row.
            IF lo_row_1 IS NOT INITIAL.
              lv_responsetype = lo_row_1->get_value( ).
            ENDIF.
          ENDLOOP.
          LOOP AT lo_oauth2authorizationserv->get_tokenendpointauthmethods( ) into lo_row_2.
            lo_row_3 = lo_row_2.
            IF lo_row_3 IS NOT INITIAL.
              lv_tokenauthmethod = lo_row_3->get_value( ).
            ENDIF.
          ENDLOOP.
        ENDIF.
      ENDIF.
      lv_clientidtype = lo_microsoftoauth2provider->get_clientid( ).
    ENDIF.
    lo_atlassianoauth2provider = lo_oauth2providerconfigout->get_atlsnoauth2pvdrconfig( ).
    IF lo_atlassianoauth2provider IS NOT INITIAL.
      lo_oauth2discovery = lo_atlassianoauth2provider->get_oauthdiscovery( ).
      IF lo_oauth2discovery IS NOT INITIAL.
        lv_discoveryurltype = lo_oauth2discovery->get_discoveryurl( ).
        lo_oauth2authorizationserv = lo_oauth2discovery->get_authservermetadata( ).
        IF lo_oauth2authorizationserv IS NOT INITIAL.
          lv_issuerurltype = lo_oauth2authorizationserv->get_issuer( ).
          lv_authorizationendpointty = lo_oauth2authorizationserv->get_authorizationendpoint( ).
          lv_tokenendpointtype = lo_oauth2authorizationserv->get_tokenendpoint( ).
          LOOP AT lo_oauth2authorizationserv->get_responsetypes( ) into lo_row.
            lo_row_1 = lo_row.
            IF lo_row_1 IS NOT INITIAL.
              lv_responsetype = lo_row_1->get_value( ).
            ENDIF.
          ENDLOOP.
          LOOP AT lo_oauth2authorizationserv->get_tokenendpointauthmethods( ) into lo_row_2.
            lo_row_3 = lo_row_2.
            IF lo_row_3 IS NOT INITIAL.
              lv_tokenauthmethod = lo_row_3->get_value( ).
            ENDIF.
          ENDLOOP.
        ENDIF.
      ENDIF.
      lv_clientidtype = lo_atlassianoauth2provider->get_clientid( ).
    ENDIF.
    lo_linkedinoauth2providerc = lo_oauth2providerconfigout->get_linkedinoauth2pvdrconfig( ).
    IF lo_linkedinoauth2providerc IS NOT INITIAL.
      lo_oauth2discovery = lo_linkedinoauth2providerc->get_oauthdiscovery( ).
      IF lo_oauth2discovery IS NOT INITIAL.
        lv_discoveryurltype = lo_oauth2discovery->get_discoveryurl( ).
        lo_oauth2authorizationserv = lo_oauth2discovery->get_authservermetadata( ).
        IF lo_oauth2authorizationserv IS NOT INITIAL.
          lv_issuerurltype = lo_oauth2authorizationserv->get_issuer( ).
          lv_authorizationendpointty = lo_oauth2authorizationserv->get_authorizationendpoint( ).
          lv_tokenendpointtype = lo_oauth2authorizationserv->get_tokenendpoint( ).
          LOOP AT lo_oauth2authorizationserv->get_responsetypes( ) into lo_row.
            lo_row_1 = lo_row.
            IF lo_row_1 IS NOT INITIAL.
              lv_responsetype = lo_row_1->get_value( ).
            ENDIF.
          ENDLOOP.
          LOOP AT lo_oauth2authorizationserv->get_tokenendpointauthmethods( ) into lo_row_2.
            lo_row_3 = lo_row_2.
            IF lo_row_3 IS NOT INITIAL.
              lv_tokenauthmethod = lo_row_3->get_value( ).
            ENDIF.
          ENDLOOP.
        ENDIF.
      ENDIF.
      lv_clientidtype = lo_linkedinoauth2providerc->get_clientid( ).
    ENDIF.
    lo_includedoauth2providerc = lo_oauth2providerconfigout->get_includedoauth2pvdrconfig( ).
    IF lo_includedoauth2providerc IS NOT INITIAL.
      lo_oauth2discovery = lo_includedoauth2providerc->get_oauthdiscovery( ).
      IF lo_oauth2discovery IS NOT INITIAL.
        lv_discoveryurltype = lo_oauth2discovery->get_discoveryurl( ).
        lo_oauth2authorizationserv = lo_oauth2discovery->get_authservermetadata( ).
        IF lo_oauth2authorizationserv IS NOT INITIAL.
          lv_issuerurltype = lo_oauth2authorizationserv->get_issuer( ).
          lv_authorizationendpointty = lo_oauth2authorizationserv->get_authorizationendpoint( ).
          lv_tokenendpointtype = lo_oauth2authorizationserv->get_tokenendpoint( ).
          LOOP AT lo_oauth2authorizationserv->get_responsetypes( ) into lo_row.
            lo_row_1 = lo_row.
            IF lo_row_1 IS NOT INITIAL.
              lv_responsetype = lo_row_1->get_value( ).
            ENDIF.
          ENDLOOP.
          LOOP AT lo_oauth2authorizationserv->get_tokenendpointauthmethods( ) into lo_row_2.
            lo_row_3 = lo_row_2.
            IF lo_row_3 IS NOT INITIAL.
              lv_tokenauthmethod = lo_row_3->get_value( ).
            ENDIF.
          ENDLOOP.
        ENDIF.
      ENDIF.
      lv_clientidtype = lo_includedoauth2providerc->get_clientid( ).
    ENDIF.
  ENDIF.
ENDIF.