cdk-iam-floyd
Version:
AWS IAM policy statement generator with fluent interface for AWS CDK
1,066 lines • 96.5 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Athena = void 0;
const shared_1 = require("../../shared");
/**
* Statement provider for service [athena](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html).
*
* @param sid [SID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html) of the statement
*/
class Athena extends shared_1.PolicyStatement {
/**
* Grants permission to get information about one or more named queries
*
* Access Level: Read
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_BatchGetNamedQuery.html
*/
toBatchGetNamedQuery() {
return this.to('BatchGetNamedQuery');
}
/**
* Grants permission to get information about one or more prepared statements
*
* Access Level: Read
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_BatchGetPreparedStatement.html
*/
toBatchGetPreparedStatement() {
return this.to('BatchGetPreparedStatement');
}
/**
* Grants permission to get information about one or more query executions
*
* Access Level: Read
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_BatchGetQueryExecution.html
*/
toBatchGetQueryExecution() {
return this.to('BatchGetQueryExecution');
}
/**
* Grants permission to cancel a capacity reservation
*
* Access Level: Write
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_CancelCapacityReservation.html
*/
toCancelCapacityReservation() {
return this.to('CancelCapacityReservation');
}
/**
* Grants permission to cancel query execution. Deprecated. Applies only to AWS services and principals that use Athena JDBC driver earlier than 1.1.0. Use StopQueryExecution otherwise
*
* Access Level: Write
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_StopQueryExecution.html
*/
toCancelQueryExecution() {
return this.to('CancelQueryExecution');
}
/**
* Grants permission to create a capacity reservation
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_CreateCapacityReservation.html
*/
toCreateCapacityReservation() {
return this.to('CreateCapacityReservation');
}
/**
* Grants permission to create a datacatalog
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_CreateDataCatalog.html
*/
toCreateDataCatalog() {
return this.to('CreateDataCatalog');
}
/**
* Grants permission to create a named query
*
* Access Level: Write
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_CreateNamedQuery.html
*/
toCreateNamedQuery() {
return this.to('CreateNamedQuery');
}
/**
* Grants permission to create a notebook
*
* Access Level: Write
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_CreateNotebook.html
*/
toCreateNotebook() {
return this.to('CreateNotebook');
}
/**
* Grants permission to create a prepared statement
*
* Access Level: Write
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_CreatePreparedStatement.html
*/
toCreatePreparedStatement() {
return this.to('CreatePreparedStatement');
}
/**
* Grants permission to create a presigned notebook url
*
* Access Level: Write
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_CreatePresignedNotebookUrl.html
*/
toCreatePresignedNotebookUrl() {
return this.to('CreatePresignedNotebookUrl');
}
/**
* Grants permission to create a workgroup
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_CreateWorkGroup.html
*/
toCreateWorkGroup() {
return this.to('CreateWorkGroup');
}
/**
* Grants permission to delete a capacity reservation
*
* Access Level: Write
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_DeleteCapacityReservation.html
*/
toDeleteCapacityReservation() {
return this.to('DeleteCapacityReservation');
}
/**
* Grants permission to delete a datacatalog
*
* Access Level: Write
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_DeleteDataCatalog.html
*/
toDeleteDataCatalog() {
return this.to('DeleteDataCatalog');
}
/**
* Grants permission to delete a named query specified
*
* Access Level: Write
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_DeleteNamedQuery.html
*/
toDeleteNamedQuery() {
return this.to('DeleteNamedQuery');
}
/**
* Grants permission to delete a notebook
*
* Access Level: Write
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_DeleteNotebook.html
*/
toDeleteNotebook() {
return this.to('DeleteNotebook');
}
/**
* Grants permission to delete a prepared statement specified
*
* Access Level: Write
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_DeletePreparedStatement.html
*/
toDeletePreparedStatement() {
return this.to('DeletePreparedStatement');
}
/**
* Grants permission to delete a workgroup
*
* Access Level: Write
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_DeleteWorkGroup.html
*/
toDeleteWorkGroup() {
return this.to('DeleteWorkGroup');
}
/**
* Grants permission to export a notebook
*
* Access Level: Write
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_ExportNotebook.html
*/
toExportNotebook() {
return this.to('ExportNotebook');
}
/**
* Grants permission to get a calculation execution
*
* Access Level: Read
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_GetCalculationExecution.html
*/
toGetCalculationExecution() {
return this.to('GetCalculationExecution');
}
/**
* Grants permission to get a calculation execution code
*
* Access Level: Read
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_GetCalculationExecutionCode.html
*/
toGetCalculationExecutionCode() {
return this.to('GetCalculationExecutionCode');
}
/**
* Grants permission to get a calculation execution status
*
* Access Level: Read
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_GetCalculationExecutionStatus.html
*/
toGetCalculationExecutionStatus() {
return this.to('GetCalculationExecutionStatus');
}
/**
* Grants permission to get capacity assignment information for a capacity reservation
*
* Access Level: Read
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_GetCapacityAssignmentConfiguration.html
*/
toGetCapacityAssignmentConfiguration() {
return this.to('GetCapacityAssignmentConfiguration');
}
/**
* Grants permission to get a capacity reservation
*
* Access Level: Read
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_GetCapacityReservation.html
*/
toGetCapacityReservation() {
return this.to('GetCapacityReservation');
}
/**
* Grants permission to enable access to databases and tables. Applies only to AWS services managed policy and principals that use an Athena JDBC driver version 1.1.0
*
* Access Level: Read
*
* https://docs.aws.amazon.com/athena/latest/ug/connect-with-previous-jdbc.html#jdbc-prev-version-policies
*/
toGetCatalogs() {
return this.to('GetCatalogs');
}
/**
* Grants permission to get a datacatalog
*
* Access Level: Read
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_GetDataCatalog.html
*/
toGetDataCatalog() {
return this.to('GetDataCatalog');
}
/**
* Grants permission to get a database for a given datacatalog
*
* Access Level: Read
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_GetDatabase.html
*/
toGetDatabase() {
return this.to('GetDatabase');
}
/**
* Grants permission to enable access to the specified database and table. Applies only to AWS services managed policy and principals that use an Athena JDBC driver version 1.1.0
*
* Access Level: Read
*
* https://docs.aws.amazon.com/athena/latest/ug/connect-with-previous-jdbc.html#jdbc-prev-version-policies
*/
toGetExecutionEngine() {
return this.to('GetExecutionEngine');
}
/**
* Grants permission to enable access to databases and tables. Applies only to AWS services managed policy and principals that use an Athena JDBC driver version 1.1.0
*
* Access Level: Read
*
* https://docs.aws.amazon.com/athena/latest/ug/connect-with-previous-jdbc.html#jdbc-prev-version-policies
*/
toGetExecutionEngines() {
return this.to('GetExecutionEngines');
}
/**
* Grants permission to get information about the specified named query
*
* Access Level: Read
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_GetNamedQuery.html
*/
toGetNamedQuery() {
return this.to('GetNamedQuery');
}
/**
* Grants permission to enable access to the specified database and table. Applies only to AWS services managed policy and principals that use an Athena JDBC driver version 1.1.0
*
* Access Level: Read
*
* https://docs.aws.amazon.com/athena/latest/ug/connect-with-previous-jdbc.html#jdbc-prev-version-policies
*/
toGetNamespace() {
return this.to('GetNamespace');
}
/**
* Grants permission to enable access to databases and tables. Applies only to AWS services managed policy and principals that use an Athena JDBC driver version 1.1.0
*
* Access Level: Read
*
* https://docs.aws.amazon.com/athena/latest/ug/connect-with-previous-jdbc.html#jdbc-prev-version-policies
*/
toGetNamespaces() {
return this.to('GetNamespaces');
}
/**
* Grants permission to get notebook metadata
*
* Access Level: Read
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_GetNotebookMetadata.html
*/
toGetNotebookMetadata() {
return this.to('GetNotebookMetadata');
}
/**
* Grants permission to get information about the specified prepared statement
*
* Access Level: Read
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_GetPreparedStatement.html
*/
toGetPreparedStatement() {
return this.to('GetPreparedStatement');
}
/**
* Grants permission to get information about the specified query execution
*
* Access Level: Read
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_GetQueryExecution.html
*/
toGetQueryExecution() {
return this.to('GetQueryExecution');
}
/**
* Grants permission to get query executions. Deprecated. Applies only to AWS services and principals that use Athena JDBC driver earlier than 1.1.0. Use ListQueryExecutions otherwise
*
* Access Level: Read
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_ListQueryExecutions.html
*/
toGetQueryExecutions() {
return this.to('GetQueryExecutions');
}
/**
* Grants permission to get the query results
*
* Access Level: Read
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_GetQueryResults.html
*/
toGetQueryResults() {
return this.to('GetQueryResults');
}
/**
* Grants permission to get the query results stream
*
* Access Level: Read
*
* https://docs.aws.amazon.com/athena/latest/ug/jdbc-v3-driver.html#jdbc-v3-driver-download
*/
toGetQueryResultsStream() {
return this.to('GetQueryResultsStream');
}
/**
* Grants permission to get runtime statistics for the specified query execution
*
* Access Level: Read
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_GetQueryRuntimeStatistics.html
*/
toGetQueryRuntimeStatistics() {
return this.to('GetQueryRuntimeStatistics');
}
/**
* Grants permission to get a Live UI/Persistence UI for a session
*
* Access Level: Read
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_GetResourceDashboard.html
*/
toGetResourceDashboard() {
return this.to('GetResourceDashboard');
}
/**
* Grants permission to get a session
*
* Access Level: Read
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_GetSession.html
*/
toGetSession() {
return this.to('GetSession');
}
/**
* Grants permission to get a connection endpoint and authentication token for a given session Id
*
* Access Level: Write
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_GetSessionEndpoint.html
*/
toGetSessionEndpoint() {
return this.to('GetSessionEndpoint');
}
/**
* Grants permission to get a session status
*
* Access Level: Read
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_GetSessionStatus.html
*/
toGetSessionStatus() {
return this.to('GetSessionStatus');
}
/**
* Grants permission to enable access to the specified table. Applies only to AWS services managed policy and principals that use an Athena JDBC driver version 1.1.0
*
* Access Level: Read
*
* https://docs.aws.amazon.com/athena/latest/ug/connect-with-previous-jdbc.html#jdbc-prev-version-policies
*/
toGetTable() {
return this.to('GetTable');
}
/**
* Grants permission to get a metadata about a table for a given datacatalog
*
* Access Level: Read
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_GetTableMetadata.html
*/
toGetTableMetadata() {
return this.to('GetTableMetadata');
}
/**
* Grants permission to enable access to tables. Applies only to AWS services managed policy and principals that use an Athena JDBC driver version 1.1.0
*
* Access Level: Read
*
* https://docs.aws.amazon.com/athena/latest/ug/connect-with-previous-jdbc.html#jdbc-prev-version-policies
*/
toGetTables() {
return this.to('GetTables');
}
/**
* Grants permission to get a workgroup
*
* Access Level: Read
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_GetWorkGroup.html
*/
toGetWorkGroup() {
return this.to('GetWorkGroup');
}
/**
* Grants permission to import a notebook
*
* Access Level: Write
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_ImportNotebook.html
*/
toImportNotebook() {
return this.to('ImportNotebook');
}
/**
* Grants permission to return a list of ApplicationRuntimeIds
*
* Access Level: List
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_ListApplicationDPUSizes.html
*/
toListApplicationDPUSizes() {
return this.to('ListApplicationDPUSizes');
}
/**
* Grants permission to return a list of calculation executions
*
* Access Level: List
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_ListCalculationExecutions.html
*/
toListCalculationExecutions() {
return this.to('ListCalculationExecutions');
}
/**
* Grants permission to return a list of capacity reservations for the specified AWS account
*
* Access Level: List
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_ListCapacityReservations.html
*/
toListCapacityReservations() {
return this.to('ListCapacityReservations');
}
/**
* Grants permission to return a list of datacatalogs for the specified AWS account
*
* Access Level: List
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_ListDataCatalogs.html
*/
toListDataCatalogs() {
return this.to('ListDataCatalogs');
}
/**
* Grants permission to return a list of databases for a given datacatalog
*
* Access Level: List
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_ListDatabases.html
*/
toListDatabases() {
return this.to('ListDatabases');
}
/**
* Grants permission to return a list of athena engine versions for the specified AWS account
*
* Access Level: Read
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_ListEngineVersions.html
*/
toListEngineVersions() {
return this.to('ListEngineVersions');
}
/**
* Grants permission to return a list of executors
*
* Access Level: List
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_ListExecutors.html
*/
toListExecutors() {
return this.to('ListExecutors');
}
/**
* Grants permission to return a list of named queries in Amazon Athena for the specified AWS account
*
* Access Level: List
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_ListNamedQueries.html
*/
toListNamedQueries() {
return this.to('ListNamedQueries');
}
/**
* Grants permission to return a list of notebooks for a given workgroup
*
* Access Level: List
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_ListNotebookMetadata.html
*/
toListNotebookMetadata() {
return this.to('ListNotebookMetadata');
}
/**
* Grants permission to return a list of sessions for a given notebook
*
* Access Level: List
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_ListNotebookSessions.html
*/
toListNotebookSessions() {
return this.to('ListNotebookSessions');
}
/**
* Grants permission to return a list of prepared statements for the specified workgroup
*
* Access Level: List
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_ListPreparedStatements.html
*/
toListPreparedStatements() {
return this.to('ListPreparedStatements');
}
/**
* Grants permission to return a list of query executions for the specified AWS account
*
* Access Level: Read
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_ListQueryExecutions.html
*/
toListQueryExecutions() {
return this.to('ListQueryExecutions');
}
/**
* Grants permission to return a list of sessions for a given workgroup
*
* Access Level: List
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_ListSessions.html
*/
toListSessions() {
return this.to('ListSessions');
}
/**
* Grants permission to return a list of table metadata in a database for a given datacatalog
*
* Access Level: Read
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_ListTableMetadata.html
*/
toListTableMetadata() {
return this.to('ListTableMetadata');
}
/**
* Grants permission to return a list of tags for a resource
*
* Access Level: Read
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_ListTagsForResource.html
*/
toListTagsForResource() {
return this.to('ListTagsForResource');
}
/**
* Grants permission to return a list of workgroups for the specified AWS account
*
* Access Level: List
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_ListWorkGroups.html
*/
toListWorkGroups() {
return this.to('ListWorkGroups');
}
/**
* Grants permission to assign capacity from a capacity reservation to queries
*
* Access Level: Write
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_PutCapacityAssignmentConfiguration.html
*/
toPutCapacityAssignmentConfiguration() {
return this.to('PutCapacityAssignmentConfiguration');
}
/**
* Grants permission to run a query. Deprecated. Applies only to AWS services and principals that use Athena JDBC driver earlier than 1.1.0. Use StartQueryExecution otherwise
*
* Access Level: Write
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_StartQueryExecution.html
*/
toRunQuery() {
return this.to('RunQuery');
}
/**
* Grants permission to start a calculation execution
*
* Access Level: Write
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_StartCalculationExecution.html
*/
toStartCalculationExecution() {
return this.to('StartCalculationExecution');
}
/**
* Grants permission to start a query execution using an SQL query provided as a string
*
* Access Level: Write
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_StartQueryExecution.html
*/
toStartQueryExecution() {
return this.to('StartQueryExecution');
}
/**
* Grants permission to start a session
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_StartSession.html
*/
toStartSession() {
return this.to('StartSession');
}
/**
* Grants permission to stop a calculation execution
*
* Access Level: Write
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_StopCalculationExecution.html
*/
toStopCalculationExecution() {
return this.to('StopCalculationExecution');
}
/**
* Grants permission to stop the specified query execution
*
* Access Level: Write
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_StopQueryExecution.html
*/
toStopQueryExecution() {
return this.to('StopQueryExecution');
}
/**
* Grants permission to add a tag to a resource
*
* Access Level: Tagging
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_TagResource.html
*/
toTagResource() {
return this.to('TagResource');
}
/**
* Grants permission to terminate a session
*
* Access Level: Write
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_TerminateSession.html
*/
toTerminateSession() {
return this.to('TerminateSession');
}
/**
* Grants permission to remove a tag from a resource
*
* Access Level: Tagging
*
* Possible conditions:
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_UntagResource.html
*/
toUntagResource() {
return this.to('UntagResource');
}
/**
* Grants permission to update a capacity reservation
*
* Access Level: Write
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_UpdateCapacityReservation.html
*/
toUpdateCapacityReservation() {
return this.to('UpdateCapacityReservation');
}
/**
* Grants permission to update a datacatalog
*
* Access Level: Write
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_UpdateDataCatalog.html
*/
toUpdateDataCatalog() {
return this.to('UpdateDataCatalog');
}
/**
* Grants permission to update a named query specified
*
* Access Level: Write
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_UpdateNamedQuery.html
*/
toUpdateNamedQuery() {
return this.to('UpdateNamedQuery');
}
/**
* Grants permission to update a notebook
*
* Access Level: Write
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_UpdateNotebook.html
*/
toUpdateNotebook() {
return this.to('UpdateNotebook');
}
/**
* Grants permission to update notebook metadata
*
* Access Level: Write
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_UpdateNotebookMetadata.html
*/
toUpdateNotebookMetadata() {
return this.to('UpdateNotebookMetadata');
}
/**
* Grants permission to update a prepared statement
*
* Access Level: Write
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_UpdatePreparedStatement.html
*/
toUpdatePreparedStatement() {
return this.to('UpdatePreparedStatement');
}
/**
* Grants permission to update a workgroup
*
* Access Level: Write
*
* https://docs.aws.amazon.com/athena/latest/APIReference/API_UpdateWorkGroup.html
*/
toUpdateWorkGroup() {
return this.to('UpdateWorkGroup');
}
/**
* Adds a resource of type datacatalog to the statement
*
* https://docs.aws.amazon.com/athena/latest/ug/datacatalogs-example-policies.html
*
* @param dataCatalogName - Identifier for the dataCatalogName.
* @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()
*/
onDatacatalog(dataCatalogName, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:athena:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:datacatalog/${dataCatalogName}`);
}
/**
* Adds a resource of type workgroup to the statement
*
* https://docs.aws.amazon.com/athena/latest/ug/example-policies-workgroup.html
*
* @param workGroupName - Identifier for the workGroupName.
* @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(workGroupName, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:athena:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:workgroup/${workGroupName}`);
}
/**
* Adds a resource of type capacity-reservation to the statement
*
* https://docs.aws.amazon.com/athena/latest/ug/example-policies-capacity-reservations.html
*
* @param capacityReservationName - Identifier for the capacityReservationName.
* @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()
*/
onCapacityReservation(capacityReservationName, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:athena:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:capacity-reservation/${capacityReservationName}`);
}
/**
* Adds a resource of type session to the statement
*
* https://docs.aws.amazon.com/athena/latest/ug/example-policies-workgroup.html
*
* @param workGroupName - Identifier for the workGroupName.
* @param sessionId - Identifier for the sessionId.
* @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()
*/
onSession(workGroupName, sessionId, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:athena:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:workgroup/${workGroupName}/session/${sessionId}`);
}
/**
* Filters access by the presence of 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:
* - .toCreateCapacityReservation()
* - .toCreateDataCatalog()
* - .toCreateWorkGroup()
* - .toStartSession()
* - .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 attached to the resource
*
* https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourcetag
*
* Applies to resource types:
* - datacatalog
* - workgroup
* - capacity-reservation
* - session
*
* @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 the presence of tag keys in the request
*
* https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys
*
* Applies to actions:
* - .toCreateCapacityReservation()
* - .toCreateDataCatalog()
* - .toCreateWorkGroup()
* - .toStartSession()
* - .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 [athena](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html).
*
*/
constructor(props) {
super(props);
this.servicePrefix = 'athena';
this.accessLevelList = {
Read: [
'BatchGetNamedQuery',
'BatchGetPreparedStatement',
'BatchGetQueryExecution',
'GetCalculationExecution',
'GetCalculationExecutionCode',
'GetCalculationExecutionStatus',
'GetCapacityAssignmentConfiguration',
'GetCapacityReservation',
'GetCatalogs',
'GetDataCatalog',
'GetDatabase',
'GetExecutionEngine',
'GetExecutionEngines',
'GetNamedQuery',
'GetNamespace',
'GetNamespaces',
'GetNotebookMetadata',
'GetPreparedStatement',
'GetQueryExecution',
'GetQueryExecutions',
'GetQueryResults',
'GetQueryResultsStream',
'GetQueryRuntimeStatistics',
'GetResourceDashboard',
'GetSession',
'GetSessionStatus',
'GetTable',
'GetTableMetadata',
'GetTables',
'GetWorkGroup',
'ListEngineVersions',
'ListQueryExecutions',
'ListTableMetadata',
'ListTagsForResource'
],
Write: [
'CancelCapacityReservation',
'CancelQueryExecution',
'CreateCapacityReservation',
'CreateDataCatalog',
'CreateNamedQuery',
'CreateNotebook',
'CreatePreparedStatement',
'CreatePresignedNotebookUrl',
'CreateWorkGroup',
'DeleteCapacityReservation',
'DeleteDataCatalog',
'DeleteNamedQuery',
'DeleteNotebook',
'DeletePreparedStatement',
'DeleteWorkGroup',
'ExportNotebook',
'GetSessionEndpoint',
'ImportNotebook',
'PutCapacityAssignmentConfiguration',
'RunQuery',
'StartCalculationExecution',
'StartQueryExecution',
'StartSession',
'StopCalculationExecution',
'StopQueryExecution',
'TerminateSession',
'UpdateCapacityReservation',
'UpdateDataCatalog',
'UpdateNamedQuery',
'UpdateNotebook',
'UpdateNotebookMetadata',
'UpdatePreparedStatement',
'UpdateWorkGroup'
],
List: [
'ListApplicationDPUSizes',
'ListCalculationExecutions',
'ListCapacityReservations',
'ListDataCatalogs',
'ListDatabases',
'ListExecutors',
'ListNamedQueries',
'ListNotebookMetadata',
'ListNotebookSessions',
'ListPreparedStatements',
'ListSessions',
'ListWorkGroups'
],
Tagging: [
'TagResource',
'UntagResource'
]
};
}
}
exports.Athena = Athena;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRoZW5hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXRoZW5hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHlDQUF5RDtBQUd6RDs7OztHQUlHO0FBQ0gsTUFBYSxNQUFPLFNBQVEsd0JBQWU7SUFHekM7Ozs7OztPQU1HO0lBQ0ksb0JBQW9CO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSwyQkFBMkI7UUFDaEMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLDJCQUEyQixDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLHdCQUF3QjtRQUM3QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksMkJBQTJCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxzQkFBc0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSwyQkFBMkI7UUFDaEMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLDJCQUEyQixDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxtQkFBbUI7UUFDeEIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLGtCQUFrQjtRQUN2QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksZ0JBQWdCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLEVBQUUs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QkFBa0I7Z0JBQ2xCLFdBQVc7Z0JBQ1gsY0FBYztnQkFDZCxvQkFBb0I7Z0JBQ3BCLHFCQUFxQjtnQkFDckIsbUJBQW1CO2dCQUNuQixxQkFBcUI7YUFDdEI7WUFDRCxLQUFLLEVBQUU7Z0JBQ0wsMkJBQTJCO2dCQUMzQixzQkFBc0I7Z0JBQ3RCLDJCQUEyQjtnQkFDM0IsbUJBQW1CO2dCQUNuQixrQkFBa0I7Z0JBQ2xCLGdCQUFnQjtnQkFDaEIseUJBQXlCO2dCQUN6Qiw0QkFBNEI7Z0JBQzVCLGlCQUFpQjtnQkFDakIsMkJBQTJCO2dCQUMzQixtQkFBbUI7Z0JBQ25CLGtCQUFrQjtnQkFDbEIsZ0JBQWdCO2dCQUNoQix5QkFBeUI7Z0JBQ3pCLGlCQUFpQjtnQkFDakIsZ0JBQWdCO2dCQUNoQixvQkFBb0I7Z0JBQ3BCLGdCQUFnQjtnQkFDaEIsb0NBQW9DO2dCQUNwQyxVQUFVO2dCQUNWLDJCQUEyQjtnQkFDM0IscUJBQXFCO2dCQUNyQixjQUFjO2dCQUNkLDBCQUEwQjtnQkFDMUIsb0JBQW9CO2dCQUNwQixrQkFBa0I7Z0JBQ2xCLDJCQUEyQjtnQkFDM0IsbUJBQW1CO2dCQUNuQixrQkFBa0I7Z0JBQ2xCLGdCQUFnQjtnQkFDaEIsd0JBQXdCO2dCQUN4Qix5QkFBeUI7Z0JBQ3pCLGlCQUFpQjthQUNsQjtZQUNELElBQUksRUFBRTtnQkFDSix5QkFBeUI7Z0JBQ3pCLDJCQUEyQjtnQkFDM0IsMEJBQTBCO2dCQUMxQixrQkFBa0I7Z0JBQ2xCLGVBQWU7Z0JBQ2YsZUFBZTtnQkFDZixrQkFBa0I7Z0JBQ2xCLHNCQUFzQjtnQkFDdEIsc0JBQXNCO2dCQUN0Qix3QkFBd0I7Z0JBQ3hCLGNBQWM7Z0JBQ2QsZ0JBQWdCO2FBQ2pCO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLGFBQWE7Z0JBQ2IsZUFBZTthQUNoQjtTQUNGLENBQUM7SUF3SUYsQ0FBQztDQUNGO0FBeG5DRCx3QkF3bkNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWNjZXNzTGV2ZWxMaXN0IH0gZnJvbSAnLi4vLi4vc2hhcmVkL2FjY2Vzcy1sZXZlbCc7XG5pbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQsIE9wZXJhdG9yIH0gZnJvbSAnLi4vLi4vc2hhcmVkJztcbmltcG9ydCB7IGF3c19pYW0gYXMgaWFtIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5cbi8qKlxuICogU3RhdGVtZW50IHByb3ZpZGVyIGZvciBzZXJ2aWNlIFthdGhlbmFdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZXJ2aWNlLWF1dGhvcml6YXRpb24vbGF0ZXN0L3JlZmVyZW5jZS9saXN0X2FtYXpvbmF0aGVuYS5odG1sKS5cbiAqXG4gKiBAcGFyYW0gc2lkIFtTSURdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfc2lkLmh0bWwpIG9mIHRoZSBzdGF0ZW1lbnRcbiAqL1xuZXhwb3J0IGNsYXNzIEF0aGVuYSBleHRlbmRzIFBvbGljeVN0YXRlbWVudCB7XG4gIHB1YmxpYyBzZXJ2aWNlUHJlZml4ID0gJ2F0