Skip to content

/AWS1/IF_GLU=>REGISTERCONNECTIONTYPE()

About RegisterConnectionType

Registers a custom connection type in Glue based on the configuration provided. This operation enables customers to configure custom connectors for any data source with REST-based APIs, eliminating the need for building custom Lambda connectors.

The registered connection type stores details about how requests and responses are interpreted by REST sources, including connection properties, authentication configuration, and REST configuration with entity definitions. Once registered, customers can create connections using this connection type and work with them the same way as natively supported Glue connectors.

Supports multiple authentication types including Basic, OAuth2 (Client Credentials, JWT Bearer, Authorization Code), and Custom Auth configurations.

Method Signature

METHODS /AWS1/IF_GLU~REGISTERCONNECTIONTYPE
  IMPORTING
    !IV_CONNECTIONTYPE TYPE /AWS1/GLUNAMESTRING OPTIONAL
    !IV_INTEGRATIONTYPE TYPE /AWS1/GLUINTEGRATIONTYPE OPTIONAL
    !IV_DESCRIPTION TYPE /AWS1/GLUDESCRIPTION OPTIONAL
    !IO_CONNECTIONPROPERTIES TYPE REF TO /AWS1/CL_GLUCONNPROPSCONF OPTIONAL
    !IO_CONNECTORAUTHNTCTNCONF TYPE REF TO /AWS1/CL_GLUCNCTRAUTHNTCTNCONF OPTIONAL
    !IO_RESTCONFIGURATION TYPE REF TO /AWS1/CL_GLURESTCONFIGURATION OPTIONAL
    !IT_TAGS TYPE /AWS1/CL_GLUTAGSMAP_W=>TT_TAGSMAP OPTIONAL
  RETURNING
    VALUE(OO_OUTPUT) TYPE REF TO /aws1/cl_gluregconntypersp
  RAISING
    /AWS1/CX_GLUACCESSDENIEDEX
    /AWS1/CX_GLUINTERNALSERVICEEX
    /AWS1/CX_GLUINVALIDINPUTEX
    /AWS1/CX_GLUOPERATIONTIMEOUTEX
    /AWS1/CX_GLURESRCNUMLMTEXCDEX
    /AWS1/CX_GLUVALIDATIONEX
    /AWS1/CX_GLUCLIENTEXC
    /AWS1/CX_GLUSERVEREXC
    /AWS1/CX_RT_TECHNICAL_GENERIC
    /AWS1/CX_RT_SERVICE_GENERIC.

IMPORTING

Required arguments:

iv_connectiontype TYPE /AWS1/GLUNAMESTRING /AWS1/GLUNAMESTRING

The name of the connection type. Must be between 1 and 255 characters and must be prefixed with "REST-" to indicate it is a REST-based connector.

iv_integrationtype TYPE /AWS1/GLUINTEGRATIONTYPE /AWS1/GLUINTEGRATIONTYPE

The integration type for the connection. Currently only "REST" protocol is supported.

io_connectionproperties TYPE REF TO /AWS1/CL_GLUCONNPROPSCONF /AWS1/CL_GLUCONNPROPSCONF

Defines the base URL and additional request parameters needed during connection creation for this connection type.

io_connectorauthntctnconf TYPE REF TO /AWS1/CL_GLUCNCTRAUTHNTCTNCONF /AWS1/CL_GLUCNCTRAUTHNTCTNCONF

Defines the supported authentication types and required properties for this connection type, including Basic, OAuth2, and Custom authentication methods.

io_restconfiguration TYPE REF TO /AWS1/CL_GLURESTCONFIGURATION /AWS1/CL_GLURESTCONFIGURATION

Defines the HTTP request and response configuration, validation endpoint, and entity configurations for REST API interactions.

Optional arguments:

iv_description TYPE /AWS1/GLUDESCRIPTION /AWS1/GLUDESCRIPTION

A description of the connection type. Can be up to 2048 characters and provides details about the purpose and functionality of the connection type.

it_tags TYPE /AWS1/CL_GLUTAGSMAP_W=>TT_TAGSMAP TT_TAGSMAP

The tags you assign to the connection type.

RETURNING

