UNPKG

iam-floyd

Version:

AWS IAM policy statement generator with fluent interface

1,055 lines 104 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RedshiftServerless = void 0; const shared_1 = require("../../shared"); /** * Statement provider for service [redshift-serverless](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonredshiftserverless.html). * * @param sid [SID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html) of the statement */ class RedshiftServerless extends shared_1.PolicyStatement { /** * Statement provider for service [redshift-serverless](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonredshiftserverless.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 = 'redshift-serverless'; this.accessLevelList = { Write: [ 'ConvertRecoveryPointToSnapshot', 'CreateCustomDomainAssociation', 'CreateEndpointAccess', 'CreateNamespace', 'CreateReservation', 'CreateScheduledAction', 'CreateSnapshot', 'CreateSnapshotCopyConfiguration', 'CreateUsageLimit', 'CreateWorkgroup', 'DeleteCustomDomainAssociation', 'DeleteEndpointAccess', 'DeleteNamespace', 'DeleteResourcePolicy', 'DeleteScheduledAction', 'DeleteSnapshot', 'DeleteSnapshotCopyConfiguration', 'DeleteUsageLimit', 'DeleteWorkgroup', 'GetCredentials', 'PutResourcePolicy', 'RestoreFromRecoveryPoint', 'RestoreFromSnapshot', 'RestoreTableFromRecoveryPoint', 'RestoreTableFromSnapshot', 'UpdateCustomDomainAssociation', 'UpdateEndpointAccess', 'UpdateNamespace', 'UpdateScheduledAction', 'UpdateSnapshot', 'UpdateSnapshotCopyConfiguration', 'UpdateUsageLimit', 'UpdateWorkgroup' ], Read: [ 'DescribeOneTimeCredit', 'GetCustomDomainAssociation', 'GetEndpointAccess', 'GetManagedWorkgroup', 'GetNamespace', 'GetRecoveryPoint', 'GetReservation', 'GetReservationOffering', 'GetResourcePolicy', 'GetScheduledAction', 'GetSnapshot', 'GetTableRestoreStatus', 'GetTrack', 'GetUsageLimit', 'GetWorkgroup' ], List: [ 'ListCustomDomainAssociations', 'ListEndpointAccess', 'ListManagedWorkgroups', 'ListNamespaces', 'ListRecoveryPoints', 'ListReservationOfferings', 'ListReservations', 'ListScheduledActions', 'ListSnapshotCopyConfigurations', 'ListSnapshots', 'ListTableRestoreStatus', 'ListTagsForResource', 'ListTracks', 'ListUsageLimits', 'ListWorkgroups' ], Tagging: [ 'TagResource', 'UntagResource' ] }; } /** * Grants permission to convert a recovery point to a snapshot * * Access Level: Write * * Possible conditions: * - .ifAwsRequestTag() * - .ifAwsTagKeys() * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_ConvertRecoveryPointToSnapshot.html */ toConvertRecoveryPointToSnapshot() { return this.to('ConvertRecoveryPointToSnapshot'); } /** * Grants permission to create a custom domain association in Amazon Redshift Serverless * * Access Level: Write * * Dependent actions: * - acm:DescribeCertificate * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_CreateCustomDomainAssociation.html */ toCreateCustomDomainAssociation() { return this.to('CreateCustomDomainAssociation'); } /** * Grants permission to create an Amazon Redshift Serverless managed VPC endpoint * * Access Level: Write * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_CreateEndpointAccess.html */ toCreateEndpointAccess() { return this.to('CreateEndpointAccess'); } /** * Grants permission to create an Amazon Redshift Serverless namespace * * Access Level: Write * * Possible conditions: * - .ifAwsRequestTag() * - .ifAwsTagKeys() * * Dependent actions: * - kms:CreateGrant * - kms:Decrypt * - kms:DescribeKey * - kms:GenerateDataKey * - kms:RetireGrant * - secretsmanager:CreateSecret * - secretsmanager:DeleteSecret * - secretsmanager:DescribeSecret * - secretsmanager:GetRandomPassword * - secretsmanager:RotateSecret * - secretsmanager:TagResource * - secretsmanager:UpdateSecret * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_CreateNamespace.html */ toCreateNamespace() { return this.to('CreateNamespace'); } /** * Grants permission to purchase a capacity reservation according to a specific reservation offering, for a specified number of RPUs * * Access Level: Write * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_CreateReservation.html */ toCreateReservation() { return this.to('CreateReservation'); } /** * Grants permission to create a scheduled action for a specified Amazon Redshift Serverless namespace * * Access Level: Write * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_CreateScheduledAction.html */ toCreateScheduledAction() { return this.to('CreateScheduledAction'); } /** * Grants permission to create a snapshot of all databases in a namespace * * Access Level: Write * * Possible conditions: * - .ifAwsRequestTag() * - .ifAwsTagKeys() * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_CreateSnapshot.html */ toCreateSnapshot() { return this.to('CreateSnapshot'); } /** * Grants permission to create a snapshot copy configuration for a specified Amazon Redshift Serverless namespace * * Access Level: Write * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_CreateSnapshotCopyConfiguration.html */ toCreateSnapshotCopyConfiguration() { return this.to('CreateSnapshotCopyConfiguration'); } /** * Grants permission to create a usage limit for a specified Amazon Redshift Serverless usage type * * Access Level: Write * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_CreateUsageLimit.html */ toCreateUsageLimit() { return this.to('CreateUsageLimit'); } /** * Grants permission to create a workgroup in Amazon Redshift Serverless * * Access Level: Write * * Possible conditions: * - .ifAwsRequestTag() * - .ifAwsTagKeys() * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_CreateWorkgroup.html */ toCreateWorkgroup() { return this.to('CreateWorkgroup'); } /** * Grants permission to delete a custom domain association * * Access Level: Write * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_DeleteCustomDomainAssociation.html */ toDeleteCustomDomainAssociation() { return this.to('DeleteCustomDomainAssociation'); } /** * Grants permission to delete an Amazon Redshift Serverless managed VPC endpoint * * Access Level: Write * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_DeleteEndpointAccess.html */ toDeleteEndpointAccess() { return this.to('DeleteEndpointAccess'); } /** * Grants permission to delete a namespace from Amazon Redshift Serverless * * Access Level: Write * * Dependent actions: * - kms:DescribeKey * - kms:RetireGrant * - secretsmanager:DeleteSecret * - secretsmanager:DescribeSecret * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_DeleteNamespace.html */ toDeleteNamespace() { return this.to('DeleteNamespace'); } /** * Grants permission to delete the specified resource policy * * Access Level: Write * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_DeleteResourcePolicy.html */ toDeleteResourcePolicy() { return this.to('DeleteResourcePolicy'); } /** * Grants permission to delete a scheduled action from Amazon Redshift Serverless * * Access Level: Write * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_DeleteScheduledAction.html */ toDeleteScheduledAction() { return this.to('DeleteScheduledAction'); } /** * Grants permission to delete a snapshot from Amazon Redshift Serverless * * Access Level: Write * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_DeleteSnapshot.html */ toDeleteSnapshot() { return this.to('DeleteSnapshot'); } /** * Grants permission to delete a snapshot copy configuration for a Amazon Redshift Serverless namespace * * Access Level: Write * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_DeleteSnapshotCopyConfiguration.html */ toDeleteSnapshotCopyConfiguration() { return this.to('DeleteSnapshotCopyConfiguration'); } /** * Grants permission to delete a usage limit from Amazon Redshift Serverless * * Access Level: Write * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_DeleteUsageLimit.html */ toDeleteUsageLimit() { return this.to('DeleteUsageLimit'); } /** * Grants permission to delete a workgroup * * Access Level: Write * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_DeleteWorkgroup.html */ toDeleteWorkgroup() { return this.to('DeleteWorkgroup'); } /** * Grants permission to see on the Amazon Redshift Serverless console the remaining number of free trial credits and their expiration date * * Access Level: Read * * https://aws.amazon.com/redshift/free-trial/ */ toDescribeOneTimeCredit() { return this.to('DescribeOneTimeCredit'); } /** * Grants permission to get a database user name and temporary password with temporary authorization to log on to Amazon Redshift Serverless * * Access Level: Write * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_GetCredentials.html */ toGetCredentials() { return this.to('GetCredentials'); } /** * Grants permission to get information about a specific custom domain association * * Access Level: Read * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_GetCustomDomainAssociation.html */ toGetCustomDomainAssociation() { return this.to('GetCustomDomainAssociation'); } /** * Grants permission to create an Amazon Redshift Serverless managed VPC endpoint * * Access Level: Read * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_GetEndpointAccess.html */ toGetEndpointAccess() { return this.to('GetEndpointAccess'); } /** * Grants permission to create a Amazon Redshift Managed Serverless workgroup with the specified configuration settings * * Access Level: Read * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_GetManagedWorkgroup.html */ toGetManagedWorkgroup() { return this.to('GetManagedWorkgroup'); } /** * Grants permission to get information about a namespace in Amazon Redshift Serverless * * Access Level: Read * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_GetNamespace.html */ toGetNamespace() { return this.to('GetNamespace'); } /** * Grants permission to get information about a recovery point * * Access Level: Read * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_GetRecoveryPoint.html */ toGetRecoveryPoint() { return this.to('GetRecoveryPoint'); } /** * Grants permission to get a particular reservation object * * Access Level: Read * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_GetReservation.html */ toGetReservation() { return this.to('GetReservation'); } /** * Grants permission to get a particular reservation offering * * Access Level: Read * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_GetReservationOffering.html */ toGetReservationOffering() { return this.to('GetReservationOffering'); } /** * Grants permission to get a resource policy * * Access Level: Read * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_GetResourcePolicy.html */ toGetResourcePolicy() { return this.to('GetResourcePolicy'); } /** * Grants permission to get information about a specific scheduled action * * Access Level: Read * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_GetScheduledAction.html */ toGetScheduledAction() { return this.to('GetScheduledAction'); } /** * Grants permission to get information about a specific snapshot * * Access Level: Read * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_GetSnapshot.html */ toGetSnapshot() { return this.to('GetSnapshot'); } /** * Grants permission to get table restore status about a specific snapshot * * Access Level: Read * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_GetTableRestoreStatus.html */ toGetTableRestoreStatus() { return this.to('GetTableRestoreStatus'); } /** * Grants permission to get information about a track in Amazon Redshift Serverless * * Access Level: Read * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_GetTrack.html */ toGetTrack() { return this.to('GetTrack'); } /** * Grants permission to get information about a usage limit in Amazon Redshift Serverless * * Access Level: Read * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_GetUsageLimit.html */ toGetUsageLimit() { return this.to('GetUsageLimit'); } /** * Grants permission to get information about a specific workgroup * * Access Level: Read * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_GetWorkgroup.html */ toGetWorkgroup() { return this.to('GetWorkgroup'); } /** * Grants permission to list custom domain associations in Amazon Redshift Serverless * * Access Level: List * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_ListCustomDomainAssociations.html */ toListCustomDomainAssociations() { return this.to('ListCustomDomainAssociations'); } /** * Grants permission to list EndpointAccess objects and relevant information * * Access Level: List * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_ListEndpointAccess.html */ toListEndpointAccess() { return this.to('ListEndpointAccess'); } /** * Grants permission to list managed workgroups in Amazon Redshift Serverless * * Access Level: List * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_ListManagedWorkgroups.html */ toListManagedWorkgroups() { return this.to('ListManagedWorkgroups'); } /** * Grants permission to list namespaces in Amazon Redshift Serverless * * Access Level: List * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_ListNamespaces.html */ toListNamespaces() { return this.to('ListNamespaces'); } /** * Grants permission to list an array of recovery points * * Access Level: List * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_ListRecoveryPoints.html */ toListRecoveryPoints() { return this.to('ListRecoveryPoints'); } /** * Grants permission to list all available capacity reservation offerings * * Access Level: List * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_ListReservationOfferings.html */ toListReservationOfferings() { return this.to('ListReservationOfferings'); } /** * Grants permission to list all reservations * * Access Level: List * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_ListReservations.html */ toListReservations() { return this.to('ListReservations'); } /** * Grants permission to list scheduled actions * * Access Level: List * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_ListScheduledActions.html */ toListScheduledActions() { return this.to('ListScheduledActions'); } /** * Grants permission to list SnapshotCopyConfiguration objects and relevant information * * Access Level: List * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_ListSnapshotCopyConfigurations.html */ toListSnapshotCopyConfigurations() { return this.to('ListSnapshotCopyConfigurations'); } /** * Grants permission to list snapshots * * Access Level: List * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_ListSnapshots.html */ toListSnapshots() { return this.to('ListSnapshots'); } /** * Grants permission to list table restore status * * Access Level: List * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_ListTableRestoreStatus.html */ toListTableRestoreStatus() { return this.to('ListTableRestoreStatus'); } /** * Grants permission to list the tags assigned to a resource * * Access Level: List * * Possible conditions: * - .ifAwsResourceTag() * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_ListTagsForResource.html */ toListTagsForResource() { return this.to('ListTagsForResource'); } /** * Grants permission to list tracks available in Amazon Redshift Serverless * * Access Level: List * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_ListTracks.html */ toListTracks() { return this.to('ListTracks'); } /** * Grants permission to list all usage limits within Amazon Redshift Serverless * * Access Level: List * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_ListUsageLimits.html */ toListUsageLimits() { return this.to('ListUsageLimits'); } /** * Grants permission to list workgroups in Amazon Redshift Serverless * * Access Level: List * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_ListWorkgroups.html */ toListWorkgroups() { return this.to('ListWorkgroups'); } /** * Grants permission to create or update a resource policy * * Access Level: Write * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_PutResourcePolicy.html */ toPutResourcePolicy() { return this.to('PutResourcePolicy'); } /** * Grants permission to restore the data from a recovery point * * Access Level: Write * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_RestoreFromRecoveryPoint.html */ toRestoreFromRecoveryPoint() { return this.to('RestoreFromRecoveryPoint'); } /** * Grants permission to restore a namespace from a snapshot * * Access Level: Write * * Dependent actions: * - kms:CreateGrant * - kms:Decrypt * - kms:DescribeKey * - kms:GenerateDataKey * - kms:RetireGrant * - secretsmanager:CreateSecret * - secretsmanager:DeleteSecret * - secretsmanager:DescribeSecret * - secretsmanager:GetRandomPassword * - secretsmanager:RotateSecret * - secretsmanager:TagResource * - secretsmanager:UpdateSecret * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_RestoreFromSnapshot.html */ toRestoreFromSnapshot() { return this.to('RestoreFromSnapshot'); } /** * Grants permission to restore a table from a recovery point * * Access Level: Write * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_RestoreTableFromRecoveryPoint.html */ toRestoreTableFromRecoveryPoint() { return this.to('RestoreTableFromRecoveryPoint'); } /** * Grants permission to restore a table from a snapshot * * Access Level: Write * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_RestoreTableFromSnapshot.html */ toRestoreTableFromSnapshot() { return this.to('RestoreTableFromSnapshot'); } /** * Grants permission to assign one or more tags to a resource * * Access Level: Tagging * * Possible conditions: * - .ifAwsTagKeys() * - .ifAwsRequestTag() * - .ifAwsResourceTag() * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_TagResource.html */ toTagResource() { return this.to('TagResource'); } /** * Grants permission to remove a tag or set of tags from a resource * * Access Level: Tagging * * Possible conditions: * - .ifAwsTagKeys() * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_UntagResource.html */ toUntagResource() { return this.to('UntagResource'); } /** * Grants permission to update a certificate associated with a custom domain * * Access Level: Write * * Dependent actions: * - acm:DescribeCertificate * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_UpdateCustomDomainAssociation.html */ toUpdateCustomDomainAssociation() { return this.to('UpdateCustomDomainAssociation'); } /** * Grants permission to update an Amazon Redshift Serverless managed VPC endpoint * * Access Level: Write * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_UpdateEndpointAccess.html */ toUpdateEndpointAccess() { return this.to('UpdateEndpointAccess'); } /** * Grants permission to update a namespace with the specified configuration settings * * Access Level: Write * * Dependent actions: * - kms:CreateGrant * - kms:Decrypt * - kms:DescribeKey * - kms:GenerateDataKey * - kms:RetireGrant * - secretsmanager:CreateSecret * - secretsmanager:DeleteSecret * - secretsmanager:DescribeSecret * - secretsmanager:GetRandomPassword * - secretsmanager:RotateSecret * - secretsmanager:TagResource * - secretsmanager:UpdateSecret * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_UpdateNamespace.html */ toUpdateNamespace() { return this.to('UpdateNamespace'); } /** * Grants permission to update a scheduled action * * Access Level: Write * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_UpdateScheduledAction.html */ toUpdateScheduledAction() { return this.to('UpdateScheduledAction'); } /** * Grants permission to update a snapshot * * Access Level: Write * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_UpdateSnapshot.html */ toUpdateSnapshot() { return this.to('UpdateSnapshot'); } /** * Grants permission to update a snapshot copy configuration for a Amazon Redshift Serverless namespace * * Access Level: Write * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_UpdateSnapshotCopyConfiguration.html */ toUpdateSnapshotCopyConfiguration() { return this.to('UpdateSnapshotCopyConfiguration'); } /** * Grants permission to update a usage limit in Amazon Redshift Serverless * * Access Level: Write * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_UpdateUsageLimit.html */ toUpdateUsageLimit() { return this.to('UpdateUsageLimit'); } /** * Grants permission to update an Amazon Redshift Serverless workgroup with the specified configuration settings * * Access Level: Write * * https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_UpdateWorkgroup.html */ toUpdateWorkgroup() { return this.to('UpdateWorkgroup'); } /** * Adds a resource of type namespace to the statement * * https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-workgroup-namespace.html * * @param namespaceId - Identifier for the namespaceId. * @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account. * @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region. * @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition. * * Possible conditions: * - .ifAwsResourceTag() */ onNamespace(namespaceId, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:redshift-serverless:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:namespace/${namespaceId}`); } /** * Adds a resource of type snapshot to the statement * * https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-snapshots-recovery.html * * @param snapshotId - Identifier for the snapshotId. * @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account. * @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region. * @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition. * * Possible conditions: * - .ifAwsResourceTag() */ onSnapshot(snapshotId, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:redshift-serverless:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:snapshot/${snapshotId}`); } /** * Adds a resource of type workgroup to the statement * * https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-workgroup-namespace.html * * @param workgroupId - Identifier for the workgroupId. * @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account. * @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region. * @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition. * * Possible conditions: * - .ifAwsResourceTag() */ onWorkgroup(workgroupId, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:redshift-serverless:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:workgroup/${workgroupId}`); } /** * Adds a resource of type managed-workgroup to the statement * * https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-managed-workgroup-namespace.html * * @param managedWorkgroupName - Identifier for the managedWorkgroupName. * @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account. * @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region. * @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition. */ onManagedWorkgroup(managedWorkgroupName, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:redshift-serverless:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:managed-workgroup/${managedWorkgroupName}`); } /** * Adds a resource of type recoveryPoint to the statement * * https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-snapshots-recovery.html * * @param recoveryPointId - Identifier for the recoveryPointId. * @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account. * @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region. * @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition. * * Possible conditions: * - .ifAwsResourceTag() */ onRecoveryPoint(recoveryPointId, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:redshift-serverless:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:recoverypoint/${recoveryPointId}`); } /** * Adds a resource of type endpointAccess to the statement * * https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-connecting.html * * @param endpointAccessId - Identifier for the endpointAccessId. * @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account. * @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region. * @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition. */ onEndpointAccess(endpointAccessId, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:redshift-serverless:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:managedvpcendpoint/${endpointAccessId}`); } /** * Filters access by the tags that are passed in the request * * https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requesttag * * Applies to actions: * - .toConvertRecoveryPointToSnapshot() * - .toCreateNamespace() * - .toCreateSnapshot() * - .toCreateWorkgroup() * - .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 tags associated with the resource * * https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourcetag * * Applies to actions: * - .toListTagsForResource() * - .toTagResource() * * Applies to resource types: * - namespace * - snapshot * - workgroup * - recoveryPoint * * @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 that are passed in the request * * https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys * * Applies to actions: * - .toConvertRecoveryPointToSnapshot() * - .toCreateNamespace() * - .toCreateSnapshot() * - .toCreateWorkgroup() * - .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'); } /** * Filters access by the endpoint access identifier * * https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-policy-resources.resource-permissions.html * * @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` */ ifEndpointAccessId(value, operator) { return this.if(`endpointAccessId`, value, operator ?? 'StringLike'); } /** * Filters access by the managed workgroup identifier * * https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-policy-resources.resource-permissions.html * * @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` */ ifManagedWorkgroupName(value, operator) { return this.if(`managedWorkgroupName`, value, operator ?? 'StringLike'); } /** * Filters access by the namespace identifier * * https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-policy-resources.resource-permissions.html * * @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` */ ifNamespaceId(value, operator) { return this.if(`namespaceId`, value, operator ?? 'StringLike'); } /** * Filters access by the recovery point identifier * * https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-policy-resources.resource-permissions.html * * @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` */ ifRecoveryPointId(value, operator) { return this.if(`recoveryPointId`, value, operator ?? 'StringLike'); } /** * Filters access by the snapshot identifier * * https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-policy-resources.resource-permissions.html * * @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` */ ifSnapshotId(value, operator) { return this.if(`snapshotId`, value, operator ?? 'StringLike'); } /** * Filters access by the table restore request identifier * * https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-policy-resources.resource-permissions.html * * @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` */ ifTableRestoreRequestId(value, operator) { return this.if(`tableRestoreRequestId`, value, operator ?? 'StringLike'); } /** * Filters access by the workgroup identifier * * https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-policy-resources.resource-permissions.html * * @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` */ ifWorkgroupId(value, operator) { return this.if(`workgroupId`, value, operator ?? 'StringLike'); } } exports.RedshiftServerless = RedshiftServerless; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkc2hpZnRzZXJ2ZXJsZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicmVkc2hpZnRzZXJ2ZXJsZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHlDQUF5RDtBQUV6RDs7OztHQUlHO0FBQ0gsTUFBYSxrQkFBbUIsU0FBUSx3QkFBZTtJQUdyRDs7OztPQUlHO0lBQ0gsWUFBWSxHQUFZO1FBQ3RCLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQVJOLGtCQUFhLEdBQUcscUJBQXFCLENBQUM7UUF1eUJuQyxvQkFBZSxHQUFvQjtZQUMzQyxLQUFLLEVBQUU7Z0JBQ0wsZ0NBQWdDO2dCQUNoQywrQkFBK0I7Z0JBQy9CLHNCQUFzQjtnQkFDdEIsaUJBQWlCO2dCQUNqQixtQkFBbUI7Z0JBQ25CLHVCQUF1QjtnQkFDdkIsZ0JBQWdCO2dCQUNoQixpQ0FBaUM7Z0JBQ2pDLGtCQUFrQjtnQkFDbEIsaUJBQWlCO2dCQUNqQiwrQkFBK0I7Z0JBQy9CLHNCQUFzQjtnQkFDdEIsaUJBQWlCO2dCQUNqQixzQkFBc0I7Z0JBQ3RCLHVCQUF1QjtnQkFDdkIsZ0JBQWdCO2dCQUNoQixpQ0FBaUM7Z0JBQ2pDLGtCQUFrQjtnQkFDbEIsaUJBQWlCO2dCQUNqQixnQkFBZ0I7Z0JBQ2hCLG1CQUFtQjtnQkFDbkIsMEJBQTBCO2dCQUMxQixxQkFBcUI7Z0JBQ3JCLCtCQUErQjtnQkFDL0IsMEJBQTBCO2dCQUMxQiwrQkFBK0I7Z0JBQy9CLHNCQUFzQjtnQkFDdEIsaUJBQWlCO2dCQUNqQix1QkFBdUI7Z0JBQ3ZCLGdCQUFnQjtnQkFDaEIsaUNBQWlDO2dCQUNqQyxrQkFBa0I7Z0JBQ2xCLGlCQUFpQjthQUNsQjtZQUNELElBQUksRUFBRTtnQkFDSix1QkFBdUI7Z0JBQ3ZCLDRCQUE0QjtnQkFDNUIsbUJBQW1CO2dCQUNuQixxQkFBcUI7Z0JBQ3JCLGNBQWM7Z0JBQ2Qsa0JBQWtCO2dCQUNsQixnQkFBZ0I7Z0JBQ2hCLHdCQUF3QjtnQkFDeEIsbUJB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