@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/config.d.ts ADDED
@@ -0,0 +1,1000 @@
1
+ /* eslint-disable */
2
+ /**
3
+ * This file was automatically generated by json-schema-to-typescript.
4
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
5
+ * and run json-schema-to-typescript to regenerate this file.
6
+ */
7
+
8
+ export interface PlatformaticGatewayConfig {
9
+ basePath?: string;
10
+ server?: {
11
+ hostname?: string;
12
+ port?: number | string;
13
+ pluginTimeout?: number;
14
+ healthCheck?:
15
+ | boolean
16
+ | {
17
+ enabled?: boolean;
18
+ interval?: number;
19
+ [k: string]: unknown;
20
+ };
21
+ ignoreTrailingSlash?: boolean;
22
+ ignoreDuplicateSlashes?: boolean;
23
+ connectionTimeout?: number;
24
+ keepAliveTimeout?: number;
25
+ maxRequestsPerSocket?: number;
26
+ forceCloseConnections?: boolean | string;
27
+ requestTimeout?: number;
28
+ bodyLimit?: number;
29
+ maxParamLength?: number;
30
+ disableRequestLogging?: boolean;
31
+ exposeHeadRoutes?: boolean;
32
+ logger?:
33
+ | boolean
34
+ | {
35
+ level: (
36
+ | ("fatal" | "error" | "warn" | "info" | "debug" | "trace" | "silent")
37
+ | {
38
+ [k: string]: unknown;
39
+ }
40
+ ) &
41
+ string;
42
+ transport?:
43
+ | {
44
+ target?: string;
45
+ options?: {
46
+ [k: string]: unknown;
47
+ };
48
+ }
49
+ | {
50
+ targets?: {
51
+ target?: string;
52
+ options?: {
53
+ [k: string]: unknown;
54
+ };
55
+ level?: string;
56
+ }[];
57
+ options?: {
58
+ [k: string]: unknown;
59
+ };
60
+ };
61
+ pipeline?: {
62
+ target?: string;
63
+ options?: {
64
+ [k: string]: unknown;
65
+ };
66
+ };
67
+ formatters?: {
68
+ path: string;
69
+ };
70
+ timestamp?: "epochTime" | "unixTime" | "nullTime" | "isoTime";
71
+ redact?: {
72
+ paths: string[];
73
+ censor?: string;
74
+ };
75
+ base?: {
76
+ [k: string]: unknown;
77
+ } | null;
78
+ messageKey?: string;
79
+ customLevels?: {
80
+ [k: string]: unknown;
81
+ };
82
+ [k: string]: unknown;
83
+ };
84
+ loggerInstance?: {
85
+ [k: string]: unknown;
86
+ };
87
+ serializerOpts?: {
88
+ schema?: {
89
+ [k: string]: unknown;
90
+ };
91
+ ajv?: {
92
+ [k: string]: unknown;
93
+ };
94
+ rounding?: "floor" | "ceil" | "round" | "trunc";
95
+ debugMode?: boolean;
96
+ mode?: "debug" | "standalone";
97
+ largeArraySize?: number | string;
98
+ largeArrayMechanism?: "default" | "json-stringify";
99
+ [k: string]: unknown;
100
+ };
101
+ caseSensitive?: boolean;
102
+ requestIdHeader?: string | false;
103
+ requestIdLogLabel?: string;
104
+ jsonShorthand?: boolean;
105
+ trustProxy?: boolean | string | string[] | number;
106
+ http2?: boolean;
107
+ https?: {
108
+ allowHTTP1?: boolean;
109
+ key:
110
+ | string
111
+ | {
112
+ path?: string;
113
+ }
114
+ | (
115
+ | string
116
+ | {
117
+ path?: string;
118
+ }
119
+ )[];
120
+ cert:
121
+ | string
122
+ | {
123
+ path?: string;
124
+ }
125
+ | (
126
+ | string
127
+ | {
128
+ path?: string;
129
+ }
130
+ )[];
131
+ requestCert?: boolean;
132
+ rejectUnauthorized?: boolean;
133
+ };
134
+ cors?: {
135
+ origin?:
136
+ | boolean
137
+ | string
138
+ | (
139
+ | string
140
+ | {
141
+ regexp: string;
142
+ [k: string]: unknown;
143
+ }
144
+ )[]
145
+ | {
146
+ regexp: string;
147
+ [k: string]: unknown;
148
+ };
149
+ methods?: string[];
150
+ /**
151
+ * Comma separated string of allowed headers.
152
+ */
153
+ allowedHeaders?: string;
154
+ exposedHeaders?: string[] | string;
155
+ credentials?: boolean;
156
+ maxAge?: number;
157
+ preflightContinue?: boolean;
158
+ optionsSuccessStatus?: number;
159
+ preflight?: boolean;
160
+ strictPreflight?: boolean;
161
+ hideOptionsRoute?: boolean;
162
+ };
163
+ };
164
+ gateway?: {
165
+ applications?: {
166
+ id: string;
167
+ origin?: string;
168
+ openapi?: {
169
+ [k: string]: unknown;
170
+ };
171
+ graphql?:
172
+ | boolean
173
+ | {
174
+ host?: string;
175
+ name?: string;
176
+ graphqlEndpoint?: string;
177
+ composeEndpoint?: string;
178
+ entities?: {
179
+ /**
180
+ * This interface was referenced by `undefined`'s JSON-Schema definition
181
+ * via the `patternProperty` "^.*$".
182
+ */
183
+ [k: string]: {
184
+ pkey?: string;
185
+ resolver?: {
186
+ name: string;
187
+ argsAdapter?:
188
+ | {
189
+ [k: string]: unknown;
190
+ }
191
+ | string;
192
+ partialResults?:
193
+ | {
194
+ [k: string]: unknown;
195
+ }
196
+ | string;
197
+ };
198
+ fkeys?: {
199
+ type: string;
200
+ field?: string;
201
+ as?: string;
202
+ pkey?: string;
203
+ subgraph?: string;
204
+ resolver?: {
205
+ name: string;
206
+ argsAdapter?:
207
+ | {
208
+ [k: string]: unknown;
209
+ }
210
+ | string;
211
+ partialResults?:
212
+ | {
213
+ [k: string]: unknown;
214
+ }
215
+ | string;
216
+ };
217
+ [k: string]: unknown;
218
+ }[];
219
+ many?: {
220
+ type: string;
221
+ fkey: string;
222
+ as?: string;
223
+ pkey?: string;
224
+ subgraph?: string;
225
+ resolver: {
226
+ name: string;
227
+ argsAdapter?:
228
+ | {
229
+ [k: string]: unknown;
230
+ }
231
+ | string;
232
+ partialResults?:
233
+ | {
234
+ [k: string]: unknown;
235
+ }
236
+ | string;
237
+ };
238
+ [k: string]: unknown;
239
+ }[];
240
+ [k: string]: unknown;
241
+ };
242
+ };
243
+ };
244
+ proxy?:
245
+ | false
246
+ | {
247
+ upstream?: string;
248
+ prefix?: string;
249
+ hostname?: string;
250
+ ws?: {
251
+ upstream?: string;
252
+ reconnect?: {
253
+ pingInterval?: number;
254
+ maxReconnectionRetries?: number;
255
+ reconnectInterval?: number;
256
+ reconnectDecay?: number;
257
+ connectionTimeout?: number;
258
+ reconnectOnClose?: boolean;
259
+ logs?: boolean;
260
+ [k: string]: unknown;
261
+ };
262
+ hooks?: {
263
+ path: string;
264
+ };
265
+ };
266
+ };
267
+ }[];
268
+ openapi?: {
269
+ info?: Info;
270
+ jsonSchemaDialect?: string;
271
+ servers?: Server[];
272
+ paths?: Paths;
273
+ webhooks?: {
274
+ [k: string]: PathItemOrReference;
275
+ };
276
+ components?: Components;
277
+ security?: SecurityRequirement[];
278
+ tags?: Tag[];
279
+ externalDocs?: ExternalDocumentation;
280
+ /**
281
+ * Base URL for the OpenAPI Swagger Documentation
282
+ */
283
+ swaggerPrefix?: string;
284
+ /**
285
+ * Path to an OpenAPI spec file
286
+ */
287
+ path?: string;
288
+ [k: string]: unknown;
289
+ };
290
+ graphql?: {
291
+ graphiql?: boolean;
292
+ onSubgraphError?: {
293
+ [k: string]: unknown;
294
+ };
295
+ defaultArgsAdapter?:
296
+ | {
297
+ [k: string]: unknown;
298
+ }
299
+ | string;
300
+ entities?: {
301
+ /**
302
+ * This interface was referenced by `undefined`'s JSON-Schema definition
303
+ * via the `patternProperty` "^.*$".
304
+ */
305
+ [k: string]: {
306
+ pkey?: string;
307
+ resolver?: {
308
+ name: string;
309
+ argsAdapter?:
310
+ | {
311
+ [k: string]: unknown;
312
+ }
313
+ | string;
314
+ partialResults?:
315
+ | {
316
+ [k: string]: unknown;
317
+ }
318
+ | string;
319
+ };
320
+ fkeys?: {
321
+ type: string;
322
+ field?: string;
323
+ as?: string;
324
+ pkey?: string;
325
+ subgraph?: string;
326
+ resolver?: {
327
+ name: string;
328
+ argsAdapter?:
329
+ | {
330
+ [k: string]: unknown;
331
+ }
332
+ | string;
333
+ partialResults?:
334
+ | {
335
+ [k: string]: unknown;
336
+ }
337
+ | string;
338
+ };
339
+ [k: string]: unknown;
340
+ }[];
341
+ many?: {
342
+ type: string;
343
+ fkey: string;
344
+ as?: string;
345
+ pkey?: string;
346
+ subgraph?: string;
347
+ resolver: {
348
+ name: string;
349
+ argsAdapter?:
350
+ | {
351
+ [k: string]: unknown;
352
+ }
353
+ | string;
354
+ partialResults?:
355
+ | {
356
+ [k: string]: unknown;
357
+ }
358
+ | string;
359
+ };
360
+ [k: string]: unknown;
361
+ }[];
362
+ [k: string]: unknown;
363
+ };
364
+ };
365
+ addEntitiesResolvers?: boolean;
366
+ };
367
+ addEmptySchema?: boolean;
368
+ refreshTimeout?: number;
369
+ };
370
+ types?: {
371
+ autogenerate?: boolean;
372
+ /**
373
+ * The path to the directory the types should be generated in.
374
+ */
375
+ dir?: string;
376
+ };
377
+ plugins?: {
378
+ [k: string]: unknown;
379
+ };
380
+ application?: {};
381
+ runtime?: {
382
+ preload?: string | string[];
383
+ basePath?: string;
384
+ services?: {
385
+ [k: string]: unknown;
386
+ }[];
387
+ workers?: number | string;
388
+ logger?: {
389
+ level: (
390
+ | ("fatal" | "error" | "warn" | "info" | "debug" | "trace" | "silent")
391
+ | {
392
+ [k: string]: unknown;
393
+ }
394
+ ) &
395
+ string;
396
+ transport?:
397
+ | {
398
+ target?: string;
399
+ options?: {
400
+ [k: string]: unknown;
401
+ };
402
+ }
403
+ | {
404
+ targets?: {
405
+ target?: string;
406
+ options?: {
407
+ [k: string]: unknown;
408
+ };
409
+ level?: string;
410
+ }[];
411
+ options?: {
412
+ [k: string]: unknown;
413
+ };
414
+ };
415
+ pipeline?: {
416
+ target?: string;
417
+ options?: {
418
+ [k: string]: unknown;
419
+ };
420
+ };
421
+ formatters?: {
422
+ path: string;
423
+ };
424
+ timestamp?: "epochTime" | "unixTime" | "nullTime" | "isoTime";
425
+ redact?: {
426
+ paths: string[];
427
+ censor?: string;
428
+ };
429
+ base?: {
430
+ [k: string]: unknown;
431
+ } | null;
432
+ messageKey?: string;
433
+ customLevels?: {
434
+ [k: string]: unknown;
435
+ };
436
+ [k: string]: unknown;
437
+ };
438
+ server?: {
439
+ hostname?: string;
440
+ port?: number | string;
441
+ http2?: boolean;
442
+ https?: {
443
+ allowHTTP1?: boolean;
444
+ key:
445
+ | string
446
+ | {
447
+ path?: string;
448
+ }
449
+ | (
450
+ | string
451
+ | {
452
+ path?: string;
453
+ }
454
+ )[];
455
+ cert:
456
+ | string
457
+ | {
458
+ path?: string;
459
+ }
460
+ | (
461
+ | string
462
+ | {
463
+ path?: string;
464
+ }
465
+ )[];
466
+ requestCert?: boolean;
467
+ rejectUnauthorized?: boolean;
468
+ };
469
+ };
470
+ startTimeout?: number;
471
+ restartOnError?: boolean | number;
472
+ gracefulShutdown?: {
473
+ runtime: number | string;
474
+ application: number | string;
475
+ };
476
+ health?: {
477
+ enabled?: boolean | string;
478
+ interval?: number | string;
479
+ gracePeriod?: number | string;
480
+ maxUnhealthyChecks?: number | string;
481
+ maxELU?: number | string;
482
+ maxHeapUsed?: number | string;
483
+ maxHeapTotal?: number | string;
484
+ maxYoungGeneration?: number | string;
485
+ };
486
+ undici?: {
487
+ agentOptions?: {
488
+ [k: string]: unknown;
489
+ };
490
+ interceptors?:
491
+ | {
492
+ module: string;
493
+ options: {
494
+ [k: string]: unknown;
495
+ };
496
+ [k: string]: unknown;
497
+ }[]
498
+ | {
499
+ Client?: {
500
+ module: string;
501
+ options: {
502
+ [k: string]: unknown;
503
+ };
504
+ [k: string]: unknown;
505
+ }[];
506
+ Pool?: {
507
+ module: string;
508
+ options: {
509
+ [k: string]: unknown;
510
+ };
511
+ [k: string]: unknown;
512
+ }[];
513
+ Agent?: {
514
+ module: string;
515
+ options: {
516
+ [k: string]: unknown;
517
+ };
518
+ [k: string]: unknown;
519
+ }[];
520
+ [k: string]: unknown;
521
+ };
522
+ [k: string]: unknown;
523
+ };
524
+ httpCache?:
525
+ | boolean
526
+ | {
527
+ store?: string;
528
+ /**
529
+ * @minItems 1
530
+ */
531
+ methods?: [string, ...string[]];
532
+ cacheTagsHeader?: string;
533
+ maxSize?: number;
534
+ maxEntrySize?: number;
535
+ maxCount?: number;
536
+ [k: string]: unknown;
537
+ };
538
+ watch?: boolean | string;
539
+ managementApi?:
540
+ | boolean
541
+ | string
542
+ | {
543
+ logs?: {
544
+ maxSize?: number;
545
+ };
546
+ };
547
+ metrics?:
548
+ | boolean
549
+ | {
550
+ port?: number | string;
551
+ enabled?: boolean | string;
552
+ hostname?: string;
553
+ endpoint?: string;
554
+ auth?: {
555
+ username: string;
556
+ password: string;
557
+ };
558
+ labels?: {
559
+ [k: string]: string;
560
+ };
561
+ readiness?:
562
+ | boolean
563
+ | {
564
+ endpoint?: string;
565
+ success?: {
566
+ statusCode?: number;
567
+ body?: string;
568
+ };
569
+ fail?: {
570
+ statusCode?: number;
571
+ body?: string;
572
+ };
573
+ };
574
+ liveness?:
575
+ | boolean
576
+ | {
577
+ endpoint?: string;
578
+ success?: {
579
+ statusCode?: number;
580
+ body?: string;
581
+ };
582
+ fail?: {
583
+ statusCode?: number;
584
+ body?: string;
585
+ };
586
+ };
587
+ additionalProperties?: never;
588
+ [k: string]: unknown;
589
+ };
590
+ telemetry?: {
591
+ enabled?: boolean | string;
592
+ /**
593
+ * The name of the application. Defaults to the folder name if not specified.
594
+ */
595
+ applicationName: string;
596
+ /**
597
+ * The version of the application (optional)
598
+ */
599
+ version?: string;
600
+ /**
601
+ * An array of paths to skip when creating spans. Useful for health checks and other endpoints that do not need to be traced.
602
+ */
603
+ skip?: {
604
+ /**
605
+ * The path to skip. Can be a string or a regex.
606
+ */
607
+ path?: string;
608
+ /**
609
+ * HTTP method to skip
610
+ */
611
+ method?: "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "HEAD" | "OPTIONS";
612
+ [k: string]: unknown;
613
+ }[];
614
+ exporter?:
615
+ | {
616
+ type?: "console" | "otlp" | "zipkin" | "memory" | "file";
617
+ /**
618
+ * Options for the exporter. These are passed directly to the exporter.
619
+ */
620
+ options?: {
621
+ /**
622
+ * The URL to send the traces to. Not used for console or memory exporters.
623
+ */
624
+ url?: string;
625
+ /**
626
+ * Headers to send to the exporter. Not used for console or memory exporters.
627
+ */
628
+ headers?: {
629
+ [k: string]: unknown;
630
+ };
631
+ /**
632
+ * The path to write the traces to. Only for file exporter.
633
+ */
634
+ path?: string;
635
+ [k: string]: unknown;
636
+ };
637
+ additionalProperties?: never;
638
+ [k: string]: unknown;
639
+ }[]
640
+ | {
641
+ type?: "console" | "otlp" | "zipkin" | "memory" | "file";
642
+ /**
643
+ * Options for the exporter. These are passed directly to the exporter.
644
+ */
645
+ options?: {
646
+ /**
647
+ * The URL to send the traces to. Not used for console or memory exporters.
648
+ */
649
+ url?: string;
650
+ /**
651
+ * Headers to send to the exporter. Not used for console or memory exporters.
652
+ */
653
+ headers?: {
654
+ [k: string]: unknown;
655
+ };
656
+ /**
657
+ * The path to write the traces to. Only for file exporter.
658
+ */
659
+ path?: string;
660
+ [k: string]: unknown;
661
+ };
662
+ additionalProperties?: never;
663
+ [k: string]: unknown;
664
+ };
665
+ };
666
+ inspectorOptions?: {
667
+ host?: string;
668
+ port?: number;
669
+ breakFirstLine?: boolean;
670
+ watchDisabled?: boolean;
671
+ [k: string]: unknown;
672
+ };
673
+ applicationTimeout?: number | string;
674
+ messagingTimeout?: number | string;
675
+ env?: {
676
+ [k: string]: string;
677
+ };
678
+ sourceMaps?: boolean;
679
+ scheduler?: {
680
+ enabled?: boolean | string;
681
+ name: string;
682
+ cron: string;
683
+ callbackUrl: string;
684
+ method?: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
685
+ headers?: {
686
+ [k: string]: string;
687
+ };
688
+ body?:
689
+ | string
690
+ | {
691
+ [k: string]: unknown;
692
+ };
693
+ maxRetries?: number;
694
+ [k: string]: unknown;
695
+ }[];
696
+ };
697
+ telemetry?: {
698
+ enabled?: boolean | string;
699
+ /**
700
+ * The name of the application. Defaults to the folder name if not specified.
701
+ */
702
+ applicationName: string;
703
+ /**
704
+ * The version of the application (optional)
705
+ */
706
+ version?: string;
707
+ /**
708
+ * An array of paths to skip when creating spans. Useful for health checks and other endpoints that do not need to be traced.
709
+ */
710
+ skip?: {
711
+ /**
712
+ * The path to skip. Can be a string or a regex.
713
+ */
714
+ path?: string;
715
+ /**
716
+ * HTTP method to skip
717
+ */
718
+ method?: "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "HEAD" | "OPTIONS";
719
+ [k: string]: unknown;
720
+ }[];
721
+ exporter?:
722
+ | {
723
+ type?: "console" | "otlp" | "zipkin" | "memory" | "file";
724
+ /**
725
+ * Options for the exporter. These are passed directly to the exporter.
726
+ */
727
+ options?: {
728
+ /**
729
+ * The URL to send the traces to. Not used for console or memory exporters.
730
+ */
731
+ url?: string;
732
+ /**
733
+ * Headers to send to the exporter. Not used for console or memory exporters.
734
+ */
735
+ headers?: {
736
+ [k: string]: unknown;
737
+ };
738
+ /**
739
+ * The path to write the traces to. Only for file exporter.
740
+ */
741
+ path?: string;
742
+ [k: string]: unknown;
743
+ };
744
+ additionalProperties?: never;
745
+ [k: string]: unknown;
746
+ }[]
747
+ | {
748
+ type?: "console" | "otlp" | "zipkin" | "memory" | "file";
749
+ /**
750
+ * Options for the exporter. These are passed directly to the exporter.
751
+ */
752
+ options?: {
753
+ /**
754
+ * The URL to send the traces to. Not used for console or memory exporters.
755
+ */
756
+ url?: string;
757
+ /**
758
+ * Headers to send to the exporter. Not used for console or memory exporters.
759
+ */
760
+ headers?: {
761
+ [k: string]: unknown;
762
+ };
763
+ /**
764
+ * The path to write the traces to. Only for file exporter.
765
+ */
766
+ path?: string;
767
+ [k: string]: unknown;
768
+ };
769
+ additionalProperties?: never;
770
+ [k: string]: unknown;
771
+ };
772
+ };
773
+ watch?:
774
+ | {
775
+ enabled?: boolean | string;
776
+ /**
777
+ * @minItems 1
778
+ */
779
+ allow?: [string, ...string[]];
780
+ ignore?: string[];
781
+ }
782
+ | boolean
783
+ | string;
784
+ $schema?: string;
785
+ module?: string;
786
+ }
787
+ export interface Info {
788
+ title: string;
789
+ summary?: string;
790
+ description?: string;
791
+ termsOfService?: string;
792
+ contact?: Contact;
793
+ license?: License;
794
+ version: string;
795
+ /**
796
+ * This interface was referenced by `Info`'s JSON-Schema definition
797
+ * via the `patternProperty` "^x-".
798
+ */
799
+ [k: string]: unknown;
800
+ }
801
+ export interface Contact {
802
+ name?: string;
803
+ url?: string;
804
+ email?: string;
805
+ /**
806
+ * This interface was referenced by `Contact`'s JSON-Schema definition
807
+ * via the `patternProperty` "^x-".
808
+ */
809
+ [k: string]: unknown;
810
+ }
811
+ export interface License {
812
+ name: string;
813
+ identifier?: string;
814
+ url?: string;
815
+ /**
816
+ * This interface was referenced by `License`'s JSON-Schema definition
817
+ * via the `patternProperty` "^x-".
818
+ */
819
+ [k: string]: unknown;
820
+ }
821
+ export interface Server {
822
+ url: string;
823
+ description?: string;
824
+ variables?: {
825
+ [k: string]: ServerVariable;
826
+ };
827
+ /**
828
+ * This interface was referenced by `Server`'s JSON-Schema definition
829
+ * via the `patternProperty` "^x-".
830
+ */
831
+ [k: string]: unknown;
832
+ }
833
+ export interface ServerVariable {
834
+ /**
835
+ * @minItems 1
836
+ */
837
+ enum?: [string, ...string[]];
838
+ default: string;
839
+ description?: string;
840
+ /**
841
+ * This interface was referenced by `ServerVariable`'s JSON-Schema definition
842
+ * via the `patternProperty` "^x-".
843
+ */
844
+ [k: string]: unknown;
845
+ }
846
+ export interface Paths {
847
+ [k: string]: PathItem;
848
+ }
849
+ /**
850
+ * This interface was referenced by `Paths`'s JSON-Schema definition
851
+ * via the `patternProperty` "^/".
852
+ */
853
+ export interface PathItem {
854
+ summary?: string;
855
+ description?: string;
856
+ servers?: Server[];
857
+ parameters?: ParameterOrReference[];
858
+ get?: Operation;
859
+ put?: Operation1;
860
+ post?: Operation1;
861
+ delete?: Operation1;
862
+ options?: Operation1;
863
+ head?: Operation1;
864
+ patch?: Operation1;
865
+ trace?: Operation1;
866
+ /**
867
+ * This interface was referenced by `PathItem`'s JSON-Schema definition
868
+ * via the `patternProperty` "^x-".
869
+ */
870
+ [k: string]: unknown;
871
+ }
872
+ export interface ParameterOrReference {
873
+ [k: string]: unknown;
874
+ }
875
+ export interface Operation {
876
+ tags?: string[];
877
+ summary?: string;
878
+ description?: string;
879
+ externalDocs?: ExternalDocumentation;
880
+ operationId?: string;
881
+ parameters?: ParameterOrReference[];
882
+ requestBody?: RequestBodyOrReference;
883
+ responses?: Responses;
884
+ callbacks?: {
885
+ [k: string]: CallbacksOrReference;
886
+ };
887
+ security?: SecurityRequirement[];
888
+ servers?: Server[];
889
+ /**
890
+ * This interface was referenced by `Operation`'s JSON-Schema definition
891
+ * via the `patternProperty` "^x-".
892
+ */
893
+ [k: string]: unknown;
894
+ }
895
+ export interface ExternalDocumentation {
896
+ description?: string;
897
+ url: string;
898
+ /**
899
+ * This interface was referenced by `ExternalDocumentation`'s JSON-Schema definition
900
+ * via the `patternProperty` "^x-".
901
+ */
902
+ [k: string]: unknown;
903
+ }
904
+ export interface RequestBodyOrReference {
905
+ [k: string]: unknown;
906
+ }
907
+ export interface Responses {
908
+ [k: string]: ResponseOrReference;
909
+ }
910
+ export interface ResponseOrReference {
911
+ [k: string]: unknown;
912
+ }
913
+ export interface CallbacksOrReference {
914
+ [k: string]: unknown;
915
+ }
916
+ export interface SecurityRequirement {
917
+ [k: string]: string[];
918
+ }
919
+ export interface Operation1 {
920
+ tags?: string[];
921
+ summary?: string;
922
+ description?: string;
923
+ externalDocs?: ExternalDocumentation;
924
+ operationId?: string;
925
+ parameters?: ParameterOrReference[];
926
+ requestBody?: RequestBodyOrReference;
927
+ responses?: Responses;
928
+ callbacks?: {
929
+ [k: string]: CallbacksOrReference;
930
+ };
931
+ security?: SecurityRequirement[];
932
+ servers?: Server[];
933
+ /**
934
+ * This interface was referenced by `Operation1`'s JSON-Schema definition
935
+ * via the `patternProperty` "^x-".
936
+ */
937
+ [k: string]: unknown;
938
+ }
939
+ export interface PathItemOrReference {
940
+ [k: string]: unknown;
941
+ }
942
+ export interface Components {
943
+ schemas?: {
944
+ [k: string]: unknown;
945
+ };
946
+ responses?: {
947
+ [k: string]: ResponseOrReference;
948
+ };
949
+ parameters?: {
950
+ [k: string]: ParameterOrReference;
951
+ };
952
+ examples?: {
953
+ [k: string]: ExampleOrReference;
954
+ };
955
+ requestBodies?: {
956
+ [k: string]: RequestBodyOrReference;
957
+ };
958
+ headers?: {
959
+ [k: string]: HeaderOrReference;
960
+ };
961
+ securitySchemes?: {
962
+ [k: string]: SecuritySchemeOrReference;
963
+ };
964
+ links?: {
965
+ [k: string]: LinkOrReference;
966
+ };
967
+ callbacks?: {
968
+ [k: string]: CallbacksOrReference;
969
+ };
970
+ pathItems?: {
971
+ [k: string]: PathItemOrReference;
972
+ };
973
+ /**
974
+ * This interface was referenced by `Components`'s JSON-Schema definition
975
+ * via the `patternProperty` "^x-".
976
+ */
977
+ [k: string]: unknown;
978
+ }
979
+ export interface ExampleOrReference {
980
+ [k: string]: unknown;
981
+ }
982
+ export interface HeaderOrReference {
983
+ [k: string]: unknown;
984
+ }
985
+ export interface SecuritySchemeOrReference {
986
+ [k: string]: unknown;
987
+ }
988
+ export interface LinkOrReference {
989
+ [k: string]: unknown;
990
+ }
991
+ export interface Tag {
992
+ name: string;
993
+ description?: string;
994
+ externalDocs?: ExternalDocumentation;
995
+ /**
996
+ * This interface was referenced by `Tag`'s JSON-Schema definition
997
+ * via the `patternProperty` "^x-".
998
+ */
999
+ [k: string]: unknown;
1000
+ }