UNPKG

cdk-iam-floyd

Version:

AWS IAM policy statement generator with fluent interface for AWS CDK

796 lines (795 loc) 28.4 kB
import { AccessLevelList } from '../../shared/access-level'; import { PolicyStatement, Operator } from '../../shared'; import { aws_iam as iam } from "aws-cdk-lib"; /** * 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 */ export declare class Athena extends PolicyStatement { servicePrefix: string; /** * 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(): this; /** * 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(): this; /** * 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(): this; /** * Grants permission to cancel a capacity reservation * * Access Level: Write * * https://docs.aws.amazon.com/athena/latest/APIReference/API_CancelCapacityReservation.html */ toCancelCapacityReservation(): this; /** * 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(): this; /** * 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(): this; /** * 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(): this; /** * Grants permission to create a named query * * Access Level: Write * * https://docs.aws.amazon.com/athena/latest/APIReference/API_CreateNamedQuery.html */ toCreateNamedQuery(): this; /** * Grants permission to create a notebook * * Access Level: Write * * https://docs.aws.amazon.com/athena/latest/APIReference/API_CreateNotebook.html */ toCreateNotebook(): this; /** * Grants permission to create a prepared statement * * Access Level: Write * * https://docs.aws.amazon.com/athena/latest/APIReference/API_CreatePreparedStatement.html */ toCreatePreparedStatement(): this; /** * Grants permission to create a presigned notebook url * * Access Level: Write * * https://docs.aws.amazon.com/athena/latest/APIReference/API_CreatePresignedNotebookUrl.html */ toCreatePresignedNotebookUrl(): this; /** * 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(): this; /** * Grants permission to delete a capacity reservation * * Access Level: Write * * https://docs.aws.amazon.com/athena/latest/APIReference/API_DeleteCapacityReservation.html */ toDeleteCapacityReservation(): this; /** * Grants permission to delete a datacatalog * * Access Level: Write * * https://docs.aws.amazon.com/athena/latest/APIReference/API_DeleteDataCatalog.html */ toDeleteDataCatalog(): this; /** * Grants permission to delete a named query specified * * Access Level: Write * * https://docs.aws.amazon.com/athena/latest/APIReference/API_DeleteNamedQuery.html */ toDeleteNamedQuery(): this; /** * Grants permission to delete a notebook * * Access Level: Write * * https://docs.aws.amazon.com/athena/latest/APIReference/API_DeleteNotebook.html */ toDeleteNotebook(): this; /** * Grants permission to delete a prepared statement specified * * Access Level: Write * * https://docs.aws.amazon.com/athena/latest/APIReference/API_DeletePreparedStatement.html */ toDeletePreparedStatement(): this; /** * Grants permission to delete a workgroup * * Access Level: Write * * https://docs.aws.amazon.com/athena/latest/APIReference/API_DeleteWorkGroup.html */ toDeleteWorkGroup(): this; /** * Grants permission to export a notebook * * Access Level: Write * * https://docs.aws.amazon.com/athena/latest/APIReference/API_ExportNotebook.html */ toExportNotebook(): this; /** * Grants permission to get a calculation execution * * Access Level: Read * * https://docs.aws.amazon.com/athena/latest/APIReference/API_GetCalculationExecution.html */ toGetCalculationExecution(): this; /** * Grants permission to get a calculation execution code * * Access Level: Read * * https://docs.aws.amazon.com/athena/latest/APIReference/API_GetCalculationExecutionCode.html */ toGetCalculationExecutionCode(): this; /** * Grants permission to get a calculation execution status * * Access Level: Read * * https://docs.aws.amazon.com/athena/latest/APIReference/API_GetCalculationExecutionStatus.html */ toGetCalculationExecutionStatus(): this; /** * 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(): this; /** * Grants permission to get a capacity reservation * * Access Level: Read * * https://docs.aws.amazon.com/athena/latest/APIReference/API_GetCapacityReservation.html */ toGetCapacityReservation(): this; /** * 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(): this; /** * Grants permission to get a datacatalog * * Access Level: Read * * https://docs.aws.amazon.com/athena/latest/APIReference/API_GetDataCatalog.html */ toGetDataCatalog(): this; /** * 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(): this; /** * 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(): this; /** * 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(): this; /** * 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(): this; /** * 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(): this; /** * 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(): this; /** * Grants permission to get notebook metadata * * Access Level: Read * * https://docs.aws.amazon.com/athena/latest/APIReference/API_GetNotebookMetadata.html */ toGetNotebookMetadata(): this; /** * 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(): this; /** * 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(): this; /** * 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(): this; /** * Grants permission to get the query results * * Access Level: Read * * https://docs.aws.amazon.com/athena/latest/APIReference/API_GetQueryResults.html */ toGetQueryResults(): this; /** * 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(): this; /** * 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(): this; /** * 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(): this; /** * Grants permission to get a session * * Access Level: Read * * https://docs.aws.amazon.com/athena/latest/APIReference/API_GetSession.html */ toGetSession(): this; /** * 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(): this; /** * Grants permission to get a session status * * Access Level: Read * * https://docs.aws.amazon.com/athena/latest/APIReference/API_GetSessionStatus.html */ toGetSessionStatus(): this; /** * 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(): this; /** * 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(): this; /** * 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(): this; /** * Grants permission to get a workgroup * * Access Level: Read * * https://docs.aws.amazon.com/athena/latest/APIReference/API_GetWorkGroup.html */ toGetWorkGroup(): this; /** * Grants permission to import a notebook * * Access Level: Write * * https://docs.aws.amazon.com/athena/latest/APIReference/API_ImportNotebook.html */ toImportNotebook(): this; /** * Grants permission to return a list of ApplicationRuntimeIds * * Access Level: List * * https://docs.aws.amazon.com/athena/latest/APIReference/API_ListApplicationDPUSizes.html */ toListApplicationDPUSizes(): this; /** * Grants permission to return a list of calculation executions * * Access Level: List * * https://docs.aws.amazon.com/athena/latest/APIReference/API_ListCalculationExecutions.html */ toListCalculationExecutions(): this; /** * 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(): this; /** * 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(): this; /** * 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(): this; /** * 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(): this; /** * Grants permission to return a list of executors * * Access Level: List * * https://docs.aws.amazon.com/athena/latest/APIReference/API_ListExecutors.html */ toListExecutors(): this; /** * 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(): this; /** * 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(): this; /** * 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(): this; /** * 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(): this; /** * 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(): this; /** * 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(): this; /** * 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(): this; /** * 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(): this; /** * 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(): this; /** * 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(): this; /** * 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(): this; /** * Grants permission to start a calculation execution * * Access Level: Write * * https://docs.aws.amazon.com/athena/latest/APIReference/API_StartCalculationExecution.html */ toStartCalculationExecution(): this; /** * 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(): this; /** * 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(): this; /** * Grants permission to stop a calculation execution * * Access Level: Write * * https://docs.aws.amazon.com/athena/latest/APIReference/API_StopCalculationExecution.html */ toStopCalculationExecution(): this; /** * Grants permission to stop the specified query execution * * Access Level: Write * * https://docs.aws.amazon.com/athena/latest/APIReference/API_StopQueryExecution.html */ toStopQueryExecution(): this; /** * 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(): this; /** * Grants permission to terminate a session * * Access Level: Write * * https://docs.aws.amazon.com/athena/latest/APIReference/API_TerminateSession.html */ toTerminateSession(): this; /** * 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(): this; /** * Grants permission to update a capacity reservation * * Access Level: Write * * https://docs.aws.amazon.com/athena/latest/APIReference/API_UpdateCapacityReservation.html */ toUpdateCapacityReservation(): this; /** * Grants permission to update a datacatalog * * Access Level: Write * * https://docs.aws.amazon.com/athena/latest/APIReference/API_UpdateDataCatalog.html */ toUpdateDataCatalog(): this; /** * Grants permission to update a named query specified * * Access Level: Write * * https://docs.aws.amazon.com/athena/latest/APIReference/API_UpdateNamedQuery.html */ toUpdateNamedQuery(): this; /** * Grants permission to update a notebook * * Access Level: Write * * https://docs.aws.amazon.com/athena/latest/APIReference/API_UpdateNotebook.html */ toUpdateNotebook(): this; /** * Grants permission to update notebook metadata * * Access Level: Write * * https://docs.aws.amazon.com/athena/latest/APIReference/API_UpdateNotebookMetadata.html */ toUpdateNotebookMetadata(): this; /** * Grants permission to update a prepared statement * * Access Level: Write * * https://docs.aws.amazon.com/athena/latest/APIReference/API_UpdatePreparedStatement.html */ toUpdatePreparedStatement(): this; /** * Grants permission to update a workgroup * * Access Level: Write * * https://docs.aws.amazon.com/athena/latest/APIReference/API_UpdateWorkGroup.html */ toUpdateWorkGroup(): this; protected accessLevelList: AccessLevelList; /** * 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: string, account?: string, region?: string, partition?: string): this; /** * 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: string, account?: string, region?: string, partition?: string): this; /** * 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: string, account?: string, region?: string, partition?: string): this; /** * 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: string, sessionId: string, account?: string, region?: string, partition?: string): this; /** * 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: string, value: string | string[], operator?: Operator | string): this; /** * 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: string, value: string | string[], operator?: Operator | string): this; /** * 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: string | string[], operator?: Operator | string): this; /** * Statement provider for service [athena](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html). * */ constructor(props?: iam.PolicyStatementProps); }