# CommonProperties

Common properties which can be used at any schema

    {
      "title": String,
      "description": String,
      "type": String,
      "nullable": Boolean,
      "deprecated": Boolean,
      "readonly": Boolean,
    }

Field | Description
--- | ---
title | String Distinct word which represents this schema
description | String General description of this schema, should not contain any new lines.
type | String JSON type of the property Enum `"object"` `"array"` `"boolean"` `"integer"` `"number"` `"string"`
nullable | Boolean Indicates whether it is possible to use a null value
deprecated | Boolean Indicates whether this schema is deprecated
readonly | Boolean Indicates whether this schema is readonly

# ScalarProperties

    {
      "format": String,
      "enum": EnumValue,
      "default": ScalarValue,
    }

Field | Description
--- | ---
format | String Describes the specific format of this type i.e. date-time or int64
enum | EnumValue
default | ScalarValue

# PropertyValue

Allowed values of an object property

    OneOf: BooleanType | NumberType | StringType | ArrayType | CombinationType | ReferenceType | GenericType

# Properties

Properties of a schema

    Map (PropertyValue)

# ContainerProperties

Properties specific for a container

    {
      "type": String,
    }

Field | Description
--- | ---
type | String Enum `"object"`

# StructProperties

Struct specific properties

    {
      "properties": Properties,
      "required": StringArray,
    }

Field | Description
--- | ---
properties | Properties
required | StringArray

# StructType

A struct contains a fix set of defined properties

    AllOf: CommonProperties & ContainerProperties & StructProperties

# MapProperties

Map specific properties

    {
      "additionalProperties": PropertyValue,
      "maxProperties": Integer,
      "minProperties": Integer,
    }

Field | Description
--- | ---
additionalProperties | PropertyValue
maxProperties | Integer Positive integer value
minProperties | Integer Positive integer value

# MapType

A map contains variable key value entries of a specific type

    AllOf: CommonProperties & ContainerProperties & MapProperties

# ObjectType

An object represents either a struct or map type

    OneOf: StructType | MapType

# ArrayValue

Allowed values of an array item

    OneOf: BooleanType | NumberType | StringType | ReferenceType | GenericType

# ArrayProperties

Array properties

    {
      "type": String,
      "items": ArrayValue,
      "maxItems": Integer,
      "minItems": Integer,
      "uniqueItems": Boolean,
    }

Field | Description
--- | ---
type | String Enum `"array"`
items | ArrayValue
maxItems | Integer Positive integer value
minItems | Integer Positive integer value
uniqueItems | Boolean

# ArrayType

An array contains an ordered list of a specific type

    AllOf: CommonProperties & ArrayProperties

# BooleanProperties

Boolean properties

    {
      "type": String,
    }

Field | Description
--- | ---
type | String Enum `"boolean"`

# BooleanType

Represents a boolean value

    AllOf: CommonProperties & ScalarProperties & BooleanProperties

# NumberProperties

Number properties

    {
      "type": String,
      "multipleOf": Number,
      "maximum": Number,
      "exclusiveMaximum": Boolean,
      "minimum": Number,
      "exclusiveMinimum": Boolean,
    }

Field | Description
--- | ---
type | String Enum `"number"` `"integer"`
multipleOf | Number
maximum | Number
exclusiveMaximum | Boolean
minimum | Number
exclusiveMinimum | Boolean

# NumberType

Represents a number value (contains also integer)

    AllOf: CommonProperties & ScalarProperties & NumberProperties

# StringProperties

String properties

    {
      "type": String,
      "maxLength": Integer,
      "minLength": Integer,
      "pattern": String,
    }

Field | Description
--- | ---
type | String Enum `"string"`
maxLength | Integer Positive integer value
minLength | Integer Positive integer value
pattern | String

# StringType

Represents a string value

    AllOf: CommonProperties & ScalarProperties & StringProperties

# OfValue

Allowed values in a combination schema

    OneOf: NumberType | StringType | BooleanType | ReferenceType

# DiscriminatorMapping

An object to hold mappings between payload values and schema names or references

    Map (String)

# Discriminator

Adds support for polymorphism. The discriminator is an object name that is used to differentiate between other schemas which may satisfy the payload description

    {
      "propertyName": String,
      "mapping": DiscriminatorMapping,
    }

Field | Description
--- | ---
propertyName | String The name of the property in the payload that will hold the discriminator value
mapping | DiscriminatorMapping

# AllOfProperties

An intersection type combines multiple schemas into one

    {
      "description": String,
      "allOf": Array (OfValue),
    }

Field | Description
--- | ---
description | String
allOf | Array (OfValue) Combination values

# OneOfProperties

An union type can contain one of the provided schemas

    {
      "description": String,
      "discriminator": Discriminator,
      "oneOf": Array (OfValue),
    }

Field | Description
--- | ---
description | String
discriminator | Discriminator
oneOf | Array (OfValue) Combination values

# CombinationType

A combination type is either a intersection or union type

    OneOf: AllOfProperties | OneOfProperties

# TemplateProperties

    Map (ReferenceType)

# ReferenceType

Represents a reference to another schema

    {
      "$ref": String,
      "$template": TemplateProperties,
    }

Field | Description
--- | ---
$ref | String Reference to the schema under the definitions key
$template | TemplateProperties Optional concrete schema definitions which replace generic template types

# GenericType

Represents a generic type

    {
      "$generic": String,
    }

Field | Description
--- | ---
$generic | String

# DefinitionValue

Represents a concrete type definition

    OneOf: ObjectType | ArrayType | BooleanType | NumberType | StringType | CombinationType

# Definitions

Schema definitions which can be reused

    Map (DefinitionValue)

# Import

Contains external definitions which are imported. The imported schemas can be used via the namespace

    Map (String)

# EnumValue

A list of possible enumeration values

    OneOf: StringArray | NumberArray

# ScalarValue

Represents a scalar value

    OneOf: String | Number | Boolean

# StringArray

Array string values

    Array (String)

# NumberArray

Array number values

    Array (Number)

# TypeSchema

TypeSchema meta schema which describes a TypeSchema

    {
      "$import": Import,
      "title": String,
      "description": String,
      "type": String,
      "definitions": Definitions,
      "properties": Properties,
      "required": StringArray,
    }

Field | Description
--- | ---
$import | Import
title | String
description | String
type | String Enum `"object"`
definitions | Definitions
properties | Properties
required | StringArray