AWS Fundamentals Logo
AWS Fundamentals
L1 ConstructAWS::AppSync::GraphQLApi

CfnGraphQLApi

The `AWS::AppSync::GraphQLApi` resource creates a new AWS AppSync GraphQL API. This is the top-level construct for your application. For more information, see [Quick Start](https://docs.aws.amazon.com/appsync/latest/devguide/quickstart.html) in the *AWS AppSync Developer Guide* .

Import

import { CfnGraphQLApi } from 'aws-cdk-lib/aws-appsync';

Or use the module namespace:

import * as appsync from 'aws-cdk-lib/aws-appsync';
// appsync.CfnGraphQLApi

Properties

Configuration passed to the constructor as CfnGraphQLApiProps.

authenticationTypeRequired
string

Security configuration for your GraphQL API. For allowed values (such as `API_KEY` , `AWS_IAM` , `AMAZON_COGNITO_USER_POOLS` , `OPENID_CONNECT` , or `AWS_LAMBDA` ), see [Security](https://docs.aws.amazon.com/appsync/latest/devguide/security.html) in the *AWS AppSync Developer Guide* .

nameRequired
string

The API name.

additionalAuthenticationProvidersOptional
IResolvable | IResolvable | AdditionalAuthenticationProviderProperty[]

A list of additional authentication providers for the `GraphqlApi` API.

apiTypeOptional
string

The value that indicates whether the GraphQL API is a standard API ( `GRAPHQL` ) or merged API ( `MERGED` ). *WARNING* : If the `ApiType` has not been defined, *explicitly* setting it to `GRAPHQL` in a template/stack update will result in an API replacement and new DNS values. The following values are valid: `GRAPHQL | MERGED`

enhancedMetricsConfigOptional
IResolvable | EnhancedMetricsConfigProperty

Enables and controls the enhanced metrics feature. Enhanced metrics emit granular data on API usage and performance such as AppSync request and error counts, latency, and cache hits/misses. All enhanced metric data is sent to your CloudWatch account, and you can configure the types of data that will be sent. Enhanced metrics can be configured at the resolver, data source, and operation levels. For more information, see [Monitoring and logging](https://docs.aws.amazon.com//appsync/latest/devguide/monitoring.html#cw-metrics) in the *AWS AppSync User Guide* .

environmentVariablesOptional
{ [key: string]: string } | IResolvable

A map containing the list of resources with their properties and environment variables. For more information, see [Environmental variables](https://docs.aws.amazon.com/appsync/latest/devguide/environmental-variables.html) . *Pattern* : `^[A-Za-z]+\\w*$\\` *Minimum* : 2 *Maximum* : 64

introspectionConfigOptional
string

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 to `ENABLED` by 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](https://docs.aws.amazon.com/https://graphql.org/learn/introspection/) .

lambdaAuthorizerConfigOptional
IResolvable | LambdaAuthorizerConfigProperty

A `LambdaAuthorizerConfig` holds configuration on how to authorize AWS AppSync API access when using the `AWS_LAMBDA` authorizer mode. Be aware that an AWS AppSync API may have only one Lambda authorizer configured at a time.

logConfigOptional
IResolvable | LogConfigProperty

The Amazon CloudWatch Logs configuration.

mergedApiExecutionRoleArnOptional
string

The AWS 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.

openIdConnectConfigOptional
IResolvable | OpenIDConnectConfigProperty

The OpenID Connect configuration.

ownerContactOptional
string

The owner contact information for an API resource. This field accepts any string input with a length of 0 - 256 characters.

queryDepthLimitOptional
number

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 between `1` and `75` nested 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.

resolverCountLimitOptional
number

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 to `10000` . When specified, the limit value can be between `1` and `10000` . This field will produce a limit error if the operation falls out of bounds.

tagsOptional
CfnTag[]

An arbitrary set of tags (key-value pairs) for this GraphQL API.

userPoolConfigOptional
IResolvable | UserPoolConfigProperty

Optional authorization configuration for using Amazon Cognito user pools with your GraphQL endpoint.

visibilityOptional
string

Sets the scope of the GraphQL API to public ( `GLOBAL` ) or private ( `PRIVATE` ). By default, the scope is set to `Global` if no value is provided. *WARNING* : If `Visibility` has not been defined, *explicitly* setting it to `GLOBAL` in a template/stack update will result in an API replacement and new DNS values.

xrayEnabledOptional
boolean | IResolvable

A flag indicating whether to use AWS X-Ray tracing for this `GraphqlApi` .

CloudFormation Resource

This L1 construct maps directly to the following CloudFormation resource type.

Get the AWS AppSync Cheat Sheet

Everything you need to know about AWS AppSync on one page. HD quality, print-friendly.

Download Free Infographic