UNPKG

iam-floyd

Version:

AWS IAM policy statement generator with fluent interface

1,275 lines 117 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Appsync = void 0; const shared_1 = require("../../shared"); /** * Statement provider for service [appsync](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsappsync.html). * * @param sid [SID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html) of the statement */ class Appsync extends shared_1.PolicyStatement { /** * Statement provider for service [appsync](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsappsync.html). * * @param sid [SID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html) of the statement */ constructor(sid) { super(sid); this.servicePrefix = 'appsync'; this.accessLevelList = { Write: [ 'AssociateApi', 'AssociateMergedGraphqlApi', 'AssociateSourceGraphqlApi', 'CreateApi', 'CreateApiCache', 'CreateApiKey', 'CreateChannelNamespace', 'CreateDataSource', 'CreateDomainName', 'CreateFunction', 'CreateGraphqlApi', 'CreateResolver', 'CreateType', 'DeleteApi', 'DeleteApiCache', 'DeleteApiKey', 'DeleteChannelNamespace', 'DeleteDataSource', 'DeleteDomainName', 'DeleteFunction', 'DeleteGraphqlApi', 'DeleteResolver', 'DeleteResourcePolicy', 'DeleteType', 'DisassociateApi', 'DisassociateMergedGraphqlApi', 'DisassociateSourceGraphqlApi', 'EventConnect', 'EventPublish', 'EventSubscribe', 'FlushApiCache', 'GraphQL', 'PutGraphqlApiEnvironmentVariables', 'PutResourcePolicy', 'SetWebACL', 'SourceGraphQL', 'StartDataSourceIntrospection', 'StartSchemaCreation', 'StartSchemaMerge', 'UpdateApi', 'UpdateApiCache', 'UpdateApiKey', 'UpdateChannelNamespace', 'UpdateDataSource', 'UpdateDomainName', 'UpdateFunction', 'UpdateGraphqlApi', 'UpdateResolver', 'UpdateSourceApiAssociation', 'UpdateType' ], Read: [ 'EvaluateCode', 'EvaluateMappingTemplate', 'GetApi', 'GetApiAssociation', 'GetApiCache', 'GetChannelNamespace', 'GetDataSource', 'GetDataSourceIntrospection', 'GetDomainName', 'GetFunction', 'GetGraphqlApi', 'GetGraphqlApiEnvironmentVariables', 'GetIntrospectionSchema', 'GetResolver', 'GetResourcePolicy', 'GetSchemaCreationStatus', 'GetSourceApiAssociation', 'GetType', 'ListTagsForResource' ], List: [ 'ListApiKeys', 'ListApis', 'ListChannelNamespaces', 'ListDataSources', 'ListDomainNames', 'ListFunctions', 'ListGraphqlApis', 'ListResolvers', 'ListResolversByFunction', 'ListSourceApiAssociations', 'ListTypes', 'ListTypesByAssociation' ], Tagging: [ 'TagResource', 'UntagResource' ] }; } /** * Grants permission to attach a GraphQL API to a custom domain name in AppSync * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_AssociateApi.html */ toAssociateApi() { return this.to('AssociateApi'); } /** * Grants permission to associate a merged API to a source API * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_AssociateMergedGraphqlApi.html */ toAssociateMergedGraphqlApi() { return this.to('AssociateMergedGraphqlApi'); } /** * Grants permission to associate a source API to a merged API * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_AssociateSourceGraphqlApi.html */ toAssociateSourceGraphqlApi() { return this.to('AssociateSourceGraphqlApi'); } /** * Grants permission to create an API * * Access Level: Write * * Possible conditions: * - .ifAwsResourceTag() * - .ifAwsRequestTag() * - .ifAwsTagKeys() * * Dependent actions: * - iam:CreateServiceLinkedRole * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_CreateApi.html */ toCreateApi() { return this.to('CreateApi'); } /** * Grants permission to create an API cache in AppSync * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_CreateApiCache.html */ toCreateApiCache() { return this.to('CreateApiCache'); } /** * Grants permission to create a unique key that you can distribute to clients who are executing your API * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_CreateApiKey.html */ toCreateApiKey() { return this.to('CreateApiKey'); } /** * Grants permission to create a channel namespace * * Access Level: Write * * Possible conditions: * - .ifAwsResourceTag() * - .ifAwsRequestTag() * - .ifAwsTagKeys() * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_CreateChannelNamespace.html */ toCreateChannelNamespace() { return this.to('CreateChannelNamespace'); } /** * Grants permission to create a data source * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_CreateDataSource.html */ toCreateDataSource() { return this.to('CreateDataSource'); } /** * Grants permission to create a custom domain name in AppSync * * Access Level: Write * * Possible conditions: * - .ifAwsResourceTag() * - .ifAwsRequestTag() * - .ifAwsTagKeys() * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_CreateDomainName.html */ toCreateDomainName() { return this.to('CreateDomainName'); } /** * Grants permission to create a new function * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_CreateFunction.html */ toCreateFunction() { return this.to('CreateFunction'); } /** * Grants permission to create a GraphQL API, which is the top level AppSync resource * * Access Level: Write * * Possible conditions: * - .ifAwsRequestTag() * - .ifAwsTagKeys() * - .ifVisibility() * * Dependent actions: * - iam:CreateServiceLinkedRole * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_CreateGraphqlApi.html */ toCreateGraphqlApi() { return this.to('CreateGraphqlApi'); } /** * Grants permission to create a resolver. A resolver converts incoming requests into a format that a data source can understand, and converts the data source's responses into GraphQL * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_CreateResolver.html */ toCreateResolver() { return this.to('CreateResolver'); } /** * Grants permission to create a type * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_CreateType.html */ toCreateType() { return this.to('CreateType'); } /** * Grants permission to delete a API. This will also clean up every AppSync resource below that API * * Access Level: Write * * Possible conditions: * - .ifAwsResourceTag() * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_DeleteApi.html */ toDeleteApi() { return this.to('DeleteApi'); } /** * Grants permission to delete an API cache in AppSync * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_DeleteApiCache.html */ toDeleteApiCache() { return this.to('DeleteApiCache'); } /** * Grants permission to delete an API key * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_DeleteApiKey.html */ toDeleteApiKey() { return this.to('DeleteApiKey'); } /** * Grants permission to delete a channel namespace * * Access Level: Write * * Possible conditions: * - .ifAwsResourceTag() * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_DeleteChannelNamespace.html */ toDeleteChannelNamespace() { return this.to('DeleteChannelNamespace'); } /** * Grants permission to delete a data source * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_DeleteDataSource.html */ toDeleteDataSource() { return this.to('DeleteDataSource'); } /** * Grants permission to delete a custom domain name in AppSync * * Access Level: Write * * Possible conditions: * - .ifAwsResourceTag() * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_DeleteDomainName.html */ toDeleteDomainName() { return this.to('DeleteDomainName'); } /** * Grants permission to delete a function * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_DeleteFunction.html */ toDeleteFunction() { return this.to('DeleteFunction'); } /** * Grants permission to delete a GraphQL Api. This will also clean up every AppSync resource below that API * * Access Level: Write * * Possible conditions: * - .ifAwsResourceTag() * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_DeleteGraphqlApi.html */ toDeleteGraphqlApi() { return this.to('DeleteGraphqlApi'); } /** * Grants permission to delete a resolver * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_DeleteResolver.html */ toDeleteResolver() { return this.to('DeleteResolver'); } /** * Grants permission to remove a resource policy * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/devguide/merge-api.html */ toDeleteResourcePolicy() { return this.to('DeleteResourcePolicy'); } /** * Grants permission to delete a type * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_DeleteType.html */ toDeleteType() { return this.to('DeleteType'); } /** * Grants permission to detach a GraphQL API to a custom domain name in AppSync * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_DisassociateApi.html */ toDisassociateApi() { return this.to('DisassociateApi'); } /** * Grants permission to remove an associated source API from a merged API identified by the source API * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_DisassociateMergedGraphqlApi.html */ toDisassociateMergedGraphqlApi() { return this.to('DisassociateMergedGraphqlApi'); } /** * Grants permission to remove an associated source API from a merged API identified by the merged API * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_DisassociateSourceGraphqlApi.html */ toDisassociateSourceGraphqlApi() { return this.to('DisassociateSourceGraphqlApi'); } /** * Grants permission to evaluate code with a runtime and context * * Access Level: Read * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_EvaluateCode.html */ toEvaluateCode() { return this.to('EvaluateCode'); } /** * Grants permission to evaluate template mapping * * Access Level: Read * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_EvaluateMappingTemplate.html */ toEvaluateMappingTemplate() { return this.to('EvaluateMappingTemplate'); } /** * Grants permission to connect to an Event API * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/devguide/using-your-event-api.html */ toEventConnect() { return this.to('EventConnect'); } /** * Grants permission to publish events to a channel namespace * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/devguide/using-your-event-api.html */ toEventPublish() { return this.to('EventPublish'); } /** * Grants permission to subscribe to a channel namespace * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/devguide/using-your-event-api.html */ toEventSubscribe() { return this.to('EventSubscribe'); } /** * Grants permission to flush an API cache in AppSync * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_FlushApiCache.html */ toFlushApiCache() { return this.to('FlushApiCache'); } /** * Grants permission to retrieve an API * * Access Level: Read * * Possible conditions: * - .ifAwsResourceTag() * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_GetApi.html */ toGetApi() { return this.to('GetApi'); } /** * Grants permission to read custom domain name - GraphQL API association details in AppSync * * Access Level: Read * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_GetApiAssociation.html */ toGetApiAssociation() { return this.to('GetApiAssociation'); } /** * Grants permission to read information about an API cache in AppSync * * Access Level: Read * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_GetApiCache.html */ toGetApiCache() { return this.to('GetApiCache'); } /** * Grants permission to retrieve a channel namespace * * Access Level: Read * * Possible conditions: * - .ifAwsResourceTag() * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_GetChannelNamespace.html */ toGetChannelNamespace() { return this.to('GetChannelNamespace'); } /** * Grants permission to retrieve a data source * * Access Level: Read * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_GetDataSource.html */ toGetDataSource() { return this.to('GetDataSource'); } /** * Grants permission to retrieve a data source introspection * * Access Level: Read * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_GetDataSourceIntrospection.html */ toGetDataSourceIntrospection() { return this.to('GetDataSourceIntrospection'); } /** * Grants permission to read information about a custom domain name in AppSync * * Access Level: Read * * Possible conditions: * - .ifAwsResourceTag() * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_GetDomainName.html */ toGetDomainName() { return this.to('GetDomainName'); } /** * Grants permission to retrieve a function * * Access Level: Read * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_GetFunction.html */ toGetFunction() { return this.to('GetFunction'); } /** * Grants permission to retrieve a GraphQL API * * Access Level: Read * * Possible conditions: * - .ifAwsResourceTag() * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_GetGraphqlApi.html */ toGetGraphqlApi() { return this.to('GetGraphqlApi'); } /** * Grants permission to retrieve the environment variables for a GraphQL API * * Access Level: Read * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_GetGraphqlApiEnvironmentVariables.html */ toGetGraphqlApiEnvironmentVariables() { return this.to('GetGraphqlApiEnvironmentVariables'); } /** * Grants permission to retrieve the introspection schema for a GraphQL API * * Access Level: Read * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_GetIntrospectionSchema.html */ toGetIntrospectionSchema() { return this.to('GetIntrospectionSchema'); } /** * Grants permission to retrieve a resolver * * Access Level: Read * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_GetResolver.html */ toGetResolver() { return this.to('GetResolver'); } /** * Grants permission to read a resource policy * * Access Level: Read * * https://docs.aws.amazon.com/appsync/latest/devguide/merge-api.html */ toGetResourcePolicy() { return this.to('GetResourcePolicy'); } /** * Grants permission to retrieve the current status of a schema creation operation * * Access Level: Read * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_GetSchemaCreationStatus.html */ toGetSchemaCreationStatus() { return this.to('GetSchemaCreationStatus'); } /** * Grants permission to read information about a merged API associated source API * * Access Level: Read * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_GetSourceApiAssociation.html */ toGetSourceApiAssociation() { return this.to('GetSourceApiAssociation'); } /** * Grants permission to retrieve a type * * Access Level: Read * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_GetType.html */ toGetType() { return this.to('GetType'); } /** * Grants permission to send a GraphQL query to a GraphQL API * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/devguide/security-authz.html#aws-iam-authorization */ toGraphQL() { return this.to('GraphQL'); } /** * Grants permission to list the API keys for a given API * * Access Level: List * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_ListApiKeys.html */ toListApiKeys() { return this.to('ListApiKeys'); } /** * Grants permission to list APIs * * Access Level: List * * Possible conditions: * - .ifAwsResourceTag() * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_ListApis.html */ toListApis() { return this.to('ListApis'); } /** * Grants permission to list channel namespace * * Access Level: List * * Possible conditions: * - .ifAwsResourceTag() * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_ListChannelNamespaces.html */ toListChannelNamespaces() { return this.to('ListChannelNamespaces'); } /** * Grants permission to list the data sources for a given API * * Access Level: List * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_ListDataSources.html */ toListDataSources() { return this.to('ListDataSources'); } /** * Grants permission to enumerate custom domain names in AppSync * * Access Level: List * * Possible conditions: * - .ifAwsResourceTag() * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_ListDomainNames.html */ toListDomainNames() { return this.to('ListDomainNames'); } /** * Grants permission to list the functions for a given API * * Access Level: List * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_ListFunctions.html */ toListFunctions() { return this.to('ListFunctions'); } /** * Grants permission to list GraphQL APIs * * Access Level: List * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_ListGraphqlApis.html */ toListGraphqlApis() { return this.to('ListGraphqlApis'); } /** * Grants permission to list the resolvers for a given API and type * * Access Level: List * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_ListResolvers.html */ toListResolvers() { return this.to('ListResolvers'); } /** * Grants permission to list the resolvers that are associated with a specific function * * Access Level: List * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_ListResolversByFunction.html */ toListResolversByFunction() { return this.to('ListResolversByFunction'); } /** * Grants permission to list source APIs associated to a given merged API * * Access Level: List * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_ListSourceApiAssociations.html */ toListSourceApiAssociations() { return this.to('ListSourceApiAssociations'); } /** * Grants permission to list the tags for a resource * * Access Level: Read * * Possible conditions: * - .ifAwsResourceTag() * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_ListTagsForResource.html */ toListTagsForResource() { return this.to('ListTagsForResource'); } /** * Grants permission to list the types for a given API * * Access Level: List * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_ListTypes.html */ toListTypes() { return this.to('ListTypes'); } /** * Grants permission to list the types for a given merged API and source API association * * Access Level: List * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_ListTypesByAssociation.html */ toListTypesByAssociation() { return this.to('ListTypesByAssociation'); } /** * Grants permission to update the environment variables for a GraphQL API * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_PutGraphqlApiEnvironmentVariables.html */ toPutGraphqlApiEnvironmentVariables() { return this.to('PutGraphqlApiEnvironmentVariables'); } /** * Grants permission to set a resource policy * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/devguide/merge-api.html */ toPutResourcePolicy() { return this.to('PutResourcePolicy'); } /** * Grants permission to set a web ACL * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/devguide/WAF-Integration.html */ toSetWebACL() { return this.to('SetWebACL'); } /** * Grants permission to send a GraphQL query to a source API of a merged API * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/devguide/using-your-api.html */ toSourceGraphQL() { return this.to('SourceGraphQL'); } /** * Grants permission to introspect a data source * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_StartDataSourceIntrospection.html */ toStartDataSourceIntrospection() { return this.to('StartDataSourceIntrospection'); } /** * Grants permission to add a new schema to your GraphQL API. This operation is asynchronous - GetSchemaCreationStatus can show when it has completed * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_StartSchemaCreation.html */ toStartSchemaCreation() { return this.to('StartSchemaCreation'); } /** * Grants permission to initiate a schema merge for a given merged API and associated source API * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_StartSchemaMerge.html */ toStartSchemaMerge() { return this.to('StartSchemaMerge'); } /** * Grants permission to tag a resource * * Access Level: Tagging * * Possible conditions: * - .ifAwsRequestTag() * - .ifAwsResourceTag() * - .ifAwsTagKeys() * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_TagResource.html */ toTagResource() { return this.to('TagResource'); } /** * Grants permission to untag a resource * * Access Level: Tagging * * Possible conditions: * - .ifAwsTagKeys() * - .ifAwsResourceTag() * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_UntagResource.html */ toUntagResource() { return this.to('UntagResource'); } /** * Grants permission to update an API * * Access Level: Write * * Possible conditions: * - .ifAwsResourceTag() * * Dependent actions: * - iam:CreateServiceLinkedRole * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_UpdateApi.html */ toUpdateApi() { return this.to('UpdateApi'); } /** * Grants permission to update an API cache in AppSync * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_UpdateApiCache.html */ toUpdateApiCache() { return this.to('UpdateApiCache'); } /** * Grants permission to update an API key for a given API * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_UpdateApiKey.html */ toUpdateApiKey() { return this.to('UpdateApiKey'); } /** * Grants permission to update a channel namespace * * Access Level: Write * * Possible conditions: * - .ifAwsResourceTag() * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_UpdateChannelNamespace.html */ toUpdateChannelNamespace() { return this.to('UpdateChannelNamespace'); } /** * Grants permission to update a data source * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_UpdateDataSource.html */ toUpdateDataSource() { return this.to('UpdateDataSource'); } /** * Grants permission to update a custom domain name in AppSync * * Access Level: Write * * Possible conditions: * - .ifAwsResourceTag() * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_UpdateDomainName.html */ toUpdateDomainName() { return this.to('UpdateDomainName'); } /** * Grants permission to update an existing function * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_UpdateFunction.html */ toUpdateFunction() { return this.to('UpdateFunction'); } /** * Grants permission to update a GraphQL API * * Access Level: Write * * Possible conditions: * - .ifAwsResourceTag() * * Dependent actions: * - iam:CreateServiceLinkedRole * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_UpdateGraphqlApi.html */ toUpdateGraphqlApi() { return this.to('UpdateGraphqlApi'); } /** * Grants permission to update a resolver * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_UpdateResolver.html */ toUpdateResolver() { return this.to('UpdateResolver'); } /** * Grants permission to update a merged API source API association * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_UpdateSourceApiAssociation.html */ toUpdateSourceApiAssociation() { return this.to('UpdateSourceApiAssociation'); } /** * Grants permission to update a type * * Access Level: Write * * https://docs.aws.amazon.com/appsync/latest/APIReference/API_UpdateType.html */ toUpdateType() { return this.to('UpdateType'); } /** * Adds a resource of type datasource to the statement * * https://docs.aws.amazon.com/appsync/latest/devguide/attaching-a-data-source.html * * @param graphQLAPIId - Identifier for the graphQLAPIId. * @param datasourceName - Identifier for the datasourceName. * @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account. * @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region. * @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition. */ onDatasource(graphQLAPIId, datasourceName, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:appsync:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:apis/${graphQLAPIId}/datasources/${datasourceName}`); } /** * Adds a resource of type domain to the statement * * https://docs.aws.amazon.com/appsync/latest/devguide/custom-domain-name.html * * @param domainName - Identifier for the domainName. * @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account. * @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region. * @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition. * * Possible conditions: * - .ifAwsResourceTag() */ onDomain(domainName, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:appsync:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:domainnames/${domainName}`); } /** * Adds a resource of type graphqlapi to the statement * * https://docs.aws.amazon.com/appsync/latest/devguide/designing-a-graphql-api.html * * @param graphQLAPIId - Identifier for the graphQLAPIId. * @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account. * @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region. * @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition. * * Possible conditions: * - .ifAwsResourceTag() */ onGraphqlapi(graphQLAPIId, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:appsync:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:apis/${graphQLAPIId}`); } /** * Adds a resource of type field to the statement * * https://docs.aws.amazon.com/appsync/latest/devguide/configuring-resolvers.html * * @param graphQLAPIId - Identifier for the graphQLAPIId. * @param typeName - Identifier for the typeName. * @param fieldName - Identifier for the fieldName. * @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account. * @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region. * @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition. */ onField(graphQLAPIId, typeName, fieldName, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:appsync:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:apis/${graphQLAPIId}/types/${typeName}/fields/${fieldName}`); } /** * Adds a resource of type type to the statement * * https://docs.aws.amazon.com/appsync/latest/devguide/designing-your-schema.html#adding-a-root-query-type * * @param graphQLAPIId - Identifier for the graphQLAPIId. * @param typeName - Identifier for the typeName. * @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account. * @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region. * @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition. */ onType(graphQLAPIId, typeName, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:appsync:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:apis/${graphQLAPIId}/types/${typeName}`); } /** * Adds a resource of type function to the statement * * https://docs.aws.amazon.com/appsync/latest/devguide/pipeline-resolvers.html * * @param graphQLAPIId - Identifier for the graphQLAPIId. * @param functionId - Identifier for the functionId. * @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account. * @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region. * @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition. */ onFunction(graphQLAPIId, functionId, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:appsync:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:apis/${graphQLAPIId}/functions/${functionId}`); } /** * Adds a resource of type sourceApiAssociation to the statement * * https://docs.aws.amazon.com/appsync/latest/devguide/merged-api.html * * @param mergedGraphQLAPIId - Identifier for the mergedGraphQLAPIId. * @param associationid - Identifier for the associationid. * @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account. * @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region. * @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition. */ onSourceApiAssociation(mergedGraphQLAPIId, associationid, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:appsync:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:apis/${mergedGraphQLAPIId}/sourceApiAssociations/${associationid}`); } /** * Adds a resource of type mergedApiAssociation to the statement * * https://docs.aws.amazon.com/appsync/latest/devguide/merged-api.html * * @param sourceGraphQLAPIId - Identifier for the sourceGraphQLAPIId. * @param associationid - Identifier for the associationid. * @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account. * @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region. * @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition. */ onMergedApiAssociation(sourceGraphQLAPIId, associationid, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:appsync:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:apis/${sourceGraphQLAPIId}/mergedApiAssociations/${associationid}`); } /** * Adds a resource of type api to the statement * * https://docs.aws.amazon.com/appsync/latest/eventapi/event-api-welcome.html * * @param apiId - Identifier for the apiId. * @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account. * @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region. * @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition. * * Possible conditions: * - .ifAwsResourceTag() */ onApi(apiId, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:appsync:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:apis/${apiId}`); } /** * Adds a resource of type channelNamespace to the statement * * https://docs.aws.amazon.com/appsync/latest/eventapi/channel-namespaces.html * * @param apiId - Identifier for the apiId. * @param channelNamespaceName - Identifier for the channelNamespaceName. * @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account. * @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region. * @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition. * * Possible conditions: * - .ifAwsResourceTag() */ onChannelNamespace(apiId, channelNamespaceName, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:appsync:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:apis/${apiId}/channelNamespace/${channelNamespaceName}`); } /** * Filters access by the visibility of an API * * Applies to actions: * - .toCreateGraphqlApi() * * @param value The value(s) to check * @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike` */ ifVisibility(value, operator) { return this.if(`Visibility`, value, operator ?? 'StringLike'); } /** * Filters access by the tag key-value pairs in the request * * https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requesttag * * Applies to actions: * - .toCreateApi() * - .toCreateChannelNamespace() * - .toCreateDomainName() * - .toCreateGraphqlApi() * - .toTagResource() * * @param tagKey The tag key to check * @param value The value(s) to check * @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike` */ ifAwsRequestTag(tagKey, value, operator) { return this.if(`aws:RequestTag/${tagKey}`, value, operator ?? 'StringLike'); } /** * Filters access by the tag key-value pairs attached to the resource * * https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourcetag * * Applies to actions: * - .toCreateApi() * - .toCreateChannelNamespace() * - .toCreateDomainName() * - .toDeleteApi() * - .toDeleteChannelNamespace() * - .toDeleteDomainName() * - .toDeleteGraphqlApi() * - .toGetApi() * - .toGetChannelNamespace() * - .toGetDomainName() * - .toGetGraphqlApi() * - .toListApis() * - .toListChannelNamespaces() * - .toListDomainNames() * - .toListTagsForResource() * - .toTagResource() * - .toUntagResource() * - .toUpdateApi() * - .toUpdateChannelNamespace() * - .toUpdateDomainName() * - .toUpdateGraphqlApi() * * Applies to resource types: * - domain * - graphqlapi * - api * - channelNamespace * * @param tagKey The tag key to check * @param value The value(s) to check * @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike` */ ifAwsResourceTag(tagKey, value, operator) { return this.if(`aws:ResourceTag/${tagKey}`, value, operator ?? 'StringLike'); } /** * Filters access by the presence of tag keys in the request * * https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys * * Applies to actions: * - .toCreateApi() * - .toCreateChannelNamespace() * - .toCreateDomainName() * - .toCreateGraphqlApi() * - .toTagResource() * - .toUntagResource() * * @param value The value(s) to check * @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike` */ ifAwsTagKeys(value, operator) { return this.if(`aws:TagKeys`, value, operator ?? 'StringLike'); } } exports.Appsync = Appsync; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwc3luYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFwcHN5bmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseUNBQXlEO0FBRXpEOzs7O0dBSUc7QUFDSCxNQUFhLE9BQVEsU0FBUSx3QkFBZTtJQUcxQzs7OztPQUlHO0lBQ0gsWUFBWSxHQUFZO1FBQ3RCLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQVJOLGtCQUFhLEdBQUcsU0FBUyxDQUFDO1FBcS9CdkIsb0JBQWUsR0FBb0I7WUFDM0MsS0FBSyxFQUFFO2dCQUNMLGNBQWM7Z0JBQ2QsMkJBQTJCO2dCQUMzQiwyQkFBMkI7Z0JBQzNCLFdBQVc7Z0JBQ1gsZ0JBQWdCO2dCQUNoQixjQUFjO2dCQUNkLHdCQUF3QjtnQkFDeEIsa0JBQWtCO2dCQUNsQixrQkFBa0I7Z0JBQ2xCLGdCQUFnQjtnQkFDaEIsa0JBQWtCO2dCQUNsQixnQkFBZ0I7Z0JBQ2hCLFlBQVk7Z0JBQ1osV0FBVztnQkFDWCxnQkFBZ0I7Z0JBQ2hCLGNBQWM7Z0JBQ2Qsd0JBQXdCO2dCQUN4QixrQkFBa0I7Z0JBQ2xCLGtCQUFrQjtnQkFDbEIsZ0JBQWdCO2dCQUNoQixrQkFBa0I7Z0JBQ2xCLGdCQUFnQjtnQkFDaEIsc0JBQXNCO2dCQUN0QixZQUFZO2dCQUNaLGlCQUFpQjtnQkFDakIsOEJBQThCO2dCQUM5Qiw4QkFBOEI7Z0JBQzlCLGNBQWM7Z0JBQ2QsY0FBYztnQkFDZCxnQkFBZ0I7Z0JBQ2hCLGVBQWU7Z0JBQ2YsU0FBUztnQkFDVCxtQ0FBbUM7Z0JBQ25DLG1CQUFtQjtnQkFDbkIsV0FBVztnQkFDWCxlQUFlO2dCQUNmLDhCQUE4QjtnQkFDOUIscUJBQXFCO2dCQUNyQixrQkFBa0I7Z0JBQ2xCLFdBQVc7Z0JBQ1gsZ0JBQWdCO2dCQUNoQixjQUFjO2dCQUNkLHdCQUF3QjtnQkFDeEIsa0JBQWtCO2dCQUNsQixrQkFBa0I7Z0JBQ2xCLGdCQUFnQjtnQkFDaEIsa0JBQWtCO2dCQUNsQixnQkFBZ0I7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