swagger: '2.0'

info:
  version: "2.0.0"
  title: MailHog API

paths:
  /api/v2/messages:
    get:
      description: |
        Retrieve a list of messages
      parameters:
        -
          name: start
          in: query
          description: Start index
          required: false
          type: number
          format: int64
          default: 0
        -
          name: limit
          in: query
          description: Number of messages
          required: false
          type: number
          format: int64
          default: 50
      responses:
        200:
          description: Successful response
          schema:
            title: Messages
            type: object
            properties:
              total:
                type: number
                format: int64
                description: Total number of stored messages
              start:
                type: number
                format: int64
                description: Start index of first returned message
              count:
                type: number
                format: int64
                description: Number of returned messages
              messages:
                type: array
                items:
                  title: Message
                  type: object
                  properties:
                    id:
                      type: string
                    from:
                      title: Path
                      type: object
                      properties:
                        relays:
                          type: array
                          items:
                            type: string
                        mailbox:
                          type: string
                        domain:
                          type: string
                        params:
                          type: string
                    to:
                      type: array
                      items:
                        title: Path
                        type: object
                        properties:
                          relays:
                            type: array
                            items:
                              type: string
                          mailbox:
                            type: string
                          domain:
                            type: string
                          params:
                            type: string
                    headers:
                      type: object
                    size:
                      type: number
                      format: int64
                    created:
                      type: string
                      format: date-time
  /api/v2/search:
    get:
      description: |
        Search messages
      parameters:
        -
          name: kind
          in: query
          description: Kind of search
          required: true
          type: string
          enum: [ from, to, containing ]
        -
          name: start
          in: query
          description: Start index
          required: false
          type: number
          format: int64
          default: 0
        -
          name: limit
          in: query
          description: Number of messages
          required: false
          type: number
          format: int64
          default: 50
      responses:
        200:
          description: Successful response
          schema:
            title: Messages
            type: object
            properties:
              total:
                type: number
                format: int64
                description: Total number of stored messages
              start:
                type: number
                format: int64
                description: Start index of first returned message
              count:
                type: number
                format: int64
                description: Number of returned messages
              messages:
                type: array
                items:
                  title: Message
                  type: object
                  properties:
                    id:
                      type: string
                    from:
                      title: Path
                      type: object
                      properties:
                        relays:
                          type: array
                          items:
                            type: string
                        mailbox:
                          type: string
                        domain:
                          type: string
                        params:
                          type: string
                    to:
                      type: array
                      items:
                        title: Path
                        type: object
                        properties:
                          relays:
                            type: array
                            items:
                              type: string
                          mailbox:
                            type: string
                          domain:
                            type: string
                          params:
                            type: string
                    headers:
                      type: object
                    size:
                      type: number
                      format: int64
                    created:
                      type: string
                      format: date-time