GraphqlApi
- class aws_cdk.aws_appsync.GraphqlApi(scope, id, *, name, authorization_config=None, definition=None, domain_name=None, environment_variables=None, introspection_config=None, log_config=None, owner_contact=None, query_depth_limit=None, resolver_count_limit=None, schema=None, visibility=None, xray_enabled=None)
Bases:
GraphqlApiBase
An AppSync GraphQL API.
- Resource:
AWS::AppSync::GraphQLApi
- ExampleMetadata:
infused
Example:
import aws_cdk.aws_events as events api = appsync.GraphqlApi(self, "EventBridgeApi", name="EventBridgeApi", definition=appsync.Definition.from_file(path.join(__dirname, "appsync.eventbridge.graphql")) ) bus = events.EventBus(self, "DestinationEventBus") data_source = api.add_event_bridge_data_source("NoneDS", bus) data_source.create_resolver("EventResolver", type_name="Mutation", field_name="emitEvent", request_mapping_template=appsync.MappingTemplate.from_file("request.vtl"), response_mapping_template=appsync.MappingTemplate.from_file("response.vtl") )
- Parameters:
scope (
Construct
) –id (
str
) –name (
str
) – the name of the GraphQL API.authorization_config (
Union
[AuthorizationConfig
,Dict
[str
,Any
],None
]) – Optional authorization configuration. Default: - API Key authorizationdefinition (
Optional
[Definition
]) – Definition (schema file or source APIs) for this GraphQL Api.domain_name (
Union
[DomainOptions
,Dict
[str
,Any
],None
]) – 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 nameenvironment_variables (
Optional
[Mapping
[str
,str
]]) – A map containing the list of resources with their properties and environment variables. There are a few rules you must follow when creating keys and values: - Keys must begin with a letter. - Keys must be between 2 and 64 characters long. - Keys can only contain letters, numbers, and the underscore character (_). - Values can be up to 512 characters long. - You can configure up to 50 key-value pairs in a GraphQL API. Default: - No environment variables.introspection_config (
Optional
[IntrospectionConfig
]) – A value indicating whether the API to enable (ENABLED) or disable (DISABLED) introspection. Default: IntrospectionConfig.ENABLEDlog_config (
Union
[LogConfig
,Dict
[str
,Any
],None
]) – Logging configuration for this api. Default: - Noneowner_contact (
Optional
[str
]) – The owner contact information for an API resource. This field accepts any string input with a length of 0 - 256 characters. Default: - No owner contact.query_depth_limit (
Union
[int
,float
,None
]) – A number indicating the maximum depth resolvers should be accepted when handling queries. Value must be withing range of 0 to 75 Default: - The default value is 0 (or unspecified) which indicates no maximum depth.resolver_count_limit (
Union
[int
,float
,None
]) – A number indicating the maximum number of resolvers that should be accepted when handling queries. Value must be withing range of 0 to 10000 Default: - The default value is 0 (or unspecified), which will set the limit to 10000schema (
Optional
[ISchema
]) – (deprecated) GraphQL schema definition. Specify how you want to define your schema. SchemaFile.fromAsset(filePath: string) allows schema definition through schema.graphql file Default: - schema will be generated code-first (i.e. addType, addObjectType, etc.)visibility (
Optional
[Visibility
]) – A value indicating whether the API is accessible from anywhere (GLOBAL) or can only be access from a VPC (PRIVATE). Default: - GLOBALxray_enabled (
Optional
[bool
]) – A flag indicating whether or not X-Ray tracing is enabled for the GraphQL API. Default: - false
Methods
- add_dynamo_db_data_source(id, table, *, description=None, name=None)
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
]) – The description of the data source. Default: - No descriptionname (
Optional
[str
]) – The name of the data source, overrides the id given by cdk. Default: - generated by cdk given the id
- Return type:
- 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
]) – The description of the data source. Default: - No descriptionname (
Optional
[str
]) – 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:
- add_environment_variable(key, value)
Add an environment variable to the construct.
- Parameters:
key (
str
) –value (
str
) –
- Return type:
None
- add_event_bridge_data_source(id, event_bus, *, description=None, name=None)
Add an EventBridge data source to this api.
- Parameters:
id (
str
) – The data source’s id.event_bus (
IEventBus
) – The EventBridge EventBus on which to put events.description (
Optional
[str
]) – The description of the data source. Default: - No descriptionname (
Optional
[str
]) – The name of the data source, overrides the id given by cdk. Default: - generated by cdk given the id
- Return type:
- add_http_data_source(id, endpoint, *, authorization_config=None, description=None, name=None)
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
]) – The authorization config in case the HTTP endpoint requires authorization. Default: - nonedescription (
Optional
[str
]) – The description of the data source. Default: - No descriptionname (
Optional
[str
]) – The name of the data source, overrides the id given by cdk. Default: - generated by cdk given the id
- Return type:
- add_lambda_data_source(id, lambda_function, *, description=None, name=None)
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
]) – The description of the data source. Default: - No descriptionname (
Optional
[str
]) – The name of the data source, overrides the id given by cdk. Default: - generated by cdk given the id
- Return type:
- add_none_data_source(id, *, description=None, name=None)
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
]) – The description of the data source. Default: - No descriptionname (
Optional
[str
]) – The name of the data source, overrides the id given by cdk. Default: - generated by cdk given the id
- Return type:
- add_open_search_data_source(id, domain, *, description=None, name=None)
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
]) – The description of the data source. Default: - No descriptionname (
Optional
[str
]) – The name of the data source, overrides the id given by cdk. Default: - generated by cdk given the id
- Return type:
- add_rds_data_source(id, serverless_cluster, secret_store, database_name=None, *, description=None, name=None)
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
]) – The description of the data source. Default: - No descriptionname (
Optional
[str
]) – The name of the data source, overrides the id given by cdk. Default: - generated by cdk given the id
- Return type:
- add_rds_data_source_v2(id, serverless_cluster, secret_store, database_name=None, *, description=None, name=None)
add a new Rds data source to this API.
- Parameters:
id (
str
) – The data source’s id.serverless_cluster (
IDatabaseCluster
) – The serverless V2 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
]) – The description of the data source. Default: - No descriptionname (
Optional
[str
]) – The name of the data source, overrides the id given by cdk. Default: - generated by cdk given the id
- Return type:
- add_schema_dependency(construct)
Add schema dependency to a given construct.
- Parameters:
construct (
CfnResource
) – the dependee.- Return type:
bool
- 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(id, *, data_source=None, field_name, type_name, caching_config=None, code=None, max_batch_size=None, pipeline_config=None, request_mapping_template=None, response_mapping_template=None, runtime=None)
creates a new resolver for this datasource and API using the given properties.
- Parameters:
id (
str
) –data_source (
Optional
[BaseDataSource
]) – The data source this resolver is using. Default: - No datasourcefield_name (
str
) – name of the GraphQL field in the given type this resolver is attached to.type_name (
str
) – name of the GraphQL type this resolver is attached to.caching_config (
Union
[CachingConfig
,Dict
[str
,Any
],None
]) – The caching configuration for this resolver. Default: - No caching configurationcode (
Optional
[Code
]) – The function code. Default: - no code is usedmax_batch_size (
Union
[int
,float
,None
]) – The maximum number of elements per batch, when using batch invoke. Default: - No max batch sizepipeline_config (
Optional
[Sequence
[IAppsyncFunction
]]) – configuration of the pipeline resolver. Default: - no pipeline resolver configuration An empty array | undefined sets resolver to be of kind, unitrequest_mapping_template (
Optional
[MappingTemplate
]) – The request mapping template for this resolver. Default: - No mapping templateresponse_mapping_template (
Optional
[MappingTemplate
]) – The response mapping template for this resolver. Default: - No mapping templateruntime (
Optional
[FunctionRuntime
]) – The functions runtime. Default: - no function runtime, VTL mapping templates used
- Return type:
- grant(grantee, resources, *actions)
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 ).
- Return type:
- grant_mutation(grantee, *fields)
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).
- Return type:
- grant_query(grantee, *fields)
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).
- Return type:
- grant_subscription(grantee, *fields)
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).
- Return type:
- to_string()
Returns a string representation of this construct.
- Return type:
str
Attributes
- api_id
an unique AWS AppSync GraphQL API identifier i.e. ‘lxz775lwdrgcndgz3nurvac7oa’.
- api_key
the configured API key, if present.
- Default:
no api key
- app_sync_domain_name
The AppSyncDomainName of the associated custom domain.
- arn
the ARN of the API.
- 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.
- graph_ql_endpoint_arn
The GraphQL endpoint ARN.
- graphql_url
the URL of the endpoint created by AppSync.
- Attribute:
GraphQlUrl
- log_group
the CloudWatch Log Group for this API.
- modes
The Authorization Types for this GraphQL Api.
- name
the name of the API.
- node
The tree node.
- schema
the schema attached to this api (only available for GraphQL APIs, not available for merged APIs).
- stack
The stack in which this resource is defined.
- visibility
the visibility of the API.
Static Methods
- classmethod from_graphql_api_attributes(scope, id, *, graphql_api_id, graphql_api_arn=None, graph_ql_endpoint_arn=None, modes=None, visibility=None)
Import a GraphQL API through this function.
- Parameters:
scope (
Construct
) – scope.id (
str
) – id.graphql_api_id (
str
) – an unique AWS AppSync GraphQL API identifier i.e. ‘lxz775lwdrgcndgz3nurvac7oa’.graphql_api_arn (
Optional
[str
]) – the arn for the GraphQL Api. Default: - autogenerated arngraph_ql_endpoint_arn (
Optional
[str
]) – The GraphQl endpoint arn for the GraphQL API. Default: - none, required to construct event rules from imported APIsmodes (
Optional
[Sequence
[AuthorizationType
]]) – The Authorization Types for this GraphQL Api. Default: - none, required to construct event rules from imported APIsvisibility (
Optional
[Visibility
]) – The GraphQl API visibility. Default: - GLOBAL
- Return type:
- classmethod is_construct(x)
Checks if
x
is a construct.Use this method instead of
instanceof
to properly detectConstruct
instances, even when the construct library is symlinked.Explanation: in JavaScript, multiple copies of the
constructs
library on disk are seen as independent, completely different libraries. As a consequence, the classConstruct
in each copy of theconstructs
library is seen as a different class, and an instance of one class will not test asinstanceof
the other class.npm install
will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of theconstructs
library can be accidentally installed, andinstanceof
will behave unpredictably. It is safest to avoid usinginstanceof
, and using this type-testing method instead.- Parameters:
x (
Any
) – Any object.- Return type:
bool
- Returns:
true if
x
is an object created from a class which extendsConstruct
.
- classmethod is_owned_resource(construct)
Returns true if the construct was created by CDK, and false otherwise.
- Parameters:
construct (
IConstruct
) –- Return type:
bool
- classmethod is_resource(construct)
Check whether the given construct is a Resource.
- Parameters:
construct (
IConstruct
) –- Return type:
bool