openapi: "3.0.0"
info:
  title: Example API
  version: "3.0.0"
paths:
  /:
    get:
      summary: Empty Route
      responses:
        "200":
          description: Good Request.
          content:
            application/json:
              schema:
                type: array
                uniqueItems: true
                items:
                  $ref: '#/components/schemas/ModelWithArrayProperty'
        "400":
          description: Bad Request.
        "403":
          description: Forbidden. Access denied.

components:
  schemas:
    ModelWithSetProperty:
      type: object
      properties:
        id:
          type: string
        set_property:
          type: array
          uniqueItems: true
          items:
            $ref: '#/components/schemas/SimpleModel'
    ModelWithArrayProperty:
      type: object
      properties:
        id:
          type: string
        array_property:
          type: array
          items:
            $ref: '#/components/schemas/SimpleModel'
    ModelWithMapProperty:
      type: object
      properties:
        id:
          type: string
        map_property:
          additionalProperties:
            $ref: '#/components/schemas/SimpleModel'
    SimpleModel:
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
      required:
        - name
      example:
        name: Puma
        id: 1
