@openlint/ruleset-spectral-oas 0.0.0-stage → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/LICENSE +191 -0
  2. package/README.md +11 -2
  3. package/dist/index.d.ts +3 -0
  4. package/dist/index.js +8 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/oas/functions/index.d.ts +15 -0
  7. package/dist/oas/functions/index.js +33 -0
  8. package/dist/oas/functions/index.js.map +1 -0
  9. package/dist/oas/functions/oasDiscriminator.d.ts +6 -0
  10. package/dist/oas/functions/oasDiscriminator.js +39 -0
  11. package/dist/oas/functions/oasDiscriminator.js.map +1 -0
  12. package/dist/oas/functions/oasDocumentSchema.d.ts +2 -0
  13. package/dist/oas/functions/oasDocumentSchema.js +104 -0
  14. package/dist/oas/functions/oasDocumentSchema.js.map +1 -0
  15. package/dist/oas/functions/oasExample.d.ts +7 -0
  16. package/dist/oas/functions/oasExample.js +217 -0
  17. package/dist/oas/functions/oasExample.js.map +1 -0
  18. package/dist/oas/functions/oasOpFormDataConsumeCheck.d.ts +6 -0
  19. package/dist/oas/functions/oasOpFormDataConsumeCheck.js +30 -0
  20. package/dist/oas/functions/oasOpFormDataConsumeCheck.js.map +1 -0
  21. package/dist/oas/functions/oasOpIdUnique.d.ts +2 -0
  22. package/dist/oas/functions/oasOpIdUnique.js +35 -0
  23. package/dist/oas/functions/oasOpIdUnique.js.map +1 -0
  24. package/dist/oas/functions/oasOpParams.d.ts +2 -0
  25. package/dist/oas/functions/oasOpParams.js +75 -0
  26. package/dist/oas/functions/oasOpParams.js.map +1 -0
  27. package/dist/oas/functions/oasOpSuccessResponse.d.ts +2 -0
  28. package/dist/oas/functions/oasOpSuccessResponse.js +27 -0
  29. package/dist/oas/functions/oasOpSuccessResponse.js.map +1 -0
  30. package/dist/oas/functions/oasPathParam.d.ts +2 -0
  31. package/dist/oas/functions/oasPathParam.js +135 -0
  32. package/dist/oas/functions/oasPathParam.js.map +1 -0
  33. package/dist/oas/functions/oasSchema.d.ts +5 -0
  34. package/dist/oas/functions/oasSchema.js +81 -0
  35. package/dist/oas/functions/oasSchema.js.map +1 -0
  36. package/dist/oas/functions/oasSecurityDefined.d.ts +5 -0
  37. package/dist/oas/functions/oasSecurityDefined.js +76 -0
  38. package/dist/oas/functions/oasSecurityDefined.js.map +1 -0
  39. package/dist/oas/functions/oasTagDefined.d.ts +2 -0
  40. package/dist/oas/functions/oasTagDefined.js +42 -0
  41. package/dist/oas/functions/oasTagDefined.js.map +1 -0
  42. package/dist/oas/functions/oasUnusedComponent.d.ts +4 -0
  43. package/dist/oas/functions/oasUnusedComponent.js +40 -0
  44. package/dist/oas/functions/oasUnusedComponent.js.map +1 -0
  45. package/dist/oas/functions/refSiblings.d.ts +2 -0
  46. package/dist/oas/functions/refSiblings.js +42 -0
  47. package/dist/oas/functions/refSiblings.js.map +1 -0
  48. package/dist/oas/functions/typedEnum.d.ts +7 -0
  49. package/dist/oas/functions/typedEnum.js +76 -0
  50. package/dist/oas/functions/typedEnum.js.map +1 -0
  51. package/dist/oas/functions/utils/getAllOperations.d.ts +7 -0
  52. package/dist/oas/functions/utils/getAllOperations.js +31 -0
  53. package/dist/oas/functions/utils/getAllOperations.js.map +1 -0
  54. package/dist/oas/functions/utils/isObject.d.ts +2 -0
  55. package/dist/oas/functions/utils/isObject.js +7 -0
  56. package/dist/oas/functions/utils/isObject.js.map +1 -0
  57. package/dist/oas/index.d.ts +733 -0
  58. package/dist/oas/index.js +765 -0
  59. package/dist/oas/index.js.map +1 -0
  60. package/dist/oas/schemas/__fixtures__/validate.d.ts +1 -0
  61. package/dist/oas/schemas/__fixtures__/validate.js +3 -0
  62. package/dist/oas/schemas/__fixtures__/validate.js.map +1 -0
  63. package/dist/oas/schemas/json-schema/draft-04.json +137 -0
  64. package/dist/oas/schemas/json-schema/draft-2020-12/index.json +54 -0
  65. package/dist/oas/schemas/json-schema/draft-2020-12/validation.json +101 -0
  66. package/dist/oas/schemas/oas/v2.0.json +1478 -0
  67. package/dist/oas/schemas/oas/v3.0.json +1652 -0
  68. package/dist/oas/schemas/oas/v3.1/dialect.schema.json +35 -0
  69. package/dist/oas/schemas/oas/v3.1/index.json +1276 -0
  70. package/dist/oas/schemas/oas/v3.1/meta.schema.json +93 -0
  71. package/dist/oas/schemas/oas/v3.2/dialect.schema.json +25 -0
  72. package/dist/oas/schemas/oas/v3.2/index.json +1527 -0
  73. package/dist/oas/schemas/oas/v3.2/meta.schema.json +103 -0
  74. package/dist/oas/schemas/validators.d.ts +66 -0
  75. package/dist/oas/schemas/validators.js +12991 -0
  76. package/dist/oas/schemas/validators.js.map +1 -0
  77. package/dist/shared/functions/index.d.ts +2 -0
  78. package/dist/shared/functions/index.js +7 -0
  79. package/dist/shared/functions/index.js.map +1 -0
  80. package/dist/shared/functions/serverVariables/index.d.ts +16 -0
  81. package/dist/shared/functions/serverVariables/index.js +154 -0
  82. package/dist/shared/functions/serverVariables/index.js.map +1 -0
  83. package/dist/shared/functions/serverVariables/utils/applyUrlVariables.d.ts +3 -0
  84. package/dist/shared/functions/serverVariables/utils/applyUrlVariables.js +32 -0
  85. package/dist/shared/functions/serverVariables/utils/applyUrlVariables.js.map +1 -0
  86. package/dist/shared/functions/serverVariables/utils/parseUrlVariables.d.ts +1 -0
  87. package/dist/shared/functions/serverVariables/utils/parseUrlVariables.js +12 -0
  88. package/dist/shared/functions/serverVariables/utils/parseUrlVariables.js.map +1 -0
  89. package/dist/shared/functions/uniquenessTags.d.ts +5 -0
  90. package/dist/shared/functions/uniquenessTags.js +42 -0
  91. package/dist/shared/functions/uniquenessTags.js.map +1 -0
  92. package/dist/shared/utils/getMissingProps.d.ts +1 -0
  93. package/dist/shared/utils/getMissingProps.js +9 -0
  94. package/dist/shared/utils/getMissingProps.js.map +1 -0
  95. package/dist/shared/utils/getRedundantProps.d.ts +1 -0
  96. package/dist/shared/utils/getRedundantProps.js +9 -0
  97. package/dist/shared/utils/getRedundantProps.js.map +1 -0
  98. package/package.json +47 -4
