CreateGraphqlApi
Creates a GraphqlApi
object.
Request Syntax
POST /v1/apis HTTP/1.1
Content-type: application/json
{
"additionalAuthenticationProviders": [
{
"authenticationType": "string
",
"lambdaAuthorizerConfig": {
"authorizerResultTtlInSeconds": number
,
"authorizerUri": "string
",
"identityValidationExpression": "string
"
},
"openIDConnectConfig": {
"authTTL": number
,
"clientId": "string
",
"iatTTL": number
,
"issuer": "string
"
},
"userPoolConfig": {
"appIdClientRegex": "string
",
"awsRegion": "string
",
"userPoolId": "string
"
}
}
],
"apiType": "string
",
"authenticationType": "string
",
"lambdaAuthorizerConfig": {
"authorizerResultTtlInSeconds": number
,
"authorizerUri": "string
",
"identityValidationExpression": "string
"
},
"logConfig": {
"cloudWatchLogsRoleArn": "string
",
"excludeVerboseContent": boolean
,
"fieldLogLevel": "string
"
},
"mergedApiExecutionRoleArn": "string
",
"name": "string
",
"openIDConnectConfig": {
"authTTL": number
,
"clientId": "string
",
"iatTTL": number
,
"issuer": "string
"
},
"ownerContact": "string
",
"tags": {
"string
" : "string
"
},
"userPoolConfig": {
"appIdClientRegex": "string
",
"awsRegion": "string
",
"defaultAction": "string
",
"userPoolId": "string
"
},
"visibility": "string
",
"xrayEnabled": boolean
}
URI Request Parameters
The request does not use any URI parameters.
Request Body
The request accepts the following data in JSON format.
- additionalAuthenticationProviders
-
A list of additional authentication providers for the
GraphqlApi
API.Type: Array of AdditionalAuthenticationProvider objects
Required: No
- apiType
-
The value that indicates whether the GraphQL API is a standard API (
GRAPHQL
) or merged API (MERGED
).Type: String
Valid Values:
GRAPHQL | MERGED
Required: No
- authenticationType
-
The authentication type: API key, AWS Identity and Access Management (IAM), OpenID Connect (OIDC), Amazon Cognito user pools, or AWS Lambda.
Type: String
Valid Values:
API_KEY | AWS_IAM | AMAZON_COGNITO_USER_POOLS | OPENID_CONNECT | AWS_LAMBDA
Required: Yes
- lambdaAuthorizerConfig
-
Configuration for AWS Lambda function authorization.
Type: LambdaAuthorizerConfig object
Required: No
- logConfig
-
The Amazon CloudWatch Logs configuration.
Type: LogConfig object
Required: No
- mergedApiExecutionRoleArn
-
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_MERGE
to update the merged API endpoint with the source API changes automatically.Type: String
Required: No
- name
-
A user-supplied name for the
GraphqlApi
.Type: String
Required: Yes
- openIDConnectConfig
-
The OIDC configuration.
Type: OpenIDConnectConfig object
Required: No
- ownerContact
-
The owner contact information for an API resource.
This field accepts any string input with a length of 0 - 256 characters.
Type: String
Required: No
-
A
TagMap
object.Type: String to string map
Map Entries: Maximum number of 50 items.
Key Length Constraints: Minimum length of 1. Maximum length of 128.
Key Pattern:
^(?!aws:)[ a-zA-Z+-=._:/]+$
Value Length Constraints: Maximum length of 256.
Value Pattern:
^[\s\w+-=\.:/@]*$
Required: No
- userPoolConfig
-
The Amazon Cognito user pool configuration.
Type: UserPoolConfig object
Required: No
- visibility
-
Sets the value of the GraphQL API to public (
GLOBAL
) or private (PRIVATE
). If no value is provided, the visibility will be set toGLOBAL
by default. This value cannot be changed once the API has been created.Type: String
Valid Values:
GLOBAL | PRIVATE
Required: No
- xrayEnabled
-
A flag indicating whether to use AWS X-Ray tracing for the
GraphqlApi
.Type: Boolean
Required: No
Response Syntax
HTTP/1.1 200
Content-type: application/json
{
"graphqlApi": {
"additionalAuthenticationProviders": [
{
"authenticationType": "string",
"lambdaAuthorizerConfig": {
"authorizerResultTtlInSeconds": number,
"authorizerUri": "string",
"identityValidationExpression": "string"
},
"openIDConnectConfig": {
"authTTL": number,
"clientId": "string",
"iatTTL": number,
"issuer": "string"
},
"userPoolConfig": {
"appIdClientRegex": "string",
"awsRegion": "string",
"userPoolId": "string"
}
}
],
"apiId": "string",
"apiType": "string",
"arn": "string",
"authenticationType": "string",
"dns": {
"string" : "string"
},
"lambdaAuthorizerConfig": {
"authorizerResultTtlInSeconds": number,
"authorizerUri": "string",
"identityValidationExpression": "string"
},
"logConfig": {
"cloudWatchLogsRoleArn": "string",
"excludeVerboseContent": boolean,
"fieldLogLevel": "string"
},
"mergedApiExecutionRoleArn": "string",
"name": "string",
"openIDConnectConfig": {
"authTTL": number,
"clientId": "string",
"iatTTL": number,
"issuer": "string"
},
"owner": "string",
"ownerContact": "string",
"tags": {
"string" : "string"
},
"uris": {
"string" : "string"
},
"userPoolConfig": {
"appIdClientRegex": "string",
"awsRegion": "string",
"defaultAction": "string",
"userPoolId": "string"
},
"visibility": "string",
"wafWebAclArn": "string",
"xrayEnabled": boolean
}
}
Response Elements
If the action is successful, the service sends back an HTTP 200 response.
The following data is returned in JSON format by the service.
- graphqlApi
-
The
GraphqlApi
.Type: GraphqlApi object
Errors
For information about the errors that are common to all actions, see Common Errors.
- ApiLimitExceededException
-
The GraphQL API exceeded a limit. Try your request again.
HTTP Status Code: 400
- BadRequestException
-
The request is not well formed. For example, a value is invalid or a required field is missing. Check the field values, and then try again.
HTTP Status Code: 400
- ConcurrentModificationException
-
Another modification is in progress at this time and it must complete before you can make your change.
HTTP Status Code: 409
- InternalFailureException
-
An internal AWS AppSync error occurred. Try your request again.
HTTP Status Code: 500
- LimitExceededException
-
The request exceeded a limit. Try your request again.
HTTP Status Code: 429
- UnauthorizedException
-
You aren't authorized to perform this operation.
HTTP Status Code: 401
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following: