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  }