@@ -0,0 +1,1652 @@
1
+ {
2
+ "$id": "https://spec.openapis.org/oas/3.0/schema/2019-04-02",
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "description": "Validation schema for OpenAPI Specification 3.0.X.",
5
+ "type": "object",
6
+ "required": ["openapi", "info", "paths"],
7
+ "properties": {
8
+ "openapi": {
9
+ "type": "string",
10
+ "pattern": "^3\\.0\\.\\d(-.+)?$"
11
+ },
12
+ "info": {
13
+ "$ref": "#/definitions/Info"
14
+ },
15
+ "externalDocs": {
16
+ "$ref": "#/definitions/ExternalDocumentation"
17
+ },
18
+ "servers": {
19
+ "type": "array",
20
+ "items": {
21
+ "$ref": "#/definitions/Server"
22
+ }
23
+ },
24
+ "security": {
25
+ "type": "array",
26
+ "items": {
27
+ "$ref": "#/definitions/SecurityRequirement"
28
+ }
29
+ },
30
+ "tags": {
31
+ "type": "array",
32
+ "items": {
33
+ "$ref": "#/definitions/Tag"
34
+ },
35
+ "uniqueItems": true
36
+ },
37
+ "paths": {
38
+ "$ref": "#/definitions/Paths"
39
+ },
40
+ "components": {
41
+ "$ref": "#/definitions/Components"
42
+ }
43
+ },
44
+ "patternProperties": {
45
+ "^x-": {}
46
+ },
47
+ "additionalProperties": false,
48
+ "definitions": {
49
+ "Reference": {
50
+ "type": "object",
51
+ "required": ["$ref"],
52
+ "patternProperties": {
53
+ "^\\$ref$": {
54
+ "type": "string",
55
+ "format": "uri-reference"
56
+ }
57
+ }
58
+ },
59
+ "Info": {
60
+ "type": "object",
61
+ "required": ["title", "version"],
62
+ "properties": {
63
+ "title": {
64
+ "type": "string"
65
+ },
66
+ "description": {
67
+ "type": "string"
68
+ },
69
+ "termsOfService": {
70
+ "type": "string",
71
+ "format": "uri-reference"
72
+ },
73
+ "contact": {
74
+ "$ref": "#/definitions/Contact"
75
+ },
76
+ "license": {
77
+ "$ref": "#/definitions/License"
78
+ },
79
+ "version": {
80
+ "type": "string"
81
+ }
82
+ },
83
+ "patternProperties": {
84
+ "^x-": {}
85
+ },
86
+ "additionalProperties": false
87
+ },
88
+ "Contact": {
89
+ "type": "object",
90
+ "properties": {
91
+ "name": {
92
+ "type": "string"
93
+ },
94
+ "url": {
95
+ "type": "string",
96
+ "format": "uri-reference"
97
+ },
98
+ "email": {
99
+ "type": "string",
100
+ "format": "email"
101
+ }
102
+ },
103
+ "patternProperties": {
104
+ "^x-": {}
105
+ },
106
+ "additionalProperties": false
107
+ },
108
+ "License": {
109
+ "type": "object",
110
+ "required": ["name"],
111
+ "properties": {
112
+ "name": {
113
+ "type": "string"
114
+ },
115
+ "url": {
116
+ "type": "string",
117
+ "format": "uri-reference"
118
+ }
119
+ },
120
+ "patternProperties": {
121
+ "^x-": {}
122
+ },
123
+ "additionalProperties": false
124
+ },
125
+ "Server": {
126
+ "type": "object",
127
+ "required": ["url"],
128
+ "properties": {
129
+ "url": {
130
+ "type": "string"
131
+ },
132
+ "description": {
133
+ "type": "string"
134
+ },
135
+ "variables": {
136
+ "type": "object",
137
+ "additionalProperties": {
138
+ "$ref": "#/definitions/ServerVariable"
139
+ }
140
+ }
141
+ },
142
+ "patternProperties": {
143
+ "^x-": {}
144
+ },
145
+ "additionalProperties": false
146
+ },
147
+ "ServerVariable": {
148
+ "type": "object",
149
+ "required": ["default"],
150
+ "properties": {
151
+ "enum": {
152
+ "type": "array",
153
+ "items": {
154
+ "type": "string"
155
+ }
156
+ },
157
+ "default": {
158
+ "type": "string"
159
+ },
160
+ "description": {
161
+ "type": "string"
162
+ }
163
+ },
164
+ "patternProperties": {
165
+ "^x-": {}
166
+ },
167
+ "additionalProperties": false
168
+ },
169
+ "Components": {
170
+ "type": "object",
171
+ "properties": {
172
+ "schemas": {
173
+ "type": "object",
174
+ "patternProperties": {
175
+ "^[a-zA-Z0-9\\.\\-_]+$": {
176
+ "if": {
177
+ "type": "object",
178
+ "required": ["$ref"]
179
+ },
180
+ "then": {
181
+ "$ref": "#/definitions/Reference"
182
+ },
183
+ "else": {
184
+ "$ref": "#/definitions/Schema"
185
+ }
186
+ }
187
+ }
188
+ },
189
+ "responses": {
190
+ "type": "object",
191
+ "patternProperties": {
192
+ "^[a-zA-Z0-9\\.\\-_]+$": {
193
+ "if": {
194
+ "type": "object",
195
+ "required": ["$ref"]
196
+ },
197
+ "then": {
198
+ "$ref": "#/definitions/Reference"
199
+ },
200
+ "else": {
201
+ "$ref": "#/definitions/Response"
202
+ }
203
+ }
204
+ }
205
+ },
206
+ "parameters": {
207
+ "type": "object",
208
+ "patternProperties": {
209
+ "^[a-zA-Z0-9\\.\\-_]+$": {
210
+ "if": {
211
+ "type": "object",
212
+ "required": ["$ref"]
213
+ },
214
+ "then": {
215
+ "$ref": "#/definitions/Reference"
216
+ },
217
+ "else": {
218
+ "$ref": "#/definitions/Parameter"
219
+ }
220
+ }
221
+ }
222
+ },
223
+ "examples": {
224
+ "type": "object",
225
+ "patternProperties": {
226
+ "^[a-zA-Z0-9\\.\\-_]+$": {
227
+ "if": {
228
+ "type": "object",
229
+ "required": ["$ref"]
230
+ },
231
+ "then": {
232
+ "$ref": "#/definitions/Reference"
233
+ },
234
+ "else": {
235
+ "$ref": "#/definitions/Example"
236
+ }
237
+ }
238
+ }
239
+ },
240
+ "requestBodies": {
241
+ "type": "object",
242
+ "patternProperties": {
243
+ "^[a-zA-Z0-9\\.\\-_]+$": {
244
+ "if": {
245
+ "type": "object",
246
+ "required": ["$ref"]
247
+ },
248
+ "then": {
249
+ "$ref": "#/definitions/Reference"
250
+ },
251
+ "else": {
252
+ "$ref": "#/definitions/RequestBody"
253
+ }
254
+ }
255
+ }
256
+ },
257
+ "headers": {
258
+ "type": "object",
259
+ "patternProperties": {
260
+ "^[a-zA-Z0-9\\.\\-_]+$": {
261
+ "if": {
262
+ "type": "object",
263
+ "required": ["$ref"]
264
+ },
265
+ "then": {
266
+ "$ref": "#/definitions/Reference"
267
+ },
268
+ "else": {
269
+ "$ref": "#/definitions/Header"
270
+ }
271
+ }
272
+ }
273
+ },
274
+ "securitySchemes": {
275
+ "type": "object",
276
+ "patternProperties": {
277
+ "^[a-zA-Z0-9\\.\\-_]+$": {
278
+ "if": {
279
+ "type": "object",
280
+ "required": ["$ref"]
281
+ },
282
+ "then": {
283
+ "$ref": "#/definitions/Reference"
284
+ },
285
+ "else": {
286
+ "$ref": "#/definitions/SecurityScheme"
287
+ }
288
+ }
289
+ }
290
+ },
291
+ "links": {
292
+ "type": "object",
293
+ "patternProperties": {
294
+ "^[a-zA-Z0-9\\.\\-_]+$": {
295
+ "if": {
296
+ "type": "object",
297
+ "required": ["$ref"]
298
+ },
299
+ "then": {
300
+ "$ref": "#/definitions/Reference"
301
+ },
302
+ "else": {
303
+ "$ref": "#/definitions/Link"
304
+ }
305
+ }
306
+ }
307
+ },
308
+ "callbacks": {
309
+ "type": "object",
310
+ "patternProperties": {
311
+ "^[a-zA-Z0-9\\.\\-_]+$": {
312
+ "if": {
313
+ "type": "object",
314
+ "required": ["$ref"]
315
+ },
316
+ "then": {
317
+ "$ref": "#/definitions/Reference"
318
+ },
319
+ "else": {
320
+ "$ref": "#/definitions/Callback"
321
+ }
322
+ }
323
+ }
324
+ }
325
+ },
326
+ "patternProperties": {
327
+ "^x-": {}
328
+ },
329
+ "additionalProperties": false
330
+ },
331
+ "Schema": {
332
+ "type": "object",
333
+ "properties": {
334
+ "title": {
335
+ "type": "string"
336
+ },
337
+ "multipleOf": {
338
+ "type": "number",
339
+ "exclusiveMinimum": 0
340
+ },
341
+ "maximum": {
342
+ "type": "number"
343
+ },
344
+ "exclusiveMaximum": {
345
+ "type": "boolean",
346
+ "default": false
347
+ },
348
+ "minimum": {
349
+ "type": "number"
350
+ },
351
+ "exclusiveMinimum": {
352
+ "type": "boolean",
353
+ "default": false
354
+ },
355
+ "maxLength": {
356
+ "type": "integer",
357
+ "minimum": 0
358
+ },
359
+ "minLength": {
360
+ "type": "integer",
361
+ "minimum": 0,
362
+ "default": 0
363
+ },
364
+ "pattern": {
365
+ "type": "string",
366
+ "format": "regex"
367
+ },
368
+ "maxItems": {
369
+ "type": "integer",
370
+ "minimum": 0
371
+ },
372
+ "minItems": {
373
+ "type": "integer",
374
+ "minimum": 0,
375
+ "default": 0
376
+ },
377
+ "uniqueItems": {
378
+ "type": "boolean",
379
+ "default": false
380
+ },
381
+ "maxProperties": {
382
+ "type": "integer",
383
+ "minimum": 0
384
+ },
385
+ "minProperties": {
386
+ "type": "integer",
387
+ "minimum": 0,
388
+ "default": 0
389
+ },
390
+ "required": {
391
+ "type": "array",
392
+ "items": {
393
+ "type": "string"
394
+ },
395
+ "minItems": 1,
396
+ "uniqueItems": true
397
+ },
398
+ "enum": {
399
+ "type": "array",
400
+ "items": {},
401
+ "minItems": 1,
402
+ "uniqueItems": false
403
+ },
404
+ "type": {
405
+ "enum": ["array", "boolean", "integer", "number", "object", "string"]
406
+ },
407
+ "not": {
408
+ "if": {
409
+ "type": "object",
410
+ "required": ["$ref"]
411
+ },
412
+ "then": {
413
+ "$ref": "#/definitions/Reference"
414
+ },
415
+ "else": {
416
+ "$ref": "#/definitions/Schema"
417
+ }
418
+ },
419
+ "allOf": {
420
+ "type": "array",
421
+ "items": {
422
+ "if": {
423
+ "type": "object",
424
+ "required": ["$ref"]
425
+ },
426
+ "then": {
427
+ "$ref": "#/definitions/Reference"
428
+ },
429
+ "else": {
430
+ "$ref": "#/definitions/Schema"
431
+ }
432
+ }
433
+ },
434
+ "oneOf": {
435
+ "type": "array",
436
+ "items": {
437
+ "if": {
438
+ "type": "object",
439
+ "required": ["$ref"]
440
+ },
441
+ "then": {
442
+ "$ref": "#/definitions/Reference"
443
+ },
444
+ "else": {
445
+ "$ref": "#/definitions/Schema"
446
+ }
447
+ }
448
+ },
449
+ "anyOf": {
450
+ "type": "array",
451
+ "items": {
452
+ "if": {
453
+ "type": "object",
454
+ "required": ["$ref"]
455
+ },
456
+ "then": {
457
+ "$ref": "#/definitions/Reference"
458
+ },
459
+ "else": {
460
+ "$ref": "#/definitions/Schema"
461
+ }
462
+ }
463
+ },
464
+ "items": {
465
+ "if": {
466
+ "type": "object",
467
+ "required": ["$ref"]
468
+ },
469
+ "then": {
470
+ "$ref": "#/definitions/Reference"
471
+ },
472
+ "else": {
473
+ "$ref": "#/definitions/Schema"
474
+ }
475
+ },
476
+ "properties": {
477
+ "type": "object",
478
+ "additionalProperties": {
479
+ "if": {
480
+ "type": "object",
481
+ "required": ["$ref"]
482
+ },
483
+ "then": {
484
+ "$ref": "#/definitions/Reference"
485
+ },
486
+ "else": {
487
+ "$ref": "#/definitions/Schema"
488
+ }
489
+ }
490
+ },
491
+ "additionalProperties": {
492
+ "if": {
493
+ "type": "object",
494
+ "required": ["$ref"]
495
+ },
496
+ "then": {
497
+ "$ref": "#/definitions/Reference"
498
+ },
499
+ "else": {
500
+ "if": {
501
+ "type": "object"
502
+ },
503
+ "then": {
504
+ "$ref": "#/definitions/Schema"
505
+ },
506
+ "else": {
507
+ "if": {
508
+ "type": "boolean"
509
+ },
510
+ "then": true,
511
+ "else": {
512
+ "not": true,
513
+ "errorMessage": "\"additionalProperties\" property must be a valid Schema Object"
514
+ }
515
+ }
516
+ },
517
+ "default": true
518
+ },
519
+ "description": {
520
+ "type": "string"
521
+ },
522
+ "format": {
523
+ "type": "string"
524
+ },
525
+ "default": {},
526
+ "nullable": {
527
+ "type": "boolean",
528
+ "default": false
529
+ },
530
+ "discriminator": {
531
+ "$ref": "#/definitions/Discriminator"
532
+ },
533
+ "readOnly": {
534
+ "type": "boolean",
535
+ "default": false
536
+ },
537
+ "writeOnly": {
538
+ "type": "boolean",
539
+ "default": false
540
+ },
541
+ "example": {},
542
+ "externalDocs": {
543
+ "$ref": "#/definitions/ExternalDocumentation"
544
+ },
545
+ "deprecated": {
546
+ "type": "boolean",
547
+ "default": false
548
+ },
549
+ "xml": {
550
+ "$ref": "#/definitions/XML"
551
+ }
552
+ },
553
+ "patternProperties": {
554
+ "^x-": {}
555
+ },
556
+ "additionalProperties": false
557
+ },
558
+ "Discriminator": {
559
+ "type": "object",
560
+ "required": ["propertyName"],
561
+ "properties": {
562
+ "propertyName": {
563
+ "type": "string"
564
+ },
565
+ "mapping": {
566
+ "type": "object",
567
+ "additionalProperties": {
568
+ "type": "string"
569
+ }
570
+ }
571
+ }
572
+ },
573
+ "XML": {
574
+ "type": "object",
575
+ "properties": {
576
+ "name": {
577
+ "type": "string"
578
+ },
579
+ "namespace": {
580
+ "type": "string",
581
+ "format": "uri"
582
+ },
583
+ "prefix": {
584
+ "type": "string"
585
+ },
586
+ "attribute": {
587
+ "type": "boolean",
588
+ "default": false
589
+ },
590
+ "wrapped": {
591
+ "type": "boolean",
592
+ "default": false
593
+ }
594
+ },
595
+ "patternProperties": {
596
+ "^x-": {}
597
+ },
598
+ "additionalProperties": false
599
+ },
600
+ "Response": {
601
+ "type": "object",
602
+ "required": ["description"],
603
+ "properties": {
604
+ "description": {
605
+ "type": "string"
606
+ },
607
+ "headers": {
608
+ "type": "object",
609
+ "additionalProperties": {
610
+ "if": {
611
+ "type": "object",
612
+ "required": ["$ref"]
613
+ },
614
+ "then": {
615
+ "$ref": "#/definitions/Reference"
616
+ },
617
+ "else": {
618
+ "$ref": "#/definitions/Header"
619
+ }
620
+ }
621
+ },
622
+ "content": {
623
+ "type": "object",
624
+ "additionalProperties": {
625
+ "$ref": "#/definitions/MediaType"
626
+ }
627
+ },
628
+ "links": {
629
+ "type": "object",
630
+ "additionalProperties": {
631
+ "if": {
632
+ "type": "object",
633
+ "required": ["$ref"]
634
+ },
635
+ "then": {
636
+ "$ref": "#/definitions/Reference"
637
+ },
638
+ "else": {
639
+ "$ref": "#/definitions/Link"
640
+ }
641
+ }
642
+ }
643
+ },
644
+ "patternProperties": {
645
+ "^x-": {}
646
+ },
647
+ "additionalProperties": false
648
+ },
649
+ "MediaType": {
650
+ "type": "object",
651
+ "properties": {
652
+ "schema": {
653
+ "if": {
654
+ "type": "object",
655
+ "required": ["$ref"]
656
+ },
657
+ "then": {
658
+ "$ref": "#/definitions/Reference"
659
+ },
660
+ "else": {
661
+ "$ref": "#/definitions/Schema"
662
+ }
663
+ },
664
+ "example": {},
665
+ "examples": {
666
+ "type": "object",
667
+ "additionalProperties": {
668
+ "if": {
669
+ "type": "object",
670
+ "required": ["$ref"]
671
+ },
672
+ "then": {
673
+ "$ref": "#/definitions/Reference"
674
+ },
675
+ "else": {
676
+ "$ref": "#/definitions/Example"
677
+ }
678
+ }
679
+ },
680
+ "encoding": {
681
+ "type": "object",
682
+ "additionalProperties": {
683
+ "$ref": "#/definitions/Encoding"
684
+ }
685
+ }
686
+ },
687
+ "patternProperties": {
688
+ "^x-": {}
689
+ },
690
+ "additionalProperties": false,
691
+ "allOf": [
692
+ {
693
+ "$ref": "#/definitions/ExampleXORExamples"
694
+ }
695
+ ]
696
+ },
697
+ "Example": {
698
+ "type": "object",
699
+ "properties": {
700
+ "summary": {
701
+ "type": "string"
702
+ },
703
+ "description": {
704
+ "type": "string"
705
+ },
706
+ "value": {},
707
+ "externalValue": {
708
+ "type": "string",
709
+ "format": "uri-reference"
710
+ }
711
+ },
712
+ "patternProperties": {
713
+ "^x-": {}
714
+ },
715
+ "additionalProperties": false
716
+ },
717
+ "Header": {
718
+ "type": "object",
719
+ "properties": {
720
+ "description": {
721
+ "type": "string"
722
+ },
723
+ "required": {
724
+ "type": "boolean",
725
+ "default": false
726
+ },
727
+ "deprecated": {
728
+ "type": "boolean",
729
+ "default": false
730
+ },
731
+ "allowEmptyValue": {
732
+ "type": "boolean",
733
+ "default": false
734
+ },
735
+ "style": {
736
+ "const": "simple",
737
+ "default": "simple"
738
+ },
739
+ "explode": {
740
+ "type": "boolean"
741
+ },
742
+ "allowReserved": {
743
+ "type": "boolean",
744
+ "default": false
745
+ },
746
+ "schema": {
747
+ "if": {
748
+ "type": "object",
749
+ "required": ["$ref"]
750
+ },
751
+ "then": {
752
+ "$ref": "#/definitions/Reference"
753
+ },
754
+ "else": {
755
+ "$ref": "#/definitions/Schema"
756
+ }
757
+ },
758
+ "content": {
759
+ "type": "object",
760
+ "additionalProperties": {
761
+ "$ref": "#/definitions/MediaType"
762
+ },
763
+ "minProperties": 1,
764
+ "maxProperties": 1
765
+ },
766
+ "example": {},
767
+ "examples": {
768
+ "type": "object",
769
+ "additionalProperties": {
770
+ "if": {
771
+ "type": "object",
772
+ "required": ["$ref"]
773
+ },
774
+ "then": {
775
+ "$ref": "#/definitions/Reference"
776
+ },
777
+ "else": {
778
+ "$ref": "#/definitions/Example"
779
+ }
780
+ }
781
+ }
782
+ },
783
+ "patternProperties": {
784
+ "^x-": {}
785
+ },
786
+ "additionalProperties": false,
787
+ "allOf": [
788
+ {
789
+ "$ref": "#/definitions/ExampleXORExamples"
790
+ },
791
+ {
792
+ "$ref": "#/definitions/SchemaXORContent"
793
+ }
794
+ ]
795
+ },
796
+ "Paths": {
797
+ "type": "object",
798
+ "patternProperties": {
799
+ "^\\/": {
800
+ "$ref": "#/definitions/PathItem"
801
+ },
802
+ "^x-": {}
803
+ },
804
+ "additionalProperties": false
805
+ },
806
+ "PathItem": {
807
+ "type": "object",
808
+ "properties": {
809
+ "$ref": {
810
+ "type": "string"
811
+ },
812
+ "summary": {
813
+ "type": "string"
814
+ },
815
+ "description": {
816
+ "type": "string"
817
+ },
818
+ "servers": {
819
+ "type": "array",
820
+ "items": {
821
+ "$ref": "#/definitions/Server"
822
+ }
823
+ },
824
+ "parameters": {
825
+ "type": "array",
826
+ "items": {
827
+ "if": {
828
+ "type": "object",
829
+ "required": ["$ref"]
830
+ },
831
+ "then": {
832
+ "$ref": "#/definitions/Reference"
833
+ },
834
+ "else": {
835
+ "$ref": "#/definitions/Parameter"
836
+ }
837
+ },
838
+ "uniqueItems": true
839
+ }
840
+ },
841
+ "patternProperties": {
842
+ "^(get|put|post|delete|options|head|patch|trace)$": {
843
+ "$ref": "#/definitions/Operation"
844
+ },
845
+ "^x-": {}
846
+ },
847
+ "additionalProperties": false
848
+ },
849
+ "Operation": {
850
+ "type": "object",
851
+ "required": ["responses"],
852
+ "properties": {
853
+ "tags": {
854
+ "type": "array",
855
+ "items": {
856
+ "type": "string"
857
+ }
858
+ },
859
+ "summary": {
860
+ "type": "string"
861
+ },
862
+ "description": {
863
+ "type": "string"
864
+ },
865
+ "externalDocs": {
866
+ "$ref": "#/definitions/ExternalDocumentation"
867
+ },
868
+ "operationId": {
869
+ "type": "string"
870
+ },
871
+ "parameters": {
872
+ "type": "array",
873
+ "items": {
874
+ "if": {
875
+ "type": "object",
876
+ "required": ["$ref"]
877
+ },
878
+ "then": {
879
+ "$ref": "#/definitions/Reference"
880
+ },
881
+ "else": {
882
+ "$ref": "#/definitions/Parameter"
883
+ }
884
+ },
885
+ "uniqueItems": true
886
+ },
887
+ "requestBody": {
888
+ "if": {
889
+ "type": "object",
890
+ "required": ["$ref"]
891
+ },
892
+ "then": {
893
+ "$ref": "#/definitions/Reference"
894
+ },
895
+ "else": {
896
+ "$ref": "#/definitions/RequestBody"
897
+ }
898
+ },
899
+ "responses": {
900
+ "$ref": "#/definitions/Responses"
901
+ },
902
+ "callbacks": {
903
+ "type": "object",
904
+ "additionalProperties": {
905
+ "if": {
906
+ "type": "object",
907
+ "required": ["$ref"]
908
+ },
909
+ "then": {
910
+ "$ref": "#/definitions/Reference"
911
+ },
912
+ "else": {
913
+ "$ref": "#/definitions/Callback"
914
+ }
915
+ }
916
+ },
917
+ "deprecated": {
918
+ "type": "boolean",
919
+ "default": false
920
+ },
921
+ "security": {
922
+ "type": "array",
923
+ "items": {
924
+ "$ref": "#/definitions/SecurityRequirement"
925
+ }
926
+ },
927
+ "servers": {
928
+ "type": "array",
929
+ "items": {
930
+ "$ref": "#/definitions/Server"
931
+ }
932
+ }
933
+ },
934
+ "patternProperties": {
935
+ "^x-": {}
936
+ },
937
+ "additionalProperties": false
938
+ },
939
+ "Responses": {
940
+ "type": "object",
941
+ "properties": {
942
+ "default": {
943
+ "if": {
944
+ "type": "object",
945
+ "required": ["$ref"]
946
+ },
947
+ "then": {
948
+ "$ref": "#/definitions/Reference"
949
+ },
950
+ "else": {
951
+ "$ref": "#/definitions/Response"
952
+ }
953
+ }
954
+ },
955
+ "patternProperties": {
956
+ "^[1-5](?:\\d{2}|XX)$": {
957
+ "if": {
958
+ "type": "object",
959
+ "required": ["$ref"]
960
+ },
961
+ "then": {
962
+ "$ref": "#/definitions/Reference"
963
+ },
964
+ "else": {
965
+ "$ref": "#/definitions/Response"
966
+ }
967
+ },
968
+ "^x-": {}
969
+ },
970
+ "minProperties": 1,
971
+ "additionalProperties": false
972
+ },
973
+ "SecurityRequirement": {
974
+ "type": "object",
975
+ "additionalProperties": {
976
+ "type": "array",
977
+ "items": {
978
+ "type": "string"
979
+ }
980
+ }
981
+ },
982
+ "Tag": {
983
+ "type": "object",
984
+ "required": ["name"],
985
+ "properties": {
986
+ "name": {
987
+ "type": "string"
988
+ },
989
+ "description": {
990
+ "type": "string"
991
+ },
992
+ "externalDocs": {
993
+ "$ref": "#/definitions/ExternalDocumentation"
994
+ }
995
+ },
996
+ "patternProperties": {
997
+ "^x-": {}
998
+ },
999
+ "additionalProperties": false
1000
+ },
1001
+ "ExternalDocumentation": {
1002
+ "type": "object",
1003
+ "required": ["url"],
1004
+ "properties": {
1005
+ "description": {
1006
+ "type": "string"
1007
+ },
1008
+ "url": {
1009
+ "type": "string",
1010
+ "format": "uri-reference"
1011
+ }
1012
+ },
1013
+ "patternProperties": {
1014
+ "^x-": {}
1015
+ },
1016
+ "additionalProperties": false
1017
+ },
1018
+ "ExampleXORExamples": {
1019
+ "description": "Example and examples are mutually exclusive",
1020
+ "not": {
1021
+ "required": ["example", "examples"]
1022
+ }
1023
+ },
1024
+ "SchemaXORContent": {
1025
+ "description": "Schema and content are mutually exclusive, at least one is required",
1026
+ "errorMessage": {
1027
+ "not": "Schema and content are mutually exclusive, at least one is required"
1028
+ },
1029
+ "not": {
1030
+ "required": ["schema", "content"]
1031
+ },
1032
+ "if": {
1033
+ "type": "object",
1034
+ "required": ["schema"]
1035
+ },
1036
+ "then": true,
1037
+ "else": {
1038
+ "if": {
1039
+ "type": "object",
1040
+ "required": ["content"]
1041
+ },
1042
+ "then": {
1043
+ "description": "Some properties are not allowed if content is present",
1044
+ "allOf": [
1045
+ {
1046
+ "not": {
1047
+ "required": ["style"]
1048
+ }
1049
+ },
1050
+ {
1051
+ "not": {
1052
+ "required": ["explode"]
1053
+ }
1054
+ },
1055
+ {
1056
+ "not": {
1057
+ "required": ["allowReserved"]
1058
+ }
1059
+ },
1060
+ {
1061
+ "not": {
1062
+ "required": ["example"]
1063
+ }
1064
+ },
1065
+ {
1066
+ "not": {
1067
+ "required": ["examples"]
1068
+ }
1069
+ }
1070
+ ]
1071
+ },
1072
+ "else": {
1073
+ "not": true,
1074
+ "errorMessage": {
1075
+ "not": "\"schema\" or \"content\" must be present"
1076
+ }
1077
+ }
1078
+ }
1079
+ },
1080
+ "Parameter": {
1081
+ "type": "object",
1082
+ "properties": {
1083
+ "name": {
1084
+ "type": "string"
1085
+ },
1086
+ "in": {
1087
+ "type": "string"
1088
+ },
1089
+ "description": {
1090
+ "type": "string"
1091
+ },
1092
+ "required": {
1093
+ "type": "boolean",
1094
+ "default": false
1095
+ },
1096
+ "deprecated": {
1097
+ "type": "boolean",
1098
+ "default": false
1099
+ },
1100
+ "allowEmptyValue": {
1101
+ "type": "boolean",
1102
+ "default": false
1103
+ },
1104
+ "style": {
1105
+ "type": "string"
1106
+ },
1107
+ "explode": {
1108
+ "type": "boolean"
1109
+ },
1110
+ "allowReserved": {
1111
+ "type": "boolean",
1112
+ "default": false
1113
+ },
1114
+ "schema": {
1115
+ "if": {
1116
+ "type": "object",
1117
+ "required": ["$ref"]
1118
+ },
1119
+ "then": {
1120
+ "$ref": "#/definitions/Reference"
1121
+ },
1122
+ "else": {
1123
+ "$ref": "#/definitions/Schema"
1124
+ }
1125
+ },
1126
+ "content": {
1127
+ "type": "object",
1128
+ "additionalProperties": {
1129
+ "$ref": "#/definitions/MediaType"
1130
+ },
1131
+ "minProperties": 1,
1132
+ "maxProperties": 1
1133
+ },
1134
+ "example": {},
1135
+ "examples": {
1136
+ "type": "object",
1137
+ "additionalProperties": {
1138
+ "if": {
1139
+ "type": "object",
1140
+ "required": ["$ref"]
1141
+ },
1142
+ "then": {
1143
+ "$ref": "#/definitions/Reference"
1144
+ },
1145
+ "else": {
1146
+ "$ref": "#/definitions/Example"
1147
+ }
1148
+ }
1149
+ }
1150
+ },
1151
+ "patternProperties": {
1152
+ "^x-": {}
1153
+ },
1154
+ "additionalProperties": false,
1155
+ "required": ["name"],
1156
+ "allOf": [
1157
+ {
1158
+ "$ref": "#/definitions/ExampleXORExamples"
1159
+ },
1160
+ {
1161
+ "$ref": "#/definitions/SchemaXORContent"
1162
+ },
1163
+ {
1164
+ "$ref": "#/definitions/ParameterLocation"
1165
+ }
1166
+ ]
1167
+ },
1168
+ "ParameterLocation": {
1169
+ "description": "Parameter location",
1170
+ "type": "object",
1171
+ "if": {
1172
+ "type": "object",
1173
+ "properties": {
1174
+ "in": {
1175
+ "const": "path"
1176
+ }
1177
+ },
1178
+ "required": ["in"]
1179
+ },
1180
+ "then": {
1181
+ "description": "Parameter in path",
1182
+ "required": ["required"],
1183
+ "properties": {
1184
+ "style": {
1185
+ "enum": ["matrix", "label", "simple"],
1186
+ "default": "simple"
1187
+ },
1188
+ "required": {
1189
+ "const": true
1190
+ }
1191
+ }
1192
+ },
1193
+ "else": {
1194
+ "if": {
1195
+ "type": "object",
1196
+ "properties": {
1197
+ "in": {
1198
+ "const": "query"
1199
+ }
1200
+ },
1201
+ "required": ["in"]
1202
+ },
1203
+ "then": {
1204
+ "description": "Parameter in query",
1205
+ "properties": {
1206
+ "style": {
1207
+ "enum": ["form", "spaceDelimited", "pipeDelimited", "deepObject"],
1208
+ "default": "form"
1209
+ }
1210
+ }
1211
+ },
1212
+ "else": {
1213
+ "if": {
1214
+ "type": "object",
1215
+ "properties": {
1216
+ "in": {
1217
+ "const": "header"
1218
+ }
1219
+ },
1220
+ "required": ["in"]
1221
+ },
1222
+ "then": {
1223
+ "description": "Parameter in header",
1224
+ "properties": {
1225
+ "style": {
1226
+ "const": "simple",
1227
+ "default": "simple"
1228
+ }
1229
+ }
1230
+ },
1231
+ "else": {
1232
+ "if": {
1233
+ "type": "object",
1234
+ "properties": {
1235
+ "in": {
1236
+ "const": "cookie"
1237
+ }
1238
+ },
1239
+ "required": ["in"]
1240
+ },
1241
+ "then": {
1242
+ "description": "Parameter in cookie",
1243
+ "properties": {
1244
+ "style": {
1245
+ "const": "form",
1246
+ "default": "form"
1247
+ }
1248
+ }
1249
+ },
1250
+ "else": {
1251
+ "type": "object",
1252
+ "properties": {
1253
+ "in": {
1254
+ "enum": ["path", "query", "header", "cookie"]
1255
+ }
1256
+ },
1257
+ "required": ["in"],
1258
+ "errorMessage": {
1259
+ "required": "Parameter must have a valid \"in\" property"
1260
+ }
1261
+ }
1262
+ }
1263
+ }
1264
+ }
1265
+ },
1266
+ "RequestBody": {
1267
+ "type": "object",
1268
+ "required": ["content"],
1269
+ "properties": {
1270
+ "description": {
1271
+ "type": "string"
1272
+ },
1273
+ "content": {
1274
+ "type": "object",
1275
+ "additionalProperties": {
1276
+ "$ref": "#/definitions/MediaType"
1277
+ }
1278
+ },
1279
+ "required": {
1280
+ "type": "boolean",
1281
+ "default": false
1282
+ }
1283
+ },
1284
+ "patternProperties": {
1285
+ "^x-": {}
1286
+ },
1287
+ "additionalProperties": false
1288
+ },
1289
+ "SecurityScheme": {
1290
+ "if": {
1291
+ "type": "object",
1292
+ "properties": {
1293
+ "type": {
1294
+ "const": "apiKey"
1295
+ }
1296
+ },
1297
+ "required": ["type"]
1298
+ },
1299
+ "then": {
1300
+ "$ref": "#/definitions/APIKeySecurityScheme"
1301
+ },
1302
+ "else": {
1303
+ "if": {
1304
+ "type": "object",
1305
+ "properties": {
1306
+ "type": {
1307
+ "const": "apiKey"
1308
+ }
1309
+ },
1310
+ "required": ["type"]
1311
+ },
1312
+ "then": {
1313
+ "$ref": "#/definitions/HTTPSecurityScheme"
1314
+ },
1315
+ "else": {
1316
+ "if": {
1317
+ "type": "object",
1318
+ "properties": {
1319
+ "type": {
1320
+ "const": "oauth2"
1321
+ }
1322
+ },
1323
+ "required": ["type"]
1324
+ },
1325
+ "then": {
1326
+ "$ref": "#/definitions/OAuth2SecurityScheme"
1327
+ },
1328
+ "else": {
1329
+ "if": {
1330
+ "type": "object",
1331
+ "properties": {
1332
+ "type": {
1333
+ "const": "openIdConnect"
1334
+ }
1335
+ },
1336
+ "required": ["type"]
1337
+ },
1338
+ "then": {
1339
+ "$ref": "#/definitions/OpenIdConnectSecurityScheme"
1340
+ },
1341
+ "else": {
1342
+ "type": "object",
1343
+ "properties": {
1344
+ "type": {
1345
+ "enum": ["apiKey", "http", "oauth2", "openIdConnect"]
1346
+ }
1347
+ },
1348
+ "required": ["type"],
1349
+ "errorMessage": {
1350
+ "required": "Security scheme must have a valid type",
1351
+ "type": "Invalid security scheme"
1352
+ }
1353
+ }
1354
+ }
1355
+ }
1356
+ }
1357
+ },
1358
+ "APIKeySecurityScheme": {
1359
+ "type": "object",
1360
+ "required": ["type", "name", "in"],
1361
+ "properties": {
1362
+ "type": {
1363
+ "const": "apiKey"
1364
+ },
1365
+ "name": {
1366
+ "type": "string"
1367
+ },
1368
+ "in": {
1369
+ "enum": ["header", "query", "cookie"]
1370
+ },
1371
+ "description": {
1372
+ "type": "string"
1373
+ }
1374
+ },
1375
+ "patternProperties": {
1376
+ "^x-": {}
1377
+ },
1378
+ "additionalProperties": false
1379
+ },
1380
+ "HTTPSecurityScheme": {
1381
+ "type": "object",
1382
+ "required": ["scheme", "type"],
1383
+ "properties": {
1384
+ "scheme": {
1385
+ "type": "string"
1386
+ },
1387
+ "bearerFormat": {
1388
+ "type": "string"
1389
+ },
1390
+ "description": {
1391
+ "type": "string"
1392
+ },
1393
+ "type": {
1394
+ "type": "string",
1395
+ "const": "http"
1396
+ }
1397
+ },
1398
+ "patternProperties": {
1399
+ "^x-": {}
1400
+ },
1401
+ "additionalProperties": false,
1402
+ "oneOf": [
1403
+ {
1404
+ "description": "Bearer",
1405
+ "properties": {
1406
+ "scheme": {
1407
+ "const": "bearer"
1408
+ }
1409
+ }
1410
+ },
1411
+ {
1412
+ "description": "Non Bearer",
1413
+ "not": {
1414
+ "required": ["bearerFormat"]
1415
+ },
1416
+ "properties": {
1417
+ "scheme": {
1418
+ "not": {
1419
+ "const": "bearer"
1420
+ }
1421
+ }
1422
+ }
1423
+ }
1424
+ ]
1425
+ },
1426
+ "OAuth2SecurityScheme": {
1427
+ "type": "object",
1428
+ "required": ["type", "flows"],
1429
+ "properties": {
1430
+ "type": {
1431
+ "const": "oauth2"
1432
+ },
1433
+ "flows": {
1434
+ "$ref": "#/definitions/OAuthFlows"
1435
+ },
1436
+ "description": {
1437
+ "type": "string"
1438
+ }
1439
+ },
1440
+ "patternProperties": {
1441
+ "^x-": {}
1442
+ },
1443
+ "additionalProperties": false
1444
+ },
1445
+ "OpenIdConnectSecurityScheme": {
1446
+ "type": "object",
1447
+ "required": ["type", "openIdConnectUrl"],
1448
+ "properties": {
1449
+ "type": {
1450
+ "const": "openIdConnect"
1451
+ },
1452
+ "openIdConnectUrl": {
1453
+ "type": "string",
1454
+ "format": "uri-reference"
1455
+ },
1456
+ "description": {
1457
+ "type": "string"
1458
+ }
1459
+ },
1460
+ "patternProperties": {
1461
+ "^x-": {}
1462
+ },
1463
+ "additionalProperties": false
1464
+ },
1465
+ "OAuthFlows": {
1466
+ "type": "object",
1467
+ "properties": {
1468
+ "implicit": {
1469
+ "$ref": "#/definitions/ImplicitOAuthFlow"
1470
+ },
1471
+ "password": {
1472
+ "$ref": "#/definitions/PasswordOAuthFlow"
1473
+ },
1474
+ "clientCredentials": {
1475
+ "$ref": "#/definitions/ClientCredentialsFlow"
1476
+ },
1477
+ "authorizationCode": {
1478
+ "$ref": "#/definitions/AuthorizationCodeOAuthFlow"
1479
+ }
1480
+ },
1481
+ "patternProperties": {
1482
+ "^x-": {}
1483
+ },
1484
+ "additionalProperties": false
1485
+ },
1486
+ "ImplicitOAuthFlow": {
1487
+ "type": "object",
1488
+ "required": ["authorizationUrl", "scopes"],
1489
+ "properties": {
1490
+ "authorizationUrl": {
1491
+ "type": "string",
1492
+ "format": "uri-reference"
1493
+ },
1494
+ "refreshUrl": {
1495
+ "type": "string",
1496
+ "format": "uri-reference"
1497
+ },
1498
+ "scopes": {
1499
+ "type": "object",
1500
+ "additionalProperties": {
1501
+ "type": "string"
1502
+ }
1503
+ }
1504
+ },
1505
+ "patternProperties": {
1506
+ "^x-": {}
1507
+ },
1508
+ "additionalProperties": false
1509
+ },
1510
+ "PasswordOAuthFlow": {
1511
+ "type": "object",
1512
+ "required": ["tokenUrl", "scopes"],
1513
+ "properties": {
1514
+ "tokenUrl": {
1515
+ "type": "string",
1516
+ "format": "uri-reference"
1517
+ },
1518
+ "refreshUrl": {
1519
+ "type": "string",
1520
+ "format": "uri-reference"
1521
+ },
1522
+ "scopes": {
1523
+ "type": "object",
1524
+ "additionalProperties": {
1525
+ "type": "string"
1526
+ }
1527
+ }
1528
+ },
1529
+ "patternProperties": {
1530
+ "^x-": {}
1531
+ },
1532
+ "additionalProperties": false
1533
+ },
1534
+ "ClientCredentialsFlow": {
1535
+ "type": "object",
1536
+ "required": ["tokenUrl", "scopes"],
1537
+ "properties": {
1538
+ "tokenUrl": {
1539
+ "type": "string",
1540
+ "format": "uri-reference"
1541
+ },
1542
+ "refreshUrl": {
1543
+ "type": "string",
1544
+ "format": "uri-reference"
1545
+ },
1546
+ "scopes": {
1547
+ "type": "object",
1548
+ "additionalProperties": {
1549
+ "type": "string"
1550
+ }
1551
+ }
1552
+ },
1553
+ "patternProperties": {
1554
+ "^x-": {}
1555
+ },
1556
+ "additionalProperties": false
1557
+ },
1558
+ "AuthorizationCodeOAuthFlow": {
1559
+ "type": "object",
1560
+ "required": ["authorizationUrl", "tokenUrl", "scopes"],
1561
+ "properties": {
1562
+ "authorizationUrl": {
1563
+ "type": "string",
1564
+ "format": "uri-reference"
1565
+ },
1566
+ "tokenUrl": {
1567
+ "type": "string",
1568
+ "format": "uri-reference"
1569
+ },
1570
+ "refreshUrl": {
1571
+ "type": "string",
1572
+ "format": "uri-reference"
1573
+ },
1574
+ "scopes": {
1575
+ "type": "object",
1576
+ "additionalProperties": {
1577
+ "type": "string"
1578
+ }
1579
+ }
1580
+ },
1581
+ "patternProperties": {
1582
+ "^x-": {}
1583
+ },
1584
+ "additionalProperties": false
1585
+ },
1586
+ "Link": {
1587
+ "type": "object",
1588
+ "properties": {
1589
+ "operationId": {
1590
+ "type": "string"
1591
+ },
1592
+ "operationRef": {
1593
+ "type": "string",
1594
+ "format": "uri-reference"
1595
+ },
1596
+ "parameters": {
1597
+ "type": "object",
1598
+ "additionalProperties": {}
1599
+ },
1600
+ "requestBody": {},
1601
+ "description": {
1602
+ "type": "string"
1603
+ },
1604
+ "server": {
1605
+ "$ref": "#/definitions/Server"
1606
+ }
1607
+ },
1608
+ "patternProperties": {
1609
+ "^x-": {}
1610
+ },
1611
+ "additionalProperties": false,
1612
+ "not": {
1613
+ "description": "Operation Id and Operation Ref are mutually exclusive",
1614
+ "required": ["operationId", "operationRef"]
1615
+ }
1616
+ },
1617
+ "Callback": {
1618
+ "type": "object",
1619
+ "additionalProperties": {
1620
+ "$ref": "#/definitions/PathItem"
1621
+ },
1622
+ "patternProperties": {
1623
+ "^x-": {}
1624
+ }
1625
+ },
1626
+ "Encoding": {
1627
+ "type": "object",
1628
+ "properties": {
1629
+ "contentType": {
1630
+ "type": "string"
1631
+ },
1632
+ "headers": {
1633
+ "type": "object",
1634
+ "additionalProperties": {
1635
+ "$ref": "#/definitions/Header"
1636
+ }
1637
+ },
1638
+ "style": {
1639
+ "enum": ["form", "spaceDelimited", "pipeDelimited", "deepObject"]
1640
+ },
1641
+ "explode": {
1642
+ "type": "boolean"
1643
+ },
1644
+ "allowReserved": {
1645
+ "type": "boolean",
1646
+ "default": false
1647
+ }
1648
+ },
1649
+ "additionalProperties": false
1650
+ }
1651
+ }
1652
+ }