Last active
January 18, 2024 04:40
-
-
Save xeptore/87f3b80f5c13e9d2c5b620c338c2c43e to your computer and use it in GitHub Desktop.
The description of OpenAPI v3.1.x operation documents without schema validation, as defined by https://spec.openapis.org/oas/v3.1.0
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| $id: https://gist.githubusercontent.com/xeptore/87f3b80f5c13e9d2c5b620c338c2c43e/raw/openapi-v3.1-operation-object-schema.yaml | |
| $schema: https://json-schema.org/draft/2020-12/schema | |
| title: OpenAPI v3.1.x Operation Object Schema | |
| $comment: https://spec.openapis.org/oas/v3.1.0#operation-object | |
| type: object | |
| additionalProperties: false | |
| unevaluatedProperties: false | |
| required: | |
| - tags | |
| - summary | |
| - operationId | |
| - responses | |
| properties: | |
| tags: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| type: string | |
| summary: | |
| type: string | |
| description: | |
| type: string | |
| operationId: | |
| type: string | |
| pattern: "^[a-z]+(-[a-z]+)*$" | |
| parameters: | |
| type: array | |
| items: | |
| $ref: "#/$defs/parameter-or-reference" | |
| requestBody: | |
| $ref: "#/$defs/request-body" | |
| responses: | |
| $ref: "#/$defs/responses" | |
| deprecated: | |
| type: boolean | |
| default: false | |
| security: | |
| type: array | |
| items: | |
| $ref: "#/$defs/security-requirement" | |
| servers: | |
| type: array | |
| items: | |
| $ref: "#/$defs/server" | |
| $defs: | |
| server: | |
| $comment: https://spec.openapis.org/oas/v3.1.0#server-object | |
| type: object | |
| unevaluatedProperties: false | |
| properties: | |
| url: | |
| type: string | |
| format: uri-reference | |
| description: | |
| type: string | |
| variables: | |
| type: object | |
| unevaluatedProperties: false | |
| patternProperties: | |
| "^[a-z]+([A-Z][a-z]+)*$": | |
| $ref: "#/$defs/server-variable" | |
| required: | |
| - url | |
| server-variable: | |
| $comment: https://spec.openapis.org/oas/v3.1.0#server-variable-object | |
| type: object | |
| unevaluatedProperties: false | |
| properties: | |
| enum: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| type: string | |
| default: | |
| type: string | |
| description: | |
| type: string | |
| required: | |
| - default | |
| parameter: | |
| $comment: https://spec.openapis.org/oas/v3.1.0#parameter-object | |
| type: object | |
| unevaluatedProperties: false | |
| required: | |
| - name | |
| - in | |
| properties: | |
| name: | |
| type: string | |
| minLength: 1 | |
| in: | |
| enum: | |
| - query | |
| - header | |
| - path | |
| - cookie | |
| description: | |
| type: string | |
| required: | |
| type: boolean | |
| default: false | |
| deprecated: | |
| type: boolean | |
| default: false | |
| schema: | |
| $ref: "#/$defs/schema" | |
| examples: | |
| $ref: "#/$defs/schema-examples" | |
| content: | |
| $ref: "#/$defs/content" | |
| oneOf: | |
| - required: | |
| - schema | |
| - examples | |
| - required: | |
| - content | |
| if: | |
| properties: | |
| in: | |
| const: query | |
| required: | |
| - in | |
| then: | |
| properties: | |
| allowEmptyValue: | |
| default: false | |
| type: boolean | |
| dependentSchemas: | |
| schema: | |
| properties: | |
| style: | |
| type: string | |
| explode: | |
| type: boolean | |
| allOf: | |
| - $ref: "#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-path" | |
| - $ref: "#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-header" | |
| - $ref: "#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-query" | |
| - $ref: "#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-cookie" | |
| - $ref: "#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-form" | |
| $defs: | |
| styles-for-path: | |
| if: | |
| type: object | |
| properties: | |
| in: | |
| const: path | |
| required: | |
| - in | |
| then: | |
| type: object | |
| properties: | |
| name: | |
| type: string | |
| pattern: "^[a-z]+([A-Z][a-z]+)*$" | |
| style: | |
| default: simple | |
| enum: | |
| - matrix | |
| - label | |
| - simple | |
| required: | |
| const: true | |
| required: | |
| - required | |
| styles-for-header: | |
| if: | |
| type: object | |
| properties: | |
| in: | |
| const: header | |
| required: | |
| - in | |
| then: | |
| type: object | |
| properties: | |
| name: | |
| type: string | |
| pattern: ^[a-z]+(-[a-z]+)*$ | |
| style: | |
| default: simple | |
| const: simple | |
| styles-for-query: | |
| if: | |
| type: object | |
| properties: | |
| in: | |
| const: query | |
| required: | |
| - in | |
| then: | |
| type: object | |
| properties: | |
| name: | |
| type: string | |
| pattern: "^[a-z]+(_[a-z]+)*$" | |
| style: | |
| default: form | |
| enum: | |
| - form | |
| - spaceDelimited | |
| - pipeDelimited | |
| - deepObject | |
| allowReserved: | |
| default: false | |
| type: boolean | |
| styles-for-cookie: | |
| if: | |
| type: object | |
| properties: | |
| in: | |
| const: cookie | |
| required: | |
| - in | |
| then: | |
| type: object | |
| properties: | |
| name: | |
| type: string | |
| pattern: "^[a-z]+(-[a-z]+)*$" | |
| style: | |
| default: form | |
| const: form | |
| styles-for-form: | |
| if: | |
| type: object | |
| properties: | |
| style: | |
| const: form | |
| required: | |
| - style | |
| then: | |
| type: object | |
| properties: | |
| name: | |
| type: string | |
| pattern: "^[a-z]+(_[a-z]+)*$" | |
| explode: | |
| default: true | |
| else: | |
| type: object | |
| properties: | |
| explode: | |
| default: false | |
| parameter-or-reference: | |
| if: | |
| type: object | |
| required: | |
| - $ref | |
| then: | |
| $ref: "#/$defs/reference" | |
| else: | |
| $ref: "#/$defs/parameter" | |
| content: | |
| $comment: https://spec.openapis.org/oas/v3.1.0#fixed-fields-10 | |
| type: object | |
| unevaluatedProperties: false | |
| minProperties: 1 | |
| maxProperties: 1 | |
| oneOf: | |
| - required: | |
| - "application/json" | |
| properties: | |
| "application/json": | |
| $ref: "#/$defs/content-schema" | |
| content-schema: | |
| type: object | |
| unevaluatedProperties: false | |
| required: | |
| - schema | |
| - examples | |
| properties: | |
| encoding: | |
| $ref: "#/$defs/encoding" | |
| schema: | |
| type: object | |
| required: | |
| - type | |
| - properties | |
| - unevaluatedProperties | |
| properties: | |
| type: | |
| type: string | |
| const: object | |
| unevaluatedProperties: | |
| type: boolean | |
| default: false | |
| properties: | |
| $ref: "#/$defs/properties" | |
| examples: | |
| $ref: "#/$defs/schema-examples" | |
| schema-examples: | |
| type: object | |
| unevaluatedProperties: false | |
| minProperties: 1 | |
| patternProperties: | |
| "^[A-Z][a-z]+([a-zA-Z]+)*$": | |
| type: object | |
| unevaluatedProperties: false | |
| required: | |
| - summary | |
| - value | |
| properties: | |
| summary: | |
| type: string | |
| description: | |
| type: string | |
| value: true | |
| encoding: | |
| $comment: https://spec.openapis.org/oas/v3.1.0#encoding-object | |
| type: object | |
| unevaluatedProperties: false | |
| properties: | |
| contentType: | |
| type: string | |
| # format: media-range | |
| headers: | |
| type: object | |
| unevaluatedProperties: false | |
| patternProperties: | |
| "^[A-Z][a-z]+(-[A-Z][a-z]+)*$": | |
| $ref: "#/$defs/header-or-reference" | |
| style: | |
| default: form | |
| enum: | |
| - form | |
| - spaceDelimited | |
| - pipeDelimited | |
| - deepObject | |
| explode: | |
| type: boolean | |
| allowReserved: | |
| default: false | |
| type: boolean | |
| allOf: | |
| - $ref: "#/$defs/encoding/$defs/explode-default" | |
| $defs: | |
| explode-default: | |
| if: | |
| type: object | |
| properties: | |
| style: | |
| const: form | |
| required: | |
| - style | |
| then: | |
| type: object | |
| properties: | |
| explode: | |
| default: true | |
| else: | |
| type: object | |
| properties: | |
| explode: | |
| default: false | |
| request-body: | |
| type: object | |
| unevaluatedProperties: false | |
| required: | |
| - content | |
| properties: | |
| description: | |
| type: string | |
| content: | |
| $ref: "#/$defs/content" | |
| responses: | |
| $comment: https://spec.openapis.org/oas/v3.1.0#responses-object | |
| type: object | |
| unevaluatedProperties: false | |
| patternProperties: | |
| "^[1-5](?:[0-9]{2}|XX)$": | |
| $ref: "#/$defs/response-or-reference" | |
| minProperties: 1 | |
| if: | |
| $comment: either default, or at least one response code property must exist | |
| patternProperties: | |
| "^[1-5](?:[0-9]{2}|XX)$": false | |
| then: | |
| required: | |
| - default | |
| response: | |
| $comment: https://spec.openapis.org/oas/v3.1.0#response-object | |
| type: object | |
| unevaluatedProperties: false | |
| required: | |
| - description | |
| properties: | |
| description: | |
| type: string | |
| headers: | |
| type: object | |
| unevaluatedProperties: false | |
| patternProperties: | |
| "^[a-z]+(-[a-z]+)*$": | |
| $ref: "#/$defs/header-or-reference" | |
| content: | |
| $ref: "#/$defs/content" | |
| links: | |
| type: object | |
| unevaluatedProperties: false | |
| patternProperties: | |
| "^[a-z]+([A-Z][a-z]+)*$": | |
| $ref: "#/$defs/link-or-reference" | |
| response-or-reference: | |
| if: | |
| type: object | |
| required: | |
| - $ref | |
| then: | |
| $ref: "#/$defs/reference" | |
| else: | |
| $ref: "#/$defs/response" | |
| link: | |
| $comment: https://spec.openapis.org/oas/v3.1.0#link-object | |
| type: object | |
| unevaluatedProperties: false | |
| properties: | |
| operationRef: | |
| type: string | |
| format: uri-reference | |
| operationId: | |
| type: string | |
| parameters: | |
| $ref: "#/$defs/map-of-strings" | |
| requestBody: true | |
| description: | |
| type: string | |
| body: | |
| $ref: "#/$defs/server" | |
| oneOf: | |
| - required: | |
| - operationRef | |
| - required: | |
| - operationId | |
| link-or-reference: | |
| if: | |
| type: object | |
| required: | |
| - $ref | |
| then: | |
| $ref: "#/$defs/reference" | |
| else: | |
| $ref: "#/$defs/link" | |
| header: | |
| $comment: https://spec.openapis.org/oas/v3.1.0#header-object | |
| type: object | |
| properties: | |
| description: | |
| type: string | |
| required: | |
| default: false | |
| type: boolean | |
| deprecated: | |
| default: false | |
| type: boolean | |
| schema: | |
| $ref: "#/$defs/schema" | |
| examples: | |
| $ref: "#/$defs/schema-examples" | |
| content: | |
| $ref: "#/$defs/content" | |
| oneOf: | |
| - required: | |
| - schema | |
| - examples | |
| - required: | |
| - content | |
| dependentSchemas: | |
| schema: | |
| properties: | |
| style: | |
| default: simple | |
| const: simple | |
| explode: | |
| default: false | |
| type: boolean | |
| unevaluatedProperties: false | |
| header-or-reference: | |
| if: | |
| type: object | |
| required: | |
| - $ref | |
| then: | |
| $ref: "#/$defs/reference" | |
| else: | |
| $ref: "#/$defs/header" | |
| reference: | |
| $comment: https://spec.openapis.org/oas/v3.1.0#reference-object | |
| type: object | |
| properties: | |
| $ref: | |
| type: string | |
| format: uri-reference | |
| summary: | |
| type: string | |
| description: | |
| type: string | |
| unevaluatedProperties: false | |
| security-requirement: | |
| $comment: https://spec.openapis.org/oas/v3.1.0#security-requirement-object | |
| type: object | |
| unevaluatedProperties: false | |
| additionalProperties: | |
| type: array | |
| items: | |
| type: string | |
| map-of-strings: | |
| type: object | |
| unevaluatedProperties: false | |
| additionalProperties: | |
| type: string | |
| properties: | |
| type: object | |
| unevaluatedProperties: false | |
| minProperties: 1 | |
| patternProperties: | |
| "^[a-z]+([A-Z][a-z]+)*$": | |
| $ref: "#/$defs/schema" | |
| schema: | |
| oneOf: | |
| - $ref: "#/$defs/schema-of-non-array" | |
| - $ref: "#/$defs/schema-of-array" | |
| schema-of-non-array: | |
| type: object | |
| unevaluatedProperties: false | |
| required: | |
| - type | |
| properties: | |
| type: | |
| type: string | |
| enum: | |
| - string | |
| - number | |
| - integer | |
| - object | |
| - boolean | |
| allOf: | |
| - type: object | |
| properties: | |
| title: | |
| type: string | |
| description: | |
| type: string | |
| nullable: | |
| type: boolean | |
| default: false | |
| - oneOf: | |
| - $ref: "#/$defs/schema-of-string" | |
| - $ref: "#/$defs/schema-of-number" | |
| - $ref: "#/$defs/schema-of-integer" | |
| - $ref: "#/$defs/schema-of-object" | |
| - $ref: "#/$defs/schema-of-boolean" | |
| schema-of-string: | |
| oneOf: | |
| - title: String Form | |
| type: object | |
| unevaluatedProperties: false | |
| required: | |
| - type | |
| properties: | |
| title: | |
| type: string | |
| description: | |
| type: string | |
| nullable: | |
| type: boolean | |
| default: false | |
| type: | |
| const: string | |
| minLength: | |
| type: integer | |
| maxLength: | |
| type: integer | |
| pattern: | |
| type: string | |
| format: regex | |
| format: | |
| type: string | |
| enum: | |
| - password | |
| - zip-code | |
| - uuid | |
| - uri | |
| - uri-reference | |
| - iri | |
| - iri-reference | |
| - regexp | |
| - uri-template | |
| - idn-email | |
| - hostname | |
| - idn-hostname | |
| - ipv4 | |
| - ipv6 | |
| - date-time | |
| - date | |
| - time | |
| - duration | |
| - title: Enum Form | |
| type: object | |
| unevaluatedProperties: false | |
| required: | |
| - type | |
| - enum | |
| properties: | |
| title: | |
| type: string | |
| description: | |
| type: string | |
| nullable: | |
| type: boolean | |
| default: false | |
| type: | |
| const: string | |
| const: | |
| type: string | |
| enum: | |
| type: array | |
| items: | |
| type: string | |
| uniqueItems: true | |
| - title: Const Form | |
| type: object | |
| unevaluatedProperties: false | |
| required: | |
| - type | |
| - const | |
| properties: | |
| title: | |
| type: string | |
| description: | |
| type: string | |
| nullable: | |
| type: boolean | |
| default: false | |
| type: | |
| const: string | |
| const: | |
| type: string | |
| schema-of-number: | |
| oneOf: | |
| - title: Number Form | |
| type: object | |
| required: | |
| - type | |
| - minimum | |
| - maximum | |
| properties: | |
| type: | |
| const: number | |
| multipleOf: | |
| type: integer | |
| minimum: | |
| type: integer | |
| maximum: | |
| type: integer | |
| default: | |
| type: integer | |
| format: | |
| type: string | |
| enum: | |
| - float | |
| - double | |
| - title: Enum Form | |
| type: object | |
| required: | |
| - type | |
| - enum | |
| properties: | |
| type: | |
| const: number | |
| enum: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| type: number | |
| schema-of-integer: | |
| oneOf: | |
| - title: Integer Form | |
| type: object | |
| required: | |
| - type | |
| - minimum | |
| - maximum | |
| properties: | |
| type: | |
| const: integer | |
| multipleOf: | |
| type: integer | |
| minimum: | |
| type: integer | |
| maximum: | |
| type: integer | |
| default: | |
| type: integer | |
| format: | |
| type: string | |
| enum: | |
| - int32 | |
| - int64 | |
| - title: Enum Form | |
| type: object | |
| required: | |
| - type | |
| - enum | |
| properties: | |
| type: | |
| const: integer | |
| enum: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| type: integer | |
| schema-of-object: | |
| oneOf: | |
| - title: Object Form | |
| type: object | |
| required: | |
| - type | |
| - properties | |
| - unevaluatedProperties | |
| properties: | |
| type: | |
| const: object | |
| properties: | |
| $ref: "#/$defs/properties" | |
| required: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| type: string | |
| minLength: 1 | |
| unevaluatedProperties: | |
| type: boolean | |
| default: false | |
| - title: Enum Form | |
| type: object | |
| required: | |
| - type | |
| - enum | |
| properties: | |
| type: | |
| const: object | |
| enum: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| type: object | |
| minProperties: 1 | |
| propertyNames: | |
| pattern: "^[a-z]+([A-Z][a-z]+)*$" | |
| schema-of-array: | |
| type: object | |
| required: | |
| - type | |
| - items | |
| - uniqueItems | |
| - minItems | |
| - maxItems | |
| properties: | |
| type: | |
| const: array | |
| items: | |
| $ref: "#/$defs/schema-of-non-array" | |
| uniqueItems: | |
| type: boolean | |
| const: true | |
| minItems: | |
| type: integer | |
| maxItems: | |
| type: integer | |
| schema-of-boolean: | |
| type: object | |
| required: | |
| - type | |
| properties: | |
| type: | |
| const: boolean | |
| const: | |
| type: boolean |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment