GraphqlApi

class aws_cdk.aws_appsync.GraphqlApi(scope, id, *, name, authorization_config=None, domain_name=None, log_config=None, schema=None, xray_enabled=None)

Bases: GraphqlApiBase

(experimental) An AppSync GraphQL API.

Stability:

experimental

Resource:

AWS::AppSync::GraphQLApi

ExampleMetadata:

infused

Example:

api = appsync.GraphqlApi(self, "Api",
    name="demo"
)
demo = appsync.ObjectType("Demo",
    definition={
        "id": appsync.GraphqlType.string(is_required=True),
        "version": appsync.GraphqlType.string(is_required=True)
    }
)

api.add_type(demo)
Parameters:
  • scope (Construct) –

  • id (str) –

  • name (str) – (experimental) the name of the GraphQL API.

  • authorization_config (Union[AuthorizationConfig, Dict[str, Any], None]) – (experimental) Optional authorization configuration. Default: - API Key authorization

  • domain_name (Union[DomainOptions, Dict[str, Any], None]) – (experimental) The domain name configuration for the GraphQL API. The Route 53 hosted zone and CName DNS record must be configured in addition to this setting to enable custom domain URL Default: - no domain name

  • log_config (Union[LogConfig, Dict[str, Any], None]) – (experimental) Logging configuration for this api. Default: - None

  • schema (Optional[Schema]) – (experimental) GraphQL schema definition. Specify how you want to define your schema. Schema.fromFile(filePath: string) allows schema definition through schema.graphql file Default: - schema will be generated code-first (i.e. addType, addObjectType, etc.)

  • xray_enabled (Optional[bool]) – (experimental) A flag indicating whether or not X-Ray tracing is enabled for the GraphQL API. Default: - false

Stability:

experimental

Methods

add_dynamo_db_data_source(id, table, *, description=None, name=None)

(experimental) add a new DynamoDB data source to this API.

Parameters:
  • id (str) – The data source’s id.

  • table (ITable) – The DynamoDB table backing this data source.

  • description (Optional[str]) – (experimental) The description of the data source. Default: - No description

  • name (Optional[str]) – (experimental) The name of the data source, overrides the id given by cdk. Default: - generated by cdk given the id

Stability:

experimental

Return type:

DynamoDbDataSource

add_elasticsearch_data_source(id, domain, *, description=None, name=None)

(deprecated) add a new elasticsearch data source to this API.

Parameters:
  • id (str) – The data source’s id.

  • domain (IDomain) – The elasticsearch domain for this data source.

  • description (Optional[str]) – (experimental) The description of the data source. Default: - No description

  • name (Optional[str]) – (experimental) The name of the data source, overrides the id given by cdk. Default: - generated by cdk given the id

Deprecated:
  • use addOpenSearchDataSource

Stability:

deprecated

Return type:

ElasticsearchDataSource

add_http_data_source(id, endpoint, *, authorization_config=None, description=None, name=None)

(experimental) add a new http data source to this API.

Parameters:
  • id (str) – The data source’s id.

  • endpoint (str) – The http endpoint.

  • authorization_config (Union[AwsIamConfig, Dict[str, Any], None]) – (experimental) The authorization config in case the HTTP endpoint requires authorization. Default: - none

  • description (Optional[str]) – (experimental) The description of the data source. Default: - No description

  • name (Optional[str]) – (experimental) The name of the data source, overrides the id given by cdk. Default: - generated by cdk given the id

Stability:

experimental

Return type:

HttpDataSource

add_lambda_data_source(id, lambda_function, *, description=None, name=None)

(experimental) add a new Lambda data source to this API.

Parameters:
  • id (str) – The data source’s id.

  • lambda_function (IFunction) – The Lambda function to call to interact with this data source.

  • description (Optional[str]) – (experimental) The description of the data source. Default: - No description

  • name (Optional[str]) – (experimental) The name of the data source, overrides the id given by cdk. Default: - generated by cdk given the id

Stability:

experimental

Return type:

LambdaDataSource

add_mutation(field_name, field)

(experimental) Add a mutation field to the schema’s Mutation. CDK will create an Object Type called ‘Mutation’. For example,.

