1654 lines
35 KiB
JSON
1654 lines
35 KiB
JSON
|
{
|
||
|
"id": "https://spec.openapis.org/oas/3.0/schema/2019-04-02",
|
||
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
||
|
"description": "Validation schema for OpenAPI Specification 3.0.X.",
|
||
|
"type": "object",
|
||
|
"required": [
|
||
|
"openapi",
|
||
|
"info",
|
||
|
"paths"
|
||
|
],
|
||
|
"properties": {
|
||
|
"openapi": {
|
||
|
"type": "string",
|
||
|
"pattern": "^3\\.0\\.\\d(-.+)?$"
|
||
|
},
|
||
|
"info": {
|
||
|
"$ref": "#/definitions/Info"
|
||
|
},
|
||
|
"externalDocs": {
|
||
|
"$ref": "#/definitions/ExternalDocumentation"
|
||
|
},
|
||
|
"servers": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"$ref": "#/definitions/Server"
|
||
|
}
|
||
|
},
|
||
|
"security": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"$ref": "#/definitions/SecurityRequirement"
|
||
|
}
|
||
|
},
|
||
|
"tags": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"$ref": "#/definitions/Tag"
|
||
|
},
|
||
|
"uniqueItems": true
|
||
|
},
|
||
|
"paths": {
|
||
|
"$ref": "#/definitions/Paths"
|
||
|
},
|
||
|
"components": {
|
||
|
"$ref": "#/definitions/Components"
|
||
|
}
|
||
|
},
|
||
|
"patternProperties": {
|
||
|
"^x-": {
|
||
|
}
|
||
|
},
|
||
|
"additionalProperties": false,
|
||
|
"definitions": {
|
||
|
"Reference": {
|
||
|
"type": "object",
|
||
|
"required": [
|
||
|
"$ref"
|
||
|
],
|
||
|
"patternProperties": {
|
||
|
"^\\$ref$": {
|
||
|
"type": "string",
|
||
|
"format": "uri-reference"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"Info": {
|
||
|
"type": "object",
|
||
|
"required": [
|
||
|
"title",
|
||
|
"version"
|
||
|
],
|
||
|
"properties": {
|
||
|
"title": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"description": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"termsOfService": {
|
||
|
"type": "string",
|
||
|
"format": "uri-reference"
|
||
|
},
|
||
|
"contact": {
|
||
|
"$ref": "#/definitions/Contact"
|
||
|
},
|
||
|
"license": {
|
||
|
"$ref": "#/definitions/License"
|
||
|
},
|
||
|
"version": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
},
|
||
|
"patternProperties": {
|
||
|
"^x-": {
|
||
|
}
|
||
|
},
|
||
|
"additionalProperties": false
|
||
|
},
|
||
|
"Contact": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"name": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"url": {
|
||
|
"type": "string",
|
||
|
"format": "uri-reference"
|
||
|
},
|
||
|
"email": {
|
||
|
"type": "string",
|
||
|
"format": "email"
|
||
|
}
|
||
|
},
|
||
|
"patternProperties": {
|
||
|
"^x-": {
|
||
|
}
|
||
|
},
|
||
|
"additionalProperties": false
|
||
|
},
|
||
|
"License": {
|
||
|
"type": "object",
|
||
|
"required": [
|
||
|
"name"
|
||
|
],
|
||
|
"properties": {
|
||
|
"name": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"url": {
|
||
|
"type": "string",
|
||
|
"format": "uri-reference"
|
||
|
}
|
||
|
},
|
||
|
"patternProperties": {
|
||
|
"^x-": {
|
||
|
}
|
||
|
},
|
||
|
"additionalProperties": false
|
||
|
},
|
||
|
"Server": {
|
||
|
"type": "object",
|
||
|
"required": [
|
||
|
"url"
|
||
|
],
|
||
|
"properties": {
|
||
|
"url": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"description": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"variables": {
|
||
|
"type": "object",
|
||
|
"additionalProperties": {
|
||
|
"$ref": "#/definitions/ServerVariable"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"patternProperties": {
|
||
|
"^x-": {
|
||
|
}
|
||
|
},
|
||
|
"additionalProperties": false
|
||
|
},
|
||
|
"ServerVariable": {
|
||
|
"type": "object",
|
||
|
"required": [
|
||
|
"default"
|
||
|
],
|
||
|
"properties": {
|
||
|
"enum": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
},
|
||
|
"default": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"description": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
},
|
||
|
"patternProperties": {
|
||
|
"^x-": {
|
||
|
}
|
||
|
},
|
||
|
"additionalProperties": false
|
||
|
},
|
||
|
"Components": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"schemas": {
|
||
|
"type": "object",
|
||
|
"patternProperties": {
|
||
|
"^[a-zA-Z0-9\\.\\-_]+$": {
|
||
|
"oneOf": [
|
||
|
{
|
||
|
"$ref": "#/definitions/Schema"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#/definitions/Reference"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"responses": {
|
||
|
"type": "object",
|
||
|
"patternProperties": {
|
||
|
"^[a-zA-Z0-9\\.\\-_]+$": {
|
||
|
"oneOf": [
|
||
|
{
|
||
|
"$ref": "#/definitions/Reference"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#/definitions/Response"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"parameters": {
|
||
|
"type": "object",
|
||
|
"patternProperties": {
|
||
|
"^[a-zA-Z0-9\\.\\-_]+$": {
|
||
|
"oneOf": [
|
||
|
{
|
||
|
"$ref": "#/definitions/Reference"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#/definitions/Parameter"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"examples": {
|
||
|
"type": "object",
|
||
|
"patternProperties": {
|
||
|
"^[a-zA-Z0-9\\.\\-_]+$": {
|
||
|
"oneOf": [
|
||
|
{
|
||
|
"$ref": "#/definitions/Reference"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#/definitions/Example"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"requestBodies": {
|
||
|
"type": "object",
|
||
|
"patternProperties": {
|
||
|
"^[a-zA-Z0-9\\.\\-_]+$": {
|
||
|
"oneOf": [
|
||
|
{
|
||
|
"$ref": "#/definitions/Reference"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#/definitions/RequestBody"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"headers": {
|
||
|
"type": "object",
|
||
|
"patternProperties": {
|
||
|
"^[a-zA-Z0-9\\.\\-_]+$": {
|
||
|
"oneOf": [
|
||
|
{
|
||
|
"$ref": "#/definitions/Reference"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#/definitions/Header"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"securitySchemes": {
|
||
|
"type": "object",
|
||
|
"patternProperties": {
|
||
|
"^[a-zA-Z0-9\\.\\-_]+$": {
|
||
|
"oneOf": [
|
||
|
{
|
||
|
"$ref": "#/definitions/Reference"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#/definitions/SecurityScheme"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"links": {
|
||
|
"type": "object",
|
||
|
"patternProperties": {
|
||
|
"^[a-zA-Z0-9\\.\\-_]+$": {
|
||
|
"oneOf": [
|
||
|
{
|
||
|
"$ref": "#/definitions/Reference"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#/definitions/Link"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"callbacks": {
|
||
|
"type": "object",
|
||
|
"patternProperties": {
|
||
|
"^[a-zA-Z0-9\\.\\-_]+$": {
|
||
|
"oneOf": [
|
||
|
{
|
||
|
"$ref": "#/definitions/Reference"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#/definitions/Callback"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"patternProperties": {
|
||
|
"^x-": {
|
||
|
}
|
||
|
},
|
||
|
"additionalProperties": false
|
||
|
},
|
||
|
"Schema": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"title": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"multipleOf": {
|
||
|
"type": "number",
|
||
|
"minimum": 0,
|
||
|
"exclusiveMinimum": true
|
||
|
},
|
||
|
"maximum": {
|
||
|
"type": "number"
|
||
|
},
|
||
|
"exclusiveMaximum": {
|
||
|
"type": "boolean",
|
||
|
"default": false
|
||
|
},
|
||
|
"minimum": {
|
||
|
"type": "number"
|
||
|
},
|
||
|
"exclusiveMinimum": {
|
||
|
"type": "boolean",
|
||
|
"default": false
|
||
|
},
|
||
|
"maxLength": {
|
||
|
"type": "integer",
|
||
|
"minimum": 0
|
||
|
},
|
||
|
"minLength": {
|
||
|
"type": "integer",
|
||
|
"minimum": 0,
|
||
|
"default": 0
|
||
|
},
|
||
|
"pattern": {
|
||
|
"type": "string",
|
||
|
"format": "regex"
|
||
|
},
|
||
|
"maxItems": {
|
||
|
"type": "integer",
|
||
|
"minimum": 0
|
||
|
},
|
||
|
"minItems": {
|
||
|
"type": "integer",
|
||
|
"minimum": 0,
|
||
|
"default": 0
|
||
|
},
|
||
|
"uniqueItems": {
|
||
|
"type": "boolean",
|
||
|
"default": false
|
||
|
},
|
||
|
"maxProperties": {
|
||
|
"type": "integer",
|
||
|
"minimum": 0
|
||
|
},
|
||
|
"minProperties": {
|
||
|
"type": "integer",
|
||
|
"minimum": 0,
|
||
|
"default": 0
|
||
|
},
|
||
|
"required": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"minItems": 1,
|
||
|
"uniqueItems": true
|
||
|
},
|
||
|
"enum": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
},
|
||
|
"minItems": 1,
|
||
|
"uniqueItems": false
|
||
|
},
|
||
|
"type": {
|
||
|
"type": "string",
|
||
|
"enum": [
|
||
|
"array",
|
||
|
"boolean",
|
||
|
"integer",
|
||
|
"number",
|
||
|
"object",
|
||
|
"string"
|
||
|
]
|
||
|
},
|
||
|
"not": {
|
||
|
"oneOf": [
|
||
|
{
|
||
|
"$ref": "#/definitions/Schema"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#/definitions/Reference"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"allOf": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"oneOf": [
|
||
|
{
|
||
|
"$ref": "#/definitions/Schema"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#/definitions/Reference"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
"oneOf": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"oneOf": [
|
||
|
{
|
||
|
"$ref": "#/definitions/Schema"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#/definitions/Reference"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
"anyOf": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"oneOf": [
|
||
|
{
|
||
|
"$ref": "#/definitions/Schema"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#/definitions/Reference"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
"items": {
|
||
|
"oneOf": [
|
||
|
{
|
||
|
"$ref": "#/definitions/Schema"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#/definitions/Reference"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"properties": {
|
||
|
"type": "object",
|
||
|
"additionalProperties": {
|
||
|
"oneOf": [
|
||
|
{
|
||
|
"$ref": "#/definitions/Schema"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#/definitions/Reference"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
"additionalProperties": {
|
||
|
"oneOf": [
|
||
|
{
|
||
|
"$ref": "#/definitions/Schema"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#/definitions/Reference"
|
||
|
},
|
||
|
{
|
||
|
"type": "boolean"
|
||
|
}
|
||
|
],
|
||
|
"default": true
|
||
|
},
|
||
|
"description": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"format": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"default": {
|
||
|
},
|
||
|
"nullable": {
|
||
|
"type": "boolean",
|
||
|
"default": false
|
||
|
},
|
||
|
"discriminator": {
|
||
|
"$ref": "#/definitions/Discriminator"
|
||
|
},
|
||
|
"readOnly": {
|
||
|
"type": "boolean",
|
||
|
"default": false
|
||
|
},
|
||
|
"writeOnly": {
|
||
|
"type": "boolean",
|
||
|
"default": false
|
||
|
},
|
||
|
"example": {
|
||
|
},
|
||
|
"externalDocs": {
|
||
|
"$ref": "#/definitions/ExternalDocumentation"
|
||
|
},
|
||
|
"deprecated": {
|
||
|
"type": "boolean",
|
||
|
"default": false
|
||
|
},
|
||
|
"xml": {
|
||
|
"$ref": "#/definitions/XML"
|
||
|
}
|
||
|
},
|
||
|
"patternProperties": {
|
||
|
"^x-": {
|
||
|
}
|
||
|
},
|
||
|
"additionalProperties": false
|
||
|
},
|
||
|
"Discriminator": {
|
||
|
"type": "object",
|
||
|
"required": [
|
||
|
"propertyName"
|
||
|
],
|
||
|
"properties": {
|
||
|
"propertyName": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"mapping": {
|
||
|
"type": "object",
|
||
|
"additionalProperties": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"XML": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"name": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"namespace": {
|
||
|
"type": "string",
|
||
|
"format": "uri"
|
||
|
},
|
||
|
"prefix": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"attribute": {
|
||
|
"type": "boolean",
|
||
|
"default": false
|
||
|
},
|
||
|
"wrapped": {
|
||
|
"type": "boolean",
|
||
|
"default": false
|
||
|
}
|
||
|
},
|
||
|
"patternProperties": {
|
||
|
"^x-": {
|
||
|
}
|
||
|
},
|
||
|
"additionalProperties": false
|
||
|
},
|
||
|
"Response": {
|
||
|
"type": "object",
|
||
|
"required": [
|
||
|
"description"
|
||
|
],
|
||
|
"properties": {
|
||
|
"description": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"headers": {
|
||
|
"type": "object",
|
||
|
"additionalProperties": {
|
||
|
"oneOf": [
|
||
|
{
|
||
|
"$ref": "#/definitions/Header"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#/definitions/Reference"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
"content": {
|
||
|
"type": "object",
|
||
|
"additionalProperties": {
|
||
|
"$ref": "#/definitions/MediaType"
|
||
|
}
|
||
|
},
|
||
|
"links": {
|
||
|
"type": "object",
|
||
|
"additionalProperties": {
|
||
|
"oneOf": [
|
||
|
{
|
||
|
"$ref": "#/definitions/Link"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#/definitions/Reference"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"patternProperties": {
|
||
|
"^x-": {
|
||
|
}
|
||
|
},
|
||
|
"additionalProperties": false
|
||
|
},
|
||
|
"MediaType": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"schema": {
|
||
|
"oneOf": [
|
||
|
{
|
||
|
"$ref": "#/definitions/Schema"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#/definitions/Reference"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"example": {
|
||
|
},
|
||
|
"examples": {
|
||
|
"type": "object",
|
||
|
"additionalProperties": {
|
||
|
"oneOf": [
|
||
|
{
|
||
|
"$ref": "#/definitions/Example"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#/definitions/Reference"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
"encoding": {
|
||
|
"type": "object",
|
||
|
"additionalProperties": {
|
||
|
"$ref": "#/definitions/Encoding"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"patternProperties": {
|
||
|
"^x-": {
|
||
|
}
|
||
|
},
|
||
|
"additionalProperties": false,
|
||
|
"allOf": [
|
||
|
{
|
||
|
"$ref": "#/definitions/ExampleXORExamples"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"Example": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"summary": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"description": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"value": {
|
||
|
},
|
||
|
"externalValue": {
|
||
|
"type": "string",
|
||
|
"format": "uri-reference"
|
||
|
}
|
||
|
},
|
||
|
"patternProperties": {
|
||
|
"^x-": {
|
||
|
}
|
||
|
},
|
||
|
"additionalProperties": false
|
||
|
},
|
||
|
"Header": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"description": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"required": {
|
||
|
"type": "boolean",
|
||
|
"default": false
|
||
|
},
|
||
|
"deprecated": {
|
||
|
"type": "boolean",
|
||
|
"default": false
|
||
|
},
|
||
|
"allowEmptyValue": {
|
||
|
"type": "boolean",
|
||
|
"default": false
|
||
|
},
|
||
|
"style": {
|
||
|
"type": "string",
|
||
|
"enum": [
|
||
|
"simple"
|
||
|
],
|
||
|
"default": "simple"
|
||
|
},
|
||
|
"explode": {
|
||
|
"type": "boolean"
|
||
|
},
|
||
|
"allowReserved": {
|
||
|
"type": "boolean",
|
||
|
"default": false
|
||
|
},
|
||
|
"schema": {
|
||
|
"oneOf": [
|
||
|
{
|
||
|
"$ref": "#/definitions/Schema"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#/definitions/Reference"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"content": {
|
||
|
"type": "object",
|
||
|
"additionalProperties": {
|
||
|
"$ref": "#/definitions/MediaType"
|
||
|
},
|
||
|
"minProperties": 1,
|
||
|
"maxProperties": 1
|
||
|
},
|
||
|
"example": {
|
||
|
},
|
||
|
"examples": {
|
||
|
"type": "object",
|
||
|
"additionalProperties": {
|
||
|
"oneOf": [
|
||
|
{
|
||
|
"$ref": "#/definitions/Example"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#/definitions/Reference"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"patternProperties": {
|
||
|
"^x-": {
|
||
|
}
|
||
|
},
|
||
|
"additionalProperties": false,
|
||
|
"allOf": [
|
||
|
{
|
||
|
"$ref": "#/definitions/ExampleXORExamples"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#/definitions/SchemaXORContent"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"Paths": {
|
||
|
"type": "object",
|
||
|
"patternProperties": {
|
||
|
"^\\/": {
|
||
|
"$ref": "#/definitions/PathItem"
|
||
|
},
|
||
|
"^x-": {
|
||
|
}
|
||
|
},
|
||
|
"additionalProperties": false
|
||
|
},
|
||
|
"PathItem": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"$ref": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"summary": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"description": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"servers": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"$ref": "#/definitions/Server"
|
||
|
}
|
||
|
},
|
||
|
"parameters": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"oneOf": [
|
||
|
{
|
||
|
"$ref": "#/definitions/Parameter"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#/definitions/Reference"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"uniqueItems": true
|
||
|
}
|
||
|
},
|
||
|
"patternProperties": {
|
||
|
"^(get|put|post|delete|options|head|patch|trace)$": {
|
||
|
"$ref": "#/definitions/Operation"
|
||
|
},
|
||
|
"^x-": {
|
||
|
}
|
||
|
},
|
||
|
"additionalProperties": false
|
||
|
},
|
||
|
"Operation": {
|
||
|
"type": "object",
|
||
|
"required": [
|
||
|
"responses"
|
||
|
],
|
||
|
"properties": {
|
||
|
"tags": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
},
|
||
|
"summary": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"description": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"externalDocs": {
|
||
|
"$ref": "#/definitions/ExternalDocumentation"
|
||
|
},
|
||
|
"operationId": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"parameters": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"oneOf": [
|
||
|
{
|
||
|
"$ref": "#/definitions/Parameter"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#/definitions/Reference"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"uniqueItems": true
|
||
|
},
|
||
|
"requestBody": {
|
||
|
"oneOf": [
|
||
|
{
|
||
|
"$ref": "#/definitions/RequestBody"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#/definitions/Reference"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"responses": {
|
||
|
"$ref": "#/definitions/Responses"
|
||
|
},
|
||
|
"callbacks": {
|
||
|
"type": "object",
|
||
|
"additionalProperties": {
|
||
|
"oneOf": [
|
||
|
{
|
||
|
"$ref": "#/definitions/Callback"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#/definitions/Reference"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
"deprecated": {
|
||
|
"type": "boolean",
|
||
|
"default": false
|
||
|
},
|
||
|
"security": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"$ref": "#/definitions/SecurityRequirement"
|
||
|
}
|
||
|
},
|
||
|
"servers": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"$ref": "#/definitions/Server"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"patternProperties": {
|
||
|
"^x-": {
|
||
|
}
|
||
|
},
|
||
|
"additionalProperties": false
|
||
|
},
|
||
|
"Responses": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"default": {
|
||
|
"oneOf": [
|
||
|
{
|
||
|
"$ref": "#/definitions/Response"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#/definitions/Reference"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
"patternProperties": {
|
||
|
"^[1-5](?:\\d{2}|XX)$": {
|
||
|
"oneOf": [
|
||
|
{
|
||
|
"$ref": "#/definitions/Response"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#/definitions/Reference"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"^x-": {
|
||
|
}
|
||
|
},
|
||
|
"minProperties": 1,
|
||
|
"additionalProperties": false
|
||
|
},
|
||
|
"SecurityRequirement": {
|
||
|
"type": "object",
|
||
|
"additionalProperties": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"Tag": {
|
||
|
"type": "object",
|
||
|
"required": [
|
||
|
"name"
|
||
|
],
|
||
|
"properties": {
|
||
|
"name": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"description": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"externalDocs": {
|
||
|
"$ref": "#/definitions/ExternalDocumentation"
|
||
|
}
|
||
|
},
|
||
|
"patternProperties": {
|
||
|
"^x-": {
|
||
|
}
|
||
|
},
|
||
|
"additionalProperties": false
|
||
|
},
|
||
|
"ExternalDocumentation": {
|
||
|
"type": "object",
|
||
|
"required": [
|
||
|
"url"
|
||
|
],
|
||
|
"properties": {
|
||
|
"description": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"url": {
|
||
|
"type": "string",
|
||
|
"format": "uri-reference"
|
||
|
}
|
||
|
},
|
||
|
"patternProperties": {
|
||
|
"^x-": {
|
||
|
}
|
||
|
},
|
||
|
"additionalProperties": false
|
||
|
},
|
||
|
"ExampleXORExamples": {
|
||
|
"description": "Example and examples are mutually exclusive",
|
||
|
"not": {
|
||
|
"required": [
|
||
|
"example",
|
||
|
"examples"
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
"SchemaXORContent": {
|
||
|
"description": "Schema and content are mutually exclusive, at least one is required",
|
||
|
"not": {
|
||
|
"required": [
|
||
|
"schema",
|
||
|
"content"
|
||
|
]
|
||
|
},
|
||
|
"oneOf": [
|
||
|
{
|
||
|
"required": [
|
||
|
"schema"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"required": [
|
||
|
"content"
|
||
|
],
|
||
|
"description": "Some properties are not allowed if content is present",
|
||
|
"allOf": [
|
||
|
{
|
||
|
"not": {
|
||
|
"required": [
|
||
|
"style"
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"not": {
|
||
|
"required": [
|
||
|
"explode"
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"not": {
|
||
|
"required": [
|
||
|
"allowReserved"
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"not": {
|
||
|
"required": [
|
||
|
"example"
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"not": {
|
||
|
"required": [
|
||
|
"examples"
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"Parameter": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"name": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"in": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"description": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"required": {
|
||
|
"type": "boolean",
|
||
|
"default": false
|
||
|
},
|
||
|
"deprecated": {
|
||
|
"type": "boolean",
|
||
|
"default": false
|
||
|
},
|
||
|
"allowEmptyValue": {
|
||
|
"type": "boolean",
|
||
|
"default": false
|
||
|
},
|
||
|
"style": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"explode": {
|
||
|
"type": "boolean"
|
||
|
},
|
||
|
"allowReserved": {
|
||
|
"type": "boolean",
|
||
|
"default": false
|
||
|
},
|
||
|
"schema": {
|
||
|
"oneOf": [
|
||
|
{
|
||
|
"$ref": "#/definitions/Schema"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#/definitions/Reference"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"content": {
|
||
|
"type": "object",
|
||
|
"additionalProperties": {
|
||
|
"$ref": "#/definitions/MediaType"
|
||
|
},
|
||
|
"minProperties": 1,
|
||
|
"maxProperties": 1
|
||
|
},
|
||
|
"example": {
|
||
|
},
|
||
|
"examples": {
|
||
|
"type": "object",
|
||
|
"additionalProperties": {
|
||
|
"oneOf": [
|
||
|
{
|
||
|
"$ref": "#/definitions/Example"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#/definitions/Reference"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"patternProperties": {
|
||
|
"^x-": {
|
||
|
}
|
||
|
},
|
||
|
"additionalProperties": false,
|
||
|
"required": [
|
||
|
"name",
|
||
|
"in"
|
||
|
],
|
||
|
"allOf": [
|
||
|
{
|
||
|
"$ref": "#/definitions/ExampleXORExamples"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#/definitions/SchemaXORContent"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#/definitions/ParameterLocation"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"ParameterLocation": {
|
||
|
"description": "Parameter location",
|
||
|
"oneOf": [
|
||
|
{
|
||
|
"description": "Parameter in path",
|
||
|
"required": [
|
||
|
"required"
|
||
|
],
|
||
|
"properties": {
|
||
|
"in": {
|
||
|
"enum": [
|
||
|
"path"
|
||
|
]
|
||
|
},
|
||
|
"style": {
|
||
|
"enum": [
|
||
|
"matrix",
|
||
|
"label",
|
||
|
"simple"
|
||
|
],
|
||
|
"default": "simple"
|
||
|
},
|
||
|
"required": {
|
||
|
"enum": [
|
||
|
true
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"description": "Parameter in query",
|
||
|
"properties": {
|
||
|
"in": {
|
||
|
"enum": [
|
||
|
"query"
|
||
|
]
|
||
|
},
|
||
|
"style": {
|
||
|
"enum": [
|
||
|
"form",
|
||
|
"spaceDelimited",
|
||
|
"pipeDelimited",
|
||
|
"deepObject"
|
||
|
],
|
||
|
"default": "form"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"description": "Parameter in header",
|
||
|
"properties": {
|
||
|
"in": {
|
||
|
"enum": [
|
||
|
"header"
|
||
|
]
|
||
|
},
|
||
|
"style": {
|
||
|
"enum": [
|
||
|
"simple"
|
||
|
],
|
||
|
"default": "simple"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"description": "Parameter in cookie",
|
||
|
"properties": {
|
||
|
"in": {
|
||
|
"enum": [
|
||
|
"cookie"
|
||
|
]
|
||
|
},
|
||
|
"style": {
|
||
|
"enum": [
|
||
|
"form"
|
||
|
],
|
||
|
"default": "form"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"RequestBody": {
|
||
|
"type": "object",
|
||
|
"required": [
|
||
|
"content"
|
||
|
],
|
||
|
"properties": {
|
||
|
"description": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"content": {
|
||
|
"type": "object",
|
||
|
"additionalProperties": {
|
||
|
"$ref": "#/definitions/MediaType"
|
||
|
}
|
||
|
},
|
||
|
"required": {
|
||
|
"type": "boolean",
|
||
|
"default": false
|
||
|
}
|
||
|
},
|
||
|
"patternProperties": {
|
||
|
"^x-": {
|
||
|
}
|
||
|
},
|
||
|
"additionalProperties": false
|
||
|
},
|
||
|
"SecurityScheme": {
|
||
|
"oneOf": [
|
||
|
{
|
||
|
"$ref": "#/definitions/APIKeySecurityScheme"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#/definitions/HTTPSecurityScheme"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#/definitions/OAuth2SecurityScheme"
|
||
|
},
|
||
|
{
|
||
|
"$ref": "#/definitions/OpenIdConnectSecurityScheme"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"APIKeySecurityScheme": {
|
||
|
"type": "object",
|
||
|
"required": [
|
||
|
"type",
|
||
|
"name",
|
||
|
"in"
|
||
|
],
|
||
|
"properties": {
|
||
|
"type": {
|
||
|
"type": "string",
|
||
|
"enum": [
|
||
|
"apiKey"
|
||
|
]
|
||
|
},
|
||
|
"name": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"in": {
|
||
|
"type": "string",
|
||
|
"enum": [
|
||
|
"header",
|
||
|
"query",
|
||
|
"cookie"
|
||
|
]
|
||
|
},
|
||
|
"description": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
},
|
||
|
"patternProperties": {
|
||
|
"^x-": {
|
||
|
}
|
||
|
},
|
||
|
"additionalProperties": false
|
||
|
},
|
||
|
"HTTPSecurityScheme": {
|
||
|
"type": "object",
|
||
|
"required": [
|
||
|
"scheme",
|
||
|
"type"
|
||
|
],
|
||
|
"properties": {
|
||
|
"scheme": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"bearerFormat": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"description": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"type": {
|
||
|
"type": "string",
|
||
|
"enum": [
|
||
|
"http"
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
"patternProperties": {
|
||
|
"^x-": {
|
||
|
}
|
||
|
},
|
||
|
"additionalProperties": false,
|
||
|
"oneOf": [
|
||
|
{
|
||
|
"description": "Bearer",
|
||
|
"properties": {
|
||
|
"scheme": {
|
||
|
"enum": [
|
||
|
"bearer"
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"description": "Non Bearer",
|
||
|
"not": {
|
||
|
"required": [
|
||
|
"bearerFormat"
|
||
|
]
|
||
|
},
|
||
|
"properties": {
|
||
|
"scheme": {
|
||
|
"not": {
|
||
|
"enum": [
|
||
|
"bearer"
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"OAuth2SecurityScheme": {
|
||
|
"type": "object",
|
||
|
"required": [
|
||
|
"type",
|
||
|
"flows"
|
||
|
],
|
||
|
"properties": {
|
||
|
"type": {
|
||
|
"type": "string",
|
||
|
"enum": [
|
||
|
"oauth2"
|
||
|
]
|
||
|
},
|
||
|
"flows": {
|
||
|
"$ref": "#/definitions/OAuthFlows"
|
||
|
},
|
||
|
"description": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
},
|
||
|
"patternProperties": {
|
||
|
"^x-": {
|
||
|
}
|
||
|
},
|
||
|
"additionalProperties": false
|
||
|
},
|
||
|
"OpenIdConnectSecurityScheme": {
|
||
|
"type": "object",
|
||
|
"required": [
|
||
|
"type",
|
||
|
"openIdConnectUrl"
|
||
|
],
|
||
|
"properties": {
|
||
|
"type": {
|
||
|
"type": "string",
|
||
|
"enum": [
|
||
|
"openIdConnect"
|
||
|
]
|
||
|
},
|
||
|
"openIdConnectUrl": {
|
||
|
"type": "string",
|
||
|
"format": "uri-reference"
|
||
|
},
|
||
|
"description": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
},
|
||
|
"patternProperties": {
|
||
|
"^x-": {
|
||
|
}
|
||
|
},
|
||
|
"additionalProperties": false
|
||
|
},
|
||
|
"OAuthFlows": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"implicit": {
|
||
|
"$ref": "#/definitions/ImplicitOAuthFlow"
|
||
|
},
|
||
|
"password": {
|
||
|
"$ref": "#/definitions/PasswordOAuthFlow"
|
||
|
},
|
||
|
"clientCredentials": {
|
||
|
"$ref": "#/definitions/ClientCredentialsFlow"
|
||
|
},
|
||
|
"authorizationCode": {
|
||
|
"$ref": "#/definitions/AuthorizationCodeOAuthFlow"
|
||
|
}
|
||
|
},
|
||
|
"patternProperties": {
|
||
|
"^x-": {
|
||
|
}
|
||
|
},
|
||
|
"additionalProperties": false
|
||
|
},
|
||
|
"ImplicitOAuthFlow": {
|
||
|
"type": "object",
|
||
|
"required": [
|
||
|
"authorizationUrl",
|
||
|
"scopes"
|
||
|
],
|
||
|
"properties": {
|
||
|
"authorizationUrl": {
|
||
|
"type": "string",
|
||
|
"format": "uri-reference"
|
||
|
},
|
||
|
"refreshUrl": {
|
||
|
"type": "string",
|
||
|
"format": "uri-reference"
|
||
|
},
|
||
|
"scopes": {
|
||
|
"type": "object",
|
||
|
"additionalProperties": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"patternProperties": {
|
||
|
"^x-": {
|
||
|
}
|
||
|
},
|
||
|
"additionalProperties": false
|
||
|
},
|
||
|
"PasswordOAuthFlow": {
|
||
|
"type": "object",
|
||
|
"required": [
|
||
|
"tokenUrl"
|
||
|
],
|
||
|
"properties": {
|
||
|
"tokenUrl": {
|
||
|
"type": "string",
|
||
|
"format": "uri-reference"
|
||
|
},
|
||
|
"refreshUrl": {
|
||
|
"type": "string",
|
||
|
"format": "uri-reference"
|
||
|
},
|
||
|
"scopes": {
|
||
|
"type": "object",
|
||
|
"additionalProperties": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"patternProperties": {
|
||
|
"^x-": {
|
||
|
}
|
||
|
},
|
||
|
"additionalProperties": false
|
||
|
},
|
||
|
"ClientCredentialsFlow": {
|
||
|
"type": "object",
|
||
|
"required": [
|
||
|
"tokenUrl"
|
||
|
],
|
||
|
"properties": {
|
||
|
"tokenUrl": {
|
||
|
"type": "string",
|
||
|
"format": "uri-reference"
|
||
|
},
|
||
|
"refreshUrl": {
|
||
|
"type": "string",
|
||
|
"format": "uri-reference"
|
||
|
},
|
||
|
"scopes": {
|
||
|
"type": "object",
|
||
|
"additionalProperties": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"patternProperties": {
|
||
|
"^x-": {
|
||
|
}
|
||
|
},
|
||
|
"additionalProperties": false
|
||
|
},
|
||
|
"AuthorizationCodeOAuthFlow": {
|
||
|
"type": "object",
|
||
|
"required": [
|
||
|
"authorizationUrl",
|
||
|
"tokenUrl"
|
||
|
],
|
||
|
"properties": {
|
||
|
"authorizationUrl": {
|
||
|
"type": "string",
|
||
|
"format": "uri-reference"
|
||
|
},
|
||
|
"tokenUrl": {
|
||
|
"type": "string",
|
||
|
"format": "uri-reference"
|
||
|
},
|
||
|
"refreshUrl": {
|
||
|
"type": "string",
|
||
|
"format": "uri-reference"
|
||
|
},
|
||
|
"scopes": {
|
||
|
"type": "object",
|
||
|
"additionalProperties": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"patternProperties": {
|
||
|
"^x-": {
|
||
|
}
|
||
|
},
|
||
|
"additionalProperties": false
|
||
|
},
|
||
|
"Link": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"operationId": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"operationRef": {
|
||
|
"type": "string",
|
||
|
"format": "uri-reference"
|
||
|
},
|
||
|
"parameters": {
|
||
|
"type": "object",
|
||
|
"additionalProperties": {
|
||
|
}
|
||
|
},
|
||
|
"requestBody": {
|
||
|
},
|
||
|
"description": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"server": {
|
||
|
"$ref": "#/definitions/Server"
|
||
|
}
|
||
|
},
|
||
|
"patternProperties": {
|
||
|
"^x-": {
|
||
|
}
|
||
|
},
|
||
|
"additionalProperties": false,
|
||
|
"not": {
|
||
|
"description": "Operation Id and Operation Ref are mutually exclusive",
|
||
|
"required": [
|
||
|
"operationId",
|
||
|
"operationRef"
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
"Callback": {
|
||
|
"type": "object",
|
||
|
"additionalProperties": {
|
||
|
"$ref": "#/definitions/PathItem"
|
||
|
},
|
||
|
"patternProperties": {
|
||
|
"^x-": {
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"Encoding": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"contentType": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"headers": {
|
||
|
"type": "object",
|
||
|
"additionalProperties": {
|
||
|
"$ref": "#/definitions/Header"
|
||
|
}
|
||
|
},
|
||
|
"style": {
|
||
|
"type": "string",
|
||
|
"enum": [
|
||
|
"form",
|
||
|
"spaceDelimited",
|
||
|
"pipeDelimited",
|
||
|
"deepObject"
|
||
|
]
|
||
|
},
|
||
|
"explode": {
|
||
|
"type": "boolean"
|
||
|
},
|
||
|
"allowReserved": {
|
||
|
"type": "boolean",
|
||
|
"default": false
|
||
|
}
|
||
|
},
|
||
|
"additionalProperties": false
|
||
|
}
|
||
|
}
|
||
|
}
|