smithy4s.com.amazonaws.kinesis.StreamDescriptionSummary.scala Maven / Gradle / Ivy
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 DescribeStreamSummary
*
* @param StreamARN
* The Amazon Resource Name (ARN) for the stream being described.
* @param ConsumerCount
* The number of enhanced fan-out consumers registered with the stream.
* @param StreamCreationTimestamp
* The approximate time that the stream was created.
* @param RetentionPeriodHours
* The current retention period, in hours.
* @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 OpenShardCount
* The number of open shards in the stream.
* @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 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 ycapacity mode and a provisioned capacity mode for your data streams.
* @param EncryptionType
* The encryption type used. This value is one of the following:
*
* -
*
* KMS
*
*
* -
*
* NONE
*
*
*
*/
final case class StreamDescriptionSummary(streamName: StreamName, streamARN: StreamARN, streamStatus: StreamStatus, retentionPeriodHours: RetentionPeriodHours, streamCreationTimestamp: Timestamp, enhancedMonitoring: List[EnhancedMetrics], openShardCount: ShardCountObject, streamModeDetails: Option[StreamModeDetails] = None, encryptionType: Option[EncryptionType] = None, keyId: Option[KeyId] = None, consumerCount: Option[ConsumerCountObject] = None)
object StreamDescriptionSummary extends ShapeTag.Companion[StreamDescriptionSummary] {
val id: ShapeId = ShapeId("com.amazonaws.kinesis", "StreamDescriptionSummary")
val hints: Hints = Hints(
smithy.api.Documentation("Represents the output for DescribeStreamSummary\n
"),
).lazily
// constructor using the original order from the spec
private def make(streamName: StreamName, streamARN: StreamARN, streamStatus: StreamStatus, streamModeDetails: Option[StreamModeDetails], retentionPeriodHours: RetentionPeriodHours, streamCreationTimestamp: Timestamp, enhancedMonitoring: List[EnhancedMetrics], encryptionType: Option[EncryptionType], keyId: Option[KeyId], openShardCount: ShardCountObject, consumerCount: Option[ConsumerCountObject]): StreamDescriptionSummary = StreamDescriptionSummary(streamName, streamARN, streamStatus, retentionPeriodHours, streamCreationTimestamp, enhancedMonitoring, openShardCount, streamModeDetails, encryptionType, keyId, consumerCount)
implicit val schema: Schema[StreamDescriptionSummary] = struct(
StreamName.schema.required[StreamDescriptionSummary]("StreamName", _.streamName).addHints(smithy.api.Documentation("The name of the stream being described.
")),
StreamARN.schema.required[StreamDescriptionSummary]("StreamARN", _.streamARN).addHints(smithy.api.Documentation("The Amazon Resource Name (ARN) for the stream being described.
")),
StreamStatus.schema.required[StreamDescriptionSummary]("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[StreamDescriptionSummary]("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 ycapacity mode and a provisioned capacity mode for your data streams.
")),
RetentionPeriodHours.schema.required[StreamDescriptionSummary]("RetentionPeriodHours", _.retentionPeriodHours).addHints(smithy.api.Documentation("The current retention period, in hours.
")),
timestamp.required[StreamDescriptionSummary]("StreamCreationTimestamp", _.streamCreationTimestamp).addHints(smithy.api.Documentation("The approximate time that the stream was created.
")),
EnhancedMonitoringList.underlyingSchema.required[StreamDescriptionSummary]("EnhancedMonitoring", _.enhancedMonitoring).addHints(smithy.api.Documentation("Represents the current enhanced monitoring settings of the stream.
")),
EncryptionType.schema.optional[StreamDescriptionSummary]("EncryptionType", _.encryptionType).addHints(smithy.api.Documentation("The encryption type used. This value is one of the following:
\n \n - \n
\n KMS
\n
\n \n - \n
\n NONE
\n
\n \n
")),
KeyId.schema.optional[StreamDescriptionSummary]("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
")),
ShardCountObject.schema.required[StreamDescriptionSummary]("OpenShardCount", _.openShardCount).addHints(smithy.api.Documentation("The number of open shards in the stream.
")),
ConsumerCountObject.schema.optional[StreamDescriptionSummary]("ConsumerCount", _.consumerCount).addHints(smithy.api.Documentation("The number of enhanced fan-out consumers registered with the stream.
")),
)(make).withId(id).addHints(hints)
}