| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913 |
- $id: 'https://spec.openapis.org/oas/3.1/schema/2021-04-15'
- $schema: 'https://json-schema.org/draft/2020-12/schema'
- type: object
- properties:
- openapi:
- type: string
- pattern: '^3\.1\.\d+(-.+)?$'
- info:
- $ref: '#/$defs/info'
- jsonSchemaDialect:
- $ref: '#/$defs/uri'
- default: 'https://spec.openapis.org/oas/3.1/dialect/base'
- servers:
- type: array
- items:
- $ref: '#/$defs/server'
- paths:
- $ref: '#/$defs/paths'
- webhooks:
- type: object
- additionalProperties:
- $ref: '#/$defs/path-item-or-reference'
- components:
- $ref: '#/$defs/components'
- security:
- type: array
- items:
- $ref: '#/$defs/security-requirement'
- tags:
- type: array
- items:
- $ref: '#/$defs/tag'
- externalDocs:
- $ref: '#/$defs/external-documentation'
- required:
- - openapi
- - info
- anyOf:
- - required:
- - paths
- - required:
- - components
- - required:
- - webhooks
- $ref: '#/$defs/specification-extensions'
- unevaluatedProperties: false
- $defs:
- info:
- type: object
- properties:
- title:
- type: string
- summary:
- type: string
- description:
- type: string
- termsOfService:
- type: string
- contact:
- $ref: '#/$defs/contact'
- license:
- $ref: '#/$defs/license'
- version:
- type: string
- required:
- - title
- - version
- $ref: '#/$defs/specification-extensions'
- unevaluatedProperties: false
- contact:
- type: object
- properties:
- name:
- type: string
- url:
- type: string
- email:
- type: string
- $ref: '#/$defs/specification-extensions'
- unevaluatedProperties: false
- license:
- type: object
- properties:
- name:
- type: string
- identifier:
- type: string
- url:
- $ref: '#/$defs/uri'
- required:
- - name
- oneOf:
- - required:
- - identifier
- - required:
- - url
- $ref: '#/$defs/specification-extensions'
- unevaluatedProperties: false
- server:
- type: object
- properties:
- url:
- $ref: '#/$defs/uri'
- description:
- type: string
- variables:
- type: object
- additionalProperties:
- $ref: '#/$defs/server-variable'
- required:
- - url
- $ref: '#/$defs/specification-extensions'
- unevaluatedProperties: false
- server-variable:
- type: object
- properties:
- enum:
- type: array
- items:
- type: string
- minItems: 1
- default:
- type: string
- descriptions:
- type: string
- required:
- - default
- $ref: '#/$defs/specification-extensions'
- unevaluatedProperties: false
- components:
- type: object
- properties:
- schemas:
- type: object
- additionalProperties:
- $dynamicRef: '#meta'
- responses:
- type: object
- additionalProperties:
- $ref: '#/$defs/response-or-reference'
- parameters:
- type: object
- additionalProperties:
- $ref: '#/$defs/parameter-or-reference'
- examples:
- type: object
- additionalProperties:
- $ref: '#/$defs/example-or-reference'
- requestBodies:
- type: object
- additionalProperties:
- $ref: '#/$defs/request-body-or-reference'
- headers:
- type: object
- additionalProperties:
- $ref: '#/$defs/header-or-reference'
- securitySchemes:
- type: object
- additionalProperties:
- $ref: '#/$defs/security-scheme-or-reference'
- links:
- type: object
- additionalProperties:
- $ref: '#/$defs/link-or-reference'
- callbacks:
- type: object
- additionalProperties:
- $ref: '#/$defs/callbacks-or-reference'
- pathItems:
- type: object
- additionalProperties:
- $ref: '#/$defs/path-item-or-reference'
- patternProperties:
- '^(schemas|responses|parameters|examples|requestBodies|headers|securitySchemes|links|callbacks|pathItems)$':
- $comment: Enumerating all of the property names in the regex above is necessary for unevaluatedProperties to work as expected
- propertyNames:
- pattern: '^[a-zA-Z0-9._-]+$'
- $ref: '#/$defs/specification-extensions'
- unevaluatedProperties: false
- paths:
- type: object
- patternProperties:
- '^/':
- $ref: '#/$defs/path-item'
- $ref: '#/$defs/specification-extensions'
- unevaluatedProperties: false
- path-item:
- type: object
- properties:
- summary:
- type: string
- description:
- type: string
- servers:
- type: array
- items:
- $ref: '#/$defs/server'
- parameters:
- type: array
- items:
- $ref: '#/$defs/parameter-or-reference'
- patternProperties:
- '^(get|put|post|delete|options|head|patch|trace)$':
- $ref: '#/$defs/operation'
- $ref: '#/$defs/specification-extensions'
- unevaluatedProperties: false
- path-item-or-reference:
- if:
- required:
- - $ref
- then:
- $ref: '#/$defs/reference'
- else:
- $ref: '#/$defs/path-item'
- operation:
- type: object
- properties:
- tags:
- type: array
- items:
- type: string
- summary:
- type: string
- description:
- type: string
- externalDocs:
- $ref: '#/$defs/external-documentation'
- operationId:
- type: string
- parameters:
- type: array
- items:
- $ref: '#/$defs/parameter-or-reference'
- requestBody:
- $ref: '#/$defs/request-body-or-reference'
- responses:
- $ref: '#/$defs/responses'
- callbacks:
- type: object
- additionalProperties:
- $ref: '#/$defs/callbacks-or-reference'
- deprecated:
- default: false
- type: boolean
- security:
- type: array
- items:
- $ref: '#/$defs/security-requirement'
- servers:
- type: array
- items:
- $ref: '#/$defs/server'
- $ref: '#/$defs/specification-extensions'
- unevaluatedProperties: false
- external-documentation:
- type: object
- properties:
- description:
- type: string
- url:
- $ref: '#/$defs/uri'
- required:
- - url
- $ref: '#/$defs/specification-extensions'
- unevaluatedProperties: false
- parameter:
- type: object
- properties:
- name:
- type: string
- in:
- enum:
- - query
- - header
- - path
- - cookie
- description:
- type: string
- required:
- default: false
- type: boolean
- deprecated:
- default: false
- type: boolean
- allowEmptyValue:
- default: false
- type: boolean
- schema:
- $dynamicRef: '#meta'
- content:
- $ref: '#/$defs/content'
- required:
- - in
- oneOf:
- - required:
- - schema
- - required:
- - content
- dependentSchemas:
- schema:
- properties:
- style:
- type: string
- explode:
- type: boolean
- allowReserved:
- default: false
- type: boolean
- allOf:
- - $ref: '#/$defs/examples'
- - $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:
- properties:
- in:
- const: path
- required:
- - in
- then:
- properties:
- style:
- default: simple
- enum:
- - matrix
- - label
- - simple
- required:
- const: true
- required:
- - required
- styles-for-header:
- if:
- properties:
- in:
- const: header
- required:
- - in
- then:
- properties:
- style:
- default: simple
- enum:
- - simple
- styles-for-query:
- if:
- properties:
- in:
- const: query
- required:
- - in
- then:
- properties:
- style:
- default: form
- enum:
- - form
- - spaceDelimited
- - pipeDelimited
- - deepObject
- styles-for-cookie:
- if:
- properties:
- in:
- const: cookie
- required:
- - in
- then:
- properties:
- style:
- default: form
- enum:
- - form
- styles-for-form:
- if:
- properties:
- style:
- const: form
- required:
- - style
- then:
- properties:
- explode:
- default: true
- else:
- properties:
- explode:
- default: false
- $ref: '#/$defs/specification-extensions'
- unevaluatedProperties: false
- parameter-or-reference:
- if:
- required:
- - $ref
- then:
- $ref: '#/$defs/reference'
- else:
- $ref: '#/$defs/parameter'
- request-body:
- type: object
- properties:
- description:
- type: string
- content:
- $ref: '#/$defs/content'
- required:
- default: false
- type: boolean
- required:
- - content
- $ref: '#/$defs/specification-extensions'
- unevaluatedProperties: false
- request-body-or-reference:
- if:
- required:
- - $ref
- then:
- $ref: '#/$defs/reference'
- else:
- $ref: '#/$defs/request-body'
- content:
- type: object
- additionalProperties:
- $ref: '#/$defs/media-type'
- propertyNames:
- format: media-range
- media-type:
- type: object
- properties:
- schema:
- $dynamicRef: '#meta'
- encoding:
- type: object
- additionalProperties:
- $ref: '#/$defs/encoding'
- allOf:
- - $ref: '#/$defs/specification-extensions'
- - $ref: '#/$defs/examples'
- unevaluatedProperties: false
- encoding:
- type: object
- properties:
- contentType:
- type: string
- format: media-range
- headers:
- type: object
- additionalProperties:
- $ref: '#/$defs/header-or-reference'
- style:
- default: form
- enum:
- - form
- - spaceDelimited
- - pipeDelimited
- - deepObject
- explode:
- type: boolean
- allowReserved:
- default: false
- type: boolean
- allOf:
- - $ref: '#/$defs/specification-extensions'
- - $ref: '#/$defs/encoding/$defs/explode-default'
- unevaluatedProperties: false
- $defs:
- explode-default:
- if:
- properties:
- style:
- const: form
- required:
- - style
- then:
- properties:
- explode:
- default: true
- else:
- properties:
- explode:
- default: false
- responses:
- type: object
- properties:
- default:
- $ref: '#/$defs/response-or-reference'
- patternProperties:
- '^[1-5][0-9X]{2}$':
- $ref: '#/$defs/response-or-reference'
- $ref: '#/$defs/specification-extensions'
- unevaluatedProperties: false
- response:
- type: object
- properties:
- description:
- type: string
- headers:
- type: object
- additionalProperties:
- $ref: '#/$defs/header-or-reference'
- content:
- $ref: '#/$defs/content'
- links:
- type: object
- additionalProperties:
- $ref: '#/$defs/link-or-reference'
- required:
- - description
- $ref: '#/$defs/specification-extensions'
- unevaluatedProperties: false
- response-or-reference:
- if:
- required:
- - $ref
- then:
- $ref: '#/$defs/reference'
- else:
- $ref: '#/$defs/response'
- callbacks:
- type: object
- $ref: '#/$defs/specification-extensions'
- additionalProperties:
- $ref: '#/$defs/path-item-or-reference'
- callbacks-or-reference:
- if:
- required:
- - $ref
- then:
- $ref: '#/$defs/reference'
- else:
- $ref: '#/$defs/callbacks'
- example:
- type: object
- properties:
- summary:
- type: string
- description:
- type: string
- value: true
- externalValue:
- $ref: '#/$defs/uri'
- $ref: '#/$defs/specification-extensions'
- unevaluatedProperties: false
- example-or-reference:
- if:
- required:
- - $ref
- then:
- $ref: '#/$defs/reference'
- else:
- $ref: '#/$defs/example'
- link:
- type: object
- properties:
- operationRef:
- $ref: '#/$defs/uri'
- operationId: true
- parameters:
- $ref: '#/$defs/map-of-strings'
- requestBody: true
- description:
- type: string
- body:
- $ref: '#/$defs/server'
- oneOf:
- - required:
- - operationRef
- - required:
- - operationId
- $ref: '#/$defs/specification-extensions'
- unevaluatedProperties: false
- link-or-reference:
- if:
- required:
- - $ref
- then:
- $ref: '#/$defs/reference'
- else:
- $ref: '#/$defs/link'
- header:
- type: object
- properties:
- description:
- type: string
- required:
- default: false
- type: boolean
- deprecated:
- default: false
- type: boolean
- allowEmptyValue:
- default: false
- type: boolean
- dependentSchemas:
- schema:
- properties:
- style:
- default: simple
- enum:
- - simple
- explode:
- default: false
- type: boolean
- allowReserved:
- default: false
- type: boolean
- schema:
- $dynamicRef: '#meta'
- $ref: '#/$defs/examples'
- content:
- properties:
- content:
- $ref: '#/$defs/content'
- $ref: '#/$defs/specification-extensions'
- unevaluatedProperties: false
- header-or-reference:
- if:
- required:
- - $ref
- then:
- $ref: '#/$defs/reference'
- else:
- $ref: '#/$defs/header'
- tag:
- type: object
- properties:
- name:
- type: string
- description:
- type: string
- externalDocs:
- $ref: '#/$defs/external-documentation'
- required:
- - name
- $ref: '#/$defs/specification-extensions'
- unevaluatedProperties: false
- reference:
- type: object
- properties:
- $ref:
- $ref: '#/$defs/uri'
- summary:
- type: string
- description:
- type: string
- unevaluatedProperties: false
- schema:
- $dynamicAnchor: meta
- type:
- - object
- - boolean
- security-scheme:
- type: object
- properties:
- type:
- enum:
- - apiKey
- - http
- - mutualTLS
- - oauth2
- - openIdConnect
- description:
- type: string
- required:
- - type
- allOf:
- - $ref: '#/$defs/specification-extensions'
- - $ref: '#/$defs/security-scheme/$defs/type-apikey'
- - $ref: '#/$defs/security-scheme/$defs/type-http'
- - $ref: '#/$defs/security-scheme/$defs/type-http-bearer'
- - $ref: '#/$defs/security-scheme/$defs/type-oauth2'
- - $ref: '#/$defs/security-scheme/$defs/type-oidc'
- unevaluatedProperties: false
- $defs:
- type-apikey:
- if:
- properties:
- type:
- const: apiKey
- required:
- - type
- then:
- properties:
- name:
- type: string
- in:
- enum:
- - query
- - header
- - cookie
- required:
- - name
- - in
- type-http:
- if:
- properties:
- type:
- const: http
- required:
- - type
- then:
- properties:
- scheme:
- type: string
- required:
- - scheme
- type-http-bearer:
- if:
- properties:
- type:
- const: http
- scheme:
- const: bearer
- required:
- - type
- - scheme
- then:
- properties:
- bearerFormat:
- type: string
- required:
- - scheme
- type-oauth2:
- if:
- properties:
- type:
- const: oauth2
- required:
- - type
- then:
- properties:
- flows:
- $ref: '#/$defs/oauth-flows'
- required:
- - flows
- type-oidc:
- if:
- properties:
- type:
- const: openIdConnect
- required:
- - type
- then:
- properties:
- openIdConnectUrl:
- $ref: '#/$defs/uri'
- required:
- - openIdConnectUrl
- security-scheme-or-reference:
- if:
- required:
- - $ref
- then:
- $ref: '#/$defs/reference'
- else:
- $ref: '#/$defs/security-scheme'
- oauth-flows:
- type: object
- properties:
- implicit:
- $ref: '#/$defs/oauth-flows/$defs/implicit'
- password:
- $ref: '#/$defs/oauth-flows/$defs/password'
- clientCredentials:
- $ref: '#/$defs/oauth-flows/$defs/client-credentials'
- authorizationCode:
- $ref: '#/$defs/oauth-flows/$defs/authorization-code'
- $ref: '#/$defs/specification-extensions'
- unevaluatedProperties: false
- $defs:
- implicit:
- type: object
- properties:
- authorizationUrl:
- type: string
- refreshUrl:
- type: string
- scopes:
- $ref: '#/$defs/map-of-strings'
- required:
- - authorizationUrl
- - scopes
- $ref: '#/$defs/specification-extensions'
- unevaluatedProperties: false
- password:
- type: object
- properties:
- tokenUrl:
- type: string
- refreshUrl:
- type: string
- scopes:
- $ref: '#/$defs/map-of-strings'
- required:
- - tokenUrl
- - scopes
- $ref: '#/$defs/specification-extensions'
- unevaluatedProperties: false
- client-credentials:
- type: object
- properties:
- tokenUrl:
- type: string
- refreshUrl:
- type: string
- scopes:
- $ref: '#/$defs/map-of-strings'
- required:
- - tokenUrl
- - scopes
- $ref: '#/$defs/specification-extensions'
- unevaluatedProperties: false
- authorization-code:
- type: object
- properties:
- authorizationUrl:
- type: string
- tokenUrl:
- type: string
- refreshUrl:
- type: string
- scopes:
- $ref: '#/$defs/map-of-strings'
- required:
- - authorizationUrl
- - tokenUrl
- - scopes
- $ref: '#/$defs/specification-extensions'
- unevaluatedProperties: false
- security-requirement:
- type: object
- additionalProperties:
- type: array
- items:
- type: string
- specification-extensions:
- patternProperties:
- '^x-': true
- examples:
- properties:
- example: true
- examples:
- type: object
- additionalProperties:
- $ref: '#/$defs/example-or-reference'
- uri:
- type: string
- format: uri
- map-of-strings:
- type: object
- additionalProperties:
- type: string
|