{
	"id": "https://spec.openapis.org/oas/3.0/schema/2021-09-28",
	"$schema": "http://json-schema.org/draft-04/schema#",
	"description": "The description of OpenAPI v3.0.x documents, as defined by https://spec.openapis.org/oas/v3.0.3",
	"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": {
							"type": "string",
							"pattern": "^[Bb][Ee][Aa][Rr][Ee][Rr]$"
						}
					}
				},
				{
					"description": "Non Bearer",
					"not": {
						"required": [
							"bearerFormat"
						]
					},
					"properties": {
						"scheme": {
							"not": {
								"type": "string",
								"pattern": "^[Bb][Ee][Aa][Rr][Ee][Rr]$"
							}
						}
					}
				}
			]
		},
		"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",
				"scopes"
			],
			"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",
				"scopes"
			],
			"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",
				"scopes"
			],
			"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": {
						"oneOf": [
							{
								"$ref": "#/definitions/Header"
							},
							{
								"$ref": "#/definitions/Reference"
							}
						]
					}
				},
				"style": {
					"type": "string",
					"enum": [
						"form",
						"spaceDelimited",
						"pipeDelimited",
						"deepObject"
					]
				},
				"explode": {
					"type": "boolean"
				},
				"allowReserved": {
					"type": "boolean",
					"default": false
				}
			},
			"patternProperties": {
				"^x-": {
				}
			},
			"additionalProperties": false
		}
	}
}
