smithy4s
package smithy4s
- Alphabetic
- By Inheritance
- smithy4s
- TypeAliases
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Package Members
Type Members
- trait Constraints extends AnyRef
- sealed trait Document extends Product with Serializable
A json-like free-form structure serving as a model for the Document datatype in smithy.
- trait Endpoint[Op[_, _, _, _, _], I, E, O, SI, SO] extends AnyRef
A representation of a smithy operation.
- trait Enumeration[E] extends Companion[E]
- trait Errorable[E] extends AnyRef
- type GenLift[F[_]] = AnyRef { type λ[I, E, O, SI, SO] = F[O] }
- trait HasId extends AnyRef
- type Hint = Binding[_]
- trait Hints extends AnyRef
A hing is an arbitrary piece of data that can be added to a schema, at the struct level, or at the field/member level.
A hing 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. - type Interpreter[Op[_, _, _, _, _], F[_]] = Transformation[Op, [I, E, O, SI, SO]F[O]]
- Definition Classes
- TypeAliases
- type Monadic[Alg[_[_, _, _, _, _]], F[_]] = Alg[[I, E, O, SI, SO]F[O]]
- Definition Classes
- TypeAliases
- abstract class Newtype[A] extends HasId
- case class PayloadPath(segments: List[Segment]) extends Product with Serializable
- type Schema[A] = schematic.Schema[Schematic, A]
- 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]
- 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.
- case class ShapeId(namespace: String, name: String) extends Product with Serializable
- type Static[A] = A with Tag
- type StaticSchema[A] = Schema[A] with Tag
- sealed trait StreamingSchema[A] extends AnyRef
- trait StubSchematic[F[_]] extends Schematic[F] with schematic.StubSchematic[F]
- 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.
- 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.
- trait TimestampPlatformMethods extends AnyRef
- trait Transformable[Alg[_[_, _, _, _, _]]] extends AnyRef
Allows to transform the effect an algebra works against.
- trait Transformation[F[_, _, _, _, _], G[_, _, _, _, _]] extends AnyRef
Natural transformation allowing to change the outer type that final interfaces work against.
- trait TypeAliases extends AnyRef
- Attributes
- protected
- type UnionSchema[A] = schematic.union.Schema[UnionSchematic, A]
- type UnionSchematic[F[_]] = schematic.union.Schematic[F]
- final case class UnsupportedProtocolError(service: HasId, protocolKey: HasId) extends Throwable with Product with Serializable
Value Members
- def checkProtocol[Alg[_[_, _, _, _, _]], Op[_, _, _, _, _]](service: Service[Alg, Op], protocolKey: Key[_]): Either[UnsupportedProtocolError, Unit]
- val errorTypeHeader: String
- object Constraints
- object Document extends Serializable
- object Hints
- object Kind5
- object NumericCompat
- object PayloadPath extends Serializable
- object SchematicRepr extends Schematic[Repr] with SchematicRepr
- object Service
- object ShapeId extends Companion[ShapeId] with Serializable
- object Static extends StaticImpl
- object StreamingSchema
- 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.)
- object Transformation
- object errorUnion