openapi: 3.0.0
info:
  title:  Various ways to upload files (binary content)
  version: 1.0.0
paths:
  /upload-single-file:
    post:
      tags:
        - File Upload
      summary: Uploads single file using form-data
      description: |
        ```yaml
        /upload-single-file:
          post:
            summary: Uploads single file using form-data
            requestBody:
              content:
                multipart/form-data:
                  schema:
                    type: object
                    properties:
                      filename:
                        type: string
                        format: binary      
        ```
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                name:
                  type: string
                photo:
                  type: string
                  format: binary      
      responses:
        '200':
          summary: OK                    

  /upload-multiple-file:
    post:
      tags:
        - File Upload
      summary: Uploads multiple file using form-data and type as 'array'
      description: |
        ```yaml
        /upload-multiple-file:
          post:
            summary: Uploads multiple file using form-data and type as 'array'
            requestBody:
              content:
                multipart/form-data:
                  schema:
                    type: object
                    properties:
                      filename:
                        type: array
                        items:
                          type: string
                          format: binary      
        ```
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                name:
                  type: string
                picture:
                  type: array
                  items:
                    type: string
                    format: binary      
      responses:
        '200':
          description: OK                    

  /upload-using-request-body:  
    post:
      tags:
        - File Upload
      summary: Uploads single file using request-body content-type as application/octet-stream
      description: |
        ```yaml
        /upload-using-request-body:
          post:
            summary: Uploads single file using request-body content-type as application/octet-stream
            requestBody:
              content:
                application/octet-stream:
                  schema:
                    type: string
                    format: binary
        ```
      requestBody:
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '200':
          description: successful operation
