scorpio 0.6.4 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +6 -1
  3. data/CHANGELOG.md +10 -2
  4. data/LICENSE.md +2 -4
  5. data/README.md +81 -67
  6. data/documents/{github.com/OAI/OpenAPI-Specification/blob/oas3-schema/schemas/v3.0 → spec.openapis.org/oas/3.0}/schema.yaml +164 -628
  7. data/documents/spec.openapis.org/oas/3.1/dialect/base.schema.yaml +22 -0
  8. data/documents/spec.openapis.org/oas/3.1/meta/base.schema.yaml +71 -0
  9. data/documents/spec.openapis.org/oas/3.1/schema-base.yaml +21 -0
  10. data/documents/spec.openapis.org/oas/3.1/schema.yaml +980 -0
  11. data/documents/swagger.io/v2/schema.json +1 -1
  12. data/documents/www.googleapis.com/discovery/v1/apis/discovery/v1/rest.yml +44 -4
  13. data/lib/scorpio/google_api_document.rb +121 -193
  14. data/lib/scorpio/openapi/document.rb +63 -31
  15. data/lib/scorpio/openapi/operation.rb +114 -96
  16. data/lib/scorpio/openapi/operations_scope.rb +35 -19
  17. data/lib/scorpio/openapi/reference.rb +88 -23
  18. data/lib/scorpio/openapi/schema_elements/type_nullable.rb +38 -0
  19. data/lib/scorpio/openapi/schema_elements.rb +7 -0
  20. data/lib/scorpio/openapi/server.rb +34 -0
  21. data/lib/scorpio/openapi/tag.rb +19 -3
  22. data/lib/scorpio/openapi/v2/dialect.rb +66 -0
  23. data/lib/scorpio/openapi/v2.rb +124 -0
  24. data/lib/scorpio/openapi/v3_0/dialect.rb +76 -0
  25. data/lib/scorpio/openapi/v3_0.rb +130 -0
  26. data/lib/scorpio/openapi/v3_1.rb +243 -0
  27. data/lib/scorpio/openapi.rb +23 -203
  28. data/lib/scorpio/request.rb +67 -61
  29. data/lib/scorpio/resource_base.rb +57 -49
  30. data/lib/scorpio/response.rb +28 -10
  31. data/lib/scorpio/ur.rb +7 -3
  32. data/lib/scorpio/version.rb +1 -1
  33. data/lib/scorpio.rb +12 -6
  34. data/pages/Request_Configuration.md +69 -0
  35. data/pages/Security.md +50 -0
  36. data/scorpio.gemspec +6 -5
  37. metadata +28 -15
  38. data/documents/www.googleapis.com/discovery/v1/apis/discovery/v1/rest +0 -684
  39. data/lib/scorpio/openapi/v3/server.rb +0 -44
