Interface JsonSchema4

interface JsonSchema4 {
    $ref?: string;
    $schema?: string;
    additionalItems?: boolean | JsonSchema4;
    additionalProperties?: boolean | JsonSchema4;
    allOf?: JsonSchema4[];
    anyOf?: JsonSchema4[];
    const?: any;
    default?: any;
    definitions?: {
        [key: string]: JsonSchema4;
    };
    dependencies?: {
        [key: string]: JsonSchema4 | string[];
    };
    description?: string;
    enum?: any[];
    exclusiveMaximum?: boolean;
    exclusiveMinimum?: boolean;
    format?: string;
    id?: string;
    items?: JsonSchema4 | JsonSchema4[];
    maxItems?: number;
    maxLength?: number;
    maxProperties?: number;
    maximum?: number;
    minItems?: number;
    minLength?: number;
    minProperties?: number;
    minimum?: number;
    multipleOf?: number;
    not?: JsonSchema4;
    oneOf?: JsonSchema4[];
    pattern?: string;
    patternProperties?: {
        [pattern: string]: JsonSchema4;
    };
    properties?: {
        [property: string]: JsonSchema4;
    };
    required?: string[];
    title?: string;
    type?: string | string[];
    uniqueItems?: boolean;
}

Properties

$ref?: string
$schema?: string

It is recommended that the meta-schema is included in the root of any JSON Schema

additionalItems?: boolean | JsonSchema4
additionalProperties?: boolean | JsonSchema4
allOf?: JsonSchema4[]
anyOf?: JsonSchema4[]
const?: any
default?: any

Default json for the object represented by this schema

definitions?: {
    [key: string]: JsonSchema4;
}

Holds simple JSON Schema definitions for referencing from elsewhere.

Type declaration

dependencies?: {
    [key: string]: JsonSchema4 | string[];
}

If the key is present as a property then the string of properties must also be present. If the value is a JSON Schema then it must also be valid for the object if the key is present.

Type declaration

description?: string

Schema description

enum?: any[]

Enumerates the values that this schema can be e.g. {"type": "string", "enum": ["red", "green", "blue"]}

exclusiveMaximum?: boolean

If true maximum must be > value, >= otherwise

exclusiveMinimum?: boolean

If true minimum must be < value, <= otherwise

format?: string
id?: string

This is important because it tells refs where the root of the document is located

maxItems?: number
maxLength?: number
maxProperties?: number
maximum?: number
minItems?: number
minLength?: number
minProperties?: number
minimum?: number
multipleOf?: number

The value must be a multiple of the number (e.g. 10 is a multiple of 5)

The entity being validated must not match this schema

oneOf?: JsonSchema4[]
pattern?: string

This is a regex string that the value must conform to

patternProperties?: {
    [pattern: string]: JsonSchema4;
}

The key of this object is a regex for which properties the schema applies to

Type declaration

properties?: {
    [property: string]: JsonSchema4;
}

The keys that can exist on the object with the json schema that should validate their value

Type declaration

required?: string[]
title?: string

Title of the schema

type?: string | string[]

The basic type of this schema, can be one of [string, number, object, array, boolean, null] or an array of the acceptable types

uniqueItems?: boolean