# CfnClusterProps

Properties for defining a `CfnCluster`.

Extends: CfnClusterProps
Used as props by: CfnCluster

- Source: Generated code
- Type last changed: v2.253.0 · 6 May 2026

## Example

```ts
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import { aws_msk as msk } from 'aws-cdk-lib';
const cfnClusterProps: msk.CfnClusterProps = {
  brokerNodeGroupInfo: {
    clientSubnets: ['clientSubnets'],
    instanceType: 'instanceType',

    // the properties below are optional
    brokerAzDistribution: 'brokerAzDistribution',
    connectivityInfo: {
      networkType: 'networkType',
      publicAccess: {
        type: 'type',
      },
      vpcConnectivity: {
        clientAuthentication: {
          sasl: {
            iam: {
              enabled: false,
            },
            scram: {
              enabled: false,
            },
          },
          tls: {
            enabled: false,
          },
        },
      },
    },
    securityGroups: ['securityGroups'],
    storageInfo: {
      ebsStorageInfo: {
        provisionedThroughput: {
          enabled: false,
          volumeThroughput: 123,
        },
        volumeSize: 123,
      },
    },
  },
  clusterName: 'clusterName',
  kafkaVersion: 'kafkaVersion',
  numberOfBrokerNodes: 123,

  // the properties below are optional
  clientAuthentication: {
    sasl: {
      iam: {
        enabled: false,
      },
      scram: {
        enabled: false,
      },
    },
    tls: {
      certificateAuthorityArnList: ['certificateAuthorityArnList'],
      enabled: false,
    },
    unauthenticated: {
      enabled: false,
    },
  },
  configurationInfo: {
    arn: 'arn',
    revision: 123,
  },
  currentVersion: 'currentVersion',
  encryptionInfo: {
    encryptionAtRest: {
      dataVolumeKmsKeyId: 'dataVolumeKmsKeyId',
    },
    encryptionInTransit: {
      clientBroker: 'clientBroker',
      inCluster: false,
    },
  },
  enhancedMonitoring: 'enhancedMonitoring',
  loggingInfo: {
    brokerLogs: {
      cloudWatchLogs: {
        enabled: false,

        // the properties below are optional
        logGroup: 'logGroup',
      },
      firehose: {
        enabled: false,

        // the properties below are optional
        deliveryStream: 'deliveryStream',
      },
      s3: {
        enabled: false,

        // the properties below are optional
        bucket: 'bucket',
        prefix: 'prefix',
      },
    },

    // the properties below are optional
    authorizerLogs: {
      cloudWatchLogs: {
        enabled: false,

        // the properties below are optional
        logGroup: 'logGroup',
      },
      firehose: {
        enabled: false,

        // the properties below are optional
        deliveryStream: 'deliveryStream',
      },
      s3: {
        enabled: false,

        // the properties below are optional
        bucket: 'bucket',
        prefix: 'prefix',
      },
    },
  },
  openMonitoring: {
    prometheus: {
      jmxExporter: {
        enabledInBroker: false,
      },
      nodeExporter: {
        enabledInBroker: false,
      },
    },
  },
  rebalancing: {
    status: 'status',
  },
  storageMode: 'storageMode',
  tags: {
    tagsKey: 'tags',
  },
  zookeeperAccess: {
    enabled: false,
  },
};
```

## Properties

- `brokerNodeGroupInfo`: [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [CfnCluster.BrokerNodeGroupInfoProperty](/cdk/api/v2/docs/aws-cdk-lib.aws_msk.CfnCluster.BrokerNodeGroupInfoProperty.html) (required) — Information about the broker nodes in the cluster.

- `clientAuthentication`: [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [CfnCluster.ClientAuthenticationProperty](/cdk/api/v2/docs/aws-cdk-lib.aws_msk.CfnCluster.ClientAuthenticationProperty.html) — Includes all client authentication related information.

- `clusterName`: string (required) — The name of the cluster.

- `configurationInfo`: [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [CfnCluster.ConfigurationInfoProperty](/cdk/api/v2/docs/aws-cdk-lib.aws_msk.CfnCluster.ConfigurationInfoProperty.html) — Represents the configuration that you want MSK to use for the cluster.

- `currentVersion`: string

- `encryptionInfo`: [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [CfnCluster.EncryptionInfoProperty](/cdk/api/v2/docs/aws-cdk-lib.aws_msk.CfnCluster.EncryptionInfoProperty.html) — Includes all encryption-related information.

- `enhancedMonitoring`: string — Specifies the level of monitoring for the MSK cluster.

- `kafkaVersion`: string (required) — The version of Apache Kafka.

  You can use Amazon MSK to create clusters that use [supported Apache Kafka versions](https://docs.aws.amazon.com/msk/latest/developerguide/supported-kafka-versions.html) .

- `loggingInfo`: [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [CfnCluster.LoggingInfoProperty](/cdk/api/v2/docs/aws-cdk-lib.aws_msk.CfnCluster.LoggingInfoProperty.html) — Logging info details for the cluster.

- `numberOfBrokerNodes`: number (required) — The number of broker nodes in the cluster.

- `openMonitoring`: [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [CfnCluster.OpenMonitoringProperty](/cdk/api/v2/docs/aws-cdk-lib.aws_msk.CfnCluster.OpenMonitoringProperty.html) — The settings for open monitoring.

- `rebalancing`: [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [CfnCluster.RebalancingProperty](/cdk/api/v2/docs/aws-cdk-lib.aws_msk.CfnCluster.RebalancingProperty.html)

- `storageMode`: string — This controls storage mode for supported storage tiers.

- `tags`: { [key: string]: string } — An arbitrary set of tags (key-value pairs) for the cluster.

- `zookeeperAccess`: [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [CfnCluster.ZookeeperAccessProperty](/cdk/api/v2/docs/aws-cdk-lib.aws_msk.CfnCluster.ZookeeperAccessProperty.html)
