@scalar/openapi-validator 0.1.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.
@@ -0,0 +1,1499 @@
1
+ export default {
2
+ 'id': 'https://spec.openapis.org/oas/3.0/schema/2021-09-28',
3
+ '$schema': 'http://json-schema.org/draft-04/schema#',
4
+ 'description': 'The description of OpenAPI v3.0.x documents, as defined by https://spec.openapis.org/oas/v3.0.3',
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
+ 'oneOf': [
177
+ {
178
+ '$ref': '#/definitions/Schema',
179
+ },
180
+ {
181
+ '$ref': '#/definitions/Reference',
182
+ },
183
+ ],
184
+ },
185
+ },
186
+ },
187
+ 'responses': {
188
+ 'type': 'object',
189
+ 'patternProperties': {
190
+ '^[a-zA-Z0-9\\.\\-_]+$': {
191
+ 'oneOf': [
192
+ {
193
+ '$ref': '#/definitions/Reference',
194
+ },
195
+ {
196
+ '$ref': '#/definitions/Response',
197
+ },
198
+ ],
199
+ },
200
+ },
201
+ },
202
+ 'parameters': {
203
+ 'type': 'object',
204
+ 'patternProperties': {
205
+ '^[a-zA-Z0-9\\.\\-_]+$': {
206
+ 'oneOf': [
207
+ {
208
+ '$ref': '#/definitions/Reference',
209
+ },
210
+ {
211
+ '$ref': '#/definitions/Parameter',
212
+ },
213
+ ],
214
+ },
215
+ },
216
+ },
217
+ 'examples': {
218
+ 'type': 'object',
219
+ 'patternProperties': {
220
+ '^[a-zA-Z0-9\\.\\-_]+$': {
221
+ 'oneOf': [
222
+ {
223
+ '$ref': '#/definitions/Reference',
224
+ },
225
+ {
226
+ '$ref': '#/definitions/Example',
227
+ },
228
+ ],
229
+ },
230
+ },
231
+ },
232
+ 'requestBodies': {
233
+ 'type': 'object',
234
+ 'patternProperties': {
235
+ '^[a-zA-Z0-9\\.\\-_]+$': {
236
+ 'oneOf': [
237
+ {
238
+ '$ref': '#/definitions/Reference',
239
+ },
240
+ {
241
+ '$ref': '#/definitions/RequestBody',
242
+ },
243
+ ],
244
+ },
245
+ },
246
+ },
247
+ 'headers': {
248
+ 'type': 'object',
249
+ 'patternProperties': {
250
+ '^[a-zA-Z0-9\\.\\-_]+$': {
251
+ 'oneOf': [
252
+ {
253
+ '$ref': '#/definitions/Reference',
254
+ },
255
+ {
256
+ '$ref': '#/definitions/Header',
257
+ },
258
+ ],
259
+ },
260
+ },
261
+ },
262
+ 'securitySchemes': {
263
+ 'type': 'object',
264
+ 'patternProperties': {
265
+ '^[a-zA-Z0-9\\.\\-_]+$': {
266
+ 'oneOf': [
267
+ {
268
+ '$ref': '#/definitions/Reference',
269
+ },
270
+ {
271
+ '$ref': '#/definitions/SecurityScheme',
272
+ },
273
+ ],
274
+ },
275
+ },
276
+ },
277
+ 'links': {
278
+ 'type': 'object',
279
+ 'patternProperties': {
280
+ '^[a-zA-Z0-9\\.\\-_]+$': {
281
+ 'oneOf': [
282
+ {
283
+ '$ref': '#/definitions/Reference',
284
+ },
285
+ {
286
+ '$ref': '#/definitions/Link',
287
+ },
288
+ ],
289
+ },
290
+ },
291
+ },
292
+ 'callbacks': {
293
+ 'type': 'object',
294
+ 'patternProperties': {
295
+ '^[a-zA-Z0-9\\.\\-_]+$': {
296
+ 'oneOf': [
297
+ {
298
+ '$ref': '#/definitions/Reference',
299
+ },
300
+ {
301
+ '$ref': '#/definitions/Callback',
302
+ },
303
+ ],
304
+ },
305
+ },
306
+ },
307
+ },
308
+ 'patternProperties': {
309
+ '^x-': {},
310
+ },
311
+ 'additionalProperties': false,
312
+ },
313
+ 'Schema': {
314
+ 'type': 'object',
315
+ 'properties': {
316
+ 'title': {
317
+ 'type': 'string',
318
+ },
319
+ 'multipleOf': {
320
+ 'type': 'number',
321
+ 'minimum': 0,
322
+ 'exclusiveMinimum': true,
323
+ },
324
+ 'maximum': {
325
+ 'type': 'number',
326
+ },
327
+ 'exclusiveMaximum': {
328
+ 'type': 'boolean',
329
+ 'default': false,
330
+ },
331
+ 'minimum': {
332
+ 'type': 'number',
333
+ },
334
+ 'exclusiveMinimum': {
335
+ 'type': 'boolean',
336
+ 'default': false,
337
+ },
338
+ 'maxLength': {
339
+ 'type': 'integer',
340
+ 'minimum': 0,
341
+ },
342
+ 'minLength': {
343
+ 'type': 'integer',
344
+ 'minimum': 0,
345
+ 'default': 0,
346
+ },
347
+ 'pattern': {
348
+ 'type': 'string',
349
+ 'format': 'regex',
350
+ },
351
+ 'maxItems': {
352
+ 'type': 'integer',
353
+ 'minimum': 0,
354
+ },
355
+ 'minItems': {
356
+ 'type': 'integer',
357
+ 'minimum': 0,
358
+ 'default': 0,
359
+ },
360
+ 'uniqueItems': {
361
+ 'type': 'boolean',
362
+ 'default': false,
363
+ },
364
+ 'maxProperties': {
365
+ 'type': 'integer',
366
+ 'minimum': 0,
367
+ },
368
+ 'minProperties': {
369
+ 'type': 'integer',
370
+ 'minimum': 0,
371
+ 'default': 0,
372
+ },
373
+ 'required': {
374
+ 'type': 'array',
375
+ 'items': {
376
+ 'type': 'string',
377
+ },
378
+ 'minItems': 1,
379
+ 'uniqueItems': true,
380
+ },
381
+ 'enum': {
382
+ 'type': 'array',
383
+ 'items': {},
384
+ 'minItems': 1,
385
+ 'uniqueItems': false,
386
+ },
387
+ 'type': {
388
+ 'type': 'string',
389
+ 'enum': ['array', 'boolean', 'integer', 'number', 'object', 'string'],
390
+ },
391
+ 'not': {
392
+ 'oneOf': [
393
+ {
394
+ '$ref': '#/definitions/Schema',
395
+ },
396
+ {
397
+ '$ref': '#/definitions/Reference',
398
+ },
399
+ ],
400
+ },
401
+ 'allOf': {
402
+ 'type': 'array',
403
+ 'items': {
404
+ 'oneOf': [
405
+ {
406
+ '$ref': '#/definitions/Schema',
407
+ },
408
+ {
409
+ '$ref': '#/definitions/Reference',
410
+ },
411
+ ],
412
+ },
413
+ },
414
+ 'oneOf': {
415
+ 'type': 'array',
416
+ 'items': {
417
+ 'oneOf': [
418
+ {
419
+ '$ref': '#/definitions/Schema',
420
+ },
421
+ {
422
+ '$ref': '#/definitions/Reference',
423
+ },
424
+ ],
425
+ },
426
+ },
427
+ 'anyOf': {
428
+ 'type': 'array',
429
+ 'items': {
430
+ 'oneOf': [
431
+ {
432
+ '$ref': '#/definitions/Schema',
433
+ },
434
+ {
435
+ '$ref': '#/definitions/Reference',
436
+ },
437
+ ],
438
+ },
439
+ },
440
+ 'items': {
441
+ 'oneOf': [
442
+ {
443
+ '$ref': '#/definitions/Schema',
444
+ },
445
+ {
446
+ '$ref': '#/definitions/Reference',
447
+ },
448
+ ],
449
+ },
450
+ 'properties': {
451
+ 'type': 'object',
452
+ 'additionalProperties': {
453
+ 'oneOf': [
454
+ {
455
+ '$ref': '#/definitions/Schema',
456
+ },
457
+ {
458
+ '$ref': '#/definitions/Reference',
459
+ },
460
+ ],
461
+ },
462
+ },
463
+ 'additionalProperties': {
464
+ 'oneOf': [
465
+ {
466
+ '$ref': '#/definitions/Schema',
467
+ },
468
+ {
469
+ '$ref': '#/definitions/Reference',
470
+ },
471
+ {
472
+ 'type': 'boolean',
473
+ },
474
+ ],
475
+ 'default': true,
476
+ },
477
+ 'description': {
478
+ 'type': 'string',
479
+ },
480
+ 'format': {
481
+ 'type': 'string',
482
+ },
483
+ 'default': {},
484
+ 'nullable': {
485
+ 'type': 'boolean',
486
+ 'default': false,
487
+ },
488
+ 'discriminator': {
489
+ '$ref': '#/definitions/Discriminator',
490
+ },
491
+ 'readOnly': {
492
+ 'type': 'boolean',
493
+ 'default': false,
494
+ },
495
+ 'writeOnly': {
496
+ 'type': 'boolean',
497
+ 'default': false,
498
+ },
499
+ 'example': {},
500
+ 'externalDocs': {
501
+ '$ref': '#/definitions/ExternalDocumentation',
502
+ },
503
+ 'deprecated': {
504
+ 'type': 'boolean',
505
+ 'default': false,
506
+ },
507
+ 'xml': {
508
+ '$ref': '#/definitions/XML',
509
+ },
510
+ },
511
+ 'patternProperties': {
512
+ '^x-': {},
513
+ },
514
+ 'additionalProperties': false,
515
+ },
516
+ 'Discriminator': {
517
+ 'type': 'object',
518
+ 'required': ['propertyName'],
519
+ 'properties': {
520
+ 'propertyName': {
521
+ 'type': 'string',
522
+ },
523
+ 'mapping': {
524
+ 'type': 'object',
525
+ 'additionalProperties': {
526
+ 'type': 'string',
527
+ },
528
+ },
529
+ },
530
+ },
531
+ 'XML': {
532
+ 'type': 'object',
533
+ 'properties': {
534
+ 'name': {
535
+ 'type': 'string',
536
+ },
537
+ 'namespace': {
538
+ 'type': 'string',
539
+ 'format': 'uri',
540
+ },
541
+ 'prefix': {
542
+ 'type': 'string',
543
+ },
544
+ 'attribute': {
545
+ 'type': 'boolean',
546
+ 'default': false,
547
+ },
548
+ 'wrapped': {
549
+ 'type': 'boolean',
550
+ 'default': false,
551
+ },
552
+ },
553
+ 'patternProperties': {
554
+ '^x-': {},
555
+ },
556
+ 'additionalProperties': false,
557
+ },
558
+ 'Response': {
559
+ 'type': 'object',
560
+ 'required': ['description'],
561
+ 'properties': {
562
+ 'description': {
563
+ 'type': 'string',
564
+ },
565
+ 'headers': {
566
+ 'type': 'object',
567
+ 'additionalProperties': {
568
+ 'oneOf': [
569
+ {
570
+ '$ref': '#/definitions/Header',
571
+ },
572
+ {
573
+ '$ref': '#/definitions/Reference',
574
+ },
575
+ ],
576
+ },
577
+ },
578
+ 'content': {
579
+ 'type': 'object',
580
+ 'additionalProperties': {
581
+ '$ref': '#/definitions/MediaType',
582
+ },
583
+ },
584
+ 'links': {
585
+ 'type': 'object',
586
+ 'additionalProperties': {
587
+ 'oneOf': [
588
+ {
589
+ '$ref': '#/definitions/Link',
590
+ },
591
+ {
592
+ '$ref': '#/definitions/Reference',
593
+ },
594
+ ],
595
+ },
596
+ },
597
+ },
598
+ 'patternProperties': {
599
+ '^x-': {},
600
+ },
601
+ 'additionalProperties': false,
602
+ },
603
+ 'MediaType': {
604
+ 'type': 'object',
605
+ 'properties': {
606
+ 'schema': {
607
+ 'oneOf': [
608
+ {
609
+ '$ref': '#/definitions/Schema',
610
+ },
611
+ {
612
+ '$ref': '#/definitions/Reference',
613
+ },
614
+ ],
615
+ },
616
+ 'example': {},
617
+ 'examples': {
618
+ 'type': 'object',
619
+ 'additionalProperties': {
620
+ 'oneOf': [
621
+ {
622
+ '$ref': '#/definitions/Example',
623
+ },
624
+ {
625
+ '$ref': '#/definitions/Reference',
626
+ },
627
+ ],
628
+ },
629
+ },
630
+ 'encoding': {
631
+ 'type': 'object',
632
+ 'additionalProperties': {
633
+ '$ref': '#/definitions/Encoding',
634
+ },
635
+ },
636
+ },
637
+ 'patternProperties': {
638
+ '^x-': {},
639
+ },
640
+ 'additionalProperties': false,
641
+ 'allOf': [
642
+ {
643
+ '$ref': '#/definitions/ExampleXORExamples',
644
+ },
645
+ ],
646
+ },
647
+ 'Example': {
648
+ 'type': 'object',
649
+ 'properties': {
650
+ 'summary': {
651
+ 'type': 'string',
652
+ },
653
+ 'description': {
654
+ 'type': 'string',
655
+ },
656
+ 'value': {},
657
+ 'externalValue': {
658
+ 'type': 'string',
659
+ 'format': 'uri-reference',
660
+ },
661
+ },
662
+ 'patternProperties': {
663
+ '^x-': {},
664
+ },
665
+ 'additionalProperties': false,
666
+ },
667
+ 'Header': {
668
+ 'type': 'object',
669
+ 'properties': {
670
+ 'description': {
671
+ 'type': 'string',
672
+ },
673
+ 'required': {
674
+ 'type': 'boolean',
675
+ 'default': false,
676
+ },
677
+ 'deprecated': {
678
+ 'type': 'boolean',
679
+ 'default': false,
680
+ },
681
+ 'allowEmptyValue': {
682
+ 'type': 'boolean',
683
+ 'default': false,
684
+ },
685
+ 'style': {
686
+ 'type': 'string',
687
+ 'enum': ['simple'],
688
+ 'default': 'simple',
689
+ },
690
+ 'explode': {
691
+ 'type': 'boolean',
692
+ },
693
+ 'allowReserved': {
694
+ 'type': 'boolean',
695
+ 'default': false,
696
+ },
697
+ 'schema': {
698
+ 'oneOf': [
699
+ {
700
+ '$ref': '#/definitions/Schema',
701
+ },
702
+ {
703
+ '$ref': '#/definitions/Reference',
704
+ },
705
+ ],
706
+ },
707
+ 'content': {
708
+ 'type': 'object',
709
+ 'additionalProperties': {
710
+ '$ref': '#/definitions/MediaType',
711
+ },
712
+ 'minProperties': 1,
713
+ 'maxProperties': 1,
714
+ },
715
+ 'example': {},
716
+ 'examples': {
717
+ 'type': 'object',
718
+ 'additionalProperties': {
719
+ 'oneOf': [
720
+ {
721
+ '$ref': '#/definitions/Example',
722
+ },
723
+ {
724
+ '$ref': '#/definitions/Reference',
725
+ },
726
+ ],
727
+ },
728
+ },
729
+ },
730
+ 'patternProperties': {
731
+ '^x-': {},
732
+ },
733
+ 'additionalProperties': false,
734
+ 'allOf': [
735
+ {
736
+ '$ref': '#/definitions/ExampleXORExamples',
737
+ },
738
+ {
739
+ '$ref': '#/definitions/SchemaXORContent',
740
+ },
741
+ ],
742
+ },
743
+ 'Paths': {
744
+ 'type': 'object',
745
+ 'patternProperties': {
746
+ '^\\/': {
747
+ '$ref': '#/definitions/PathItemOrReference',
748
+ },
749
+ '^x-': {},
750
+ },
751
+ 'additionalProperties': false,
752
+ },
753
+ 'PathItem': {
754
+ 'type': 'object',
755
+ 'properties': {
756
+ 'summary': {
757
+ 'type': 'string',
758
+ },
759
+ 'description': {
760
+ 'type': 'string',
761
+ },
762
+ 'servers': {
763
+ 'type': 'array',
764
+ 'items': {
765
+ '$ref': '#/definitions/Server',
766
+ },
767
+ },
768
+ 'parameters': {
769
+ 'type': 'array',
770
+ 'items': {
771
+ 'oneOf': [
772
+ {
773
+ '$ref': '#/definitions/Parameter',
774
+ },
775
+ {
776
+ '$ref': '#/definitions/Reference',
777
+ },
778
+ ],
779
+ },
780
+ 'uniqueItems': true,
781
+ },
782
+ },
783
+ 'patternProperties': {
784
+ '^(get|put|post|delete|options|head|patch|trace)$': {
785
+ '$ref': '#/definitions/Operation',
786
+ },
787
+ '^x-': {},
788
+ },
789
+ 'additionalProperties': false,
790
+ },
791
+ 'PathItemOrReference': {
792
+ 'oneOf': [
793
+ {
794
+ '$ref': '#/definitions/PathItem',
795
+ },
796
+ {
797
+ '$ref': '#/definitions/Reference',
798
+ },
799
+ ],
800
+ },
801
+ 'Operation': {
802
+ 'type': 'object',
803
+ 'required': ['responses'],
804
+ 'properties': {
805
+ 'tags': {
806
+ 'type': 'array',
807
+ 'items': {
808
+ 'type': 'string',
809
+ },
810
+ },
811
+ 'summary': {
812
+ 'type': 'string',
813
+ },
814
+ 'description': {
815
+ 'type': 'string',
816
+ },
817
+ 'externalDocs': {
818
+ '$ref': '#/definitions/ExternalDocumentation',
819
+ },
820
+ 'operationId': {
821
+ 'type': 'string',
822
+ },
823
+ 'parameters': {
824
+ 'type': 'array',
825
+ 'items': {
826
+ 'oneOf': [
827
+ {
828
+ '$ref': '#/definitions/Parameter',
829
+ },
830
+ {
831
+ '$ref': '#/definitions/Reference',
832
+ },
833
+ ],
834
+ },
835
+ 'uniqueItems': true,
836
+ },
837
+ 'requestBody': {
838
+ 'oneOf': [
839
+ {
840
+ '$ref': '#/definitions/RequestBody',
841
+ },
842
+ {
843
+ '$ref': '#/definitions/Reference',
844
+ },
845
+ ],
846
+ },
847
+ 'responses': {
848
+ '$ref': '#/definitions/Responses',
849
+ },
850
+ 'callbacks': {
851
+ 'type': 'object',
852
+ 'additionalProperties': {
853
+ 'oneOf': [
854
+ {
855
+ '$ref': '#/definitions/Callback',
856
+ },
857
+ {
858
+ '$ref': '#/definitions/Reference',
859
+ },
860
+ ],
861
+ },
862
+ },
863
+ 'deprecated': {
864
+ 'type': 'boolean',
865
+ 'default': false,
866
+ },
867
+ 'security': {
868
+ 'type': 'array',
869
+ 'items': {
870
+ '$ref': '#/definitions/SecurityRequirement',
871
+ },
872
+ },
873
+ 'servers': {
874
+ 'type': 'array',
875
+ 'items': {
876
+ '$ref': '#/definitions/Server',
877
+ },
878
+ },
879
+ },
880
+ 'patternProperties': {
881
+ '^x-': {},
882
+ },
883
+ 'additionalProperties': false,
884
+ },
885
+ 'Responses': {
886
+ 'type': 'object',
887
+ 'properties': {
888
+ 'default': {
889
+ 'oneOf': [
890
+ {
891
+ '$ref': '#/definitions/Response',
892
+ },
893
+ {
894
+ '$ref': '#/definitions/Reference',
895
+ },
896
+ ],
897
+ },
898
+ },
899
+ 'patternProperties': {
900
+ '^[1-5](?:\\d{2}|XX)$': {
901
+ 'oneOf': [
902
+ {
903
+ '$ref': '#/definitions/Response',
904
+ },
905
+ {
906
+ '$ref': '#/definitions/Reference',
907
+ },
908
+ ],
909
+ },
910
+ '^x-': {},
911
+ },
912
+ 'minProperties': 1,
913
+ 'additionalProperties': false,
914
+ },
915
+ 'SecurityRequirement': {
916
+ 'type': 'object',
917
+ 'additionalProperties': {
918
+ 'type': 'array',
919
+ 'items': {
920
+ 'type': 'string',
921
+ },
922
+ },
923
+ },
924
+ 'Tag': {
925
+ 'type': 'object',
926
+ 'required': ['name'],
927
+ 'properties': {
928
+ 'name': {
929
+ 'type': 'string',
930
+ },
931
+ 'description': {
932
+ 'type': 'string',
933
+ },
934
+ 'externalDocs': {
935
+ '$ref': '#/definitions/ExternalDocumentation',
936
+ },
937
+ },
938
+ 'patternProperties': {
939
+ '^x-': {},
940
+ },
941
+ 'additionalProperties': false,
942
+ },
943
+ 'ExternalDocumentation': {
944
+ 'type': 'object',
945
+ 'required': ['url'],
946
+ 'properties': {
947
+ 'description': {
948
+ 'type': 'string',
949
+ },
950
+ 'url': {
951
+ 'type': 'string',
952
+ 'format': 'uri-reference',
953
+ },
954
+ },
955
+ 'patternProperties': {
956
+ '^x-': {},
957
+ },
958
+ 'additionalProperties': false,
959
+ },
960
+ 'ExampleXORExamples': {
961
+ 'description': 'Example and examples are mutually exclusive',
962
+ 'not': {
963
+ 'required': ['example', 'examples'],
964
+ },
965
+ },
966
+ 'SchemaXORContent': {
967
+ 'description': 'Schema and content are mutually exclusive, at least one is required',
968
+ 'not': {
969
+ 'required': ['schema', 'content'],
970
+ },
971
+ 'oneOf': [
972
+ {
973
+ 'required': ['schema'],
974
+ },
975
+ {
976
+ 'required': ['content'],
977
+ 'description': 'Some properties are not allowed if content is present',
978
+ 'allOf': [
979
+ {
980
+ 'not': {
981
+ 'required': ['style'],
982
+ },
983
+ },
984
+ {
985
+ 'not': {
986
+ 'required': ['explode'],
987
+ },
988
+ },
989
+ {
990
+ 'not': {
991
+ 'required': ['allowReserved'],
992
+ },
993
+ },
994
+ {
995
+ 'not': {
996
+ 'required': ['example'],
997
+ },
998
+ },
999
+ {
1000
+ 'not': {
1001
+ 'required': ['examples'],
1002
+ },
1003
+ },
1004
+ ],
1005
+ },
1006
+ ],
1007
+ },
1008
+ 'Parameter': {
1009
+ 'type': 'object',
1010
+ 'properties': {
1011
+ 'name': {
1012
+ 'type': 'string',
1013
+ },
1014
+ 'in': {
1015
+ 'type': 'string',
1016
+ },
1017
+ 'description': {
1018
+ 'type': 'string',
1019
+ },
1020
+ 'required': {
1021
+ 'type': 'boolean',
1022
+ 'default': false,
1023
+ },
1024
+ 'deprecated': {
1025
+ 'type': 'boolean',
1026
+ 'default': false,
1027
+ },
1028
+ 'allowEmptyValue': {
1029
+ 'type': 'boolean',
1030
+ 'default': false,
1031
+ },
1032
+ 'style': {
1033
+ 'type': 'string',
1034
+ },
1035
+ 'explode': {
1036
+ 'type': 'boolean',
1037
+ },
1038
+ 'allowReserved': {
1039
+ 'type': 'boolean',
1040
+ 'default': false,
1041
+ },
1042
+ 'schema': {
1043
+ 'oneOf': [
1044
+ {
1045
+ '$ref': '#/definitions/Schema',
1046
+ },
1047
+ {
1048
+ '$ref': '#/definitions/Reference',
1049
+ },
1050
+ ],
1051
+ },
1052
+ 'content': {
1053
+ 'type': 'object',
1054
+ 'additionalProperties': {
1055
+ '$ref': '#/definitions/MediaType',
1056
+ },
1057
+ 'minProperties': 1,
1058
+ 'maxProperties': 1,
1059
+ },
1060
+ 'example': {},
1061
+ 'examples': {
1062
+ 'type': 'object',
1063
+ 'additionalProperties': {
1064
+ 'oneOf': [
1065
+ {
1066
+ '$ref': '#/definitions/Example',
1067
+ },
1068
+ {
1069
+ '$ref': '#/definitions/Reference',
1070
+ },
1071
+ ],
1072
+ },
1073
+ },
1074
+ },
1075
+ 'patternProperties': {
1076
+ '^x-': {},
1077
+ },
1078
+ 'additionalProperties': false,
1079
+ 'required': ['name', 'in'],
1080
+ 'allOf': [
1081
+ {
1082
+ '$ref': '#/definitions/ExampleXORExamples',
1083
+ },
1084
+ {
1085
+ '$ref': '#/definitions/SchemaXORContent',
1086
+ },
1087
+ {
1088
+ '$ref': '#/definitions/ParameterLocation',
1089
+ },
1090
+ ],
1091
+ },
1092
+ 'ParameterLocation': {
1093
+ 'description': 'Parameter location',
1094
+ 'oneOf': [
1095
+ {
1096
+ 'description': 'Parameter in path',
1097
+ 'required': ['required'],
1098
+ 'properties': {
1099
+ 'in': {
1100
+ 'enum': ['path'],
1101
+ },
1102
+ 'style': {
1103
+ 'enum': ['matrix', 'label', 'simple'],
1104
+ 'default': 'simple',
1105
+ },
1106
+ 'required': {
1107
+ 'enum': [true],
1108
+ },
1109
+ },
1110
+ },
1111
+ {
1112
+ 'description': 'Parameter in query',
1113
+ 'properties': {
1114
+ 'in': {
1115
+ 'enum': ['query'],
1116
+ },
1117
+ 'style': {
1118
+ 'enum': ['form', 'spaceDelimited', 'pipeDelimited', 'deepObject'],
1119
+ 'default': 'form',
1120
+ },
1121
+ },
1122
+ },
1123
+ {
1124
+ 'description': 'Parameter in header',
1125
+ 'properties': {
1126
+ 'in': {
1127
+ 'enum': ['header'],
1128
+ },
1129
+ 'style': {
1130
+ 'enum': ['simple'],
1131
+ 'default': 'simple',
1132
+ },
1133
+ },
1134
+ },
1135
+ {
1136
+ 'description': 'Parameter in cookie',
1137
+ 'properties': {
1138
+ 'in': {
1139
+ 'enum': ['cookie'],
1140
+ },
1141
+ 'style': {
1142
+ 'enum': ['form'],
1143
+ 'default': 'form',
1144
+ },
1145
+ },
1146
+ },
1147
+ ],
1148
+ },
1149
+ 'RequestBody': {
1150
+ 'type': 'object',
1151
+ 'required': ['content'],
1152
+ 'properties': {
1153
+ 'description': {
1154
+ 'type': 'string',
1155
+ },
1156
+ 'content': {
1157
+ 'type': 'object',
1158
+ 'additionalProperties': {
1159
+ '$ref': '#/definitions/MediaType',
1160
+ },
1161
+ },
1162
+ 'required': {
1163
+ 'type': 'boolean',
1164
+ 'default': false,
1165
+ },
1166
+ },
1167
+ 'patternProperties': {
1168
+ '^x-': {},
1169
+ },
1170
+ 'additionalProperties': false,
1171
+ },
1172
+ 'SecurityScheme': {
1173
+ 'oneOf': [
1174
+ {
1175
+ '$ref': '#/definitions/APIKeySecurityScheme',
1176
+ },
1177
+ {
1178
+ '$ref': '#/definitions/HTTPSecurityScheme',
1179
+ },
1180
+ {
1181
+ '$ref': '#/definitions/OAuth2SecurityScheme',
1182
+ },
1183
+ {
1184
+ '$ref': '#/definitions/OpenIdConnectSecurityScheme',
1185
+ },
1186
+ ],
1187
+ 'discriminator': {
1188
+ 'propertyName': 'type',
1189
+ },
1190
+ },
1191
+ 'APIKeySecurityScheme': {
1192
+ 'type': 'object',
1193
+ 'required': ['type', 'name', 'in'],
1194
+ 'properties': {
1195
+ 'type': {
1196
+ 'type': 'string',
1197
+ 'enum': ['apiKey'],
1198
+ },
1199
+ 'name': {
1200
+ 'type': 'string',
1201
+ },
1202
+ 'in': {
1203
+ 'type': 'string',
1204
+ 'enum': ['header', 'query', 'cookie'],
1205
+ },
1206
+ 'description': {
1207
+ 'type': 'string',
1208
+ },
1209
+ },
1210
+ 'patternProperties': {
1211
+ '^x-': {},
1212
+ },
1213
+ 'additionalProperties': false,
1214
+ },
1215
+ 'HTTPSecurityScheme': {
1216
+ 'type': 'object',
1217
+ 'required': ['scheme', 'type'],
1218
+ 'properties': {
1219
+ 'scheme': {
1220
+ 'type': 'string',
1221
+ },
1222
+ 'bearerFormat': {
1223
+ 'type': 'string',
1224
+ },
1225
+ 'description': {
1226
+ 'type': 'string',
1227
+ },
1228
+ 'type': {
1229
+ 'type': 'string',
1230
+ 'enum': ['http'],
1231
+ },
1232
+ },
1233
+ 'patternProperties': {
1234
+ '^x-': {},
1235
+ },
1236
+ 'additionalProperties': false,
1237
+ 'oneOf': [
1238
+ {
1239
+ 'description': 'Bearer',
1240
+ 'properties': {
1241
+ 'scheme': {
1242
+ 'type': 'string',
1243
+ 'pattern': '^[Bb][Ee][Aa][Rr][Ee][Rr]$',
1244
+ },
1245
+ },
1246
+ },
1247
+ {
1248
+ 'description': 'Non Bearer',
1249
+ 'not': {
1250
+ 'required': ['bearerFormat'],
1251
+ },
1252
+ 'properties': {
1253
+ 'scheme': {
1254
+ 'not': {
1255
+ 'type': 'string',
1256
+ 'pattern': '^[Bb][Ee][Aa][Rr][Ee][Rr]$',
1257
+ },
1258
+ },
1259
+ },
1260
+ },
1261
+ ],
1262
+ },
1263
+ 'OAuth2SecurityScheme': {
1264
+ 'type': 'object',
1265
+ 'required': ['type', 'flows'],
1266
+ 'properties': {
1267
+ 'type': {
1268
+ 'type': 'string',
1269
+ 'enum': ['oauth2'],
1270
+ },
1271
+ 'flows': {
1272
+ '$ref': '#/definitions/OAuthFlows',
1273
+ },
1274
+ 'description': {
1275
+ 'type': 'string',
1276
+ },
1277
+ },
1278
+ 'patternProperties': {
1279
+ '^x-': {},
1280
+ },
1281
+ 'additionalProperties': false,
1282
+ },
1283
+ 'OpenIdConnectSecurityScheme': {
1284
+ 'type': 'object',
1285
+ 'required': ['type', 'openIdConnectUrl'],
1286
+ 'properties': {
1287
+ 'type': {
1288
+ 'type': 'string',
1289
+ 'enum': ['openIdConnect'],
1290
+ },
1291
+ 'openIdConnectUrl': {
1292
+ 'type': 'string',
1293
+ 'format': 'uri-reference',
1294
+ },
1295
+ 'description': {
1296
+ 'type': 'string',
1297
+ },
1298
+ },
1299
+ 'patternProperties': {
1300
+ '^x-': {},
1301
+ },
1302
+ 'additionalProperties': false,
1303
+ },
1304
+ 'OAuthFlows': {
1305
+ 'type': 'object',
1306
+ 'properties': {
1307
+ 'implicit': {
1308
+ '$ref': '#/definitions/ImplicitOAuthFlow',
1309
+ },
1310
+ 'password': {
1311
+ '$ref': '#/definitions/PasswordOAuthFlow',
1312
+ },
1313
+ 'clientCredentials': {
1314
+ '$ref': '#/definitions/ClientCredentialsFlow',
1315
+ },
1316
+ 'authorizationCode': {
1317
+ '$ref': '#/definitions/AuthorizationCodeOAuthFlow',
1318
+ },
1319
+ },
1320
+ 'patternProperties': {
1321
+ '^x-': {},
1322
+ },
1323
+ 'additionalProperties': false,
1324
+ },
1325
+ 'ImplicitOAuthFlow': {
1326
+ 'type': 'object',
1327
+ 'required': ['authorizationUrl', 'scopes'],
1328
+ 'properties': {
1329
+ 'authorizationUrl': {
1330
+ 'type': 'string',
1331
+ 'format': 'uri-reference',
1332
+ },
1333
+ 'refreshUrl': {
1334
+ 'type': 'string',
1335
+ 'format': 'uri-reference',
1336
+ },
1337
+ 'scopes': {
1338
+ 'type': 'object',
1339
+ 'additionalProperties': {
1340
+ 'type': 'string',
1341
+ },
1342
+ },
1343
+ },
1344
+ 'patternProperties': {
1345
+ '^x-': {},
1346
+ },
1347
+ 'additionalProperties': false,
1348
+ },
1349
+ 'PasswordOAuthFlow': {
1350
+ 'type': 'object',
1351
+ 'required': ['tokenUrl', 'scopes'],
1352
+ 'properties': {
1353
+ 'tokenUrl': {
1354
+ 'type': 'string',
1355
+ 'format': 'uri-reference',
1356
+ },
1357
+ 'refreshUrl': {
1358
+ 'type': 'string',
1359
+ 'format': 'uri-reference',
1360
+ },
1361
+ 'scopes': {
1362
+ 'type': 'object',
1363
+ 'additionalProperties': {
1364
+ 'type': 'string',
1365
+ },
1366
+ },
1367
+ },
1368
+ 'patternProperties': {
1369
+ '^x-': {},
1370
+ },
1371
+ 'additionalProperties': false,
1372
+ },
1373
+ 'ClientCredentialsFlow': {
1374
+ 'type': 'object',
1375
+ 'required': ['tokenUrl', 'scopes'],
1376
+ 'properties': {
1377
+ 'tokenUrl': {
1378
+ 'type': 'string',
1379
+ 'format': 'uri-reference',
1380
+ },
1381
+ 'refreshUrl': {
1382
+ 'type': 'string',
1383
+ 'format': 'uri-reference',
1384
+ },
1385
+ 'scopes': {
1386
+ 'type': 'object',
1387
+ 'additionalProperties': {
1388
+ 'type': 'string',
1389
+ },
1390
+ },
1391
+ },
1392
+ 'patternProperties': {
1393
+ '^x-': {},
1394
+ },
1395
+ 'additionalProperties': false,
1396
+ },
1397
+ 'AuthorizationCodeOAuthFlow': {
1398
+ 'type': 'object',
1399
+ 'required': ['authorizationUrl', 'tokenUrl', 'scopes'],
1400
+ 'properties': {
1401
+ 'authorizationUrl': {
1402
+ 'type': 'string',
1403
+ 'format': 'uri-reference',
1404
+ },
1405
+ 'tokenUrl': {
1406
+ 'type': 'string',
1407
+ 'format': 'uri-reference',
1408
+ },
1409
+ 'refreshUrl': {
1410
+ 'type': 'string',
1411
+ 'format': 'uri-reference',
1412
+ },
1413
+ 'scopes': {
1414
+ 'type': 'object',
1415
+ 'additionalProperties': {
1416
+ 'type': 'string',
1417
+ },
1418
+ },
1419
+ },
1420
+ 'patternProperties': {
1421
+ '^x-': {},
1422
+ },
1423
+ 'additionalProperties': false,
1424
+ },
1425
+ 'Link': {
1426
+ 'type': 'object',
1427
+ 'properties': {
1428
+ 'operationId': {
1429
+ 'type': 'string',
1430
+ },
1431
+ 'operationRef': {
1432
+ 'type': 'string',
1433
+ 'format': 'uri-reference',
1434
+ },
1435
+ 'parameters': {
1436
+ 'type': 'object',
1437
+ 'additionalProperties': {},
1438
+ },
1439
+ 'requestBody': {},
1440
+ 'description': {
1441
+ 'type': 'string',
1442
+ },
1443
+ 'server': {
1444
+ '$ref': '#/definitions/Server',
1445
+ },
1446
+ },
1447
+ 'patternProperties': {
1448
+ '^x-': {},
1449
+ },
1450
+ 'additionalProperties': false,
1451
+ 'not': {
1452
+ 'description': 'Operation Id and Operation Ref are mutually exclusive',
1453
+ 'required': ['operationId', 'operationRef'],
1454
+ },
1455
+ },
1456
+ 'Callback': {
1457
+ 'type': 'object',
1458
+ 'additionalProperties': {
1459
+ '$ref': '#/definitions/PathItem',
1460
+ },
1461
+ 'patternProperties': {
1462
+ '^x-': {},
1463
+ },
1464
+ },
1465
+ 'Encoding': {
1466
+ 'type': 'object',
1467
+ 'properties': {
1468
+ 'contentType': {
1469
+ 'type': 'string',
1470
+ },
1471
+ 'headers': {
1472
+ 'type': 'object',
1473
+ 'additionalProperties': {
1474
+ 'oneOf': [
1475
+ {
1476
+ '$ref': '#/definitions/Header',
1477
+ },
1478
+ {
1479
+ '$ref': '#/definitions/Reference',
1480
+ },
1481
+ ],
1482
+ },
1483
+ },
1484
+ 'style': {
1485
+ 'type': 'string',
1486
+ 'enum': ['form', 'spaceDelimited', 'pipeDelimited', 'deepObject'],
1487
+ },
1488
+ 'explode': {
1489
+ 'type': 'boolean',
1490
+ },
1491
+ 'allowReserved': {
1492
+ 'type': 'boolean',
1493
+ 'default': false,
1494
+ },
1495
+ },
1496
+ 'additionalProperties': false,
1497
+ },
1498
+ },
1499
+ };