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