UNPKG

cdk-iam-floyd

Version:

AWS IAM policy statement generator with fluent interface for AWS CDK

1,039 lines 94.6 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_datasync.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 * * 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 * * 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 * * 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 * * 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 * * 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, Write * * 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, Write * * 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 * * 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 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}`); } /** * 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 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 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}`); } /** * 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() * - .toCreateTask() * - .toDeleteAgent() * - .toDeleteLocation() * - .toDeleteTask() * - .toDescribeAgent() * - .toDescribeDiscoveryJob() * - .toDescribeLocationAzureBlob() * - .toDescribeLocationEfs() * - .toDescribeLocationFsxLustre() * - .toDescribeLocationFsxOntap() * - .toDescribeLocationFsxOpenZfs() * - .toDescribeLocationFsxWindows() * - .toDescribeLocationHdfs() * - .toDescribeLocationNfs() * - .toDescribeLocationObjectStorage() * - .toDescribeLocationS3() * - .toDescribeLocationSmb() * - .toDescribeStorageSystem() * - .toDescribeStorageSystemResourceMetrics() * - .toDescribeStorageSystemResources() * - .toDescribeTask() * - .toDescribeTaskExecution() * - .toGenerateRecommendations() * - .toListTagsForResource() * - .toListTaskExecutions() * - .toRemoveStorageSystem() * - .toStartDiscoveryJob() * - .toStartTaskExecution() * - .toStopDiscoveryJob() * - .toTagResource() * - .toUntagResource() * - .toUpdateAgent() * - .toUpdateDiscoveryJob() * - .toUpdateLocationAzureBlob() * - .toUpdateLocationEfs() * - .toUpdateLocationFsxLustre() * - .toUpdateLocationFsxOntap() * - .toUpdateLocationFsxOpenZfs() * - .toUpdateLocationFsxWindows() * - .toUpdateLocationHdfs() * - .toUpdateLocationNfs() * - .toUpdateLocationObjectStorage() * - .toUpdateLocationS3() * - .toUpdateLocationSmb() * - .toUpdateStorageSystem() * - .toUpdateTask() * - .toUpdateTaskExecution() * * Applies to resource types: * - agent * - discoveryjob * - location * - storagesystem * - task * - taskexecution * * @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_datasync.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', 'TagResource', 'UntagResource', '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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXN5bmMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkYXRhc3luYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx5Q0FBeUQ7QUFHekQ7Ozs7R0FJRztBQUNILE1BQWEsUUFBUyxTQUFRLHdCQUFlO0lBRzNDOzs7Ozs7T0FNRztJQUNJLGtCQUFrQjtRQUN2QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0kscUJBQXFCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksYUFBYTtRQUNsQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSx5QkFBeUI7UUFDOUIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxtQkFBbUI7UUFDeEIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSx5QkFBeUI7UUFDOUIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSx3QkFBd0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSwwQkFBMEI7UUFDL0IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSwwQkFBMEI7UUFDL0Is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bExpc3QgfSBmcm9tICcuLi8uLi9zaGFyZWQvYWNjZXNzLWxldmVsJztcbmltcG9ydCB7IFBvbGljeVN0YXRlbWVudCwgT3BlcmF0b3IgfSBmcm9tICcuLi8uLi9zaGFyZWQnO1xuaW1wb3J0IHsgYXdzX2lhbSBhcyBpYW0gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcblxuLyoqXG4gKiBTdGF0ZW1lbnQgcHJvdmlkZXIgZm9yIHNlcnZpY2UgW2RhdGFzeW5jXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VydmljZS1hdXRob3JpemF0aW9uL2xhdGVzdC9yZWZlcmVuY2UvbGlzdF9kYXRhc3luYy5odG1sKS5cbiAqXG4gKiBAcGFyYW0gc2lkIFtTSURdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfc2lkLmh0bWwpIG9mIHRoZSBzdGF0ZW1lbnRcbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFzeW5jIGV4dGVuZHMgUG9saWN5U3RhdGVtZW50IHtcbiAgcHVibGljIHNlcnZpY2VQcmVmaXggPSAnZGF0YXN5bmMnO1xuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSBzdG9yYWdlIHN5c3RlbVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kYXRhc3luYy9sYXRlc3QvdXNlcmd1aWRlL0FQSV9BZGRTdG9yYWdlU3lzdGVtLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0FkZFN0b3JhZ2VTeXN0ZW0oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0FkZFN0b3JhZ2VTeXN0ZW0nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjYW5jZWwgZXhlY3V0aW9uIG9mIGEgc3luYyB0YXNrXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2RhdGFzeW5jL2xhdGVzdC91c2VyZ3VpZGUvQVBJX0NhbmNlbFRhc2tFeGVjdXRpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ2FuY2VsVGFza0V4ZWN1dGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ2FuY2VsVGFza0V4ZWN1dGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGFjdGl2YXRlIGFuIGFnZW50IHRoYXQgeW91IGhhdmUgZGVwbG95ZWQgb24geW91ciBob3N0XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXF1ZXN0VGFnKClcbiAgICogLSAuaWZBd3NUYWdLZXlzKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2RhdGFzeW5jL2xhdGVzdC91c2VyZ3VpZGUvQVBJX0NyZWF0ZUFnZW50Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZUFnZW50KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVBZ2VudCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNyZWF0ZSBhbiBlbmRwb2ludCBmb3IgYSBNaWNyb3NvZnQgQXp1cmUgQmxvYiBTdG9yYWdlIGNvbnRhaW5lclxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVxdWVzdFRhZygpXG4gICAqIC0gLmlmQ