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