type Mutation { fieldName: Field.returnType }

Parameters:
  • field_name (str) – the name of the Mutation.

  • field (ResolvableField) – the resolvable field to for this Mutation.

Stability:

experimental

Return type:

ObjectType

add_none_data_source(id, *, description=None, name=None)

(experimental) add a new dummy data source to this API.

Useful for pipeline resolvers and for backend changes that don’t require a data source.

Parameters:
  • id (str) – The data source’s id.

  • description (Optional[str]) – (experimental) The description of the data source. Default: - No description

  • name (Optional[str]) – (experimental) The name of the data source, overrides the id given by cdk. Default: - generated by cdk given the id

Stability:

experimental

Return type:

NoneDataSource

add_open_search_data_source(id, domain, *, description=None, name=None)

(experimental) add a new OpenSearch data source to this API.

Parameters:
  • id (str) – The data source’s id.

  • domain (IDomain) – The OpenSearch domain for this data source.

  • description (Optional[str]) – (experimental) The description of the data source. Default: - No description

  • name (Optional[str]) – (experimental) The name of the data source, overrides the id given by cdk. Default: - generated by cdk given the id

Stability:

experimental

Return type:

OpenSearchDataSource

add_query(field_name, field)

(experimental) Add a query field to the schema’s Query. CDK will create an Object Type called ‘Query’. For example,.

type Query { fieldName: Field.returnType }

Parameters:
  • field_name (str) – the name of the query.

  • field (ResolvableField) – the resolvable field to for this query.

Stability:

experimental

Return type:

ObjectType

add_rds_data_source(id, serverless_cluster, secret_store, database_name=None, *, description=None, name=None)

(experimental) add a new Rds data source to this API.

Parameters:
  • id (str) – The data source’s id.

  • serverless_cluster (IServerlessCluster) – The serverless cluster to interact with this data source.

  • secret_store (ISecret) – The secret store that contains the username and password for the serverless cluster.

  • database_name (Optional[str]) – The optional name of the database to use within the cluster.

  • description (Optional[str]) – (experimental) The description of the data source. Default: - No description

  • name (Optional[str]) – (experimental) The name of the data source, overrides the id given by cdk. Default: - generated by cdk given the id

Stability:

experimental

Return type:

RdsDataSource

add_schema_dependency(construct)

(experimental) Add schema dependency to a given construct.

Parameters:

construct (CfnResource) – the dependee.

Stability:

experimental

Return type:

bool

add_subscription(field_name, field)

(experimental) Add a subscription field to the schema’s Subscription. CDK will create an Object Type called ‘Subscription’. For example,.

type Subscription { fieldName: Field.returnType }

Parameters:
  • field_name (str) – the name of the Subscription.

  • field (ResolvableField) – the resolvable field to for this Subscription.

Stability:

experimental

Return type:

ObjectType

add_to_schema(addition, delimiter=None)

(experimental) Escape hatch to append to Schema as desired.

Will always result in a newline.

Parameters:
  • addition (str) – the addition to add to schema.

  • delimiter (Optional[str]) – the delimiter between schema and addition.

Default:
  • ‘’

Stability:

experimental

Return type:

None

add_type(type)

(experimental) Add type to the schema.

Parameters:

type (IIntermediateType) – the intermediate type to add to the schema.

Stability:

experimental

Return type:

IIntermediateType

apply_removal_policy(policy)

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops being managed by CloudFormation, either because you’ve removed it from the CDK application or because you’ve made a change that requires the resource to be replaced.

The resource can be deleted (RemovalPolicy.DESTROY), or left in your AWS account for data recovery and cleanup later (RemovalPolicy.RETAIN).

Parameters:

policy (RemovalPolicy) –

Return type:

None

create_resolver(*, data_source=None, field_name, type_name, caching_config=None, pipeline_config=None, request_mapping_template=None, response_mapping_template=None)

(experimental) creates a new resolver for this datasource and API using the given properties.