oo_output TYPE REF TO /aws1/cl_gluregconntypersp /AWS1/CL_GLUREGCONNTYPERSP

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->registerconnectiontype(
  io_connectionproperties = new /aws1/cl_gluconnpropsconf(
    io_url = new /aws1/cl_gluconnectorproperty(
      it_allowedvalues = VALUE /aws1/cl_glulistofstring_w=>tt_listofstring(
        ( new /aws1/cl_glulistofstring_w( |string| ) )
      )
      iv_defaultvalue = |string|
      iv_keyoverride = |string|
      iv_name = |string|
      iv_propertylocation = |string|
      iv_propertytype = |string|
      iv_required = ABAP_TRUE
    )
    it_additionalrequestparams = VALUE /aws1/cl_gluconnectorproperty=>tt_connectorpropertylist(
      (
        new /aws1/cl_gluconnectorproperty(
          it_allowedvalues = VALUE /aws1/cl_glulistofstring_w=>tt_listofstring(
            ( new /aws1/cl_glulistofstring_w( |string| ) )
          )
          iv_defaultvalue = |string|
          iv_keyoverride = |string|
          iv_name = |string|
          iv_propertylocation = |string|
          iv_propertytype = |string|
          iv_required = ABAP_TRUE
        )
      )
    )
  )
  io_connectorauthntctnconf = new /aws1/cl_glucnctrauthntctnconf(
    io_basicauthntctnproperties = new /aws1/cl_glubsauthntctnprops(
      io_password = new /aws1/cl_gluconnectorproperty(
        it_allowedvalues = VALUE /aws1/cl_glulistofstring_w=>tt_listofstring(
          ( new /aws1/cl_glulistofstring_w( |string| ) )
        )
        iv_defaultvalue = |string|
        iv_keyoverride = |string|
        iv_name = |string|
        iv_propertylocation = |string|
        iv_propertytype = |string|
        iv_required = ABAP_TRUE
      )
      io_username = new /aws1/cl_gluconnectorproperty(
        it_allowedvalues = VALUE /aws1/cl_glulistofstring_w=>tt_listofstring(
          ( new /aws1/cl_glulistofstring_w( |string| ) )
        )
        iv_defaultvalue = |string|
        iv_keyoverride = |string|
        iv_name = |string|
        iv_propertylocation = |string|
        iv_propertytype = |string|
        iv_required = ABAP_TRUE
      )
    )
    io_customauthntctnproperties = new /aws1/cl_glucustauthntctnprops(
      it_authenticationparameters = VALUE /aws1/cl_gluconnectorproperty=>tt_connectorpropertylist(
        (
          new /aws1/cl_gluconnectorproperty(
            it_allowedvalues = VALUE /aws1/cl_glulistofstring_w=>tt_listofstring(
              ( new /aws1/cl_glulistofstring_w( |string| ) )
            )
            iv_defaultvalue = |string|
            iv_keyoverride = |string|
            iv_name = |string|
            iv_propertylocation = |string|
            iv_propertytype = |string|
            iv_required = ABAP_TRUE
          )
        )
      )
    )
    io_oauth2properties = new /aws1/cl_glucnctroauth2props(
      io_authcodeproperties = new /aws1/cl_glucnctrauthcodeprops(
        io_authorizationcode = new /aws1/cl_gluconnectorproperty(
          it_allowedvalues = VALUE /aws1/cl_glulistofstring_w=>tt_listofstring(
            ( new /aws1/cl_glulistofstring_w( |string| ) )
          )
          iv_defaultvalue = |string|
          iv_keyoverride = |string|
          iv_name = |string|
          iv_propertylocation = |string|
          iv_propertytype = |string|
          iv_required = ABAP_TRUE
        )
        io_authorizationcodeurl = new /aws1/cl_gluconnectorproperty(
          it_allowedvalues = VALUE /aws1/cl_glulistofstring_w=>tt_listofstring(
            ( new /aws1/cl_glulistofstring_w( |string| ) )
          )
          iv_defaultvalue = |string|
          iv_keyoverride = |string|
          iv_name = |string|
          iv_propertylocation = |string|
          iv_propertytype = |string|
          iv_required = ABAP_TRUE
        )
        io_clientid = new /aws1/cl_gluconnectorproperty(
          it_allowedvalues = VALUE /aws1/cl_glulistofstring_w=>tt_listofstring(
            ( new /aws1/cl_glulistofstring_w( |string| ) )
          )
          iv_defaultvalue = |string|
          iv_keyoverride = |string|
          iv_name = |string|
          iv_propertylocation = |string|
          iv_propertytype = |string|
          iv_required = ABAP_TRUE
        )
        io_clientsecret = new /aws1/cl_gluconnectorproperty(
          it_allowedvalues = VALUE /aws1/cl_glulistofstring_w=>tt_listofstring(
            ( new /aws1/cl_glulistofstring_w( |string| ) )
          )
          iv_defaultvalue = |string|
          iv_keyoverride = |string|
          iv_name = |string|
          iv_propertylocation = |string|
          iv_propertytype = |string|
          iv_required = ABAP_TRUE
        )
        io_prompt = new /aws1/cl_gluconnectorproperty(
          it_allowedvalues = VALUE /aws1/cl_glulistofstring_w=>tt_listofstring(
            ( new /aws1/cl_glulistofstring_w( |string| ) )
          )
          iv_defaultvalue = |string|
          iv_keyoverride = |string|
          iv_name = |string|
          iv_propertylocation = |string|
          iv_propertytype = |string|
          iv_required = ABAP_TRUE
        )
        io_redirecturi = new /aws1/cl_gluconnectorproperty(
          it_allowedvalues = VALUE /aws1/cl_glulistofstring_w=>tt_listofstring(
            ( new /aws1/cl_glulistofstring_w( |string| ) )
          )
          iv_defaultvalue = |string|
          iv_keyoverride = |string|
          iv_name = |string|
          iv_propertylocation = |string|
          iv_propertytype = |string|
          iv_required = ABAP_TRUE
        )
        io_scope = new /aws1/cl_gluconnectorproperty(
          it_allowedvalues = VALUE /aws1/cl_glulistofstring_w=>tt_listofstring(
            ( new /aws1/cl_glulistofstring_w( |string| ) )
          )
          iv_defaultvalue = |string|
          iv_keyoverride = |string|
          iv_name = |string|
          iv_propertylocation = |string|
          iv_propertytype = |string|
          iv_required = ABAP_TRUE
        )
        io_tokenurl = new /aws1/cl_gluconnectorproperty(
          it_allowedvalues = VALUE /aws1/cl_glulistofstring_w=>tt_listofstring(
            ( new /aws1/cl_glulistofstring_w( |string| ) )
          )
          iv_defaultvalue = |string|
          iv_keyoverride = |string|
          iv_name = |string|
          iv_propertylocation = |string|
          iv_propertytype = |string|
          iv_required = ABAP_TRUE
        )
        it_tokenurlparameters = VALUE /aws1/cl_gluconnectorproperty=>tt_connectorpropertylist(
          (
            new /aws1/cl_gluconnectorproperty(
              it_allowedvalues = VALUE /aws1/cl_glulistofstring_w=>tt_listofstring(
                ( new /aws1/cl_glulistofstring_w( |string| ) )
              )
              iv_defaultvalue = |string|
              iv_keyoverride = |string|
              iv_name = |string|
              iv_propertylocation = |string|
              iv_propertytype = |string|
              iv_required = ABAP_TRUE
            )
          )
        )
        iv_contenttype = |string|
        iv_requestmethod = |string|
      )
      io_clientcredsproperties = new /aws1/cl_gluclientcredsprops(
        io_clientid = new /aws1/cl_gluconnectorproperty(
          it_allowedvalues = VALUE /aws1/cl_glulistofstring_w=>tt_listofstring(
            ( new /aws1/cl_glulistofstring_w( |string| ) )
          )
          iv_defaultvalue = |string|
          iv_keyoverride = |string|
          iv_name = |string|
          iv_propertylocation = |string|
          iv_propertytype = |string|
          iv_required = ABAP_TRUE
        )
        io_clientsecret = new /aws1/cl_gluconnectorproperty(
          it_allowedvalues = VALUE /aws1/cl_glulistofstring_w=>tt_listofstring(
            ( new /aws1/cl_glulistofstring_w( |string| ) )
          )
          iv_defaultvalue = |string|
          iv_keyoverride = |string|
          iv_name = |string|
          iv_propertylocation = |string|
          iv_propertytype = |string|
          iv_required = ABAP_TRUE
        )
        io_scope = new /aws1/cl_gluconnectorproperty(
          it_allowedvalues = VALUE /aws1/cl_glulistofstring_w=>tt_listofstring(
            ( new /aws1/cl_glulistofstring_w( |string| ) )
          )
          iv_defaultvalue = |string|
          iv_keyoverride = |string|
          iv_name = |string|
          iv_propertylocation = |string|
          iv_propertytype = |string|
          iv_required = ABAP_TRUE
        )
        io_tokenurl = new /aws1/cl_gluconnectorproperty(
          it_allowedvalues = VALUE /aws1/cl_glulistofstring_w=>tt_listofstring(
            ( new /aws1/cl_glulistofstring_w( |string| ) )
          )
          iv_defaultvalue = |string|
          iv_keyoverride = |string|
          iv_name = |string|
          iv_propertylocation = |string|
          iv_propertytype = |string|
          iv_required = ABAP_TRUE
        )
        it_tokenurlparameters = VALUE /aws1/cl_gluconnectorproperty=>tt_connectorpropertylist(
          (
            new /aws1/cl_gluconnectorproperty(
              it_allowedvalues = VALUE /aws1/cl_glulistofstring_w=>tt_listofstring(
                ( new /aws1/cl_glulistofstring_w( |string| ) )
              )
              iv_defaultvalue = |string|
              iv_keyoverride = |string|
              iv_name = |string|
              iv_propertylocation = |string|
              iv_propertytype = |string|
              iv_required = ABAP_TRUE
            )
          )
        )
        iv_contenttype = |string|
        iv_requestmethod = |string|
      )
      io_jwtbearerproperties = new /aws1/cl_glujwtbearerprops(
        io_jwttoken = new /aws1/cl_gluconnectorproperty(
          it_allowedvalues = VALUE /aws1/cl_glulistofstring_w=>tt_listofstring(
            ( new /aws1/cl_glulistofstring_w( |string| ) )
          )
          iv_defaultvalue = |string|
          iv_keyoverride = |string|
          iv_name = |string|
          iv_propertylocation = |string|
          iv_propertytype = |string|
          iv_required = ABAP_TRUE
        )
        io_tokenurl = new /aws1/cl_gluconnectorproperty(
          it_allowedvalues = VALUE /aws1/cl_glulistofstring_w=>tt_listofstring(
            ( new /aws1/cl_glulistofstring_w( |string| ) )
          )
          iv_defaultvalue = |string|
          iv_keyoverride = |string|
          iv_name = |string|
          iv_propertylocation = |string|
          iv_propertytype = |string|
          iv_required = ABAP_TRUE
        )
        it_tokenurlparameters = VALUE /aws1/cl_gluconnectorproperty=>tt_connectorpropertylist(
          (
            new /aws1/cl_gluconnectorproperty(
              it_allowedvalues = VALUE /aws1/cl_glulistofstring_w=>tt_listofstring(
                ( new /aws1/cl_glulistofstring_w( |string| ) )
              )
              iv_defaultvalue = |string|
              iv_keyoverride = |string|
              iv_name = |string|
              iv_propertylocation = |string|
              iv_propertytype = |string|
              iv_required = ABAP_TRUE
            )
          )
        )
        iv_contenttype = |string|
        iv_requestmethod = |string|
      )
      iv_oauth2granttype = |string|
    )
    it_authenticationtypes = VALUE /aws1/cl_gluauthntctntypes_w=>tt_authenticationtypes(
      ( new /aws1/cl_gluauthntctntypes_w( |string| ) )
    )
  )
  io_restconfiguration = new /aws1/cl_glurestconfiguration(
    io_globalsourceconfiguration = new /aws1/cl_glusourceconf(
      io_paginationconfiguration = new /aws1/cl_glupaginationconf(
        io_cursorconfiguration = new /aws1/cl_glucursorconf(
          io_limitparameter = new /aws1/cl_gluextractedparameter(
            io_value = new /aws1/cl_gluresponseextmapping(
              iv_contentpath = |string|
              iv_headerkey = |string|
            )
            iv_defaultvalue = |string|
            iv_key = |string|
            iv_propertylocation = |string|
          )
          io_nextpage = new /aws1/cl_gluextractedparameter(
            io_value = new /aws1/cl_gluresponseextmapping(
              iv_contentpath = |string|
              iv_headerkey = |string|
            )
            iv_defaultvalue = |string|
            iv_key = |string|
            iv_propertylocation = |string|
          )
        )
        io_offsetconfiguration = new /aws1/cl_gluoffsetconf(
          io_limitparameter = new /aws1/cl_gluextractedparameter(
            io_value = new /aws1/cl_gluresponseextmapping(
              iv_contentpath = |string|
              iv_headerkey = |string|
            )
            iv_defaultvalue = |string|
            iv_key = |string|
            iv_propertylocation = |string|
          )
          io_offsetparameter = new /aws1/cl_gluextractedparameter(
            io_value = new /aws1/cl_gluresponseextmapping(
              iv_contentpath = |string|
              iv_headerkey = |string|
            )
            iv_defaultvalue = |string|
            iv_key = |string|
            iv_propertylocation = |string|
          )
        )
      )
      io_responseconfiguration = new /aws1/cl_gluresponseconf(
        iv_errorpath = |string|
        iv_resultpath = |string|
      )
      it_requestparameters = VALUE /aws1/cl_gluconnectorproperty=>tt_connectorpropertylist(
        (
          new /aws1/cl_gluconnectorproperty(
            it_allowedvalues = VALUE /aws1/cl_glulistofstring_w=>tt_listofstring(
              ( new /aws1/cl_glulistofstring_w( |string| ) )
            )
            iv_defaultvalue = |string|
            iv_keyoverride = |string|
            iv_name = |string|
            iv_propertylocation = |string|
            iv_propertytype = |string|
            iv_required = ABAP_TRUE
          )
        )
      )
      iv_requestmethod = |string|
      iv_requestpath = |string|
    )
    io_validationendpointconf = new /aws1/cl_glusourceconf(
      io_paginationconfiguration = new /aws1/cl_glupaginationconf(
        io_cursorconfiguration = new /aws1/cl_glucursorconf(
          io_limitparameter = new /aws1/cl_gluextractedparameter(
            io_value = new /aws1/cl_gluresponseextmapping(
              iv_contentpath = |string|
              iv_headerkey = |string|
            )
            iv_defaultvalue = |string|
            iv_key = |string|
            iv_propertylocation = |string|
          )
          io_nextpage = new /aws1/cl_gluextractedparameter(
            io_value = new /aws1/cl_gluresponseextmapping(
              iv_contentpath = |string|
              iv_headerkey = |string|
            )
            iv_defaultvalue = |string|
            iv_key = |string|
            iv_propertylocation = |string|
          )
        )
        io_offsetconfiguration = new /aws1/cl_gluoffsetconf(
          io_limitparameter = new /aws1/cl_gluextractedparameter(
            io_value = new /aws1/cl_gluresponseextmapping(
              iv_contentpath = |string|
              iv_headerkey = |string|
            )
            iv_defaultvalue = |string|
            iv_key = |string|
            iv_propertylocation = |string|
          )
          io_offsetparameter = new /aws1/cl_gluextractedparameter(
            io_value = new /aws1/cl_gluresponseextmapping(
              iv_contentpath = |string|
              iv_headerkey = |string|
            )
            iv_defaultvalue = |string|
            iv_key = |string|
            iv_propertylocation = |string|
          )
        )
      )
      io_responseconfiguration = new /aws1/cl_gluresponseconf(
        iv_errorpath = |string|
        iv_resultpath = |string|
      )
      it_requestparameters = VALUE /aws1/cl_gluconnectorproperty=>tt_connectorpropertylist(
        (
          new /aws1/cl_gluconnectorproperty(
            it_allowedvalues = VALUE /aws1/cl_glulistofstring_w=>tt_listofstring(
              ( new /aws1/cl_glulistofstring_w( |string| ) )
            )
            iv_defaultvalue = |string|
            iv_keyoverride = |string|
            iv_name = |string|
            iv_propertylocation = |string|
            iv_propertytype = |string|
            iv_required = ABAP_TRUE
          )
        )
      )
      iv_requestmethod = |string|
      iv_requestpath = |string|
    )
    it_entityconfigurations = VALUE /aws1/cl_gluentityconf=>tt_entityconfigurationmap(
      (
        VALUE /aws1/cl_gluentityconf=>ts_entityconfmap_maprow(
          value = new /aws1/cl_gluentityconf(
            io_sourceconfiguration = new /aws1/cl_glusourceconf(
              io_paginationconfiguration = new /aws1/cl_glupaginationconf(
                io_cursorconfiguration = new /aws1/cl_glucursorconf(
                  io_limitparameter = new /aws1/cl_gluextractedparameter(
                    io_value = new /aws1/cl_gluresponseextmapping(
                      iv_contentpath = |string|
                      iv_headerkey = |string|
                    )
                    iv_defaultvalue = |string|
                    iv_key = |string|
                    iv_propertylocation = |string|
                  )
                  io_nextpage = new /aws1/cl_gluextractedparameter(
                    io_value = new /aws1/cl_gluresponseextmapping(
                      iv_contentpath = |string|
                      iv_headerkey = |string|
                    )
                    iv_defaultvalue = |string|
                    iv_key = |string|
                    iv_propertylocation = |string|
                  )
                )
                io_offsetconfiguration = new /aws1/cl_gluoffsetconf(
                  io_limitparameter = new /aws1/cl_gluextractedparameter(
                    io_value = new /aws1/cl_gluresponseextmapping(
                      iv_contentpath = |string|
                      iv_headerkey = |string|
                    )
                    iv_defaultvalue = |string|
                    iv_key = |string|
                    iv_propertylocation = |string|
                  )
                  io_offsetparameter = new /aws1/cl_gluextractedparameter(
                    io_value = new /aws1/cl_gluresponseextmapping(
                      iv_contentpath = |string|
                      iv_headerkey = |string|
                    )
                    iv_defaultvalue = |string|
                    iv_key = |string|
                    iv_propertylocation = |string|
                  )
                )
              )
              io_responseconfiguration = new /aws1/cl_gluresponseconf(
                iv_errorpath = |string|
                iv_resultpath = |string|
              )
              it_requestparameters = VALUE /aws1/cl_gluconnectorproperty=>tt_connectorpropertylist(
                (
                  new /aws1/cl_gluconnectorproperty(
                    it_allowedvalues = VALUE /aws1/cl_glulistofstring_w=>tt_listofstring(
                      ( new /aws1/cl_glulistofstring_w( |string| ) )
                    )
                    iv_defaultvalue = |string|
                    iv_keyoverride = |string|
                    iv_name = |string|
                    iv_propertylocation = |string|
                    iv_propertytype = |string|
                    iv_required = ABAP_TRUE
                  )
                )
              )
              iv_requestmethod = |string|
              iv_requestpath = |string|
            )
            it_schema = VALUE /aws1/cl_glufielddefinition=>tt_fielddefinitionmap(
              (
                VALUE /aws1/cl_glufielddefinition=>ts_fielddefinitionmap_maprow(
                  key = |string|
                  value = new /aws1/cl_glufielddefinition(
                    iv_fielddatatype = |string|
                    iv_name = |string|
                  )
                )
              )
            )
          )
          key = |string|
        )
      )
    )
  )
  it_tags = VALUE /aws1/cl_glutagsmap_w=>tt_tagsmap(
    (
      VALUE /aws1/cl_glutagsmap_w=>ts_tagsmap_maprow(
        value = new /aws1/cl_glutagsmap_w( |string| )
        key = |string|
      )
    )
  )
  iv_connectiontype = |string|
  iv_description = |string|
  iv_integrationtype = |string|
).

This is an example of reading all possible response values

lo_result = lo_result.
IF lo_result IS NOT INITIAL.
  lv_glueresourcearn = lo_result->get_connectiontypearn( ).
ENDIF.