-
-
Notifications
You must be signed in to change notification settings - Fork 249
/
hyper-schema.json
125 lines (124 loc) · 4.3 KB
/
hyper-schema.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
{
"$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": { "$ref": "#/definitions/subSchema" },
"additionalProperties": { "$ref": "#/definitions/subSchema" },
"dependencies": {
"additionalProperties": {
"anyOf": [
{"$ref": "#/definitions/subSchema"},
{"type": "array"}
]
}
},
"items": {
"anyOf": [
{"$ref": "#/definitions/subSchema"},
{"$ref": "#/definitions/schemaArray"}
]
},
"definitions": {
"additionalProperties": {"$ref": "#/definitions/subSchema"}
},
"patternProperties": {
"additionalProperties": {"$ref": "#/definitions/subSchema"}
},
"properties": {
"additionalProperties": {"$ref": "#/definitions/subSchema"}
},
"allOf": {"$ref": "#/definitions/schemaArray"},
"anyOf": {"$ref": "#/definitions/schemaArray"},
"oneOf": {"$ref": "#/definitions/schemaArray"},
"not": { "$ref": "#/definitions/subSchema" },
"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": {
"subSchema": {
"anyOf": [ {"$ref": "#"}, {"type": "boolean"} ],
"default": true
},
"schemaArray": {
"type": "array",
"items": {"$ref": "#/definitions/subSchema"}
},
"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": "#/definitions/subschema"
},
"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": "/definitions/subschema#"
}
}
}
},
"links": [
{
"rel": "self",
"href": "{+id}"
},
{
"rel": "full",
"href": "{+($ref)}"
}
]
}