smithy4s.com.amazonaws.kinesis.ChildShard.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
/** Output parameter of the GetRecords API. The existing child shard of the current
* shard.
* @param ShardId
* The shard ID of the existing child shard of the current shard.
* @param ParentShards
* The current shard that is the parent of the existing child shard.
* @param HashKeyRange
* The range of possible hash key values for the shard, which is a set of ordered
* contiguous positive integers.
*/
final case class ChildShard(shardId: ShardId, parentShards: List[ShardId], hashKeyRange: HashKeyRange)
object ChildShard extends ShapeTag.Companion[ChildShard] {
val id: ShapeId = ShapeId("com.amazonaws.kinesis", "ChildShard")
val hints: Hints = Hints(
smithy.api.Documentation("Output parameter of the GetRecords API. The existing child shard of the current\n shard.
"),
).lazily
// constructor using the original order from the spec
private def make(shardId: ShardId, parentShards: List[ShardId], hashKeyRange: HashKeyRange): ChildShard = ChildShard(shardId, parentShards, hashKeyRange)
implicit val schema: Schema[ChildShard] = struct(
ShardId.schema.required[ChildShard]("ShardId", _.shardId).addHints(smithy.api.Documentation("The shard ID of the existing child shard of the current shard.
")),
ShardIdList.underlyingSchema.required[ChildShard]("ParentShards", _.parentShards).addHints(smithy.api.Documentation("The current shard that is the parent of the existing child shard.
")),
HashKeyRange.schema.required[ChildShard]("HashKeyRange", _.hashKeyRange),
)(make).withId(id).addHints(hints)
}