smithy4s.com.amazonaws.kinesis.StreamDescription.scala Maven / Gradle / Ivy
Show all versions of kinesis4cats-smithy4s-client_3 Show documentation
package com.amazonaws.kinesis
import smithy4s.Hints
import smithy4s.Schema
import smithy4s.ShapeId
import smithy4s.ShapeTag
import smithy4s.Timestamp
import smithy4s.schema.Schema.struct
import smithy4s.schema.Schema.timestamp
/** Represents the output for DescribeStream.
* @param StreamARN
* The Amazon Resource Name (ARN) for the stream being described.
* @param StreamCreationTimestamp
* The approximate time that the stream was created.
* @param RetentionPeriodHours
* The current retention period, in hours. Minimum value of 24. Maximum value of
* 168.
* @param StreamStatus
* The current status of the stream being described. The stream status is one of the
* following states:
*
* -
*
* CREATING
- The stream is being created. Kinesis Data Streams
* immediately returns and sets StreamStatus
to
* CREATING
.
*
* -
*
* DELETING
- The stream is being deleted. The specified stream is in
* the DELETING
state until Kinesis Data Streams completes the
* deletion.
*
* -
*
* ACTIVE
- The stream exists and is ready for read and write
* operations or deletion. You should perform read and write operations only on an
* ACTIVE
stream.
*
* -
*
* UPDATING
- Shards in the stream are being merged or split. Read and
* write operations continue to work while the stream is in the
* UPDATING
state.
*
*
* @param EnhancedMonitoring
* Represents the current enhanced monitoring settings of the stream.
* @param KeyId
* The GUID for the customer-managed Amazon Web Services KMS key to use for encryption.
* This value can be a globally unique identifier, a fully specified ARN to either an alias
* or a key, or an alias name prefixed by "alias/".You can also use a master key owned by
* Kinesis Data Streams by specifying the alias aws/kinesis
.
*
* -
*
Key ARN example:
* arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012
*
*
* -
*
Alias ARN example:
* arn:aws:kms:us-east-1:123456789012:alias/MyAliasName
*
*
* -
*
Globally unique key ID example:
* 12345678-1234-1234-1234-123456789012
*
*
* -
*
Alias name example: alias/MyAliasName
*
*
* -
*
Master key owned by Kinesis Data Streams:
* alias/aws/kinesis
*
*
*
* @param StreamName
* The name of the stream being described.
* @param HasMoreShards
* If set to true
, more shards in the stream are available to
* describe.
* @param StreamModeDetails
* 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.
* @param Shards
* The shards that comprise the stream.
* @param EncryptionType
* The server-side encryption type used on the stream. This parameter can be one of the
* following values:
*
* -
*
* NONE
: Do not encrypt the records in the stream.
*
* -
*
* KMS
: Use server-side encryption on the records in the stream
* using a customer-managed Amazon Web Services KMS key.
*
*
*/
final case class StreamDescription(streamName: StreamName, streamARN: StreamARN, streamStatus: StreamStatus, shards: List[Shard], hasMoreShards: BooleanObject, retentionPeriodHours: RetentionPeriodHours, streamCreationTimestamp: Timestamp, enhancedMonitoring: List[EnhancedMetrics], streamModeDetails: Option[StreamModeDetails] = None, encryptionType: Option[EncryptionType] = None, keyId: Option[KeyId] = None)
object StreamDescription extends ShapeTag.Companion[StreamDescription] {
val id: ShapeId = ShapeId("com.amazonaws.kinesis", "StreamDescription")
val hints: Hints = Hints(
smithy.api.Documentation("Represents the output for DescribeStream.
"),
).lazily
// constructor using the original order from the spec
private def make(streamName: StreamName, streamARN: StreamARN, streamStatus: StreamStatus, streamModeDetails: Option[StreamModeDetails], shards: List[Shard], hasMoreShards: BooleanObject, retentionPeriodHours: RetentionPeriodHours, streamCreationTimestamp: Timestamp, enhancedMonitoring: List[EnhancedMetrics], encryptionType: Option[EncryptionType], keyId: Option[KeyId]): StreamDescription = StreamDescription(streamName, streamARN, streamStatus, shards, hasMoreShards, retentionPeriodHours, streamCreationTimestamp, enhancedMonitoring, streamModeDetails, encryptionType, keyId)
implicit val schema: Schema[StreamDescription] = struct(
StreamName.schema.required[StreamDescription]("StreamName", _.streamName).addHints(smithy.api.Documentation("The name of the stream being described.
")),
StreamARN.schema.required[StreamDescription]("StreamARN", _.streamARN).addHints(smithy.api.Documentation("The Amazon Resource Name (ARN) for the stream being described.
")),
StreamStatus.schema.required[StreamDescription]("StreamStatus", _.streamStatus).addHints(smithy.api.Documentation("The current status of the stream being described. The stream status is one of the\n following states:
\n \n - \n
\n CREATING
- The stream is being created. Kinesis Data Streams\n immediately returns and sets StreamStatus
to\n CREATING
.
\n \n - \n
\n DELETING
- The stream is being deleted. The specified stream is in\n the DELETING
state until Kinesis Data Streams completes the\n deletion.
\n \n - \n
\n ACTIVE
- The stream exists and is ready for read and write\n operations or deletion. You should perform read and write operations only on an\n ACTIVE
stream.
\n \n - \n
\n UPDATING
- Shards in the stream are being merged or split. Read and\n write operations continue to work while the stream is in the\n UPDATING
state.
\n \n
")),
StreamModeDetails.schema.optional[StreamDescription]("StreamModeDetails", _.streamModeDetails).addHints(smithy.api.Documentation(" Specifies the capacity mode to which you want to set your data stream. Currently, in\n Kinesis Data Streams, you can choose between an on-demand capacity mode and a provisioned capacity mode for your data streams.
")),
ShardList.underlyingSchema.required[StreamDescription]("Shards", _.shards).addHints(smithy.api.Documentation("The shards that comprise the stream.
")),
BooleanObject.schema.required[StreamDescription]("HasMoreShards", _.hasMoreShards).addHints(smithy.api.Documentation("If set to true
, more shards in the stream are available to\n describe.
")),
RetentionPeriodHours.schema.required[StreamDescription]("RetentionPeriodHours", _.retentionPeriodHours).addHints(smithy.api.Documentation("The current retention period, in hours. Minimum value of 24. Maximum value of\n 168.
")),
timestamp.required[StreamDescription]("StreamCreationTimestamp", _.streamCreationTimestamp).addHints(smithy.api.Documentation("The approximate time that the stream was created.
")),
EnhancedMonitoringList.underlyingSchema.required[StreamDescription]("EnhancedMonitoring", _.enhancedMonitoring).addHints(smithy.api.Documentation("Represents the current enhanced monitoring settings of the stream.
")),
EncryptionType.schema.optional[StreamDescription]("EncryptionType", _.encryptionType).addHints(smithy.api.Documentation("The server-side encryption type used on the stream. This parameter can be one of the\n following values:
\n \n - \n
\n NONE
: Do not encrypt the records in the stream.
\n \n - \n
\n KMS
: Use server-side encryption on the records in the stream\n using a customer-managed Amazon Web Services KMS key.
\n \n
")),
KeyId.schema.optional[StreamDescription]("KeyId", _.keyId).addHints(smithy.api.Documentation("The GUID for the customer-managed Amazon Web Services KMS key to use for encryption.\n This value can be a globally unique identifier, a fully specified ARN to either an alias\n or a key, or an alias name prefixed by \"alias/\".You can also use a master key owned by\n Kinesis Data Streams by specifying the alias aws/kinesis
.
\n \n - \n
Key ARN example:\n arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012
\n
\n \n - \n
Alias ARN example:\n arn:aws:kms:us-east-1:123456789012:alias/MyAliasName
\n
\n \n - \n
Globally unique key ID example:\n 12345678-1234-1234-1234-123456789012
\n
\n \n - \n
Alias name example: alias/MyAliasName
\n
\n \n - \n
Master key owned by Kinesis Data Streams:\n alias/aws/kinesis
\n
\n \n
")),
)(make).withId(id).addHints(hints)
}