169 lines
4.7 KiB
JSON
169 lines
4.7 KiB
JSON
|
{
|
||
|
"$schema": "http://json-schema.org/draft-04/hyper-schema#",
|
||
|
"id": "http://json-schema.org/draft-04/hyper-schema#",
|
||
|
"title": "JSON Hyper-Schema",
|
||
|
"allOf": [
|
||
|
{
|
||
|
"$ref": "http://json-schema.org/draft-04/schema#"
|
||
|
}
|
||
|
],
|
||
|
"properties": {
|
||
|
"additionalItems": {
|
||
|
"anyOf": [
|
||
|
{
|
||
|
"type": "boolean"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"additionalProperties": {
|
||
|
"anyOf": [
|
||
|
{
|
||
|
"type": "boolean"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"dependencies": {
|
||
|
"additionalProperties": {
|
||
|
"anyOf": [
|
||
|
{
|
||
|
"$ref": "#"
|
||
|
},
|
||
|
{
|
||
|
"type": "array"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
"items": {
|
||
|
"anyOf": [
|
||
|
{
|
||
|
"$ref": "#"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#/definitions/schemaArray"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"definitions": {
|
||
|
"additionalProperties": {
|
||
|
"$ref": "#"
|
||
|
}
|
||
|
},
|
||
|
"patternProperties": {
|
||
|
"additionalProperties": {
|
||
|
"$ref": "#"
|
||
|
}
|
||
|
},
|
||
|
"properties": {
|
||
|
"additionalProperties": {
|
||
|
"$ref": "#"
|
||
|
}
|
||
|
},
|
||
|
"allOf": {
|
||
|
"$ref": "#/definitions/schemaArray"
|
||
|
},
|
||
|
"anyOf": {
|
||
|
"$ref": "#/definitions/schemaArray"
|
||
|
},
|
||
|
"oneOf": {
|
||
|
"$ref": "#/definitions/schemaArray"
|
||
|
},
|
||
|
"not": {
|
||
|
"$ref": "#"
|
||
|
},
|
||
|
|
||
|
"links": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"$ref": "#/definitions/linkDescription"
|
||
|
}
|
||
|
},
|
||
|
"fragmentResolution": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"media": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"type": {
|
||
|
"description": "A media type, as described in RFC 2046",
|
||
|
"type": "string"
|
||
|
},
|
||
|
"binaryEncoding": {
|
||
|
"description": "A content encoding scheme, as described in RFC 2045",
|
||
|
"type": "string"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"pathStart": {
|
||
|
"description": "Instances' URIs must start with this value for this schema to apply to them",
|
||
|
"type": "string",
|
||
|
"format": "uri"
|
||
|
}
|
||
|
},
|
||
|
"definitions": {
|
||
|
"schemaArray": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"$ref": "#"
|
||
|
}
|
||
|
},
|
||
|
"linkDescription": {
|
||
|
"title": "Link Description Object",
|
||
|
"type": "object",
|
||
|
"required": [ "href", "rel" ],
|
||
|
"properties": {
|
||
|
"href": {
|
||
|
"description": "a URI template, as defined by RFC 6570, with the addition of the $, ( and ) characters for pre-processing",
|
||
|
"type": "string"
|
||
|
},
|
||
|
"rel": {
|
||
|
"description": "relation to the target resource of the link",
|
||
|
"type": "string"
|
||
|
},
|
||
|
"title": {
|
||
|
"description": "a title for the link",
|
||
|
"type": "string"
|
||
|
},
|
||
|
"targetSchema": {
|
||
|
"description": "JSON Schema describing the link target",
|
||
|
"$ref": "#"
|
||
|
},
|
||
|
"mediaType": {
|
||
|
"description": "media type (as defined by RFC 2046) describing the link target",
|
||
|
"type": "string"
|
||
|
},
|
||
|
"method": {
|
||
|
"description": "method for requesting the target of the link (e.g. for HTTP this might be \"GET\" or \"DELETE\")",
|
||
|
"type": "string"
|
||
|
},
|
||
|
"encType": {
|
||
|
"description": "The media type in which to submit data along with the request",
|
||
|
"type": "string",
|
||
|
"default": "application/json"
|
||
|
},
|
||
|
"schema": {
|
||
|
"description": "Schema describing the data to submit along with the request",
|
||
|
"$ref": "#"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"links": [
|
||
|
{
|
||
|
"rel": "self",
|
||
|
"href": "{+id}"
|
||
|
},
|
||
|
{
|
||
|
"rel": "full",
|
||
|
"href": "{+($ref)}"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
|