Packages

t

endpoints4s.generic

JsonSchemas

trait JsonSchemas extends algebra.JsonSchemas

Enriches JsonSchemas with two kinds of operations:

  • genericJsonSchema[A] derives the JsonSchema of an algebraic data type A;
  • (field1 :×: field2 :×: …).as[A] builds a tuple of Records and maps it to a case class A

For instance, consider the following program that derives the JSON schema of a case class:

case class User(name: String, age: Int)
object User {
  implicit val schema: JsonSchema[User] = genericJsonSchema[User]
}

It is equivalent to the following:

case class User(name: String, age: Int)
object User {
  implicit val schema: JsonSchema[User] = (
    field[String]("name") zip
    field[Int]("age")
  ).xmap((User.apply _).tupled)(Function.unlift(User.unapply))
}
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. JsonSchemas
  2. JsonSchemas
  3. PartialInvariantFunctorSyntax
  4. InvariantFunctorSyntax
  5. TuplesSchemas
  6. AnyRef
  7. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. abstract type Enum[A] <: JsonSchema[A]
    Definition Classes
    JsonSchemas
  2. implicit final class EnumOps[A] extends JsonSchemaDocumentationOps[A]
    Definition Classes
    JsonSchemas
  3. trait GenericDescriptions extends AnyRef

    Internal machinery for extracting a description of a type

  4. trait GenericDiscriminatorNames extends AnyRef

    Internal machinery for deriving the discriminator name of a type

  5. trait GenericJsonSchema[A] extends AnyRef
    Annotations
    @implicitNotFound( ... )
  6. trait GenericJsonSchemaLowLowPriority extends AnyRef
  7. trait GenericJsonSchemaLowPriority extends GenericJsonSchemaLowLowPriority
  8. trait GenericSchemaNames extends AnyRef

    Internal machinery for deriving the schema name of a type

  9. trait GenericTitles extends AnyRef

    Internal machinery for extracting a title of a type

  10. implicit class InvariantFunctorSyntax[A, F[_]] extends AnyRef
    Definition Classes
    InvariantFunctorSyntax
  11. abstract type JsonSchema[A]
    Definition Classes
    JsonSchemas
  12. sealed trait JsonSchemaDocumentationOps[A] extends AnyRef
    Definition Classes
    JsonSchemas
  13. implicit final class JsonSchemaGenericOps[A] extends AnyRef
  14. implicit final class JsonSchemaOps[A] extends JsonSchemaDocumentationOps[A]
    Definition Classes
    JsonSchemas
  15. implicit class PartialInvariantFunctorSyntax[A, F[_]] extends AnyRef
    Definition Classes
    PartialInvariantFunctorSyntax
  16. abstract type Record[A] <: JsonSchema[A]
    Definition Classes
    JsonSchemas
  17. implicit final class RecordGenericOps[A] extends AnyRef
  18. implicit final class RecordOps[A] extends JsonSchemaDocumentationOps[A]
    Definition Classes
    JsonSchemas
  19. abstract type Tagged[A] <: JsonSchema[A]
    Definition Classes
    JsonSchemas
  20. implicit final class TaggedOps[A] extends JsonSchemaDocumentationOps[A]
    Definition Classes
    JsonSchemas

