---
swagger: "2.0"
info:
  description: Public API for mluvii
  version: v1
  title: mluvii public api
  contact:
    name: mluvii
    email: info@mluvii.com
basePath: /
schemes:
- https
consumes:
- application/json
produces:
- application/json
paths:
  /api/v1/Contacts/{id}/anonymize:
    post:
      tags:
      - Contacts
      summary: "Anonymizes contact's identity.\r\nAnonymizes all sessions with that identity id."
      operationId: ApiV1ContactsByIdAnonymizePost
      parameters:
      - name: id
        in: path
        description: Identity id
        required: true
        type: integer
        format: int64
      security:
      - OpenIDConnect:
        - openid
        - mluviiMembership
        - roles
        - mluviiPublicApi
      - ClientCredentials:
        - mluviiPublicApi
      responses:
        "204":
          description: Success
        "400":
          description: Bad Request
          schema:
            type: object
            additionalProperties:
              type: string
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-swagger-router-controller: contacts
  /api/v1/EmailMessages/{id}:
    get:
      tags:
      - EmailMessages
      summary: Retrieves e-mail message by ID
      operationId: ApiV1EmailMessagesByIdGet
      parameters:
      - name: id
        in: path
        description: E-mail message ID
        required: true
        type: integer
        format: int64
      security:
      - OpenIDConnect:
        - openid
        - mluviiMembership
        - roles
        - mluviiPublicApi
      - ClientCredentials:
        - mluviiPublicApi
      responses:
        "200":
          description: Success
          schema:
            $ref: '#/definitions/PublicApi.Email.Models.EmailMessageModel'
        "400":
          description: Bad Request
          schema:
            type: object
            additionalProperties:
              type: string
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: E-mail message ID not found.
      x-swagger-router-controller: emailmessages
  /api/v1/EmailMessages:
    get:
      tags:
      - EmailMessages
      operationId: ApiV1EmailMessagesGet
      parameters:
      - name: MessageId
        in: query
        required: false
        type: array
        items:
          type: integer
          format: int64
        collectionFormat: multi
      - name: Client.Null
        in: query
        required: false
        type: boolean
      - name: Client.Text
        in: query
        required: false
        type: string
      - name: Client.Exact
        in: query
        required: false
        type: boolean
      - name: Inbox
        in: query
        required: false
        type: array
        items:
          type: string
        collectionFormat: multi
      - name: ThreadId
        in: query
        required: false
        type: array
        items:
          type: integer
          format: int64
        collectionFormat: multi
      - name: Subject.Null
        in: query
        required: false
        type: boolean
      - name: Subject.Text
        in: query
        required: false
        type: string
      - name: Subject.Exact
        in: query
        required: false
        type: boolean
      - name: Created.Null
        in: query
        required: false
        type: boolean
      - name: Created.Min
        in: query
        required: false
        type: string
        format: date-time
      - name: Created.Max
        in: query
        required: false
        type: string
        format: date-time
      - name: SLAExpires.Null
        in: query
        required: false
        type: boolean
      - name: SLAExpires.Min
        in: query
        required: false
        type: string
        format: date-time
      - name: SLAExpires.Max
        in: query
        required: false
        type: string
        format: date-time
      - name: Processed.Null
        in: query
        required: false
        type: boolean
      - name: Processed.Min
        in: query
        required: false
        type: string
        format: date-time
      - name: Processed.Max
        in: query
        required: false
        type: string
        format: date-time
      - name: OperatorUserId
        in: query
        required: false
        type: array
        items:
          type: integer
          format: int64
        collectionFormat: multi
      - name: Status
        in: query
        required: false
        type: array
        items:
          type: string
          enum:
          - WaitingToSend
          - Sending
          - FailedToSend
          - Sent
          - WaitingToRetrySending
          - Received
          - DidNotAnswer
        collectionFormat: multi
      - name: HasAttachment
        in: query
        required: false
        type: boolean
      - name: BodyContain
        in: query
        required: false
        type: string
      - name: offset
        in: query
        description: Skip rows (for paging)
        required: false
        type: integer
        format: int32
      - name: limit
        in: query
        description: Default value is 1000
        required: false
        type: integer
        format: int32
      security:
      - OpenIDConnect:
        - openid
        - mluviiMembership
        - roles
        - mluviiPublicApi
      - ClientCredentials:
        - mluviiPublicApi
      responses:
        "200":
          description: Success
          schema:
            type: array
            items:
              $ref: '#/definitions/PublicApi.Email.Models.EmailMessageModel'
        "400":
          description: Bad Request
          schema:
            type: object
            additionalProperties:
              type: string
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-swagger-router-controller: emailmessages
  /api/v1/EmailThreads/{id}:
    get:
      tags:
      - EmailThreads
      summary: Retrieves e-mail thread by ID
      operationId: ApiV1EmailThreadsByIdGet
      parameters:
      - name: id
        in: path
        description: E-mail thread ID
        required: true
        type: integer
        format: int64
      security:
      - OpenIDConnect:
        - openid
        - mluviiMembership
        - roles
        - mluviiPublicApi
      - ClientCredentials:
        - mluviiPublicApi
      responses:
        "200":
          description: Success
          schema:
            $ref: '#/definitions/PublicApi.Email.Models.EmailThreadModel'
        "400":
          description: Bad Request
          schema:
            type: object
            additionalProperties:
              type: string
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: E-mail thread ID not found.
      x-swagger-router-controller: emailthreads
  /api/v1/EmailThreads:
    get:
      tags:
      - EmailThreads
      operationId: ApiV1EmailThreadsGet
      parameters:
      - name: ThreadId
        in: query
        required: false
        type: array
        items:
          type: integer
          format: int64
        collectionFormat: multi
      - name: State
        in: query
        required: false
        type: array
        items:
          type: string
          enum:
          - InQueue
          - Waiting
          - Accepted
          - SentToClient
          - DidNotAnswer
        collectionFormat: multi
      - name: Client.Null
        in: query
        required: false
        type: boolean
      - name: Client.Text
        in: query
        required: false
        type: string
      - name: Client.Exact
        in: query
        required: false
        type: boolean
      - name: Inbox
        in: query
        required: false
        type: array
        items:
          type: string
        collectionFormat: multi
      - name: Subject.Null
        in: query
        required: false
        type: boolean
      - name: Subject.Text
        in: query
        required: false
        type: string
      - name: Subject.Exact
        in: query
        required: false
        type: boolean
      - name: Created.Null
        in: query
        required: false
        type: boolean
      - name: Created.Min
        in: query
        required: false
        type: string
        format: date-time
      - name: Created.Max
        in: query
        required: false
        type: string
        format: date-time
      - name: Initiator
        in: query
        required: false
        type: array
        items:
          type: string
          enum:
          - Client
          - Operator
        collectionFormat: multi
      - name: MessageCount
        in: query
        required: false
        type: array
        items:
          type: integer
          format: int64
        collectionFormat: multi
      - name: LastClientMessage.Null
        in: query
        required: false
        type: boolean
      - name: LastClientMessage.Min
        in: query
        required: false
        type: string
        format: date-time
      - name: LastClientMessage.Max
        in: query
        required: false
        type: string
        format: date-time
      - name: LastOperatorMessage.Null
        in: query
        required: false
        type: boolean
      - name: LastOperatorMessage.Min
        in: query
        required: false
        type: string
        format: date-time
      - name: LastOperatorMessage.Max
        in: query
        required: false
        type: string
        format: date-time
      - name: OperatorUserId
        in: query
        required: false
        type: array
        items:
          type: integer
          format: int32
        collectionFormat: multi
      - name: HasAttachment
        in: query
        required: false
        type: boolean
      - name: AutoReplySent
        in: query
        required: false
        type: boolean
      - name: Tags
        in: query
        required: false
        type: array
        items:
          type: string
        collectionFormat: multi
      - name: offset
        in: query
        description: Skip rows (for paging)
        required: false
        type: integer
        format: int32
      - name: limit
        in: query
        description: Default value is 1000
        required: false
        type: integer
        format: int32
      security:
      - OpenIDConnect:
        - openid
        - mluviiMembership
        - roles
        - mluviiPublicApi
      - ClientCredentials:
        - mluviiPublicApi
      responses:
        "200":
          description: Success
          schema:
            type: array
            items:
              $ref: '#/definitions/PublicApi.Email.Models.EmailThreadModel'
        "400":
          description: Bad Request
          schema:
            type: object
            additionalProperties:
              type: string
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-swagger-router-controller: emailthreads
  /api/v1/Forms:
    get:
      tags:
      - Forms
      operationId: ApiV1FormsGet
      parameters: []
      security:
      - OpenIDConnect:
        - openid
        - mluviiMembership
        - roles
        - mluviiPublicApi
      - ClientCredentials:
        - mluviiPublicApi
      responses:
        "200":
          description: Success
          schema:
            type: array
            items:
              $ref: '#/definitions/PublicApi.Form.Models.FormModel'
        "400":
          description: Bad Request
          schema:
            type: object
            additionalProperties:
              type: string
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-swagger-router-controller: forms
  /api/v1/Guests/{id}/anonymize:
    post:
      tags:
      - Guests
      summary: "Anonymizes guest's channel identity.\r\nRemoves relation between guest's cookie and the identity id.\r\nAnonymizes all sessions with that identity id."
      operationId: ApiV1GuestsByIdAnonymizePost
      parameters:
      - name: id
        in: path
        description: Identity id
        required: true
        type: integer
        format: int64
      security:
      - OpenIDConnect:
        - openid
        - mluviiMembership
        - roles
        - mluviiPublicApi
      - ClientCredentials:
        - mluviiPublicApi
      responses:
        "204":
          description: Success
        "400":
          description: Bad Request
          schema:
            type: object
            additionalProperties:
              type: string
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-swagger-router-controller: guests
  /api/v1/Chatbot/{chatbotId}:
    put:
      tags:
      - Chatbot
      summary: Set callback url
      operationId: ApiV1ChatbotByChatbotIdPut
      parameters:
      - name: chatbotId
        in: path
        required: true
        type: integer
        format: int64
      - name: callbackUrl
        in: query
        required: false
        type: string
      security:
      - OpenIDConnect:
        - openid
        - mluviiMembership
        - roles
        - mluviiPublicApi
      - ClientCredentials:
        - mluviiPublicApi
      responses:
        "200":
          description: Success
        "400":
          description: Bad Request
          schema:
            type: object
            additionalProperties:
              type: string
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Chatbot callparam updated.
      x-swagger-router-controller: chatbot
  /api/v1/Chatbot:
    post:
      tags:
      - Chatbot
      summary: Send activity to conversation
      operationId: ApiV1ChatbotPost
      parameters:
      - name: SessionId
        in: query
        required: false
        type: string
      - name: ChannelType
        in: query
        required: false
        type: string
        enum:
        - Mluvii
        - Email
        - Phone
        - Facebook
        - WhatsApp
      - name: Activities
        in: query
        required: false
        type: array
        items: {}
        collectionFormat: multi
      - name: TimeStamp
        in: query
        required: false
        type: string
        format: date-time
      security:
      - OpenIDConnect:
        - openid
        - mluviiMembership
        - roles
        - mluviiPublicApi
      - ClientCredentials:
        - mluviiPublicApi
      responses:
        "200":
          description: Success
        "400":
          description: Bad Request
          schema:
            type: object
            additionalProperties:
              type: string
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-swagger-router-controller: chatbot
  /api/v1/Chatbot/{id}/callparams:
    get:
      tags:
      - Chatbot
      summary: Get call params by sessionID
      operationId: ApiV1ChatbotByIdCallparamsGet
      parameters:
      - name: id
        in: path
        description: Session ID
        required: true
        type: integer
        format: int64
      security:
      - OpenIDConnect:
        - openid
        - mluviiMembership
        - roles
        - mluviiPublicApi
      - ClientCredentials:
        - mluviiPublicApi
      responses:
        "200":
          description: Success
          schema:
            $ref: '#/definitions/PublicApi.SessionData.Models.CallParamsModel'
        "400":
          description: Bad Request
          schema:
            type: object
            additionalProperties:
              type: string
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Session ID not found.
      x-swagger-router-controller: chatbot
    put:
      tags:
      - Chatbot
      summary: Update call params in session
      operationId: ApiV1ChatbotByIdCallparamsPut
      parameters:
      - name: id
        in: path
        description: Session ID
        required: true
        type: integer
        format: int64
      - in: body
        name: model
        description: Model containing a dictionary of call params to update
        required: true
        schema:
          $ref: '#/definitions/PublicApi.SessionData.Models.UpdateCallParamsModel'
      security:
      - OpenIDConnect:
        - openid
        - mluviiMembership
        - roles
        - mluviiPublicApi
      - ClientCredentials:
        - mluviiPublicApi
      responses:
        "204":
          description: Success
        "400":
          description: Bad Request
          schema:
            type: object
            additionalProperties:
              type: string
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Session ID not found.
      x-swagger-router-controller: chatbot
  /api/v1/Sessions/{id}:
    get:
      tags:
      - Sessions
      summary: Retrieves session by ID
      operationId: ApiV1SessionsByIdGet
      parameters:
      - name: id
        in: path
        description: Session ID
        required: true
        type: integer
        format: int64
      security:
      - OpenIDConnect:
        - openid
        - mluviiMembership
        - roles
        - mluviiPublicApi
      - ClientCredentials:
        - mluviiPublicApi
      responses:
        "200":
          description: Success
          schema:
            $ref: '#/definitions/PublicApi.Session.Models.SessionModel'
        "400":
          description: Bad Request
          schema:
            type: object
            additionalProperties:
              type: string
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Session ID not found.
      x-swagger-router-controller: sessions
  /api/v1/Sessions:
    get:
      tags:
      - Sessions
      operationId: ApiV1SessionsGet
      parameters:
      - name: SessionId
        in: query
        required: false
        type: array
        items:
          type: integer
          format: int64
        collectionFormat: multi
      - name: DepartmentId
        in: query
        required: false
        type: array
        items:
          type: integer
          format: int32
        collectionFormat: multi
      - name: ChannelIdentityId
        in: query
        required: false
        type: array
        items:
          type: integer
          format: int64
        collectionFormat: multi
      - name: Status
        in: query
        required: false
        type: array
        items:
          type: string
          enum:
          - CREATED
          - IN_QUEUE
          - WAITING
          - ACTIVE
          - ACW
          - CLOSED
          - BLACKLISTED
        collectionFormat: multi
      - name: Channel
        in: query
        required: false
        type: array
        items:
          type: string
          enum:
          - Chat
          - AV
          - Phone
        collectionFormat: multi
      - name: Source
        in: query
        required: false
        type: array
        items:
          type: string
          enum:
          - Default
          - Callback
          - Invitation
          - ChatInvitation
          - IncomingCall
          - OutgoingCall
          - API
          - Facebook
          - WhatsApp
        collectionFormat: multi
      - name: LandingPage.Null
        in: query
        required: false
        type: boolean
      - name: LandingPage.Text
        in: query
        required: false
        type: string
      - name: LandingPage.Exact
        in: query
        required: false
        type: boolean
      - name: OperatorUserId
        in: query
        required: false
        type: array
        items:
          type: integer
          format: int32
        collectionFormat: multi
      - name: Widget
        in: query
        required: false
        type: array
        items:
          type: string
        collectionFormat: multi
      - name: Created.Null
        in: query
        required: false
        type: boolean
      - name: Created.Min
        in: query
        required: false
        type: string
        format: date-time
      - name: Created.Max
        in: query
        required: false
        type: string
        format: date-time
      - name: Accepted.Null
        in: query
        required: false
        type: boolean
      - name: Accepted.Min
        in: query
        required: false
        type: string
        format: date-time
      - name: Accepted.Max
        in: query
        required: false
        type: string
        format: date-time
      - name: Ended.Null
        in: query
        required: false
        type: boolean
      - name: Ended.Min
        in: query
        required: false
        type: string
        format: date-time
      - name: Ended.Max
        in: query
        required: false
        type: string
        format: date-time
      - name: WaitingTime.Null
        in: query
        required: false
        type: boolean
      - name: WaitingTime.Min
        in: query
        required: false
        type: string
      - name: WaitingTime.Max
        in: query
        required: false
        type: stringss
      - name: Duration.Null
        in: query
        required: false
        type: boolean
      - name: Duration.Min
        in: query
        required: false
        type: string
      - name: Duration.Max
        in: query
        required: false
        type: string
      - name: Result
        in: query
        required: false
        type: array
        items:
          type: string
        collectionFormat: multi
      - name: ClientStars
        in: query
        required: false
        type: array
        items:
          type: integer
          format: int32
        collectionFormat: multi
      - name: ClientFeedbackScale
        in: query
        required: false
        type: array
        items:
          type: string
          enum:
          - Likert
          - NPS
        collectionFormat: multi
      - name: ClientId
        in: query
        required: false
        type: array
        items:
          type: integer
          format: int64
        collectionFormat: multi
      - name: IPAddress.Null
        in: query
        required: false
        type: boolean
      - name: IPAddress.Text
        in: query
        required: false
        type: string
      - name: IPAddress.Exact
        in: query
        required: false
        type: boolean
      - name: PhoneCallbackNumber.Null
        in: query
        required: false
        type: boolean
      - name: PhoneCallbackNumber.Text
        in: query
        required: false
        type: string
      - name: PhoneCallbackNumber.Exact
        in: query
        required: false
        type: boolean
      - name: InitialMessage.Null
        in: query
        required: false
        type: boolean
      - name: InitialMessage.Text
        in: query
        required: false
        type: string
      - name: InitialMessage.Exact
        in: query
        required: false
        type: boolean
      - name: Tags
        in: query
        required: false
        type: array
        items:
          type: string
        collectionFormat: multi
      - name: GuestIdentifications
        in: query
        required: false
        type: array
        items:
          type: string
        collectionFormat: multi
      - name: Browser
        in: query
        required: false
        type: array
        items:
          type: string
          enum:
          - OTHER
          - IE_LOW
          - IE_8
          - IE_9
          - IE_10
          - IE_11
          - IE_HI
          - CHROME
          - OPERA
          - FF
          - SAFARI
          - EDGE
          - CHROMIUM_EDGE
        collectionFormat: multi
      - name: OS
        in: query
        required: false
        type: array
        items:
          type: string
          enum:
          - OTHER
          - WINDOWS
          - OSX
          - LINUX
          - ANDROID
          - IOS
        collectionFormat: multi
      - name: Language.Null
        in: query
        required: false
        type: boolean
      - name: Language.Text
        in: query
        required: false
        type: string
      - name: Language.Exact
        in: query
        required: false
        type: boolean
      - name: GDPRVersion.Null
        in: query
        required: false
        type: boolean
      - name: GDPRVersion.Text
        in: query
        required: false
        type: string
      - name: GDPRVersion.Exact
        in: query
        required: false
        type: boolean
      - name: GuestLeftSession
        in: query
        required: false
        type: array
        items:
          type: string
          enum:
          - LeftQueue
          - LeftSession
          - LeftAfterSession
          - StillConnected
        collectionFormat: multi
      - name: offset
        in: query
        description: Skip rows (for paging)
        required: false
        type: integer
        format: int32
      - name: limit
        in: query
        description: Default value is 1000
        required: false
        type: integer
        format: int32
      security:
      - OpenIDConnect:
        - openid
        - mluviiMembership
        - roles
        - mluviiPublicApi
      - ClientCredentials:
        - mluviiPublicApi
      responses:
        "200":
          description: Success
          schema:
            type: array
            items:
              $ref: '#/definitions/PublicApi.Session.Models.SessionModel'
        "400":
          description: Bad Request
          schema:
            type: object
            additionalProperties:
              type: string
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-swagger-router-controller: sessions
  /api/v1/Sessions/{id}/anonymize:
    post:
      tags:
      - Sessions
      operationId: ApiV1SessionsByIdAnonymizePost
      parameters:
      - name: id
        in: path
        required: true
        type: integer
        format: int64
      security:
      - OpenIDConnect:
        - openid
        - mluviiMembership
        - roles
        - mluviiPublicApi
      - ClientCredentials:
        - mluviiPublicApi
      responses:
        "204":
          description: Success
        "400":
          description: Bad Request
          schema:
            type: object
            additionalProperties:
              type: string
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-swagger-router-controller: sessions
  /api/v1/Sessions/{id}/callparams:
    get:
      tags:
      - Sessions
      summary: Get call params by sessionID
      operationId: ApiV1SessionsByIdCallparamsGet
      parameters:
      - name: id
        in: path
        description: Session ID
        required: true
        type: integer
        format: int64
      security:
      - OpenIDConnect:
        - openid
        - mluviiMembership
        - roles
        - mluviiPublicApi
      - ClientCredentials:
        - mluviiPublicApi
      responses:
        "200":
          description: Success
          schema:
            $ref: '#/definitions/PublicApi.SessionData.Models.CallParamsModel'
        "400":
          description: Bad Request
          schema:
            type: object
            additionalProperties:
              type: string
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Session ID not found.
      x-swagger-router-controller: sessions
    put:
      tags:
      - Sessions
      summary: Update call params in session
      operationId: ApiV1SessionsByIdCallparamsPut
      parameters:
      - name: id
        in: path
        description: Session ID
        required: true
        type: integer
        format: int64
      - in: body
        name: model
        description: Model containing a dictionary of call params to update
        required: true
        schema:
          $ref: '#/definitions/PublicApi.SessionData.Models.UpdateCallParamsModel'
      security:
      - OpenIDConnect:
        - openid
        - mluviiMembership
        - roles
        - mluviiPublicApi
      - ClientCredentials:
        - mluviiPublicApi
      responses:
        "204":
          description: Success
        "400":
          description: Bad Request
          schema:
            type: object
            additionalProperties:
              type: string
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Session ID not found.
      x-swagger-router-controller: sessions
  /api/v1/System/actorSystemInfo:
    get:
      tags:
      - System
      operationId: ApiV1SystemActorSystemInfoGet
      parameters: []
      security:
      - OpenIDConnect:
        - openid
        - mluviiMembership
        - roles
        - mluviiPublicApi
      - ClientCredentials:
        - mluviiPublicApi
      responses:
        "400":
          description: Bad Request
          schema:
            type: object
            additionalProperties:
              type: string
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-swagger-router-controller: system
  /api/v1/Users/{id}:
    get:
      tags:
      - Users
      summary: Retrieves user by ID.
      operationId: ApiV1UsersByIdGet
      parameters:
      - name: id
        in: path
        description: User ID
        required: true
        type: integer
        format: int32
      security:
      - OpenIDConnect:
        - openid
        - mluviiMembership
        - roles
        - mluviiPublicApi
      - ClientCredentials:
        - mluviiPublicApi
      responses:
        "200":
          description: Success
          schema:
            $ref: '#/definitions/PublicApi.User.Models.UserModel'
        "400":
          description: Bad Request
          schema:
            type: object
            additionalProperties:
              type: string
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: User ID not found.
      x-swagger-router-controller: users
  /api/v1/Users:
    get:
      tags:
      - Users
      summary: Get all users
      operationId: ApiV1UsersGet
      parameters: []
      security:
      - OpenIDConnect:
        - openid
        - mluviiMembership
        - roles
        - mluviiPublicApi
      - ClientCredentials:
        - mluviiPublicApi
      responses:
        "200":
          description: Success
          schema:
            type: array
            items:
              $ref: '#/definitions/PublicApi.User.Models.UserModel'
        "400":
          description: Bad Request
          schema:
            type: object
            additionalProperties:
              type: string
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-swagger-router-controller: users
  /api/v1/Users/{id}/setAvailabilityStatus:
    post:
      tags:
      - Users
      operationId: ApiV1UsersByIdSetAvailabilityStatusPost
      parameters:
      - name: id
        in: path
        required: true
        type: integer
        format: int32
      - in: body
        name: model
        required: true
        schema:
          $ref: '#/definitions/PublicApi.User.Models.SetAvailabilityStatusModel'
      security:
      - OpenIDConnect:
        - openid
        - mluviiMembership
        - roles
        - mluviiPublicApi
      - ClientCredentials:
        - mluviiPublicApi
      responses:
        "204":
          description: Success
        "400":
          description: Bad Request
          schema:
            type: object
            additionalProperties:
              type: string
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-swagger-router-controller: users
  /api/v1/Users/invitation:
    post:
      tags:
      - Users
      operationId: ApiV1UsersInvitationPost
      parameters:
      - in: body
        name: model
        required: true
        schema:
          $ref: '#/definitions/PublicApi.User.Models.CreateInvitationModel'
      security:
      - OpenIDConnect:
        - openid
        - mluviiMembership
        - roles
        - mluviiPublicApi
      - ClientCredentials:
        - mluviiPublicApi
      responses:
        "200":
          description: Success
          schema:
            $ref: '#/definitions/PublicApi.User.Models.ResponseInvitationModel'
        "400":
          description: Bad Request
          schema:
            type: object
            additionalProperties:
              type: string
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-swagger-router-controller: users
  /api/v1/Users/invitation/{id}:
    delete:
      tags:
      - Users
      operationId: ApiV1UsersInvitationByIdDelete
      parameters:
      - name: id
        in: path
        required: true
        type: integer
        format: int32
      security:
      - OpenIDConnect:
        - openid
        - mluviiMembership
        - roles
        - mluviiPublicApi
      - ClientCredentials:
        - mluviiPublicApi
      responses:
        "204":
          description: Success
        "400":
          description: Bad Request
          schema:
            type: object
            additionalProperties:
              type: string
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-swagger-router-controller: users
  /api/v1/Webhooks/{id}:
    get:
      tags:
      - Webhooks
      summary: Get webhook
      operationId: ApiV1WebhooksByIdGet
      parameters:
      - name: id
        in: path
        required: true
        type: integer
        format: int32
      security:
      - OpenIDConnect:
        - openid
        - mluviiMembership
        - roles
        - mluviiPublicApi
      - ClientCredentials:
        - mluviiPublicApi
      responses:
        "200":
          description: Success
          schema:
            $ref: '#/definitions/PublicApi.Webhook.Models.WebhookModel'
        "400":
          description: Bad Request
          schema:
            type: object
            additionalProperties:
              type: string
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-swagger-router-controller: webhooks
    put:
      tags:
      - Webhooks
      summary: Update webhook
      operationId: ApiV1WebhooksByIdPut
      parameters:
      - name: id
        in: path
        required: true
        type: integer
        format: int32
      - in: body
        name: model
        required: true
        schema:
          $ref: '#/definitions/PublicApi.Webhook.Models.WebhookAddEditModel'
      security:
      - OpenIDConnect:
        - openid
        - mluviiMembership
        - roles
        - mluviiPublicApi
      - ClientCredentials:
        - mluviiPublicApi
      responses:
        "204":
          description: Webhook updated
        "400":
          description: Bad Request
          schema:
            type: object
            additionalProperties:
              type: string
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-swagger-router-controller: webhooks
    delete:
      tags:
      - Webhooks
      summary: Delete webhook by id.
      operationId: ApiV1WebhooksByIdDelete
      parameters:
      - name: id
        in: path
        required: true
        type: integer
        format: int32
      security:
      - OpenIDConnect:
        - openid
        - mluviiMembership
        - roles
        - mluviiPublicApi
      - ClientCredentials:
        - mluviiPublicApi
      responses:
        "204":
          description: Webhook deleted
        "400":
          description: Bad Request
          schema:
            type: object
            additionalProperties:
              type: string
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-swagger-router-controller: webhooks
  /api/v1/Webhooks:
    get:
      tags:
      - Webhooks
      summary: Get all webhooks
      operationId: ApiV1WebhooksGet
      parameters: []
      security:
      - OpenIDConnect:
        - openid
        - mluviiMembership
        - roles
        - mluviiPublicApi
      - ClientCredentials:
        - mluviiPublicApi
      responses:
        "200":
          description: Success
          schema:
            type: array
            items:
              $ref: '#/definitions/PublicApi.Webhook.Models.WebhookModel'
        "204":
          description: Success
        "400":
          description: Bad Request
          schema:
            type: object
            additionalProperties:
              type: string
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-swagger-router-controller: webhooks
    post:
      tags:
      - Webhooks
      summary: Register webhook for given event.
      operationId: ApiV1WebhooksPost
      parameters:
      - in: body
        name: model
        description: Webhook model
        required: true
        schema:
          $ref: '#/definitions/PublicApi.Webhook.Models.WebhookAddEditModel'
      security:
      - OpenIDConnect:
        - openid
        - mluviiMembership
        - roles
        - mluviiPublicApi
      - ClientCredentials:
        - mluviiPublicApi
      responses:
        "201":
          description: Webhook created
          schema:
            type: integer
            format: int32
        "400":
          description: Bad Request
          schema:
            type: object
            additionalProperties:
              type: string
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "409":
          description: Conflict
          schema:
            type: integer
            format: int32
      x-swagger-router-controller: webhooks
    delete:
      tags:
      - Webhooks
      summary: Delete all webhooks
      operationId: ApiV1WebhooksDelete
      parameters: []
      security:
      - OpenIDConnect:
        - openid
        - mluviiMembership
        - roles
        - mluviiPublicApi
      - ClientCredentials:
        - mluviiPublicApi
      responses:
        "204":
          description: Webhooks deleted
        "400":
          description: Bad Request
          schema:
            type: object
            additionalProperties:
              type: string
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-swagger-router-controller: webhooks
  /api/v1/Widgets:
    get:
      tags:
      - Widgets
      operationId: ApiV1WidgetsGet
      parameters: []
      security:
      - OpenIDConnect:
        - openid
        - mluviiMembership
        - roles
        - mluviiPublicApi
      - ClientCredentials:
        - mluviiPublicApi
      responses:
        "200":
          description: Success
          schema:
            type: array
            items:
              $ref: '#/definitions/PublicApi.Widget.Models.WidgetPresetModel'
        "204":
          description: Success
        "400":
          description: Bad Request
          schema:
            type: object
            additionalProperties:
              type: string
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-swagger-router-controller: widgets
  /api/v1/Widgets/{id}/config:
    get:
      tags:
      - Widgets
      description: "Send 'onlyChanged' as a query param to get only changed properties. If you request all, don't send onlyChanged param at all."
      operationId: ApiV1WidgetsByIdConfigGet
      parameters:
      - name: id
        in: path
        required: true
        type: integer
        format: int32
      - name: onlyChanged
        in: query
        required: false
        type: boolean
      security:
      - OpenIDConnect:
        - openid
        - mluviiMembership
        - roles
        - mluviiPublicApi
      - ClientCredentials:
        - mluviiPublicApi
      responses:
        "200":
          description: Success
          schema:
            type: array
            items:
              $ref: '#/definitions/PublicApi.Widget.Models.WidgetConfigModel'
        "204":
          description: Success
        "400":
          description: Bad Request
          schema:
            type: object
            additionalProperties:
              type: string
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-swagger-router-controller: widgets
  /api/v1/Widgets/{id}/displayChatButton:
    put:
      tags:
      - Widgets
      operationId: ApiV1WidgetsByIdDisplayChatButtonPut
      parameters:
      - name: id
        in: path
        required: true
        type: integer
        format: int32
      - in: body
        name: model
        required: true
        schema:
          $ref: '#/definitions/PublicApi.Widget.Models.UpdateChatButtonModel'
      security:
      - OpenIDConnect:
        - openid
        - mluviiMembership
        - roles
        - mluviiPublicApi
      - ClientCredentials:
        - mluviiPublicApi
      responses:
        "204":
          description: Success
        "400":
          description: Bad Request
          schema:
            type: object
            additionalProperties:
              type: string
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-swagger-router-controller: widgets
  /api/v1/Widgets/{id}/widgetFormSettings:
    put:
      tags:
      - Widgets
      description: "<table>\r\n  <tr>\r\n    <th>PropertyName</th>\r\n    <th>Popis</th>\r\n  </tr>\r\n  <tr>\r\n    <td>behaviour.entryForm</td>\r\n    <td>settings of entry form</td>\r\n  </tr>\r\n  <tr>\r\n    <td>behaviour.feedbackForm</td>\r\n    <td>settings of feedback form</td>\r\n  </tr>\r\n  <tr>\r\n    <td>behaviour.offlineForm</td>\r\n    <td>settings of offline form</td>\r\n  </tr>\r\n</table>"
      operationId: ApiV1WidgetsByIdWidgetFormSettingsPut
      parameters:
      - name: id
        in: path
        description: ""
        required: true
        type: integer
        format: int32
      - in: body
        name: model
        description: ""
        required: true
        schema:
          $ref: '#/definitions/PublicApi.Widget.Models.WidgetFormsModel'
      security:
      - OpenIDConnect:
        - openid
        - mluviiMembership
        - roles
        - mluviiPublicApi
      - ClientCredentials:
        - mluviiPublicApi
      responses:
        "204":
          description: Success
        "400":
          description: Bad Request
          schema:
            type: object
            additionalProperties:
              type: string
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-swagger-router-controller: widgets
  /api/v1/Widgets/{id}/widgetSettings:
    put:
      tags:
      - Widgets
      description: "<table>\r\n  <tr>\r\n    <th>ConfigType</th>\r\n    <th>ButtonType</th>\r\n    <th>PropertyName</th>\r\n    <th>Language</th>\r\n    <th>Value</th>\r\n    <th>Description</th>\r\n  </tr>\r\n  <tr>\r\n    <td>Window</td>\r\n    <td>null</td>\r\n    <td>appearance.titleOption</td>\r\n    <td>null</td>\r\n    <td>{name/text}</td>\r\n    <td>Panel title type: name - default value; text - set own text using appearance.titleText</td>\r\n  </tr>\r\n  <tr>\r\n    <td>Window</td>\r\n    <td>null</td>\r\n    <td>appearance.titleText</td>\r\n    <td>{cs/en/ru/kk/de/sk/pl/sr}</td>\r\n    <td>Text</td>\r\n    <td>Panel title text</td>\r\n  </tr>\r\n  <tr>\r\n    <td>Window</td>\r\n    <td>null</td>\r\n    <td>appearance.titleColor</td>\r\n    <td>null</td>\r\n    <td>#ffffff</td>\r\n    <td>Background of title panel</td>\r\n  </tr>\r\n  <tr>\r\n    <td>Window</td>\r\n    <td>null</td>\r\n    <td>appearance.titleTextColor</td>\r\n    <td>null</td>\r\n    <td>#ffffff</td>\r\n    <td>Text of title panel</td>\r\n  </tr>\r\n  <tr>\r\n    <td>Window</td>\r\n    <td>null</td>\r\n    <td>appearance.opMsgColor</td>\r\n    <td>null</td>\r\n    <td>#ffffff</td>\r\n    <td>Background for operator's messages</td>\r\n  </tr>\r\n  <tr>\r\n    <td>Window</td>\r\n    <td>null</td>\r\n    <td>appearance.welcomeMessage</td>\r\n    <td>{cs/en/ru/kk/de/sk/pl/sr}</td>\r\n    <td>Text</td>\r\n    <td>Welcome message</td>\r\n  </tr>\r\n  <tr>\r\n    <td>Window</td>\r\n    <td>null</td>\r\n    <td>appearance.renderPosition</td>\r\n    <td>null</td>\r\n    <td>{br/bc/bl/tr/tc/tl}</td>\r\n    <td>Chat's position: b = bottom; t = top; r = right; l = left; c = center</td>\r\n  </tr>\r\n  <tr>\r\n    <td>Window</td>\r\n    <td>null</td>\r\n    <td>appearance.width</td>\r\n    <td>null</td>\r\n    <td>Number</td>\r\n    <td>Widget's width</td>\r\n  </tr>\r\n  <tr>\r\n    <td>Window</td>\r\n    <td>null</td>\r\n    <td>appearance.height</td>\r\n    <td>null</td>\r\n    <td>Number</td>\r\n    <td>Widget's height</td>\r\n  </tr>\r\n  <tr>\r\n    <td>Window</td>\r\n    <td>null</td>\r\n    <td>appearance.offsetX</td>\r\n    <td>null</td>\r\n    <td>Number</td>\r\n    <td>Widget's offset on X axis</td>\r\n  </tr>\r\n  <tr>\r\n    <td>Window</td>\r\n    <td>null</td>\r\n    <td>appearance.offsetY</td>\r\n    <td>null</td>\r\n    <td>Number</td>\r\n    <td>Widget's offset on Y axis</td>\r\n  </tr>\r\n  <tr>\r\n    <td>Window</td>\r\n    <td>null</td>\r\n    <td>appearance.zIndex</td>\r\n    <td>null</td>\r\n    <td>Number</td>\r\n    <td>Widget's offset on Z axis</td>\r\n  </tr>\r\n  <tr>\r\n    <td>Window</td>\r\n    <td>null</td>\r\n    <td>behaviour.offlineFormEmail</td>\r\n    <td>null</td>\r\n    <td>Text</td>\r\n    <td>E-mail for offline messages</td>\r\n  </tr>\r\n  <tr>\r\n    <td>Button</td>\r\n    <td>null</td>\r\n    <td>appearance.renderPosition</td>\r\n    <td>null</td>\r\n    <td>{br/bc/bl/tr/tc/tl}</td>\r\n    <td>Button's position: b = bottom; t = top; r = right; l = left; c = center</td>\r\n  </tr>\r\n  <tr>\r\n    <td>Button</td>\r\n    <td>null</td>\r\n    <td>appearance.zIndex</td>\r\n    <td>null</td>\r\n    <td>Number</td>\r\n    <td>Button's offset on Z axis</td>\r\n  </tr>\r\n  <tr>\r\n    <td>Button</td>\r\n    <td>null</td>\r\n    <td>behaviour.showOffline</td>\r\n    <td>null</td>\r\n    <td>Boolean</td>\r\n    <td>Show button when offline</td>\r\n  </tr>\r\n  <tr>\r\n    <td>Button</td>\r\n    <td>null</td>\r\n    <td>behaviour.showBusy</td>\r\n    <td>null</td>\r\n    <td>Boolean</td>\r\n    <td>Show button when busy</td>\r\n  </tr>\r\n  <tr>\r\n    <td>Button</td>\r\n    <td>null</td>\r\n    <td>behaviour.customAggresive2</td>\r\n    <td>null</td>\r\n    <td>{None}</td>\r\n    <td>Turns off CTA</td>\r\n  </tr>\r\n  <tr>\r\n    <td>Button</td>\r\n    <td>null</td>\r\n    <td>appearance.onAggressiveColor1</td>\r\n    <td>null</td>\r\n    <td>#ffffff</td>\r\n    <td>CTA background color</td>\r\n  </tr>\r\n  <tr>\r\n    <td>Button</td>\r\n    <td>null</td>\r\n    <td>appearance.onAggressiveColor2</td>\r\n    <td>null</td>\r\n    <td>#ffffff</td>\r\n    <td>CTA border color</td>\r\n  </tr>\r\n  <tr>\r\n    <td>Button</td>\r\n    <td>null</td>\r\n    <td>appearance.aggressiveTextColor</td>\r\n    <td>null</td>\r\n    <td>#ffffff</td>\r\n    <td>CTA text color</td>\r\n  </tr>\r\n  <tr>\r\n    <td>Button</td>\r\n    <td>null</td>\r\n    <td>appearance.aggressiveText1</td>\r\n    <td>{cs/en/ru/kk/de/sk/pl/sr}</td>\r\n    <td>Text</td>\r\n    <td>CTA first line</td>\r\n  </tr>\r\n  <tr>\r\n    <td>Button</td>\r\n    <td>null</td>\r\n    <td>appearance.aggressiveText2</td>\r\n    <td>{cs/en/ru/kk/de/sk/pl/sr}</td>\r\n    <td>Text</td>\r\n    <td>CTA second line</td>\r\n  </tr>\r\n</table>"
      operationId: ApiV1WidgetsByIdWidgetSettingsPut
      parameters:
      - name: id
        in: path
        description: ""
        required: true
        type: integer
        format: int32
      - in: body
        name: model
        description: ""
        required: true
        schema:
          $ref: '#/definitions/PublicApi.Widget.Models.WidgetConfigRecordsModel'
      security:
      - OpenIDConnect:
        - openid
        - mluviiMembership
        - roles
        - mluviiPublicApi
      - ClientCredentials:
        - mluviiPublicApi
      responses:
        "204":
          description: Success
        "400":
          description: Bad Request
          schema:
            type: object
            additionalProperties:
              type: string
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-swagger-router-controller: widgets
securityDefinitions:
  ClientCredentials:
    type: oauth2
    tokenUrl: https://localhost:5000/login/connect/token
    flow: application
    scopes:
      mluviiPublicApi: Access to mluvii REST API
  OpenIDConnect:
    type: oauth2
    authorizationUrl: https://localhost:5000/login/connect/authorize
    tokenUrl: https://localhost:5000/login/connect/token
    flow: implicit
    scopes:
      mluviiPublicApi: Access to mluvii REST API
  MluviiBearer:
    description: "Enter header value: &quot;Bearer &lt;token&gt;&quot;"
    type: apiKey
    name: Authorization
    in: header