Parameters:
  • data_source (Optional[BaseDataSource]) – (experimental) The data source this resolver is using. Default: - No datasource

  • field_name (str) – (experimental) name of the GraphQL field in the given type this resolver is attached to.

  • type_name (str) – (experimental) name of the GraphQL type this resolver is attached to.

  • caching_config (Union[CachingConfig, Dict[str, Any], None]) – (experimental) The caching configuration for this resolver. Default: - No caching configuration

  • pipeline_config (Optional[Sequence[IAppsyncFunction]]) – (experimental) configuration of the pipeline resolver. Default: - no pipeline resolver configuration An empty array | undefined sets resolver to be of kind, unit

  • request_mapping_template (Optional[MappingTemplate]) – (experimental) The request mapping template for this resolver. Default: - No mapping template

  • response_mapping_template (Optional[MappingTemplate]) – (experimental) The response mapping template for this resolver. Default: - No mapping template

Stability:

experimental

Return type:

Resolver

grant(grantee, resources, *actions)

(experimental) Adds an IAM policy statement associated with this GraphQLApi to an IAM principal’s policy.

Parameters:
  • grantee (IGrantable) – The principal.

  • resources (IamResource) – The set of resources to allow (i.e. …:[region]:[accountId]:apis/GraphQLId/…).

  • actions (str) – The actions that should be granted to the principal (i.e. appsync:graphql ).

Stability:

experimental

Return type:

Grant

grant_mutation(grantee, *fields)

(experimental) Adds an IAM policy statement for Mutation access to this GraphQLApi to an IAM principal’s policy.

Parameters:
  • grantee (IGrantable) – The principal.

  • fields (str) – The fields to grant access to that are Mutations (leave blank for all).

Stability:

experimental

Return type:

Grant

grant_query(grantee, *fields)

(experimental) Adds an IAM policy statement for Query access to this GraphQLApi to an IAM principal’s policy.

Parameters:
  • grantee (IGrantable) – The principal.

  • fields (str) – The fields to grant access to that are Queries (leave blank for all).

Stability:

experimental

Return type:

Grant

grant_subscription(grantee, *fields)

(experimental) Adds an IAM policy statement for Subscription access to this GraphQLApi to an IAM principal’s policy.

Parameters:
  • grantee (IGrantable) – The principal.

  • fields (str) – The fields to grant access to that are Subscriptions (leave blank for all).

Stability:

experimental

Return type:

Grant

to_string()

Returns a string representation of this construct.

Return type:

str

Attributes

api_id

(experimental) an unique AWS AppSync GraphQL API identifier i.e. ‘lxz775lwdrgcndgz3nurvac7oa’.

Stability:

experimental

api_key

(experimental) the configured API key, if present.

Default:
  • no api key

Stability:

experimental

arn

(experimental) the ARN of the API.

Stability:

experimental

env

The environment this resource belongs to.

For resources that are created and managed by the CDK (generally, those created by creating new class instances like Role, Bucket, etc.), this is always the same as the environment of the stack they belong to; however, for imported resources (those obtained from static methods like fromRoleArn, fromBucketName, etc.), that might be different than the stack they were imported into.

graphql_url

(experimental) the URL of the endpoint created by AppSync.

Stability:

experimental

Attribute:

GraphQlUrl

modes

(experimental) The Authorization Types for this GraphQL Api.

Stability:

experimental

name

(experimental) the name of the API.

Stability:

experimental

node

The construct tree node associated with this construct.

schema

(experimental) the schema attached to this api.

Stability:

experimental

stack

The stack in which this resource is defined.

Static Methods

classmethod from_graphql_api_attributes(scope, id, *, graphql_api_id, graphql_api_arn=None)

(experimental) Import a GraphQL API through this function.

Parameters:
  • scope (Construct) – scope.

  • id (str) – id.

  • graphql_api_id (str) – (experimental) an unique AWS AppSync GraphQL API identifier i.e. ‘lxz775lwdrgcndgz3nurvac7oa’.

  • graphql_api_arn (Optional[str]) – (experimental) the arn for the GraphQL Api. Default: - autogenerated arn

Stability:

experimental

Return type:

IGraphqlApi

classmethod is_construct(x)

Return whether the given object is a Construct.

Parameters:

x (Any) –

Return type:

bool

classmethod is_resource(construct)

Check whether the given construct is a Resource.

Parameters:

construct (IConstruct) –

Return type:

bool