# CfnStreamProps

Properties for defining a `CfnStream`.

Extends: CfnStreamProps
Used as props by: CfnStream

- Source: Generated code
- Type last changed: v2.273.0 · 8 Oct 2026

## Example

```ts
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import { aws_kinesis as kinesis } from 'aws-cdk-lib';
const cfnStreamProps: kinesis.CfnStreamProps = {
  desiredShardLevelMetrics: ['desiredShardLevelMetrics'],
  maxRecordSizeInKiB: 123,
  name: 'name',
  recordDistributionStrategy: 'recordDistributionStrategy',
  retentionPeriodHours: 123,
  shardCount: 123,
  streamEncryption: {
    encryptionType: 'encryptionType',
    keyId: 'keyId',
  },
  streamModeDetails: {
    streamMode: 'streamMode',
  },
  tags: [{
    key: 'key',
    value: 'value',
  }],
  warmThroughputMiBps: 123,
};
```

## Properties

- `desiredShardLevelMetrics`: string[] — A list of shard-level metrics in properties to enable enhanced monitoring mode.

- `maxRecordSizeInKiB`: number — The maximum record size of a single record in kibibyte (KiB) that you can write to, and read from a stream.

- `name`: string — The name of the Kinesis stream.

  If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the stream name. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html) .

  If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.

- `recordDistributionStrategy`: string — The record distribution strategy for the stream.

  This property can ONLY be set when StreamMode is ON_DEMAND

- `retentionPeriodHours`: number — The number of hours for the data records that are stored in shards to remain accessible.

  The default value is 24. For more information about the stream retention period, see [Changing the Data Retention Period](https://docs.aws.amazon.com/streams/latest/dev/kinesis-extended-retention.html) in the Amazon Kinesis Developer Guide.

- `shardCount`: number — The number of shards that the stream uses.

  For greater provisioned throughput, increase the number of shards.

- `streamEncryption`: [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [CfnStream.StreamEncryptionProperty](/cdk/api/v2/docs/aws-cdk-lib.aws_kinesis.CfnStream.StreamEncryptionProperty.html) — When specified, enables or updates server-side encryption using an AWS KMS key for a specified stream.

  Removing this property from your stack template and updating your stack disables encryption.

- `streamModeDetails`: [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [CfnStream.StreamModeDetailsProperty](/cdk/api/v2/docs/aws-cdk-lib.aws_kinesis.CfnStream.StreamModeDetailsProperty.html) — Specifies the capacity mode to which you want to set your data stream.

  Currently, in Kinesis Data Streams, you can choose between an *on-demand* capacity mode and a *provisioned* capacity mode for your data streams.

- `tags`: [CfnTag](/cdk/api/v2/docs/aws-cdk-lib.CfnTag.html)[] — An arbitrary set of tags (key–value pairs) to associate with the Kinesis stream.

  For information about constraints for this property, see [Tag Restrictions](https://docs.aws.amazon.com/streams/latest/dev/tagging.html#tagging-restrictions) in the *Amazon Kinesis Developer Guide* .

- `warmThroughputMiBps`: number — The target warm throughput in MB/s that the stream should be scaled to handle.

  This represents the throughput capacity that will be immediately available for write operations.
