@aws-cdk/aws-msk-alpha 2.219.0-alpha.0 → 2.221.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.jsii CHANGED
@@ -8,7 +8,7 @@
8
8
  "url": "https://aws.amazon.com"
9
9
  },
10
10
  "dependencies": {
11
- "aws-cdk-lib": "^2.219.0",
11
+ "aws-cdk-lib": "^2.221.0",
12
12
  "constructs": "^10.0.0"
13
13
  },
14
14
  "dependencyClosure": {
@@ -4082,7 +4082,7 @@
4082
4082
  "stability": "experimental"
4083
4083
  },
4084
4084
  "homepage": "https://github.com/aws/aws-cdk",
4085
- "jsiiVersion": "5.7.22 (build 1cfeabd)",
4085
+ "jsiiVersion": "5.9.8 (build 3d2e131)",
4086
4086
  "keywords": [
4087
4087
  "aws",
4088
4088
  "cdk",
@@ -4104,7 +4104,7 @@
4104
4104
  },
4105
4105
  "name": "@aws-cdk/aws-msk-alpha",
4106
4106
  "readme": {
4107
- "markdown": "# Amazon Managed Streaming for Apache Kafka Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n![cdk-constructs: Experimental](https://img.shields.io/badge/cdk--constructs-experimental-important.svg?style=for-the-badge)\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\n[Amazon MSK](https://aws.amazon.com/msk/) is a fully managed service that makes it easy for you to build and run applications that use Apache Kafka to process streaming data.\n\nThe following example creates an MSK Cluster.\n\n```ts\ndeclare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'Cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_0_X_KRAFT,\n vpc,\n});\n```\n\n## Allowing Connections\n\nTo control who can access the Cluster, use the `.connections` attribute. For a list of ports used by MSK, refer to the [MSK documentation](https://docs.aws.amazon.com/msk/latest/developerguide/client-access.html#port-info).\n\n```ts\ndeclare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'Cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_0_X_KRAFT,\n vpc,\n});\n\ncluster.connections.allowFrom(\n ec2.Peer.ipv4('1.2.3.4/8'),\n ec2.Port.tcp(2181),\n);\ncluster.connections.allowFrom(\n ec2.Peer.ipv4('1.2.3.4/8'),\n ec2.Port.tcp(9094),\n);\n```\n\n## Cluster Endpoints\n\nYou can use the following attributes to get a list of the Kafka broker or ZooKeeper node endpoints\n\n```ts\ndeclare const cluster: msk.Cluster;\nnew CfnOutput(this, 'BootstrapBrokers', { value: cluster.bootstrapBrokers });\nnew CfnOutput(this, 'BootstrapBrokersTls', { value: cluster.bootstrapBrokersTls });\nnew CfnOutput(this, 'BootstrapBrokersSaslScram', { value: cluster.bootstrapBrokersSaslScram });\nnew CfnOutput(this, 'BootstrapBrokerStringSaslIam', { value: cluster.bootstrapBrokersSaslIam });\nnew CfnOutput(this, 'ZookeeperConnection', { value: cluster.zookeeperConnectionString });\nnew CfnOutput(this, 'ZookeeperConnectionTls', { value: cluster.zookeeperConnectionStringTls });\n```\n\n## Importing an existing Cluster\n\nTo import an existing MSK cluster into your CDK app use the `.fromClusterArn()` method.\n\n```ts\nconst cluster = msk.Cluster.fromClusterArn(this, 'Cluster',\n 'arn:aws:kafka:us-west-2:1234567890:cluster/a-cluster/11111111-1111-1111-1111-111111111111-1',\n);\n```\n\n## Client Authentication\n\n[MSK supports](https://docs.aws.amazon.com/msk/latest/developerguide/kafka_apis_iam.html) the following authentication mechanisms.\n\n### TLS\n\nTo enable client authentication with TLS set the `certificateAuthorityArns` property to reference your ACM Private CA. [More info on Private CAs.](https://docs.aws.amazon.com/msk/latest/developerguide/msk-authentication.html)\n\n```ts\nimport * as acmpca from 'aws-cdk-lib/aws-acmpca';\n\ndeclare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'Cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_0_X_KRAFT,\n vpc,\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.tls({\n certificateAuthorities: [\n acmpca.CertificateAuthority.fromCertificateAuthorityArn(\n this,\n 'CertificateAuthority',\n 'arn:aws:acm-pca:us-west-2:1234567890:certificate-authority/11111111-1111-1111-1111-111111111111',\n ),\n ],\n }),\n});\n```\n\n### SASL/SCRAM\n\nEnable client authentication with [SASL/SCRAM](https://docs.aws.amazon.com/msk/latest/developerguide/msk-password.html):\n\n```ts\ndeclare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_0_X_KRAFT,\n vpc,\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.sasl({\n scram: true,\n }),\n});\n```\n\n### IAM\n\nEnable client authentication with [IAM](https://docs.aws.amazon.com/msk/latest/developerguide/iam-access-control.html):\n\n```ts\ndeclare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_0_X_KRAFT,\n vpc,\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.sasl({\n iam: true,\n }),\n});\n```\n\n\n### SASL/IAM + TLS\n\nEnable client authentication with [IAM](https://docs.aws.amazon.com/msk/latest/developerguide/iam-access-control.html)\nas well as enable client authentication with TLS by setting the `certificateAuthorityArns` property to reference your ACM Private CA. [More info on Private CAs.](https://docs.aws.amazon.com/msk/latest/developerguide/msk-authentication.html)\n\n```ts\nimport * as acmpca from 'aws-cdk-lib/aws-acmpca';\n\ndeclare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'Cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_0_X_KRAFT,\n vpc,\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.saslTls({\n iam: true,\n certificateAuthorities: [\n acmpca.CertificateAuthority.fromCertificateAuthorityArn(\n this,\n 'CertificateAuthority',\n 'arn:aws:acm-pca:us-west-2:1234567890:certificate-authority/11111111-1111-1111-1111-111111111111',\n ),\n ],\n }),\n});\n```\n\n\n## Logging\n\nYou can deliver Apache Kafka broker logs to one or more of the following destination types:\nAmazon CloudWatch Logs, Amazon S3, Amazon Data Firehose.\n\nTo configure logs to be sent to an S3 bucket, provide a bucket in the `logging` config.\n\n```ts\ndeclare const vpc: ec2.Vpc;\ndeclare const bucket: s3.IBucket;\nconst cluster = new msk.Cluster(this, 'cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_0_X_KRAFT,\n vpc,\n logging: {\n s3: {\n bucket,\n },\n },\n});\n```\n\nWhen the S3 destination is configured, AWS will automatically create an S3 bucket policy\nthat allows the service to write logs to the bucket. This makes it impossible to later update\nthat bucket policy. To have CDK create the bucket policy so that future updates can be made,\nthe `@aws-cdk/aws-s3:createDefaultLoggingPolicy` [feature flag](https://docs.aws.amazon.com/cdk/v2/guide/featureflags.html) can be used. This can be set\nin the `cdk.json` file.\n\n```json\n{\n \"context\": {\n \"@aws-cdk/aws-s3:createDefaultLoggingPolicy\": true\n }\n}\n```\n\n## Storage Mode\n\nYou can configure an MSK cluster storage mode using the `storageMode` property.\n\nTiered storage is a low-cost storage tier for Amazon MSK that scales to virtually unlimited storage,\nmaking it cost-effective to build streaming data applications.\n\n> Visit [Tiered storage](https://docs.aws.amazon.com/msk/latest/developerguide/msk-tiered-storage.html)\nto see the list of compatible Kafka versions and for more details.\n\n```ts\ndeclare const vpc: ec2.Vpc;\ndeclare const bucket: s3.IBucket;\n\nconst cluster = new msk.Cluster(this, 'cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_0_X_KRAFT,\n vpc,\n storageMode: msk.StorageMode.TIERED,\n});\n```\n\n## MSK Serverless\n\nYou can also use MSK Serverless by using `ServerlessCluster` class.\n\nMSK Serverless is a cluster type for Amazon MSK that makes it possible for you to run Apache Kafka without having to manage and scale cluster capacity.\n\nMSK Serverless requires IAM access control for all clusters.\n\nFor more infomation, see [Use MSK Serverless clusters](https://docs.aws.amazon.com/msk/latest/developerguide/serverless-getting-started.html).\n\n```ts\ndeclare const vpc: ec2.Vpc;\n\nconst serverlessCluster = new msk.ServerlessCluster(this, 'ServerlessCluster', {\n clusterName: 'MyServerlessCluster',\n vpcConfigs: [\n { vpc },\n ],\n});\n```\n"
4107
+ "markdown": "# Amazon Managed Streaming for Apache Kafka Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n![cdk-constructs: Experimental](https://img.shields.io/badge/cdk--constructs-experimental-important.svg?style=for-the-badge)\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\n[Amazon MSK](https://aws.amazon.com/msk/) is a fully managed service that makes it easy for you to build and run applications that use Apache Kafka to process streaming data.\n\nThe following example creates an MSK Cluster.\n\n```ts\ndeclare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'Cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_1_X_KRAFT,\n vpc,\n});\n```\n\n## Allowing Connections\n\nTo control who can access the Cluster, use the `.connections` attribute. For a list of ports used by MSK, refer to the [MSK documentation](https://docs.aws.amazon.com/msk/latest/developerguide/client-access.html#port-info).\n\n```ts\ndeclare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'Cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_1_X_KRAFT,\n vpc,\n});\n\ncluster.connections.allowFrom(\n ec2.Peer.ipv4('1.2.3.4/8'),\n ec2.Port.tcp(2181),\n);\ncluster.connections.allowFrom(\n ec2.Peer.ipv4('1.2.3.4/8'),\n ec2.Port.tcp(9094),\n);\n```\n\n## Cluster Endpoints\n\nYou can use the following attributes to get a list of the Kafka broker or ZooKeeper node endpoints\n\n```ts\ndeclare const cluster: msk.Cluster;\nnew CfnOutput(this, 'BootstrapBrokers', { value: cluster.bootstrapBrokers });\nnew CfnOutput(this, 'BootstrapBrokersTls', { value: cluster.bootstrapBrokersTls });\nnew CfnOutput(this, 'BootstrapBrokersSaslScram', { value: cluster.bootstrapBrokersSaslScram });\nnew CfnOutput(this, 'BootstrapBrokerStringSaslIam', { value: cluster.bootstrapBrokersSaslIam });\nnew CfnOutput(this, 'ZookeeperConnection', { value: cluster.zookeeperConnectionString });\nnew CfnOutput(this, 'ZookeeperConnectionTls', { value: cluster.zookeeperConnectionStringTls });\n```\n\n## Importing an existing Cluster\n\nTo import an existing MSK cluster into your CDK app use the `.fromClusterArn()` method.\n\n```ts\nconst cluster = msk.Cluster.fromClusterArn(this, 'Cluster',\n 'arn:aws:kafka:us-west-2:1234567890:cluster/a-cluster/11111111-1111-1111-1111-111111111111-1',\n);\n```\n\n## Client Authentication\n\n[MSK supports](https://docs.aws.amazon.com/msk/latest/developerguide/kafka_apis_iam.html) the following authentication mechanisms.\n\n### TLS\n\nTo enable client authentication with TLS set the `certificateAuthorityArns` property to reference your ACM Private CA. [More info on Private CAs.](https://docs.aws.amazon.com/msk/latest/developerguide/msk-authentication.html)\n\n```ts\nimport * as acmpca from 'aws-cdk-lib/aws-acmpca';\n\ndeclare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'Cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_1_X_KRAFT,\n vpc,\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.tls({\n certificateAuthorities: [\n acmpca.CertificateAuthority.fromCertificateAuthorityArn(\n this,\n 'CertificateAuthority',\n 'arn:aws:acm-pca:us-west-2:1234567890:certificate-authority/11111111-1111-1111-1111-111111111111',\n ),\n ],\n }),\n});\n```\n\n### SASL/SCRAM\n\nEnable client authentication with [SASL/SCRAM](https://docs.aws.amazon.com/msk/latest/developerguide/msk-password.html):\n\n```ts\ndeclare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_1_X_KRAFT,\n vpc,\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.sasl({\n scram: true,\n }),\n});\n```\n\n### IAM\n\nEnable client authentication with [IAM](https://docs.aws.amazon.com/msk/latest/developerguide/iam-access-control.html):\n\n```ts\ndeclare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_1_X_KRAFT,\n vpc,\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.sasl({\n iam: true,\n }),\n});\n```\n\n\n### SASL/IAM + TLS\n\nEnable client authentication with [IAM](https://docs.aws.amazon.com/msk/latest/developerguide/iam-access-control.html)\nas well as enable client authentication with TLS by setting the `certificateAuthorityArns` property to reference your ACM Private CA. [More info on Private CAs.](https://docs.aws.amazon.com/msk/latest/developerguide/msk-authentication.html)\n\n```ts\nimport * as acmpca from 'aws-cdk-lib/aws-acmpca';\n\ndeclare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'Cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_1_X_KRAFT,\n vpc,\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.saslTls({\n iam: true,\n certificateAuthorities: [\n acmpca.CertificateAuthority.fromCertificateAuthorityArn(\n this,\n 'CertificateAuthority',\n 'arn:aws:acm-pca:us-west-2:1234567890:certificate-authority/11111111-1111-1111-1111-111111111111',\n ),\n ],\n }),\n});\n```\n\n\n## Logging\n\nYou can deliver Apache Kafka broker logs to one or more of the following destination types:\nAmazon CloudWatch Logs, Amazon S3, Amazon Data Firehose.\n\nTo configure logs to be sent to an S3 bucket, provide a bucket in the `logging` config.\n\n```ts\ndeclare const vpc: ec2.Vpc;\ndeclare const bucket: s3.IBucket;\nconst cluster = new msk.Cluster(this, 'cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_1_X_KRAFT,\n vpc,\n logging: {\n s3: {\n bucket,\n },\n },\n});\n```\n\nWhen the S3 destination is configured, AWS will automatically create an S3 bucket policy\nthat allows the service to write logs to the bucket. This makes it impossible to later update\nthat bucket policy. To have CDK create the bucket policy so that future updates can be made,\nthe `@aws-cdk/aws-s3:createDefaultLoggingPolicy` [feature flag](https://docs.aws.amazon.com/cdk/v2/guide/featureflags.html) can be used. This can be set\nin the `cdk.json` file.\n\n```json\n{\n \"context\": {\n \"@aws-cdk/aws-s3:createDefaultLoggingPolicy\": true\n }\n}\n```\n\n## Storage Mode\n\nYou can configure an MSK cluster storage mode using the `storageMode` property.\n\nTiered storage is a low-cost storage tier for Amazon MSK that scales to virtually unlimited storage,\nmaking it cost-effective to build streaming data applications.\n\n> Visit [Tiered storage](https://docs.aws.amazon.com/msk/latest/developerguide/msk-tiered-storage.html)\nto see the list of compatible Kafka versions and for more details.\n\n```ts\ndeclare const vpc: ec2.Vpc;\ndeclare const bucket: s3.IBucket;\n\nconst cluster = new msk.Cluster(this, 'cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_1_X_KRAFT,\n vpc,\n storageMode: msk.StorageMode.TIERED,\n});\n```\n\n## MSK Serverless\n\nYou can also use MSK Serverless by using `ServerlessCluster` class.\n\nMSK Serverless is a cluster type for Amazon MSK that makes it possible for you to run Apache Kafka without having to manage and scale cluster capacity.\n\nMSK Serverless requires IAM access control for all clusters.\n\nFor more infomation, see [Use MSK Serverless clusters](https://docs.aws.amazon.com/msk/latest/developerguide/serverless-getting-started.html).\n\n```ts\ndeclare const vpc: ec2.Vpc;\n\nconst serverlessCluster = new msk.ServerlessCluster(this, 'ServerlessCluster', {\n clusterName: 'MyServerlessCluster',\n vpcConfigs: [\n { vpc },\n ],\n});\n```\n"
4108
4108
  },
