openapi: 3.0.3
info:
  title: deepobject-test
  version: 1.0.0
paths:
  /test:
    get:
      operationId: test
      parameters:
        - name: options
          in: query
          required: false
          style: deepObject
          schema:
            $ref: '#/components/schemas/Pet'
          explode: true
        - name: inputOptions
          in: query
          required: false
          style: deepObject
          schema:
            $ref: '#/components/schemas/Options'
          explode: true
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: string
    post:
      operationId: test_post
      parameters:
        - name: query_object
          in: query
          required: false
          style: form
          schema:
            $ref: '#/components/schemas/Pet'
          explode: true
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: string
components:
  schemas:
    Options:
      type: object
      properties:
        a:
          nullable: true
          type: string
          format: date-time
        b:
          type: string
          nullable: true
          format: date-time
        c:
          type: array
          items:
            type: string
    Category:
      type: object
      properties:
        id:
          type: integer
          format: int64
          example: 1
        name:
          type: string
          example: Dogs
      xml:
        name: category
    Tag:
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
      xml:
        name: tag
    Pet:
      required:
        - name
        - photoUrls
      type: object
      properties:
        id:
          type: integer
          format: int64
          example: 10
        name:
          type: string
          example: doggie
        category:
          $ref: '#/components/schemas/Category'
        photoUrls:
          type: array
          xml:
            wrapped: true
          items:
            type: string
            xml:
              name: photoUrl
        tags:
          type: array
          xml:
            wrapped: true
          items:
            $ref: '#/components/schemas/Tag'
        status:
          type: string
          description: pet status in the store
          enum:
            - available
            - pending
            - sold
      xml:
        name: pet
