blob: a8b888ae0f1d250df8d49be178aebb4f6626148b [file] [log] [blame]
Marcel van Lohuizenf4d483e2019-05-20 08:03:10 -04001{
2 "openapi": "3.0.0",
Marcel van Lohuizen4de93e12019-07-02 20:04:10 +02003 "info": {},
Marcel van Lohuizenf4d483e2019-05-20 08:03:10 -04004 "components": {
Marcel van Lohuizen0a975332019-07-04 10:43:25 +02005 "schemas": {
Marcel van Lohuizenf4d483e2019-05-20 08:03:10 -04006 "MyMessage": {
7 "description": "MyMessage is my message.",
Marcel van Lohuizen9fad62f2019-08-13 01:39:10 +02008 "type": "object",
9 "required": [
10 "foo",
11 "bar"
12 ],
13 "properties": {
14 "port": {
Marcel van Lohuizenf4d483e2019-05-20 08:03:10 -040015 "type": "object",
Marcel van Lohuizen9fad62f2019-08-13 01:39:10 +020016 "$ref": "#/components/schemas/Port"
17 },
18 "foo": {
19 "type": "number",
20 "allOf": [
21 {
22 "$ref": "#/components/schemas/Int32"
23 },
24 {
25 "exclusiveMinimum": 10,
26 "exclusiveMaximum": 1000
27 }
28 ]
29 },
30 "bar": {
31 "type": "array",
32 "items": {
33 "type": "string",
34 "format": "string"
35 }
36 }
37 },
38 "oneOf": [
39 {
Marcel van Lohuizenf4d483e2019-05-20 08:03:10 -040040 "required": [
Marcel van Lohuizen9fad62f2019-08-13 01:39:10 +020041 "a"
Marcel van Lohuizenf4d483e2019-05-20 08:03:10 -040042 ],
43 "properties": {
Marcel van Lohuizen9fad62f2019-08-13 01:39:10 +020044 "a": {
45 "description": "Field a.",
46 "type": "integer",
47 "enum": [
48 1
Marcel van Lohuizenf4d483e2019-05-20 08:03:10 -040049 ]
Marcel van Lohuizenf4d483e2019-05-20 08:03:10 -040050 }
51 }
52 },
53 {
Marcel van Lohuizen9fad62f2019-08-13 01:39:10 +020054 "required": [
55 "b"
56 ],
57 "properties": {
58 "b": {
59 "type": "string",
60 "format": "string"
Marcel van Lohuizenf4d483e2019-05-20 08:03:10 -040061 }
Marcel van Lohuizen9fad62f2019-08-13 01:39:10 +020062 }
Marcel van Lohuizenf4d483e2019-05-20 08:03:10 -040063 }
64 ]
65 },
66 "Port": {
67 "type": "object",
68 "required": [
69 "port",
70 "obj"
71 ],
72 "properties": {
Marcel van Lohuizenc89f5a62019-07-04 10:41:18 +020073 "port": {
74 "type": "integer"
75 },
Marcel van Lohuizenf4d483e2019-05-20 08:03:10 -040076 "obj": {
77 "type": "array",
78 "items": {
79 "type": "integer"
Marcel van Lohuizenfdd176c2019-06-25 18:12:26 +020080 }
Marcel van Lohuizenf4d483e2019-05-20 08:03:10 -040081 }
82 }
83 },
84 "Int32": {
85 "type": "integer",
Marcel van Lohuizena0d2a402019-06-29 14:07:41 +020086 "format": "int32"
Marcel van Lohuizenf4d483e2019-05-20 08:03:10 -040087 },
88 "YourMessage": {
Marcel van Lohuizen9fad62f2019-08-13 01:39:10 +020089 "type": "object",
Marcel van Lohuizenfdd176c2019-06-25 18:12:26 +020090 "oneOf": [
Marcel van Lohuizenf4d483e2019-05-20 08:03:10 -040091 {
Marcel van Lohuizenf4d483e2019-05-20 08:03:10 -040092 "required": [
93 "b"
94 ],
95 "properties": {
96 "a": {
Marcel van Lohuizena0d2a402019-06-29 14:07:41 +020097 "type": "string",
98 "format": "string"
Marcel van Lohuizenf4d483e2019-05-20 08:03:10 -040099 },
100 "b": {
Marcel van Lohuizena0d2a402019-06-29 14:07:41 +0200101 "type": "string",
102 "format": "string"
Marcel van Lohuizenf4d483e2019-05-20 08:03:10 -0400103 }
104 }
105 },
106 {
Marcel van Lohuizenf4d483e2019-05-20 08:03:10 -0400107 "required": [
108 "b"
109 ],
110 "properties": {
111 "a": {
Marcel van Lohuizena0d2a402019-06-29 14:07:41 +0200112 "type": "string",
113 "format": "string"
Marcel van Lohuizenf4d483e2019-05-20 08:03:10 -0400114 },
115 "b": {
116 "type": "number"
117 }
118 }
119 }
120 ]
121 },
122 "YourMessage2": {
Marcel van Lohuizen9fad62f2019-08-13 01:39:10 +0200123 "type": "object",
Marcel van Lohuizenf4d483e2019-05-20 08:03:10 -0400124 "allOf": [
125 {
Marcel van Lohuizenfdd176c2019-06-25 18:12:26 +0200126 "oneOf": [
Marcel van Lohuizenf4d483e2019-05-20 08:03:10 -0400127 {
Marcel van Lohuizenf4d483e2019-05-20 08:03:10 -0400128 "required": [
129 "a"
130 ],
131 "properties": {
132 "a": {
133 "type": "number"
134 }
135 }
136 },
137 {
Marcel van Lohuizenf4d483e2019-05-20 08:03:10 -0400138 "required": [
139 "b"
140 ],
141 "properties": {
142 "b": {
143 "type": "number"
144 }
145 }
146 }
147 ]
148 },
149 {
Marcel van Lohuizenfdd176c2019-06-25 18:12:26 +0200150 "oneOf": [
Marcel van Lohuizenf4d483e2019-05-20 08:03:10 -0400151 {
Marcel van Lohuizenf4d483e2019-05-20 08:03:10 -0400152 "required": [
153 "c"
154 ],
155 "properties": {
156 "c": {
157 "type": "number"
158 }
159 }
160 },
161 {
Marcel van Lohuizenf4d483e2019-05-20 08:03:10 -0400162 "required": [
163 "d"
164 ],
165 "properties": {
166 "d": {
167 "type": "number"
168 }
169 }
170 }
171 ]
172 },
173 {
Marcel van Lohuizenfdd176c2019-06-25 18:12:26 +0200174 "oneOf": [
Marcel van Lohuizenf4d483e2019-05-20 08:03:10 -0400175 {
Marcel van Lohuizenf4d483e2019-05-20 08:03:10 -0400176 "required": [
177 "e"
178 ],
179 "properties": {
180 "e": {
181 "type": "number"
182 }
183 }
184 },
185 {
Marcel van Lohuizenf4d483e2019-05-20 08:03:10 -0400186 "required": [
187 "f"
188 ],
189 "properties": {
190 "f": {
191 "type": "number"
192 }
193 }
194 }
195 ]
196 }
197 ]
198 },
199 "Msg2": {
Marcel van Lohuizen9fad62f2019-08-13 01:39:10 +0200200 "type": "object",
Marcel van Lohuizenfdd176c2019-06-25 18:12:26 +0200201 "oneOf": [
Marcel van Lohuizenf4d483e2019-05-20 08:03:10 -0400202 {
Marcel van Lohuizenf4d483e2019-05-20 08:03:10 -0400203 "required": [
204 "b"
205 ],
206 "properties": {
207 "b": {
208 "type": "number"
209 }
210 }
211 },
212 {
Marcel van Lohuizenf4d483e2019-05-20 08:03:10 -0400213 "required": [
214 "a"
215 ],
216 "properties": {
217 "a": {
Marcel van Lohuizena0d2a402019-06-29 14:07:41 +0200218 "type": "string",
219 "format": "string"
Marcel van Lohuizenf4d483e2019-05-20 08:03:10 -0400220 }
221 }
222 }
223 ]
224 },
225 "Enum": {
Marcel van Lohuizen9fad62f2019-08-13 01:39:10 +0200226 "type": "string",
Marcel van Lohuizenf4d483e2019-05-20 08:03:10 -0400227 "enum": [
228 "foo",
229 "bar",
230 "baz"
231 ]
232 },
233 "List": {
234 "type": "array",
235 "items": {
236 "type": "number"
237 },
238 "default": [
239 1,
240 2,
241 3
242 ]
243 },
244 "DefaultStruct": {
Marcel van Lohuizen9fad62f2019-08-13 01:39:10 +0200245 "type": "object",
246 "default": {
247 "port": 1
248 },
249 "oneOf": [
Marcel van Lohuizenf4d483e2019-05-20 08:03:10 -0400250 {
Marcel van Lohuizen9fad62f2019-08-13 01:39:10 +0200251 "$ref": "#/components/schemas/Port"
Marcel van Lohuizenf4d483e2019-05-20 08:03:10 -0400252 },
253 {
Marcel van Lohuizen9fad62f2019-08-13 01:39:10 +0200254 "required": [
255 "port"
256 ],
257 "properties": {
258 "port": {
259 "type": "integer",
260 "enum": [
261 1
262 ]
263 }
Marcel van Lohuizenf4d483e2019-05-20 08:03:10 -0400264 }
265 }
266 ]
267 }
268 }
269 }
270}