{ "swagger": "2.0", "info": { "title": "A Bit of Everything", "version": "1.0", "contact": { "name": "gRPC-Gateway project", "url": "https://github.com/grpc-ecosystem/grpc-gateway", "email": "none@example.com" }, "license": { "name": "BSD 3-Clause License", "url": "https://github.com/grpc-ecosystem/grpc-gateway/blob/main/LICENSE" }, "x-something-something": "yadda" }, "tags": [ { "name": "echo rpc", "description": "Echo Rpc description", "x-traitTag": true }, { "name": "ABitOfEverything", "description": "ABitOfEverythingService description -- which should not be used in place of the documentation comment!", "externalDocs": { "description": "Find out more about EchoService", "url": "https://github.com/grpc-ecosystem/grpc-gateway" } }, { "name": "camelCaseServiceName" }, { "name": "AnotherServiceWithNoBindings" }, { "name": "SnakeEnumService" } ], "schemes": [ "http", "https", "wss" ], "consumes": [ "application/json", "application/x-foo-mime" ], "produces": [ "application/json", "application/x-foo-mime" ], "paths": { "/v1/example/a_bit_of_everything": { "post": { "operationId": "ABitOfEverythingService_CreateBody", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/examplepbABitOfEverything" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "string", "format": "string" } }, "418": { "description": "I'm a teapot.", "schema": { "$ref": "#/definitions/examplepbNumericEnum" } }, "500": { "description": "Server error", "schema": { "$ref": "#/definitions/examplepbErrorResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "body", "description": "Intentionally complicated message type to cover many features of Protobuf.", "in": "body", "required": true, "schema": { "$ref": "#/definitions/examplepbABitOfEverything" } } ], "tags": [ "ABitOfEverythingService" ] } }, "/v1/example/a_bit_of_everything/echo/{value}": { "get": { "summary": "Summary: Echo rpc", "description": "Description Echo", "operationId": "ABitOfEverythingService_Echo", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/subStringMessage" }, "examples": { "application/json": { "value": "the input value" } } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "integer", "format": "integer" } }, "418": { "description": "I'm a teapot.", "schema": { "$ref": "#/definitions/examplepbNumericEnum" } }, "500": { "description": "Server error", "schema": { "$ref": "#/definitions/examplepbErrorResponse" } }, "503": { "description": "Returned when the resource is temporarily unavailable.", "schema": {}, "x-number": 100 }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "value", "in": "path", "required": true, "type": "string" } ], "tags": [ "echo rpc" ], "externalDocs": { "description": "Find out more Echo", "url": "https://github.com/grpc-ecosystem/grpc-gateway" } } }, "/v1/example/a_bit_of_everything/params/get/nested_enum/{singleNested.ok}": { "get": { "operationId": "ABitOfEverythingService_CheckNestedEnumGetQueryParams", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/examplepbABitOfEverything" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "string", "format": "string" } }, "418": { "description": "I'm a teapot.", "schema": { "$ref": "#/definitions/examplepbNumericEnum" } }, "500": { "description": "Server error", "schema": { "$ref": "#/definitions/examplepbErrorResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "singleNested.ok", "description": "DeepEnum description.", "in": "path", "required": true, "type": "string", "enum": [ "FALSE", "TRUE" ] }, { "name": "singleNested.name", "description": "name is nested field.", "in": "query", "required": false, "type": "string" }, { "name": "singleNested.amount", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "uuid", "in": "query", "required": true, "type": "string", "format": "uuid", "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}", "x-internal": true }, { "name": "floatValue", "description": "Float value field", "in": "query", "required": true, "type": "number", "format": "float", "default": "0.2" }, { "name": "doubleValue", "in": "query", "required": true, "type": "number", "format": "double" }, { "name": "int64Value", "in": "query", "required": true, "type": "string", "format": "int64" }, { "name": "uint64Value", "in": "query", "required": false, "type": "string", "format": "uint64" }, { "name": "int32Value", "in": "query", "required": false, "type": "integer", "format": "int32" }, { "name": "fixed64Value", "in": "query", "required": false, "type": "string", "format": "uint64" }, { "name": "fixed32Value", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "boolValue", "in": "query", "required": false, "type": "boolean" }, { "name": "stringValue", "in": "query", "required": false, "type": "string" }, { "name": "bytesValue", "in": "query", "required": false, "type": "string", "format": "byte" }, { "name": "uint32Value", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "enumValue", "description": " - ZERO: ZERO means 0\n - ONE: ONE means 1", "in": "query", "required": false, "type": "string", "enum": [ "ZERO", "ONE" ], "default": "ZERO" }, { "name": "pathEnumValue", "in": "query", "required": false, "type": "string", "enum": [ "ABC", "DEF" ], "default": "ABC" }, { "name": "nestedPathEnumValue", "in": "query", "required": false, "type": "string", "enum": [ "GHI", "JKL" ], "default": "GHI" }, { "name": "sfixed32Value", "in": "query", "required": false, "type": "integer", "format": "int32" }, { "name": "sfixed64Value", "in": "query", "required": false, "type": "string", "format": "int64" }, { "name": "sint32Value", "in": "query", "required": false, "type": "integer", "format": "int32" }, { "name": "sint64Value", "in": "query", "required": false, "type": "string", "format": "int64" }, { "name": "repeatedStringValue", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" }, { "name": "oneofEmpty", "in": "query", "required": false, "type": "object" }, { "name": "oneofString", "in": "query", "required": false, "type": "string" }, { "name": "mapValue", "description": "map of numeric enum", "in": "query", "required": false }, { "name": "mappedStringValue", "description": "Map of string title\n\nMap of string description.", "in": "query", "required": false, "type": "string" }, { "name": "mappedNestedValue", "in": "query", "required": false }, { "name": "nonConventionalNameValue", "in": "query", "required": false, "type": "string" }, { "name": "timestampValue", "in": "query", "required": false, "type": "string", "format": "date-time" }, { "name": "repeatedEnumValue", "description": "repeated enum value. it is comma-separated in query\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", "in": "query", "required": false, "type": "array", "items": { "type": "string", "enum": [ "ZERO", "ONE" ] }, "collectionFormat": "multi" }, { "name": "repeatedEnumAnnotation", "description": "Repeated numeric enum title\n\nRepeated numeric enum description.\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", "in": "query", "required": false, "type": "array", "items": { "type": "string", "enum": [ "ZERO", "ONE" ] }, "collectionFormat": "multi" }, { "name": "enumValueAnnotation", "description": "Numeric enum title\n\nNumeric enum description.\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", "in": "query", "required": false, "type": "string", "enum": [ "ZERO", "ONE" ], "default": "ZERO" }, { "name": "repeatedStringAnnotation", "description": "Repeated string title\n\nRepeated string description.", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" }, { "name": "nestedAnnotation.name", "description": "name is nested field.", "in": "query", "required": false, "type": "string" }, { "name": "nestedAnnotation.amount", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "int64OverrideType", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "requiredStringViaFieldBehaviorAnnotation", "description": "mark a field as required in Open API definition", "in": "query", "required": true, "type": "string" }, { "name": "outputOnlyStringViaFieldBehaviorAnnotation", "description": "mark a field as readonly in Open API definition", "in": "query", "required": false, "type": "string" }, { "name": "optionalStringValue", "in": "query", "required": false, "type": "string" }, { "name": "productId", "description": "Test openapiv2 generation of repeated fields\n\nOnly digits are allowed.", "in": "query", "required": false, "type": "array", "items": { "type": "string", "maxLength": 19, "minLength": 1, "pattern": "^[0-9]+$" }, "collectionFormat": "multi" }, { "name": "optionalStringField", "description": "Test openapiv2 generation of required fields with annotation and jsonschema to reproduce", "in": "query", "required": false, "type": "string" }, { "name": "requiredStringField1", "in": "query", "required": true, "type": "string" }, { "name": "requiredStringField2", "in": "query", "required": true, "type": "string" }, { "name": "required_field_behavior_json_name_custom", "description": "Test openapiv2 handling of required json_name fields", "in": "query", "required": true, "type": "string" }, { "name": "required_field_schema_json_name_custom", "in": "query", "required": true, "type": "string" }, { "name": "trailingOnly", "description": "Trailing only", "in": "query", "required": false, "type": "string" }, { "name": "trailingOnlyDot", "description": "Trailing only dot.", "in": "query", "required": false, "type": "string" }, { "name": "trailingBoth", "description": "Leading both\n\nTrailing both.", "in": "query", "required": false, "type": "string" }, { "name": "trailingMultiline", "description": "Leading multiline\n\nThis is an example of a multi-line comment.\n\nTrailing multiline.", "in": "query", "required": false, "type": "string" }, { "name": "uuids", "description": "Specify a custom format of repeated field items", "in": "query", "required": false, "type": "array", "items": { "type": "string", "format": "uuid" }, "collectionFormat": "multi" } ], "tags": [ "ABitOfEverythingService" ] } }, "/v1/example/a_bit_of_everything/params/get/{singleNested.name}": { "get": { "operationId": "ABitOfEverythingService_CheckGetQueryParams", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/examplepbABitOfEverything" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "string", "format": "string" } }, "418": { "description": "I'm a teapot.", "schema": { "$ref": "#/definitions/examplepbNumericEnum" } }, "500": { "description": "Server error", "schema": { "$ref": "#/definitions/examplepbErrorResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "singleNested.name", "description": "name is nested field.", "in": "path", "required": true, "type": "string" }, { "name": "singleNested.amount", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "singleNested.ok", "description": "DeepEnum description.\n\n - FALSE: FALSE is false.\n - TRUE: TRUE is true.", "in": "query", "required": false, "type": "string", "enum": [ "FALSE", "TRUE" ], "default": "FALSE" }, { "name": "uuid", "in": "query", "required": true, "type": "string", "format": "uuid", "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}", "x-internal": true }, { "name": "floatValue", "description": "Float value field", "in": "query", "required": true, "type": "number", "format": "float", "default": "0.2" }, { "name": "doubleValue", "in": "query", "required": true, "type": "number", "format": "double" }, { "name": "int64Value", "in": "query", "required": true, "type": "string", "format": "int64" }, { "name": "uint64Value", "in": "query", "required": false, "type": "string", "format": "uint64" }, { "name": "int32Value", "in": "query", "required": false, "type": "integer", "format": "int32" }, { "name": "fixed64Value", "in": "query", "required": false, "type": "string", "format": "uint64" }, { "name": "fixed32Value", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "boolValue", "in": "query", "required": false, "type": "boolean" }, { "name": "stringValue", "in": "query", "required": false, "type": "string" }, { "name": "bytesValue", "in": "query", "required": false, "type": "string", "format": "byte" }, { "name": "uint32Value", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "enumValue", "description": " - ZERO: ZERO means 0\n - ONE: ONE means 1", "in": "query", "required": false, "type": "string", "enum": [ "ZERO", "ONE" ], "default": "ZERO" }, { "name": "pathEnumValue", "in": "query", "required": false, "type": "string", "enum": [ "ABC", "DEF" ], "default": "ABC" }, { "name": "nestedPathEnumValue", "in": "query", "required": false, "type": "string", "enum": [ "GHI", "JKL" ], "default": "GHI" }, { "name": "sfixed32Value", "in": "query", "required": false, "type": "integer", "format": "int32" }, { "name": "sfixed64Value", "in": "query", "required": false, "type": "string", "format": "int64" }, { "name": "sint32Value", "in": "query", "required": false, "type": "integer", "format": "int32" }, { "name": "sint64Value", "in": "query", "required": false, "type": "string", "format": "int64" }, { "name": "repeatedStringValue", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" }, { "name": "oneofEmpty", "in": "query", "required": false, "type": "object" }, { "name": "oneofString", "in": "query", "required": false, "type": "string" }, { "name": "mapValue", "description": "map of numeric enum", "in": "query", "required": false }, { "name": "mappedStringValue", "description": "Map of string title\n\nMap of string description.", "in": "query", "required": false, "type": "string" }, { "name": "mappedNestedValue", "in": "query", "required": false }, { "name": "nonConventionalNameValue", "in": "query", "required": false, "type": "string" }, { "name": "timestampValue", "in": "query", "required": false, "type": "string", "format": "date-time" }, { "name": "repeatedEnumValue", "description": "repeated enum value. it is comma-separated in query\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", "in": "query", "required": false, "type": "array", "items": { "type": "string", "enum": [ "ZERO", "ONE" ] }, "collectionFormat": "multi" }, { "name": "repeatedEnumAnnotation", "description": "Repeated numeric enum title\n\nRepeated numeric enum description.\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", "in": "query", "required": false, "type": "array", "items": { "type": "string", "enum": [ "ZERO", "ONE" ] }, "collectionFormat": "multi" }, { "name": "enumValueAnnotation", "description": "Numeric enum title\n\nNumeric enum description.\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", "in": "query", "required": false, "type": "string", "enum": [ "ZERO", "ONE" ], "default": "ZERO" }, { "name": "repeatedStringAnnotation", "description": "Repeated string title\n\nRepeated string description.", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" }, { "name": "nestedAnnotation.amount", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "nestedAnnotation.ok", "description": "DeepEnum description.\n\n - FALSE: FALSE is false.\n - TRUE: TRUE is true.", "in": "query", "required": false, "type": "string", "enum": [ "FALSE", "TRUE" ], "default": "FALSE" }, { "name": "int64OverrideType", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "requiredStringViaFieldBehaviorAnnotation", "description": "mark a field as required in Open API definition", "in": "query", "required": true, "type": "string" }, { "name": "outputOnlyStringViaFieldBehaviorAnnotation", "description": "mark a field as readonly in Open API definition", "in": "query", "required": false, "type": "string" }, { "name": "optionalStringValue", "in": "query", "required": false, "type": "string" }, { "name": "productId", "description": "Test openapiv2 generation of repeated fields\n\nOnly digits are allowed.", "in": "query", "required": false, "type": "array", "items": { "type": "string", "maxLength": 19, "minLength": 1, "pattern": "^[0-9]+$" }, "collectionFormat": "multi" }, { "name": "optionalStringField", "description": "Test openapiv2 generation of required fields with annotation and jsonschema to reproduce", "in": "query", "required": false, "type": "string" }, { "name": "requiredStringField1", "in": "query", "required": true, "type": "string" }, { "name": "requiredStringField2", "in": "query", "required": true, "type": "string" }, { "name": "required_field_behavior_json_name_custom", "description": "Test openapiv2 handling of required json_name fields", "in": "query", "required": true, "type": "string" }, { "name": "required_field_schema_json_name_custom", "in": "query", "required": true, "type": "string" }, { "name": "trailingOnly", "description": "Trailing only", "in": "query", "required": false, "type": "string" }, { "name": "trailingOnlyDot", "description": "Trailing only dot.", "in": "query", "required": false, "type": "string" }, { "name": "trailingBoth", "description": "Leading both\n\nTrailing both.", "in": "query", "required": false, "type": "string" }, { "name": "trailingMultiline", "description": "Leading multiline\n\nThis is an example of a multi-line comment.\n\nTrailing multiline.", "in": "query", "required": false, "type": "string" }, { "name": "uuids", "description": "Specify a custom format of repeated field items", "in": "query", "required": false, "type": "array", "items": { "type": "string", "format": "uuid" }, "collectionFormat": "multi" } ], "tags": [ "ABitOfEverythingService" ] } }, "/v1/example/a_bit_of_everything/params/post/{stringValue}": { "post": { "operationId": "ABitOfEverythingService_CheckPostQueryParams", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/examplepbABitOfEverything" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "string", "format": "string" } }, "418": { "description": "I'm a teapot.", "schema": { "$ref": "#/definitions/examplepbNumericEnum" } }, "500": { "description": "Server error", "schema": { "$ref": "#/definitions/examplepbErrorResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "stringValue", "in": "path", "required": true, "type": "string" }, { "name": "singleNested", "in": "body", "required": true, "schema": { "$ref": "#/definitions/ABitOfEverythingNested" } }, { "name": "uuid", "in": "query", "required": true, "type": "string", "format": "uuid", "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}", "x-internal": true }, { "name": "floatValue", "description": "Float value field", "in": "query", "required": true, "type": "number", "format": "float", "default": "0.2" }, { "name": "doubleValue", "in": "query", "required": true, "type": "number", "format": "double" }, { "name": "int64Value", "in": "query", "required": true, "type": "string", "format": "int64" }, { "name": "uint64Value", "in": "query", "required": false, "type": "string", "format": "uint64" }, { "name": "int32Value", "in": "query", "required": false, "type": "integer", "format": "int32" }, { "name": "fixed64Value", "in": "query", "required": false, "type": "string", "format": "uint64" }, { "name": "fixed32Value", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "boolValue", "in": "query", "required": false, "type": "boolean" }, { "name": "bytesValue", "in": "query", "required": false, "type": "string", "format": "byte" }, { "name": "uint32Value", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "enumValue", "description": " - ZERO: ZERO means 0\n - ONE: ONE means 1", "in": "query", "required": false, "type": "string", "enum": [ "ZERO", "ONE" ], "default": "ZERO" }, { "name": "pathEnumValue", "in": "query", "required": false, "type": "string", "enum": [ "ABC", "DEF" ], "default": "ABC" }, { "name": "nestedPathEnumValue", "in": "query", "required": false, "type": "string", "enum": [ "GHI", "JKL" ], "default": "GHI" }, { "name": "sfixed32Value", "in": "query", "required": false, "type": "integer", "format": "int32" }, { "name": "sfixed64Value", "in": "query", "required": false, "type": "string", "format": "int64" }, { "name": "sint32Value", "in": "query", "required": false, "type": "integer", "format": "int32" }, { "name": "sint64Value", "in": "query", "required": false, "type": "string", "format": "int64" }, { "name": "repeatedStringValue", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" }, { "name": "oneofEmpty", "in": "query", "required": false, "type": "object" }, { "name": "oneofString", "in": "query", "required": false, "type": "string" }, { "name": "mapValue", "description": "map of numeric enum", "in": "query", "required": false }, { "name": "mappedStringValue", "description": "Map of string title\n\nMap of string description.", "in": "query", "required": false, "type": "string" }, { "name": "mappedNestedValue", "in": "query", "required": false }, { "name": "nonConventionalNameValue", "in": "query", "required": false, "type": "string" }, { "name": "timestampValue", "in": "query", "required": false, "type": "string", "format": "date-time" }, { "name": "repeatedEnumValue", "description": "repeated enum value. it is comma-separated in query\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", "in": "query", "required": false, "type": "array", "items": { "type": "string", "enum": [ "ZERO", "ONE" ] }, "collectionFormat": "multi" }, { "name": "repeatedEnumAnnotation", "description": "Repeated numeric enum title\n\nRepeated numeric enum description.\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", "in": "query", "required": false, "type": "array", "items": { "type": "string", "enum": [ "ZERO", "ONE" ] }, "collectionFormat": "multi" }, { "name": "enumValueAnnotation", "description": "Numeric enum title\n\nNumeric enum description.\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", "in": "query", "required": false, "type": "string", "enum": [ "ZERO", "ONE" ], "default": "ZERO" }, { "name": "repeatedStringAnnotation", "description": "Repeated string title\n\nRepeated string description.", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" }, { "name": "nestedAnnotation.name", "description": "name is nested field.", "in": "query", "required": false, "type": "string" }, { "name": "nestedAnnotation.amount", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "nestedAnnotation.ok", "description": "DeepEnum description.\n\n - FALSE: FALSE is false.\n - TRUE: TRUE is true.", "in": "query", "required": false, "type": "string", "enum": [ "FALSE", "TRUE" ], "default": "FALSE" }, { "name": "int64OverrideType", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "requiredStringViaFieldBehaviorAnnotation", "description": "mark a field as required in Open API definition", "in": "query", "required": true, "type": "string" }, { "name": "outputOnlyStringViaFieldBehaviorAnnotation", "description": "mark a field as readonly in Open API definition", "in": "query", "required": false, "type": "string" }, { "name": "optionalStringValue", "in": "query", "required": false, "type": "string" }, { "name": "productId", "description": "Test openapiv2 generation of repeated fields\n\nOnly digits are allowed.", "in": "query", "required": false, "type": "array", "items": { "type": "string", "maxLength": 19, "minLength": 1, "pattern": "^[0-9]+$" }, "collectionFormat": "multi" }, { "name": "optionalStringField", "description": "Test openapiv2 generation of required fields with annotation and jsonschema to reproduce", "in": "query", "required": false, "type": "string" }, { "name": "requiredStringField1", "in": "query", "required": true, "type": "string" }, { "name": "requiredStringField2", "in": "query", "required": true, "type": "string" }, { "name": "required_field_behavior_json_name_custom", "description": "Test openapiv2 handling of required json_name fields", "in": "query", "required": true, "type": "string" }, { "name": "required_field_schema_json_name_custom", "in": "query", "required": true, "type": "string" }, { "name": "trailingOnly", "description": "Trailing only", "in": "query", "required": false, "type": "string" }, { "name": "trailingOnlyDot", "description": "Trailing only dot.", "in": "query", "required": false, "type": "string" }, { "name": "trailingBoth", "description": "Leading both\n\nTrailing both.", "in": "query", "required": false, "type": "string" }, { "name": "trailingMultiline", "description": "Leading multiline\n\nThis is an example of a multi-line comment.\n\nTrailing multiline.", "in": "query", "required": false, "type": "string" }, { "name": "uuids", "description": "Specify a custom format of repeated field items", "in": "query", "required": false, "type": "array", "items": { "type": "string", "format": "uuid" }, "collectionFormat": "multi" } ], "tags": [ "ABitOfEverythingService" ] } }, "/v1/example/a_bit_of_everything/query/{uuidName}": { "get": { "operationId": "ABitOfEverythingService_GetQuery", "responses": { "200": { "description": "A successful response.", "schema": { "type": "object", "properties": {} } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "string", "format": "string" } }, "418": { "description": "I'm a teapot.", "schema": { "$ref": "#/definitions/examplepbNumericEnum" } }, "500": { "description": "Server error", "schema": { "$ref": "#/definitions/examplepbErrorResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "uuidName", "in": "path", "required": true, "type": "string", "format": "uuid", "x-internal": true }, { "name": "singleNested.name", "description": "name is nested field.", "in": "query", "required": false, "type": "string" }, { "name": "singleNested.amount", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "singleNested.ok", "description": "DeepEnum description.\n\n - FALSE: FALSE is false.\n - TRUE: TRUE is true.", "in": "query", "required": false, "type": "string", "enum": [ "FALSE", "TRUE" ], "default": "FALSE" }, { "name": "floatValue", "description": "Float value field", "in": "query", "required": true, "type": "number", "format": "float", "default": "0.2" }, { "name": "doubleValue", "in": "query", "required": true, "type": "number", "format": "double" }, { "name": "int64Value", "in": "query", "required": true, "type": "string", "format": "int64" }, { "name": "uint64Value", "in": "query", "required": false, "type": "string", "format": "uint64" }, { "name": "int32Value", "in": "query", "required": false, "type": "integer", "format": "int32" }, { "name": "fixed64Value", "in": "query", "required": false, "type": "string", "format": "uint64" }, { "name": "fixed32Value", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "boolValue", "in": "query", "required": false, "type": "boolean" }, { "name": "stringValue", "in": "query", "required": false, "type": "string" }, { "name": "bytesValue", "in": "query", "required": false, "type": "string", "format": "byte" }, { "name": "uint32Value", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "enumValue", "description": " - ZERO: ZERO means 0\n - ONE: ONE means 1", "in": "query", "required": false, "type": "string", "enum": [ "ZERO", "ONE" ], "default": "ZERO" }, { "name": "pathEnumValue", "in": "query", "required": false, "type": "string", "enum": [ "ABC", "DEF" ], "default": "ABC" }, { "name": "nestedPathEnumValue", "in": "query", "required": false, "type": "string", "enum": [ "GHI", "JKL" ], "default": "GHI" }, { "name": "sfixed32Value", "in": "query", "required": false, "type": "integer", "format": "int32" }, { "name": "sfixed64Value", "in": "query", "required": false, "type": "string", "format": "int64" }, { "name": "sint32Value", "in": "query", "required": false, "type": "integer", "format": "int32" }, { "name": "sint64Value", "in": "query", "required": false, "type": "string", "format": "int64" }, { "name": "repeatedStringValue", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" }, { "name": "oneofEmpty", "in": "query", "required": false, "type": "object" }, { "name": "oneofString", "in": "query", "required": false, "type": "string" }, { "name": "mapValue", "description": "map of numeric enum", "in": "query", "required": false }, { "name": "mappedStringValue", "description": "Map of string title\n\nMap of string description.", "in": "query", "required": false, "type": "string" }, { "name": "mappedNestedValue", "in": "query", "required": false }, { "name": "nonConventionalNameValue", "in": "query", "required": false, "type": "string" }, { "name": "timestampValue", "in": "query", "required": false, "type": "string", "format": "date-time" }, { "name": "repeatedEnumValue", "description": "repeated enum value. it is comma-separated in query\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", "in": "query", "required": false, "type": "array", "items": { "type": "string", "enum": [ "ZERO", "ONE" ] }, "collectionFormat": "multi" }, { "name": "repeatedEnumAnnotation", "description": "Repeated numeric enum title\n\nRepeated numeric enum description.\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", "in": "query", "required": false, "type": "array", "items": { "type": "string", "enum": [ "ZERO", "ONE" ] }, "collectionFormat": "multi" }, { "name": "enumValueAnnotation", "description": "Numeric enum title\n\nNumeric enum description.\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", "in": "query", "required": false, "type": "string", "enum": [ "ZERO", "ONE" ], "default": "ZERO" }, { "name": "repeatedStringAnnotation", "description": "Repeated string title\n\nRepeated string description.", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" }, { "name": "nestedAnnotation.name", "description": "name is nested field.", "in": "query", "required": false, "type": "string" }, { "name": "nestedAnnotation.amount", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "nestedAnnotation.ok", "description": "DeepEnum description.\n\n - FALSE: FALSE is false.\n - TRUE: TRUE is true.", "in": "query", "required": false, "type": "string", "enum": [ "FALSE", "TRUE" ], "default": "FALSE" }, { "name": "int64OverrideType", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "requiredStringViaFieldBehaviorAnnotation", "description": "mark a field as required in Open API definition", "in": "query", "required": true, "type": "string" }, { "name": "outputOnlyStringViaFieldBehaviorAnnotation", "description": "mark a field as readonly in Open API definition", "in": "query", "required": false, "type": "string" }, { "name": "optionalStringValue", "in": "query", "required": false, "type": "string" }, { "name": "productId", "description": "Test openapiv2 generation of repeated fields\n\nOnly digits are allowed.", "in": "query", "required": false, "type": "array", "items": { "type": "string", "maxLength": 19, "minLength": 1, "pattern": "^[0-9]+$" }, "collectionFormat": "multi" }, { "name": "optionalStringField", "description": "Test openapiv2 generation of required fields with annotation and jsonschema to reproduce", "in": "query", "required": false, "type": "string" }, { "name": "requiredStringField1", "in": "query", "required": true, "type": "string" }, { "name": "requiredStringField2", "in": "query", "required": true, "type": "string" }, { "name": "required_field_behavior_json_name_custom", "description": "Test openapiv2 handling of required json_name fields", "in": "query", "required": true, "type": "string" }, { "name": "required_field_schema_json_name_custom", "in": "query", "required": true, "type": "string" }, { "name": "trailingOnly", "description": "Trailing only", "in": "query", "required": false, "type": "string" }, { "name": "trailingOnlyDot", "description": "Trailing only dot.", "in": "query", "required": false, "type": "string" }, { "name": "trailingBoth", "description": "Leading both\n\nTrailing both.", "in": "query", "required": false, "type": "string" }, { "name": "trailingMultiline", "description": "Leading multiline\n\nThis is an example of a multi-line comment.\n\nTrailing multiline.", "in": "query", "required": false, "type": "string" }, { "name": "uuids", "description": "Specify a custom format of repeated field items", "in": "query", "required": false, "type": "array", "items": { "type": "string", "format": "uuid" }, "collectionFormat": "multi" } ], "tags": [ "ABitOfEverything" ], "deprecated": true, "security": [], "externalDocs": { "description": "Find out more about GetQuery", "url": "https://github.com/grpc-ecosystem/grpc-gateway" } } }, "/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}": { "post": { "summary": "Create a new ABitOfEverything", "description": "This API creates a new ABitOfEverything", "operationId": "ABitOfEverythingService_Create", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/examplepbABitOfEverything" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "string", "format": "string" } }, "418": { "description": "I'm a teapot.", "schema": { "$ref": "#/definitions/examplepbNumericEnum" } }, "500": { "description": "Server error", "schema": { "$ref": "#/definitions/examplepbErrorResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "floatValue", "description": "Float value field", "in": "path", "required": true, "type": "number", "format": "float", "default": "0.2" }, { "name": "doubleValue", "in": "path", "required": true, "type": "number", "format": "double" }, { "name": "int64Value", "in": "path", "required": true, "type": "string", "format": "int64" }, { "name": "uint64Value", "in": "path", "required": true, "type": "string", "format": "uint64" }, { "name": "int32Value", "in": "path", "required": true, "type": "integer", "format": "int32" }, { "name": "fixed64Value", "in": "path", "required": true, "type": "string", "format": "uint64" }, { "name": "fixed32Value", "in": "path", "required": true, "type": "integer", "format": "int64" }, { "name": "boolValue", "in": "path", "required": true, "type": "boolean" }, { "name": "stringValue", "in": "path", "required": true, "type": "string", "pattern": "strprefix/[^/]+" }, { "name": "uint32Value", "in": "path", "required": true, "type": "integer", "format": "int64" }, { "name": "sfixed32Value", "in": "path", "required": true, "type": "integer", "format": "int32" }, { "name": "sfixed64Value", "in": "path", "required": true, "type": "string", "format": "int64" }, { "name": "sint32Value", "in": "path", "required": true, "type": "integer", "format": "int32" }, { "name": "sint64Value", "in": "path", "required": true, "type": "string", "format": "int64" }, { "name": "nonConventionalNameValue", "in": "path", "required": true, "type": "string" }, { "name": "enumValue", "in": "path", "required": true, "type": "string", "enum": [ "ZERO", "ONE" ] }, { "name": "pathEnumValue", "in": "path", "required": true, "type": "string", "enum": [ "ABC", "DEF" ] }, { "name": "nestedPathEnumValue", "in": "path", "required": true, "type": "string", "enum": [ "GHI", "JKL" ] }, { "name": "enumValueAnnotation", "description": "Numeric enum description.", "in": "path", "required": true, "type": "string", "enum": [ "ZERO", "ONE" ] }, { "name": "singleNested.name", "description": "name is nested field.", "in": "query", "required": false, "type": "string" }, { "name": "singleNested.amount", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "singleNested.ok", "description": "DeepEnum description.\n\n - FALSE: FALSE is false.\n - TRUE: TRUE is true.", "in": "query", "required": false, "type": "string", "enum": [ "FALSE", "TRUE" ], "default": "FALSE" }, { "name": "uuid", "in": "query", "required": true, "type": "string", "format": "uuid", "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}", "x-internal": true }, { "name": "bytesValue", "in": "query", "required": false, "type": "string", "format": "byte" }, { "name": "repeatedStringValue", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" }, { "name": "oneofEmpty", "in": "query", "required": false, "type": "object" }, { "name": "oneofString", "in": "query", "required": false, "type": "string" }, { "name": "mapValue", "description": "map of numeric enum", "in": "query", "required": false }, { "name": "mappedStringValue", "description": "Map of string title\n\nMap of string description.", "in": "query", "required": false, "type": "string" }, { "name": "mappedNestedValue", "in": "query", "required": false }, { "name": "timestampValue", "in": "query", "required": false, "type": "string", "format": "date-time" }, { "name": "repeatedEnumValue", "description": "repeated enum value. it is comma-separated in query\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", "in": "query", "required": false, "type": "array", "items": { "type": "string", "enum": [ "ZERO", "ONE" ] }, "collectionFormat": "multi" }, { "name": "repeatedEnumAnnotation", "description": "Repeated numeric enum title\n\nRepeated numeric enum description.\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", "in": "query", "required": false, "type": "array", "items": { "type": "string", "enum": [ "ZERO", "ONE" ] }, "collectionFormat": "multi" }, { "name": "repeatedStringAnnotation", "description": "Repeated string title\n\nRepeated string description.", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" }, { "name": "nestedAnnotation.name", "description": "name is nested field.", "in": "query", "required": false, "type": "string" }, { "name": "nestedAnnotation.amount", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "nestedAnnotation.ok", "description": "DeepEnum description.\n\n - FALSE: FALSE is false.\n - TRUE: TRUE is true.", "in": "query", "required": false, "type": "string", "enum": [ "FALSE", "TRUE" ], "default": "FALSE" }, { "name": "int64OverrideType", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "requiredStringViaFieldBehaviorAnnotation", "description": "mark a field as required in Open API definition", "in": "query", "required": true, "type": "string" }, { "name": "outputOnlyStringViaFieldBehaviorAnnotation", "description": "mark a field as readonly in Open API definition", "in": "query", "required": false, "type": "string" }, { "name": "optionalStringValue", "in": "query", "required": false, "type": "string" }, { "name": "productId", "description": "Test openapiv2 generation of repeated fields\n\nOnly digits are allowed.", "in": "query", "required": false, "type": "array", "items": { "type": "string", "maxLength": 19, "minLength": 1, "pattern": "^[0-9]+$" }, "collectionFormat": "multi" }, { "name": "optionalStringField", "description": "Test openapiv2 generation of required fields with annotation and jsonschema to reproduce", "in": "query", "required": false, "type": "string" }, { "name": "requiredStringField1", "in": "query", "required": true, "type": "string" }, { "name": "requiredStringField2", "in": "query", "required": true, "type": "string" }, { "name": "required_field_behavior_json_name_custom", "description": "Test openapiv2 handling of required json_name fields", "in": "query", "required": true, "type": "string" }, { "name": "required_field_schema_json_name_custom", "in": "query", "required": true, "type": "string" }, { "name": "trailingOnly", "description": "Trailing only", "in": "query", "required": false, "type": "string" }, { "name": "trailingOnlyDot", "description": "Trailing only dot.", "in": "query", "required": false, "type": "string" }, { "name": "trailingBoth", "description": "Leading both\n\nTrailing both.", "in": "query", "required": false, "type": "string" }, { "name": "trailingMultiline", "description": "Leading multiline\n\nThis is an example of a multi-line comment.\n\nTrailing multiline.", "in": "query", "required": false, "type": "string" }, { "name": "uuids", "description": "Specify a custom format of repeated field items", "in": "query", "required": false, "type": "array", "items": { "type": "string", "format": "uuid" }, "collectionFormat": "multi" } ], "tags": [ "ABitOfEverythingService" ] } }, "/v1/example/a_bit_of_everything/{uuidName}": { "put": { "operationId": "ABitOfEverythingService_Update", "responses": { "200": { "description": "A successful response.", "schema": { "type": "object", "properties": {} } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "string", "format": "string" } }, "418": { "description": "I'm a teapot.", "schema": { "$ref": "#/definitions/examplepbNumericEnum" } }, "500": { "description": "Server error", "schema": { "$ref": "#/definitions/examplepbErrorResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "uuidName", "in": "path", "required": true, "type": "string", "format": "uuid", "x-internal": true }, { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/examplepbABitOfEverythingServiceUpdateBody" } } ], "tags": [ "ABitOfEverythingService" ] }, "head": { "operationId": "ABitOfEverythingService_Exists", "responses": { "200": { "description": "A successful response.", "schema": { "type": "object", "properties": {} } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "uuidName", "in": "path", "required": true, "type": "string", "format": "uuid", "x-internal": true }, { "name": "singleNested.name", "description": "name is nested field.", "in": "query", "required": false, "type": "string" }, { "name": "singleNested.amount", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "singleNested.ok", "description": "DeepEnum description.\n\n - FALSE: FALSE is false.\n - TRUE: TRUE is true.", "in": "query", "required": false, "type": "string", "enum": [ "FALSE", "TRUE" ], "default": "FALSE" }, { "name": "floatValue", "description": "Float value field", "in": "query", "required": true, "type": "number", "format": "float", "default": "0.2" }, { "name": "doubleValue", "in": "query", "required": true, "type": "number", "format": "double" }, { "name": "int64Value", "in": "query", "required": true, "type": "string", "format": "int64" }, { "name": "uint64Value", "in": "query", "required": false, "type": "string", "format": "uint64" }, { "name": "int32Value", "in": "query", "required": false, "type": "integer", "format": "int32" }, { "name": "fixed64Value", "in": "query", "required": false, "type": "string", "format": "uint64" }, { "name": "fixed32Value", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "boolValue", "in": "query", "required": false, "type": "boolean" }, { "name": "stringValue", "in": "query", "required": false, "type": "string" }, { "name": "bytesValue", "in": "query", "required": false, "type": "string", "format": "byte" }, { "name": "uint32Value", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "enumValue", "description": " - ZERO: ZERO means 0\n - ONE: ONE means 1", "in": "query", "required": false, "type": "string", "enum": [ "ZERO", "ONE" ], "default": "ZERO" }, { "name": "pathEnumValue", "in": "query", "required": false, "type": "string", "enum": [ "ABC", "DEF" ], "default": "ABC" }, { "name": "nestedPathEnumValue", "in": "query", "required": false, "type": "string", "enum": [ "GHI", "JKL" ], "default": "GHI" }, { "name": "sfixed32Value", "in": "query", "required": false, "type": "integer", "format": "int32" }, { "name": "sfixed64Value", "in": "query", "required": false, "type": "string", "format": "int64" }, { "name": "sint32Value", "in": "query", "required": false, "type": "integer", "format": "int32" }, { "name": "sint64Value", "in": "query", "required": false, "type": "string", "format": "int64" }, { "name": "repeatedStringValue", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" }, { "name": "oneofEmpty", "in": "query", "required": false, "type": "object" }, { "name": "oneofString", "in": "query", "required": false, "type": "string" }, { "name": "mapValue", "description": "map of numeric enum", "in": "query", "required": false }, { "name": "mappedStringValue", "description": "Map of string title\n\nMap of string description.", "in": "query", "required": false, "type": "string" }, { "name": "mappedNestedValue", "in": "query", "required": false }, { "name": "nonConventionalNameValue", "in": "query", "required": false, "type": "string" }, { "name": "timestampValue", "in": "query", "required": false, "type": "string", "format": "date-time" }, { "name": "repeatedEnumValue", "description": "repeated enum value. it is comma-separated in query\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", "in": "query", "required": false, "type": "array", "items": { "type": "string", "enum": [ "ZERO", "ONE" ] }, "collectionFormat": "multi" }, { "name": "repeatedEnumAnnotation", "description": "Repeated numeric enum title\n\nRepeated numeric enum description.\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", "in": "query", "required": false, "type": "array", "items": { "type": "string", "enum": [ "ZERO", "ONE" ] }, "collectionFormat": "multi" }, { "name": "enumValueAnnotation", "description": "Numeric enum title\n\nNumeric enum description.\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", "in": "query", "required": false, "type": "string", "enum": [ "ZERO", "ONE" ], "default": "ZERO" }, { "name": "repeatedStringAnnotation", "description": "Repeated string title\n\nRepeated string description.", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" }, { "name": "nestedAnnotation.name", "description": "name is nested field.", "in": "query", "required": false, "type": "string" }, { "name": "nestedAnnotation.amount", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "nestedAnnotation.ok", "description": "DeepEnum description.\n\n - FALSE: FALSE is false.\n - TRUE: TRUE is true.", "in": "query", "required": false, "type": "string", "enum": [ "FALSE", "TRUE" ], "default": "FALSE" }, { "name": "int64OverrideType", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "requiredStringViaFieldBehaviorAnnotation", "description": "mark a field as required in Open API definition", "in": "query", "required": true, "type": "string" }, { "name": "outputOnlyStringViaFieldBehaviorAnnotation", "description": "mark a field as readonly in Open API definition", "in": "query", "required": false, "type": "string" }, { "name": "optionalStringValue", "in": "query", "required": false, "type": "string" }, { "name": "productId", "description": "Test openapiv2 generation of repeated fields\n\nOnly digits are allowed.", "in": "query", "required": false, "type": "array", "items": { "type": "string", "maxLength": 19, "minLength": 1, "pattern": "^[0-9]+$" }, "collectionFormat": "multi" }, { "name": "optionalStringField", "description": "Test openapiv2 generation of required fields with annotation and jsonschema to reproduce", "in": "query", "required": false, "type": "string" }, { "name": "requiredStringField1", "in": "query", "required": true, "type": "string" }, { "name": "requiredStringField2", "in": "query", "required": true, "type": "string" }, { "name": "required_field_behavior_json_name_custom", "description": "Test openapiv2 handling of required json_name fields", "in": "query", "required": true, "type": "string" }, { "name": "required_field_schema_json_name_custom", "in": "query", "required": true, "type": "string" }, { "name": "trailingOnly", "description": "Trailing only", "in": "query", "required": false, "type": "string" }, { "name": "trailingOnlyDot", "description": "Trailing only dot.", "in": "query", "required": false, "type": "string" }, { "name": "trailingBoth", "description": "Leading both\n\nTrailing both.", "in": "query", "required": false, "type": "string" }, { "name": "trailingMultiline", "description": "Leading multiline\n\nThis is an example of a multi-line comment.\n\nTrailing multiline.", "in": "query", "required": false, "type": "string" }, { "name": "uuids", "description": "Specify a custom format of repeated field items", "in": "query", "required": false, "type": "array", "items": { "type": "string", "format": "uuid" }, "collectionFormat": "multi" } ], "tags": [ "ABitOfEverythingService" ] }, "options": { "operationId": "ABitOfEverythingService_CustomOptionsRequest", "responses": { "200": { "description": "A successful response.", "schema": { "type": "object", "properties": {} } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "uuidName", "in": "path", "required": true, "type": "string", "format": "uuid", "x-internal": true }, { "name": "singleNested.name", "description": "name is nested field.", "in": "query", "required": false, "type": "string" }, { "name": "singleNested.amount", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "singleNested.ok", "description": "DeepEnum description.\n\n - FALSE: FALSE is false.\n - TRUE: TRUE is true.", "in": "query", "required": false, "type": "string", "enum": [ "FALSE", "TRUE" ], "default": "FALSE" }, { "name": "floatValue", "description": "Float value field", "in": "query", "required": true, "type": "number", "format": "float", "default": "0.2" }, { "name": "doubleValue", "in": "query", "required": true, "type": "number", "format": "double" }, { "name": "int64Value", "in": "query", "required": true, "type": "string", "format": "int64" }, { "name": "uint64Value", "in": "query", "required": false, "type": "string", "format": "uint64" }, { "name": "int32Value", "in": "query", "required": false, "type": "integer", "format": "int32" }, { "name": "fixed64Value", "in": "query", "required": false, "type": "string", "format": "uint64" }, { "name": "fixed32Value", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "boolValue", "in": "query", "required": false, "type": "boolean" }, { "name": "stringValue", "in": "query", "required": false, "type": "string" }, { "name": "bytesValue", "in": "query", "required": false, "type": "string", "format": "byte" }, { "name": "uint32Value", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "enumValue", "description": " - ZERO: ZERO means 0\n - ONE: ONE means 1", "in": "query", "required": false, "type": "string", "enum": [ "ZERO", "ONE" ], "default": "ZERO" }, { "name": "pathEnumValue", "in": "query", "required": false, "type": "string", "enum": [ "ABC", "DEF" ], "default": "ABC" }, { "name": "nestedPathEnumValue", "in": "query", "required": false, "type": "string", "enum": [ "GHI", "JKL" ], "default": "GHI" }, { "name": "sfixed32Value", "in": "query", "required": false, "type": "integer", "format": "int32" }, { "name": "sfixed64Value", "in": "query", "required": false, "type": "string", "format": "int64" }, { "name": "sint32Value", "in": "query", "required": false, "type": "integer", "format": "int32" }, { "name": "sint64Value", "in": "query", "required": false, "type": "string", "format": "int64" }, { "name": "repeatedStringValue", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" }, { "name": "oneofEmpty", "in": "query", "required": false, "type": "object" }, { "name": "oneofString", "in": "query", "required": false, "type": "string" }, { "name": "mapValue", "description": "map of numeric enum", "in": "query", "required": false }, { "name": "mappedStringValue", "description": "Map of string title\n\nMap of string description.", "in": "query", "required": false, "type": "string" }, { "name": "mappedNestedValue", "in": "query", "required": false }, { "name": "nonConventionalNameValue", "in": "query", "required": false, "type": "string" }, { "name": "timestampValue", "in": "query", "required": false, "type": "string", "format": "date-time" }, { "name": "repeatedEnumValue", "description": "repeated enum value. it is comma-separated in query\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", "in": "query", "required": false, "type": "array", "items": { "type": "string", "enum": [ "ZERO", "ONE" ] }, "collectionFormat": "multi" }, { "name": "repeatedEnumAnnotation", "description": "Repeated numeric enum title\n\nRepeated numeric enum description.\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", "in": "query", "required": false, "type": "array", "items": { "type": "string", "enum": [ "ZERO", "ONE" ] }, "collectionFormat": "multi" }, { "name": "enumValueAnnotation", "description": "Numeric enum title\n\nNumeric enum description.\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", "in": "query", "required": false, "type": "string", "enum": [ "ZERO", "ONE" ], "default": "ZERO" }, { "name": "repeatedStringAnnotation", "description": "Repeated string title\n\nRepeated string description.", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" }, { "name": "nestedAnnotation.name", "description": "name is nested field.", "in": "query", "required": false, "type": "string" }, { "name": "nestedAnnotation.amount", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "nestedAnnotation.ok", "description": "DeepEnum description.\n\n - FALSE: FALSE is false.\n - TRUE: TRUE is true.", "in": "query", "required": false, "type": "string", "enum": [ "FALSE", "TRUE" ], "default": "FALSE" }, { "name": "int64OverrideType", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "requiredStringViaFieldBehaviorAnnotation", "description": "mark a field as required in Open API definition", "in": "query", "required": true, "type": "string" }, { "name": "outputOnlyStringViaFieldBehaviorAnnotation", "description": "mark a field as readonly in Open API definition", "in": "query", "required": false, "type": "string" }, { "name": "optionalStringValue", "in": "query", "required": false, "type": "string" }, { "name": "productId", "description": "Test openapiv2 generation of repeated fields\n\nOnly digits are allowed.", "in": "query", "required": false, "type": "array", "items": { "type": "string", "maxLength": 19, "minLength": 1, "pattern": "^[0-9]+$" }, "collectionFormat": "multi" }, { "name": "optionalStringField", "description": "Test openapiv2 generation of required fields with annotation and jsonschema to reproduce", "in": "query", "required": false, "type": "string" }, { "name": "requiredStringField1", "in": "query", "required": true, "type": "string" }, { "name": "requiredStringField2", "in": "query", "required": true, "type": "string" }, { "name": "required_field_behavior_json_name_custom", "description": "Test openapiv2 handling of required json_name fields", "in": "query", "required": true, "type": "string" }, { "name": "required_field_schema_json_name_custom", "in": "query", "required": true, "type": "string" }, { "name": "trailingOnly", "description": "Trailing only", "in": "query", "required": false, "type": "string" }, { "name": "trailingOnlyDot", "description": "Trailing only dot.", "in": "query", "required": false, "type": "string" }, { "name": "trailingBoth", "description": "Leading both\n\nTrailing both.", "in": "query", "required": false, "type": "string" }, { "name": "trailingMultiline", "description": "Leading multiline\n\nThis is an example of a multi-line comment.\n\nTrailing multiline.", "in": "query", "required": false, "type": "string" }, { "name": "uuids", "description": "Specify a custom format of repeated field items", "in": "query", "required": false, "type": "array", "items": { "type": "string", "format": "uuid" }, "collectionFormat": "multi" } ], "tags": [ "ABitOfEverythingService" ] } }, "/v1/example/a_bit_of_everything/{uuidName}:custom": { "post": { "operationId": "ABitOfEverythingService_Custom", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/examplepbABitOfEverything" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "string", "format": "string" } }, "418": { "description": "I'm a teapot.", "schema": { "$ref": "#/definitions/examplepbNumericEnum" } }, "500": { "description": "Server error", "schema": { "$ref": "#/definitions/examplepbErrorResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "uuidName", "in": "path", "required": true, "type": "string", "format": "uuid", "x-internal": true }, { "name": "singleNested.name", "description": "name is nested field.", "in": "query", "required": false, "type": "string" }, { "name": "singleNested.amount", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "singleNested.ok", "description": "DeepEnum description.\n\n - FALSE: FALSE is false.\n - TRUE: TRUE is true.", "in": "query", "required": false, "type": "string", "enum": [ "FALSE", "TRUE" ], "default": "FALSE" }, { "name": "floatValue", "description": "Float value field", "in": "query", "required": true, "type": "number", "format": "float", "default": "0.2" }, { "name": "doubleValue", "in": "query", "required": true, "type": "number", "format": "double" }, { "name": "int64Value", "in": "query", "required": true, "type": "string", "format": "int64" }, { "name": "uint64Value", "in": "query", "required": false, "type": "string", "format": "uint64" }, { "name": "int32Value", "in": "query", "required": false, "type": "integer", "format": "int32" }, { "name": "fixed64Value", "in": "query", "required": false, "type": "string", "format": "uint64" }, { "name": "fixed32Value", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "boolValue", "in": "query", "required": false, "type": "boolean" }, { "name": "stringValue", "in": "query", "required": false, "type": "string" }, { "name": "bytesValue", "in": "query", "required": false, "type": "string", "format": "byte" }, { "name": "uint32Value", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "enumValue", "description": " - ZERO: ZERO means 0\n - ONE: ONE means 1", "in": "query", "required": false, "type": "string", "enum": [ "ZERO", "ONE" ], "default": "ZERO" }, { "name": "pathEnumValue", "in": "query", "required": false, "type": "string", "enum": [ "ABC", "DEF" ], "default": "ABC" }, { "name": "nestedPathEnumValue", "in": "query", "required": false, "type": "string", "enum": [ "GHI", "JKL" ], "default": "GHI" }, { "name": "sfixed32Value", "in": "query", "required": false, "type": "integer", "format": "int32" }, { "name": "sfixed64Value", "in": "query", "required": false, "type": "string", "format": "int64" }, { "name": "sint32Value", "in": "query", "required": false, "type": "integer", "format": "int32" }, { "name": "sint64Value", "in": "query", "required": false, "type": "string", "format": "int64" }, { "name": "repeatedStringValue", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" }, { "name": "oneofEmpty", "in": "query", "required": false, "type": "object" }, { "name": "oneofString", "in": "query", "required": false, "type": "string" }, { "name": "mapValue", "description": "map of numeric enum", "in": "query", "required": false }, { "name": "mappedStringValue", "description": "Map of string title\n\nMap of string description.", "in": "query", "required": false, "type": "string" }, { "name": "mappedNestedValue", "in": "query", "required": false }, { "name": "nonConventionalNameValue", "in": "query", "required": false, "type": "string" }, { "name": "timestampValue", "in": "query", "required": false, "type": "string", "format": "date-time" }, { "name": "repeatedEnumValue", "description": "repeated enum value. it is comma-separated in query\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", "in": "query", "required": false, "type": "array", "items": { "type": "string", "enum": [ "ZERO", "ONE" ] }, "collectionFormat": "multi" }, { "name": "repeatedEnumAnnotation", "description": "Repeated numeric enum title\n\nRepeated numeric enum description.\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", "in": "query", "required": false, "type": "array", "items": { "type": "string", "enum": [ "ZERO", "ONE" ] }, "collectionFormat": "multi" }, { "name": "enumValueAnnotation", "description": "Numeric enum title\n\nNumeric enum description.\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", "in": "query", "required": false, "type": "string", "enum": [ "ZERO", "ONE" ], "default": "ZERO" }, { "name": "repeatedStringAnnotation", "description": "Repeated string title\n\nRepeated string description.", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" }, { "name": "nestedAnnotation.name", "description": "name is nested field.", "in": "query", "required": false, "type": "string" }, { "name": "nestedAnnotation.amount", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "nestedAnnotation.ok", "description": "DeepEnum description.\n\n - FALSE: FALSE is false.\n - TRUE: TRUE is true.", "in": "query", "required": false, "type": "string", "enum": [ "FALSE", "TRUE" ], "default": "FALSE" }, { "name": "int64OverrideType", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "requiredStringViaFieldBehaviorAnnotation", "description": "mark a field as required in Open API definition", "in": "query", "required": true, "type": "string" }, { "name": "outputOnlyStringViaFieldBehaviorAnnotation", "description": "mark a field as readonly in Open API definition", "in": "query", "required": false, "type": "string" }, { "name": "optionalStringValue", "in": "query", "required": false, "type": "string" }, { "name": "productId", "description": "Test openapiv2 generation of repeated fields\n\nOnly digits are allowed.", "in": "query", "required": false, "type": "array", "items": { "type": "string", "maxLength": 19, "minLength": 1, "pattern": "^[0-9]+$" }, "collectionFormat": "multi" }, { "name": "optionalStringField", "description": "Test openapiv2 generation of required fields with annotation and jsonschema to reproduce", "in": "query", "required": false, "type": "string" }, { "name": "requiredStringField1", "in": "query", "required": true, "type": "string" }, { "name": "requiredStringField2", "in": "query", "required": true, "type": "string" }, { "name": "required_field_behavior_json_name_custom", "description": "Test openapiv2 handling of required json_name fields", "in": "query", "required": true, "type": "string" }, { "name": "required_field_schema_json_name_custom", "in": "query", "required": true, "type": "string" }, { "name": "trailingOnly", "description": "Trailing only", "in": "query", "required": false, "type": "string" }, { "name": "trailingOnlyDot", "description": "Trailing only dot.", "in": "query", "required": false, "type": "string" }, { "name": "trailingBoth", "description": "Leading both\n\nTrailing both.", "in": "query", "required": false, "type": "string" }, { "name": "trailingMultiline", "description": "Leading multiline\n\nThis is an example of a multi-line comment.\n\nTrailing multiline.", "in": "query", "required": false, "type": "string" }, { "name": "uuids", "description": "Specify a custom format of repeated field items", "in": "query", "required": false, "type": "array", "items": { "type": "string", "format": "uuid" }, "collectionFormat": "multi" } ], "tags": [ "ABitOfEverythingService" ] } }, "/v1/example/a_bit_of_everything/{uuidName}:custom:custom": { "post": { "operationId": "ABitOfEverythingService_DoubleColon", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/examplepbABitOfEverything" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "string", "format": "string" } }, "418": { "description": "I'm a teapot.", "schema": { "$ref": "#/definitions/examplepbNumericEnum" } }, "500": { "description": "Server error", "schema": { "$ref": "#/definitions/examplepbErrorResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "uuidName", "in": "path", "required": true, "type": "string", "format": "uuid", "x-internal": true }, { "name": "singleNested.name", "description": "name is nested field.", "in": "query", "required": false, "type": "string" }, { "name": "singleNested.amount", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "singleNested.ok", "description": "DeepEnum description.\n\n - FALSE: FALSE is false.\n - TRUE: TRUE is true.", "in": "query", "required": false, "type": "string", "enum": [ "FALSE", "TRUE" ], "default": "FALSE" }, { "name": "floatValue", "description": "Float value field", "in": "query", "required": true, "type": "number", "format": "float", "default": "0.2" }, { "name": "doubleValue", "in": "query", "required": true, "type": "number", "format": "double" }, { "name": "int64Value", "in": "query", "required": true, "type": "string", "format": "int64" }, { "name": "uint64Value", "in": "query", "required": false, "type": "string", "format": "uint64" }, { "name": "int32Value", "in": "query", "required": false, "type": "integer", "format": "int32" }, { "name": "fixed64Value", "in": "query", "required": false, "type": "string", "format": "uint64" }, { "name": "fixed32Value", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "boolValue", "in": "query", "required": false, "type": "boolean" }, { "name": "stringValue", "in": "query", "required": false, "type": "string" }, { "name": "bytesValue", "in": "query", "required": false, "type": "string", "format": "byte" }, { "name": "uint32Value", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "enumValue", "description": " - ZERO: ZERO means 0\n - ONE: ONE means 1", "in": "query", "required": false, "type": "string", "enum": [ "ZERO", "ONE" ], "default": "ZERO" }, { "name": "pathEnumValue", "in": "query", "required": false, "type": "string", "enum": [ "ABC", "DEF" ], "default": "ABC" }, { "name": "nestedPathEnumValue", "in": "query", "required": false, "type": "string", "enum": [ "GHI", "JKL" ], "default": "GHI" }, { "name": "sfixed32Value", "in": "query", "required": false, "type": "integer", "format": "int32" }, { "name": "sfixed64Value", "in": "query", "required": false, "type": "string", "format": "int64" }, { "name": "sint32Value", "in": "query", "required": false, "type": "integer", "format": "int32" }, { "name": "sint64Value", "in": "query", "required": false, "type": "string", "format": "int64" }, { "name": "repeatedStringValue", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" }, { "name": "oneofEmpty", "in": "query", "required": false, "type": "object" }, { "name": "oneofString", "in": "query", "required": false, "type": "string" }, { "name": "mapValue", "description": "map of numeric enum", "in": "query", "required": false }, { "name": "mappedStringValue", "description": "Map of string title\n\nMap of string description.", "in": "query", "required": false, "type": "string" }, { "name": "mappedNestedValue", "in": "query", "required": false }, { "name": "nonConventionalNameValue", "in": "query", "required": false, "type": "string" }, { "name": "timestampValue", "in": "query", "required": false, "type": "string", "format": "date-time" }, { "name": "repeatedEnumValue", "description": "repeated enum value. it is comma-separated in query\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", "in": "query", "required": false, "type": "array", "items": { "type": "string", "enum": [ "ZERO", "ONE" ] }, "collectionFormat": "multi" }, { "name": "repeatedEnumAnnotation", "description": "Repeated numeric enum title\n\nRepeated numeric enum description.\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", "in": "query", "required": false, "type": "array", "items": { "type": "string", "enum": [ "ZERO", "ONE" ] }, "collectionFormat": "multi" }, { "name": "enumValueAnnotation", "description": "Numeric enum title\n\nNumeric enum description.\n\n - ZERO: ZERO means 0\n - ONE: ONE means 1", "in": "query", "required": false, "type": "string", "enum": [ "ZERO", "ONE" ], "default": "ZERO" }, { "name": "repeatedStringAnnotation", "description": "Repeated string title\n\nRepeated string description.", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" }, { "name": "nestedAnnotation.name", "description": "name is nested field.", "in": "query", "required": false, "type": "string" }, { "name": "nestedAnnotation.amount", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "nestedAnnotation.ok", "description": "DeepEnum description.\n\n - FALSE: FALSE is false.\n - TRUE: TRUE is true.", "in": "query", "required": false, "type": "string", "enum": [ "FALSE", "TRUE" ], "default": "FALSE" }, { "name": "int64OverrideType", "in": "query", "required": false, "type": "integer", "format": "int64" }, { "name": "requiredStringViaFieldBehaviorAnnotation", "description": "mark a field as required in Open API definition", "in": "query", "required": true, "type": "string" }, { "name": "outputOnlyStringViaFieldBehaviorAnnotation", "description": "mark a field as readonly in Open API definition", "in": "query", "required": false, "type": "string" }, { "name": "optionalStringValue", "in": "query", "required": false, "type": "string" }, { "name": "productId", "description": "Test openapiv2 generation of repeated fields\n\nOnly digits are allowed.", "in": "query", "required": false, "type": "array", "items": { "type": "string", "maxLength": 19, "minLength": 1, "pattern": "^[0-9]+$" }, "collectionFormat": "multi" }, { "name": "optionalStringField", "description": "Test openapiv2 generation of required fields with annotation and jsonschema to reproduce", "in": "query", "required": false, "type": "string" }, { "name": "requiredStringField1", "in": "query", "required": true, "type": "string" }, { "name": "requiredStringField2", "in": "query", "required": true, "type": "string" }, { "name": "required_field_behavior_json_name_custom", "description": "Test openapiv2 handling of required json_name fields", "in": "query", "required": true, "type": "string" }, { "name": "required_field_schema_json_name_custom", "in": "query", "required": true, "type": "string" }, { "name": "trailingOnly", "description": "Trailing only", "in": "query", "required": false, "type": "string" }, { "name": "trailingOnlyDot", "description": "Trailing only dot.", "in": "query", "required": false, "type": "string" }, { "name": "trailingBoth", "description": "Leading both\n\nTrailing both.", "in": "query", "required": false, "type": "string" }, { "name": "trailingMultiline", "description": "Leading multiline\n\nThis is an example of a multi-line comment.\n\nTrailing multiline.", "in": "query", "required": false, "type": "string" }, { "name": "uuids", "description": "Specify a custom format of repeated field items", "in": "query", "required": false, "type": "array", "items": { "type": "string", "format": "uuid" }, "collectionFormat": "multi" } ], "tags": [ "ABitOfEverythingService" ] } }, "/v1/example/a_bit_of_everything/{uuid}": { "get": { "operationId": "ABitOfEverythingService_Lookup", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/examplepbABitOfEverything" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "string", "format": "string" } }, "418": { "description": "I'm a teapot.", "schema": { "$ref": "#/definitions/examplepbNumericEnum" } }, "500": { "description": "Server error", "schema": { "$ref": "#/definitions/examplepbErrorResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "uuid", "in": "path", "required": true, "type": "string" } ], "tags": [ "ABitOfEverythingService" ] }, "delete": { "operationId": "ABitOfEverythingService_Delete", "responses": { "200": { "description": "A successful response.", "schema": { "type": "object", "properties": {} } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "string", "format": "string" } }, "418": { "description": "I'm a teapot.", "schema": { "$ref": "#/definitions/examplepbNumericEnum" } }, "500": { "description": "Server error", "schema": { "$ref": "#/definitions/examplepbErrorResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "uuid", "in": "path", "required": true, "type": "string" } ], "tags": [ "ABitOfEverything" ], "security": [ { "ApiKeyAuth": [], "OAuth2": [ "read", "write" ] } ], "x-irreversible": true } }, "/v1/example/a_bit_of_everything_repeated/{pathRepeatedFloatValue}/{pathRepeatedDoubleValue}/{pathRepeatedInt64Value}/{pathRepeatedUint64Value}/{pathRepeatedInt32Value}/{pathRepeatedFixed64Value}/{pathRepeatedFixed32Value}/{pathRepeatedBoolValue}/{pathRepeatedStringValue}/{pathRepeatedBytesValue}/{pathRepeatedUint32Value}/{pathRepeatedEnumValue}/{pathRepeatedSfixed32Value}/{pathRepeatedSfixed64Value}/{pathRepeatedSint32Value}/{pathRepeatedSint64Value}": { "get": { "operationId": "ABitOfEverythingService_GetRepeatedQuery", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/examplepbABitOfEverythingRepeated" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "string", "format": "string" } }, "418": { "description": "I'm a teapot.", "schema": { "$ref": "#/definitions/examplepbNumericEnum" } }, "500": { "description": "Server error", "schema": { "$ref": "#/definitions/examplepbErrorResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "pathRepeatedFloatValue", "description": "repeated values. they are comma-separated in path", "in": "path", "required": true, "type": "array", "items": { "type": "number", "format": "float" }, "collectionFormat": "csv", "minItems": 1 }, { "name": "pathRepeatedDoubleValue", "in": "path", "required": true, "type": "array", "items": { "type": "number", "format": "double" }, "collectionFormat": "csv", "minItems": 1 }, { "name": "pathRepeatedInt64Value", "in": "path", "required": true, "type": "array", "items": { "type": "string", "format": "int64" }, "collectionFormat": "csv", "minItems": 1 }, { "name": "pathRepeatedUint64Value", "in": "path", "required": true, "type": "array", "items": { "type": "string", "format": "uint64" }, "collectionFormat": "csv", "minItems": 1 }, { "name": "pathRepeatedInt32Value", "in": "path", "required": true, "type": "array", "items": { "type": "integer", "format": "int32" }, "collectionFormat": "csv", "minItems": 1 }, { "name": "pathRepeatedFixed64Value", "in": "path", "required": true, "type": "array", "items": { "type": "string", "format": "uint64" }, "collectionFormat": "csv", "minItems": 1 }, { "name": "pathRepeatedFixed32Value", "in": "path", "required": true, "type": "array", "items": { "type": "integer", "format": "int64" }, "collectionFormat": "csv", "minItems": 1 }, { "name": "pathRepeatedBoolValue", "in": "path", "required": true, "type": "array", "items": { "type": "boolean" }, "collectionFormat": "csv", "minItems": 1 }, { "name": "pathRepeatedStringValue", "in": "path", "required": true, "type": "array", "items": { "type": "string" }, "collectionFormat": "csv", "minItems": 1 }, { "name": "pathRepeatedBytesValue", "in": "path", "required": true, "type": "array", "items": { "type": "string", "format": "byte" }, "collectionFormat": "csv", "minItems": 1 }, { "name": "pathRepeatedUint32Value", "in": "path", "required": true, "type": "array", "items": { "type": "integer", "format": "int64" }, "collectionFormat": "csv", "minItems": 1 }, { "name": "pathRepeatedEnumValue", "in": "path", "required": true, "type": "array", "items": { "type": "string", "enum": [ "ZERO", "ONE" ] }, "collectionFormat": "csv", "minItems": 1 }, { "name": "pathRepeatedSfixed32Value", "in": "path", "required": true, "type": "array", "items": { "type": "integer", "format": "int32" }, "collectionFormat": "csv", "minItems": 1 }, { "name": "pathRepeatedSfixed64Value", "in": "path", "required": true, "type": "array", "items": { "type": "string", "format": "int64" }, "collectionFormat": "csv", "minItems": 1 }, { "name": "pathRepeatedSint32Value", "in": "path", "required": true, "type": "array", "items": { "type": "integer", "format": "int32" }, "collectionFormat": "csv", "minItems": 1 }, { "name": "pathRepeatedSint64Value", "in": "path", "required": true, "type": "array", "items": { "type": "string", "format": "int64" }, "collectionFormat": "csv", "minItems": 1 } ], "tags": [ "ABitOfEverythingService" ] } }, "/v1/example/checkStatus": { "get": { "operationId": "ABitOfEverythingService_CheckStatus", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/examplepbCheckStatusResponse" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "string", "format": "string" } }, "418": { "description": "I'm a teapot.", "schema": { "$ref": "#/definitions/examplepbNumericEnum" } }, "500": { "description": "Server error", "schema": { "$ref": "#/definitions/examplepbErrorResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "tags": [ "ABitOfEverythingService" ] } }, "/v1/example/deep_path/{singleNested.name}": { "post": { "operationId": "ABitOfEverythingService_DeepPathEcho", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/examplepbABitOfEverything" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "string", "format": "string" } }, "418": { "description": "I'm a teapot.", "schema": { "$ref": "#/definitions/examplepbNumericEnum" } }, "500": { "description": "Server error", "schema": { "$ref": "#/definitions/examplepbErrorResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "singleNested.name", "description": "name is nested field.", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/ABitOfEverythingServiceDeepPathEchoBody" } } ], "tags": [ "ABitOfEverythingService" ] } }, "/v1/example/oneofenum": { "post": { "operationId": "ABitOfEverythingService_PostOneofEnum", "responses": { "200": { "description": "A successful response.", "schema": { "type": "object", "properties": {} } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "string", "format": "string" } }, "418": { "description": "I'm a teapot.", "schema": { "$ref": "#/definitions/examplepbNumericEnum" } }, "500": { "description": "Server error", "schema": { "$ref": "#/definitions/examplepbErrorResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "exampleEnum", "in": "body", "required": true, "schema": { "$ref": "#/definitions/oneofenumExampleEnum" } } ], "tags": [ "ABitOfEverythingService" ] } }, "/v1/example/requiredmessagetype": { "post": { "operationId": "ABitOfEverythingService_PostRequiredMessageType", "responses": { "200": { "description": "A successful response.", "schema": { "type": "object", "properties": {} } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "string", "format": "string" } }, "418": { "description": "I'm a teapot.", "schema": { "$ref": "#/definitions/examplepbNumericEnum" } }, "500": { "description": "Server error", "schema": { "$ref": "#/definitions/examplepbErrorResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/examplepbRequiredMessageTypeRequest" } } ], "tags": [ "ABitOfEverythingService" ] } }, "/v1/example/snake/{who}/{what}/{where}": { "get": { "operationId": "SnakeEnumService_SnakeEnum", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/examplepbSnakeEnumResponse" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "string", "format": "string" } }, "418": { "description": "I'm a teapot.", "schema": { "$ref": "#/definitions/examplepbNumericEnum" } }, "500": { "description": "Server error", "schema": { "$ref": "#/definitions/examplepbErrorResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "who", "in": "path", "required": true, "type": "string", "enum": [ "value_e", "value_f" ] }, { "name": "what", "in": "path", "required": true, "type": "string", "enum": [ "value_c", "value_d" ] }, { "name": "where", "in": "path", "required": true, "type": "string", "enum": [ "value_x", "value_y" ] } ], "tags": [ "SnakeEnumService" ] } }, "/v1/{book.name}": { "patch": { "operationId": "ABitOfEverythingService_UpdateBook", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/examplepbBook" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "string", "format": "string" } }, "418": { "description": "I'm a teapot.", "schema": { "$ref": "#/definitions/examplepbNumericEnum" } }, "500": { "description": "Server error", "schema": { "$ref": "#/definitions/examplepbErrorResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "book.name", "description": "The resource name of the book.\n\nFormat: `publishers/{publisher}/books/{book}`\n\nExample: `publishers/1257894000000000000/books/my-book`", "in": "path", "required": true, "type": "string", "pattern": "publishers/[^/]+/books/[^/]+" }, { "name": "book", "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}", "in": "body", "required": true, "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "Output only. The book's ID.", "readOnly": true }, "createTime": { "type": "string", "format": "date-time", "description": "Output only. Creation time of the book.", "readOnly": true } }, "description": "The book's `name` field is used to identify the book to be updated.\nFormat: publishers/{publisher}/books/{book}", "title": "The book to update.", "required": [ "book" ] } }, { "name": "allowMissing", "description": "If set to true, and the book is not found, a new book will be created.\nIn this situation, `update_mask` is ignored.", "in": "query", "required": false, "type": "boolean" } ], "tags": [ "ABitOfEverythingService" ] } }, "/v1/{parent}/books": { "post": { "summary": "Create a book.", "operationId": "ABitOfEverythingService_CreateBook", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/examplepbBook" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "string", "format": "string" } }, "418": { "description": "I'm a teapot.", "schema": { "$ref": "#/definitions/examplepbNumericEnum" } }, "500": { "description": "Server error", "schema": { "$ref": "#/definitions/examplepbErrorResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "parent", "description": "The publisher in which to create the book.\n\nFormat: `publishers/{publisher}`\n\nExample: `publishers/1257894000000000000`", "in": "path", "required": true, "type": "string", "pattern": "publishers/[^/]+" }, { "name": "book", "description": "The book to create.", "in": "body", "required": true, "schema": { "$ref": "#/definitions/examplepbBook" } }, { "name": "bookId", "description": "The ID to use for the book.\n\nThis must start with an alphanumeric character.", "in": "query", "required": false, "type": "string" } ], "tags": [ "ABitOfEverythingService" ] } }, "/v2/example/a_bit_of_everything/{uuidName}": { "put": { "operationId": "ABitOfEverythingService_UpdateV2", "responses": { "200": { "description": "A successful response.", "schema": { "type": "object", "properties": {} } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "string", "format": "string" } }, "418": { "description": "I'm a teapot.", "schema": { "$ref": "#/definitions/examplepbNumericEnum" } }, "500": { "description": "Server error", "schema": { "$ref": "#/definitions/examplepbErrorResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "uuidName", "in": "path", "required": true, "type": "string", "format": "uuid", "x-internal": true }, { "name": "abe", "description": "A bit of everything\n\nIntentionally complicated message type to cover many features of Protobuf.", "in": "body", "required": true, "schema": { "type": "object", "example": { "int64_value": 12, "double_value": 12.3 }, "properties": { "singleNested": { "$ref": "#/definitions/ABitOfEverythingNested" }, "nested": { "type": "array", "items": { "type": "object", "$ref": "#/definitions/ABitOfEverythingNested" } }, "floatValue": { "type": "number", "format": "float", "default": "0.2", "description": "Float value field" }, "doubleValue": { "type": "number", "format": "double" }, "int64Value": { "type": "string", "format": "int64" }, "uint64Value": { "type": "string", "format": "uint64" }, "int32Value": { "type": "integer", "format": "int32" }, "fixed64Value": { "type": "string", "format": "uint64" }, "fixed32Value": { "type": "integer", "format": "int64" }, "boolValue": { "type": "boolean" }, "stringValue": { "type": "string" }, "bytesValue": { "type": "string", "format": "byte" }, "uint32Value": { "type": "integer", "format": "int64" }, "enumValue": { "$ref": "#/definitions/examplepbNumericEnum" }, "pathEnumValue": { "$ref": "#/definitions/pathenumPathEnum" }, "nestedPathEnumValue": { "$ref": "#/definitions/MessagePathEnumNestedPathEnum" }, "sfixed32Value": { "type": "integer", "format": "int32" }, "sfixed64Value": { "type": "string", "format": "int64" }, "sint32Value": { "type": "integer", "format": "int32" }, "sint64Value": { "type": "string", "format": "int64" }, "repeatedStringValue": { "type": "array", "items": { "type": "string" } }, "oneofEmpty": { "type": "object", "properties": {} }, "oneofString": { "type": "string" }, "mapValue": { "type": "object", "additionalProperties": { "$ref": "#/definitions/examplepbNumericEnum" }, "title": "map of numeric enum" }, "mappedStringValue": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Map of string description.", "title": "Map of string title" }, "mappedNestedValue": { "type": "object", "additionalProperties": { "$ref": "#/definitions/ABitOfEverythingNested" } }, "nonConventionalNameValue": { "type": "string" }, "timestampValue": { "type": "string", "format": "date-time" }, "repeatedEnumValue": { "type": "array", "items": { "$ref": "#/definitions/examplepbNumericEnum" }, "title": "repeated enum value. it is comma-separated in query" }, "repeatedEnumAnnotation": { "type": "array", "items": { "$ref": "#/definitions/examplepbNumericEnum" }, "description": "Repeated numeric enum description.", "title": "Repeated numeric enum title" }, "enumValueAnnotation": { "$ref": "#/definitions/examplepbNumericEnum", "description": "Numeric enum description.", "title": "Numeric enum title" }, "repeatedStringAnnotation": { "type": "array", "items": { "type": "string" }, "description": "Repeated string description.", "title": "Repeated string title" }, "repeatedNestedAnnotation": { "type": "array", "items": { "type": "object", "$ref": "#/definitions/ABitOfEverythingNested" }, "description": "Repeated nested object description.", "title": "Repeated nested object title" }, "nestedAnnotation": { "$ref": "#/definitions/ABitOfEverythingNested", "description": "Nested object description.", "title": "Nested object title" }, "int64OverrideType": { "type": "integer", "format": "int64" }, "requiredStringViaFieldBehaviorAnnotation": { "type": "string", "title": "mark a field as required in Open API definition" }, "outputOnlyStringViaFieldBehaviorAnnotation": { "type": "string", "title": "mark a field as readonly in Open API definition", "readOnly": true }, "optionalStringValue": { "type": "string" }, "productId": { "type": "array", "items": { "type": "string", "maxLength": 19, "minLength": 1, "pattern": "^[0-9]+$" }, "description": "Only digits are allowed.", "title": "Test openapiv2 generation of repeated fields" }, "optionalStringField": { "type": "string", "title": "Test openapiv2 generation of required fields with annotation and jsonschema to reproduce" }, "requiredStringField1": { "type": "string" }, "requiredStringField2": { "type": "string" }, "required_field_behavior_json_name_custom": { "type": "string", "title": "Test openapiv2 handling of required json_name fields" }, "required_field_schema_json_name_custom": { "type": "string" }, "trailingOnly": { "type": "string", "title": "Trailing only" }, "trailingOnlyDot": { "type": "string", "description": "Trailing only dot." }, "trailingBoth": { "type": "string", "description": "Trailing both.", "title": "Leading both" }, "trailingMultiline": { "type": "string", "description": "This is an example of a multi-line comment.\n\nTrailing multiline.", "title": "Leading multiline" }, "uuids": { "type": "array", "items": { "type": "string", "format": "uuid" }, "title": "Specify a custom format of repeated field items" } }, "description": "Intentionally complicated message type to cover many features of Protobuf.", "title": "A bit of everything", "externalDocs": { "description": "Find out more about ABitOfEverything", "url": "https://github.com/grpc-ecosystem/grpc-gateway" }, "required": [ "int64Value", "doubleValue", "required_field_schema_json_name_custom", "floatValue", "requiredStringViaFieldBehaviorAnnotation", "requiredStringField1", "requiredStringField2", "required_field_behavior_json_name_custom" ], "x-a-bit-of-everything-foo": "bar" } }, { "name": "updateMask", "description": "The paths to update.", "in": "query", "required": false, "type": "string" } ], "tags": [ "ABitOfEverythingService" ] }, "patch": { "operationId": "ABitOfEverythingService_UpdateV22", "responses": { "200": { "description": "A successful response.", "schema": { "type": "object", "properties": {} } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "string", "format": "string" } }, "418": { "description": "I'm a teapot.", "schema": { "$ref": "#/definitions/examplepbNumericEnum" } }, "500": { "description": "Server error", "schema": { "$ref": "#/definitions/examplepbErrorResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "uuidName", "in": "path", "required": true, "type": "string", "format": "uuid", "x-internal": true }, { "name": "abe", "description": "A bit of everything\n\nIntentionally complicated message type to cover many features of Protobuf.", "in": "body", "required": true, "schema": { "type": "object", "example": { "int64_value": 12, "double_value": 12.3 }, "properties": { "singleNested": { "$ref": "#/definitions/ABitOfEverythingNested" }, "nested": { "type": "array", "items": { "type": "object", "$ref": "#/definitions/ABitOfEverythingNested" } }, "floatValue": { "type": "number", "format": "float", "default": "0.2", "description": "Float value field" }, "doubleValue": { "type": "number", "format": "double" }, "int64Value": { "type": "string", "format": "int64" }, "uint64Value": { "type": "string", "format": "uint64" }, "int32Value": { "type": "integer", "format": "int32" }, "fixed64Value": { "type": "string", "format": "uint64" }, "fixed32Value": { "type": "integer", "format": "int64" }, "boolValue": { "type": "boolean" }, "stringValue": { "type": "string" }, "bytesValue": { "type": "string", "format": "byte" }, "uint32Value": { "type": "integer", "format": "int64" }, "enumValue": { "$ref": "#/definitions/examplepbNumericEnum" }, "pathEnumValue": { "$ref": "#/definitions/pathenumPathEnum" }, "nestedPathEnumValue": { "$ref": "#/definitions/MessagePathEnumNestedPathEnum" }, "sfixed32Value": { "type": "integer", "format": "int32" }, "sfixed64Value": { "type": "string", "format": "int64" }, "sint32Value": { "type": "integer", "format": "int32" }, "sint64Value": { "type": "string", "format": "int64" }, "repeatedStringValue": { "type": "array", "items": { "type": "string" } }, "oneofEmpty": { "type": "object", "properties": {} }, "oneofString": { "type": "string" }, "mapValue": { "type": "object", "additionalProperties": { "$ref": "#/definitions/examplepbNumericEnum" }, "title": "map of numeric enum" }, "mappedStringValue": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Map of string description.", "title": "Map of string title" }, "mappedNestedValue": { "type": "object", "additionalProperties": { "$ref": "#/definitions/ABitOfEverythingNested" } }, "nonConventionalNameValue": { "type": "string" }, "timestampValue": { "type": "string", "format": "date-time" }, "repeatedEnumValue": { "type": "array", "items": { "$ref": "#/definitions/examplepbNumericEnum" }, "title": "repeated enum value. it is comma-separated in query" }, "repeatedEnumAnnotation": { "type": "array", "items": { "$ref": "#/definitions/examplepbNumericEnum" }, "description": "Repeated numeric enum description.", "title": "Repeated numeric enum title" }, "enumValueAnnotation": { "$ref": "#/definitions/examplepbNumericEnum", "description": "Numeric enum description.", "title": "Numeric enum title" }, "repeatedStringAnnotation": { "type": "array", "items": { "type": "string" }, "description": "Repeated string description.", "title": "Repeated string title" }, "repeatedNestedAnnotation": { "type": "array", "items": { "type": "object", "$ref": "#/definitions/ABitOfEverythingNested" }, "description": "Repeated nested object description.", "title": "Repeated nested object title" }, "nestedAnnotation": { "$ref": "#/definitions/ABitOfEverythingNested", "description": "Nested object description.", "title": "Nested object title" }, "int64OverrideType": { "type": "integer", "format": "int64" }, "requiredStringViaFieldBehaviorAnnotation": { "type": "string", "title": "mark a field as required in Open API definition" }, "outputOnlyStringViaFieldBehaviorAnnotation": { "type": "string", "title": "mark a field as readonly in Open API definition", "readOnly": true }, "optionalStringValue": { "type": "string" }, "productId": { "type": "array", "items": { "type": "string", "maxLength": 19, "minLength": 1, "pattern": "^[0-9]+$" }, "description": "Only digits are allowed.", "title": "Test openapiv2 generation of repeated fields" }, "optionalStringField": { "type": "string", "title": "Test openapiv2 generation of required fields with annotation and jsonschema to reproduce" }, "requiredStringField1": { "type": "string" }, "requiredStringField2": { "type": "string" }, "required_field_behavior_json_name_custom": { "type": "string", "title": "Test openapiv2 handling of required json_name fields" }, "required_field_schema_json_name_custom": { "type": "string" }, "trailingOnly": { "type": "string", "title": "Trailing only" }, "trailingOnlyDot": { "type": "string", "description": "Trailing only dot." }, "trailingBoth": { "type": "string", "description": "Trailing both.", "title": "Leading both" }, "trailingMultiline": { "type": "string", "description": "This is an example of a multi-line comment.\n\nTrailing multiline.", "title": "Leading multiline" }, "uuids": { "type": "array", "items": { "type": "string", "format": "uuid" }, "title": "Specify a custom format of repeated field items" } }, "description": "Intentionally complicated message type to cover many features of Protobuf.", "title": "A bit of everything", "externalDocs": { "description": "Find out more about ABitOfEverything", "url": "https://github.com/grpc-ecosystem/grpc-gateway" }, "required": [ "int64Value", "doubleValue", "required_field_schema_json_name_custom", "floatValue", "requiredStringViaFieldBehaviorAnnotation", "requiredStringField1", "requiredStringField2", "required_field_behavior_json_name_custom" ], "x-a-bit-of-everything-foo": "bar" } } ], "tags": [ "ABitOfEverythingService" ] } }, "/v2/example/echo": { "get": { "summary": "Summary: Echo rpc", "description": "Description Echo", "operationId": "ABitOfEverythingService_Echo3", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/subStringMessage" }, "examples": { "application/json": { "value": "the input value" } } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "integer", "format": "integer" } }, "418": { "description": "I'm a teapot.", "schema": { "$ref": "#/definitions/examplepbNumericEnum" } }, "500": { "description": "Server error", "schema": { "$ref": "#/definitions/examplepbErrorResponse" } }, "503": { "description": "Returned when the resource is temporarily unavailable.", "schema": {}, "x-number": 100 }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "value", "in": "query", "required": false, "type": "string" } ], "tags": [ "echo rpc" ], "externalDocs": { "description": "Find out more Echo", "url": "https://github.com/grpc-ecosystem/grpc-gateway" } }, "post": { "summary": "Summary: Echo rpc", "description": "Description Echo", "operationId": "ABitOfEverythingService_Echo2", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/subStringMessage" }, "examples": { "application/json": { "value": "the input value" } } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "integer", "format": "integer" } }, "418": { "description": "I'm a teapot.", "schema": { "$ref": "#/definitions/examplepbNumericEnum" } }, "500": { "description": "Server error", "schema": { "$ref": "#/definitions/examplepbErrorResponse" } }, "503": { "description": "Returned when the resource is temporarily unavailable.", "schema": {}, "x-number": 100 }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "value", "in": "body", "required": true, "schema": { "type": "string" } } ], "tags": [ "echo rpc" ], "externalDocs": { "description": "Find out more Echo", "url": "https://github.com/grpc-ecosystem/grpc-gateway" } } }, "/v2/example/empty": { "get": { "operationId": "camelCaseServiceName_Empty", "responses": { "200": { "description": "A successful response.", "schema": { "type": "object", "properties": {} } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "string", "format": "string" } }, "418": { "description": "I'm a teapot.", "schema": { "$ref": "#/definitions/examplepbNumericEnum" } }, "500": { "description": "Server error", "schema": { "$ref": "#/definitions/examplepbErrorResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "tags": [ "camelCaseServiceName" ] } }, "/v2/example/errorwithdetails": { "get": { "operationId": "ABitOfEverythingService_ErrorWithDetails", "responses": { "200": { "description": "A successful response.", "schema": { "type": "object", "properties": {} } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "string", "format": "string" } }, "418": { "description": "I'm a teapot.", "schema": { "$ref": "#/definitions/examplepbNumericEnum" } }, "500": { "description": "Server error", "schema": { "$ref": "#/definitions/examplepbErrorResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "tags": [ "ABitOfEverythingService" ] } }, "/v2/example/overwriterequestcontenttype": { "post": { "operationId": "ABitOfEverythingService_OverwriteRequestContentType", "responses": { "200": { "description": "A successful response.", "schema": { "type": "object", "properties": {} } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "string", "format": "string" } }, "418": { "description": "I'm a teapot.", "schema": { "$ref": "#/definitions/examplepbNumericEnum" } }, "500": { "description": "Server error", "schema": { "$ref": "#/definitions/examplepbErrorResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/examplepbBody" } } ], "tags": [ "ABitOfEverything" ], "consumes": [ "application/x-bar-mime" ] } }, "/v2/example/overwriteresponsecontenttype": { "get": { "operationId": "ABitOfEverythingService_OverwriteResponseContentType", "responses": { "200": { "description": "A successful response.", "schema": { "type": "string" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "string", "format": "string" } }, "418": { "description": "I'm a teapot.", "schema": { "$ref": "#/definitions/examplepbNumericEnum" } }, "500": { "description": "Server error", "schema": { "$ref": "#/definitions/examplepbErrorResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "tags": [ "ABitOfEverything" ], "produces": [ "application/text" ] } }, "/v2/example/postwithemptybody/{name}": { "post": { "operationId": "ABitOfEverythingService_PostWithEmptyBody", "responses": { "200": { "description": "A successful response.", "schema": { "type": "object", "properties": {} } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "string", "format": "string" } }, "418": { "description": "I'm a teapot.", "schema": { "$ref": "#/definitions/examplepbNumericEnum" } }, "500": { "description": "Server error", "schema": { "$ref": "#/definitions/examplepbErrorResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "name", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/ABitOfEverythingServicePostWithEmptyBodyBody" } } ], "tags": [ "ABitOfEverythingService" ] } }, "/v2/example/timeout": { "get": { "operationId": "ABitOfEverythingService_Timeout", "responses": { "200": { "description": "A successful response.", "schema": { "type": "object", "properties": {} } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "string", "format": "string" } }, "418": { "description": "I'm a teapot.", "schema": { "$ref": "#/definitions/examplepbNumericEnum" } }, "500": { "description": "Server error", "schema": { "$ref": "#/definitions/examplepbErrorResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "tags": [ "ABitOfEverythingService" ] } }, "/v2/example/withbody/{id}": { "post": { "operationId": "ABitOfEverythingService_GetMessageWithBody", "responses": { "200": { "description": "A successful response.", "schema": { "type": "object", "properties": {} } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "string", "format": "string" } }, "418": { "description": "I'm a teapot.", "schema": { "$ref": "#/definitions/examplepbNumericEnum" } }, "500": { "description": "Server error", "schema": { "$ref": "#/definitions/examplepbErrorResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" }, { "name": "data", "in": "body", "required": true, "schema": { "$ref": "#/definitions/examplepbBody" } } ], "tags": [ "ABitOfEverythingService" ] } }, "/v2/{value}:check": { "get": { "operationId": "ABitOfEverythingService_CheckExternalPathEnum", "responses": { "200": { "description": "A successful response.", "schema": { "type": "object", "properties": {} } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "string", "format": "string" } }, "418": { "description": "I'm a teapot.", "schema": { "$ref": "#/definitions/examplepbNumericEnum" } }, "500": { "description": "Server error", "schema": { "$ref": "#/definitions/examplepbErrorResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "value", "in": "path", "required": true, "type": "string", "enum": [ "ABC", "DEF" ] } ], "tags": [ "ABitOfEverythingService" ] } }, "/v2a/example/a_bit_of_everything/{uuidName}": { "patch": { "operationId": "ABitOfEverythingService_UpdateV23", "responses": { "200": { "description": "A successful response.", "schema": { "type": "object", "properties": {} } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "string", "format": "string" } }, "418": { "description": "I'm a teapot.", "schema": { "$ref": "#/definitions/examplepbNumericEnum" } }, "500": { "description": "Server error", "schema": { "$ref": "#/definitions/examplepbErrorResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "uuidName", "in": "path", "required": true, "type": "string", "format": "uuid", "x-internal": true }, { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/ABitOfEverythingServiceUpdateV2Body" } } ], "tags": [ "ABitOfEverythingService" ] } }, "/v3/{value}:check": { "get": { "operationId": "ABitOfEverythingService_CheckExternalNestedPathEnum", "responses": { "200": { "description": "A successful response.", "schema": { "type": "object", "properties": {} } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "string", "format": "string" } }, "418": { "description": "I'm a teapot.", "schema": { "$ref": "#/definitions/examplepbNumericEnum" } }, "500": { "description": "Server error", "schema": { "$ref": "#/definitions/examplepbErrorResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "value", "in": "path", "required": true, "type": "string", "enum": [ "GHI", "JKL" ] } ], "tags": [ "ABitOfEverythingService" ] } } }, "definitions": { "ABitOfEverythingNested": { "type": "object", "example": { "ok": "TRUE" }, "properties": { "name": { "type": "string", "description": "name is nested field." }, "amount": { "type": "integer", "format": "int64" }, "ok": { "$ref": "#/definitions/NestedDeepEnum", "description": "DeepEnum description." } }, "description": "Nested is nested type." }, "ABitOfEverythingServiceDeepPathEchoBody": { "type": "object", "example": { "int64_value": 12, "double_value": 12.3 }, "properties": { "singleNested": { "type": "object", "example": { "ok": "TRUE" }, "properties": { "amount": { "type": "integer", "format": "int64" }, "ok": { "$ref": "#/definitions/NestedDeepEnum", "description": "DeepEnum description." } }, "description": "Nested is nested type." }, "uuid": { "type": "string", "format": "uuid", "minLength": 1, "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}", "x-internal": true }, "nested": { "type": "array", "items": { "type": "object", "$ref": "#/definitions/ABitOfEverythingNested" } }, "floatValue": { "type": "number", "format": "float", "default": "0.2", "description": "Float value field" }, "doubleValue": { "type": "number", "format": "double" }, "int64Value": { "type": "string", "format": "int64" }, "uint64Value": { "type": "string", "format": "uint64" }, "int32Value": { "type": "integer", "format": "int32" }, "fixed64Value": { "type": "string", "format": "uint64" }, "fixed32Value": { "type": "integer", "format": "int64" }, "boolValue": { "type": "boolean" }, "stringValue": { "type": "string" }, "bytesValue": { "type": "string", "format": "byte" }, "uint32Value": { "type": "integer", "format": "int64" }, "enumValue": { "$ref": "#/definitions/examplepbNumericEnum" }, "pathEnumValue": { "$ref": "#/definitions/pathenumPathEnum" }, "nestedPathEnumValue": { "$ref": "#/definitions/MessagePathEnumNestedPathEnum" }, "sfixed32Value": { "type": "integer", "format": "int32" }, "sfixed64Value": { "type": "string", "format": "int64" }, "sint32Value": { "type": "integer", "format": "int32" }, "sint64Value": { "type": "string", "format": "int64" }, "repeatedStringValue": { "type": "array", "items": { "type": "string" } }, "oneofEmpty": { "type": "object", "properties": {} }, "oneofString": { "type": "string" }, "mapValue": { "type": "object", "additionalProperties": { "$ref": "#/definitions/examplepbNumericEnum" }, "title": "map of numeric enum" }, "mappedStringValue": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Map of string description.", "title": "Map of string title" }, "mappedNestedValue": { "type": "object", "additionalProperties": { "$ref": "#/definitions/ABitOfEverythingNested" } }, "nonConventionalNameValue": { "type": "string" }, "timestampValue": { "type": "string", "format": "date-time" }, "repeatedEnumValue": { "type": "array", "items": { "$ref": "#/definitions/examplepbNumericEnum" }, "title": "repeated enum value. it is comma-separated in query" }, "repeatedEnumAnnotation": { "type": "array", "items": { "$ref": "#/definitions/examplepbNumericEnum" }, "description": "Repeated numeric enum description.", "title": "Repeated numeric enum title" }, "enumValueAnnotation": { "$ref": "#/definitions/examplepbNumericEnum", "description": "Numeric enum description.", "title": "Numeric enum title" }, "repeatedStringAnnotation": { "type": "array", "items": { "type": "string" }, "description": "Repeated string description.", "title": "Repeated string title" }, "repeatedNestedAnnotation": { "type": "array", "items": { "type": "object", "$ref": "#/definitions/ABitOfEverythingNested" }, "description": "Repeated nested object description.", "title": "Repeated nested object title" }, "nestedAnnotation": { "$ref": "#/definitions/ABitOfEverythingNested", "description": "Nested object description.", "title": "Nested object title" }, "int64OverrideType": { "type": "integer", "format": "int64" }, "requiredStringViaFieldBehaviorAnnotation": { "type": "string", "title": "mark a field as required in Open API definition" }, "outputOnlyStringViaFieldBehaviorAnnotation": { "type": "string", "title": "mark a field as readonly in Open API definition", "readOnly": true }, "optionalStringValue": { "type": "string" }, "productId": { "type": "array", "items": { "type": "string", "maxLength": 19, "minLength": 1, "pattern": "^[0-9]+$" }, "description": "Only digits are allowed.", "title": "Test openapiv2 generation of repeated fields" }, "optionalStringField": { "type": "string", "title": "Test openapiv2 generation of required fields with annotation and jsonschema to reproduce" }, "requiredStringField1": { "type": "string" }, "requiredStringField2": { "type": "string" }, "required_field_behavior_json_name_custom": { "type": "string", "title": "Test openapiv2 handling of required json_name fields" }, "required_field_schema_json_name_custom": { "type": "string" }, "trailingOnly": { "type": "string", "title": "Trailing only" }, "trailingOnlyDot": { "type": "string", "description": "Trailing only dot." }, "trailingBoth": { "type": "string", "description": "Trailing both.", "title": "Leading both" }, "trailingMultiline": { "type": "string", "description": "This is an example of a multi-line comment.\n\nTrailing multiline.", "title": "Leading multiline" }, "uuids": { "type": "array", "items": { "type": "string", "format": "uuid" }, "title": "Specify a custom format of repeated field items" } }, "description": "Intentionally complicated message type to cover many features of Protobuf.", "title": "A bit of everything", "externalDocs": { "description": "Find out more about ABitOfEverything", "url": "https://github.com/grpc-ecosystem/grpc-gateway" }, "required": [ "uuid", "int64Value", "doubleValue", "required_field_schema_json_name_custom", "floatValue", "requiredStringViaFieldBehaviorAnnotation", "requiredStringField1", "requiredStringField2", "required_field_behavior_json_name_custom" ], "x-a-bit-of-everything-foo": "bar" }, "ABitOfEverythingServicePostWithEmptyBodyBody": { "type": "object" }, "ABitOfEverythingServiceUpdateV2Body": { "type": "object", "properties": { "abe": { "type": "object", "example": { "int64_value": 12, "double_value": 12.3 }, "properties": { "singleNested": { "$ref": "#/definitions/ABitOfEverythingNested" }, "nested": { "type": "array", "items": { "type": "object", "$ref": "#/definitions/ABitOfEverythingNested" } }, "floatValue": { "type": "number", "format": "float", "default": "0.2", "description": "Float value field" }, "doubleValue": { "type": "number", "format": "double" }, "int64Value": { "type": "string", "format": "int64" }, "uint64Value": { "type": "string", "format": "uint64" }, "int32Value": { "type": "integer", "format": "int32" }, "fixed64Value": { "type": "string", "format": "uint64" }, "fixed32Value": { "type": "integer", "format": "int64" }, "boolValue": { "type": "boolean" }, "stringValue": { "type": "string" }, "bytesValue": { "type": "string", "format": "byte" }, "uint32Value": { "type": "integer", "format": "int64" }, "enumValue": { "$ref": "#/definitions/examplepbNumericEnum" }, "pathEnumValue": { "$ref": "#/definitions/pathenumPathEnum" }, "nestedPathEnumValue": { "$ref": "#/definitions/MessagePathEnumNestedPathEnum" }, "sfixed32Value": { "type": "integer", "format": "int32" }, "sfixed64Value": { "type": "string", "format": "int64" }, "sint32Value": { "type": "integer", "format": "int32" }, "sint64Value": { "type": "string", "format": "int64" }, "repeatedStringValue": { "type": "array", "items": { "type": "string" } }, "oneofEmpty": { "type": "object", "properties": {} }, "oneofString": { "type": "string" }, "mapValue": { "type": "object", "additionalProperties": { "$ref": "#/definitions/examplepbNumericEnum" }, "title": "map of numeric enum" }, "mappedStringValue": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Map of string description.", "title": "Map of string title" }, "mappedNestedValue": { "type": "object", "additionalProperties": { "$ref": "#/definitions/ABitOfEverythingNested" } }, "nonConventionalNameValue": { "type": "string" }, "timestampValue": { "type": "string", "format": "date-time" }, "repeatedEnumValue": { "type": "array", "items": { "$ref": "#/definitions/examplepbNumericEnum" }, "title": "repeated enum value. it is comma-separated in query" }, "repeatedEnumAnnotation": { "type": "array", "items": { "$ref": "#/definitions/examplepbNumericEnum" }, "description": "Repeated numeric enum description.", "title": "Repeated numeric enum title" }, "enumValueAnnotation": { "$ref": "#/definitions/examplepbNumericEnum", "description": "Numeric enum description.", "title": "Numeric enum title" }, "repeatedStringAnnotation": { "type": "array", "items": { "type": "string" }, "description": "Repeated string description.", "title": "Repeated string title" }, "repeatedNestedAnnotation": { "type": "array", "items": { "type": "object", "$ref": "#/definitions/ABitOfEverythingNested" }, "description": "Repeated nested object description.", "title": "Repeated nested object title" }, "nestedAnnotation": { "$ref": "#/definitions/ABitOfEverythingNested", "description": "Nested object description.", "title": "Nested object title" }, "int64OverrideType": { "type": "integer", "format": "int64" }, "requiredStringViaFieldBehaviorAnnotation": { "type": "string", "title": "mark a field as required in Open API definition" }, "outputOnlyStringViaFieldBehaviorAnnotation": { "type": "string", "title": "mark a field as readonly in Open API definition", "readOnly": true }, "optionalStringValue": { "type": "string" }, "productId": { "type": "array", "items": { "type": "string", "maxLength": 19, "minLength": 1, "pattern": "^[0-9]+$" }, "description": "Only digits are allowed.", "title": "Test openapiv2 generation of repeated fields" }, "optionalStringField": { "type": "string", "title": "Test openapiv2 generation of required fields with annotation and jsonschema to reproduce" }, "requiredStringField1": { "type": "string" }, "requiredStringField2": { "type": "string" }, "required_field_behavior_json_name_custom": { "type": "string", "title": "Test openapiv2 handling of required json_name fields" }, "required_field_schema_json_name_custom": { "type": "string" }, "trailingOnly": { "type": "string", "title": "Trailing only" }, "trailingOnlyDot": { "type": "string", "description": "Trailing only dot." }, "trailingBoth": { "type": "string", "description": "Trailing both.", "title": "Leading both" }, "trailingMultiline": { "type": "string", "description": "This is an example of a multi-line comment.\n\nTrailing multiline.", "title": "Leading multiline" }, "uuids": { "type": "array", "items": { "type": "string", "format": "uuid" }, "title": "Specify a custom format of repeated field items" } }, "description": "Intentionally complicated message type to cover many features of Protobuf.", "title": "A bit of everything", "externalDocs": { "description": "Find out more about ABitOfEverything", "url": "https://github.com/grpc-ecosystem/grpc-gateway" }, "x-a-bit-of-everything-foo": "bar" }, "updateMask": { "type": "string", "description": "The paths to update." } }, "title": "UpdateV2Request request for update includes the message and the update mask", "required": [ "int64Value", "doubleValue", "required_field_schema_json_name_custom", "floatValue", "requiredStringViaFieldBehaviorAnnotation", "requiredStringField1", "requiredStringField2", "required_field_behavior_json_name_custom" ] }, "MessagePathEnumNestedPathEnum": { "type": "string", "enum": [ "GHI", "JKL" ], "default": "GHI" }, "NestedDeepEnum": { "type": "string", "enum": [ "FALSE", "TRUE" ], "default": "FALSE", "description": "DeepEnum is one or zero.\n\n - FALSE: FALSE is false.\n - TRUE: TRUE is true." }, "examplepbABitOfEverything": { "type": "object", "example": { "int64_value": 12, "double_value": 12.3 }, "properties": { "singleNested": { "$ref": "#/definitions/ABitOfEverythingNested" }, "uuid": { "type": "string", "format": "uuid", "minLength": 1, "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}", "x-internal": true }, "nested": { "type": "array", "items": { "type": "object", "$ref": "#/definitions/ABitOfEverythingNested" } }, "floatValue": { "type": "number", "format": "float", "default": "0.2", "description": "Float value field" }, "doubleValue": { "type": "number", "format": "double" }, "int64Value": { "type": "string", "format": "int64" }, "uint64Value": { "type": "string", "format": "uint64" }, "int32Value": { "type": "integer", "format": "int32" }, "fixed64Value": { "type": "string", "format": "uint64" }, "fixed32Value": { "type": "integer", "format": "int64" }, "boolValue": { "type": "boolean" }, "stringValue": { "type": "string" }, "bytesValue": { "type": "string", "format": "byte" }, "uint32Value": { "type": "integer", "format": "int64" }, "enumValue": { "$ref": "#/definitions/examplepbNumericEnum" }, "pathEnumValue": { "$ref": "#/definitions/pathenumPathEnum" }, "nestedPathEnumValue": { "$ref": "#/definitions/MessagePathEnumNestedPathEnum" }, "sfixed32Value": { "type": "integer", "format": "int32" }, "sfixed64Value": { "type": "string", "format": "int64" }, "sint32Value": { "type": "integer", "format": "int32" }, "sint64Value": { "type": "string", "format": "int64" }, "repeatedStringValue": { "type": "array", "items": { "type": "string" } }, "oneofEmpty": { "type": "object", "properties": {} }, "oneofString": { "type": "string" }, "mapValue": { "type": "object", "additionalProperties": { "$ref": "#/definitions/examplepbNumericEnum" }, "title": "map of numeric enum" }, "mappedStringValue": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Map of string description.", "title": "Map of string title" }, "mappedNestedValue": { "type": "object", "additionalProperties": { "$ref": "#/definitions/ABitOfEverythingNested" } }, "nonConventionalNameValue": { "type": "string" }, "timestampValue": { "type": "string", "format": "date-time" }, "repeatedEnumValue": { "type": "array", "items": { "$ref": "#/definitions/examplepbNumericEnum" }, "title": "repeated enum value. it is comma-separated in query" }, "repeatedEnumAnnotation": { "type": "array", "items": { "$ref": "#/definitions/examplepbNumericEnum" }, "description": "Repeated numeric enum description.", "title": "Repeated numeric enum title" }, "enumValueAnnotation": { "$ref": "#/definitions/examplepbNumericEnum", "description": "Numeric enum description.", "title": "Numeric enum title" }, "repeatedStringAnnotation": { "type": "array", "items": { "type": "string" }, "description": "Repeated string description.", "title": "Repeated string title" }, "repeatedNestedAnnotation": { "type": "array", "items": { "type": "object", "$ref": "#/definitions/ABitOfEverythingNested" }, "description": "Repeated nested object description.", "title": "Repeated nested object title" }, "nestedAnnotation": { "$ref": "#/definitions/ABitOfEverythingNested", "description": "Nested object description.", "title": "Nested object title" }, "int64OverrideType": { "type": "integer", "format": "int64" }, "requiredStringViaFieldBehaviorAnnotation": { "type": "string", "title": "mark a field as required in Open API definition" }, "outputOnlyStringViaFieldBehaviorAnnotation": { "type": "string", "title": "mark a field as readonly in Open API definition", "readOnly": true }, "optionalStringValue": { "type": "string" }, "productId": { "type": "array", "items": { "type": "string", "maxLength": 19, "minLength": 1, "pattern": "^[0-9]+$" }, "description": "Only digits are allowed.", "title": "Test openapiv2 generation of repeated fields" }, "optionalStringField": { "type": "string", "title": "Test openapiv2 generation of required fields with annotation and jsonschema to reproduce" }, "requiredStringField1": { "type": "string" }, "requiredStringField2": { "type": "string" }, "required_field_behavior_json_name_custom": { "type": "string", "title": "Test openapiv2 handling of required json_name fields" }, "required_field_schema_json_name_custom": { "type": "string" }, "trailingOnly": { "type": "string", "title": "Trailing only" }, "trailingOnlyDot": { "type": "string", "description": "Trailing only dot." }, "trailingBoth": { "type": "string", "description": "Trailing both.", "title": "Leading both" }, "trailingMultiline": { "type": "string", "description": "This is an example of a multi-line comment.\n\nTrailing multiline.", "title": "Leading multiline" }, "uuids": { "type": "array", "items": { "type": "string", "format": "uuid" }, "title": "Specify a custom format of repeated field items" } }, "description": "Intentionally complicated message type to cover many features of Protobuf.", "title": "A bit of everything", "externalDocs": { "description": "Find out more about ABitOfEverything", "url": "https://github.com/grpc-ecosystem/grpc-gateway" }, "required": [ "uuid", "int64Value", "doubleValue", "required_field_schema_json_name_custom", "floatValue", "requiredStringViaFieldBehaviorAnnotation", "requiredStringField1", "requiredStringField2", "required_field_behavior_json_name_custom" ], "x-a-bit-of-everything-foo": "bar" }, "examplepbABitOfEverythingRepeated": { "type": "object", "example": { "path_repeated_bool_value": [ true, true, false, true ], "path_repeated_int32_value": [ 1, 2, 3 ] }, "properties": { "pathRepeatedFloatValue": { "type": "array", "items": { "type": "number", "format": "float" }, "title": "repeated values. they are comma-separated in path" }, "pathRepeatedDoubleValue": { "type": "array", "items": { "type": "number", "format": "double" } }, "pathRepeatedInt64Value": { "type": "array", "items": { "type": "string", "format": "int64" } }, "pathRepeatedUint64Value": { "type": "array", "items": { "type": "string", "format": "uint64" } }, "pathRepeatedInt32Value": { "type": "array", "items": { "type": "integer", "format": "int32" } }, "pathRepeatedFixed64Value": { "type": "array", "items": { "type": "string", "format": "uint64" } }, "pathRepeatedFixed32Value": { "type": "array", "items": { "type": "integer", "format": "int64" } }, "pathRepeatedBoolValue": { "type": "array", "items": { "type": "boolean" } }, "pathRepeatedStringValue": { "type": "array", "items": { "type": "string" } }, "pathRepeatedBytesValue": { "type": "array", "items": { "type": "string", "format": "byte" } }, "pathRepeatedUint32Value": { "type": "array", "items": { "type": "integer", "format": "int64" } }, "pathRepeatedEnumValue": { "type": "array", "items": { "$ref": "#/definitions/examplepbNumericEnum" } }, "pathRepeatedSfixed32Value": { "type": "array", "items": { "type": "integer", "format": "int32" } }, "pathRepeatedSfixed64Value": { "type": "array", "items": { "type": "string", "format": "int64" } }, "pathRepeatedSint32Value": { "type": "array", "items": { "type": "integer", "format": "int32" } }, "pathRepeatedSint64Value": { "type": "array", "items": { "type": "string", "format": "int64" } } }, "title": "ABitOfEverythingRepeated is used to validate repeated path parameter functionality" }, "examplepbABitOfEverythingServiceUpdateBody": { "type": "object", "example": { "int64_value": 12, "double_value": 12.3 }, "properties": { "singleNested": { "$ref": "#/definitions/ABitOfEverythingNested" }, "nested": { "type": "array", "items": { "type": "object", "$ref": "#/definitions/ABitOfEverythingNested" } }, "floatValue": { "type": "number", "format": "float", "default": "0.2", "description": "Float value field" }, "doubleValue": { "type": "number", "format": "double" }, "int64Value": { "type": "string", "format": "int64" }, "uint64Value": { "type": "string", "format": "uint64" }, "int32Value": { "type": "integer", "format": "int32" }, "fixed64Value": { "type": "string", "format": "uint64" }, "fixed32Value": { "type": "integer", "format": "int64" }, "boolValue": { "type": "boolean" }, "stringValue": { "type": "string" }, "bytesValue": { "type": "string", "format": "byte" }, "uint32Value": { "type": "integer", "format": "int64" }, "enumValue": { "$ref": "#/definitions/examplepbNumericEnum" }, "pathEnumValue": { "$ref": "#/definitions/pathenumPathEnum" }, "nestedPathEnumValue": { "$ref": "#/definitions/MessagePathEnumNestedPathEnum" }, "sfixed32Value": { "type": "integer", "format": "int32" }, "sfixed64Value": { "type": "string", "format": "int64" }, "sint32Value": { "type": "integer", "format": "int32" }, "sint64Value": { "type": "string", "format": "int64" }, "repeatedStringValue": { "type": "array", "items": { "type": "string" } }, "oneofEmpty": { "type": "object", "properties": {} }, "oneofString": { "type": "string" }, "mapValue": { "type": "object", "additionalProperties": { "$ref": "#/definitions/examplepbNumericEnum" }, "title": "map of numeric enum" }, "mappedStringValue": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Map of string description.", "title": "Map of string title" }, "mappedNestedValue": { "type": "object", "additionalProperties": { "$ref": "#/definitions/ABitOfEverythingNested" } }, "nonConventionalNameValue": { "type": "string" }, "timestampValue": { "type": "string", "format": "date-time" }, "repeatedEnumValue": { "type": "array", "items": { "$ref": "#/definitions/examplepbNumericEnum" }, "title": "repeated enum value. it is comma-separated in query" }, "repeatedEnumAnnotation": { "type": "array", "items": { "$ref": "#/definitions/examplepbNumericEnum" }, "description": "Repeated numeric enum description.", "title": "Repeated numeric enum title" }, "enumValueAnnotation": { "$ref": "#/definitions/examplepbNumericEnum", "description": "Numeric enum description.", "title": "Numeric enum title" }, "repeatedStringAnnotation": { "type": "array", "items": { "type": "string" }, "description": "Repeated string description.", "title": "Repeated string title" }, "repeatedNestedAnnotation": { "type": "array", "items": { "type": "object", "$ref": "#/definitions/ABitOfEverythingNested" }, "description": "Repeated nested object description.", "title": "Repeated nested object title" }, "nestedAnnotation": { "$ref": "#/definitions/ABitOfEverythingNested", "description": "Nested object description.", "title": "Nested object title" }, "int64OverrideType": { "type": "integer", "format": "int64" }, "requiredStringViaFieldBehaviorAnnotation": { "type": "string", "title": "mark a field as required in Open API definition" }, "outputOnlyStringViaFieldBehaviorAnnotation": { "type": "string", "title": "mark a field as readonly in Open API definition", "readOnly": true }, "optionalStringValue": { "type": "string" }, "productId": { "type": "array", "items": { "type": "string", "maxLength": 19, "minLength": 1, "pattern": "^[0-9]+$" }, "description": "Only digits are allowed.", "title": "Test openapiv2 generation of repeated fields" }, "optionalStringField": { "type": "string", "title": "Test openapiv2 generation of required fields with annotation and jsonschema to reproduce" }, "requiredStringField1": { "type": "string" }, "requiredStringField2": { "type": "string" }, "required_field_behavior_json_name_custom": { "type": "string", "title": "Test openapiv2 handling of required json_name fields" }, "required_field_schema_json_name_custom": { "type": "string" }, "trailingOnly": { "type": "string", "title": "Trailing only" }, "trailingOnlyDot": { "type": "string", "description": "Trailing only dot." }, "trailingBoth": { "type": "string", "description": "Trailing both.", "title": "Leading both" }, "trailingMultiline": { "type": "string", "description": "This is an example of a multi-line comment.\n\nTrailing multiline.", "title": "Leading multiline" }, "uuids": { "type": "array", "items": { "type": "string", "format": "uuid" }, "title": "Specify a custom format of repeated field items" } }, "description": "Intentionally complicated message type to cover many features of Protobuf.", "title": "A bit of everything", "externalDocs": { "description": "Find out more about ABitOfEverything", "url": "https://github.com/grpc-ecosystem/grpc-gateway" }, "required": [ "int64Value", "doubleValue", "required_field_schema_json_name_custom", "floatValue", "requiredStringViaFieldBehaviorAnnotation", "requiredStringField1", "requiredStringField2", "required_field_behavior_json_name_custom" ], "x-a-bit-of-everything-foo": "bar" }, "examplepbBar": { "type": "object", "properties": { "id": { "type": "string" } }, "required": [ "id" ] }, "examplepbBody": { "type": "object", "properties": { "name": { "type": "string" } } }, "examplepbBook": { "type": "object", "properties": { "name": { "type": "string", "description": "The resource name of the book.\n\nFormat: `publishers/{publisher}/books/{book}`\n\nExample: `publishers/1257894000000000000/books/my-book`" }, "id": { "type": "string", "description": "Output only. The book's ID.", "readOnly": true }, "createTime": { "type": "string", "format": "date-time", "description": "Output only. Creation time of the book.", "readOnly": true } }, "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" }, "examplepbCheckStatusResponse": { "type": "object", "properties": { "status": { "$ref": "#/definitions/rpcStatus" } } }, "examplepbErrorObject": { "type": "object", "properties": { "code": { "type": "integer", "format": "integer", "description": "Response code", "title": "code", "pattern": "^[0-9]$" }, "message": { "type": "string", "description": "Response message", "title": "message", "pattern": "^[a-zA-Z0-9]{1, 32}$" } } }, "examplepbErrorResponse": { "type": "object", "properties": { "correlationId": { "type": "string", "format": "uuid", "example": "2438ac3c-37eb-4902-adef-ed16b4431030", "description": "Unique event identifier for server requests", "title": "x-correlation-id", "pattern": "^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$" }, "error": { "$ref": "#/definitions/examplepbErrorObject" } } }, "examplepbNumericEnum": { "type": "string", "example": "ZERO", "enum": [ "ZERO", "ONE" ], "default": "ZERO", "description": "NumericEnum is one or zero.", "title": "NumericEnum", "externalDocs": { "description": "Find out more about ABitOfEverything", "url": "https://github.com/grpc-ecosystem/grpc-gateway" }, "x-a-bit-of-everything-foo": "bar" }, "examplepbRequiredMessageTypeRequest": { "type": "object", "properties": { "id": { "type": "string" }, "foo": { "$ref": "#/definitions/protoexamplepbFoo" } }, "title": "Required message type -\u003e OpenAPI\nhttps://github.com/grpc-ecosystem/grpc-gateway/issues/2837", "required": [ "id", "foo" ] }, "examplepbSnakeEnumResponse": { "type": "object" }, "examplepbsnake_case_0_enum": { "type": "string", "enum": [ "value_e", "value_f" ], "default": "value_e", "description": "- value_e: buf:lint:ignore ENUM_VALUE_UPPER_SNAKE_CASE\n - value_f: buf:lint:ignore ENUM_VALUE_UPPER_SNAKE_CASE", "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" }, "examplepbsnake_case_enum": { "type": "string", "enum": [ "value_c", "value_d" ], "default": "value_c", "description": "- value_c: buf:lint:ignore ENUM_VALUE_UPPER_SNAKE_CASE\n - value_d: buf:lint:ignore ENUM_VALUE_UPPER_SNAKE_CASE", "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" }, "oneofenumExampleEnum": { "type": "string", "enum": [ "EXAMPLE_ENUM_UNSPECIFIED", "EXAMPLE_ENUM_FIRST" ], "default": "EXAMPLE_ENUM_UNSPECIFIED" }, "pathenumPathEnum": { "type": "string", "enum": [ "ABC", "DEF" ], "default": "ABC" }, "pathenumsnake_case_for_import": { "type": "string", "enum": [ "value_x", "value_y" ], "default": "value_x", "description": "- value_x: buf:lint:ignore ENUM_VALUE_UPPER_SNAKE_CASE\n - value_y: buf:lint:ignore ENUM_VALUE_UPPER_SNAKE_CASE", "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" }, "protobufAny": { "type": "object", "properties": { "@type": { "type": "string", "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. As of May 2023, there are no widely used type server\nimplementations and no plans to implement one.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." } }, "additionalProperties": {}, "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 // or ...\n if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n foo = any.unpack(Foo.getDefaultInstance());\n }\n\n Example 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\n Example 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\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 }" }, "protoexamplepbFoo": { "type": "object", "properties": { "bar": { "$ref": "#/definitions/examplepbBar" } }, "required": [ "bar" ] }, "rpcStatus": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32", "description": "The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code]." }, "message": { "type": "string", "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." }, "details": { "type": "array", "items": { "type": "object", "$ref": "#/definitions/protobufAny" }, "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use." } }, "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)." }, "subStringMessage": { "type": "object", "properties": { "value": { "type": "string" } } } }, "securityDefinitions": { "ApiKeyAuth": { "type": "apiKey", "name": "X-API-Key", "in": "header", "x-amazon-apigateway-authorizer": { "authorizerResultTtlInSeconds": 60, "type": "token" }, "x-amazon-apigateway-authtype": "oauth2" }, "BasicAuth": { "type": "basic" }, "OAuth2": { "type": "oauth2", "flow": "accessCode", "authorizationUrl": "https://example.com/oauth/authorize", "tokenUrl": "https://example.com/oauth/token", "scopes": { "admin": "Grants read and write access to administrative information", "read": "Grants read access", "write": "Grants write access" } } }, "security": [ { "ApiKeyAuth": [], "BasicAuth": [] }, { "ApiKeyAuth": [], "OAuth2": [ "read", "write" ] } ], "externalDocs": { "description": "More about gRPC-Gateway", "url": "https://github.com/grpc-ecosystem/grpc-gateway" }, "x-grpc-gateway-baz-list": [ "one", true ], "x-grpc-gateway-foo": "bar" }