openapi: 3.0.3
info:
  title: bml-gen-test-application
  version: 0.0.2
paths:
  /accounts:
    get:
      description: A mock to test returning a raw array. This is not a practical method
        to implement in a production environment. In production you would return a
        page object but here we want to test to ensure generators are handling raw
        array return value.
      parameters:
      - name: Authorization
        in: header
        description: Standard Auth header pass a JWT token.
        required: true
        schema:
          type: string
      - name: name
        in: query
        description: An optional test query parameter.
        required: false
        schema:
          type: string
      - name: page
        in: query
        description: An optional test query parameter.
        required: true
        schema:
          type: integer
          format: int32
      - name: count
        in: query
        description: An optional test query parameter.
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OrgBmlBmlGenTestApplicationV0ModelsAccount'
        '400':
          description: Bad Request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrgBmlValidationV0ModelsFieldValidationResponse'
        '401':
          description: Unauthorized.
        '404':
          description: Not Found.
    post:
      parameters:
      - name: Authorization
        in: header
        description: Standard Auth header pass a JWT token.
        required: true
        schema:
          type: string
      - name: test
        in: query
        description: is this call a test
        required: false
        schema:
          type: boolean
      - name: testDefault
        in: query
        description: is this call a test
        required: true
        schema:
          type: boolean
      requestBody:
        description: The account form for creating a new account resource.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrgBmlBmlGenTestApplicationV0ModelsAccountForm'
        required: true
      responses:
        '201':
          description: Created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrgBmlBmlGenTestApplicationV0ModelsAccount'
        '409':
          description: Conflict Already Exists.
        '400':
          description: Bad Request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrgBmlValidationV0ModelsFieldValidationResponse'
        '401':
          description: Unauthorized.
  /accounts/{id}:
    get:
      parameters:
      - name: id
        in: path
        description: The Universally Unique Identifier for an existing account resource.
          See RFC 4122
        required: true
        schema:
          type: string
          format: uuid
      - name: Authorization
        in: header
        description: Standard Auth header pass a JWT token.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrgBmlBmlGenTestApplicationV0ModelsAccount'
        '400':
          description: Bad Request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrgBmlValidationV0ModelsFieldValidationResponse'
        '401':
          description: Unauthorized.
        '404':
          description: Not Found.
    delete:
      description: Delete an Account resource by id.
      parameters:
      - name: id
        in: path
        description: The Universally Unique Identifier for an existing account resource.
          See RFC 4122
        required: true
        schema:
          type: string
          format: uuid
      - name: Authorization
        in: header
        description: Standard Auth header pass a JWT token.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrgBmlBmlGenTestApplicationV0ModelsAccount'
        '400':
          description: Bad Request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrgBmlValidationV0ModelsFieldValidationResponse'
        '401':
          description: Unauthorized.
        '404':
          description: Not Found.
  /accounts/{id}/foo:
    get:
      description: A mock to test returning a raw array. This is not a practical method
        to implement in a production environment. In production you would return a
        page object but here we want to test to ensure generators are handling raw
        array return value.
      parameters:
      - name: id
        in: path
        description: The Universally Unique Identifier for an existing account resource.
          See RFC 4122
        required: true
        schema:
          type: string
          format: uuid
      - name: Authorization
        in: header
        description: Standard Auth header pass a JWT token.
        required: true
        schema:
          type: string
      - name: name
        in: query
        description: An optional test query parameter.
        required: false
        schema:
          type: string
      - name: page
        in: query
        description: An optional test query parameter.
        required: true
        schema:
          type: integer
          format: int32
      - name: count
        in: query
        description: An optional test query parameter.
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OrgBmlBmlGenTestApplicationV0ModelsAccount'
        '400':
          description: Bad Request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrgBmlValidationV0ModelsFieldValidationResponse'
        '401':
          description: Unauthorized.
        '404':
          description: Not Found.
components:
  schemas:
    OrgBmlBmlGenTestApplicationV0ModelsHealthcheck:
      description: A response model for the standard health check resource.
      type: object
      required:
      - status
      properties:
        status:
          description: A general status string.
          example: healthy
          type: string
          maxLength: 1024
          minLength: 1
    OrgBmlBmlGenTestApplicationV0ModelsAccountForm:
      description: A form used for creating an Account resource.
      type: object
      required:
      - name
      - enabled
      properties:
        name:
          description: A unique human readable string name.
          example: Universal Remonster Ltd.
          type: string
          maxLength: 255
          minLength: 1
        enabled:
          description: Adds the ability to enable / disable this resource.
          type: boolean
    OrgBmlBmlGenTestApplicationV0ModelsClient:
      description: A model client for testing generation.
      type: object
      required:
      - accounts
      properties:
        accounts:
          description: test field to make sure non empty lists are non empty in generated
            mock factories.
          type: array
          maxItems: 3
          items:
            $ref: '#/components/schemas/OrgBmlBmlGenTestApplicationV0ModelsAccount'
    OrgBmlBmlGenTestApplicationV0ModelsAccount:
      description: This is the top level in the system. It represents a specific client.
      type: object
      required:
      - id
      - awsAccount
      - name
      - enabled
      properties:
        id:
          description: The Universally Unique Identifier. See RFC 4122.
          type: string
          format: uuid
        awsAccount:
          description: Test param for a pattern restricted string.
          type: string
          maxLength: 255
          minLength: 1
        name:
          description: A unique human readable string name.
          example: Universal Remonster Ltd
          type: string
          maxLength: 255
          minLength: 1
        enabled:
          description: Adds the ability to enable / disable this resource.
          type: boolean
    OrgBmlValidationV0ModelsFieldValidationError:
      description: Error description object for a single field.
      type: object
      required:
      - path
      - message
      properties:
        path:
          description: The object path of the field.
          example: /searches/search.query
          type: string
          maxLength: 256
          minLength: 1
        message:
          description: A user friendly error message.
          example: Query parameter 'query' exceeds parameter maximum length of 512
            characters.
          type: string
          maxLength: 512
          minLength: 1
    OrgBmlValidationV0ModelsFieldValidationResponse:
      description: A response object for field validation errors.
      type: object
      required:
      - status
      - message
      - errors
      properties:
        status:
          description: The response status.
          type: integer
          format: int32
          minimum: 100
          maximum: 599
        message:
          description: The response message.
          type: string
          maxLength: 512
          minLength: 1
        errors:
          description: A set of field validation errors.
          type: array
          maxItems: 32
          items:
            $ref: '#/components/schemas/OrgBmlValidationV0ModelsFieldValidationError'
    OrgBmlBmlGenTestApplicationV0EnumsTestEnumeration:
      description: Test Enumeration provides a useful test for enumeration based code
        generation.
      type: string
      enum:
      - foo
      - bar
