All Downloads are FREE. Search and download functionalities are using the official Maven repository.

smithy4s.smithy.rules.EndpointRuleSet.scala Maven / Gradle / Ivy

The newest version!
package smithy.rules

import smithy4s.Document
import smithy4s.Hints
import smithy4s.Newtype
import smithy4s.Schema
import smithy4s.ShapeId
import smithy4s.schema.Schema.bijection
import smithy4s.schema.Schema.document
import smithy4s.schema.Schema.recursive

/** Defines an endpoint rule-set used to resolve the client's transport endpoint. */
object EndpointRuleSet extends Newtype[Document] {
  val id: ShapeId = ShapeId("smithy.rules", "endpointRuleSet")
  val hints: Hints = Hints(
    smithy.api.Documentation("Defines an endpoint rule-set used to resolve the client\'s transport endpoint."),
    smithy.api.Unstable(),
    smithy.api.Trait(selector = Some("service"), structurallyExclusive = None, conflicts = None, breakingChanges = None),
  ).lazily
  val underlyingSchema: Schema[Document] = document.withId(id).addHints(hints)
  implicit val schema: Schema[EndpointRuleSet] = recursive(bijection(underlyingSchema, asBijection))
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy