p

smithy4s

package smithy4s

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. smithy4s
  2. TypeAliases
  3. AnyRef
  4. 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 syntax

Type Members

  1. trait Constraints extends AnyRef
  2. sealed trait Document extends Product with Serializable

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

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

    A representation of a smithy operation.

  4. trait Enumeration[E] extends Companion[E]
  5. trait Errorable[E] extends AnyRef
  6. type GenLift[F[_]] = AnyRef { type λ[I, E, O, SI, SO] = F[O] }
  7. trait HasId extends AnyRef
  8. type Hint = Binding[_]
  9. sealed abstract class HintMask extends AnyRef
  10. 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.

  11. type Interpreter[Op[_, _, _, _, _], F[_]] = Transformation[Op, [I, E, O, SI, SO]F[O]]
    Definition Classes
    TypeAliases
  12. type Monadic[Alg[_[_, _, _, _, _]], F[_]] = Alg[[I, E, O, SI, SO]F[O]]
    Definition Classes
    TypeAliases
  13. abstract class Newtype[A] extends HasId
  14. class PassthroughSchematic[F[_]] extends Schematic[F]
  15. case class PayloadPath(segments: List[Segment]) extends Product with Serializable
  16. trait Protocol[A] extends AnyRef
  17. type Schema[A] = schematic.Schema[Schematic, A]
  18. sealed trait SchemaIndex extends AnyRef

    A map of schemas indexed by tag.

  19. trait Schematic[F[_]] extends schematic.short.Schematic[F] with schematic.int.Schematic[F] with schematic.long.Schematic[F] with schematic.double.Schematic[F] with schematic.float.Schematic[F] with schematic.bigint.Schematic[F] with schematic.bigdecimal.Schematic[F] with schematic.string.Schematic[F] with schematic.boolean.Schematic[F] with schematic.uuid.Schematic[F] with schematic.byte.Schematic[F] with schematic.bytes.Schematic[F] with schematic.unit.Schematic[F] with schematic.list.Schematic[F] with schematic.set.Schematic[F] with schematic.vector.Schematic[F] with schematic.map.Schematic[F] with schematic.struct.Schematic[F] with schematic.union.Schematic[F] with schematic.enumeration.Schematic[F] with schematic.suspended.Schematic[F] with schematic.bijection.Schematic[F] with smithy4s.Timestamp.Schematic[F] with smithy4s.Hints.Schematic[F] with smithy4s.Document.Schematic[F]
  20. 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.

  21. case class ShapeId(namespace: String, name: String) extends Product with Serializable
  22. trait ShapeTag[-A] extends HasId

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

  23. type Static[A] = A with Tag
  24. type StaticSchema[A] = Schema[A] with Tag
  25. sealed trait StreamingSchema[A] extends AnyRef
  26. trait StubSchematic[F[_]] extends Schematic[F] with schematic.StubSchematic[F]
  27. abstract class Timestamp extends TimestampPlatformMethods

    Platform-agnostic UTC timestamp representation.

    Platform-agnostic UTC timestamp representation.

    The schematic.TimePlatformCompat trait provides a "nowUTC" method to get the current time.

  28. trait TimestampCompanion extends AnyRef

    Trait that is meant to be implemented in platform-specific ways, abstracing over logic that has to do with retrieving time from the system.

  29. trait TimestampPlatformMethods extends AnyRef
  30. trait Transformable[Alg[_[_, _, _, _, _]]] extends AnyRef

    Allows to transform the effect an algebra works against.

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

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

  32. trait TypeAliases extends AnyRef
    Attributes
    protected
  33. type UnionSchema[A] = schematic.union.Schema[UnionSchematic, A]
  34. type UnionSchematic[F[_]] = schematic.union.Schematic[F]
  35. final case class UnsupportedProtocolError(service: HasId, protocolTag: HasId) extends Throwable with Product with Serializable

Value Members

  1. def checkProtocol[Alg[_[_, _, _, _, _]], Op[_, _, _, _, _]](service: Service[Alg, Op], protocolTag: ShapeTag[_]): Either[UnsupportedProtocolError, Unit]
  2. val errorTypeHeader: String
  3. object Constraints
  4. object Document extends Serializable
  5. object HintMask
  6. object Hints
  7. object Kind5
  8. object NumericCompat
  9. object PayloadPath extends Serializable
  10. object SchemaIndex
  11. object SchematicRepr extends Schematic[Repr] with SchematicRepr
  12. object Service
  13. object ShapeId extends Companion[ShapeId] with Serializable
  14. object ShapeTag
  15. object Static extends StaticImpl
  16. object StreamingSchema
  17. object Timestamp extends TimePlatformCompat

    The smithy4s.TimePlatformCompat contains all the platform-specific code that has to do with retrieving time from the system, and is provided for the hree platforms (jvm/js/native.)

  18. object Transformation
  19. object errorUnion

Inherited from TypeAliases

Inherited from AnyRef

Inherited from Any

Ungrouped