/AWS1/IF_APY=>CREATEGRAPHQLAPI()¶
About CreateGraphqlApi¶
Creates a GraphqlApi object.
Method Signature¶
METHODS /AWS1/IF_APY~CREATEGRAPHQLAPI
IMPORTING
!IV_NAME TYPE /AWS1/APYSTRING OPTIONAL
!IO_LOGCONFIG TYPE REF TO /AWS1/CL_APYLOGCONFIG OPTIONAL
!IV_AUTHENTICATIONTYPE TYPE /AWS1/APYAUTHENTICATIONTYPE OPTIONAL
!IO_USERPOOLCONFIG TYPE REF TO /AWS1/CL_APYUSERPOOLCONFIG OPTIONAL
!IO_OPENIDCONNECTCONFIG TYPE REF TO /AWS1/CL_APYOPENIDCNCTCONFIG OPTIONAL
!IT_TAGS TYPE /AWS1/CL_APYTAGMAP_W=>TT_TAGMAP OPTIONAL
!IT_ADDLAUTHNTCTNPROVIDERS TYPE /AWS1/CL_APYADDLAUTHNTCTNPVDR=>TT_ADDLAUTHNTCTNPROVIDERS OPTIONAL
!IV_XRAYENABLED TYPE /AWS1/APYBOOLEAN OPTIONAL
!IO_LAMBDAAUTHORIZERCONFIG TYPE REF TO /AWS1/CL_APYLAMBDAAUTHRCONFIG OPTIONAL
!IV_APITYPE TYPE /AWS1/APYGRAPHQLAPITYPE OPTIONAL
!IV_MERGEDAPIEXECUTIONROLEARN TYPE /AWS1/APYSTRING OPTIONAL
!IV_VISIBILITY TYPE /AWS1/APYGRAPHQLAPIVISIBILITY OPTIONAL
!IV_OWNERCONTACT TYPE /AWS1/APYSTRING OPTIONAL
!IV_INTROSPECTIONCONFIG TYPE /AWS1/APYGRAPHQLAPIINTROSPEC00 OPTIONAL
!IV_QUERYDEPTHLIMIT TYPE /AWS1/APYQUERYDEPTHLIMIT OPTIONAL
!IV_RESOLVERCOUNTLIMIT TYPE /AWS1/APYRESOLVERCOUNTLIMIT OPTIONAL
!IO_ENHANCEDMETRICSCONFIG TYPE REF TO /AWS1/CL_APYENHMETRICSCONFIG OPTIONAL
RETURNING
VALUE(OO_OUTPUT) TYPE REF TO /aws1/cl_apycregraphqlapirsp
RAISING
/AWS1/CX_APYAPILIMITEXCEEDEDEX
/AWS1/CX_APYBADREQUESTEX
/AWS1/CX_APYCONCURRENTMODEX
/AWS1/CX_APYINTERNALFAILUREEX
/AWS1/CX_APYLIMITEXCEEDEDEX
/AWS1/CX_APYUNAUTHORIZEDEX
/AWS1/CX_APYCLIENTEXC
/AWS1/CX_APYSERVEREXC
/AWS1/CX_RT_TECHNICAL_GENERIC
/AWS1/CX_RT_SERVICE_GENERIC.
IMPORTING¶
Required arguments:¶
iv_name TYPE /AWS1/APYSTRING /AWS1/APYSTRING¶
A user-supplied name for the
GraphqlApi.
iv_authenticationtype TYPE /AWS1/APYAUTHENTICATIONTYPE /AWS1/APYAUTHENTICATIONTYPE¶
The authentication type: API key, Identity and Access Management (IAM), OpenID Connect (OIDC), Amazon Cognito user pools, or Lambda.
Optional arguments:¶
io_logconfig TYPE REF TO /AWS1/CL_APYLOGCONFIG /AWS1/CL_APYLOGCONFIG¶
The Amazon CloudWatch Logs configuration.
io_userpoolconfig TYPE REF TO /AWS1/CL_APYUSERPOOLCONFIG /AWS1/CL_APYUSERPOOLCONFIG¶
The Amazon Cognito user pool configuration.
io_openidconnectconfig TYPE REF TO /AWS1/CL_APYOPENIDCNCTCONFIG /AWS1/CL_APYOPENIDCNCTCONFIG¶
The OIDC configuration.
it_tags TYPE /AWS1/CL_APYTAGMAP_W=>TT_TAGMAP TT_TAGMAP¶
A
TagMapobject.
it_addlauthntctnproviders TYPE /AWS1/CL_APYADDLAUTHNTCTNPVDR=>TT_ADDLAUTHNTCTNPROVIDERS TT_ADDLAUTHNTCTNPROVIDERS¶
A list of additional authentication providers for the
GraphqlApiAPI.
iv_xrayenabled TYPE /AWS1/APYBOOLEAN /AWS1/APYBOOLEAN¶
A flag indicating whether to use X-Ray tracing for the
GraphqlApi.
io_lambdaauthorizerconfig TYPE REF TO /AWS1/CL_APYLAMBDAAUTHRCONFIG /AWS1/CL_APYLAMBDAAUTHRCONFIG¶
Configuration for Lambda function authorization.
iv_apitype TYPE /AWS1/APYGRAPHQLAPITYPE /AWS1/APYGRAPHQLAPITYPE¶
The value that indicates whether the GraphQL API is a standard API (
GRAPHQL) or merged API (MERGED).
iv_mergedapiexecutionrolearn TYPE /AWS1/APYSTRING /AWS1/APYSTRING¶
The Identity and Access Management service role ARN for a merged API. The AppSync service assumes this role on behalf of the Merged API to validate access to source APIs at runtime and to prompt the
AUTO_MERGEto update the merged API endpoint with the source API changes automatically.
iv_visibility TYPE /AWS1/APYGRAPHQLAPIVISIBILITY /AWS1/APYGRAPHQLAPIVISIBILITY¶
Sets the value of the GraphQL API to public (
GLOBAL) or private (PRIVATE). If no value is provided, the visibility will be set toGLOBALby default. This value cannot be changed once the API has been created.
iv_ownercontact TYPE /AWS1/APYSTRING /AWS1/APYSTRING¶
The owner contact information for an API resource.
This field accepts any string input with a length of 0 - 256 characters.
iv_introspectionconfig TYPE /AWS1/APYGRAPHQLAPIINTROSPEC00 /AWS1/APYGRAPHQLAPIINTROSPEC00¶
Sets the value of the GraphQL API to enable (
ENABLED) or disable (DISABLED) introspection. If no value is provided, the introspection configuration will be set toENABLEDby default. This field will produce an error if the operation attempts to use the introspection feature while this field is disabled.For more information about introspection, see GraphQL introspection.
iv_querydepthlimit TYPE /AWS1/APYQUERYDEPTHLIMIT /AWS1/APYQUERYDEPTHLIMIT¶
The maximum depth a query can have in a single request. Depth refers to the amount of nested levels allowed in the body of query. The default value is
0(or unspecified), which indicates there's no depth limit. If you set a limit, it can be between1and75nested levels. This field will produce a limit error if the operation falls out of bounds.Note that fields can still be set to nullable or non-nullable. If a non-nullable field produces an error, the error will be thrown upwards to the first nullable field available.
iv_resolvercountlimit TYPE /AWS1/APYRESOLVERCOUNTLIMIT /AWS1/APYRESOLVERCOUNTLIMIT¶
The maximum number of resolvers that can be invoked in a single request. The default value is
0(or unspecified), which will set the limit to10000. When specified, the limit value can be between1and10000. This field will produce a limit error if the operation falls out of bounds.
io_enhancedmetricsconfig TYPE REF TO /AWS1/CL_APYENHMETRICSCONFIG /AWS1/CL_APYENHMETRICSCONFIG¶
The
enhancedMetricsConfigobject.
RETURNING¶
oo_output TYPE REF TO /aws1/cl_apycregraphqlapirsp /AWS1/CL_APYCREGRAPHQLAPIRSP¶
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->creategraphqlapi(
io_enhancedmetricsconfig = new /aws1/cl_apyenhmetricsconfig(
iv_datasourcelevelmetbehav = |string|
iv_oplevelmetricsconfig = |string|
iv_resolverlevelmetricsbehav = |string|
)
io_lambdaauthorizerconfig = new /aws1/cl_apylambdaauthrconfig(
iv_authorizeruri = |string|
iv_authrresultttlinseconds = 123
iv_identityvalidationxprsn = |string|
)
io_logconfig = new /aws1/cl_apylogconfig(
iv_cloudwatchlogsrolearn = |string|
iv_excludeverbosecontent = ABAP_TRUE
iv_fieldloglevel = |string|
)
io_openidconnectconfig = new /aws1/cl_apyopenidcnctconfig(
iv_authttl = 123
iv_clientid = |string|
iv_iatttl = 123
iv_issuer = |string|
)
io_userpoolconfig = new /aws1/cl_apyuserpoolconfig(
iv_appidclientregex = |string|
iv_awsregion = |string|
iv_defaultaction = |string|
iv_userpoolid = |string|
)
it_addlauthntctnproviders = VALUE /aws1/cl_apyaddlauthntctnpvdr=>tt_addlauthntctnproviders(
(
new /aws1/cl_apyaddlauthntctnpvdr(
io_lambdaauthorizerconfig = new /aws1/cl_apylambdaauthrconfig(
iv_authorizeruri = |string|
iv_authrresultttlinseconds = 123
iv_identityvalidationxprsn = |string|
)
io_openidconnectconfig = new /aws1/cl_apyopenidcnctconfig(
iv_authttl = 123
iv_clientid = |string|
iv_iatttl = 123
iv_issuer = |string|
)
io_userpoolconfig = new /aws1/cl_apycognitouserpoolcfg(
iv_appidclientregex = |string|
iv_awsregion = |string|
iv_userpoolid = |string|
)
iv_authenticationtype = |string|
)
)
)
it_tags = VALUE /aws1/cl_apytagmap_w=>tt_tagmap(
(
VALUE /aws1/cl_apytagmap_w=>ts_tagmap_maprow(
value = new /aws1/cl_apytagmap_w( |string| )
key = |string|
)
)
)
iv_apitype = |string|
iv_authenticationtype = |string|
iv_introspectionconfig = |string|
iv_mergedapiexecutionrolearn = |string|
iv_name = |string|
iv_ownercontact = |string|
iv_querydepthlimit = 123
iv_resolvercountlimit = 123
iv_visibility = |string|
iv_xrayenabled = ABAP_TRUE
).
This is an example of reading all possible response values
lo_result = lo_result.
IF lo_result IS NOT INITIAL.
lo_graphqlapi = lo_result->get_graphqlapi( ).
IF lo_graphqlapi IS NOT INITIAL.
lv_resourcename = lo_graphqlapi->get_name( ).
lv_string = lo_graphqlapi->get_apiid( ).
lv_authenticationtype = lo_graphqlapi->get_authenticationtype( ).
lo_logconfig = lo_graphqlapi->get_logconfig( ).
IF lo_logconfig IS NOT INITIAL.
lv_fieldloglevel = lo_logconfig->get_fieldloglevel( ).
lv_string = lo_logconfig->get_cloudwatchlogsrolearn( ).
lv_boolean = lo_logconfig->get_excludeverbosecontent( ).
ENDIF.
lo_userpoolconfig = lo_graphqlapi->get_userpoolconfig( ).
IF lo_userpoolconfig IS NOT INITIAL.
lv_string = lo_userpoolconfig->get_userpoolid( ).
lv_string = lo_userpoolconfig->get_awsregion( ).
lv_defaultaction = lo_userpoolconfig->get_defaultaction( ).
lv_string = lo_userpoolconfig->get_appidclientregex( ).
ENDIF.
lo_openidconnectconfig = lo_graphqlapi->get_openidconnectconfig( ).
IF lo_openidconnectconfig IS NOT INITIAL.
lv_string = lo_openidconnectconfig->get_issuer( ).
lv_string = lo_openidconnectconfig->get_clientid( ).
lv_long = lo_openidconnectconfig->get_iatttl( ).
lv_long = lo_openidconnectconfig->get_authttl( ).
ENDIF.
lv_string = lo_graphqlapi->get_arn( ).
LOOP AT lo_graphqlapi->get_uris( ) into ls_row.
lv_key = ls_row-key.
lo_value = ls_row-value.
IF lo_value IS NOT INITIAL.
lv_string = lo_value->get_value( ).
ENDIF.
ENDLOOP.
LOOP AT lo_graphqlapi->get_tags( ) into ls_row_1.
lv_key_1 = ls_row_1-key.
lo_value_1 = ls_row_1-value.
IF lo_value_1 IS NOT INITIAL.
lv_tagvalue = lo_value_1->get_value( ).
ENDIF.
ENDLOOP.
LOOP AT lo_graphqlapi->get_addlauthntctnproviders( ) into lo_row_2.
lo_row_3 = lo_row_2.
IF lo_row_3 IS NOT INITIAL.
lv_authenticationtype = lo_row_3->get_authenticationtype( ).
lo_openidconnectconfig = lo_row_3->get_openidconnectconfig( ).
IF lo_openidconnectconfig IS NOT INITIAL.
lv_string = lo_openidconnectconfig->get_issuer( ).
lv_string = lo_openidconnectconfig->get_clientid( ).
lv_long = lo_openidconnectconfig->get_iatttl( ).
lv_long = lo_openidconnectconfig->get_authttl( ).
ENDIF.
lo_cognitouserpoolconfig = lo_row_3->get_userpoolconfig( ).
IF lo_cognitouserpoolconfig IS NOT INITIAL.
lv_string = lo_cognitouserpoolconfig->get_userpoolid( ).
lv_string = lo_cognitouserpoolconfig->get_awsregion( ).
lv_string = lo_cognitouserpoolconfig->get_appidclientregex( ).
ENDIF.
lo_lambdaauthorizerconfig = lo_row_3->get_lambdaauthorizerconfig( ).
IF lo_lambdaauthorizerconfig IS NOT INITIAL.
lv_ttl = lo_lambdaauthorizerconfig->get_authrresultttlinseconds( ).
lv_string = lo_lambdaauthorizerconfig->get_authorizeruri( ).
lv_string = lo_lambdaauthorizerconfig->get_identityvalidationxprsn( ).
ENDIF.
ENDIF.
ENDLOOP.
lv_boolean = lo_graphqlapi->get_xrayenabled( ).
lv_string = lo_graphqlapi->get_wafwebaclarn( ).
lo_lambdaauthorizerconfig = lo_graphqlapi->get_lambdaauthorizerconfig( ).
IF lo_lambdaauthorizerconfig IS NOT INITIAL.
lv_ttl = lo_lambdaauthorizerconfig->get_authrresultttlinseconds( ).
lv_string = lo_lambdaauthorizerconfig->get_authorizeruri( ).
lv_string = lo_lambdaauthorizerconfig->get_identityvalidationxprsn( ).
ENDIF.
LOOP AT lo_graphqlapi->get_dns( ) into ls_row.
lv_key = ls_row-key.
lo_value = ls_row-value.
IF lo_value IS NOT INITIAL.
lv_string = lo_value->get_value( ).
ENDIF.
ENDLOOP.
lv_graphqlapivisibility = lo_graphqlapi->get_visibility( ).
lv_graphqlapitype = lo_graphqlapi->get_apitype( ).
lv_string = lo_graphqlapi->get_mergedapiexecrolearn( ).
lv_string = lo_graphqlapi->get_owner( ).
lv_string = lo_graphqlapi->get_ownercontact( ).
lv_graphqlapiintrospection = lo_graphqlapi->get_introspectionconfig( ).
lv_querydepthlimit = lo_graphqlapi->get_querydepthlimit( ).
lv_resolvercountlimit = lo_graphqlapi->get_resolvercountlimit( ).
lo_enhancedmetricsconfig = lo_graphqlapi->get_enhancedmetricsconfig( ).
IF lo_enhancedmetricsconfig IS NOT INITIAL.
lv_resolverlevelmetricsbeh = lo_enhancedmetricsconfig->get_resolverlevelmetbehav( ).
lv_datasourcelevelmetricsb = lo_enhancedmetricsconfig->get_datasourcelevelmetbehav( ).
lv_operationlevelmetricsco = lo_enhancedmetricsconfig->get_oplevelmetricsconfig( ).
ENDIF.
ENDIF.
ENDIF.