p

smithy4s

package smithy4s

Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. smithy4s
  2. ExistentialsPlatformCompat
  3. TypeAliases
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Package Members

  1. package api
  2. package capability
  3. package http
  4. package internals
  5. package schema

Type Members

  1. trait Bijection[A, B] extends Function[A, B]

    A bijection is an association of two opposite functions A => B and B => A.

    A bijection is an association of two opposite functions A => B and B => A.

    A bijection MUST abide by the round-tripping property, namely, for all input A :

    bijection.from(bijection(input)) == input

  2. class ByteArray extends AnyRef
  3. final case class ConstraintError(hint: Hint, message: String) extends Throwable with NoStackTrace with Product with Serializable
  4. sealed trait Document extends Product with Serializable

    A json-like free-form structure serving as a model for the Document datatype in smithy.

  5. trait Endpoint[Op[_, _, _, _, _], I, E, O, SI, SO] extends AnyRef

    A representation of a smithy operation.

  6. trait Enumeration[E <: Value] extends Companion[E]
  7. trait Errorable[E] extends AnyRef
  8. type Existential[F[_]] = F[_]
    Definition Classes
    ExistentialsPlatformCompat
  9. trait ExistentialsPlatformCompat extends AnyRef
  10. type GenLift[F[_]] = AnyRef { type λ[I, E, O, SI, SO] = F[O] }
  11. trait HasId extends AnyRef
  12. type Hint = Binding
  13. sealed abstract class HintMask extends AnyRef
  14. trait Hints extends AnyRef

    A hint is an arbitrary piece of data that can be added to a schema, at the struct level, or at the field/member level.

    A hint is an arbitrary piece of data that can be added to a schema, at the struct level, or at the field/member level.

    You can think of it as an annotation that can communicate additional information to encoders/decoders (for instance, a change in a label, a regex pattern some string should abide by, a range, etc)

    This Hints interface is a container for hints.

  15. final case class IntEnum() extends Product with Serializable
  16. type Interpreter[Op[_, _, _, _, _], F[_]] = Transformation[Op, [I, E, O, SI, SO]F[O]]
    Definition Classes
    TypeAliases
  17. final class Lazy[A] extends AnyRef
  18. type Monadic[Alg[_[_, _, _, _, _]], F[_]] = Alg[[I, E, O, SI, SO]F[O]]
    Definition Classes
    TypeAliases
  19. abstract class Newtype[A] extends HasId
  20. case class PayloadPath(segments: List[Segment]) extends Product with Serializable
  21. trait PolyFunction[F[_], G[_]] extends AnyRef

    Natural transformation, turning a polymorphic type into another, whilst keeping the type parameter intact.

  22. trait Protocol[A] extends AnyRef
  23. trait Refinement[A, B] extends AnyRef

    A type-refinement, associated to a runtime-representation of a constraint.

    A type-refinement, associated to a runtime-representation of a constraint.

    Represents the fact that you can go from A to B provided the value of tye A abides by a given Constraint.

  24. trait RefinementProvider[C, A, B] extends AnyRef

    Given a constraint of type C, an RefinementProvider can produce a Refinement that allows to go from A to B.

    Given a constraint of type C, an RefinementProvider can produce a Refinement that allows to go from A to B.

    A RefinementProvider can be used as a typeclass.

  25. type Schema[A] = smithy4s.schema.Schema[A]
  26. trait Service[Alg[_[_, _, _, _, _]], Op[_, _, _, _, _]] extends Transformable[Alg] with Provider[Alg, Op]

    Generic representation of a service, as a list of "endpoints" (mapping to smithy operations).

    Generic representation of a service, as a list of "endpoints" (mapping to smithy operations).

    This abstraction lets us retrieve all information necessary to the generic implementation of protocols, as well as transform implementations of finally-encoded interfaces into interpreters (natural transformations) that operate on initially-encoded GADTs.

    Alg

    : a finally-encoded interface (commonly called algebra) that works against an abstract "effect" that takes 5 type parameters: Input, Error, Output, StreamedInput, StreamedOutput

    Op

    : an initially encoded version of the finally-encoded interface. Typically, a GADT that acts as a reification of the operations. Passing the reified versions around makes it drastically easier to implement logic generically, without involving metaprogramming.

  27. final case class ShapeId(namespace: String, name: String) extends HasId with Product with Serializable
  28. trait ShapeTag[A] extends HasId

    A tag that can be used as keys for higher-kinded maps

  29. sealed trait StreamingSchema[A] extends AnyRef
  30. trait Surjection[A, B] extends Function[A, Either[String, B]]

    A surjection of a partial function A => Either[String, B] and a total function B => A.

    A surjection of a partial function A => Either[String, B] and a total function B => A.

    A surjection MUST abide by the round-tripping property, namely, for all input A that passes the validation function

    surjection(input).map(surjection.from) == Right(input)

  31. case class Timestamp extends TimestampPlatform with Product with Serializable
  32. trait Transformable[Alg[_[_, _, _, _, _]]] extends AnyRef

    Allows to transform the effect an algebra works against.

  33. trait Transformation[F[_, _, _, _, _], G[_, _, _, _, _]] extends AnyRef

    Natural transformation allowing to change the outer type that final interfaces work against.

  34. trait TypeAliases extends AnyRef
    Attributes
    protected
  35. type UnionSchema[A] = smithy4s.schema.Schema.UnionSchema[A]
  36. final case class UnsupportedProtocolError(service: HasId, protocolTag: HasId) extends Throwable with Product with Serializable
  37. type Wrapped[F[_], G[_], A] = F[G[A]]
  38. type ~>[F[_], G[_]] = PolyFunction[F, G]

Value Members

  1. val Schema: smithy4s.schema.Schema.type
  2. def checkProtocol[Alg[_[_, _, _, _, _]], Op[_, _, _, _, _]](service: Service[Alg, Op], protocolTag: ShapeTag[_]): Either[UnsupportedProtocolError, Unit]
  3. val errorTypeHeader: String
  4. object Bijection
  5. object ByteArray
  6. object Document extends Serializable
  7. object Enumeration
  8. object Existential
  9. object HintMask
  10. object Hints
  11. object IntEnum extends Companion[IntEnum] with Serializable
  12. object Kind5
  13. object Lazy
  14. object Newtype
  15. object NumericCompat
  16. object PayloadPath extends Serializable
  17. object Refinement
  18. object RefinementProvider
  19. object Service
  20. object ShapeId extends Has[ShapeId] with Serializable
  21. object ShapeTag
  22. object StreamingSchema
  23. object Surjection
  24. object Timestamp extends TimestampCompanionPlatform with Serializable
  25. object Transformation

Inherited from TypeAliases

Inherited from AnyRef

Inherited from Any

Ungrouped