UNPKG

iam-floyd

Version:

AWS IAM policy statement generator with fluent interface

1,025 lines 92.7 kB
"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 { /** * 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 */ constructor(sid) { super(sid); 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' ] }; } /** * 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'); } } exports.Datasync = Datasync; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXN5bmMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkYXRhc3luYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx5Q0FBeUQ7QUFFekQ7Ozs7R0FJRztBQUNILE1BQWEsUUFBUyxTQUFRLHdCQUFlO0lBRzNDOzs7O09BSUc7SUFDSCxZQUFZLEdBQVk7UUFDdEIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBUk4sa0JBQWEsR0FBRyxVQUFVLENBQUM7UUFrekJ4QixvQkFBZSxHQUFvQjtZQUMzQyxLQUFLLEVBQUU7Z0JBQ0wsa0JBQWtCO2dCQUNsQixxQkFBcUI7Z0JBQ3JCLGFBQWE7Z0JBQ2IseUJBQXlCO2dCQUN6QixtQkFBbUI7Z0JBQ25CLHlCQUF5QjtnQkFDekIsd0JBQXdCO2dCQUN4QiwwQkFBMEI7Z0JBQzFCLDBCQUEwQjtnQkFDMUIsb0JBQW9CO2dCQUNwQixtQkFBbUI7Z0JBQ25CLDZCQUE2QjtnQkFDN0Isa0JBQWtCO2dCQUNsQixtQkFBbUI7Z0JBQ25CLFlBQVk7Z0JBQ1osYUFBYTtnQkFDYixnQkFBZ0I7Z0JBQ2hCLFlBQVk7Z0JBQ1oseUJBQXlCO2dCQUN6QixxQkFBcUI7Z0JBQ3JCLG1CQUFtQjtnQkFDbkIsb0JBQW9CO2dCQUNwQixrQkFBa0I7Z0JBQ2xCLGFBQWE7Z0JBQ2Isb0JBQW9CO2dCQUNwQix5QkFBeUI7Z0JBQ3pCLG1CQUFtQjtnQkFDbkIseUJBQXlCO2dCQUN6Qix3QkFBd0I7Z0JBQ3hCLDBCQUEwQjtnQkFDMUIsMEJBQTBCO2dCQUMxQixvQkFBb0I7Z0JBQ3BCLG1CQUFtQjtnQkFDbkIsNkJBQTZCO2dCQUM3QixrQkFBa0I7Z0JBQ2xCLG1CQUFtQjtnQkFDbkIscUJBQXFCO2dCQUNyQixZQUFZO2dCQUNaLHFCQUFxQjthQUN0QjtZQUNELElBQUksRUFBRTtnQkFDSixlQUFlO2dCQUNmLHNCQUFzQjtnQkFDdEIsMkJBQTJCO2dCQUMzQixxQkFBcUI7Z0JBQ3JCLDJCQUEyQjtnQkFDM0IsMEJB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QWUsV0FBWSxlQUFnQixFQUFFLENBQUMsQ0FBQztJQUM3SyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7T0FhRztJQUNJLGNBQWMsQ0FBQyxlQUF1QixFQUFFLGNBQXNCLEVBQUUsU0FBa0IsRUFBRSxNQUFlLEVBQUUsU0FBa0I7UUFDNUgsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQVEsU0FBUyxJQUFJLElBQUksQ0FBQyxnQkFBaUIsYUFBYyxNQUFNLElBQUksSUFBSSxDQUFDLGFBQWMsSUFBSyxTQUFTLElBQUksSUFBSSxDQUFDLGNBQWUsV0FBWSxlQUFnQixRQUFTLGNBQWUsRUFBRSxDQUFDLENBQUM7SUFDck0sQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQTBCRztJQUNJLGVBQWUsQ0FBQyxNQUFjLEVBQUUsS0FBd0IsRUFBRSxRQUE0QjtRQUMzRixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsa0JBQW1CLE1BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxRQUFRLElBQUksWUFBWSxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0F3Qkc7SUFDSSxnQkFBZ0IsQ0FBQyxNQUFjLEVBQUUsS0FBd0IsRUFBRSxRQUE0QjtRQUM1RixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsbUJBQW9CLE1BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxRQUFRLElBQUksWUFBWSxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQTBCRztJQUNJLFlBQVksQ0FBQyxLQUF3QixFQUFFLFFBQTRCO1FBQ3hFLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLFFBQVEsSUFBSSxZQUFZLENBQUMsQ0FBQztJQUNqRSxDQUFDO0NBQ0Y7QUFsa0NELDRCQWtrQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY2Nlc3NMZXZlbExpc3QgfSBmcm9tICcuLi8uLi9zaGFyZWQvYWNjZXNzLWxldmVsJztcbmltcG9ydCB7IFBvbGljeVN0YXRlbWVudCwgT3BlcmF0b3IgfSBmcm9tICcuLi8uLi9zaGFyZWQnO1xuXG4vKipcbiAqIFN0YXRlbWVudCBwcm92aWRlciBmb3Igc2VydmljZSBbZGF0YXN5bmNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZXJ2aWNlLWF1dGhvcml6YXRpb24vbGF0ZXN0L3JlZmVyZW5jZS9saXN0X2F3c2RhdGFzeW5jLmh0bWwpLlxuICpcbiAqIEBwYXJhbSBzaWQgW1NJRF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19zaWQuaHRtbCkgb2YgdGhlIHN0YXRlbWVudFxuICovXG5leHBvcnQgY2xhc3MgRGF0YXN5bmMgZXh0ZW5kcyBQb2xpY3lTdGF0ZW1lbnQge1xuICBwdWJsaWMgc2VydmljZVByZWZpeCA9ICdkYXRhc3luYyc7XG5cbiAgLyoqXG4gICAqIFN0YXRlbWVudCBwcm92aWRlciBmb3Igc2VydmljZSBbZGF0YXN5bmNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZXJ2aWNlLWF1dGhvcml6YXRpb24vbGF0ZXN0L3JlZmVyZW5jZS9saXN0X2F3c2RhdGFzeW5jLmh0bWwpLlxuICAgKlxuICAgKiBAcGFyYW0gc2lkIFtTSURdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfc2lkLmh0bWwpIG9mIHRoZSBzdGF0ZW1lbnRcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNpZD86IHN0cmluZykge1xuICAgIHN1cGVyKHNpZCk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIGEgc3RvcmFnZSBzeXN0ZW1cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1JlcXVlc3RUYWcoKVxuICAgKiAtIC5pZkF3c1Jlc291cmNlVGFnKClcbiAgICogLSAuaWZBd3NUYWdLZXlzKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2RhdGFzeW5jL2xhdGVzdC91c2VyZ3VpZGUvQVBJX0FkZFN0b3JhZ2VTeXN0ZW0uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQWRkU3RvcmFnZVN5c3RlbSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQWRkU3RvcmFnZVN5c3RlbScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNhbmNlbCBleGVjdXRpb24gb2YgYSBzeW5jIHRhc2tcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1Jlc291cmNlVGFnKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2RhdGFzeW5jL2xhdGVzdC91c2VyZ3VpZGUvQVBJX0NhbmNlbFRhc2tFeGVjdXRpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ2FuY2VsVGFza0V4ZWN1dGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ2FuY2VsVGFza0V4ZWN1dGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGFjdGl2YXRlIGFuIGFnZW50IHRoYXQgeW91IGhhdmUgZGVwbG95ZWQgb24geW91ciBob3N0XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXF1ZXN0VGFnKClcbiAgICogLSAuaWZBd3NUYWdLZXlzKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2RhdGFzeW5jL2xhdGVzdC91c2VyZ3VpZGUvQVBJX0NyZWF0ZUFnZW50Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZUFnZW50KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVBZ2VudCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNyZWF0ZSBhbiBlbmRwb2ludCBmb3IgYSBNaWNyb3NvZnQgQXp1cmUgQmxvYiBTdG9yYWdlIGNvbnRhaW5lclxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVxdWVzdFRhZygpXG4gICAqIC0gLmlmQXdzVGFnS2V5cygpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kYXRhc3luYy9sYXRlc3QvdXNlcmd1aWRlL0FQSV9DcmVhdGVMb2NhdGlvbkF6dXJlQmxvYi5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVMb2N