smithy4s.com.amazonaws.kinesis.SequenceNumberRange.scala Maven / Gradle / Ivy
package com.amazonaws.kinesis
import smithy4s.Hints
import smithy4s.Schema
import smithy4s.ShapeId
import smithy4s.ShapeTag
import smithy4s.schema.Schema.struct
/** The range of possible sequence numbers for the shard.
* @param StartingSequenceNumber
* The starting sequence number for the range.
* @param EndingSequenceNumber
* The ending sequence number for the range. Shards that are in the OPEN state have an
* ending sequence number of null
.
*/
final case class SequenceNumberRange(startingSequenceNumber: SequenceNumber, endingSequenceNumber: Option[SequenceNumber] = None)
object SequenceNumberRange extends ShapeTag.Companion[SequenceNumberRange] {
val id: ShapeId = ShapeId("com.amazonaws.kinesis", "SequenceNumberRange")
val hints: Hints = Hints(
smithy.api.Documentation("The range of possible sequence numbers for the shard.
"),
).lazily
// constructor using the original order from the spec
private def make(startingSequenceNumber: SequenceNumber, endingSequenceNumber: Option[SequenceNumber]): SequenceNumberRange = SequenceNumberRange(startingSequenceNumber, endingSequenceNumber)
implicit val schema: Schema[SequenceNumberRange] = struct(
SequenceNumber.schema.required[SequenceNumberRange]("StartingSequenceNumber", _.startingSequenceNumber).addHints(smithy.api.Documentation("The starting sequence number for the range.
")),
SequenceNumber.schema.optional[SequenceNumberRange]("EndingSequenceNumber", _.endingSequenceNumber).addHints(smithy.api.Documentation("The ending sequence number for the range. Shards that are in the OPEN state have an\n ending sequence number of null
.
")),
)(make).withId(id).addHints(hints)
}