defmodule ExJsonSchema.Schema.Draft7 do
@schema %{
"$schema" => "http://json-schema.org/draft-07/schema#",
"$id" => "http://json-schema.org/draft-07/schema#",
"title" => "Core schema meta-schema",
"definitions" => %{
"schemaArray" => %{
"type" => "array",
"minItems" => 1,
"items" => %{"$ref" => "#"}
},
"nonNegativeInteger" => %{
"type" => "integer",
"minimum" => 0
},
"nonNegativeIntegerDefault0" => %{
"allOf" => [
%{"$ref" => "#/definitions/nonNegativeInteger"},
%{"default" => 0}
]
},
"simpleTypes" => %{
"enum" => [
"array",
"boolean",
"integer",
"null",
"number",
"object",
"string"
]
},
"stringArray" => %{
"type" => "array",
"items" => %{"type" => "string"},
"uniqueItems" => true,
"default" => []
}
},
"type" => ["object", "boolean"],
"properties" => %{
"$id" => %{
"type" => "string",
"format" => "uri-reference"
},
"$schema" => %{
"type" => "string",
"format" => "uri"
},
"$ref" => %{
"type" => "string",
"format" => "uri-reference"
},
"$comment" => %{
"type" => "string"
},
"title" => %{
"type" => "string"
},
"description" => %{
"type" => "string"
},
"default" => true,
"readOnly" => %{
"type" => "boolean",
"default" => false
},
"examples" => %{
"type" => "array",
"items" => true
},
"multipleOf" => %{
"type" => "number",
"exclusiveMinimum" => 0
},
"maximum" => %{
"type" => "number"
},
"exclusiveMaximum" => %{
"type" => "number"
},
"minimum" => %{
"type" => "number"
},
"exclusiveMinimum" => %{
"type" => "number"
},
"maxLength" => %{"$ref" => "#/definitions/nonNegativeInteger"},
"minLength" => %{"$ref" => "#/definitions/nonNegativeIntegerDefault0"},
"pattern" => %{
"type" => "string",
"format" => "regex"
},
"additionalItems" => %{"$ref" => "#"},
"items" => %{
"anyOf" => [
%{"$ref" => "#"},
%{"$ref" => "#/definitions/schemaArray"}
],
"default" => true
},
"maxItems" => %{"$ref" => "#/definitions/nonNegativeInteger"},
"minItems" => %{"$ref" => "#/definitions/nonNegativeIntegerDefault0"},
"uniqueItems" => %{
"type" => "boolean",
"default" => false
},
"contains" => %{"$ref" => "#"},
"maxProperties" => %{"$ref" => "#/definitions/nonNegativeInteger"},
"minProperties" => %{"$ref" => "#/definitions/nonNegativeIntegerDefault0"},
"required" => %{"$ref" => "#/definitions/stringArray"},
"additionalProperties" => %{"$ref" => "#"},
"definitions" => %{
"type" => "object",
"additionalProperties" => %{"$ref" => "#"},
"default" => %{}
},
"properties" => %{
"type" => "object",
"additionalProperties" => %{"$ref" => "#"},
"default" => %{}
},
"patternProperties" => %{
"type" => "object",
"additionalProperties" => %{"$ref" => "#"},
"propertyNames" => %{"format" => "regex"},
"default" => %{}
},
"dependencies" => %{
"type" => "object",
"additionalProperties" => %{
"anyOf" => [
%{"$ref" => "#"},
%{"$ref" => "#/definitions/stringArray"}
]
}
},
"propertyNames" => %{"$ref" => "#"},
"const" => true,
"enum" => %{
"type" => "array",
"items" => true,
"minItems" => 1,
"uniqueItems" => true
},
"type" => %{
"anyOf" => [
%{"$ref" => "#/definitions/simpleTypes"},
%{
"type" => "array",
"items" => %{"$ref" => "#/definitions/simpleTypes"},
"minItems" => 1,
"uniqueItems" => true
}
]
},
"format" => %{"type" => "string"},
"contentMediaType" => %{"type" => "string"},
"contentEncoding" => %{"type" => "string"},
"if" => %{"$ref" => "#"},
"then" => %{"$ref" => "#"},
"else" => %{"$ref" => "#"},
"allOf" => %{"$ref" => "#/definitions/schemaArray"},
"anyOf" => %{"$ref" => "#/definitions/schemaArray"},
"oneOf" => %{"$ref" => "#/definitions/schemaArray"},
"not" => %{"$ref" => "#"}
},
"default" => true
}
@spec schema() :: ExJsonSchema.data()
def schema, do: @schema
@spec version() :: integer()
def version, do: 7
end