@@ -0,0 +1,980 @@
1
+ # Scorpio::OpenAPI::V3_1::Unscoped::Document
2
+ $id: 'https://spec.openapis.org/oas/3.1/schema/2025-11-23'
3
+ $schema: 'https://json-schema.org/draft/2020-12/schema'
4
+
5
+ description: The description of OpenAPI v3.1.x Documents without Schema Object validation
6
+
7
+ type: object
8
+ properties:
9
+ openapi:
10
+ type: string
11
+ pattern: '^3\.1\.\d+(-.+)?$'
12
+ info:
13
+ $ref: '#/$defs/info'
14
+ jsonSchemaDialect:
15
+ type: string
16
+ format: uri-reference
17
+ default: 'https://spec.openapis.org/oas/3.1/dialect/2024-11-10'
18
+ servers:
19
+ type: array
20
+ items:
21
+ $ref: '#/$defs/server'
22
+ default:
23
+ - url: /
24
+ paths:
25
+ $ref: '#/$defs/paths'
26
+ webhooks:
27
+ type: object
28
+ additionalProperties:
29
+ $ref: '#/$defs/path-item'
30
+ components:
31
+ $ref: '#/$defs/components'
32
+ security:
33
+ type: array
34
+ items:
35
+ $ref: '#/$defs/security-requirement'
36
+ tags:
37
+ type: array
38
+ items:
39
+ $ref: '#/$defs/tag'
40
+ externalDocs:
41
+ $ref: '#/$defs/external-documentation'
42
+ required:
43
+ - openapi
44
+ - info
45
+ anyOf:
46
+ - required:
47
+ - paths
48
+ - required:
49
+ - components
50
+ - required:
51
+ - webhooks
52
+ $ref: '#/$defs/specification-extensions'
53
+ unevaluatedProperties: false
54
+
55
+ $defs:
56
+ info:
57
+ $comment: https://spec.openapis.org/oas/v3.1#info-object
58
+ type: object
59
+ properties:
60
+ title:
61
+ type: string
62
+ summary:
63
+ type: string
64
+ description:
65
+ type: string
66
+ termsOfService:
67
+ type: string
68
+ format: uri-reference
69
+ contact:
70
+ $ref: '#/$defs/contact'
71
+ license:
72
+ $ref: '#/$defs/license'
73
+ version:
74
+ type: string
75
+ required:
76
+ - title
77
+ - version
78
+ $ref: '#/$defs/specification-extensions'
79
+ unevaluatedProperties: false
80
+
81
+ contact:
82
+ $comment: https://spec.openapis.org/oas/v3.1#contact-object
83
+ type: object
84
+ properties:
85
+ name:
86
+ type: string
87
+ url:
88
+ type: string
89
+ format: uri-reference
90
+ email:
91
+ type: string
92
+ format: email
93
+ $ref: '#/$defs/specification-extensions'
94
+ unevaluatedProperties: false
95
+
96
+ license:
97
+ $comment: https://spec.openapis.org/oas/v3.1#license-object
98
+ type: object
99
+ properties:
100
+ name:
101
+ type: string
102
+ identifier:
103
+ type: string
104
+ url:
105
+ type: string
106
+ format: uri-reference
107
+ required:
108
+ - name
109
+ dependentSchemas:
110
+ identifier:
111
+ not:
112
+ required:
113
+ - url
114
+ $ref: '#/$defs/specification-extensions'
115
+ unevaluatedProperties: false
116
+
117
+ server:
118
+ $comment: https://spec.openapis.org/oas/v3.1#server-object
119
+ type: object
120
+ properties:
121
+ url:
122
+ type: string
123
+ description:
124
+ type: string
125
+ variables:
126
+ type: object
127
+ additionalProperties:
128
+ $ref: '#/$defs/server-variable'
129
+ required:
130
+ - url
131
+ $ref: '#/$defs/specification-extensions'
132
+ unevaluatedProperties: false
133
+
134
+ server-variable:
135
+ $comment: https://spec.openapis.org/oas/v3.1#server-variable-object
136
+ type: object
137
+ properties:
138
+ enum:
139
+ type: array
140
+ items:
141
+ type: string
142
+ minItems: 1
143
+ default:
144
+ type: string
145
+ description:
146
+ type: string
147
+ required:
148
+ - default
149
+ $ref: '#/$defs/specification-extensions'
150
+ unevaluatedProperties: false
151
+
152
+ components:
153
+ $comment: https://spec.openapis.org/oas/v3.1#components-object
154
+ type: object
155
+ properties:
156
+ schemas:
157
+ type: object
158
+ additionalProperties:
159
+ $dynamicRef: '#meta'
160
+ responses:
161
+ type: object
162
+ additionalProperties:
163
+ $ref: '#/$defs/response-or-reference'
164
+ parameters:
165
+ type: object
166
+ additionalProperties:
167
+ $ref: '#/$defs/parameter-or-reference'
168
+ examples:
169
+ type: object
170
+ additionalProperties:
171
+ $ref: '#/$defs/example-or-reference'
172
+ requestBodies:
173
+ type: object
174
+ additionalProperties:
175
+ $ref: '#/$defs/request-body-or-reference'
176
+ headers:
177
+ type: object
178
+ additionalProperties:
179
+ $ref: '#/$defs/header-or-reference'
180
+ securitySchemes:
181
+ type: object
182
+ additionalProperties:
183
+ $ref: '#/$defs/security-scheme-or-reference'
184
+ links:
185
+ type: object
186
+ additionalProperties:
187
+ $ref: '#/$defs/link-or-reference'
188
+ callbacks:
189
+ type: object
190
+ additionalProperties:
191
+ $ref: '#/$defs/callbacks-or-reference'
192
+ pathItems:
193
+ type: object
194
+ additionalProperties:
195
+ $ref: '#/$defs/path-item'
196
+ patternProperties:
197
+ '^(?:schemas|responses|parameters|examples|requestBodies|headers|securitySchemes|links|callbacks|pathItems)$':
198
+ $comment: Enumerating all of the property names in the regex above is necessary for unevaluatedProperties to work as expected
199
+ propertyNames:
200
+ pattern: '^[a-zA-Z0-9._-]+$'
201
+ $ref: '#/$defs/specification-extensions'
202
+ unevaluatedProperties: false
203
+
204
+ paths:
205
+ $comment: https://spec.openapis.org/oas/v3.1#paths-object
206
+ type: object
207
+ patternProperties:
208
+ '^/':
209
+ $ref: '#/$defs/path-item'
210
+ $ref: '#/$defs/specification-extensions'
211
+ unevaluatedProperties: false
212
+
213
+ path-item:
214
+ $comment: https://spec.openapis.org/oas/v3.1#path-item-object
215
+ type: object
216
+ properties:
217
+ $ref:
218
+ type: string
219
+ format: uri-reference
220
+ summary:
221
+ type: string
222
+ description:
223
+ type: string
224
+ servers:
225
+ type: array
226
+ items:
227
+ $ref: '#/$defs/server'
228
+ parameters:
229
+ type: array
230
+ items:
231
+ $ref: '#/$defs/parameter-or-reference'
232
+ get:
233
+ $ref: '#/$defs/operation'
234
+ put:
235
+ $ref: '#/$defs/operation'
236
+ post:
237
+ $ref: '#/$defs/operation'
238
+ delete:
239
+ $ref: '#/$defs/operation'
240
+ options:
241
+ $ref: '#/$defs/operation'
242
+ head:
243
+ $ref: '#/$defs/operation'
244
+ patch:
245
+ $ref: '#/$defs/operation'
246
+ trace:
247
+ $ref: '#/$defs/operation'
248
+ $ref: '#/$defs/specification-extensions'
249
+ unevaluatedProperties: false
250
+
251
+ operation:
252
+ $comment: https://spec.openapis.org/oas/v3.1#operation-object
253
+ type: object
254
+ properties:
255
+ tags:
256
+ type: array
257
+ items:
258
+ type: string
259
+ summary:
260
+ type: string
261
+ description:
262
+ type: string
263
+ externalDocs:
264
+ $ref: '#/$defs/external-documentation'
265
+ operationId:
266
+ type: string
267
+ parameters:
268
+ type: array
269
+ items:
270
+ $ref: '#/$defs/parameter-or-reference'
271
+ requestBody:
272
+ $ref: '#/$defs/request-body-or-reference'
273
+ responses:
274
+ $ref: '#/$defs/responses'
275
+ callbacks:
276
+ type: object
277
+ additionalProperties:
278
+ $ref: '#/$defs/callbacks-or-reference'
279
+ deprecated:
280
+ default: false
281
+ type: boolean
282
+ security:
283
+ type: array
284
+ items:
285
+ $ref: '#/$defs/security-requirement'
286
+ servers:
287
+ type: array
288
+ items:
289
+ $ref: '#/$defs/server'
290
+ $ref: '#/$defs/specification-extensions'
291
+ unevaluatedProperties: false
292
+
293
+ external-documentation:
294
+ $comment: https://spec.openapis.org/oas/v3.1#external-documentation-object
295
+ type: object
296
+ properties:
297
+ description:
298
+ type: string
299
+ url:
300
+ type: string
301
+ format: uri-reference
302
+ required:
303
+ - url
304
+ $ref: '#/$defs/specification-extensions'
305
+ unevaluatedProperties: false
306
+
307
+ parameter:
308
+ $comment: https://spec.openapis.org/oas/v3.1#parameter-object
309
+ type: object
310
+ properties:
311
+ name:
312
+ type: string
313
+ in:
314
+ enum:
315
+ - query
316
+ - header
317
+ - path
318
+ - cookie
319
+ description:
320
+ type: string
321
+ required:
322
+ default: false
323
+ type: boolean
324
+ deprecated:
325
+ default: false
326
+ type: boolean
327
+ schema:
328
+ $dynamicRef: '#meta'
329
+ content:
330
+ $ref: '#/$defs/content'
331
+ minProperties: 1
332
+ maxProperties: 1
333
+ required:
334
+ - name
335
+ - in
336
+ oneOf:
337
+ - required:
338
+ - schema
339
+ - required:
340
+ - content
341
+ if:
342
+ properties:
343
+ in:
344
+ const: query
345
+ then:
346
+ properties:
347
+ allowEmptyValue:
348
+ default: false
349
+ type: boolean
350
+ dependentSchemas:
351
+ schema:
352
+ properties:
353
+ style:
354
+ type: string
355
+ explode:
356
+ type: boolean
357
+ allOf:
358
+ - $ref: '#/$defs/examples'
359
+ - $ref: '#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-path'
360
+ - $ref: '#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-header'
361
+ - $ref: '#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-query'
362
+ - $ref: '#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-cookie'
363
+
364
+ $defs:
365
+ styles-for-path:
366
+ if:
367
+ properties:
368
+ in:
369
+ const: path
370
+ then:
371
+ properties:
372
+ name:
373
+ pattern: '^[^{}]+$'
374
+ style:
375
+ default: simple
376
+ enum:
377
+ - matrix
378
+ - label
379
+ - simple
380
+ required:
381
+ const: true
382
+ explode:
383
+ default: false
384
+ required:
385
+ - required
386
+
387
+ styles-for-header:
388
+ if:
389
+ properties:
390
+ in:
391
+ const: header
392
+ then:
393
+ properties:
394
+ style:
395
+ default: simple
396
+ const: simple
397
+ explode:
398
+ default: false
399
+
400
+ styles-for-query:
401
+ if:
402
+ properties:
403
+ in:
404
+ const: query
405
+ then:
406
+ properties:
407
+ style:
408
+ default: form
409
+ enum:
410
+ - form
411
+ - spaceDelimited
412
+ - pipeDelimited
413
+ - deepObject
414
+ allowReserved:
415
+ default: false
416
+ type: boolean
417
+ $ref: '#/$defs/explode-for-form'
418
+
419
+ styles-for-cookie:
420
+ if:
421
+ properties:
422
+ in:
423
+ const: cookie
424
+ then:
425
+ properties:
426
+ style:
427
+ default: form
428
+ const: form
429
+ $ref: '#/$defs/explode-for-form'
430
+
431
+ $ref: '#/$defs/specification-extensions'
432
+ unevaluatedProperties: false
433
+
434
+ parameter-or-reference:
435
+ if:
436
+ type: object
437
+ required:
438
+ - $ref
439
+ then:
440
+ $ref: '#/$defs/reference'
441
+ else:
442
+ $ref: '#/$defs/parameter'
443
+
444
+ request-body:
445
+ $comment: https://spec.openapis.org/oas/v3.1#request-body-object
446
+ type: object
447
+ properties:
448
+ description:
449
+ type: string
450
+ content:
451
+ $ref: '#/$defs/content'
452
+ required:
453
+ default: false
454
+ type: boolean
455
+ required:
456
+ - content
457
+ $ref: '#/$defs/specification-extensions'
458
+ unevaluatedProperties: false
459
+
460
+ request-body-or-reference:
461
+ if:
462
+ type: object
463
+ required:
464
+ - $ref
465
+ then:
466
+ $ref: '#/$defs/reference'
467
+ else:
468
+ $ref: '#/$defs/request-body'
469
+
470
+ content:
471
+ $comment: https://spec.openapis.org/oas/v3.1#fixed-fields-10
472
+ type: object
473
+ additionalProperties:
474
+ $ref: '#/$defs/media-type'
475
+ propertyNames:
476
+ format: media-range
477
+
478
+ media-type:
479
+ $comment: https://spec.openapis.org/oas/v3.1#media-type-object
480
+ type: object
481
+ properties:
482
+ schema:
483
+ $dynamicRef: '#meta'
484
+ encoding:
485
+ type: object
486
+ additionalProperties:
487
+ $ref: '#/$defs/encoding'
488
+ allOf:
489
+ - $ref: '#/$defs/specification-extensions'
490
+ - $ref: '#/$defs/examples'
491
+ unevaluatedProperties: false
492
+
493
+ encoding:
494
+ $comment: https://spec.openapis.org/oas/v3.1#encoding-object
495
+ type: object
496
+ properties:
497
+ contentType:
498
+ type: string
499
+ format: media-range
500
+ headers:
501
+ type: object
502
+ additionalProperties:
503
+ $ref: '#/$defs/header-or-reference'
504
+ style:
505
+ enum:
506
+ - form
507
+ - spaceDelimited
508
+ - pipeDelimited
509
+ - deepObject
510
+ explode:
511
+ type: boolean
512
+ allowReserved:
513
+ type: boolean
514
+ dependentSchemas:
515
+ style:
516
+ properties:
517
+ allowReserved:
518
+ default: false
519
+ $ref: '#/$defs/explode-for-form'
520
+ explode:
521
+ properties:
522
+ style:
523
+ default: form
524
+ allowReserved:
525
+ default: false
526
+ allowReserved:
527
+ properties:
528
+ style:
529
+ default: form
530
+ $ref: '#/$defs/explode-for-form'
531
+ $ref: '#/$defs/specification-extensions'
532
+ unevaluatedProperties: false
533
+
534
+ responses:
535
+ $comment: https://spec.openapis.org/oas/v3.1#responses-object
536
+ type: object
537
+ properties:
538
+ default:
539
+ $ref: '#/$defs/response-or-reference'
540
+ patternProperties:
541
+ '^[1-5](?:[0-9]{2}|XX)$':
542
+ $ref: '#/$defs/response-or-reference'
543
+ minProperties: 1
544
+ $ref: '#/$defs/specification-extensions'
545
+ unevaluatedProperties: false
546
+ if:
547
+ $comment: either default, or at least one response code property must exist
548
+ patternProperties:
549
+ '^[1-5](?:[0-9]{2}|XX)$': false
550
+ then:
551
+ required: [default]
552
+
553
+ response:
554
+ $comment: https://spec.openapis.org/oas/v3.1#response-object
555
+ type: object
556
+ properties:
557
+ description:
558
+ type: string
559
+ headers:
560
+ type: object
561
+ additionalProperties:
562
+ $ref: '#/$defs/header-or-reference'
563
+ content:
564
+ $ref: '#/$defs/content'
565
+ links:
566
+ type: object
567
+ additionalProperties:
568
+ $ref: '#/$defs/link-or-reference'
569
+ required:
570
+ - description
571
+ $ref: '#/$defs/specification-extensions'
572
+ unevaluatedProperties: false
573
+
574
+ response-or-reference:
575
+ if:
576
+ type: object
577
+ required:
578
+ - $ref
579
+ then:
580
+ $ref: '#/$defs/reference'
581
+ else:
582
+ $ref: '#/$defs/response'
583
+
584
+ callbacks:
585
+ $comment: https://spec.openapis.org/oas/v3.1#callback-object
586
+ type: object
587
+ $ref: '#/$defs/specification-extensions'
588
+ additionalProperties:
589
+ $ref: '#/$defs/path-item'
590
+
591
+ callbacks-or-reference:
592
+ if:
593
+ type: object
594
+ required:
595
+ - $ref
596
+ then:
597
+ $ref: '#/$defs/reference'
598
+ else:
599
+ $ref: '#/$defs/callbacks'
600
+
601
+ example:
602
+ $comment: https://spec.openapis.org/oas/v3.1#example-object
603
+ type: object
604
+ properties:
605
+ summary:
606
+ type: string
607
+ description:
608
+ type: string
609
+ value: true
610
+ externalValue:
611
+ type: string
612
+ format: uri-reference
613
+ not:
614
+ required:
615
+ - value
616
+ - externalValue
617
+ $ref: '#/$defs/specification-extensions'
618
+ unevaluatedProperties: false
619
+
620
+ example-or-reference:
621
+ if:
622
+ type: object
623
+ required:
624
+ - $ref
625
+ then:
626
+ $ref: '#/$defs/reference'
627
+ else:
628
+ $ref: '#/$defs/example'
629
+
630
+ link:
631
+ $comment: https://spec.openapis.org/oas/v3.1#link-object
632
+ type: object
633
+ properties:
634
+ operationRef:
635
+ type: string
636
+ format: uri-reference
637
+ operationId:
638
+ type: string
639
+ parameters:
640
+ $ref: '#/$defs/map-of-strings'
641
+ requestBody: true
642
+ description:
643
+ type: string
644
+ server:
645
+ $ref: '#/$defs/server'
646
+ oneOf:
647
+ - required:
648
+ - operationRef
649
+ - required:
650
+ - operationId
651
+ $ref: '#/$defs/specification-extensions'
652
+ unevaluatedProperties: false
653
+
654
+ link-or-reference:
655
+ if:
656
+ type: object
657
+ required:
658
+ - $ref
659
+ then:
660
+ $ref: '#/$defs/reference'
661
+ else:
662
+ $ref: '#/$defs/link'
663
+
664
+ header:
665
+ $comment: https://spec.openapis.org/oas/v3.1#header-object
666
+ type: object
667
+ properties:
668
+ description:
669
+ type: string
670
+ required:
671
+ default: false
672
+ type: boolean
673
+ deprecated:
674
+ default: false
675
+ type: boolean
676
+ schema:
677
+ $dynamicRef: '#meta'
678
+ content:
679
+ $ref: '#/$defs/content'
680
+ minProperties: 1
681
+ maxProperties: 1
682
+ oneOf:
683
+ - required:
684
+ - schema
685
+ - required:
686
+ - content
687
+ dependentSchemas:
688
+ schema:
689
+ properties:
690
+ style:
691
+ default: simple
692
+ const: simple
693
+ explode:
694
+ default: false
695
+ type: boolean
696
+ $ref: '#/$defs/examples'
697
+ $ref: '#/$defs/specification-extensions'
698
+ unevaluatedProperties: false
699
+
700
+ header-or-reference:
701
+ if:
702
+ type: object
703
+ required:
704
+ - $ref
705
+ then:
706
+ $ref: '#/$defs/reference'
707
+ else:
708
+ $ref: '#/$defs/header'
709
+
710
+ tag:
711
+ $comment: https://spec.openapis.org/oas/v3.1#tag-object
712
+ type: object
713
+ properties:
714
+ name:
715
+ type: string
716
+ description:
717
+ type: string
718
+ externalDocs:
719
+ $ref: '#/$defs/external-documentation'
720
+ required:
721
+ - name
722
+ $ref: '#/$defs/specification-extensions'
723
+ unevaluatedProperties: false
724
+
725
+ reference:
726
+ $comment: https://spec.openapis.org/oas/v3.1#reference-object
727
+ type: object
728
+ properties:
729
+ $ref:
730
+ type: string
731
+ format: uri-reference
732
+ summary:
733
+ type: string
734
+ description:
735
+ type: string
736
+
737
+ schema:
738
+ $comment: https://spec.openapis.org/oas/v3.1#schema-object
739
+ $dynamicAnchor: meta
740
+ type:
741
+ - object
742
+ - boolean
743
+
744
+ security-scheme:
745
+ $comment: https://spec.openapis.org/oas/v3.1#security-scheme-object
746
+ type: object
747
+ properties:
748
+ type:
749
+ enum:
750
+ - apiKey
751
+ - http
752
+ - mutualTLS
753
+ - oauth2
754
+ - openIdConnect
755
+ description:
756
+ type: string
757
+ required:
758
+ - type
759
+ allOf:
760
+ - $ref: '#/$defs/specification-extensions'
761
+ - $ref: '#/$defs/security-scheme/$defs/type-apikey'
762
+ - $ref: '#/$defs/security-scheme/$defs/type-http'
763
+ - $ref: '#/$defs/security-scheme/$defs/type-http-bearer'
764
+ - $ref: '#/$defs/security-scheme/$defs/type-oauth2'
765
+ - $ref: '#/$defs/security-scheme/$defs/type-oidc'
766
+ unevaluatedProperties: false
767
+
768
+ $defs:
769
+ type-apikey:
770
+ if:
771
+ properties:
772
+ type:
773
+ const: apiKey
774
+ then:
775
+ properties:
776
+ name:
777
+ type: string
778
+ in:
779
+ enum:
780
+ - query
781
+ - header
782
+ - cookie
783
+ required:
784
+ - name
785
+ - in
786
+
787
+ type-http:
788
+ if:
789
+ properties:
790
+ type:
791
+ const: http
792
+ then:
793
+ properties:
794
+ scheme:
795
+ type: string
796
+ required:
797
+ - scheme
798
+
799
+ type-http-bearer:
800
+ if:
801
+ properties:
802
+ type:
803
+ const: http
804
+ scheme:
805
+ type: string
806
+ pattern: ^[Bb][Ee][Aa][Rr][Ee][Rr]$
807
+ required:
808
+ - type
809
+ - scheme
810
+ then:
811
+ properties:
812
+ bearerFormat:
813
+ type: string
814
+
815
+ type-oauth2:
816
+ if:
817
+ properties:
818
+ type:
819
+ const: oauth2
820
+ then:
821
+ properties:
822
+ flows:
823
+ $ref: '#/$defs/oauth-flows'
824
+ required:
825
+ - flows
826
+
827
+ type-oidc:
828
+ if:
829
+ properties:
830
+ type:
831
+ const: openIdConnect
832
+ then:
833
+ properties:
834
+ openIdConnectUrl:
835
+ type: string
836
+ format: uri-reference
837
+ required:
838
+ - openIdConnectUrl
839
+
840
+ security-scheme-or-reference:
841
+ if:
842
+ type: object
843
+ required:
844
+ - $ref
845
+ then:
846
+ $ref: '#/$defs/reference'
847
+ else:
848
+ $ref: '#/$defs/security-scheme'
849
+
850
+ oauth-flows:
851
+ type: object
852
+ properties:
853
+ implicit:
854
+ $ref: '#/$defs/oauth-flows/$defs/implicit'
855
+ password:
856
+ $ref: '#/$defs/oauth-flows/$defs/password'
857
+ clientCredentials:
858
+ $ref: '#/$defs/oauth-flows/$defs/client-credentials'
859
+ authorizationCode:
860
+ $ref: '#/$defs/oauth-flows/$defs/authorization-code'
861
+ $ref: '#/$defs/specification-extensions'
862
+ unevaluatedProperties: false
863
+
864
+ $defs:
865
+ implicit:
866
+ type: object
867
+ properties:
868
+ authorizationUrl:
869
+ type: string
870
+ format: uri-reference
871
+ refreshUrl:
872
+ type: string
873
+ format: uri-reference
874
+ scopes:
875
+ $ref: '#/$defs/map-of-strings'
876
+ required:
877
+ - authorizationUrl
878
+ - scopes
879
+ $ref: '#/$defs/specification-extensions'
880
+ unevaluatedProperties: false
881
+
882
+ password:
883
+ type: object
884
+ properties:
885
+ tokenUrl:
886
+ type: string
887
+ format: uri-reference
888
+ refreshUrl:
889
+ type: string
890
+ format: uri-reference
891
+ scopes:
892
+ $ref: '#/$defs/map-of-strings'
893
+ required:
894
+ - tokenUrl
895
+ - scopes
896
+ $ref: '#/$defs/specification-extensions'
897
+ unevaluatedProperties: false
898
+
899
+ client-credentials:
900
+ type: object
901
+ properties:
902
+ tokenUrl:
903
+ type: string
904
+ format: uri-reference
905
+ refreshUrl:
906
+ type: string
907
+ format: uri-reference
908
+ scopes:
909
+ $ref: '#/$defs/map-of-strings'
910
+ required:
911
+ - tokenUrl
912
+ - scopes
913
+ $ref: '#/$defs/specification-extensions'
914
+ unevaluatedProperties: false
915
+
916
+ authorization-code:
917
+ type: object
918
+ properties:
919
+ authorizationUrl:
920
+ type: string
921
+ format: uri-reference
922
+ tokenUrl:
923
+ type: string
924
+ format: uri-reference
925
+ refreshUrl:
926
+ type: string
927
+ format: uri-reference
928
+ scopes:
929
+ $ref: '#/$defs/map-of-strings'
930
+ required:
931
+ - authorizationUrl
932
+ - tokenUrl
933
+ - scopes
934
+ $ref: '#/$defs/specification-extensions'
935
+ unevaluatedProperties: false
936
+
937
+ security-requirement:
938
+ $comment: https://spec.openapis.org/oas/v3.1#security-requirement-object
939
+ type: object
940
+ additionalProperties:
941
+ type: array
942
+ items:
943
+ type: string
944
+
945
+ specification-extensions:
946
+ $comment: https://spec.openapis.org/oas/v3.1#specification-extensions
947
+ patternProperties:
948
+ '^x-': true
949
+
950
+ examples:
951
+ properties:
952
+ example: true
953
+ examples:
954
+ type: object
955
+ additionalProperties:
956
+ $ref: '#/$defs/example-or-reference'
957
+ not:
958
+ required:
959
+ - example
960
+ - examples
961
+
962
+ map-of-strings:
963
+ type: object
964
+ additionalProperties:
965
+ type: string
966
+
967
+ explode-for-form:
968
+ $comment: for encoding objects, and query and cookie parameters, style=form is the default
969
+ if:
970
+ properties:
971
+ style:
972
+ const: form
973
+ then:
974
+ properties:
975
+ explode:
976
+ default: true
977
+ else:
978
+ properties:
979
+ explode:
980
+ default: false