{ "components": { "schemas": { "contact": { "properties": { "name": { "type": "string" }, "url": { "type": "string" }, "email": { "type": "string" } }, "type": "object" }, "external_documentation": { "properties": { "description": { "type": "string" }, "url": { "type": "string" } }, "required": [ "url" ], "type": "object" }, "header": { "description": "TODO: Can this be a union type with items?", "properties": { "description": { "type": "string" }, "type": { "$ref": "#/components/schemas/items_type" }, "format": { "$ref": "#/components/schemas/format_type" }, "items": { "$ref": "#/components/schemas/items", "description": "NOTE: This is required if type is 'array'" }, "collectionFormat": { "$ref": "#/components/schemas/collection_format_type" }, "default": { "type": "object" }, "maximum": { "type": "integer", "format": "int64" }, "exclusiveMaximum": { "type": "boolean" }, "minimum": { "type": "integer", "format": "int64" }, "exclusiveMinimum": { "type": "boolean" }, "maxLength": { "type": "integer" }, "minLength": { "type": "integer" }, "pattern": { "type": "string" }, "maxItems": { "type": "integer" }, "minItems": { "type": "integer" }, "uniqueItems": { "type": "boolean" }, "enum": { "items": { "type": "object" }, "type": "array" }, "multipleOf": { "type": "integer", "format": "int64" } }, "required": [ "type" ], "type": "object" }, "info": { "properties": { "title": { "type": "string" }, "description": { "type": "string" }, "termsOfService": { "type": "string" }, "contact": { "$ref": "#/components/schemas/contact" }, "license": { "$ref": "#/components/schemas/license" }, "version": { "type": "string" } }, "required": [ "title", "version" ], "type": "object" }, "items": { "properties": { "type": { "$ref": "#/components/schemas/items_type" }, "format": { "$ref": "#/components/schemas/format_type" }, "items": { "$ref": "#/components/schemas/items", "description": "NOTE: This is required if type is 'array'" }, "collectionFormat": { "$ref": "#/components/schemas/collection_format_type" }, "default": { "type": "object" }, "maximum": { "type": "integer", "format": "int64" }, "exclusiveMaximum": { "type": "boolean" }, "minimum": { "type": "integer", "format": "int64" }, "exclusiveMinimum": { "type": "boolean" }, "maxLength": { "type": "integer" }, "minLength": { "type": "integer" }, "pattern": { "type": "string" }, "maxItems": { "type": "integer" }, "minItems": { "type": "integer" }, "uniqueItems": { "type": "boolean" }, "enum": { "items": { "type": "object" }, "type": "array" }, "multipleOf": { "type": "integer", "format": "int64" } }, "required": [ "type" ], "type": "object" }, "license": { "properties": { "name": { "type": "string" }, "url": { "type": "string" } }, "required": [ "name" ], "type": "object" }, "operation": { "properties": { "tags": { "items": { "type": "string" }, "type": "array" }, "summary": { "type": "string" }, "description": { "type": "string" }, "externalDocs": { "$ref": "#/components/schemas/external_documentation" }, "operationId": { "type": "string" }, "consumes": { "items": { "type": "string" }, "type": "array" }, "produces": { "items": { "type": "string" }, "type": "array" }, "parameters": { "items": { "$ref": "#/components/schemas/parameter_or_ref" }, "type": "array" }, "responses": {}, "schemes": { "items": { "type": "string" }, "type": "array" }, "deprecated": { "type": "boolean" }, "security": { "type": "array" } }, "required": [ "responses" ], "type": "object" }, "parameter": { "description": "TODO: This might need to be a complex union type, given the different requirements based on the 'in' property. http://swagger.io/specification/#parameterObject", "properties": { "name": { "type": "string" }, "in": { "$ref": "#/components/schemas/parameter_in_type" }, "description": { "type": "string" }, "required": { "type": "boolean" }, "schema": { "$ref": "#/components/schemas/schema" }, "type": { "type": "string" }, "format": { "type": "string" }, "allowEmptyValue": { "type": "boolean" }, "items": { "$ref": "#/components/schemas/items" }, "collectionFormat": { "$ref": "#/components/schemas/collection_format_type" }, "default": { "type": "object" }, "maximum": { "type": "integer", "format": "int64" }, "exclusiveMaximum": { "type": "boolean" }, "minimum": { "type": "integer", "format": "int64" }, "exclusiveMinimum": { "type": "boolean" }, "maxLength": { "type": "integer" }, "minLength": { "type": "integer" }, "pattern": { "type": "string" }, "maxItems": { "type": "integer" }, "minItems": { "type": "integer" }, "uniqueItems": { "type": "boolean" }, "enum": { "items": { "type": "object" }, "type": "array" }, "multipleOf": { "type": "integer", "format": "int64" } }, "required": [ "name", "in", "required" ], "type": "object" }, "path_item": { "properties": { "ref": { "type": "string", "description": "TODO: Needs to be named '$ref'" }, "get": { "$ref": "#/components/schemas/operation" }, "put": { "$ref": "#/components/schemas/operation" }, "post": { "$ref": "#/components/schemas/operation" }, "delete": { "$ref": "#/components/schemas/operation" }, "options": { "$ref": "#/components/schemas/operation" }, "head": { "$ref": "#/components/schemas/operation" }, "patch": { "$ref": "#/components/schemas/operation" }, "parameters": { "items": { "$ref": "#/components/schemas/parameter_or_ref" }, "type": "array" } }, "type": "object" }, "reference": { "properties": { "ref": { "type": "string", "description": "TODO: Needs to be named '$ref'" } }, "required": [ "ref" ], "type": "object" }, "response": { "properties": { "description": { "type": "string" }, "schema": { "$ref": "#/components/schemas/schema" }, "headers": {}, "examples": { "type": "object" } }, "required": [ "description" ], "type": "object" }, "schema": { "properties": { "ref": { "type": "string", "description": "TODO: Needs to be named '$ref'" }, "format": { "$ref": "#/components/schemas/format_type" }, "title": { "type": "string" }, "description": { "type": "string" }, "default": { "type": "object" }, "multipleOf": { "type": "integer", "format": "int64" }, "maximum": { "type": "integer", "format": "int64" }, "exclusiveMaximum": { "type": "boolean" }, "minimum": { "type": "integer", "format": "int64" }, "exclusiveMinimum": { "type": "boolean" }, "maxLength": { "type": "integer" }, "minLength": { "type": "integer" }, "pattern": { "type": "string" }, "maxItems": { "type": "integer" }, "minItems": { "type": "integer" }, "uniqueItems": { "type": "boolean" }, "maxProperties": { "type": "integer" }, "minProperties": { "type": "integer" }, "required": { "items": { "type": "string" }, "type": "array" }, "enum": { "items": { "type": "object" }, "type": "array" }, "type": { "items": { "type": "string" }, "type": "array" }, "items": { "$ref": "#/components/schemas/schema", "description": "TODO: figure out if this also needs to support boolean (http://json-schema.org/latest/json-schema-validation.html#rfc.section.5.9). It's possible that a uni-directional approach may allow us to avoid supporting this odd type." }, "allOf": { "items": { "$ref": "#/components/schemas/schema" }, "type": "array" }, "properties": {}, "additionalProperties": { "$ref": "#/components/schemas/schema", "description": "TODO: figure out if this also needs to support boolean (http://json-schema.org/latest/json-schema-validation.html#rfc.section.5.18). It's possible that a uni-directional approach may allow us to avoid supporting this odd type." }, "discriminator": { "type": "string" }, "readOnly": { "type": "boolean" }, "xml": { "$ref": "#/components/schemas/xml" }, "externalDocs": { "$ref": "#/components/schemas/external_documentation" }, "example": { "type": "object" } }, "type": "object" }, "security_scheme": { "description": "TODO: Consider making this a union type of the three different schemes (and their required fields)", "properties": { "type": { "$ref": "#/components/schemas/security_scheme_type" }, "description": { "type": "string" }, "name": { "type": "string", "description": "Required for apiKey" }, "in": { "$ref": "#/components/schemas/api_key_in_type", "description": "Required for apiKey" }, "flow": { "type": "string", "description": "Required for oauth2" }, "authorizationUrl": { "type": "string", "description": "Required for oauth2" }, "tokenUrl": { "type": "string", "description": "Required for oauth2" }, "scopes": { "description": "Required for oauth2" } }, "required": [ "type" ], "type": "object" }, "swagger": { "properties": { "swagger": { "type": "string" }, "info": { "$ref": "#/components/schemas/info" }, "host": { "type": "string" }, "basePath": { "type": "string" }, "schemes": { "items": { "type": "string" }, "type": "array" }, "consumes": { "items": { "type": "string" }, "type": "array" }, "produces": { "items": { "type": "string" }, "type": "array" }, "paths": {}, "definitions": {}, "parameters": {}, "responses": {}, "securityDefinitions": {}, "security": {}, "tags": { "items": { "$ref": "#/components/schemas/tag" }, "type": "array" }, "externalDocs": { "$ref": "#/components/schemas/external_documentation" } }, "required": [ "swagger", "info", "paths" ], "type": "object" }, "tag": { "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "externalDocs": { "$ref": "#/components/schemas/external_documentation" } }, "required": [ "name" ], "type": "object" }, "xml": { "properties": { "name": { "type": "string" }, "namespace": { "type": "string" }, "prefix": { "type": "string" }, "attribute": { "type": "boolean" }, "wrapped": { "type": "boolean" } }, "type": "object" }, "api_key_in_type": { "description": "Possible values: query,header.", "enum": [ "query", "header" ], "type": "string" }, "collection_format_type": { "description": "Possible values: csv,ssv,tsv,pipes.", "enum": [ "csv", "ssv", "tsv", "pipes" ], "type": "string" }, "format_type": { "description": "Possible values: binary,byte,date,date-time,double,float,int32,int64,password.", "enum": [ "binary", "byte", "date", "date-time", "double", "float", "int32", "int64", "password" ], "type": "string" }, "items_type": { "description": "Possible values: string,number,integer,boolean,array.", "enum": [ "string", "number", "integer", "boolean", "array" ], "type": "string" }, "parameter_in_type": { "description": "Possible values: query,header,path,formData,body.", "enum": [ "query", "header", "path", "formData", "body" ], "type": "string" }, "security_scheme_type": { "description": "Possible values: basic,apiKey,oauth2.", "enum": [ "basic", "apiKey", "oauth2" ], "type": "string" }, "parameter_or_ref": { "oneOf": [ { "$ref": "#/components/schemas/parameter" }, { "$ref": "#/components/schemas/reference" } ], "discriminator": { "mapping": { "parameter": "#/components/schemas/parameter", "reference": "#/components/schemas/reference" }, "propertyName": "discriminator" } }, "response_or_ref": { "oneOf": [ { "$ref": "#/components/schemas/response" }, { "$ref": "#/components/schemas/reference" } ], "discriminator": { "mapping": { "response": "#/components/schemas/response", "reference": "#/components/schemas/reference" }, "propertyName": "discriminator" } } } }, "info": { "contact": {}, "description": "Specification of swagger using the apibuilder format", "license": {}, "termsOfService": "", "title": "apibuilder swagger", "version": "0.12.14" }, "openapi": "3.0.2", "paths": {}, "servers": [ {} ] }