UNPKG

cdk-iam-floyd

Version:

AWS IAM policy statement generator with fluent interface for AWS CDK

1,031 lines 94.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Aps = void 0; const shared_1 = require("../../shared"); /** * Statement provider for service [aps](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amp.html). * * @param sid [SID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html) of the statement */ class Aps extends shared_1.PolicyStatement { /** * Grants permission to create alerts * * Access Level: Write * * https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-APIReference-CreateAlertManagerAlerts.html */ toCreateAlertManagerAlerts() { return this.to('CreateAlertManagerAlerts'); } /** * Grants permission to create an alert manager definition * * Access Level: Write * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_CreateAlertManagerDefinition.html */ toCreateAlertManagerDefinition() { return this.to('CreateAlertManagerDefinition'); } /** * Grants permission to create an anomaly detector * * Access Level: Write * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_CreateAnomalyDetector.html */ toCreateAnomalyDetector() { return this.to('CreateAnomalyDetector'); } /** * Grants permission to create a logging configuration * * Access Level: Write * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_CreateLoggingConfiguration.html */ toCreateLoggingConfiguration() { return this.to('CreateLoggingConfiguration'); } /** * Grants permission to create a query logging configuration * * Access Level: Write * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_CreateQueryLoggingConfiguration.html */ toCreateQueryLoggingConfiguration() { return this.to('CreateQueryLoggingConfiguration'); } /** * Grants permission to create a rule groups namespace * * Access Level: Write * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_CreateRuleGroupsNamespace.html */ toCreateRuleGroupsNamespace() { return this.to('CreateRuleGroupsNamespace'); } /** * Grants permission to create a scraper * * Access Level: Write * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_CreateScraper.html */ toCreateScraper() { return this.to('CreateScraper'); } /** * Grants permission to create a workspace * * Access Level: Write * * Possible conditions: * - .ifAwsRequestTag() * - .ifAwsTagKeys() * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_CreateWorkspace.html */ toCreateWorkspace() { return this.to('CreateWorkspace'); } /** * Grants permission to delete an alert manager definition * * Access Level: Write * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_DeleteAlertManagerDefinition.html */ toDeleteAlertManagerDefinition() { return this.to('DeleteAlertManagerDefinition'); } /** * Grants permission to delete a silence * * Access Level: Write * * https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-APIReference-DeleteAlertManagerSilence.html */ toDeleteAlertManagerSilence() { return this.to('DeleteAlertManagerSilence'); } /** * Grants permission to delete an anomaly detector * * Access Level: Write * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_DeleteAnomalyDetector.html */ toDeleteAnomalyDetector() { return this.to('DeleteAnomalyDetector'); } /** * Grants permission to delete a logging configuration * * Access Level: Write * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_DeleteLoggingConfiguration.html */ toDeleteLoggingConfiguration() { return this.to('DeleteLoggingConfiguration'); } /** * Grants permission to delete a query logging configuration * * Access Level: Write * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_DeleteQueryLoggingConfiguration.html */ toDeleteQueryLoggingConfiguration() { return this.to('DeleteQueryLoggingConfiguration'); } /** * Grants permission to delete workspace resource policy * * Access Level: Write * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_DeleteResourcePolicy.html */ toDeleteResourcePolicy() { return this.to('DeleteResourcePolicy'); } /** * Grants permission to delete a rule groups namespace * * Access Level: Write * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_DeleteRuleGroupsNamespace.html */ toDeleteRuleGroupsNamespace() { return this.to('DeleteRuleGroupsNamespace'); } /** * Grants permission to delete a scraper * * Access Level: Write * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_DeleteScraper.html */ toDeleteScraper() { return this.to('DeleteScraper'); } /** * Grants permission to delete a scraper logging configuration * * Access Level: Write * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_DeleteScraperLoggingConfiguration.html */ toDeleteScraperLoggingConfiguration() { return this.to('DeleteScraperLoggingConfiguration'); } /** * Grants permission to delete a workspace * * Access Level: Write * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_DeleteWorkspace.html */ toDeleteWorkspace() { return this.to('DeleteWorkspace'); } /** * Grants permission to describe an alert manager definition * * Access Level: Read * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_DescribeAlertManagerDefinition.html */ toDescribeAlertManagerDefinition() { return this.to('DescribeAlertManagerDefinition'); } /** * Grants permission to describe an anomaly detector * * Access Level: Read * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_DescribeAnomalyDetector.html */ toDescribeAnomalyDetector() { return this.to('DescribeAnomalyDetector'); } /** * Grants permission to describe a logging configuration * * Access Level: Read * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_DescribeLoggingConfiguration.html */ toDescribeLoggingConfiguration() { return this.to('DescribeLoggingConfiguration'); } /** * Grants permission to describe a query logging configuration * * Access Level: Read * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_DescribeQueryLoggingConfiguration.html */ toDescribeQueryLoggingConfiguration() { return this.to('DescribeQueryLoggingConfiguration'); } /** * Grants permission to describe workspace resource policy * * Access Level: Read * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_DescribeResourcePolicy.html */ toDescribeResourcePolicy() { return this.to('DescribeResourcePolicy'); } /** * Grants permission to describe a rule groups namespace * * Access Level: Read * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_DescribeRuleGroupsNamespace.html */ toDescribeRuleGroupsNamespace() { return this.to('DescribeRuleGroupsNamespace'); } /** * Grants permission to describe a scraper * * Access Level: Read * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_DescribeScraper.html */ toDescribeScraper() { return this.to('DescribeScraper'); } /** * Grants permission to describe a scraper logging configuration * * Access Level: Read * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_DescribeScraperLoggingConfiguration.html */ toDescribeScraperLoggingConfiguration() { return this.to('DescribeScraperLoggingConfiguration'); } /** * Grants permission to describe a workspace * * Access Level: Read * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_DescribeWorkspace.html */ toDescribeWorkspace() { return this.to('DescribeWorkspace'); } /** * Grants permission to describe workspace configuration * * Access Level: Read * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_DescribeWorkspaceConfiguration.html */ toDescribeWorkspaceConfiguration() { return this.to('DescribeWorkspaceConfiguration'); } /** * Grants permission to get a silence * * Access Level: Read * * https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-APIReference-GetAlertManagerSilence.html */ toGetAlertManagerSilence() { return this.to('GetAlertManagerSilence'); } /** * Grants permission to get current status of an alertmanager * * Access Level: Read * * https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-APIReference-GetAlertManagerStatus.html */ toGetAlertManagerStatus() { return this.to('GetAlertManagerStatus'); } /** * Grants permission to get default scraper configuration * * Access Level: Read * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_GetDefaultScraperConfiguration.html */ toGetDefaultScraperConfiguration() { return this.to('GetDefaultScraperConfiguration'); } /** * Grants permission to retrieve AMP workspace labels * * Access Level: Read * * https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-APIReference-GetLabels.html */ toGetLabels() { return this.to('GetLabels'); } /** * Grants permission to retrieve the metadata for AMP workspace metrics * * Access Level: Read * * https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-APIReference-GetMetricMetadata.html */ toGetMetricMetadata() { return this.to('GetMetricMetadata'); } /** * Grants permission to retrieve AMP workspace time series data * * Access Level: Read * * https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-APIReference-GetSeries.html */ toGetSeries() { return this.to('GetSeries'); } /** * Grants permission to list groups * * Access Level: Read * * https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-APIReference-ListAlertManagerAlertGroups.html */ toListAlertManagerAlertGroups() { return this.to('ListAlertManagerAlertGroups'); } /** * Grants permission to list alerts * * Access Level: Read * * https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-APIReference-ListAlertManagerAlerts.html */ toListAlertManagerAlerts() { return this.to('ListAlertManagerAlerts'); } /** * Grants permission to list receivers * * Access Level: Read * * https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-APIReference-ListAlertManagerReceivers.html */ toListAlertManagerReceivers() { return this.to('ListAlertManagerReceivers'); } /** * Grants permission to list silences * * Access Level: Read * * https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-APIReference-ListAlertManagerSilences.html */ toListAlertManagerSilences() { return this.to('ListAlertManagerSilences'); } /** * Grants permission to list active alerts * * Access Level: Read * * https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-APIReference-ListAlerts.html */ toListAlerts() { return this.to('ListAlerts'); } /** * Grants permission to list anomaly detectors * * Access Level: List * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_ListAnomalyDetectors.html */ toListAnomalyDetectors() { return this.to('ListAnomalyDetectors'); } /** * Grants permission to list rule groups namespaces * * Access Level: List * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_ListRuleGroupsNamespaces.html */ toListRuleGroupsNamespaces() { return this.to('ListRuleGroupsNamespaces'); } /** * Grants permission to list alerting and recording rules * * Access Level: Read * * https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-APIReference-ListRules.html */ toListRules() { return this.to('ListRules'); } /** * Grants permission to list scrapers * * Access Level: List * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_ListScrapers.html */ toListScrapers() { return this.to('ListScrapers'); } /** * Grants permission to list tags on an AMP resource * * Access Level: Read * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_ListTagsForResource.html */ toListTagsForResource() { return this.to('ListTagsForResource'); } /** * Grants permission to list workspaces * * Access Level: List * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_ListWorkspaces.html */ toListWorkspaces() { return this.to('ListWorkspaces'); } /** * Grants permission to preview anomaly detection on AMP workspace metrics * * Access Level: Read * * https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-APIReference-PreviewAnomalyDetector.html */ toPreviewAnomalyDetector() { return this.to('PreviewAnomalyDetector'); } /** * Grants permission to update an alert manager definition * * Access Level: Write * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_PutAlertManagerDefinition.html */ toPutAlertManagerDefinition() { return this.to('PutAlertManagerDefinition'); } /** * Grants permission to create or update a silence * * Access Level: Write * * https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-APIReference-PutAlertManagerSilences.html */ toPutAlertManagerSilences() { return this.to('PutAlertManagerSilences'); } /** * Grants permission to update an anomaly detector * * Access Level: Write * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_PutAnomalyDetector.html */ toPutAnomalyDetector() { return this.to('PutAnomalyDetector'); } /** * Grants permission to create and update workspace resource policy * * Access Level: Write * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_PutResourcePolicy.html */ toPutResourcePolicy() { return this.to('PutResourcePolicy'); } /** * Grants permission to update a rule groups namespace * * Access Level: Write * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_PutRuleGroupsNamespace.html */ toPutRuleGroupsNamespace() { return this.to('PutRuleGroupsNamespace'); } /** * Grants permission to run a query on AMP workspace metrics * * Access Level: Read * * https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-APIReference-QueryMetrics.html */ toQueryMetrics() { return this.to('QueryMetrics'); } /** * Grants permission to perform a remote write operation to initiate the streaming of metrics to AMP workspace * * Access Level: Write * * https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-APIReference-RemoteWrite.html */ toRemoteWrite() { return this.to('RemoteWrite'); } /** * Grants permission to tag an AMP resource * * Access Level: Tagging, Write * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_TagResource.html */ toTagResource() { return this.to('TagResource'); } /** * Grants permission to untag an AMP resource * * Access Level: Tagging, Write * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_UntagResource.html */ toUntagResource() { return this.to('UntagResource'); } /** * Grants permission to update a logging configuration * * Access Level: Write * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_UpdateLoggingConfiguration.html */ toUpdateLoggingConfiguration() { return this.to('UpdateLoggingConfiguration'); } /** * Grants permission to update a query logging configuration * * Access Level: Write * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_UpdateQueryLoggingConfiguration.html */ toUpdateQueryLoggingConfiguration() { return this.to('UpdateQueryLoggingConfiguration'); } /** * Grants permission to update a scraper * * Access Level: Write * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_UpdateScraper.html */ toUpdateScraper() { return this.to('UpdateScraper'); } /** * Grants permission to put a scraper logging configuration * * Access Level: Write * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_UpdateScraperLoggingConfiguration.html */ toUpdateScraperLoggingConfiguration() { return this.to('UpdateScraperLoggingConfiguration'); } /** * Grants permission to modify the alias of existing AMP workspace * * Access Level: Write * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_UpdateWorkspaceAlias.html */ toUpdateWorkspaceAlias() { return this.to('UpdateWorkspaceAlias'); } /** * Grants permission to update workspace configuration * * Access Level: Write * * https://docs.aws.amazon.com/prometheus/latest/APIReference/API_UpdateWorkspaceConfiguration.html */ toUpdateWorkspaceConfiguration() { return this.to('UpdateWorkspaceConfiguration'); } /** * Adds a resource of type anomalydetector to the statement * * https://docs.aws.amazon.com/prometheus/latest/userguide/security-iam.html * * @param workspaceId - Identifier for the workspaceId. * @param anomalyDetectorId - Identifier for the anomalyDetectorId. * @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: * - .ifAwsRequestTag() * - .ifAwsResourceTag() * - .ifAwsTagKeys() */ onAnomalydetector(workspaceId, anomalyDetectorId, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:aps:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:anomalydetector/${workspaceId}/${anomalyDetectorId}`); } /** * Adds a resource of type cluster to the statement * * https://docs.aws.amazon.com/eks/latest/userguide/clusters.html * * @param clusterName - Identifier for the clusterName. * @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() */ onCluster(clusterName, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:eks:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:cluster/${clusterName}`); } /** * Adds a resource of type rulegroupsnamespace to the statement * * https://docs.aws.amazon.com/prometheus/latest/userguide/security-iam.html * * @param workspaceId - Identifier for the workspaceId. * @param namespace - Identifier for the namespace. * @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: * - .ifAwsRequestTag() * - .ifAwsResourceTag() * - .ifAwsTagKeys() */ onRulegroupsnamespace(workspaceId, namespace, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:aps:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:rulegroupsnamespace/${workspaceId}/${namespace}`); } /** * Adds a resource of type scraper to the statement * * https://docs.aws.amazon.com/prometheus/latest/userguide/security-iam.html * * @param scraperId - Identifier for the scraperId. * @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: * - .ifAwsRequestTag() * - .ifAwsResourceTag() * - .ifAwsTagKeys() */ onScraper(scraperId, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:aps:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:scraper/${scraperId}`); } /** * Adds a resource of type workspace to the statement * * https://docs.aws.amazon.com/prometheus/latest/userguide/security-iam.html * * @param workspaceId - Identifier for the workspaceId. * @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: * - .ifAwsRequestTag() * - .ifAwsResourceTag() * - .ifAwsTagKeys() */ onWorkspace(workspaceId, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:aps:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:workspace/${workspaceId}`); } /** * Filters access based on the tags that are passed in the request * * https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requesttag * * Applies to actions: * - .toCreateAlertManagerAlerts() * - .toCreateAlertManagerDefinition() * - .toCreateAnomalyDetector() * - .toCreateLoggingConfiguration() * - .toCreateQueryLoggingConfiguration() * - .toCreateRuleGroupsNamespace() * - .toCreateScraper() * - .toCreateWorkspace() * - .toDeleteAlertManagerDefinition() * - .toDeleteAlertManagerSilence() * - .toDeleteAnomalyDetector() * - .toDeleteLoggingConfiguration() * - .toDeleteQueryLoggingConfiguration() * - .toDeleteResourcePolicy() * - .toDeleteRuleGroupsNamespace() * - .toDeleteScraper() * - .toDeleteScraperLoggingConfiguration() * - .toDeleteWorkspace() * - .toDescribeAlertManagerDefinition() * - .toDescribeAnomalyDetector() * - .toDescribeLoggingConfiguration() * - .toDescribeQueryLoggingConfiguration() * - .toDescribeResourcePolicy() * - .toDescribeRuleGroupsNamespace() * - .toDescribeScraper() * - .toDescribeScraperLoggingConfiguration() * - .toDescribeWorkspace() * - .toDescribeWorkspaceConfiguration() * - .toGetAlertManagerSilence() * - .toGetAlertManagerStatus() * - .toGetLabels() * - .toGetMetricMetadata() * - .toGetSeries() * - .toListAlertManagerAlertGroups() * - .toListAlertManagerAlerts() * - .toListAlertManagerReceivers() * - .toListAlertManagerSilences() * - .toListAlerts() * - .toListAnomalyDetectors() * - .toListRuleGroupsNamespaces() * - .toListRules() * - .toListTagsForResource() * - .toPreviewAnomalyDetector() * - .toPutAlertManagerDefinition() * - .toPutAlertManagerSilences() * - .toPutAnomalyDetector() * - .toPutResourcePolicy() * - .toPutRuleGroupsNamespace() * - .toQueryMetrics() * - .toRemoteWrite() * - .toTagResource() * - .toUntagResource() * - .toUpdateLoggingConfiguration() * - .toUpdateQueryLoggingConfiguration() * - .toUpdateScraper() * - .toUpdateScraperLoggingConfiguration() * - .toUpdateWorkspaceAlias() * - .toUpdateWorkspaceConfiguration() * * Applies to resource types: * - anomalydetector * - rulegroupsnamespace * - scraper * - workspace * * @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 based on the tags associated with the resource * * https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourcetag * * Applies to actions: * - .toCreateAlertManagerAlerts() * - .toCreateAlertManagerDefinition() * - .toCreateAnomalyDetector() * - .toCreateLoggingConfiguration() * - .toCreateQueryLoggingConfiguration() * - .toCreateRuleGroupsNamespace() * - .toCreateScraper() * - .toDeleteAlertManagerDefinition() * - .toDeleteAlertManagerSilence() * - .toDeleteAnomalyDetector() * - .toDeleteLoggingConfiguration() * - .toDeleteQueryLoggingConfiguration() * - .toDeleteResourcePolicy() * - .toDeleteRuleGroupsNamespace() * - .toDeleteScraper() * - .toDeleteScraperLoggingConfiguration() * - .toDeleteWorkspace() * - .toDescribeAlertManagerDefinition() * - .toDescribeAnomalyDetector() * - .toDescribeLoggingConfiguration() * - .toDescribeQueryLoggingConfiguration() * - .toDescribeResourcePolicy() * - .toDescribeRuleGroupsNamespace() * - .toDescribeScraper() * - .toDescribeScraperLoggingConfiguration() * - .toDescribeWorkspace() * - .toDescribeWorkspaceConfiguration() * - .toGetAlertManagerSilence() * - .toGetAlertManagerStatus() * - .toGetLabels() * - .toGetMetricMetadata() * - .toGetSeries() * - .toListAlertManagerAlertGroups() * - .toListAlertManagerAlerts() * - .toListAlertManagerReceivers() * - .toListAlertManagerSilences() * - .toListAlerts() * - .toListAnomalyDetectors() * - .toListRuleGroupsNamespaces() * - .toListRules() * - .toListTagsForResource() * - .toPreviewAnomalyDetector() * - .toPutAlertManagerDefinition() * - .toPutAlertManagerSilences() * - .toPutAnomalyDetector() * - .toPutResourcePolicy() * - .toPutRuleGroupsNamespace() * - .toQueryMetrics() * - .toRemoteWrite() * - .toTagResource() * - .toUntagResource() * - .toUpdateLoggingConfiguration() * - .toUpdateQueryLoggingConfiguration() * - .toUpdateScraper() * - .toUpdateScraperLoggingConfiguration() * - .toUpdateWorkspaceAlias() * - .toUpdateWorkspaceConfiguration() * * Applies to resource types: * - anomalydetector * - cluster * - rulegroupsnamespace * - scraper * - workspace * * @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 based on the tag keys that are passed in the request * * https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys * * Applies to actions: * - .toCreateAlertManagerAlerts() * - .toCreateAlertManagerDefinition() * - .toCreateAnomalyDetector() * - .toCreateLoggingConfiguration() * - .toCreateQueryLoggingConfiguration() * - .toCreateRuleGroupsNamespace() * - .toCreateScraper() * - .toCreateWorkspace() * - .toDeleteAlertManagerDefinition() * - .toDeleteAlertManagerSilence() * - .toDeleteAnomalyDetector() * - .toDeleteLoggingConfiguration() * - .toDeleteQueryLoggingConfiguration() * - .toDeleteResourcePolicy() * - .toDeleteRuleGroupsNamespace() * - .toDeleteScraper() * - .toDeleteScraperLoggingConfiguration() * - .toDeleteWorkspace() * - .toDescribeAlertManagerDefinition() * - .toDescribeAnomalyDetector() * - .toDescribeLoggingConfiguration() * - .toDescribeQueryLoggingConfiguration() * - .toDescribeResourcePolicy() * - .toDescribeRuleGroupsNamespace() * - .toDescribeScraper() * - .toDescribeScraperLoggingConfiguration() * - .toDescribeWorkspace() * - .toDescribeWorkspaceConfiguration() * - .toGetAlertManagerSilence() * - .toGetAlertManagerStatus() * - .toGetLabels() * - .toGetMetricMetadata() * - .toGetSeries() * - .toListAlertManagerAlertGroups() * - .toListAlertManagerAlerts() * - .toListAlertManagerReceivers() * - .toListAlertManagerSilences() * - .toListAlerts() * - .toListAnomalyDetectors() * - .toListRuleGroupsNamespaces() * - .toListRules() * - .toListTagsForResource() * - .toPreviewAnomalyDetector() * - .toPutAlertManagerDefinition() * - .toPutAlertManagerSilences() * - .toPutAnomalyDetector() * - .toPutResourcePolicy() * - .toPutRuleGroupsNamespace() * - .toQueryMetrics() * - .toRemoteWrite() * - .toTagResource() * - .toUntagResource() * - .toUpdateLoggingConfiguration() * - .toUpdateQueryLoggingConfiguration() * - .toUpdateScraper() * - .toUpdateScraperLoggingConfiguration() * - .toUpdateWorkspaceAlias() * - .toUpdateWorkspaceConfiguration() * * Applies to resource types: * - anomalydetector * - rulegroupsnamespace * - scraper * - workspace * * @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 [aps](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amp.html). * */ constructor(props) { super(props); this.servicePrefix = 'aps'; this.accessLevelList = { Write: [ 'CreateAlertManagerAlerts', 'CreateAlertManagerDefinition', 'CreateAnomalyDetector', 'CreateLoggingConfiguration', 'CreateQueryLoggingConfiguration', 'CreateRuleGroupsNamespace', 'CreateScraper', 'CreateWorkspace', 'DeleteAlertManagerDefinition', 'DeleteAlertManagerSilence', 'DeleteAnomalyDetector', 'DeleteLoggingConfiguration', 'DeleteQueryLoggingConfiguration', 'DeleteResourcePolicy', 'DeleteRuleGroupsNamespace', 'DeleteScraper', 'DeleteScraperLoggingConfiguration', 'DeleteWorkspace', 'PutAlertManagerDefinition', 'PutAlertManagerSilences', 'PutAnomalyDetector', 'PutResourcePolicy', 'PutRuleGroupsNamespace', 'RemoteWrite', 'TagResource', 'UntagResource', 'UpdateLoggingConfiguration', 'UpdateQueryLoggingConfiguration', 'UpdateScraper', 'UpdateScraperLoggingConfiguration', 'UpdateWorkspaceAlias', 'UpdateWorkspaceConfiguration' ], Read: [ 'DescribeAlertManagerDefinition', 'DescribeAnomalyDetector', 'DescribeLoggingConfiguration', 'DescribeQueryLoggingConfiguration', 'DescribeResourcePolicy', 'DescribeRuleGroupsNamespace', 'DescribeScraper', 'DescribeScraperLoggingConfiguration', 'DescribeWorkspace', 'DescribeWorkspaceConfiguration', 'GetAlertManagerSilence', 'GetAlertManagerStatus', 'GetDefaultScraperConfiguration', 'GetLabels', 'GetMetricMetadata', 'GetSeries', 'ListAlertManagerAlertGroups', 'ListAlertManagerAlerts', 'ListAlertManagerReceivers', 'ListAlertManagerSilences', 'ListAlerts', 'ListRules', 'ListTagsForResource', 'PreviewAnomalyDetector', 'QueryMetrics' ], List: [ 'ListAnomalyDetectors', 'ListRuleGroupsNamespaces', 'ListScrapers', 'ListWorkspaces' ], Tagging: [ 'TagResource', 'UntagResource' ] }; } } exports.Aps = Aps; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1wLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYW1wLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHlDQUF5RDtBQUd6RDs7OztHQUlHO0FBQ0gsTUFBYSxHQUFJLFNBQVEsd0JBQWU7SUFHdEM7Ozs7OztPQU1HO0lBQ0ksMEJBQTBCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSw4QkFBOEI7UUFDbkMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLDhCQUE4QixDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLHVCQUF1QjtRQUM1QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksNEJBQTRCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxpQ0FBaUM7UUFDdEMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGlDQUFpQyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLDJCQUEyQjtRQUNoQyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksZUFBZTtRQUNwQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxpQkFBaUI7UUFDdEIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLDhCQUE4QjtRQUNuQyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsOEJBQThCLENB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QkFDWCxxQkFBcUI7Z0JBQ3JCLHdCQUF3QjtnQkFDeEIsY0FBYzthQUNmO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLHNCQUFzQjtnQkFDdEIsMEJBQTBCO2dCQUMxQixjQUFjO2dCQUNkLGdCQUFnQjthQUNqQjtZQUNELE9BQU8sRUFBRTtnQkFDUCxhQUFhO2dCQUNiLGVBQWU7YUFDaEI7U0FDRixDQUFDO0lBbVZGLENBQUM7Q0FDRjtBQWxrQ0Qsa0JBa2tDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjY2Vzc0xldmVsTGlzdCB9IGZyb20gJy4uLy4uL3NoYXJlZC9hY2Nlc3MtbGV2ZWwnO1xuaW1wb3J0IHsgUG9saWN5U3RhdGVtZW50LCBPcGVyYXRvciB9IGZyb20gJy4uLy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBhd3NfaWFtIGFzIGlhbSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuXG4vKipcbiAqIFN0YXRlbWVudCBwcm92aWRlciBmb3Igc2VydmljZSBbYXBzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VydmljZS1hdXRob3JpemF0aW9uL2xhdGVzdC9yZWZlcmVuY2UvbGlzdF9hbXAuaHRtbCkuXG4gKlxuICogQHBhcmFtIHNpZCBbU0lEXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX3NpZC5odG1sKSBvZiB0aGUgc3RhdGVtZW50XG4gKi9cbmV4cG9ydCBjbGFzcyBBcHMgZXh0ZW5kcyBQb2xpY3lTdGF0ZW1lbnQge1xuICBwdWJsaWMgc2VydmljZVByZWZpeCA9ICdhcHMnO1xuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYWxlcnRzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3Byb21ldGhldXMvbGF0ZXN0L3VzZXJndWlkZS9BTVAtQVBJUmVmZXJlbmNlLUNyZWF0ZUFsZXJ0TWFuYWdlckFsZXJ0cy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVBbGVydE1hbmFnZXJBbGVydHMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZUFsZXJ0TWFuYWdlckFsZXJ0cycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNyZWF0ZSBhbiBhbGVydCBtYW5hZ2VyIGRlZmluaXRpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vcHJvbWV0aGV1cy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DcmVhdGVBbGVydE1hbmFnZXJEZWZpbml0aW9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZUFsZXJ0TWFuYWdlckRlZmluaXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZUFsZXJ0TWFuYWdlckRlZmluaXRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYW4gYW5vbWFseSBkZXRlY3RvclxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9wcm9tZXRoZXVzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0NyZWF0ZUFub21hbHlEZXRlY3Rvci5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVBbm9tYWx5RGV0ZWN0b3IoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZUFub21hbHlEZXRlY3RvcicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNyZWF0ZSBhIGxvZ2dpbmcgY29uZmlndXJhdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9wcm9tZXRoZXVzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0NyZWF0ZUxvZ2dpbmdDb25maWd1cmF0aW9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZUxvZ2dpbmdDb25maWd1cmF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVMb2dnaW5nQ29uZmlndXJhdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNyZWF0ZSBhIHF1ZXJ5IGxvZ2dpbmcgY29uZmlndXJhdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9wcm9tZXRoZXVzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0NyZWF0ZVF1ZXJ5TG9nZ2luZ0NvbmZpZ3VyYXRpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ3JlYXRlUXVlcnlMb2dnaW5nQ29uZmlndXJhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ3JlYXRlUXVlcnlMb2dnaW5nQ29uZmlndXJhdGlvbicpO1xuICB9XG