trait JsonSchemas extends algebra.JsonSchemas
Enriches JsonSchemas with two kinds of operations:
genericJsonSchema[A]
derives theJsonSchema
of an algebraic data typeA
;(field1 :×: field2 :×: …).as[A]
builds a tuple ofRecord
s and maps it to a case classA
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)) }
- Alphabetic
- By Inheritance
- JsonSchemas
- JsonSchemas
- PartialInvariantFunctorSyntax
- InvariantFunctorSyntax
- TuplesSchemas
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
abstract
type
Enum[A] <: JsonSchema[A]
- Definition Classes
- JsonSchemas
-
implicit final
class
EnumOps[A] extends JsonSchemaDocumentationOps[A]
- Definition Classes
- JsonSchemas
-
trait
GenericDescriptions extends AnyRef
Internal machinery for extracting a description of a type
-
trait
GenericDiscriminatorNames extends AnyRef
Internal machinery for deriving the discriminator name of a type
-
trait
GenericJsonSchema[A] extends AnyRef
- Annotations
- @implicitNotFound( ... )
- trait GenericJsonSchemaLowLowPriority extends AnyRef
- trait GenericJsonSchemaLowPriority extends GenericJsonSchemaLowLowPriority
-
trait
GenericSchemaNames extends AnyRef
Internal machinery for deriving the schema name of a type
-
trait
GenericTitles extends AnyRef
Internal machinery for extracting a title of a type
-
implicit
class
InvariantFunctorSyntax[A, F[_]] extends AnyRef
- Definition Classes
- InvariantFunctorSyntax
-
abstract
type
JsonSchema[A]
- Definition Classes
- JsonSchemas
-
sealed
trait
JsonSchemaDocumentationOps[A] extends AnyRef
- Definition Classes
- JsonSchemas
- implicit final class JsonSchemaGenericOps[A] extends AnyRef
-
implicit final
class
JsonSchemaOps[A] extends JsonSchemaDocumentationOps[A]
- Definition Classes
- JsonSchemas
-
implicit
class
PartialInvariantFunctorSyntax[A, F[_]] extends AnyRef
- Definition Classes
- PartialInvariantFunctorSyntax
-
abstract
type
Record[A] <: JsonSchema[A]
- Definition Classes
- JsonSchemas
- implicit final class RecordGenericOps[A] extends AnyRef
-
implicit final
class
RecordOps[A] extends JsonSchemaDocumentationOps[A]
- Definition Classes
- JsonSchemas
-
abstract
type
Tagged[A] <: JsonSchema[A]
- Definition Classes
- JsonSchemas
-
implicit final
class
TaggedOps[A] extends JsonSchemaDocumentationOps[A]
- Definition Classes
- JsonSchemas
Abstract Value Members
-
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
-
implicit abstract
def
bigdecimalJsonSchema: JsonSchema[BigDecimal]
- Definition Classes
- JsonSchemas
-
implicit abstract
def
booleanJsonSchema: JsonSchema[Boolean]
- Definition Classes
- JsonSchemas
-
implicit abstract
def
byteJsonSchema: JsonSchema[Byte]
- Definition Classes
- JsonSchemas
-
abstract
def
choiceTagged[A, B](taggedA: Tagged[A], taggedB: Tagged[B]): Tagged[Either[A, B]]
- Definition Classes
- JsonSchemas
-
implicit abstract
def
doubleJsonSchema: JsonSchema[Double]
- Definition Classes
- JsonSchemas
-
implicit abstract
def
emptyRecord: Record[Unit]
- Definition Classes
- JsonSchemas
-
abstract
def
enumeration[A](values: Seq[A])(tpe: JsonSchema[A]): Enum[A]
- Definition Classes
- JsonSchemas
-
abstract
def
field[A](name: String, documentation: Option[String])(implicit tpe: JsonSchema[A]): Record[A]
- Definition Classes
- JsonSchemas
-
implicit abstract
def
floatJsonSchema: JsonSchema[Float]
- Definition Classes
- JsonSchemas
-
implicit abstract
def
intJsonSchema: JsonSchema[Int]
- Definition Classes
- JsonSchemas
-
implicit abstract
def
jsonSchemaPartialInvFunctor: PartialInvariantFunctor[JsonSchema]
- Definition Classes
- JsonSchemas
-
abstract
def
lazyRecord[A](schema: ⇒ Record[A], name: String): JsonSchema[A]
- Definition Classes
- JsonSchemas
-
abstract
def
lazyTagged[A](schema: ⇒ Tagged[A], name: String): JsonSchema[A]
- Definition Classes
- JsonSchemas
-
implicit abstract
def
longJsonSchema: JsonSchema[Long]
- Definition Classes
- JsonSchemas
-
implicit abstract
def
mapJsonSchema[A](implicit jsonSchema: JsonSchema[A]): JsonSchema[Map[String, A]]
- Definition Classes
- JsonSchemas
-
abstract
def
namedEnum[A](schema: Enum[A], name: String): Enum[A]
- Definition Classes
- JsonSchemas
-
abstract
def
namedRecord[A](schema: Record[A], name: String): Record[A]
- Definition Classes
- JsonSchemas
-
abstract
def
namedTagged[A](schema: Tagged[A], name: String): Tagged[A]
- Definition Classes
- JsonSchemas
-
abstract
def
optField[A](name: String, documentation: Option[String])(implicit tpe: JsonSchema[A]): Record[Option[A]]
- Definition Classes
- JsonSchemas
-
abstract
def
orFallbackToJsonSchema[A, B](schemaA: JsonSchema[A], schemaB: JsonSchema[B]): JsonSchema[Either[A, B]]
- Definition Classes
- JsonSchemas
-
implicit abstract
def
recordPartialInvFunctor: PartialInvariantFunctor[Record]
- Definition Classes
- JsonSchemas
-
abstract
def
stringJsonSchema(format: Option[String]): JsonSchema[String]
- Definition Classes
- JsonSchemas
-
implicit abstract
def
taggedPartialInvFunctor: PartialInvariantFunctor[Tagged]
- Definition Classes
- JsonSchemas
-
abstract
def
taggedRecord[A](recordA: Record[A], tag: String): Tagged[A]
- Definition Classes
- JsonSchemas
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
implicit abstract
def
tuple2JsonSchema[T1, T2](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2]): JsonSchema[(T1, T2)]
- Definition Classes
- TuplesSchemas
-
implicit abstract
def
tuple3JsonSchema[T1, T2, T3](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3]): JsonSchema[(T1, T2, T3)]
- Definition Classes
- TuplesSchemas
-
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
-
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
-
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
-
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
-
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
-
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
-
abstract
def
withDescriptionEnum[A](enumeration: Enum[A], description: String): Enum[A]
- Definition Classes
- JsonSchemas
-
abstract
def
withDescriptionJsonSchema[A](schema: JsonSchema[A], description: String): JsonSchema[A]
- Definition Classes
- JsonSchemas
-
abstract
def
withDescriptionRecord[A](record: Record[A], description: String): Record[A]
- Definition Classes
- JsonSchemas
-
abstract
def
withDescriptionTagged[A](tagged: Tagged[A], description: String): Tagged[A]
- Definition Classes
- JsonSchemas
-
abstract
def
withDiscriminatorTagged[A](tagged: Tagged[A], discriminatorName: String): Tagged[A]
- Definition Classes
- JsonSchemas
-
abstract
def
withExampleEnum[A](enumeration: Enum[A], example: A): Enum[A]
- Definition Classes
- JsonSchemas
-
abstract
def
withExampleJsonSchema[A](schema: JsonSchema[A], example: A): JsonSchema[A]
- Definition Classes
- JsonSchemas
-
abstract
def
withExampleRecord[A](record: Record[A], example: A): Record[A]
- Definition Classes
- JsonSchemas
-
abstract
def
withExampleTagged[A](tagged: Tagged[A], example: A): Tagged[A]
- Definition Classes
- JsonSchemas
-
abstract
def
withTitleEnum[A](enumeration: Enum[A], title: String): Enum[A]
- Definition Classes
- JsonSchemas
-
abstract
def
withTitleJsonSchema[A](schema: JsonSchema[A], title: String): JsonSchema[A]
- Definition Classes
- JsonSchemas
-
abstract
def
withTitleRecord[A](record: Record[A], title: String): Record[A]
- Definition Classes
- JsonSchemas
-
abstract
def
withTitleTagged[A](tagged: Tagged[A], title: String): Tagged[A]
- Definition Classes
- JsonSchemas
-
abstract
def
zipRecords[A, B](recordA: Record[A], recordB: Record[B])(implicit t: Tupler[A, B]): Record[Out]
- Definition Classes
- JsonSchemas
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
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.
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @HotSpotIntrinsicCandidate()
-
def
defaultDiscriminatorName: String
- Definition Classes
- JsonSchemas
-
implicit final
def
defaultStringJsonSchema: JsonSchema[String]
- Definition Classes
- JsonSchemas
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
genericJsonSchema[A](implicit genJsonSchema: GenericJsonSchema[A]): JsonSchema[A]
Derives a
JsonSchema[A]
for a typeA
.Derives a
JsonSchema[A]
for a typeA
.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
-
def
genericRecord[A](implicit genRecord: GenericJsonSchema.GenericRecord[A]): Record[A]
Derives a
Record[A]
schema for a case classA
.Derives a
Record[A]
schema for a case classA
.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 typeX
, - 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.
-
def
genericTagged[A](implicit genTagged: GenericJsonSchema.GenericTagged[A]): Tagged[A]
Derives a
Tagged[A]
schema for a sealed traitA
.Derives a
Tagged[A]
schema for a sealed traitA
.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.
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
literal[A](value: A)(implicit tpe: JsonSchema[A]): JsonSchema[Unit]
- Definition Classes
- JsonSchemas
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
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
-
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" )
-
final
def
stringEnumeration[A](values: Seq[A])(encode: (A) ⇒ String)(implicit tpe: JsonSchema[String]): Enum[A]
- Definition Classes
- JsonSchemas
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
implicit final
lazy val
uuidJsonSchema: JsonSchema[UUID]
- Definition Classes
- JsonSchemas
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
- object GenericJsonSchema extends GenericJsonSchemaLowPriority with GenericDiscriminatorNames with GenericSchemaNames with GenericDescriptions with GenericTitles