cdk-iam-floyd
Version:
AWS IAM policy statement generator with fluent interface for AWS CDK
1,044 lines • 97.3 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Rekognition = void 0;
const shared_1 = require("../../shared");
/**
* Statement provider for service [rekognition](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html).
*
* @param sid [SID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html) of the statement
*/
class Rekognition extends shared_1.PolicyStatement {
/**
* Grants permission to associate multiple individual faces with a single user
*
* Access Level: Write
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_AssociateFaces.html
*/
toAssociateFaces() {
return this.to('AssociateFaces');
}
/**
* Grants permission to compare faces in the source input image with each face detected in the target input image
*
* Access Level: Read
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CompareFaces.html
*/
toCompareFaces() {
return this.to('CompareFaces');
}
/**
* Grants permission to copy an existing model version to a new model version
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CopyProjectVersion.html
*/
toCopyProjectVersion() {
return this.to('CopyProjectVersion');
}
/**
* Grants permission to create a collection in an AWS Region
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CreateCollection.html
*/
toCreateCollection() {
return this.to('CreateCollection');
}
/**
* Grants permission to create a new Amazon Rekognition Custom Labels dataset
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CreateDataset.html
*/
toCreateDataset() {
return this.to('CreateDataset');
}
/**
* Grants permission to create a face liveness session
*
* Access Level: Write
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CreateFaceLivenessSession.html
*/
toCreateFaceLivenessSession() {
return this.to('CreateFaceLivenessSession');
}
/**
* Grants permission to create an Amazon Rekognition Custom Labels project
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CreateProject.html
*/
toCreateProject() {
return this.to('CreateProject');
}
/**
* Grants permission to begin training a new version of a model
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CreateProjectVersion.html
*/
toCreateProjectVersion() {
return this.to('CreateProjectVersion');
}
/**
* Grants permission to create an Amazon Rekognition stream processor
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CreateStreamProcessor.html
*/
toCreateStreamProcessor() {
return this.to('CreateStreamProcessor');
}
/**
* Grants permission to create a new user in a collection using a unique user ID you provide
*
* Access Level: Write
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CreateUser.html
*/
toCreateUser() {
return this.to('CreateUser');
}
/**
* Grants permission to delete the specified collection
*
* Access Level: Write
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DeleteCollection.html
*/
toDeleteCollection() {
return this.to('DeleteCollection');
}
/**
* Grants permission to delete an existing Amazon Rekognition Custom Labels dataset
*
* Access Level: Write
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DeleteDataset.html
*/
toDeleteDataset() {
return this.to('DeleteDataset');
}
/**
* Grants permission to delete faces from a collection
*
* Access Level: Write
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DeleteFaces.html
*/
toDeleteFaces() {
return this.to('DeleteFaces');
}
/**
* Grants permission to delete a project
*
* Access Level: Write
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DeleteProject.html
*/
toDeleteProject() {
return this.to('DeleteProject');
}
/**
* Grants permission to delete a resource policy attached to a project
*
* Access Level: Write
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DeleteProjectPolicy.html
*/
toDeleteProjectPolicy() {
return this.to('DeleteProjectPolicy');
}
/**
* Grants permission to delete a model
*
* Access Level: Write
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DeleteProjectVersion.html
*/
toDeleteProjectVersion() {
return this.to('DeleteProjectVersion');
}
/**
* Grants permission to delete the specified stream processor
*
* Access Level: Write
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DeleteStreamProcessor.html
*/
toDeleteStreamProcessor() {
return this.to('DeleteStreamProcessor');
}
/**
* Grants permission to delete a user from a collection based on the provided user ID
*
* Access Level: Write
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DeleteUser.html
*/
toDeleteUser() {
return this.to('DeleteUser');
}
/**
* Grants permission to read details about a collection
*
* Access Level: Read
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DescribeCollection.html
*/
toDescribeCollection() {
return this.to('DescribeCollection');
}
/**
* Grants permission to describe an Amazon Rekognition Custom Labels dataset
*
* Access Level: Read
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DescribeDataset.html
*/
toDescribeDataset() {
return this.to('DescribeDataset');
}
/**
* Grants permission to list the versions of a model in an Amazon Rekognition Custom Labels project
*
* Access Level: Read
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DescribeProjectVersions.html
*/
toDescribeProjectVersions() {
return this.to('DescribeProjectVersions');
}
/**
* Grants permission to list Amazon Rekognition Custom Labels projects
*
* Access Level: Read
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DescribeProjects.html
*/
toDescribeProjects() {
return this.to('DescribeProjects');
}
/**
* Grants permission to get information about the specified stream processor
*
* Access Level: Read
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DescribeStreamProcessor.html
*/
toDescribeStreamProcessor() {
return this.to('DescribeStreamProcessor');
}
/**
* Grants permission to detect custom labels in a supplied image
*
* Access Level: Read
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DetectCustomLabels.html
*/
toDetectCustomLabels() {
return this.to('DetectCustomLabels');
}
/**
* Grants permission to detect human faces within an image provided as input
*
* Access Level: Read
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DetectFaces.html
*/
toDetectFaces() {
return this.to('DetectFaces');
}
/**
* Grants permission to detect instances of real-world labels within an image provided as input
*
* Access Level: Read
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DetectLabels.html
*/
toDetectLabels() {
return this.to('DetectLabels');
}
/**
* Grants permission to detect moderation labels within the input image
*
* Access Level: Read
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DetectModerationLabels.html
*/
toDetectModerationLabels() {
return this.to('DetectModerationLabels');
}
/**
* Grants permission to detect Personal Protective Equipment in the input image
*
* Access Level: Read
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DetectProtectiveEquipment.html
*/
toDetectProtectiveEquipment() {
return this.to('DetectProtectiveEquipment');
}
/**
* Grants permission to detect text in the input image and convert it into machine-readable text
*
* Access Level: Read
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DetectText.html
*/
toDetectText() {
return this.to('DetectText');
}
/**
* Grants permission to remove the association between a user ID and a face ID
*
* Access Level: Write
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DisassociateFaces.html
*/
toDisassociateFaces() {
return this.to('DisassociateFaces');
}
/**
* Grants permission to distribute the entries in a training dataset across the training dataset and the test dataset for a project
*
* Access Level: Write
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DistributeDatasetEntries.html
*/
toDistributeDatasetEntries() {
return this.to('DistributeDatasetEntries');
}
/**
* Grants permission to read the name, and additional information, of a celebrity
*
* Access Level: Read
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_GetCelebrityInfo.html
*/
toGetCelebrityInfo() {
return this.to('GetCelebrityInfo');
}
/**
* Grants permission to read the celebrity recognition results found in a stored video by an asynchronous celebrity recognition job
*
* Access Level: Read
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_GetCelebrityRecognition.html
*/
toGetCelebrityRecognition() {
return this.to('GetCelebrityRecognition');
}
/**
* Grants permission to read the content moderation analysis results found in a stored video by an asynchronous content moderation job
*
* Access Level: Read
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_GetContentModeration.html
*/
toGetContentModeration() {
return this.to('GetContentModeration');
}
/**
* Grants permission to read the faces detection results found in a stored video by an asynchronous face detection job
*
* Access Level: Read
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_GetFaceDetection.html
*/
toGetFaceDetection() {
return this.to('GetFaceDetection');
}
/**
* Grants permission to get results of a face liveness session
*
* Access Level: Read
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_GetFaceLivenessSessionResults.html
*/
toGetFaceLivenessSessionResults() {
return this.to('GetFaceLivenessSessionResults');
}
/**
* Grants permission to read the matching collection faces found in a stored video by an asynchronous face search job
*
* Access Level: Read
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_GetFaceSearch.html
*/
toGetFaceSearch() {
return this.to('GetFaceSearch');
}
/**
* Grants permission to read the label detected resuls found in a stored video by an asynchronous label detection job
*
* Access Level: Read
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_GetLabelDetection.html
*/
toGetLabelDetection() {
return this.to('GetLabelDetection');
}
/**
* Grants permission to read the reference to job results in S3 and additional information about a media analysis job
*
* Access Level: Read
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_GetMediaAnalysisJob.html
*/
toGetMediaAnalysisJob() {
return this.to('GetMediaAnalysisJob');
}
/**
* Grants permission to read the list of persons detected in a stored video by an asynchronous person tracking job
*
* Access Level: Read
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_GetPersonTracking.html
*/
toGetPersonTracking() {
return this.to('GetPersonTracking');
}
/**
* Grants permission to get the vdeo segments found in a stored video by an asynchronous segment detection job
*
* Access Level: Read
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_GetSegmentDetection.html
*/
toGetSegmentDetection() {
return this.to('GetSegmentDetection');
}
/**
* Grants permission to get the text found in a stored video by an asynchronous text detection job
*
* Access Level: Read
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_GetTextDetection.html
*/
toGetTextDetection() {
return this.to('GetTextDetection');
}
/**
* Grants permission to update an existing collection with faces detected in the input image
*
* Access Level: Write
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_IndexFaces.html
*/
toIndexFaces() {
return this.to('IndexFaces');
}
/**
* Grants permission to read the collection Id's in your account
*
* Access Level: Read
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_ListCollections.html
*/
toListCollections() {
return this.to('ListCollections');
}
/**
* Grants permission to list the dataset entries in an existing Amazon Rekognition Custom Labels dataset
*
* Access Level: Read
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_ListDatasetEntries.html
*/
toListDatasetEntries() {
return this.to('ListDatasetEntries');
}
/**
* Grants permission to list the labels in a dataset
*
* Access Level: Read
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_ListDatasetLabels.html
*/
toListDatasetLabels() {
return this.to('ListDatasetLabels');
}
/**
* Grants permission to read metadata for faces in the specificed collection
*
* Access Level: Read
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_ListFaces.html
*/
toListFaces() {
return this.to('ListFaces');
}
/**
* Grants permission to read the list of media analysis jobs
*
* Access Level: Read
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_ListMediaAnalysisJobs.html
*/
toListMediaAnalysisJobs() {
return this.to('ListMediaAnalysisJobs');
}
/**
* Grants permission to list the resource policies attached to a project
*
* Access Level: Read
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_ListProjectPolicies.html
*/
toListProjectPolicies() {
return this.to('ListProjectPolicies');
}
/**
* Grants permission to get a list of your stream processors
*
* Access Level: List
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_ListStreamProcessors.html
*/
toListStreamProcessors() {
return this.to('ListStreamProcessors');
}
/**
* Grants permission to return a list of tags associated with a resource
*
* Access Level: Read
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_ListTagsForResource.html
*/
toListTagsForResource() {
return this.to('ListTagsForResource');
}
/**
* Grants permission to list UserIds and the UserStatus
*
* Access Level: Read
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_ListUsers.html
*/
toListUsers() {
return this.to('ListUsers');
}
/**
* Grants permission to attach a resource policy to a project
*
* Access Level: Write
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_PutProjectPolicy.html
*/
toPutProjectPolicy() {
return this.to('PutProjectPolicy');
}
/**
* Grants permission to detect celebrities in the input image
*
* Access Level: Read
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_RecognizeCelebrities.html
*/
toRecognizeCelebrities() {
return this.to('RecognizeCelebrities');
}
/**
* Grants permission to search the specificed collection for the supplied face ID
*
* Access Level: Read
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_SearchFaces.html
*/
toSearchFaces() {
return this.to('SearchFaces');
}
/**
* Grants permission to search the specificed collection for the largest face in the input image
*
* Access Level: Read
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_SearchFacesByImage.html
*/
toSearchFacesByImage() {
return this.to('SearchFacesByImage');
}
/**
* Grants permission to search the specificed collection for user match result with given either face ID or user ID
*
* Access Level: Read
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_SearchUsers.html
*/
toSearchUsers() {
return this.to('SearchUsers');
}
/**
* Grants permission to search the specificed collection for user match result by using the largest face in the input image
*
* Access Level: Read
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_SearchUsersByImage.html
*/
toSearchUsersByImage() {
return this.to('SearchUsersByImage');
}
/**
* Grants permission to start the asynchronous recognition of celebrities in a stored video
*
* Access Level: Write
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_StartCelebrityRecognition.html
*/
toStartCelebrityRecognition() {
return this.to('StartCelebrityRecognition');
}
/**
* Grants permission to start asynchronous detection of explicit or suggestive adult content in a stored video
*
* Access Level: Write
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_StartContentModeration.html
*/
toStartContentModeration() {
return this.to('StartContentModeration');
}
/**
* Grants permission to start asynchronous detection of faces in a stored video
*
* Access Level: Write
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_StartFaceDetection.html
*/
toStartFaceDetection() {
return this.to('StartFaceDetection');
}
/**
* Grants permission to start streaming video for a face liveness session
*
* Access Level: Write
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_rekognitionstreaming_StartFaceLivenessSession.html
*/
toStartFaceLivenessSession() {
return this.to('StartFaceLivenessSession');
}
/**
* Grants permission to start an asynchronous search for faces in a collection that match the faces of persons detected in a stored video
*
* Access Level: Write
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_StartFaceSearch.html
*/
toStartFaceSearch() {
return this.to('StartFaceSearch');
}
/**
* Grants permission to start asynchronous detection of labels in a stored video
*
* Access Level: Write
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_StartLabelDetection.html
*/
toStartLabelDetection() {
return this.to('StartLabelDetection');
}
/**
* Grants permission to start a media analysis job
*
* Access Level: Write
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_StartMediaAnalysisJob.html
*/
toStartMediaAnalysisJob() {
return this.to('StartMediaAnalysisJob');
}
/**
* Grants permission to start the asynchronous tracking of persons in a stored video
*
* Access Level: Write
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_StartPersonTracking.html
*/
toStartPersonTracking() {
return this.to('StartPersonTracking');
}
/**
* Grants permission to start running a model version
*
* Access Level: Write
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_StartProjectVersion.html
*/
toStartProjectVersion() {
return this.to('StartProjectVersion');
}
/**
* Grants permission to start the asynchronous detection of segments in a stored video
*
* Access Level: Write
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_StartSegmentDetection.html
*/
toStartSegmentDetection() {
return this.to('StartSegmentDetection');
}
/**
* Grants permission to start running a stream processor
*
* Access Level: Write
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_StartStreamProcessor.html
*/
toStartStreamProcessor() {
return this.to('StartStreamProcessor');
}
/**
* Grants permission to start the asynchronous detection of text in a stored video
*
* Access Level: Write
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_StartTextDetection.html
*/
toStartTextDetection() {
return this.to('StartTextDetection');
}
/**
* Grants permission to stop a running model version
*
* Access Level: Write
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_StopProjectVersion.html
*/
toStopProjectVersion() {
return this.to('StopProjectVersion');
}
/**
* Grants permission to stop a running stream processor
*
* Access Level: Write
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_StopStreamProcessor.html
*/
toStopStreamProcessor() {
return this.to('StopStreamProcessor');
}
/**
* Grants permission to add one or more tags to a resource
*
* Access Level: Tagging
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_TagResource.html
*/
toTagResource() {
return this.to('TagResource');
}
/**
* Grants permission to remove one or more tags from a resource
*
* Access Level: Tagging
*
* Possible conditions:
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_UntagResource.html
*/
toUntagResource() {
return this.to('UntagResource');
}
/**
* Grants permission to add or update one or more JSON Lines (entries) in a dataset
*
* Access Level: Write
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_UpdateDatasetEntries.html
*/
toUpdateDatasetEntries() {
return this.to('UpdateDatasetEntries');
}
/**
* Grants permission to modify properties for a stream processor
*
* Access Level: Write
*
* https://docs.aws.amazon.com/rekognition/latest/APIReference/API_UpdateStreamProcessor.html
*/
toUpdateStreamProcessor() {
return this.to('UpdateStreamProcessor');
}
/**
* Adds a resource of type collection to the statement
*
* https://docs.aws.amazon.com/rekognition/latest/dg/collections.html
*
* @param collectionId - Identifier for the collectionId.
* @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()
*/
onCollection(collectionId, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:rekognition:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:collection/${collectionId}`);
}
/**
* Adds a resource of type streamprocessor to the statement
*
* https://docs.aws.amazon.com/rekognition/latest/dg/streaming-video.html
*
* @param streamprocessorId - Identifier for the streamprocessorId.
* @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()
*/
onStreamprocessor(streamprocessorId, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:rekognition:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:streamprocessor/${streamprocessorId}`);
}
/**
* Adds a resource of type project to the statement
*
* https://docs.aws.amazon.com/rekognition/latest/customlabels-dg/mp-create-project.html
*
* @param projectName - Identifier for the projectName.
* @param creationTimestamp - Identifier for the creationTimestamp.
* @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()
*/
onProject(projectName, creationTimestamp, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:rekognition:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:project/${projectName}/${creationTimestamp}`);
}
/**
* Adds a resource of type projectversion to the statement
*
* https://docs.aws.amazon.com/rekognition/latest/customlabels-dg/training-model.html
*
* @param projectName - Identifier for the projectName.
* @param versionName - Identifier for the versionName.
* @param creationTimestamp - Identifier for the creationTimestamp.
* @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()
*/
onProjectversion(projectName, versionName, creationTimestamp, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:rekognition:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:project/${projectName}/version/${versionName}/${creationTimestamp}`);
}
/**
* Adds a resource of type dataset to the statement
*
* https://docs.aws.amazon.com/rekognition/latest/customlabels-dg/creating-datasets.html
*
* @param projectName - Identifier for the projectName.
* @param datasetType - Identifier for the datasetType.
* @param creationTimestamp - Identifier for the creationTimestamp.
* @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()
*/
onDataset(projectName, datasetType, creationTimestamp, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:rekognition:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:project/${projectName}/dataset/${datasetType}/${creationTimestamp}`);
}
/**
* Filters access by 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:
* - .toCopyProjectVersion()
* - .toCreateCollection()
* - .toCreateDataset()
* - .toCreateProject()
* - .toCreateProjectVersion()
* - .toCreateStreamProcessor()
* - .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 tags associated with the resource
*
* https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourcetag
*
* Applies to resource types:
* - collection
* - streamprocessor
* - project
* - projectversion
* - dataset
*
* @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 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:
* - .toCopyProjectVersion()
* - .toCreateCollection()
* - .toCreateDataset()
* - .toCreateProject()
* - .toCreateProjectVersion()
* - .toCreateStreamProcessor()
* - .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 [rekognition](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html).
*
*/
constructor(props) {
super(props);
this.servicePrefix = 'rekognition';
this.accessLevelList = {
Write: [
'AssociateFaces',
'CopyProjectVersion',
'CreateCollection',
'CreateDataset',
'CreateFaceLivenessSession',
'CreateProject',
'CreateProjectVersion',
'CreateStreamProcessor',
'CreateUser',
'DeleteCollection',
'DeleteDataset',
'DeleteFaces',
'DeleteProject',
'DeleteProjectPolicy',
'DeleteProjectVersion',
'DeleteStreamProcessor',
'DeleteUser',
'DisassociateFaces',
'DistributeDatasetEntries',
'IndexFaces',
'PutProjectPolicy',
'StartCelebrityRecognition',
'StartContentModeration',
'StartFaceDetection',
'StartFaceLivenessSession',
'StartFaceSearch',
'StartLabelDetection',
'StartMediaAnalysisJob',
'StartPersonTracking',
'StartProjectVersion',
'StartSegmentDetection',
'StartStreamProcessor',
'StartTextDetection',
'StopProjectVersion',
'StopStreamProcessor',
'UpdateDatasetEntries',
'UpdateStreamProcessor'
],
Read: [
'CompareFaces',
'DescribeCollection',
'DescribeDataset',
'DescribeProjectVersions',
'DescribeProjects',
'DescribeStreamProcessor',
'DetectCustomLabels',
'DetectFaces',
'DetectLabels',
'DetectModerationLabels',
'DetectProtectiveEquipment',
'DetectText',
'GetCelebrityInfo',
'GetCelebrityRecognition',
'GetContentModeration',
'GetFaceDetection',
'GetFaceLivenessSessionResults',
'GetFaceSearch',
'GetLabelDetection',
'GetMediaAnalysisJob',
'GetPersonTracking',
'GetSegmentDetection',
'GetTextDetection',
'ListCollections',
'ListDatasetEntries',
'ListDatasetLabels',
'ListFaces',
'ListMediaAnalysisJobs',
'ListProjectPolicies',
'ListTagsForResource',
'ListUsers',
'RecognizeCelebrities',
'SearchFaces',
'SearchFacesByImage',
'SearchUsers',
'SearchUsersByImage'
],
List: [
'ListStreamProcessors'
],
Tagging: [
'TagResource',
'UntagResource'
]
};
}
}
exports.Rekognition = Rekognition;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVrb2duaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyZWtvZ25pdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx5Q0FBeUQ7QUFHekQ7Ozs7R0FJRztBQUNILE1BQWEsV0FBWSxTQUFRLHdCQUFlO0lBRzlDOzs7Ozs7T0FNRztJQUNJLGdCQUFnQjtRQUNyQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksY0FBYztRQUNuQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxvQkFBb0I7UUFDekIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxrQkFBa0I7UUFDdkIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxlQUFlO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksMkJBQTJCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksZUFBZTtRQUNwQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxzQkFBc0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSx1QkFBdUI7UUFDNUIsT0FBTyxJ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QUNwQixvQkFBb0I7Z0JBQ3BCLHFCQUFxQjtnQkFDckIsc0JBQXNCO2dCQUN0Qix1QkFBdUI7YUFDeEI7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osY0FBYztnQkFDZCxvQkFBb0I7Z0JBQ3BCLGlCQUFpQjtnQkFDakIseUJBQXlCO2dCQUN6QixrQkFBa0I7Z0JBQ2xCLHlCQUF5QjtnQkFDekIsb0JBQW9CO2dCQUNwQixhQUFhO2dCQUNiLGNBQWM7Z0JBQ2Qsd0JBQXdCO2dCQUN4QiwyQkFBMkI7Z0JBQzNCLFlBQVk7Z0JBQ1osa0JBQWtCO2dCQUNsQix5QkFBeUI7Z0JBQ3pCLHNCQUFzQjtnQkFDdEIsa0JBQWtCO2dCQUNsQiwrQkFBK0I7Z0JBQy9CLGVBQWU7Z0JBQ2YsbUJBQW1CO2dCQUNuQixxQkFBcUI7Z0JBQ3JCLG1CQUFtQjtnQkFDbkIscUJBQXFCO2dCQUNyQixrQkFBa0I7Z0JBQ2xCLGlCQUFpQjtnQkFDakIsb0JBQW9CO2dCQUNwQixtQkFBbUI7Z0JBQ25CLFdBQVc7Z0JBQ1gsdUJBQXVCO2dCQUN2QixxQkFBcUI7Z0JBQ3JCLHFCQUFxQjtnQkFDckIsV0FBVztnQkFDWCxzQkFBc0I7Z0JBQ3RCLGFBQWE7Z0JBQ2Isb0JBQW9CO2dCQUNwQixhQUFhO2dCQUNiLG9CQUFvQjthQUNyQjtZQUNELElBQUksRUFBRTtnQkFDSixzQkFBc0I7YUFDdkI7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AsYUFBYTtnQkFDYixlQUFlO2FBQ2hCO1NBQ0YsQ0FBQztJQWtLRixDQUFDO0NBQ0Y7QUE5bENELGtDQThsQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY2Nlc3NMZXZlbExpc3QgfSBmcm9tICcuLi8uLi9zaGFyZWQvYWNjZXNzLWxldmVsJztcbmltcG9ydCB7IFBvbGljeVN0YXRlbWVudCwgT3BlcmF0b3IgfSBmcm9tICcuLi8uLi9zaGFyZWQnO1xuaW1wb3J0IHsgYXdzX2lhbSBhcyBpYW0gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcblxuLyoqXG4gKiBTdGF0ZW1lbnQgcHJvdmlkZXIgZm9yIHNlcnZpY2UgW3Jla29nbml0aW9uXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VydmljZS1hdXRob3JpemF0aW9uL2xhdGVzdC9yZWZlcmVuY2UvbGlzdF9hbWF6b25yZWtvZ25pdGlvbi5odG1sKS5cbiAqXG4gKiBAcGFyYW0gc2lkIFtTSURdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU