openapi: "3.0.1" info: version: 1.0.0 title: Test Server license: name: MIT servers: - url: http://openapitest.deepmap.ai paths: /response-with-reference: get: summary: get response with reference operationId: getResponseWithReference responses: '200': $ref: "#/components/responses/ResponseWithReference" /reserved-keyword: get: summary: get with reserved keyword operationId: getReservedKeyword responses: '200': description: example of a response with a reserved keyword content: application/json: schema: $ref: "#/components/schemas/ReservedKeyword" /every-type-optional: get: summary: get every type optional operationId: getEveryTypeOptional responses: '200': description: a example of every type with an optional value content: application/json: schema: $ref: "#/components/schemas/EveryTypeOptional" /get-simple: get: summary: Get resource via simple path operationId: getSimple responses: '200': description: A simple response for a simple path content: application/json: schema: $ref: "#/components/schemas/some_object" /get-with-type/{content_type}: get: summary: Get an object by ID operationId: getWithContentType parameters: - name: content_type in: path required: true description: Get with a parameter and multiple output types schema: type: string enum: - text - json responses: '200': description: A simple response for a simple path content: application/json: schema: $ref: "#/components/schemas/some_object" text/plain: schema: type: string /get-with-references/{global_argument}/{argument}: summary: GetWithReferences parameters: - name: global_argument in: path required: true description: A parameter in global path scope schema: type: integer format: int64 get: summary: Getter with referenced parameter and referenced response operationId: getWithReferences parameters: - $ref: "#/components/parameters/argument" responses: '200': $ref: "#/components/responses/SimpleResponse" /get-with-args: summary: GetWithArgs get: summary: Getter with referenced parameter and referenced response operationId: getWithArgs parameters: - name: optional_argument in: query required: false description: An optional query argument schema: type: integer format: int64 - name: required_argument in: query required: true description: An optional query argument schema: type: integer format: int64 - name: header_argument in: header required: false description: An optional query argument schema: type: integer format: int32 #- name: cookie_argument # in: cookie # required: false # description: An optional query argument # schema: # type: integer # format: int32 responses: '200': $ref: "#/components/responses/SimpleResponse" /resource/{argument}: post: summary: Create a resource operationId: createResource parameters: - $ref: "#/components/parameters/argument" requestBody: description: Required body required: true content: application/json: schema: $ref: '#/components/schemas/EveryTypeRequired' responses: '200': $ref: "#/components/responses/SimpleResponse" /resource2/{inline_argument}: post: summary: Create a resource with inline parameter operationId: createResource2 parameters: - name: inline_argument in: path required: true description: Some argument schema: type: integer - name: inline_query_argument in: query description: Some query argument schema: type: integer requestBody: description: Optional body required: false content: application/json: schema: $ref: '#/components/schemas/Resource' responses: '200': $ref: "#/components/responses/SimpleResponse" /resource3/{fallthrough}: put: summary: | Update a resource with inline body. The parameter name is a reserved keyword, so make sure that gets prefixed to avoid syntax errors operationId: updateResource3 parameters: - name: fallthrough in: path required: true description: Some argument schema: type: integer requestBody: description: required inline body required: true content: application/json: schema: properties: id: type: integer name: type: string responses: '200': $ref: "#/components/responses/SimpleResponse" components: parameters: argument: name: argument in: path required: true description: Some argument schema: type: string schemas: ThisShouldBePruned: properties: name: type: string # This is intentionally named in snake case some_object: properties: name: type: string required: - name Resource: properties: name: type: string value: type: number format: float required: - name - value EveryTypeRequired: properties: int32_field: type: integer format: int32 int64_field: type: integer format: int64 int_field: type: integer double_field: type: number format: double float_field: type: number format: float number_field: type: number bool_field: type: boolean string_field: type: string email_field: type: string format: email date_field: type: string format: date byte_field: type: string format: byte date_time_field: type: string format: date-time inline_object_field: properties: name: type: string number: type: integer required: - name - number referenced_field: $ref: "#/components/schemas/some_object" array_inline_field: type: array items: type: integer array_referenced_field: type: array items: $ref: "#/components/schemas/some_object" required: - int32_field - int64_field - int_field - double_field - float_field - number_field - bool_field - string_field - date_field - date_time_field - inline_object_field - referenced_field - array_inline_field - array_referenced_field - byte_field EveryTypeOptional: properties: int32_field: type: integer format: int32 int64_field: type: integer format: int64 int_field: type: integer double_field: type: number format: double float_field: type: number format: float number_field: type: number bool_field: type: boolean string_field: type: string date_field: type: string format: date byte_field: type: string format: byte date_time_field: type: string format: date-time inline_object_field: properties: name: type: string number: type: integer required: - name - number referenced_field: $ref: "#/components/schemas/some_object" array_inline_field: type: array items: type: integer array_referenced_field: type: array items: $ref: "#/components/schemas/some_object" ReservedKeyword: properties: channel: type: string required: [ type ] responses: SimpleResponse: description: A simple response object content: application/json: schema: properties: name: type: string required: - name ResponseWithReference: description: A response object with a type reference content: application/json: schema: $ref: "#/components/schemas/some_object"