definitions:
  PublicApi.Email.Models.EmailMessageModel:
    type: object
    properties:
      id:
        type: integer
        format: int64
      companyId:
        type: integer
        format: int32
      departmentId:
        type: integer
        format: int32
      threadId:
        type: integer
        format: int64
        description: E-mail message relates to this e-mail thread ID.
      state:
        type: string
        description: E-mail message state.
        enum:
        - WaitingToSend
        - Sending
        - FailedToSend
        - Sent
        - WaitingToRetrySending
        - Received
        - DidNotAnswer
      created:
        type: string
        format: date-time
        description: When e-mail message creates.
      slaExpires:
        type: string
        format: date-time
        description: When e-mail message SLA expires.
      processed:
        type: string
        format: date-time
        description: When e-mail message processes.
      subject:
        type: string
        description: E-mail message subject.
      clientEmail:
        type: string
        description: E-mail message client e-mail.
      senderName:
        type: string
        description: E-mail message sender name.
      senderAddress:
        type: string
        description: E-mail message sender e-mail.
      recipientName:
        type: string
        description: E-mail message recipient name.
      recipientAddress:
        type: string
        description: E-mail message recipient e-mail.
      inboxName:
        type: string
        description: E-mail message inbox name.
      inboxAddress:
        type: string
        description: E-mail message inbox address.
      operators:
        type: array
        description: Operators who participated in the e-mail message
        items:
          $ref: '#/definitions/PublicApi.Models.GeneralOperatorInfo'
      body:
        type: string
        description: E-mail message body.
  PublicApi.Models.GeneralOperatorInfo:
    type: object
    properties:
      userId:
        type: integer
        format: int32
      userName:
        type: string
        description: Unique operator username
      firstName:
        type: string
      lastName:
        type: string
    description: Operator information
  PublicApi.Email.Models.EmailThreadModel:
    type: object
    properties:
      id:
        type: integer
        format: int64
      companyId:
        type: integer
        format: int32
      departmentId:
        type: integer
        format: int32
      tags:
        type: array
        description: Tags associated with this e-mail thread.
        items:
          $ref: '#/definitions/PublicApi.Models.AssignedTag'
      state:
        type: string
        description: E-mail thread state.
        enum:
        - InQueue
        - Waiting
        - Accepted
        - SentToClient
        - DidNotAnswer
      created:
        type: string
        format: date-time
        description: When e-mail thread creates.
      lastClientMessage:
        type: string
        format: date-time
        description: Last e-mail message time from client.
      subject:
        type: string
        description: E-mail thread general subject.
      clientName:
        type: string
      clientEmail:
        type: string
      inboxName:
        type: string
        description: E-mail thread inbox name.
      inboxAddress:
        type: string
        description: E-mail thread inbox address.
      initiator:
        type: string
        description: Who initiates e-mail thread.
        enum:
        - Client
        - Operator
      operators:
        type: array
        description: Operators who participated in the e-mail thread
        items:
          $ref: '#/definitions/PublicApi.Models.EmailThreadOperators'
      messageCount:
        type: integer
        format: int32
        description: Number of e-mail messages that has e-mail thread.
      autoReplySent:
        type: boolean
        description: Does e-mail thread has an auto-answer e-mail message.
  PublicApi.Models.AssignedTag:
    type: object
    properties:
      userId:
        type: integer
        format: int32
        description: Operator who assigned the TAG.
      name:
        type: string
        description: Name of TAG.
  PublicApi.Models.EmailThreadOperators:
    type: object
    properties:
      assigned:
        type: string
        format: date-time
      unassigned:
        type: string
        format: date-time
      userId:
        type: integer
        format: int32
      userName:
        type: string
        description: Unique operator username
      firstName:
        type: string
      lastName:
        type: string
  PublicApi.Form.Models.FormModel:
    type: object
    properties:
      id:
        type: integer
        format: int32
      formType:
        type: string
        enum:
        - Entry
        - Feedback
        - Offline
        - Chat
      name:
        type: string
      departmentId:
        type: integer
        format: int32
      predefined:
        type: boolean
  PublicApi.Chatbot.Models.Activity:
    type: object
    properties:
      activityType:
        type: string
      content:
        type: object
        properties: {}
  PublicApi.SessionData.Models.CallParamsModel:
    type: object
    properties:
      callParams:
        type: array
        description: Call params associated with this session.
        items:
          $ref: '#/definitions/PublicApi.SessionData.Models.CallParam'
  PublicApi.SessionData.Models.CallParam:
    type: object
    properties:
      name:
        type: string
      value:
        type: string
      readOnly:
        type: boolean
      source:
        type: string
        enum:
        - USER
        - CHATBOT
        - HERO_CARD
        - ENTRY_FORM
        - FEEDBACK_FORM
        - OFFLINE_FORM
        - EXTERNAL_MESSAGING
        - PHONE
        - API
      updatedDate:
        type: string
        format: date-time
  PublicApi.SessionData.Models.UpdateCallParamsModel:
    type: object
    properties:
      callParams:
        type: object
        additionalProperties:
          type: string
  PublicApi.Session.Models.SessionModel:
    type: object
    properties:
      id:
        type: integer
        format: int64
      companyId:
        type: integer
        format: int32
      departmentId:
        type: integer
        format: int32
      guest:
        description: Guest information
        $ref: '#/definitions/PublicApi.Session.Models.SessionModel%2BGuestInfo'
      channel:
        type: string
        description: The channel at the time of session creation
        enum:
        - Chat
        - AV
        - Phone
      source:
        type: string
        description: The origin of the session creation
        enum:
        - Default
        - Callback
        - Invitation
        - ChatInvitation
        - IncomingCall
        - OutgoingCall
        - API
        - Facebook
        - WhatsApp
      status:
        type: string
        description: Status of the session
        enum:
        - CREATED
        - IN_QUEUE
        - WAITING
        - ACTIVE
        - ACW
        - CLOSED
        - BLACKLISTED
      avSupport:
        type: string
        description: Guest A/V capabilities
        enum:
        - NONE
        - FLASH_ONLY
        - WEB_RTC
      directCallNumber:
        type: string
        description: "When guest enters via invitation, this is the generated number."
      phoneCallbackNumber:
        type: string
        description: "When guest enters via phone callback, this is the phone number."
      isDirectChat:
        type: boolean
        description: The session was proactively created by operator and offered to a visiting guest.
      url:
        type: string
        description: Entry URL at the time of session creation
      widget:
        type: string
        description: Name of entry widget
      operators:
        type: array
        description: Operators who participated in the session
        items:
          $ref: '#/definitions/PublicApi.Models.SessionOperators'
      reviewers:
        type: array
        description: Reviewers
        items:
          $ref: '#/definitions/PublicApi.Session.Models.SessionModel%2BReviewerInfo'
      enteredQueue:
        type: string
        format: date-time
        description: Session entered queue.
      started:
        type: string
        format: date-time
        description: When first operator accepts the session.
      ended:
        type: string
        format: date-time
        description: When operator or guest leaves the session.
      waited:
        type: string
        description: "ISO 8601 duration. From entering queue to start of session or leaving the queue.\r\nWhichever comes first."
      length:
        type: string
        description: ISO 8601 duration. Length of session or null if session never started.
      blacklisted:
        type: boolean
        description: Whether the guest was blacklisted.
      phoneCallbackDialed:
        type: string
        format: date-time
        description: "For callback session only.\r\nTime when operator dialed callback number."
      activities:
        type: array
        description: Trail of all session activities.
        items:
          $ref: '#/definitions/PublicApi.Session.Models.SessionModel%2BActivity'
      tags:
        type: array
        description: Tags associated with this session.
        items:
          $ref: '#/definitions/PublicApi.Models.AssignedTag'
      chatbots:
        type: array
        description: Chatbots which participated in the session
        items:
          $ref: '#/definitions/PublicApi.Session.Models.SessionModel%2BChatbotInfo'
      guestFeedbackStars:
        type: integer
        format: int32
        description: Number of stars given by guest on feedback form.
      guestFeedbackScale:
        type: string
        description: Type of scale used to set feedback stars.
        enum:
        - Likert
        - NPS
      guestFeedbackText:
        type: string
        description: Freeform textual feedback given by guest on feedback form.
      autoAccepted:
        type: boolean
        description: Whether the session was auto-accepted
      guestFeedbackCustomFields:
        type: object
        description: Contents of feedback form custom fields.
        additionalProperties:
          type: object
          properties: {}
      recordings:
        type: array
        description: Null if there are no recordings.
        items:
          $ref: '#/definitions/PublicApi.Session.Models.SessionModel%2BRecording'
  PublicApi.Session.Models.SessionModel%2BGuestInfo:
    type: object
    properties:
      tempId:
        type: integer
        format: int64
        description: "Temporary ID, generated when guest starts a new session and enters queue."
      ipAddress:
        type: string
        description: Guest IP address
      trackedId:
        type: string
        format: uuid
        description: GUID is generated for each unique guest and saved to cookie.
      identity:
        type: string
        description: Identity numeric key converted to string
      os:
        type: string
        description: Guest's OS
        enum:
        - OTHER
        - WINDOWS
        - OSX
        - LINUX
        - ANDROID
        - IOS
      browser:
        type: string
        description: Guest's OS
        enum:
        - OTHER
        - IE_LOW
        - IE_8
        - IE_9
        - IE_10
        - IE_11
        - IE_HI
        - CHROME
        - OPERA
        - FF
        - SAFARI
        - EDGE
        - CHROMIUM_EDGE
      language:
        type: string
        description: Guest's language
      callParams:
        type: object
        description: "Collection of attributes associated with the session.\r\nIncludes system as well as user keys."
        additionalProperties:
          type: string
      gdprVersion:
        type: string
        description: Version of GDPR agreement the user agreed with.
  PublicApi.Models.SessionOperators:
    type: object
    properties:
      joined:
        type: string
        format: date-time
      left:
        type: string
        format: date-time
        description: Operator left session.
      concluded:
        type: string
        format: date-time
        description: Operator completed After Call Work (submited session conclusion form).
      feedbackResult:
        type: string
        description: Selected session result.
      feedbackText:
        type: string
        description: Freeform textual feedback by operator.
      userId:
        type: integer
        format: int32
      userName:
        type: string
        description: Unique operator username
      firstName:
        type: string
      lastName:
        type: string
  PublicApi.Session.Models.SessionModel%2BReviewerInfo:
    type: object
    properties:
      userId:
        type: integer
        format: int32
      userName:
        type: string
      firstName:
        type: string
      lastName:
        type: string
      feedbackText:
        type: string
        description: Freeform textual feedback by reviewer.
  PublicApi.Session.Models.SessionModel%2BActivity:
    type: object
    properties:
      activityId:
        type: integer
        format: int64
      time:
        type: string
        format: date-time
        description: Timestamp of activity
      type:
        type: string
        description: Type of activity
        enum:
        - ChatMessage
        - SharedFile
        - SharedScreen
        - PhotoRequest
        - CobrowsingStarted
        - CobrowsingStoppedByGuest
        - ScreenSharingFailedByGuest
        - FileUploadFailed
        - HeroCard
        - HeroCardSubmission
        - ChatbotMessage
        - WelcomeMessage
        - LastFarewellMessage
        - ExternalMessage
        - AvRequest
        - AvResponse
        - AvGetMediaResult
        - AvTerminated
        - ChatToMail
        - AutoActivity
        - UpgradeToFull
        - SessionEnded
        - SessionForwarded
        - OperatorInvited
        - OperatorInviteCanceled
        - OperatorInviteRejected
        - OperatorKicked
      sender:
        type: string
        description: Sender of activity
        enum:
        - User
        - Guest
        - Chatbot
      userId:
        type: integer
        format: int32
        description: Operator who initiated the activity.
      file:
        $ref: '#/definitions/PublicApi.Session.Models.SessionModel%2BActivityFile'
      text:
        type: string
      response:
        type: string
        enum:
        - None
        - Requested
        - Accepted
        - RejectedUser
        - RejectedShitBrowser
        - RejectedNoMic
      result:
        type: string
        enum:
        - Success
        - NoCameraOnlyMic
        - NoDevices
        - UserDenied
      streamAvailable:
        type: boolean
      toOperatorUserId:
        type: integer
        format: int32
        description: "\"Forwarding to operator\" activity only.\r\nUser ID of recipient."
      toOperatorFullName:
        type: string
        description: "\"Forwarding to operator\" activity only.\r\nFull name of recipient."
      toGroupId:
        type: integer
        format: int32
        description: "\"Forwarding to group\" activity only.\r\nID of recipient operator group."
      toGroupName:
        type: string
        description: "\"Forwarding to group\" activity only.\r\nName recipient operator group."
      note:
        type: string
        description: "Forwarding activity only.\r\nNote associated with forwarding."
      heroCard:
        type: array
        description: "HeroCard activity only\r\nList of field definitions for given hero card."
        items:
          $ref: '#/definitions/PublicApi.Session.Models.SessionModel%2BActivityHeroCardField'
      submissionOfActivityId:
        type: integer
        format: int64
        description: "\"HeroCard submission\" activity only\r\nId of original HeroCard activity for this submission"
      submissionResult:
        type: string
        description: "\"HeroCard submission\" activity only\r\nResult of HeroCard submission"
        enum:
        - Submitted
        - Cancelled
      submissionParams:
        type: object
        description: "\"HeroCard submission\" activity only\r\nHeroCard submission parameters. None when HeroCard result is 'Cancelled'"
        additionalProperties:
          type: string
  PublicApi.Session.Models.SessionModel%2BChatbotInfo:
    type: object
    properties:
      chatbotId:
        type: integer
        format: int32
      name:
        type: string
      joined:
        type: string
        format: date-time
      left:
        type: string
        format: date-time
        description: Chatbot left session.
    description: Chatbot information
  PublicApi.Session.Models.SessionModel%2BRecording:
    type: object
    properties:
      id:
        type: integer
        format: int32
      name:
        type: string
        description: Name of stored file.
      downloadUrl:
        type: string
        description: "File storage url for downloading the file.\r\nIt is generated after the structure is read from stat db and deserialized."
  PublicApi.Session.Models.SessionModel%2BActivityFile:
    type: object
    properties:
      operatorOwner:
        type: integer
        format: int32
        description: "Operator-owned files only.\r\nOperator user ID."
      departmentOwner:
        type: integer
        format: int32
        description: "Department-owned files only.\r\nDepartment ID."
      name:
        type: string
        description: Name of stored file.
      downloadUrl:
        type: string
        description: "File storage url for downloading the file.\r\nIt is generated after the structure is read from stat db and deserialized."
  PublicApi.Session.Models.SessionModel%2BActivityHeroCardField:
    type: object
    properties:
      key:
        type: string
      label:
        type: string
      required:
        type: boolean
      inputType:
        type: string
        enum:
        - Text
        - Email
        - Phone
        - Number
        - TextArea
        - RichText
        - Radio
        - Select
        - Gdpr
        - Confirmation
        - Submit
        - Identification
        - Stars
        - Smiles
        - Thumbs
        - Feedback
        - Transcript
        - NPSScale
        - FileUpload
      choiceOptions:
        type: array
        items:
          $ref: '#/definitions/PublicApi.Session.Models.SessionModel%2BExportedActivityHeroCardChoiceOption'
  PublicApi.Session.Models.SessionModel%2BExportedActivityHeroCardChoiceOption:
    type: object
    properties:
      value:
        type: string
      label:
        type: string
  PublicApi.User.Models.UserModel:
    type: object
    properties:
      id:
        type: integer
        format: int32
      firstName:
        type: string
      lastName:
        type: string
      username:
        type: string
      email:
        type: string
      departments:
        type: array
        items:
          type: integer
          format: int32
  PublicApi.User.Models.SetAvailabilityStatusModel:
    type: object
    required:
    - status
    properties:
      status:
        type: string
        enum:
        - DEFAULT
        - AWAY
        - IDLE
        - BUSY_GUESTS
        - EXCLUSIVE_SESSION
      reason:
        type: string
  PublicApi.User.Models.CreateInvitationModel:
    type: object
    required:
    - departmentId
    - operatorId
    properties:
      operatorId:
        type: integer
        format: int32
      departmentId:
        type: integer
        format: int32
  PublicApi.User.Models.ResponseInvitationModel:
    type: object
    properties:
      url:
        type: string
      id:
        type: integer
        format: int32
  PublicApi.Webhook.Models.WebhookModel:
    type: object
    required:
    - callbackUrl
    - eventTypes
    - id
    properties:
      id:
        type: integer
        format: int32
      eventTypes:
        type: array
        items:
          type: string
          enum:
          - UserStatusChanged
          - SessionCreated
          - SessionStarted
          - SessionEnded
          - SessionForwarded
          - SessionOperatorJoined
          - SessionOperatorLeft
          - SessionOperatorConcluded
          - SessionCallParamsUpdated
          - EmailThreadCreated
          - EmailThreadOperatorJoined
          - EmailThreadOperatorLeft
          - EmailThreadForwarded
      callbackUrl:
        type: string
  PublicApi.Webhook.Models.WebhookAddEditModel:
    type: object
    required:
    - callbackUrl
    - eventTypes
    properties:
      eventTypes:
        type: array
        items:
          type: string
          enum:
          - UserStatusChanged
          - SessionCreated
          - SessionStarted
          - SessionEnded
          - SessionForwarded
          - SessionOperatorJoined
          - SessionOperatorLeft
          - SessionOperatorConcluded
          - SessionCallParamsUpdated
          - EmailThreadCreated
          - EmailThreadOperatorJoined
          - EmailThreadOperatorLeft
          - EmailThreadForwarded
      callbackUrl:
        type: string
  PublicApi.Widget.Models.WidgetPresetModel:
    type: object
    properties:
      id:
        type: integer
        format: int32
      name:
        type: string
      buttonVisible:
        type: boolean
      departmentId:
        type: integer
        format: int32
  PublicApi.Widget.Models.WidgetConfigModel:
    type: object
    properties:
      configType:
        type: string
        enum:
        - BUTTON
        - WINDOW
        - PRESET_PRIVATE
        - PRESET_PUBLIC
      buttonType:
        type: string
        enum:
        - CHAT_MLUVII
        - CHAT_CUSTOM
        - CHAT_CLOUD
        - CHAT_THUMB
        - CHAT_COMICS
        - VIDEO
        - PHONE
        - PHONE_MLUVII
        - PHONE_PANEL_CIRCLE
        - PHONE_BOOKMARK
      propertyName:
        type: string
      defaultValue:
        type: string
      currentValue:
        type: string
      language:
        type: string
      formId:
        type: integer
        format: int32
  PublicApi.Widget.Models.UpdateChatButtonModel:
    type: object
    properties:
      displayButton:
        type: boolean
  PublicApi.Widget.Models.WidgetFormsModel:
    type: object
    required:
    - configRecords
    properties:
      configRecords:
        type: array
        items:
          $ref: '#/definitions/PublicApi.Widget.Models.WidgetFormModel'
  PublicApi.Widget.Models.WidgetFormModel:
    type: object
    required:
    - propertyName
    properties:
      propertyName:
        type: string
      formId:
        type: integer
        format: int32
  PublicApi.Widget.Models.WidgetConfigRecordsModel:
    type: object
    required:
    - configRecords
    properties:
      configRecords:
        type: array
        items:
          $ref: '#/definitions/PublicApi.Widget.Models.WidgetConfigRecordModel'
  PublicApi.Widget.Models.WidgetConfigRecordModel:
    type: object
    required:
    - configType
    - propertyName
    properties:
      configType:
        type: string
        enum:
        - BUTTON
        - WINDOW
        - PRESET_PRIVATE
        - PRESET_PUBLIC
      buttonType:
        type: string
        enum:
        - CHAT_MLUVII
        - CHAT_CUSTOM
        - CHAT_CLOUD
        - CHAT_THUMB
        - CHAT_COMICS
        - VIDEO
        - PHONE
        - PHONE_MLUVII
        - PHONE_PANEL_CIRCLE
        - PHONE_BOOKMARK
      propertyName:
        type: string
      language:
        type: string
      value:
        type: string
