UNPKG

cdk-iam-floyd

Version:

AWS IAM policy statement generator with fluent interface for AWS CDK

983 lines 97.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Kafka = void 0; const shared_1 = require("../../shared"); /** * Statement provider for service [kafka](https://docs.aws.amazon.com/service-authorization/latest/reference/list_kafka.html). * * @param sid [SID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html) of the statement */ class Kafka extends shared_1.PolicyStatement { /** * Grants permission to associate one or more Scram Secrets with an Amazon MSK cluster * * Access Level: Write * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-scram-secrets.html#BatchAssociateScramSecret */ toBatchAssociateScramSecret() { return this.to('BatchAssociateScramSecret'); } /** * Grants permission to disassociate one or more Scram Secrets from an Amazon MSK cluster * * Access Level: Write * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-scram-secrets.html#BatchDisassociateScramSecret */ toBatchDisassociateScramSecret() { return this.to('BatchDisassociateScramSecret'); } /** * Grants permission to create an MSK Data Channel for an MSK cluster * * Access Level: Write * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-channels.html#CreateChannel */ toCreateChannel() { return this.to('CreateChannel'); } /** * Grants permission to create an MSK cluster * * Access Level: Write * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters.html#CreateCluster */ toCreateCluster() { return this.to('CreateCluster'); } /** * Grants permission to create an MSK cluster * * Access Level: Write * * https://docs.aws.amazon.com/MSK/2.0/APIReference/v2-clusters.html#CreateClusterV2 */ toCreateClusterV2() { return this.to('CreateClusterV2'); } /** * Grants permission to create an MSK configuration * * Access Level: Write * * https://docs.aws.amazon.com/msk/1.0/apireference/configurations.html#CreateConfiguration */ toCreateConfiguration() { return this.to('CreateConfiguration'); } /** * Grants permission to create a MSK replicator * * Access Level: Write * * https://docs.aws.amazon.com/msk/latest/developerguide/v1-replicators.html#CreateReplicator */ toCreateReplicator() { return this.to('CreateReplicator'); } /** * Grants permission to create a Kafka topic in an MSK cluster * * Access Level: Write * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-topics.html */ toCreateTopic() { return this.to('CreateTopic'); } /** * Grants permission to create a MSK VPC connection * * Access Level: Write * * https://docs.aws.amazon.com/msk/1.0/apireference/vpc-connection.html#CreateVpcConnection */ toCreateVpcConnection() { return this.to('CreateVpcConnection'); } /** * Grants permission to delete an MSK Data Channel * * Access Level: Write * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-channels-channelarn.html#DeleteChannel */ toDeleteChannel() { return this.to('DeleteChannel'); } /** * Grants permission to delete an MSK cluster * * Access Level: Write * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn.html#DeleteCluster */ toDeleteCluster() { return this.to('DeleteCluster'); } /** * Grants permission to delete a cluster resource-based policy * * Access Level: Write * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-policy.html#DeleteClusterPolicy */ toDeleteClusterPolicy() { return this.to('DeleteClusterPolicy'); } /** * Grants permission to delete the specified MSK configuration * * Access Level: Write * * https://docs.aws.amazon.com/msk/1.0/apireference/configurations-arn.html#DeleteConfiguration */ toDeleteConfiguration() { return this.to('DeleteConfiguration'); } /** * Grants permission to delete a MSK replicator * * Access Level: Write * * https://docs.aws.amazon.com/msk/latest/developerguide/v1-replicators.html#DeleteReplicator */ toDeleteReplicator() { return this.to('DeleteReplicator'); } /** * Grants permission to delete a Kafka topic from an MSK cluster * * Access Level: Write * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-topics-topicname.html */ toDeleteTopic() { return this.to('DeleteTopic'); } /** * Grants permission to delete a MSK VPC connection * * Access Level: Write * * https://docs.aws.amazon.com/msk/1.0/apireference/vpc-connection-arn.html#DeleteVpcConnection */ toDeleteVpcConnection() { return this.to('DeleteVpcConnection'); } /** * Grants permission to describe an MSK Data Channel * * Access Level: Read * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-channels-channelarn.html#DescribeChannel */ toDescribeChannel() { return this.to('DescribeChannel'); } /** * Grants permission to describe an MSK cluster * * Access Level: Read * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn.html#DescribeCluster */ toDescribeCluster() { return this.to('DescribeCluster'); } /** * Grants permission to describe the cluster operation that is specified by the given ARN * * Access Level: Read * * https://docs.aws.amazon.com/msk/1.0/apireference/operations-clusteroperationarn.html#DescribeClusterOperation */ toDescribeClusterOperation() { return this.to('DescribeClusterOperation'); } /** * Grants permission to describe the cluster operation that is specified by the given ARN * * Access Level: Read * * https://docs.aws.amazon.com/MSK/2.0/APIReference/v2-operations-clusteroperationarn.html#DescribeClusterOperationV2 */ toDescribeClusterOperationV2() { return this.to('DescribeClusterOperationV2'); } /** * Grants permission to describe an MSK cluster * * Access Level: Read * * https://docs.aws.amazon.com/MSK/2.0/APIReference/v2-clusters-clusterarn.html#DescribeClusterV2 */ toDescribeClusterV2() { return this.to('DescribeClusterV2'); } /** * Grants permission to describe an MSK configuration * * Access Level: Read * * https://docs.aws.amazon.com/msk/1.0/apireference/configurations-arn.html#DescribeConfiguration */ toDescribeConfiguration() { return this.to('DescribeConfiguration'); } /** * Grants permission to describe an MSK configuration revision * * Access Level: Read * * https://docs.aws.amazon.com/msk/1.0/apireference/configurations-arn-revisions-revision.html#DescribeConfigurationRevision */ toDescribeConfigurationRevision() { return this.to('DescribeConfigurationRevision'); } /** * Grants permission to describe a MSK replicator * * Access Level: Read * * https://docs.aws.amazon.com/msk/latest/developerguide/v1-replicators.html#DescribeReplicator */ toDescribeReplicator() { return this.to('DescribeReplicator'); } /** * Grants permission to return metadata details about a specific Kafka topic * * Access Level: Read * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-topics-topicname.html */ toDescribeTopic() { return this.to('DescribeTopic'); } /** * Grants permission to list all partitions of a specific topic * * Access Level: Read * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-topics-topicname-partitions.html */ toDescribeTopicPartitions() { return this.to('DescribeTopicPartitions'); } /** * Grants permission to describe a MSK VPC connection * * Access Level: Read * * https://docs.aws.amazon.com/msk/1.0/apireference/vpc-connection-arn.html#DescribeVpcConnection */ toDescribeVpcConnection() { return this.to('DescribeVpcConnection'); } /** * Grants permission to get connection details for the brokers in an MSK cluster * * Access Level: Read * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-bootstrap-brokers.html#GetBootstrapBrokers */ toGetBootstrapBrokers() { return this.to('GetBootstrapBrokers'); } /** * Grants permission to describe a cluster resource-based policy * * Access Level: Read * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-policy.html#GetClusterPolicy */ toGetClusterPolicy() { return this.to('GetClusterPolicy'); } /** * Grants permission to get a list of the Apache Kafka versions to which you can update an MSK cluster * * Access Level: List * * https://docs.aws.amazon.com/msk/1.0/apireference/compatible-kafka-versions.html#GetCompatibleKafkaVersions */ toGetCompatibleKafkaVersions() { return this.to('GetCompatibleKafkaVersions'); } /** * Grants permission to list all MSK Data Channels for a specified MSK cluster * * Access Level: List * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-channels.html#ListChannels */ toListChannels() { return this.to('ListChannels'); } /** * Grants permission to list all MSK VPC connections created for a cluster * * Access Level: List * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-client-vpc-connections.html#ListClientVpcConnections */ toListClientVpcConnections() { return this.to('ListClientVpcConnections'); } /** * Grants permission to return a list of all the operations that have been performed on the specified MSK cluster * * Access Level: List * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-operations.html#ListClusterOperations */ toListClusterOperations() { return this.to('ListClusterOperations'); } /** * Grants permission to return a list of all the operations that have been performed on the specified MSK cluster * * Access Level: List * * https://docs.aws.amazon.com/MSK/2.0/APIReference/v2-clusters-clusterarn-operations.html#ListClusterOperationsV2 */ toListClusterOperationsV2() { return this.to('ListClusterOperationsV2'); } /** * Grants permission to list all MSK clusters in this account * * Access Level: List * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters.html#ListClusters */ toListClusters() { return this.to('ListClusters'); } /** * Grants permission to list all MSK clusters in this account * * Access Level: List * * https://docs.aws.amazon.com/MSK/2.0/APIReference/v2-clusters.html#ListClustersV2 */ toListClustersV2() { return this.to('ListClustersV2'); } /** * Grants permission to list all revisions for an MSK configuration in this account * * Access Level: List * * https://docs.aws.amazon.com/msk/1.0/apireference/configurations-arn-revisions.html#ListConfigurationRevisions */ toListConfigurationRevisions() { return this.to('ListConfigurationRevisions'); } /** * Grants permission to list all MSK configurations in this account * * Access Level: List * * https://docs.aws.amazon.com/msk/1.0/apireference/configurations.html#ListConfigurations */ toListConfigurations() { return this.to('ListConfigurations'); } /** * Grants permission to list all Apache Kafka versions supported by Amazon MSK * * Access Level: List * * https://docs.aws.amazon.com/msk/1.0/apireference/kafka-versions.html#ListKafkaVersions */ toListKafkaVersions() { return this.to('ListKafkaVersions'); } /** * Grants permission to list brokers in an MSK cluster * * Access Level: List * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-nodes.html#ListNodes */ toListNodes() { return this.to('ListNodes'); } /** * Grants permission to list all MSK replicators in this account * * Access Level: List * * https://docs.aws.amazon.com/msk/latest/developerguide/v1-replicators.html#ListReplicators */ toListReplicators() { return this.to('ListReplicators'); } /** * Grants permission to list the Scram Secrets associated with an Amazon MSK cluster * * Access Level: List * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-scram-secrets.html#ListScramSecrets */ toListScramSecrets() { return this.to('ListScramSecrets'); } /** * Grants permission to list tags of an MSK resource * * Access Level: Read * * https://docs.aws.amazon.com/msk/1.0/apireference/tags-resourcearn.html#ListTagsForResource */ toListTagsForResource() { return this.to('ListTagsForResource'); } /** * Grants permission to list all Kafka topics for a specified MSK cluster * * Access Level: List * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-topics.html */ toListTopics() { return this.to('ListTopics'); } /** * Grants permission to list all MSK VPC connections that this account uses * * Access Level: List * * https://docs.aws.amazon.com/msk/1.0/apireference/vpc-connections.html#ListVpcConnections */ toListVpcConnections() { return this.to('ListVpcConnections'); } /** * Grants permission to create or update the resource-based policy for a cluster * * Access Level: Write * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-policy.html#PutClusterPolicy */ toPutClusterPolicy() { return this.to('PutClusterPolicy'); } /** * Grants permission to reboot broker * * Access Level: Write * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-reboot-broker.html#RebootBroker */ toRebootBroker() { return this.to('RebootBroker'); } /** * Grants permission to reject a MSK VPC connection * * Access Level: Write * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-client-vpc-connection.html#RejectClientVpcConnection */ toRejectClientVpcConnection() { return this.to('RejectClientVpcConnection'); } /** * Grants permission to tag an MSK resource * * Access Level: Tagging, Write * * https://docs.aws.amazon.com/msk/1.0/apireference/tags-resourcearn.html#TagResource */ toTagResource() { return this.to('TagResource'); } /** * Grants permission to remove tags from an MSK resource * * Access Level: Tagging, Write * * https://docs.aws.amazon.com/msk/1.0/apireference/tags-resourcearn.html#UntagResource */ toUntagResource() { return this.to('UntagResource'); } /** * Grants permission to update the number of brokers of the MSK cluster * * Access Level: Write * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-nodes-count.html#UpdateBrokerCount */ toUpdateBrokerCount() { return this.to('UpdateBrokerCount'); } /** * Grants permission to update the storage size of the brokers of the MSK cluster * * Access Level: Write * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-nodes-storage.html#UpdateBrokerStorage */ toUpdateBrokerStorage() { return this.to('UpdateBrokerStorage'); } /** * Grants permission to update the broker type of an Amazon MSK cluster * * Access Level: Write * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-nodes-type.html#UpdateBrokerType */ toUpdateBrokerType() { return this.to('UpdateBrokerType'); } /** * Grants permission to update the configuration of an MSK Data Channel * * Access Level: Write * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-channels-channelarn.html#UpdateChannel */ toUpdateChannel() { return this.to('UpdateChannel'); } /** * Grants permission to update the configuration of the MSK cluster * * Access Level: Write * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-configuration.html#UpdateClusterConfiguration */ toUpdateClusterConfiguration() { return this.to('UpdateClusterConfiguration'); } /** * Grants permission to update the MSK cluster to the specified Apache Kafka version * * Access Level: Write * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-version.html#UpdateClusterKafkaVersion */ toUpdateClusterKafkaVersion() { return this.to('UpdateClusterKafkaVersion'); } /** * Grants permission to create a new revision of the MSK configuration * * Access Level: Write * * https://docs.aws.amazon.com/msk/1.0/apireference/configurations-arn.html#UpdateConfiguration */ toUpdateConfiguration() { return this.to('UpdateConfiguration'); } /** * Grants permission to update the connectivity settings for the MSK cluster * * Access Level: Write * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-connectivity.html#UpdateConnectivity */ toUpdateConnectivity() { return this.to('UpdateConnectivity'); } /** * Grants permission to update the monitoring settings for the MSK cluster * * Access Level: Write * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-monitoring.html#UpdateMonitoring */ toUpdateMonitoring() { return this.to('UpdateMonitoring'); } /** * Grants permission to update the intelligent rebalancing status of the MSK cluster * * Access Level: Write * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-rebalancing.html */ toUpdateRebalancing() { return this.to('UpdateRebalancing'); } /** * Grants permission to update the replication info of the MSK replicator * * Access Level: Write * * https://docs.aws.amazon.com/msk/latest/developerguide/v1-replicators.html#UpdateReplicationInfo */ toUpdateReplicationInfo() { return this.to('UpdateReplicationInfo'); } /** * Grants permission to update the security settings for the MSK cluster * * Access Level: Write * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-security.html#UpdateSecurity */ toUpdateSecurity() { return this.to('UpdateSecurity'); } /** * Grants permission to update the EBS storage (size or provisioned throughput) associated with MSK brokers or set cluster storage mode to TIERED * * Access Level: Write * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-storage.html#UpdateStorage */ toUpdateStorage() { return this.to('UpdateStorage'); } /** * Grants permission to update the configuration of a Kafka topic in an MSK cluster * * Access Level: Write * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-topics-topicname.html */ toUpdateTopic() { return this.to('UpdateTopic'); } /** * Adds a resource of type channel to the statement * * https://docs.aws.amazon.com/msk/latest/developerguide/msk-data-channel.html * * @param clusterName - Identifier for the clusterName. * @param clusterUuid - Identifier for the clusterUuid. * @param channelName - Identifier for the channelName. * @param uuid - Identifier for the uuid. * @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(clusterName, clusterUuid, channelName, uuid, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:kafka:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:channel/${clusterName}/${clusterUuid}/${channelName}/${uuid}`); } /** * Adds a resource of type cluster to the statement * * https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn.html * * @param clusterName - Identifier for the clusterName. * @param uuid - Identifier for the uuid. * @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, uuid, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:kafka:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:cluster/${clusterName}/${uuid}`); } /** * Adds a resource of type configuration to the statement * * https://docs.aws.amazon.com/msk/1.0/apireference/configurations-arn.html * * @param configurationName - Identifier for the configurationName. * @param uuid - Identifier for the uuid. * @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. */ onConfiguration(configurationName, uuid, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:kafka:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:configuration/${configurationName}/${uuid}`); } /** * Adds a resource of type group to the statement * * https://docs.aws.amazon.com/msk/latest/developerguide/iam-access-control.html#msk-iam-resources * * @param clusterName - Identifier for the clusterName. * @param clusterUuid - Identifier for the clusterUuid. * @param groupName - Identifier for the groupName. * @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. */ onGroup(clusterName, clusterUuid, groupName, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:kafka:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:group/${clusterName}/${clusterUuid}/${groupName}`); } /** * Adds a resource of type replicator to the statement * * https://docs.aws.amazon.com/msk/latest/developerguide/v1-replicators.html * * @param replicatorName - Identifier for the replicatorName. * @param uuid - Identifier for the uuid. * @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() */ onReplicator(replicatorName, uuid, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:kafka:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:replicator/${replicatorName}/${uuid}`); } /** * Adds a resource of type topic to the statement * * https://docs.aws.amazon.com/msk/latest/developerguide/iam-access-control.html#msk-iam-resources * * @param clusterName - Identifier for the clusterName. * @param clusterUuid - Identifier for the clusterUuid. * @param topicName - Identifier for the topicName. * @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. */ onTopic(clusterName, clusterUuid, topicName, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:kafka:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:topic/${clusterName}/${clusterUuid}/${topicName}`); } /** * Adds a resource of type transactional-id to the statement * * https://docs.aws.amazon.com/msk/latest/developerguide/iam-access-control.html#msk-iam-resources * * @param clusterName - Identifier for the clusterName. * @param clusterUuid - Identifier for the clusterUuid. * @param transactionalId - Identifier for the transactionalId. * @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. */ onTransactionalId(clusterName, clusterUuid, transactionalId, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:kafka:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:transactional-id/${clusterName}/${clusterUuid}/${transactionalId}`); } /** * Adds a resource of type vpc-connection to the statement * * https://docs.aws.amazon.com/msk/1.0/apireference/vpc-connections-arn.html * * @param vpcOwnerAccount - Identifier for the vpcOwnerAccount. * @param clusterOwnerAccount - Identifier for the clusterOwnerAccount. * @param clusterName - Identifier for the clusterName. * @param uuid - Identifier for the uuid. * @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() */ onVpcConnection(vpcOwnerAccount, clusterOwnerAccount, clusterName, uuid, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:kafka:${region ?? this.defaultRegion}:${vpcOwnerAccount}:vpc-connection/${clusterOwnerAccount}/${clusterName}/${uuid}`); } /** * 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: * - .toCreateChannel() * - .toCreateCluster() * - .toCreateClusterV2() * - .toCreateReplicator() * - .toCreateVpcConnection() * - .toTagResource() * * @param tagKey The tag key to check * @param value The value(s) to check * @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike` */ ifAwsRequestTag(tagKey, value, operator) { return this.if(`aws:RequestTag/${tagKey}`, value, operator ?? 'StringLike'); } /** * Filters access by 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 actions: * - .toBatchAssociateScramSecret() * - .toBatchDisassociateScramSecret() * - .toCreateChannel() * - .toCreateCluster() * - .toCreateClusterV2() * - .toCreateReplicator() * - .toCreateVpcConnection() * - .toDeleteChannel() * - .toDeleteCluster() * - .toDeleteClusterPolicy() * - .toDeleteReplicator() * - .toDeleteVpcConnection() * - .toDescribeChannel() * - .toDescribeCluster() * - .toDescribeClusterV2() * - .toDescribeReplicator() * - .toDescribeVpcConnection() * - .toGetClusterPolicy() * - .toListChannels() * - .toListClientVpcConnections() * - .toListClusterOperations() * - .toListClusterOperationsV2() * - .toListNodes() * - .toListScramSecrets() * - .toListTagsForResource() * - .toListTopics() * - .toPutClusterPolicy() * - .toRebootBroker() * - .toRejectClientVpcConnection() * - .toTagResource() * - .toUntagResource() * - .toUpdateBrokerCount() * - .toUpdateBrokerStorage() * - .toUpdateBrokerType() * - .toUpdateChannel() * - .toUpdateClusterConfiguration() * - .toUpdateClusterKafkaVersion() * - .toUpdateConnectivity() * - .toUpdateMonitoring() * - .toUpdateRebalancing() * - .toUpdateReplicationInfo() * - .toUpdateSecurity() * - .toUpdateStorage() * * Applies to resource types: * - channel * - cluster * - replicator * - vpc-connection * * @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 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: * - .toCreateChannel() * - .toCreateCluster() * - .toCreateClusterV2() * - .toCreateReplicator() * - .toCreateVpcConnection() * - .toTagResource() * - .toUntagResource() * * @param value The value(s) to check * @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike` */ ifAwsTagKeys(value, operator) { return this.if(`aws:TagKeys`, value, operator ?? 'StringLike'); } /** * Filters access by the presence of public access enabled in the request * * https://docs.aws.amazon.com/service-authorization/latest/reference/list_apachekafkaapisforamazonmskclusters.html#apachekafkaapisforamazonmskclusters-policy-keys * * Applies to actions: * - .toUpdateConnectivity() * * @param value `true` or `false`. **Default:** `true` */ ifPublicAccessEnabled(value) { return this.if(`publicAccessEnabled`, (typeof value !== 'undefined' ? value : true), 'Bool'); } /** * Statement provider for service [kafka](https://docs.aws.amazon.com/service-authorization/latest/reference/list_kafka.html). * */ constructor(props) { super(props); this.servicePrefix = 'kafka'; this.accessLevelList = { Write: [ 'BatchAssociateScramSecret', 'BatchDisassociateScramSecret', 'CreateChannel', 'CreateCluster', 'CreateClusterV2', 'CreateConfiguration', 'CreateReplicator', 'CreateTopic', 'CreateVpcConnection', 'DeleteChannel', 'DeleteCluster', 'DeleteClusterPolicy', 'DeleteConfiguration', 'DeleteReplicator', 'DeleteTopic', 'DeleteVpcConnection', 'PutClusterPolicy', 'RebootBroker', 'RejectClientVpcConnection', 'TagResource', 'UntagResource', 'UpdateBrokerCount', 'UpdateBrokerStorage', 'UpdateBrokerType', 'UpdateChannel', 'UpdateClusterConfiguration', 'UpdateClusterKafkaVersion', 'UpdateConfiguration', 'UpdateConnectivity', 'UpdateMonitoring', 'UpdateRebalancing', 'UpdateReplicationInfo', 'UpdateSecurity', 'UpdateStorage', 'UpdateTopic' ], Read: [ 'DescribeChannel', 'DescribeCluster', 'DescribeClusterOperation', 'DescribeClusterOperationV2', 'DescribeClusterV2', 'DescribeConfiguration', 'DescribeConfigurationRevision', 'DescribeReplicator', 'DescribeTopic', 'DescribeTopicPartitions', 'DescribeVpcConnection', 'GetBootstrapBrokers', 'GetClusterPolicy', 'ListTagsForResource' ], List: [ 'GetCompatibleKafkaVersions', 'ListChannels', 'ListClientVpcConnections', 'ListClusterOperations', 'ListClusterOperationsV2', 'ListClusters', 'ListClustersV2', 'ListConfigurationRevisions', 'ListConfigurations', 'ListKafkaVersions', 'ListNodes', 'ListReplicators', 'ListScramSecrets', 'ListTopics', 'ListVpcConnections' ], Tagging: [ 'TagResource', 'UntagResource' ] }; } } exports.Kafka = Kafka; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2Fma2EuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJrYWZrYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx5Q0FBeUQ7QUFHekQ7Ozs7R0FJRztBQUNILE1BQWEsS0FBTSxTQUFRLHdCQUFlO0lBR3hDOzs7Ozs7T0FNRztJQUNJLDJCQUEyQjtRQUNoQyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksOEJBQThCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxlQUFlO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksZUFBZTtRQUNwQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLGlCQUFpQjtRQUN0QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0kscUJBQXFCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxrQkFBa0I7UUFDdkIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLGFBQWE7UUFDbEIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxxQkFBcUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLENBQUM7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Z0JBQ2hCLGVBQWU7Z0JBQ2YsYUFBYTthQUNkO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLGlCQUFpQjtnQkFDakIsaUJBQWlCO2dCQUNqQiwwQkFBMEI7Z0JBQzFCLDRCQUE0QjtnQkFDNUIsbUJBQW1CO2dCQUNuQix1QkFBdUI7Z0JBQ3ZCLCtCQUErQjtnQkFDL0Isb0JBQW9CO2dCQUNwQixlQUFlO2dCQUNmLHlCQUF5QjtnQkFDekIsdUJBQXVCO2dCQUN2QixxQkFBcUI7Z0JBQ3JCLGtCQUFrQjtnQkFDbEIscUJBQXFCO2FBQ3RCO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLDRCQUE0QjtnQkFDNUIsY0FBYztnQkFDZCwwQkFBMEI7Z0JBQzFCLHVCQUF1QjtnQkFDdkIseUJBQXlCO2dCQUN6QixjQUFjO2dCQUNkLGdCQUFnQjtnQkFDaEIsNEJBQTRCO2dCQUM1QixvQkFBb0I7Z0JBQ3BCLG1CQUFtQjtnQkFDbkIsV0FBVztnQkFDWCxpQkFBaUI7Z0JBQ2pCLGtCQUFrQjtnQkFDbEIsWUFBWTtnQkFDWixvQkFBb0I7YUFDckI7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AsYUFBYTtnQkFDYixlQUFlO2FBQ2hCO1NBQ0YsQ0FBQztJQTBRRixDQUFDO0NBQ0Y7QUF6aENELHNCQXloQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY2Nlc3NMZXZlbExpc3QgfSBmcm9tICcuLi8uLi9zaGFyZWQvYWNjZXNzLWxldmVsJztcbmltcG9ydCB7IFBvbGljeVN0YXRlbWVudCwgT3BlcmF0b3IgfSBmcm9tICcuLi8uLi9zaGFyZWQnO1xuaW1wb3J0IHsgYXdzX2lhbSBhcyBpYW0gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcblxuLyoqXG4gKiBTdGF0ZW1lbnQgcHJvdmlkZXIgZm9yIHNlcnZpY2UgW2thZmthXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VydmljZS1hdXRob3JpemF0aW9uL2xhdGVzdC9yZWZlcmVuY2UvbGlzdF9rYWZrYS5odG1sKS5cbiAqXG4gKiBAcGFyYW0gc2lkIFtTSURdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfc2lkLmh0bWwpIG9mIHRoZSBzd