cdk-iam-floyd
Version:
AWS IAM policy statement generator with fluent interface for AWS CDK
1,027 lines • 98.1 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Profile = void 0;
const shared_1 = require("../../shared");
/**
* Statement provider for service [profile](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonconnectcustomerprofiles.html).
*
* @param sid [SID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html) of the statement
*/
class Profile extends shared_1.PolicyStatement {
/**
* Grants permission to add a profile key
*
* Access Level: Write
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_AddProfileKey.html
*/
toAddProfileKey() {
return this.to('AddProfileKey');
}
/**
* Grants permission to retrieve a calculated attribute for the specific profiles in the domain
*
* Access Level: Read
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_BatchGetCalculatedAttributeForProfile.html
*/
toBatchGetCalculatedAttributeForProfile() {
return this.to('BatchGetCalculatedAttributeForProfile');
}
/**
* Grants permission to get profiles in the domain
*
* Access Level: Read
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_BatchGetProfile.html
*/
toBatchGetProfile() {
return this.to('BatchGetProfile');
}
/**
* Grants permission to create a calculated attribute definition in the domain
*
* Access Level: Write
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_CreateCalculatedAttributeDefinition.html
*/
toCreateCalculatedAttributeDefinition() {
return this.to('CreateCalculatedAttributeDefinition');
}
/**
* Grants permission to create a Domain
*
* Access Level: Write
*
* Dependent actions:
* - iam:CreateServiceLinkedRole
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_CreateDomain.html
*/
toCreateDomain() {
return this.to('CreateDomain');
}
/**
* Grants permission to put an event stream in a domain
*
* Access Level: Write
*
* Dependent actions:
* - iam:PutRolePolicy
* - kinesis:DescribeStreamSummary
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_CreateEventStream.html
*/
toCreateEventStream() {
return this.to('CreateEventStream');
}
/**
* Grants permission to create an event trigger in the domain
*
* Access Level: Write
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_CreateEventTrigger.html
*/
toCreateEventTrigger() {
return this.to('CreateEventTrigger');
}
/**
* Grants permission to create an integration workflow in a domain
*
* Access Level: Write
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_CreateIntegrationWorkflow.html
*/
toCreateIntegrationWorkflow() {
return this.to('CreateIntegrationWorkflow');
}
/**
* Grants permission to create a profile in the domain
*
* Access Level: Write
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_CreateProfile.html
*/
toCreateProfile() {
return this.to('CreateProfile');
}
/**
* Grants permission to create a segment definition in the domain
*
* Access Level: Write
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_CreateSegmentDefinition.html
*/
toCreateSegmentDefinition() {
return this.to('CreateSegmentDefinition');
}
/**
* Grants permission to create a segment estimate in the domain
*
* Access Level: Write
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_CreateSegmentEstimate.html
*/
toCreateSegmentEstimate() {
return this.to('CreateSegmentEstimate');
}
/**
* Grants permission to create a segment snapshot in the domain
*
* Access Level: Write
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_CreateSegmentSnapshot.html
*/
toCreateSegmentSnapshot() {
return this.to('CreateSegmentSnapshot');
}
/**
* Grants permission to create a snapshot in the domain
*
* Access Level: Write
*/
toCreateSnapshot() {
return this.to('CreateSnapshot');
}
/**
* Grants permission to delete a calculated attribute definition in the domain
*
* Access Level: Write
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_DeleteCalculatedAttributeDefinition.html
*/
toDeleteCalculatedAttributeDefinition() {
return this.to('DeleteCalculatedAttributeDefinition');
}
/**
* Grants permission to delete a Domain
*
* Access Level: Write
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_DeleteDomain.html
*/
toDeleteDomain() {
return this.to('DeleteDomain');
}
/**
* Grants permission to delete an event stream in a domain
*
* Access Level: Write
*
* Dependent actions:
* - iam:DeleteRolePolicy
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_DeleteEventStream.html
*/
toDeleteEventStream() {
return this.to('DeleteEventStream');
}
/**
* Grants permission to delete an event trigger in the domain
*
* Access Level: Write
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_DeleteEventTrigger.html
*/
toDeleteEventTrigger() {
return this.to('DeleteEventTrigger');
}
/**
* Grants permission to delete a integration in a domain
*
* Access Level: Write
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_DeleteIntegration.html
*/
toDeleteIntegration() {
return this.to('DeleteIntegration');
}
/**
* Grants permission to delete a profile
*
* Access Level: Write
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_DeleteProfile.html
*/
toDeleteProfile() {
return this.to('DeleteProfile');
}
/**
* Grants permission to delete a profile key
*
* Access Level: Write
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_DeleteProfileKey.html
*/
toDeleteProfileKey() {
return this.to('DeleteProfileKey');
}
/**
* Grants permission to delete a profile object
*
* Access Level: Write
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_DeleteProfileObject.html
*/
toDeleteProfileObject() {
return this.to('DeleteProfileObject');
}
/**
* Grants permission to delete a specific profile object type in the domain
*
* Access Level: Write
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_DeleteProfileObjectType.html
*/
toDeleteProfileObjectType() {
return this.to('DeleteProfileObjectType');
}
/**
* Grants permission to delete a segment definition in the domain
*
* Access Level: Write
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_DeleteSegmentDefinition.html
*/
toDeleteSegmentDefinition() {
return this.to('DeleteSegmentDefinition');
}
/**
* Grants permission to delete a workflow in a domain
*
* Access Level: Write
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_DeleteWorkflow.html
*/
toDeleteWorkflow() {
return this.to('DeleteWorkflow');
}
/**
* Grants permission to auto detect object type
*
* Access Level: Read
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_DetectProfileObjectType.html
*/
toDetectProfileObjectType() {
return this.to('DetectProfileObjectType');
}
/**
* Grants permission to get a preview of auto merging in a domain
*
* Access Level: Read
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetAutoMergingPreview.html
*/
toGetAutoMergingPreview() {
return this.to('GetAutoMergingPreview');
}
/**
* Grants permission to get a calculated attribute definition in the domain
*
* Access Level: Read
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetCalculatedAttributeDefinition.html
*/
toGetCalculatedAttributeDefinition() {
return this.to('GetCalculatedAttributeDefinition');
}
/**
* Grants permission to retrieve a calculated attribute for a specific profile in the domain
*
* Access Level: Read
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetCalculatedAttributeForProfile.html
*/
toGetCalculatedAttributeForProfile() {
return this.to('GetCalculatedAttributeForProfile');
}
/**
* Grants permission to get a specific domain in an account
*
* Access Level: Read
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetDomain.html
*/
toGetDomain() {
return this.to('GetDomain');
}
/**
* Grants permission to get a specific event stream in a domain
*
* Access Level: Read
*
* Dependent actions:
* - kinesis:DescribeStreamSummary
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetEventStream.html
*/
toGetEventStream() {
return this.to('GetEventStream');
}
/**
* Grants permission to get an event trigger in the domain
*
* Access Level: Read
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetEventTrigger.html
*/
toGetEventTrigger() {
return this.to('GetEventTrigger');
}
/**
* Grants permission to get an identity resolution job in a domain
*
* Access Level: Read
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetIdentityResolutionJob.html
*/
toGetIdentityResolutionJob() {
return this.to('GetIdentityResolutionJob');
}
/**
* Grants permission to get a specific integrations in a domain
*
* Access Level: Read
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetIntegration.html
*/
toGetIntegration() {
return this.to('GetIntegration');
}
/**
* Grants permission to get profile matches in a domain
*
* Access Level: List
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetMatches.html
*/
toGetMatches() {
return this.to('GetMatches');
}
/**
* Grants permission to get a specific profile object type in the domain
*
* Access Level: Read
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetProfileObjectType.html
*/
toGetProfileObjectType() {
return this.to('GetProfileObjectType');
}
/**
* Grants permission to get a specific object type template
*
* Access Level: Read
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetProfileObjectTypeTemplate.html
*/
toGetProfileObjectTypeTemplate() {
return this.to('GetProfileObjectTypeTemplate');
}
/**
* Grants permission to get a segment definition in the domain
*
* Access Level: Read
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetSegmentDefinition.html
*/
toGetSegmentDefinition() {
return this.to('GetSegmentDefinition');
}
/**
* Grants permission to get a segment estimate in the domain
*
* Access Level: Read
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetSegmentEstimate.html
*/
toGetSegmentEstimate() {
return this.to('GetSegmentEstimate');
}
/**
* Grants permission to determine if the given profiles are part of a segment in the domain
*
* Access Level: Read
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetSegmentMembership.html
*/
toGetSegmentMembership() {
return this.to('GetSegmentMembership');
}
/**
* Grants permission to get a segment snapshot in the domain
*
* Access Level: Read
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetSegmentSnapshot.html
*/
toGetSegmentSnapshot() {
return this.to('GetSegmentSnapshot');
}
/**
* Grants permission to get all the similar profiles in the domain
*
* Access Level: List
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetSimilarProfiles.html
*/
toGetSimilarProfiles() {
return this.to('GetSimilarProfiles');
}
/**
* Grants permission to get a snapshot in the domain
*
* Access Level: Read
*/
toGetSnapshot() {
return this.to('GetSnapshot');
}
/**
* Grants permission to get workflow details in a domain
*
* Access Level: Read
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetWorkflow.html
*/
toGetWorkflow() {
return this.to('GetWorkflow');
}
/**
* Grants permission to get workflow step details in a domain
*
* Access Level: Read
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetWorkflowSteps.html
*/
toGetWorkflowSteps() {
return this.to('GetWorkflowSteps');
}
/**
* Grants permission to list all the integrations in the account
*
* Access Level: List
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_ListAccountIntegrations.html
*/
toListAccountIntegrations() {
return this.to('ListAccountIntegrations');
}
/**
* Grants permission to list all the calculated attribute definitions in the domain
*
* Access Level: List
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_ListCalculatedAttributeDefinitions.html
*/
toListCalculatedAttributeDefinitions() {
return this.to('ListCalculatedAttributeDefinitions');
}
/**
* Grants permission to list all calculated attributes for a specific profile in the domain
*
* Access Level: List
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_ListCalculatedAttributesForProfile.html
*/
toListCalculatedAttributesForProfile() {
return this.to('ListCalculatedAttributesForProfile');
}
/**
* Grants permission to list all the domains in an account
*
* Access Level: List
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_ListDomains.html
*/
toListDomains() {
return this.to('ListDomains');
}
/**
* Grants permission to list all the event streams in a specific domain
*
* Access Level: List
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_ListEventStreams.html
*/
toListEventStreams() {
return this.to('ListEventStreams');
}
/**
* Grants permission to list all the event triggers in the domain
*
* Access Level: List
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_ListEventTriggers.html
*/
toListEventTriggers() {
return this.to('ListEventTriggers');
}
/**
* Grants permission to list identity resolution jobs in a domain
*
* Access Level: List
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_ListIdentityResolutionJobs.html
*/
toListIdentityResolutionJobs() {
return this.to('ListIdentityResolutionJobs');
}
/**
* Grants permission to list all the integrations in a specific domain
*
* Access Level: List
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_ListIntegrations.html
*/
toListIntegrations() {
return this.to('ListIntegrations');
}
/**
* Grants permission to list all the attributes of a specific object type in the domain
*
* Access Level: List
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_ListObjectTypeAttributes.html
*/
toListObjectTypeAttributes() {
return this.to('ListObjectTypeAttributes');
}
/**
* Grants permission to list all the values of a profile attribute in the domain
*
* Access Level: List
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_ListProfileAttributeValues.html
*/
toListProfileAttributeValues() {
return this.to('ListProfileAttributeValues');
}
/**
* Grants permission to list all the profile object type templates in the account
*
* Access Level: List
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_ListProfileObjectTypeTemplates.html
*/
toListProfileObjectTypeTemplates() {
return this.to('ListProfileObjectTypeTemplates');
}
/**
* Grants permission to list all the profile object types in the domain
*
* Access Level: List
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_ListProfileObjectTypes.html
*/
toListProfileObjectTypes() {
return this.to('ListProfileObjectTypes');
}
/**
* Grants permission to list all the profile objects for a profile
*
* Access Level: List
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_ListProfileObjects.html
*/
toListProfileObjects() {
return this.to('ListProfileObjects');
}
/**
* Grants permission to list all the rule-based matching result in the domain
*
* Access Level: List
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_ListRuleBasedMatches.html
*/
toListRuleBasedMatches() {
return this.to('ListRuleBasedMatches');
}
/**
* Grants permission to list all the segment definitions in the domain
*
* Access Level: List
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_ListSegmentDefinitions.html
*/
toListSegmentDefinitions() {
return this.to('ListSegmentDefinitions');
}
/**
* Grants permission to list tags for a resource
*
* Access Level: Read
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_ListTagsForResource.html
*/
toListTagsForResource() {
return this.to('ListTagsForResource');
}
/**
* Grants permission to list all the workflows in a specific domain
*
* Access Level: List
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_ListWorkflows.html
*/
toListWorkflows() {
return this.to('ListWorkflows');
}
/**
* Grants permission to merge profiles in a domain
*
* Access Level: Write
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_MergeProfiles.html
*/
toMergeProfiles() {
return this.to('MergeProfiles');
}
/**
* Grants permission to put a integration in a domain
*
* Access Level: Write
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_PutIntegration.html
*/
toPutIntegration() {
return this.to('PutIntegration');
}
/**
* Grants permission to put an object for a profile
*
* Access Level: Write
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_PutProfileObject.html
*/
toPutProfileObject() {
return this.to('PutProfileObject');
}
/**
* Grants permission to put a specific profile object type in the domain
*
* Access Level: Write
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_PutProfileObjectType.html
*/
toPutProfileObjectType() {
return this.to('PutProfileObjectType');
}
/**
* Grants permission to search for profiles in a domain
*
* Access Level: Read
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_SearchProfiles.html
*/
toSearchProfiles() {
return this.to('SearchProfiles');
}
/**
* Grants permission to adds tags to a resource
*
* Access Level: Tagging
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_TagResource.html
*/
toTagResource() {
return this.to('TagResource');
}
/**
* Grants permission to remove tags from a resource
*
* Access Level: Tagging
*
* Possible conditions:
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_UntagResource.html
*/
toUntagResource() {
return this.to('UntagResource');
}
/**
* Grants permission to update a calculated attribute definition in the domain
*
* Access Level: Write
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_UpdateCalculatedAttributeDefinition.html
*/
toUpdateCalculatedAttributeDefinition() {
return this.to('UpdateCalculatedAttributeDefinition');
}
/**
* Grants permission to update a Domain
*
* Access Level: Write
*
* Dependent actions:
* - iam:CreateServiceLinkedRole
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_UpdateDomain.html
*/
toUpdateDomain() {
return this.to('UpdateDomain');
}
/**
* Grants permission to update an event trigger in the domain
*
* Access Level: Write
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_UpdateEventTrigger.html
*/
toUpdateEventTrigger() {
return this.to('UpdateEventTrigger');
}
/**
* Grants permission to update a profile in the domain
*
* Access Level: Write
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_UpdateProfile.html
*/
toUpdateProfile() {
return this.to('UpdateProfile');
}
/**
* Adds a resource of type domains to the statement
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/
*
* @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()
*/
onDomains(domainName, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:profile:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:domains/${domainName}`);
}
/**
* Adds a resource of type object-types to the statement
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/
*
* @param domainName - Identifier for the domainName.
* @param objectTypeName - Identifier for the objectTypeName.
* @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()
*/
onObjectTypes(domainName, objectTypeName, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:profile:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:domains/${domainName}/object-types/${objectTypeName}`);
}
/**
* Adds a resource of type integrations to the statement
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/
*
* @param domainName - Identifier for the domainName.
* @param uri - Identifier for the uri.
* @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()
*/
onIntegrations(domainName, uri, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:profile:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:domains/${domainName}/integrations/${uri}`);
}
/**
* Adds a resource of type event-streams to the statement
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/
*
* @param domainName - Identifier for the domainName.
* @param eventStreamName - Identifier for the eventStreamName.
* @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()
*/
onEventStreams(domainName, eventStreamName, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:profile:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:domains/${domainName}/event-streams/${eventStreamName}`);
}
/**
* Adds a resource of type calculated-attributes to the statement
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/
*
* @param domainName - Identifier for the domainName.
* @param calculatedAttributeName - Identifier for the calculatedAttributeName.
* @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()
*/
onCalculatedAttributes(domainName, calculatedAttributeName, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:profile:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:domains/${domainName}/calculated-attributes/${calculatedAttributeName}`);
}
/**
* Adds a resource of type segment-definitions to the statement
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/
*
* @param domainName - Identifier for the domainName.
* @param segmentDefinitionName - Identifier for the segmentDefinitionName.
* @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()
*/
onSegmentDefinitions(domainName, segmentDefinitionName, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:profile:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:domains/${domainName}/segment-definitions/${segmentDefinitionName}`);
}
/**
* Adds a resource of type event-triggers to the statement
*
* https://docs.aws.amazon.com/customerprofiles/latest/APIReference/
*
* @param domainName - Identifier for the domainName.
* @param eventTriggerName - Identifier for the eventTriggerName.
* @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()
*/
onEventTriggers(domainName, eventTriggerName, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:profile:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:domains/${domainName}/event-triggers/${eventTriggerName}`);
}
/**
* Filters access by a key that is present in the request the user makes to the customer profile service
*
* https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-permissions.html#iam-contextkeys
*
* Applies to actions:
* - .toCreateCalculatedAttributeDefinition()
* - .toCreateDomain()
* - .toCreateEventStream()
* - .toCreateEventTrigger()
* - .toCreateIntegrationWorkflow()
* - .toCreateSegmentDefinition()
* - .toPutIntegration()
* - .toPutProfileObjectType()
* - .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 a tag key and value pair
*
* https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-permissions.html#iam-contextkeys
*
* Applies to resource types:
* - domains
* - object-types
* - integrations
* - event-streams
* - calculated-attributes
* - segment-definitions
* - event-triggers
*
* @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 list of all the tag key names present in the request the user makes to the customer profile service
*
* https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-permissions.html#iam-contextkeys
*
* Applies to actions:
* - .toCreateCalculatedAttributeDefinition()
* - .toCreateDomain()
* - .toCreateEventStream()
* - .toCreateEventTrigger()
* - .toCreateIntegrationWorkflow()
* - .toCreateSegmentDefinition()
* - .toPutIntegration()
* - .toPutProfileObjectType()
* - .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 [profile](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonconnectcustomerprofiles.html).
*
*/
constructor(props) {
super(props);
this.servicePrefix = 'profile';
this.accessLevelList = {
Write: [
'AddProfileKey',
'CreateCalculatedAttributeDefinition',
'CreateDomain',
'CreateEventStream',
'CreateEventTrigger',
'CreateIntegrationWorkflow',
'CreateProfile',
'CreateSegmentDefinition',
'CreateSegmentEstimate',
'CreateSegmentSnapshot',
'CreateSnapshot',
'DeleteCalculatedAttributeDefinition',
'DeleteDomain',
'DeleteEventStream',
'DeleteEventTrigger',
'DeleteIntegration',
'DeleteProfile',
'DeleteProfileKey',
'DeleteProfileObject',
'DeleteProfileObjectType',
'DeleteSegmentDefinition',
'DeleteWorkflow',
'MergeProfiles',
'PutIntegration',
'PutProfileObject',
'PutProfileObjectType',
'UpdateCalculatedAttributeDefinition',
'UpdateDomain',
'UpdateEventTrigger',
'UpdateProfile'
],
Read: [
'BatchGetCalculatedAttributeForProfile',
'BatchGetProfile',
'DetectProfileObjectType',
'GetAutoMergingPreview',
'GetCalculatedAttributeDefinition',
'GetCalculatedAttributeForProfile',
'GetDomain',
'GetEventStream',
'GetEventTrigger',
'GetIdentityResolutionJob',
'GetIntegration',
'GetProfileObjectType',
'GetProfileObjectTypeTemplate',
'GetSegmentDefinition',
'GetSegmentEstimate',
'GetSegmentMembership',
'GetSegmentSnapshot',
'GetSnapshot',
'GetWorkflow',
'GetWorkflowSteps',
'ListTagsForResource',
'SearchProfiles'
],
List: [
'GetMatches',
'GetSimilarProfiles',
'ListAccountIntegrations',
'ListCalculatedAttributeDefinitions',
'ListCalculatedAttributesForProfile',
'ListDomains',
'ListEventStreams',
'ListEventTriggers',
'ListIdentityResolutionJobs',
'ListIntegrations',
'ListObjectTypeAttributes',
'ListProfileAttributeValues',
'ListProfileObjectTypeTemplates',
'ListProfileObjectTypes',
'ListProfileObjects',
'ListRuleBasedMatches',
'ListSegmentDefinitions',
'ListWorkflows'
],
Tagging: [
'TagResource',
'UntagResource'
]
};
}
}
exports.Profile = Profile;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGN1c3RvbWVycHJvZmlsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjb25uZWN0Y3VzdG9tZXJwcm9maWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx5Q0FBeUQ7QUFHekQ7Ozs7R0FJRztBQUNILE1BQWEsT0FBUSxTQUFRLHdCQUFlO0lBRzFDOzs7Ozs7T0FNRztJQUNJLGVBQWU7UUFDcEIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSx1Q0FBdUM7UUFDNUMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHVDQUF1QyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLGlCQUFpQjtRQUN0QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0kscUNBQXFDO1FBQzFDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxjQUFjO1FBQ25CLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLG1CQUFtQjtRQUN4QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksb0JBQW9CO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSwyQkFBMkI7UUFDaEMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLDJCQUEyQixDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLGVBQWU7UUFD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ekIseUJBQXlCO2dCQUN6QixnQkFBZ0I7Z0JBQ2hCLGVBQWU7Z0JBQ2YsZ0JBQWdCO2dCQUNoQixrQkFBa0I7Z0JBQ2xCLHNCQUFzQjtnQkFDdEIscUNBQXFDO2dCQUNyQyxjQUFjO2dCQUNkLG9CQUFvQjtnQkFDcEIsZUFBZTthQUNoQjtZQUNELElBQUksRUFBRTtnQkFDSix1Q0FBdUM7Z0JBQ3ZDLGlCQUFpQjtnQkFDakIseUJBQXlCO2dCQUN6Qix1QkFBdUI7Z0JBQ3ZCLGtDQUFrQztnQkFDbEMsa0NBQWtDO2dCQUNsQyxXQUFXO2dCQUNYLGdCQUFnQjtnQkFDaEIsaUJBQWlCO2dCQUNqQiwwQkFBMEI7Z0JBQzFCLGdCQUFnQjtnQkFDaEIsc0JBQXNCO2dCQUN0Qiw4QkFBOEI7Z0JBQzlCLHNCQUFzQjtnQkFDdEIsb0JBQW9CO2dCQUNwQixzQkFBc0I7Z0JBQ3RCLG9CQUFvQjtnQkFDcEIsYUFBYTtnQkFDYixhQUFhO2dCQUNiLGtCQUFrQjtnQkFDbEIscUJBQXFCO2dCQUNyQixnQkFBZ0I7YUFDakI7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osWUFBWTtnQkFDWixvQkFBb0I7Z0JBQ3BCLHlCQUF5QjtnQkFDekIsb0NBQW9DO2dCQUNwQyxvQ0FBb0M7Z0JBQ3BDLGFBQWE7Z0JBQ2Isa0JBQWtCO2dCQUNsQixtQkFBbUI7Z0JBQ25CLDRCQUE0QjtnQkFDNUIsa0JBQWtCO2dCQUNsQiwwQkFBMEI7Z0JBQzFCLDRCQUE0QjtnQkFDNUIsZ0NBQWdDO2dCQUNoQyx3QkFBd0I7Z0JBQ3hCLG9CQUFvQjtnQkFDcEIsc0JBQXNCO2dCQUN0Qix3QkFBd0I7Z0JBQ3hCLGVBQWU7YUFDaEI7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AsYUFBYTtnQkFDYixlQUFlO2FBQ2hCO1NBQ0YsQ0FBQztJQTJNRixDQUFDO0NBQ0Y7QUEza0NELDBCQTJrQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY2Nlc3NMZXZlbExpc3QgfSBmcm9tICcuLi8uLi9zaGFyZWQvYWNjZXNzLWxldmVsJztcbmltcG9ydCB7IFBvbGljeVN0YXRlbWVudCwgT3BlcmF0b3IgfSBmcm9tI