github.com/grpc-ecosystem/grpc-gateway/v2@v2.19.1/examples/internal/proto/examplepb/a_bit_of_everything.swagger.json (about) 1 { 2 "swagger": "2.0", 3 "info": { 4 "title": "A Bit of Everything", 5 "version": "1.0", 6 "contact": { 7 "name": "gRPC-Gateway project", 8 "url": "https://github.com/grpc-ecosystem/grpc-gateway", 9 "email": "none@example.com" 10 }, 11 "license": { 12 "name": "BSD 3-Clause License", 13 "url": "https://github.com/grpc-ecosystem/grpc-gateway/blob/main/LICENSE" 14 }, 15 "x-something-something": "yadda" 16 }, 17 "tags": [ 18 { 19 "name": "echo rpc", 20 "description": "Echo Rpc description", 21 "x-traitTag": true 22 }, 23 { 24 "name": "ABitOfEverything", 25 "description": "ABitOfEverythingService description -- which should not be used in place of the documentation comment!", 26 "externalDocs": { 27 "description": "Find out more about EchoService", 28 "url": "https://github.com/grpc-ecosystem/grpc-gateway" 29 } 30 }, 31 { 32 "name": "camelCaseServiceName" 33 }, 34 { 35 "name": "AnotherServiceWithNoBindings" 36 }, 37 { 38 "name": "SnakeEnumService" 39 } 40 ], 41 "schemes": [ 42 "http", 43 "https", 44 "wss" 45 ], 46 "consumes": [ 47 "application/json", 48 "application/x-foo-mime" 49 ], 50 "produces": [ 51 "application/json", 52 "application/x-foo-mime" 53 ], 54 "paths": { 55 "/v1/example/a_bit_of_everything": { 56 "post": { 57 "operationId": "ABitOfEverythingService_CreateBody", 58 "responses": { 59 "200": { 60 "description": "A successful response.", 61 "schema": { 62 "$ref": "#/definitions/examplepbABitOfEverything" 63 } 64 }, 65 "403": { 66 "description": "Returned when the user does not have permission to access the resource.", 67 "schema": {} 68 }, 69 "404": { 70 "description": "Returned when the resource does not exist.", 71 "schema": { 72 "type": "string", 73 "format": "string" 74 } 75 }, 76 "418": { 77 "description": "I'm a teapot.", 78 "schema": { 79 "$ref": "#/definitions/examplepbNumericEnum" 80 } 81 }, 82 "500": { 83 "description": "Server error", 84 "schema": { 85 "$ref": "#/definitions/examplepbErrorResponse" 86 } 87 }, 88 "default": { 89 "description": "An unexpected error response.", 90 "schema": { 91 "$ref": "#/definitions/rpcStatus" 92 } 93 } 94 }, 95 "parameters": [ 96 { 97 "name": "body", 98 "description": "Intentionally complicated message type to cover many features of Protobuf.", 99 "in": "body", 100 "required": true, 101 "schema": { 102 "$ref": "#/definitions/examplepbABitOfEverything" 103 } 104 } 105 ], 106 "tags": [ 107 "ABitOfEverythingService" 108 ] 109 } 110 }, 111 "/v1/example/a_bit_of_everything/echo/{value}": { 112 "get": { 113 "summary": "Summary: Echo rpc", 114 "description": "Description Echo", 115 "operationId": "ABitOfEverythingService_Echo", 116 "responses": { 117 "200": { 118 "description": "A successful response.", 119 "schema": { 120 "$ref": "#/definitions/subStringMessage" 121 }, 122 "examples": { 123 "application/json": { 124 "value": "the input value" 125 } 126 } 127 }, 128 "403": { 129 "description": "Returned when the user does not have permission to access the resource.", 130 "schema": {} 131 }, 132 "404": { 133 "description": "Returned when the resource does not exist.", 134 "schema": { 135 "type": "integer", 136 "format": "integer" 137 } 138 }, 139 "418": { 140 "description": "I'm a teapot.", 141 "schema": { 142 "$ref": "#/definitions/examplepbNumericEnum" 143 } 144 }, 145 "500": { 146 "description": "Server error", 147 "schema": { 148 "$ref": "#/definitions/examplepbErrorResponse" 149 } 150 }, 151 "503": { 152 "description": "Returned when the resource is temporarily unavailable.", 153 "schema": {}, 154 "x-number": 100 155 }, 156 "default": { 157 "description": "An unexpected error response.", 158 "schema": { 159 "$ref": "#/definitions/rpcStatus" 160 } 161 } 162 }, 163 "parameters": [ 164 { 165 "name": "value", 166 "in": "path", 167 "required": true, 168 "type": "string" 169 } 170 ], 171 "tags": [ 172 "echo rpc" 173 ], 174 "externalDocs": { 175 "description": "Find out more Echo", 176 "url": "https://github.com/grpc-ecosystem/grpc-gateway" 177 } 178 } 179 }, 180 "/v1/example/a_bit_of_everything/params/get/nested_enum/{singleNested.ok}": { 181 "get": { 182 "operationId": "ABitOfEverythingService_CheckNestedEnumGetQueryParams", 183 "responses": { 184 "200": { 185 "description": "A successful response.", 186 "schema": { 187 "$ref": "#/definitions/examplepbABitOfEverything" 188 } 189 }, 190 "403": { 191 "description": "Returned when the user does not have permission to access the resource.", 192 "schema": {} 193 }, 194 "404": { 195 "description": "Returned when the resource does not exist.", 196 "schema": { 197 "type": "string", 198 "format": "string" 199 } 200 }, 201 "418": { 202 "description": "I'm a teapot.", 203 "schema": { 204 "$ref": "#/definitions/examplepbNumericEnum" 205 } 206 }, 207 "500": { 208 "description": "Server error", 209 "schema": { 210 "$ref": "#/definitions/examplepbErrorResponse" 211 } 212 }, 213 "default": { 214 "description": "An unexpected error response.", 215 "schema": { 216 "$ref": "#/definitions/rpcStatus" 217 } 218 } 219 }, 220 "parameters": [ 221 { 222 "name": "singleNested.ok", 223 "description": "DeepEnum description.", 224 "in": "path", 225 "required": true, 226 "type": "string", 227 "enum": [ 228 "FALSE", 229 "TRUE" 230 ] 231 }, 232 { 233 "name": "singleNested.name", 234 "description": "name is nested field.", 235 "in": "query", 236 "required": false, 237 "type": "string" 238 }, 239 { 240 "name": "singleNested.amount", 241 "in": "query", 242 "required": false, 243 "type": "integer", 244 "format": "int64" 245 }, 246 { 247 "name": "uuid", 248 "in": "query", 249 "required": true, 250 "type": "string", 251 "format": "uuid", 252 "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", 253 "x-internal": true 254 }, 255 { 256 "name": "floatValue", 257 "description": "Float value field", 258 "in": "query", 259 "required": true, 260 "type": "number", 261 "format": "float", 262 "default": "0.2" 263 }, 264 { 265 "name": "doubleValue", 266 "in": "query", 267 "required": true, 268 "type": "number", 269 "format": "double" 270 }, 271 { 272 "name": "int64Value", 273 "in": "query", 274 "required": true, 275 "type": "string", 276 "format": "int64" 277 }, 278 { 279 "name": "uint64Value", 280 "in": "query", 281 "required": false, 282 "type": "string", 283 "format": "uint64" 284 }, 285 { 286 "name": "int32Value", 287 "in": "query", 288 "required": false, 289 "type": "integer", 290 "format": "int32" 291 }, 292 { 293 "name": "fixed64Value", 294 "in": "query", 295 "required": false, 296 "type": "string", 297 "format": "uint64" 298 }, 299 { 300 "name": "fixed32Value", 301 "in": "query", 302 "required": false, 303 "type": "integer", 304 "format": "int64" 305 }, 306 { 307 "name": "boolValue", 308 "in": "query", 309 "required": false, 310 "type": "boolean" 311 }, 312 { 313 "name": "stringValue", 314 "in": "query", 315 "required": false, 316 "type": "string" 317 }, 318 { 319 "name": "bytesValue", 320 "in": "query", 321 "required": false, 322 "type": "string", 323 "format": "byte" 324 }, 325 { 326 "name": "uint32Value", 327 "in": "query", 328 "required": false, 329 "type": "integer", 330 "format": "int64" 331 }, 332 { 333 "name": "enumValue", 334 "description": " - ZERO: ZERO means 0\n - ONE: ONE means 1", 335 "in": "query", 336 "required": false, 337 "type": "string", 338 "enum": [ 339 "ZERO", 340 "ONE" 341 ], 342 "default": "ZERO" 343 }, 344 { 345 "name": "pathEnumValue", 346 "in": "query", 347 "required": false, 348 "type": "string", 349 "enum": [ 350 "ABC", 351 "DEF" 352 ], 353 "default": "ABC" 354 }, 355 { 356 "name": "nestedPathEnumValue", 357 "in": "query", 358 "required": false, 359 "type": "string", 360 "enum": [ 361 "GHI", 362 "JKL" 363 ], 364 "default": "GHI" 365 }, 366 { 367 "name": "sfixed32Value", 368 "in": "query", 369 "required": false, 370 "type": "integer", 371 "format": "int32" 372 }, 373 { 374 "name": "sfixed64Value", 375 "in": "query", 376 "required": false, 377 "type": "string", 378 "format": "int64" 379 }, 380 { 381 "name": "sint32Value", 382 "in": "query", 383 "required": false, 384 "type": "integer", 385 "format": "int32" 386 }, 387 { 388 "name": "sint64Value", 389 "in": "query", 390 "required": false, 391 "type": "string", 392 "format": "int64" 393 }, 394 { 395 "name": "repeatedStringValue", 396 "in": "query", 397 "required": false, 398 "type": "array", 399 "items": { 400 "type": "string" 401 }, 402 "collectionFormat": "multi" 403 }, 404 { 405 "name": "oneofEmpty", 406 "in": "query", 407 "required": false, 408 "type": "object" 409 }, 410 { 411 "name": "oneofString", 412 "in": "query", 413 "required": false, 414 "type": "string" 415 }, 416 { 417 "name": "mapValue", 418 "description": "This is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18", 419 "in": "query", 420 "required": false 421 }, 422 { 423 "name": "mappedStringValue", 424 "description": "This is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18", 425 "in": "query", 426 "required": false, 427 "type": "string" 428 }, 429 { 430 "name": "mappedNestedValue", 431 "description": "This is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18", 432 "in": "query", 433 "required": false 434 }, 435 { 436 "name": "nonConventionalNameValue", 437 "in": "query", 438 "required": false, 439 "type": "string" 440 }, 441 { 442 "name": "timestampValue", 443 "in": "query", 444 "required": false, 445 "type": "string", 446 "format": "date-time" 447 }, 448 { 449 "name": "repeatedEnumValue", 450 "description": "repeated enum value. it is comma-separated in query\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", 451 "in": "query", 452 "required": false, 453 "type": "array", 454 "items": { 455 "type": "string", 456 "enum": [ 457 "ZERO", 458 "ONE" 459 ] 460 }, 461 "collectionFormat": "multi" 462 }, 463 { 464 "name": "repeatedEnumAnnotation", 465 "description": "Repeated numeric enum title\n\nRepeated numeric enum description.\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", 466 "in": "query", 467 "required": false, 468 "type": "array", 469 "items": { 470 "type": "string", 471 "enum": [ 472 "ZERO", 473 "ONE" 474 ] 475 }, 476 "collectionFormat": "multi" 477 }, 478 { 479 "name": "enumValueAnnotation", 480 "description": "Numeric enum title\n\nNumeric enum description.\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", 481 "in": "query", 482 "required": false, 483 "type": "string", 484 "enum": [ 485 "ZERO", 486 "ONE" 487 ], 488 "default": "ZERO" 489 }, 490 { 491 "name": "repeatedStringAnnotation", 492 "description": "Repeated string title\n\nRepeated string description.", 493 "in": "query", 494 "required": false, 495 "type": "array", 496 "items": { 497 "type": "string" 498 }, 499 "collectionFormat": "multi" 500 }, 501 { 502 "name": "nestedAnnotation.name", 503 "description": "name is nested field.", 504 "in": "query", 505 "required": false, 506 "type": "string" 507 }, 508 { 509 "name": "nestedAnnotation.amount", 510 "in": "query", 511 "required": false, 512 "type": "integer", 513 "format": "int64" 514 }, 515 { 516 "name": "int64OverrideType", 517 "in": "query", 518 "required": false, 519 "type": "integer", 520 "format": "int64" 521 }, 522 { 523 "name": "requiredStringViaFieldBehaviorAnnotation", 524 "description": "mark a field as required in Open API definition", 525 "in": "query", 526 "required": true, 527 "type": "string" 528 }, 529 { 530 "name": "outputOnlyStringViaFieldBehaviorAnnotation", 531 "description": "mark a field as readonly in Open API definition", 532 "in": "query", 533 "required": false, 534 "type": "string" 535 }, 536 { 537 "name": "optionalStringValue", 538 "in": "query", 539 "required": false, 540 "type": "string" 541 }, 542 { 543 "name": "productId", 544 "description": "Test openapiv2 generation of repeated fields\n\nOnly digits are allowed.", 545 "in": "query", 546 "required": false, 547 "type": "array", 548 "items": { 549 "type": "string", 550 "maxLength": 19, 551 "minLength": 1, 552 "pattern": "^[0-9]+$" 553 }, 554 "collectionFormat": "multi" 555 }, 556 { 557 "name": "optionalStringField", 558 "description": "Test openapiv2 generation of required fields with annotation and jsonschema to reproduce", 559 "in": "query", 560 "required": false, 561 "type": "string" 562 }, 563 { 564 "name": "requiredStringField1", 565 "in": "query", 566 "required": true, 567 "type": "string" 568 }, 569 { 570 "name": "requiredStringField2", 571 "in": "query", 572 "required": true, 573 "type": "string" 574 }, 575 { 576 "name": "required_field_behavior_json_name_custom", 577 "description": "Test openapiv2 handling of required json_name fields", 578 "in": "query", 579 "required": true, 580 "type": "string" 581 }, 582 { 583 "name": "required_field_schema_json_name_custom", 584 "in": "query", 585 "required": true, 586 "type": "string" 587 }, 588 { 589 "name": "trailingOnly", 590 "description": "Trailing only", 591 "in": "query", 592 "required": false, 593 "type": "string" 594 }, 595 { 596 "name": "trailingOnlyDot", 597 "description": "Trailing only dot.", 598 "in": "query", 599 "required": false, 600 "type": "string" 601 }, 602 { 603 "name": "trailingBoth", 604 "description": "Leading both\n\nTrailing both.", 605 "in": "query", 606 "required": false, 607 "type": "string" 608 }, 609 { 610 "name": "trailingMultiline", 611 "description": "Leading multiline\n\nThis is an example of a multi-line comment.\n\nTrailing multiline.", 612 "in": "query", 613 "required": false, 614 "type": "string" 615 }, 616 { 617 "name": "uuids", 618 "description": "Specify a custom format of repeated field items", 619 "in": "query", 620 "required": false, 621 "type": "array", 622 "items": { 623 "type": "string", 624 "format": "uuid" 625 }, 626 "collectionFormat": "multi" 627 } 628 ], 629 "tags": [ 630 "ABitOfEverythingService" 631 ] 632 } 633 }, 634 "/v1/example/a_bit_of_everything/params/get/{singleNested.name}": { 635 "get": { 636 "operationId": "ABitOfEverythingService_CheckGetQueryParams", 637 "responses": { 638 "200": { 639 "description": "A successful response.", 640 "schema": { 641 "$ref": "#/definitions/examplepbABitOfEverything" 642 } 643 }, 644 "403": { 645 "description": "Returned when the user does not have permission to access the resource.", 646 "schema": {} 647 }, 648 "404": { 649 "description": "Returned when the resource does not exist.", 650 "schema": { 651 "type": "string", 652 "format": "string" 653 } 654 }, 655 "418": { 656 "description": "I'm a teapot.", 657 "schema": { 658 "$ref": "#/definitions/examplepbNumericEnum" 659 } 660 }, 661 "500": { 662 "description": "Server error", 663 "schema": { 664 "$ref": "#/definitions/examplepbErrorResponse" 665 } 666 }, 667 "default": { 668 "description": "An unexpected error response.", 669 "schema": { 670 "$ref": "#/definitions/rpcStatus" 671 } 672 } 673 }, 674 "parameters": [ 675 { 676 "name": "singleNested.name", 677 "description": "name is nested field.", 678 "in": "path", 679 "required": true, 680 "type": "string" 681 }, 682 { 683 "name": "singleNested.amount", 684 "in": "query", 685 "required": false, 686 "type": "integer", 687 "format": "int64" 688 }, 689 { 690 "name": "singleNested.ok", 691 "description": "DeepEnum description.\n\n - FALSE: FALSE is false.\n - TRUE: TRUE is true.", 692 "in": "query", 693 "required": false, 694 "type": "string", 695 "enum": [ 696 "FALSE", 697 "TRUE" 698 ], 699 "default": "FALSE" 700 }, 701 { 702 "name": "uuid", 703 "in": "query", 704 "required": true, 705 "type": "string", 706 "format": "uuid", 707 "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", 708 "x-internal": true 709 }, 710 { 711 "name": "floatValue", 712 "description": "Float value field", 713 "in": "query", 714 "required": true, 715 "type": "number", 716 "format": "float", 717 "default": "0.2" 718 }, 719 { 720 "name": "doubleValue", 721 "in": "query", 722 "required": true, 723 "type": "number", 724 "format": "double" 725 }, 726 { 727 "name": "int64Value", 728 "in": "query", 729 "required": true, 730 "type": "string", 731 "format": "int64" 732 }, 733 { 734 "name": "uint64Value", 735 "in": "query", 736 "required": false, 737 "type": "string", 738 "format": "uint64" 739 }, 740 { 741 "name": "int32Value", 742 "in": "query", 743 "required": false, 744 "type": "integer", 745 "format": "int32" 746 }, 747 { 748 "name": "fixed64Value", 749 "in": "query", 750 "required": false, 751 "type": "string", 752 "format": "uint64" 753 }, 754 { 755 "name": "fixed32Value", 756 "in": "query", 757 "required": false, 758 "type": "integer", 759 "format": "int64" 760 }, 761 { 762 "name": "boolValue", 763 "in": "query", 764 "required": false, 765 "type": "boolean" 766 }, 767 { 768 "name": "stringValue", 769 "in": "query", 770 "required": false, 771 "type": "string" 772 }, 773 { 774 "name": "bytesValue", 775 "in": "query", 776 "required": false, 777 "type": "string", 778 "format": "byte" 779 }, 780 { 781 "name": "uint32Value", 782 "in": "query", 783 "required": false, 784 "type": "integer", 785 "format": "int64" 786 }, 787 { 788 "name": "enumValue", 789 "description": " - ZERO: ZERO means 0\n - ONE: ONE means 1", 790 "in": "query", 791 "required": false, 792 "type": "string", 793 "enum": [ 794 "ZERO", 795 "ONE" 796 ], 797 "default": "ZERO" 798 }, 799 { 800 "name": "pathEnumValue", 801 "in": "query", 802 "required": false, 803 "type": "string", 804 "enum": [ 805 "ABC", 806 "DEF" 807 ], 808 "default": "ABC" 809 }, 810 { 811 "name": "nestedPathEnumValue", 812 "in": "query", 813 "required": false, 814 "type": "string", 815 "enum": [ 816 "GHI", 817 "JKL" 818 ], 819 "default": "GHI" 820 }, 821 { 822 "name": "sfixed32Value", 823 "in": "query", 824 "required": false, 825 "type": "integer", 826 "format": "int32" 827 }, 828 { 829 "name": "sfixed64Value", 830 "in": "query", 831 "required": false, 832 "type": "string", 833 "format": "int64" 834 }, 835 { 836 "name": "sint32Value", 837 "in": "query", 838 "required": false, 839 "type": "integer", 840 "format": "int32" 841 }, 842 { 843 "name": "sint64Value", 844 "in": "query", 845 "required": false, 846 "type": "string", 847 "format": "int64" 848 }, 849 { 850 "name": "repeatedStringValue", 851 "in": "query", 852 "required": false, 853 "type": "array", 854 "items": { 855 "type": "string" 856 }, 857 "collectionFormat": "multi" 858 }, 859 { 860 "name": "oneofEmpty", 861 "in": "query", 862 "required": false, 863 "type": "object" 864 }, 865 { 866 "name": "oneofString", 867 "in": "query", 868 "required": false, 869 "type": "string" 870 }, 871 { 872 "name": "mapValue", 873 "description": "This is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18", 874 "in": "query", 875 "required": false 876 }, 877 { 878 "name": "mappedStringValue", 879 "description": "This is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18", 880 "in": "query", 881 "required": false, 882 "type": "string" 883 }, 884 { 885 "name": "mappedNestedValue", 886 "description": "This is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18", 887 "in": "query", 888 "required": false 889 }, 890 { 891 "name": "nonConventionalNameValue", 892 "in": "query", 893 "required": false, 894 "type": "string" 895 }, 896 { 897 "name": "timestampValue", 898 "in": "query", 899 "required": false, 900 "type": "string", 901 "format": "date-time" 902 }, 903 { 904 "name": "repeatedEnumValue", 905 "description": "repeated enum value. it is comma-separated in query\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", 906 "in": "query", 907 "required": false, 908 "type": "array", 909 "items": { 910 "type": "string", 911 "enum": [ 912 "ZERO", 913 "ONE" 914 ] 915 }, 916 "collectionFormat": "multi" 917 }, 918 { 919 "name": "repeatedEnumAnnotation", 920 "description": "Repeated numeric enum title\n\nRepeated numeric enum description.\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", 921 "in": "query", 922 "required": false, 923 "type": "array", 924 "items": { 925 "type": "string", 926 "enum": [ 927 "ZERO", 928 "ONE" 929 ] 930 }, 931 "collectionFormat": "multi" 932 }, 933 { 934 "name": "enumValueAnnotation", 935 "description": "Numeric enum title\n\nNumeric enum description.\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", 936 "in": "query", 937 "required": false, 938 "type": "string", 939 "enum": [ 940 "ZERO", 941 "ONE" 942 ], 943 "default": "ZERO" 944 }, 945 { 946 "name": "repeatedStringAnnotation", 947 "description": "Repeated string title\n\nRepeated string description.", 948 "in": "query", 949 "required": false, 950 "type": "array", 951 "items": { 952 "type": "string" 953 }, 954 "collectionFormat": "multi" 955 }, 956 { 957 "name": "nestedAnnotation.amount", 958 "in": "query", 959 "required": false, 960 "type": "integer", 961 "format": "int64" 962 }, 963 { 964 "name": "nestedAnnotation.ok", 965 "description": "DeepEnum description.\n\n - FALSE: FALSE is false.\n - TRUE: TRUE is true.", 966 "in": "query", 967 "required": false, 968 "type": "string", 969 "enum": [ 970 "FALSE", 971 "TRUE" 972 ], 973 "default": "FALSE" 974 }, 975 { 976 "name": "int64OverrideType", 977 "in": "query", 978 "required": false, 979 "type": "integer", 980 "format": "int64" 981 }, 982 { 983 "name": "requiredStringViaFieldBehaviorAnnotation", 984 "description": "mark a field as required in Open API definition", 985 "in": "query", 986 "required": true, 987 "type": "string" 988 }, 989 { 990 "name": "outputOnlyStringViaFieldBehaviorAnnotation", 991 "description": "mark a field as readonly in Open API definition", 992 "in": "query", 993 "required": false, 994 "type": "string" 995 }, 996 { 997 "name": "optionalStringValue", 998 "in": "query", 999 "required": false, 1000 "type": "string" 1001 }, 1002 { 1003 "name": "productId", 1004 "description": "Test openapiv2 generation of repeated fields\n\nOnly digits are allowed.", 1005 "in": "query", 1006 "required": false, 1007 "type": "array", 1008 "items": { 1009 "type": "string", 1010 "maxLength": 19, 1011 "minLength": 1, 1012 "pattern": "^[0-9]+$" 1013 }, 1014 "collectionFormat": "multi" 1015 }, 1016 { 1017 "name": "optionalStringField", 1018 "description": "Test openapiv2 generation of required fields with annotation and jsonschema to reproduce", 1019 "in": "query", 1020 "required": false, 1021 "type": "string" 1022 }, 1023 { 1024 "name": "requiredStringField1", 1025 "in": "query", 1026 "required": true, 1027 "type": "string" 1028 }, 1029 { 1030 "name": "requiredStringField2", 1031 "in": "query", 1032 "required": true, 1033 "type": "string" 1034 }, 1035 { 1036 "name": "required_field_behavior_json_name_custom", 1037 "description": "Test openapiv2 handling of required json_name fields", 1038 "in": "query", 1039 "required": true, 1040 "type": "string" 1041 }, 1042 { 1043 "name": "required_field_schema_json_name_custom", 1044 "in": "query", 1045 "required": true, 1046 "type": "string" 1047 }, 1048 { 1049 "name": "trailingOnly", 1050 "description": "Trailing only", 1051 "in": "query", 1052 "required": false, 1053 "type": "string" 1054 }, 1055 { 1056 "name": "trailingOnlyDot", 1057 "description": "Trailing only dot.", 1058 "in": "query", 1059 "required": false, 1060 "type": "string" 1061 }, 1062 { 1063 "name": "trailingBoth", 1064 "description": "Leading both\n\nTrailing both.", 1065 "in": "query", 1066 "required": false, 1067 "type": "string" 1068 }, 1069 { 1070 "name": "trailingMultiline", 1071 "description": "Leading multiline\n\nThis is an example of a multi-line comment.\n\nTrailing multiline.", 1072 "in": "query", 1073 "required": false, 1074 "type": "string" 1075 }, 1076 { 1077 "name": "uuids", 1078 "description": "Specify a custom format of repeated field items", 1079 "in": "query", 1080 "required": false, 1081 "type": "array", 1082 "items": { 1083 "type": "string", 1084 "format": "uuid" 1085 }, 1086 "collectionFormat": "multi" 1087 } 1088 ], 1089 "tags": [ 1090 "ABitOfEverythingService" 1091 ] 1092 } 1093 }, 1094 "/v1/example/a_bit_of_everything/params/post/{stringValue}": { 1095 "post": { 1096 "operationId": "ABitOfEverythingService_CheckPostQueryParams", 1097 "responses": { 1098 "200": { 1099 "description": "A successful response.", 1100 "schema": { 1101 "$ref": "#/definitions/examplepbABitOfEverything" 1102 } 1103 }, 1104 "403": { 1105 "description": "Returned when the user does not have permission to access the resource.", 1106 "schema": {} 1107 }, 1108 "404": { 1109 "description": "Returned when the resource does not exist.", 1110 "schema": { 1111 "type": "string", 1112 "format": "string" 1113 } 1114 }, 1115 "418": { 1116 "description": "I'm a teapot.", 1117 "schema": { 1118 "$ref": "#/definitions/examplepbNumericEnum" 1119 } 1120 }, 1121 "500": { 1122 "description": "Server error", 1123 "schema": { 1124 "$ref": "#/definitions/examplepbErrorResponse" 1125 } 1126 }, 1127 "default": { 1128 "description": "An unexpected error response.", 1129 "schema": { 1130 "$ref": "#/definitions/rpcStatus" 1131 } 1132 } 1133 }, 1134 "parameters": [ 1135 { 1136 "name": "stringValue", 1137 "in": "path", 1138 "required": true, 1139 "type": "string" 1140 }, 1141 { 1142 "name": "singleNested", 1143 "in": "body", 1144 "required": true, 1145 "schema": { 1146 "$ref": "#/definitions/ABitOfEverythingNested" 1147 } 1148 }, 1149 { 1150 "name": "uuid", 1151 "in": "query", 1152 "required": true, 1153 "type": "string", 1154 "format": "uuid", 1155 "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", 1156 "x-internal": true 1157 }, 1158 { 1159 "name": "floatValue", 1160 "description": "Float value field", 1161 "in": "query", 1162 "required": true, 1163 "type": "number", 1164 "format": "float", 1165 "default": "0.2" 1166 }, 1167 { 1168 "name": "doubleValue", 1169 "in": "query", 1170 "required": true, 1171 "type": "number", 1172 "format": "double" 1173 }, 1174 { 1175 "name": "int64Value", 1176 "in": "query", 1177 "required": true, 1178 "type": "string", 1179 "format": "int64" 1180 }, 1181 { 1182 "name": "uint64Value", 1183 "in": "query", 1184 "required": false, 1185 "type": "string", 1186 "format": "uint64" 1187 }, 1188 { 1189 "name": "int32Value", 1190 "in": "query", 1191 "required": false, 1192 "type": "integer", 1193 "format": "int32" 1194 }, 1195 { 1196 "name": "fixed64Value", 1197 "in": "query", 1198 "required": false, 1199 "type": "string", 1200 "format": "uint64" 1201 }, 1202 { 1203 "name": "fixed32Value", 1204 "in": "query", 1205 "required": false, 1206 "type": "integer", 1207 "format": "int64" 1208 }, 1209 { 1210 "name": "boolValue", 1211 "in": "query", 1212 "required": false, 1213 "type": "boolean" 1214 }, 1215 { 1216 "name": "bytesValue", 1217 "in": "query", 1218 "required": false, 1219 "type": "string", 1220 "format": "byte" 1221 }, 1222 { 1223 "name": "uint32Value", 1224 "in": "query", 1225 "required": false, 1226 "type": "integer", 1227 "format": "int64" 1228 }, 1229 { 1230 "name": "enumValue", 1231 "description": " - ZERO: ZERO means 0\n - ONE: ONE means 1", 1232 "in": "query", 1233 "required": false, 1234 "type": "string", 1235 "enum": [ 1236 "ZERO", 1237 "ONE" 1238 ], 1239 "default": "ZERO" 1240 }, 1241 { 1242 "name": "pathEnumValue", 1243 "in": "query", 1244 "required": false, 1245 "type": "string", 1246 "enum": [ 1247 "ABC", 1248 "DEF" 1249 ], 1250 "default": "ABC" 1251 }, 1252 { 1253 "name": "nestedPathEnumValue", 1254 "in": "query", 1255 "required": false, 1256 "type": "string", 1257 "enum": [ 1258 "GHI", 1259 "JKL" 1260 ], 1261 "default": "GHI" 1262 }, 1263 { 1264 "name": "sfixed32Value", 1265 "in": "query", 1266 "required": false, 1267 "type": "integer", 1268 "format": "int32" 1269 }, 1270 { 1271 "name": "sfixed64Value", 1272 "in": "query", 1273 "required": false, 1274 "type": "string", 1275 "format": "int64" 1276 }, 1277 { 1278 "name": "sint32Value", 1279 "in": "query", 1280 "required": false, 1281 "type": "integer", 1282 "format": "int32" 1283 }, 1284 { 1285 "name": "sint64Value", 1286 "in": "query", 1287 "required": false, 1288 "type": "string", 1289 "format": "int64" 1290 }, 1291 { 1292 "name": "repeatedStringValue", 1293 "in": "query", 1294 "required": false, 1295 "type": "array", 1296 "items": { 1297 "type": "string" 1298 }, 1299 "collectionFormat": "multi" 1300 }, 1301 { 1302 "name": "oneofEmpty", 1303 "in": "query", 1304 "required": false, 1305 "type": "object" 1306 }, 1307 { 1308 "name": "oneofString", 1309 "in": "query", 1310 "required": false, 1311 "type": "string" 1312 }, 1313 { 1314 "name": "mapValue", 1315 "description": "This is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18", 1316 "in": "query", 1317 "required": false 1318 }, 1319 { 1320 "name": "mappedStringValue", 1321 "description": "This is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18", 1322 "in": "query", 1323 "required": false, 1324 "type": "string" 1325 }, 1326 { 1327 "name": "mappedNestedValue", 1328 "description": "This is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18", 1329 "in": "query", 1330 "required": false 1331 }, 1332 { 1333 "name": "nonConventionalNameValue", 1334 "in": "query", 1335 "required": false, 1336 "type": "string" 1337 }, 1338 { 1339 "name": "timestampValue", 1340 "in": "query", 1341 "required": false, 1342 "type": "string", 1343 "format": "date-time" 1344 }, 1345 { 1346 "name": "repeatedEnumValue", 1347 "description": "repeated enum value. it is comma-separated in query\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", 1348 "in": "query", 1349 "required": false, 1350 "type": "array", 1351 "items": { 1352 "type": "string", 1353 "enum": [ 1354 "ZERO", 1355 "ONE" 1356 ] 1357 }, 1358 "collectionFormat": "multi" 1359 }, 1360 { 1361 "name": "repeatedEnumAnnotation", 1362 "description": "Repeated numeric enum title\n\nRepeated numeric enum description.\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", 1363 "in": "query", 1364 "required": false, 1365 "type": "array", 1366 "items": { 1367 "type": "string", 1368 "enum": [ 1369 "ZERO", 1370 "ONE" 1371 ] 1372 }, 1373 "collectionFormat": "multi" 1374 }, 1375 { 1376 "name": "enumValueAnnotation", 1377 "description": "Numeric enum title\n\nNumeric enum description.\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", 1378 "in": "query", 1379 "required": false, 1380 "type": "string", 1381 "enum": [ 1382 "ZERO", 1383 "ONE" 1384 ], 1385 "default": "ZERO" 1386 }, 1387 { 1388 "name": "repeatedStringAnnotation", 1389 "description": "Repeated string title\n\nRepeated string description.", 1390 "in": "query", 1391 "required": false, 1392 "type": "array", 1393 "items": { 1394 "type": "string" 1395 }, 1396 "collectionFormat": "multi" 1397 }, 1398 { 1399 "name": "nestedAnnotation.name", 1400 "description": "name is nested field.", 1401 "in": "query", 1402 "required": false, 1403 "type": "string" 1404 }, 1405 { 1406 "name": "nestedAnnotation.amount", 1407 "in": "query", 1408 "required": false, 1409 "type": "integer", 1410 "format": "int64" 1411 }, 1412 { 1413 "name": "nestedAnnotation.ok", 1414 "description": "DeepEnum description.\n\n - FALSE: FALSE is false.\n - TRUE: TRUE is true.", 1415 "in": "query", 1416 "required": false, 1417 "type": "string", 1418 "enum": [ 1419 "FALSE", 1420 "TRUE" 1421 ], 1422 "default": "FALSE" 1423 }, 1424 { 1425 "name": "int64OverrideType", 1426 "in": "query", 1427 "required": false, 1428 "type": "integer", 1429 "format": "int64" 1430 }, 1431 { 1432 "name": "requiredStringViaFieldBehaviorAnnotation", 1433 "description": "mark a field as required in Open API definition", 1434 "in": "query", 1435 "required": true, 1436 "type": "string" 1437 }, 1438 { 1439 "name": "outputOnlyStringViaFieldBehaviorAnnotation", 1440 "description": "mark a field as readonly in Open API definition", 1441 "in": "query", 1442 "required": false, 1443 "type": "string" 1444 }, 1445 { 1446 "name": "optionalStringValue", 1447 "in": "query", 1448 "required": false, 1449 "type": "string" 1450 }, 1451 { 1452 "name": "productId", 1453 "description": "Test openapiv2 generation of repeated fields\n\nOnly digits are allowed.", 1454 "in": "query", 1455 "required": false, 1456 "type": "array", 1457 "items": { 1458 "type": "string", 1459 "maxLength": 19, 1460 "minLength": 1, 1461 "pattern": "^[0-9]+$" 1462 }, 1463 "collectionFormat": "multi" 1464 }, 1465 { 1466 "name": "optionalStringField", 1467 "description": "Test openapiv2 generation of required fields with annotation and jsonschema to reproduce", 1468 "in": "query", 1469 "required": false, 1470 "type": "string" 1471 }, 1472 { 1473 "name": "requiredStringField1", 1474 "in": "query", 1475 "required": true, 1476 "type": "string" 1477 }, 1478 { 1479 "name": "requiredStringField2", 1480 "in": "query", 1481 "required": true, 1482 "type": "string" 1483 }, 1484 { 1485 "name": "required_field_behavior_json_name_custom", 1486 "description": "Test openapiv2 handling of required json_name fields", 1487 "in": "query", 1488 "required": true, 1489 "type": "string" 1490 }, 1491 { 1492 "name": "required_field_schema_json_name_custom", 1493 "in": "query", 1494 "required": true, 1495 "type": "string" 1496 }, 1497 { 1498 "name": "trailingOnly", 1499 "description": "Trailing only", 1500 "in": "query", 1501 "required": false, 1502 "type": "string" 1503 }, 1504 { 1505 "name": "trailingOnlyDot", 1506 "description": "Trailing only dot.", 1507 "in": "query", 1508 "required": false, 1509 "type": "string" 1510 }, 1511 { 1512 "name": "trailingBoth", 1513 "description": "Leading both\n\nTrailing both.", 1514 "in": "query", 1515 "required": false, 1516 "type": "string" 1517 }, 1518 { 1519 "name": "trailingMultiline", 1520 "description": "Leading multiline\n\nThis is an example of a multi-line comment.\n\nTrailing multiline.", 1521 "in": "query", 1522 "required": false, 1523 "type": "string" 1524 }, 1525 { 1526 "name": "uuids", 1527 "description": "Specify a custom format of repeated field items", 1528 "in": "query", 1529 "required": false, 1530 "type": "array", 1531 "items": { 1532 "type": "string", 1533 "format": "uuid" 1534 }, 1535 "collectionFormat": "multi" 1536 } 1537 ], 1538 "tags": [ 1539 "ABitOfEverythingService" 1540 ] 1541 } 1542 }, 1543 "/v1/example/a_bit_of_everything/query/{uuidName}": { 1544 "get": { 1545 "operationId": "ABitOfEverythingService_GetQuery", 1546 "responses": { 1547 "200": { 1548 "description": "A successful response.", 1549 "schema": { 1550 "type": "object", 1551 "properties": {} 1552 } 1553 }, 1554 "403": { 1555 "description": "Returned when the user does not have permission to access the resource.", 1556 "schema": {} 1557 }, 1558 "404": { 1559 "description": "Returned when the resource does not exist.", 1560 "schema": { 1561 "type": "string", 1562 "format": "string" 1563 } 1564 }, 1565 "418": { 1566 "description": "I'm a teapot.", 1567 "schema": { 1568 "$ref": "#/definitions/examplepbNumericEnum" 1569 } 1570 }, 1571 "500": { 1572 "description": "Server error", 1573 "schema": { 1574 "$ref": "#/definitions/examplepbErrorResponse" 1575 } 1576 }, 1577 "default": { 1578 "description": "An unexpected error response.", 1579 "schema": { 1580 "$ref": "#/definitions/rpcStatus" 1581 } 1582 } 1583 }, 1584 "parameters": [ 1585 { 1586 "name": "uuidName", 1587 "in": "path", 1588 "required": true, 1589 "type": "string", 1590 "format": "uuid", 1591 "x-internal": true 1592 }, 1593 { 1594 "name": "singleNested.name", 1595 "description": "name is nested field.", 1596 "in": "query", 1597 "required": false, 1598 "type": "string" 1599 }, 1600 { 1601 "name": "singleNested.amount", 1602 "in": "query", 1603 "required": false, 1604 "type": "integer", 1605 "format": "int64" 1606 }, 1607 { 1608 "name": "singleNested.ok", 1609 "description": "DeepEnum description.\n\n - FALSE: FALSE is false.\n - TRUE: TRUE is true.", 1610 "in": "query", 1611 "required": false, 1612 "type": "string", 1613 "enum": [ 1614 "FALSE", 1615 "TRUE" 1616 ], 1617 "default": "FALSE" 1618 }, 1619 { 1620 "name": "floatValue", 1621 "description": "Float value field", 1622 "in": "query", 1623 "required": true, 1624 "type": "number", 1625 "format": "float", 1626 "default": "0.2" 1627 }, 1628 { 1629 "name": "doubleValue", 1630 "in": "query", 1631 "required": true, 1632 "type": "number", 1633 "format": "double" 1634 }, 1635 { 1636 "name": "int64Value", 1637 "in": "query", 1638 "required": true, 1639 "type": "string", 1640 "format": "int64" 1641 }, 1642 { 1643 "name": "uint64Value", 1644 "in": "query", 1645 "required": false, 1646 "type": "string", 1647 "format": "uint64" 1648 }, 1649 { 1650 "name": "int32Value", 1651 "in": "query", 1652 "required": false, 1653 "type": "integer", 1654 "format": "int32" 1655 }, 1656 { 1657 "name": "fixed64Value", 1658 "in": "query", 1659 "required": false, 1660 "type": "string", 1661 "format": "uint64" 1662 }, 1663 { 1664 "name": "fixed32Value", 1665 "in": "query", 1666 "required": false, 1667 "type": "integer", 1668 "format": "int64" 1669 }, 1670 { 1671 "name": "boolValue", 1672 "in": "query", 1673 "required": false, 1674 "type": "boolean" 1675 }, 1676 { 1677 "name": "stringValue", 1678 "in": "query", 1679 "required": false, 1680 "type": "string" 1681 }, 1682 { 1683 "name": "bytesValue", 1684 "in": "query", 1685 "required": false, 1686 "type": "string", 1687 "format": "byte" 1688 }, 1689 { 1690 "name": "uint32Value", 1691 "in": "query", 1692 "required": false, 1693 "type": "integer", 1694 "format": "int64" 1695 }, 1696 { 1697 "name": "enumValue", 1698 "description": " - ZERO: ZERO means 0\n - ONE: ONE means 1", 1699 "in": "query", 1700 "required": false, 1701 "type": "string", 1702 "enum": [ 1703 "ZERO", 1704 "ONE" 1705 ], 1706 "default": "ZERO" 1707 }, 1708 { 1709 "name": "pathEnumValue", 1710 "in": "query", 1711 "required": false, 1712 "type": "string", 1713 "enum": [ 1714 "ABC", 1715 "DEF" 1716 ], 1717 "default": "ABC" 1718 }, 1719 { 1720 "name": "nestedPathEnumValue", 1721 "in": "query", 1722 "required": false, 1723 "type": "string", 1724 "enum": [ 1725 "GHI", 1726 "JKL" 1727 ], 1728 "default": "GHI" 1729 }, 1730 { 1731 "name": "sfixed32Value", 1732 "in": "query", 1733 "required": false, 1734 "type": "integer", 1735 "format": "int32" 1736 }, 1737 { 1738 "name": "sfixed64Value", 1739 "in": "query", 1740 "required": false, 1741 "type": "string", 1742 "format": "int64" 1743 }, 1744 { 1745 "name": "sint32Value", 1746 "in": "query", 1747 "required": false, 1748 "type": "integer", 1749 "format": "int32" 1750 }, 1751 { 1752 "name": "sint64Value", 1753 "in": "query", 1754 "required": false, 1755 "type": "string", 1756 "format": "int64" 1757 }, 1758 { 1759 "name": "repeatedStringValue", 1760 "in": "query", 1761 "required": false, 1762 "type": "array", 1763 "items": { 1764 "type": "string" 1765 }, 1766 "collectionFormat": "multi" 1767 }, 1768 { 1769 "name": "oneofEmpty", 1770 "in": "query", 1771 "required": false, 1772 "type": "object" 1773 }, 1774 { 1775 "name": "oneofString", 1776 "in": "query", 1777 "required": false, 1778 "type": "string" 1779 }, 1780 { 1781 "name": "mapValue", 1782 "description": "This is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18", 1783 "in": "query", 1784 "required": false 1785 }, 1786 { 1787 "name": "mappedStringValue", 1788 "description": "This is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18", 1789 "in": "query", 1790 "required": false, 1791 "type": "string" 1792 }, 1793 { 1794 "name": "mappedNestedValue", 1795 "description": "This is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18", 1796 "in": "query", 1797 "required": false 1798 }, 1799 { 1800 "name": "nonConventionalNameValue", 1801 "in": "query", 1802 "required": false, 1803 "type": "string" 1804 }, 1805 { 1806 "name": "timestampValue", 1807 "in": "query", 1808 "required": false, 1809 "type": "string", 1810 "format": "date-time" 1811 }, 1812 { 1813 "name": "repeatedEnumValue", 1814 "description": "repeated enum value. it is comma-separated in query\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", 1815 "in": "query", 1816 "required": false, 1817 "type": "array", 1818 "items": { 1819 "type": "string", 1820 "enum": [ 1821 "ZERO", 1822 "ONE" 1823 ] 1824 }, 1825 "collectionFormat": "multi" 1826 }, 1827 { 1828 "name": "repeatedEnumAnnotation", 1829 "description": "Repeated numeric enum title\n\nRepeated numeric enum description.\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", 1830 "in": "query", 1831 "required": false, 1832 "type": "array", 1833 "items": { 1834 "type": "string", 1835 "enum": [ 1836 "ZERO", 1837 "ONE" 1838 ] 1839 }, 1840 "collectionFormat": "multi" 1841 }, 1842 { 1843 "name": "enumValueAnnotation", 1844 "description": "Numeric enum title\n\nNumeric enum description.\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", 1845 "in": "query", 1846 "required": false, 1847 "type": "string", 1848 "enum": [ 1849 "ZERO", 1850 "ONE" 1851 ], 1852 "default": "ZERO" 1853 }, 1854 { 1855 "name": "repeatedStringAnnotation", 1856 "description": "Repeated string title\n\nRepeated string description.", 1857 "in": "query", 1858 "required": false, 1859 "type": "array", 1860 "items": { 1861 "type": "string" 1862 }, 1863 "collectionFormat": "multi" 1864 }, 1865 { 1866 "name": "nestedAnnotation.name", 1867 "description": "name is nested field.", 1868 "in": "query", 1869 "required": false, 1870 "type": "string" 1871 }, 1872 { 1873 "name": "nestedAnnotation.amount", 1874 "in": "query", 1875 "required": false, 1876 "type": "integer", 1877 "format": "int64" 1878 }, 1879 { 1880 "name": "nestedAnnotation.ok", 1881 "description": "DeepEnum description.\n\n - FALSE: FALSE is false.\n - TRUE: TRUE is true.", 1882 "in": "query", 1883 "required": false, 1884 "type": "string", 1885 "enum": [ 1886 "FALSE", 1887 "TRUE" 1888 ], 1889 "default": "FALSE" 1890 }, 1891 { 1892 "name": "int64OverrideType", 1893 "in": "query", 1894 "required": false, 1895 "type": "integer", 1896 "format": "int64" 1897 }, 1898 { 1899 "name": "requiredStringViaFieldBehaviorAnnotation", 1900 "description": "mark a field as required in Open API definition", 1901 "in": "query", 1902 "required": true, 1903 "type": "string" 1904 }, 1905 { 1906 "name": "outputOnlyStringViaFieldBehaviorAnnotation", 1907 "description": "mark a field as readonly in Open API definition", 1908 "in": "query", 1909 "required": false, 1910 "type": "string" 1911 }, 1912 { 1913 "name": "optionalStringValue", 1914 "in": "query", 1915 "required": false, 1916 "type": "string" 1917 }, 1918 { 1919 "name": "productId", 1920 "description": "Test openapiv2 generation of repeated fields\n\nOnly digits are allowed.", 1921 "in": "query", 1922 "required": false, 1923 "type": "array", 1924 "items": { 1925 "type": "string", 1926 "maxLength": 19, 1927 "minLength": 1, 1928 "pattern": "^[0-9]+$" 1929 }, 1930 "collectionFormat": "multi" 1931 }, 1932 { 1933 "name": "optionalStringField", 1934 "description": "Test openapiv2 generation of required fields with annotation and jsonschema to reproduce", 1935 "in": "query", 1936 "required": false, 1937 "type": "string" 1938 }, 1939 { 1940 "name": "requiredStringField1", 1941 "in": "query", 1942 "required": true, 1943 "type": "string" 1944 }, 1945 { 1946 "name": "requiredStringField2", 1947 "in": "query", 1948 "required": true, 1949 "type": "string" 1950 }, 1951 { 1952 "name": "required_field_behavior_json_name_custom", 1953 "description": "Test openapiv2 handling of required json_name fields", 1954 "in": "query", 1955 "required": true, 1956 "type": "string" 1957 }, 1958 { 1959 "name": "required_field_schema_json_name_custom", 1960 "in": "query", 1961 "required": true, 1962 "type": "string" 1963 }, 1964 { 1965 "name": "trailingOnly", 1966 "description": "Trailing only", 1967 "in": "query", 1968 "required": false, 1969 "type": "string" 1970 }, 1971 { 1972 "name": "trailingOnlyDot", 1973 "description": "Trailing only dot.", 1974 "in": "query", 1975 "required": false, 1976 "type": "string" 1977 }, 1978 { 1979 "name": "trailingBoth", 1980 "description": "Leading both\n\nTrailing both.", 1981 "in": "query", 1982 "required": false, 1983 "type": "string" 1984 }, 1985 { 1986 "name": "trailingMultiline", 1987 "description": "Leading multiline\n\nThis is an example of a multi-line comment.\n\nTrailing multiline.", 1988 "in": "query", 1989 "required": false, 1990 "type": "string" 1991 }, 1992 { 1993 "name": "uuids", 1994 "description": "Specify a custom format of repeated field items", 1995 "in": "query", 1996 "required": false, 1997 "type": "array", 1998 "items": { 1999 "type": "string", 2000 "format": "uuid" 2001 }, 2002 "collectionFormat": "multi" 2003 } 2004 ], 2005 "tags": [ 2006 "ABitOfEverything" 2007 ], 2008 "deprecated": true, 2009 "security": [], 2010 "externalDocs": { 2011 "description": "Find out more about GetQuery", 2012 "url": "https://github.com/grpc-ecosystem/grpc-gateway" 2013 } 2014 } 2015 }, 2016 "/v1/example/a_bit_of_everything/{floatValue}/{doubleValue}/{int64Value}/separator/{uint64Value}/{int32Value}/{fixed64Value}/{fixed32Value}/{boolValue}/{stringValue}/{uint32Value}/{sfixed32Value}/{sfixed64Value}/{sint32Value}/{sint64Value}/{nonConventionalNameValue}/{enumValue}/{pathEnumValue}/{nestedPathEnumValue}/{enumValueAnnotation}": { 2017 "post": { 2018 "summary": "Create a new ABitOfEverything", 2019 "description": "This API creates a new ABitOfEverything", 2020 "operationId": "ABitOfEverythingService_Create", 2021 "responses": { 2022 "200": { 2023 "description": "A successful response.", 2024 "schema": { 2025 "$ref": "#/definitions/examplepbABitOfEverything" 2026 } 2027 }, 2028 "403": { 2029 "description": "Returned when the user does not have permission to access the resource.", 2030 "schema": {} 2031 }, 2032 "404": { 2033 "description": "Returned when the resource does not exist.", 2034 "schema": { 2035 "type": "string", 2036 "format": "string" 2037 } 2038 }, 2039 "418": { 2040 "description": "I'm a teapot.", 2041 "schema": { 2042 "$ref": "#/definitions/examplepbNumericEnum" 2043 } 2044 }, 2045 "500": { 2046 "description": "Server error", 2047 "schema": { 2048 "$ref": "#/definitions/examplepbErrorResponse" 2049 } 2050 }, 2051 "default": { 2052 "description": "An unexpected error response.", 2053 "schema": { 2054 "$ref": "#/definitions/rpcStatus" 2055 } 2056 } 2057 }, 2058 "parameters": [ 2059 { 2060 "name": "floatValue", 2061 "description": "Float value field", 2062 "in": "path", 2063 "required": true, 2064 "type": "number", 2065 "format": "float", 2066 "default": "0.2" 2067 }, 2068 { 2069 "name": "doubleValue", 2070 "in": "path", 2071 "required": true, 2072 "type": "number", 2073 "format": "double" 2074 }, 2075 { 2076 "name": "int64Value", 2077 "in": "path", 2078 "required": true, 2079 "type": "string", 2080 "format": "int64" 2081 }, 2082 { 2083 "name": "uint64Value", 2084 "in": "path", 2085 "required": true, 2086 "type": "string", 2087 "format": "uint64" 2088 }, 2089 { 2090 "name": "int32Value", 2091 "in": "path", 2092 "required": true, 2093 "type": "integer", 2094 "format": "int32" 2095 }, 2096 { 2097 "name": "fixed64Value", 2098 "in": "path", 2099 "required": true, 2100 "type": "string", 2101 "format": "uint64" 2102 }, 2103 { 2104 "name": "fixed32Value", 2105 "in": "path", 2106 "required": true, 2107 "type": "integer", 2108 "format": "int64" 2109 }, 2110 { 2111 "name": "boolValue", 2112 "in": "path", 2113 "required": true, 2114 "type": "boolean" 2115 }, 2116 { 2117 "name": "stringValue", 2118 "in": "path", 2119 "required": true, 2120 "type": "string", 2121 "pattern": "strprefix/[^/]+" 2122 }, 2123 { 2124 "name": "uint32Value", 2125 "in": "path", 2126 "required": true, 2127 "type": "integer", 2128 "format": "int64" 2129 }, 2130 { 2131 "name": "sfixed32Value", 2132 "in": "path", 2133 "required": true, 2134 "type": "integer", 2135 "format": "int32" 2136 }, 2137 { 2138 "name": "sfixed64Value", 2139 "in": "path", 2140 "required": true, 2141 "type": "string", 2142 "format": "int64" 2143 }, 2144 { 2145 "name": "sint32Value", 2146 "in": "path", 2147 "required": true, 2148 "type": "integer", 2149 "format": "int32" 2150 }, 2151 { 2152 "name": "sint64Value", 2153 "in": "path", 2154 "required": true, 2155 "type": "string", 2156 "format": "int64" 2157 }, 2158 { 2159 "name": "nonConventionalNameValue", 2160 "in": "path", 2161 "required": true, 2162 "type": "string" 2163 }, 2164 { 2165 "name": "enumValue", 2166 "in": "path", 2167 "required": true, 2168 "type": "string", 2169 "enum": [ 2170 "ZERO", 2171 "ONE" 2172 ] 2173 }, 2174 { 2175 "name": "pathEnumValue", 2176 "in": "path", 2177 "required": true, 2178 "type": "string", 2179 "enum": [ 2180 "ABC", 2181 "DEF" 2182 ] 2183 }, 2184 { 2185 "name": "nestedPathEnumValue", 2186 "in": "path", 2187 "required": true, 2188 "type": "string", 2189 "enum": [ 2190 "GHI", 2191 "JKL" 2192 ] 2193 }, 2194 { 2195 "name": "enumValueAnnotation", 2196 "description": "Numeric enum description.", 2197 "in": "path", 2198 "required": true, 2199 "type": "string", 2200 "enum": [ 2201 "ZERO", 2202 "ONE" 2203 ] 2204 }, 2205 { 2206 "name": "singleNested.name", 2207 "description": "name is nested field.", 2208 "in": "query", 2209 "required": false, 2210 "type": "string" 2211 }, 2212 { 2213 "name": "singleNested.amount", 2214 "in": "query", 2215 "required": false, 2216 "type": "integer", 2217 "format": "int64" 2218 }, 2219 { 2220 "name": "singleNested.ok", 2221 "description": "DeepEnum description.\n\n - FALSE: FALSE is false.\n - TRUE: TRUE is true.", 2222 "in": "query", 2223 "required": false, 2224 "type": "string", 2225 "enum": [ 2226 "FALSE", 2227 "TRUE" 2228 ], 2229 "default": "FALSE" 2230 }, 2231 { 2232 "name": "uuid", 2233 "in": "query", 2234 "required": true, 2235 "type": "string", 2236 "format": "uuid", 2237 "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", 2238 "x-internal": true 2239 }, 2240 { 2241 "name": "bytesValue", 2242 "in": "query", 2243 "required": false, 2244 "type": "string", 2245 "format": "byte" 2246 }, 2247 { 2248 "name": "repeatedStringValue", 2249 "in": "query", 2250 "required": false, 2251 "type": "array", 2252 "items": { 2253 "type": "string" 2254 }, 2255 "collectionFormat": "multi" 2256 }, 2257 { 2258 "name": "oneofEmpty", 2259 "in": "query", 2260 "required": false, 2261 "type": "object" 2262 }, 2263 { 2264 "name": "oneofString", 2265 "in": "query", 2266 "required": false, 2267 "type": "string" 2268 }, 2269 { 2270 "name": "mapValue", 2271 "description": "This is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18", 2272 "in": "query", 2273 "required": false 2274 }, 2275 { 2276 "name": "mappedStringValue", 2277 "description": "This is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18", 2278 "in": "query", 2279 "required": false, 2280 "type": "string" 2281 }, 2282 { 2283 "name": "mappedNestedValue", 2284 "description": "This is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18", 2285 "in": "query", 2286 "required": false 2287 }, 2288 { 2289 "name": "timestampValue", 2290 "in": "query", 2291 "required": false, 2292 "type": "string", 2293 "format": "date-time" 2294 }, 2295 { 2296 "name": "repeatedEnumValue", 2297 "description": "repeated enum value. it is comma-separated in query\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", 2298 "in": "query", 2299 "required": false, 2300 "type": "array", 2301 "items": { 2302 "type": "string", 2303 "enum": [ 2304 "ZERO", 2305 "ONE" 2306 ] 2307 }, 2308 "collectionFormat": "multi" 2309 }, 2310 { 2311 "name": "repeatedEnumAnnotation", 2312 "description": "Repeated numeric enum title\n\nRepeated numeric enum description.\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", 2313 "in": "query", 2314 "required": false, 2315 "type": "array", 2316 "items": { 2317 "type": "string", 2318 "enum": [ 2319 "ZERO", 2320 "ONE" 2321 ] 2322 }, 2323 "collectionFormat": "multi" 2324 }, 2325 { 2326 "name": "repeatedStringAnnotation", 2327 "description": "Repeated string title\n\nRepeated string description.", 2328 "in": "query", 2329 "required": false, 2330 "type": "array", 2331 "items": { 2332 "type": "string" 2333 }, 2334 "collectionFormat": "multi" 2335 }, 2336 { 2337 "name": "nestedAnnotation.name", 2338 "description": "name is nested field.", 2339 "in": "query", 2340 "required": false, 2341 "type": "string" 2342 }, 2343 { 2344 "name": "nestedAnnotation.amount", 2345 "in": "query", 2346 "required": false, 2347 "type": "integer", 2348 "format": "int64" 2349 }, 2350 { 2351 "name": "nestedAnnotation.ok", 2352 "description": "DeepEnum description.\n\n - FALSE: FALSE is false.\n - TRUE: TRUE is true.", 2353 "in": "query", 2354 "required": false, 2355 "type": "string", 2356 "enum": [ 2357 "FALSE", 2358 "TRUE" 2359 ], 2360 "default": "FALSE" 2361 }, 2362 { 2363 "name": "int64OverrideType", 2364 "in": "query", 2365 "required": false, 2366 "type": "integer", 2367 "format": "int64" 2368 }, 2369 { 2370 "name": "requiredStringViaFieldBehaviorAnnotation", 2371 "description": "mark a field as required in Open API definition", 2372 "in": "query", 2373 "required": true, 2374 "type": "string" 2375 }, 2376 { 2377 "name": "outputOnlyStringViaFieldBehaviorAnnotation", 2378 "description": "mark a field as readonly in Open API definition", 2379 "in": "query", 2380 "required": false, 2381 "type": "string" 2382 }, 2383 { 2384 "name": "optionalStringValue", 2385 "in": "query", 2386 "required": false, 2387 "type": "string" 2388 }, 2389 { 2390 "name": "productId", 2391 "description": "Test openapiv2 generation of repeated fields\n\nOnly digits are allowed.", 2392 "in": "query", 2393 "required": false, 2394 "type": "array", 2395 "items": { 2396 "type": "string", 2397 "maxLength": 19, 2398 "minLength": 1, 2399 "pattern": "^[0-9]+$" 2400 }, 2401 "collectionFormat": "multi" 2402 }, 2403 { 2404 "name": "optionalStringField", 2405 "description": "Test openapiv2 generation of required fields with annotation and jsonschema to reproduce", 2406 "in": "query", 2407 "required": false, 2408 "type": "string" 2409 }, 2410 { 2411 "name": "requiredStringField1", 2412 "in": "query", 2413 "required": true, 2414 "type": "string" 2415 }, 2416 { 2417 "name": "requiredStringField2", 2418 "in": "query", 2419 "required": true, 2420 "type": "string" 2421 }, 2422 { 2423 "name": "required_field_behavior_json_name_custom", 2424 "description": "Test openapiv2 handling of required json_name fields", 2425 "in": "query", 2426 "required": true, 2427 "type": "string" 2428 }, 2429 { 2430 "name": "required_field_schema_json_name_custom", 2431 "in": "query", 2432 "required": true, 2433 "type": "string" 2434 }, 2435 { 2436 "name": "trailingOnly", 2437 "description": "Trailing only", 2438 "in": "query", 2439 "required": false, 2440 "type": "string" 2441 }, 2442 { 2443 "name": "trailingOnlyDot", 2444 "description": "Trailing only dot.", 2445 "in": "query", 2446 "required": false, 2447 "type": "string" 2448 }, 2449 { 2450 "name": "trailingBoth", 2451 "description": "Leading both\n\nTrailing both.", 2452 "in": "query", 2453 "required": false, 2454 "type": "string" 2455 }, 2456 { 2457 "name": "trailingMultiline", 2458 "description": "Leading multiline\n\nThis is an example of a multi-line comment.\n\nTrailing multiline.", 2459 "in": "query", 2460 "required": false, 2461 "type": "string" 2462 }, 2463 { 2464 "name": "uuids", 2465 "description": "Specify a custom format of repeated field items", 2466 "in": "query", 2467 "required": false, 2468 "type": "array", 2469 "items": { 2470 "type": "string", 2471 "format": "uuid" 2472 }, 2473 "collectionFormat": "multi" 2474 } 2475 ], 2476 "tags": [ 2477 "ABitOfEverythingService" 2478 ] 2479 } 2480 }, 2481 "/v1/example/a_bit_of_everything/{uuidName}": { 2482 "put": { 2483 "operationId": "ABitOfEverythingService_Update", 2484 "responses": { 2485 "200": { 2486 "description": "A successful response.", 2487 "schema": { 2488 "type": "object", 2489 "properties": {} 2490 } 2491 }, 2492 "403": { 2493 "description": "Returned when the user does not have permission to access the resource.", 2494 "schema": {} 2495 }, 2496 "404": { 2497 "description": "Returned when the resource does not exist.", 2498 "schema": { 2499 "type": "string", 2500 "format": "string" 2501 } 2502 }, 2503 "418": { 2504 "description": "I'm a teapot.", 2505 "schema": { 2506 "$ref": "#/definitions/examplepbNumericEnum" 2507 } 2508 }, 2509 "500": { 2510 "description": "Server error", 2511 "schema": { 2512 "$ref": "#/definitions/examplepbErrorResponse" 2513 } 2514 }, 2515 "default": { 2516 "description": "An unexpected error response.", 2517 "schema": { 2518 "$ref": "#/definitions/rpcStatus" 2519 } 2520 } 2521 }, 2522 "parameters": [ 2523 { 2524 "name": "uuidName", 2525 "in": "path", 2526 "required": true, 2527 "type": "string", 2528 "format": "uuid", 2529 "x-internal": true 2530 }, 2531 { 2532 "name": "body", 2533 "in": "body", 2534 "required": true, 2535 "schema": { 2536 "$ref": "#/definitions/examplepbABitOfEverythingServiceUpdateBody" 2537 } 2538 } 2539 ], 2540 "tags": [ 2541 "ABitOfEverythingService" 2542 ] 2543 }, 2544 "head": { 2545 "operationId": "ABitOfEverythingService_Exists", 2546 "responses": { 2547 "200": { 2548 "description": "A successful response.", 2549 "schema": { 2550 "type": "object", 2551 "properties": {} 2552 } 2553 }, 2554 "default": { 2555 "description": "An unexpected error response.", 2556 "schema": { 2557 "$ref": "#/definitions/rpcStatus" 2558 } 2559 } 2560 }, 2561 "parameters": [ 2562 { 2563 "name": "uuidName", 2564 "in": "path", 2565 "required": true, 2566 "type": "string", 2567 "format": "uuid", 2568 "x-internal": true 2569 }, 2570 { 2571 "name": "singleNested.name", 2572 "description": "name is nested field.", 2573 "in": "query", 2574 "required": false, 2575 "type": "string" 2576 }, 2577 { 2578 "name": "singleNested.amount", 2579 "in": "query", 2580 "required": false, 2581 "type": "integer", 2582 "format": "int64" 2583 }, 2584 { 2585 "name": "singleNested.ok", 2586 "description": "DeepEnum description.\n\n - FALSE: FALSE is false.\n - TRUE: TRUE is true.", 2587 "in": "query", 2588 "required": false, 2589 "type": "string", 2590 "enum": [ 2591 "FALSE", 2592 "TRUE" 2593 ], 2594 "default": "FALSE" 2595 }, 2596 { 2597 "name": "floatValue", 2598 "description": "Float value field", 2599 "in": "query", 2600 "required": true, 2601 "type": "number", 2602 "format": "float", 2603 "default": "0.2" 2604 }, 2605 { 2606 "name": "doubleValue", 2607 "in": "query", 2608 "required": true, 2609 "type": "number", 2610 "format": "double" 2611 }, 2612 { 2613 "name": "int64Value", 2614 "in": "query", 2615 "required": true, 2616 "type": "string", 2617 "format": "int64" 2618 }, 2619 { 2620 "name": "uint64Value", 2621 "in": "query", 2622 "required": false, 2623 "type": "string", 2624 "format": "uint64" 2625 }, 2626 { 2627 "name": "int32Value", 2628 "in": "query", 2629 "required": false, 2630 "type": "integer", 2631 "format": "int32" 2632 }, 2633 { 2634 "name": "fixed64Value", 2635 "in": "query", 2636 "required": false, 2637 "type": "string", 2638 "format": "uint64" 2639 }, 2640 { 2641 "name": "fixed32Value", 2642 "in": "query", 2643 "required": false, 2644 "type": "integer", 2645 "format": "int64" 2646 }, 2647 { 2648 "name": "boolValue", 2649 "in": "query", 2650 "required": false, 2651 "type": "boolean" 2652 }, 2653 { 2654 "name": "stringValue", 2655 "in": "query", 2656 "required": false, 2657 "type": "string" 2658 }, 2659 { 2660 "name": "bytesValue", 2661 "in": "query", 2662 "required": false, 2663 "type": "string", 2664 "format": "byte" 2665 }, 2666 { 2667 "name": "uint32Value", 2668 "in": "query", 2669 "required": false, 2670 "type": "integer", 2671 "format": "int64" 2672 }, 2673 { 2674 "name": "enumValue", 2675 "description": " - ZERO: ZERO means 0\n - ONE: ONE means 1", 2676 "in": "query", 2677 "required": false, 2678 "type": "string", 2679 "enum": [ 2680 "ZERO", 2681 "ONE" 2682 ], 2683 "default": "ZERO" 2684 }, 2685 { 2686 "name": "pathEnumValue", 2687 "in": "query", 2688 "required": false, 2689 "type": "string", 2690 "enum": [ 2691 "ABC", 2692 "DEF" 2693 ], 2694 "default": "ABC" 2695 }, 2696 { 2697 "name": "nestedPathEnumValue", 2698 "in": "query", 2699 "required": false, 2700 "type": "string", 2701 "enum": [ 2702 "GHI", 2703 "JKL" 2704 ], 2705 "default": "GHI" 2706 }, 2707 { 2708 "name": "sfixed32Value", 2709 "in": "query", 2710 "required": false, 2711 "type": "integer", 2712 "format": "int32" 2713 }, 2714 { 2715 "name": "sfixed64Value", 2716 "in": "query", 2717 "required": false, 2718 "type": "string", 2719 "format": "int64" 2720 }, 2721 { 2722 "name": "sint32Value", 2723 "in": "query", 2724 "required": false, 2725 "type": "integer", 2726 "format": "int32" 2727 }, 2728 { 2729 "name": "sint64Value", 2730 "in": "query", 2731 "required": false, 2732 "type": "string", 2733 "format": "int64" 2734 }, 2735 { 2736 "name": "repeatedStringValue", 2737 "in": "query", 2738 "required": false, 2739 "type": "array", 2740 "items": { 2741 "type": "string" 2742 }, 2743 "collectionFormat": "multi" 2744 }, 2745 { 2746 "name": "oneofEmpty", 2747 "in": "query", 2748 "required": false, 2749 "type": "object" 2750 }, 2751 { 2752 "name": "oneofString", 2753 "in": "query", 2754 "required": false, 2755 "type": "string" 2756 }, 2757 { 2758 "name": "mapValue", 2759 "description": "This is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18", 2760 "in": "query", 2761 "required": false 2762 }, 2763 { 2764 "name": "mappedStringValue", 2765 "description": "This is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18", 2766 "in": "query", 2767 "required": false, 2768 "type": "string" 2769 }, 2770 { 2771 "name": "mappedNestedValue", 2772 "description": "This is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18", 2773 "in": "query", 2774 "required": false 2775 }, 2776 { 2777 "name": "nonConventionalNameValue", 2778 "in": "query", 2779 "required": false, 2780 "type": "string" 2781 }, 2782 { 2783 "name": "timestampValue", 2784 "in": "query", 2785 "required": false, 2786 "type": "string", 2787 "format": "date-time" 2788 }, 2789 { 2790 "name": "repeatedEnumValue", 2791 "description": "repeated enum value. it is comma-separated in query\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", 2792 "in": "query", 2793 "required": false, 2794 "type": "array", 2795 "items": { 2796 "type": "string", 2797 "enum": [ 2798 "ZERO", 2799 "ONE" 2800 ] 2801 }, 2802 "collectionFormat": "multi" 2803 }, 2804 { 2805 "name": "repeatedEnumAnnotation", 2806 "description": "Repeated numeric enum title\n\nRepeated numeric enum description.\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", 2807 "in": "query", 2808 "required": false, 2809 "type": "array", 2810 "items": { 2811 "type": "string", 2812 "enum": [ 2813 "ZERO", 2814 "ONE" 2815 ] 2816 }, 2817 "collectionFormat": "multi" 2818 }, 2819 { 2820 "name": "enumValueAnnotation", 2821 "description": "Numeric enum title\n\nNumeric enum description.\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", 2822 "in": "query", 2823 "required": false, 2824 "type": "string", 2825 "enum": [ 2826 "ZERO", 2827 "ONE" 2828 ], 2829 "default": "ZERO" 2830 }, 2831 { 2832 "name": "repeatedStringAnnotation", 2833 "description": "Repeated string title\n\nRepeated string description.", 2834 "in": "query", 2835 "required": false, 2836 "type": "array", 2837 "items": { 2838 "type": "string" 2839 }, 2840 "collectionFormat": "multi" 2841 }, 2842 { 2843 "name": "nestedAnnotation.name", 2844 "description": "name is nested field.", 2845 "in": "query", 2846 "required": false, 2847 "type": "string" 2848 }, 2849 { 2850 "name": "nestedAnnotation.amount", 2851 "in": "query", 2852 "required": false, 2853 "type": "integer", 2854 "format": "int64" 2855 }, 2856 { 2857 "name": "nestedAnnotation.ok", 2858 "description": "DeepEnum description.\n\n - FALSE: FALSE is false.\n - TRUE: TRUE is true.", 2859 "in": "query", 2860 "required": false, 2861 "type": "string", 2862 "enum": [ 2863 "FALSE", 2864 "TRUE" 2865 ], 2866 "default": "FALSE" 2867 }, 2868 { 2869 "name": "int64OverrideType", 2870 "in": "query", 2871 "required": false, 2872 "type": "integer", 2873 "format": "int64" 2874 }, 2875 { 2876 "name": "requiredStringViaFieldBehaviorAnnotation", 2877 "description": "mark a field as required in Open API definition", 2878 "in": "query", 2879 "required": true, 2880 "type": "string" 2881 }, 2882 { 2883 "name": "outputOnlyStringViaFieldBehaviorAnnotation", 2884 "description": "mark a field as readonly in Open API definition", 2885 "in": "query", 2886 "required": false, 2887 "type": "string" 2888 }, 2889 { 2890 "name": "optionalStringValue", 2891 "in": "query", 2892 "required": false, 2893 "type": "string" 2894 }, 2895 { 2896 "name": "productId", 2897 "description": "Test openapiv2 generation of repeated fields\n\nOnly digits are allowed.", 2898 "in": "query", 2899 "required": false, 2900 "type": "array", 2901 "items": { 2902 "type": "string", 2903 "maxLength": 19, 2904 "minLength": 1, 2905 "pattern": "^[0-9]+$" 2906 }, 2907 "collectionFormat": "multi" 2908 }, 2909 { 2910 "name": "optionalStringField", 2911 "description": "Test openapiv2 generation of required fields with annotation and jsonschema to reproduce", 2912 "in": "query", 2913 "required": false, 2914 "type": "string" 2915 }, 2916 { 2917 "name": "requiredStringField1", 2918 "in": "query", 2919 "required": true, 2920 "type": "string" 2921 }, 2922 { 2923 "name": "requiredStringField2", 2924 "in": "query", 2925 "required": true, 2926 "type": "string" 2927 }, 2928 { 2929 "name": "required_field_behavior_json_name_custom", 2930 "description": "Test openapiv2 handling of required json_name fields", 2931 "in": "query", 2932 "required": true, 2933 "type": "string" 2934 }, 2935 { 2936 "name": "required_field_schema_json_name_custom", 2937 "in": "query", 2938 "required": true, 2939 "type": "string" 2940 }, 2941 { 2942 "name": "trailingOnly", 2943 "description": "Trailing only", 2944 "in": "query", 2945 "required": false, 2946 "type": "string" 2947 }, 2948 { 2949 "name": "trailingOnlyDot", 2950 "description": "Trailing only dot.", 2951 "in": "query", 2952 "required": false, 2953 "type": "string" 2954 }, 2955 { 2956 "name": "trailingBoth", 2957 "description": "Leading both\n\nTrailing both.", 2958 "in": "query", 2959 "required": false, 2960 "type": "string" 2961 }, 2962 { 2963 "name": "trailingMultiline", 2964 "description": "Leading multiline\n\nThis is an example of a multi-line comment.\n\nTrailing multiline.", 2965 "in": "query", 2966 "required": false, 2967 "type": "string" 2968 }, 2969 { 2970 "name": "uuids", 2971 "description": "Specify a custom format of repeated field items", 2972 "in": "query", 2973 "required": false, 2974 "type": "array", 2975 "items": { 2976 "type": "string", 2977 "format": "uuid" 2978 }, 2979 "collectionFormat": "multi" 2980 } 2981 ], 2982 "tags": [ 2983 "ABitOfEverythingService" 2984 ] 2985 }, 2986 "options": { 2987 "operationId": "ABitOfEverythingService_CustomOptionsRequest", 2988 "responses": { 2989 "200": { 2990 "description": "A successful response.", 2991 "schema": { 2992 "type": "object", 2993 "properties": {} 2994 } 2995 }, 2996 "default": { 2997 "description": "An unexpected error response.", 2998 "schema": { 2999 "$ref": "#/definitions/rpcStatus" 3000 } 3001 } 3002 }, 3003 "parameters": [ 3004 { 3005 "name": "uuidName", 3006 "in": "path", 3007 "required": true, 3008 "type": "string", 3009 "format": "uuid", 3010 "x-internal": true 3011 }, 3012 { 3013 "name": "singleNested.name", 3014 "description": "name is nested field.", 3015 "in": "query", 3016 "required": false, 3017 "type": "string" 3018 }, 3019 { 3020 "name": "singleNested.amount", 3021 "in": "query", 3022 "required": false, 3023 "type": "integer", 3024 "format": "int64" 3025 }, 3026 { 3027 "name": "singleNested.ok", 3028 "description": "DeepEnum description.\n\n - FALSE: FALSE is false.\n - TRUE: TRUE is true.", 3029 "in": "query", 3030 "required": false, 3031 "type": "string", 3032 "enum": [ 3033 "FALSE", 3034 "TRUE" 3035 ], 3036 "default": "FALSE" 3037 }, 3038 { 3039 "name": "floatValue", 3040 "description": "Float value field", 3041 "in": "query", 3042 "required": true, 3043 "type": "number", 3044 "format": "float", 3045 "default": "0.2" 3046 }, 3047 { 3048 "name": "doubleValue", 3049 "in": "query", 3050 "required": true, 3051 "type": "number", 3052 "format": "double" 3053 }, 3054 { 3055 "name": "int64Value", 3056 "in": "query", 3057 "required": true, 3058 "type": "string", 3059 "format": "int64" 3060 }, 3061 { 3062 "name": "uint64Value", 3063 "in": "query", 3064 "required": false, 3065 "type": "string", 3066 "format": "uint64" 3067 }, 3068 { 3069 "name": "int32Value", 3070 "in": "query", 3071 "required": false, 3072 "type": "integer", 3073 "format": "int32" 3074 }, 3075 { 3076 "name": "fixed64Value", 3077 "in": "query", 3078 "required": false, 3079 "type": "string", 3080 "format": "uint64" 3081 }, 3082 { 3083 "name": "fixed32Value", 3084 "in": "query", 3085 "required": false, 3086 "type": "integer", 3087 "format": "int64" 3088 }, 3089 { 3090 "name": "boolValue", 3091 "in": "query", 3092 "required": false, 3093 "type": "boolean" 3094 }, 3095 { 3096 "name": "stringValue", 3097 "in": "query", 3098 "required": false, 3099 "type": "string" 3100 }, 3101 { 3102 "name": "bytesValue", 3103 "in": "query", 3104 "required": false, 3105 "type": "string", 3106 "format": "byte" 3107 }, 3108 { 3109 "name": "uint32Value", 3110 "in": "query", 3111 "required": false, 3112 "type": "integer", 3113 "format": "int64" 3114 }, 3115 { 3116 "name": "enumValue", 3117 "description": " - ZERO: ZERO means 0\n - ONE: ONE means 1", 3118 "in": "query", 3119 "required": false, 3120 "type": "string", 3121 "enum": [ 3122 "ZERO", 3123 "ONE" 3124 ], 3125 "default": "ZERO" 3126 }, 3127 { 3128 "name": "pathEnumValue", 3129 "in": "query", 3130 "required": false, 3131 "type": "string", 3132 "enum": [ 3133 "ABC", 3134 "DEF" 3135 ], 3136 "default": "ABC" 3137 }, 3138 { 3139 "name": "nestedPathEnumValue", 3140 "in": "query", 3141 "required": false, 3142 "type": "string", 3143 "enum": [ 3144 "GHI", 3145 "JKL" 3146 ], 3147 "default": "GHI" 3148 }, 3149 { 3150 "name": "sfixed32Value", 3151 "in": "query", 3152 "required": false, 3153 "type": "integer", 3154 "format": "int32" 3155 }, 3156 { 3157 "name": "sfixed64Value", 3158 "in": "query", 3159 "required": false, 3160 "type": "string", 3161 "format": "int64" 3162 }, 3163 { 3164 "name": "sint32Value", 3165 "in": "query", 3166 "required": false, 3167 "type": "integer", 3168 "format": "int32" 3169 }, 3170 { 3171 "name": "sint64Value", 3172 "in": "query", 3173 "required": false, 3174 "type": "string", 3175 "format": "int64" 3176 }, 3177 { 3178 "name": "repeatedStringValue", 3179 "in": "query", 3180 "required": false, 3181 "type": "array", 3182 "items": { 3183 "type": "string" 3184 }, 3185 "collectionFormat": "multi" 3186 }, 3187 { 3188 "name": "oneofEmpty", 3189 "in": "query", 3190 "required": false, 3191 "type": "object" 3192 }, 3193 { 3194 "name": "oneofString", 3195 "in": "query", 3196 "required": false, 3197 "type": "string" 3198 }, 3199 { 3200 "name": "mapValue", 3201 "description": "This is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18", 3202 "in": "query", 3203 "required": false 3204 }, 3205 { 3206 "name": "mappedStringValue", 3207 "description": "This is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18", 3208 "in": "query", 3209 "required": false, 3210 "type": "string" 3211 }, 3212 { 3213 "name": "mappedNestedValue", 3214 "description": "This is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18", 3215 "in": "query", 3216 "required": false 3217 }, 3218 { 3219 "name": "nonConventionalNameValue", 3220 "in": "query", 3221 "required": false, 3222 "type": "string" 3223 }, 3224 { 3225 "name": "timestampValue", 3226 "in": "query", 3227 "required": false, 3228 "type": "string", 3229 "format": "date-time" 3230 }, 3231 { 3232 "name": "repeatedEnumValue", 3233 "description": "repeated enum value. it is comma-separated in query\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", 3234 "in": "query", 3235 "required": false, 3236 "type": "array", 3237 "items": { 3238 "type": "string", 3239 "enum": [ 3240 "ZERO", 3241 "ONE" 3242 ] 3243 }, 3244 "collectionFormat": "multi" 3245 }, 3246 { 3247 "name": "repeatedEnumAnnotation", 3248 "description": "Repeated numeric enum title\n\nRepeated numeric enum description.\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", 3249 "in": "query", 3250 "required": false, 3251 "type": "array", 3252 "items": { 3253 "type": "string", 3254 "enum": [ 3255 "ZERO", 3256 "ONE" 3257 ] 3258 }, 3259 "collectionFormat": "multi" 3260 }, 3261 { 3262 "name": "enumValueAnnotation", 3263 "description": "Numeric enum title\n\nNumeric enum description.\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", 3264 "in": "query", 3265 "required": false, 3266 "type": "string", 3267 "enum": [ 3268 "ZERO", 3269 "ONE" 3270 ], 3271 "default": "ZERO" 3272 }, 3273 { 3274 "name": "repeatedStringAnnotation", 3275 "description": "Repeated string title\n\nRepeated string description.", 3276 "in": "query", 3277 "required": false, 3278 "type": "array", 3279 "items": { 3280 "type": "string" 3281 }, 3282 "collectionFormat": "multi" 3283 }, 3284 { 3285 "name": "nestedAnnotation.name", 3286 "description": "name is nested field.", 3287 "in": "query", 3288 "required": false, 3289 "type": "string" 3290 }, 3291 { 3292 "name": "nestedAnnotation.amount", 3293 "in": "query", 3294 "required": false, 3295 "type": "integer", 3296 "format": "int64" 3297 }, 3298 { 3299 "name": "nestedAnnotation.ok", 3300 "description": "DeepEnum description.\n\n - FALSE: FALSE is false.\n - TRUE: TRUE is true.", 3301 "in": "query", 3302 "required": false, 3303 "type": "string", 3304 "enum": [ 3305 "FALSE", 3306 "TRUE" 3307 ], 3308 "default": "FALSE" 3309 }, 3310 { 3311 "name": "int64OverrideType", 3312 "in": "query", 3313 "required": false, 3314 "type": "integer", 3315 "format": "int64" 3316 }, 3317 { 3318 "name": "requiredStringViaFieldBehaviorAnnotation", 3319 "description": "mark a field as required in Open API definition", 3320 "in": "query", 3321 "required": true, 3322 "type": "string" 3323 }, 3324 { 3325 "name": "outputOnlyStringViaFieldBehaviorAnnotation", 3326 "description": "mark a field as readonly in Open API definition", 3327 "in": "query", 3328 "required": false, 3329 "type": "string" 3330 }, 3331 { 3332 "name": "optionalStringValue", 3333 "in": "query", 3334 "required": false, 3335 "type": "string" 3336 }, 3337 { 3338 "name": "productId", 3339 "description": "Test openapiv2 generation of repeated fields\n\nOnly digits are allowed.", 3340 "in": "query", 3341 "required": false, 3342 "type": "array", 3343 "items": { 3344 "type": "string", 3345 "maxLength": 19, 3346 "minLength": 1, 3347 "pattern": "^[0-9]+$" 3348 }, 3349 "collectionFormat": "multi" 3350 }, 3351 { 3352 "name": "optionalStringField", 3353 "description": "Test openapiv2 generation of required fields with annotation and jsonschema to reproduce", 3354 "in": "query", 3355 "required": false, 3356 "type": "string" 3357 }, 3358 { 3359 "name": "requiredStringField1", 3360 "in": "query", 3361 "required": true, 3362 "type": "string" 3363 }, 3364 { 3365 "name": "requiredStringField2", 3366 "in": "query", 3367 "required": true, 3368 "type": "string" 3369 }, 3370 { 3371 "name": "required_field_behavior_json_name_custom", 3372 "description": "Test openapiv2 handling of required json_name fields", 3373 "in": "query", 3374 "required": true, 3375 "type": "string" 3376 }, 3377 { 3378 "name": "required_field_schema_json_name_custom", 3379 "in": "query", 3380 "required": true, 3381 "type": "string" 3382 }, 3383 { 3384 "name": "trailingOnly", 3385 "description": "Trailing only", 3386 "in": "query", 3387 "required": false, 3388 "type": "string" 3389 }, 3390 { 3391 "name": "trailingOnlyDot", 3392 "description": "Trailing only dot.", 3393 "in": "query", 3394 "required": false, 3395 "type": "string" 3396 }, 3397 { 3398 "name": "trailingBoth", 3399 "description": "Leading both\n\nTrailing both.", 3400 "in": "query", 3401 "required": false, 3402 "type": "string" 3403 }, 3404 { 3405 "name": "trailingMultiline", 3406 "description": "Leading multiline\n\nThis is an example of a multi-line comment.\n\nTrailing multiline.", 3407 "in": "query", 3408 "required": false, 3409 "type": "string" 3410 }, 3411 { 3412 "name": "uuids", 3413 "description": "Specify a custom format of repeated field items", 3414 "in": "query", 3415 "required": false, 3416 "type": "array", 3417 "items": { 3418 "type": "string", 3419 "format": "uuid" 3420 }, 3421 "collectionFormat": "multi" 3422 } 3423 ], 3424 "tags": [ 3425 "ABitOfEverythingService" 3426 ] 3427 } 3428 }, 3429 "/v1/example/a_bit_of_everything/{uuidName}:custom": { 3430 "post": { 3431 "operationId": "ABitOfEverythingService_Custom", 3432 "responses": { 3433 "200": { 3434 "description": "A successful response.", 3435 "schema": { 3436 "$ref": "#/definitions/examplepbABitOfEverything" 3437 } 3438 }, 3439 "403": { 3440 "description": "Returned when the user does not have permission to access the resource.", 3441 "schema": {} 3442 }, 3443 "404": { 3444 "description": "Returned when the resource does not exist.", 3445 "schema": { 3446 "type": "string", 3447 "format": "string" 3448 } 3449 }, 3450 "418": { 3451 "description": "I'm a teapot.", 3452 "schema": { 3453 "$ref": "#/definitions/examplepbNumericEnum" 3454 } 3455 }, 3456 "500": { 3457 "description": "Server error", 3458 "schema": { 3459 "$ref": "#/definitions/examplepbErrorResponse" 3460 } 3461 }, 3462 "default": { 3463 "description": "An unexpected error response.", 3464 "schema": { 3465 "$ref": "#/definitions/rpcStatus" 3466 } 3467 } 3468 }, 3469 "parameters": [ 3470 { 3471 "name": "uuidName", 3472 "in": "path", 3473 "required": true, 3474 "type": "string", 3475 "format": "uuid", 3476 "x-internal": true 3477 }, 3478 { 3479 "name": "singleNested.name", 3480 "description": "name is nested field.", 3481 "in": "query", 3482 "required": false, 3483 "type": "string" 3484 }, 3485 { 3486 "name": "singleNested.amount", 3487 "in": "query", 3488 "required": false, 3489 "type": "integer", 3490 "format": "int64" 3491 }, 3492 { 3493 "name": "singleNested.ok", 3494 "description": "DeepEnum description.\n\n - FALSE: FALSE is false.\n - TRUE: TRUE is true.", 3495 "in": "query", 3496 "required": false, 3497 "type": "string", 3498 "enum": [ 3499 "FALSE", 3500 "TRUE" 3501 ], 3502 "default": "FALSE" 3503 }, 3504 { 3505 "name": "floatValue", 3506 "description": "Float value field", 3507 "in": "query", 3508 "required": true, 3509 "type": "number", 3510 "format": "float", 3511 "default": "0.2" 3512 }, 3513 { 3514 "name": "doubleValue", 3515 "in": "query", 3516 "required": true, 3517 "type": "number", 3518 "format": "double" 3519 }, 3520 { 3521 "name": "int64Value", 3522 "in": "query", 3523 "required": true, 3524 "type": "string", 3525 "format": "int64" 3526 }, 3527 { 3528 "name": "uint64Value", 3529 "in": "query", 3530 "required": false, 3531 "type": "string", 3532 "format": "uint64" 3533 }, 3534 { 3535 "name": "int32Value", 3536 "in": "query", 3537 "required": false, 3538 "type": "integer", 3539 "format": "int32" 3540 }, 3541 { 3542 "name": "fixed64Value", 3543 "in": "query", 3544 "required": false, 3545 "type": "string", 3546 "format": "uint64" 3547 }, 3548 { 3549 "name": "fixed32Value", 3550 "in": "query", 3551 "required": false, 3552 "type": "integer", 3553 "format": "int64" 3554 }, 3555 { 3556 "name": "boolValue", 3557 "in": "query", 3558 "required": false, 3559 "type": "boolean" 3560 }, 3561 { 3562 "name": "stringValue", 3563 "in": "query", 3564 "required": false, 3565 "type": "string" 3566 }, 3567 { 3568 "name": "bytesValue", 3569 "in": "query", 3570 "required": false, 3571 "type": "string", 3572 "format": "byte" 3573 }, 3574 { 3575 "name": "uint32Value", 3576 "in": "query", 3577 "required": false, 3578 "type": "integer", 3579 "format": "int64" 3580 }, 3581 { 3582 "name": "enumValue", 3583 "description": " - ZERO: ZERO means 0\n - ONE: ONE means 1", 3584 "in": "query", 3585 "required": false, 3586 "type": "string", 3587 "enum": [ 3588 "ZERO", 3589 "ONE" 3590 ], 3591 "default": "ZERO" 3592 }, 3593 { 3594 "name": "pathEnumValue", 3595 "in": "query", 3596 "required": false, 3597 "type": "string", 3598 "enum": [ 3599 "ABC", 3600 "DEF" 3601 ], 3602 "default": "ABC" 3603 }, 3604 { 3605 "name": "nestedPathEnumValue", 3606 "in": "query", 3607 "required": false, 3608 "type": "string", 3609 "enum": [ 3610 "GHI", 3611 "JKL" 3612 ], 3613 "default": "GHI" 3614 }, 3615 { 3616 "name": "sfixed32Value", 3617 "in": "query", 3618 "required": false, 3619 "type": "integer", 3620 "format": "int32" 3621 }, 3622 { 3623 "name": "sfixed64Value", 3624 "in": "query", 3625 "required": false, 3626 "type": "string", 3627 "format": "int64" 3628 }, 3629 { 3630 "name": "sint32Value", 3631 "in": "query", 3632 "required": false, 3633 "type": "integer", 3634 "format": "int32" 3635 }, 3636 { 3637 "name": "sint64Value", 3638 "in": "query", 3639 "required": false, 3640 "type": "string", 3641 "format": "int64" 3642 }, 3643 { 3644 "name": "repeatedStringValue", 3645 "in": "query", 3646 "required": false, 3647 "type": "array", 3648 "items": { 3649 "type": "string" 3650 }, 3651 "collectionFormat": "multi" 3652 }, 3653 { 3654 "name": "oneofEmpty", 3655 "in": "query", 3656 "required": false, 3657 "type": "object" 3658 }, 3659 { 3660 "name": "oneofString", 3661 "in": "query", 3662 "required": false, 3663 "type": "string" 3664 }, 3665 { 3666 "name": "mapValue", 3667 "description": "This is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18", 3668 "in": "query", 3669 "required": false 3670 }, 3671 { 3672 "name": "mappedStringValue", 3673 "description": "This is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18", 3674 "in": "query", 3675 "required": false, 3676 "type": "string" 3677 }, 3678 { 3679 "name": "mappedNestedValue", 3680 "description": "This is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18", 3681 "in": "query", 3682 "required": false 3683 }, 3684 { 3685 "name": "nonConventionalNameValue", 3686 "in": "query", 3687 "required": false, 3688 "type": "string" 3689 }, 3690 { 3691 "name": "timestampValue", 3692 "in": "query", 3693 "required": false, 3694 "type": "string", 3695 "format": "date-time" 3696 }, 3697 { 3698 "name": "repeatedEnumValue", 3699 "description": "repeated enum value. it is comma-separated in query\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", 3700 "in": "query", 3701 "required": false, 3702 "type": "array", 3703 "items": { 3704 "type": "string", 3705 "enum": [ 3706 "ZERO", 3707 "ONE" 3708 ] 3709 }, 3710 "collectionFormat": "multi" 3711 }, 3712 { 3713 "name": "repeatedEnumAnnotation", 3714 "description": "Repeated numeric enum title\n\nRepeated numeric enum description.\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", 3715 "in": "query", 3716 "required": false, 3717 "type": "array", 3718 "items": { 3719 "type": "string", 3720 "enum": [ 3721 "ZERO", 3722 "ONE" 3723 ] 3724 }, 3725 "collectionFormat": "multi" 3726 }, 3727 { 3728 "name": "enumValueAnnotation", 3729 "description": "Numeric enum title\n\nNumeric enum description.\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", 3730 "in": "query", 3731 "required": false, 3732 "type": "string", 3733 "enum": [ 3734 "ZERO", 3735 "ONE" 3736 ], 3737 "default": "ZERO" 3738 }, 3739 { 3740 "name": "repeatedStringAnnotation", 3741 "description": "Repeated string title\n\nRepeated string description.", 3742 "in": "query", 3743 "required": false, 3744 "type": "array", 3745 "items": { 3746 "type": "string" 3747 }, 3748 "collectionFormat": "multi" 3749 }, 3750 { 3751 "name": "nestedAnnotation.name", 3752 "description": "name is nested field.", 3753 "in": "query", 3754 "required": false, 3755 "type": "string" 3756 }, 3757 { 3758 "name": "nestedAnnotation.amount", 3759 "in": "query", 3760 "required": false, 3761 "type": "integer", 3762 "format": "int64" 3763 }, 3764 { 3765 "name": "nestedAnnotation.ok", 3766 "description": "DeepEnum description.\n\n - FALSE: FALSE is false.\n - TRUE: TRUE is true.", 3767 "in": "query", 3768 "required": false, 3769 "type": "string", 3770 "enum": [ 3771 "FALSE", 3772 "TRUE" 3773 ], 3774 "default": "FALSE" 3775 }, 3776 { 3777 "name": "int64OverrideType", 3778 "in": "query", 3779 "required": false, 3780 "type": "integer", 3781 "format": "int64" 3782 }, 3783 { 3784 "name": "requiredStringViaFieldBehaviorAnnotation", 3785 "description": "mark a field as required in Open API definition", 3786 "in": "query", 3787 "required": true, 3788 "type": "string" 3789 }, 3790 { 3791 "name": "outputOnlyStringViaFieldBehaviorAnnotation", 3792 "description": "mark a field as readonly in Open API definition", 3793 "in": "query", 3794 "required": false, 3795 "type": "string" 3796 }, 3797 { 3798 "name": "optionalStringValue", 3799 "in": "query", 3800 "required": false, 3801 "type": "string" 3802 }, 3803 { 3804 "name": "productId", 3805 "description": "Test openapiv2 generation of repeated fields\n\nOnly digits are allowed.", 3806 "in": "query", 3807 "required": false, 3808 "type": "array", 3809 "items": { 3810 "type": "string", 3811 "maxLength": 19, 3812 "minLength": 1, 3813 "pattern": "^[0-9]+$" 3814 }, 3815 "collectionFormat": "multi" 3816 }, 3817 { 3818 "name": "optionalStringField", 3819 "description": "Test openapiv2 generation of required fields with annotation and jsonschema to reproduce", 3820 "in": "query", 3821 "required": false, 3822 "type": "string" 3823 }, 3824 { 3825 "name": "requiredStringField1", 3826 "in": "query", 3827 "required": true, 3828 "type": "string" 3829 }, 3830 { 3831 "name": "requiredStringField2", 3832 "in": "query", 3833 "required": true, 3834 "type": "string" 3835 }, 3836 { 3837 "name": "required_field_behavior_json_name_custom", 3838 "description": "Test openapiv2 handling of required json_name fields", 3839 "in": "query", 3840 "required": true, 3841 "type": "string" 3842 }, 3843 { 3844 "name": "required_field_schema_json_name_custom", 3845 "in": "query", 3846 "required": true, 3847 "type": "string" 3848 }, 3849 { 3850 "name": "trailingOnly", 3851 "description": "Trailing only", 3852 "in": "query", 3853 "required": false, 3854 "type": "string" 3855 }, 3856 { 3857 "name": "trailingOnlyDot", 3858 "description": "Trailing only dot.", 3859 "in": "query", 3860 "required": false, 3861 "type": "string" 3862 }, 3863 { 3864 "name": "trailingBoth", 3865 "description": "Leading both\n\nTrailing both.", 3866 "in": "query", 3867 "required": false, 3868 "type": "string" 3869 }, 3870 { 3871 "name": "trailingMultiline", 3872 "description": "Leading multiline\n\nThis is an example of a multi-line comment.\n\nTrailing multiline.", 3873 "in": "query", 3874 "required": false, 3875 "type": "string" 3876 }, 3877 { 3878 "name": "uuids", 3879 "description": "Specify a custom format of repeated field items", 3880 "in": "query", 3881 "required": false, 3882 "type": "array", 3883 "items": { 3884 "type": "string", 3885 "format": "uuid" 3886 }, 3887 "collectionFormat": "multi" 3888 } 3889 ], 3890 "tags": [ 3891 "ABitOfEverythingService" 3892 ] 3893 } 3894 }, 3895 "/v1/example/a_bit_of_everything/{uuidName}:custom:custom": { 3896 "post": { 3897 "operationId": "ABitOfEverythingService_DoubleColon", 3898 "responses": { 3899 "200": { 3900 "description": "A successful response.", 3901 "schema": { 3902 "$ref": "#/definitions/examplepbABitOfEverything" 3903 } 3904 }, 3905 "403": { 3906 "description": "Returned when the user does not have permission to access the resource.", 3907 "schema": {} 3908 }, 3909 "404": { 3910 "description": "Returned when the resource does not exist.", 3911 "schema": { 3912 "type": "string", 3913 "format": "string" 3914 } 3915 }, 3916 "418": { 3917 "description": "I'm a teapot.", 3918 "schema": { 3919 "$ref": "#/definitions/examplepbNumericEnum" 3920 } 3921 }, 3922 "500": { 3923 "description": "Server error", 3924 "schema": { 3925 "$ref": "#/definitions/examplepbErrorResponse" 3926 } 3927 }, 3928 "default": { 3929 "description": "An unexpected error response.", 3930 "schema": { 3931 "$ref": "#/definitions/rpcStatus" 3932 } 3933 } 3934 }, 3935 "parameters": [ 3936 { 3937 "name": "uuidName", 3938 "in": "path", 3939 "required": true, 3940 "type": "string", 3941 "format": "uuid", 3942 "x-internal": true 3943 }, 3944 { 3945 "name": "singleNested.name", 3946 "description": "name is nested field.", 3947 "in": "query", 3948 "required": false, 3949 "type": "string" 3950 }, 3951 { 3952 "name": "singleNested.amount", 3953 "in": "query", 3954 "required": false, 3955 "type": "integer", 3956 "format": "int64" 3957 }, 3958 { 3959 "name": "singleNested.ok", 3960 "description": "DeepEnum description.\n\n - FALSE: FALSE is false.\n - TRUE: TRUE is true.", 3961 "in": "query", 3962 "required": false, 3963 "type": "string", 3964 "enum": [ 3965 "FALSE", 3966 "TRUE" 3967 ], 3968 "default": "FALSE" 3969 }, 3970 { 3971 "name": "floatValue", 3972 "description": "Float value field", 3973 "in": "query", 3974 "required": true, 3975 "type": "number", 3976 "format": "float", 3977 "default": "0.2" 3978 }, 3979 { 3980 "name": "doubleValue", 3981 "in": "query", 3982 "required": true, 3983 "type": "number", 3984 "format": "double" 3985 }, 3986 { 3987 "name": "int64Value", 3988 "in": "query", 3989 "required": true, 3990 "type": "string", 3991 "format": "int64" 3992 }, 3993 { 3994 "name": "uint64Value", 3995 "in": "query", 3996 "required": false, 3997 "type": "string", 3998 "format": "uint64" 3999 }, 4000 { 4001 "name": "int32Value", 4002 "in": "query", 4003 "required": false, 4004 "type": "integer", 4005 "format": "int32" 4006 }, 4007 { 4008 "name": "fixed64Value", 4009 "in": "query", 4010 "required": false, 4011 "type": "string", 4012 "format": "uint64" 4013 }, 4014 { 4015 "name": "fixed32Value", 4016 "in": "query", 4017 "required": false, 4018 "type": "integer", 4019 "format": "int64" 4020 }, 4021 { 4022 "name": "boolValue", 4023 "in": "query", 4024 "required": false, 4025 "type": "boolean" 4026 }, 4027 { 4028 "name": "stringValue", 4029 "in": "query", 4030 "required": false, 4031 "type": "string" 4032 }, 4033 { 4034 "name": "bytesValue", 4035 "in": "query", 4036 "required": false, 4037 "type": "string", 4038 "format": "byte" 4039 }, 4040 { 4041 "name": "uint32Value", 4042 "in": "query", 4043 "required": false, 4044 "type": "integer", 4045 "format": "int64" 4046 }, 4047 { 4048 "name": "enumValue", 4049 "description": " - ZERO: ZERO means 0\n - ONE: ONE means 1", 4050 "in": "query", 4051 "required": false, 4052 "type": "string", 4053 "enum": [ 4054 "ZERO", 4055 "ONE" 4056 ], 4057 "default": "ZERO" 4058 }, 4059 { 4060 "name": "pathEnumValue", 4061 "in": "query", 4062 "required": false, 4063 "type": "string", 4064 "enum": [ 4065 "ABC", 4066 "DEF" 4067 ], 4068 "default": "ABC" 4069 }, 4070 { 4071 "name": "nestedPathEnumValue", 4072 "in": "query", 4073 "required": false, 4074 "type": "string", 4075 "enum": [ 4076 "GHI", 4077 "JKL" 4078 ], 4079 "default": "GHI" 4080 }, 4081 { 4082 "name": "sfixed32Value", 4083 "in": "query", 4084 "required": false, 4085 "type": "integer", 4086 "format": "int32" 4087 }, 4088 { 4089 "name": "sfixed64Value", 4090 "in": "query", 4091 "required": false, 4092 "type": "string", 4093 "format": "int64" 4094 }, 4095 { 4096 "name": "sint32Value", 4097 "in": "query", 4098 "required": false, 4099 "type": "integer", 4100 "format": "int32" 4101 }, 4102 { 4103 "name": "sint64Value", 4104 "in": "query", 4105 "required": false, 4106 "type": "string", 4107 "format": "int64" 4108 }, 4109 { 4110 "name": "repeatedStringValue", 4111 "in": "query", 4112 "required": false, 4113 "type": "array", 4114 "items": { 4115 "type": "string" 4116 }, 4117 "collectionFormat": "multi" 4118 }, 4119 { 4120 "name": "oneofEmpty", 4121 "in": "query", 4122 "required": false, 4123 "type": "object" 4124 }, 4125 { 4126 "name": "oneofString", 4127 "in": "query", 4128 "required": false, 4129 "type": "string" 4130 }, 4131 { 4132 "name": "mapValue", 4133 "description": "This is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18", 4134 "in": "query", 4135 "required": false 4136 }, 4137 { 4138 "name": "mappedStringValue", 4139 "description": "This is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18", 4140 "in": "query", 4141 "required": false, 4142 "type": "string" 4143 }, 4144 { 4145 "name": "mappedNestedValue", 4146 "description": "This is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18", 4147 "in": "query", 4148 "required": false 4149 }, 4150 { 4151 "name": "nonConventionalNameValue", 4152 "in": "query", 4153 "required": false, 4154 "type": "string" 4155 }, 4156 { 4157 "name": "timestampValue", 4158 "in": "query", 4159 "required": false, 4160 "type": "string", 4161 "format": "date-time" 4162 }, 4163 { 4164 "name": "repeatedEnumValue", 4165 "description": "repeated enum value. it is comma-separated in query\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", 4166 "in": "query", 4167 "required": false, 4168 "type": "array", 4169 "items": { 4170 "type": "string", 4171 "enum": [ 4172 "ZERO", 4173 "ONE" 4174 ] 4175 }, 4176 "collectionFormat": "multi" 4177 }, 4178 { 4179 "name": "repeatedEnumAnnotation", 4180 "description": "Repeated numeric enum title\n\nRepeated numeric enum description.\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", 4181 "in": "query", 4182 "required": false, 4183 "type": "array", 4184 "items": { 4185 "type": "string", 4186 "enum": [ 4187 "ZERO", 4188 "ONE" 4189 ] 4190 }, 4191 "collectionFormat": "multi" 4192 }, 4193 { 4194 "name": "enumValueAnnotation", 4195 "description": "Numeric enum title\n\nNumeric enum description.\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", 4196 "in": "query", 4197 "required": false, 4198 "type": "string", 4199 "enum": [ 4200 "ZERO", 4201 "ONE" 4202 ], 4203 "default": "ZERO" 4204 }, 4205 { 4206 "name": "repeatedStringAnnotation", 4207 "description": "Repeated string title\n\nRepeated string description.", 4208 "in": "query", 4209 "required": false, 4210 "type": "array", 4211 "items": { 4212 "type": "string" 4213 }, 4214 "collectionFormat": "multi" 4215 }, 4216 { 4217 "name": "nestedAnnotation.name", 4218 "description": "name is nested field.", 4219 "in": "query", 4220 "required": false, 4221 "type": "string" 4222 }, 4223 { 4224 "name": "nestedAnnotation.amount", 4225 "in": "query", 4226 "required": false, 4227 "type": "integer", 4228 "format": "int64" 4229 }, 4230 { 4231 "name": "nestedAnnotation.ok", 4232 "description": "DeepEnum description.\n\n - FALSE: FALSE is false.\n - TRUE: TRUE is true.", 4233 "in": "query", 4234 "required": false, 4235 "type": "string", 4236 "enum": [ 4237 "FALSE", 4238 "TRUE" 4239 ], 4240 "default": "FALSE" 4241 }, 4242 { 4243 "name": "int64OverrideType", 4244 "in": "query", 4245 "required": false, 4246 "type": "integer", 4247 "format": "int64" 4248 }, 4249 { 4250 "name": "requiredStringViaFieldBehaviorAnnotation", 4251 "description": "mark a field as required in Open API definition", 4252 "in": "query", 4253 "required": true, 4254 "type": "string" 4255 }, 4256 { 4257 "name": "outputOnlyStringViaFieldBehaviorAnnotation", 4258 "description": "mark a field as readonly in Open API definition", 4259 "in": "query", 4260 "required": false, 4261 "type": "string" 4262 }, 4263 { 4264 "name": "optionalStringValue", 4265 "in": "query", 4266 "required": false, 4267 "type": "string" 4268 }, 4269 { 4270 "name": "productId", 4271 "description": "Test openapiv2 generation of repeated fields\n\nOnly digits are allowed.", 4272 "in": "query", 4273 "required": false, 4274 "type": "array", 4275 "items": { 4276 "type": "string", 4277 "maxLength": 19, 4278 "minLength": 1, 4279 "pattern": "^[0-9]+$" 4280 }, 4281 "collectionFormat": "multi" 4282 }, 4283 { 4284 "name": "optionalStringField", 4285 "description": "Test openapiv2 generation of required fields with annotation and jsonschema to reproduce", 4286 "in": "query", 4287 "required": false, 4288 "type": "string" 4289 }, 4290 { 4291 "name": "requiredStringField1", 4292 "in": "query", 4293 "required": true, 4294 "type": "string" 4295 }, 4296 { 4297 "name": "requiredStringField2", 4298 "in": "query", 4299 "required": true, 4300 "type": "string" 4301 }, 4302 { 4303 "name": "required_field_behavior_json_name_custom", 4304 "description": "Test openapiv2 handling of required json_name fields", 4305 "in": "query", 4306 "required": true, 4307 "type": "string" 4308 }, 4309 { 4310 "name": "required_field_schema_json_name_custom", 4311 "in": "query", 4312 "required": true, 4313 "type": "string" 4314 }, 4315 { 4316 "name": "trailingOnly", 4317 "description": "Trailing only", 4318 "in": "query", 4319 "required": false, 4320 "type": "string" 4321 }, 4322 { 4323 "name": "trailingOnlyDot", 4324 "description": "Trailing only dot.", 4325 "in": "query", 4326 "required": false, 4327 "type": "string" 4328 }, 4329 { 4330 "name": "trailingBoth", 4331 "description": "Leading both\n\nTrailing both.", 4332 "in": "query", 4333 "required": false, 4334 "type": "string" 4335 }, 4336 { 4337 "name": "trailingMultiline", 4338 "description": "Leading multiline\n\nThis is an example of a multi-line comment.\n\nTrailing multiline.", 4339 "in": "query", 4340 "required": false, 4341 "type": "string" 4342 }, 4343 { 4344 "name": "uuids", 4345 "description": "Specify a custom format of repeated field items", 4346 "in": "query", 4347 "required": false, 4348 "type": "array", 4349 "items": { 4350 "type": "string", 4351 "format": "uuid" 4352 }, 4353 "collectionFormat": "multi" 4354 } 4355 ], 4356 "tags": [ 4357 "ABitOfEverythingService" 4358 ] 4359 } 4360 }, 4361 "/v1/example/a_bit_of_everything/{uuid}": { 4362 "get": { 4363 "operationId": "ABitOfEverythingService_Lookup", 4364 "responses": { 4365 "200": { 4366 "description": "A successful response.", 4367 "schema": { 4368 "$ref": "#/definitions/examplepbABitOfEverything" 4369 } 4370 }, 4371 "403": { 4372 "description": "Returned when the user does not have permission to access the resource.", 4373 "schema": {} 4374 }, 4375 "404": { 4376 "description": "Returned when the resource does not exist.", 4377 "schema": { 4378 "type": "string", 4379 "format": "string" 4380 } 4381 }, 4382 "418": { 4383 "description": "I'm a teapot.", 4384 "schema": { 4385 "$ref": "#/definitions/examplepbNumericEnum" 4386 } 4387 }, 4388 "500": { 4389 "description": "Server error", 4390 "schema": { 4391 "$ref": "#/definitions/examplepbErrorResponse" 4392 } 4393 }, 4394 "default": { 4395 "description": "An unexpected error response.", 4396 "schema": { 4397 "$ref": "#/definitions/rpcStatus" 4398 } 4399 } 4400 }, 4401 "parameters": [ 4402 { 4403 "name": "uuid", 4404 "in": "path", 4405 "required": true, 4406 "type": "string" 4407 } 4408 ], 4409 "tags": [ 4410 "ABitOfEverythingService" 4411 ] 4412 }, 4413 "delete": { 4414 "operationId": "ABitOfEverythingService_Delete", 4415 "responses": { 4416 "200": { 4417 "description": "A successful response.", 4418 "schema": { 4419 "type": "object", 4420 "properties": {} 4421 } 4422 }, 4423 "403": { 4424 "description": "Returned when the user does not have permission to access the resource.", 4425 "schema": {} 4426 }, 4427 "404": { 4428 "description": "Returned when the resource does not exist.", 4429 "schema": { 4430 "type": "string", 4431 "format": "string" 4432 } 4433 }, 4434 "418": { 4435 "description": "I'm a teapot.", 4436 "schema": { 4437 "$ref": "#/definitions/examplepbNumericEnum" 4438 } 4439 }, 4440 "500": { 4441 "description": "Server error", 4442 "schema": { 4443 "$ref": "#/definitions/examplepbErrorResponse" 4444 } 4445 }, 4446 "default": { 4447 "description": "An unexpected error response.", 4448 "schema": { 4449 "$ref": "#/definitions/rpcStatus" 4450 } 4451 } 4452 }, 4453 "parameters": [ 4454 { 4455 "name": "uuid", 4456 "in": "path", 4457 "required": true, 4458 "type": "string" 4459 } 4460 ], 4461 "tags": [ 4462 "ABitOfEverything" 4463 ], 4464 "security": [ 4465 { 4466 "ApiKeyAuth": [], 4467 "OAuth2": [ 4468 "read", 4469 "write" 4470 ] 4471 } 4472 ], 4473 "x-irreversible": true 4474 } 4475 }, 4476 "/v1/example/a_bit_of_everything_repeated/{pathRepeatedFloatValue}/{pathRepeatedDoubleValue}/{pathRepeatedInt64Value}/{pathRepeatedUint64Value}/{pathRepeatedInt32Value}/{pathRepeatedFixed64Value}/{pathRepeatedFixed32Value}/{pathRepeatedBoolValue}/{pathRepeatedStringValue}/{pathRepeatedBytesValue}/{pathRepeatedUint32Value}/{pathRepeatedEnumValue}/{pathRepeatedSfixed32Value}/{pathRepeatedSfixed64Value}/{pathRepeatedSint32Value}/{pathRepeatedSint64Value}": { 4477 "get": { 4478 "operationId": "ABitOfEverythingService_GetRepeatedQuery", 4479 "responses": { 4480 "200": { 4481 "description": "A successful response.", 4482 "schema": { 4483 "$ref": "#/definitions/examplepbABitOfEverythingRepeated" 4484 } 4485 }, 4486 "403": { 4487 "description": "Returned when the user does not have permission to access the resource.", 4488 "schema": {} 4489 }, 4490 "404": { 4491 "description": "Returned when the resource does not exist.", 4492 "schema": { 4493 "type": "string", 4494 "format": "string" 4495 } 4496 }, 4497 "418": { 4498 "description": "I'm a teapot.", 4499 "schema": { 4500 "$ref": "#/definitions/examplepbNumericEnum" 4501 } 4502 }, 4503 "500": { 4504 "description": "Server error", 4505 "schema": { 4506 "$ref": "#/definitions/examplepbErrorResponse" 4507 } 4508 }, 4509 "default": { 4510 "description": "An unexpected error response.", 4511 "schema": { 4512 "$ref": "#/definitions/rpcStatus" 4513 } 4514 } 4515 }, 4516 "parameters": [ 4517 { 4518 "name": "pathRepeatedFloatValue", 4519 "description": "repeated values. they are comma-separated in path", 4520 "in": "path", 4521 "required": true, 4522 "type": "array", 4523 "items": { 4524 "type": "number", 4525 "format": "float" 4526 }, 4527 "collectionFormat": "csv", 4528 "minItems": 1 4529 }, 4530 { 4531 "name": "pathRepeatedDoubleValue", 4532 "in": "path", 4533 "required": true, 4534 "type": "array", 4535 "items": { 4536 "type": "number", 4537 "format": "double" 4538 }, 4539 "collectionFormat": "csv", 4540 "minItems": 1 4541 }, 4542 { 4543 "name": "pathRepeatedInt64Value", 4544 "in": "path", 4545 "required": true, 4546 "type": "array", 4547 "items": { 4548 "type": "string", 4549 "format": "int64" 4550 }, 4551 "collectionFormat": "csv", 4552 "minItems": 1 4553 }, 4554 { 4555 "name": "pathRepeatedUint64Value", 4556 "in": "path", 4557 "required": true, 4558 "type": "array", 4559 "items": { 4560 "type": "string", 4561 "format": "uint64" 4562 }, 4563 "collectionFormat": "csv", 4564 "minItems": 1 4565 }, 4566 { 4567 "name": "pathRepeatedInt32Value", 4568 "in": "path", 4569 "required": true, 4570 "type": "array", 4571 "items": { 4572 "type": "integer", 4573 "format": "int32" 4574 }, 4575 "collectionFormat": "csv", 4576 "minItems": 1 4577 }, 4578 { 4579 "name": "pathRepeatedFixed64Value", 4580 "in": "path", 4581 "required": true, 4582 "type": "array", 4583 "items": { 4584 "type": "string", 4585 "format": "uint64" 4586 }, 4587 "collectionFormat": "csv", 4588 "minItems": 1 4589 }, 4590 { 4591 "name": "pathRepeatedFixed32Value", 4592 "in": "path", 4593 "required": true, 4594 "type": "array", 4595 "items": { 4596 "type": "integer", 4597 "format": "int64" 4598 }, 4599 "collectionFormat": "csv", 4600 "minItems": 1 4601 }, 4602 { 4603 "name": "pathRepeatedBoolValue", 4604 "in": "path", 4605 "required": true, 4606 "type": "array", 4607 "items": { 4608 "type": "boolean" 4609 }, 4610 "collectionFormat": "csv", 4611 "minItems": 1 4612 }, 4613 { 4614 "name": "pathRepeatedStringValue", 4615 "in": "path", 4616 "required": true, 4617 "type": "array", 4618 "items": { 4619 "type": "string" 4620 }, 4621 "collectionFormat": "csv", 4622 "minItems": 1 4623 }, 4624 { 4625 "name": "pathRepeatedBytesValue", 4626 "in": "path", 4627 "required": true, 4628 "type": "array", 4629 "items": { 4630 "type": "string", 4631 "format": "byte" 4632 }, 4633 "collectionFormat": "csv", 4634 "minItems": 1 4635 }, 4636 { 4637 "name": "pathRepeatedUint32Value", 4638 "in": "path", 4639 "required": true, 4640 "type": "array", 4641 "items": { 4642 "type": "integer", 4643 "format": "int64" 4644 }, 4645 "collectionFormat": "csv", 4646 "minItems": 1 4647 }, 4648 { 4649 "name": "pathRepeatedEnumValue", 4650 "in": "path", 4651 "required": true, 4652 "type": "array", 4653 "items": { 4654 "type": "string", 4655 "enum": [ 4656 "ZERO", 4657 "ONE" 4658 ] 4659 }, 4660 "collectionFormat": "csv", 4661 "minItems": 1 4662 }, 4663 { 4664 "name": "pathRepeatedSfixed32Value", 4665 "in": "path", 4666 "required": true, 4667 "type": "array", 4668 "items": { 4669 "type": "integer", 4670 "format": "int32" 4671 }, 4672 "collectionFormat": "csv", 4673 "minItems": 1 4674 }, 4675 { 4676 "name": "pathRepeatedSfixed64Value", 4677 "in": "path", 4678 "required": true, 4679 "type": "array", 4680 "items": { 4681 "type": "string", 4682 "format": "int64" 4683 }, 4684 "collectionFormat": "csv", 4685 "minItems": 1 4686 }, 4687 { 4688 "name": "pathRepeatedSint32Value", 4689 "in": "path", 4690 "required": true, 4691 "type": "array", 4692 "items": { 4693 "type": "integer", 4694 "format": "int32" 4695 }, 4696 "collectionFormat": "csv", 4697 "minItems": 1 4698 }, 4699 { 4700 "name": "pathRepeatedSint64Value", 4701 "in": "path", 4702 "required": true, 4703 "type": "array", 4704 "items": { 4705 "type": "string", 4706 "format": "int64" 4707 }, 4708 "collectionFormat": "csv", 4709 "minItems": 1 4710 } 4711 ], 4712 "tags": [ 4713 "ABitOfEverythingService" 4714 ] 4715 } 4716 }, 4717 "/v1/example/checkStatus": { 4718 "get": { 4719 "operationId": "ABitOfEverythingService_CheckStatus", 4720 "responses": { 4721 "200": { 4722 "description": "A successful response.", 4723 "schema": { 4724 "$ref": "#/definitions/examplepbCheckStatusResponse" 4725 } 4726 }, 4727 "403": { 4728 "description": "Returned when the user does not have permission to access the resource.", 4729 "schema": {} 4730 }, 4731 "404": { 4732 "description": "Returned when the resource does not exist.", 4733 "schema": { 4734 "type": "string", 4735 "format": "string" 4736 } 4737 }, 4738 "418": { 4739 "description": "I'm a teapot.", 4740 "schema": { 4741 "$ref": "#/definitions/examplepbNumericEnum" 4742 } 4743 }, 4744 "500": { 4745 "description": "Server error", 4746 "schema": { 4747 "$ref": "#/definitions/examplepbErrorResponse" 4748 } 4749 }, 4750 "default": { 4751 "description": "An unexpected error response.", 4752 "schema": { 4753 "$ref": "#/definitions/rpcStatus" 4754 } 4755 } 4756 }, 4757 "tags": [ 4758 "ABitOfEverythingService" 4759 ] 4760 } 4761 }, 4762 "/v1/example/deep_path/{singleNested.name}": { 4763 "post": { 4764 "operationId": "ABitOfEverythingService_DeepPathEcho", 4765 "responses": { 4766 "200": { 4767 "description": "A successful response.", 4768 "schema": { 4769 "$ref": "#/definitions/examplepbABitOfEverything" 4770 } 4771 }, 4772 "403": { 4773 "description": "Returned when the user does not have permission to access the resource.", 4774 "schema": {} 4775 }, 4776 "404": { 4777 "description": "Returned when the resource does not exist.", 4778 "schema": { 4779 "type": "string", 4780 "format": "string" 4781 } 4782 }, 4783 "418": { 4784 "description": "I'm a teapot.", 4785 "schema": { 4786 "$ref": "#/definitions/examplepbNumericEnum" 4787 } 4788 }, 4789 "500": { 4790 "description": "Server error", 4791 "schema": { 4792 "$ref": "#/definitions/examplepbErrorResponse" 4793 } 4794 }, 4795 "default": { 4796 "description": "An unexpected error response.", 4797 "schema": { 4798 "$ref": "#/definitions/rpcStatus" 4799 } 4800 } 4801 }, 4802 "parameters": [ 4803 { 4804 "name": "singleNested.name", 4805 "description": "name is nested field.", 4806 "in": "path", 4807 "required": true, 4808 "type": "string" 4809 }, 4810 { 4811 "name": "body", 4812 "in": "body", 4813 "required": true, 4814 "schema": { 4815 "$ref": "#/definitions/ABitOfEverythingServiceDeepPathEchoBody" 4816 } 4817 } 4818 ], 4819 "tags": [ 4820 "ABitOfEverythingService" 4821 ] 4822 } 4823 }, 4824 "/v1/example/oneofenum": { 4825 "post": { 4826 "operationId": "ABitOfEverythingService_PostOneofEnum", 4827 "responses": { 4828 "200": { 4829 "description": "A successful response.", 4830 "schema": { 4831 "type": "object", 4832 "properties": {} 4833 } 4834 }, 4835 "403": { 4836 "description": "Returned when the user does not have permission to access the resource.", 4837 "schema": {} 4838 }, 4839 "404": { 4840 "description": "Returned when the resource does not exist.", 4841 "schema": { 4842 "type": "string", 4843 "format": "string" 4844 } 4845 }, 4846 "418": { 4847 "description": "I'm a teapot.", 4848 "schema": { 4849 "$ref": "#/definitions/examplepbNumericEnum" 4850 } 4851 }, 4852 "500": { 4853 "description": "Server error", 4854 "schema": { 4855 "$ref": "#/definitions/examplepbErrorResponse" 4856 } 4857 }, 4858 "default": { 4859 "description": "An unexpected error response.", 4860 "schema": { 4861 "$ref": "#/definitions/rpcStatus" 4862 } 4863 } 4864 }, 4865 "parameters": [ 4866 { 4867 "name": "exampleEnum", 4868 "in": "body", 4869 "required": true, 4870 "schema": { 4871 "$ref": "#/definitions/oneofenumExampleEnum" 4872 } 4873 } 4874 ], 4875 "tags": [ 4876 "ABitOfEverythingService" 4877 ] 4878 } 4879 }, 4880 "/v1/example/requiredmessagetype": { 4881 "post": { 4882 "operationId": "ABitOfEverythingService_PostRequiredMessageType", 4883 "responses": { 4884 "200": { 4885 "description": "A successful response.", 4886 "schema": { 4887 "type": "object", 4888 "properties": {} 4889 } 4890 }, 4891 "403": { 4892 "description": "Returned when the user does not have permission to access the resource.", 4893 "schema": {} 4894 }, 4895 "404": { 4896 "description": "Returned when the resource does not exist.", 4897 "schema": { 4898 "type": "string", 4899 "format": "string" 4900 } 4901 }, 4902 "418": { 4903 "description": "I'm a teapot.", 4904 "schema": { 4905 "$ref": "#/definitions/examplepbNumericEnum" 4906 } 4907 }, 4908 "500": { 4909 "description": "Server error", 4910 "schema": { 4911 "$ref": "#/definitions/examplepbErrorResponse" 4912 } 4913 }, 4914 "default": { 4915 "description": "An unexpected error response.", 4916 "schema": { 4917 "$ref": "#/definitions/rpcStatus" 4918 } 4919 } 4920 }, 4921 "parameters": [ 4922 { 4923 "name": "body", 4924 "in": "body", 4925 "required": true, 4926 "schema": { 4927 "$ref": "#/definitions/examplepbRequiredMessageTypeRequest" 4928 } 4929 } 4930 ], 4931 "tags": [ 4932 "ABitOfEverythingService" 4933 ] 4934 } 4935 }, 4936 "/v1/example/snake/{who}/{what}/{where}": { 4937 "get": { 4938 "operationId": "SnakeEnumService_SnakeEnum", 4939 "responses": { 4940 "200": { 4941 "description": "A successful response.", 4942 "schema": { 4943 "$ref": "#/definitions/examplepbSnakeEnumResponse" 4944 } 4945 }, 4946 "403": { 4947 "description": "Returned when the user does not have permission to access the resource.", 4948 "schema": {} 4949 }, 4950 "404": { 4951 "description": "Returned when the resource does not exist.", 4952 "schema": { 4953 "type": "string", 4954 "format": "string" 4955 } 4956 }, 4957 "418": { 4958 "description": "I'm a teapot.", 4959 "schema": { 4960 "$ref": "#/definitions/examplepbNumericEnum" 4961 } 4962 }, 4963 "500": { 4964 "description": "Server error", 4965 "schema": { 4966 "$ref": "#/definitions/examplepbErrorResponse" 4967 } 4968 }, 4969 "default": { 4970 "description": "An unexpected error response.", 4971 "schema": { 4972 "$ref": "#/definitions/rpcStatus" 4973 } 4974 } 4975 }, 4976 "parameters": [ 4977 { 4978 "name": "who", 4979 "in": "path", 4980 "required": true, 4981 "type": "string", 4982 "enum": [ 4983 "value_e", 4984 "value_f" 4985 ] 4986 }, 4987 { 4988 "name": "what", 4989 "in": "path", 4990 "required": true, 4991 "type": "string", 4992 "enum": [ 4993 "value_c", 4994 "value_d" 4995 ] 4996 }, 4997 { 4998 "name": "where", 4999 "in": "path", 5000 "required": true, 5001 "type": "string", 5002 "enum": [ 5003 "value_x", 5004 "value_y" 5005 ] 5006 } 5007 ], 5008 "tags": [ 5009 "SnakeEnumService" 5010 ] 5011 } 5012 }, 5013 "/v1/{book.name}": { 5014 "patch": { 5015 "operationId": "ABitOfEverythingService_UpdateBook", 5016 "responses": { 5017 "200": { 5018 "description": "A successful response.", 5019 "schema": { 5020 "$ref": "#/definitions/examplepbBook" 5021 } 5022 }, 5023 "403": { 5024 "description": "Returned when the user does not have permission to access the resource.", 5025 "schema": {} 5026 }, 5027 "404": { 5028 "description": "Returned when the resource does not exist.", 5029 "schema": { 5030 "type": "string", 5031 "format": "string" 5032 } 5033 }, 5034 "418": { 5035 "description": "I'm a teapot.", 5036 "schema": { 5037 "$ref": "#/definitions/examplepbNumericEnum" 5038 } 5039 }, 5040 "500": { 5041 "description": "Server error", 5042 "schema": { 5043 "$ref": "#/definitions/examplepbErrorResponse" 5044 } 5045 }, 5046 "default": { 5047 "description": "An unexpected error response.", 5048 "schema": { 5049 "$ref": "#/definitions/rpcStatus" 5050 } 5051 } 5052 }, 5053 "parameters": [ 5054 { 5055 "name": "book.name", 5056 "description": "The resource name of the book.\n\nFormat: `publishers/{publisher}/books/{book}`\n\nExample: `publishers/1257894000000000000/books/my-book`", 5057 "in": "path", 5058 "required": true, 5059 "type": "string", 5060 "pattern": "publishers/[^/]+/books/[^/]+" 5061 }, 5062 { 5063 "name": "book", 5064 "description": "The book to update.\n\nThe book's `name` field is used to identify the book to be updated.\nFormat: publishers/{publisher}/books/{book}", 5065 "in": "body", 5066 "required": true, 5067 "schema": { 5068 "type": "object", 5069 "properties": { 5070 "id": { 5071 "type": "string", 5072 "description": "Output only. The book's ID.", 5073 "readOnly": true 5074 }, 5075 "createTime": { 5076 "type": "string", 5077 "format": "date-time", 5078 "description": "Output only. Creation time of the book.", 5079 "readOnly": true 5080 } 5081 }, 5082 "description": "The book's `name` field is used to identify the book to be updated.\nFormat: publishers/{publisher}/books/{book}", 5083 "title": "The book to update." 5084 } 5085 }, 5086 { 5087 "name": "allowMissing", 5088 "description": "If set to true, and the book is not found, a new book will be created.\nIn this situation, `update_mask` is ignored.", 5089 "in": "query", 5090 "required": false, 5091 "type": "boolean" 5092 } 5093 ], 5094 "tags": [ 5095 "ABitOfEverythingService" 5096 ] 5097 } 5098 }, 5099 "/v1/{parent}/books": { 5100 "post": { 5101 "summary": "Create a book.", 5102 "operationId": "ABitOfEverythingService_CreateBook", 5103 "responses": { 5104 "200": { 5105 "description": "A successful response.", 5106 "schema": { 5107 "$ref": "#/definitions/examplepbBook" 5108 } 5109 }, 5110 "403": { 5111 "description": "Returned when the user does not have permission to access the resource.", 5112 "schema": {} 5113 }, 5114 "404": { 5115 "description": "Returned when the resource does not exist.", 5116 "schema": { 5117 "type": "string", 5118 "format": "string" 5119 } 5120 }, 5121 "418": { 5122 "description": "I'm a teapot.", 5123 "schema": { 5124 "$ref": "#/definitions/examplepbNumericEnum" 5125 } 5126 }, 5127 "500": { 5128 "description": "Server error", 5129 "schema": { 5130 "$ref": "#/definitions/examplepbErrorResponse" 5131 } 5132 }, 5133 "default": { 5134 "description": "An unexpected error response.", 5135 "schema": { 5136 "$ref": "#/definitions/rpcStatus" 5137 } 5138 } 5139 }, 5140 "parameters": [ 5141 { 5142 "name": "parent", 5143 "description": "The publisher in which to create the book.\n\nFormat: `publishers/{publisher}`\n\nExample: `publishers/1257894000000000000`", 5144 "in": "path", 5145 "required": true, 5146 "type": "string", 5147 "pattern": "publishers/[^/]+" 5148 }, 5149 { 5150 "name": "book", 5151 "description": "The book to create.", 5152 "in": "body", 5153 "required": true, 5154 "schema": { 5155 "$ref": "#/definitions/examplepbBook" 5156 } 5157 }, 5158 { 5159 "name": "bookId", 5160 "description": "The ID to use for the book.\n\nThis must start with an alphanumeric character.", 5161 "in": "query", 5162 "required": false, 5163 "type": "string" 5164 } 5165 ], 5166 "tags": [ 5167 "ABitOfEverythingService" 5168 ] 5169 } 5170 }, 5171 "/v2/example/a_bit_of_everything/{uuidName}": { 5172 "put": { 5173 "operationId": "ABitOfEverythingService_UpdateV2", 5174 "responses": { 5175 "200": { 5176 "description": "A successful response.", 5177 "schema": { 5178 "type": "object", 5179 "properties": {} 5180 } 5181 }, 5182 "403": { 5183 "description": "Returned when the user does not have permission to access the resource.", 5184 "schema": {} 5185 }, 5186 "404": { 5187 "description": "Returned when the resource does not exist.", 5188 "schema": { 5189 "type": "string", 5190 "format": "string" 5191 } 5192 }, 5193 "418": { 5194 "description": "I'm a teapot.", 5195 "schema": { 5196 "$ref": "#/definitions/examplepbNumericEnum" 5197 } 5198 }, 5199 "500": { 5200 "description": "Server error", 5201 "schema": { 5202 "$ref": "#/definitions/examplepbErrorResponse" 5203 } 5204 }, 5205 "default": { 5206 "description": "An unexpected error response.", 5207 "schema": { 5208 "$ref": "#/definitions/rpcStatus" 5209 } 5210 } 5211 }, 5212 "parameters": [ 5213 { 5214 "name": "uuidName", 5215 "in": "path", 5216 "required": true, 5217 "type": "string", 5218 "format": "uuid", 5219 "x-internal": true 5220 }, 5221 { 5222 "name": "abe", 5223 "description": "A bit of everything\n\nIntentionally complicated message type to cover many features of Protobuf.", 5224 "in": "body", 5225 "required": true, 5226 "schema": { 5227 "type": "object", 5228 "example": { 5229 "int64_value": 12, 5230 "double_value": 12.3 5231 }, 5232 "properties": { 5233 "singleNested": { 5234 "$ref": "#/definitions/ABitOfEverythingNested" 5235 }, 5236 "nested": { 5237 "type": "array", 5238 "items": { 5239 "type": "object", 5240 "$ref": "#/definitions/ABitOfEverythingNested" 5241 } 5242 }, 5243 "floatValue": { 5244 "type": "number", 5245 "format": "float", 5246 "default": "0.2", 5247 "description": "Float value field" 5248 }, 5249 "doubleValue": { 5250 "type": "number", 5251 "format": "double" 5252 }, 5253 "int64Value": { 5254 "type": "string", 5255 "format": "int64" 5256 }, 5257 "uint64Value": { 5258 "type": "string", 5259 "format": "uint64" 5260 }, 5261 "int32Value": { 5262 "type": "integer", 5263 "format": "int32" 5264 }, 5265 "fixed64Value": { 5266 "type": "string", 5267 "format": "uint64" 5268 }, 5269 "fixed32Value": { 5270 "type": "integer", 5271 "format": "int64" 5272 }, 5273 "boolValue": { 5274 "type": "boolean" 5275 }, 5276 "stringValue": { 5277 "type": "string" 5278 }, 5279 "bytesValue": { 5280 "type": "string", 5281 "format": "byte" 5282 }, 5283 "uint32Value": { 5284 "type": "integer", 5285 "format": "int64" 5286 }, 5287 "enumValue": { 5288 "$ref": "#/definitions/examplepbNumericEnum" 5289 }, 5290 "pathEnumValue": { 5291 "$ref": "#/definitions/pathenumPathEnum" 5292 }, 5293 "nestedPathEnumValue": { 5294 "$ref": "#/definitions/MessagePathEnumNestedPathEnum" 5295 }, 5296 "sfixed32Value": { 5297 "type": "integer", 5298 "format": "int32" 5299 }, 5300 "sfixed64Value": { 5301 "type": "string", 5302 "format": "int64" 5303 }, 5304 "sint32Value": { 5305 "type": "integer", 5306 "format": "int32" 5307 }, 5308 "sint64Value": { 5309 "type": "string", 5310 "format": "int64" 5311 }, 5312 "repeatedStringValue": { 5313 "type": "array", 5314 "items": { 5315 "type": "string" 5316 } 5317 }, 5318 "oneofEmpty": { 5319 "type": "object", 5320 "properties": {} 5321 }, 5322 "oneofString": { 5323 "type": "string" 5324 }, 5325 "mapValue": { 5326 "type": "object", 5327 "additionalProperties": { 5328 "$ref": "#/definitions/examplepbNumericEnum" 5329 } 5330 }, 5331 "mappedStringValue": { 5332 "type": "object", 5333 "additionalProperties": { 5334 "type": "string" 5335 } 5336 }, 5337 "mappedNestedValue": { 5338 "type": "object", 5339 "additionalProperties": { 5340 "$ref": "#/definitions/ABitOfEverythingNested" 5341 } 5342 }, 5343 "nonConventionalNameValue": { 5344 "type": "string" 5345 }, 5346 "timestampValue": { 5347 "type": "string", 5348 "format": "date-time" 5349 }, 5350 "repeatedEnumValue": { 5351 "type": "array", 5352 "items": { 5353 "$ref": "#/definitions/examplepbNumericEnum" 5354 }, 5355 "title": "repeated enum value. it is comma-separated in query" 5356 }, 5357 "repeatedEnumAnnotation": { 5358 "type": "array", 5359 "items": { 5360 "$ref": "#/definitions/examplepbNumericEnum" 5361 }, 5362 "description": "Repeated numeric enum description.", 5363 "title": "Repeated numeric enum title" 5364 }, 5365 "enumValueAnnotation": { 5366 "$ref": "#/definitions/examplepbNumericEnum", 5367 "description": "Numeric enum description.", 5368 "title": "Numeric enum title" 5369 }, 5370 "repeatedStringAnnotation": { 5371 "type": "array", 5372 "items": { 5373 "type": "string" 5374 }, 5375 "description": "Repeated string description.", 5376 "title": "Repeated string title" 5377 }, 5378 "repeatedNestedAnnotation": { 5379 "type": "array", 5380 "items": { 5381 "type": "object", 5382 "$ref": "#/definitions/ABitOfEverythingNested" 5383 }, 5384 "description": "Repeated nested object description.", 5385 "title": "Repeated nested object title" 5386 }, 5387 "nestedAnnotation": { 5388 "$ref": "#/definitions/ABitOfEverythingNested", 5389 "description": "Nested object description.", 5390 "title": "Nested object title" 5391 }, 5392 "int64OverrideType": { 5393 "type": "integer", 5394 "format": "int64" 5395 }, 5396 "requiredStringViaFieldBehaviorAnnotation": { 5397 "type": "string", 5398 "title": "mark a field as required in Open API definition" 5399 }, 5400 "outputOnlyStringViaFieldBehaviorAnnotation": { 5401 "type": "string", 5402 "title": "mark a field as readonly in Open API definition", 5403 "readOnly": true 5404 }, 5405 "optionalStringValue": { 5406 "type": "string" 5407 }, 5408 "productId": { 5409 "type": "array", 5410 "items": { 5411 "type": "string", 5412 "maxLength": 19, 5413 "minLength": 1, 5414 "pattern": "^[0-9]+$" 5415 }, 5416 "description": "Only digits are allowed.", 5417 "title": "Test openapiv2 generation of repeated fields" 5418 }, 5419 "optionalStringField": { 5420 "type": "string", 5421 "title": "Test openapiv2 generation of required fields with annotation and jsonschema to reproduce" 5422 }, 5423 "requiredStringField1": { 5424 "type": "string" 5425 }, 5426 "requiredStringField2": { 5427 "type": "string" 5428 }, 5429 "required_field_behavior_json_name_custom": { 5430 "type": "string", 5431 "title": "Test openapiv2 handling of required json_name fields" 5432 }, 5433 "required_field_schema_json_name_custom": { 5434 "type": "string" 5435 }, 5436 "trailingOnly": { 5437 "type": "string", 5438 "title": "Trailing only" 5439 }, 5440 "trailingOnlyDot": { 5441 "type": "string", 5442 "description": "Trailing only dot." 5443 }, 5444 "trailingBoth": { 5445 "type": "string", 5446 "description": "Trailing both.", 5447 "title": "Leading both" 5448 }, 5449 "trailingMultiline": { 5450 "type": "string", 5451 "description": "This is an example of a multi-line comment.\n\nTrailing multiline.", 5452 "title": "Leading multiline" 5453 }, 5454 "uuids": { 5455 "type": "array", 5456 "items": { 5457 "type": "string", 5458 "format": "uuid" 5459 }, 5460 "title": "Specify a custom format of repeated field items" 5461 } 5462 }, 5463 "description": "Intentionally complicated message type to cover many features of Protobuf.", 5464 "title": "A bit of everything", 5465 "externalDocs": { 5466 "description": "Find out more about ABitOfEverything", 5467 "url": "https://github.com/grpc-ecosystem/grpc-gateway" 5468 }, 5469 "required": [ 5470 "int64Value", 5471 "doubleValue", 5472 "required_field_schema_json_name_custom", 5473 "floatValue", 5474 "requiredStringViaFieldBehaviorAnnotation", 5475 "requiredStringField1", 5476 "requiredStringField2", 5477 "required_field_behavior_json_name_custom" 5478 ], 5479 "x-a-bit-of-everything-foo": "bar" 5480 } 5481 }, 5482 { 5483 "name": "updateMask", 5484 "description": "The paths to update.", 5485 "in": "query", 5486 "required": false, 5487 "type": "string" 5488 } 5489 ], 5490 "tags": [ 5491 "ABitOfEverythingService" 5492 ] 5493 }, 5494 "patch": { 5495 "operationId": "ABitOfEverythingService_UpdateV22", 5496 "responses": { 5497 "200": { 5498 "description": "A successful response.", 5499 "schema": { 5500 "type": "object", 5501 "properties": {} 5502 } 5503 }, 5504 "403": { 5505 "description": "Returned when the user does not have permission to access the resource.", 5506 "schema": {} 5507 }, 5508 "404": { 5509 "description": "Returned when the resource does not exist.", 5510 "schema": { 5511 "type": "string", 5512 "format": "string" 5513 } 5514 }, 5515 "418": { 5516 "description": "I'm a teapot.", 5517 "schema": { 5518 "$ref": "#/definitions/examplepbNumericEnum" 5519 } 5520 }, 5521 "500": { 5522 "description": "Server error", 5523 "schema": { 5524 "$ref": "#/definitions/examplepbErrorResponse" 5525 } 5526 }, 5527 "default": { 5528 "description": "An unexpected error response.", 5529 "schema": { 5530 "$ref": "#/definitions/rpcStatus" 5531 } 5532 } 5533 }, 5534 "parameters": [ 5535 { 5536 "name": "uuidName", 5537 "in": "path", 5538 "required": true, 5539 "type": "string", 5540 "format": "uuid", 5541 "x-internal": true 5542 }, 5543 { 5544 "name": "abe", 5545 "description": "A bit of everything\n\nIntentionally complicated message type to cover many features of Protobuf.", 5546 "in": "body", 5547 "required": true, 5548 "schema": { 5549 "type": "object", 5550 "example": { 5551 "int64_value": 12, 5552 "double_value": 12.3 5553 }, 5554 "properties": { 5555 "singleNested": { 5556 "$ref": "#/definitions/ABitOfEverythingNested" 5557 }, 5558 "nested": { 5559 "type": "array", 5560 "items": { 5561 "type": "object", 5562 "$ref": "#/definitions/ABitOfEverythingNested" 5563 } 5564 }, 5565 "floatValue": { 5566 "type": "number", 5567 "format": "float", 5568 "default": "0.2", 5569 "description": "Float value field" 5570 }, 5571 "doubleValue": { 5572 "type": "number", 5573 "format": "double" 5574 }, 5575 "int64Value": { 5576 "type": "string", 5577 "format": "int64" 5578 }, 5579 "uint64Value": { 5580 "type": "string", 5581 "format": "uint64" 5582 }, 5583 "int32Value": { 5584 "type": "integer", 5585 "format": "int32" 5586 }, 5587 "fixed64Value": { 5588 "type": "string", 5589 "format": "uint64" 5590 }, 5591 "fixed32Value": { 5592 "type": "integer", 5593 "format": "int64" 5594 }, 5595 "boolValue": { 5596 "type": "boolean" 5597 }, 5598 "stringValue": { 5599 "type": "string" 5600 }, 5601 "bytesValue": { 5602 "type": "string", 5603 "format": "byte" 5604 }, 5605 "uint32Value": { 5606 "type": "integer", 5607 "format": "int64" 5608 }, 5609 "enumValue": { 5610 "$ref": "#/definitions/examplepbNumericEnum" 5611 }, 5612 "pathEnumValue": { 5613 "$ref": "#/definitions/pathenumPathEnum" 5614 }, 5615 "nestedPathEnumValue": { 5616 "$ref": "#/definitions/MessagePathEnumNestedPathEnum" 5617 }, 5618 "sfixed32Value": { 5619 "type": "integer", 5620 "format": "int32" 5621 }, 5622 "sfixed64Value": { 5623 "type": "string", 5624 "format": "int64" 5625 }, 5626 "sint32Value": { 5627 "type": "integer", 5628 "format": "int32" 5629 }, 5630 "sint64Value": { 5631 "type": "string", 5632 "format": "int64" 5633 }, 5634 "repeatedStringValue": { 5635 "type": "array", 5636 "items": { 5637 "type": "string" 5638 } 5639 }, 5640 "oneofEmpty": { 5641 "type": "object", 5642 "properties": {} 5643 }, 5644 "oneofString": { 5645 "type": "string" 5646 }, 5647 "mapValue": { 5648 "type": "object", 5649 "additionalProperties": { 5650 "$ref": "#/definitions/examplepbNumericEnum" 5651 } 5652 }, 5653 "mappedStringValue": { 5654 "type": "object", 5655 "additionalProperties": { 5656 "type": "string" 5657 } 5658 }, 5659 "mappedNestedValue": { 5660 "type": "object", 5661 "additionalProperties": { 5662 "$ref": "#/definitions/ABitOfEverythingNested" 5663 } 5664 }, 5665 "nonConventionalNameValue": { 5666 "type": "string" 5667 }, 5668 "timestampValue": { 5669 "type": "string", 5670 "format": "date-time" 5671 }, 5672 "repeatedEnumValue": { 5673 "type": "array", 5674 "items": { 5675 "$ref": "#/definitions/examplepbNumericEnum" 5676 }, 5677 "title": "repeated enum value. it is comma-separated in query" 5678 }, 5679 "repeatedEnumAnnotation": { 5680 "type": "array", 5681 "items": { 5682 "$ref": "#/definitions/examplepbNumericEnum" 5683 }, 5684 "description": "Repeated numeric enum description.", 5685 "title": "Repeated numeric enum title" 5686 }, 5687 "enumValueAnnotation": { 5688 "$ref": "#/definitions/examplepbNumericEnum", 5689 "description": "Numeric enum description.", 5690 "title": "Numeric enum title" 5691 }, 5692 "repeatedStringAnnotation": { 5693 "type": "array", 5694 "items": { 5695 "type": "string" 5696 }, 5697 "description": "Repeated string description.", 5698 "title": "Repeated string title" 5699 }, 5700 "repeatedNestedAnnotation": { 5701 "type": "array", 5702 "items": { 5703 "type": "object", 5704 "$ref": "#/definitions/ABitOfEverythingNested" 5705 }, 5706 "description": "Repeated nested object description.", 5707 "title": "Repeated nested object title" 5708 }, 5709 "nestedAnnotation": { 5710 "$ref": "#/definitions/ABitOfEverythingNested", 5711 "description": "Nested object description.", 5712 "title": "Nested object title" 5713 }, 5714 "int64OverrideType": { 5715 "type": "integer", 5716 "format": "int64" 5717 }, 5718 "requiredStringViaFieldBehaviorAnnotation": { 5719 "type": "string", 5720 "title": "mark a field as required in Open API definition" 5721 }, 5722 "outputOnlyStringViaFieldBehaviorAnnotation": { 5723 "type": "string", 5724 "title": "mark a field as readonly in Open API definition", 5725 "readOnly": true 5726 }, 5727 "optionalStringValue": { 5728 "type": "string" 5729 }, 5730 "productId": { 5731 "type": "array", 5732 "items": { 5733 "type": "string", 5734 "maxLength": 19, 5735 "minLength": 1, 5736 "pattern": "^[0-9]+$" 5737 }, 5738 "description": "Only digits are allowed.", 5739 "title": "Test openapiv2 generation of repeated fields" 5740 }, 5741 "optionalStringField": { 5742 "type": "string", 5743 "title": "Test openapiv2 generation of required fields with annotation and jsonschema to reproduce" 5744 }, 5745 "requiredStringField1": { 5746 "type": "string" 5747 }, 5748 "requiredStringField2": { 5749 "type": "string" 5750 }, 5751 "required_field_behavior_json_name_custom": { 5752 "type": "string", 5753 "title": "Test openapiv2 handling of required json_name fields" 5754 }, 5755 "required_field_schema_json_name_custom": { 5756 "type": "string" 5757 }, 5758 "trailingOnly": { 5759 "type": "string", 5760 "title": "Trailing only" 5761 }, 5762 "trailingOnlyDot": { 5763 "type": "string", 5764 "description": "Trailing only dot." 5765 }, 5766 "trailingBoth": { 5767 "type": "string", 5768 "description": "Trailing both.", 5769 "title": "Leading both" 5770 }, 5771 "trailingMultiline": { 5772 "type": "string", 5773 "description": "This is an example of a multi-line comment.\n\nTrailing multiline.", 5774 "title": "Leading multiline" 5775 }, 5776 "uuids": { 5777 "type": "array", 5778 "items": { 5779 "type": "string", 5780 "format": "uuid" 5781 }, 5782 "title": "Specify a custom format of repeated field items" 5783 } 5784 }, 5785 "description": "Intentionally complicated message type to cover many features of Protobuf.", 5786 "title": "A bit of everything", 5787 "externalDocs": { 5788 "description": "Find out more about ABitOfEverything", 5789 "url": "https://github.com/grpc-ecosystem/grpc-gateway" 5790 }, 5791 "required": [ 5792 "int64Value", 5793 "doubleValue", 5794 "required_field_schema_json_name_custom", 5795 "floatValue", 5796 "requiredStringViaFieldBehaviorAnnotation", 5797 "requiredStringField1", 5798 "requiredStringField2", 5799 "required_field_behavior_json_name_custom" 5800 ], 5801 "x-a-bit-of-everything-foo": "bar" 5802 } 5803 } 5804 ], 5805 "tags": [ 5806 "ABitOfEverythingService" 5807 ] 5808 } 5809 }, 5810 "/v2/example/echo": { 5811 "get": { 5812 "summary": "Summary: Echo rpc", 5813 "description": "Description Echo", 5814 "operationId": "ABitOfEverythingService_Echo3", 5815 "responses": { 5816 "200": { 5817 "description": "A successful response.", 5818 "schema": { 5819 "$ref": "#/definitions/subStringMessage" 5820 }, 5821 "examples": { 5822 "application/json": { 5823 "value": "the input value" 5824 } 5825 } 5826 }, 5827 "403": { 5828 "description": "Returned when the user does not have permission to access the resource.", 5829 "schema": {} 5830 }, 5831 "404": { 5832 "description": "Returned when the resource does not exist.", 5833 "schema": { 5834 "type": "integer", 5835 "format": "integer" 5836 } 5837 }, 5838 "418": { 5839 "description": "I'm a teapot.", 5840 "schema": { 5841 "$ref": "#/definitions/examplepbNumericEnum" 5842 } 5843 }, 5844 "500": { 5845 "description": "Server error", 5846 "schema": { 5847 "$ref": "#/definitions/examplepbErrorResponse" 5848 } 5849 }, 5850 "503": { 5851 "description": "Returned when the resource is temporarily unavailable.", 5852 "schema": {}, 5853 "x-number": 100 5854 }, 5855 "default": { 5856 "description": "An unexpected error response.", 5857 "schema": { 5858 "$ref": "#/definitions/rpcStatus" 5859 } 5860 } 5861 }, 5862 "parameters": [ 5863 { 5864 "name": "value", 5865 "in": "query", 5866 "required": false, 5867 "type": "string" 5868 } 5869 ], 5870 "tags": [ 5871 "echo rpc" 5872 ], 5873 "externalDocs": { 5874 "description": "Find out more Echo", 5875 "url": "https://github.com/grpc-ecosystem/grpc-gateway" 5876 } 5877 }, 5878 "post": { 5879 "summary": "Summary: Echo rpc", 5880 "description": "Description Echo", 5881 "operationId": "ABitOfEverythingService_Echo2", 5882 "responses": { 5883 "200": { 5884 "description": "A successful response.", 5885 "schema": { 5886 "$ref": "#/definitions/subStringMessage" 5887 }, 5888 "examples": { 5889 "application/json": { 5890 "value": "the input value" 5891 } 5892 } 5893 }, 5894 "403": { 5895 "description": "Returned when the user does not have permission to access the resource.", 5896 "schema": {} 5897 }, 5898 "404": { 5899 "description": "Returned when the resource does not exist.", 5900 "schema": { 5901 "type": "integer", 5902 "format": "integer" 5903 } 5904 }, 5905 "418": { 5906 "description": "I'm a teapot.", 5907 "schema": { 5908 "$ref": "#/definitions/examplepbNumericEnum" 5909 } 5910 }, 5911 "500": { 5912 "description": "Server error", 5913 "schema": { 5914 "$ref": "#/definitions/examplepbErrorResponse" 5915 } 5916 }, 5917 "503": { 5918 "description": "Returned when the resource is temporarily unavailable.", 5919 "schema": {}, 5920 "x-number": 100 5921 }, 5922 "default": { 5923 "description": "An unexpected error response.", 5924 "schema": { 5925 "$ref": "#/definitions/rpcStatus" 5926 } 5927 } 5928 }, 5929 "parameters": [ 5930 { 5931 "name": "value", 5932 "in": "body", 5933 "required": true, 5934 "schema": { 5935 "type": "string" 5936 } 5937 } 5938 ], 5939 "tags": [ 5940 "echo rpc" 5941 ], 5942 "externalDocs": { 5943 "description": "Find out more Echo", 5944 "url": "https://github.com/grpc-ecosystem/grpc-gateway" 5945 } 5946 } 5947 }, 5948 "/v2/example/empty": { 5949 "get": { 5950 "operationId": "camelCaseServiceName_Empty", 5951 "responses": { 5952 "200": { 5953 "description": "A successful response.", 5954 "schema": { 5955 "type": "object", 5956 "properties": {} 5957 } 5958 }, 5959 "403": { 5960 "description": "Returned when the user does not have permission to access the resource.", 5961 "schema": {} 5962 }, 5963 "404": { 5964 "description": "Returned when the resource does not exist.", 5965 "schema": { 5966 "type": "string", 5967 "format": "string" 5968 } 5969 }, 5970 "418": { 5971 "description": "I'm a teapot.", 5972 "schema": { 5973 "$ref": "#/definitions/examplepbNumericEnum" 5974 } 5975 }, 5976 "500": { 5977 "description": "Server error", 5978 "schema": { 5979 "$ref": "#/definitions/examplepbErrorResponse" 5980 } 5981 }, 5982 "default": { 5983 "description": "An unexpected error response.", 5984 "schema": { 5985 "$ref": "#/definitions/rpcStatus" 5986 } 5987 } 5988 }, 5989 "tags": [ 5990 "camelCaseServiceName" 5991 ] 5992 } 5993 }, 5994 "/v2/example/errorwithdetails": { 5995 "get": { 5996 "operationId": "ABitOfEverythingService_ErrorWithDetails", 5997 "responses": { 5998 "200": { 5999 "description": "A successful response.", 6000 "schema": { 6001 "type": "object", 6002 "properties": {} 6003 } 6004 }, 6005 "403": { 6006 "description": "Returned when the user does not have permission to access the resource.", 6007 "schema": {} 6008 }, 6009 "404": { 6010 "description": "Returned when the resource does not exist.", 6011 "schema": { 6012 "type": "string", 6013 "format": "string" 6014 } 6015 }, 6016 "418": { 6017 "description": "I'm a teapot.", 6018 "schema": { 6019 "$ref": "#/definitions/examplepbNumericEnum" 6020 } 6021 }, 6022 "500": { 6023 "description": "Server error", 6024 "schema": { 6025 "$ref": "#/definitions/examplepbErrorResponse" 6026 } 6027 }, 6028 "default": { 6029 "description": "An unexpected error response.", 6030 "schema": { 6031 "$ref": "#/definitions/rpcStatus" 6032 } 6033 } 6034 }, 6035 "tags": [ 6036 "ABitOfEverythingService" 6037 ] 6038 } 6039 }, 6040 "/v2/example/overwriterequestcontenttype": { 6041 "post": { 6042 "operationId": "ABitOfEverythingService_OverwriteRequestContentType", 6043 "responses": { 6044 "200": { 6045 "description": "A successful response.", 6046 "schema": { 6047 "type": "object", 6048 "properties": {} 6049 } 6050 }, 6051 "403": { 6052 "description": "Returned when the user does not have permission to access the resource.", 6053 "schema": {} 6054 }, 6055 "404": { 6056 "description": "Returned when the resource does not exist.", 6057 "schema": { 6058 "type": "string", 6059 "format": "string" 6060 } 6061 }, 6062 "418": { 6063 "description": "I'm a teapot.", 6064 "schema": { 6065 "$ref": "#/definitions/examplepbNumericEnum" 6066 } 6067 }, 6068 "500": { 6069 "description": "Server error", 6070 "schema": { 6071 "$ref": "#/definitions/examplepbErrorResponse" 6072 } 6073 }, 6074 "default": { 6075 "description": "An unexpected error response.", 6076 "schema": { 6077 "$ref": "#/definitions/rpcStatus" 6078 } 6079 } 6080 }, 6081 "parameters": [ 6082 { 6083 "name": "body", 6084 "in": "body", 6085 "required": true, 6086 "schema": { 6087 "$ref": "#/definitions/examplepbBody" 6088 } 6089 } 6090 ], 6091 "tags": [ 6092 "ABitOfEverything" 6093 ], 6094 "consumes": [ 6095 "application/x-bar-mime" 6096 ] 6097 } 6098 }, 6099 "/v2/example/overwriteresponsecontenttype": { 6100 "get": { 6101 "operationId": "ABitOfEverythingService_OverwriteResponseContentType", 6102 "responses": { 6103 "200": { 6104 "description": "A successful response.", 6105 "schema": { 6106 "type": "string" 6107 } 6108 }, 6109 "403": { 6110 "description": "Returned when the user does not have permission to access the resource.", 6111 "schema": {} 6112 }, 6113 "404": { 6114 "description": "Returned when the resource does not exist.", 6115 "schema": { 6116 "type": "string", 6117 "format": "string" 6118 } 6119 }, 6120 "418": { 6121 "description": "I'm a teapot.", 6122 "schema": { 6123 "$ref": "#/definitions/examplepbNumericEnum" 6124 } 6125 }, 6126 "500": { 6127 "description": "Server error", 6128 "schema": { 6129 "$ref": "#/definitions/examplepbErrorResponse" 6130 } 6131 }, 6132 "default": { 6133 "description": "An unexpected error response.", 6134 "schema": { 6135 "$ref": "#/definitions/rpcStatus" 6136 } 6137 } 6138 }, 6139 "tags": [ 6140 "ABitOfEverything" 6141 ], 6142 "produces": [ 6143 "application/text" 6144 ] 6145 } 6146 }, 6147 "/v2/example/postwithemptybody/{name}": { 6148 "post": { 6149 "operationId": "ABitOfEverythingService_PostWithEmptyBody", 6150 "responses": { 6151 "200": { 6152 "description": "A successful response.", 6153 "schema": { 6154 "type": "object", 6155 "properties": {} 6156 } 6157 }, 6158 "403": { 6159 "description": "Returned when the user does not have permission to access the resource.", 6160 "schema": {} 6161 }, 6162 "404": { 6163 "description": "Returned when the resource does not exist.", 6164 "schema": { 6165 "type": "string", 6166 "format": "string" 6167 } 6168 }, 6169 "418": { 6170 "description": "I'm a teapot.", 6171 "schema": { 6172 "$ref": "#/definitions/examplepbNumericEnum" 6173 } 6174 }, 6175 "500": { 6176 "description": "Server error", 6177 "schema": { 6178 "$ref": "#/definitions/examplepbErrorResponse" 6179 } 6180 }, 6181 "default": { 6182 "description": "An unexpected error response.", 6183 "schema": { 6184 "$ref": "#/definitions/rpcStatus" 6185 } 6186 } 6187 }, 6188 "parameters": [ 6189 { 6190 "name": "name", 6191 "in": "path", 6192 "required": true, 6193 "type": "string" 6194 }, 6195 { 6196 "name": "body", 6197 "in": "body", 6198 "required": true, 6199 "schema": { 6200 "$ref": "#/definitions/ABitOfEverythingServicePostWithEmptyBodyBody" 6201 } 6202 } 6203 ], 6204 "tags": [ 6205 "ABitOfEverythingService" 6206 ] 6207 } 6208 }, 6209 "/v2/example/timeout": { 6210 "get": { 6211 "operationId": "ABitOfEverythingService_Timeout", 6212 "responses": { 6213 "200": { 6214 "description": "A successful response.", 6215 "schema": { 6216 "type": "object", 6217 "properties": {} 6218 } 6219 }, 6220 "403": { 6221 "description": "Returned when the user does not have permission to access the resource.", 6222 "schema": {} 6223 }, 6224 "404": { 6225 "description": "Returned when the resource does not exist.", 6226 "schema": { 6227 "type": "string", 6228 "format": "string" 6229 } 6230 }, 6231 "418": { 6232 "description": "I'm a teapot.", 6233 "schema": { 6234 "$ref": "#/definitions/examplepbNumericEnum" 6235 } 6236 }, 6237 "500": { 6238 "description": "Server error", 6239 "schema": { 6240 "$ref": "#/definitions/examplepbErrorResponse" 6241 } 6242 }, 6243 "default": { 6244 "description": "An unexpected error response.", 6245 "schema": { 6246 "$ref": "#/definitions/rpcStatus" 6247 } 6248 } 6249 }, 6250 "tags": [ 6251 "ABitOfEverythingService" 6252 ] 6253 } 6254 }, 6255 "/v2/example/withbody/{id}": { 6256 "post": { 6257 "operationId": "ABitOfEverythingService_GetMessageWithBody", 6258 "responses": { 6259 "200": { 6260 "description": "A successful response.", 6261 "schema": { 6262 "type": "object", 6263 "properties": {} 6264 } 6265 }, 6266 "403": { 6267 "description": "Returned when the user does not have permission to access the resource.", 6268 "schema": {} 6269 }, 6270 "404": { 6271 "description": "Returned when the resource does not exist.", 6272 "schema": { 6273 "type": "string", 6274 "format": "string" 6275 } 6276 }, 6277 "418": { 6278 "description": "I'm a teapot.", 6279 "schema": { 6280 "$ref": "#/definitions/examplepbNumericEnum" 6281 } 6282 }, 6283 "500": { 6284 "description": "Server error", 6285 "schema": { 6286 "$ref": "#/definitions/examplepbErrorResponse" 6287 } 6288 }, 6289 "default": { 6290 "description": "An unexpected error response.", 6291 "schema": { 6292 "$ref": "#/definitions/rpcStatus" 6293 } 6294 } 6295 }, 6296 "parameters": [ 6297 { 6298 "name": "id", 6299 "in": "path", 6300 "required": true, 6301 "type": "string" 6302 }, 6303 { 6304 "name": "data", 6305 "in": "body", 6306 "required": true, 6307 "schema": { 6308 "$ref": "#/definitions/examplepbBody" 6309 } 6310 } 6311 ], 6312 "tags": [ 6313 "ABitOfEverythingService" 6314 ] 6315 } 6316 }, 6317 "/v2/{value}:check": { 6318 "get": { 6319 "operationId": "ABitOfEverythingService_CheckExternalPathEnum", 6320 "responses": { 6321 "200": { 6322 "description": "A successful response.", 6323 "schema": { 6324 "type": "object", 6325 "properties": {} 6326 } 6327 }, 6328 "403": { 6329 "description": "Returned when the user does not have permission to access the resource.", 6330 "schema": {} 6331 }, 6332 "404": { 6333 "description": "Returned when the resource does not exist.", 6334 "schema": { 6335 "type": "string", 6336 "format": "string" 6337 } 6338 }, 6339 "418": { 6340 "description": "I'm a teapot.", 6341 "schema": { 6342 "$ref": "#/definitions/examplepbNumericEnum" 6343 } 6344 }, 6345 "500": { 6346 "description": "Server error", 6347 "schema": { 6348 "$ref": "#/definitions/examplepbErrorResponse" 6349 } 6350 }, 6351 "default": { 6352 "description": "An unexpected error response.", 6353 "schema": { 6354 "$ref": "#/definitions/rpcStatus" 6355 } 6356 } 6357 }, 6358 "parameters": [ 6359 { 6360 "name": "value", 6361 "in": "path", 6362 "required": true, 6363 "type": "string", 6364 "enum": [ 6365 "ABC", 6366 "DEF" 6367 ] 6368 } 6369 ], 6370 "tags": [ 6371 "ABitOfEverythingService" 6372 ] 6373 } 6374 }, 6375 "/v2a/example/a_bit_of_everything/{uuidName}": { 6376 "patch": { 6377 "operationId": "ABitOfEverythingService_UpdateV23", 6378 "responses": { 6379 "200": { 6380 "description": "A successful response.", 6381 "schema": { 6382 "type": "object", 6383 "properties": {} 6384 } 6385 }, 6386 "403": { 6387 "description": "Returned when the user does not have permission to access the resource.", 6388 "schema": {} 6389 }, 6390 "404": { 6391 "description": "Returned when the resource does not exist.", 6392 "schema": { 6393 "type": "string", 6394 "format": "string" 6395 } 6396 }, 6397 "418": { 6398 "description": "I'm a teapot.", 6399 "schema": { 6400 "$ref": "#/definitions/examplepbNumericEnum" 6401 } 6402 }, 6403 "500": { 6404 "description": "Server error", 6405 "schema": { 6406 "$ref": "#/definitions/examplepbErrorResponse" 6407 } 6408 }, 6409 "default": { 6410 "description": "An unexpected error response.", 6411 "schema": { 6412 "$ref": "#/definitions/rpcStatus" 6413 } 6414 } 6415 }, 6416 "parameters": [ 6417 { 6418 "name": "uuidName", 6419 "in": "path", 6420 "required": true, 6421 "type": "string", 6422 "format": "uuid", 6423 "x-internal": true 6424 }, 6425 { 6426 "name": "body", 6427 "in": "body", 6428 "required": true, 6429 "schema": { 6430 "$ref": "#/definitions/ABitOfEverythingServiceUpdateV2Body" 6431 } 6432 } 6433 ], 6434 "tags": [ 6435 "ABitOfEverythingService" 6436 ] 6437 } 6438 }, 6439 "/v3/{value}:check": { 6440 "get": { 6441 "operationId": "ABitOfEverythingService_CheckExternalNestedPathEnum", 6442 "responses": { 6443 "200": { 6444 "description": "A successful response.", 6445 "schema": { 6446 "type": "object", 6447 "properties": {} 6448 } 6449 }, 6450 "403": { 6451 "description": "Returned when the user does not have permission to access the resource.", 6452 "schema": {} 6453 }, 6454 "404": { 6455 "description": "Returned when the resource does not exist.", 6456 "schema": { 6457 "type": "string", 6458 "format": "string" 6459 } 6460 }, 6461 "418": { 6462 "description": "I'm a teapot.", 6463 "schema": { 6464 "$ref": "#/definitions/examplepbNumericEnum" 6465 } 6466 }, 6467 "500": { 6468 "description": "Server error", 6469 "schema": { 6470 "$ref": "#/definitions/examplepbErrorResponse" 6471 } 6472 }, 6473 "default": { 6474 "description": "An unexpected error response.", 6475 "schema": { 6476 "$ref": "#/definitions/rpcStatus" 6477 } 6478 } 6479 }, 6480 "parameters": [ 6481 { 6482 "name": "value", 6483 "in": "path", 6484 "required": true, 6485 "type": "string", 6486 "enum": [ 6487 "GHI", 6488 "JKL" 6489 ] 6490 } 6491 ], 6492 "tags": [ 6493 "ABitOfEverythingService" 6494 ] 6495 } 6496 } 6497 }, 6498 "definitions": { 6499 "ABitOfEverythingNested": { 6500 "type": "object", 6501 "example": { 6502 "ok": "TRUE" 6503 }, 6504 "properties": { 6505 "name": { 6506 "type": "string", 6507 "description": "name is nested field." 6508 }, 6509 "amount": { 6510 "type": "integer", 6511 "format": "int64" 6512 }, 6513 "ok": { 6514 "$ref": "#/definitions/NestedDeepEnum", 6515 "description": "DeepEnum description." 6516 } 6517 }, 6518 "description": "Nested is nested type." 6519 }, 6520 "ABitOfEverythingServiceDeepPathEchoBody": { 6521 "type": "object", 6522 "example": { 6523 "int64_value": 12, 6524 "double_value": 12.3 6525 }, 6526 "properties": { 6527 "singleNested": { 6528 "type": "object", 6529 "example": { 6530 "ok": "TRUE" 6531 }, 6532 "properties": { 6533 "amount": { 6534 "type": "integer", 6535 "format": "int64" 6536 }, 6537 "ok": { 6538 "$ref": "#/definitions/NestedDeepEnum", 6539 "description": "DeepEnum description." 6540 } 6541 }, 6542 "description": "Nested is nested type." 6543 }, 6544 "uuid": { 6545 "type": "string", 6546 "format": "uuid", 6547 "minLength": 1, 6548 "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", 6549 "x-internal": true 6550 }, 6551 "nested": { 6552 "type": "array", 6553 "items": { 6554 "type": "object", 6555 "$ref": "#/definitions/ABitOfEverythingNested" 6556 } 6557 }, 6558 "floatValue": { 6559 "type": "number", 6560 "format": "float", 6561 "default": "0.2", 6562 "description": "Float value field" 6563 }, 6564 "doubleValue": { 6565 "type": "number", 6566 "format": "double" 6567 }, 6568 "int64Value": { 6569 "type": "string", 6570 "format": "int64" 6571 }, 6572 "uint64Value": { 6573 "type": "string", 6574 "format": "uint64" 6575 }, 6576 "int32Value": { 6577 "type": "integer", 6578 "format": "int32" 6579 }, 6580 "fixed64Value": { 6581 "type": "string", 6582 "format": "uint64" 6583 }, 6584 "fixed32Value": { 6585 "type": "integer", 6586 "format": "int64" 6587 }, 6588 "boolValue": { 6589 "type": "boolean" 6590 }, 6591 "stringValue": { 6592 "type": "string" 6593 }, 6594 "bytesValue": { 6595 "type": "string", 6596 "format": "byte" 6597 }, 6598 "uint32Value": { 6599 "type": "integer", 6600 "format": "int64" 6601 }, 6602 "enumValue": { 6603 "$ref": "#/definitions/examplepbNumericEnum" 6604 }, 6605 "pathEnumValue": { 6606 "$ref": "#/definitions/pathenumPathEnum" 6607 }, 6608 "nestedPathEnumValue": { 6609 "$ref": "#/definitions/MessagePathEnumNestedPathEnum" 6610 }, 6611 "sfixed32Value": { 6612 "type": "integer", 6613 "format": "int32" 6614 }, 6615 "sfixed64Value": { 6616 "type": "string", 6617 "format": "int64" 6618 }, 6619 "sint32Value": { 6620 "type": "integer", 6621 "format": "int32" 6622 }, 6623 "sint64Value": { 6624 "type": "string", 6625 "format": "int64" 6626 }, 6627 "repeatedStringValue": { 6628 "type": "array", 6629 "items": { 6630 "type": "string" 6631 } 6632 }, 6633 "oneofEmpty": { 6634 "type": "object", 6635 "properties": {} 6636 }, 6637 "oneofString": { 6638 "type": "string" 6639 }, 6640 "mapValue": { 6641 "type": "object", 6642 "additionalProperties": { 6643 "$ref": "#/definitions/examplepbNumericEnum" 6644 } 6645 }, 6646 "mappedStringValue": { 6647 "type": "object", 6648 "additionalProperties": { 6649 "type": "string" 6650 } 6651 }, 6652 "mappedNestedValue": { 6653 "type": "object", 6654 "additionalProperties": { 6655 "$ref": "#/definitions/ABitOfEverythingNested" 6656 } 6657 }, 6658 "nonConventionalNameValue": { 6659 "type": "string" 6660 }, 6661 "timestampValue": { 6662 "type": "string", 6663 "format": "date-time" 6664 }, 6665 "repeatedEnumValue": { 6666 "type": "array", 6667 "items": { 6668 "$ref": "#/definitions/examplepbNumericEnum" 6669 }, 6670 "title": "repeated enum value. it is comma-separated in query" 6671 }, 6672 "repeatedEnumAnnotation": { 6673 "type": "array", 6674 "items": { 6675 "$ref": "#/definitions/examplepbNumericEnum" 6676 }, 6677 "description": "Repeated numeric enum description.", 6678 "title": "Repeated numeric enum title" 6679 }, 6680 "enumValueAnnotation": { 6681 "$ref": "#/definitions/examplepbNumericEnum", 6682 "description": "Numeric enum description.", 6683 "title": "Numeric enum title" 6684 }, 6685 "repeatedStringAnnotation": { 6686 "type": "array", 6687 "items": { 6688 "type": "string" 6689 }, 6690 "description": "Repeated string description.", 6691 "title": "Repeated string title" 6692 }, 6693 "repeatedNestedAnnotation": { 6694 "type": "array", 6695 "items": { 6696 "type": "object", 6697 "$ref": "#/definitions/ABitOfEverythingNested" 6698 }, 6699 "description": "Repeated nested object description.", 6700 "title": "Repeated nested object title" 6701 }, 6702 "nestedAnnotation": { 6703 "$ref": "#/definitions/ABitOfEverythingNested", 6704 "description": "Nested object description.", 6705 "title": "Nested object title" 6706 }, 6707 "int64OverrideType": { 6708 "type": "integer", 6709 "format": "int64" 6710 }, 6711 "requiredStringViaFieldBehaviorAnnotation": { 6712 "type": "string", 6713 "title": "mark a field as required in Open API definition" 6714 }, 6715 "outputOnlyStringViaFieldBehaviorAnnotation": { 6716 "type": "string", 6717 "title": "mark a field as readonly in Open API definition", 6718 "readOnly": true 6719 }, 6720 "optionalStringValue": { 6721 "type": "string" 6722 }, 6723 "productId": { 6724 "type": "array", 6725 "items": { 6726 "type": "string", 6727 "maxLength": 19, 6728 "minLength": 1, 6729 "pattern": "^[0-9]+$" 6730 }, 6731 "description": "Only digits are allowed.", 6732 "title": "Test openapiv2 generation of repeated fields" 6733 }, 6734 "optionalStringField": { 6735 "type": "string", 6736 "title": "Test openapiv2 generation of required fields with annotation and jsonschema to reproduce" 6737 }, 6738 "requiredStringField1": { 6739 "type": "string" 6740 }, 6741 "requiredStringField2": { 6742 "type": "string" 6743 }, 6744 "required_field_behavior_json_name_custom": { 6745 "type": "string", 6746 "title": "Test openapiv2 handling of required json_name fields" 6747 }, 6748 "required_field_schema_json_name_custom": { 6749 "type": "string" 6750 }, 6751 "trailingOnly": { 6752 "type": "string", 6753 "title": "Trailing only" 6754 }, 6755 "trailingOnlyDot": { 6756 "type": "string", 6757 "description": "Trailing only dot." 6758 }, 6759 "trailingBoth": { 6760 "type": "string", 6761 "description": "Trailing both.", 6762 "title": "Leading both" 6763 }, 6764 "trailingMultiline": { 6765 "type": "string", 6766 "description": "This is an example of a multi-line comment.\n\nTrailing multiline.", 6767 "title": "Leading multiline" 6768 }, 6769 "uuids": { 6770 "type": "array", 6771 "items": { 6772 "type": "string", 6773 "format": "uuid" 6774 }, 6775 "title": "Specify a custom format of repeated field items" 6776 } 6777 }, 6778 "description": "Intentionally complicated message type to cover many features of Protobuf.", 6779 "title": "A bit of everything", 6780 "externalDocs": { 6781 "description": "Find out more about ABitOfEverything", 6782 "url": "https://github.com/grpc-ecosystem/grpc-gateway" 6783 }, 6784 "required": [ 6785 "uuid", 6786 "int64Value", 6787 "doubleValue", 6788 "required_field_schema_json_name_custom", 6789 "floatValue", 6790 "requiredStringViaFieldBehaviorAnnotation", 6791 "requiredStringField1", 6792 "requiredStringField2", 6793 "required_field_behavior_json_name_custom" 6794 ], 6795 "x-a-bit-of-everything-foo": "bar" 6796 }, 6797 "ABitOfEverythingServicePostWithEmptyBodyBody": { 6798 "type": "object" 6799 }, 6800 "ABitOfEverythingServiceUpdateV2Body": { 6801 "type": "object", 6802 "properties": { 6803 "abe": { 6804 "type": "object", 6805 "example": { 6806 "int64_value": 12, 6807 "double_value": 12.3 6808 }, 6809 "properties": { 6810 "singleNested": { 6811 "$ref": "#/definitions/ABitOfEverythingNested" 6812 }, 6813 "nested": { 6814 "type": "array", 6815 "items": { 6816 "type": "object", 6817 "$ref": "#/definitions/ABitOfEverythingNested" 6818 } 6819 }, 6820 "floatValue": { 6821 "type": "number", 6822 "format": "float", 6823 "default": "0.2", 6824 "description": "Float value field" 6825 }, 6826 "doubleValue": { 6827 "type": "number", 6828 "format": "double" 6829 }, 6830 "int64Value": { 6831 "type": "string", 6832 "format": "int64" 6833 }, 6834 "uint64Value": { 6835 "type": "string", 6836 "format": "uint64" 6837 }, 6838 "int32Value": { 6839 "type": "integer", 6840 "format": "int32" 6841 }, 6842 "fixed64Value": { 6843 "type": "string", 6844 "format": "uint64" 6845 }, 6846 "fixed32Value": { 6847 "type": "integer", 6848 "format": "int64" 6849 }, 6850 "boolValue": { 6851 "type": "boolean" 6852 }, 6853 "stringValue": { 6854 "type": "string" 6855 }, 6856 "bytesValue": { 6857 "type": "string", 6858 "format": "byte" 6859 }, 6860 "uint32Value": { 6861 "type": "integer", 6862 "format": "int64" 6863 }, 6864 "enumValue": { 6865 "$ref": "#/definitions/examplepbNumericEnum" 6866 }, 6867 "pathEnumValue": { 6868 "$ref": "#/definitions/pathenumPathEnum" 6869 }, 6870 "nestedPathEnumValue": { 6871 "$ref": "#/definitions/MessagePathEnumNestedPathEnum" 6872 }, 6873 "sfixed32Value": { 6874 "type": "integer", 6875 "format": "int32" 6876 }, 6877 "sfixed64Value": { 6878 "type": "string", 6879 "format": "int64" 6880 }, 6881 "sint32Value": { 6882 "type": "integer", 6883 "format": "int32" 6884 }, 6885 "sint64Value": { 6886 "type": "string", 6887 "format": "int64" 6888 }, 6889 "repeatedStringValue": { 6890 "type": "array", 6891 "items": { 6892 "type": "string" 6893 } 6894 }, 6895 "oneofEmpty": { 6896 "type": "object", 6897 "properties": {} 6898 }, 6899 "oneofString": { 6900 "type": "string" 6901 }, 6902 "mapValue": { 6903 "type": "object", 6904 "additionalProperties": { 6905 "$ref": "#/definitions/examplepbNumericEnum" 6906 } 6907 }, 6908 "mappedStringValue": { 6909 "type": "object", 6910 "additionalProperties": { 6911 "type": "string" 6912 } 6913 }, 6914 "mappedNestedValue": { 6915 "type": "object", 6916 "additionalProperties": { 6917 "$ref": "#/definitions/ABitOfEverythingNested" 6918 } 6919 }, 6920 "nonConventionalNameValue": { 6921 "type": "string" 6922 }, 6923 "timestampValue": { 6924 "type": "string", 6925 "format": "date-time" 6926 }, 6927 "repeatedEnumValue": { 6928 "type": "array", 6929 "items": { 6930 "$ref": "#/definitions/examplepbNumericEnum" 6931 }, 6932 "title": "repeated enum value. it is comma-separated in query" 6933 }, 6934 "repeatedEnumAnnotation": { 6935 "type": "array", 6936 "items": { 6937 "$ref": "#/definitions/examplepbNumericEnum" 6938 }, 6939 "description": "Repeated numeric enum description.", 6940 "title": "Repeated numeric enum title" 6941 }, 6942 "enumValueAnnotation": { 6943 "$ref": "#/definitions/examplepbNumericEnum", 6944 "description": "Numeric enum description.", 6945 "title": "Numeric enum title" 6946 }, 6947 "repeatedStringAnnotation": { 6948 "type": "array", 6949 "items": { 6950 "type": "string" 6951 }, 6952 "description": "Repeated string description.", 6953 "title": "Repeated string title" 6954 }, 6955 "repeatedNestedAnnotation": { 6956 "type": "array", 6957 "items": { 6958 "type": "object", 6959 "$ref": "#/definitions/ABitOfEverythingNested" 6960 }, 6961 "description": "Repeated nested object description.", 6962 "title": "Repeated nested object title" 6963 }, 6964 "nestedAnnotation": { 6965 "$ref": "#/definitions/ABitOfEverythingNested", 6966 "description": "Nested object description.", 6967 "title": "Nested object title" 6968 }, 6969 "int64OverrideType": { 6970 "type": "integer", 6971 "format": "int64" 6972 }, 6973 "requiredStringViaFieldBehaviorAnnotation": { 6974 "type": "string", 6975 "title": "mark a field as required in Open API definition" 6976 }, 6977 "outputOnlyStringViaFieldBehaviorAnnotation": { 6978 "type": "string", 6979 "title": "mark a field as readonly in Open API definition", 6980 "readOnly": true 6981 }, 6982 "optionalStringValue": { 6983 "type": "string" 6984 }, 6985 "productId": { 6986 "type": "array", 6987 "items": { 6988 "type": "string", 6989 "maxLength": 19, 6990 "minLength": 1, 6991 "pattern": "^[0-9]+$" 6992 }, 6993 "description": "Only digits are allowed.", 6994 "title": "Test openapiv2 generation of repeated fields" 6995 }, 6996 "optionalStringField": { 6997 "type": "string", 6998 "title": "Test openapiv2 generation of required fields with annotation and jsonschema to reproduce" 6999 }, 7000 "requiredStringField1": { 7001 "type": "string" 7002 }, 7003 "requiredStringField2": { 7004 "type": "string" 7005 }, 7006 "required_field_behavior_json_name_custom": { 7007 "type": "string", 7008 "title": "Test openapiv2 handling of required json_name fields" 7009 }, 7010 "required_field_schema_json_name_custom": { 7011 "type": "string" 7012 }, 7013 "trailingOnly": { 7014 "type": "string", 7015 "title": "Trailing only" 7016 }, 7017 "trailingOnlyDot": { 7018 "type": "string", 7019 "description": "Trailing only dot." 7020 }, 7021 "trailingBoth": { 7022 "type": "string", 7023 "description": "Trailing both.", 7024 "title": "Leading both" 7025 }, 7026 "trailingMultiline": { 7027 "type": "string", 7028 "description": "This is an example of a multi-line comment.\n\nTrailing multiline.", 7029 "title": "Leading multiline" 7030 }, 7031 "uuids": { 7032 "type": "array", 7033 "items": { 7034 "type": "string", 7035 "format": "uuid" 7036 }, 7037 "title": "Specify a custom format of repeated field items" 7038 } 7039 }, 7040 "description": "Intentionally complicated message type to cover many features of Protobuf.", 7041 "title": "A bit of everything", 7042 "externalDocs": { 7043 "description": "Find out more about ABitOfEverything", 7044 "url": "https://github.com/grpc-ecosystem/grpc-gateway" 7045 }, 7046 "x-a-bit-of-everything-foo": "bar" 7047 }, 7048 "updateMask": { 7049 "type": "string", 7050 "description": "The paths to update." 7051 } 7052 }, 7053 "title": "UpdateV2Request request for update includes the message and the update mask", 7054 "required": [ 7055 "int64Value", 7056 "doubleValue", 7057 "required_field_schema_json_name_custom", 7058 "floatValue", 7059 "requiredStringViaFieldBehaviorAnnotation", 7060 "requiredStringField1", 7061 "requiredStringField2", 7062 "required_field_behavior_json_name_custom" 7063 ] 7064 }, 7065 "MessagePathEnumNestedPathEnum": { 7066 "type": "string", 7067 "enum": [ 7068 "GHI", 7069 "JKL" 7070 ], 7071 "default": "GHI" 7072 }, 7073 "NestedDeepEnum": { 7074 "type": "string", 7075 "enum": [ 7076 "FALSE", 7077 "TRUE" 7078 ], 7079 "default": "FALSE", 7080 "description": "DeepEnum is one or zero.\n\n - FALSE: FALSE is false.\n - TRUE: TRUE is true." 7081 }, 7082 "examplepbABitOfEverything": { 7083 "type": "object", 7084 "example": { 7085 "int64_value": 12, 7086 "double_value": 12.3 7087 }, 7088 "properties": { 7089 "singleNested": { 7090 "$ref": "#/definitions/ABitOfEverythingNested" 7091 }, 7092 "uuid": { 7093 "type": "string", 7094 "format": "uuid", 7095 "minLength": 1, 7096 "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", 7097 "x-internal": true 7098 }, 7099 "nested": { 7100 "type": "array", 7101 "items": { 7102 "type": "object", 7103 "$ref": "#/definitions/ABitOfEverythingNested" 7104 } 7105 }, 7106 "floatValue": { 7107 "type": "number", 7108 "format": "float", 7109 "default": "0.2", 7110 "description": "Float value field" 7111 }, 7112 "doubleValue": { 7113 "type": "number", 7114 "format": "double" 7115 }, 7116 "int64Value": { 7117 "type": "string", 7118 "format": "int64" 7119 }, 7120 "uint64Value": { 7121 "type": "string", 7122 "format": "uint64" 7123 }, 7124 "int32Value": { 7125 "type": "integer", 7126 "format": "int32" 7127 }, 7128 "fixed64Value": { 7129 "type": "string", 7130 "format": "uint64" 7131 }, 7132 "fixed32Value": { 7133 "type": "integer", 7134 "format": "int64" 7135 }, 7136 "boolValue": { 7137 "type": "boolean" 7138 }, 7139 "stringValue": { 7140 "type": "string" 7141 }, 7142 "bytesValue": { 7143 "type": "string", 7144 "format": "byte" 7145 }, 7146 "uint32Value": { 7147 "type": "integer", 7148 "format": "int64" 7149 }, 7150 "enumValue": { 7151 "$ref": "#/definitions/examplepbNumericEnum" 7152 }, 7153 "pathEnumValue": { 7154 "$ref": "#/definitions/pathenumPathEnum" 7155 }, 7156 "nestedPathEnumValue": { 7157 "$ref": "#/definitions/MessagePathEnumNestedPathEnum" 7158 }, 7159 "sfixed32Value": { 7160 "type": "integer", 7161 "format": "int32" 7162 }, 7163 "sfixed64Value": { 7164 "type": "string", 7165 "format": "int64" 7166 }, 7167 "sint32Value": { 7168 "type": "integer", 7169 "format": "int32" 7170 }, 7171 "sint64Value": { 7172 "type": "string", 7173 "format": "int64" 7174 }, 7175 "repeatedStringValue": { 7176 "type": "array", 7177 "items": { 7178 "type": "string" 7179 } 7180 }, 7181 "oneofEmpty": { 7182 "type": "object", 7183 "properties": {} 7184 }, 7185 "oneofString": { 7186 "type": "string" 7187 }, 7188 "mapValue": { 7189 "type": "object", 7190 "additionalProperties": { 7191 "$ref": "#/definitions/examplepbNumericEnum" 7192 } 7193 }, 7194 "mappedStringValue": { 7195 "type": "object", 7196 "additionalProperties": { 7197 "type": "string" 7198 } 7199 }, 7200 "mappedNestedValue": { 7201 "type": "object", 7202 "additionalProperties": { 7203 "$ref": "#/definitions/ABitOfEverythingNested" 7204 } 7205 }, 7206 "nonConventionalNameValue": { 7207 "type": "string" 7208 }, 7209 "timestampValue": { 7210 "type": "string", 7211 "format": "date-time" 7212 }, 7213 "repeatedEnumValue": { 7214 "type": "array", 7215 "items": { 7216 "$ref": "#/definitions/examplepbNumericEnum" 7217 }, 7218 "title": "repeated enum value. it is comma-separated in query" 7219 }, 7220 "repeatedEnumAnnotation": { 7221 "type": "array", 7222 "items": { 7223 "$ref": "#/definitions/examplepbNumericEnum" 7224 }, 7225 "description": "Repeated numeric enum description.", 7226 "title": "Repeated numeric enum title" 7227 }, 7228 "enumValueAnnotation": { 7229 "$ref": "#/definitions/examplepbNumericEnum", 7230 "description": "Numeric enum description.", 7231 "title": "Numeric enum title" 7232 }, 7233 "repeatedStringAnnotation": { 7234 "type": "array", 7235 "items": { 7236 "type": "string" 7237 }, 7238 "description": "Repeated string description.", 7239 "title": "Repeated string title" 7240 }, 7241 "repeatedNestedAnnotation": { 7242 "type": "array", 7243 "items": { 7244 "type": "object", 7245 "$ref": "#/definitions/ABitOfEverythingNested" 7246 }, 7247 "description": "Repeated nested object description.", 7248 "title": "Repeated nested object title" 7249 }, 7250 "nestedAnnotation": { 7251 "$ref": "#/definitions/ABitOfEverythingNested", 7252 "description": "Nested object description.", 7253 "title": "Nested object title" 7254 }, 7255 "int64OverrideType": { 7256 "type": "integer", 7257 "format": "int64" 7258 }, 7259 "requiredStringViaFieldBehaviorAnnotation": { 7260 "type": "string", 7261 "title": "mark a field as required in Open API definition" 7262 }, 7263 "outputOnlyStringViaFieldBehaviorAnnotation": { 7264 "type": "string", 7265 "title": "mark a field as readonly in Open API definition", 7266 "readOnly": true 7267 }, 7268 "optionalStringValue": { 7269 "type": "string" 7270 }, 7271 "productId": { 7272 "type": "array", 7273 "items": { 7274 "type": "string", 7275 "maxLength": 19, 7276 "minLength": 1, 7277 "pattern": "^[0-9]+$" 7278 }, 7279 "description": "Only digits are allowed.", 7280 "title": "Test openapiv2 generation of repeated fields" 7281 }, 7282 "optionalStringField": { 7283 "type": "string", 7284 "title": "Test openapiv2 generation of required fields with annotation and jsonschema to reproduce" 7285 }, 7286 "requiredStringField1": { 7287 "type": "string" 7288 }, 7289 "requiredStringField2": { 7290 "type": "string" 7291 }, 7292 "required_field_behavior_json_name_custom": { 7293 "type": "string", 7294 "title": "Test openapiv2 handling of required json_name fields" 7295 }, 7296 "required_field_schema_json_name_custom": { 7297 "type": "string" 7298 }, 7299 "trailingOnly": { 7300 "type": "string", 7301 "title": "Trailing only" 7302 }, 7303 "trailingOnlyDot": { 7304 "type": "string", 7305 "description": "Trailing only dot." 7306 }, 7307 "trailingBoth": { 7308 "type": "string", 7309 "description": "Trailing both.", 7310 "title": "Leading both" 7311 }, 7312 "trailingMultiline": { 7313 "type": "string", 7314 "description": "This is an example of a multi-line comment.\n\nTrailing multiline.", 7315 "title": "Leading multiline" 7316 }, 7317 "uuids": { 7318 "type": "array", 7319 "items": { 7320 "type": "string", 7321 "format": "uuid" 7322 }, 7323 "title": "Specify a custom format of repeated field items" 7324 } 7325 }, 7326 "description": "Intentionally complicated message type to cover many features of Protobuf.", 7327 "title": "A bit of everything", 7328 "externalDocs": { 7329 "description": "Find out more about ABitOfEverything", 7330 "url": "https://github.com/grpc-ecosystem/grpc-gateway" 7331 }, 7332 "required": [ 7333 "uuid", 7334 "int64Value", 7335 "doubleValue", 7336 "required_field_schema_json_name_custom", 7337 "floatValue", 7338 "requiredStringViaFieldBehaviorAnnotation", 7339 "requiredStringField1", 7340 "requiredStringField2", 7341 "required_field_behavior_json_name_custom" 7342 ], 7343 "x-a-bit-of-everything-foo": "bar" 7344 }, 7345 "examplepbABitOfEverythingRepeated": { 7346 "type": "object", 7347 "example": { 7348 "path_repeated_bool_value": [ 7349 true, 7350 true, 7351 false, 7352 true 7353 ], 7354 "path_repeated_int32_value": [ 7355 1, 7356 2, 7357 3 7358 ] 7359 }, 7360 "properties": { 7361 "pathRepeatedFloatValue": { 7362 "type": "array", 7363 "items": { 7364 "type": "number", 7365 "format": "float" 7366 }, 7367 "title": "repeated values. they are comma-separated in path" 7368 }, 7369 "pathRepeatedDoubleValue": { 7370 "type": "array", 7371 "items": { 7372 "type": "number", 7373 "format": "double" 7374 } 7375 }, 7376 "pathRepeatedInt64Value": { 7377 "type": "array", 7378 "items": { 7379 "type": "string", 7380 "format": "int64" 7381 } 7382 }, 7383 "pathRepeatedUint64Value": { 7384 "type": "array", 7385 "items": { 7386 "type": "string", 7387 "format": "uint64" 7388 } 7389 }, 7390 "pathRepeatedInt32Value": { 7391 "type": "array", 7392 "items": { 7393 "type": "integer", 7394 "format": "int32" 7395 } 7396 }, 7397 "pathRepeatedFixed64Value": { 7398 "type": "array", 7399 "items": { 7400 "type": "string", 7401 "format": "uint64" 7402 } 7403 }, 7404 "pathRepeatedFixed32Value": { 7405 "type": "array", 7406 "items": { 7407 "type": "integer", 7408 "format": "int64" 7409 } 7410 }, 7411 "pathRepeatedBoolValue": { 7412 "type": "array", 7413 "items": { 7414 "type": "boolean" 7415 } 7416 }, 7417 "pathRepeatedStringValue": { 7418 "type": "array", 7419 "items": { 7420 "type": "string" 7421 } 7422 }, 7423 "pathRepeatedBytesValue": { 7424 "type": "array", 7425 "items": { 7426 "type": "string", 7427 "format": "byte" 7428 } 7429 }, 7430 "pathRepeatedUint32Value": { 7431 "type": "array", 7432 "items": { 7433 "type": "integer", 7434 "format": "int64" 7435 } 7436 }, 7437 "pathRepeatedEnumValue": { 7438 "type": "array", 7439 "items": { 7440 "$ref": "#/definitions/examplepbNumericEnum" 7441 } 7442 }, 7443 "pathRepeatedSfixed32Value": { 7444 "type": "array", 7445 "items": { 7446 "type": "integer", 7447 "format": "int32" 7448 } 7449 }, 7450 "pathRepeatedSfixed64Value": { 7451 "type": "array", 7452 "items": { 7453 "type": "string", 7454 "format": "int64" 7455 } 7456 }, 7457 "pathRepeatedSint32Value": { 7458 "type": "array", 7459 "items": { 7460 "type": "integer", 7461 "format": "int32" 7462 } 7463 }, 7464 "pathRepeatedSint64Value": { 7465 "type": "array", 7466 "items": { 7467 "type": "string", 7468 "format": "int64" 7469 } 7470 } 7471 }, 7472 "title": "ABitOfEverythingRepeated is used to validate repeated path parameter functionality" 7473 }, 7474 "examplepbABitOfEverythingServiceUpdateBody": { 7475 "type": "object", 7476 "example": { 7477 "int64_value": 12, 7478 "double_value": 12.3 7479 }, 7480 "properties": { 7481 "singleNested": { 7482 "$ref": "#/definitions/ABitOfEverythingNested" 7483 }, 7484 "nested": { 7485 "type": "array", 7486 "items": { 7487 "type": "object", 7488 "$ref": "#/definitions/ABitOfEverythingNested" 7489 } 7490 }, 7491 "floatValue": { 7492 "type": "number", 7493 "format": "float", 7494 "default": "0.2", 7495 "description": "Float value field" 7496 }, 7497 "doubleValue": { 7498 "type": "number", 7499 "format": "double" 7500 }, 7501 "int64Value": { 7502 "type": "string", 7503 "format": "int64" 7504 }, 7505 "uint64Value": { 7506 "type": "string", 7507 "format": "uint64" 7508 }, 7509 "int32Value": { 7510 "type": "integer", 7511 "format": "int32" 7512 }, 7513 "fixed64Value": { 7514 "type": "string", 7515 "format": "uint64" 7516 }, 7517 "fixed32Value": { 7518 "type": "integer", 7519 "format": "int64" 7520 }, 7521 "boolValue": { 7522 "type": "boolean" 7523 }, 7524 "stringValue": { 7525 "type": "string" 7526 }, 7527 "bytesValue": { 7528 "type": "string", 7529 "format": "byte" 7530 }, 7531 "uint32Value": { 7532 "type": "integer", 7533 "format": "int64" 7534 }, 7535 "enumValue": { 7536 "$ref": "#/definitions/examplepbNumericEnum" 7537 }, 7538 "pathEnumValue": { 7539 "$ref": "#/definitions/pathenumPathEnum" 7540 }, 7541 "nestedPathEnumValue": { 7542 "$ref": "#/definitions/MessagePathEnumNestedPathEnum" 7543 }, 7544 "sfixed32Value": { 7545 "type": "integer", 7546 "format": "int32" 7547 }, 7548 "sfixed64Value": { 7549 "type": "string", 7550 "format": "int64" 7551 }, 7552 "sint32Value": { 7553 "type": "integer", 7554 "format": "int32" 7555 }, 7556 "sint64Value": { 7557 "type": "string", 7558 "format": "int64" 7559 }, 7560 "repeatedStringValue": { 7561 "type": "array", 7562 "items": { 7563 "type": "string" 7564 } 7565 }, 7566 "oneofEmpty": { 7567 "type": "object", 7568 "properties": {} 7569 }, 7570 "oneofString": { 7571 "type": "string" 7572 }, 7573 "mapValue": { 7574 "type": "object", 7575 "additionalProperties": { 7576 "$ref": "#/definitions/examplepbNumericEnum" 7577 } 7578 }, 7579 "mappedStringValue": { 7580 "type": "object", 7581 "additionalProperties": { 7582 "type": "string" 7583 } 7584 }, 7585 "mappedNestedValue": { 7586 "type": "object", 7587 "additionalProperties": { 7588 "$ref": "#/definitions/ABitOfEverythingNested" 7589 } 7590 }, 7591 "nonConventionalNameValue": { 7592 "type": "string" 7593 }, 7594 "timestampValue": { 7595 "type": "string", 7596 "format": "date-time" 7597 }, 7598 "repeatedEnumValue": { 7599 "type": "array", 7600 "items": { 7601 "$ref": "#/definitions/examplepbNumericEnum" 7602 }, 7603 "title": "repeated enum value. it is comma-separated in query" 7604 }, 7605 "repeatedEnumAnnotation": { 7606 "type": "array", 7607 "items": { 7608 "$ref": "#/definitions/examplepbNumericEnum" 7609 }, 7610 "description": "Repeated numeric enum description.", 7611 "title": "Repeated numeric enum title" 7612 }, 7613 "enumValueAnnotation": { 7614 "$ref": "#/definitions/examplepbNumericEnum", 7615 "description": "Numeric enum description.", 7616 "title": "Numeric enum title" 7617 }, 7618 "repeatedStringAnnotation": { 7619 "type": "array", 7620 "items": { 7621 "type": "string" 7622 }, 7623 "description": "Repeated string description.", 7624 "title": "Repeated string title" 7625 }, 7626 "repeatedNestedAnnotation": { 7627 "type": "array", 7628 "items": { 7629 "type": "object", 7630 "$ref": "#/definitions/ABitOfEverythingNested" 7631 }, 7632 "description": "Repeated nested object description.", 7633 "title": "Repeated nested object title" 7634 }, 7635 "nestedAnnotation": { 7636 "$ref": "#/definitions/ABitOfEverythingNested", 7637 "description": "Nested object description.", 7638 "title": "Nested object title" 7639 }, 7640 "int64OverrideType": { 7641 "type": "integer", 7642 "format": "int64" 7643 }, 7644 "requiredStringViaFieldBehaviorAnnotation": { 7645 "type": "string", 7646 "title": "mark a field as required in Open API definition" 7647 }, 7648 "outputOnlyStringViaFieldBehaviorAnnotation": { 7649 "type": "string", 7650 "title": "mark a field as readonly in Open API definition", 7651 "readOnly": true 7652 }, 7653 "optionalStringValue": { 7654 "type": "string" 7655 }, 7656 "productId": { 7657 "type": "array", 7658 "items": { 7659 "type": "string", 7660 "maxLength": 19, 7661 "minLength": 1, 7662 "pattern": "^[0-9]+$" 7663 }, 7664 "description": "Only digits are allowed.", 7665 "title": "Test openapiv2 generation of repeated fields" 7666 }, 7667 "optionalStringField": { 7668 "type": "string", 7669 "title": "Test openapiv2 generation of required fields with annotation and jsonschema to reproduce" 7670 }, 7671 "requiredStringField1": { 7672 "type": "string" 7673 }, 7674 "requiredStringField2": { 7675 "type": "string" 7676 }, 7677 "required_field_behavior_json_name_custom": { 7678 "type": "string", 7679 "title": "Test openapiv2 handling of required json_name fields" 7680 }, 7681 "required_field_schema_json_name_custom": { 7682 "type": "string" 7683 }, 7684 "trailingOnly": { 7685 "type": "string", 7686 "title": "Trailing only" 7687 }, 7688 "trailingOnlyDot": { 7689 "type": "string", 7690 "description": "Trailing only dot." 7691 }, 7692 "trailingBoth": { 7693 "type": "string", 7694 "description": "Trailing both.", 7695 "title": "Leading both" 7696 }, 7697 "trailingMultiline": { 7698 "type": "string", 7699 "description": "This is an example of a multi-line comment.\n\nTrailing multiline.", 7700 "title": "Leading multiline" 7701 }, 7702 "uuids": { 7703 "type": "array", 7704 "items": { 7705 "type": "string", 7706 "format": "uuid" 7707 }, 7708 "title": "Specify a custom format of repeated field items" 7709 } 7710 }, 7711 "description": "Intentionally complicated message type to cover many features of Protobuf.", 7712 "title": "A bit of everything", 7713 "externalDocs": { 7714 "description": "Find out more about ABitOfEverything", 7715 "url": "https://github.com/grpc-ecosystem/grpc-gateway" 7716 }, 7717 "required": [ 7718 "int64Value", 7719 "doubleValue", 7720 "required_field_schema_json_name_custom", 7721 "floatValue", 7722 "requiredStringViaFieldBehaviorAnnotation", 7723 "requiredStringField1", 7724 "requiredStringField2", 7725 "required_field_behavior_json_name_custom" 7726 ], 7727 "x-a-bit-of-everything-foo": "bar" 7728 }, 7729 "examplepbBar": { 7730 "type": "object", 7731 "properties": { 7732 "id": { 7733 "type": "string" 7734 } 7735 }, 7736 "required": [ 7737 "id" 7738 ] 7739 }, 7740 "examplepbBody": { 7741 "type": "object", 7742 "properties": { 7743 "name": { 7744 "type": "string" 7745 } 7746 } 7747 }, 7748 "examplepbBook": { 7749 "type": "object", 7750 "properties": { 7751 "name": { 7752 "type": "string", 7753 "description": "The resource name of the book.\n\nFormat: `publishers/{publisher}/books/{book}`\n\nExample: `publishers/1257894000000000000/books/my-book`" 7754 }, 7755 "id": { 7756 "type": "string", 7757 "description": "Output only. The book's ID.", 7758 "readOnly": true 7759 }, 7760 "createTime": { 7761 "type": "string", 7762 "format": "date-time", 7763 "description": "Output only. Creation time of the book.", 7764 "readOnly": true 7765 } 7766 }, 7767 "description": "An example resource type from AIP-123 used to test the behavior described in\nthe CreateBookRequest message.\n\nSee: https://google.aip.dev/123" 7768 }, 7769 "examplepbCheckStatusResponse": { 7770 "type": "object", 7771 "properties": { 7772 "status": { 7773 "$ref": "#/definitions/rpcStatus" 7774 } 7775 } 7776 }, 7777 "examplepbErrorObject": { 7778 "type": "object", 7779 "properties": { 7780 "code": { 7781 "type": "integer", 7782 "format": "integer", 7783 "description": "Response code", 7784 "title": "code", 7785 "pattern": "^[0-9]$" 7786 }, 7787 "message": { 7788 "type": "string", 7789 "description": "Response message", 7790 "title": "message", 7791 "pattern": "^[a-zA-Z0-9]{1, 32}$" 7792 } 7793 } 7794 }, 7795 "examplepbErrorResponse": { 7796 "type": "object", 7797 "properties": { 7798 "correlationId": { 7799 "type": "string", 7800 "format": "uuid", 7801 "example": "2438ac3c-37eb-4902-adef-ed16b4431030", 7802 "description": "Unique event identifier for server requests", 7803 "title": "x-correlation-id", 7804 "pattern": "^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$" 7805 }, 7806 "error": { 7807 "$ref": "#/definitions/examplepbErrorObject" 7808 } 7809 } 7810 }, 7811 "examplepbNumericEnum": { 7812 "type": "string", 7813 "enum": [ 7814 "ZERO", 7815 "ONE" 7816 ], 7817 "default": "ZERO", 7818 "description": "NumericEnum is one or zero.\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1" 7819 }, 7820 "examplepbRequiredMessageTypeRequest": { 7821 "type": "object", 7822 "properties": { 7823 "id": { 7824 "type": "string" 7825 }, 7826 "foo": { 7827 "$ref": "#/definitions/protoexamplepbFoo" 7828 } 7829 }, 7830 "title": "Required message type -\u003e OpenAPI\nhttps://github.com/grpc-ecosystem/grpc-gateway/issues/2837", 7831 "required": [ 7832 "id", 7833 "foo" 7834 ] 7835 }, 7836 "examplepbSnakeEnumResponse": { 7837 "type": "object" 7838 }, 7839 "examplepbsnake_case_0_enum": { 7840 "type": "string", 7841 "enum": [ 7842 "value_e", 7843 "value_f" 7844 ], 7845 "default": "value_e", 7846 "description": "- value_e: buf:lint:ignore ENUM_VALUE_UPPER_SNAKE_CASE\n - value_f: buf:lint:ignore ENUM_VALUE_UPPER_SNAKE_CASE", 7847 "title": "Ignoring lint warnings as this enum type exist to validate proper functionality\nfor projects that don't follow these lint rules.\nbuf:lint:ignore ENUM_PASCAL_CASE" 7848 }, 7849 "examplepbsnake_case_enum": { 7850 "type": "string", 7851 "enum": [ 7852 "value_c", 7853 "value_d" 7854 ], 7855 "default": "value_c", 7856 "description": "- value_c: buf:lint:ignore ENUM_VALUE_UPPER_SNAKE_CASE\n - value_d: buf:lint:ignore ENUM_VALUE_UPPER_SNAKE_CASE", 7857 "title": "Ignoring lint warnings as this enum type exist to validate proper functionality\nfor projects that don't follow these lint rules.\nbuf:lint:ignore ENUM_PASCAL_CASE" 7858 }, 7859 "oneofenumExampleEnum": { 7860 "type": "string", 7861 "enum": [ 7862 "EXAMPLE_ENUM_UNSPECIFIED", 7863 "EXAMPLE_ENUM_FIRST" 7864 ], 7865 "default": "EXAMPLE_ENUM_UNSPECIFIED" 7866 }, 7867 "pathenumPathEnum": { 7868 "type": "string", 7869 "enum": [ 7870 "ABC", 7871 "DEF" 7872 ], 7873 "default": "ABC" 7874 }, 7875 "pathenumsnake_case_for_import": { 7876 "type": "string", 7877 "enum": [ 7878 "value_x", 7879 "value_y" 7880 ], 7881 "default": "value_x", 7882 "description": "- value_x: buf:lint:ignore ENUM_VALUE_UPPER_SNAKE_CASE\n - value_y: buf:lint:ignore ENUM_VALUE_UPPER_SNAKE_CASE", 7883 "title": "Ignoring lint warnings as this enum type exist to validate proper functionality\nfor projects that don't follow these lint rules.\nbuf:lint:ignore ENUM_PASCAL_CASE" 7884 }, 7885 "protobufAny": { 7886 "type": "object", 7887 "properties": { 7888 "@type": { 7889 "type": "string", 7890 "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." 7891 } 7892 }, 7893 "additionalProperties": {}, 7894 "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(\u0026foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n\nExample 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\nExample 4: Pack and unpack a message in Go\n\n foo := \u0026pb.Foo{...}\n any, err := anypb.New(foo)\n if err != nil {\n ...\n }\n ...\n foo := \u0026pb.Foo{}\n if err := any.UnmarshalTo(foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\n\nJSON\n\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": \u003cstring\u003e,\n \"lastName\": \u003cstring\u003e\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" 7895 }, 7896 "protoexamplepbFoo": { 7897 "type": "object", 7898 "properties": { 7899 "bar": { 7900 "$ref": "#/definitions/examplepbBar" 7901 } 7902 }, 7903 "required": [ 7904 "bar" 7905 ] 7906 }, 7907 "rpcStatus": { 7908 "type": "object", 7909 "properties": { 7910 "code": { 7911 "type": "integer", 7912 "format": "int32", 7913 "description": "The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code]." 7914 }, 7915 "message": { 7916 "type": "string", 7917 "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\n[google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client." 7918 }, 7919 "details": { 7920 "type": "array", 7921 "items": { 7922 "type": "object", 7923 "$ref": "#/definitions/protobufAny" 7924 }, 7925 "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use." 7926 } 7927 }, 7928 "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). Each `Status` message contains\nthree pieces of data: error code, error message, and error details.\n\nYou can find out more about this error model and how to work with it in the\n[API Design Guide](https://cloud.google.com/apis/design/errors)." 7929 }, 7930 "subStringMessage": { 7931 "type": "object", 7932 "properties": { 7933 "value": { 7934 "type": "string" 7935 } 7936 } 7937 } 7938 }, 7939 "securityDefinitions": { 7940 "ApiKeyAuth": { 7941 "type": "apiKey", 7942 "name": "X-API-Key", 7943 "in": "header", 7944 "x-amazon-apigateway-authorizer": { 7945 "authorizerResultTtlInSeconds": 60, 7946 "type": "token" 7947 }, 7948 "x-amazon-apigateway-authtype": "oauth2" 7949 }, 7950 "BasicAuth": { 7951 "type": "basic" 7952 }, 7953 "OAuth2": { 7954 "type": "oauth2", 7955 "flow": "accessCode", 7956 "authorizationUrl": "https://example.com/oauth/authorize", 7957 "tokenUrl": "https://example.com/oauth/token", 7958 "scopes": { 7959 "admin": "Grants read and write access to administrative information", 7960 "read": "Grants read access", 7961 "write": "Grants write access" 7962 } 7963 } 7964 }, 7965 "security": [ 7966 { 7967 "ApiKeyAuth": [], 7968 "BasicAuth": [] 7969 }, 7970 { 7971 "ApiKeyAuth": [], 7972 "OAuth2": [ 7973 "read", 7974 "write" 7975 ] 7976 } 7977 ], 7978 "externalDocs": { 7979 "description": "More about gRPC-Gateway", 7980 "url": "https://github.com/grpc-ecosystem/grpc-gateway" 7981 }, 7982 "x-grpc-gateway-baz-list": [ 7983 "one", 7984 true 7985 ], 7986 "x-grpc-gateway-foo": "bar" 7987 }