openapi: 3.0.3
info:
  title: apibuilder api json
  version: 0.16.28
  description: Specification of the API Builder Input form (api.json). See https://app.apibuilder.io/doc/apiJson
components:
  schemas:
    IoApibuilderApiJsonV0ModelsInfo:
      type: object
      properties:
        contact:
          $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsContact'
        license:
          $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsLicense'
    IoApibuilderApiJsonV0ModelsField:
      type: object
      required:
      - name
      - type
      - required
      properties:
        name:
          type: string
        type:
          type: string
        description:
          type: string
        required:
          type: boolean
        default:
          type: object
          additionalProperties: true
        example:
          type: string
        minimum:
          type: integer
          format: int64
        maximum:
          type: integer
          format: int64
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsAttribute'
        annotations:
          type: array
          items:
            type: string
        deprecation:
          $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsDeprecation'
    IoApibuilderApiJsonV0ModelsResource:
      type: object
      required:
      - operations
      properties:
        path:
          type: string
        description:
          type: string
        operations:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsOperation'
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsAttribute'
        templates:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsTemplateDeclaration'
        deprecation:
          $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsDeprecation'
    IoApibuilderApiJsonV0ModelsLicense:
      description: Describes the software license contact for this service
      type: object
      required:
      - name
      properties:
        name:
          example: MIT
          type: string
        url:
          example: http://opensource.org/licenses/MIT
          type: string
    IoApibuilderApiJsonV0ModelsUnionType:
      type: object
      required:
      - type
      - default
      properties:
        type:
          type: string
        description:
          type: string
        default:
          type: boolean
        discriminator_value:
          type: string
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsAttribute'
        deprecation:
          $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsDeprecation'
    IoApibuilderApiJsonV0ModelsTemplateDeclaration:
      type: object
      required:
      - name
      properties:
        name:
          type: string
        cast:
          description: Casts the types declared in the template to the types you want
            to use in this declaration
          type: object
          additionalProperties:
            type: string
    IoApibuilderApiJsonV0ModelsModel:
      type: object
      required:
      - fields
      properties:
        description:
          type: string
        plural:
          type: string
        fields:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsField'
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsAttribute'
        interfaces:
          type: array
          items:
            type: string
        templates:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsTemplateDeclaration'
        deprecation:
          $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsDeprecation'
    IoApibuilderApiJsonV0ModelsHeader:
      type: object
      required:
      - name
      - type
      - required
      properties:
        name:
          type: string
        type:
          type: string
        required:
          type: boolean
        description:
          type: string
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsAttribute'
        deprecation:
          $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsDeprecation'
    IoApibuilderApiJsonV0ModelsParameter:
      type: object
      required:
      - name
      - type
      - location
      - required
      properties:
        name:
          type: string
        type:
          type: string
        location:
          $ref: '#/components/schemas/IoApibuilderApiJsonV0EnumsParameterLocation'
        description:
          type: string
        required:
          type: boolean
        default:
          type: object
          additionalProperties: true
        minimum:
          type: integer
          format: int64
        maximum:
          type: integer
          format: int64
        example:
          type: string
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsAttribute'
        deprecation:
          $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsDeprecation'
    IoApibuilderApiJsonV0ModelsAttribute:
      type: object
      required:
      - name
      - value
      properties:
        name:
          type: string
        value:
          type: object
          additionalProperties: true
    IoApibuilderApiJsonV0ModelsUnion:
      type: object
      required:
      - types
      properties:
        plural:
          type: string
        discriminator:
          type: string
        description:
          type: string
        types:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsUnionType'
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsAttribute'
        interfaces:
          type: array
          items:
            type: string
        deprecation:
          $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsDeprecation'
    IoApibuilderApiJsonV0ModelsImport:
      type: object
      required:
      - uri
      properties:
        uri:
          type: string
    IoApibuilderApiJsonV0ModelsEnumValue:
      type: object
      required:
      - name
      properties:
        name:
          type: string
        value:
          type: string
        description:
          type: string
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsAttribute'
        deprecation:
          $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsDeprecation'
    IoApibuilderApiJsonV0ModelsTemplates:
      description: Experimental
      type: object
      properties:
        models:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsModel'
        resources:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsResource'
    IoApibuilderApiJsonV0ModelsOperation:
      type: object
      required:
      - method
      properties:
        method:
          type: string
        path:
          type: string
        description:
          type: string
        body:
          $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsBody'
        parameters:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsParameter'
        responses:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsResponse'
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsAttribute'
        deprecation:
          $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsDeprecation'
    IoApibuilderApiJsonV0ModelsResponse:
      type: object
      required:
      - type
      properties:
        type:
          type: string
        headers:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsHeader'
        description:
          type: string
        deprecation:
          $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsDeprecation'
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsAttribute'
    IoApibuilderApiJsonV0ModelsAnnotation:
      type: object
      properties:
        description:
          type: string
        deprecation:
          $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsDeprecation'
    IoApibuilderApiJsonV0ModelsContact:
      type: object
      properties:
        name:
          example: Michael Bryzek
          type: string
        url:
          example: https://www.apibuilder.io
          type: string
        email:
          example: michael@test.apibuilder.io
          type: string
    IoApibuilderApiJsonV0ModelsInterface:
      type: object
      properties:
        plural:
          type: string
        description:
          type: string
        fields:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsField'
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsAttribute'
        deprecation:
          $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsDeprecation'
    IoApibuilderApiJsonV0ModelsApiJson:
      type: object
      required:
      - name
      - imports
      - headers
      - enums
      - interfaces
      - unions
      - models
      - resources
      - annotations
      - attributes
      properties:
        name:
          type: string
        info:
          $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsInfo'
        namespace:
          type: string
        base_url:
          type: string
        description:
          type: string
        imports:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsImport'
        headers:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsHeader'
        enums:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsEnum'
        interfaces:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsInterface'
        templates:
          $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsTemplates'
        unions:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsUnion'
        models:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsModel'
        resources:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsResource'
        annotations:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsAnnotation'
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsAttribute'
    IoApibuilderApiJsonV0ModelsBody:
      type: object
      required:
      - type
      properties:
        type:
          type: string
        description:
          type: string
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsAttribute'
        deprecation:
          $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsDeprecation'
    IoApibuilderApiJsonV0ModelsEnum:
      type: object
      required:
      - values
      properties:
        plural:
          type: string
        description:
          type: string
        values:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsEnumValue'
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsAttribute'
        deprecation:
          $ref: '#/components/schemas/IoApibuilderApiJsonV0ModelsDeprecation'
    IoApibuilderApiJsonV0ModelsDeprecation:
      type: object
      properties:
        description:
          type: string
    IoApibuilderApiJsonV0EnumsParameterLocation:
      type: string
      enum:
      - path
      - query
      - form
      - header
