@platformatic/gateway 3.0.0-alpha.6

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 (49) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +13 -0
  3. package/config.d.ts +1000 -0
  4. package/eslint.config.js +12 -0
  5. package/index.d.ts +58 -0
  6. package/index.js +34 -0
  7. package/lib/application.js +186 -0
  8. package/lib/capability.js +89 -0
  9. package/lib/commands/index.js +15 -0
  10. package/lib/commands/openapi-fetch-schemas.js +48 -0
  11. package/lib/errors.js +18 -0
  12. package/lib/gateway-hook.js +66 -0
  13. package/lib/generator.js +127 -0
  14. package/lib/graphql-fetch.js +83 -0
  15. package/lib/graphql-generator.js +33 -0
  16. package/lib/graphql.js +29 -0
  17. package/lib/metrics.js +12 -0
  18. package/lib/not-host-constraints.js +31 -0
  19. package/lib/openapi-composer.js +101 -0
  20. package/lib/openapi-config-schema.js +89 -0
  21. package/lib/openapi-generator.js +215 -0
  22. package/lib/openapi-load-config.js +31 -0
  23. package/lib/openapi-modifier.js +131 -0
  24. package/lib/openapi-scalar.js +22 -0
  25. package/lib/proxy.js +266 -0
  26. package/lib/root.js +75 -0
  27. package/lib/schema.js +258 -0
  28. package/lib/upgrade.js +20 -0
  29. package/lib/utils.js +16 -0
  30. package/lib/versions/2.0.0.js +9 -0
  31. package/lib/versions/3.0.0.js +24 -0
  32. package/package.json +83 -0
  33. package/public/images/dark_mode.svg +3 -0
  34. package/public/images/ellipse.svg +21 -0
  35. package/public/images/external-link.svg +5 -0
  36. package/public/images/favicon.ico +0 -0
  37. package/public/images/graphiql.svg +10 -0
  38. package/public/images/graphql.svg +10 -0
  39. package/public/images/light_mode.svg +11 -0
  40. package/public/images/openapi.svg +13 -0
  41. package/public/images/platformatic-logo-dark.svg +30 -0
  42. package/public/images/platformatic-logo-light.svg +30 -0
  43. package/public/images/reverse-proxy.svg +8 -0
  44. package/public/images/triangle_dark.svg +3 -0
  45. package/public/images/triangle_light.svg +3 -0
  46. package/public/index.html +253 -0
  47. package/public/index.njk +101 -0
  48. package/public/main.css +244 -0
  49. package/schema.json +3779 -0
