cdk-iam-floyd
Version:
AWS IAM policy statement generator with fluent interface for AWS CDK
1,024 lines • 92.6 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Datasync = void 0;
const shared_1 = require("../../shared");
/**
* Statement provider for service [datasync](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html).
*
* @param sid [SID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html) of the statement
*/
class Datasync extends shared_1.PolicyStatement {
/**
* Grants permission to create a storage system
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsResourceTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_AddStorageSystem.html
*/
toAddStorageSystem() {
return this.to('AddStorageSystem');
}
/**
* Grants permission to cancel execution of a sync task
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsResourceTag()
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_CancelTaskExecution.html
*/
toCancelTaskExecution() {
return this.to('CancelTaskExecution');
}
/**
* Grants permission to activate an agent that you have deployed on your host
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_CreateAgent.html
*/
toCreateAgent() {
return this.to('CreateAgent');
}
/**
* Grants permission to create an endpoint for a Microsoft Azure Blob Storage container
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_CreateLocationAzureBlob.html
*/
toCreateLocationAzureBlob() {
return this.to('CreateLocationAzureBlob');
}
/**
* Grants permission to create an endpoint for an Amazon EFS file system
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_CreateLocationEfs.html
*/
toCreateLocationEfs() {
return this.to('CreateLocationEfs');
}
/**
* Grants permission to create an endpoint for an Amazon Fsx Lustre
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_CreateLocationFsxLustre.html
*/
toCreateLocationFsxLustre() {
return this.to('CreateLocationFsxLustre');
}
/**
* Grants permission to create an endpoint for Amazon FSx for ONTAP
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_CreateLocationFsxOntap.html
*/
toCreateLocationFsxOntap() {
return this.to('CreateLocationFsxOntap');
}
/**
* Grants permission to create an endpoint for Amazon FSx for OpenZFS
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_CreateLocationFsxOpenZfs.html
*/
toCreateLocationFsxOpenZfs() {
return this.to('CreateLocationFsxOpenZfs');
}
/**
* Grants permission to create an endpoint for an Amazon FSx Windows File Server file system
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_CreateLocationFsxWindows.html
*/
toCreateLocationFsxWindows() {
return this.to('CreateLocationFsxWindows');
}
/**
* Grants permission to create an endpoint for an Amazon Hdfs
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_CreateLocationHdfs.html
*/
toCreateLocationHdfs() {
return this.to('CreateLocationHdfs');
}
/**
* Grants permission to create an endpoint for a NFS file system
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_CreateLocationNfs.html
*/
toCreateLocationNfs() {
return this.to('CreateLocationNfs');
}
/**
* Grants permission to create an endpoint for a self-managed object storage bucket
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_CreateLocationObjectStorage.html
*/
toCreateLocationObjectStorage() {
return this.to('CreateLocationObjectStorage');
}
/**
* Grants permission to create an endpoint for an Amazon S3 bucket
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_CreateLocationS3.html
*/
toCreateLocationS3() {
return this.to('CreateLocationS3');
}
/**
* Grants permission to create an endpoint for an SMB file system
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_CreateLocationSmb.html
*/
toCreateLocationSmb() {
return this.to('CreateLocationSmb');
}
/**
* Grants permission to create a sync task
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_CreateTask.html
*/
toCreateTask() {
return this.to('CreateTask');
}
/**
* Grants permission to delete an agent
*
* Access Level: Write
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_DeleteAgent.html
*/
toDeleteAgent() {
return this.to('DeleteAgent');
}
/**
* Grants permission to delete a location used by AWS DataSync
*
* Access Level: Write
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_DeleteLocation.html
*/
toDeleteLocation() {
return this.to('DeleteLocation');
}
/**
* Grants permission to delete a sync task
*
* Access Level: Write
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_DeleteTask.html
*/
toDeleteTask() {
return this.to('DeleteTask');
}
/**
* Grants permission to view metadata such as name, network interfaces, and the status (that is, whether the agent is running or not) about a sync agent
*
* Access Level: Read
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_DescribeAgent.html
*/
toDescribeAgent() {
return this.to('DescribeAgent');
}
/**
* Grants permission to describe metadata about a discovery job
*
* Access Level: Read
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_DescribeDiscoveryJob.html
*/
toDescribeDiscoveryJob() {
return this.to('DescribeDiscoveryJob');
}
/**
* Grants permission to view metadata, such as the path information about an Azure Blob Storage sync location
*
* Access Level: Read
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_DescribeLocationAzureBlob.html
*/
toDescribeLocationAzureBlob() {
return this.to('DescribeLocationAzureBlob');
}
/**
* Grants permission to view metadata, such as the path information about an Amazon EFS sync location
*
* Access Level: Read
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_DescribeLocationEfs.html
*/
toDescribeLocationEfs() {
return this.to('DescribeLocationEfs');
}
/**
* Grants permission to view metadata, such as the path information about an Amazon FSx Lustre sync location
*
* Access Level: Read
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_DescribeLocationFsxLustre.html
*/
toDescribeLocationFsxLustre() {
return this.to('DescribeLocationFsxLustre');
}
/**
* Grants permission to view metadata, such as the path information about an Amazon FSx for ONTAP sync location
*
* Access Level: Read
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_DescribeLocationFsxOntap.html
*/
toDescribeLocationFsxOntap() {
return this.to('DescribeLocationFsxOntap');
}
/**
* Grants permission to view metadata, such as the path information about an Amazon FSx OpenZFS sync location
*
* Access Level: Read
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_DescribeLocationFsxOpenZfs.html
*/
toDescribeLocationFsxOpenZfs() {
return this.to('DescribeLocationFsxOpenZfs');
}
/**
* Grants permission to view metadata, such as the path information about an Amazon FSx Windows sync location
*
* Access Level: Read
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_DescribeLocationFsxWindows.html
*/
toDescribeLocationFsxWindows() {
return this.to('DescribeLocationFsxWindows');
}
/**
* Grants permission to view metadata, such as the path information about an Amazon HDFS sync location
*
* Access Level: Read
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_DescribeLocationHdfs.html
*/
toDescribeLocationHdfs() {
return this.to('DescribeLocationHdfs');
}
/**
* Grants permission to view metadata, such as the path information, about a NFS sync location
*
* Access Level: Read
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_DescribeLocationNfs.html
*/
toDescribeLocationNfs() {
return this.to('DescribeLocationNfs');
}
/**
* Grants permission to view metadata about a self-managed object storage server location
*
* Access Level: Read
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_DescribeLocationObjectStorage.html
*/
toDescribeLocationObjectStorage() {
return this.to('DescribeLocationObjectStorage');
}
/**
* Grants permission to view metadata, such as bucket name, about an Amazon S3 bucket sync location
*
* Access Level: Read
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_DescribeLocationS3.html
*/
toDescribeLocationS3() {
return this.to('DescribeLocationS3');
}
/**
* Grants permission to view metadata, such as the path information, about an SMB sync location
*
* Access Level: Read
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_DescribeLocationSmb.html
*/
toDescribeLocationSmb() {
return this.to('DescribeLocationSmb');
}
/**
* Grants permission to view metadata about a storage system
*
* Access Level: Read
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_DescribeStorageSystem.html
*/
toDescribeStorageSystem() {
return this.to('DescribeStorageSystem');
}
/**
* Grants permission to describe resource metrics collected by a discovery job
*
* Access Level: List
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_DescribeStorageSystemResourceMetrics.html
*/
toDescribeStorageSystemResourceMetrics() {
return this.to('DescribeStorageSystemResourceMetrics');
}
/**
* Grants permission to describe resources identified by a discovery job
*
* Access Level: List
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_DescribeStorageSystemResources.html
*/
toDescribeStorageSystemResources() {
return this.to('DescribeStorageSystemResources');
}
/**
* Grants permission to view metadata about a sync task
*
* Access Level: Read
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_DescribeTask.html
*/
toDescribeTask() {
return this.to('DescribeTask');
}
/**
* Grants permission to view metadata about a sync task that is being executed
*
* Access Level: Read
*
* Possible conditions:
* - .ifAwsResourceTag()
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_DescribeTaskExecution.html
*/
toDescribeTaskExecution() {
return this.to('DescribeTaskExecution');
}
/**
* Grants permission to generate recommendations for a resource identified by a discovery job
*
* Access Level: Write
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_GenerateRecommendations.html
*/
toGenerateRecommendations() {
return this.to('GenerateRecommendations');
}
/**
* Grants permission to list agents owned by an AWS account in a region specified in the request
*
* Access Level: List
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_ListAgents.html
*/
toListAgents() {
return this.to('ListAgents');
}
/**
* Grants permission to list discovery jobs
*
* Access Level: List
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_ListDiscoveryJobs.html
*/
toListDiscoveryJobs() {
return this.to('ListDiscoveryJobs');
}
/**
* Grants permission to list source and destination sync locations
*
* Access Level: List
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_ListLocations.html
*/
toListLocations() {
return this.to('ListLocations');
}
/**
* Grants permission to list storage systems
*
* Access Level: List
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_ListStorageSystems.html
*/
toListStorageSystems() {
return this.to('ListStorageSystems');
}
/**
* Grants permission to list tags that have been added to the specified resource
*
* Access Level: Read
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_ListTagsForResource.html
*/
toListTagsForResource() {
return this.to('ListTagsForResource');
}
/**
* Grants permission to list executed sync tasks
*
* Access Level: List
*
* Possible conditions:
* - .ifAwsResourceTag()
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_ListTaskExecutions.html
*/
toListTaskExecutions() {
return this.to('ListTaskExecutions');
}
/**
* Grants permission to list of all the sync tasks
*
* Access Level: List
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_ListTasks.html
*/
toListTasks() {
return this.to('ListTasks');
}
/**
* Grants permission to delete a storage system
*
* Access Level: Write
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_RemoveStorageSystem.html
*/
toRemoveStorageSystem() {
return this.to('RemoveStorageSystem');
}
/**
* Grants permission to start a discovery job for a storage system
*
* Access Level: Write
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_StartDiscoveryJob.html
*/
toStartDiscoveryJob() {
return this.to('StartDiscoveryJob');
}
/**
* Grants permission to start a specific invocation of a sync task
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsResourceTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_StartTaskExecution.html
*/
toStartTaskExecution() {
return this.to('StartTaskExecution');
}
/**
* Grants permission to stop a discovery job
*
* Access Level: Write
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_StopDiscoveryJob.html
*/
toStopDiscoveryJob() {
return this.to('StopDiscoveryJob');
}
/**
* Grants permission to apply a key-value pair to an AWS resource
*
* Access Level: Tagging
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_TagResource.html
*/
toTagResource() {
return this.to('TagResource');
}
/**
* Grants permission to remove one or more tags from the specified resource
*
* Access Level: Tagging
*
* Possible conditions:
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_UntagResource.html
*/
toUntagResource() {
return this.to('UntagResource');
}
/**
* Grants permission to update the name of an agent
*
* Access Level: Write
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_UpdateAgent.html
*/
toUpdateAgent() {
return this.to('UpdateAgent');
}
/**
* Grants permission to update a discovery job
*
* Access Level: Write
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_UpdateDiscoveryJob.html
*/
toUpdateDiscoveryJob() {
return this.to('UpdateDiscoveryJob');
}
/**
* Grants permission to update an Azure Blob Storage sync location
*
* Access Level: Write
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_UpdateLocationAzureBlob.html
*/
toUpdateLocationAzureBlob() {
return this.to('UpdateLocationAzureBlob');
}
/**
* Grants permission to update an EFS sync Location
*
* Access Level: Write
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_UpdateLocationEfs.html
*/
toUpdateLocationEfs() {
return this.to('UpdateLocationEfs');
}
/**
* Grants permission to update an FSx Lustre sync Location
*
* Access Level: Write
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_UpdateLocationFsxLustre.html
*/
toUpdateLocationFsxLustre() {
return this.to('UpdateLocationFsxLustre');
}
/**
* Grants permission to update an FSx ONTAP sync Location
*
* Access Level: Write
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_UpdateLocationFsxOntap.html
*/
toUpdateLocationFsxOntap() {
return this.to('UpdateLocationFsxOntap');
}
/**
* Grants permission to update an FSx OpenZFS sync Location
*
* Access Level: Write
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_UpdateLocationFsxOpenZfs.html
*/
toUpdateLocationFsxOpenZfs() {
return this.to('UpdateLocationFsxOpenZfs');
}
/**
* Grants permission to update an FSx Windows sync Location
*
* Access Level: Write
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_UpdateLocationFsxWindows.html
*/
toUpdateLocationFsxWindows() {
return this.to('UpdateLocationFsxWindows');
}
/**
* Grants permission to update an HDFS sync Location
*
* Access Level: Write
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_UpdateLocationHdfs.html
*/
toUpdateLocationHdfs() {
return this.to('UpdateLocationHdfs');
}
/**
* Grants permission to update an NFS sync Location
*
* Access Level: Write
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_UpdateLocationNfs.html
*/
toUpdateLocationNfs() {
return this.to('UpdateLocationNfs');
}
/**
* Grants permission to update a self-managed object storage server location
*
* Access Level: Write
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_UpdateLocationObjectStorage.html
*/
toUpdateLocationObjectStorage() {
return this.to('UpdateLocationObjectStorage');
}
/**
* Grants permission to update an S3 sync Location
*
* Access Level: Write
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_UpdateLocationS3.html
*/
toUpdateLocationS3() {
return this.to('UpdateLocationS3');
}
/**
* Grants permission to update a SMB sync location
*
* Access Level: Write
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_UpdateLocationSmb.html
*/
toUpdateLocationSmb() {
return this.to('UpdateLocationSmb');
}
/**
* Grants permission to update a storage system
*
* Access Level: Write
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_UpdateStorageSystem.html
*/
toUpdateStorageSystem() {
return this.to('UpdateStorageSystem');
}
/**
* Grants permission to update metadata associated with a sync task
*
* Access Level: Write
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_UpdateTask.html
*/
toUpdateTask() {
return this.to('UpdateTask');
}
/**
* Grants permission to update execution of a sync task
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsResourceTag()
*
* https://docs.aws.amazon.com/datasync/latest/userguide/API_UpdateTaskExecution.html
*/
toUpdateTaskExecution() {
return this.to('UpdateTaskExecution');
}
/**
* Adds a resource of type agent to the statement
*
* https://docs.aws.amazon.com/datasync/latest/userguide/working-with-agents.html
*
* @param agentId - Identifier for the agentId.
* @param accountId - 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()
*/
onAgent(agentId, accountId, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:datasync:${region ?? this.defaultRegion}:${accountId ?? this.defaultAccount}:agent/${agentId}`);
}
/**
* Adds a resource of type location to the statement
*
* https://docs.aws.amazon.com/datasync/latest/userguide/working-with-locations.html
*
* @param locationId - Identifier for the locationId.
* @param accountId - 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()
*/
onLocation(locationId, accountId, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:datasync:${region ?? this.defaultRegion}:${accountId ?? this.defaultAccount}:location/${locationId}`);
}
/**
* Adds a resource of type task to the statement
*
* https://docs.aws.amazon.com/datasync/latest/userguide/working-with-tasks.html
*
* @param taskId - Identifier for the taskId.
* @param accountId - 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()
*/
onTask(taskId, accountId, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:datasync:${region ?? this.defaultRegion}:${accountId ?? this.defaultAccount}:task/${taskId}`);
}
/**
* Adds a resource of type taskexecution to the statement
*
* https://docs.aws.amazon.com/datasync/latest/userguide/working-with-task-executions.html
*
* @param taskId - Identifier for the taskId.
* @param executionId - Identifier for the executionId.
* @param accountId - 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()
*/
onTaskexecution(taskId, executionId, accountId, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:datasync:${region ?? this.defaultRegion}:${accountId ?? this.defaultAccount}:task/${taskId}/execution/${executionId}`);
}
/**
* Adds a resource of type storagesystem to the statement
*
* https://docs.aws.amazon.com/datasync/latest/userguide/discovery-configure-storage.html
*
* @param storageSystemId - Identifier for the storageSystemId.
* @param accountId - 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()
*/
onStoragesystem(storageSystemId, accountId, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:datasync:${region ?? this.defaultRegion}:${accountId ?? this.defaultAccount}:system/${storageSystemId}`);
}
/**
* Adds a resource of type discoveryjob to the statement
*
* https://docs.aws.amazon.com/datasync/latest/userguide/discovery-job-create.html
*
* @param storageSystemId - Identifier for the storageSystemId.
* @param discoveryJobId - Identifier for the discoveryJobId.
* @param accountId - 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()
*/
onDiscoveryjob(storageSystemId, discoveryJobId, accountId, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:datasync:${region ?? this.defaultRegion}:${accountId ?? this.defaultAccount}:system/${storageSystemId}/job/${discoveryJobId}`);
}
/**
* Filters access by the tag key-value pairs in the request
*
* https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requesttag
*
* Applies to actions:
* - .toAddStorageSystem()
* - .toCreateAgent()
* - .toCreateLocationAzureBlob()
* - .toCreateLocationEfs()
* - .toCreateLocationFsxLustre()
* - .toCreateLocationFsxOntap()
* - .toCreateLocationFsxOpenZfs()
* - .toCreateLocationFsxWindows()
* - .toCreateLocationHdfs()
* - .toCreateLocationNfs()
* - .toCreateLocationObjectStorage()
* - .toCreateLocationS3()
* - .toCreateLocationSmb()
* - .toCreateTask()
* - .toStartTaskExecution()
* - .toTagResource()
*
* @param tagKey The tag key to check
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifAwsRequestTag(tagKey, value, operator) {
return this.if(`aws:RequestTag/${tagKey}`, value, operator ?? 'StringLike');
}
/**
* Filters access by the tag key-value pairs associated with the resource
*
* https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourcetag
*
* Applies to actions:
* - .toAddStorageSystem()
* - .toCancelTaskExecution()
* - .toDescribeTaskExecution()
* - .toListTaskExecutions()
* - .toStartTaskExecution()
* - .toUpdateTaskExecution()
*
* Applies to resource types:
* - agent
* - location
* - task
* - taskexecution
* - storagesystem
* - discoveryjob
*
* @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 in the request
*
* https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys
*
* Applies to actions:
* - .toAddStorageSystem()
* - .toCreateAgent()
* - .toCreateLocationAzureBlob()
* - .toCreateLocationEfs()
* - .toCreateLocationFsxLustre()
* - .toCreateLocationFsxOntap()
* - .toCreateLocationFsxOpenZfs()
* - .toCreateLocationFsxWindows()
* - .toCreateLocationHdfs()
* - .toCreateLocationNfs()
* - .toCreateLocationObjectStorage()
* - .toCreateLocationS3()
* - .toCreateLocationSmb()
* - .toCreateTask()
* - .toStartTaskExecution()
* - .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 [datasync](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html).
*
*/
constructor(props) {
super(props);
this.servicePrefix = 'datasync';
this.accessLevelList = {
Write: [
'AddStorageSystem',
'CancelTaskExecution',
'CreateAgent',
'CreateLocationAzureBlob',
'CreateLocationEfs',
'CreateLocationFsxLustre',
'CreateLocationFsxOntap',
'CreateLocationFsxOpenZfs',
'CreateLocationFsxWindows',
'CreateLocationHdfs',
'CreateLocationNfs',
'CreateLocationObjectStorage',
'CreateLocationS3',
'CreateLocationSmb',
'CreateTask',
'DeleteAgent',
'DeleteLocation',
'DeleteTask',
'GenerateRecommendations',
'RemoveStorageSystem',
'StartDiscoveryJob',
'StartTaskExecution',
'StopDiscoveryJob',
'UpdateAgent',
'UpdateDiscoveryJob',
'UpdateLocationAzureBlob',
'UpdateLocationEfs',
'UpdateLocationFsxLustre',
'UpdateLocationFsxOntap',
'UpdateLocationFsxOpenZfs',
'UpdateLocationFsxWindows',
'UpdateLocationHdfs',
'UpdateLocationNfs',
'UpdateLocationObjectStorage',
'UpdateLocationS3',
'UpdateLocationSmb',
'UpdateStorageSystem',
'UpdateTask',
'UpdateTaskExecution'
],
Read: [
'DescribeAgent',
'DescribeDiscoveryJob',
'DescribeLocationAzureBlob',
'DescribeLocationEfs',
'DescribeLocationFsxLustre',
'DescribeLocationFsxOntap',
'DescribeLocationFsxOpenZfs',
'DescribeLocationFsxWindows',
'DescribeLocationHdfs',
'DescribeLocationNfs',
'DescribeLocationObjectStorage',
'DescribeLocationS3',
'DescribeLocationSmb',
'DescribeStorageSystem',
'DescribeTask',
'DescribeTaskExecution',
'ListTagsForResource'
],
List: [
'DescribeStorageSystemResourceMetrics',
'DescribeStorageSystemResources',
'ListAgents',
'ListDiscoveryJobs',
'ListLocations',
'ListStorageSystems',
'ListTaskExecutions',
'ListTasks'
],
Tagging: [
'TagResource',
'UntagResource'
]
};
}
}
exports.Datasync = Datasync;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXN5bmMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkYXRhc3luYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx5Q0FBeUQ7QUFHekQ7Ozs7R0FJRztBQUNILE1BQWEsUUFBUyxTQUFRLHdCQUFlO0lBRzNDOzs7Ozs7Ozs7OztPQVdHO0lBQ0ksa0JBQWtCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxxQkFBcUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxhQUFhO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLHlCQUF5QjtRQUM5QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLG1CQUFtQjtRQUN4QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLHlCQUF5QjtRQUM5QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLHdCQUF3QjtRQUM3QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLDBCQUEwQjtRQUMvQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLDBCQUEw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QUM3QixrQkFBa0I7Z0JBQ2xCLG1CQUFtQjtnQkFDbkIsWUFBWTtnQkFDWixhQUFhO2dCQUNiLGdCQUFnQjtnQkFDaEIsWUFBWTtnQkFDWix5QkFBeUI7Z0JBQ3pCLHFCQUFxQjtnQkFDckIsbUJBQW1CO2dCQUNuQixvQkFBb0I7Z0JBQ3BCLGtCQUFrQjtnQkFDbEIsYUFBYTtnQkFDYixvQkFBb0I7Z0JBQ3BCLHlCQUF5QjtnQkFDekIsbUJBQW1CO2dCQUNuQix5QkFBeUI7Z0JBQ3pCLHdCQUF3QjtnQkFDeEIsMEJBQTBCO2dCQUMxQiwwQkFBMEI7Z0JBQzFCLG9CQUFvQjtnQkFDcEIsbUJBQW1CO2dCQUNuQiw2QkFBNkI7Z0JBQzdCLGtCQUFrQjtnQkFDbEIsbUJBQW1CO2dCQUNuQixxQkFBcUI7Z0JBQ3JCLFlBQVk7Z0JBQ1oscUJBQXFCO2FBQ3RCO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLGVBQWU7Z0JBQ2Ysc0JBQXNCO2dCQUN0QiwyQkFBMkI7Z0JBQzNCLHFCQUFxQjtnQkFDckIsMkJBQTJCO2dCQUMzQiwwQkFBMEI7Z0JBQzFCLDRCQUE0QjtnQkFDNUIsNEJBQTRCO2dCQUM1QixzQkFBc0I7Z0JBQ3RCLHFCQUFxQjtnQkFDckIsK0JBQStCO2dCQUMvQixvQkFBb0I7Z0JBQ3BCLHFCQUFxQjtnQkFDckIsdUJBQXVCO2dCQUN2QixjQUFjO2dCQUNkLHVCQUF1QjtnQkFDdkIscUJBQXFCO2FBQ3RCO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLHNDQUFzQztnQkFDdEMsZ0NBQWdDO2dCQUNoQyxZQUFZO2dCQUNaLG1CQUFtQjtnQkFDbkIsZUFBZTtnQkFDZixvQkFBb0I7Z0JBQ3BCLG9CQUFvQjtnQkFDcEIsV0FBVzthQUNaO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLGFBQWE7Z0JBQ2IsZUFBZTthQUNoQjtTQUNGLENBQUM7SUEyTUYsQ0FBQztDQUNGO0FBamtDRCw0QkFpa0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWNjZXNzTGV2ZWxMaXN0IH0gZnJvbSAnLi4vLi4vc2hhcmVkL2FjY2Vzcy1sZXZlbCc7XG5pbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQsIE9wZXJhdG9yIH0gZnJvbSAnLi4vLi4vc2hhcmVkJztcbmltcG9ydCB7IGF3c19pYW0gYXMgaWFtIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5cbi8qKlxuICogU3RhdGVtZW50IHByb3ZpZGVyIGZvciBzZXJ2aWNlIFtkYXRhc3luY10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NlcnZpY2UtYXV0aG9yaXphdGlvbi9sYXRlc3QvcmVmZXJlbmNlL2xpc3RfYXdzZGF0YXN5bmMuaHRtbCkuXG4gKlxuICogQHBhcmFtIHNpZCBbU0lEXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX3NpZC5odG1sKSBvZiB0aGUgc3RhdGVtZW50XG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRhc3luYyBleHRlbmRzIFBvbGljeVN0YXRlbWVudCB7XG4gIHB1YmxpYyBzZXJ2aWNlUHJlZml4ID0gJ2RhdGFzeW5jJztcblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIGEgc3RvcmFnZSBzeXN0ZW1cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1JlcXVlc3RUYWcoKVxuICAgKiAtIC5pZkF3c1Jlc291cmNlVGFnKClcbiAgICogLSAuaWZBd3NUYWdLZXlzKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2RhdGFzeW5jL2xhdGVzdC91c2VyZ3VpZGUvQVBJX0FkZFN0b3JhZ2VTeXN0ZW0uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQWRkU3RvcmFnZVN5c3RlbSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQWRkU3RvcmFnZVN5c3RlbScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNhbmNlbCBleGVjdXRpb24gb2YgYSBzeW5jIHRhc2tcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1Jlc291cmNlVGFnKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2RhdGFzeW5jL2xhdGVzdC91c2VyZ3VpZGUvQVBJX0NhbmNlbFRhc2tFeGVjdXRpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ2FuY2VsVGFza0V4ZWN1dGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ2FuY2VsVGFza0V4ZWN1dGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGFjdGl2YXRlIGFuIGFnZW50IHRoYXQgeW91IGhhdmUgZGVwbG95ZWQgb24geW91ciBob3N0XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXF1ZXN0VGFnKClcbiAgICogLSAuaWZBd3NUYWdLZXlzKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2RhdGFzeW5jL2xhdGVzdC91c2VyZ3VpZGUvQVBJX0NyZWF0ZUFnZW50Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZUFnZW50KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVBZ2VudCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNyZWF0ZSBhbiBlbmRwb2ludCBmb3IgYSBNaWNyb3NvZnQgQXp1cmUgQmxvYiBTdG9yYWdlIGNvbnRhaW5lclxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVxdWVzdFRhZygpXG4gICAqIC0gLmlmQXdzVGFnS2V5cygpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kYXRhc3luYy9sYXRlc3QvdXNlcmd1aWRlL0FQSV9DcmVhdGVMb2NhdGlvbkF6dXJlQmxvYi5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVMb2NhdGlvbkF6dXJlQmxvYigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ3JlYXRlTG9jYXRpb25BenVyZUJsb2InKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYW4gZW5kcG9pbnQgZm9yIGFuIEFtYXpvbiBFRlMgZmlsZSBzeXN0ZW1cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1JlcXVlc3RUYWcoKVxuICAgKiAtIC5pZkF3c1RhZ0tleXMoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZGF0YXN5bmMvbGF0ZXN0L3VzZXJndWlkZS9BUElfQ3JlYXRlTG9jYXRpb25FZnMuaHRtbFxuICAgKi9cbiAgcHVibGljIHR