smithy4s.com.amazonaws.kinesis.ConsumerDescription.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
/** An object that represents the details of a registered consumer. This type of object is
* returned by DescribeStreamConsumer.
* @param StreamARN
* The ARN of the stream with which you registered the consumer.
* @param ConsumerCreationTimestamp
*
* @param ConsumerStatus
* A consumer can't read data while in the CREATING
or DELETING
* states.
* @param ConsumerName
* The name of the consumer is something you choose when you register the
* consumer.
* @param ConsumerARN
* When you register a consumer, Kinesis Data Streams generates an ARN for it. You need
* this ARN to be able to call SubscribeToShard.
* If you delete a consumer and then create a new one with the same name, it won't have
* the same ARN. That's because consumer ARNs contain the creation timestamp. This is
* important to keep in mind if you have IAM policies that reference consumer ARNs.
*/
final case class ConsumerDescription(consumerName: ConsumerName, consumerARN: ConsumerARN, consumerStatus: ConsumerStatus, consumerCreationTimestamp: Timestamp, streamARN: StreamARN)
object ConsumerDescription extends ShapeTag.Companion[ConsumerDescription] {
val id: ShapeId = ShapeId("com.amazonaws.kinesis", "ConsumerDescription")
val hints: Hints = Hints(
smithy.api.Documentation("An object that represents the details of a registered consumer. This type of object is\n returned by DescribeStreamConsumer.
"),
).lazily
// constructor using the original order from the spec
private def make(consumerName: ConsumerName, consumerARN: ConsumerARN, consumerStatus: ConsumerStatus, consumerCreationTimestamp: Timestamp, streamARN: StreamARN): ConsumerDescription = ConsumerDescription(consumerName, consumerARN, consumerStatus, consumerCreationTimestamp, streamARN)
implicit val schema: Schema[ConsumerDescription] = struct(
ConsumerName.schema.required[ConsumerDescription]("ConsumerName", _.consumerName).addHints(smithy.api.Documentation("The name of the consumer is something you choose when you register the\n consumer.
")),
ConsumerARN.schema.required[ConsumerDescription]("ConsumerARN", _.consumerARN).addHints(smithy.api.Documentation("When you register a consumer, Kinesis Data Streams generates an ARN for it. You need\n this ARN to be able to call SubscribeToShard.
\n If you delete a consumer and then create a new one with the same name, it won\'t have\n the same ARN. That\'s because consumer ARNs contain the creation timestamp. This is\n important to keep in mind if you have IAM policies that reference consumer ARNs.
")),
ConsumerStatus.schema.required[ConsumerDescription]("ConsumerStatus", _.consumerStatus).addHints(smithy.api.Documentation("A consumer can\'t read data while in the CREATING
or DELETING
\n states.
")),
timestamp.required[ConsumerDescription]("ConsumerCreationTimestamp", _.consumerCreationTimestamp).addHints(smithy.api.Documentation("")),
StreamARN.schema.required[ConsumerDescription]("StreamARN", _.streamARN).addHints(smithy.api.Documentation("The ARN of the stream with which you registered the consumer.
")),
)(make).withId(id).addHints(hints)
}