openapi: 3.0.3 info: title: apibuilder swagger version: 0.12.14 description: Specification of swagger using the apibuilder format components: schemas: 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' 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 IoApibuilderSwaggerV0ModelsExternalDocumentation: type: object required: - url properties: description: type: string url: type: string IoApibuilderSwaggerV0ModelsXml: type: object properties: name: type: string namespace: type: string prefix: type: string attribute: type: boolean wrapped: type: boolean 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 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' IoApibuilderSwaggerV0ModelsContact: type: object properties: name: type: string url: type: string email: 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 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 IoApibuilderSwaggerV0ModelsTag: type: object required: - name properties: name: type: string description: type: string 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 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 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 IoApibuilderSwaggerV0ModelsLicense: type: object required: - name properties: name: type: string url: type: string 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 IoApibuilderSwaggerV0EnumsItemsType: type: string enum: - string - number - integer - boolean - array IoApibuilderSwaggerV0EnumsCollectionFormatType: type: string enum: - csv - ssv - tsv - pipes IoApibuilderSwaggerV0EnumsParameterInType: type: string enum: - query - header - path - formData - body IoApibuilderSwaggerV0EnumsSecuritySchemeType: type: string enum: - basic - apiKey - oauth2 IoApibuilderSwaggerV0EnumsApiKeyInType: type: string enum: - query - header IoApibuilderSwaggerV0EnumsFormatType: type: string enum: - binary - byte - date - date-time - double - float - int32 - int64 - password IoApibuilderSwaggerV0UnionsResponseOrRef: oneOf: - $ref: '#/components/schemas/IoApibuilderSwaggerV0ModelsResponse' - $ref: '#/components/schemas/IoApibuilderSwaggerV0ModelsReference' IoApibuilderSwaggerV0UnionsParameterOrRef: oneOf: - $ref: '#/components/schemas/IoApibuilderSwaggerV0ModelsParameter' - $ref: '#/components/schemas/IoApibuilderSwaggerV0ModelsReference'