NoDocsJsonSchemas
Helper trait that can be mixed into JsonSchemas to implement (as no-ops) the documentation related methods. This is useful for implementing any non-documentation inteprereters.
Attributes
- Graph
-
- Supertypes
-
trait JsonSchemastrait InvariantFunctorSyntaxtrait TuplesSchemasclass Objecttrait Matchableclass AnyShow all
Members list
Type members
Inherited classlikes
Attributes
- Inherited from:
- JsonSchemas
- Supertypes
Extension methods for values of type F[A]
for which there is an implicit InvariantFunctor[F]
instance.
Extension methods for values of type F[A]
for which there is an implicit InvariantFunctor[F]
instance.
Attributes
- Inherited from:
- InvariantFunctorSyntax
- Supertypes
-
class Objecttrait Matchableclass Any
Documentation related methods for annotating schemas. Encoder and decoder interpreters ignore this information.
Documentation related methods for annotating schemas. Encoder and decoder interpreters ignore this information.
Attributes
- Inherited from:
- JsonSchemas
- Supertypes
-
class Objecttrait Matchableclass Any
- Known subtypes
Implicit methods for values of type JsonSchema
Attributes
- Inherited from:
- PartialInvariantFunctorSyntax
- Supertypes
-
class Objecttrait Matchableclass Any
Implicit methods for values of type Record
Attributes
- Inherited from:
- JsonSchemas
- Supertypes
Inherited types
A more specific type of JSON schema for enumerations, i.e. types that have a specific set of valid values
A more specific type of JSON schema for enumerations, i.e. types that have a specific set of valid values
Values of type Enum[A]
can be constructed by the operations:
Attributes
- Note
-
This type has implicit methods provided by the EnumOps class.
- Inherited from:
- JsonSchemas
The JSON schema of a type A
The JSON schema of a type A
JSON schemas can be interpreted as encoders serializing values of type A
into JSON, decoders de-serializing JSON documents into values of type A
, or documentation rendering the underlying JSON schema.
The JsonSchemas
trait provides implicit definitions of JsonSchema[A]
for basic types (Int
, Double
, String
, etc.), and operations such as field, optField, or enumeration, which construct more complex JSON schemas.
Attributes
- Note
-
This type has implicit methods provided by the PartialInvariantFunctorSyntax, InvariantFunctorSyntax, and JsonSchemaOps classes.
- Inherited from:
- JsonSchemas
A more specific type of JSON schema for record types (case classes)
A more specific type of JSON schema for record types (case classes)
Values of type Record[A]
can be constructed with the operations field and optField.
Attributes
- Note
-
This type has implicit methods provided by the PartialInvariantFunctorSyntax, InvariantFunctorSyntax, and RecordOps classes.
- Inherited from:
- JsonSchemas
A more specific type of JSON schema for sum types (sealed traits)
A more specific type of JSON schema for sum types (sealed traits)
“Tagged” schemas include the name of the type A
as an additional discriminator field. By default, the name of the discriminator field is defined by the operation defaultDiscriminatorName but it can be customized by calling the operation withDiscriminator
.
Values of type Tagged[A]
can be constructed by calling the operation tagged
on a Record[A]
.
Attributes
- Note
-
This type has implicit methods provided by the PartialInvariantFunctorSyntax, InvariantFunctorSyntax, and TaggedOps classes.
- Inherited from:
- JsonSchemas
Value members
Concrete methods
Annotates the enumeration JSON schema with a name
Annotates the enumeration JSON schema with a name
Attributes
Annotates the record JSON schema with a name
Annotates the record JSON schema with a name
Attributes
Annotates the tagged JSON schema with a name
Annotates the tagged JSON schema with a name
Attributes
Add a description to the given enumeration JSON schema
Add a description to the given enumeration JSON schema
Attributes
Add a description to the given JSON schema
Add a description to the given JSON schema
Attributes
Add a description to the given record JSON schema
Add a description to the given record JSON schema
Attributes
Add a description to the given tagged JSON schema
Add a description to the given tagged JSON schema
Attributes
Include an example value within the given enumeration JSON schema
Include an example value within the given enumeration JSON schema
Attributes
Include an example value within the given JSON schema
Include an example value within the given JSON schema
Attributes
Include an example value within the given record JSON schema
Include an example value within the given record JSON schema
Attributes
Include an example value within the given tagged JSON schema
Include an example value within the given tagged JSON schema
Attributes
Add a title to the given enumeration JSON schema
Add a title to the given enumeration JSON schema
Attributes
Add a title to the given schema
Add a title to the given schema
Attributes
Add a title to the given record JSON schema
Add a title to the given record JSON schema
Attributes
Add a title to the given tagged JSON schema
Add a title to the given tagged JSON schema
Attributes
Inherited methods
A JSON schema for type BigDecimal
where certain properties, such as minimum, maximum, etc. are set.
A JSON schema for type BigDecimal
where certain properties, such as minimum, maximum, etc. are set.
Attributes
- Inherited from:
- JsonSchemas
The JSON schema of a coproduct made of the given alternative tagged records
The JSON schema of a coproduct made of the given alternative tagged records
Attributes
- Inherited from:
- JsonSchemas
Default discriminator field name for sum types.
Default discriminator field name for sum types.
It defaults to "type", but you can override it twofold:
- by overriding this field you can change default discriminator name algebra-wide
- by using
withDiscriminator
you can specify discriminator field name for specific sum type
Attributes
- Inherited from:
- JsonSchemas
A JSON schema for type Double
where certain properties, such as minimum, maximum, etc. are set.
A JSON schema for type Double
where certain properties, such as minimum, maximum, etc. are set.
Attributes
- Inherited from:
- JsonSchemas
Promotes a schema to an enumeration.
Promotes a schema to an enumeration.
- Decoder interpreters fail if the input value does not match the encoded values of any of the possible values,
- Encoder interpreters never fail, even if the value is not contained in the set of possible values,
- Documentation interpreters enrich the JSON schema with an
enum
property listing the possible values.
Attributes
- Inherited from:
- JsonSchemas
The JSON schema of a record with a single field name
of type A
The JSON schema of a record with a single field name
of type A
- Encoder interpreters produce a JSON object with one property of the given
name
, - Decoder interpreters fail if the JSON value is not a JSON object, or if it doesn’t contain the
name
property, or if the property has an invalid value (according to itstpe
), - Documentation interpreters produce the JSON schema of a JSON object schema with one required property of the given
name
.
Attributes
- Inherited from:
- JsonSchemas
A JSON schema for type BigDecimal
where certain properties, such as minimum, maximum, etc. are set.
A JSON schema for type BigDecimal
where certain properties, such as minimum, maximum, etc. are set.
Attributes
- Inherited from:
- JsonSchemas
Convenient constructor for enumerations represented by int values.
Convenient constructor for enumerations represented by int values.
Attributes
- Inherited from:
- JsonSchemas
A JSON schema for type Int
where certain properties, such as minimum, maximum, etc. are set.
A JSON schema for type Int
where certain properties, such as minimum, maximum, etc. are set.
Attributes
- Inherited from:
- JsonSchemas
Captures a lazy reference to a JSON schema currently being defined:
Captures a lazy reference to a JSON schema currently being defined:
case class Recursive(next: Option[Recursive])
val recursiveSchema: Record[Recursive] =
lazyRecord("Rec") {
optField("next")(recursiveSchema)
}.xmap(Recursive(_))(_.next)
Interpreters should return a JsonSchema value that does not evaluate the given schema
unless it is effectively used.
Value parameters
- name
-
A unique name identifying the schema
- schema
-
The record JSON schema whose evaluation should be delayed
Attributes
- Inherited from:
- JsonSchemas
A lazy JSON schema that can references schemas currently being defined:
A lazy JSON schema that can references schemas currently being defined:
case class Recursive(next: Option[Recursive])
val recursiveSchema: JsonSchema[Recursive] = lazySchema("Rec")(
optField("next")(recursiveSchema)
).xmap(Recursive)(_.next)
Interpreters should return a JsonSchema value that does not evaluate the given schema
unless it is effectively used.
Value parameters
- name
-
A unique name identifying the schema
- schema
-
The record JSON schema whose evaluation should be delayed
Attributes
- Inherited from:
- JsonSchemas
Captures a lazy reference to a JSON schema currently being defined.
Captures a lazy reference to a JSON schema currently being defined.
Interpreters should return a JsonSchema value that does not evaluate the given schema
unless it is effectively used.
Value parameters
- name
-
A unique name identifying the schema
- schema
-
The tagged JSON schema whose evaluation should be delayed
Attributes
- Inherited from:
- JsonSchemas
A schema for a statically known value.
A schema for a statically known value.
- Decoder interpreters first try to decode incoming values with the given
tpe
schema, and then check that it is equal to the givenvalue
, - Encoder interpreters always produce the given
value
, encoded according totpe
, - Documentation interpreters enrich the JSON schema with a
const
property documenting its only possible value (or anenum
property with a single item).
This is useful to model schemas of objects containing extra fields that are absent from their Scala representation. For example, here is a schema for a GeoJSON point:
case class Point(lon: Double, lat: Double)
val pointSchema = (
field("type")(literal("Point")) zip
field[(Double, Double)]("coordinates")
).xmap(Point.tupled)(p => (p.lon, p.lat))
Attributes
- Inherited from:
- JsonSchemas
A JSON schema for type Long
where certain properties, such as minimum, maximum, etc. are set.
A JSON schema for type Long
where certain properties, such as minimum, maximum, etc. are set.
Attributes
- Inherited from:
- JsonSchemas
The JSON schema of a record with a single optional field name
of type A
The JSON schema of a record with a single optional field name
of type A
- Encoder interpreters can omit the field or emit a field with a
null
value, - Decoder interpreters successfully decode
None
if the field is absent or if it is present but has the valuenull
. They fail if the field is present but contains an invalid value, - Documentation interpreters produce the JSON schema of a JSON object with an optional property of the given
name
.
Attributes
- Inherited from:
- JsonSchemas
The JSON schema of a record with a single optional field with the given name
The JSON schema of a record with a single optional field with the given name
- Decoders fallback to the
defaultValue
if the field is absent from the decoded JSON object. They fail if the field is present but has an invalid value, - Encoders must emit the field if it is not
defaultValue
, but can choose to omit it when it has thedefaultValue
- Documentation interpreters produce the JSON schema of a JSON object with an optional property of the given
name
.
Attributes
- Inherited from:
- JsonSchemas
The JSON schema of a coproduct that share the same parent type and thus can be widened to that parent type
The JSON schema of a coproduct that share the same parent type and thus can be widened to that parent type
Attributes
- Inherited from:
- JsonSchemas
A schema that can be either schemaA
or schemaB
.
A schema that can be either schemaA
or schemaB
.
Documentation interpreter produce a oneOf
JSON schema. Encoder interpreters forward to either schemaA
or schemaB
. Decoder interpreters first try to decode with schemaA
, and fallback to schemaB
in case of failure.
The difference between this operation and the operation orElse
on “tagged” schemas is that this operation does not rely on a discriminator field between the alternative schemas. As a consequence, decoding is slower than with “tagged” schemas and provides less precise error messages.
Attributes
- Note
-
Be careful to use ''disjoint'' schemas for
A
andB
(none must be a subtype of the other), otherwise, a value of typeB
might also be successfully decoded as a value of typeA
, and this could have surprising consequences. - Inherited from:
- JsonSchemas
The JSON schema of a record with a single field name
of type A
with fine control over presence and null
The JSON schema of a record with a single field name
of type A
with fine control over presence and null
- Encoder interpreters may produce a JSON object with one property of the given
name
, which can be set to thenull
value, - Decoder interpreters successfully decode
Absent
if the field is absent,Null
if it is present but has the valuenull
. They fail if the field is present but contains an invalid value, - Documentation interpreters produce the JSON schema of a JSON object with an optional property of the given
name
.
Attributes
- Inherited from:
- JsonSchemas
Convenient constructor for enumerations represented by string values.
Convenient constructor for enumerations represented by string values.
Attributes
- Inherited from:
- JsonSchemas
A JSON schema for type String
.
A JSON schema for type String
.
Value parameters
- format
-
An additional semantic information about the underlying format of the string
Attributes
- See also
- Inherited from:
- JsonSchemas
Tags a schema for type A
with the given tag name
Allows to specify name of discriminator field for sum type
The JSON schema of a record merging the fields of the two given records
The JSON schema of a record merging the fields of the two given records
Attributes
- Inherited from:
- JsonSchemas
Deprecated and Inherited methods
Captures a lazy reference to a JSON schema currently being defined:
Captures a lazy reference to a JSON schema currently being defined:
case class Recursive(next: Option[Recursive])
val recursiveSchema: Record[Recursive] = (
optField("next")(lazyRecord(recursiveSchema, "Rec"))
).xmap(Recursive)(_.next)
Interpreters should return a JsonSchema value that does not evaluate the given schema
unless it is effectively used.
Value parameters
- name
-
A unique name identifying the schema
- schema
-
The record JSON schema whose evaluation should be delayed
Attributes
- Deprecated
- true
- Inherited from:
- JsonSchemas
Captures a lazy reference to a JSON schema currently being defined.
Captures a lazy reference to a JSON schema currently being defined.
Interpreters should return a JsonSchema value that does not evaluate the given schema
unless it is effectively used.
Value parameters
- name
-
A unique name identifying the schema
- schema
-
The tagged JSON schema whose evaluation should be delayed
Attributes
- Deprecated
- true
- Inherited from:
- JsonSchemas
Implicits
Inherited implicits
Attributes
- Inherited from:
- JsonSchemas
Extension methods for values of type F[A]
for which there is an implicit InvariantFunctor[F]
instance.
Extension methods for values of type F[A]
for which there is an implicit InvariantFunctor[F]
instance.
Attributes
- Inherited from:
- InvariantFunctorSyntax
Implicit methods for values of type JsonSchema
Attributes
- Inherited from:
- PartialInvariantFunctorSyntax
Implicit methods for values of type Record
Attributes
- Inherited from:
- JsonSchemas
A JSON schema for sequences
A JSON schema for type BigDecimal
A JSON schema for type Boolean
A JSON schema for type Byte
A JSON schema for type String
A JSON schema for type Double
An ISO 8601 duration
The JSON schema of a record with no fields
The JSON schema of a record with no fields
- Encoder interpreters produce an empty JSON object,
- Decoder interpreters fail if the JSON value is not a JSON object,
- Documentation interpreters produce the JSON schema of a JSON object schema with no properties.
Attributes
- Inherited from:
- JsonSchemas
A JSON schema for type Float
An ISO 8601 date-time in UTC
A JSON schema for type Int
Provides xmap
and xmapPartial
operations.
Provides xmap
and xmapPartial
operations.
Attributes
- See also
-
PartialInvariantFunctorSyntax and InvariantFunctorSyntax
- Inherited from:
- JsonSchemas
A JSON schema for type Long
A JSON schema for maps with string keys
An ISO8601 date-time
Provides xmap
and xmapPartial
operations.
Provides xmap
and xmapPartial
operations.
Attributes
- See also
-
PartialInvariantFunctorSyntax and InvariantFunctorSyntax
- Inherited from:
- JsonSchemas
Provides xmap
and xmapPartial
operations.
Provides xmap
and xmapPartial
operations.
Attributes
- See also
-
PartialInvariantFunctorSyntax and InvariantFunctorSyntax
- Inherited from:
- JsonSchemas
A JSON schema for a tuple of 10 elements.
A JSON schema for a tuple of 10 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
Attributes
- Inherited from:
- TuplesSchemas
A JSON schema for a tuple of 11 elements.
A JSON schema for a tuple of 11 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
Attributes
- Inherited from:
- TuplesSchemas
A JSON schema for a tuple of 12 elements.
A JSON schema for a tuple of 12 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
Attributes
- Inherited from:
- TuplesSchemas
A JSON schema for a tuple of 13 elements.
A JSON schema for a tuple of 13 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
Attributes
- Inherited from:
- TuplesSchemas
A JSON schema for a tuple of 14 elements.
A JSON schema for a tuple of 14 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
Attributes
- Inherited from:
- TuplesSchemas
A JSON schema for a tuple of 15 elements.
A JSON schema for a tuple of 15 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
Attributes
- Inherited from:
- TuplesSchemas
A JSON schema for a tuple of 16 elements.
A JSON schema for a tuple of 16 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
Attributes
- Inherited from:
- TuplesSchemas
A JSON schema for a tuple of 17 elements.
A JSON schema for a tuple of 17 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
Attributes
- Inherited from:
- TuplesSchemas
A JSON schema for a tuple of 18 elements.
A JSON schema for a tuple of 18 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
Attributes
- Inherited from:
- TuplesSchemas
A JSON schema for a tuple of 19 elements.
A JSON schema for a tuple of 19 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
Attributes
- Inherited from:
- TuplesSchemas
A JSON schema for a tuple of 20 elements.
A JSON schema for a tuple of 20 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
Attributes
- Inherited from:
- TuplesSchemas
A JSON schema for a tuple of 21 elements.
A JSON schema for a tuple of 21 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
Attributes
- Inherited from:
- TuplesSchemas
A JSON schema for a tuple of 22 elements.
A JSON schema for a tuple of 22 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
Attributes
- Inherited from:
- TuplesSchemas
A JSON schema for a tuple of 2 elements.
A JSON schema for a tuple of 2 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
Attributes
- Inherited from:
- TuplesSchemas
A JSON schema for a tuple of 3 elements.
A JSON schema for a tuple of 3 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
Attributes
- Inherited from:
- TuplesSchemas
A JSON schema for a tuple of 4 elements.
A JSON schema for a tuple of 4 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
Attributes
- Inherited from:
- TuplesSchemas
A JSON schema for a tuple of 5 elements.
A JSON schema for a tuple of 5 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
Attributes
- Inherited from:
- TuplesSchemas
A JSON schema for a tuple of 6 elements.
A JSON schema for a tuple of 6 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
Attributes
- Inherited from:
- TuplesSchemas
A JSON schema for a tuple of 7 elements.
A JSON schema for a tuple of 7 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
Attributes
- Inherited from:
- TuplesSchemas
A JSON schema for a tuple of 8 elements.
A JSON schema for a tuple of 8 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
Attributes
- Inherited from:
- TuplesSchemas
A JSON schema for a tuple of 9 elements.
A JSON schema for a tuple of 9 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
Attributes
- Inherited from:
- TuplesSchemas
A JSON schema for type UUID