Abstract Value Members

  1. implicit abstract def arrayJsonSchema[C[X] <: Seq[X], A](implicit jsonSchema: JsonSchema[A], factory: scala.collection.compat.Factory[A, C[A]]): JsonSchema[C[A]]
    Definition Classes
    JsonSchemas
  2. implicit abstract def bigdecimalJsonSchema: JsonSchema[BigDecimal]
    Definition Classes
    JsonSchemas
  3. implicit abstract def booleanJsonSchema: JsonSchema[Boolean]
    Definition Classes
    JsonSchemas
  4. implicit abstract def byteJsonSchema: JsonSchema[Byte]
    Definition Classes
    JsonSchemas
  5. abstract def choiceTagged[A, B](taggedA: Tagged[A], taggedB: Tagged[B]): Tagged[Either[A, B]]
    Definition Classes
    JsonSchemas
  6. implicit abstract def doubleJsonSchema: JsonSchema[Double]
    Definition Classes
    JsonSchemas
  7. implicit abstract def emptyRecord: Record[Unit]
    Definition Classes
    JsonSchemas
  8. abstract def enumeration[A](values: Seq[A])(tpe: JsonSchema[A]): Enum[A]
    Definition Classes
    JsonSchemas
  9. abstract def field[A](name: String, documentation: Option[String])(implicit tpe: JsonSchema[A]): Record[A]
    Definition Classes
    JsonSchemas
  10. implicit abstract def floatJsonSchema: JsonSchema[Float]
    Definition Classes
    JsonSchemas
  11. implicit abstract def intJsonSchema: JsonSchema[Int]
    Definition Classes
    JsonSchemas
  12. implicit abstract def jsonSchemaPartialInvFunctor: PartialInvariantFunctor[JsonSchema]
    Definition Classes
    JsonSchemas
  13. abstract def lazyRecord[A](schema: ⇒ Record[A], name: String): JsonSchema[A]
    Definition Classes
    JsonSchemas
  14. abstract def lazyTagged[A](schema: ⇒ Tagged[A], name: String): JsonSchema[A]
    Definition Classes
    JsonSchemas
  15. implicit abstract def longJsonSchema: JsonSchema[Long]
    Definition Classes
    JsonSchemas
  16. implicit abstract def mapJsonSchema[A](implicit jsonSchema: JsonSchema[A]): JsonSchema[Map[String, A]]
    Definition Classes
    JsonSchemas
  17. abstract def namedEnum[A](schema: Enum[A], name: String): Enum[A]
    Definition Classes
    JsonSchemas
  18. abstract def namedRecord[A](schema: Record[A], name: String): Record[A]
    Definition Classes
    JsonSchemas
  19. abstract def namedTagged[A](schema: Tagged[A], name: String): Tagged[A]
    Definition Classes
    JsonSchemas
  20. abstract def optField[A](name: String, documentation: Option[String])(implicit tpe: JsonSchema[A]): Record[Option[A]]
    Definition Classes
    JsonSchemas
  21. abstract def orFallbackToJsonSchema[A, B](schemaA: JsonSchema[A], schemaB: JsonSchema[B]): JsonSchema[Either[A, B]]
    Definition Classes
    JsonSchemas
  22. implicit abstract def recordPartialInvFunctor: PartialInvariantFunctor[Record]
    Definition Classes
    JsonSchemas
  23. abstract def stringJsonSchema(format: Option[String]): JsonSchema[String]
    Definition Classes
    JsonSchemas
  24. implicit abstract def taggedPartialInvFunctor: PartialInvariantFunctor[Tagged]
    Definition Classes
    JsonSchemas
  25. abstract def taggedRecord[A](recordA: Record[A], tag: String): Tagged[A]
    Definition Classes
    JsonSchemas
  26. implicit abstract def tuple10JsonSchema[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4], schema5: JsonSchema[T5], schema6: JsonSchema[T6], schema7: JsonSchema[T7], schema8: JsonSchema[T8], schema9: JsonSchema[T9], schema10: JsonSchema[T10]): JsonSchema[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)]
    Definition Classes
    TuplesSchemas
  27. implicit abstract def tuple11JsonSchema[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4], schema5: JsonSchema[T5], schema6: JsonSchema[T6], schema7: JsonSchema[T7], schema8: JsonSchema[T8], schema9: JsonSchema[T9], schema10: JsonSchema[T10], schema11: JsonSchema[T11]): JsonSchema[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)]
    Definition Classes
    TuplesSchemas
  28. implicit abstract def tuple12JsonSchema[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4], schema5: JsonSchema[T5], schema6: JsonSchema[T6], schema7: JsonSchema[T7], schema8: JsonSchema[T8], schema9: JsonSchema[T9], schema10: JsonSchema[T10], schema11: JsonSchema[T11], schema12: JsonSchema[T12]): JsonSchema[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)]
    Definition Classes
    TuplesSchemas
  29. implicit abstract def tuple13JsonSchema[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4], schema5: JsonSchema[T5], schema6: JsonSchema[T6], schema7: JsonSchema[T7], schema8: JsonSchema[T8], schema9: JsonSchema[T9], schema10: JsonSchema[T10], schema11: JsonSchema[T11], schema12: JsonSchema[T12], schema13: JsonSchema[T13]): JsonSchema[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)]
    Definition Classes
    TuplesSchemas
  30. implicit abstract def tuple14JsonSchema[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4], schema5: JsonSchema[T5], schema6: JsonSchema[T6], schema7: JsonSchema[T7], schema8: JsonSchema[T8], schema9: JsonSchema[T9], schema10: JsonSchema[T10], schema11: JsonSchema[T11], schema12: JsonSchema[T12], schema13: JsonSchema[T13], schema14: JsonSchema[T14]): JsonSchema[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)]
    Definition Classes
    TuplesSchemas
  31. implicit abstract def tuple15JsonSchema[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4], schema5: JsonSchema[T5], schema6: JsonSchema[T6], schema7: JsonSchema[T7], schema8: JsonSchema[T8], schema9: JsonSchema[T9], schema10: JsonSchema[T10], schema11: JsonSchema[T11], schema12: JsonSchema[T12], schema13: JsonSchema[T13], schema14: JsonSchema[T14], schema15: JsonSchema[T15]): JsonSchema[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)]
    Definition Classes
    TuplesSchemas
  32. implicit abstract def tuple16JsonSchema[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4], schema5: JsonSchema[T5], schema6: JsonSchema[T6], schema7: JsonSchema[T7], schema8: JsonSchema[T8], schema9: JsonSchema[T9], schema10: JsonSchema[T10], schema11: JsonSchema[T11], schema12: JsonSchema[T12], schema13: JsonSchema[T13], schema14: JsonSchema[T14], schema15: JsonSchema[T15], schema16: JsonSchema[T16]): JsonSchema[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)]
    Definition Classes
    TuplesSchemas
  33. implicit abstract def tuple17JsonSchema[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4], schema5: JsonSchema[T5], schema6: JsonSchema[T6], schema7: JsonSchema[T7], schema8: JsonSchema[T8], schema9: JsonSchema[T9], schema10: JsonSchema[T10], schema11: JsonSchema[T11], schema12: JsonSchema[T12], schema13: JsonSchema[T13], schema14: JsonSchema[T14], schema15: JsonSchema[T15], schema16: JsonSchema[T16], schema17: JsonSchema[T17]): JsonSchema[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17)]
    Definition Classes
    TuplesSchemas
  34. implicit abstract def tuple18JsonSchema[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4], schema5: JsonSchema[T5], schema6: JsonSchema[T6], schema7: JsonSchema[T7], schema8: JsonSchema[T8], schema9: JsonSchema[T9], schema10: JsonSchema[T10], schema11: JsonSchema[T11], schema12: JsonSchema[T12], schema13: JsonSchema[T13], schema14: JsonSchema[T14], schema15: JsonSchema[T15], schema16: JsonSchema[T16], schema17: JsonSchema[T17], schema18: JsonSchema[T18]): JsonSchema[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18)]
    Definition Classes
    TuplesSchemas
  35. implicit abstract def tuple19JsonSchema[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4], schema5: JsonSchema[T5], schema6: JsonSchema[T6], schema7: JsonSchema[T7], schema8: JsonSchema[T8], schema9: JsonSchema[T9], schema10: JsonSchema[T10], schema11: JsonSchema[T11], schema12: JsonSchema[T12], schema13: JsonSchema[T13], schema14: JsonSchema[T14], schema15: JsonSchema[T15], schema16: JsonSchema[T16], schema17: JsonSchema[T17], schema18: JsonSchema[T18], schema19: JsonSchema[T19]): JsonSchema[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19)]
    Definition Classes
    TuplesSchemas
  36. implicit abstract def tuple20JsonSchema[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4], schema5: JsonSchema[T5], schema6: JsonSchema[T6], schema7: JsonSchema[T7], schema8: JsonSchema[T8], schema9: JsonSchema[T9], schema10: JsonSchema[T10], schema11: JsonSchema[T11], schema12: JsonSchema[T12], schema13: JsonSchema[T13], schema14: JsonSchema[T14], schema15: JsonSchema[T15], schema16: JsonSchema[T16], schema17: JsonSchema[T17], schema18: JsonSchema[T18], schema19: JsonSchema[T19], schema20: JsonSchema[T20]): JsonSchema[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20)]
    Definition Classes
    TuplesSchemas
  37. implicit abstract def tuple21JsonSchema[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4], schema5: JsonSchema[T5], schema6: JsonSchema[T6], schema7: JsonSchema[T7], schema8: JsonSchema[T8], schema9: JsonSchema[T9], schema10: JsonSchema[T10], schema11: JsonSchema[T11], schema12: JsonSchema[T12], schema13: JsonSchema[T13], schema14: JsonSchema[T14], schema15: JsonSchema[T15], schema16: JsonSchema[T16], schema17: JsonSchema[T17], schema18: JsonSchema[T18], schema19: JsonSchema[T19], schema20: JsonSchema[T20], schema21: JsonSchema[T21]): JsonSchema[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21)]
    Definition Classes
    TuplesSchemas
  38. implicit abstract def tuple22JsonSchema[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4], schema5: JsonSchema[T5], schema6: JsonSchema[T6], schema7: JsonSchema[T7], schema8: JsonSchema[T8], schema9: JsonSchema[T9], schema10: JsonSchema[T10], schema11: JsonSchema[T11], schema12: JsonSchema[T12], schema13: JsonSchema[T13], schema14: JsonSchema[T14], schema15: JsonSchema[T15], schema16: JsonSchema[T16], schema17: JsonSchema[T17], schema18: JsonSchema[T18], schema19: JsonSchema[T19], schema20: JsonSchema[T20], schema21: JsonSchema[T21], schema22: JsonSchema[T22]): JsonSchema[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22)]
    Definition Classes
    TuplesSchemas
  39. implicit abstract def tuple2JsonSchema[T1, T2](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2]): JsonSchema[(T1, T2)]
    Definition Classes
    TuplesSchemas
  40. implicit abstract def tuple3JsonSchema[T1, T2, T3](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3]): JsonSchema[(T1, T2, T3)]
    Definition Classes
    TuplesSchemas
  41. implicit abstract def tuple4JsonSchema[T1, T2, T3, T4](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4]): JsonSchema[(T1, T2, T3, T4)]
    Definition Classes
    TuplesSchemas
  42. implicit abstract def tuple5JsonSchema[T1, T2, T3, T4, T5](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4], schema5: JsonSchema[T5]): JsonSchema[(T1, T2, T3, T4, T5)]
    Definition Classes
    TuplesSchemas
  43. implicit abstract def tuple6JsonSchema[T1, T2, T3, T4, T5, T6](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4], schema5: JsonSchema[T5], schema6: JsonSchema[T6]): JsonSchema[(T1, T2, T3, T4, T5, T6)]
    Definition Classes
    TuplesSchemas
  44. implicit abstract def tuple7JsonSchema[T1, T2, T3, T4, T5, T6, T7](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4], schema5: JsonSchema[T5], schema6: JsonSchema[T6], schema7: JsonSchema[T7]): JsonSchema[(T1, T2, T3, T4, T5, T6, T7)]
    Definition Classes
    TuplesSchemas
  45. implicit abstract def tuple8JsonSchema[T1, T2, T3, T4, T5, T6, T7, T8](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4], schema5: JsonSchema[T5], schema6: JsonSchema[T6], schema7: JsonSchema[T7], schema8: JsonSchema[T8]): JsonSchema[(T1, T2, T3, T4, T5, T6, T7, T8)]
    Definition Classes
    TuplesSchemas
  46. implicit abstract def tuple9JsonSchema[T1, T2, T3, T4, T5, T6, T7, T8, T9](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4], schema5: JsonSchema[T5], schema6: JsonSchema[T6], schema7: JsonSchema[T7], schema8: JsonSchema[T8], schema9: JsonSchema[T9]): JsonSchema[(T1, T2, T3, T4, T5, T6, T7, T8, T9)]
    Definition Classes
    TuplesSchemas
  47. abstract def withDescriptionEnum[A](enumeration: Enum[A], description: String): Enum[A]
    Definition Classes
    JsonSchemas
  48. abstract def withDescriptionJsonSchema[A](schema: JsonSchema[A], description: String): JsonSchema[A]
    Definition Classes
    JsonSchemas
  49. abstract def withDescriptionRecord[A](record: Record[A], description: String): Record[A]
    Definition Classes
    JsonSchemas
  50. abstract def withDescriptionTagged[A](tagged: Tagged[A], description: String): Tagged[A]
    Definition Classes
    JsonSchemas
  51. abstract def withDiscriminatorTagged[A](tagged: Tagged[A], discriminatorName: String): Tagged[A]
    Definition Classes
    JsonSchemas
  52. abstract def withExampleEnum[A](enumeration: Enum[A], example: A): Enum[A]
    Definition Classes
    JsonSchemas
  53. abstract def withExampleJsonSchema[A](schema: JsonSchema[A], example: A): JsonSchema[A]
    Definition Classes
    JsonSchemas
  54. abstract def withExampleRecord[A](record: Record[A], example: A): Record[A]
    Definition Classes
    JsonSchemas
  55. abstract def withExampleTagged[A](tagged: Tagged[A], example: A): Tagged[A]
    Definition Classes
    JsonSchemas
  56. abstract def withTitleEnum[A](enumeration: Enum[A], title: String): Enum[A]
    Definition Classes
    JsonSchemas
  57. abstract def withTitleJsonSchema[A](schema: JsonSchema[A], title: String): JsonSchema[A]
    Definition Classes
    JsonSchemas
  58. abstract def withTitleRecord[A](record: Record[A], title: String): Record[A]
    Definition Classes
    JsonSchemas
  59. abstract def withTitleTagged[A](tagged: Tagged[A], title: String): Tagged[A]
    Definition Classes
    JsonSchemas
  60. abstract def zipRecords[A, B](recordA: Record[A], recordB: Record[B])(implicit t: Tupler[A, B]): Record[Out]
    Definition Classes
    JsonSchemas

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def classTagToSchemaName(ct: ClassTag[_]): String

    Compute a schema name (used for documentation) based on a ClassTag.

    Compute a schema name (used for documentation) based on a ClassTag. The provided implementation uses the fully qualified name of the class. This could result in non unique values and mess with documentation.

    You can override this method to use a custom logic.

  6. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native() @HotSpotIntrinsicCandidate()
  7. def defaultDiscriminatorName: String
    Definition Classes
    JsonSchemas
  8. implicit final def defaultStringJsonSchema: JsonSchema[String]
    Definition Classes
    JsonSchemas
  9. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  10. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  11. def genericJsonSchema[A](implicit genJsonSchema: GenericJsonSchema[A]): JsonSchema[A]

    Derives a JsonSchema[A] for a type A.

    Derives a JsonSchema[A] for a type A.

    In a sense, this operation asks shapeless to compute a type level description of a data type (based on HLists and Coproducts) and turns it into a term level description of the data type (based on the JsonSchemas algebra interface)

    See also

    genericRecord for details on how schemas are derived for case classes

    genericTagged for details on how schemas are derived for sealed traits

  12. def genericRecord[A](implicit genRecord: GenericJsonSchema.GenericRecord[A]): Record[A]

    Derives a Record[A] schema for a case class A.

    Derives a Record[A] schema for a case class A.

    The resulting schema:

    • describes a JSON object,
    • has required properties of the same name and type as each case class field,
    • has optional properties of the same name and type as each case class field of type Option[X] for some type X,
    • includes the description possibly attached to each case class field via the @docs annotation,
    • has a name, computed from a ClassTag[A] by the classTagToSchemaName operation.
  13. def genericTagged[A](implicit genTagged: GenericJsonSchema.GenericTagged[A]): Tagged[A]

    Derives a Tagged[A] schema for a sealed trait A.

    Derives a Tagged[A] schema for a sealed trait A.

    The resulting schema:

    • is the alternative of the leaf case classes schemas,
    • the field used for discriminating the alternatives is defined by the @discriminator annotation, if present on the sealed trait definition, or by the defaultDiscriminatorName method otherwise,
    • each alternative is discriminated by the name (not qualified) of the case class.
  14. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  15. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  16. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  17. final def literal[A](value: A)(implicit tpe: JsonSchema[A]): JsonSchema[Unit]
    Definition Classes
    JsonSchemas
  18. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  19. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  20. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  21. def orElseMergeTagged[A, C >: A, B <: C](taggedA: Tagged[A], taggedB: Tagged[B])(implicit arg0: ClassTag[A], arg1: ClassTag[B]): Tagged[C]
    Definition Classes
    JsonSchemas
  22. implicit def shapelessGenericFromTuple[A, T, L <: HList](implicit tup: shapeless.ops.hlist.Tupler.Aux[L, T], genT: Aux[T, L], genA: Aux[A, L]): Aux[T, A]
    Annotations
    @nowarn( "cat=unused-params" )
  23. final def stringEnumeration[A](values: Seq[A])(encode: (A) ⇒ String)(implicit tpe: JsonSchema[String]): Enum[A]
    Definition Classes
    JsonSchemas
  24. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  25. def toString(): String
    Definition Classes
    AnyRef → Any
  26. implicit final lazy val uuidJsonSchema: JsonSchema[UUID]
    Definition Classes
    JsonSchemas
  27. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  28. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  29. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  30. object GenericJsonSchema extends GenericJsonSchemaLowPriority with GenericDiscriminatorNames with GenericSchemaNames with GenericDescriptions with GenericTitles

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] ) @Deprecated @deprecated
    Deprecated

    (Since version ) see corresponding Javadoc for more information.

Inherited from algebra.JsonSchemas

Inherited from TuplesSchemas

Inherited from AnyRef

Inherited from Any

Ungrouped