iam-floyd
Version:
AWS IAM policy statement generator with fluent interface
1,277 lines • 117 kB
JavaScript
"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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