UNPKG

iam-floyd

Version:

AWS IAM policy statement generator with fluent interface

1,277 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', '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' ], 'Permissions management': [ 'SetWebACL' ], 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: Permissions management * * 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwc3luYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFwcHN5bmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseUNBQXlEO0FBRXpEOzs7O0dBSUc7QUFDSCxNQUFhLE9BQVEsU0FBUSx3QkFBZTtJQUcxQzs7OztPQUlHO0lBQ0gsWUFBWSxHQUFZO1FBQ3RCLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQVJOLGtCQUFhLEdBQUcsU0FBUyxDQUFDO1FBcS9CdkIsb0JBQWUsR0FBb0I7WUFDM0MsS0FBSyxFQUFFO2dCQUNMLGNBQWM7Z0JBQ2QsMkJBQTJCO2dCQUMzQiwyQkFBMkI7Z0JBQzNCLFdBQVc7Z0JBQ1gsZ0JBQWdCO2dCQUNoQixjQUFjO2dCQUNkLHdCQUF3QjtnQkFDeEIsa0JBQWtCO2dCQUNsQixrQkFBa0I7Z0JBQ2xCLGdCQUFnQjtnQkFDaEIsa0JBQWtCO2dCQUNsQixnQkFBZ0I7Z0JBQ2hCLFlBQVk7Z0JBQ1osV0FBVztnQkFDWCxnQkFBZ0I7Z0JBQ2hCLGNBQWM7Z0JBQ2Qsd0JBQXdCO2dCQUN4QixrQkFBa0I7Z0JBQ2xCLGtCQUFrQjtnQkFDbEIsZ0JBQWdCO2dCQUNoQixrQkFBa0I7Z0JBQ2xCLGdCQUFnQjtnQkFDaEIsc0JBQXNCO2dCQUN0QixZQUFZO2dCQUNaLGlCQUFpQjtnQkFDakIsOEJBQThCO2dCQUM5Qiw4QkFBOEI7Z0JBQzlCLGNBQWM7Z0JBQ2QsY0FBYztnQkFDZCxnQkFBZ0I7Z0JBQ2hCLGVBQWU7Z0JBQ2YsU0FBUztnQkFDVCxtQ0FBbUM7Z0JBQ25DLG1CQUFtQjtnQkFDbkIsZUFBZTtnQkFDZiw4QkFBOEI7Z0JBQzlCLHFCQUFxQjtnQkFDckIsa0JBQWtCO2dCQUNsQixXQUFXO2dCQUNYLGdCQUFnQjtnQkFDaEIsY0FBYztnQkFDZCx3QkFBd0I7Z0JBQ3hCLGtCQUFrQjtnQkFDbEIsa0JBQWtCO2dCQUNsQixnQkFBZ0I7Z0JBQ2hCLGtCQUFrQjtnQkFDbEIsZ0JBQWdCO2dCQUNoQiw0QkFB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