{ "openapi" : "3.0.3", "info" : { "title" : "apibuilder swagger", "version" : "0.16.74", "description" : "Specification of swagger using the apibuilder format" }, "components" : { "schemas" : { "IoApibuilderSwaggerV0ModelsXml" : { "type" : "object", "properties" : { "name" : { "type" : "string" }, "namespace" : { "type" : "string" }, "prefix" : { "type" : "string" }, "attribute" : { "type" : "boolean" }, "wrapped" : { "type" : "boolean" } } }, "IoApibuilderSwaggerV0ModelsExternalDocumentation" : { "type" : "object", "required" : [ "url" ], "properties" : { "description" : { "type" : "string" }, "url" : { "type" : "string" } } }, "IoApibuilderSwaggerV0ModelsParameter" : { "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", "type" : "object", "required" : [ "name", "in", "required" ], "properties" : { "name" : { "type" : "string" }, "in" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0EnumsParameterInType" }, "description" : { "type" : "string" }, "required" : { "type" : "boolean" }, "schema" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0ModelsSchema" }, "type" : { "type" : "string" }, "format" : { "type" : "string" }, "allowEmptyValue" : { "type" : "boolean" }, "items" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0ModelsItems" }, "collectionFormat" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0EnumsCollectionFormatType" }, "default" : { "type" : "object", "additionalProperties" : true }, "maximum" : { "type" : "integer", "format" : "int64" }, "exclusiveMaximum" : { "type" : "boolean" }, "minimum" : { "type" : "integer", "format" : "int64" }, "exclusiveMinimum" : { "type" : "boolean" }, "maxLength" : { "type" : "integer", "format" : "int32" }, "minLength" : { "type" : "integer", "format" : "int32" }, "pattern" : { "type" : "string" }, "maxItems" : { "type" : "integer", "format" : "int32" }, "minItems" : { "type" : "integer", "format" : "int32" }, "uniqueItems" : { "type" : "boolean" }, "enum" : { "type" : "array", "items" : { "type" : "object", "additionalProperties" : true } }, "multipleOf" : { "type" : "integer", "format" : "int64" } } }, "IoApibuilderSwaggerV0ModelsContact" : { "type" : "object", "properties" : { "name" : { "type" : "string" }, "url" : { "type" : "string" }, "email" : { "type" : "string" } } }, "IoApibuilderSwaggerV0ModelsTag" : { "type" : "object", "required" : [ "name" ], "properties" : { "name" : { "type" : "string" }, "description" : { "type" : "string" }, "externalDocs" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0ModelsExternalDocumentation" } } }, "IoApibuilderSwaggerV0ModelsOperation" : { "type" : "object", "required" : [ "responses" ], "properties" : { "tags" : { "type" : "array", "items" : { "type" : "string" } }, "summary" : { "type" : "string" }, "description" : { "type" : "string" }, "externalDocs" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0ModelsExternalDocumentation" }, "operationId" : { "type" : "string" }, "consumes" : { "type" : "array", "items" : { "type" : "string" } }, "produces" : { "type" : "array", "items" : { "type" : "string" } }, "parameters" : { "type" : "array", "items" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0UnionsParameterOrRef" } }, "responses" : { "type" : "object", "additionalProperties" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0UnionsResponseOrRef" } }, "schemes" : { "type" : "array", "items" : { "type" : "string" } }, "deprecated" : { "type" : "boolean" }, "security" : { "type" : "array", "items" : { "type" : "object", "additionalProperties" : { "type" : "array", "items" : { "type" : "string" } } } } } }, "IoApibuilderSwaggerV0ModelsLicense" : { "type" : "object", "required" : [ "name" ], "properties" : { "name" : { "type" : "string" }, "url" : { "type" : "string" } } }, "IoApibuilderSwaggerV0ModelsHeader" : { "description" : "TODO: Can this be a union type with items?", "type" : "object", "required" : [ "type" ], "properties" : { "description" : { "type" : "string" }, "type" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0EnumsItemsType" }, "format" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0EnumsFormatType" }, "items" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0ModelsItems", "description" : "NOTE: This is required if type is 'array'" }, "collectionFormat" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0EnumsCollectionFormatType" }, "default" : { "type" : "object", "additionalProperties" : true }, "maximum" : { "type" : "integer", "format" : "int64" }, "exclusiveMaximum" : { "type" : "boolean" }, "minimum" : { "type" : "integer", "format" : "int64" }, "exclusiveMinimum" : { "type" : "boolean" }, "maxLength" : { "type" : "integer", "format" : "int32" }, "minLength" : { "type" : "integer", "format" : "int32" }, "pattern" : { "type" : "string" }, "maxItems" : { "type" : "integer", "format" : "int32" }, "minItems" : { "type" : "integer", "format" : "int32" }, "uniqueItems" : { "type" : "boolean" }, "enum" : { "type" : "array", "items" : { "type" : "object", "additionalProperties" : true } }, "multipleOf" : { "type" : "integer", "format" : "int64" } } }, "IoApibuilderSwaggerV0ModelsInfo" : { "type" : "object", "required" : [ "title", "version" ], "properties" : { "title" : { "type" : "string" }, "description" : { "type" : "string" }, "termsOfService" : { "type" : "string" }, "contact" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0ModelsContact" }, "license" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0ModelsLicense" }, "version" : { "type" : "string" } } }, "IoApibuilderSwaggerV0ModelsSwagger" : { "type" : "object", "required" : [ "swagger", "info", "paths" ], "properties" : { "swagger" : { "type" : "string" }, "info" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0ModelsInfo" }, "host" : { "type" : "string" }, "basePath" : { "type" : "string" }, "schemes" : { "type" : "array", "items" : { "type" : "string" } }, "consumes" : { "type" : "array", "items" : { "type" : "string" } }, "produces" : { "type" : "array", "items" : { "type" : "string" } }, "paths" : { "type" : "object", "additionalProperties" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0ModelsPathItem" } }, "definitions" : { "type" : "object", "additionalProperties" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0ModelsSchema" } }, "parameters" : { "type" : "object", "additionalProperties" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0ModelsParameter" } }, "responses" : { "type" : "object", "additionalProperties" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0ModelsResponse" } }, "securityDefinitions" : { "type" : "object", "additionalProperties" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0ModelsSecurityScheme" } }, "security" : { "type" : "object", "additionalProperties" : { "type" : "string" } }, "tags" : { "type" : "array", "items" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0ModelsTag" } }, "externalDocs" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0ModelsExternalDocumentation" } } }, "IoApibuilderSwaggerV0ModelsSecurityScheme" : { "description" : "TODO: Consider making this a union type of the three different schemes (and their required fields)", "type" : "object", "required" : [ "type" ], "properties" : { "type" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0EnumsSecuritySchemeType" }, "description" : { "type" : "string" }, "name" : { "description" : "Required for apiKey", "type" : "string" }, "in" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0EnumsApiKeyInType", "description" : "Required for apiKey" }, "flow" : { "description" : "Required for oauth2", "type" : "string" }, "authorizationUrl" : { "description" : "Required for oauth2", "type" : "string" }, "tokenUrl" : { "description" : "Required for oauth2", "type" : "string" }, "scopes" : { "description" : "Required for oauth2", "type" : "object", "additionalProperties" : { "type" : "string" } } } }, "IoApibuilderSwaggerV0ModelsPathItem" : { "type" : "object", "properties" : { "ref" : { "description" : "TODO: Needs to be named '$ref'", "type" : "string" }, "get" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0ModelsOperation" }, "put" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0ModelsOperation" }, "post" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0ModelsOperation" }, "delete" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0ModelsOperation" }, "options" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0ModelsOperation" }, "head" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0ModelsOperation" }, "patch" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0ModelsOperation" }, "parameters" : { "type" : "array", "items" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0UnionsParameterOrRef" } } } }, "IoApibuilderSwaggerV0ModelsItems" : { "type" : "object", "required" : [ "type" ], "properties" : { "type" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0EnumsItemsType" }, "format" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0EnumsFormatType" }, "items" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0ModelsItems", "description" : "NOTE: This is required if type is 'array'" }, "collectionFormat" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0EnumsCollectionFormatType" }, "default" : { "type" : "object", "additionalProperties" : true }, "maximum" : { "type" : "integer", "format" : "int64" }, "exclusiveMaximum" : { "type" : "boolean" }, "minimum" : { "type" : "integer", "format" : "int64" }, "exclusiveMinimum" : { "type" : "boolean" }, "maxLength" : { "type" : "integer", "format" : "int32" }, "minLength" : { "type" : "integer", "format" : "int32" }, "pattern" : { "type" : "string" }, "maxItems" : { "type" : "integer", "format" : "int32" }, "minItems" : { "type" : "integer", "format" : "int32" }, "uniqueItems" : { "type" : "boolean" }, "enum" : { "type" : "array", "items" : { "type" : "object", "additionalProperties" : true } }, "multipleOf" : { "type" : "integer", "format" : "int64" } } }, "IoApibuilderSwaggerV0ModelsReference" : { "type" : "object", "required" : [ "ref" ], "properties" : { "ref" : { "description" : "TODO: Needs to be named '$ref'", "type" : "string" } } }, "IoApibuilderSwaggerV0ModelsSchema" : { "type" : "object", "properties" : { "ref" : { "description" : "TODO: Needs to be named '$ref'", "type" : "string" }, "format" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0EnumsFormatType" }, "title" : { "type" : "string" }, "description" : { "type" : "string" }, "default" : { "type" : "object", "additionalProperties" : true }, "multipleOf" : { "type" : "integer", "format" : "int64" }, "maximum" : { "type" : "integer", "format" : "int64" }, "exclusiveMaximum" : { "type" : "boolean" }, "minimum" : { "type" : "integer", "format" : "int64" }, "exclusiveMinimum" : { "type" : "boolean" }, "maxLength" : { "type" : "integer", "format" : "int32" }, "minLength" : { "type" : "integer", "format" : "int32" }, "pattern" : { "type" : "string" }, "maxItems" : { "type" : "integer", "format" : "int32" }, "minItems" : { "type" : "integer", "format" : "int32" }, "uniqueItems" : { "type" : "boolean" }, "maxProperties" : { "type" : "integer", "format" : "int32" }, "minProperties" : { "type" : "integer", "format" : "int32" }, "required" : { "type" : "array", "items" : { "type" : "string" } }, "enum" : { "type" : "array", "items" : { "type" : "object", "additionalProperties" : true } }, "type" : { "type" : "array", "items" : { "type" : "string" } }, "items" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0ModelsSchema", "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" : { "type" : "array", "items" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0ModelsSchema" } }, "properties" : { "type" : "object", "additionalProperties" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0ModelsSchema" } }, "additionalProperties" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0ModelsSchema", "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/IoApibuilderSwaggerV0ModelsXml" }, "externalDocs" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0ModelsExternalDocumentation" }, "example" : { "type" : "object", "additionalProperties" : true } } }, "IoApibuilderSwaggerV0ModelsResponse" : { "type" : "object", "required" : [ "description" ], "properties" : { "description" : { "type" : "string" }, "schema" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0ModelsSchema" }, "headers" : { "type" : "object", "additionalProperties" : { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0ModelsHeader" } }, "examples" : { "type" : "object", "additionalProperties" : true } } }, "IoApibuilderSwaggerV0EnumsApiKeyInType" : { "type" : "string", "enum" : [ "query", "header" ] }, "IoApibuilderSwaggerV0EnumsItemsType" : { "type" : "string", "enum" : [ "string", "number", "integer", "boolean", "array" ] }, "IoApibuilderSwaggerV0EnumsCollectionFormatType" : { "type" : "string", "enum" : [ "csv", "ssv", "tsv", "pipes" ] }, "IoApibuilderSwaggerV0EnumsSecuritySchemeType" : { "type" : "string", "enum" : [ "basic", "apiKey", "oauth2" ] }, "IoApibuilderSwaggerV0EnumsParameterInType" : { "type" : "string", "enum" : [ "query", "header", "path", "formData", "body" ] }, "IoApibuilderSwaggerV0EnumsFormatType" : { "type" : "string", "enum" : [ "binary", "byte", "date", "date-time", "double", "float", "int32", "int64", "password" ] }, "IoApibuilderSwaggerV0UnionsParameterOrRef" : { "oneOf" : [ { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0ModelsParameter" }, { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0ModelsReference" } ] }, "IoApibuilderSwaggerV0UnionsResponseOrRef" : { "oneOf" : [ { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0ModelsResponse" }, { "$ref" : "#/components/schemas/IoApibuilderSwaggerV0ModelsReference" } ] } } } }