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