AuthorizationMode

class aws_cdk.aws_appsync.AuthorizationMode(*, authorization_type, api_key_config=None, lambda_authorizer_config=None, open_id_connect_config=None, user_pool_config=None)

Bases: object

(experimental) Interface to specify default or additional authorization(s).

Parameters:
  • authorization_type (AuthorizationType) – (experimental) One of possible four values AppSync supports. Default: - AuthorizationType.API_KEY

  • api_key_config (Union[ApiKeyConfig, Dict[str, Any], None]) – (experimental) If authorizationType is AuthorizationType.API_KEY, this option can be configured. Default: - name: ‘DefaultAPIKey’ | description: ‘Default API Key created by CDK’

  • lambda_authorizer_config (Union[LambdaAuthorizerConfig, Dict[str, Any], None]) – (experimental) If authorizationType is AuthorizationType.LAMBDA, this option is required. Default: - none

  • open_id_connect_config (Union[OpenIdConnectConfig, Dict[str, Any], None]) – (experimental) If authorizationType is AuthorizationType.OIDC, this option is required. Default: - none

  • user_pool_config (Union[UserPoolConfig, Dict[str, Any], None]) – (experimental) If authorizationType is AuthorizationType.USER_POOL, this option is required. Default: - none

Stability:

experimental

ExampleMetadata:

infused

Example:

api = appsync.GraphqlApi(self, "Api",
    name="demo",
    schema=appsync.Schema.from_asset(path.join(__dirname, "schema.graphql")),
    authorization_config=appsync.AuthorizationConfig(
        default_authorization=appsync.AuthorizationMode(
            authorization_type=appsync.AuthorizationType.IAM
        )
    ),
    xray_enabled=True
)

demo_table = dynamodb.Table(self, "DemoTable",
    partition_key=dynamodb.Attribute(
        name="id",
        type=dynamodb.AttributeType.STRING
    )
)

demo_dS = api.add_dynamo_db_data_source("demoDataSource", demo_table)

# Resolver for the Query "getDemos" that scans the DynamoDb table and returns the entire list.
demo_dS.create_resolver(
    type_name="Query",
    field_name="getDemos",
    request_mapping_template=appsync.MappingTemplate.dynamo_db_scan_table(),
    response_mapping_template=appsync.MappingTemplate.dynamo_db_result_list()
)

# Resolver for the Mutation "addDemo" that puts the item into the DynamoDb table.
demo_dS.create_resolver(
    type_name="Mutation",
    field_name="addDemo",
    request_mapping_template=appsync.MappingTemplate.dynamo_db_put_item(
        appsync.PrimaryKey.partition("id").auto(),
        appsync.Values.projecting("input")),
    response_mapping_template=appsync.MappingTemplate.dynamo_db_result_item()
)

Attributes

api_key_config

(experimental) If authorizationType is AuthorizationType.API_KEY, this option can be configured.

Default:
  • name: ‘DefaultAPIKey’ | description: ‘Default API Key created by CDK’

Stability:

experimental

authorization_type

(experimental) One of possible four values AppSync supports.

Default:
  • AuthorizationType.API_KEY

See:

https://docs.aws.amazon.com/appsync/latest/devguide/security.html

Stability:

experimental

lambda_authorizer_config

(experimental) If authorizationType is AuthorizationType.LAMBDA, this option is required.

Default:
  • none

Stability:

experimental

open_id_connect_config

(experimental) If authorizationType is AuthorizationType.OIDC, this option is required.

Default:
  • none

Stability:

experimental

user_pool_config

(experimental) If authorizationType is AuthorizationType.USER_POOL, this option is required.

Default:
  • none

Stability:

experimental