4109
4109
  "repository": {
4110
4110
  "directory": "packages/@aws-cdk/aws-msk-alpha",
@@ -4148,7 +4148,7 @@
4148
4148
  "docs": {
4149
4149
  "stability": "experimental",
4150
4150
  "summary": "Configuration details related to broker logs.",
4151
- "example": "declare const vpc: ec2.Vpc;\ndeclare const bucket: s3.IBucket;\nconst cluster = new msk.Cluster(this, 'cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_0_X_KRAFT,\n vpc,\n logging: {\n s3: {\n bucket,\n },\n },\n});",
4151
+ "example": "declare const vpc: ec2.Vpc;\ndeclare const bucket: s3.IBucket;\nconst cluster = new msk.Cluster(this, 'cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_1_X_KRAFT,\n vpc,\n logging: {\n s3: {\n bucket,\n },\n },\n});",
4152
4152
  "custom": {
4153
4153
  "exampleMetadata": "infused"
4154
4154
  }
@@ -4223,7 +4223,7 @@
4223
4223
  "docs": {
4224
4224
  "stability": "experimental",
4225
4225
  "summary": "Configuration properties for client authentication.",
4226
- "example": "import * as acmpca from 'aws-cdk-lib/aws-acmpca';\n\ndeclare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'Cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_0_X_KRAFT,\n vpc,\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.tls({\n certificateAuthorities: [\n acmpca.CertificateAuthority.fromCertificateAuthorityArn(\n this,\n 'CertificateAuthority',\n 'arn:aws:acm-pca:us-west-2:1234567890:certificate-authority/11111111-1111-1111-1111-111111111111',\n ),\n ],\n }),\n});",
4226
+ "example": "import * as acmpca from 'aws-cdk-lib/aws-acmpca';\n\ndeclare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'Cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_1_X_KRAFT,\n vpc,\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.tls({\n certificateAuthorities: [\n acmpca.CertificateAuthority.fromCertificateAuthorityArn(\n this,\n 'CertificateAuthority',\n 'arn:aws:acm-pca:us-west-2:1234567890:certificate-authority/11111111-1111-1111-1111-111111111111',\n ),\n ],\n }),\n});",
4227
4227
  "custom": {
4228
4228
  "exampleMetadata": "infused"
4229
4229
  }
@@ -4353,7 +4353,7 @@
4353
4353
  "docs": {
4354
4354
  "stability": "experimental",
4355
4355
  "summary": "Indicates the encryption setting for data in transit between clients and brokers.",
4356
- "example": "import * as acmpca from 'aws-cdk-lib/aws-acmpca';\n\ndeclare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'Cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_0_X_KRAFT,\n vpc,\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.tls({\n certificateAuthorities: [\n acmpca.CertificateAuthority.fromCertificateAuthorityArn(\n this,\n 'CertificateAuthority',\n 'arn:aws:acm-pca:us-west-2:1234567890:certificate-authority/11111111-1111-1111-1111-111111111111',\n ),\n ],\n }),\n});",
4356
+ "example": "import * as acmpca from 'aws-cdk-lib/aws-acmpca';\n\ndeclare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'Cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_1_X_KRAFT,\n vpc,\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.tls({\n certificateAuthorities: [\n acmpca.CertificateAuthority.fromCertificateAuthorityArn(\n this,\n 'CertificateAuthority',\n 'arn:aws:acm-pca:us-west-2:1234567890:certificate-authority/11111111-1111-1111-1111-111111111111',\n ),\n ],\n }),\n});",
4357
4357
  "custom": {
4358
4358
  "exampleMetadata": "infused"
4359
4359
  }
@@ -4400,7 +4400,7 @@
4400
4400
  },
4401
4401
  "stability": "experimental",
4402
4402
  "summary": "Create a MSK Cluster.",
4403
- "example": "declare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_0_X_KRAFT,\n vpc,\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.sasl({\n scram: true,\n }),\n});"
4403
+ "example": "declare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_1_X_KRAFT,\n vpc,\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.sasl({\n scram: true,\n }),\n});"
4404
4404
  },
4405
4405
  "fqn": "@aws-cdk/aws-msk-alpha.Cluster",
4406
4406
  "initializer": {
@@ -4883,7 +4883,7 @@
4883
4883
  "docs": {
4884
4884
  "stability": "experimental",
4885
4885
  "summary": "Properties for a MSK Cluster.",
4886
- "example": "declare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_0_X_KRAFT,\n vpc,\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.sasl({\n scram: true,\n }),\n});",
4886
+ "example": "declare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_1_X_KRAFT,\n vpc,\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.sasl({\n scram: true,\n }),\n});",
4887
4887
  "custom": {
4888
4888
  "exampleMetadata": "infused"
4889
4889
  }
@@ -5238,7 +5238,7 @@
5238
5238
  "see": "https://docs.aws.amazon.com/msk/latest/developerguide/msk-encryption.html#msk-encryption-in-transit",
5239
5239
  "stability": "experimental",
5240
5240
  "summary": "The settings for encrypting data in transit.",
5241
- "example": "import * as acmpca from 'aws-cdk-lib/aws-acmpca';\n\ndeclare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'Cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_0_X_KRAFT,\n vpc,\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.tls({\n certificateAuthorities: [\n acmpca.CertificateAuthority.fromCertificateAuthorityArn(\n this,\n 'CertificateAuthority',\n 'arn:aws:acm-pca:us-west-2:1234567890:certificate-authority/11111111-1111-1111-1111-111111111111',\n ),\n ],\n }),\n});",
5241
+ "example": "import * as acmpca from 'aws-cdk-lib/aws-acmpca';\n\ndeclare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'Cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_1_X_KRAFT,\n vpc,\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.tls({\n certificateAuthorities: [\n acmpca.CertificateAuthority.fromCertificateAuthorityArn(\n this,\n 'CertificateAuthority',\n 'arn:aws:acm-pca:us-west-2:1234567890:certificate-authority/11111111-1111-1111-1111-111111111111',\n ),\n ],\n }),\n});",
5242
5242
  "custom": {
5243
5243
  "exampleMetadata": "infused"
5244
5244
  }
@@ -5354,7 +5354,7 @@
5354
5354
  "docs": {
5355
5355
  "stability": "experimental",
5356
5356
  "summary": "Kafka cluster version.",
5357
- "example": "declare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_0_X_KRAFT,\n vpc,\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.sasl({\n scram: true,\n }),\n});",
5357
+ "example": "declare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_1_X_KRAFT,\n vpc,\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.sasl({\n scram: true,\n }),\n});",
5358
5358
  "custom": {
5359
5359
  "exampleMetadata": "infused"
5360
5360
  }
@@ -5373,7 +5373,7 @@
5373
5373
  },
5374
5374
  "locationInModule": {
5375
5375
  "filename": "lib/cluster-version.ts",
5376
- "line": 239
5376
+ "line": 246
5377
5377
  },
5378
5378
  "name": "of",
5379
5379
  "parameters": [
@@ -5408,7 +5408,7 @@
5408
5408
  },
5409
5409
  "locationInModule": {
5410
5410
  "filename": "lib/cluster-version.ts",
5411
- "line": 253
5411
+ "line": 260
5412
5412
  },
5413
5413
  "name": "isTieredStorageCompatible",
5414
5414
  "returns": {
@@ -5978,6 +5978,24 @@
5978
5978
  "fqn": "@aws-cdk/aws-msk-alpha.KafkaVersion"
5979
5979
  }
5980
5980
  },
5981
+ {
5982
+ "const": true,
5983
+ "docs": {
5984
+ "see": "https://docs.aws.amazon.com/msk/latest/developerguide/metadata-management.html#kraft-intro",
5985
+ "stability": "experimental",
5986
+ "summary": "Kafka version 4.1.x with KRaft (Apache Kafka Raft) metadata mode support."
5987
+ },
5988
+ "immutable": true,
5989
+ "locationInModule": {
5990
+ "filename": "lib/cluster-version.ts",
5991
+ "line": 240
5992
+ },
5993
+ "name": "V4_1_X_KRAFT",
5994
+ "static": true,
5995
+ "type": {
5996
+ "fqn": "@aws-cdk/aws-msk-alpha.KafkaVersion"
5997
+ }
5998
+ },
5981
5999
  {
5982
6000
  "docs": {
5983
6001
  "stability": "experimental",
@@ -5986,7 +6004,7 @@
5986
6004
  "immutable": true,
5987
6005
  "locationInModule": {
5988
6006
  "filename": "lib/cluster-version.ts",
5989
- "line": 248
6007
+ "line": 255
5990
6008
  },
5991
6009
  "name": "version",
5992
6010
  "type": {
@@ -6001,7 +6019,7 @@
6001
6019
  "immutable": true,
6002
6020
  "locationInModule": {
6003
6021
  "filename": "lib/cluster-version.ts",
6004
- "line": 248
6022
+ "line": 255
6005
6023
  },
6006
6024
  "name": "features",
6007
6025
  "optional": true,
@@ -6136,7 +6154,7 @@
6136
6154
  "docs": {
6137
6155
  "stability": "experimental",
6138
6156
  "summary": "Details of the Amazon S3 destination for broker logs.",
6139
- "example": "declare const vpc: ec2.Vpc;\ndeclare const bucket: s3.IBucket;\nconst cluster = new msk.Cluster(this, 'cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_0_X_KRAFT,\n vpc,\n logging: {\n s3: {\n bucket,\n },\n },\n});",
6157
+ "example": "declare const vpc: ec2.Vpc;\ndeclare const bucket: s3.IBucket;\nconst cluster = new msk.Cluster(this, 'cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_1_X_KRAFT,\n vpc,\n logging: {\n s3: {\n bucket,\n },\n },\n});",
6140
6158
  "custom": {
6141
6159
  "exampleMetadata": "infused"
6142
6160
  }
@@ -6192,7 +6210,7 @@
6192
6210
  "docs": {
6193
6211
  "stability": "experimental",
6194
6212
  "summary": "SASL authentication properties.",
6195
- "example": "declare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_0_X_KRAFT,\n vpc,\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.sasl({\n scram: true,\n }),\n});",
6213
+ "example": "declare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_1_X_KRAFT,\n vpc,\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.sasl({\n scram: true,\n }),\n});",
6196
6214
  "custom": {
6197
6215
  "exampleMetadata": "infused"
6198
6216
  }
@@ -6269,7 +6287,7 @@
6269
6287
  "docs": {
6270
6288
  "stability": "experimental",
6271
6289
  "summary": "SASL + TLS authentication properties.",
6272
- "example": "import * as acmpca from 'aws-cdk-lib/aws-acmpca';\n\ndeclare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'Cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_0_X_KRAFT,\n vpc,\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.saslTls({\n iam: true,\n certificateAuthorities: [\n acmpca.CertificateAuthority.fromCertificateAuthorityArn(\n this,\n 'CertificateAuthority',\n 'arn:aws:acm-pca:us-west-2:1234567890:certificate-authority/11111111-1111-1111-1111-111111111111',\n ),\n ],\n }),\n});",
6290
+ "example": "import * as acmpca from 'aws-cdk-lib/aws-acmpca';\n\ndeclare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'Cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_1_X_KRAFT,\n vpc,\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.saslTls({\n iam: true,\n certificateAuthorities: [\n acmpca.CertificateAuthority.fromCertificateAuthorityArn(\n this,\n 'CertificateAuthority',\n 'arn:aws:acm-pca:us-west-2:1234567890:certificate-authority/11111111-1111-1111-1111-111111111111',\n ),\n ],\n }),\n});",
6273
6291
  "custom": {
6274
6292
  "exampleMetadata": "infused"
6275
6293
  }
@@ -6494,7 +6512,7 @@
6494
6512
  "docs": {
6495
6513
  "stability": "experimental",
6496
6514
  "summary": "The storage mode for the cluster brokers.",
6497
- "example": "declare const vpc: ec2.Vpc;\ndeclare const bucket: s3.IBucket;\n\nconst cluster = new msk.Cluster(this, 'cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_0_X_KRAFT,\n vpc,\n storageMode: msk.StorageMode.TIERED,\n});",
6515
+ "example": "declare const vpc: ec2.Vpc;\ndeclare const bucket: s3.IBucket;\n\nconst cluster = new msk.Cluster(this, 'cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_1_X_KRAFT,\n vpc,\n storageMode: msk.StorageMode.TIERED,\n});",
6498
6516
  "custom": {
6499
6517
  "exampleMetadata": "infused"
6500
6518
  }
@@ -6530,7 +6548,7 @@
6530
6548
  "docs": {
6531
6549
  "stability": "experimental",
6532
6550
  "summary": "TLS authentication properties.",
6533
- "example": "import * as acmpca from 'aws-cdk-lib/aws-acmpca';\n\ndeclare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'Cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_0_X_KRAFT,\n vpc,\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.tls({\n certificateAuthorities: [\n acmpca.CertificateAuthority.fromCertificateAuthorityArn(\n this,\n 'CertificateAuthority',\n 'arn:aws:acm-pca:us-west-2:1234567890:certificate-authority/11111111-1111-1111-1111-111111111111',\n ),\n ],\n }),\n});",
6551
+ "example": "import * as acmpca from 'aws-cdk-lib/aws-acmpca';\n\ndeclare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'Cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V4_1_X_KRAFT,\n vpc,\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.tls({\n certificateAuthorities: [\n acmpca.CertificateAuthority.fromCertificateAuthorityArn(\n this,\n 'CertificateAuthority',\n 'arn:aws:acm-pca:us-west-2:1234567890:certificate-authority/11111111-1111-1111-1111-111111111111',\n ),\n ],\n }),\n});",
6534
6552
  "custom": {
6535
6553
  "exampleMetadata": "infused"
6536
6554
  }
@@ -6651,6 +6669,6 @@
6651
6669
  "symbolId": "lib/serverless-cluster:VpcConfig"
6652
6670
  }
6653
6671
  },
6654
- "version": "2.219.0-alpha.0",
6672
+ "version": "2.221.0-alpha.0",
6655
6673
  "fingerprint": "**********"
6656
6674
  }
Binary file
package/README.md CHANGED
@@ -23,7 +23,7 @@ The following example creates an MSK Cluster.
23
23
  declare const vpc: ec2.Vpc;
24
24
  const cluster = new msk.Cluster(this, 'Cluster', {
25
25
  clusterName: 'myCluster',
26
- kafkaVersion: msk.KafkaVersion.V4_0_X_KRAFT,
26
+ kafkaVersion: msk.KafkaVersion.V4_1_X_KRAFT,
27
27
  vpc,
28
28
  });
29
29
  ```
@@ -36,7 +36,7 @@ To control who can access the Cluster, use the `.connections` attribute. For a l
36
36
  declare const vpc: ec2.Vpc;
37
37
  const cluster = new msk.Cluster(this, 'Cluster', {
38
38
  clusterName: 'myCluster',
39
- kafkaVersion: msk.KafkaVersion.V4_0_X_KRAFT,
39
+ kafkaVersion: msk.KafkaVersion.V4_1_X_KRAFT,
40
40
  vpc,
41
41
  });
42
42
 
@@ -88,7 +88,7 @@ import * as acmpca from 'aws-cdk-lib/aws-acmpca';
88
88
  declare const vpc: ec2.Vpc;
89
89
  const cluster = new msk.Cluster(this, 'Cluster', {
90
90
  clusterName: 'myCluster',
91
- kafkaVersion: msk.KafkaVersion.V4_0_X_KRAFT,
91
+ kafkaVersion: msk.KafkaVersion.V4_1_X_KRAFT,
92
92
  vpc,
93
93
  encryptionInTransit: {
94
94
  clientBroker: msk.ClientBrokerEncryption.TLS,
@@ -113,7 +113,7 @@ Enable client authentication with [SASL/SCRAM](https://docs.aws.amazon.com/msk/l
113
113
  declare const vpc: ec2.Vpc;
114
114
  const cluster = new msk.Cluster(this, 'cluster', {
115
115
  clusterName: 'myCluster',
116
- kafkaVersion: msk.KafkaVersion.V4_0_X_KRAFT,
116
+ kafkaVersion: msk.KafkaVersion.V4_1_X_KRAFT,
117
117
  vpc,
118
118
  encryptionInTransit: {
119
119
  clientBroker: msk.ClientBrokerEncryption.TLS,
@@ -132,7 +132,7 @@ Enable client authentication with [IAM](https://docs.aws.amazon.com/msk/latest/d
132
132
  declare const vpc: ec2.Vpc;
133
133
  const cluster = new msk.Cluster(this, 'cluster', {
134
134
  clusterName: 'myCluster',
135
- kafkaVersion: msk.KafkaVersion.V4_0_X_KRAFT,
135
+ kafkaVersion: msk.KafkaVersion.V4_1_X_KRAFT,
136
136
  vpc,
137
137
  encryptionInTransit: {
138
138
  clientBroker: msk.ClientBrokerEncryption.TLS,
@@ -155,7 +155,7 @@ import * as acmpca from 'aws-cdk-lib/aws-acmpca';
155
155
  declare const vpc: ec2.Vpc;
156
156
  const cluster = new msk.Cluster(this, 'Cluster', {
157
157
  clusterName: 'myCluster',
158
- kafkaVersion: msk.KafkaVersion.V4_0_X_KRAFT,
158
+ kafkaVersion: msk.KafkaVersion.V4_1_X_KRAFT,
159
159
  vpc,
160
160
  encryptionInTransit: {
161
161
  clientBroker: msk.ClientBrokerEncryption.TLS,
@@ -186,7 +186,7 @@ declare const vpc: ec2.Vpc;
186
186
  declare const bucket: s3.IBucket;
187
187
  const cluster = new msk.Cluster(this, 'cluster', {
188
188
  clusterName: 'myCluster',
189
- kafkaVersion: msk.KafkaVersion.V4_0_X_KRAFT,
189
+ kafkaVersion: msk.KafkaVersion.V4_1_X_KRAFT,
190
190
  vpc,
191
191
  logging: {
192
192
  s3: {
@@ -226,7 +226,7 @@ declare const bucket: s3.IBucket;
226
226
 
227
227
  const cluster = new msk.Cluster(this, 'cluster', {
228
228
  clusterName: 'myCluster',
229
- kafkaVersion: msk.KafkaVersion.V4_0_X_KRAFT,
229
+ kafkaVersion: msk.KafkaVersion.V4_1_X_KRAFT,
230
230
  vpc,
231
231
  storageMode: msk.StorageMode.TIERED,
232
232
  });
@@ -202,6 +202,12 @@ export declare class KafkaVersion {
202
202
  * @see https://docs.aws.amazon.com/msk/latest/developerguide/metadata-management.html#kraft-intro
203
203
  */
204
204
  static readonly V4_0_X_KRAFT: KafkaVersion;
205
+ /**
206
+ * Kafka version 4.1.x with KRaft (Apache Kafka Raft) metadata mode support
207
+ *
208
+ * @see https://docs.aws.amazon.com/msk/latest/developerguide/metadata-management.html#kraft-intro
209
+ */
210
+ static readonly V4_1_X_KRAFT: KafkaVersion;
205
211
  /**
206
212
  * Custom cluster version
207
213
  * @param version custom version number