# StreamProps

Properties for a Kinesis Stream.

Extends: StreamProps
Used as props by: Stream

- Source: [`aws-kinesis/lib/stream.ts`](https://github.com/aws/aws-cdk/blob/v2.275.0/packages/aws-cdk-lib/aws-kinesis/lib/stream.ts#L796)
- Type last changed: v2.220.0 · 14 Oct 2025

## Example

```ts
const key = new kms.Key(this, 'MyKey');

new kinesis.Stream(this, 'MyEncryptedStream', {
  encryption: kinesis.StreamEncryption.KMS,
  encryptionKey: key,
});
```

## Properties

- `encryption`: [StreamEncryption](/cdk/api/v2/docs/aws-cdk-lib.aws_kinesis.StreamEncryption.html) — The kind of server-side encryption to apply to this stream.

  **Default:** StreamEncryption.KMS if encrypted Streams are supported in the region or StreamEncryption.UNENCRYPTED otherwise. StreamEncryption.KMS if an encryption key is supplied through the encryptionKey property

  If you choose KMS, you can specify a KMS key via `encryptionKey`. If
  encryption key is not specified, a key will automatically be created.

- `encryptionKey`: [IKey](/cdk/api/v2/docs/aws-cdk-lib.aws_kms.IKey.html) — External KMS key to use for stream encryption.

  **Default:** Kinesis Data Streams master key ('/alias/aws/kinesis'). If encryption is set to StreamEncryption.KMS and this property is undefined, a new KMS key will be created and associated with this stream.

  The 'encryption' property must be set to "Kms".

- `removalPolicy`: [RemovalPolicy](/cdk/api/v2/docs/aws-cdk-lib.RemovalPolicy.html) = RemovalPolicy.RETAIN — Policy to apply when the stream is removed from the stack.

- `retentionPeriod`: [Duration](/cdk/api/v2/docs/aws-cdk-lib.Duration.html) = Duration.hours(24) — The number of hours for the data records that are stored in shards to remain accessible.

- `shardCount`: number = 1 — The number of shards for the stream.

  Can only be provided if streamMode is Provisioned.

- `shardLevelMetrics`: [ShardLevelMetrics](/cdk/api/v2/docs/aws-cdk-lib.aws_kinesis.ShardLevelMetrics.html)[] — A list of shard-level metrics in properties to enable enhanced monitoring mode.

  **Default:** undefined - AWS Kinesis default is disabled

- `streamMode`: [StreamMode](/cdk/api/v2/docs/aws-cdk-lib.aws_kinesis.StreamMode.html) = StreamMode.PROVISIONED — The capacity mode of this stream.

- `streamName`: string = <generated> — Enforces a particular physical stream name.