package/schema.json ADDED
@@ -0,0 +1,3779 @@
1
+ {
2
+ "$id": "https://schemas.platformatic.dev/@platformatic/gateway/3.0.0-alpha.6.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Platformatic Gateway Config",
5
+ "type": "object",
6
+ "properties": {
7
+ "basePath": {
8
+ "type": "string"
9
+ },
10
+ "server": {
11
+ "type": "object",
12
+ "properties": {
13
+ "hostname": {
14
+ "type": "string"
15
+ },
16
+ "port": {
17
+ "anyOf": [
18
+ {
19
+ "type": "integer"
20
+ },
21
+ {
22
+ "type": "string"
23
+ }
24
+ ]
25
+ },
26
+ "pluginTimeout": {
27
+ "type": "integer"
28
+ },
29
+ "healthCheck": {
30
+ "anyOf": [
31
+ {
32
+ "type": "boolean"
33
+ },
34
+ {
35
+ "type": "object",
36
+ "properties": {
37
+ "enabled": {
38
+ "type": "boolean"
39
+ },
40
+ "interval": {
41
+ "type": "integer"
42
+ }
43
+ },
44
+ "additionalProperties": true
45
+ }
46
+ ]
47
+ },
48
+ "ignoreTrailingSlash": {
49
+ "type": "boolean"
50
+ },
51
+ "ignoreDuplicateSlashes": {
52
+ "type": "boolean"
53
+ },
54
+ "connectionTimeout": {
55
+ "type": "integer"
56
+ },
57
+ "keepAliveTimeout": {
58
+ "type": "integer",
59
+ "default": 5000
60
+ },
61
+ "maxRequestsPerSocket": {
62
+ "type": "integer"
63
+ },
64
+ "forceCloseConnections": {
65
+ "anyOf": [
66
+ {
67
+ "type": "boolean"
68
+ },
69
+ {
70
+ "type": "string",
71
+ "pattern": "^idle$"
72
+ }
73
+ ]
74
+ },
75
+ "requestTimeout": {
76
+ "type": "integer"
77
+ },
78
+ "bodyLimit": {
79
+ "type": "integer"
80
+ },
81
+ "maxParamLength": {
82
+ "type": "integer"
83
+ },
84
+ "disableRequestLogging": {
85
+ "type": "boolean"
86
+ },
87
+ "exposeHeadRoutes": {
88
+ "type": "boolean"
89
+ },
90
+ "logger": {
91
+ "anyOf": [
92
+ {
93
+ "type": "boolean"
94
+ },
95
+ {
96
+ "type": "object",
97
+ "properties": {
98
+ "level": {
99
+ "type": "string",
100
+ "default": "info",
101
+ "oneOf": [
102
+ {
103
+ "enum": [
104
+ "fatal",
105
+ "error",
106
+ "warn",
107
+ "info",
108
+ "debug",
109
+ "trace",
110
+ "silent"
111
+ ]
112
+ },
113
+ {
114
+ "pattern": "^\\{.+\\}$"
115
+ }
116
+ ]
117
+ },
118
+ "transport": {
119
+ "anyOf": [
120
+ {
121
+ "type": "object",
122
+ "properties": {
123
+ "target": {
124
+ "type": "string",
125
+ "resolveModule": true
126
+ },
127
+ "options": {
128
+ "type": "object"
129
+ }
130
+ },
131
+ "additionalProperties": false
132
+ },
133
+ {
134
+ "type": "object",
135
+ "properties": {
136
+ "targets": {
137
+ "type": "array",
138
+ "items": {
139
+ "type": "object",
140
+ "properties": {
141
+ "target": {
142
+ "anyOf": [
143
+ {
144
+ "type": "string",
145
+ "resolveModule": true
146
+ },
147
+ {
148
+ "type": "string",
149
+ "resolvePath": true
150
+ }
151
+ ]
152
+ },
153
+ "options": {
154
+ "type": "object"
155
+ },
156
+ "level": {
157
+ "type": "string"
158
+ }
159
+ },
160
+ "additionalProperties": false
161
+ }
162
+ },
163
+ "options": {
164
+ "type": "object"
165
+ }
166
+ },
167
+ "additionalProperties": false
168
+ }
169
+ ]
170
+ },
171
+ "pipeline": {
172
+ "type": "object",
173
+ "properties": {
174
+ "target": {
175
+ "type": "string",
176
+ "resolveModule": true
177
+ },
178
+ "options": {
179
+ "type": "object"
180
+ }
181
+ },
182
+ "additionalProperties": false
183
+ },
184
+ "formatters": {
185
+ "type": "object",
186
+ "properties": {
187
+ "path": {
188
+ "type": "string",
189
+ "resolvePath": true
190
+ }
191
+ },
192
+ "required": [
193
+ "path"
194
+ ],
195
+ "additionalProperties": false
196
+ },
197
+ "timestamp": {
198
+ "enum": [
199
+ "epochTime",
200
+ "unixTime",
201
+ "nullTime",
202
+ "isoTime"
203
+ ]
204
+ },
205
+ "redact": {
206
+ "type": "object",
207
+ "properties": {
208
+ "paths": {
209
+ "type": "array",
210
+ "items": {
211
+ "type": "string"
212
+ }
213
+ },
214
+ "censor": {
215
+ "type": "string",
216
+ "default": "[redacted]"
217
+ }
218
+ },
219
+ "required": [
220
+ "paths"
221
+ ],
222
+ "additionalProperties": false
223
+ },
224
+ "base": {
225
+ "anyOf": [
226
+ {
227
+ "type": "object",
228
+ "additionalProperties": true
229
+ },
230
+ {
231
+ "type": "null"
232
+ }
233
+ ]
234
+ },
235
+ "messageKey": {
236
+ "type": "string"
237
+ },
238
+ "customLevels": {
239
+ "type": "object",
240
+ "additionalProperties": true
241
+ }
242
+ },
243
+ "required": [
244
+ "level"
245
+ ],
246
+ "default": {},
247
+ "additionalProperties": true
248
+ }
249
+ ]
250
+ },
251
+ "loggerInstance": {
252
+ "type": "object"
253
+ },
254
+ "serializerOpts": {
255
+ "type": "object",
256
+ "properties": {
257
+ "schema": {
258
+ "type": "object"
259
+ },
260
+ "ajv": {
261
+ "type": "object"
262
+ },
263
+ "rounding": {
264
+ "type": "string",
265
+ "enum": [
266
+ "floor",
267
+ "ceil",
268
+ "round",
269
+ "trunc"
270
+ ],
271
+ "default": "trunc"
272
+ },
273
+ "debugMode": {
274
+ "type": "boolean"
275
+ },
276
+ "mode": {
277
+ "type": "string",
278
+ "enum": [
279
+ "debug",
280
+ "standalone"
281
+ ]
282
+ },
283
+ "largeArraySize": {
284
+ "anyOf": [
285
+ {
286
+ "type": "integer"
287
+ },
288
+ {
289
+ "type": "string"
290
+ }
291
+ ],
292
+ "default": 20000
293
+ },
294
+ "largeArrayMechanism": {
295
+ "type": "string",
296
+ "enum": [
297
+ "default",
298
+ "json-stringify"
299
+ ],
300
+ "default": "default"
301
+ }
302
+ }
303
+ },
304
+ "caseSensitive": {
305
+ "type": "boolean"
306
+ },
307
+ "requestIdHeader": {
308
+ "anyOf": [
309
+ {
310
+ "type": "string"
311
+ },
312
+ {
313
+ "type": "boolean",
314
+ "const": false
315
+ }
316
+ ]
317
+ },
318
+ "requestIdLogLabel": {
319
+ "type": "string"
320
+ },
321
+ "jsonShorthand": {
322
+ "type": "boolean"
323
+ },
324
+ "trustProxy": {
325
+ "anyOf": [
326
+ {
327
+ "type": "boolean"
328
+ },
329
+ {
330
+ "type": "string"
331
+ },
332
+ {
333
+ "type": "array",
334
+ "items": {
335
+ "type": "string"
336
+ }
337
+ },
338
+ {
339
+ "type": "integer"
340
+ }
341
+ ]
342
+ },
343
+ "http2": {
344
+ "type": "boolean"
345
+ },
346
+ "https": {
347
+ "type": "object",
348
+ "properties": {
349
+ "allowHTTP1": {
350
+ "type": "boolean"
351
+ },
352
+ "key": {
353
+ "anyOf": [
354
+ {
355
+ "type": "string"
356
+ },
357
+ {
358
+ "type": "object",
359
+ "properties": {
360
+ "path": {
361
+ "type": "string",
362
+ "resolvePath": true
363
+ }
364
+ },
365
+ "additionalProperties": false
366
+ },
367
+ {
368
+ "type": "array",
369
+ "items": {
370
+ "anyOf": [
371
+ {
372
+ "type": "string"
373
+ },
374
+ {
375
+ "type": "object",
376
+ "properties": {
377
+ "path": {
378
+ "type": "string",
379
+ "resolvePath": true
380
+ }
381
+ },
382
+ "additionalProperties": false
383
+ }
384
+ ]
385
+ }
386
+ }
387
+ ]
388
+ },
389
+ "cert": {
390
+ "anyOf": [
391
+ {
392
+ "type": "string"
393
+ },
394
+ {
395
+ "type": "object",
396
+ "properties": {
397
+ "path": {
398
+ "type": "string",
399
+ "resolvePath": true
400
+ }
401
+ },
402
+ "additionalProperties": false
403
+ },
404
+ {
405
+ "type": "array",
406
+ "items": {
407
+ "anyOf": [
408
+ {
409
+ "type": "string"
410
+ },
411
+ {
412
+ "type": "object",
413
+ "properties": {
414
+ "path": {
415
+ "type": "string",
416
+ "resolvePath": true
417
+ }
418
+ },
419
+ "additionalProperties": false
420
+ }
421
+ ]
422
+ }
423
+ }
424
+ ]
425
+ },
426
+ "requestCert": {
427
+ "type": "boolean"
428
+ },
429
+ "rejectUnauthorized": {
430
+ "type": "boolean"
431
+ }
432
+ },
433
+ "additionalProperties": false,
434
+ "required": [
435
+ "key",
436
+ "cert"
437
+ ]
438
+ },
439
+ "cors": {
440
+ "type": "object",
441
+ "$comment": "See https://github.com/fastify/fastify-cors",
442
+ "properties": {
443
+ "origin": {
444
+ "anyOf": [
445
+ {
446
+ "type": "boolean"
447
+ },
448
+ {
449
+ "type": "string"
450
+ },
451
+ {
452
+ "type": "array",
453
+ "items": {
454
+ "anyOf": [
455
+ {
456
+ "type": "string"
457
+ },
458
+ {
459
+ "type": "object",
460
+ "properties": {
461
+ "regexp": {
462
+ "type": "string"
463
+ }
464
+ },
465
+ "required": [
466
+ "regexp"
467
+ ]
468
+ }
469
+ ]
470
+ }
471
+ },
472
+ {
473
+ "type": "object",
474
+ "properties": {
475
+ "regexp": {
476
+ "type": "string"
477
+ }
478
+ },
479
+ "required": [
480
+ "regexp"
481
+ ]
482
+ }
483
+ ]
484
+ },
485
+ "methods": {
486
+ "type": "array",
487
+ "items": {
488
+ "type": "string"
489
+ }
490
+ },
491
+ "allowedHeaders": {
492
+ "type": "string",
493
+ "description": "Comma separated string of allowed headers."
494
+ },
495
+ "exposedHeaders": {
496
+ "anyOf": [
497
+ {
498
+ "type": "array",
499
+ "items": {
500
+ "type": "string"
501
+ }
502
+ },
503
+ {
504
+ "type": "string",
505
+ "description": "Comma separated string of exposed headers."
506
+ }
507
+ ]
508
+ },
509
+ "credentials": {
510
+ "type": "boolean"
511
+ },
512
+ "maxAge": {
513
+ "type": "integer"
514
+ },
515
+ "preflightContinue": {
516
+ "type": "boolean",
517
+ "default": false
518
+ },
519
+ "optionsSuccessStatus": {
520
+ "type": "integer",
521
+ "default": 204
522
+ },
523
+ "preflight": {
524
+ "type": "boolean",
525
+ "default": true
526
+ },
527
+ "strictPreflight": {
528
+ "type": "boolean",
529
+ "default": true
530
+ },
531
+ "hideOptionsRoute": {
532
+ "type": "boolean",
533
+ "default": true
534
+ }
535
+ },
536
+ "additionalProperties": false
537
+ }
538
+ },
539
+ "additionalProperties": false
540
+ },
541
+ "gateway": {
542
+ "type": "object",
543
+ "properties": {
544
+ "applications": {
545
+ "type": "array",
546
+ "items": {
547
+ "type": "object",
548
+ "properties": {
549
+ "id": {
550
+ "type": "string"
551
+ },
552
+ "origin": {
553
+ "type": "string"
554
+ },
555
+ "openapi": {
556
+ "type": "object",
557
+ "properties": {
558
+ "url": {
559
+ "type": "string"
560
+ },
561
+ "file": {
562
+ "type": "string",
563
+ "resolvePath": true
564
+ },
565
+ "prefix": {
566
+ "type": "string"
567
+ },
568
+ "config": {
569
+ "type": "string",
570
+ "resolvePath": true
571
+ }
572
+ },
573
+ "anyOf": [
574
+ {
575
+ "required": [
576
+ "url"
577
+ ]
578
+ },
579
+ {
580
+ "required": [
581
+ "file"
582
+ ]
583
+ }
584
+ ],
585
+ "additionalProperties": false
586
+ },
587
+ "graphql": {
588
+ "anyOf": [
589
+ {
590
+ "type": "boolean"
591
+ },
592
+ {
593
+ "type": "object",
594
+ "properties": {
595
+ "host": {
596
+ "type": "string"
597
+ },
598
+ "name": {
599
+ "type": "string"
600
+ },
601
+ "graphqlEndpoint": {
602
+ "type": "string",
603
+ "default": "/graphql"
604
+ },
605
+ "composeEndpoint": {
606
+ "type": "string",
607
+ "default": "/.well-known/graphql-composition"
608
+ },
609
+ "entities": {
610
+ "type": "object",
611
+ "patternProperties": {
612
+ "^.*$": {
613
+ "type": "object",
614
+ "properties": {
615
+ "pkey": {
616
+ "type": "string"
617
+ },
618
+ "resolver": {
619
+ "type": "object",
620
+ "properties": {
621
+ "name": {
622
+ "type": "string"
623
+ },
624
+ "argsAdapter": {
625
+ "anyOf": [
626
+ {
627
+ "typeof": "function"
628
+ },
629
+ {
630
+ "type": "string"
631
+ }
632
+ ]
633
+ },
634
+ "partialResults": {
635
+ "anyOf": [
636
+ {
637
+ "typeof": "function"
638
+ },
639
+ {
640
+ "type": "string"
641
+ }
642
+ ]
643
+ }
644
+ },
645
+ "required": [
646
+ "name"
647
+ ],
648
+ "additionalProperties": false
649
+ },
650
+ "fkeys": {
651
+ "type": "array",
652
+ "items": {
653
+ "type": "object",
654
+ "properties": {
655
+ "type": {
656
+ "type": "string"
657
+ },
658
+ "field": {
659
+ "type": "string"
660
+ },
661
+ "as": {
662
+ "type": "string"
663
+ },
664
+ "pkey": {
665
+ "type": "string"
666
+ },
667
+ "subgraph": {
668
+ "type": "string"
669
+ },
670
+ "resolver": {
671
+ "type": "object",
672
+ "properties": {
673
+ "name": {
674
+ "type": "string"
675
+ },
676
+ "argsAdapter": {
677
+ "anyOf": [
678
+ {
679
+ "typeof": "function"
680
+ },
681
+ {
682
+ "type": "string"
683
+ }
684
+ ]
685
+ },
686
+ "partialResults": {
687
+ "anyOf": [
688
+ {
689
+ "typeof": "function"
690
+ },
691
+ {
692
+ "type": "string"
693
+ }
694
+ ]
695
+ }
696
+ },
697
+ "required": [
698
+ "name"
699
+ ],
700
+ "additionalProperties": false
701
+ }
702
+ },
703
+ "required": [
704
+ "type"
705
+ ]
706
+ }
707
+ },
708
+ "many": {
709
+ "type": "array",
710
+ "items": {
711
+ "type": "object",
712
+ "properties": {
713
+ "type": {
714
+ "type": "string"
715
+ },
716
+ "fkey": {
717
+ "type": "string"
718
+ },
719
+ "as": {
720
+ "type": "string"
721
+ },
722
+ "pkey": {
723
+ "type": "string"
724
+ },
725
+ "subgraph": {
726
+ "type": "string"
727
+ },
728
+ "resolver": {
729
+ "type": "object",
730
+ "properties": {
731
+ "name": {
732
+ "type": "string"
733
+ },
734
+ "argsAdapter": {
735
+ "anyOf": [
736
+ {
737
+ "typeof": "function"
738
+ },
739
+ {
740
+ "type": "string"
741
+ }
742
+ ]
743
+ },
744
+ "partialResults": {
745
+ "anyOf": [
746
+ {
747
+ "typeof": "function"
748
+ },
749
+ {
750
+ "type": "string"
751
+ }
752
+ ]
753
+ }
754
+ },
755
+ "required": [
756
+ "name"
757
+ ],
758
+ "additionalProperties": false
759
+ }
760
+ },
761
+ "required": [
762
+ "type",
763
+ "fkey",
764
+ "resolver"
765
+ ]
766
+ }
767
+ }
768
+ }
769
+ }
770
+ }
771
+ }
772
+ },
773
+ "additionalProperties": false
774
+ }
775
+ ]
776
+ },
777
+ "proxy": {
778
+ "anyOf": [
779
+ {
780
+ "type": "boolean",
781
+ "const": false
782
+ },
783
+ {
784
+ "type": "object",
785
+ "properties": {
786
+ "upstream": {
787
+ "type": "string"
788
+ },
789
+ "prefix": {
790
+ "type": "string"
791
+ },
792
+ "hostname": {
793
+ "type": "string"
794
+ },
795
+ "ws": {
796
+ "type": "object",
797
+ "properties": {
798
+ "upstream": {
799
+ "type": "string"
800
+ },
801
+ "reconnect": {
802
+ "type": "object",
803
+ "properties": {
804
+ "pingInterval": {
805
+ "type": "number"
806
+ },
807
+ "maxReconnectionRetries": {
808
+ "type": "number"
809
+ },
810
+ "reconnectInterval": {
811
+ "type": "number"
812
+ },
813
+ "reconnectDecay": {
814
+ "type": "number"
815
+ },
816
+ "connectionTimeout": {
817
+ "type": "number"
818
+ },
819
+ "reconnectOnClose": {
820
+ "type": "boolean"
821
+ },
822
+ "logs": {
823
+ "type": "boolean"
824
+ }
825
+ }
826
+ },
827
+ "hooks": {
828
+ "type": "object",
829
+ "properties": {
830
+ "path": {
831
+ "type": "string"
832
+ }
833
+ },
834
+ "required": [
835
+ "path"
836
+ ],
837
+ "additionalProperties": false
838
+ }
839
+ },
840
+ "required": [],
841
+ "additionalProperties": false
842
+ }
843
+ },
844
+ "required": [],
845
+ "additionalProperties": false
846
+ }
847
+ ]
848
+ }
849
+ },
850
+ "required": [
851
+ "id"
852
+ ],
853
+ "additionalProperties": false
854
+ }
855
+ },
856
+ "openapi": {
857
+ "type": "object",
858
+ "properties": {
859
+ "info": {
860
+ "$ref": "#/$defs/info"
861
+ },
862
+ "jsonSchemaDialect": {
863
+ "type": "string",
864
+ "default": "https://spec.openapis.org/oas/3.1/dialect/base"
865
+ },
866
+ "servers": {
867
+ "type": "array",
868
+ "items": {
869
+ "$ref": "#/$defs/server"
870
+ },
871
+ "default": [
872
+ {
873
+ "url": "/"
874
+ }
875
+ ]
876
+ },
877
+ "paths": {
878
+ "$ref": "#/$defs/paths"
879
+ },
880
+ "webhooks": {
881
+ "type": "object",
882
+ "additionalProperties": {
883
+ "$ref": "#/$defs/path-item-or-reference"
884
+ }
885
+ },
886
+ "components": {
887
+ "$ref": "#/$defs/components"
888
+ },
889
+ "security": {
890
+ "type": "array",
891
+ "items": {
892
+ "$ref": "#/$defs/security-requirement"
893
+ }
894
+ },
895
+ "tags": {
896
+ "type": "array",
897
+ "items": {
898
+ "$ref": "#/$defs/tag"
899
+ }
900
+ },
901
+ "externalDocs": {
902
+ "$ref": "#/$defs/external-documentation"
903
+ },
904
+ "swaggerPrefix": {
905
+ "type": "string",
906
+ "description": "Base URL for the OpenAPI Swagger Documentation"
907
+ },
908
+ "path": {
909
+ "type": "string",
910
+ "description": "Path to an OpenAPI spec file",
911
+ "resolvePath": true
912
+ }
913
+ }
914
+ },
915
+ "graphql": {
916
+ "type": "object",
917
+ "properties": {
918
+ "graphiql": {
919
+ "type": "boolean"
920
+ },
921
+ "onSubgraphError": {
922
+ "typeof": "function"
923
+ },
924
+ "defaultArgsAdapter": {
925
+ "oneOf": [
926
+ {
927
+ "typeof": "function"
928
+ },
929
+ {
930
+ "type": "string"
931
+ }
932
+ ]
933
+ },
934
+ "entities": {
935
+ "type": "object",
936
+ "patternProperties": {
937
+ "^.*$": {
938
+ "type": "object",
939
+ "properties": {
940
+ "pkey": {
941
+ "type": "string"
942
+ },
943
+ "resolver": {
944
+ "type": "object",
945
+ "properties": {
946
+ "name": {
947
+ "type": "string"
948
+ },
949
+ "argsAdapter": {
950
+ "anyOf": [
951
+ {
952
+ "typeof": "function"
953
+ },
954
+ {
955
+ "type": "string"
956
+ }
957
+ ]
958
+ },
959
+ "partialResults": {
960
+ "anyOf": [
961
+ {
962
+ "typeof": "function"
963
+ },
964
+ {
965
+ "type": "string"
966
+ }
967
+ ]
968
+ }
969
+ },
970
+ "required": [
971
+ "name"
972
+ ],
973
+ "additionalProperties": false
974
+ },
975
+ "fkeys": {
976
+ "type": "array",
977
+ "items": {
978
+ "type": "object",
979
+ "properties": {
980
+ "type": {
981
+ "type": "string"
982
+ },
983
+ "field": {
984
+ "type": "string"
985
+ },
986
+ "as": {
987
+ "type": "string"
988
+ },
989
+ "pkey": {
990
+ "type": "string"
991
+ },
992
+ "subgraph": {
993
+ "type": "string"
994
+ },
995
+ "resolver": {
996
+ "type": "object",
997
+ "properties": {
998
+ "name": {
999
+ "type": "string"
1000
+ },
1001
+ "argsAdapter": {
1002
+ "anyOf": [
1003
+ {
1004
+ "typeof": "function"
1005
+ },
1006
+ {
1007
+ "type": "string"
1008
+ }
1009
+ ]
1010
+ },
1011
+ "partialResults": {
1012
+ "anyOf": [
1013
+ {
1014
+ "typeof": "function"
1015
+ },
1016
+ {
1017
+ "type": "string"
1018
+ }
1019
+ ]
1020
+ }
1021
+ },
1022
+ "required": [
1023
+ "name"
1024
+ ],
1025
+ "additionalProperties": false
1026
+ }
1027
+ },
1028
+ "required": [
1029
+ "type"
1030
+ ]
1031
+ }
1032
+ },
1033
+ "many": {
1034
+ "type": "array",
1035
+ "items": {
1036
+ "type": "object",
1037
+ "properties": {
1038
+ "type": {
1039
+ "type": "string"
1040
+ },
1041
+ "fkey": {
1042
+ "type": "string"
1043
+ },
1044
+ "as": {
1045
+ "type": "string"
1046
+ },
1047
+ "pkey": {
1048
+ "type": "string"
1049
+ },
1050
+ "subgraph": {
1051
+ "type": "string"
1052
+ },
1053
+ "resolver": {
1054
+ "type": "object",
1055
+ "properties": {
1056
+ "name": {
1057
+ "type": "string"
1058
+ },
1059
+ "argsAdapter": {
1060
+ "anyOf": [
1061
+ {
1062
+ "typeof": "function"
1063
+ },
1064
+ {
1065
+ "type": "string"
1066
+ }
1067
+ ]
1068
+ },
1069
+ "partialResults": {
1070
+ "anyOf": [
1071
+ {
1072
+ "typeof": "function"
1073
+ },
1074
+ {
1075
+ "type": "string"
1076
+ }
1077
+ ]
1078
+ }
1079
+ },
1080
+ "required": [
1081
+ "name"
1082
+ ],
1083
+ "additionalProperties": false
1084
+ }
1085
+ },
1086
+ "required": [
1087
+ "type",
1088
+ "fkey",
1089
+ "resolver"
1090
+ ]
1091
+ }
1092
+ }
1093
+ }
1094
+ }
1095
+ }
1096
+ },
1097
+ "addEntitiesResolvers": {
1098
+ "type": "boolean",
1099
+ "default": false
1100
+ }
1101
+ },
1102
+ "additionalProperties": false
1103
+ },
1104
+ "addEmptySchema": {
1105
+ "type": "boolean",
1106
+ "default": false
1107
+ },
1108
+ "refreshTimeout": {
1109
+ "type": "integer",
1110
+ "minimum": 0,
1111
+ "default": 1000
1112
+ }
1113
+ },
1114
+ "required": [],
1115
+ "default": {},
1116
+ "additionalProperties": false
1117
+ },
1118
+ "types": {
1119
+ "type": "object",
1120
+ "properties": {
1121
+ "autogenerate": {
1122
+ "type": "boolean"
1123
+ },
1124
+ "dir": {
1125
+ "description": "The path to the directory the types should be generated in.",
1126
+ "type": "string",
1127
+ "default": "types",
1128
+ "resolvePath": true
1129
+ }
1130
+ },
1131
+ "additionalProperties": false
1132
+ },
1133
+ "plugins": {
1134
+ "type": "object",
1135
+ "properties": {
1136
+ "packages": {
1137
+ "type": "array",
1138
+ "items": {
1139
+ "anyOf": [
1140
+ {
1141
+ "type": "string"
1142
+ },
1143
+ {
1144
+ "type": "object",
1145
+ "properties": {
1146
+ "name": {
1147
+ "type": "string"
1148
+ },
1149
+ "options": {
1150
+ "type": "object",
1151
+ "additionalProperties": true
1152
+ }
1153
+ },
1154
+ "required": [
1155
+ "name"
1156
+ ]
1157
+ }
1158
+ ]
1159
+ }
1160
+ },
1161
+ "paths": {
1162
+ "type": "array",
1163
+ "items": {
1164
+ "anyOf": [
1165
+ {
1166
+ "type": "string",
1167
+ "resolvePath": true
1168
+ },
1169
+ {
1170
+ "type": "object",
1171
+ "properties": {
1172
+ "path": {
1173
+ "type": "string",
1174
+ "resolvePath": true
1175
+ },
1176
+ "encapsulate": {
1177
+ "type": "boolean",
1178
+ "default": true
1179
+ },
1180
+ "maxDepth": {
1181
+ "type": "integer"
1182
+ },
1183
+ "autoHooks": {
1184
+ "type": "boolean"
1185
+ },
1186
+ "autoHooksPattern": {
1187
+ "type": "string"
1188
+ },
1189
+ "cascadeHooks": {
1190
+ "type": "boolean"
1191
+ },
1192
+ "overwriteHooks": {
1193
+ "type": "boolean"
1194
+ },
1195
+ "routeParams": {
1196
+ "type": "boolean"
1197
+ },
1198
+ "forceESM": {
1199
+ "type": "boolean"
1200
+ },
1201
+ "ignoreFilter": {
1202
+ "type": "string"
1203
+ },
1204
+ "matchFilter": {
1205
+ "type": "string"
1206
+ },
1207
+ "ignorePattern": {
1208
+ "type": "string"
1209
+ },
1210
+ "scriptPattern": {
1211
+ "type": "string"
1212
+ },
1213
+ "indexPattern": {
1214
+ "type": "string"
1215
+ },
1216
+ "options": {
1217
+ "type": "object",
1218
+ "additionalProperties": true
1219
+ }
1220
+ }
1221
+ }
1222
+ ]
1223
+ }
1224
+ }
1225
+ },
1226
+ "additionalProperties": false,
1227
+ "anyOf": [
1228
+ {
1229
+ "required": [
1230
+ "paths"
1231
+ ]
1232
+ },
1233
+ {
1234
+ "required": [
1235
+ "packages"
1236
+ ]
1237
+ }
1238
+ ]
1239
+ },
1240
+ "application": {
1241
+ "type": "object",
1242
+ "properties": {},
1243
+ "additionalProperties": false,
1244
+ "required": [],
1245
+ "default": {}
1246
+ },
1247
+ "runtime": {
1248
+ "type": "object",
1249
+ "properties": {
1250
+ "preload": {
1251
+ "anyOf": [
1252
+ {
1253
+ "type": "string",
1254
+ "resolvePath": true
1255
+ },
1256
+ {
1257
+ "type": "array",
1258
+ "items": {
1259
+ "type": "string",
1260
+ "resolvePath": true
1261
+ }
1262
+ }
1263
+ ]
1264
+ },
1265
+ "basePath": {
1266
+ "type": "string"
1267
+ },
1268
+ "services": {
1269
+ "type": "array",
1270
+ "items": {
1271
+ "type": "object",
1272
+ "anyOf": [
1273
+ {
1274
+ "required": [
1275
+ "id",
1276
+ "path"
1277
+ ]
1278
+ },
1279
+ {
1280
+ "required": [
1281
+ "id",
1282
+ "url"
1283
+ ]
1284
+ }
1285
+ ],
1286
+ "properties": {
1287
+ "id": {
1288
+ "type": "string"
1289
+ },
1290
+ "path": {
1291
+ "type": "string",
1292
+ "allowEmptyPaths": true,
1293
+ "resolvePath": true
1294
+ },
1295
+ "config": {
1296
+ "type": "string"
1297
+ },
1298
+ "url": {
1299
+ "type": "string"
1300
+ },
1301
+ "gitBranch": {
1302
+ "type": "string",
1303
+ "default": "main"
1304
+ },
1305
+ "useHttp": {
1306
+ "type": "boolean"
1307
+ },
1308
+ "workers": {
1309
+ "anyOf": [
1310
+ {
1311
+ "type": "number",
1312
+ "minimum": 1
1313
+ },
1314
+ {
1315
+ "type": "string"
1316
+ }
1317
+ ]
1318
+ },
1319
+ "health": {
1320
+ "type": "object",
1321
+ "default": {},
1322
+ "properties": {
1323
+ "enabled": {
1324
+ "anyOf": [
1325
+ {
1326
+ "type": "boolean"
1327
+ },
1328
+ {
1329
+ "type": "string"
1330
+ }
1331
+ ]
1332
+ },
1333
+ "interval": {
1334
+ "anyOf": [
1335
+ {
1336
+ "type": "number",
1337
+ "minimum": 0
1338
+ },
1339
+ {
1340
+ "type": "string"
1341
+ }
1342
+ ]
1343
+ },
1344
+ "gracePeriod": {
1345
+ "anyOf": [
1346
+ {
1347
+ "type": "number",
1348
+ "minimum": 0
1349
+ },
1350
+ {
1351
+ "type": "string"
1352
+ }
1353
+ ]
1354
+ },
1355
+ "maxUnhealthyChecks": {
1356
+ "anyOf": [
1357
+ {
1358
+ "type": "number",
1359
+ "minimum": 1
1360
+ },
1361
+ {
1362
+ "type": "string"
1363
+ }
1364
+ ]
1365
+ },
1366
+ "maxELU": {
1367
+ "anyOf": [
1368
+ {
1369
+ "type": "number",
1370
+ "minimum": 0,
1371
+ "maximum": 1
1372
+ },
1373
+ {
1374
+ "type": "string"
1375
+ }
1376
+ ]
1377
+ },
1378
+ "maxHeapUsed": {
1379
+ "anyOf": [
1380
+ {
1381
+ "type": "number",
1382
+ "minimum": 0,
1383
+ "maximum": 1
1384
+ },
1385
+ {
1386
+ "type": "string"
1387
+ }
1388
+ ]
1389
+ },
1390
+ "maxHeapTotal": {
1391
+ "anyOf": [
1392
+ {
1393
+ "type": "number",
1394
+ "minimum": 0
1395
+ },
1396
+ {
1397
+ "type": "string"
1398
+ }
1399
+ ]
1400
+ },
1401
+ "maxYoungGeneration": {
1402
+ "anyOf": [
1403
+ {
1404
+ "type": "number",
1405
+ "minimum": 0
1406
+ },
1407
+ {
1408
+ "type": "string"
1409
+ }
1410
+ ]
1411
+ }
1412
+ },
1413
+ "additionalProperties": false
1414
+ },
1415
+ "arguments": {
1416
+ "type": "array",
1417
+ "items": {
1418
+ "type": "string"
1419
+ }
1420
+ },
1421
+ "env": {
1422
+ "type": "object",
1423
+ "additionalProperties": {
1424
+ "type": "string"
1425
+ }
1426
+ },
1427
+ "envfile": {
1428
+ "type": "string"
1429
+ },
1430
+ "sourceMaps": {
1431
+ "type": "boolean",
1432
+ "default": false
1433
+ },
1434
+ "packageManager": {
1435
+ "type": "string",
1436
+ "enum": [
1437
+ "npm",
1438
+ "pnpm",
1439
+ "yarn"
1440
+ ]
1441
+ },
1442
+ "preload": {
1443
+ "anyOf": [
1444
+ {
1445
+ "type": "string",
1446
+ "resolvePath": true
1447
+ },
1448
+ {
1449
+ "type": "array",
1450
+ "items": {
1451
+ "type": "string",
1452
+ "resolvePath": true
1453
+ }
1454
+ }
1455
+ ]
1456
+ },
1457
+ "nodeOptions": {
1458
+ "type": "string"
1459
+ },
1460
+ "telemetry": {
1461
+ "type": "object",
1462
+ "properties": {
1463
+ "instrumentations": {
1464
+ "type": "array",
1465
+ "description": "An array of instrumentations loaded if telemetry is enabled",
1466
+ "items": {
1467
+ "oneOf": [
1468
+ {
1469
+ "type": "string"
1470
+ },
1471
+ {
1472
+ "type": "object",
1473
+ "properties": {
1474
+ "package": {
1475
+ "type": "string"
1476
+ },
1477
+ "exportName": {
1478
+ "type": "string"
1479
+ },
1480
+ "options": {
1481
+ "type": "object",
1482
+ "additionalProperties": true
1483
+ }
1484
+ },
1485
+ "required": [
1486
+ "package"
1487
+ ]
1488
+ }
1489
+ ]
1490
+ }
1491
+ }
1492
+ }
1493
+ }
1494
+ }
1495
+ }
1496
+ },
1497
+ "workers": {
1498
+ "anyOf": [
1499
+ {
1500
+ "type": "number",
1501
+ "minimum": 1
1502
+ },
1503
+ {
1504
+ "type": "string"
1505
+ }
1506
+ ],
1507
+ "default": 1
1508
+ },
1509
+ "logger": {
1510
+ "type": "object",
1511
+ "properties": {
1512
+ "level": {
1513
+ "type": "string",
1514
+ "default": "info",
1515
+ "oneOf": [
1516
+ {
1517
+ "enum": [
1518
+ "fatal",
1519
+ "error",
1520
+ "warn",
1521
+ "info",
1522
+ "debug",
1523
+ "trace",
1524
+ "silent"
1525
+ ]
1526
+ },
1527
+ {
1528
+ "pattern": "^\\{.+\\}$"
1529
+ }
1530
+ ]
1531
+ },
1532
+ "transport": {
1533
+ "anyOf": [
1534
+ {
1535
+ "type": "object",
1536
+ "properties": {
1537
+ "target": {
1538
+ "type": "string",
1539
+ "resolveModule": true
1540
+ },
1541
+ "options": {
1542
+ "type": "object"
1543
+ }
1544
+ },
1545
+ "additionalProperties": false
1546
+ },
1547
+ {
1548
+ "type": "object",
1549
+ "properties": {
1550
+ "targets": {
1551
+ "type": "array",
1552
+ "items": {
1553
+ "type": "object",
1554
+ "properties": {
1555
+ "target": {
1556
+ "anyOf": [
1557
+ {
1558
+ "type": "string",
1559
+ "resolveModule": true
1560
+ },
1561
+ {
1562
+ "type": "string",
1563
+ "resolvePath": true
1564
+ }
1565
+ ]
1566
+ },
1567
+ "options": {
1568
+ "type": "object"
1569
+ },
1570
+ "level": {
1571
+ "type": "string"
1572
+ }
1573
+ },
1574
+ "additionalProperties": false
1575
+ }
1576
+ },
1577
+ "options": {
1578
+ "type": "object"
1579
+ }
1580
+ },
1581
+ "additionalProperties": false
1582
+ }
1583
+ ]
1584
+ },
1585
+ "pipeline": {
1586
+ "type": "object",
1587
+ "properties": {
1588
+ "target": {
1589
+ "type": "string",
1590
+ "resolveModule": true
1591
+ },
1592
+ "options": {
1593
+ "type": "object"
1594
+ }
1595
+ },
1596
+ "additionalProperties": false
1597
+ },
1598
+ "formatters": {
1599
+ "type": "object",
1600
+ "properties": {
1601
+ "path": {
1602
+ "type": "string",
1603
+ "resolvePath": true
1604
+ }
1605
+ },
1606
+ "required": [
1607
+ "path"
1608
+ ],
1609
+ "additionalProperties": false
1610
+ },
1611
+ "timestamp": {
1612
+ "enum": [
1613
+ "epochTime",
1614
+ "unixTime",
1615
+ "nullTime",
1616
+ "isoTime"
1617
+ ]
1618
+ },
1619
+ "redact": {
1620
+ "type": "object",
1621
+ "properties": {
1622
+ "paths": {
1623
+ "type": "array",
1624
+ "items": {
1625
+ "type": "string"
1626
+ }
1627
+ },
1628
+ "censor": {
1629
+ "type": "string",
1630
+ "default": "[redacted]"
1631
+ }
1632
+ },
1633
+ "required": [
1634
+ "paths"
1635
+ ],
1636
+ "additionalProperties": false
1637
+ },
1638
+ "base": {
1639
+ "anyOf": [
1640
+ {
1641
+ "type": "object",
1642
+ "additionalProperties": true
1643
+ },
1644
+ {
1645
+ "type": "null"
1646
+ }
1647
+ ]
1648
+ },
1649
+ "messageKey": {
1650
+ "type": "string"
1651
+ },
1652
+ "customLevels": {
1653
+ "type": "object",
1654
+ "additionalProperties": true
1655
+ }
1656
+ },
1657
+ "required": [
1658
+ "level"
1659
+ ],
1660
+ "default": {},
1661
+ "additionalProperties": true
1662
+ },
1663
+ "server": {
1664
+ "type": "object",
1665
+ "properties": {
1666
+ "hostname": {
1667
+ "type": "string",
1668
+ "default": "127.0.0.1"
1669
+ },
1670
+ "port": {
1671
+ "anyOf": [
1672
+ {
1673
+ "type": "integer"
1674
+ },
1675
+ {
1676
+ "type": "string"
1677
+ }
1678
+ ]
1679
+ },
1680
+ "http2": {
1681
+ "type": "boolean"
1682
+ },
1683
+ "https": {
1684
+ "type": "object",
1685
+ "properties": {
1686
+ "allowHTTP1": {
1687
+ "type": "boolean"
1688
+ },
1689
+ "key": {
1690
+ "anyOf": [
1691
+ {
1692
+ "type": "string"
1693
+ },
1694
+ {
1695
+ "type": "object",
1696
+ "properties": {
1697
+ "path": {
1698
+ "type": "string",
1699
+ "resolvePath": true
1700
+ }
1701
+ },
1702
+ "additionalProperties": false
1703
+ },
1704
+ {
1705
+ "type": "array",
1706
+ "items": {
1707
+ "anyOf": [
1708
+ {
1709
+ "type": "string"
1710
+ },
1711
+ {
1712
+ "type": "object",
1713
+ "properties": {
1714
+ "path": {
1715
+ "type": "string",
1716
+ "resolvePath": true
1717
+ }
1718
+ },
1719
+ "additionalProperties": false
1720
+ }
1721
+ ]
1722
+ }
1723
+ }
1724
+ ]
1725
+ },
1726
+ "cert": {
1727
+ "anyOf": [
1728
+ {
1729
+ "type": "string"
1730
+ },
1731
+ {
1732
+ "type": "object",
1733
+ "properties": {
1734
+ "path": {
1735
+ "type": "string",
1736
+ "resolvePath": true
1737
+ }
1738
+ },
1739
+ "additionalProperties": false
1740
+ },
1741
+ {
1742
+ "type": "array",
1743
+ "items": {
1744
+ "anyOf": [
1745
+ {
1746
+ "type": "string"
1747
+ },
1748
+ {
1749
+ "type": "object",
1750
+ "properties": {
1751
+ "path": {
1752
+ "type": "string",
1753
+ "resolvePath": true
1754
+ }
1755
+ },
1756
+ "additionalProperties": false
1757
+ }
1758
+ ]
1759
+ }
1760
+ }
1761
+ ]
1762
+ },
1763
+ "requestCert": {
1764
+ "type": "boolean"
1765
+ },
1766
+ "rejectUnauthorized": {
1767
+ "type": "boolean"
1768
+ }
1769
+ },
1770
+ "additionalProperties": false,
1771
+ "required": [
1772
+ "key",
1773
+ "cert"
1774
+ ]
1775
+ }
1776
+ },
1777
+ "additionalProperties": false
1778
+ },
1779
+ "startTimeout": {
1780
+ "default": 30000,
1781
+ "type": "number",
1782
+ "minimum": 0
1783
+ },
1784
+ "restartOnError": {
1785
+ "default": true,
1786
+ "anyOf": [
1787
+ {
1788
+ "type": "boolean"
1789
+ },
1790
+ {
1791
+ "type": "number",
1792
+ "minimum": 0
1793
+ }
1794
+ ]
1795
+ },
1796
+ "gracefulShutdown": {
1797
+ "type": "object",
1798
+ "properties": {
1799
+ "runtime": {
1800
+ "anyOf": [
1801
+ {
1802
+ "type": "number",
1803
+ "minimum": 1
1804
+ },
1805
+ {
1806
+ "type": "string"
1807
+ }
1808
+ ],
1809
+ "default": 10000
1810
+ },
1811
+ "application": {
1812
+ "anyOf": [
1813
+ {
1814
+ "type": "number",
1815
+ "minimum": 1
1816
+ },
1817
+ {
1818
+ "type": "string"
1819
+ }
1820
+ ],
1821
+ "default": 10000
1822
+ }
1823
+ },
1824
+ "default": {},
1825
+ "required": [
1826
+ "runtime",
1827
+ "application"
1828
+ ],
1829
+ "additionalProperties": false
1830
+ },
1831
+ "health": {
1832
+ "type": "object",
1833
+ "default": {},
1834
+ "properties": {
1835
+ "enabled": {
1836
+ "anyOf": [
1837
+ {
1838
+ "type": "boolean"
1839
+ },
1840
+ {
1841
+ "type": "string"
1842
+ }
1843
+ ],
1844
+ "default": true
1845
+ },
1846
+ "interval": {
1847
+ "anyOf": [
1848
+ {
1849
+ "type": "number",
1850
+ "minimum": 0
1851
+ },
1852
+ {
1853
+ "type": "string"
1854
+ }
1855
+ ],
1856
+ "default": 30000
1857
+ },
1858
+ "gracePeriod": {
1859
+ "anyOf": [
1860
+ {
1861
+ "type": "number",
1862
+ "minimum": 0
1863
+ },
1864
+ {
1865
+ "type": "string"
1866
+ }
1867
+ ],
1868
+ "default": 30000
1869
+ },
1870
+ "maxUnhealthyChecks": {
1871
+ "anyOf": [
1872
+ {
1873
+ "type": "number",
1874
+ "minimum": 1
1875
+ },
1876
+ {
1877
+ "type": "string"
1878
+ }
1879
+ ],
1880
+ "default": 10
1881
+ },
1882
+ "maxELU": {
1883
+ "anyOf": [
1884
+ {
1885
+ "type": "number",
1886
+ "minimum": 0,
1887
+ "maximum": 1
1888
+ },
1889
+ {
1890
+ "type": "string"
1891
+ }
1892
+ ],
1893
+ "default": 0.99
1894
+ },
1895
+ "maxHeapUsed": {
1896
+ "anyOf": [
1897
+ {
1898
+ "type": "number",
1899
+ "minimum": 0,
1900
+ "maximum": 1
1901
+ },
1902
+ {
1903
+ "type": "string"
1904
+ }
1905
+ ],
1906
+ "default": 0.99
1907
+ },
1908
+ "maxHeapTotal": {
1909
+ "anyOf": [
1910
+ {
1911
+ "type": "number",
1912
+ "minimum": 0
1913
+ },
1914
+ {
1915
+ "type": "string"
1916
+ }
1917
+ ],
1918
+ "default": 4294967296
1919
+ },
1920
+ "maxYoungGeneration": {
1921
+ "anyOf": [
1922
+ {
1923
+ "type": "number",
1924
+ "minimum": 0
1925
+ },
1926
+ {
1927
+ "type": "string"
1928
+ }
1929
+ ]
1930
+ }
1931
+ },
1932
+ "additionalProperties": false
1933
+ },
1934
+ "undici": {
1935
+ "type": "object",
1936
+ "properties": {
1937
+ "agentOptions": {
1938
+ "type": "object",
1939
+ "additionalProperties": true
1940
+ },
1941
+ "interceptors": {
1942
+ "anyOf": [
1943
+ {
1944
+ "type": "array",
1945
+ "items": {
1946
+ "type": "object",
1947
+ "properties": {
1948
+ "module": {
1949
+ "type": "string"
1950
+ },
1951
+ "options": {
1952
+ "type": "object",
1953
+ "additionalProperties": true
1954
+ }
1955
+ },
1956
+ "required": [
1957
+ "module",
1958
+ "options"
1959
+ ]
1960
+ }
1961
+ },
1962
+ {
1963
+ "type": "object",
1964
+ "properties": {
1965
+ "Client": {
1966
+ "type": "array",
1967
+ "items": {
1968
+ "type": "object",
1969
+ "properties": {
1970
+ "module": {
1971
+ "type": "string"
1972
+ },
1973
+ "options": {
1974
+ "type": "object",
1975
+ "additionalProperties": true
1976
+ }
1977
+ },
1978
+ "required": [
1979
+ "module",
1980
+ "options"
1981
+ ]
1982
+ }
1983
+ },
1984
+ "Pool": {
1985
+ "type": "array",
1986
+ "items": {
1987
+ "type": "object",
1988
+ "properties": {
1989
+ "module": {
1990
+ "type": "string"
1991
+ },
1992
+ "options": {
1993
+ "type": "object",
1994
+ "additionalProperties": true
1995
+ }
1996
+ },
1997
+ "required": [
1998
+ "module",
1999
+ "options"
2000
+ ]
2001
+ }
2002
+ },
2003
+ "Agent": {
2004
+ "type": "array",
2005
+ "items": {
2006
+ "type": "object",
2007
+ "properties": {
2008
+ "module": {
2009
+ "type": "string"
2010
+ },
2011
+ "options": {
2012
+ "type": "object",
2013
+ "additionalProperties": true
2014
+ }
2015
+ },
2016
+ "required": [
2017
+ "module",
2018
+ "options"
2019
+ ]
2020
+ }
2021
+ }
2022
+ }
2023
+ }
2024
+ ]
2025
+ }
2026
+ }
2027
+ },
2028
+ "httpCache": {
2029
+ "oneOf": [
2030
+ {
2031
+ "type": "boolean"
2032
+ },
2033
+ {
2034
+ "type": "object",
2035
+ "properties": {
2036
+ "store": {
2037
+ "type": "string"
2038
+ },
2039
+ "methods": {
2040
+ "type": "array",
2041
+ "items": {
2042
+ "type": "string"
2043
+ },
2044
+ "default": [
2045
+ "GET",
2046
+ "HEAD"
2047
+ ],
2048
+ "minItems": 1
2049
+ },
2050
+ "cacheTagsHeader": {
2051
+ "type": "string"
2052
+ },
2053
+ "maxSize": {
2054
+ "type": "integer"
2055
+ },
2056
+ "maxEntrySize": {
2057
+ "type": "integer"
2058
+ },
2059
+ "maxCount": {
2060
+ "type": "integer"
2061
+ }
2062
+ }
2063
+ }
2064
+ ]
2065
+ },
2066
+ "watch": {
2067
+ "anyOf": [
2068
+ {
2069
+ "type": "boolean"
2070
+ },
2071
+ {
2072
+ "type": "string"
2073
+ }
2074
+ ]
2075
+ },
2076
+ "managementApi": {
2077
+ "anyOf": [
2078
+ {
2079
+ "type": "boolean"
2080
+ },
2081
+ {
2082
+ "type": "string"
2083
+ },
2084
+ {
2085
+ "type": "object",
2086
+ "properties": {
2087
+ "logs": {
2088
+ "type": "object",
2089
+ "properties": {
2090
+ "maxSize": {
2091
+ "type": "number",
2092
+ "minimum": 5,
2093
+ "default": 200
2094
+ }
2095
+ },
2096
+ "additionalProperties": false
2097
+ }
2098
+ },
2099
+ "additionalProperties": false
2100
+ }
2101
+ ],
2102
+ "default": true
2103
+ },
2104
+ "metrics": {
2105
+ "anyOf": [
2106
+ {
2107
+ "type": "boolean"
2108
+ },
2109
+ {
2110
+ "type": "object",
2111
+ "properties": {
2112
+ "port": {
2113
+ "anyOf": [
2114
+ {
2115
+ "type": "integer"
2116
+ },
2117
+ {
2118
+ "type": "string"
2119
+ }
2120
+ ]
2121
+ },
2122
+ "enabled": {
2123
+ "anyOf": [
2124
+ {
2125
+ "type": "boolean"
2126
+ },
2127
+ {
2128
+ "type": "string"
2129
+ }
2130
+ ]
2131
+ },
2132
+ "hostname": {
2133
+ "type": "string"
2134
+ },
2135
+ "endpoint": {
2136
+ "type": "string"
2137
+ },
2138
+ "auth": {
2139
+ "type": "object",
2140
+ "properties": {
2141
+ "username": {
2142
+ "type": "string"
2143
+ },
2144
+ "password": {
2145
+ "type": "string"
2146
+ }
2147
+ },
2148
+ "additionalProperties": false,
2149
+ "required": [
2150
+ "username",
2151
+ "password"
2152
+ ]
2153
+ },
2154
+ "labels": {
2155
+ "type": "object",
2156
+ "additionalProperties": {
2157
+ "type": "string"
2158
+ }
2159
+ },
2160
+ "readiness": {
2161
+ "anyOf": [
2162
+ {
2163
+ "type": "boolean"
2164
+ },
2165
+ {
2166
+ "type": "object",
2167
+ "properties": {
2168
+ "endpoint": {
2169
+ "type": "string"
2170
+ },
2171
+ "success": {
2172
+ "type": "object",
2173
+ "properties": {
2174
+ "statusCode": {
2175
+ "type": "number"
2176
+ },
2177
+ "body": {
2178
+ "type": "string"
2179
+ }
2180
+ },
2181
+ "additionalProperties": false
2182
+ },
2183
+ "fail": {
2184
+ "type": "object",
2185
+ "properties": {
2186
+ "statusCode": {
2187
+ "type": "number"
2188
+ },
2189
+ "body": {
2190
+ "type": "string"
2191
+ }
2192
+ },
2193
+ "additionalProperties": false
2194
+ }
2195
+ },
2196
+ "additionalProperties": false
2197
+ }
2198
+ ]
2199
+ },
2200
+ "liveness": {
2201
+ "anyOf": [
2202
+ {
2203
+ "type": "boolean"
2204
+ },
2205
+ {
2206
+ "type": "object",
2207
+ "properties": {
2208
+ "endpoint": {
2209
+ "type": "string"
2210
+ },
2211
+ "success": {
2212
+ "type": "object",
2213
+ "properties": {
2214
+ "statusCode": {
2215
+ "type": "number"
2216
+ },
2217
+ "body": {
2218
+ "type": "string"
2219
+ }
2220
+ },
2221
+ "additionalProperties": false
2222
+ },
2223
+ "fail": {
2224
+ "type": "object",
2225
+ "properties": {
2226
+ "statusCode": {
2227
+ "type": "number"
2228
+ },
2229
+ "body": {
2230
+ "type": "string"
2231
+ }
2232
+ },
2233
+ "additionalProperties": false
2234
+ }
2235
+ },
2236
+ "additionalProperties": false
2237
+ }
2238
+ ]
2239
+ },
2240
+ "additionalProperties": false
2241
+ }
2242
+ }
2243
+ ]
2244
+ },
2245
+ "telemetry": {
2246
+ "type": "object",
2247
+ "properties": {
2248
+ "enabled": {
2249
+ "anyOf": [
2250
+ {
2251
+ "type": "boolean"
2252
+ },
2253
+ {
2254
+ "type": "string"
2255
+ }
2256
+ ]
2257
+ },
2258
+ "applicationName": {
2259
+ "type": "string",
2260
+ "description": "The name of the application. Defaults to the folder name if not specified."
2261
+ },
2262
+ "version": {
2263
+ "type": "string",
2264
+ "description": "The version of the application (optional)"
2265
+ },
2266
+ "skip": {
2267
+ "type": "array",
2268
+ "description": "An array of paths to skip when creating spans. Useful for health checks and other endpoints that do not need to be traced.",
2269
+ "items": {
2270
+ "type": "object",
2271
+ "properties": {
2272
+ "path": {
2273
+ "type": "string",
2274
+ "description": "The path to skip. Can be a string or a regex."
2275
+ },
2276
+ "method": {
2277
+ "description": "HTTP method to skip",
2278
+ "type": "string",
2279
+ "enum": [
2280
+ "GET",
2281
+ "POST",
2282
+ "PUT",
2283
+ "DELETE",
2284
+ "PATCH",
2285
+ "HEAD",
2286
+ "OPTIONS"
2287
+ ]
2288
+ }
2289
+ }
2290
+ }
2291
+ },
2292
+ "exporter": {
2293
+ "anyOf": [
2294
+ {
2295
+ "type": "array",
2296
+ "items": {
2297
+ "type": "object",
2298
+ "properties": {
2299
+ "type": {
2300
+ "type": "string",
2301
+ "enum": [
2302
+ "console",
2303
+ "otlp",
2304
+ "zipkin",
2305
+ "memory",
2306
+ "file"
2307
+ ],
2308
+ "default": "console"
2309
+ },
2310
+ "options": {
2311
+ "type": "object",
2312
+ "description": "Options for the exporter. These are passed directly to the exporter.",
2313
+ "properties": {
2314
+ "url": {
2315
+ "type": "string",
2316
+ "description": "The URL to send the traces to. Not used for console or memory exporters."
2317
+ },
2318
+ "headers": {
2319
+ "type": "object",
2320
+ "description": "Headers to send to the exporter. Not used for console or memory exporters."
2321
+ },
2322
+ "path": {
2323
+ "type": "string",
2324
+ "description": "The path to write the traces to. Only for file exporter."
2325
+ }
2326
+ }
2327
+ },
2328
+ "additionalProperties": false
2329
+ }
2330
+ }
2331
+ },
2332
+ {
2333
+ "type": "object",
2334
+ "properties": {
2335
+ "type": {
2336
+ "type": "string",
2337
+ "enum": [
2338
+ "console",
2339
+ "otlp",
2340
+ "zipkin",
2341
+ "memory",
2342
+ "file"
2343
+ ],
2344
+ "default": "console"
2345
+ },
2346
+ "options": {
2347
+ "type": "object",
2348
+ "description": "Options for the exporter. These are passed directly to the exporter.",
2349
+ "properties": {
2350
+ "url": {
2351
+ "type": "string",
2352
+ "description": "The URL to send the traces to. Not used for console or memory exporters."
2353
+ },
2354
+ "headers": {
2355
+ "type": "object",
2356
+ "description": "Headers to send to the exporter. Not used for console or memory exporters."
2357
+ },
2358
+ "path": {
2359
+ "type": "string",
2360
+ "description": "The path to write the traces to. Only for file exporter."
2361
+ }
2362
+ }
2363
+ },
2364
+ "additionalProperties": false
2365
+ }
2366
+ }
2367
+ ]
2368
+ }
2369
+ },
2370
+ "required": [
2371
+ "applicationName"
2372
+ ],
2373
+ "additionalProperties": false
2374
+ },
2375
+ "inspectorOptions": {
2376
+ "type": "object",
2377
+ "properties": {
2378
+ "host": {
2379
+ "type": "string"
2380
+ },
2381
+ "port": {
2382
+ "type": "number"
2383
+ },
2384
+ "breakFirstLine": {
2385
+ "type": "boolean"
2386
+ },
2387
+ "watchDisabled": {
2388
+ "type": "boolean"
2389
+ }
2390
+ }
2391
+ },
2392
+ "applicationTimeout": {
2393
+ "anyOf": [
2394
+ {
2395
+ "type": "number",
2396
+ "minimum": 1
2397
+ },
2398
+ {
2399
+ "type": "string"
2400
+ }
2401
+ ],
2402
+ "default": 300000
2403
+ },
2404
+ "messagingTimeout": {
2405
+ "anyOf": [
2406
+ {
2407
+ "type": "number",
2408
+ "minimum": 1
2409
+ },
2410
+ {
2411
+ "type": "string"
2412
+ }
2413
+ ],
2414
+ "default": 30000
2415
+ },
2416
+ "env": {
2417
+ "type": "object",
2418
+ "additionalProperties": {
2419
+ "type": "string"
2420
+ }
2421
+ },
2422
+ "sourceMaps": {
2423
+ "type": "boolean",
2424
+ "default": false
2425
+ },
2426
+ "scheduler": {
2427
+ "type": "array",
2428
+ "items": {
2429
+ "type": "object",
2430
+ "properties": {
2431
+ "enabled": {
2432
+ "anyOf": [
2433
+ {
2434
+ "type": "boolean"
2435
+ },
2436
+ {
2437
+ "type": "string"
2438
+ }
2439
+ ],
2440
+ "default": true
2441
+ },
2442
+ "name": {
2443
+ "type": "string"
2444
+ },
2445
+ "cron": {
2446
+ "type": "string"
2447
+ },
2448
+ "callbackUrl": {
2449
+ "type": "string"
2450
+ },
2451
+ "method": {
2452
+ "type": "string",
2453
+ "enum": [
2454
+ "GET",
2455
+ "POST",
2456
+ "PUT",
2457
+ "PATCH",
2458
+ "DELETE"
2459
+ ],
2460
+ "default": "GET"
2461
+ },
2462
+ "headers": {
2463
+ "type": "object",
2464
+ "additionalProperties": {
2465
+ "type": "string"
2466
+ }
2467
+ },
2468
+ "body": {
2469
+ "anyOf": [
2470
+ {
2471
+ "type": "string"
2472
+ },
2473
+ {
2474
+ "type": "object",
2475
+ "additionalProperties": true
2476
+ }
2477
+ ]
2478
+ },
2479
+ "maxRetries": {
2480
+ "type": "number",
2481
+ "minimum": 0,
2482
+ "default": 3
2483
+ }
2484
+ },
2485
+ "required": [
2486
+ "name",
2487
+ "cron",
2488
+ "callbackUrl"
2489
+ ]
2490
+ }
2491
+ }
2492
+ },
2493
+ "additionalProperties": false
2494
+ },
2495
+ "telemetry": {
2496
+ "type": "object",
2497
+ "properties": {
2498
+ "enabled": {
2499
+ "anyOf": [
2500
+ {
2501
+ "type": "boolean"
2502
+ },
2503
+ {
2504
+ "type": "string"
2505
+ }
2506
+ ]
2507
+ },
2508
+ "applicationName": {
2509
+ "type": "string",
2510
+ "description": "The name of the application. Defaults to the folder name if not specified."
2511
+ },
2512
+ "version": {
2513
+ "type": "string",
2514
+ "description": "The version of the application (optional)"
2515
+ },
2516
+ "skip": {
2517
+ "type": "array",
2518
+ "description": "An array of paths to skip when creating spans. Useful for health checks and other endpoints that do not need to be traced.",
2519
+ "items": {
2520
+ "type": "object",
2521
+ "properties": {
2522
+ "path": {
2523
+ "type": "string",
2524
+ "description": "The path to skip. Can be a string or a regex."
2525
+ },
2526
+ "method": {
2527
+ "description": "HTTP method to skip",
2528
+ "type": "string",
2529
+ "enum": [
2530
+ "GET",
2531
+ "POST",
2532
+ "PUT",
2533
+ "DELETE",
2534
+ "PATCH",
2535
+ "HEAD",
2536
+ "OPTIONS"
2537
+ ]
2538
+ }
2539
+ }
2540
+ }
2541
+ },
2542
+ "exporter": {
2543
+ "anyOf": [
2544
+ {
2545
+ "type": "array",
2546
+ "items": {
2547
+ "type": "object",
2548
+ "properties": {
2549
+ "type": {
2550
+ "type": "string",
2551
+ "enum": [
2552
+ "console",
2553
+ "otlp",
2554
+ "zipkin",
2555
+ "memory",
2556
+ "file"
2557
+ ],
2558
+ "default": "console"
2559
+ },
2560
+ "options": {
2561
+ "type": "object",
2562
+ "description": "Options for the exporter. These are passed directly to the exporter.",
2563
+ "properties": {
2564
+ "url": {
2565
+ "type": "string",
2566
+ "description": "The URL to send the traces to. Not used for console or memory exporters."
2567
+ },
2568
+ "headers": {
2569
+ "type": "object",
2570
+ "description": "Headers to send to the exporter. Not used for console or memory exporters."
2571
+ },
2572
+ "path": {
2573
+ "type": "string",
2574
+ "description": "The path to write the traces to. Only for file exporter."
2575
+ }
2576
+ }
2577
+ },
2578
+ "additionalProperties": false
2579
+ }
2580
+ }
2581
+ },
2582
+ {
2583
+ "type": "object",
2584
+ "properties": {
2585
+ "type": {
2586
+ "type": "string",
2587
+ "enum": [
2588
+ "console",
2589
+ "otlp",
2590
+ "zipkin",
2591
+ "memory",
2592
+ "file"
2593
+ ],
2594
+ "default": "console"
2595
+ },
2596
+ "options": {
2597
+ "type": "object",
2598
+ "description": "Options for the exporter. These are passed directly to the exporter.",
2599
+ "properties": {
2600
+ "url": {
2601
+ "type": "string",
2602
+ "description": "The URL to send the traces to. Not used for console or memory exporters."
2603
+ },
2604
+ "headers": {
2605
+ "type": "object",
2606
+ "description": "Headers to send to the exporter. Not used for console or memory exporters."
2607
+ },
2608
+ "path": {
2609
+ "type": "string",
2610
+ "description": "The path to write the traces to. Only for file exporter."
2611
+ }
2612
+ }
2613
+ },
2614
+ "additionalProperties": false
2615
+ }
2616
+ }
2617
+ ]
2618
+ }
2619
+ },
2620
+ "required": [
2621
+ "applicationName"
2622
+ ],
2623
+ "additionalProperties": false
2624
+ },
2625
+ "watch": {
2626
+ "anyOf": [
2627
+ {
2628
+ "type": "object",
2629
+ "properties": {
2630
+ "enabled": {
2631
+ "default": true,
2632
+ "anyOf": [
2633
+ {
2634
+ "type": "boolean"
2635
+ },
2636
+ {
2637
+ "type": "string"
2638
+ }
2639
+ ]
2640
+ },
2641
+ "allow": {
2642
+ "type": "array",
2643
+ "items": {
2644
+ "type": "string"
2645
+ },
2646
+ "minItems": 1,
2647
+ "nullable": true,
2648
+ "default": null
2649
+ },
2650
+ "ignore": {
2651
+ "type": "array",
2652
+ "items": {
2653
+ "type": "string"
2654
+ },
2655
+ "nullable": true,
2656
+ "default": null
2657
+ }
2658
+ },
2659
+ "additionalProperties": false
2660
+ },
2661
+ {
2662
+ "type": "boolean"
2663
+ },
2664
+ {
2665
+ "type": "string"
2666
+ }
2667
+ ]
2668
+ },
2669
+ "$schema": {
2670
+ "type": "string"
2671
+ },
2672
+ "module": {
2673
+ "type": "string"
2674
+ }
2675
+ },
2676
+ "additionalProperties": false,
2677
+ "$defs": {
2678
+ "info": {
2679
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#info-object",
2680
+ "type": "object",
2681
+ "properties": {
2682
+ "title": {
2683
+ "type": "string"
2684
+ },
2685
+ "summary": {
2686
+ "type": "string"
2687
+ },
2688
+ "description": {
2689
+ "type": "string"
2690
+ },
2691
+ "termsOfService": {
2692
+ "type": "string"
2693
+ },
2694
+ "contact": {
2695
+ "$ref": "#/$defs/contact"
2696
+ },
2697
+ "license": {
2698
+ "$ref": "#/$defs/license"
2699
+ },
2700
+ "version": {
2701
+ "type": "string"
2702
+ }
2703
+ },
2704
+ "required": [
2705
+ "title",
2706
+ "version"
2707
+ ],
2708
+ "$ref": "#/$defs/specification-extensions"
2709
+ },
2710
+ "contact": {
2711
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#contact-object",
2712
+ "type": "object",
2713
+ "properties": {
2714
+ "name": {
2715
+ "type": "string"
2716
+ },
2717
+ "url": {
2718
+ "type": "string"
2719
+ },
2720
+ "email": {
2721
+ "type": "string"
2722
+ }
2723
+ },
2724
+ "$ref": "#/$defs/specification-extensions"
2725
+ },
2726
+ "license": {
2727
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#license-object",
2728
+ "type": "object",
2729
+ "properties": {
2730
+ "name": {
2731
+ "type": "string"
2732
+ },
2733
+ "identifier": {
2734
+ "type": "string"
2735
+ },
2736
+ "url": {
2737
+ "type": "string"
2738
+ }
2739
+ },
2740
+ "required": [
2741
+ "name"
2742
+ ],
2743
+ "$ref": "#/$defs/specification-extensions"
2744
+ },
2745
+ "server": {
2746
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#server-object",
2747
+ "type": "object",
2748
+ "properties": {
2749
+ "url": {
2750
+ "type": "string"
2751
+ },
2752
+ "description": {
2753
+ "type": "string"
2754
+ },
2755
+ "variables": {
2756
+ "type": "object",
2757
+ "additionalProperties": {
2758
+ "$ref": "#/$defs/server-variable"
2759
+ }
2760
+ }
2761
+ },
2762
+ "required": [
2763
+ "url"
2764
+ ],
2765
+ "$ref": "#/$defs/specification-extensions"
2766
+ },
2767
+ "server-variable": {
2768
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#server-variable-object",
2769
+ "type": "object",
2770
+ "properties": {
2771
+ "enum": {
2772
+ "type": "array",
2773
+ "items": {
2774
+ "type": "string"
2775
+ },
2776
+ "minItems": 1
2777
+ },
2778
+ "default": {
2779
+ "type": "string"
2780
+ },
2781
+ "description": {
2782
+ "type": "string"
2783
+ }
2784
+ },
2785
+ "required": [
2786
+ "default"
2787
+ ],
2788
+ "$ref": "#/$defs/specification-extensions"
2789
+ },
2790
+ "components": {
2791
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#components-object",
2792
+ "type": "object",
2793
+ "properties": {
2794
+ "schemas": {
2795
+ "type": "object"
2796
+ },
2797
+ "responses": {
2798
+ "type": "object",
2799
+ "additionalProperties": {
2800
+ "$ref": "#/$defs/response-or-reference"
2801
+ }
2802
+ },
2803
+ "parameters": {
2804
+ "type": "object",
2805
+ "additionalProperties": {
2806
+ "$ref": "#/$defs/parameter-or-reference"
2807
+ }
2808
+ },
2809
+ "examples": {
2810
+ "type": "object",
2811
+ "additionalProperties": {
2812
+ "$ref": "#/$defs/example-or-reference"
2813
+ }
2814
+ },
2815
+ "requestBodies": {
2816
+ "type": "object",
2817
+ "additionalProperties": {
2818
+ "$ref": "#/$defs/request-body-or-reference"
2819
+ }
2820
+ },
2821
+ "headers": {
2822
+ "type": "object",
2823
+ "additionalProperties": {
2824
+ "$ref": "#/$defs/header-or-reference"
2825
+ }
2826
+ },
2827
+ "securitySchemes": {
2828
+ "type": "object",
2829
+ "additionalProperties": {
2830
+ "$ref": "#/$defs/security-scheme-or-reference"
2831
+ }
2832
+ },
2833
+ "links": {
2834
+ "type": "object",
2835
+ "additionalProperties": {
2836
+ "$ref": "#/$defs/link-or-reference"
2837
+ }
2838
+ },
2839
+ "callbacks": {
2840
+ "type": "object",
2841
+ "additionalProperties": {
2842
+ "$ref": "#/$defs/callbacks-or-reference"
2843
+ }
2844
+ },
2845
+ "pathItems": {
2846
+ "type": "object",
2847
+ "additionalProperties": {
2848
+ "$ref": "#/$defs/path-item-or-reference"
2849
+ }
2850
+ }
2851
+ },
2852
+ "$ref": "#/$defs/specification-extensions"
2853
+ },
2854
+ "paths": {
2855
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#paths-object",
2856
+ "type": "object",
2857
+ "patternProperties": {
2858
+ "^/": {
2859
+ "$ref": "#/$defs/path-item"
2860
+ }
2861
+ },
2862
+ "$ref": "#/$defs/specification-extensions"
2863
+ },
2864
+ "path-item": {
2865
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#path-item-object",
2866
+ "type": "object",
2867
+ "properties": {
2868
+ "summary": {
2869
+ "type": "string"
2870
+ },
2871
+ "description": {
2872
+ "type": "string"
2873
+ },
2874
+ "servers": {
2875
+ "type": "array",
2876
+ "items": {
2877
+ "$ref": "#/$defs/server"
2878
+ }
2879
+ },
2880
+ "parameters": {
2881
+ "type": "array",
2882
+ "items": {
2883
+ "$ref": "#/$defs/parameter-or-reference"
2884
+ }
2885
+ },
2886
+ "get": {
2887
+ "$ref": "#/$defs/operation"
2888
+ },
2889
+ "put": {
2890
+ "$ref": "#/$defs/operation"
2891
+ },
2892
+ "post": {
2893
+ "$ref": "#/$defs/operation"
2894
+ },
2895
+ "delete": {
2896
+ "$ref": "#/$defs/operation"
2897
+ },
2898
+ "options": {
2899
+ "$ref": "#/$defs/operation"
2900
+ },
2901
+ "head": {
2902
+ "$ref": "#/$defs/operation"
2903
+ },
2904
+ "patch": {
2905
+ "$ref": "#/$defs/operation"
2906
+ },
2907
+ "trace": {
2908
+ "$ref": "#/$defs/operation"
2909
+ }
2910
+ },
2911
+ "$ref": "#/$defs/specification-extensions"
2912
+ },
2913
+ "path-item-or-reference": {
2914
+ "if": {
2915
+ "type": "object",
2916
+ "required": [
2917
+ "$ref"
2918
+ ]
2919
+ },
2920
+ "then": {
2921
+ "$ref": "#/$defs/reference"
2922
+ },
2923
+ "else": {
2924
+ "$ref": "#/$defs/path-item"
2925
+ }
2926
+ },
2927
+ "operation": {
2928
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#operation-object",
2929
+ "type": "object",
2930
+ "properties": {
2931
+ "tags": {
2932
+ "type": "array",
2933
+ "items": {
2934
+ "type": "string"
2935
+ }
2936
+ },
2937
+ "summary": {
2938
+ "type": "string"
2939
+ },
2940
+ "description": {
2941
+ "type": "string"
2942
+ },
2943
+ "externalDocs": {
2944
+ "$ref": "#/$defs/external-documentation"
2945
+ },
2946
+ "operationId": {
2947
+ "type": "string"
2948
+ },
2949
+ "parameters": {
2950
+ "type": "array",
2951
+ "items": {
2952
+ "$ref": "#/$defs/parameter-or-reference"
2953
+ }
2954
+ },
2955
+ "requestBody": {
2956
+ "$ref": "#/$defs/request-body-or-reference"
2957
+ },
2958
+ "responses": {
2959
+ "$ref": "#/$defs/responses"
2960
+ },
2961
+ "callbacks": {
2962
+ "type": "object",
2963
+ "additionalProperties": {
2964
+ "$ref": "#/$defs/callbacks-or-reference"
2965
+ }
2966
+ },
2967
+ "security": {
2968
+ "type": "array",
2969
+ "items": {
2970
+ "$ref": "#/$defs/security-requirement"
2971
+ }
2972
+ },
2973
+ "servers": {
2974
+ "type": "array",
2975
+ "items": {
2976
+ "$ref": "#/$defs/server"
2977
+ }
2978
+ }
2979
+ },
2980
+ "$ref": "#/$defs/specification-extensions"
2981
+ },
2982
+ "external-documentation": {
2983
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#external-documentation-object",
2984
+ "type": "object",
2985
+ "properties": {
2986
+ "description": {
2987
+ "type": "string"
2988
+ },
2989
+ "url": {
2990
+ "type": "string"
2991
+ }
2992
+ },
2993
+ "required": [
2994
+ "url"
2995
+ ],
2996
+ "$ref": "#/$defs/specification-extensions"
2997
+ },
2998
+ "parameter": {
2999
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#parameter-object",
3000
+ "type": "object",
3001
+ "properties": {
3002
+ "name": {
3003
+ "type": "string"
3004
+ },
3005
+ "in": {
3006
+ "enum": [
3007
+ "query",
3008
+ "header",
3009
+ "path",
3010
+ "cookie"
3011
+ ]
3012
+ },
3013
+ "description": {
3014
+ "type": "string"
3015
+ },
3016
+ "required": {
3017
+ "default": false,
3018
+ "type": "boolean"
3019
+ },
3020
+ "content": {
3021
+ "type": "object",
3022
+ "$ref": "#/$defs/content",
3023
+ "minProperties": 1,
3024
+ "maxProperties": 1
3025
+ }
3026
+ },
3027
+ "required": [
3028
+ "name",
3029
+ "in"
3030
+ ],
3031
+ "oneOf": [
3032
+ {
3033
+ "required": [
3034
+ "schema"
3035
+ ]
3036
+ },
3037
+ {
3038
+ "required": [
3039
+ "content"
3040
+ ]
3041
+ }
3042
+ ],
3043
+ "if": {
3044
+ "type": "object",
3045
+ "properties": {
3046
+ "in": {
3047
+ "const": "query"
3048
+ }
3049
+ },
3050
+ "required": [
3051
+ "in"
3052
+ ]
3053
+ },
3054
+ "then": {
3055
+ "type": "object",
3056
+ "properties": {
3057
+ "allowEmptyValue": {
3058
+ "default": false,
3059
+ "type": "boolean"
3060
+ }
3061
+ }
3062
+ },
3063
+ "$ref": "#/$defs/specification-extensions"
3064
+ },
3065
+ "parameter-or-reference": {
3066
+ "if": {
3067
+ "type": "object",
3068
+ "required": [
3069
+ "$ref"
3070
+ ]
3071
+ },
3072
+ "then": {
3073
+ "$ref": "#/$defs/reference"
3074
+ },
3075
+ "else": {
3076
+ "$ref": "#/$defs/parameter"
3077
+ }
3078
+ },
3079
+ "request-body": {
3080
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#request-body-object",
3081
+ "type": "object",
3082
+ "properties": {
3083
+ "description": {
3084
+ "type": "string"
3085
+ },
3086
+ "content": {
3087
+ "$ref": "#/$defs/content"
3088
+ },
3089
+ "required": {
3090
+ "default": false,
3091
+ "type": "boolean"
3092
+ }
3093
+ },
3094
+ "required": [
3095
+ "content"
3096
+ ],
3097
+ "$ref": "#/$defs/specification-extensions"
3098
+ },
3099
+ "request-body-or-reference": {
3100
+ "if": {
3101
+ "type": "object",
3102
+ "required": [
3103
+ "$ref"
3104
+ ]
3105
+ },
3106
+ "then": {
3107
+ "$ref": "#/$defs/reference"
3108
+ },
3109
+ "else": {
3110
+ "$ref": "#/$defs/request-body"
3111
+ }
3112
+ },
3113
+ "content": {
3114
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#fixed-fields-10",
3115
+ "type": "object",
3116
+ "additionalProperties": {
3117
+ "$ref": "#/$defs/media-type"
3118
+ }
3119
+ },
3120
+ "media-type": {
3121
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#media-type-object",
3122
+ "type": "object",
3123
+ "properties": {
3124
+ "encoding": {
3125
+ "type": "object",
3126
+ "additionalProperties": {
3127
+ "$ref": "#/$defs/encoding"
3128
+ }
3129
+ }
3130
+ },
3131
+ "allOf": [
3132
+ {
3133
+ "$ref": "#/$defs/specification-extensions"
3134
+ },
3135
+ {
3136
+ "$ref": "#/$defs/examples"
3137
+ }
3138
+ ]
3139
+ },
3140
+ "encoding": {
3141
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#encoding-object",
3142
+ "type": "object",
3143
+ "properties": {
3144
+ "contentType": {
3145
+ "type": "string"
3146
+ },
3147
+ "headers": {
3148
+ "type": "object",
3149
+ "additionalProperties": {
3150
+ "$ref": "#/$defs/header-or-reference"
3151
+ }
3152
+ },
3153
+ "style": {
3154
+ "default": "form",
3155
+ "enum": [
3156
+ "form",
3157
+ "spaceDelimited",
3158
+ "pipeDelimited",
3159
+ "deepObject"
3160
+ ]
3161
+ },
3162
+ "explode": {
3163
+ "type": "boolean"
3164
+ },
3165
+ "allowReserved": {
3166
+ "default": false,
3167
+ "type": "boolean"
3168
+ }
3169
+ },
3170
+ "allOf": [
3171
+ {
3172
+ "$ref": "#/$defs/specification-extensions"
3173
+ },
3174
+ {
3175
+ "$ref": "#/$defs/encoding/$defs/explode-default"
3176
+ }
3177
+ ],
3178
+ "$defs": {
3179
+ "explode-default": {
3180
+ "if": {
3181
+ "type": "object",
3182
+ "properties": {
3183
+ "style": {
3184
+ "const": "form"
3185
+ }
3186
+ },
3187
+ "required": [
3188
+ "style"
3189
+ ]
3190
+ },
3191
+ "then": {
3192
+ "type": "object",
3193
+ "properties": {
3194
+ "explode": {
3195
+ "default": true
3196
+ }
3197
+ }
3198
+ },
3199
+ "else": {
3200
+ "type": "object",
3201
+ "properties": {
3202
+ "explode": {
3203
+ "default": false
3204
+ }
3205
+ }
3206
+ }
3207
+ }
3208
+ }
3209
+ },
3210
+ "responses": {
3211
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#responses-object",
3212
+ "type": "object",
3213
+ "additionalProperties": {
3214
+ "$ref": "#/$defs/response-or-reference"
3215
+ },
3216
+ "minProperties": 1,
3217
+ "$ref": "#/$defs/specification-extensions"
3218
+ },
3219
+ "response": {
3220
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#response-object",
3221
+ "type": "object",
3222
+ "properties": {
3223
+ "description": {
3224
+ "type": "string"
3225
+ },
3226
+ "headers": {
3227
+ "type": "object",
3228
+ "additionalProperties": {
3229
+ "$ref": "#/$defs/header-or-reference"
3230
+ }
3231
+ },
3232
+ "content": {
3233
+ "$ref": "#/$defs/content"
3234
+ },
3235
+ "links": {
3236
+ "type": "object",
3237
+ "additionalProperties": {
3238
+ "$ref": "#/$defs/link-or-reference"
3239
+ }
3240
+ }
3241
+ },
3242
+ "required": [
3243
+ "description"
3244
+ ],
3245
+ "$ref": "#/$defs/specification-extensions"
3246
+ },
3247
+ "response-or-reference": {
3248
+ "if": {
3249
+ "type": "object",
3250
+ "required": [
3251
+ "$ref"
3252
+ ]
3253
+ },
3254
+ "then": {
3255
+ "$ref": "#/$defs/reference"
3256
+ },
3257
+ "else": {
3258
+ "$ref": "#/$defs/response"
3259
+ }
3260
+ },
3261
+ "callbacks": {
3262
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#callback-object",
3263
+ "type": "object",
3264
+ "$ref": "#/$defs/specification-extensions",
3265
+ "additionalProperties": {
3266
+ "$ref": "#/$defs/path-item-or-reference"
3267
+ }
3268
+ },
3269
+ "callbacks-or-reference": {
3270
+ "if": {
3271
+ "type": "object",
3272
+ "required": [
3273
+ "$ref"
3274
+ ]
3275
+ },
3276
+ "then": {
3277
+ "$ref": "#/$defs/reference"
3278
+ },
3279
+ "else": {
3280
+ "$ref": "#/$defs/callbacks"
3281
+ }
3282
+ },
3283
+ "example": {
3284
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#example-object",
3285
+ "type": "object",
3286
+ "properties": {
3287
+ "summary": {
3288
+ "type": "string"
3289
+ },
3290
+ "description": {
3291
+ "type": "string"
3292
+ },
3293
+ "value": true,
3294
+ "externalValue": {
3295
+ "type": "string"
3296
+ }
3297
+ },
3298
+ "not": {
3299
+ "required": [
3300
+ "value",
3301
+ "externalValue"
3302
+ ]
3303
+ },
3304
+ "$ref": "#/$defs/specification-extensions"
3305
+ },
3306
+ "example-or-reference": {
3307
+ "if": {
3308
+ "type": "object",
3309
+ "required": [
3310
+ "$ref"
3311
+ ]
3312
+ },
3313
+ "then": {
3314
+ "$ref": "#/$defs/reference"
3315
+ },
3316
+ "else": {
3317
+ "$ref": "#/$defs/example"
3318
+ }
3319
+ },
3320
+ "link": {
3321
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#link-object",
3322
+ "type": "object",
3323
+ "properties": {
3324
+ "operationRef": {
3325
+ "type": "string"
3326
+ },
3327
+ "operationId": {
3328
+ "type": "string"
3329
+ },
3330
+ "parameters": {
3331
+ "$ref": "#/$defs/map-of-strings"
3332
+ },
3333
+ "requestBody": true,
3334
+ "description": {
3335
+ "type": "string"
3336
+ },
3337
+ "body": {
3338
+ "$ref": "#/$defs/server"
3339
+ }
3340
+ },
3341
+ "oneOf": [
3342
+ {
3343
+ "required": [
3344
+ "operationRef"
3345
+ ]
3346
+ },
3347
+ {
3348
+ "required": [
3349
+ "operationId"
3350
+ ]
3351
+ }
3352
+ ],
3353
+ "$ref": "#/$defs/specification-extensions"
3354
+ },
3355
+ "link-or-reference": {
3356
+ "if": {
3357
+ "type": "object",
3358
+ "required": [
3359
+ "$ref"
3360
+ ]
3361
+ },
3362
+ "then": {
3363
+ "$ref": "#/$defs/reference"
3364
+ },
3365
+ "else": {
3366
+ "$ref": "#/$defs/link"
3367
+ }
3368
+ },
3369
+ "header": {
3370
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#header-object",
3371
+ "type": "object",
3372
+ "properties": {
3373
+ "description": {
3374
+ "type": "string"
3375
+ },
3376
+ "required": {
3377
+ "default": false,
3378
+ "type": "boolean"
3379
+ },
3380
+ "content": {
3381
+ "type": "object",
3382
+ "$ref": "#/$defs/content",
3383
+ "minProperties": 1,
3384
+ "maxProperties": 1
3385
+ }
3386
+ },
3387
+ "oneOf": [
3388
+ {
3389
+ "required": [
3390
+ "schema"
3391
+ ]
3392
+ },
3393
+ {
3394
+ "required": [
3395
+ "content"
3396
+ ]
3397
+ }
3398
+ ],
3399
+ "$ref": "#/$defs/specification-extensions"
3400
+ },
3401
+ "header-or-reference": {
3402
+ "if": {
3403
+ "type": "object",
3404
+ "required": [
3405
+ "$ref"
3406
+ ]
3407
+ },
3408
+ "then": {
3409
+ "$ref": "#/$defs/reference"
3410
+ },
3411
+ "else": {
3412
+ "$ref": "#/$defs/header"
3413
+ }
3414
+ },
3415
+ "tag": {
3416
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#tag-object",
3417
+ "type": "object",
3418
+ "properties": {
3419
+ "name": {
3420
+ "type": "string"
3421
+ },
3422
+ "description": {
3423
+ "type": "string"
3424
+ },
3425
+ "externalDocs": {
3426
+ "$ref": "#/$defs/external-documentation"
3427
+ }
3428
+ },
3429
+ "required": [
3430
+ "name"
3431
+ ],
3432
+ "$ref": "#/$defs/specification-extensions"
3433
+ },
3434
+ "reference": {
3435
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#reference-object",
3436
+ "type": "object",
3437
+ "properties": {
3438
+ "$ref": {
3439
+ "type": "string"
3440
+ },
3441
+ "summary": {
3442
+ "type": "string"
3443
+ },
3444
+ "description": {
3445
+ "type": "string"
3446
+ }
3447
+ }
3448
+ },
3449
+ "schema": {
3450
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#schema-object",
3451
+ "type": [
3452
+ "object",
3453
+ "boolean"
3454
+ ]
3455
+ },
3456
+ "security-scheme": {
3457
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#security-scheme-object",
3458
+ "type": "object",
3459
+ "properties": {
3460
+ "type": {
3461
+ "enum": [
3462
+ "apiKey",
3463
+ "http",
3464
+ "mutualTLS",
3465
+ "oauth2",
3466
+ "openIdConnect"
3467
+ ]
3468
+ },
3469
+ "description": {
3470
+ "type": "string"
3471
+ }
3472
+ },
3473
+ "required": [
3474
+ "type"
3475
+ ],
3476
+ "allOf": [
3477
+ {
3478
+ "$ref": "#/$defs/specification-extensions"
3479
+ },
3480
+ {
3481
+ "$ref": "#/$defs/security-scheme/$defs/type-apikey"
3482
+ },
3483
+ {
3484
+ "$ref": "#/$defs/security-scheme/$defs/type-http"
3485
+ },
3486
+ {
3487
+ "$ref": "#/$defs/security-scheme/$defs/type-http-bearer"
3488
+ },
3489
+ {
3490
+ "$ref": "#/$defs/security-scheme/$defs/type-oauth2"
3491
+ },
3492
+ {
3493
+ "$ref": "#/$defs/security-scheme/$defs/type-oidc"
3494
+ }
3495
+ ],
3496
+ "$defs": {
3497
+ "type-apikey": {
3498
+ "if": {
3499
+ "type": "object",
3500
+ "properties": {
3501
+ "type": {
3502
+ "const": "apiKey"
3503
+ }
3504
+ },
3505
+ "required": [
3506
+ "type"
3507
+ ]
3508
+ },
3509
+ "then": {
3510
+ "type": "object",
3511
+ "properties": {
3512
+ "name": {
3513
+ "type": "string"
3514
+ },
3515
+ "in": {
3516
+ "enum": [
3517
+ "query",
3518
+ "header",
3519
+ "cookie"
3520
+ ]
3521
+ }
3522
+ },
3523
+ "required": [
3524
+ "name",
3525
+ "in"
3526
+ ]
3527
+ }
3528
+ },
3529
+ "type-http": {
3530
+ "if": {
3531
+ "type": "object",
3532
+ "properties": {
3533
+ "type": {
3534
+ "const": "http"
3535
+ }
3536
+ },
3537
+ "required": [
3538
+ "type"
3539
+ ]
3540
+ },
3541
+ "then": {
3542
+ "type": "object",
3543
+ "properties": {
3544
+ "scheme": {
3545
+ "type": "string"
3546
+ }
3547
+ },
3548
+ "required": [
3549
+ "scheme"
3550
+ ]
3551
+ }
3552
+ },
3553
+ "type-http-bearer": {
3554
+ "if": {
3555
+ "type": "object",
3556
+ "properties": {
3557
+ "type": {
3558
+ "const": "http"
3559
+ },
3560
+ "scheme": {
3561
+ "type": "string",
3562
+ "pattern": "^[Bb][Ee][Aa][Rr][Ee][Rr]$"
3563
+ }
3564
+ },
3565
+ "required": [
3566
+ "type",
3567
+ "scheme"
3568
+ ]
3569
+ },
3570
+ "then": {
3571
+ "type": "object",
3572
+ "properties": {
3573
+ "bearerFormat": {
3574
+ "type": "string"
3575
+ }
3576
+ }
3577
+ }
3578
+ },
3579
+ "type-oauth2": {
3580
+ "if": {
3581
+ "type": "object",
3582
+ "properties": {
3583
+ "type": {
3584
+ "const": "oauth2"
3585
+ }
3586
+ },
3587
+ "required": [
3588
+ "type"
3589
+ ]
3590
+ },
3591
+ "then": {
3592
+ "type": "object",
3593
+ "properties": {
3594
+ "flows": {
3595
+ "$ref": "#/$defs/oauth-flows"
3596
+ }
3597
+ },
3598
+ "required": [
3599
+ "flows"
3600
+ ]
3601
+ }
3602
+ },
3603
+ "type-oidc": {
3604
+ "if": {
3605
+ "type": "object",
3606
+ "properties": {
3607
+ "type": {
3608
+ "const": "openIdConnect"
3609
+ }
3610
+ },
3611
+ "required": [
3612
+ "type"
3613
+ ]
3614
+ },
3615
+ "then": {
3616
+ "type": "object",
3617
+ "properties": {
3618
+ "openIdConnectUrl": {
3619
+ "type": "string"
3620
+ }
3621
+ },
3622
+ "required": [
3623
+ "openIdConnectUrl"
3624
+ ]
3625
+ }
3626
+ }
3627
+ }
3628
+ },
3629
+ "security-scheme-or-reference": {
3630
+ "if": {
3631
+ "type": "object",
3632
+ "required": [
3633
+ "$ref"
3634
+ ]
3635
+ },
3636
+ "then": {
3637
+ "$ref": "#/$defs/reference"
3638
+ },
3639
+ "else": {
3640
+ "$ref": "#/$defs/security-scheme"
3641
+ }
3642
+ },
3643
+ "oauth-flows": {
3644
+ "type": "object",
3645
+ "properties": {
3646
+ "implicit": {
3647
+ "$ref": "#/$defs/oauth-flows/$defs/implicit"
3648
+ },
3649
+ "password": {
3650
+ "$ref": "#/$defs/oauth-flows/$defs/password"
3651
+ },
3652
+ "clientCredentials": {
3653
+ "$ref": "#/$defs/oauth-flows/$defs/client-credentials"
3654
+ },
3655
+ "authorizationCode": {
3656
+ "$ref": "#/$defs/oauth-flows/$defs/authorization-code"
3657
+ }
3658
+ },
3659
+ "$ref": "#/$defs/specification-extensions",
3660
+ "$defs": {
3661
+ "implicit": {
3662
+ "type": "object",
3663
+ "properties": {
3664
+ "authorizationUrl": {
3665
+ "type": "string"
3666
+ },
3667
+ "refreshUrl": {
3668
+ "type": "string"
3669
+ },
3670
+ "scopes": {
3671
+ "$ref": "#/$defs/map-of-strings"
3672
+ }
3673
+ },
3674
+ "required": [
3675
+ "authorizationUrl",
3676
+ "scopes"
3677
+ ],
3678
+ "$ref": "#/$defs/specification-extensions"
3679
+ },
3680
+ "password": {
3681
+ "type": "object",
3682
+ "properties": {
3683
+ "tokenUrl": {
3684
+ "type": "string"
3685
+ },
3686
+ "refreshUrl": {
3687
+ "type": "string"
3688
+ },
3689
+ "scopes": {
3690
+ "$ref": "#/$defs/map-of-strings"
3691
+ }
3692
+ },
3693
+ "required": [
3694
+ "tokenUrl",
3695
+ "scopes"
3696
+ ],
3697
+ "$ref": "#/$defs/specification-extensions"
3698
+ },
3699
+ "client-credentials": {
3700
+ "type": "object",
3701
+ "properties": {
3702
+ "tokenUrl": {
3703
+ "type": "string"
3704
+ },
3705
+ "refreshUrl": {
3706
+ "type": "string"
3707
+ },
3708
+ "scopes": {
3709
+ "$ref": "#/$defs/map-of-strings"
3710
+ }
3711
+ },
3712
+ "required": [
3713
+ "tokenUrl",
3714
+ "scopes"
3715
+ ],
3716
+ "$ref": "#/$defs/specification-extensions"
3717
+ },
3718
+ "authorization-code": {
3719
+ "type": "object",
3720
+ "properties": {
3721
+ "authorizationUrl": {
3722
+ "type": "string"
3723
+ },
3724
+ "tokenUrl": {
3725
+ "type": "string"
3726
+ },
3727
+ "refreshUrl": {
3728
+ "type": "string"
3729
+ },
3730
+ "scopes": {
3731
+ "$ref": "#/$defs/map-of-strings"
3732
+ }
3733
+ },
3734
+ "required": [
3735
+ "authorizationUrl",
3736
+ "tokenUrl",
3737
+ "scopes"
3738
+ ],
3739
+ "$ref": "#/$defs/specification-extensions"
3740
+ }
3741
+ }
3742
+ },
3743
+ "security-requirement": {
3744
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#security-requirement-object",
3745
+ "type": "object",
3746
+ "additionalProperties": {
3747
+ "type": "array",
3748
+ "items": {
3749
+ "type": "string"
3750
+ }
3751
+ }
3752
+ },
3753
+ "specification-extensions": {
3754
+ "$comment": "https://spec.openapis.org/oas/v3.1.0#specification-extensions",
3755
+ "type": "object",
3756
+ "patternProperties": {
3757
+ "^x-": true
3758
+ }
3759
+ },
3760
+ "examples": {
3761
+ "type": "object",
3762
+ "properties": {
3763
+ "example": true,
3764
+ "examples": {
3765
+ "type": "object",
3766
+ "additionalProperties": {
3767
+ "$ref": "#/$defs/example-or-reference"
3768
+ }
3769
+ }
3770
+ }
3771
+ },
3772
+ "map-of-strings": {
3773
+ "type": "object",
3774
+ "additionalProperties": {
3775
+ "type": "string"
3776
+ }
3777
+ }
3778
+ }
3779
+ }