openapi: 3.0.3
info:
  title: apibuilder api
  version: 0.12.8
  description: Host API documentation for applications providing REST APIs, facilitating
    the design of good resource first APIs.
servers:
- url: https://api.apibuilder.io
paths:
  /_internal_/healthcheck:
    get:
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IoApibuilderGeneratorV0ModelsHealthcheck'
  /_internal_/migrate:
    get:
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: string
  /attributes:
    get:
      description: Search all attributes. Results are always paginated.
      parameters:
      - name: guid
        in: query
        description: Find the watch with this guid.
        required: false
        schema:
          type: string
          format: uuid
      - name: name
        in: query
        description: Find attributes with this name. Case in-sensitive. Exact match
        required: false
        schema:
          type: string
      - name: limit
        in: query
        description: The number of records to return
        required: true
        schema:
          type: integer
          format: int64
      - name: offset
        in: query
        description: Used to paginate. First page of results is 0.
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsAttribute'
    post:
      description: Create a new attribute.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IoApibuilderApiV0ModelsAttributeForm'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IoApibuilderApiV0ModelsAttribute'
        '401':
          description: Unauthorized
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsError'
  /attributes/{name}:
    get:
      description: Returns the attribute with this name.
      parameters:
      - name: name
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IoApibuilderApiV0ModelsAttribute'
        '404':
          description: Not found
    delete:
      description: Deletes the attribute with this name. Only the user who created
        an attribute can delete it.
      parameters:
      - name: name
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: No content
        '401':
          description: Unauthorized
        '404':
          description: Not found
  /authentications/session/{id}:
    get:
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IoApibuilderApiV0ModelsAuthentication'
        '404':
          description: Not found
  /changes:
    get:
      parameters:
      - name: org_key
        in: query
        description: Filter changes to those made for the organization with this key.
        required: false
        schema:
          type: string
      - name: application_key
        in: query
        description: Filter changes to those made for the application with this key.
        required: false
        schema:
          type: string
      - name: from
        in: query
        description: Filter changes to those made from this version.
        required: false
        schema:
          type: string
        example: 0.1.3
      - name: to
        in: query
        description: Filter changes to those made to this version.
        required: false
        schema:
          type: string
        example: 0.1.4
      - name: type
        in: query
        description: The type of diff to return.
        required: false
        schema:
          type: string
        example: breaking or non_breaking
      - name: limit
        in: query
        description: The number of records to return
        required: true
        schema:
          type: integer
          format: int64
      - name: offset
        in: query
        description: Used to paginate. First page of results is 0.
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsChange'
  /domains/{orgKey}:
    post:
      description: Add a domain to this organization
      parameters:
      - name: orgKey
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IoApibuilderApiV0ModelsDomain'
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IoApibuilderApiV0ModelsDomain'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsError'
  /domains/{orgKey}/{name}:
    delete:
      description: Remove this domain from this organization
      parameters:
      - name: orgKey
        in: path
        required: true
        schema:
          type: string
      - name: name
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: No content
  /email_verification_confirmations:
    post:
      description: Validate an email address using a token.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IoApibuilderApiV0ModelsEmailVerificationConfirmationForm'
        required: true
      responses:
        '204':
          description: No content
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsError'
  /generator_services:
    get:
      description: List all generator services
      parameters:
      - name: guid
        in: query
        required: false
        schema:
          type: string
          format: uuid
      - name: uri
        in: query
        required: false
        schema:
          type: string
      - name: generator_key
        in: query
        required: false
        schema:
          type: string
      - name: limit
        in: query
        description: The number of records to return
        required: true
        schema:
          type: integer
          format: int64
      - name: offset
        in: query
        description: Used to paginate. First page of results is 0.
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsGeneratorService'
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IoApibuilderApiV0ModelsGeneratorServiceForm'
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IoApibuilderApiV0ModelsGeneratorService'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsError'
  /generator_services/{guid}:
    get:
      parameters:
      - name: guid
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IoApibuilderApiV0ModelsGeneratorService'
        '404':
          description: Not found
    delete:
      description: Deletes a generator service.
      parameters:
      - name: guid
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '204':
          description: Service successfully deleted
        '404':
          description: Service not found
        '403':
          description: Request is not authorized
  /generators:
    get:
      description: List all available generators
      parameters:
      - name: guid
        in: query
        description: Filter to generator with this guid
        required: false
        schema:
          type: string
          format: uuid
      - name: service_guid
        in: query
        description: Filter to generator from this service
        required: false
        schema:
          type: string
          format: uuid
      - name: service_uri
        in: query
        description: Filter to generator from this service URI
        required: false
        schema:
          type: string
      - name: attribute_name
        in: query
        description: Filter to generators that use this attribute
        required: false
        schema:
          type: string
      - name: key
        in: query
        description: Filter to generator with this key
        required: false
        schema:
          type: string
      - name: limit
        in: query
        description: The number of records to return
        required: true
        schema:
          type: integer
          format: int64
      - name: offset
        in: query
        description: Used to paginate. First page of results is 0.
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsGeneratorWithService'
  /generators/{key}:
    get:
      parameters:
      - name: key
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IoApibuilderApiV0ModelsGeneratorWithService'
        '404':
          description: Not found
  /items:
    get:
      parameters:
      - name: q
        in: query
        description: The search query. At the moment, we do case insensitive exact
          match search.
        required: false
        schema:
          type: string
      - name: limit
        in: query
        description: The number of records to return
        required: true
        schema:
          type: integer
          format: int64
      - name: offset
        in: query
        description: Used to paginate. First page of results is 0.
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsItem'
  /items/{guid}:
    get:
      parameters:
      - name: guid
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IoApibuilderApiV0ModelsItem'
        '404':
          description: Not found
  /membership_requests:
    get:
      description: Search all membership requests. Results are always paginated.
      parameters:
      - name: org_guid
        in: query
        required: false
        schema:
          type: string
          format: uuid
      - name: org_key
        in: query
        required: false
        schema:
          type: string
      - name: user_guid
        in: query
        required: false
        schema:
          type: string
          format: uuid
      - name: role
        in: query
        required: false
        schema:
          type: string
      - name: limit
        in: query
        description: The number of records to return
        required: true
        schema:
          type: integer
          format: int64
      - name: offset
        in: query
        description: Used to paginate. First page of results is 0.
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsMembershipRequest'
    post:
      description: Create a membership request
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - org_guid
              - user_guid
              - role
              properties:
                org_guid:
                  type: string
                  format: uuid
                user_guid:
                  type: string
                  format: uuid
                role:
                  type: string
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IoApibuilderApiV0ModelsMembershipRequest'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsError'
  /membership_requests/{guid}/accept:
    post:
      description: Accepts this membership request. User will become a member of the
        specified organization.
      parameters:
      - name: guid
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '204':
          description: No content
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsError'
  /membership_requests/{guid}/decline:
    post:
      description: Declines this membership request. User will NOT become a member
        of the specified organization.
      parameters:
      - name: guid
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '204':
          description: No content
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsError'
  /memberships:
    get:
      description: Search all memberships. Results are always paginated.
      parameters:
      - name: org_guid
        in: query
        required: false
        schema:
          type: string
          format: uuid
      - name: org_key
        in: query
        required: false
        schema:
          type: string
      - name: user_guid
        in: query
        required: false
        schema:
          type: string
          format: uuid
      - name: role
        in: query
        required: false
        schema:
          type: string
      - name: limit
        in: query
        description: The number of records to return
        required: true
        schema:
          type: integer
          format: int64
      - name: offset
        in: query
        description: Used to paginate. First page of results is 0.
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsMembership'
  /memberships/{guid}:
    get:
      parameters:
      - name: guid
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IoApibuilderApiV0ModelsMembership'
        '404':
          description: Not found
    delete:
      parameters:
      - name: guid
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '204':
          description: No content
  /organizations:
    get:
      description: Search all organizations. Results are always paginated.
      parameters:
      - name: guid
        in: query
        description: Finds the organization with this guid, if any
        required: false
        schema:
          type: string
          format: uuid
      - name: user_guid
        in: query
        description: If specified, restricts to organizations that this user is specifically
          a member of (e.g. will exclude public organizations with which the user
          does not have a direct membership).
        required: false
        schema:
          type: string
          format: uuid
      - name: key
        in: query
        description: Find organizations with this key. Case in-sensitive. Exact match
        required: false
        schema:
          type: string
      - name: name
        in: query
        description: Find organizations with this name. Case in-sensitive. Exact match
        required: false
        schema:
          type: string
      - name: namespace
        in: query
        description: Find organizations with this namespace. Case in-sensitive. Exact
          match
        required: false
        schema:
          type: string
      - name: limit
        in: query
        description: The number of records to return
        required: true
        schema:
          type: integer
          format: int64
      - name: offset
        in: query
        description: Used to paginate. First page of results is 0.
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsOrganization'
    post:
      description: Create a new organization.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IoApibuilderApiV0ModelsOrganizationForm'
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IoApibuilderApiV0ModelsOrganization'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsError'
  /organizations/{key}:
    get:
      description: Returns the organization with this key.
      parameters:
      - name: key
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IoApibuilderApiV0ModelsOrganization'
        '404':
          description: Not found
    put:
      description: Update an organization.
      parameters:
      - name: key
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IoApibuilderApiV0ModelsOrganizationForm'
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IoApibuilderApiV0ModelsOrganization'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsError'
    delete:
      description: Deletes an organization and all of its associated applications.
      parameters:
      - name: key
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: No content
  /organizations/{key}/attributes:
    get:
      description: Returns all attribute values for this organization. Results are
        always paginated.
      parameters:
      - name: key
        in: path
        required: true
        schema:
          type: string
      - name: name
        in: query
        description: Find the values for the attribute with this name.
        required: false
        schema:
          type: string
      - name: limit
        in: query
        description: The number of records to return
        required: true
        schema:
          type: integer
          format: int64
      - name: offset
        in: query
        description: Used to paginate. First page of results is 0.
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsAttributeValue'
  /organizations/{key}/attributes/{name}:
    get:
      description: Returns the attribute value with this name.
      parameters:
      - name: key
        in: path
        required: true
        schema:
          type: string
      - name: name
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IoApibuilderApiV0ModelsAttributeValue'
        '404':
          description: Not found
    put:
      description: Create or update a new attribute value.
      parameters:
      - name: key
        in: path
        required: true
        schema:
          type: string
      - name: name
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IoApibuilderApiV0ModelsAttributeValueForm'
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IoApibuilderApiV0ModelsAttributeValue'
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IoApibuilderApiV0ModelsAttributeValue'
        '404':
          description: Not found
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsError'
    delete:
      description: Deletes the attribute value with the specified name. Only the user
        who created an attribute value can delete it.
      parameters:
      - name: key
        in: path
        required: true
        schema:
          type: string
      - name: name
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: No content
        '401':
          description: Unauthorized
        '404':
          description: Not found
  /password_reset_requests:
    post:
      description: Create a new password reset. This will send the user an email with
        a link to reset their password.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IoApibuilderApiV0ModelsPasswordResetRequest'
        required: true
      responses:
        '204':
          description: No content
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsError'
  /password_resets:
    post:
      description: Change the password for this token. If the token is invalid, has
        been used, or otherwise no longer can be applied, errors will be returned
        as 409s. A 204 represents that the user has successfully changed their password.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IoApibuilderApiV0ModelsPasswordReset'
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IoApibuilderApiV0ModelsAuthentication'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsError'
  /subscriptions:
    get:
      description: Search subscriptions. Always paginated.
      parameters:
      - name: guid
        in: query
        description: Find the subscription with this guid.
        required: false
        schema:
          type: string
          format: uuid
      - name: organization_key
        in: query
        description: Find subscriptions for this organization.
        required: false
        schema:
          type: string
      - name: user_guid
        in: query
        description: Find subscriptions for this user.
        required: false
        schema:
          type: string
          format: uuid
      - name: publication
        in: query
        description: Find subscriptions for this publication.
        required: false
        schema:
          $ref: '#/components/schemas/IoApibuilderApiV0EnumsPublication'
      - name: limit
        in: query
        description: The number of records to return
        required: true
        schema:
          type: integer
          format: int64
      - name: offset
        in: query
        description: Used to paginate. First page of results is 0.
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsSubscription'
    post:
      description: Create a new subscription.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IoApibuilderApiV0ModelsSubscriptionForm'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IoApibuilderApiV0ModelsSubscription'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsError'
  /subscriptions/{guid}:
    get:
      description: Returns information about a specific subscription.
      parameters:
      - name: guid
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IoApibuilderApiV0ModelsSubscription'
        '404':
          description: Not found
    delete:
      parameters:
      - name: guid
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '204':
          description: No content
  /tokens:
    post:
      description: Create a new API token for this user
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IoApibuilderApiV0ModelsTokenForm'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IoApibuilderApiV0ModelsToken'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsError'
  /tokens/users/{user_guid}:
    get:
      parameters:
      - name: user_guid
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: guid
        in: query
        required: false
        schema:
          type: string
          format: uuid
      - name: limit
        in: query
        description: The number of records to return
        required: true
        schema:
          type: integer
          format: int64
      - name: offset
        in: query
        description: Used to paginate. First page of results is 0.
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsToken'
  /tokens/{guid}:
    delete:
      parameters:
      - name: guid
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '204':
          description: No content
  /tokens/{guid}/cleartext:
    get:
      description: Used to fetch the clear text token.
      parameters:
      - name: guid
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IoApibuilderApiV0ModelsCleartextToken'
        '404':
          description: Not found
  /users:
    get:
      description: Search for a specific user. You must specify at least 1 parameter
        - either a guid, email or token - and will receive back either 0 or 1 users.
      parameters:
      - name: guid
        in: query
        description: Find user with this guid. Exact match
        required: false
        schema:
          type: string
          format: uuid
      - name: email
        in: query
        description: Find user with this email address. Case in-sensitive. Exact match
        required: false
        schema:
          type: string
      - name: token
        in: query
        description: Find the user with this API token. Exact match
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsUser'
    post:
      description: Create a new user.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IoApibuilderApiV0ModelsUserForm'
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IoApibuilderApiV0ModelsUser'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsError'
  /users/authenticate:
    post:
      description: Used to authenticate a user with an email address and password.
        Successful authentication returns an instance of the user model. Failed authorizations
        of any kind are returned as a generic error with code user_authorization_failed.
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - email
              - password
              properties:
                email:
                  type: string
                password:
                  type: string
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IoApibuilderApiV0ModelsAuthentication'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsError'
  /users/authenticate_github:
    post:
      description: 'Used to authenticate a user using a github access token. This
        is equivalent to running the following command to get the user info: curl
        -H ''Authorization: Bearer code'' https://api.github.com/user'
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - token
              properties:
                token:
                  type: string
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IoApibuilderApiV0ModelsAuthentication'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsError'
  /users/{guid}:
    get:
      description: Returns information about the user with this guid.
      parameters:
      - name: guid
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IoApibuilderApiV0ModelsUser'
        '404':
          description: Not found
    put:
      description: Updates information about the user with the specified guid.
      parameters:
      - name: guid
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IoApibuilderApiV0ModelsUserUpdateForm'
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IoApibuilderApiV0ModelsUser'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsError'
  /validations:
    post:
      requestBody:
        content:
          application/json:
            schema:
              type: string
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IoApibuilderApiV0ModelsValidation'
  /watches:
    get:
      description: Search attributes. Always paginated.
      parameters:
      - name: guid
        in: query
        description: Find the watch with this guid.
        required: false
        schema:
          type: string
          format: uuid
      - name: user_guid
        in: query
        description: Find attributes for this user.
        required: false
        schema:
          type: string
          format: uuid
      - name: organization_key
        in: query
        description: Find attributes for this organization.
        required: false
        schema:
          type: string
      - name: application_key
        in: query
        description: Find attributes for this application.
        required: false
        schema:
          type: string
      - name: limit
        in: query
        description: The number of records to return
        required: true
        schema:
          type: integer
          format: int64
      - name: offset
        in: query
        description: Used to paginate. First page of results is 0.
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsWatch'
    post:
      description: Create a new watch.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IoApibuilderApiV0ModelsWatchForm'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IoApibuilderApiV0ModelsWatch'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsError'
  /watches/check:
    get:
      description: Quick check if a user is watching a specific application.
      parameters:
      - name: user_guid
        in: query
        description: The user for which we are checking. API returns false if the
          user guid is not provided
        required: false
        schema:
          type: string
          format: uuid
      - name: organization_key
        in: query
        required: true
        schema:
          type: string
      - name: application_key
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: boolean
  /watches/{guid}:
    get:
      description: Returns information about a specific watch.
      parameters:
      - name: guid
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IoApibuilderApiV0ModelsWatch'
        '404':
          description: Not found
    delete:
      parameters:
      - name: guid
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '204':
          description: No content
  /{orgKey}:
    get:
      description: Search all applications. Results are always paginated.
      parameters:
      - name: orgKey
        in: path
        description: The organization key for which to search applications
        required: true
        schema:
          type: string
      - name: name
        in: query
        description: The name of an application. Case in-sensitive. Exact match
        required: false
        schema:
          type: string
      - name: guid
        in: query
        description: The guid of an application. Exact match
        required: false
        schema:
          type: string
          format: uuid
      - name: key
        in: query
        description: The key of an application. Case in-sensitive. Exact match
        required: false
        schema:
          type: string
      - name: has_version
        in: query
        description: If true, we return applications that have at least one version.
          If false, we return applications that have no versions in the system
        required: false
        schema:
          type: boolean
      - name: limit
        in: query
        description: The number of records to return
        required: true
        schema:
          type: integer
          format: int64
      - name: offset
        in: query
        description: Used to paginate. First page of results is 0.
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsApplication'
    post:
      description: Create an application.
      parameters:
      - name: orgKey
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IoApibuilderApiV0ModelsApplicationForm'
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IoApibuilderApiV0ModelsApplication'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsError'
  /{orgKey}/{applicationKey}:
    get:
      description: Search all versions of this application. Results are always paginated.
      parameters:
      - name: orgKey
        in: path
        description: The organization key for which to search versions
        required: true
        schema:
          type: string
      - name: applicationKey
        in: path
        description: The application key for which to search versions
        required: true
        schema:
          type: string
      - name: limit
        in: query
        description: The number of records to return
        required: true
        schema:
          type: integer
          format: int64
      - name: offset
        in: query
        description: Used to paginate. First page of results is 0.
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsVersion'
    put:
      description: Updates an application.
      parameters:
      - name: orgKey
        in: path
        required: true
        schema:
          type: string
      - name: applicationKey
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IoApibuilderApiV0ModelsApplicationForm'
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IoApibuilderApiV0ModelsApplication'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsError'
    post:
      description: Create a new version for an application
      parameters:
      - name: orgKey
        in: path
        required: true
        schema:
          type: string
      - name: version
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IoApibuilderApiV0ModelsVersionForm'
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IoApibuilderApiV0ModelsVersion'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsError'
    delete:
      description: Deletes a specific application and its associated versions.
      parameters:
      - name: orgKey
        in: path
        required: true
        schema:
          type: string
      - name: applicationKey
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: No content
  /{orgKey}/{applicationKey}/move:
    post:
      description: Moves application to a new organization.
      parameters:
      - name: orgKey
        in: path
        required: true
        schema:
          type: string
      - name: applicationKey
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IoApibuilderApiV0ModelsMoveForm'
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IoApibuilderApiV0ModelsApplication'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsError'
  /{orgKey}/{applicationKey}/{version}:
    get:
      description: Retrieve a specific version of an application.
      parameters:
      - name: orgKey
        in: path
        required: true
        schema:
          type: string
      - name: applicationKey
        in: path
        required: true
        schema:
          type: string
      - name: version
        in: path
        description: The version of tthis application to download, or the keyword
          latest to get the latest version
        required: true
        schema:
          type: string
        example: latest
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IoApibuilderApiV0ModelsVersion'
        '404':
          description: Not found
    put:
      description: Upsert a version of an application
      parameters:
      - name: orgKey
        in: path
        required: true
        schema:
          type: string
      - name: applicationKey
        in: path
        required: true
        schema:
          type: string
      - name: version
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IoApibuilderApiV0ModelsVersionForm'
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IoApibuilderApiV0ModelsVersion'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsError'
    delete:
      description: Deletes a specific version.
      parameters:
      - name: orgKey
        in: path
        required: true
        schema:
          type: string
      - name: applicationKey
        in: path
        required: true
        schema:
          type: string
      - name: version
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: No content
  /{orgKey}/{applicationKey}/{version}/example/{type_name}:
    get:
      description: Generates an example JSON document of the type with the specified
        name.
      parameters:
      - name: orgKey
        in: path
        required: true
        schema:
          type: string
      - name: applicationKey
        in: path
        required: true
        schema:
          type: string
      - name: version
        in: path
        description: The version of tthis application to download, or the keyword
          latest to get the latest version
        required: true
        schema:
          type: string
        example: latest
      - name: type_name
        in: path
        description: The name of the type (e.g. model name) for which you would like
          to generate a sample json document
        required: true
        schema:
          type: string
      - name: optional_fields
        in: query
        description: If true, we generate sample data for all optional fields. Otherwise
          the generated sample will contain only required fields, where applicable
        required: false
        schema:
          type: boolean
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
        '404':
          description: Not found
  /{orgKey}/{applicationKey}/{version}/{generatorKey}:
    get:
      description: Generate code for a specific version of an application.
      parameters:
      - name: orgKey
        in: path
        description: The organization key for which to generate code
        required: true
        schema:
          type: string
      - name: applicationKey
        in: path
        description: The application key for which to generate code
        required: true
        schema:
          type: string
      - name: version
        in: path
        description: The version of this application. Can be 'latest'
        required: true
        schema:
          type: string
      - name: generatorKey
        in: path
        description: The key of the generator to invoke
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IoApibuilderApiV0ModelsCode'
        '404':
          description: Not found
        '409':
          description: If the target, version, and/or generator are invalid.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IoApibuilderApiV0ModelsError'
