---
swagger: "2.0"
info:
  version: "0.1.0"
  title: reference analysis

parameters:
  someParam:
    name: someParam
    in: body
    schema:
      type: object
      properties:
        createdAt:
          type: string
          format: date-time
responses:
  someResponse:
    schema:
      type: object
      properties:
        createdAt:
          type: string
          format: date-time
paths:
  "/some/where/{id}":
    parameters:
      - name: id
        in: path
        type: integer
        format: int32

      - name: bodyId
        in: body
        schema:
          type: object
          properties:
            createdAt:
              type: string
              format: date-time
    post:
      responses:
        default:
          description: all good
    get:
      parameters:
      - name: limit
        in: query
        type: integer
        format: int32
        required: false
      - name: other
        in: query
        type: array
        items:
          type: object
          properties:
            id:
              type: integer
              format: int64
      - name: body
        in: body
        schema:
          type: object
          properties:
            createdAt:
              type: string
              format: date-time
      responses:
        default:
          schema:
            type: object
            properties:
              createdAt:
                type: string
                format: date-time
        404:
          schema:
            $ref: "errors.yml#/error"
        200:
          schema:
            type: object
            properties:
              id:
                type: integer
                format: int64
              value:
                type: string
  "/other/place":
    $ref: "external/pathItem.yml"

definitions:
  namedAgain:
    type: object
    properties:
      id:
        type: integer
        format: int64

  datedTag:
    allOf:
      - type: string
        format: date
      - type: object
    properties:
      id:
        type: integer
        format: int64
      value:
        type: string
  
  records:
    type: array
    items:
      - type: object
        properties:
          createdAt:
            type: string
            format: date-time

  datedRecords:
    type: array
    items:
      - type: string
        format: date-time
      - type: object
        properties:
          createdAt:
            type: string
            format: date-time

  datedTaggedRecords:
    type: array
    items:
      - type: string
        format: date-time
      - type: object
        properties:
          createdAt:
            type: string
            format: date-time
    additionalItems:
      type: object
      properties:
        id:
          type: integer
          format: int64
        value:
          type: string
    
  otherRecords:
    type: array
    items:
      type: object
      properties:
        createdAt:
          type: string
          format: date-time
  
  tags:
    type: object
    additionalProperties:
      type: object
      properties:
        id:
          type: integer
          format: int64
        value:
          type: string

  namedThing:
    type: object
    properties:
      name:
        type: object
        properties:
          id:
            type: integer
            format: int64

  # depth first should have this at the bottom, it's just a very long name
  pneumonoultramicroscopicsilicovolcanoconiosisAntidisestablishmentarianism:
    type: object
    properties:
      floccinaucinihilipilificationCreatedAt:
        type: integer
        format: int64
