cdk-iam-floyd
Version:
AWS IAM policy statement generator with fluent interface for AWS CDK
1,002 lines • 99.1 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Cleanrooms = void 0;
const shared_1 = require("../../shared");
/**
* Statement provider for service [cleanrooms](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscleanrooms.html).
*
* @param sid [SID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html) of the statement
*/
class Cleanrooms extends shared_1.PolicyStatement {
/**
* Grants permission to view details of analysisTemplates associated to the collaboration
*
* Access Level: Read
*
* Dependent actions:
* - cleanrooms:GetCollaborationAnalysisTemplate
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_BatchGetCollaborationAnalysisTemplate.html
*/
toBatchGetCollaborationAnalysisTemplate() {
return this.to('BatchGetCollaborationAnalysisTemplate');
}
/**
* Grants permission to view details for schemas
*
* Access Level: Read
*
* Dependent actions:
* - cleanrooms:GetSchema
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_BatchGetSchema.html
*/
toBatchGetSchema() {
return this.to('BatchGetSchema');
}
/**
* Grants permission to view analysis rules associated with schemas
*
* Access Level: Read
*
* Dependent actions:
* - cleanrooms:GetSchema
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_BatchGetSchemaAnalysisRule.html
*/
toBatchGetSchemaAnalysisRule() {
return this.to('BatchGetSchemaAnalysisRule');
}
/**
* Grants permission to create a new analysis template
*
* Access Level: Write
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_CreateAnalysisTemplate.html
*/
toCreateAnalysisTemplate() {
return this.to('CreateAnalysisTemplate');
}
/**
* Grants permission to create a new collaboration, a shared data collaboration environment
*
* Access Level: Write
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_CreateCollaboration.html
*/
toCreateCollaboration() {
return this.to('CreateCollaboration');
}
/**
* Grants permission to link a Cleanrooms ML configured audience model with a collaboration by creating a new association
*
* Access Level: Write
*
* Dependent actions:
* - cleanrooms-ml:GetConfiguredAudienceModel
* - cleanrooms-ml:GetConfiguredAudienceModelPolicy
* - cleanrooms-ml:PutConfiguredAudienceModelPolicy
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_CreateConfiguredAudienceModelAssociation.html
*/
toCreateConfiguredAudienceModelAssociation() {
return this.to('CreateConfiguredAudienceModelAssociation');
}
/**
* Grants permission to create a new configured table
*
* Access Level: Write
*
* Dependent actions:
* - glue:BatchGetPartition
* - glue:GetDatabase
* - glue:GetDatabases
* - glue:GetPartition
* - glue:GetPartitions
* - glue:GetSchemaVersion
* - glue:GetTable
* - glue:GetTables
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_CreateConfiguredTable.html
*/
toCreateConfiguredTable() {
return this.to('CreateConfiguredTable');
}
/**
* Grants permission to create a analysis rule for a configured table
*
* Access Level: Write
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_CreateConfiguredTableAnalysisRule.html
*/
toCreateConfiguredTableAnalysisRule() {
return this.to('CreateConfiguredTableAnalysisRule');
}
/**
* Grants permission to link a configured table with a collaboration by creating a new association
*
* Access Level: Write
*
* Dependent actions:
* - iam:PassRole
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_CreateConfiguredTableAssociation.html
*/
toCreateConfiguredTableAssociation() {
return this.to('CreateConfiguredTableAssociation');
}
/**
* Grants permission to join collaborations by creating a membership
*
* Access Level: Write
*
* Dependent actions:
* - iam:PassRole
* - logs:CreateLogDelivery
* - logs:CreateLogGroup
* - logs:DeleteLogDelivery
* - logs:DescribeLogGroups
* - logs:DescribeResourcePolicies
* - logs:GetLogDelivery
* - logs:ListLogDeliveries
* - logs:PutResourcePolicy
* - logs:UpdateLogDelivery
* - s3:GetBucketLocation
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_CreateMembership.html
*/
toCreateMembership() {
return this.to('CreateMembership');
}
/**
* Grants permission to create a new privacy budget template
*
* Access Level: Write
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_CreatePrivacyBudgetTemplate.html
*/
toCreatePrivacyBudgetTemplate() {
return this.to('CreatePrivacyBudgetTemplate');
}
/**
* Grants permission to delete an existing analysis template
*
* Access Level: Write
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_DeleteAnalysisTemplate.html
*/
toDeleteAnalysisTemplate() {
return this.to('DeleteAnalysisTemplate');
}
/**
* Grants permission to delete an existing collaboration
*
* Access Level: Write
*
* Dependent actions:
* - cleanrooms-ml:DeleteConfiguredAudienceModelPolicy
* - cleanrooms-ml:GetConfiguredAudienceModelPolicy
* - cleanrooms-ml:PutConfiguredAudienceModelPolicy
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_DeleteCollaboration.html
*/
toDeleteCollaboration() {
return this.to('DeleteCollaboration');
}
/**
* Grants permission to delete an existing configured audience model association
*
* Access Level: Write
*
* Dependent actions:
* - cleanrooms-ml:DeleteConfiguredAudienceModelPolicy
* - cleanrooms-ml:GetConfiguredAudienceModelPolicy
* - cleanrooms-ml:PutConfiguredAudienceModelPolicy
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_DeleteConfiguredAudienceModelAssociation.html
*/
toDeleteConfiguredAudienceModelAssociation() {
return this.to('DeleteConfiguredAudienceModelAssociation');
}
/**
* Grants permission to delete a configured table
*
* Access Level: Write
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_DeleteConfiguredTable.html
*/
toDeleteConfiguredTable() {
return this.to('DeleteConfiguredTable');
}
/**
* Grants permission to delete an existing analysis rule
*
* Access Level: Write
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_DeleteConfiguredTableAnalysisRule.html
*/
toDeleteConfiguredTableAnalysisRule() {
return this.to('DeleteConfiguredTableAnalysisRule');
}
/**
* Grants permission to remove a configured table association from a collaboration
*
* Access Level: Write
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_DeleteConfiguredTableAssociation.html
*/
toDeleteConfiguredTableAssociation() {
return this.to('DeleteConfiguredTableAssociation');
}
/**
* Grants permission to delete members from a collaboration
*
* Access Level: Write
*
* Dependent actions:
* - cleanrooms-ml:DeleteConfiguredAudienceModelPolicy
* - cleanrooms-ml:GetConfiguredAudienceModelPolicy
* - cleanrooms-ml:PutConfiguredAudienceModelPolicy
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_DeleteMember.html
*/
toDeleteMember() {
return this.to('DeleteMember');
}
/**
* Grants permission to leave collaborations by deleting a membership
*
* Access Level: Write
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_DeleteMembership.html
*/
toDeleteMembership() {
return this.to('DeleteMembership');
}
/**
* Grants permission to delete an existing privacy budget template
*
* Access Level: Write
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_DeletePrivacyBudgetTemplate.html
*/
toDeletePrivacyBudgetTemplate() {
return this.to('DeletePrivacyBudgetTemplate');
}
/**
* Grants permission to view details for an analysis template
*
* Access Level: Read
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_GetAnalysisTemplate.html
*/
toGetAnalysisTemplate() {
return this.to('GetAnalysisTemplate');
}
/**
* Grants permission to view details for a collaboration
*
* Access Level: Read
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_GetCollaboration.html
*/
toGetCollaboration() {
return this.to('GetCollaboration');
}
/**
* Grants permission to view details for an analysis template within a collaboration
*
* Access Level: Read
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_GetCollaborationAnalysisTemplate.html
*/
toGetCollaborationAnalysisTemplate() {
return this.to('GetCollaborationAnalysisTemplate');
}
/**
* Grants permission to view details for a configured audience model association within a collaboration
*
* Access Level: Read
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_GetCollaborationConfiguredAudienceModelAssociation.html
*/
toGetCollaborationConfiguredAudienceModelAssociation() {
return this.to('GetCollaborationConfiguredAudienceModelAssociation');
}
/**
* Grants permission to view details for a privacy budget template within a collaboration
*
* Access Level: Read
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_GetCollaborationPrivacyBudgetTemplate.html
*/
toGetCollaborationPrivacyBudgetTemplate() {
return this.to('GetCollaborationPrivacyBudgetTemplate');
}
/**
* Grants permission to view details for a configured audience model association
*
* Access Level: Read
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_GetConfiguredAudienceModelAssociation.html
*/
toGetConfiguredAudienceModelAssociation() {
return this.to('GetConfiguredAudienceModelAssociation');
}
/**
* Grants permission to view details for a configured table
*
* Access Level: Read
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_GetConfiguredTable.html
*/
toGetConfiguredTable() {
return this.to('GetConfiguredTable');
}
/**
* Grants permission to view analysis rules for a configured table
*
* Access Level: Read
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_GetConfiguredTableAnalysisRule.html
*/
toGetConfiguredTableAnalysisRule() {
return this.to('GetConfiguredTableAnalysisRule');
}
/**
* Grants permission to view details for a configured table association
*
* Access Level: Read
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_GetConfiguredTableAssociation.html
*/
toGetConfiguredTableAssociation() {
return this.to('GetConfiguredTableAssociation');
}
/**
* Grants permission to view details about a membership
*
* Access Level: Read
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_GetMembership.html
*/
toGetMembership() {
return this.to('GetMembership');
}
/**
* Grants permission to view details for a privacy budget template
*
* Access Level: Read
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_GetPrivacyBudgetTemplate.html
*/
toGetPrivacyBudgetTemplate() {
return this.to('GetPrivacyBudgetTemplate');
}
/**
* Grants permission to view a protected query
*
* Access Level: Read
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_GetProtectedQuery.html
*/
toGetProtectedQuery() {
return this.to('GetProtectedQuery');
}
/**
* Grants permission to view details for a schema
*
* Access Level: Read
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_GetSchema.html
*/
toGetSchema() {
return this.to('GetSchema');
}
/**
* Grants permission to view analysis rules associated with a schema
*
* Access Level: Read
*
* Dependent actions:
* - cleanrooms:GetSchema
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_GetSchemaAnalysisRule.html
*/
toGetSchemaAnalysisRule() {
return this.to('GetSchemaAnalysisRule');
}
/**
* Grants permission to list available analysis templates
*
* Access Level: List
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_ListAnalysisTemplates.html
*/
toListAnalysisTemplates() {
return this.to('ListAnalysisTemplates');
}
/**
* Grants permission to list available analysis templates within a collaboration
*
* Access Level: List
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_ListCollaborationAnalysisTemplates.html
*/
toListCollaborationAnalysisTemplates() {
return this.to('ListCollaborationAnalysisTemplates');
}
/**
* Grants permission to list available configured audience model association within a collaboration
*
* Access Level: List
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_ListCollaborationConfiguredAudienceModelAssociations.html
*/
toListCollaborationConfiguredAudienceModelAssociations() {
return this.to('ListCollaborationConfiguredAudienceModelAssociations');
}
/**
* Grants permission to list available privacy budget templates within a collaboration
*
* Access Level: List
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_ListCollaborationPrivacyBudgetTemplates.html
*/
toListCollaborationPrivacyBudgetTemplates() {
return this.to('ListCollaborationPrivacyBudgetTemplates');
}
/**
* Grants permission to list privacy budgets within a collaboration
*
* Access Level: List
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_ListCollaborationPrivacyBudgets.html
*/
toListCollaborationPrivacyBudgets() {
return this.to('ListCollaborationPrivacyBudgets');
}
/**
* Grants permission to list available collaborations
*
* Access Level: List
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_ListCollaborations.html
*/
toListCollaborations() {
return this.to('ListCollaborations');
}
/**
* Grants permission to list available configured audience model associations for a membership
*
* Access Level: List
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_ListConfiguredAudienceModelAssociations.html
*/
toListConfiguredAudienceModelAssociations() {
return this.to('ListConfiguredAudienceModelAssociations');
}
/**
* Grants permission to list available configured table associations for a membership
*
* Access Level: List
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_ListConfiguredTableAssociations.html
*/
toListConfiguredTableAssociations() {
return this.to('ListConfiguredTableAssociations');
}
/**
* Grants permission to list available configured tables
*
* Access Level: List
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_ListConfiguredTables.html
*/
toListConfiguredTables() {
return this.to('ListConfiguredTables');
}
/**
* Grants permission to list the members of a collaboration
*
* Access Level: List
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_ListMembers.html
*/
toListMembers() {
return this.to('ListMembers');
}
/**
* Grants permission to list available memberships
*
* Access Level: List
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_ListMemberships.html
*/
toListMemberships() {
return this.to('ListMemberships');
}
/**
* Grants permission to list available privacy budget templates
*
* Access Level: List
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_ListPrivacyBudgetTemplates.html
*/
toListPrivacyBudgetTemplates() {
return this.to('ListPrivacyBudgetTemplates');
}
/**
* Grants permission to list available privacy budgets
*
* Access Level: List
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_ListPrivacyBudgets.html
*/
toListPrivacyBudgets() {
return this.to('ListPrivacyBudgets');
}
/**
* Grants permission to list protected queries
*
* Access Level: List
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_ListProtectedQueries.html
*/
toListProtectedQueries() {
return this.to('ListProtectedQueries');
}
/**
* Grants permission to view available schemas for a collaboration
*
* Access Level: List
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_ListSchemas.html
*/
toListSchemas() {
return this.to('ListSchemas');
}
/**
* Grants permission to list tags for a resource
*
* Access Level: List
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_ListTagsForResource.html
*/
toListTagsForResource() {
return this.to('ListTagsForResource');
}
/**
* Grants permission to preview privacy budget template settings
*
* Access Level: Read
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_PreviewPrivacyImpact.html
*/
toPreviewPrivacyImpact() {
return this.to('PreviewPrivacyImpact');
}
/**
* Grants permission to start protected queries
*
* Access Level: Write
*
* Dependent actions:
* - cleanrooms:GetCollaborationAnalysisTemplate
* - cleanrooms:GetSchema
* - s3:GetBucketLocation
* - s3:ListBucket
* - s3:PutObject
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_StartProtectedQuery.html
*/
toStartProtectedQuery() {
return this.to('StartProtectedQuery');
}
/**
* Grants permission to tag a resource
*
* Access Level: Tagging
*
* Possible conditions:
* - .ifAwsTagKeys()
* - .ifAwsRequestTag()
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_TagResource.html
*/
toTagResource() {
return this.to('TagResource');
}
/**
* Grants permission to untag a resource
*
* Access Level: Tagging
*
* Possible conditions:
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_UntagResource.html
*/
toUntagResource() {
return this.to('UntagResource');
}
/**
* Grants permission to update details of the analysis template
*
* Access Level: Write
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_UpdateAnalysisTemplate.html
*/
toUpdateAnalysisTemplate() {
return this.to('UpdateAnalysisTemplate');
}
/**
* Grants permission to update details of the collaboration
*
* Access Level: Write
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_UpdateCollaboration.html
*/
toUpdateCollaboration() {
return this.to('UpdateCollaboration');
}
/**
* Grants permission to update a configured audience model association
*
* Access Level: Write
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_UpdateConfiguredAudienceModelAssociation.html
*/
toUpdateConfiguredAudienceModelAssociation() {
return this.to('UpdateConfiguredAudienceModelAssociation');
}
/**
* Grants permission to update an existing configured table
*
* Access Level: Write
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_UpdateConfiguredTable.html
*/
toUpdateConfiguredTable() {
return this.to('UpdateConfiguredTable');
}
/**
* Grants permission to update analysis rules for a configured table
*
* Access Level: Write
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_UpdateConfiguredTableAnalysisRule.html
*/
toUpdateConfiguredTableAnalysisRule() {
return this.to('UpdateConfiguredTableAnalysisRule');
}
/**
* Grants permission to update a configured table association
*
* Access Level: Write
*
* Dependent actions:
* - iam:PassRole
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_UpdateConfiguredTableAssociation.html
*/
toUpdateConfiguredTableAssociation() {
return this.to('UpdateConfiguredTableAssociation');
}
/**
* Grants permission to update details of a membership
*
* Access Level: Write
*
* Dependent actions:
* - iam:PassRole
* - logs:CreateLogDelivery
* - logs:CreateLogGroup
* - logs:DeleteLogDelivery
* - logs:DescribeLogGroups
* - logs:DescribeResourcePolicies
* - logs:GetLogDelivery
* - logs:ListLogDeliveries
* - logs:PutResourcePolicy
* - logs:UpdateLogDelivery
* - s3:GetBucketLocation
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_UpdateMembership.html
*/
toUpdateMembership() {
return this.to('UpdateMembership');
}
/**
* Grants permission to update details of the privacy budget template
*
* Access Level: Write
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_UpdatePrivacyBudgetTemplate.html
*/
toUpdatePrivacyBudgetTemplate() {
return this.to('UpdatePrivacyBudgetTemplate');
}
/**
* Grants permission to update protected queries
*
* Access Level: Write
*
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_UpdateProtectedQuery.html
*/
toUpdateProtectedQuery() {
return this.to('UpdateProtectedQuery');
}
/**
* Adds a resource of type analysistemplate to the statement
*
* https://docs.aws.amazon.com/clean-rooms/latest/userguide/security-iam.html
*
* @param membershipId - Identifier for the membershipId.
* @param analysisTemplateId - Identifier for the analysisTemplateId.
* @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()
*/
onAnalysistemplate(membershipId, analysisTemplateId, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:cleanrooms:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:membership/${membershipId}/analysistemplate/${analysisTemplateId}`);
}
/**
* Adds a resource of type collaboration to the statement
*
* https://docs.aws.amazon.com/clean-rooms/latest/userguide/security-iam.html
*
* @param collaborationId - Identifier for the collaborationId.
* @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()
*/
onCollaboration(collaborationId, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:cleanrooms:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:collaboration/${collaborationId}`);
}
/**
* Adds a resource of type configuredaudiencemodelassociation to the statement
*
* https://docs.aws.amazon.com/clean-rooms/latest/userguide/security-iam.html
*
* @param membershipId - Identifier for the membershipId.
* @param configuredAudienceModelAssociationId - Identifier for the configuredAudienceModelAssociationId.
* @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()
*/
onConfiguredaudiencemodelassociation(membershipId, configuredAudienceModelAssociationId, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:cleanrooms:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:membership/${membershipId}/configuredaudiencemodelassociation/${configuredAudienceModelAssociationId}`);
}
/**
* Adds a resource of type configuredtable to the statement
*
* https://docs.aws.amazon.com/clean-rooms/latest/userguide/security-iam.html
*
* @param configuredTableId - Identifier for the configuredTableId.
* @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()
*/
onConfiguredtable(configuredTableId, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:cleanrooms:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:configuredtable/${configuredTableId}`);
}
/**
* Adds a resource of type configuredtableassociation to the statement
*
* https://docs.aws.amazon.com/clean-rooms/latest/userguide/security-iam.html
*
* @param membershipId - Identifier for the membershipId.
* @param configuredTableAssociationId - Identifier for the configuredTableAssociationId.
* @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()
*/
onConfiguredtableassociation(membershipId, configuredTableAssociationId, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:cleanrooms:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:membership/${membershipId}/configuredtableassociation/${configuredTableAssociationId}`);
}
/**
* Adds a resource of type membership to the statement
*
* https://docs.aws.amazon.com/clean-rooms/latest/userguide/security-iam.html
*
* @param membershipId - Identifier for the membershipId.
* @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()
*/
onMembership(membershipId, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:cleanrooms:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:membership/${membershipId}`);
}
/**
* Adds a resource of type privacybudgettemplate to the statement
*
* https://docs.aws.amazon.com/clean-rooms/latest/userguide/security-iam.html
*
* @param membershipId - Identifier for the membershipId.
* @param privacyBudgetTemplateId - Identifier for the privacyBudgetTemplateId.
* @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()
*/
onPrivacybudgettemplate(membershipId, privacyBudgetTemplateId, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:cleanrooms:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:membership/${membershipId}/privacybudgettemplate/${privacyBudgetTemplateId}`);
}
/**
* Filters access by the tags that are passed in the request
*
* https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requesttag
*
* Applies to actions:
* - .toCreateAnalysisTemplate()
* - .toCreateCollaboration()
* - .toCreateConfiguredAudienceModelAssociation()
* - .toCreateConfiguredTable()
* - .toCreateConfiguredTableAssociation()
* - .toCreateMembership()
* - .toCreatePrivacyBudgetTemplate()
* - .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 tags associated with the resource
*
* https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourcetag
*
* Applies to actions:
* - .toCreateAnalysisTemplate()
* - .toCreateCollaboration()
* - .toCreateConfiguredAudienceModelAssociation()
* - .toCreateConfiguredTable()
* - .toCreateConfiguredTableAssociation()
* - .toCreateMembership()
* - .toCreatePrivacyBudgetTemplate()
*
* Applies to resource types:
* - analysistemplate
* - collaboration
* - configuredaudiencemodelassociation
* - configuredtable
* - configuredtableassociation
* - membership
* - privacybudgettemplate
*
* @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 tag keys that are passed in the request
*
* https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys
*
* Applies to actions:
* - .toCreateAnalysisTemplate()
* - .toCreateCollaboration()
* - .toCreateConfiguredAudienceModelAssociation()
* - .toCreateConfiguredTable()
* - .toCreateConfiguredTableAssociation()
* - .toCreateMembership()
* - .toCreatePrivacyBudgetTemplate()
* - .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');
}
/**
* Statement provider for service [cleanrooms](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscleanrooms.html).
*
*/
constructor(props) {
super(props);
this.servicePrefix = 'cleanrooms';
this.accessLevelList = {
Read: [
'BatchGetCollaborationAnalysisTemplate',
'BatchGetSchema',
'BatchGetSchemaAnalysisRule',
'GetAnalysisTemplate',
'GetCollaboration',
'GetCollaborationAnalysisTemplate',
'GetCollaborationConfiguredAudienceModelAssociation',
'GetCollaborationPrivacyBudgetTemplate',
'GetConfiguredAudienceModelAssociation',
'GetConfiguredTable',
'GetConfiguredTableAnalysisRule',
'GetConfiguredTableAssociation',
'GetMembership',
'GetPrivacyBudgetTemplate',
'GetProtectedQuery',
'GetSchema',
'GetSchemaAnalysisRule',
'PreviewPrivacyImpact'
],
Write: [
'CreateAnalysisTemplate',
'CreateCollaboration',
'CreateConfiguredAudienceModelAssociation',
'CreateConfiguredTable',
'CreateConfiguredTableAnalysisRule',
'CreateConfiguredTableAssociation',
'CreateMembership',
'CreatePrivacyBudgetTemplate',
'DeleteAnalysisTemplate',
'DeleteCollaboration',
'DeleteConfiguredAudienceModelAssociation',
'DeleteConfiguredTable',
'DeleteConfiguredTableAnalysisRule',
'DeleteConfiguredTableAssociation',
'DeleteMember',
'DeleteMembership',
'DeletePrivacyBudgetTemplate',
'StartProtectedQuery',
'UpdateAnalysisTemplate',
'UpdateCollaboration',
'UpdateConfiguredAudienceModelAssociation',
'UpdateConfiguredTable',
'UpdateConfiguredTableAnalysisRule',
'UpdateConfiguredTableAssociation',
'UpdateMembership',
'UpdatePrivacyBudgetTemplate',
'UpdateProtectedQuery'
],
List: [
'ListAnalysisTemplates',
'ListCollaborationAnalysisTemplates',
'ListCollaborationConfiguredAudienceModelAssociations',
'ListCollaborationPrivacyBudgetTemplates',
'ListCollaborationPrivacyBudgets',
'ListCollaborations',
'ListConfiguredAudienceModelAssociations',
'ListConfiguredTableAssociations',
'ListConfiguredTables',
'ListMembers',
'ListMemberships',
'ListPrivacyBudgetTemplates',
'ListPrivacyBudgets',
'ListProtectedQueries',
'ListSchemas',
'ListTagsForResource'
],
Tagging: [
'TagResource',
'UntagResource'
]
};
}
}
exports.Cleanrooms = Cleanrooms;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYW5yb29tcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNsZWFucm9vbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseUNBQXlEO0FBR3pEOzs7O0dBSUc7QUFDSCxNQUFhLFVBQVcsU0FBUSx3QkFBZTtJQUc3Qzs7Ozs7Ozs7O09BU0c7SUFDSSx1Q0FBdUM7UUFDNUMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHVDQUF1QyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNJLGdCQUFnQjtRQUNyQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksNEJBQTRCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSx3QkFBd0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLHFCQUFxQjtRQUMxQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSSwwQ0FBMEM7UUFDL0MsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLDBDQUEwQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0ksdUJBQXVCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxtQ0FBbUM7UUFDeEMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLG1DQUFtQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNJLGtDQUFr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Q2xCLGtDQUFrQztnQkFDbEMsb0RBQW9EO2dCQUNwRCx1Q0FBdUM7Z0JBQ3ZDLHVDQUF1QztnQkFDdkMsb0JBQW9CO2dCQUNwQixnQ0FBZ0M7Z0JBQ2hDLCtCQUErQjtnQkFDL0IsZUFBZTtnQkFDZiwwQkFBMEI7Z0JBQzFCLG1CQUFtQjtnQkFDbkIsV0FBVztnQkFDWCx1QkFBdUI7Z0JBQ3ZCLHNCQUFzQjthQUN2QjtZQUNELEtBQUssRUFBRTtnQkFDTCx3QkFBd0I7Z0JBQ3hCLHFCQUFxQjtnQkFDckIsMENBQTBDO2dCQUMxQyx1QkFBdUI7Z0JBQ3ZCLG1DQUFtQztnQkFDbkMsa0NBQWtDO2dCQUNsQyxrQkFBa0I7Z0JBQ2xCLDZCQUE2QjtnQkFDN0Isd0JBQXdCO2dCQUN4QixxQkFBcUI7Z0JBQ3JCLDBDQUEwQztnQkFDMUMsdUJBQXVCO2dCQUN2QixtQ0FBbUM7Z0JBQ25DLGtDQUFrQztnQkFDbEMsY0FBYztnQkFDZCxrQkFBa0I7Z0JBQ2xCLDZCQUE2QjtnQkFDN0IscUJBQXFCO2dCQUNyQix3QkFBd0I7Z0JBQ3hCLHFCQUFxQjtnQkFDckIsMENBQTBDO2dCQUMxQyx1QkFBdUI7Z0JBQ3ZCLG1DQUFtQztnQkFDbkMsa0NBQWtDO2dCQUNsQyxrQkFBa0I7Z0JBQ2xCLDZCQUE2QjtnQkFDN0Isc0JBQXNCO2FBQ3ZCO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLHVCQUF1QjtnQkFDdkIsb0NBQW9DO2dCQUNwQyxzREFBc0Q7Z0JBQ3RELHlDQUF5QztnQkFDekMsaUNBQWlDO2dCQUNqQyxvQkFBb0I7Z0JBQ3BCLHlDQUF5QztnQkFDekMsaUNBQWlDO2dCQUNqQyxzQkFBc0I7Z0JBQ3RCLGFBQWE7Z0JBQ2IsaUJBQWlCO2dCQUNqQiw0QkFBNEI7Z0JBQzVCLG9CQUFvQjtnQkFDcEIsc0JBQXNCO2dCQUN0QixhQUFhO2dCQUNiLHFCQUFxQjthQUN0QjtZQUNELE9BQU8sRUFBRTtnQkFDUCxhQUFhO2dCQUNiLGVBQWU7YUFDaEI7U0FDRixDQUFDO0lBZ05GLENBQUM7Q0FDRjtBQXppQ0QsZ0NBeWlDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjY2Vzc0xldmVsTGlzdCB9IGZyb20gJy4uLy4uL3NoYXJlZC9hY2Nlc3MtbGV2ZWwnO1xuaW1wb3J0IHsgUG9saWN5U3RhdGVtZW50LCBPcGVyYXRvciB9IGZyb20gJy4uLy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBhd3NfaWFtIGFzIGlhbSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuXG4vKipcbiAqIFN0YXRlbWVudCBwcm92aWRlciBmb3Igc2VydmljZSBbY2xlYW5yb29tc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NlcnZpY2