UNPKG

cdk-iam-floyd

Version:

AWS IAM policy statement generator with fluent interface for AWS CDK

1,024 lines 92.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_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