cdk-iam-floyd
Version:
AWS IAM policy statement generator with fluent interface for AWS CDK
931 lines • 85.7 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Cloudtrail = void 0;
const shared_1 = require("../../shared");
/**
* Statement provider for service [cloudtrail](https://docs.aws.amazon.com/service-authorization/latest/reference/list_cloudtrail.html).
*
* @param sid [SID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html) of the statement
*/
class Cloudtrail extends shared_1.PolicyStatement {
/**
* Grants permission to add one or more tags to a trail, event data store, channel or dashboard, up to a limit of 50
*
* Access Level: Tagging, Write
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_AddTags.html
*/
toAddTags() {
return this.to('AddTags');
}
/**
* Grants permission to cancel a running query
*
* Access Level: Write
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_CancelQuery.html
*/
toCancelQuery() {
return this.to('CancelQuery');
}
/**
* Grants permission to create a channel
*
* Access Level: Write
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_CreateChannel.html
*/
toCreateChannel() {
return this.to('CreateChannel');
}
/**
* Grants permission to create a dashboard
*
* Access Level: Write
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_CreateDashboard.html
*/
toCreateDashboard() {
return this.to('CreateDashboard');
}
/**
* Grants permission to create an event data store
*
* Access Level: Write
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_CreateEventDataStore.html
*/
toCreateEventDataStore() {
return this.to('CreateEventDataStore');
}
/**
* Grants permission to create a trail that specifies the settings for delivery of log data to an Amazon S3 bucket
*
* Access Level: Write
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_CreateTrail.html
*/
toCreateTrail() {
return this.to('CreateTrail');
}
/**
* Grants permission to delete a channel
*
* Access Level: Write
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_DeleteChannel.html
*/
toDeleteChannel() {
return this.to('DeleteChannel');
}
/**
* Grants permission to delete a dashboard
*
* Access Level: Write
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_DeleteDashboard.html
*/
toDeleteDashboard() {
return this.to('DeleteDashboard');
}
/**
* Grants permission to delete an event data store
*
* Access Level: Write
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_DeleteEventDataStore.html
*/
toDeleteEventDataStore() {
return this.to('DeleteEventDataStore');
}
/**
* Grants permission to delete a resource policy from the provided resource
*
* Access Level: Write
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_DeleteResourcePolicy.html
*/
toDeleteResourcePolicy() {
return this.to('DeleteResourcePolicy');
}
/**
* Grants permission to delete a trail
*
* Access Level: Write
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_DeleteTrail.html
*/
toDeleteTrail() {
return this.to('DeleteTrail');
}
/**
* Grants permission to deregister an AWS Organizations member account as a delegated administrator
*
* Access Level: Write
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_DeregisterOrganizationDelegatedAdmin.html
*/
toDeregisterOrganizationDelegatedAdmin() {
return this.to('DeregisterOrganizationDelegatedAdmin');
}
/**
* Grants permission to list details for the query
*
* Access Level: Read
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_DescribeQuery.html
*/
toDescribeQuery() {
return this.to('DescribeQuery');
}
/**
* Grants permission to list settings for the trails associated with the current region for your account
*
* Access Level: Read
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_DescribeTrails.html
*/
toDescribeTrails() {
return this.to('DescribeTrails');
}
/**
* Grants permission to disable federation of event data store data by using the AWS Glue Data Catalog
*
* Access Level: Write
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_DisableFederation.html
*/
toDisableFederation() {
return this.to('DisableFederation');
}
/**
* Grants permission to enable federation of event data store data by using the AWS Glue Data Catalog
*
* Access Level: Write
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_EnableFederation.html
*/
toEnableFederation() {
return this.to('EnableFederation');
}
/**
* Grants permission to generate a query for a specified event data store using the CloudTrail Lake query generator
*
* Access Level: Write
*
* https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-query-generator.html
*/
toGenerateQuery() {
return this.to('GenerateQuery');
}
/**
* Grants permission to return information about a specific channel
*
* Access Level: Read
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_GetChannel.html
*/
toGetChannel() {
return this.to('GetChannel');
}
/**
* Grants permission to list settings for the dashboard
*
* Access Level: Read
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_GetDashboard.html
*/
toGetDashboard() {
return this.to('GetDashboard');
}
/**
* Grants permission to list event configurations that are configured for a trail or an event data store
*
* Access Level: Read
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_GetEventConfiguration.html
*/
toGetEventConfiguration() {
return this.to('GetEventConfiguration');
}
/**
* Grants permission to list settings for the event data store
*
* Access Level: Read
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_GetEventDataStore.html
*/
toGetEventDataStore() {
return this.to('GetEventDataStore');
}
/**
* Grants permission to get data from an event data store by using the AWS Glue Data Catalog
*
* Access Level: Read
*
* https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-federation.html#query-federation-permissions
*/
toGetEventDataStoreData() {
return this.to('GetEventDataStoreData');
}
/**
* Grants permission to list settings for event selectors configured for a trail
*
* Access Level: Read
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_GetEventSelectors.html
*/
toGetEventSelectors() {
return this.to('GetEventSelectors');
}
/**
* Grants permission to return information about a specific import
*
* Access Level: Read
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_GetImport.html
*/
toGetImport() {
return this.to('GetImport');
}
/**
* Grants permission to list CloudTrail Insights selectors that are configured for a trail or event data store
*
* Access Level: Read
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_GetInsightSelectors.html
*/
toGetInsightSelectors() {
return this.to('GetInsightSelectors');
}
/**
* Grants permission to fetch results of a complete query
*
* Access Level: Read
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_GetQueryResults.html
*/
toGetQueryResults() {
return this.to('GetQueryResults');
}
/**
* Grants permission to get the resource policy attached to the provided resource
*
* Access Level: Read
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_GetResourcePolicy.html
*/
toGetResourcePolicy() {
return this.to('GetResourcePolicy');
}
/**
* Grants permission to list settings for the trail
*
* Access Level: Read
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_GetTrail.html
*/
toGetTrail() {
return this.to('GetTrail');
}
/**
* Grants permission to retrieve a JSON-formatted list of information about the specified trail
*
* Access Level: Read
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_GetTrailStatus.html
*/
toGetTrailStatus() {
return this.to('GetTrailStatus');
}
/**
* Grants permission to list the channels in the current account, and their source names
*
* Access Level: List
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_ListChannels.html
*/
toListChannels() {
return this.to('ListChannels');
}
/**
* Grants permission to list dashboards associated with the current region for your account
*
* Access Level: List
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_ListDashboards.html
*/
toListDashboards() {
return this.to('ListDashboards');
}
/**
* Grants permission to list event data stores associated with the current region for your account
*
* Access Level: List
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_ListEventDataStores.html
*/
toListEventDataStores() {
return this.to('ListEventDataStores');
}
/**
* Grants permission to return a list of failures for the specified import
*
* Access Level: Read
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_ListImportFailures.html
*/
toListImportFailures() {
return this.to('ListImportFailures');
}
/**
* Grants permission to return information on all imports, or a select set of imports by ImportStatus or Destination
*
* Access Level: List
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_ListImports.html
*/
toListImports() {
return this.to('ListImports');
}
/**
* Grants permission to retrieve data captured by CloudTrail Insights
*
* Access Level: List
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_ListInsightsData.html
*/
toListInsightsData() {
return this.to('ListInsightsData');
}
/**
* Grants permission to list the public keys whose private keys were used to sign trail digest files within a specified time range
*
* Access Level: Read
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_ListPublicKeys.html
*/
toListPublicKeys() {
return this.to('ListPublicKeys');
}
/**
* Grants permission to list queries associated with an event data store
*
* Access Level: List
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_ListQueries.html
*/
toListQueries() {
return this.to('ListQueries');
}
/**
* Grants permission to list the tags for trails, event data stores, channels or dashboards in the current region
*
* Access Level: Read
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_ListTags.html
*/
toListTags() {
return this.to('ListTags');
}
/**
* Grants permission to list trails associated with the current region for your account
*
* Access Level: List
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_ListTrails.html
*/
toListTrails() {
return this.to('ListTrails');
}
/**
* Grants permission to look up and retrieve metric data for API activity events captured by CloudTrail that create, update, or delete resources in your account
*
* Access Level: Read
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_LookupEvents.html
*/
toLookupEvents() {
return this.to('LookupEvents');
}
/**
* Grants permission to create and update event configurations for a trail or an event data store
*
* Access Level: Write
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_PutEventConfiguration.html
*/
toPutEventConfiguration() {
return this.to('PutEventConfiguration');
}
/**
* Grants permission to create and update event selectors for a trail
*
* Access Level: Write
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_PutEventSelectors.html
*/
toPutEventSelectors() {
return this.to('PutEventSelectors');
}
/**
* Grants permission to create and update CloudTrail Insights selectors for a trail or event data store
*
* Access Level: Write
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_PutInsightSelectors.html
*/
toPutInsightSelectors() {
return this.to('PutInsightSelectors');
}
/**
* Grants permission to attach a resource policy to the provided resource
*
* Access Level: Write
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_PutResourcePolicy.html
*/
toPutResourcePolicy() {
return this.to('PutResourcePolicy');
}
/**
* Grants permission to register an AWS Organizations member account as a delegated administrator
*
* Access Level: Write
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_RegisterOrganizationDelegatedAdmin.html
*/
toRegisterOrganizationDelegatedAdmin() {
return this.to('RegisterOrganizationDelegatedAdmin');
}
/**
* Grants permission to remove tags from a trail, event data store, channel or dashboard
*
* Access Level: Tagging, Write
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_RemoveTags.html
*/
toRemoveTags() {
return this.to('RemoveTags');
}
/**
* Grants permission to restore an event data store
*
* Access Level: Write
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_RestoreEventDataStore.html
*/
toRestoreEventDataStore() {
return this.to('RestoreEventDataStore');
}
/**
* Grants permission to perform semantic search for CloudTrail Lake sample queries
*
* Access Level: Read
*
* https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-console-queries.html
*/
toSearchSampleQueries() {
return this.to('SearchSampleQueries');
}
/**
* Grants permission to start a refresh on the specified dashboard
*
* Access Level: Write
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_StartDashboardRefresh.html
*/
toStartDashboardRefresh() {
return this.to('StartDashboardRefresh');
}
/**
* Grants permission to start ingestion on an event data store
*
* Access Level: Write
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_StartEventDataStoreIngestion.html
*/
toStartEventDataStoreIngestion() {
return this.to('StartEventDataStoreIngestion');
}
/**
* Grants permission to start an import of logged trail events from a source S3 bucket to a destination event data store
*
* Access Level: Write
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_StartImport.html
*/
toStartImport() {
return this.to('StartImport');
}
/**
* Grants permission to start the recording of AWS API calls and log file delivery for a trail
*
* Access Level: Write
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_StartLogging.html
*/
toStartLogging() {
return this.to('StartLogging');
}
/**
* Grants permission to start a new query on a specified event data store
*
* Access Level: Write
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_StartQuery.html
*/
toStartQuery() {
return this.to('StartQuery');
}
/**
* Grants permission to stop ingestion on an event data store
*
* Access Level: Write
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_StopEventDataStoreIngestion.html
*/
toStopEventDataStoreIngestion() {
return this.to('StopEventDataStoreIngestion');
}
/**
* Grants permission to stop a specified import
*
* Access Level: Write
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_StopImport.html
*/
toStopImport() {
return this.to('StopImport');
}
/**
* Grants permission to stop the recording of AWS API calls and log file delivery for a trail
*
* Access Level: Write
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_StopLogging.html
*/
toStopLogging() {
return this.to('StopLogging');
}
/**
* Grants permission to update a channel
*
* Access Level: Write
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_UpdateChannel.html
*/
toUpdateChannel() {
return this.to('UpdateChannel');
}
/**
* Grants permission to update a dashboard
*
* Access Level: Write
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_UpdateDashboard.html
*/
toUpdateDashboard() {
return this.to('UpdateDashboard');
}
/**
* Grants permission to update an event data store
*
* Access Level: Write
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_UpdateEventDataStore.html
*/
toUpdateEventDataStore() {
return this.to('UpdateEventDataStore');
}
/**
* Grants permission to update the settings that specify delivery of log files
*
* Access Level: Write
*
* https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_UpdateTrail.html
*/
toUpdateTrail() {
return this.to('UpdateTrail');
}
/**
* Grants permission to create a service-linked channel that specifies the settings for delivery of log data to an AWS service
*
* Access Level: Write
*
* https://docs.aws.amazon.com/awscloudtrail/latest/userguide/viewing-service-linked-channels.html#slc-service-events
*/
toCreateServiceLinkedChannel() {
return this.to('CreateServiceLinkedChannel');
}
/**
* Grants permission to delete a service-linked channel
*
* Access Level: Write
*
* https://docs.aws.amazon.com/awscloudtrail/latest/userguide/viewing-service-linked-channels.html#slc-service-events
*/
toDeleteServiceLinkedChannel() {
return this.to('DeleteServiceLinkedChannel');
}
/**
* Grants permission to generate a results summary for specified queries using the CloudTrail natural language generator
*
* Access Level: Read
*
* https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-results-summary.html
*/
toGenerateQueryResultsSummary() {
return this.to('GenerateQueryResultsSummary');
}
/**
* Grants permission to list settings for the service-linked channel
*
* Access Level: Read
*
* https://docs.aws.amazon.com/awscloudtrail/latest/userguide/viewing-service-linked-channels.html#slc-service-events
*/
toGetServiceLinkedChannel() {
return this.to('GetServiceLinkedChannel');
}
/**
* Grants permission to list service-linked channels associated with the current region for a specified account
*
* Access Level: List
*
* https://docs.aws.amazon.com/awscloudtrail/latest/userguide/viewing-service-linked-channels.html#slc-service-events
*/
toListServiceLinkedChannels() {
return this.to('ListServiceLinkedChannels');
}
/**
* Grants permission to update the service-linked channel settings for delivery of log data to an AWS service
*
* Access Level: Write
*
* https://docs.aws.amazon.com/awscloudtrail/latest/userguide/viewing-service-linked-channels.html#slc-service-events
*/
toUpdateServiceLinkedChannel() {
return this.to('UpdateServiceLinkedChannel');
}
/**
* Adds a resource of type channel to the statement
*
* https://docs.aws.amazon.com/awscloudtrail/latest/userguide/how-cloudtrail-works.html#how-cloudtrail-works-channels
*
* @param channelId - Identifier for the channelId.
* @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()
*/
onChannel(channelId, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:cloudtrail:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:channel/${channelId}`);
}
/**
* Adds a resource of type dashboard to the statement
*
* https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-dashboard.html
*
* @param dashboardName - Identifier for the dashboardName.
* @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()
*/
onDashboard(dashboardName, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:cloudtrail:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:dashboard/${dashboardName}`);
}
/**
* Adds a resource of type eventdatastore to the statement
*
* https://docs.aws.amazon.com/awscloudtrail/latest/userguide/how-cloudtrail-works.html#how-cloudtrail-works-lake
*
* @param eventDataStoreId - Identifier for the eventDataStoreId.
* @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()
*/
onEventdatastore(eventDataStoreId, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:cloudtrail:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:eventdatastore/${eventDataStoreId}`);
}
/**
* Adds a resource of type trail to the statement
*
* https://docs.aws.amazon.com/awscloudtrail/latest/userguide/how-cloudtrail-works.html#how-cloudtrail-works-trails
*
* @param trailName - Identifier for the trailName.
* @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()
*/
onTrail(trailName, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:cloudtrail:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:trail/${trailName}`);
}
/**
* Filters access by the tag key-value pairs in the request
*
* https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requesttag
*
* Applies to actions:
* - .toAddTags()
* - .toCreateChannel()
* - .toCreateDashboard()
* - .toCreateEventDataStore()
* - .toCreateTrail()
*
* @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 attached to the resource
*
* https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourcetag
*
* Applies to actions:
* - .toAddTags()
* - .toCancelQuery()
* - .toCreateChannel()
* - .toCreateDashboard()
* - .toCreateEventDataStore()
* - .toCreateTrail()
* - .toDeleteChannel()
* - .toDeleteDashboard()
* - .toDeleteEventDataStore()
* - .toDeleteResourcePolicy()
* - .toDeleteTrail()
* - .toDescribeQuery()
* - .toDisableFederation()
* - .toEnableFederation()
* - .toGenerateQuery()
* - .toGetChannel()
* - .toGetDashboard()
* - .toGetEventConfiguration()
* - .toGetEventDataStore()
* - .toGetEventDataStoreData()
* - .toGetEventSelectors()
* - .toGetInsightSelectors()
* - .toGetQueryResults()
* - .toGetResourcePolicy()
* - .toGetTrail()
* - .toGetTrailStatus()
* - .toListInsightsData()
* - .toListQueries()
* - .toListTags()
* - .toPutEventConfiguration()
* - .toPutEventSelectors()
* - .toPutInsightSelectors()
* - .toPutResourcePolicy()
* - .toRemoveTags()
* - .toRestoreEventDataStore()
* - .toStartDashboardRefresh()
* - .toStartEventDataStoreIngestion()
* - .toStartLogging()
* - .toStartQuery()
* - .toStopEventDataStoreIngestion()
* - .toStopLogging()
* - .toUpdateChannel()
* - .toUpdateDashboard()
* - .toUpdateEventDataStore()
* - .toUpdateTrail()
* - .toCreateServiceLinkedChannel()
* - .toDeleteServiceLinkedChannel()
* - .toGenerateQueryResultsSummary()
* - .toGetServiceLinkedChannel()
* - .toUpdateServiceLinkedChannel()
*
* Applies to resource types:
* - channel
* - dashboard
* - eventdatastore
* - trail
*
* @param tagKey The tag key to check
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifAwsResourceTag(tagKey, value, operator) {
return this.if(`aws:ResourceTag/${tagKey}`, value, operator ?? 'StringLike');
}
/**
* Filters access by the tag keys in a request
*
* https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys
*
* Applies to actions:
* - .toAddTags()
* - .toCreateChannel()
* - .toCreateDashboard()
* - .toCreateEventDataStore()
* - .toCreateTrail()
* - .toRemoveTags()
*
* @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 [cloudtrail](https://docs.aws.amazon.com/service-authorization/latest/reference/list_cloudtrail.html).
*
*/
constructor(props) {
super(props);
this.servicePrefix = 'cloudtrail';
this.accessLevelList = {
Tagging: [
'AddTags',
'RemoveTags'
],
Write: [
'AddTags',
'CancelQuery',
'CreateChannel',
'CreateDashboard',
'CreateEventDataStore',
'CreateTrail',
'DeleteChannel',
'DeleteDashboard',
'DeleteEventDataStore',
'DeleteResourcePolicy',
'DeleteTrail',
'DeregisterOrganizationDelegatedAdmin',
'DisableFederation',
'EnableFederation',
'GenerateQuery',
'PutEventConfiguration',
'PutEventSelectors',
'PutInsightSelectors',
'PutResourcePolicy',
'RegisterOrganizationDelegatedAdmin',
'RemoveTags',
'RestoreEventDataStore',
'StartDashboardRefresh',
'StartEventDataStoreIngestion',
'StartImport',
'StartLogging',
'StartQuery',
'StopEventDataStoreIngestion',
'StopImport',
'StopLogging',
'UpdateChannel',
'UpdateDashboard',
'UpdateEventDataStore',
'UpdateTrail',
'CreateServiceLinkedChannel',
'DeleteServiceLinkedChannel',
'UpdateServiceLinkedChannel'
],
Read: [
'DescribeQuery',
'DescribeTrails',
'GetChannel',
'GetDashboard',
'GetEventConfiguration',
'GetEventDataStore',
'GetEventDataStoreData',
'GetEventSelectors',
'GetImport',
'GetInsightSelectors',
'GetQueryResults',
'GetResourcePolicy',
'GetTrail',
'GetTrailStatus',
'ListImportFailures',
'ListPublicKeys',
'ListTags',
'LookupEvents',
'SearchSampleQueries',
'GenerateQueryResultsSummary',
'GetServiceLinkedChannel'
],
List: [
'ListChannels',
'ListDashboards',
'ListEventDataStores',
'ListImports',
'ListInsightsData',
'ListQueries',
'ListTrails',
'ListServiceLinkedChannels'
]
};
}
}
exports.Cloudtrail = Cloudtrail;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWR0cmFpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNsb3VkdHJhaWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseUNBQXlEO0FBR3pEOzs7O0dBSUc7QUFDSCxNQUFhLFVBQVcsU0FBUSx3QkFBZTtJQUc3Qzs7Ozs7O09BTUc7SUFDSSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxhQUFhO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksZUFBZTtRQUNwQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLGlCQUFpQjtRQUN0QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksc0JBQXNCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxhQUFhO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksZUFBZTtRQUNwQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLGlCQUFpQjtRQUN0QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksc0JBQXNCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFD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O2dCQUNyQiw2QkFBNkI7Z0JBQzdCLHlCQUF5QjthQUMxQjtZQUNELElBQUksRUFBRTtnQkFDSixjQUFjO2dCQUNkLGdCQUFnQjtnQkFDaEIscUJBQXFCO2dCQUNyQixhQUFhO2dCQUNiLGtCQUFrQjtnQkFDbEIsYUFBYTtnQkFDYixZQUFZO2dCQUNaLDJCQUEyQjthQUM1QjtTQUNGLENBQUM7SUEyTEYsQ0FBQztDQUNGO0FBbCtCRCxnQ0FrK0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWNjZXNzTGV2ZWxMaXN0IH0gZnJvbSAnLi4vLi4vc2hhcmVkL2FjY2Vzcy1sZXZlbCc7XG5pbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQsIE9wZXJhdG9yIH0gZnJvbSAnLi4vLi4vc2hhcmVkJztcbmltcG9ydCB7IGF3c19pYW0gYXMgaWFtIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5cbi8qKlxuICogU3RhdGVtZW50IHByb3ZpZGVyIGZvciBzZXJ2aWNlIFtjbG91ZHRyYWlsXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VydmljZS1hdXRob3JpemF0aW9uL2xhdGVzdC9yZWZlcmVuY2UvbGlzdF9jbG91ZHRyYWlsLmh0bWwpLlxuICpcbiAqIEBwYXJhbSBzaWQgW1NJRF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19zaWQuaHRtbCkgb2YgdGhlIHN0YXRlbWVudFxuICovXG5leHBvcnQgY2xhc3MgQ2xvdWR0cmFpbCBleHRlbmRzIFBvbGljeVN0YXRlbWVudCB7XG4gIHB1YmxpYyBzZXJ2aWNlUHJlZml4ID0gJ2Nsb3VkdHJhaWwnO1xuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBhZGQgb25lIG9yIG1vcmUgdGFncyB0byBhIHRyYWlsLCBldmVudCBkYXRhIHN0b3JlLCBjaGFubmVsIG9yIGRhc2hib2FyZCwgdXAgdG8gYSBsaW1pdCBvZiA1MFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFRhZ2dpbmcsIFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hd3NjbG91ZHRyYWlsL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0FkZFRhZ3MuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQWRkVGFncygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQWRkVGFncycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNhbmNlbCBhIHJ1bm5pbmcgcXVlcnlcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXdzY2xvdWR0cmFpbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DYW5jZWxRdWVyeS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9DYW5jZWxRdWVyeSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ2FuY2VsUXVlcnknKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSBjaGFubmVsXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F3c2Nsb3VkdHJhaWwvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQ3JlYXRlQ2hhbm5lbC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVDaGFubmVsKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVDaGFubmVsJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIGEgZGFzaGJvYXJkXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F3c2Nsb3VkdHJhaWwvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQ3JlYXRlRGFzaGJvYXJkLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZURhc2hib2FyZCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ3JlYXRlRGFzaGJvYXJkJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIGFuIGV2ZW50IGRhdGEgc3RvcmVcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXdzY2xvdWR0cmFpbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DcmVhdGVFdmVudERhdGFTdG9yZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVFdmVudERhdGFTdG9yZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ3JlYXRlRXZlbnREYXRhU3RvcmUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSB0cmFpbCB0aGF0IHNwZWNpZmllcyB0aGUgc2V0dGluZ3MgZm9yIGRlbGl2ZXJ5IG9mIGxvZyBkYXRhIHRvIGFuIEFtYXpvbiBTMyBidWNrZXRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXdzY2xvdWR0cmFpbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DcmVhdGVUcmFpbC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVUcmFpbCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ3JlYXRlVHJhaWwnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgYSBjaGFubmVsXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F3c2Nsb3VkdHJhaWwvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVsZXRlQ2hhbm5lbC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVDaGFubmVsKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVDaGFubmVsJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIGEgZGFzaGJvYXJkXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F3c2Nsb3VkdHJhaWwvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVsZXRlRGFzaGJvYXJkLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0RlbGV0ZURhc2hib2FyZCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlRGFzaGJvYXJkJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIGFuIGV2ZW50IGRhdGEgc3RvcmVcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXdzY2xvdWR0cmFpbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZWxldGVFdmVudERhdGFTdG9yZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVFdmVudERhdGFTdG9yZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlRXZlbnREYXRhU3RvcmUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgYSByZXNvdXJjZSBwb2xpY3kgZnJvbSB0aGUgcHJvdmlkZWQgcmVzb3VyY2VcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXdzY2xvdWR0cmFpbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZWxldGVSZXNvdXJjZVBvbGljeS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVSZXNvdXJjZVBvbGljeSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlUmVzb3VyY2VQb2xpY3knKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgYSB0cmFpbFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hd3NjbG91ZHRyYWlsL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0RlbGV0ZVRyYWlsLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0RlbGV0ZVRyYWlsKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVUcmFpbCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlcmVnaXN0ZXIgYW4gQVdTIE9yZ2FuaXphdGlvbnMgbWVtYmVyIGFjY291bnQgYXMgYSBkZWxlZ2F0ZWQgYWRtaW5pc3RyYXRvclxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hd3NjbG91ZHRyYWlsL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0RlcmVnaXN0ZXJPcmdhbml6YXRpb25EZWxlZ2F0ZWRBZG1pbi5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXJlZ2lzdGVyT3JnYW5pemF0aW9uRGVsZWdhdGVkQWRtaW4oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlcmVnaXN0ZXJPcmdhbml6YXRpb25EZWxlZ2F0ZWRBZG1pbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgZGV0YWlscyBmb3IgdGhlIHF1ZXJ5XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXdzY2xvdWR0cmFpbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZVF1ZXJ5Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlUXVlcnkoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlUXVlcnknKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IHNldHRpbmdzIGZvciB0aGUgdHJhaWxzIGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudCByZWdpb24gZm9yIHlvdXIgYWNjb3VudFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F3c2Nsb3VkdHJhaWwvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVUcmFpbHMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVzY3JpYmVUcmFpbHMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlVHJhaWxzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGlzYWJsZSBmZWRlcmF0aW9uIG9mIGV2ZW50IGRhdGEgc3RvcmUgZGF0YSBieSB1c2luZyB0aGUgQVdTIEdsdWUgRGF0YSBDYXRhbG9nXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F3c2Nsb3VkdHJhaWwvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGlzYWJsZUZl