iam-floyd
Version:
AWS IAM policy statement generator with fluent interface
1,055 lines • 104 kB
JavaScript
"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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