components:
  schemas:
    IoApibuilderCommonV0ModelsAudit:
      type: object
      required:
      - created_at
      - created_by
      - updated_at
      - updated_by
      properties:
        created_at:
          type: string
          format: date-time
        created_by:
          $ref: '#/components/schemas/IoApibuilderCommonV0ModelsReferenceGuid'
        updated_at:
          type: string
          format: date-time
        updated_by:
          $ref: '#/components/schemas/IoApibuilderCommonV0ModelsReferenceGuid'
    IoApibuilderCommonV0ModelsReferenceGuid:
      type: object
      required:
      - guid
      properties:
        guid:
          type: string
          format: uuid
    IoApibuilderCommonV0ModelsReference:
      description: Represents a reference to another model.
      type: object
      required:
      - guid
      - key
      properties:
        guid:
          type: string
          format: uuid
        key:
          type: string
    IoApibuilderGeneratorV0ModelsHealthcheck:
      type: object
      required:
      - status
      properties:
        status:
          example: healthy
          type: string
    IoApibuilderGeneratorV0ModelsGenerator:
      description: The generator metadata.
      type: object
      required:
      - key
      - name
      - attributes
      properties:
        key:
          type: string
        name:
          type: string
        language:
          description: A comma separate list of the programming language(s) that this
            generator produces
          example: scala
          type: string
        description:
          type: string
        attributes:
          description: The list of attributes that this code generator can use. You
            can find the full list of available attributes and their descriptions
            at http://apibuilder.io/doc/attributes
          type: array
          items:
            type: string
    IoApibuilderGeneratorV0ModelsFile:
      description: Represents a source file
      type: object
      required:
      - name
      - contents
      properties:
        name:
          description: The recommended name for the file.
          example: ApiCollectiveApiBuilderApiClient.scala
          type: string
        dir:
          description: The recommended directory path for the file where appropriate.
          example: io/apicollective/apibuilder
          type: string
        contents:
          description: The actual source code.
          type: string
    IoApibuilderSpecV0ModelsBody:
      type: object
      required:
      - type
      - attributes
      properties:
        type:
          type: string
        description:
          type: string
        deprecation:
          $ref: '#/components/schemas/IoApibuilderSpecV0ModelsDeprecation'
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiV0ModelsAttribute'
    IoApibuilderSpecV0ModelsModel:
      type: object
      required:
      - name
      - plural
      - fields
      - attributes
      - interfaces
      properties:
        name:
          type: string
        plural:
          type: string
        description:
          type: string
        deprecation:
          $ref: '#/components/schemas/IoApibuilderSpecV0ModelsDeprecation'
        fields:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderSpecV0ModelsField'
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiV0ModelsAttribute'
        interfaces:
          type: array
          items:
            type: string
    IoApibuilderSpecV0ModelsDeprecation:
      description: Indicates that this particular element is considered deprecated
        in the API. See the description for details
      type: object
      properties:
        description:
          type: string
    IoApibuilderSpecV0ModelsField:
      type: object
      required:
      - name
      - type
      - required
      - attributes
      - annotations
      properties:
        name:
          type: string
        type:
          type: string
        description:
          type: string
        deprecation:
          $ref: '#/components/schemas/IoApibuilderSpecV0ModelsDeprecation'
        default:
          type: string
        required:
          type: boolean
        minimum:
          type: integer
          format: int64
        maximum:
          type: integer
          format: int64
        example:
          type: string
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiV0ModelsAttribute'
        annotations:
          type: array
          items:
            type: string
    IoApibuilderSpecV0ModelsUnion:
      type: object
      required:
      - name
      - plural
      - types
      - attributes
      - interfaces
      properties:
        name:
          type: string
        plural:
          type: string
        discriminator:
          description: If a type discriminator is provided, serialization of these
            union types will always contain a field named with the value of the discriminator
            that will contain the name of the type. This provides a simpler (for many
            use cases) JSON serialization/deserialization mechanism. When specified,
            apibuilder itself will verify that none of the types in the union type
            itself contain a field with the same name as the discriminator
          example: discriminator or type
          type: string
        description:
          type: string
        deprecation:
          $ref: '#/components/schemas/IoApibuilderSpecV0ModelsDeprecation'
        types:
          description: The names of the types that make up this union type
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/IoApibuilderSpecV0ModelsUnionType'
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiV0ModelsAttribute'
        interfaces:
          type: array
          items:
            type: string
    IoApibuilderSpecV0ModelsAnnotation:
      description: Used to indicate an API concern for a field that is specific to
        the field's usage but not necessarily its data type. For example, you might
        use annotations to mark that certain fields contain PII or PCI data and thus
        should not be stored once processing is complete. Annotations communicate
        meaning to consumers of an API and may also be used within an implementation
        or tooling; for example, using static analysis tools to detect logging of
        sensitive data.
      type: object
      required:
      - name
      properties:
        name:
          type: string
        description:
          type: string
        deprecation:
          $ref: '#/components/schemas/IoApibuilderSpecV0ModelsDeprecation'
    IoApibuilderSpecV0ModelsHeader:
      type: object
      required:
      - name
      - type
      - required
      - attributes
      properties:
        name:
          type: string
        type:
          type: string
        description:
          type: string
        deprecation:
          $ref: '#/components/schemas/IoApibuilderSpecV0ModelsDeprecation'
        required:
          type: boolean
        default:
          type: string
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiV0ModelsAttribute'
    IoApibuilderSpecV0ModelsOperation:
      type: object
      required:
      - method
      - path
      - parameters
      - responses
      - attributes
      properties:
        method:
          $ref: '#/components/schemas/IoApibuilderSpecV0EnumsMethod'
        path:
          description: The full path to this operation, relative to the service's
            base url.
          type: string
        description:
          type: string
        deprecation:
          $ref: '#/components/schemas/IoApibuilderSpecV0ModelsDeprecation'
        body:
          $ref: '#/components/schemas/IoApibuilderSpecV0ModelsBody'
        parameters:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderSpecV0ModelsParameter'
        responses:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderSpecV0ModelsResponse'
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiV0ModelsAttribute'
    IoApibuilderSpecV0ModelsOrganization:
      type: object
      required:
      - key
      properties:
        key:
          description: Unique key identifying the organization that owns this service
          type: string
    IoApibuilderSpecV0ModelsEnumValue:
      type: object
      required:
      - name
      - attributes
      properties:
        name:
          type: string
        description:
          type: string
        deprecation:
          $ref: '#/components/schemas/IoApibuilderSpecV0ModelsDeprecation'
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiV0ModelsAttribute'
        value:
          description: The actual string representation of this value. If not specified,
            defaults to 'name'
          type: string
    IoApibuilderSpecV0ModelsService:
      type: object
      required:
      - name
      - organization
      - application
      - namespace
      - version
      - info
      - headers
      - imports
      - enums
      - interfaces
      - unions
      - models
      - resources
      - attributes
      - annotations
      properties:
        apidoc:
          $ref: '#/components/schemas/IoApibuilderSpecV0ModelsApidoc'
          description: Documents that this is an apibuilder document, noting the specific
            version used. Internally the version is then used for backwards compatibility
            when applicable as new features are added to apibuilder. Note naming refers
            to the original name of this project, 'apidoc', and is left here to avoid
            a breaking change for preexisting services.
          deprecated: true
        name:
          type: string
        organization:
          $ref: '#/components/schemas/IoApibuilderApiV0ModelsOrganization'
        application:
          $ref: '#/components/schemas/IoApibuilderApiV0ModelsApplication'
        namespace:
          description: Fully qualified namespace for this service
          example: io.apibuilder
          type: string
        version:
          example: 1.0.0
          type: string
        base_url:
          type: string
        description:
          type: string
        info:
          $ref: '#/components/schemas/IoApibuilderSpecV0ModelsInfo'
        headers:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderSpecV0ModelsHeader'
        imports:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderSpecV0ModelsImport'
        enums:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderSpecV0ModelsEnum'
        interfaces:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderSpecV0ModelsInterface'
        unions:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderSpecV0ModelsUnion'
        models:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderSpecV0ModelsModel'
        resources:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderSpecV0ModelsResource'
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiV0ModelsAttribute'
        annotations:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderSpecV0ModelsAnnotation'
    IoApibuilderSpecV0ModelsResource:
      type: object
      required:
      - type
      - plural
      - operations
      - attributes
      properties:
        type:
          description: The type of this resource will map to a defined model, enum,
            or union type
          type: string
        plural:
          type: string
        path:
          description: The path to this specific resource. This was added in 2016
            to help us differentiate between the resource path and the operation path
            which can be helpful when, for example, generating method names for operations.
            This field is optional as some of our input formats (e.g. swagger) do
            not explicitly differentiate resoure paths.
          type: string
        description:
          type: string
        deprecation:
          $ref: '#/components/schemas/IoApibuilderSpecV0ModelsDeprecation'
        operations:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderSpecV0ModelsOperation'
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiV0ModelsAttribute'
    IoApibuilderSpecV0ModelsEnum:
      type: object
      required:
      - name
      - plural
      - values
      - attributes
      properties:
        name:
          type: string
        plural:
          type: string
        description:
          type: string
        deprecation:
          $ref: '#/components/schemas/IoApibuilderSpecV0ModelsDeprecation'
        values:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderSpecV0ModelsEnumValue'
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiV0ModelsAttribute'
    IoApibuilderSpecV0ModelsLicense:
      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
    IoApibuilderSpecV0ModelsApidoc:
      type: object
      required:
      - version
      properties:
        version:
          example: 1.0.3
          type: string
    IoApibuilderSpecV0ModelsImport:
      description: An import is used to declare a dependency on another application.
        This allows you to reference the models and or enums from that application
        in your own app.
      type: object
      required:
      - uri
      - namespace
      - organization
      - application
      - version
      - enums
      - interfaces
      - unions
      - models
      - annotations
      properties:
        uri:
          description: Full URI to the service.json file of the service we are importing
          example: https://www.apibuilder.io/apicollective/apibuilder-spec/0.7.38/service.json
          type: string
        namespace:
          description: the fully qualified namespace that we have imported
          example: io.apibuilder
          type: string
        organization:
          $ref: '#/components/schemas/IoApibuilderApiV0ModelsOrganization'
        application:
          $ref: '#/components/schemas/IoApibuilderApiV0ModelsApplication'
        version:
          description: The version of the service that we are importing
          example: 1.0.0
          type: string
        enums:
          description: Enums made available by this import
          type: array
          items:
            type: string
        interfaces:
          description: Interfaces made available by this import
          type: array
          items:
            type: string
        unions:
          description: Unions made available by this import
          type: array
          items:
            type: string
        models:
          description: Models made available by this import
          type: array
          items:
            type: string
        annotations:
          description: Annotations made available by this import
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderSpecV0ModelsAnnotation'
    IoApibuilderSpecV0ModelsUnionType:
      description: Metadata about one of the types that is part of a union type
      type: object
      required:
      - type
      - attributes
      properties:
        type:
          description: The name of a type (a primitive, model name, or enum name)
            that makes up this union type
          type: string
        description:
          type: string
        deprecation:
          $ref: '#/components/schemas/IoApibuilderSpecV0ModelsDeprecation'
        fields:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderSpecV0ModelsField'
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiV0ModelsAttribute'
        default:
          description: If true, indicates that this type should be used as the default
            when deserializing union types. This field is only used by union types
            that require a discriminator and sets the default value for that discriminator
            during deserialization.
          type: boolean
        discriminator_value:
          description: The discriminator value defines the string to use in the discriminator
            field to identify this type. If not specified, the discriminator value
            will default to the name of the type itself.
          type: string
    IoApibuilderSpecV0ModelsResponse:
      type: object
      required:
      - code
      - type
      properties:
        code:
          $ref: '#/components/schemas/IoApibuilderSpecV0UnionsResponseCode'
        type:
          type: string
        headers:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderSpecV0ModelsHeader'
        description:
          type: string
        deprecation:
          $ref: '#/components/schemas/IoApibuilderSpecV0ModelsDeprecation'
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiV0ModelsAttribute'
    IoApibuilderSpecV0ModelsAttribute:
      description: Represents an additional attribute that is attached to one of the
        objects in apibuilder. The main use case is to capture additional metadata
        that doesn't necessarily define the API but aids in code generation. Examples
        would be hints for certain code generators about classes to extend, interfaces
        to implement, annotations to add, names to assign to certain methods, etc.
        The specific attributes will be applicable only in the context of the specific
        code generators usings them.
      type: object
      required:
      - name
      - value
      properties:
        name:
          type: string
        value:
          type: object
          additionalProperties: true
        description:
          type: string
        deprecation:
          $ref: '#/components/schemas/IoApibuilderSpecV0ModelsDeprecation'
    IoApibuilderSpecV0ModelsParameter:
      type: object
      required:
      - name
      - type
      - location
      - required
      properties:
        name:
          type: string
        type:
          type: string
        location:
          $ref: '#/components/schemas/IoApibuilderSpecV0EnumsParameterLocation'
        description:
          type: string
        deprecation:
          $ref: '#/components/schemas/IoApibuilderSpecV0ModelsDeprecation'
        required:
          type: boolean
        default:
          type: string
        minimum:
          type: integer
          format: int64
        maximum:
          type: integer
          format: int64
        example:
          type: string
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiV0ModelsAttribute'
    IoApibuilderSpecV0ModelsInfo:
      description: General metadata about this service
      type: object
      properties:
        license:
          $ref: '#/components/schemas/IoApibuilderSpecV0ModelsLicense'
        contact:
          $ref: '#/components/schemas/IoApibuilderSpecV0ModelsContact'
    IoApibuilderSpecV0ModelsApplication:
      type: object
      required:
      - key
      properties:
        key:
          description: Unique key identifying this application
          type: string
    IoApibuilderSpecV0ModelsContact:
      description: Describes the primary contact for this service
      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
    IoApibuilderSpecV0ModelsInterface:
      type: object
      required:
      - name
      - plural
      - fields
      - attributes
      properties:
        name:
          type: string
        plural:
          type: string
        description:
          type: string
        deprecation:
          $ref: '#/components/schemas/IoApibuilderSpecV0ModelsDeprecation'
        fields:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderSpecV0ModelsField'
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiV0ModelsAttribute'
    IoApibuilderApiV0ModelsTokenForm:
      type: object
      required:
      - user_guid
      properties:
        user_guid:
          description: The user for which we are creating the token.
          type: string
          format: uuid
        description:
          type: string
    IoApibuilderApiV0ModelsDiffNonBreaking:
      description: Represents a single NON breaking diff of an application version.
      type: object
      required:
      - description
      properties:
        description:
          example: name diffd from foo to bar
          type: string
    IoApibuilderApiV0ModelsAttributeValue:
      description: Attribute values can be set at different levels. Initially we support
        setting organization wide attributes, but in the future plan to support setting
        attribute values with each version of the application.
      type: object
      required:
      - guid
      - attribute
      - value
      - audit
      properties:
        guid:
          description: Internal unique identifier for this attribute value.
          type: string
          format: uuid
        attribute:
          $ref: '#/components/schemas/IoApibuilderApiV0ModelsAttributeSummary'
        value:
          type: string
        audit:
          $ref: '#/components/schemas/IoApibuilderCommonV0ModelsAudit'
    IoApibuilderApiV0ModelsVersionForm:
      type: object
      required:
      - original_form
      properties:
        original_form:
          $ref: '#/components/schemas/IoApibuilderApiV0ModelsOriginalForm'
        visibility:
          $ref: '#/components/schemas/IoApibuilderApiV0EnumsVisibility'
          description: If provided, updates the visibility for all versions of this
            application
    IoApibuilderApiV0ModelsOriginalForm:
      type: object
      required:
      - data
      properties:
        type:
          $ref: '#/components/schemas/IoApibuilderApiV0EnumsOriginalType'
          description: If not specified, we set the type by inspecting the data
        data:
          type: string
    IoApibuilderApiV0ModelsCode:
      description: Generated source code.
      type: object
      required:
      - generator
      - source
      - files
      properties:
        generator:
          $ref: '#/components/schemas/IoApibuilderApiV0ModelsGeneratorWithService'
        source:
          description: The actual source code.
          deprecated: true
          type: string
        files:
          description: A collection of source files
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderGeneratorV0ModelsFile'
    IoApibuilderApiV0ModelsUser:
      description: A user is a top level person interacting with the api doc server.
      type: object
      required:
      - guid
      - email
      - nickname
      - audit
      properties:
        guid:
          description: Internal unique identifier for this user.
          type: string
          format: uuid
        email:
          type: string
        nickname:
          description: Public unique identifier for this user.
          type: string
        name:
          type: string
        audit:
          $ref: '#/components/schemas/IoApibuilderCommonV0ModelsAudit'
    IoApibuilderApiV0ModelsChangeVersion:
      description: Represents a simpler model of a version specifically for the use
        case of displaying changes
      type: object
      required:
      - guid
      - version
      properties:
        guid:
          type: string
          format: uuid
        version:
          type: string
    IoApibuilderApiV0ModelsApplication:
      description: An application has a name and multiple versions of its API.
      type: object
      required:
      - guid
      - organization
      - name
      - key
      - visibility
      - audit
      properties:
        guid:
          description: Internal unique identifier for this application.
          type: string
          format: uuid
        organization:
          $ref: '#/components/schemas/IoApibuilderCommonV0ModelsReference'
        name:
          description: The unique name for this application.
          type: string
        key:
          description: Used as a unique key in the URL path. Key is automatically
            derived from the application name.
          type: string
        visibility:
          $ref: '#/components/schemas/IoApibuilderApiV0EnumsVisibility'
          description: Controls who is able to view this application
        description:
          type: string
        audit:
          $ref: '#/components/schemas/IoApibuilderCommonV0ModelsAudit'
    IoApibuilderApiV0ModelsGeneratorServiceForm:
      type: object
      required:
      - uri
      properties:
        uri:
          type: string
    IoApibuilderApiV0ModelsMembership:
      description: A membership represents a user in a specific role to an organization.
        Memberships cannot be created directly. Instead you first create a membership
        request, then that request is either accepted or declined.
      type: object
      required:
      - guid
      - user
      - organization
      - role
      - audit
      properties:
        guid:
          description: Internal unique identifier for this membership.
          type: string
          format: uuid
        user:
          $ref: '#/components/schemas/IoApibuilderApiV0ModelsUser'
        organization:
          $ref: '#/components/schemas/IoApibuilderApiV0ModelsOrganization'
        role:
          description: The role this user plays for this organization. Typically member
            or admin.
          example: member
          type: string
        audit:
          $ref: '#/components/schemas/IoApibuilderCommonV0ModelsAudit'
    IoApibuilderApiV0ModelsMoveForm:
      type: object
      required:
      - org_key
      properties:
        org_key:
          description: The key of the organization to which we are moving this item
          type: string
    IoApibuilderApiV0ModelsSubscriptionForm:
      type: object
      required:
      - organization_key
      - user_guid
      - publication
      properties:
        organization_key:
          type: string
        user_guid:
          type: string
          format: uuid
        publication:
          $ref: '#/components/schemas/IoApibuilderApiV0EnumsPublication'
    IoApibuilderApiV0ModelsGeneratorForm:
      type: object
      required:
      - service_guid
      - generator
      properties:
        service_guid:
          type: string
          format: uuid
        generator:
          $ref: '#/components/schemas/IoApibuilderGeneratorV0ModelsGenerator'
    IoApibuilderApiV0ModelsUserForm:
      type: object
      required:
      - email
      - password
      properties:
        email:
          type: string
        password:
          type: string
        nickname:
          description: Defaults to a unique identifier based on email address
          type: string
        name:
          type: string
    IoApibuilderApiV0ModelsAuthentication:
      description: Represents the result of a successful authorization
      type: object
      required:
      - user
      - session
      properties:
        user:
          $ref: '#/components/schemas/IoApibuilderApiV0ModelsUser'
        session:
          $ref: '#/components/schemas/IoApibuilderApiV0ModelsSession'
    IoApibuilderApiV0ModelsOriginal:
      description: Represents the original input used to create an application version
      type: object
      required:
      - type
      - data
      properties:
        type:
          $ref: '#/components/schemas/IoApibuilderApiV0EnumsOriginalType'
        data:
          type: string
    IoApibuilderApiV0ModelsValidation:
      description: Used only to validate json files - used as a resource where http
        status code defines success
      type: object
      required:
      - valid
      - errors
      properties:
        valid:
          description: If true, the json schema is valid. If false, there is at least
            one validation error.
          type: boolean
        errors:
          description: Contains any validation errors that result from parsing the
            json document. If empty, the document is valid.
          type: array
          items:
            type: string
    IoApibuilderApiV0ModelsChange:
      description: Represents a single change from one version of a service to another
      type: object
      required:
      - guid
      - organization
      - application
      - from_version
      - to_version
      - diff
      - changed_at
      - changed_by
      - audit
      properties:
        guid:
          type: string
          format: uuid
        organization:
          $ref: '#/components/schemas/IoApibuilderCommonV0ModelsReference'
        application:
          $ref: '#/components/schemas/IoApibuilderCommonV0ModelsReference'
        from_version:
          $ref: '#/components/schemas/IoApibuilderApiV0ModelsChangeVersion'
        to_version:
          $ref: '#/components/schemas/IoApibuilderApiV0ModelsChangeVersion'
        diff:
          $ref: '#/components/schemas/IoApibuilderApiV0UnionsDiff'
        changed_at:
          description: Records the timestamp of when the actual change occurred (vs.
            when we created the changed record)
          type: string
          format: date-time
        changed_by:
          $ref: '#/components/schemas/IoApibuilderApiV0ModelsUserSummary'
          description: Records who made the actual change
        audit:
          $ref: '#/components/schemas/IoApibuilderCommonV0ModelsAudit'
    IoApibuilderApiV0ModelsEmailVerificationConfirmationForm:
      description: Data used to confirm an email address. The token is an internal
        unique identifier used to lookup the specific email address and user account
        for which we sent an email verification email.
      type: object
      required:
      - token
      properties:
        token:
          type: string
    IoApibuilderApiV0ModelsWatchForm:
      type: object
      required:
      - user_guid
      - organization_key
      - application_key
      properties:
        user_guid:
          type: string
          format: uuid
        organization_key:
          type: string
        application_key:
          type: string
    IoApibuilderApiV0ModelsAttributeForm:
      type: object
      required:
      - name
      properties:
        name:
          type: string
        description:
          type: string
    IoApibuilderApiV0ModelsMembershipRequest:
      description: A membership request represents a user requesting to join an organization
        with a specific role (e.g. as a member or an admin). Membership requests can
        be reviewed by any current admin of the organization who can either accept
        or decline the request.
      type: object
      required:
      - guid
      - user
      - organization
      - role
      - audit
      properties:
        guid:
          description: Internal unique identifier for this membership request.
          type: string
          format: uuid
        user:
          $ref: '#/components/schemas/IoApibuilderApiV0ModelsUser'
        organization:
          $ref: '#/components/schemas/IoApibuilderApiV0ModelsOrganization'
        role:
          description: The requested role for membership to this organization. Typically
            member or admin.
          example: member
          type: string
        audit:
          $ref: '#/components/schemas/IoApibuilderCommonV0ModelsAudit'
    IoApibuilderApiV0ModelsPasswordReset:
      description: Allows a user to change their password with authentication from
        a token.
      type: object
      required:
      - token
      - password
      properties:
        token:
          description: Unique one time use token to change a password
          type: string
        password:
          type: string
    IoApibuilderApiV0ModelsSession:
      description: Represents a user sessions (e.g. user logged into site)
      type: object
      required:
      - id
      - expires_at
      properties:
        id:
          description: Cryptographically secure session id
          type: string
        expires_at:
          type: string
          format: date-time
    IoApibuilderApiV0ModelsUserSummary:
      description: Summary of a user sufficient for display
      type: object
      required:
      - guid
      - nickname
      properties:
        guid:
          type: string
          format: uuid
        nickname:
          type: string
    IoApibuilderApiV0ModelsVersion:
      description: Represents a unique version of the application.
      type: object
      required:
      - guid
      - organization
      - application
      - version
      - service
      - audit
      properties:
        guid:
          description: Internal unique identifier for this version.
          type: string
          format: uuid
        organization:
          $ref: '#/components/schemas/IoApibuilderCommonV0ModelsReference'
        application:
          $ref: '#/components/schemas/IoApibuilderCommonV0ModelsReference'
        version:
          description: The tag for this version. Can be anything, but if semver style
            version number is used, we automatically correctly sort by version number
            to find latest. Otherwise latest version is considered to be the most
            recently created.
          example: 1.0.0
          type: string
        original:
          $ref: '#/components/schemas/IoApibuilderApiV0ModelsOriginal'
          description: The original uploaded file describing this version, if available
        service:
          $ref: '#/components/schemas/IoApibuilderSpecV0ModelsService'
          description: spec/spec.json description of this API
        audit:
          $ref: '#/components/schemas/IoApibuilderCommonV0ModelsAudit'
    IoApibuilderApiV0ModelsSubscription:
      description: Represents a user that is currently subscribed to a publication
      type: object
      required:
      - guid
      - organization
      - user
      - publication
      - audit
      properties:
        guid:
          description: Internal unique identifier for this subscription record
          type: string
          format: uuid
        organization:
          $ref: '#/components/schemas/IoApibuilderApiV0ModelsOrganization'
        user:
          $ref: '#/components/schemas/IoApibuilderApiV0ModelsUser'
        publication:
          $ref: '#/components/schemas/IoApibuilderApiV0EnumsPublication'
        audit:
          $ref: '#/components/schemas/IoApibuilderCommonV0ModelsAudit'
    IoApibuilderApiV0ModelsDiffBreaking:
      description: Represents a single breaking diff of an application version. A
        breaking diff indicates that it is possible for an existing client to now
        experience an error or invalid data due to the diff.
      type: object
      required:
      - description
      properties:
        description:
          example: 'model removed: user'
          type: string
    IoApibuilderApiV0ModelsItem:
      description: When searching for content, the results of the search will be a
        list of items. Each item will have enough information to render for the user,
        including a type and item_guid to enable creating the appropriate link.
      type: object
      required:
      - guid
      - detail
      - label
      properties:
        guid:
          description: Unique identifer for this item. By using a UUID, you can combine
            with the type to figure out the URI for the resource
          type: string
          format: uuid
        detail:
          $ref: '#/components/schemas/IoApibuilderApiV0UnionsItemDetail'
        label:
          type: string
        description:
          type: string
    IoApibuilderApiV0ModelsDomain:
      description: Represents a single domain name (e.g. www.apibuilder.io). When
        a new user registers and confirms their email, we automatically associate
        that user with a member of the organization associated with their domain.
        For example, if you confirm your account with an email address of example@somedomain.com,
        we will automatically create a membership request on your behalf to join the
        organization with domain somedomain.com.
      type: object
      required:
      - name
      properties:
        name:
          description: The domain name
          example: www.apibuilder.io
          type: string
    IoApibuilderApiV0ModelsCleartextToken:
      description: Separate resource used only for the few actions that require the
        full token.
      type: object
      required:
      - token
      properties:
        token:
          description: The actual token. Guaranteed to be globally unique.
          type: string
    IoApibuilderApiV0ModelsToken:
      description: A token gives a user access to the API.
      type: object
      required:
      - guid
      - user
      - masked_token
      - audit
      properties:
        guid:
          description: Internal unique identifier for this token.
          type: string
          format: uuid
        user:
          $ref: '#/components/schemas/IoApibuilderApiV0ModelsUser'
          description: The user to which this token belongs.
        masked_token:
          description: The masked from of the token.
          type: string
        description:
          description: optional description to help the user manage the token.
          type: string
        audit:
          $ref: '#/components/schemas/IoApibuilderCommonV0ModelsAudit'
    IoApibuilderApiV0ModelsApplicationSummary:
      description: Summary of an application sufficient for display and links
      type: object
      required:
      - guid
      - organization
      - key
      properties:
        guid:
          type: string
          format: uuid
        organization:
          $ref: '#/components/schemas/IoApibuilderCommonV0ModelsReference'
        key:
          type: string
    IoApibuilderApiV0ModelsOrganization:
      description: An organization is used to group a set of applications together.
      type: object
      required:
      - guid
      - key
      - name
      - namespace
      - visibility
      - domains
      - audit
      properties:
        guid:
          description: Internal unique identifier for this organization.
          type: string
          format: uuid
        key:
          description: Used as a unique key in the URL path. Key is automatically
            derived from the organization name.
          type: string
        name:
          description: The name of this organization.
          type: string
        namespace:
          description: Global namespace for this organization.
          example: io.apicollective
          type: string
        visibility:
          $ref: '#/components/schemas/IoApibuilderApiV0EnumsVisibility'
        domains:
          type: array
          items:
            $ref: '#/components/schemas/IoApibuilderApiV0ModelsDomain'
        audit:
          $ref: '#/components/schemas/IoApibuilderCommonV0ModelsAudit'
    IoApibuilderApiV0ModelsAttributeSummary:
      type: object
      required:
      - guid
      - name
      properties:
        guid:
          description: Internal unique identifier for this attribute.
          type: string
          format: uuid
        name:
          description: The name of the attribute. Globally unique and an 'identifier'
            (lower case, url safe, etc.)
          type: string
    IoApibuilderApiV0ModelsPasswordResetRequest:
      description: Create a password reset request - e.g. an email containing a one
        time URL to change a password
      type: object
      required:
      - email
      properties:
        email:
          description: The email address for which we generate the password reset.
          type: string
    IoApibuilderApiV0ModelsAttribute:
      description: Attributes are globally unique key which allow users to specify
        additional content to pass in to the code generators.
      type: object
      required:
      - guid
      - name
      - audit
      properties:
        guid:
          description: Internal unique identifier for this attribute.
          type: string
          format: uuid
        name:
          description: The name of the attribute. Globally unique and an 'identifier'
            (lower case, url safe, etc.)
          type: string
        description:
          description: Optional description - a good description here will indicate
            which code generators it applies to and what effect it will have on those
            code generators.
          type: string
        audit:
          $ref: '#/components/schemas/IoApibuilderCommonV0ModelsAudit'
    IoApibuilderApiV0ModelsGeneratorService:
      description: Defines a service that provides one or more code generators
      type: object
      required:
      - guid
      - uri
      - audit
      properties:
        guid:
          type: string
          format: uuid
        uri:
          type: string
        audit:
          $ref: '#/components/schemas/IoApibuilderCommonV0ModelsAudit'
    IoApibuilderApiV0ModelsUserUpdateForm:
      type: object
      required:
      - email
      - nickname
      properties:
        email:
          type: string
        nickname:
          type: string
        name:
          type: string
    IoApibuilderApiV0ModelsAttributeValueForm:
      type: object
      required:
      - value
      properties:
        value:
          type: string
    IoApibuilderApiV0ModelsApplicationForm:
      type: object
      required:
      - name
      - visibility
      properties:
        name:
          type: string
        key:
          description: Defaults to a key generated from the application name
          type: string
        description:
          type: string
        visibility:
          $ref: '#/components/schemas/IoApibuilderApiV0EnumsVisibility'
    IoApibuilderApiV0ModelsGeneratorWithService:
      description: Wraps a service and a generator providing easier access for applications.
      type: object
      required:
      - service
      - generator
      properties:
        service:
          $ref: '#/components/schemas/IoApibuilderApiV0ModelsGeneratorService'
        generator:
          $ref: '#/components/schemas/IoApibuilderGeneratorV0ModelsGenerator'
    IoApibuilderApiV0ModelsWatch:
      description: Users can watch individual applications which enables features
        like receiving an email notification when there is a new version of an application.
      type: object
      required:
      - guid
      - user
      - organization
      - application
      - audit
      properties:
        guid:
          description: Internal unique identifier for this watch
          type: string
          format: uuid
        user:
          $ref: '#/components/schemas/IoApibuilderApiV0ModelsUser'
        organization:
          $ref: '#/components/schemas/IoApibuilderApiV0ModelsOrganization'
        application:
          $ref: '#/components/schemas/IoApibuilderApiV0ModelsApplication'
        audit:
          $ref: '#/components/schemas/IoApibuilderCommonV0ModelsAudit'
    IoApibuilderApiV0ModelsOrganizationForm:
      type: object
      required:
      - name
      - namespace
      - visibility
      properties:
        name:
          type: string
        key:
          description: Defaults to a url friendy version of the name
          type: string
        namespace:
          description: Global namespace for this organization.
          example: io.apicollective
          type: string
        visibility:
          $ref: '#/components/schemas/IoApibuilderApiV0EnumsVisibility'
          description: Public organizations will be listed in apibuilder directory.
            Organizations with visibility organization will only be visible to members
            of that org.
        domains:
          example: apibuilder.io
          type: array
          items:
            type: string
    IoApibuilderApiV0ModelsError:
      type: object
      required:
      - code
      - message
      properties:
        code:
          description: Machine readable code for this specific error message
          type: string
        message:
          description: Description of the error
          type: string
    IoApibuilderSpecV0EnumsParameterLocation:
      type: string
      enum:
      - Path
      - Query
      - Form
      - Header
    IoApibuilderSpecV0EnumsResponseCodeOption:
      type: string
      enum:
      - Default
    IoApibuilderSpecV0EnumsMethod:
      type: string
      enum:
      - GET
      - POST
      - PUT
      - PATCH
      - DELETE
      - HEAD
      - CONNECT
      - OPTIONS
      - TRACE
    IoApibuilderApiV0EnumsPublication:
      description: A publication represents something that a user can subscribe to.
        An example would be subscribing to an email alert whenever a new version of
        an application is created.
      type: string
      enum:
      - membership_requests.create
      - memberships.create
      - applications.create
      - versions.create
    IoApibuilderApiV0EnumsOriginalType:
      type: string
      enum:
      - api_json
      - avro_idl
      - service_json
      - swagger
    IoApibuilderApiV0EnumsVisibility:
      description: Controls who is able to view this version
      type: string
      enum:
      - user
      - organization
      - public
    IoApibuilderSpecV0UnionsResponseCode:
      oneOf:
      - $ref: '#/components/schemas/Integer'
      - $ref: '#/components/schemas/IoApibuilderSpecV0EnumsResponseCodeOption'
    IoApibuilderApiV0UnionsDiff:
      description: Represents a single diff in an application
      oneOf:
      - $ref: '#/components/schemas/IoApibuilderApiV0ModelsDiffBreaking'
      - $ref: '#/components/schemas/IoApibuilderApiV0ModelsDiffNonBreaking'
    IoApibuilderApiV0UnionsItemDetail:
      description: Identifies the specific type of item that was indexed by search
      oneOf:
      - $ref: '#/components/schemas/IoApibuilderApiV0ModelsApplicationSummary'
