import * as core from "@terrascript/core"; export interface StreamModeDetailsArgs extends core.SchemaArgs { streamMode: string | core.StringOut; } export class StreamModeDetails extends core.Schema { @core.attr(String) public streamMode!: string | core.StringOut; } export interface StreamArgs extends core.ResourceArgs { /** * The Amazon Resource Name (ARN) specifying the Stream (same as `id`) */ arn?: string | core.StringOut; /** * (Optional) The encryption type to use. The only acceptable values are `NONE` or `KMS`. The default v * alue is `NONE`. */ encryptionType?: string | core.StringOut; /** * (Optional) A boolean that indicates all registered consumers should be deregistered from the stream * so that the stream can be destroyed without error. The default value is `false`. */ enforceConsumerDeletion?: boolean | core.BooleanOut; /** * (Optional) The GUID for the customer-managed KMS key to use for encryption. You can also use a Kines * is-owned master key by specifying the alias `alias/aws/kinesis`. */ kmsKeyId?: string | core.StringOut; /** * (Required) A name to identify the stream. This is unique to the AWS account and region the Stream is * created in. */ name: string | core.StringOut; /** * (Optional) Length of time data records are accessible after they are added to the stream. The maximu * m value of a stream's retention period is 8760 hours. Minimum value is 24. Default is 24. */ retentionPeriod?: number | core.NumberOut; /** * The count of Shards for this Stream */ shardCount?: number | core.NumberOut; /** * (Optional) A list of shard-level CloudWatch metrics which can be enabled for the stream. See [Monito * ring with CloudWatch][3] for more. Note that the value ALL should not be used; instead you should pr * ovide an explicit list of metrics you wish to enable. */ shardLevelMetrics?: core.Array | core.ArrayOut; /** * (Optional) Indicates the [capacity mode](https://docs.aws.amazon.com/streams/latest/dev/how-do-i-siz * e-a-stream.html) of the data stream. Detailed below. */ streamModeDetails?: StreamModeDetails; /** * (Optional) A map of tags to assign to the resource. If configured with a provider [`default_tags` co * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co * nfiguration-block) present, tags with matching keys will overwrite those defined at the provider-lev * el. */ tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ tagsAll?: core.Map | core.MapOut; } export class Stream extends core.Resource { /** * The Amazon Resource Name (ARN) specifying the Stream (same as `id`) */ @core.attr(String, { computed: true }) public arn?: string | core.StringOut; /** * (Optional) The encryption type to use. The only acceptable values are `NONE` or `KMS`. The default v * alue is `NONE`. */ @core.attr(String) public encryptionType?: string | core.StringOut; /** * (Optional) A boolean that indicates all registered consumers should be deregistered from the stream * so that the stream can be destroyed without error. The default value is `false`. */ @core.attr(Boolean) public enforceConsumerDeletion?: boolean | core.BooleanOut; /** * The unique Stream id */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) The GUID for the customer-managed KMS key to use for encryption. You can also use a Kines * is-owned master key by specifying the alias `alias/aws/kinesis`. */ @core.attr(String) public kmsKeyId?: string | core.StringOut; /** * (Required) A name to identify the stream. This is unique to the AWS account and region the Stream is * created in. */ @core.attr(String) public name!: string | core.StringOut; /** * (Optional) Length of time data records are accessible after they are added to the stream. The maximu * m value of a stream's retention period is 8760 hours. Minimum value is 24. Default is 24. */ @core.attr(Number) public retentionPeriod?: number | core.NumberOut; /** * The count of Shards for this Stream */ @core.attr(Number) public shardCount?: number | core.NumberOut; /** * (Optional) A list of shard-level CloudWatch metrics which can be enabled for the stream. See [Monito * ring with CloudWatch][3] for more. Note that the value ALL should not be used; instead you should pr * ovide an explicit list of metrics you wish to enable. */ @core.attr(String, { kind: "array" }) public shardLevelMetrics?: core.Array | core.ArrayOut; /** * (Optional) Indicates the [capacity mode](https://docs.aws.amazon.com/streams/latest/dev/how-do-i-siz * e-a-stream.html) of the data stream. Detailed below. */ @core.attr(StreamModeDetails, { computed: true }) public streamModeDetails?: StreamModeDetails; /** * (Optional) A map of tags to assign to the resource. If configured with a provider [`default_tags` co * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co * nfiguration-block) present, tags with matching keys will overwrite those defined at the provider-lev * el. */ @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; constructor(name: string, args?: StreamArgs) { super(name, "aws_kinesis_stream", args); } public override getNamespace(): string { return "aws_kinesis"; } }