{"swagger":"2.0","info":{"title":"apibuilder swagger","description":"Specification of swagger using the apibuilder format","version":"0.12.14"},"consumes":["application/json"],"produces":["application/json"],"paths":{},"definitions":{"contact":{"type":"object","title":"contact","properties":{"name":{"type":"string"},"url":{"type":"string"},"email":{"type":"string"}}},"external_documentation":{"type":"object","title":"external_documentation","required":["url"],"properties":{"description":{"type":"string"},"url":{"type":"string"}}},"header":{"type":"object","description":"TODO: Can this be a union type with items?","title":"header","required":["type"],"properties":{"description":{"type":"string"},"type":{"type":"string","enum":["string","number","integer","boolean","array"]},"format":{"type":"string","enum":["binary","byte","date","date-time","double","float","int32","int64","password"]},"items":{"$ref":"#/definitions/items"},"collectionFormat":{"type":"string","enum":["csv","ssv","tsv","pipes"]},"default":{},"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":{}},"multipleOf":{"type":"integer","format":"int64"}}},"info":{"type":"object","title":"info","required":["title","version"],"properties":{"title":{"type":"string"},"description":{"type":"string"},"termsOfService":{"type":"string"},"contact":{"$ref":"#/definitions/contact"},"license":{"$ref":"#/definitions/license"},"version":{"type":"string"}}},"items":{"type":"object","title":"items","required":["type"],"properties":{"type":{"type":"string","enum":["string","number","integer","boolean","array"]},"format":{"type":"string","enum":["binary","byte","date","date-time","double","float","int32","int64","password"]},"items":{"$ref":"#/definitions/items"},"collectionFormat":{"type":"string","enum":["csv","ssv","tsv","pipes"]},"default":{},"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":{}},"multipleOf":{"type":"integer","format":"int64"}}},"license":{"type":"object","title":"license","required":["name"],"properties":{"name":{"type":"string"},"url":{"type":"string"}}},"operation":{"type":"object","title":"operation","required":["responses"],"properties":{"tags":{"type":"array","items":{"type":"string"}},"summary":{"type":"string"},"description":{"type":"string"},"externalDocs":{"$ref":"#/definitions/external_documentation"},"operationId":{"type":"string"},"consumes":{"type":"array","items":{"type":"string"}},"produces":{"type":"array","items":{"type":"string"}},"parameters":{"type":"array","items":{"$ref":"#/definitions/parameter_or_ref"}},"responses":{"$ref":"#/definitions/map[response_or_ref]"},"schemes":{"type":"array","items":{"type":"string"}},"deprecated":{"type":"boolean"},"security":{"type":"array","items":{"$ref":"#/definitions/map[[string]]"}}}},"parameter":{"type":"object","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","title":"parameter","required":["name","in","required"],"properties":{"name":{"type":"string"},"in":{"type":"string","enum":["query","header","path","formData","body"]},"description":{"type":"string"},"required":{"type":"boolean"},"schema":{"$ref":"#/definitions/schema"},"type":{"type":"string"},"format":{"type":"string"},"allowEmptyValue":{"type":"boolean"},"items":{"$ref":"#/definitions/items"},"collectionFormat":{"type":"string","enum":["csv","ssv","tsv","pipes"]},"default":{},"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":{}},"multipleOf":{"type":"integer","format":"int64"}}},"path_item":{"type":"object","title":"path_item","properties":{"ref":{"description":"TODO: Needs to be named '$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":{"type":"array","items":{"$ref":"#/definitions/parameter_or_ref"}}}},"reference":{"type":"object","title":"reference","required":["ref"],"properties":{"ref":{"description":"TODO: Needs to be named '$ref'","type":"string"}}},"response":{"type":"object","title":"response","required":["description"],"properties":{"description":{"type":"string"},"schema":{"$ref":"#/definitions/schema"},"headers":{"$ref":"#/definitions/map[header]"},"examples":{}}},"schema":{"type":"object","title":"schema","properties":{"ref":{"description":"TODO: Needs to be named '$ref'","type":"string"},"format":{"type":"string","enum":["binary","byte","date","date-time","double","float","int32","int64","password"]},"title":{"type":"string"},"description":{"type":"string"},"default":{},"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":{"type":"array","items":{"type":"string"}},"items":{"$ref":"#/definitions/schema"},"allOf":{"type":"array","items":{"$ref":"#/definitions/schema"}},"properties":{"$ref":"#/definitions/map[schema]"},"additionalProperties":{"$ref":"#/definitions/schema"},"discriminator":{"type":"string"},"readOnly":{"type":"boolean"},"xml":{"$ref":"#/definitions/xml"},"externalDocs":{"$ref":"#/definitions/external_documentation"},"example":{}}},"security_scheme":{"type":"object","description":"TODO: Consider making this a union type of the three different schemes (and their required fields)","title":"security_scheme","required":["type"],"properties":{"type":{"type":"string","enum":["basic","apiKey","oauth2"]},"description":{"type":"string"},"name":{"description":"Required for apiKey","type":"string"},"in":{"type":"string","enum":["query","header"]},"flow":{"description":"Required for oauth2","type":"string"},"authorizationUrl":{"description":"Required for oauth2","type":"string"},"tokenUrl":{"description":"Required for oauth2","type":"string"},"scopes":{"$ref":"#/definitions/map[string]"}}},"swagger":{"type":"object","title":"swagger","required":["swagger","info","paths"],"properties":{"swagger":{"type":"string"},"info":{"$ref":"#/definitions/info"},"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":{"$ref":"#/definitions/map[path_item]"},"definitions":{"$ref":"#/definitions/map[schema]"},"parameters":{"$ref":"#/definitions/map[parameter]"},"responses":{"$ref":"#/definitions/map[response]"},"securityDefinitions":{"$ref":"#/definitions/map[security_scheme]"},"security":{"$ref":"#/definitions/map[string]"},"tags":{"type":"array","items":{"$ref":"#/definitions/tag"}},"externalDocs":{"$ref":"#/definitions/external_documentation"}}},"tag":{"type":"object","title":"tag","required":["name"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"externalDocs":{"$ref":"#/definitions/external_documentation"}}},"xml":{"type":"object","title":"xml","properties":{"name":{"type":"string"},"namespace":{"type":"string"},"prefix":{"type":"string"},"attribute":{"type":"boolean"},"wrapped":{"type":"boolean"}}},"parameter_or_ref":{"type":"object","title":"parameter_or_ref","allOf":[{"$ref":"#/definitions/parameter"},{"$ref":"#/definitions/reference"}]},"response_or_ref":{"type":"object","title":"response_or_ref","allOf":[{"$ref":"#/definitions/response"},{"$ref":"#/definitions/reference"}]}}}