The Schema object allows the definition of input and output data types.
These types can be objects, but also primitives and arrays.
This object is an extended subset of
JSON Schema Specification Wright Draft 00
(a.k.a. JSON Schema Draft 5).
An additional descriptor for the value represented by this schema.
OAS uses several known formats to define in fine detail the data type being used.
However, to support documentation needs, the format property is an open string-valued property, and can have any value.
Formats such as "email", "uuid", and so on, may be used even though undefined by this specification.
Types that are not accompanied by a format property follow the type definition in the JSON Schema. Tools that do
not recognize a specific formatmay default to the type alone, as if the format is not specified.
This value is not used to fill in missing values during the validation process.
Non-validation tools such as documentation generators or form
generators may use this value to give hints to users about how to use
a value. However, default is typically used to express that if a
value is missing, then the value is semantically the same as if the
value was present with the default value. The value of default
should validate against the schema in which it resides, but that isn't
required.
Represent an object that has additional properties.
The value of additionalProperties is a schema that
will be used to validate any properties in the instance that are not
matched by properties. Setting the
additionalProperties schema to false means no additional
properties will be allowed.
When request bodies or response payloads may be one of a number of different
schemas, a discriminator object can be used to aid in serialization,
deserialization, and validation. The discriminator is a specific object in
a schema which is used to inform the consumer of the specification of an
alternative schema based on the value associated with it.
When using the discriminator, inline schemas will not be considered.
Relevant only for Schema properties definitions. This means that
it may be sent as part of a response but should not be sent as part
of the request. If the property is marked as readOnly and is in the
required list, required only effects the response. A property
may not be marked as both readOnly and writeOnly.
This is relevant only for Schema properties definitions. Therefore, it
it may be sent as part of a response but should not be sent as part
If the property is marked as writeOnly being true and is in the required list,
the required will take effect on the request only. A property may not be marked
as both readOnly and writeOnly being true.
A free-form property to include an example of an instance for this schema.
To represent examples that cannot be naturally represented in JSON or YAML, a string
value can be used to contain the example with escaping where necessary.
Returns the relative, descendent directory path between this module and other.
Throws if no such path exists.
For example, if module mod1 has path /dir1/mod1.pkl, and module mod2 has path /dir1/dir2/dir3/mod2.pkl,
then mod1.relativePathTo(mod2) will return List("dir2", "dir3").
A common use case is to compute the directory path between a template located at the root of a hierarchy
(say rootModule.pkl) and the currently evaluated module (accessible via the module keyword):
The Schema object as defined by the OpenAPI v3.0 Specification.