David Cook
e0a4bad3fc
By default, JSON::Validator::OpenAPI tries to fetch the swagger v2 schema from http://swagger.io/v2/schema.json. If you've installed from CPAN, JSON::Validator::OpenAPI will come with a cached copy, so it won't try to fetch it over HTTP. However, if you've installed from libjson-validator-perl from Debian/Ubuntu, the Debian package excludes the cached copy, so JSON::Validator::OpenAPI tries to fetch it over HTTP. Unfortunately, today and other days in the past, the file at http://swagger.io/v2/schema.json has been unavailable, and this causes Koha to crash in a perpetual loop. This patch includes a copy of the swagger v2 schema, and it loads it locally rather than fetching over HTTP. The changes to Koha/REST/Plugin/PluginRoutes.pm are not required, since the validator isn't currently called there, but I've added a patch to future proof it. To Test: 0a) Remove /usr/share/perl5/JSON/Validator/cache/36d1bd12eeed51e86c8695bd8876a9df if it exists 0b) Block external access to http://swagger.io/v2/schema.json or test during an outage when it's unavailable 0c) Do not apply patch 1) koha-plack --restart kohadev 2) Note that it crashes in a loop and is unavailable in web browser 3) Apply patch 4) koha-plack --restart kohadev 5) Note that Koha comes up and there are no errors in the Plack logs Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
1607 lines
No EOL
39 KiB
JSON
1607 lines
No EOL
39 KiB
JSON
{
|
|
"title": "A JSON Schema for Swagger 2.0 API.",
|
|
"id": "http://swagger.io/v2/schema.json#",
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"type": "object",
|
|
"required": [
|
|
"swagger",
|
|
"info",
|
|
"paths"
|
|
],
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^x-": {
|
|
"$ref": "#/definitions/vendorExtension"
|
|
}
|
|
},
|
|
"properties": {
|
|
"swagger": {
|
|
"type": "string",
|
|
"enum": [
|
|
"2.0"
|
|
],
|
|
"description": "The Swagger version of this document."
|
|
},
|
|
"info": {
|
|
"$ref": "#/definitions/info"
|
|
},
|
|
"host": {
|
|
"type": "string",
|
|
"pattern": "^[^{}/ :\\\\]+(?::\\d+)?$",
|
|
"description": "The host (name or ip) of the API. Example: 'swagger.io'"
|
|
},
|
|
"basePath": {
|
|
"type": "string",
|
|
"pattern": "^/",
|
|
"description": "The base path to the API. Example: '/api'."
|
|
},
|
|
"schemes": {
|
|
"$ref": "#/definitions/schemesList"
|
|
},
|
|
"consumes": {
|
|
"description": "A list of MIME types accepted by the API.",
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/mediaTypeList"
|
|
}
|
|
]
|
|
},
|
|
"produces": {
|
|
"description": "A list of MIME types the API can produce.",
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/mediaTypeList"
|
|
}
|
|
]
|
|
},
|
|
"paths": {
|
|
"$ref": "#/definitions/paths"
|
|
},
|
|
"definitions": {
|
|
"$ref": "#/definitions/definitions"
|
|
},
|
|
"parameters": {
|
|
"$ref": "#/definitions/parameterDefinitions"
|
|
},
|
|
"responses": {
|
|
"$ref": "#/definitions/responseDefinitions"
|
|
},
|
|
"security": {
|
|
"$ref": "#/definitions/security"
|
|
},
|
|
"securityDefinitions": {
|
|
"$ref": "#/definitions/securityDefinitions"
|
|
},
|
|
"tags": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/tag"
|
|
},
|
|
"uniqueItems": true
|
|
},
|
|
"externalDocs": {
|
|
"$ref": "#/definitions/externalDocs"
|
|
}
|
|
},
|
|
"definitions": {
|
|
"info": {
|
|
"type": "object",
|
|
"description": "General information about the API.",
|
|
"required": [
|
|
"version",
|
|
"title"
|
|
],
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^x-": {
|
|
"$ref": "#/definitions/vendorExtension"
|
|
}
|
|
},
|
|
"properties": {
|
|
"title": {
|
|
"type": "string",
|
|
"description": "A unique and precise title of the API."
|
|
},
|
|
"version": {
|
|
"type": "string",
|
|
"description": "A semantic version number of the API."
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"description": "A longer description of the API. Should be different from the title. GitHub Flavored Markdown is allowed."
|
|
},
|
|
"termsOfService": {
|
|
"type": "string",
|
|
"description": "The terms of service for the API."
|
|
},
|
|
"contact": {
|
|
"$ref": "#/definitions/contact"
|
|
},
|
|
"license": {
|
|
"$ref": "#/definitions/license"
|
|
}
|
|
}
|
|
},
|
|
"contact": {
|
|
"type": "object",
|
|
"description": "Contact information for the owners of the API.",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"description": "The identifying name of the contact person/organization."
|
|
},
|
|
"url": {
|
|
"type": "string",
|
|
"description": "The URL pointing to the contact information.",
|
|
"format": "uri"
|
|
},
|
|
"email": {
|
|
"type": "string",
|
|
"description": "The email address of the contact person/organization.",
|
|
"format": "email"
|
|
}
|
|
},
|
|
"patternProperties": {
|
|
"^x-": {
|
|
"$ref": "#/definitions/vendorExtension"
|
|
}
|
|
}
|
|
},
|
|
"license": {
|
|
"type": "object",
|
|
"required": [
|
|
"name"
|
|
],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"description": "The name of the license type. It's encouraged to use an OSI compatible license."
|
|
},
|
|
"url": {
|
|
"type": "string",
|
|
"description": "The URL pointing to the license.",
|
|
"format": "uri"
|
|
}
|
|
},
|
|
"patternProperties": {
|
|
"^x-": {
|
|
"$ref": "#/definitions/vendorExtension"
|
|
}
|
|
}
|
|
},
|
|
"paths": {
|
|
"type": "object",
|
|
"description": "Relative paths to the individual endpoints. They must be relative to the 'basePath'.",
|
|
"patternProperties": {
|
|
"^x-": {
|
|
"$ref": "#/definitions/vendorExtension"
|
|
},
|
|
"^/": {
|
|
"$ref": "#/definitions/pathItem"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"definitions": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"$ref": "#/definitions/schema"
|
|
},
|
|
"description": "One or more JSON objects describing the schemas being consumed and produced by the API."
|
|
},
|
|
"parameterDefinitions": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"$ref": "#/definitions/parameter"
|
|
},
|
|
"description": "One or more JSON representations for parameters"
|
|
},
|
|
"responseDefinitions": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"$ref": "#/definitions/response"
|
|
},
|
|
"description": "One or more JSON representations for responses"
|
|
},
|
|
"externalDocs": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"description": "information about external documentation",
|
|
"required": [
|
|
"url"
|
|
],
|
|
"properties": {
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"url": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
}
|
|
},
|
|
"patternProperties": {
|
|
"^x-": {
|
|
"$ref": "#/definitions/vendorExtension"
|
|
}
|
|
}
|
|
},
|
|
"examples": {
|
|
"type": "object",
|
|
"additionalProperties": true
|
|
},
|
|
"mimeType": {
|
|
"type": "string",
|
|
"description": "The MIME type of the HTTP message."
|
|
},
|
|
"operation": {
|
|
"type": "object",
|
|
"required": [
|
|
"responses"
|
|
],
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^x-": {
|
|
"$ref": "#/definitions/vendorExtension"
|
|
}
|
|
},
|
|
"properties": {
|
|
"tags": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
},
|
|
"summary": {
|
|
"type": "string",
|
|
"description": "A brief summary of the operation."
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"description": "A longer description of the operation, GitHub Flavored Markdown is allowed."
|
|
},
|
|
"externalDocs": {
|
|
"$ref": "#/definitions/externalDocs"
|
|
},
|
|
"operationId": {
|
|
"type": "string",
|
|
"description": "A unique identifier of the operation."
|
|
},
|
|
"produces": {
|
|
"description": "A list of MIME types the API can produce.",
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/mediaTypeList"
|
|
}
|
|
]
|
|
},
|
|
"consumes": {
|
|
"description": "A list of MIME types the API can consume.",
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/mediaTypeList"
|
|
}
|
|
]
|
|
},
|
|
"parameters": {
|
|
"$ref": "#/definitions/parametersList"
|
|
},
|
|
"responses": {
|
|
"$ref": "#/definitions/responses"
|
|
},
|
|
"schemes": {
|
|
"$ref": "#/definitions/schemesList"
|
|
},
|
|
"deprecated": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"security": {
|
|
"$ref": "#/definitions/security"
|
|
}
|
|
}
|
|
},
|
|
"pathItem": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^x-": {
|
|
"$ref": "#/definitions/vendorExtension"
|
|
}
|
|
},
|
|
"properties": {
|
|
"$ref": {
|
|
"type": "string"
|
|
},
|
|
"get": {
|
|
"$ref": "#/definitions/operation"
|
|
},
|
|
"put": {
|
|
"$ref": "#/definitions/operation"
|
|
},
|
|
"post": {
|
|
"$ref": "#/definitions/operation"
|
|
},
|
|
"delete": {
|
|
"$ref": "#/definitions/operation"
|
|
},
|
|
"options": {
|
|
"$ref": "#/definitions/operation"
|
|
},
|
|
"head": {
|
|
"$ref": "#/definitions/operation"
|
|
},
|
|
"patch": {
|
|
"$ref": "#/definitions/operation"
|
|
},
|
|
"parameters": {
|
|
"$ref": "#/definitions/parametersList"
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"type": "object",
|
|
"description": "Response objects names can either be any valid HTTP status code or 'default'.",
|
|
"minProperties": 1,
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^([0-9]{3})$|^(default)$": {
|
|
"$ref": "#/definitions/responseValue"
|
|
},
|
|
"^x-": {
|
|
"$ref": "#/definitions/vendorExtension"
|
|
}
|
|
},
|
|
"not": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^x-": {
|
|
"$ref": "#/definitions/vendorExtension"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responseValue": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/definitions/response"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/jsonReference"
|
|
}
|
|
]
|
|
},
|
|
"response": {
|
|
"type": "object",
|
|
"required": [
|
|
"description"
|
|
],
|
|
"properties": {
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"schema": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/definitions/schema"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/fileSchema"
|
|
}
|
|
]
|
|
},
|
|
"headers": {
|
|
"$ref": "#/definitions/headers"
|
|
},
|
|
"examples": {
|
|
"$ref": "#/definitions/examples"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^x-": {
|
|
"$ref": "#/definitions/vendorExtension"
|
|
}
|
|
}
|
|
},
|
|
"headers": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"$ref": "#/definitions/header"
|
|
}
|
|
},
|
|
"header": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"type"
|
|
],
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"string",
|
|
"number",
|
|
"integer",
|
|
"boolean",
|
|
"array"
|
|
]
|
|
},
|
|
"format": {
|
|
"type": "string"
|
|
},
|
|
"items": {
|
|
"$ref": "#/definitions/primitivesItems"
|
|
},
|
|
"collectionFormat": {
|
|
"$ref": "#/definitions/collectionFormat"
|
|
},
|
|
"default": {
|
|
"$ref": "#/definitions/default"
|
|
},
|
|
"maximum": {
|
|
"$ref": "#/definitions/maximum"
|
|
},
|
|
"exclusiveMaximum": {
|
|
"$ref": "#/definitions/exclusiveMaximum"
|
|
},
|
|
"minimum": {
|
|
"$ref": "#/definitions/minimum"
|
|
},
|
|
"exclusiveMinimum": {
|
|
"$ref": "#/definitions/exclusiveMinimum"
|
|
},
|
|
"maxLength": {
|
|
"$ref": "#/definitions/maxLength"
|
|
},
|
|
"minLength": {
|
|
"$ref": "#/definitions/minLength"
|
|
},
|
|
"pattern": {
|
|
"$ref": "#/definitions/pattern"
|
|
},
|
|
"maxItems": {
|
|
"$ref": "#/definitions/maxItems"
|
|
},
|
|
"minItems": {
|
|
"$ref": "#/definitions/minItems"
|
|
},
|
|
"uniqueItems": {
|
|
"$ref": "#/definitions/uniqueItems"
|
|
},
|
|
"enum": {
|
|
"$ref": "#/definitions/enum"
|
|
},
|
|
"multipleOf": {
|
|
"$ref": "#/definitions/multipleOf"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"patternProperties": {
|
|
"^x-": {
|
|
"$ref": "#/definitions/vendorExtension"
|
|
}
|
|
}
|
|
},
|
|
"vendorExtension": {
|
|
"description": "Any property starting with x- is valid.",
|
|
"additionalProperties": true,
|
|
"additionalItems": true
|
|
},
|
|
"bodyParameter": {
|
|
"type": "object",
|
|
"required": [
|
|
"name",
|
|
"in",
|
|
"schema"
|
|
],
|
|
"patternProperties": {
|
|
"^x-": {
|
|
"$ref": "#/definitions/vendorExtension"
|
|
}
|
|
},
|
|
"properties": {
|
|
"description": {
|
|
"type": "string",
|
|
"description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed."
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"description": "The name of the parameter."
|
|
},
|
|
"in": {
|
|
"type": "string",
|
|
"description": "Determines the location of the parameter.",
|
|
"enum": [
|
|
"body"
|
|
]
|
|
},
|
|
"required": {
|
|
"type": "boolean",
|
|
"description": "Determines whether or not this parameter is required or optional.",
|
|
"default": false
|
|
},
|
|
"schema": {
|
|
"$ref": "#/definitions/schema"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"headerParameterSubSchema": {
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^x-": {
|
|
"$ref": "#/definitions/vendorExtension"
|
|
}
|
|
},
|
|
"properties": {
|
|
"required": {
|
|
"type": "boolean",
|
|
"description": "Determines whether or not this parameter is required or optional.",
|
|
"default": false
|
|
},
|
|
"in": {
|
|
"type": "string",
|
|
"description": "Determines the location of the parameter.",
|
|
"enum": [
|
|
"header"
|
|
]
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed."
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"description": "The name of the parameter."
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"string",
|
|
"number",
|
|
"boolean",
|
|
"integer",
|
|
"array"
|
|
]
|
|
},
|
|
"format": {
|
|
"type": "string"
|
|
},
|
|
"items": {
|
|
"$ref": "#/definitions/primitivesItems"
|
|
},
|
|
"collectionFormat": {
|
|
"$ref": "#/definitions/collectionFormat"
|
|
},
|
|
"default": {
|
|
"$ref": "#/definitions/default"
|
|
},
|
|
"maximum": {
|
|
"$ref": "#/definitions/maximum"
|
|
},
|
|
"exclusiveMaximum": {
|
|
"$ref": "#/definitions/exclusiveMaximum"
|
|
},
|
|
"minimum": {
|
|
"$ref": "#/definitions/minimum"
|
|
},
|
|
"exclusiveMinimum": {
|
|
"$ref": "#/definitions/exclusiveMinimum"
|
|
},
|
|
"maxLength": {
|
|
"$ref": "#/definitions/maxLength"
|
|
},
|
|
"minLength": {
|
|
"$ref": "#/definitions/minLength"
|
|
},
|
|
"pattern": {
|
|
"$ref": "#/definitions/pattern"
|
|
},
|
|
"maxItems": {
|
|
"$ref": "#/definitions/maxItems"
|
|
},
|
|
"minItems": {
|
|
"$ref": "#/definitions/minItems"
|
|
},
|
|
"uniqueItems": {
|
|
"$ref": "#/definitions/uniqueItems"
|
|
},
|
|
"enum": {
|
|
"$ref": "#/definitions/enum"
|
|
},
|
|
"multipleOf": {
|
|
"$ref": "#/definitions/multipleOf"
|
|
}
|
|
}
|
|
},
|
|
"queryParameterSubSchema": {
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^x-": {
|
|
"$ref": "#/definitions/vendorExtension"
|
|
}
|
|
},
|
|
"properties": {
|
|
"required": {
|
|
"type": "boolean",
|
|
"description": "Determines whether or not this parameter is required or optional.",
|
|
"default": false
|
|
},
|
|
"in": {
|
|
"type": "string",
|
|
"description": "Determines the location of the parameter.",
|
|
"enum": [
|
|
"query"
|
|
]
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed."
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"description": "The name of the parameter."
|
|
},
|
|
"allowEmptyValue": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "allows sending a parameter by name only or with an empty value."
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"string",
|
|
"number",
|
|
"boolean",
|
|
"integer",
|
|
"array"
|
|
]
|
|
},
|
|
"format": {
|
|
"type": "string"
|
|
},
|
|
"items": {
|
|
"$ref": "#/definitions/primitivesItems"
|
|
},
|
|
"collectionFormat": {
|
|
"$ref": "#/definitions/collectionFormatWithMulti"
|
|
},
|
|
"default": {
|
|
"$ref": "#/definitions/default"
|
|
},
|
|
"maximum": {
|
|
"$ref": "#/definitions/maximum"
|
|
},
|
|
"exclusiveMaximum": {
|
|
"$ref": "#/definitions/exclusiveMaximum"
|
|
},
|
|
"minimum": {
|
|
"$ref": "#/definitions/minimum"
|
|
},
|
|
"exclusiveMinimum": {
|
|
"$ref": "#/definitions/exclusiveMinimum"
|
|
},
|
|
"maxLength": {
|
|
"$ref": "#/definitions/maxLength"
|
|
},
|
|
"minLength": {
|
|
"$ref": "#/definitions/minLength"
|
|
},
|
|
"pattern": {
|
|
"$ref": "#/definitions/pattern"
|
|
},
|
|
"maxItems": {
|
|
"$ref": "#/definitions/maxItems"
|
|
},
|
|
"minItems": {
|
|
"$ref": "#/definitions/minItems"
|
|
},
|
|
"uniqueItems": {
|
|
"$ref": "#/definitions/uniqueItems"
|
|
},
|
|
"enum": {
|
|
"$ref": "#/definitions/enum"
|
|
},
|
|
"multipleOf": {
|
|
"$ref": "#/definitions/multipleOf"
|
|
}
|
|
}
|
|
},
|
|
"formDataParameterSubSchema": {
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^x-": {
|
|
"$ref": "#/definitions/vendorExtension"
|
|
}
|
|
},
|
|
"properties": {
|
|
"required": {
|
|
"type": "boolean",
|
|
"description": "Determines whether or not this parameter is required or optional.",
|
|
"default": false
|
|
},
|
|
"in": {
|
|
"type": "string",
|
|
"description": "Determines the location of the parameter.",
|
|
"enum": [
|
|
"formData"
|
|
]
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed."
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"description": "The name of the parameter."
|
|
},
|
|
"allowEmptyValue": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "allows sending a parameter by name only or with an empty value."
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"string",
|
|
"number",
|
|
"boolean",
|
|
"integer",
|
|
"array",
|
|
"file"
|
|
]
|
|
},
|
|
"format": {
|
|
"type": "string"
|
|
},
|
|
"items": {
|
|
"$ref": "#/definitions/primitivesItems"
|
|
},
|
|
"collectionFormat": {
|
|
"$ref": "#/definitions/collectionFormatWithMulti"
|
|
},
|
|
"default": {
|
|
"$ref": "#/definitions/default"
|
|
},
|
|
"maximum": {
|
|
"$ref": "#/definitions/maximum"
|
|
},
|
|
"exclusiveMaximum": {
|
|
"$ref": "#/definitions/exclusiveMaximum"
|
|
},
|
|
"minimum": {
|
|
"$ref": "#/definitions/minimum"
|
|
},
|
|
"exclusiveMinimum": {
|
|
"$ref": "#/definitions/exclusiveMinimum"
|
|
},
|
|
"maxLength": {
|
|
"$ref": "#/definitions/maxLength"
|
|
},
|
|
"minLength": {
|
|
"$ref": "#/definitions/minLength"
|
|
},
|
|
"pattern": {
|
|
"$ref": "#/definitions/pattern"
|
|
},
|
|
"maxItems": {
|
|
"$ref": "#/definitions/maxItems"
|
|
},
|
|
"minItems": {
|
|
"$ref": "#/definitions/minItems"
|
|
},
|
|
"uniqueItems": {
|
|
"$ref": "#/definitions/uniqueItems"
|
|
},
|
|
"enum": {
|
|
"$ref": "#/definitions/enum"
|
|
},
|
|
"multipleOf": {
|
|
"$ref": "#/definitions/multipleOf"
|
|
}
|
|
}
|
|
},
|
|
"pathParameterSubSchema": {
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
"^x-": {
|
|
"$ref": "#/definitions/vendorExtension"
|
|
}
|
|
},
|
|
"required": [
|
|
"required"
|
|
],
|
|
"properties": {
|
|
"required": {
|
|
"type": "boolean",
|
|
"enum": [
|
|
true
|
|
],
|
|
"description": "Determines whether or not this parameter is required or optional."
|
|
},
|
|
"in": {
|
|
"type": "string",
|
|
"description": "Determines the location of the parameter.",
|
|
"enum": [
|
|
"path"
|
|
]
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed."
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"description": "The name of the parameter."
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"string",
|
|
"number",
|
|
"boolean",
|
|
"integer",
|
|
"array"
|
|
]
|
|
},
|
|
"format": {
|
|
"type": "string"
|
|
},
|
|
"items": {
|
|
"$ref": "#/definitions/primitivesItems"
|
|
},
|
|
"collectionFormat": {
|
|
"$ref": "#/definitions/collectionFormat"
|
|
},
|
|
"default": {
|
|
"$ref": "#/definitions/default"
|
|
},
|
|
"maximum": {
|
|
"$ref": "#/definitions/maximum"
|
|
},
|
|
"exclusiveMaximum": {
|
|
"$ref": "#/definitions/exclusiveMaximum"
|
|
},
|
|
"minimum": {
|
|
"$ref": "#/definitions/minimum"
|
|
},
|
|
"exclusiveMinimum": {
|
|
"$ref": "#/definitions/exclusiveMinimum"
|
|
},
|
|
"maxLength": {
|
|
"$ref": "#/definitions/maxLength"
|
|
},
|
|
"minLength": {
|
|
"$ref": "#/definitions/minLength"
|
|
},
|
|
"pattern": {
|
|
"$ref": "#/definitions/pattern"
|
|
},
|
|
"maxItems": {
|
|
"$ref": "#/definitions/maxItems"
|
|
},
|
|
"minItems": {
|
|
"$ref": "#/definitions/minItems"
|
|
},
|
|
"uniqueItems": {
|
|
"$ref": "#/definitions/uniqueItems"
|
|
},
|
|
"enum": {
|
|
"$ref": "#/definitions/enum"
|
|
},
|
|
"multipleOf": {
|
|
"$ref": "#/definitions/multipleOf"
|
|
}
|
|
}
|
|
},
|
|
"nonBodyParameter": {
|
|
"type": "object",
|
|
"required": [
|
|
"name",
|
|
"in",
|
|
"type"
|
|
],
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/definitions/headerParameterSubSchema"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/formDataParameterSubSchema"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/queryParameterSubSchema"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/pathParameterSubSchema"
|
|
}
|
|
]
|
|
},
|
|
"parameter": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/definitions/bodyParameter"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/nonBodyParameter"
|
|
}
|
|
]
|
|
},
|
|
"schema": {
|
|
"type": "object",
|
|
"description": "A deterministic version of a JSON Schema object.",
|
|
"patternProperties": {
|
|
"^x-": {
|
|
"$ref": "#/definitions/vendorExtension"
|
|
}
|
|
},
|
|
"properties": {
|
|
"$ref": {
|
|
"type": "string"
|
|
},
|
|
"format": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/properties/title"
|
|
},
|
|
"description": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/properties/description"
|
|
},
|
|
"default": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/properties/default"
|
|
},
|
|
"multipleOf": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/properties/multipleOf"
|
|
},
|
|
"maximum": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/properties/maximum"
|
|
},
|
|
"exclusiveMaximum": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum"
|
|
},
|
|
"minimum": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/properties/minimum"
|
|
},
|
|
"exclusiveMinimum": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum"
|
|
},
|
|
"maxLength": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger"
|
|
},
|
|
"minLength": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"
|
|
},
|
|
"pattern": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/properties/pattern"
|
|
},
|
|
"maxItems": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger"
|
|
},
|
|
"minItems": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"
|
|
},
|
|
"uniqueItems": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/properties/uniqueItems"
|
|
},
|
|
"maxProperties": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger"
|
|
},
|
|
"minProperties": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"
|
|
},
|
|
"required": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/definitions/stringArray"
|
|
},
|
|
"enum": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/properties/enum"
|
|
},
|
|
"additionalProperties": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/schema"
|
|
},
|
|
{
|
|
"type": "boolean"
|
|
}
|
|
],
|
|
"default": {}
|
|
},
|
|
"type": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/properties/type"
|
|
},
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/schema"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"items": {
|
|
"$ref": "#/definitions/schema"
|
|
}
|
|
}
|
|
],
|
|
"default": {}
|
|
},
|
|
"allOf": {
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"items": {
|
|
"$ref": "#/definitions/schema"
|
|
}
|
|
},
|
|
"properties": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"$ref": "#/definitions/schema"
|
|
},
|
|
"default": {}
|
|
},
|
|
"discriminator": {
|
|
"type": "string"
|
|
},
|
|
"readOnly": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"xml": {
|
|
"$ref": "#/definitions/xml"
|
|
},
|
|
"externalDocs": {
|
|
"$ref": "#/definitions/externalDocs"
|
|
},
|
|
"example": {}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"fileSchema": {
|
|
"type": "object",
|
|
"description": "A deterministic version of a JSON Schema object.",
|
|
"patternProperties": {
|
|
"^x-": {
|
|
"$ref": "#/definitions/vendorExtension"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"properties": {
|
|
"format": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/properties/title"
|
|
},
|
|
"description": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/properties/description"
|
|
},
|
|
"default": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/properties/default"
|
|
},
|
|
"required": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/definitions/stringArray"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"file"
|
|
]
|
|
},
|
|
"readOnly": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"externalDocs": {
|
|
"$ref": "#/definitions/externalDocs"
|
|
},
|
|
"example": {}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"primitivesItems": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"string",
|
|
"number",
|
|
"integer",
|
|
"boolean",
|
|
"array"
|
|
]
|
|
},
|
|
"format": {
|
|
"type": "string"
|
|
},
|
|
"items": {
|
|
"$ref": "#/definitions/primitivesItems"
|
|
},
|
|
"collectionFormat": {
|
|
"$ref": "#/definitions/collectionFormat"
|
|
},
|
|
"default": {
|
|
"$ref": "#/definitions/default"
|
|
},
|
|
"maximum": {
|
|
"$ref": "#/definitions/maximum"
|
|
},
|
|
"exclusiveMaximum": {
|
|
"$ref": "#/definitions/exclusiveMaximum"
|
|
},
|
|
"minimum": {
|
|
"$ref": "#/definitions/minimum"
|
|
},
|
|
"exclusiveMinimum": {
|
|
"$ref": "#/definitions/exclusiveMinimum"
|
|
},
|
|
"maxLength": {
|
|
"$ref": "#/definitions/maxLength"
|
|
},
|
|
"minLength": {
|
|
"$ref": "#/definitions/minLength"
|
|
},
|
|
"pattern": {
|
|
"$ref": "#/definitions/pattern"
|
|
},
|
|
"maxItems": {
|
|
"$ref": "#/definitions/maxItems"
|
|
},
|
|
"minItems": {
|
|
"$ref": "#/definitions/minItems"
|
|
},
|
|
"uniqueItems": {
|
|
"$ref": "#/definitions/uniqueItems"
|
|
},
|
|
"enum": {
|
|
"$ref": "#/definitions/enum"
|
|
},
|
|
"multipleOf": {
|
|
"$ref": "#/definitions/multipleOf"
|
|
}
|
|
},
|
|
"patternProperties": {
|
|
"^x-": {
|
|
"$ref": "#/definitions/vendorExtension"
|
|
}
|
|
}
|
|
},
|
|
"security": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/securityRequirement"
|
|
},
|
|
"uniqueItems": true
|
|
},
|
|
"securityRequirement": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
}
|
|
},
|
|
"xml": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"namespace": {
|
|
"type": "string"
|
|
},
|
|
"prefix": {
|
|
"type": "string"
|
|
},
|
|
"attribute": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"wrapped": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
},
|
|
"patternProperties": {
|
|
"^x-": {
|
|
"$ref": "#/definitions/vendorExtension"
|
|
}
|
|
}
|
|
},
|
|
"tag": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"name"
|
|
],
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"externalDocs": {
|
|
"$ref": "#/definitions/externalDocs"
|
|
}
|
|
},
|
|
"patternProperties": {
|
|
"^x-": {
|
|
"$ref": "#/definitions/vendorExtension"
|
|
}
|
|
}
|
|
},
|
|
"securityDefinitions": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/definitions/basicAuthenticationSecurity"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/apiKeySecurity"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/oauth2ImplicitSecurity"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/oauth2PasswordSecurity"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/oauth2ApplicationSecurity"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/oauth2AccessCodeSecurity"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"basicAuthenticationSecurity": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"type"
|
|
],
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"basic"
|
|
]
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"patternProperties": {
|
|
"^x-": {
|
|
"$ref": "#/definitions/vendorExtension"
|
|
}
|
|
}
|
|
},
|
|
"apiKeySecurity": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"type",
|
|
"name",
|
|
"in"
|
|
],
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"apiKey"
|
|
]
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"in": {
|
|
"type": "string",
|
|
"enum": [
|
|
"header",
|
|
"query"
|
|
]
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"patternProperties": {
|
|
"^x-": {
|
|
"$ref": "#/definitions/vendorExtension"
|
|
}
|
|
}
|
|
},
|
|
"oauth2ImplicitSecurity": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"type",
|
|
"flow",
|
|
"authorizationUrl"
|
|
],
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"oauth2"
|
|
]
|
|
},
|
|
"flow": {
|
|
"type": "string",
|
|
"enum": [
|
|
"implicit"
|
|
]
|
|
},
|
|
"scopes": {
|
|
"$ref": "#/definitions/oauth2Scopes"
|
|
},
|
|
"authorizationUrl": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"patternProperties": {
|
|
"^x-": {
|
|
"$ref": "#/definitions/vendorExtension"
|
|
}
|
|
}
|
|
},
|
|
"oauth2PasswordSecurity": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"type",
|
|
"flow",
|
|
"tokenUrl"
|
|
],
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"oauth2"
|
|
]
|
|
},
|
|
"flow": {
|
|
"type": "string",
|
|
"enum": [
|
|
"password"
|
|
]
|
|
},
|
|
"scopes": {
|
|
"$ref": "#/definitions/oauth2Scopes"
|
|
},
|
|
"tokenUrl": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"patternProperties": {
|
|
"^x-": {
|
|
"$ref": "#/definitions/vendorExtension"
|
|
}
|
|
}
|
|
},
|
|
"oauth2ApplicationSecurity": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"type",
|
|
"flow",
|
|
"tokenUrl"
|
|
],
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"oauth2"
|
|
]
|
|
},
|
|
"flow": {
|
|
"type": "string",
|
|
"enum": [
|
|
"application"
|
|
]
|
|
},
|
|
"scopes": {
|
|
"$ref": "#/definitions/oauth2Scopes"
|
|
},
|
|
"tokenUrl": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"patternProperties": {
|
|
"^x-": {
|
|
"$ref": "#/definitions/vendorExtension"
|
|
}
|
|
}
|
|
},
|
|
"oauth2AccessCodeSecurity": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"type",
|
|
"flow",
|
|
"authorizationUrl",
|
|
"tokenUrl"
|
|
],
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"oauth2"
|
|
]
|
|
},
|
|
"flow": {
|
|
"type": "string",
|
|
"enum": [
|
|
"accessCode"
|
|
]
|
|
},
|
|
"scopes": {
|
|
"$ref": "#/definitions/oauth2Scopes"
|
|
},
|
|
"authorizationUrl": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
},
|
|
"tokenUrl": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"patternProperties": {
|
|
"^x-": {
|
|
"$ref": "#/definitions/vendorExtension"
|
|
}
|
|
}
|
|
},
|
|
"oauth2Scopes": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"mediaTypeList": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/mimeType"
|
|
},
|
|
"uniqueItems": true
|
|
},
|
|
"parametersList": {
|
|
"type": "array",
|
|
"description": "The parameters needed to send a valid API call.",
|
|
"additionalItems": false,
|
|
"items": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/definitions/parameter"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/jsonReference"
|
|
}
|
|
]
|
|
},
|
|
"uniqueItems": true
|
|
},
|
|
"schemesList": {
|
|
"type": "array",
|
|
"description": "The transfer protocol of the API.",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"http",
|
|
"https",
|
|
"ws",
|
|
"wss"
|
|
]
|
|
},
|
|
"uniqueItems": true
|
|
},
|
|
"collectionFormat": {
|
|
"type": "string",
|
|
"enum": [
|
|
"csv",
|
|
"ssv",
|
|
"tsv",
|
|
"pipes"
|
|
],
|
|
"default": "csv"
|
|
},
|
|
"collectionFormatWithMulti": {
|
|
"type": "string",
|
|
"enum": [
|
|
"csv",
|
|
"ssv",
|
|
"tsv",
|
|
"pipes",
|
|
"multi"
|
|
],
|
|
"default": "csv"
|
|
},
|
|
"title": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/properties/title"
|
|
},
|
|
"description": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/properties/description"
|
|
},
|
|
"default": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/properties/default"
|
|
},
|
|
"multipleOf": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/properties/multipleOf"
|
|
},
|
|
"maximum": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/properties/maximum"
|
|
},
|
|
"exclusiveMaximum": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum"
|
|
},
|
|
"minimum": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/properties/minimum"
|
|
},
|
|
"exclusiveMinimum": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum"
|
|
},
|
|
"maxLength": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger"
|
|
},
|
|
"minLength": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"
|
|
},
|
|
"pattern": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/properties/pattern"
|
|
},
|
|
"maxItems": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger"
|
|
},
|
|
"minItems": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"
|
|
},
|
|
"uniqueItems": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/properties/uniqueItems"
|
|
},
|
|
"enum": {
|
|
"$ref": "http://json-schema.org/draft-04/schema#/properties/enum"
|
|
},
|
|
"jsonReference": {
|
|
"type": "object",
|
|
"required": [
|
|
"$ref"
|
|
],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"$ref": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |