swagger: '2.0'
host: orgId.via.aspect-cloud.net
schemes:
  - https
consumes:
  - application/json
produces:
  - application/json
info:
  version: 2.0.0
  title: Alvaria&trade; Cloud Provisioning REST API
  contact:
    name: Alvaria
    url: 'http://www.alvaria.com'
  license:
    name: 'License: Creative Commons Attribution 4.0 International Public License'
    url: 'https://creativecommons.org/licenses/by/4.0/legalcode'
  description: |-
    ## Overview

      The Alvaria&trade; Cloud Provisioning REST APIs enable developers to retrieve and manage properties related to Alvaria&trade; Cloud resources. Consumers of these APIs can access specific Via information pertaining to users, teams, work types, and system external dials. All resource instances must be accessed using Alvaria supplied identifiers. The data queried and returned will pertain to the organization supplied.
paths:
  '/via/v2/organizations/{orgId}/provisioning/users':
    parameters:
      - $ref: '#/parameters/orgId'
      - $ref: '#/parameters/authorization'
      - $ref: '#/parameters/x-api-key'
    get:
      description: Used to retrieve a list of Users
      tags:
        - Users
      operationId: getUsersCollection
      summary: Get UsersCollection
      security:
        - oauth:
            - provisioningapi
      parameters:
        - $ref: '#/parameters/email'
        - $ref: '#/parameters/preferredNameValue'
        - $ref: '#/parameters/includeInactive'
        - $ref: '#/parameters/startIndex'
        - $ref: '#/parameters/maxResults'
      responses:
        '200':
          description: Successful response
          schema:
            $ref: '#/definitions/UsersCollection'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
        '404':
          description: No User exists for the provided ID
          schema:
            $ref: '#/definitions/Error'
        '405':
          description: Method Not Allowed
          schema:
            $ref: '#/definitions/Error'
        '429':
          description: Throttled
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/Error'
  '/via/v2/organizations/{orgId}/provisioning/users/{userId}':
    parameters:
      - $ref: '#/parameters/orgId'
      - $ref: '#/parameters/userId'
      - $ref: '#/parameters/authorization'
      - $ref: '#/parameters/x-api-key'
    get:
      description: Used to retrieve a list of Users
      tags:
        - Users
      operationId: getUsers
      summary: Get User
      security:
        - oauth:
            - provisioningapi
      responses:
        '200':
          description: Successful response
          schema:
            $ref: '#/definitions/User'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
        '404':
          description: No User exists for the provided ID
          schema:
            $ref: '#/definitions/Error'
        '405':
          description: Method Not Allowed
          schema:
            $ref: '#/definitions/Error'
        '429':
          description: Throttled
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/Error'
  '/via/v2/organizations/{orgId}/provisioning/users/{userId}/managerOf':
    parameters:
      - $ref: '#/parameters/userId'
      - $ref: '#/parameters/orgId'
      - $ref: '#/parameters/authorization'
      - $ref: '#/parameters/x-api-key'
    get:
      description: Used to retrieve a list of teams managed by this User
      tags:
        - Users
      operationId: getUsersManagedTeams
      summary: Get UsersManagedTeams
      security:
        - oauth:
            - provisioningapi
      responses:
        '200':
          description: Successful response
          schema:
            $ref: '#/definitions/TeamCollection'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
        '404':
          description: No User exists for the provided ID
          schema:
            $ref: '#/definitions/Error'
        '405':
          description: Method Not Allowed
          schema:
            $ref: '#/definitions/Error'
        '429':
          description: Throttled
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/Error'
  '/via/v2/organizations/{orgId}/provisioning/teams':
    parameters:
      - $ref: '#/parameters/orgId'
      - $ref: '#/parameters/authorization'
      - $ref: '#/parameters/x-api-key'
    get:
      description: Used to retrieve a list of teams
      tags:
        - Teams
      operationId: getTeamsCollection
      summary: Get Teams
      security:
        - oauth:
            - provisioningapi
      parameters:
        - $ref: '#/parameters/includeInactive'
        - $ref: '#/parameters/startIndex'
        - $ref: '#/parameters/maxResults'
      responses:
        '200':
          description: Successful response
          schema:
            $ref: '#/definitions/TeamCollection'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
        '405':
          description: Method Not Allowed
          schema:
            $ref: '#/definitions/Error'
        '429':
          description: Throttled
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/Error'
  '/via/v2/organizations/{orgId}/provisioning/teams/{teamId}/teamMembers':
    parameters:
      - $ref: '#/parameters/orgId'
      - $ref: '#/parameters/teamId'
      - $ref: '#/parameters/authorization'
      - $ref: '#/parameters/x-api-key'
    get:
      tags:
        - Teams
      operationId: getTeamsMembers
      summary: Get TeamMembers
      description: >-
        Used to retrieve all members and owners of an Alvaria&trade; Cloud team.
        The 'state' field will be deprecated.
      security:
        - oauth:
            - provisioningapi
      parameters:
        - name: state
          required: false
          in: query
          description: >-
            Filters users returned to those in the provided state. The filter
            will be deprecated.
          type: string
          enum:
            - Uninitialized
            - Logged On
            - Active
            - Idle
            - Not Ready
            - Preview
            - Wrap
            - Park
            - Park Warning
            - Wrap Warning
            - Reserved
            - MultiLine
            - Held
            - Pending Active
            - Logged Off
            - User Cleared
            - All
          default: All
      responses:
        '200':
          description: Successful response
          schema:
            $ref: '#/definitions/TeamMembersState'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
        '404':
          description: No Team exists for the provided entity ID
          schema:
            $ref: '#/definitions/Error'
        '405':
          description: Method Not Allowed
          schema:
            $ref: '#/definitions/Error'
        '429':
          description: Throttled
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/Error'
  '/via/v2/organizations/{orgId}/provisioning/teams/{teamId}/teamOwners':
    parameters:
      - $ref: '#/parameters/orgId'
      - $ref: '#/parameters/teamId'
      - $ref: '#/parameters/authorization'
      - $ref: '#/parameters/x-api-key'
    get:
      tags:
        - Teams
      operationId: getTeamsOwners
      summary: Get TeamOwners
      description: >-
        Used to retrieve all members and owners of an Alvaria&trade; Cloud team.
        The 'state' field will be deprecated.
      security:
        - oauth:
            - provisioningapi
      parameters:
        - name: state
          required: false
          in: query
          description: >-
            Filters users returned to those in the provided state. The filter
            will be deprecated.
          type: string
          enum:
            - Uninitialized
            - Logged On
            - Active
            - Idle
            - Not Ready
            - Preview
            - Wrap
            - Park
            - Park Warning
            - Wrap Warning
            - Reserved
            - MultiLine
            - Held
            - Pending Active
            - Logged Off
            - User Cleared
            - All
          default: All
      responses:
        '200':
          description: Successful response
          schema:
            $ref: '#/definitions/TeamOwnersState'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
        '404':
          description: No Team exists for the provided entity ID
          schema:
            $ref: '#/definitions/Error'
        '405':
          description: Method Not Allowed
          schema:
            $ref: '#/definitions/Error'
        '429':
          description: Throttled
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/Error'
  '/via/v2/organizations/{orgId}/provisioning/teams/{teamId}/allUsers':
    parameters:
      - $ref: '#/parameters/teamId'
      - $ref: '#/parameters/orgId'
      - $ref: '#/parameters/authorization'
      - $ref: '#/parameters/x-api-key'
    get:
      tags:
        - Teams
      operationId: getTeamsAllUsers
      summary: Get TeamAllUsers
      description: >-
        Used to retrieve all members and owners of an Alvaria&trade; Cloud team.
        The 'state' field will be deprecated.
      security:
        - oauth:
            - provisioningapi
      parameters:
        - name: state
          required: false
          in: query
          description: >-
            Filters users returned to those in the provided state. The filter
            will be deprecated.
          type: string
          enum:
            - Uninitialized
            - Logged On
            - Active
            - Idle
            - Not Ready
            - Preview
            - Wrap
            - Park
            - Park Warning
            - Wrap Warning
            - Reserved
            - MultiLine
            - Held
            - Pending Active
            - Logged Off
            - User Cleared
            - All
          default: All
      responses:
        '200':
          description: Successful response
          schema:
            $ref: '#/definitions/AllUsersState'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
        '404':
          description: No Team exists for the provided entity ID
          schema:
            $ref: '#/definitions/Error'
        '405':
          description: Method Not Allowed
          schema:
            $ref: '#/definitions/Error'
        '429':
          description: Throttled
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/Error'
  '/via/v2/organizations/{orgId}/provisioning/systemExternals':
    parameters:
      - $ref: '#/parameters/orgId'
      - $ref: '#/parameters/authorization'
      - $ref: '#/parameters/x-api-key'
    get:
      description: Used to retrieve a list of SystemExternals
      tags:
        - SystemExternals
      operationId: getSystemExternalCollection
      summary: Get SystemExternalList
      security:
        - oauth:
            - provisioningapi
      parameters:
        - $ref: '#/parameters/includeInactive'
        - $ref: '#/parameters/startIndex'
        - $ref: '#/parameters/maxResults'
      responses:
        '200':
          description: Successful response
          schema:
            $ref: '#/definitions/SystemExternalCollection'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
        '404':
          description: No System External Dial exists for the provided ID
          schema:
            $ref: '#/definitions/Error'
        '405':
          description: Method Not Allowed
          schema:
            $ref: '#/definitions/Error'
        '429':
          description: Throttled
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/Error'
    post:
      description: Used to create a SystemExternal Dial
      tags:
        - SystemExternals
      operationId: postSystemExternals
      summary: Post SystemExternal
      security:
        - oauth:
            - provisioningapi
      parameters:
        - name: body
          in: body
          description: The System External Dial to be created.
          required: true
          schema:
            $ref: '#/definitions/SystemExternalPost'
      responses:
        '201':
          description: Successful response
          schema:
            $ref: '#/definitions/SystemExternal'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
        '405':
          description: Method Not Allowed
          schema:
            $ref: '#/definitions/Error'
        '409':
          description: Client Error - Conflict
          schema:
            $ref: '#/definitions/Error'
        '422':
          description: Validation exception
          schema:
            $ref: '#/definitions/Error'
        '429':
          description: Throttled
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/Error'
  '/via/v2/organizations/{orgId}/provisioning/systemExternals/{systemExternalId}':
    parameters:
      - $ref: '#/parameters/orgId'
      - $ref: '#/parameters/systemExternalId'
    get:
      description: Used to retrieve a list of SystemExternals
      tags:
        - SystemExternals
      operationId: getSystemExternals
      summary: Get SystemExternal
      security:
        - oauth:
            - provisioningapi
      parameters:
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
      responses:
        '200':
          description: Successful response
          schema:
            $ref: '#/definitions/SystemExternal'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
        '404':
          description: No System External Dial exists for the provided ID
          schema:
            $ref: '#/definitions/Error'
        '429':
          description: Throttled
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/Error'
    put:
      description: Used to update a SystemExternal Dial
      tags:
        - SystemExternals
      operationId: putSystemExternals
      summary: Put SystemExternal
      security:
        - oauth:
            - provisioningapi
      parameters:
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
        - name: systemExternal
          description: The updated representation of the System External Dial.
          in: body
          required: true
          schema:
            $ref: '#/definitions/SystemExternalPut'
      responses:
        '200':
          description: Successful response
          schema:
            $ref: '#/definitions/SystemExternal'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
        '404':
          description: No System External Dial exists for the provided ID
          schema:
            $ref: '#/definitions/Error'
        '405':
          description: Method Not Allowed
          schema:
            $ref: '#/definitions/Error'
        '409':
          description: >-
            Another client has updated this System External Dial instance so the
            requested changes are in conflict.  A new GET operation must be
            performed on the System Speed Dial instance to retrieve a new
            lastModifiedTimestamp or version and reissue the PUT request.
          schema:
            $ref: '#/definitions/Error'
        '422':
          description: Validation exception
          schema:
            $ref: '#/definitions/Error'
        '429':
          description: Throttled
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/Error'
    patch:
      description: Used to patch a SystemExternal Dial
      tags:
        - SystemExternals
      operationId: patchSystemExternals
      summary: Patch SystemExternal
      security:
        - oauth:
            - provisioningapi
      parameters:
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
        - name: body
          in: body
          description: Updated representation of the System External Dial.
          required: true
          schema:
            $ref: '#/definitions/SystemExternalPatch'
      responses:
        '200':
          description: Successful response
          schema:
            $ref: '#/definitions/SystemExternal'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
        '404':
          description: No System External Dial exists for the provided ID
          schema:
            $ref: '#/definitions/Error'
        '405':
          description: Method Not Allowed
          schema:
            $ref: '#/definitions/Error'
        '409':
          description: >-
            Another client has updated this System External Dial instance so the
            requested changes are in conflict.  A new GET operation must be
            performed on the System Speed Dial instance to retrieve a new
            lastModifiedTimestamp or version and reissue the PATCH request.
          schema:
            $ref: '#/definitions/Error'
        '422':
          description: Validation exception
          schema:
            $ref: '#/definitions/Error'
        '429':
          description: Throttled
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/Error'
    delete:
      description: Used to delete a SystemExternal Dial
      tags:
        - SystemExternals
      operationId: deleteSystemExternals
      summary: Delete SystemExternal
      security:
        - oauth:
            - provisioningapi
      parameters:
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
      responses:
        '204':
          description: Successful response
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
        '404':
          description: No Entity exists for the provided ID
          schema:
            $ref: '#/definitions/Error'
        '405':
          description: Method Not Allowed
          schema:
            $ref: '#/definitions/Error'
        '408':
          description: Request Timeout
          schema:
            $ref: '#/definitions/Error'
        '422':
          description: The specified Entity has associations and cannot be deleted
          schema:
            $ref: '#/definitions/Error'
        '429':
          description: Throttled
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/Error'
  '/via/v2/organizations/{orgId}/provisioning/workTypes/{workTypeId}/dispositions':
    parameters:
      - $ref: '#/parameters/orgId'
    get:
      tags:
        - WorkTypes
      operationId: getWorkTypeDispositions
      summary: Get WorkTypeDispositions
      description: >-
        Retrieves details about the dispositions assigned to a work type's
        assigned disposition routing plan.
      security:
        - oauth:
            - ConfigurationService
      parameters:
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
        - name: workTypeId
          in: path
          description: Alvaria-generated unique ID for a work type
          required: true
          type: string
        - name: dispositionType
          in: query
          description: This may be used to filter by disposition type.
          required: false
          type: string
          enum:
            - systemDefined
            - userDefined
      responses:
        '200':
          description: Successful response
          schema:
            $ref: '#/definitions/DispositionCollection'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
        '404':
          description: No Work Type exists for the provided ID
          schema:
            $ref: '#/definitions/Error'
        '405':
          description: Method Not Allowed
          schema:
            $ref: '#/definitions/Error'
        '429':
          description: Throttled
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/Error'
  '/via/v2/organizations/{orgId}/provisioning/dispositionRoutingPlans':
    get:
      operationId: getDispositionRoutingPlanCollection
      summary: Get DispositionRoutingPlanCollection
      description: >-
        Retrieves a list of disposition routing plans. List may be optionally
        filtered by channel type.
      tags:
        - DispositionRoutingPlans
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - name: channelType
          in: query
          description: >-
            filters results based on Disposition Routing Plan channel type,
            Example= voice,chat,email
          required: false
          type: string
          enum:
            - voice
            - email
            - chat
            - sms
            - screen
        - name: orgId
          in: path
          required: true
          type: string
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
      responses:
        '200':
          description: Success - OK
          schema:
            $ref: '#/definitions/DispositionRoutingPlanCollection'
        '400':
          description: Client Error - Bad Request
          schema:
            $ref: '#/definitions/ErrorResponse'
        '401':
          description: Client Error - Unauthorized
        '404':
          description: Client Error - Not Found
          schema:
            $ref: '#/definitions/ErrorResponse'
        '405':
          description: Client Error - Method Not Allowed
          schema:
            $ref: '#/definitions/ErrorResponse'
        '429':
          description: Client Error - Too Many Requests
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: Server Error - Internal Server Error
          schema:
            $ref: '#/definitions/ErrorResponse'
      security:
        - oauth:
            - provisioningapi
  '/via/v2/organizations/{orgId}/provisioning/dispositionRoutingPlans/{dispPlanId}/rules':
    get:
      operationId: getDispositionRoutingPlanRules
      summary: Get DispositionRoutingPlanRules
      description: >-
        Retrieves a list of dispositions that belong to the disposition routing
        plan specified by dispPlanId.
      tags:
        - DispositionRoutingPlans
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - name: dispPlanId
          in: path
          required: true
          type: string
        - name: orgId
          in: path
          required: true
          type: string
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
      responses:
        '200':
          description: Success - OK
          schema:
            $ref: '#/definitions/DispositionRoutingPlanRulesCollection'
        '400':
          description: Client Error - Bad Request
          schema:
            $ref: '#/definitions/ErrorResponse'
        '401':
          description: Client Error - Unauthorized
        '404':
          description: Client Error - Not Found
          schema:
            $ref: '#/definitions/ErrorResponse'
        '405':
          description: Client Error - Method Not Allowed
          schema:
            $ref: '#/definitions/ErrorResponse'
        '429':
          description: Client Error - Too Many Requests
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: Server Error - Internal Server Error
          schema:
            $ref: '#/definitions/ErrorResponse'
      security:
        - oauth:
            - provisioningapi
  '/via/v2/organizations/{orgId}/provisioning/users/{userId}/workHandlerRules':
    parameters:
      - $ref: '#/parameters/orgId'
    get:
      tags:
        - Users
      operationId: getUserWorkHandlerRules
      summary: Get UserWorkHandlerRules
      description: Retrieves settings for the agent specified by 'userId.'
      security:
        - oauth:
            - provisioningapi
      parameters:
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
        - name: userId
          in: path
          description: Alvaria-generated unique ID for a work type
          required: true
          type: string
      responses:
        '200':
          description: Successful response
          schema:
            $ref: '#/definitions/UserWorkHandlerRules'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
        '404':
          description: No user exists for the provided ID
          schema:
            $ref: '#/definitions/Error'
        '405':
          description: Method Not Allowed
          schema:
            $ref: '#/definitions/Error'
        '429':
          description: Throttled
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/Error'
    put:
      tags:
        - Users
      operationId: putUserWorkHandlerRules
      summary: Put UserWorkHandlerRules
      description: Update settings for the agent specified by 'userId.'
      security:
        - oauth:
            - provisioningapi
      parameters:
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
        - name: userId
          in: path
          description: Alvaria-generated unique ID for a work type
          required: true
          type: string
        - in: body
          name: PutUserWorkHandlerRulesRequest
          required: true
          schema:
            $ref: '#/definitions/PutUserWorkHandlerRulesRequest'
      responses:
        '200':
          description: Successful response
          schema:
            $ref: '#/definitions/UserWorkHandlerRules'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
        '404':
          description: No user exists for the provided ID
          schema:
            $ref: '#/definitions/Error'
        '405':
          description: Method Not Allowed
          schema:
            $ref: '#/definitions/Error'
        '409':
          description: Client Error - Conflict
          schema:
            $ref: '#/definitions/ErrorResponse'
        '429':
          description: Throttled
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/Error'
  '/via/v2/organizations/{orgId}/provisioning/workTypes':
    parameters:
      - $ref: '#/parameters/orgId'
    get:
      operationId: getWorkTypesCollection
      summary: Get WorkTypeCollection
      description: >-
        Retrieve a list of all work types. The list may be filtered by work type
        direction    (inbound, outreach), channel type (voice, email, chat,
        sms), queue type (terminal, longest idle), and whether the work type's
        handlers can initiate outbound email. 
      tags:
        - WorkTypes
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
        - $ref: '#/parameters/includeInactive'
        - name: direction
          in: query
          description: >-
            Direction of a work type. This is used to filter by work type
            direction.
          required: false
          type: string
          enum:
            - inbound
            - outreach
        - name: workTypeRules.email
          description: Email work type rules
          in: query
          required: false
          type: string
          enum:
            - CanInitiateNewOutboundEmail
        - name: queueType
          in: query
          description: Type of queue. This is used to filter by queue type.
          required: false
          type: string
          enum:
            - longestIdle
            - terminal
        - name: channelType
          in: query
          description: Work type channel. This is used to filter by work type channel.
          required: false
          type: string
          enum:
            - voice
            - email
            - chat
            - sms
        - name: friendlyName
          in: query
          description: 'Name of a specific work type to fetch '
          required: false
          type: string
      responses:
        '200':
          description: Success - OK
          schema:
            $ref: '#/definitions/WorkTypeList'
        '400':
          description: Client Error - Bad Request
          schema:
            $ref: '#/definitions/ErrorResponse'
        '401':
          description: Client Error - Unauthorized
        '404':
          description: Client Error - Not Found
          schema:
            $ref: '#/definitions/ErrorResponse'
        '405':
          description: Client Error - Method Not Allowed
          schema:
            $ref: '#/definitions/ErrorResponse'
        '429':
          description: Client Error - Too Many Requests
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: Server Error - Internal Server Error
          schema:
            $ref: '#/definitions/ErrorResponse'
      security:
        - oauth:
            - provisioningapi
  '/via/v2/organizations/{orgId}/provisioning/outreachSMSWorkType/{workTypeId}':
    get:
      tags:
        - WorkTypes
      summary: Get Outreach SMS WorkType
      description: Used to retrieve an Outreach SMS WorkType
      operationId: getOutreachSMSWorkType
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization.
          required: true
          type: string
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization endpoint
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage.
          required: true
          type: string
        - name: workTypeId
          in: path
          description: Alvaria-generated unique ID for an Outreach SMS Worktype
          required: true
          type: string
      security:
        - oauth:
            - provisioningapi
      responses:
        '200':
          description: Successful response
          schema:
            $ref: '#/definitions/OutreachSMSWorkType'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
        '404':
          description: No Outreach SMS Work Type exists for the provided ID
          schema:
            $ref: '#/definitions/Error'
        '429':
          description: Throttled
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/Error'
  '/via/v2/organizations/{orgId}/provisioning/outreachEmailWorkType/{workTypeId}':
    get:
      tags:
        - WorkTypes
      summary: Get Outreach Email WorkType
      description: Used to retrieve an Outreach Email WorkType
      operationId: getOutreachEmailWorkType
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization.
          required: true
          type: string
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization endpoint
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage.
          required: true
          type: string
        - name: workTypeId
          in: path
          description: Alvaria-generated unique ID for an Outreach Email Worktype
          required: true
          type: string
      security:
        - oauth:
            - provisioningapi
      responses:
        '200':
          description: Successful response
          schema:
            $ref: '#/definitions/OutreachEmailWorkType'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
        '404':
          description: No Outreach Email Worktype exists for the provided ID
          schema:
            $ref: '#/definitions/Error'
        '429':
          description: Throttled
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/Error'
  '/via/v2/organizations/{orgId}/provisioning/workTypeGroups':
    parameters:
      - $ref: '#/parameters/orgId'
    get:
      operationId: getWorkTypeGroupsCollection
      summary: Get WorkTypeGroupsCollection
      description: Retrieve a list of all work type groups.
      tags:
        - WorkTypeGroups
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
      responses:
        '200':
          description: Success - OK
          schema:
            $ref: '#/definitions/WorkTypeGroupList'
        '400':
          description: Client Error - Bad Request
          schema:
            $ref: '#/definitions/ErrorResponse'
        '401':
          description: Client Error - Unauthorized
        '404':
          description: Client Error - Not Found
          schema:
            $ref: '#/definitions/ErrorResponse'
        '405':
          description: Client Error - Method Not Allowed
          schema:
            $ref: '#/definitions/ErrorResponse'
        '429':
          description: Client Error - Too Many Requests
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: Server Error - Internal Server Error
          schema:
            $ref: '#/definitions/ErrorResponse'
      security:
        - oauth:
            - provisioningapi
  '/via/v2/organizations/{orgId}/provisioning/workTypeGroups/{workTypeGroupId}/workTypes':
    parameters:
      - $ref: '#/parameters/orgId'
    get:
      operationId: getWorkTypeCollectionByWorkTypeGroup
      summary: Get WorkTypeCollection By WorkTypeGroup
      description: Retrieve a list of all work types associated with work type group.
      tags:
        - WorkTypeGroups
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
        - name: workTypeGroupId
          in: path
          description: Alvaria-generated unique ID for a work type group
          required: true
          type: string
      responses:
        '200':
          description: Success - OK
          schema:
            $ref: '#/definitions/WorkTypeList'
        '400':
          description: Client Error - Bad Request
          schema:
            $ref: '#/definitions/ErrorResponse'
        '401':
          description: Client Error - Unauthorized
        '404':
          description: Client Error - Not Found
          schema:
            $ref: '#/definitions/ErrorResponse'
        '405':
          description: Client Error - Method Not Allowed
          schema:
            $ref: '#/definitions/ErrorResponse'
        '429':
          description: Client Error - Too Many Requests
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: Server Error - Internal Server Error
          schema:
            $ref: '#/definitions/ErrorResponse'
      security:
        - oauth:
            - provisioningapi
  '/via/v2/organizations/{orgId}/provisioning/users/{userId}/workTypes':
    parameters:
      - $ref: '#/parameters/orgId'
      - $ref: '#/parameters/userId'
    get:
      operationId: getUserWorkTypesCollection
      summary: Get UserWorkTypesCollection
      description: >-
        Retrieve the list of work types that the user is assigned to. The list
        may be filtered by work type direction (inbound, outreach) and/or
        channel type (voice, email, chat, sms)
      tags:
        - Users
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
        - $ref: '#/parameters/includeInactive'
        - name: direction
          in: query
          description: >-
            Direction of a work type. This is used to filter by work type
            direction.
          required: false
          type: string
          enum:
            - inbound
            - outreach
        - name: channelType
          in: query
          description: Work type channel. This is used to filter by work type channel.
          required: false
          type: string
          enum:
            - voice
            - email
            - chat
            - sms
      responses:
        '200':
          description: Success - OK
          schema:
            $ref: '#/definitions/WorkTypeList'
        '400':
          description: Client Error - Bad Request
          schema:
            $ref: '#/definitions/ErrorResponse'
        '401':
          description: Client Error - Unauthorized
        '404':
          description: Client Error - Not Found
          schema:
            $ref: '#/definitions/ErrorResponse'
        '405':
          description: Client Error - Method Not Allowed
          schema:
            $ref: '#/definitions/ErrorResponse'
        '429':
          description: Client Error - Too Many Requests
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: Server Error - Internal Server Error
          schema:
            $ref: '#/definitions/ErrorResponse'
      security:
        - oauth:
            - provisioningapi
  '/via/v2/organizations/{orgId}/provisioning/users/{userId}/workTypes/{workTypeId}/onlineAgents':
    parameters:
      - $ref: '#/parameters/orgId'
    get:
      operationId: getOnlineAgentsCollection
      summary: Get list of online agents for consultation or transfer
      description: >-
        Retrieves the list of online agents who may be consulted or transferred
        an interaction from the specified work type.
      tags:
        - Users
      security:
        - oauth:
            - provisioningapi
      parameters:
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
        - name: userId
          in: path
          description: >-
            The Alvaria generated unique identifier for the user instance. The
            ID is determined through the GET /users endpoint.
          required: true
          type: string
        - name: workTypeId
          in: path
          description: Alvaria-generated unique ID for a work type
          required: true
          type: string
      responses:
        '200':
          description: Successful response
          schema:
            $ref: '#/definitions/UsersCollection'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
        '404':
          description: No User exists for the provided ID
          schema:
            $ref: '#/definitions/Error'
        '405':
          description: Method Not Allowed
          schema:
            $ref: '#/definitions/Error'
        '429':
          description: Throttled
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/Error'
  '/via/v2/organizations/{orgId}/provisioning/users/{userId}/callBackWorkTypes':
    parameters:
      - $ref: '#/parameters/orgId'
    get:
      operationId: getUserCallBackWorkTypesCollection
      summary: Get Outreach work types allowing callbacks
      description: >-
        Retrieves the list of Outreach work types allowing the scheduling of
        callbacks.
      tags:
        - Users
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
        - $ref: '#/parameters/includeInactive'
        - name: userId
          in: path
          description: >-
            The Alvaria generated unique identifier for the user instance. The
            ID is determined through the GET /users endpoint.
          required: true
          type: string
      responses:
        '200':
          description: Success - OK
          schema:
            $ref: '#/definitions/CallBackWorkTypeList'
        '400':
          description: Client Error - Bad Request
          schema:
            $ref: '#/definitions/ErrorResponse'
        '401':
          description: Client Error - Unauthorized
        '404':
          description: Client Error - Not Found
          schema:
            $ref: '#/definitions/ErrorResponse'
        '405':
          description: Client Error - Method Not Allowed
          schema:
            $ref: '#/definitions/ErrorResponse'
        '429':
          description: Client Error - Too Many Requests
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: Server Error - Internal Server Error
          schema:
            $ref: '#/definitions/ErrorResponse'
      security:
        - oauth:
            - provisioningapi
  '/via/v2/organizations/{orgId}/provisioning/users/{userId}/hiddenWorkTypes':
    parameters:
      - $ref: '#/parameters/orgId'
    get:
      operationId: getHiddenWorkTypesCollection
      summary: Get collection of hidden work types for a given user
      description: >-
        Retrieve the list of work types that should not appear in a user's
        transfer destination list. 
      tags:
        - Users
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
        - name: userId
          in: path
          description: Alvaria-generated unique ID for a user
          required: true
          type: string
      responses:
        '200':
          description: Success - OK
          schema:
            $ref: '#/definitions/WorkTypeList'
        '400':
          description: Client Error - Bad Request
          schema:
            $ref: '#/definitions/ErrorResponse'
        '401':
          description: Client Error - Unauthorized
        '404':
          description: Client Error - Not Found
          schema:
            $ref: '#/definitions/ErrorResponse'
        '405':
          description: Client Error - Method Not Allowed
          schema:
            $ref: '#/definitions/ErrorResponse'
        '429':
          description: Client Error - Too Many Requests
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: Server Error - Internal Server Error
          schema:
            $ref: '#/definitions/ErrorResponse'
      security:
        - oauth:
            - provisioningapi
    put:
      operationId: putHiddenWorkTypesCollection
      summary: Replace collection of hidden work types for a given user
      description: >-
        This API updates the user's list of work types that should be filtered
        from the list of transfer destinations presented to an agent while on an
        interaction.
      tags:
        - Users
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
        - name: userId
          in: path
          required: true
          description: Alvaria-generated unique ID for a user
          type: string
        - in: body
          name: PutHiddenWorkTypeRequest
          required: true
          schema:
            $ref: '#/definitions/PutHiddenWorkTypesRequest'
      responses:
        '200':
          description: Success - OK
          schema:
            $ref: '#/definitions/WorkTypeList'
      security:
        - oauth:
            - provisioningapi
  '/via/v2/organizations/{orgId}/provisioning/users/{userId}/destinationWorkTypes':
    parameters:
      - $ref: '#/parameters/orgId'
    get:
      operationId: getDestinationWorkTypesCollection
      summary: >-
        Get the collection of work types to which this user may transfer an
        interaction
      description: >-
        Retrieve the collection of configured work types that should appear in a
        user's transfer destination list.
      tags:
        - Users
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
        - name: userId
          in: path
          description: Alvaria-generated unique ID for a user
          required: true
          type: string
        - name: direction
          in: query
          description: >-
            Direction of a work type. This is used to filter by work type
            direction.
          required: false
          type: string
          enum:
            - inbound
            - outreach
        - name: channelType
          in: query
          description: Work type channel. This is used to filter by work type channel.
          required: false
          type: string
          enum:
            - voice
            - email
            - chat
            - sms
      responses:
        '200':
          description: Success - OK
          schema:
            $ref: '#/definitions/WorkTypeList'
        '400':
          description: Client Error - Bad Request
          schema:
            $ref: '#/definitions/ErrorResponse'
        '401':
          description: Client Error - Unauthorized
        '404':
          description: Client Error - Not Found
          schema:
            $ref: '#/definitions/ErrorResponse'
        '405':
          description: Client Error - Method Not Allowed
          schema:
            $ref: '#/definitions/ErrorResponse'
        '429':
          description: Client Error - Too Many Requests
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: Server Error - Internal Server Error
          schema:
            $ref: '#/definitions/ErrorResponse'
      security:
        - oauth:
            - provisioningapi
  '/via/v2/organizations/{orgId}/provisioning/workTypes/{workTypeId}':
    parameters:
      - $ref: '#/parameters/orgId'
    get:
      tags:
        - WorkTypes
      operationId: getWorkType
      description: Used to retrieve a WorkType
      summary: Get WorkType
      security:
        - oauth:
            - provisioningapi
      parameters:
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
        - name: workTypeId
          in: path
          description: Alvaria-generated unique ID for a work type
          required: true
          type: string
      responses:
        '200':
          description: Successful response
          schema:
            $ref: '#/definitions/WorkType'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
        '404':
          description: No Work Type exists for the provided ID
          schema:
            $ref: '#/definitions/Error'
        '429':
          description: Throttled
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/Error'
  '/via/v2/organizations/{orgId}/provisioning/workTypes/{workTypeId}/workHandlers':
    parameters:
      - $ref: '#/parameters/orgId'
    get:
      operationId: getWorkHandlersCollection
      summary: Get WorkHandlersCollection
      description: 'Retrieve the list of agents assigned to a specific work type instance. '
      tags:
        - WorkTypes
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
        - name: workTypeId
          in: path
          description: Alvaria-generated unique ID for a work type
          required: true
          type: string
      responses:
        '200':
          description: Success - OK
          schema:
            $ref: '#/definitions/WorkHandlerCollection'
        '400':
          description: Client Error - Bad Request
          schema:
            $ref: '#/definitions/ErrorResponse'
        '401':
          description: Client Error - Unauthorized
        '404':
          description: Client Error - Not Found
          schema:
            $ref: '#/definitions/ErrorResponse'
        '405':
          description: Client Error - Method Not Allowed
          schema:
            $ref: '#/definitions/ErrorResponse'
        '429':
          description: Client Error - Too Many Requests
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: Server Error - Internal Server Error
          schema:
            $ref: '#/definitions/ErrorResponse'
      security:
        - oauth:
            - provisioningapi
    put:
      operationId: putWorkHandlersCollection
      summary: Put WorkHandlersCollection
      description: >-
        This API updates the work type instance indicated by the workTypeId with
        a new ordered list of agents. Agents from a previous GET operation can
        be used to provide an updated ordering in this call. Alternatively,
        agents may be removed and/or added from the list retrieved in a previous
        GET operation. Configuration Manager Considerations. WorkType instances
        can be modified through the Configuration Manager as well as
        programmatically through these API endpoints. This means that updates
        issued successfully through the API could subsequently be changed
        through the Configuration Manager and vice versa, inadvertently changing
        expected routing behavior.  Care should be taken when making workType
        changes in the Configuration Manager, especially agent assignment, when
        using the provisioning REST APIs.
      tags:
        - WorkTypes
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
        - name: workTypeId
          in: path
          required: true
          description: Alvaria-generated unique ID for a work type
          type: string
        - in: body
          name: PostworkTypeRequest
          required: true
          schema:
            $ref: '#/definitions/PostWorkHandlersRequest'
      responses:
        '200':
          description: Success - OK
          schema:
            $ref: '#/definitions/WorkHandlerCollection'
      security:
        - oauth:
            - provisioningapi
  '/via/v2/organizations/{orgId}/provisioning/workTypes/{workTypeId}/workHandlerRules':
    parameters:
      - $ref: '#/parameters/orgId'
    get:
      tags:
        - WorkTypes
      operationId: getWorkTypeWorkHandlerRules
      summary: Get WorkTypeWorkHandlerRules
      description: >-
        Gets a collection of agent settings for the Work Type specified by
        'workTypeId.'
      security:
        - oauth:
            - provisioningapi
      parameters:
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
        - name: workTypeId
          in: path
          description: Alvaria-generated unique ID for a work type
          required: true
          type: string
      responses:
        '200':
          description: Successful response
          schema:
            $ref: '#/definitions/WorkTypeWorkHandlerRules'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
        '404':
          description: No Work Type exists for the provided ID
          schema:
            $ref: '#/definitions/Error'
        '405':
          description: Method Not Allowed
          schema:
            $ref: '#/definitions/Error'
        '429':
          description: Throttled
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/Error'
    put:
      tags:
        - WorkTypes
      operationId: putWorkTypeWorkHandlerRules
      summary: Put WorkTypeWorkHandlerRules
      description: >-
        Update a collection of agent settings for the Work Type specified by
        'workTypeId.'
      security:
        - oauth:
            - provisioningapi
      parameters:
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
        - name: workTypeId
          in: path
          description: Alvaria-generated unique ID for a work type
          required: true
          type: string
        - in: body
          name: PutWorkTypeWorkHandlerRulesRequest
          required: true
          schema:
            $ref: '#/definitions/PutWorkTypeWorkHandlerRulesRequest'
      responses:
        '200':
          description: Successful response
          schema:
            $ref: '#/definitions/WorkTypeWorkHandlerRules'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
        '404':
          description: No Work Type exists for the provided ID
          schema:
            $ref: '#/definitions/Error'
        '405':
          description: Method Not Allowed
          schema:
            $ref: '#/definitions/Error'
        '409':
          description: Client Error - Conflict
          schema:
            $ref: '#/definitions/ErrorResponse'
        '429':
          description: Throttled
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/Error'
  '/via/v2/organizations/{orgId}/provisioning/workTypes/{workTypeId}/audioMessages':
    get:
      operationId: getworkTypeAudioMessagesCollection
      summary: Get WorkTypeAudioMessagesCollection
      description: >-
        Retrieves the collection of audio messages associated to the work type
        specified by 'workTypeId'
      tags:
        - WorkTypes
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/orgId'
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
        - name: workTypeId
          in: path
          required: true
          type: string
          description: The Alvaria generated unique identifier for the work type instance.
      responses:
        '200':
          description: Success - OK
          schema:
            $ref: '#/definitions/AudioMessageCollection'
          headers:
            Access-Control-Allow-Origin:
              type: string
        '400':
          description: Client Error - Bad Request
          schema:
            $ref: '#/definitions/ErrorResponse'
        '401':
          description: Client Error - Unauthorized
        '404':
          description: Client Error - Not Found
        '405':
          description: Client Error - Method Not Allowed
          schema:
            $ref: '#/definitions/ErrorResponse'
        '429':
          description: Client Error - Too Many Requests
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: Server Error - Internal Server Error
          schema:
            $ref: '#/definitions/ErrorResponse'
      security:
        - oauth:
            - provisioningapi
  '/via/v2/organizations/{orgId}/provisioning/emailTemplates':
    get:
      operationId: getEmailTemplatesCollection
      summary: Get EmailTemplatesCollection
      description: Get EmailTemplatesCollection
      tags:
        - EmailTemplates
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/orgId'
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
        - name: templateType
          in: query
          required: false
          type: string
          enum:
            - acknowledgement
            - standardResponse
            - outreachCampaign
          description: Limits response to email templates of the specified template type
      responses:
        '200':
          description: Success - OK
          schema:
            $ref: '#/definitions/EmailTemplateFragmentCollection'
        '400':
          description: Client Error - Bad Request
          schema:
            $ref: '#/definitions/ErrorResponse'
        '401':
          description: Client Error - Unauthorized
        '404':
          description: Client Error - Not Found
          schema:
            $ref: '#/definitions/ErrorResponse'
        '405':
          description: Client Error - Method Not Allowed
          schema:
            $ref: '#/definitions/ErrorResponse'
        '429':
          description: Client Error - Too Many Requests
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: Server Error - Internal Server Error
          schema:
            $ref: '#/definitions/ErrorResponse'
      security:
        - oauth:
            - provisioningapi
    post:
      operationId: postEmailTemplates
      summary: Post EmailTemplate
      description: >-
        Creates a new email template (standard response or acknowledgement or
        outreach campaign)
      tags:
        - EmailTemplates
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/orgId'
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
        - in: body
          name: EmailTemplate
          required: true
          schema:
            $ref: '#/definitions/PostEmailTemplateRequest'
      responses:
        '200':
          description: Success - OK
          schema:
            $ref: '#/definitions/EmailTemplate'
        '400':
          description: Client Error - Bad Request
          schema:
            $ref: '#/definitions/ErrorResponse'
        '401':
          description: Client Error - Unauthorized
        '404':
          description: Client Error - Not Found
          schema:
            $ref: '#/definitions/ErrorResponse'
        '405':
          description: Client Error - Method Not Allowed
          schema:
            $ref: '#/definitions/ErrorResponse'
        '409':
          description: Client Error - Conflict
          schema:
            $ref: '#/definitions/ErrorResponse'
        '429':
          description: Client Error - Too Many Requests
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: Server Error - Internal Server Error
          schema:
            $ref: '#/definitions/ErrorResponse'
      security:
        - oauth:
            - provisioningapi
  '/via/v2/organizations/{orgId}/provisioning/emailTemplates/{emailTemplateId}':
    get:
      operationId: getEmailTemplate
      summary: Get EmailTemplate
      description: Retrieves details about an existing email template
      tags:
        - EmailTemplates
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - name: emailTemplateId
          in: path
          required: true
          type: string
          description: Alvaria generated unique identifier for the email template instance.
        - $ref: '#/parameters/orgId'
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
      responses:
        '200':
          description: Success - OK
          schema:
            $ref: '#/definitions/EmailTemplate'
        '400':
          description: Client Error - Bad Request
          schema:
            $ref: '#/definitions/ErrorResponse'
        '401':
          description: Client Error - Unauthorized
        '404':
          description: Client Error - Not Found
          schema:
            $ref: '#/definitions/ErrorResponse'
        '405':
          description: Client Error - Method Not Allowed
          schema:
            $ref: '#/definitions/ErrorResponse'
        '429':
          description: Client Error - Too Many Requests
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: Server Error - Internal Server Error
          schema:
            $ref: '#/definitions/ErrorResponse'
      security:
        - oauth:
            - provisioningapi
    patch:
      operationId: patchEmailTemplate
      summary: Patch EmailTemplate
      description: >-
        Updates an existing email template (standard response or acknowledgement
        or outreach campaign)
      tags:
        - EmailTemplates
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/orgId'
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
        - name: emailTemplateId
          in: path
          required: true
          type: string
          description: Alvaria generated unique identifier for the email template instance.
        - in: body
          name: EmailTemplate
          required: true
          schema:
            $ref: '#/definitions/PatchEmailTemplatesRequest'
      responses:
        '200':
          description: Success - OK
          schema:
            $ref: '#/definitions/EmailTemplate'
        '400':
          description: Client Error - Bad Request
          schema:
            $ref: '#/definitions/ErrorResponse'
        '401':
          description: Client Error - Unauthorized
        '404':
          description: Client Error - Not Found
          schema:
            $ref: '#/definitions/ErrorResponse'
        '405':
          description: Client Error - Method Not Allowed
          schema:
            $ref: '#/definitions/ErrorResponse'
        '409':
          description: Client Error - Conflict
          schema:
            $ref: '#/definitions/ErrorResponse'
        '429':
          description: Client Error - Too Many Requests
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: Server Error - Internal Server Error
          schema:
            $ref: '#/definitions/ErrorResponse'
      security:
        - oauth:
            - provisioningapi
    delete:
      operationId: deleteEmailTemplate
      summary: Delete EmailTemplate
      description: >-
        Deletes an existing email template (standard response or acknowledgement
        or outreach campaign)
      tags:
        - EmailTemplates
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/orgId'
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
        - name: emailTemplateId
          in: path
          required: true
          type: string
          description: Alvaria generated unique identifier for the email template instance.
      responses:
        '204':
          description: Success - No Content
        '400':
          description: Client Error - Bad Request
          schema:
            $ref: '#/definitions/ErrorResponse'
        '401':
          description: Client Error - Unauthorized
        '404':
          description: Client Error - Not Found
          schema:
            $ref: '#/definitions/ErrorResponse'
        '405':
          description: Client Error - Method Not Allowed
          schema:
            $ref: '#/definitions/ErrorResponse'
        '429':
          description: Client Error - Too Many Requests
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: Server Error - Internal Server Error
          schema:
            $ref: '#/definitions/ErrorResponse'
      security:
        - oauth:
            - provisioningapi
  '/via/v2/organizations/{orgId}/provisioning/signatures':
    get:
      operationId: getSignaturesCollection
      summary: Get SignatureCollection
      description: >-
        Retrieves a collection of signatures that are available to attach to an
        email.
      tags:
        - Signatures
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/orgId'
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
      responses:
        '200':
          description: Success - OK
          schema:
            $ref: '#/definitions/SignatureFragmentCollection'
        '400':
          description: Client Error - Bad Request
          schema:
            $ref: '#/definitions/ErrorResponse'
        '401':
          description: Client Error - Unauthorized
        '404':
          description: Client Error - Not Found
          schema:
            $ref: '#/definitions/ErrorResponse'
        '405':
          description: Client Error - Method Not Allowed
          schema:
            $ref: '#/definitions/ErrorResponse'
        '429':
          description: Client Error - Too Many Requests
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: Server Error - Internal Server Error
          schema:
            $ref: '#/definitions/ErrorResponse'
      security:
        - oauth:
            - provisioningapi
    post:
      operationId: postSignatures
      summary: Post EmailSignature
      description: Creates a new email signature.
      tags:
        - Signatures
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/orgId'
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
        - in: body
          name: Signature
          required: true
          schema:
            $ref: '#/definitions/PostSignatureRequest'
      responses:
        '200':
          description: Success - OK
          schema:
            $ref: '#/definitions/Signature'
        '400':
          description: Client Error - Bad Request
          schema:
            $ref: '#/definitions/ErrorResponse'
        '401':
          description: Client Error - Unauthorized
        '404':
          description: Client Error - Not Found
          schema:
            $ref: '#/definitions/ErrorResponse'
        '405':
          description: Client Error - Method Not Allowed
          schema:
            $ref: '#/definitions/ErrorResponse'
        '409':
          description: Client Error - Conflict
          schema:
            $ref: '#/definitions/ErrorResponse'
        '429':
          description: Client Error - Too Many Requests
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: Server Error - Internal Server Error
          schema:
            $ref: '#/definitions/ErrorResponse'
      security:
        - oauth:
            - provisioningapi
  '/via/v2/organizations/{orgId}/provisioning/signatures/{signatureId}':
    get:
      operationId: getSignature
      summary: Get Signature
      description: Retrieves details about an existing email signature
      tags:
        - Signatures
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - name: signatureId
          in: path
          required: true
          type: string
          description: Alvaria generated unique identifier for the signature instance.
        - $ref: '#/parameters/orgId'
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
      responses:
        '200':
          description: Success - OK
          schema:
            $ref: '#/definitions/Signature'
        '400':
          description: Client Error - Bad Request
          schema:
            $ref: '#/definitions/ErrorResponse'
        '401':
          description: Client Error - Unauthorized
        '404':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Client Error - Not Found
        '405':
          description: Client Error - Method Not Allowed
          schema:
            $ref: '#/definitions/ErrorResponse'
        '429':
          description: Client Error - Too Many Requests
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: Server Error - Internal Server Error
          schema:
            $ref: '#/definitions/ErrorResponse'
      security:
        - oauth:
            - provisioningapi
    patch:
      operationId: patchSignature
      summary: Patch Signature
      description: Updates an existing email signature
      tags:
        - Signatures
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/orgId'
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
        - name: signatureId
          in: path
          required: true
          type: string
          description: Alvaria generated unique identifier for the signature instance.
        - in: body
          name: PostSignaturesRequest
          required: true
          schema:
            $ref: '#/definitions/PatchSignaturesRequest'
      responses:
        '200':
          description: Success - OK
          schema:
            $ref: '#/definitions/Signature'
        '400':
          description: Client Error - Bad Request
          schema:
            $ref: '#/definitions/ErrorResponse'
        '401':
          description: Client Error - Unauthorized
        '404':
          description: Client Error - Not Found
          schema:
            $ref: '#/definitions/ErrorResponse'
        '405':
          description: Client Error - Method Not Allowed
          schema:
            $ref: '#/definitions/ErrorResponse'
        '409':
          description: Client Error - Conflict
          schema:
            $ref: '#/definitions/ErrorResponse'
        '429':
          description: Client Error - Too Many Requests
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: Server Error - Internal Server Error
          schema:
            $ref: '#/definitions/ErrorResponse'
      security:
        - oauth:
            - provisioningapi
    delete:
      operationId: deleteSignature
      summary: Delete Signature
      description: Deletes an existing email signature
      tags:
        - Signatures
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/orgId'
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
        - name: signatureId
          in: path
          required: true
          type: string
          description: Alvaria generated unique identifier for the signature instance.
      responses:
        '204':
          description: Success - No Content
        '400':
          description: Client Error - Bad Request
          schema:
            $ref: '#/definitions/ErrorResponse'
        '401':
          description: Client Error - Unauthorized
        '404':
          description: Client Error - Not Found
          schema:
            $ref: '#/definitions/ErrorResponse'
        '405':
          description: Client Error - Method Not Allowed
          schema:
            $ref: '#/definitions/ErrorResponse'
        '409':
          description: Client Error - Conflict
          schema:
            $ref: '#/definitions/ErrorResponse'
        '429':
          description: Client Error - Too Many Requests
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: Server Error - Internal Server Error
          schema:
            $ref: '#/definitions/ErrorResponse'
      security:
        - oauth:
            - provisioningapi
  '/via/v2/organizations/{orgId}/provisioning/workTypes/{workTypeId}/emailTemplates':
    get:
      summary: Get WorkTypesEmailTemplatesCollection
      description: Get WorkTypesEmailTemplatesCollection
      operationId: getWorkTypesEmailTemplatesCollection
      tags:
        - WorkTypes
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/orgId'
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
        - name: workTypeId
          in: path
          required: true
          type: string
          description: Alvaria generated unique identifier for the work type instance.
      responses:
        '200':
          description: Success - OK
          schema:
            $ref: '#/definitions/WorkTypeEmailTemplateFragmentCollection'
        '400':
          description: Client Error - Bad Request
          schema:
            $ref: '#/definitions/ErrorResponse'
        '401':
          description: Client Error - Unauthorized
        '404':
          description: Client Error - Not Found
          schema:
            $ref: '#/definitions/ErrorResponse'
        '405':
          description: Client Error - Method Not Allowed
          schema:
            $ref: '#/definitions/ErrorResponse'
        '429':
          description: Client Error - Too Many Requests
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: Server Error - Internal Server Error
          schema:
            $ref: '#/definitions/ErrorResponse'
      security:
        - oauth:
            - provisioningapi
    put:
      operationId: putWorkTypesEmailTemplatesCollection
      tags:
        - WorkTypes
      summary: Put WorkTypesEmailTemplatesCollection
      description: >-
        Removes all existing associations to email templates for the work type
        specified by workTypeId and adds associations for email templates
        specified in the body of the request.
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/orgId'
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
        - name: workTypeId
          in: path
          required: true
          type: string
          description: Alvaria generated unique identifier for the work type instance.
        - in: body
          name: WorkTypesEmailTemplatesCollection
          required: true
          schema:
            $ref: '#/definitions/PutWorkTypesEmailTemplatesRequest'
      responses:
        '200':
          description: Success - OK
          schema:
            $ref: '#/definitions/WorkTypeEmailTemplateFragmentCollection'
        '400':
          description: Client Error - Bad Request
          schema:
            $ref: '#/definitions/ErrorResponse'
        '401':
          description: Client Error - Unauthorized
        '404':
          description: Client Error - Not Found
          schema:
            $ref: '#/definitions/ErrorResponse'
        '405':
          description: Client Error - Method Not Allowed
          schema:
            $ref: '#/definitions/ErrorResponse'
        '429':
          description: Client Error - Too Many Requests
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: Server Error - Internal Server Error
          schema:
            $ref: '#/definitions/ErrorResponse'
      security:
        - oauth:
            - provisioningapi
  '/via/v2/organizations/{orgId}/provisioning/workTypes/{workTypeId}/emailTemplates/{emailTemplateId}':
    post:
      operationId: postWorkTypesEmailTemplate
      summary: Post WorkTypesEmailTemplate
      description: >-
        Adds the email template specified by emailTemplateId to the work type
        specified by workTypeId. This request has no body.
      tags:
        - WorkTypes
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/orgId'
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
        - name: workTypeId
          in: path
          required: true
          type: string
          description: Alvaria generated unique identifier for the work type instance.
        - name: emailTemplateId
          in: path
          required: true
          type: string
          description: Alvaria generated unique identifier for the email template instance.
      responses:
        '200':
          description: Success - OK
          schema:
            $ref: '#/definitions/WorkTypeEmailTemplateFragmentCollection'
        '400':
          description: Client Error - Bad Request
          schema:
            $ref: '#/definitions/ErrorResponse'
        '401':
          description: Client Error - Unauthorized
        '404':
          description: Client Error - Not Found
          schema:
            $ref: '#/definitions/ErrorResponse'
        '405':
          description: Client Error - Method Not Allowed
          schema:
            $ref: '#/definitions/ErrorResponse'
        '409':
          description: Client Error - Conflict
          schema:
            $ref: '#/definitions/ErrorResponse'
        '429':
          description: Client Error - Too Many Requests
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: Server Error - Internal Server Error
          schema:
            $ref: '#/definitions/ErrorResponse'
      security:
        - oauth:
            - provisioningapi
    delete:
      operationId: deleteWorkTypesEmailTemplate
      summary: Delete WorkTypesEmailTemplate
      description: >-
        Removes the email template specified by emailTemplateId from the
        existing list of email templates associated to the work type specified
        by workTypeId.
      tags:
        - WorkTypes
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/orgId'
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
        - name: workTypeId
          in: path
          required: true
          type: string
          description: Alvaria generated unique identifier for the work type instance.
        - name: emailTemplateId
          in: path
          required: true
          type: string
          description: Alvaria generated unique identifier for the email template instance.
      responses:
        '204':
          description: Success - No Content
        '400':
          description: Client Error - Bad Request
          schema:
            $ref: '#/definitions/ErrorResponse'
        '401':
          description: Client Error - Unauthorized
        '404':
          description: Client Error - Not Found
          schema:
            $ref: '#/definitions/ErrorResponse'
        '405':
          description: Client Error - Method Not Allowed
          schema:
            $ref: '#/definitions/ErrorResponse'
        '409':
          description: Client Error - Conflict
          schema:
            $ref: '#/definitions/ErrorResponse'
        '429':
          description: Client Error - Too Many Requests
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: Server Error - Internal Server Error
          schema:
            $ref: '#/definitions/ErrorResponse'
      security:
        - oauth:
            - provisioningapi
  '/via/v2/organizations/{orgId}/provisioning/workHandlerStatusReasons':
    get:
      operationId: getWorkHandlerStatusReasons
      summary: Get WorkHandlerStatusReasons
      description: Retrieves all the agent status reasons available in the specified org.
      tags:
        - WorkHandlerStatusReasons
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/orgId'
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
        - $ref: '#/parameters/startIndex'
        - $ref: '#/parameters/maxResults'
        - name: category
          in: query
          required: false
          type: string
          enum:
            - Park
            - NotReady
            - LoggedOut
            - CallRejectedReason
          description: Filters result set by category.
      responses:
        '200':
          description: Success - OK
          schema:
            $ref: '#/definitions/WorkHandlerStatusReasonCollection'
        '400':
          description: Client Error - Bad Request
          schema:
            $ref: '#/definitions/ErrorResponse'
        '401':
          description: Client Error - Unauthorized
        '404':
          description: Client Error - Not Found
          schema:
            $ref: '#/definitions/ErrorResponse'
        '405':
          description: Client Error - Method Not Allowed
          schema:
            $ref: '#/definitions/ErrorResponse'
        '429':
          description: Client Error - Too Many Requests
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: Server Error - Internal Server Error
          schema:
            $ref: '#/definitions/ErrorResponse'
      security:
        - oauth:
            - provisioningapi
  '/via/v2/organizations/{orgId}/provisioning/dispositions':
    parameters:
      - $ref: '#/parameters/orgId'
      - $ref: '#/parameters/authorization'
      - $ref: '#/parameters/x-api-key'
    get:
      tags:
        - Dispositions
      operationId: getDispositionList
      summary: Get Dispositions
      description: Retrieves a collection of all Dispositions defined in the system.
      parameters:
        - $ref: '#/parameters/includeInactive'
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/startIndex'
        - $ref: '#/parameters/maxResults'
      security:
        - oauth:
            - provisioningapi
      responses:
        '200':
          description: Successful response
          schema:
            $ref: '#/definitions/DispositionCollection'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
        '405':
          description: Method Not Allowed
          schema:
            $ref: '#/definitions/Error'
        '429':
          description: Throttled
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/Error'
  '/via/v2/organizations/{orgId}/provisioning/dispositions/{dispositionId}':
    parameters:
      - $ref: '#/parameters/dispositionId'
      - $ref: '#/parameters/orgId'
      - $ref: '#/parameters/authorization'
      - $ref: '#/parameters/x-api-key'
    get:
      tags:
        - Dispositions
      operationId: getDisposition
      summary: Get Disposition
      description: >-
        Gets a specific Disposition instance by its identifier. The
        dispositionId can be obtained from a call to the GET /dispositions or
        GET workTypes/{workTypeId}/dispositions endpoints.
      security:
        - oauth:
            - provisioningapi
      responses:
        '200':
          description: Successful response
          schema:
            $ref: '#/definitions/Disposition'
        '401':
          description: Unauthorized
        '404':
          description: No Disposition exists for the provided entity ID
          schema:
            $ref: '#/definitions/Error'
        '405':
          description: Method Not Allowed
          schema:
            $ref: '#/definitions/Error'
        '429':
          description: Throttled
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/Error'
  '/via/v2/organizations/{orgId}/provisioning/contactDataDefs':
    parameters:
      - $ref: '#/parameters/orgId'
      - $ref: '#/parameters/authorization'
      - $ref: '#/parameters/x-api-key'
      - name: channelType
        in: query
        description: >-
          ContactDataDef channel. This is used to filter results by channel
          type.
        required: false
        type: string
        enum:
          - voice
          - email
          - chat
          - sms
      - name: friendlyName
        in: query
        description: 'Name of a specific contact data definition to fetch '
        required: false
        type: string
    get:
      tags:
        - ContactDataDefs
      operationId: getContactDataDefList
      summary: Get Contact Data Definitions
      description: >-
        Retrieves a collection of all Contact Data Definitions defined in the
        system.
      parameters:
        - $ref: '#/parameters/authorization'
      security:
        - oauth:
            - provisioningapi
      responses:
        '200':
          description: Successful response
          schema:
            $ref: '#/definitions/ContactDataDefCollection'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
        '405':
          description: Method Not Allowed
          schema:
            $ref: '#/definitions/Error'
        '429':
          description: Throttled
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/Error'
  '/via/v2/organizations/{orgId}/provisioning/contactDataDefs/{contactDataDefId}':
    parameters:
      - $ref: '#/parameters/contactDataDefId'
      - $ref: '#/parameters/orgId'
      - $ref: '#/parameters/authorization'
      - $ref: '#/parameters/x-api-key'
    get:
      tags:
        - ContactDataDefs
      operationId: getContactDataDef
      summary: Get Contact Data Definition
      description: >-
        Gets a specific Contact Data Definition instance by its identifier. The
        contactDataDefId can be obtained from a call to the GET /contactDataDefs
        endpoint.
      security:
        - oauth:
            - provisioningapi
      responses:
        '200':
          description: Successful response
          schema:
            $ref: '#/definitions/ContactDataDef'
        '401':
          description: Unauthorized
        '404':
          description: No Contact Data Definition exists for the provided entity ID
          schema:
            $ref: '#/definitions/Error'
        '405':
          description: Method Not Allowed
          schema:
            $ref: '#/definitions/Error'
        '429':
          description: Throttled
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/Error'
  '/via/v2/organizations/{orgId}/provisioning/contactDataDefReservedWords':
    parameters:
      - $ref: '#/parameters/orgId'
      - $ref: '#/parameters/authorization'
      - $ref: '#/parameters/x-api-key'
      - name: friendlyName
        in: query
        description: 'Name of a specific reserved word to fetch '
        required: false
        type: string
      - name: channelType
        in: query
        description: >-
          ContactDataDef channel. This is used to filter results by channel
          type.
        required: false
        type: string
        enum:
          - voice
          - email
          - chat
          - sms
    get:
      tags:
        - ContactDataDefReservedWords
      operationId: getContactDataDefReservedWordList
      summary: Get Contact Data Definition Reserved Words
      description: >-
        Retrieves a collection of all Contact Data Definition Reserved Words
        defined in the system.
      parameters:
        - $ref: '#/parameters/authorization'
      security:
        - oauth:
            - provisioningapi
      responses:
        '200':
          description: Successful response
          schema:
            $ref: '#/definitions/ContactDataDefReservedWordCollection'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
        '405':
          description: Method Not Allowed
          schema:
            $ref: '#/definitions/Error'
        '429':
          description: Throttled
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/Error'
  '/via/v2/organizations/{orgId}/provisioning/contactDataDefReservedWords/{contactDataDefReservedWordId}':
    parameters:
      - $ref: '#/parameters/orgId'
      - $ref: '#/parameters/authorization'
      - $ref: '#/parameters/x-api-key'
      - $ref: '#/parameters/contactDataDefReservedWordId'
    get:
      tags:
        - ContactDataDefReservedWords
      operationId: getContactDataDefReservedWord
      summary: Get Contact Data Definition Reserved Word
      description: >-
        Retrieves a single Contact Data Definition Reserved Word given its
        unique id
      parameters:
        - $ref: '#/parameters/authorization'
      security:
        - oauth:
            - provisioningapi
      responses:
        '200':
          description: Successful response
          schema:
            $ref: '#/definitions/ContactDataDefReservedWordFragment'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
        '405':
          description: Method Not Allowed
          schema:
            $ref: '#/definitions/Error'
        '429':
          description: Throttled
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/Error'
  '/via/v2/organizations/{orgId}/provisioning/skills':
    parameters:
      - $ref: '#/parameters/authorization'
      - $ref: '#/parameters/x-api-key'
      - $ref: '#/parameters/orgId'
    get:
      tags:
        - Skills
      operationId: getSkillList
      summary: Get Skills
      description: Retrieves a collection of all Skills defined in the system.
      security:
        - oauth:
            - provisioningapi
      responses:
        '200':
          description: Successful response
          schema:
            $ref: '#/definitions/SkillList'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
        '405':
          description: Method Not Allowed
          schema:
            $ref: '#/definitions/Error'
        '429':
          description: Throttled
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/Error'
  '/via/v2/organizations/{orgId}/provisioning/skills/{skillId}':
    parameters:
      - $ref: '#/parameters/authorization'
      - $ref: '#/parameters/x-api-key'
      - $ref: '#/parameters/orgId'
      - name: skillId
        in: path
        description: Alvaria-generated unique ID for a skill
        required: true
        type: string
    get:
      tags:
        - Skills
      operationId: getSkill
      summary: Get Skill
      description: >-
        Gets a specific Skill instance by its identifier. The skillId can be
        obtained from a call to the GET /skills endpoints.
      security:
        - oauth:
            - provisioningapi
      responses:
        '200':
          description: Successful response
          schema:
            $ref: '#/definitions/SkillDetails'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
        '405':
          description: Method Not Allowed
          schema:
            $ref: '#/definitions/Error'
        '429':
          description: Throttled
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/Error'
  '/via/v2/organizations/{orgId}/provisioning/users/{userId}/skills':
    get:
      tags:
        - Skills
      operationId: getUserSkillList
      summary: Get User Skills
      description: Retrieves a list of skills that the user is assigned to.
      parameters:
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
        - $ref: '#/parameters/orgId'
        - name: userId
          in: path
          description: Alvaria-generated unique ID for a User
          required: true
          type: string
      security:
        - oauth:
            - provisioningapi
      responses:
        '200':
          description: Successful response
          schema:
            $ref: '#/definitions/UserSkillList'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
        '405':
          description: Method Not Allowed
          schema:
            $ref: '#/definitions/Error'
        '429':
          description: Throttled
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/Error'
    put:
      tags:
        - Skills
      operationId: putUserSkillList
      summary: Put User Skills
      description: >-
        Removes all existing associations to user skills for the user specified
        by userId and adds associations for the user skills specified in the
        body of the request.
      parameters:
        - $ref: '#/parameters/authorization'
        - $ref: '#/parameters/x-api-key'
        - $ref: '#/parameters/orgId'
        - name: userId
          in: path
          description: Alvaria-generated unique ID for a User
          required: true
          type: string
        - name: PutUserSkillsRequest
          in: body
          required: true
          schema:
            $ref: '#/definitions/PutUserSkillsRequest'
      security:
        - oauth:
            - provisioningapi
      responses:
        '200':
          description: Successful response
          schema:
            $ref: '#/definitions/UserSkillList'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
        '405':
          description: Method Not Allowed
          schema:
            $ref: '#/definitions/Error'
        '429':
          description: Throttled
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/Error'
definitions:
  User:
    type: object
    required:
      - kind
      - id
      - user
      - userReference
      - preferredName
      - firstName
      - lastName
      - creationTime
      - lastModifiedTime
      - version
      - active
    properties:
      kind:
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results.
        type: string
        default: via#user
        example: via#user
      id:
        description: Alvaria-generated unique identifier for the Entity
        type: string
        example: Id
      user:
        description: The user's email address
        type: string
        example: user1@orgname.com
      userReference:
        $ref: '#/definitions/UserReference'
      firstName:
        type: string
        example: userFName
      lastName:
        type: string
        example: userLName
      preferredName:
        type: array
        description: >-
          Preferred name, which is the user's first and last name from the
          user's My Account profile.
        items:
          $ref: '#/definitions/UsersFriendlyName'
        example:
          locale: en-US
          value: alvaria user
      description:
        type: string
        description: User Friendly description of the entity type.
        example: This is an entity
      creationTime:
        $ref: '#/definitions/CreationTime'
      lastModifiedTime:
        $ref: '#/definitions/LastModifiedTime'
      version:
        $ref: '#/definitions/Version'
      active:
        $ref: '#/definitions/Active'
      memberOf:
        $ref: '#/definitions/MemberRef'
  UserReference:
    type: object
    required:
      - organizationId
      - userId
    description: A unique reference to this Team.
    properties:
      organizationId:
        type: string
        description: Alvaria-generated unique identifier for the Organization
        minLength: 1
        maxLength: 44
        pattern: '^[0-9a-zA-Z._-]+$'
        default: orgId
        example: exampleOrgId
      userId:
        type: string
        minLength: 1
        example: '134302066600001'
        description: Alvaria-generated unique identifier for the User
  MemberRef:
    type: object
    description: Provides a team member reference to a given User.
    required:
      - teamReference
      - name
    properties:
      teamReference:
        $ref: '#/definitions/TeamReference'
      name:
        type: array
        items:
          $ref: '#/definitions/TeamFriendlyName'
  ManagerRef:
    type: object
    description: Provides a team manager reference to a given User.
    required:
      - teamId
    properties:
      teamId:
        type: string
  UsersCollection:
    type: object
    properties:
      kind:
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results.
        type: string
        default: via#userList
        example: via#userList
      users:
        type: array
        items:
          $ref: '#/definitions/UsersFragment'
        example:
          - active: true
            kind: via#user
            id: 192e14fab017122
            user: user1@orgname.com
            firstName: alvaria
            lastName: user
            preferredName:
              locale: en-US
              value: alvaria user
      lastIndexReturned:
        type: integer
        description: This is a deprecated property.
        example: 5
      totalItems:
        type: integer
        description: The total number of Entity instances existing in the system.
        example: 5
  UsersFragment:
    title: UsersFragment
    required:
      - active
      - kind
      - id
      - user
      - firstName
      - lastName
      - preferredName
    type: object
    properties:
      active:
        $ref: '#/definitions/Active'
      kind:
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results.
        type: string
        default: via#user
        example: via#user
      id:
        description: Alvaria-generated unique identifier for the Entity
        type: string
        example: 2049f439be17920
      user:
        description: Email address of the User entity.
        type: string
        example: user1@orgname.com
      firstName:
        description: First name of the User entity.
        type: string
        example: alvaria
      lastName:
        description: Last name of the User entity.
        type: string
        example: user
      preferredName:
        type: array
        description: >-
          Preferred name, which is the user's first and last name from the
          user's My Account profile.
        items:
          $ref: '#/definitions/UsersFriendlyName'
        example:
          locale: en-US
          value: alvaria user
  UsersStateFragment:
    title: UsersStateFragment
    type: object
    allOf:
      - $ref: '#/definitions/UsersFragment'
      - required:
          - state
        properties:
          state:
            example: deprecated
            type: string
            description: This is a deprecated property.
  UsersFriendlyName:
    required:
      - locale
      - value
    properties:
      locale:
        type: string
        description: The IETF Language Tag.
        example: en-US
        minLength: 1
      value:
        type: string
        minLength: 1
        description: The Localized value of the Entity Name.
        example: andrea anderson
  AllUsersState:
    type: object
    required:
      - kind
      - users
      - teamOwners
      - totalItems
      - lastIndexReturned
    properties:
      kind:
        description: Collection of teamMembers and teamOwners.
        type: string
        default: via#teamState
        example: via#teamState
      users:
        type: array
        items:
          $ref: '#/definitions/UsersStateFragment'
        example:
          - active: true
            kind: via#user
            id: 192e14fab017122
            user: user1@orgname.com
            firstName: alvaria
            lastName: user
            preferredName:
              locale: en-US
              value: alvaria user
            state: deprecated
          - active: true
            kind: via#user
            id: user2
            user: user2@orgname.com
            firstName: alvaria
            lastName: User2
            preferredName:
              locale: en-US
              value: User2
            state: deprecated
      teamOwners:
        type: array
        items:
          $ref: '#/definitions/UsersStateFragment'
        example:
          - active: true
            kind: via#user
            id: owner1
            user: owner1@orgname.com
            firstName: John
            lastName: Doe
            preferredName:
              locale: en-US
              value: John Doe
            state: deprecated
      lastIndexReturned:
        type: integer
        description: This is a deprecated property.
        example: 1
      totalItems:
        type: integer
        description: Total number of User instances existing in the system.
        example: 1
  TeamMembersState:
    type: object
    description: Collection of teamMembers.
    required:
      - kind
      - teamMembers
      - totalItems
      - lastIndexReturned
    properties:
      kind:
        type: string
        default: via#teamState
        example: via#teamState
      teamMembers:
        type: array
        items:
          $ref: '#/definitions/UsersStateFragment'
        example:
          - active: true
            kind: via#user
            id: 192e14fab017122
            user: user1@orgname.com
            firstName: alvaria
            lastName: user
            preferredName:
              locale: en-US
              value: alvaria user
            state: deprecated
      lastIndexReturned:
        type: integer
        description: This is a deprecated property.
        example: 1
      totalItems:
        type: integer
        description: Total number of User instances existing in the system.
        example: 1
  TeamOwnersState:
    type: object
    description: Collection of teamOwners.
    required:
      - kind
      - teamOwners
      - totalItems
      - lastIndexReturned
    properties:
      kind:
        type: string
        default: via#teamState
        example: via#teamState
      teamOwners:
        type: array
        items:
          $ref: '#/definitions/UsersStateFragment'
        example:
          - active: true
            kind: via#user
            id: 192e14fab017122
            user: user1@orgname.com
            firstName: alvaria
            lastName: user
            preferredName:
              locale: en-US
              value: alvaria user
            state: deprecated
      lastIndexReturned:
        type: integer
        description: This is a deprecated property.
        example: 1
      totalItems:
        type: integer
        description: Total number of User instances existing in the system.
        example: 1
  TeamCollection:
    required:
      - kind
      - teams
      - totalItems
      - lastIndexReturned
    type: object
    properties:
      kind:
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results.
        type: string
        default: via#teamList
        example: via#teamList
      teams:
        type: array
        items:
          $ref: '#/definitions/TeamFragment'
        example:
          - active: true
            kind: via#team
            id: team1
            teamReference:
              organizationId: org1
              teamId: team1
            friendlyName:
              - locale: en-US
                value: alphaTeam
      lastIndexReturned:
        type: integer
        description: This is a deprecated property.
        example: 5
      totalItems:
        type: integer
        description: The total number of Entity instances existing in the system.
        example: 5
  TeamFragment:
    type: object
    required:
      - kind
      - active
      - id
      - teamReference
      - friendlyName
    properties:
      kind:
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results.
        type: string
        default: via#team
        example: via#team
      active:
        $ref: '#/definitions/Active'
      id:
        description: Alvaria-generated unique identifier for the Entity
        type: string
        example: sales
      teamReference:
        $ref: '#/definitions/TeamReference'
      friendlyName:
        type: array
        minItems: 1
        items:
          $ref: '#/definitions/TeamFriendlyName'
        description: Unique descriptive name for this Team instance
        example:
          - locale: en-US
            value: channelOne
  TeamFriendlyName:
    required:
      - locale
      - value
    properties:
      locale:
        type: string
        description: The IETF Language Tag.
        example: en-US
        minLength: 1
      value:
        type: string
        minLength: 1
        description: The Localized value of the Entity Name.
        example: sales
  TeamReference:
    title: teamReference
    type: object
    required:
      - organizationId
      - teamId
    description: A unique reference to this team.
    properties:
      organizationId:
        type: string
        description: Alvaria-generated unique identifier for the Organization
        minLength: 1
        maxLength: 44
        pattern: '^[0-9a-zA-Z._-]+$'
        default: orgId
        example: exampleOrgId
      teamId:
        type: string
        minLength: 1
        maxLength: 63
        pattern: '^[0-9a-zA-Z._-]+$'
        description: Alvaria-generated unique identifier for the Team.
        example: team1
  SystemExternal:
    type: object
    required:
      - kind
      - active
      - creationTime
      - lastModifiedTime
      - version
      - id
      - friendlyName
      - systemExternal
    properties:
      kind:
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results.
        type: string
        default: via#systemExternal
        example: via#systemExternal
      active:
        $ref: '#/definitions/Active'
      creationTime:
        $ref: '#/definitions/CreationTime'
      lastModifiedTime:
        $ref: '#/definitions/LastModifiedTime'
      version:
        $ref: '#/definitions/Version'
      id:
        description: Alvaria-generated unique identifier for the Entity
        type: string
        example: 0cd42b5e-e3ea-45fc-b643-bf0b17539bed
      friendlyName:
        description: Unique descriptive name for this System External Dial instance.
        type: array
        minItems: 1
        items:
          $ref: '#/definitions/SystemExternalFriendlyName'
        example:
          - locale: en-US
            value: externalNumber
      systemExternal:
        description: String representation of System external dial.
        type: string
        example: '1234567890'
        minLength: 1
        maxLength: 40
        pattern: '^(?:[+]{0,1}[0-9]*)$'
  SystemExternalFragment:
    type: object
    required:
      - active
      - kind
      - id
      - friendlyName
      - systemExternal
    properties:
      active:
        $ref: '#/definitions/Active'
      kind:
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results.
        type: string
        default: via#systemExternal
        example: via#systemExternal
      id:
        description: Alvaria-generated unique identifier for the Entity
        type: string
        example: a27c0a37-81f4-4faf-b2ca-9fd08d1e0293
      friendlyName:
        description: Unique descriptive name for this System External Dial instance.
        type: array
        minItems: 1
        items:
          $ref: '#/definitions/SystemExternalFriendlyName'
        example:
          - locale: en-US
            value: externalNumber
      systemExternal:
        description: String representation of System external dial.
        type: string
        example: '1234567890'
        minLength: 1
        maxLength: 40
        pattern: '^(?:[+]{0,1}[0-9]*)$'
  SystemExternalPost:
    type: object
    required:
      - friendlyName
      - systemExternal
    properties:
      active:
        $ref: '#/definitions/Active'
      friendlyName:
        description: Unique descriptive name for this System External Dial instance.
        type: array
        minItems: 1
        items:
          $ref: '#/definitions/SystemExternalFriendlyName'
        example:
          - locale: en-US
            value: externalNumber
      systemExternal:
        description: String representation of System external dial.
        type: string
        example: '1234567890'
        minLength: 1
        maxLength: 40
        pattern: '^(?:[+]{0,1}[0-9]*)$'
  SystemExternalPut:
    type: object
    required:
      - friendlyName
      - systemExternal
      - version
    properties:
      kind:
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results.
        type: string
        default: via#systemExternal
        example: via#systemExternal
      active:
        $ref: '#/definitions/Active'
      friendlyName:
        description: Unique descriptive name for this System External Dial instance.
        type: array
        minItems: 1
        items:
          $ref: '#/definitions/SystemExternalFriendlyName'
        example:
          - locale: en-US
            value: externalNumber
      systemExternal:
        description: String representation of System external dial.
        type: string
        example: '1234567890'
        minLength: 1
        maxLength: 40
        pattern: '^(?:[+]{0,1}[0-9]*)$'
      version:
        $ref: '#/definitions/Version'
  SystemExternalPatch:
    type: object
    required:
      - version
    properties:
      version:
        $ref: '#/definitions/Version'
      active:
        $ref: '#/definitions/Active'
      friendlyName:
        description: Unique descriptive name for this System External Dial instance.
        type: array
        minItems: 1
        items:
          $ref: '#/definitions/SystemExternalFriendlyName'
        example:
          - locale: en-US
            value: externalNumber
      systemExternal:
        description: String representation of System external dial.
        type: string
        example: '1234567890'
        minLength: 1
        maxLength: 40
        pattern: '^(?:[+]{0,1}[0-9]*)$'
  SystemExternalCollection:
    type: object
    required:
      - kind
      - lastIndexReturned
      - systemExternals
      - totalItems
    properties:
      kind:
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results.
        type: string
        default: via#systemExternalCollection
        example: via#systemExternalCollection
      systemExternals:
        type: array
        items:
          $ref: '#/definitions/SystemExternalFragment'
        example:
          - active: true
            kind: via#systemExternal
            id: external1
            friendlyName:
              - locale: en-US
                value: externalNumber
            systemExternal: '1234567890'
      lastIndexReturned:
        type: integer
        description: This is a deprecated property.
        example: 5
      totalItems:
        type: integer
        description: The total number of Entity instances existing in the system.
        example: 1
  SystemExternalFriendlyName:
    required:
      - locale
      - value
    properties:
      locale:
        type: string
        description: The IETF Language Tag.
        example: en-US
      value:
        type: string
        minLength: 1
        maxLength: 80
        pattern: '^(?:(?![ ])[a-zA-Z0-9_ ]*)$'
        description: The Localized value of the Entity Name.
        example: AutoTest1
  Error:
    type: object
    required:
      - error
    properties:
      error:
        $ref: '#/definitions/ErrorResponse'
  ErrorResponse:
    type: object
    required:
      - code
      - message
      - errors
    properties:
      code:
        type: integer
        description: HTTP error status.
        example: XXX
      message:
        type: string
        example: Error description
      errors:
        type: array
        items:
          $ref: '#/definitions/ErrorResponseItem'
  ErrorResponseItem:
    type: object
    required:
      - scope
      - reason
      - message
    properties:
      scope:
        type: string
        example: error.scope
      reason:
        type: string
        example: error.reason
      message:
        type: string
        example: error.message
  DispositionRuleFragment:
    type: object
    required:
      - kind
      - id
      - dispositionCode
    properties:
      kind:
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results.
        type: string
        default: via#rule
        example: via#rule
      id:
        description: Alvaria-generated unique identifier for the Entity
        type: string
        pattern: '^[\$@0-9 a-zA-Z._-]+$'
        example: Id
      dispositionCode:
        type: string
        description: The identifier used by the source system to represent entity code.
        example: ABC
      friendlyName:
        type: array
        minItems: 1
        items:
          $ref: '#/definitions/DispositionFriendlyName'
        description: Unique descriptive name for this Disposition instance
        example:
          - locale: en-US
            value: dispositionOne
  DispositionRuleCollection:
    type: object
    required:
      - kind
      - friendlyName
      - rules
      - totalItems
    properties:
      kind:
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results.
        type: string
        default: via#ruleCollection
        example: via#ruleCollection
      friendlyName:
        type: array
        minItems: 1
        items:
          $ref: '#/definitions/DispositionRuleFriendlyName'
        description: Unique descriptive name for this Rule Collection
        example:
          - locale: en-US
            value: Rules
      rules:
        type: array
        items:
          $ref: '#/definitions/DispositionRuleFragment'
      totalItems:
        type: integer
        description: The total number of Entity instances existing in the system.
        example: 5
  DispositionRuleFriendlyName:
    required:
      - locale
      - value
    properties:
      locale:
        type: string
        minLength: 1
        description: The IETF Language Tag.
        example: en-US
      value:
        type: string
        minLength: 1
        maxLength: 80
        description: The Localized value of the Entity Name.
        example: entity name
  DispositionRule:
    type: object
    required:
      - kind
      - dispPlanId
      - dispositionId
    properties:
      kind:
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results.
        type: string
        default: via#rule
        example: via#rule
      dispositionId:
        description: Alvaria-generated unique identifier for the Entity
        type: string
        pattern: '^[\$@0-9 a-zA-Z._-]+$'
        example: Id
      dispPlanId:
        description: Alvaria-generated unique identifier for the Entity
        type: string
        pattern: '^[\$@0-9 a-zA-Z._-]+$'
        example: Id
      dispositionCode:
        type: string
        description: The identifier used by the source system to represent entity code.
        example: ABC
      friendlyName:
        type: array
        minItems: 1
        items:
          $ref: '#/definitions/DispositionFriendlyName'
        description: Unique descriptive name for this Disposition instance
        example:
          - locale: en-US
            value: dispositionOne
  DispositionRulePost:
    type: object
    properties:
      kind:
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results.
        type: string
        default: via#rule
        example: via#rule
  DispositionRulePut:
    type: object
    required:
      - rules
    properties:
      kind:
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results.
        type: string
        default: via#rule
        example: via#rule
      rules:
        type: array
        description: Detail Dispositions associated to a given Disposition Rules
        items:
          description: Alvaria-generated unique identifier for the Entity
          type: string
          pattern: '^[\$@0-9 a-zA-Z._-]+$'
          example: Id
  Disposition:
    type: object
    required:
      - kind
      - id
      - sourceKey
      - friendlyName
      - dispositionType
      - dispositionCode
      - creationTime
      - lastModifiedTime
      - version
      - active
    properties:
      kind:
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results.
        type: string
        default: via#disposition
        example: via#disposition
      id:
        description: Alvaria-generated unique identifier for the Entity
        type: string
        example: Id
      sourceKey:
        type: string
        description: >-
          The identifier used by the source system to represent this entity
          instance.
        example: '123'
        minLength: 1
        maxLength: 63
        pattern: '^[A-Za-z0-9_-]+$'
      friendlyName:
        type: array
        minItems: 1
        items:
          $ref: '#/definitions/FriendlyName'
        description: Unique descriptive name for this Disposition instance
        example:
          - locale: en-US
            value: dispositionOne
      description:
        type: string
        description: User Friendly description of the entity type.
        example: This is an entity
      creationTime:
        description: >-
          Time the entity instance was created, specified in ISO 8601 format
          (1985-04-12T23:20:50.525).
        type: string
        format: date-time
        example: '2018-01-02T17:21:09.512'
      lastModifiedTime:
        type: string
        format: date-time
        description: >-
          Time of the most recent change to the Entity instance, specified in
          ISO 8601 format (1985-04-12T23:20:50.525).
        example: '2018-01-02T17:21:09.512'
      version:
        type: integer
        format: int32
        description: >-
          Version of the data associated with this instance. This is a number
          that starts with the value 1 and increments by one for each update
          made to an entity instance.
        example: 2
      active:
        description: >-
          State of the entity. True indicates that entity is active in
          Alvaria&trade; Cloud.
        type: boolean
        example: true
        default: true
      dispositionCode:
        type: string
        description: The identifier used by the source system to represent entity code.
        example: ABC
      dispositionType:
        type: string
        description: The identifier used by the source system to represent entity type.
        enum:
          - userDefined
          - systemDefined
        example: systemDefined
      contactClass:
        type: string
        description: The type of voice contact that was delivered to the agent.
        enum:
          - undefined
          - livePerson
          - recordedVoice
          - nonVoice
        example: undefined
      channels:
        description: Channel representation
        type: array
        items:
          $ref: '#/definitions/ChannelTypeCollection'
        example:
          - channelType: chat
          - channelType: email
          - channelType: sms
          - channelType: voice
      attributes:
        $ref: '#/definitions/Attributes'
  DispositionCollection:
    type: object
    required:
      - kind
      - dispositions
      - totalItems
    properties:
      kind:
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results.
        type: string
        default: via#dispositionCollection
        example: via#dispositionCollection
      dispositions:
        type: array
        items:
          $ref: '#/definitions/DispositionFragment'
        example:
          - kind: via#disposition
            id: '8.8'
            friendlyName:
              - locale: en-US
                value: Fax Machine
            dispositionCode: DFM
            dispositionType: systemDefined
            active: true
            attributes:
              reporting:
                - abandon
                - contact
                - followUp
              callOutcome:
                - success
                - callback
                - refusal
                - exclusion
              routing:
                - none
                - sendDigits
                - default
                - hangUp
                - playMessage
                - redial
                - transfer
                - rerouteToSelfService
                - dialNextNumber
          - kind: via#disposition
            id: '2.2'
            friendlyName:
              - locale: en-US
                value: Dialer Dropped Cust After Hold
            dispositionCode: DAD
            dispositionType: systemDefined
            active: true
            attributes:
              - reporting:
                  - abandon
                  - contact
                  - followUp
              - callOutcome:
                  - success
                  - callback
                  - refusal
                  - exclusion
              - routing:
                  - none
                  - sendDigits
                  - default
                  - hangUp
                  - playMessage
                  - redial
                  - transfer
                  - rerouteToSelfService
                  - dialNextNumber
          - kind: via#disposition
            id: '13.13'
            friendlyName:
              - locale: en-US
                value: Connect After Hold
            dispositionCode: DPN
            dispositionType: systemDefined
            active: true
            attributes:
              - reporting:
                  - abandon
                  - contact
                  - followUp
              - callOutcome:
                  - success
                  - callback
                  - refusal
                  - exclusion
              - routing:
                  - none
                  - sendDigits
                  - default
                  - hangUp
                  - playMessage
                  - redial
                  - transfer
                  - rerouteToSelfService
                  - dialNextNumber
          - kind: via#disposition
            id: '55.55'
            friendlyName:
              - locale: en-US
                value: Business Detected
            dispositionCode: SW_DBS
            dispositionType: systemDefined
            active: true
            attributes:
              - reporting:
                  - abandon
                  - contact
                  - followUp
              - callOutcome:
                  - success
                  - callback
                  - refusal
                  - exclusion
              - routing:
                  - none
                  - sendDigits
                  - default
                  - hangUp
                  - playMessage
                  - redial
                  - transfer
                  - rerouteToSelfService
                  - dialNextNumber
          - kind: via#disposition
            id: '112.112'
            friendlyName:
              - locale: en-US
                value: My Custom Disposition
            dispositionCode: MCD
            dispositionType: userDefined
            active: true
      totalItems:
        type: integer
        description: The total number of Entity instances existing in the system.
        example: 5
  DispositionFragment:
    type: object
    required:
      - kind
      - id
      - friendlyName
      - dispositionCode
      - active
    properties:
      kind:
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results.
        type: string
        default: via#disposition
        example: via#disposition
      id:
        type: string
        description: Alvaria-generated unique identifier for the Disposition
        minLength: 1
        maxLength: 64
        pattern: '^[$0-9a-zA-Z._-]+$'
        example: exampleDispositionId
      friendlyName:
        $ref: '#/definitions/FriendlyNameCollection'
      dispositionCode:
        type: string
        description: The short identifier associated with this disposition
        example: ABC
      dispositionType:
        type: string
        description: Indicates system defined or user defined disposition
        enum:
          - systemDefined
          - userDefined
        example: systemDefined
      active:
        $ref: '#/definitions/Active'
      attributes:
        $ref: '#/definitions/Attributes'
  DispositionFriendlyName:
    required:
      - locale
      - value
    properties:
      locale:
        type: string
        minLength: 1
        description: The IETF Language Tag.
        example: en-US
      value:
        type: string
        minLength: 1
        maxLength: 80
        description: The Localized value of the Entity Name.
        example: entity name
  Channel:
    type: object
    required:
      - channelType
    description: Channel representation
    properties:
      channelType:
        type: string
  Attributes:
    type: object
    required:
      - reporting
      - callOutcome
      - routing
    properties:
      reporting:
        type: array
        items:
          type: string
          enum:
            - abandon
            - contact
            - followUp
      callOutcome:
        type: array
        items:
          type: string
          enum:
            - success
            - callback
            - refusal
            - exclusion
      routing:
        type: array
        items:
          type: string
          enum:
            - none
            - sendDigits
            - default
            - hangUp
            - playMessage
            - redial
            - transfer
            - rerouteToSelfService
            - dialNextNumber
        example:
          - reporting:
              - abandon
              - contact
              - followUp
          - callOutcome:
              - success
              - callback
              - refusal
              - exclusion
          - routing:
              - none
              - sendDigits
              - default
              - hangUp
              - playMessage
              - redial
              - transfer
              - rerouteToSelfService
              - dialNextNumber
    example:
      - reporting:
          - abandon
          - contact
          - followUp
      - callOutcome:
          - success
          - callback
          - refusal
          - exclusion
      - routing:
          - none
          - sendDigits
          - default
          - hangUp
          - playMessage
          - redial
          - transfer
          - rerouteToSelfService
          - dialNextNumber
  DispositionRoutingPlan:
    type: object
    required:
      - kind
      - id
      - friendlyName
      - creationTime
      - lastModifiedTime
      - version
      - active
    properties:
      kind:
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results.
        type: string
        default: via#dispositionRoutingPlan
        example: via#dispositionRoutingPlan
      id:
        description: Alvaria-generated unique identifier for the Entity
        type: string
        pattern: '^[\$@0-9 a-zA-Z._-]+$'
        example: Id
      friendlyName:
        type: array
        minItems: 1
        items:
          $ref: '#/definitions/DispositionRoutingPlanFriendlyName'
        description: Unique descriptive name for this Disposition Routing Plan instance
        example:
          - locale: en-US
            value: dispositionOne
      description:
        type: string
        description: User Friendly description of the entity type.
        example: This is an entity
      creationTime:
        description: >-
          Time the entity instance was created, specified in ISO 8601 format
          (1985-04-12T23:20:50.525).
        type: string
        format: date-time
        example: '2018-01-02T17:21:09.512'
      lastModifiedTime:
        type: string
        format: date-time
        description: >-
          Time of the most recent change to the Entity instance, specified in
          ISO 8601 format (1985-04-12T23:20:50.525).
        example: '2018-01-02T17:21:09.512'
      version:
        type: integer
        format: int32
        description: >-
          Version of the data associated with this instance. This is a number
          that starts with the value 1 and increments by one for each update
          made to an entity instance.
        example: 2
      active:
        description: >-
          State of the entity. True indicates that entity is active in
          Alvaria&trade; Cloud.
        type: boolean
        example: true
        default: true
      channels:
        type: array
        items:
          $ref: '#/definitions/Channel'
        description: Channels representation
        example:
          - channelType: chat
          - channelType: email
          - channelType: sms
          - channelType: voice
      rules:
        type: array
        items:
          $ref: '#/definitions/Rule'
        description: disposition representation
        example:
          - dispositionId: '1'
          - dispositionId: '2'
          - dispositionId: '3'
          - dispositionId: '4'
  DispositionRoutingPlanFragment:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Via components to serialize the payload of the
          results
        default: via#dispositionRoutingPlan
        example: via#dispositionRoutingPlan
      id:
        type: string
        description: >-
          Alvaria-generated unique identifier for the
          DispositionRoutingPlanFragment id. 
        example: '7'
      channels:
        $ref: '#/definitions/ChannelTypeCollection'
      friendlyName:
        $ref: '#/definitions/FriendlyNameCollection'
      active:
        $ref: '#/definitions/Active'
  DispositionRoutingPlanCollection:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Via components to serialize the payload of the
          results
        default: via#dispositionRoutingPlanList
        example: via#dispositionRoutingPlanList
      dispositionRoutingPlans:
        type: array
        items:
          $ref: '#/definitions/DispositionRoutingPlanFragment'
      totalItems:
        type: integer
        description: The total number of configured disposition routing plans.
        example: 1
  DispositionRoutingPlanFriendlyName:
    required:
      - locale
      - value
    properties:
      locale:
        type: string
        minLength: 1
        description: The IETF Language Tag.
        example: en-US
      value:
        type: string
        minLength: 1
        maxLength: 80
        description: The Localized value of the Entity Name.
        example: entity name
  DispositionRoutingPlanPost:
    type: object
    required:
      - id
      - friendlyName
    properties:
      kind:
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results.
        type: string
        default: via#dispositionRoutingPlan
        example: via#dispositionRoutingPlan
      id:
        description: Alvaria-generated unique identifier for the Entity
        type: string
        pattern: '^[\$@0-9 a-zA-Z._-]+$'
        example: Id
      friendlyName:
        type: array
        minItems: 1
        items:
          $ref: '#/definitions/DispositionRoutingPlanFriendlyName'
        description: Unique descriptive name for this Disposition Routing Plan instance
        example:
          - locale: en-US
            value: dispositionOne
      rules:
        type: array
        items:
          $ref: '#/definitions/Rule'
        description: disposition representation
        example:
          - dispositionId: '1'
          - dispositionId: '2'
          - dispositionId: '3'
          - dispositionId: '4'
      description:
        type: string
        description: User Friendly description of the entity type.
        example: This is an entity
      active:
        description: >-
          State of the entity. True indicates that entity is active in
          Alvaria&trade; Cloud.
        type: boolean
        example: true
        default: true
      channels:
        type: array
        items:
          $ref: '#/definitions/Channel'
        description: Channels representation
        example:
          - channelType: chat
          - channelType: email
          - channelType: sms
          - channelType: voice
  DispositionRoutingPlanChannel:
    type: object
    required:
      - dispPlanId
      - channelTypeId
    properties:
      dispPlanId:
        description: Alvaria-generated unique identifier for the Entity
        type: string
        pattern: '^[\$@0-9 a-zA-Z._-]+$'
        example: Id
      channelTypeId:
        description: Alvaria-generated unique identifier for the Entity
        type: string
        pattern: '^[\$@0-9 a-zA-Z._-]+$'
        example: Id
  Rule:
    type: object
    required:
      - dispositionId
    description: Disposition representation
    properties:
      dispositionId:
        type: string
  DispositionRoutingPlanRule:
    type: object
    required:
      - dispPlanId
      - dispositionId
    properties:
      dispPlanId:
        description: Alvaria-generated unique identifier for the Entity
        type: string
        pattern: '^[\$@0-9 a-zA-Z._-]+$'
        example: Id
      dispositionId:
        description: Alvaria-generated unique identifier for the Entity
        type: string
        pattern: '^[\$@0-9 a-zA-Z._-]+$'
        example: Id
  Version:
    type: integer
    description: >-
      Alvaria-generated identifier for the latest data values associated with
      the entity instance. This must be included in all POST operations because
      it enforces concurrency
    example: 1002
  LastModifiedTime:
    type: string
    format: date-time
    description: >-
      Time of the most recent change to the entity instance, specified in ISO
      8601 format and in UTC time zone (1985-04-12T23:20:50.525Z)
    example: '2017-11-30T13:01:58.247Z'
  CreationTime:
    type: string
    format: date-time
    description: >-
      The date and time that the entity instance was created specified in ISO
      8601 format (1985-04-12T23:20:50.525Z)
    example: '2017-11-30T13:01:58.247Z'
  CallBackWorkTypeTerse:
    type: object
    properties:
      active:
        $ref: '#/definitions/Active'
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        default: via#callBackWorkType
        example: via#callBackWorkType
      id:
        description: Alvaria-generated unique identifier for the Entity
        type: string
        example: 82
      maxCallBackDays:
        description: >-
          The maximum number of days into the future that a callback may be
          scheduled.
        type: integer
        example: 30
      canCallBackWorkType:
        description: Whether a callback can be directed to this work type.
        type: boolean
        example: true
      canCallBackSelf:
        description: Whether a callback can be directed to the user who schedules it.
        type: boolean
        example: true
      mustDisplayPastCallBackWarning:
        description: >-
          Whether a warning should be displayed to users attempting to schedule
          a callback for a date and time in the past.
        type: boolean
        example: true
      friendlyName:
        $ref: '#/definitions/FriendlyNameCollection'
      state:
        $ref: '#/definitions/WorkTypeState'
  WorkTypeTerse:
    type: object
    properties:
      active:
        $ref: '#/definitions/Active'
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        default: via#workType
        example: via#workType
      id:
        type: string
        description: Alvaria-generated unique identifier for the Entity.
        example: 5H9GYF.18
      friendlyName:
        $ref: '#/definitions/FriendlyNameCollection'
      state:
        $ref: '#/definitions/WorkTypeState'
  WorkTypeGroupTerse:
    type: object
    properties:
      active:
        $ref: '#/definitions/Active'
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        default: via#workTypeGroup
        example: via#workTypeGroup
      id:
        type: string
        description: Alvaria-generated unique identifier for the Entity.
        example: '18'
      friendlyName:
        $ref: '#/definitions/FriendlyNameCollection'
  WorkTypeList:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        default: via#workTypeList
        example: via#workTypeList
      workTypes:
        type: array
        items:
          $ref: '#/definitions/WorkTypeTerse'
      totalItems:
        type: integer
        description: >-
          indicates the total number of records in the result set. The client
          can use this value to determine how many calls will be required to
          navigate through the entire result set.
        example: 1
  WorkTypeGroupList:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        default: via#workTypeGroupList
        example: via#workTypeGroupList
      workTypeGroups:
        type: array
        items:
          $ref: '#/definitions/WorkTypeGroupTerse'
      totalItems:
        type: integer
        description: >-
          indicates the total number of records in the result set. The client
          can use this value to determine how many calls will be required to
          navigate through the entire result set.
        example: 1
  WorkHandlerCollection:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the resultsqq§
        default: via#workHandlerCollection
        example: via#workHandlerCollection
      lastModifiedTime:
        $ref: '#/definitions/LastModifiedTime'
      version:
        $ref: '#/definitions/Version'
      workHandlers:
        type: array
        description: >-
          Ordered array of agent identifiers.  The location of the agent
          identifier in the list is used by Alvaria&trade; Cloud to determine
          which agent should be selected to process a contact.  Starting at the
          first agent identifier in the list, Alvaria&trade; Cloud determines
          the first agent that is available and assigns that agent to the
          contact.
        items:
          $ref: '#/definitions/WorkHandlerV2'
      totalItems:
        type: integer
        description: >-
          indicates the total number of records in the result set. The client
          can use this value to determine how many calls will be required to
          navigate through the entire result set.
        example: 1
  PostWorkHandlersRequest:
    type: object
    required:
      - version
      - workHandlers
    properties:
      version:
        $ref: '#/definitions/Version'
      workHandlers:
        type: array
        description: >-
          Ordered array of agent identifiers.  The location of the work handler
          identifier in the list is used by Alvaria&trade; Cloud to determine
          which agent should be selected to process a contact.  Starting at the
          first agent identifier in the list, Alvaria&trade; Cloud determines
          the first agent that is available and assigns that agent to the
          contact.
        items:
          $ref: '#/definitions/WorkHandlerV2'
  PutHiddenWorkTypesRequest:
    type: object
    required:
      - workTypes
    properties:
      workTypes:
        type: array
        description: 'Array of work type identifiers.  '
        items:
          $ref: '#/definitions/HiddenWorkType'
  FriendlyNameCollection:
    type: array
    description: >-
      Displayable representation of the entity name.  One entry per supported
      locale.
    items:
      $ref: '#/definitions/FriendlyName'
  CallBackWorkTypeList:
    type: object
    properties:
      kind:
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results.
        type: string
        default: via#callBackWorkTypeList
        example: via#callBackWorkTypeList
      workTypes:
        type: array
        items:
          $ref: '#/definitions/CallBackWorkTypeTerse'
        example:
          - active: true
            kind: via#callBackWorkType
            id: 82
            friendlyName:
              locale: en-US
              value: entity name
            maxCallBackDays: 30
            canCallBackWorkType: true
            canCallBackSelf: true
            mustDisplayPastCallBackWarning: true
            state: inactive
      totalItems:
        type: integer
        description: The total number of Entity instances existing in the system.
        example: 5
  DispositionRoutingPlanRulesCollection:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Via components to serialize the payload of the
          results
        default: via#dispositionRoutingPlanRulesList
        example: via#dispositionRoutingPlanRulesList
      friendlyName:
        $ref: '#/definitions/FriendlyNameCollection'
      rules:
        type: array
        description: Detail records associated to a given Disposition Routing Plan
        items:
          $ref: '#/definitions/DispositionRoutingPlanRules'
      totalItems:
        type: integer
        description: The total number of disposition rules returned in the collection
        example: 1
  Active:
    type: boolean
    description: Whether the entity is available for use.
    example: true
    default: true
  HiddenWorkType:
    type: object
    required:
      - id
    properties:
      id:
        type: string
        description: Alvaria-generated unique identifier for the WorkType id.
        example: 5H9GYF.127
  WorkHandlerV2:
    type: object
    required:
      - id
    properties:
      id:
        type: string
        description: Alvaria-generated unique identifier for the agent id.
        example: cb221217800211
  TemplateType:
    type: string
    enum:
      - acknowledgement
      - standardResponse
      - outreachCampaign
    description: >-
      An enum value indicating whether the email is an acknowledgement or
      standard response or outreach campaign
    example: standardResponse
  EmailTemplateSubject:
    type: string
    description: An introductory line that identifies the email's intent
    example: information
  EmailTemplateBody:
    type: string
    description: >-
      The main part of the email containing the message's text, images, and
      other data.
    example: Here is the information you requested.
  SignatureId:
    type: string
    description: Alvaria-generated unique identifier for the signature entity.
    example: '1'
  SignatureContents:
    type: string
    description: >-
      The body of the signature containing the signature's text, images, and
      other data.
    example: alvaria
  PatchEmailTemplatesRequest:
    type: object
    required:
      - version
    properties:
      subject:
        $ref: '#/definitions/EmailTemplateSubject'
      body:
        $ref: '#/definitions/EmailTemplateBody'
      templateType:
        $ref: '#/definitions/TemplateType'
      signatureId:
        $ref: '#/definitions/SignatureId'
      version:
        $ref: '#/definitions/Version'
      friendlyName:
        $ref: '#/definitions/FriendlyNameCollection'
  PatchSignaturesRequest:
    type: object
    required:
      - version
    properties:
      contents:
        $ref: '#/definitions/SignatureContents'
      friendlyName:
        $ref: '#/definitions/FriendlyNameCollection'
      version:
        $ref: '#/definitions/Version'
  PutWorkTypesEmailTemplatesRequest:
    type: object
    required:
      - version
      - emailTemplates
    properties:
      version:
        $ref: '#/definitions/Version'
      emailTemplates:
        type: array
        description: Array of email template identifiers.
        items:
          $ref: '#/definitions/PutWorkTypeEmailTemplateFragment'
  WorkTypeFriendlyName:
    required:
      - locale
      - value
    properties:
      locale:
        type: string
        description: The IETF Language Tag.
        example: en-US
      value:
        type: string
        minLength: 1
        maxLength: 80
        pattern: '^(?:(?![ ])[a-zA-Z0-9_ ]*)$'
        description: The Localized value of the Entity Name.
        example: billing
  FriendlyName:
    required:
      - locale
      - value
    properties:
      locale:
        type: string
        description: IETF Language Tag
        example: en-US
      value:
        type: string
        minLength: 1
        maxLength: 80
        pattern: '^(?:(?![ ])[a-zA-Z0-9_ ]*)$'
        description: The Localized value of the Entity Name
        example: entity name
  ContactDataDefCollection:
    type: object
    properties:
      kind:
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results.
        type: string
        default: via#contactDataDefCollection
        example: via#contactDataDefCollection
      contactDataDefs:
        type: array
        items:
          $ref: '#/definitions/ContactDataDefFragment'
        example:
          - kind: via#contactDataDef
            id: '77'
            friendlyName:
              - locale: en-US
                value: Outreach-Default-CDD
            channel:
              channelType: voice
          - kind: via#contactDataDef
            id: '78'
            friendlyName:
              - locale: en-US
                value: NB_Unique
            channel:
              channelType: voice
      totalItems:
        type: integer
        description: The total number of Entity instances existing in the system.
        example: 2
  ContactDataDefFragment:
    type: object
    properties:
      kind:
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results.
        type: string
        default: via#contactDataDef
        example: via#contactDataDef
      id:
        type: string
        description: Alvaria-generated unique identifier for the Contact Data Definition.
        example: '77'
      friendlyName:
        $ref: '#/definitions/FriendlyNameCollection'
      channel:
        $ref: '#/definitions/ChannelTypeFragment'
  ContactDataDef:
    type: object
    properties:
      kind:
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results.
        type: string
        default: via#contactDataDef
        example: via#contactDataDef
      id:
        description: Alvaria-generated unique identifier for the Entity
        type: string
        example: '77'
      friendlyName:
        description: Unique descriptive name for this Contact Data Definition instance.
        type: array
        minItems: 1
        items:
          $ref: '#/definitions/FriendlyName'
        example:
          - locale: en-US
            value: Outreach-CDD-Default
      channel:
        $ref: '#/definitions/ChannelTypeFragment'
      description:
        type: string
        description: User Friendly description of the entity type.
        example: Outreach-Default-CDD
      version:
        type: integer
        format: int32
        description: >-
          Version of the data associated with this instance. This is a number
          that starts with the value 1 and increments by one for each update
          made to an entity instance.
        example: 2
      contactDataDefDetail:
        description: Fields associated with this Contact Data Definition
        type: array
        items:
          $ref: '#/definitions/ContactDataDefDetailCollection'
  ContactDataDefDetailCollection:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Via components to serialize the payload of the
          results
        default: via#contactDataDefDetailCollection
        example: via#contactDataDefDetailCollection
      details:
        type: array
        description: Detail records associated to a given Contact Data Definition
        items:
          $ref: '#/definitions/ContactDataDefDetail'
      totalItems:
        type: integer
        description: The total number of disposition rules returned in the collection
        example: 1
  ContactDataDefDetail:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Via components to serialize the payload of the
          results
        default: via#contactDataDefDetails
        example: via#contactDataDefDetails
      contactDataDefReservedWordId:
        type: string
        description: >-
          Alvaria-generated unique identifier for the Contact Data Definition
          Reserved Word.
        example: '40'
      readOnly:
        description: True indicates that field is not modifiable.
        type: boolean
        example: true
        default: true
      fieldOrder:
        description: >-
          Number indicating the position of the field within the Contact Data
          record
        type: integer
        format: int32
        example: 2
      label:
        description: Field name which will appear on the agent's screen
        type: string
        example: First Name
      maskType:
        description: >-
          The mask type specifies if and how the data in the field should be
          hidden for security purposes.
        type: string
        enum:
          - noMasking
          - maskEntireValue
          - maskFirstNCharacters
          - maskLastNCharacters
        example: maskEntireValue
      maskSize:
        description: >-
          number of characters of the contact data to be masked on the agent
          screen pop
        type: integer
        example: 5
  ContactDataDefReservedWordCollection:
    type: object
    properties:
      kind:
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results.
        type: string
        default: via#contactDataDefReservedWordCollection
        example: via#contactDataDefReservedWordCollection
      contactDataDefReservedWords:
        type: array
        items:
          $ref: '#/definitions/ContactDataDefReservedWordFragment'
        example:
          - kind: via#contactDataDefReservedWord
            id: '113'
            friendlyName:
              - locale: en-US
                value: ACCOUNT_SMS
            channel:
              channelType: sms
          - kind: via#contactDataDefReservedWord
            id: '114'
            friendlyName:
              - locale: en-US
                value: DNIS
            channel:
              channelType: voice
      totalItems:
        type: integer
        description: The total number of Entity instances existing in the system.
        example: 2
  ContactDataDefReservedWordFragment:
    type: object
    properties:
      kind:
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results.
        type: string
        default: via#contactDataDefReservedWord
        example: via#contactDataDefReservedWord
      id:
        type: string
        description: >-
          Alvaria-generated unique identifier for the Contact Data Definition
          Reserved Word.
        example: '114'
      friendlyName:
        description: >-
          A preconfigured reserved word for common contact data that companies
          send to their agents.
        type: array
        minItems: 1
        items:
          $ref: '#/definitions/FriendlyName'
        example:
          - locale: en-US
            value: MobilePhone
      channel:
        $ref: '#/definitions/ChannelTypeFragment'
  WorkType:
    type: object
    required:
      - kind
      - active
      - version
      - id
      - friendlyName
      - dispPlanId
      - channel
      - direction
      - emailAddress
      - workTypeClassification
      - language
      - transcriptionType
    discriminator: workTypeClassification
    properties:
      kind:
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results.
        type: string
        default: via#workType
        example: via#workType
      active:
        $ref: '#/definitions/Active'
      version:
        $ref: '#/definitions/Version'
      id:
        description: Alvaria-generated unique identifier for the Entity
        type: string
        example: '7.7'
      friendlyName:
        description: Unique descriptive name for this Work Type instance.
        type: array
        minItems: 1
        items:
          $ref: '#/definitions/WorkTypeFriendlyName'
        example:
          - locale: en-US
            value: MREhubEmail
      dispPlanId:
        description: >-
          Alvaria-generated unique identifier for the work type's Disposition
          Routing Plan.
        type: string
        example: '7'
        minLength: 1
        maxLength: 40
        pattern: '^(?:[+]{0,1}[0-9]*)$'
      channel:
        $ref: '#/definitions/ChannelTypeFragment'
      direction:
        $ref: '#/definitions/Direction'
      emailAddress:
        description: Inbound email address of work types with channelType = email
        type: string
        example: sales@alvaria.com
      dailyServiceLevel:
        description: >-
          Is the service level for this work type calculated for a 24-hour
          period. If false the service level is calculated based on the
          serviceLevelWindow interval.
        type: boolean
        example: true
      workTypeClassification:
        type: string
        example: OutreachSMSWorkType
        enum:
          - InboundVoiceWorkType
          - InboundSMSWorkType
          - InboundChatWorkType
          - InboundEmailWorkType
          - OutreachVoiceWorkType
          - OutreachSMSWorkType
          - OutreachEmailWorkType
      serviceLevelFormulaId:
        type: string
        description: >-
          Alvaria-generated unique identifier for the different service level
          formulas that this work type uses to determine service level
        enum:
          - ServiceLevel0
          - ServiceLevel1
          - ServiceLevel2
          - ServiceLevel3
          - ServiceLevel4
        example: ServiceLevel0
      serviceLevelWindow:
        type: integer
        description: >-
          Defines the number of minutes comprise to rolling window used to
          calculate the service level. This value only applies if the
          "dailyServiceLevel" field is set to "false"
        example: 1
      shortCallInterval:
        type: integer
        description: >-
          The threshold in seconds that a work item must cross before being
          considered abandoned.
        example: 1
      serviceLevelThreshold:
        type: integer
        description: >-
          The threshold in seconds that a work item's queue time must fall under
          to be considered handled within service level.
        example: 2
      targetServiceLevelPercentage:
        type: number
        format: double
        description: >-
          A floating number representing the goal percent of work items offered
          to an work type are handled by a resource within a specified period of
          time.
        example: 3.1
      workTypeGroupId:
        type: integer
        description: Alvaria-generated unique identifier for the work type's group.
        example: 18
      state:
        $ref: '#/definitions/WorkTypeState'
      contactDataDefId:
        type: integer
        description: >-
          Alvaria-generated unique identifier for the work type's contact data
          definition
        example: 22
      transcriptionType:
        description: >-
          For voice work types, indicates if and when the call should be
          transcribed. Values none (No transcription), realtime (transcription
          in real-time during call only), postcall (transcription only after
          call completes), both (transcription during and after call)
        type: string
        enum:
          - none
          - realtime
          - postcall
          - both
        example: postcall
        default: none
      language:
        description: The IETF language assigned to this work type
        type: string
        default: en-US
        example: en-US
  OutreachSMSWorkType:
    properties:
      defaultServiceProviderId:
        type: integer
        example: 7
        description: the default service provider Id
      defaultServiceProviderAccountId:
        type: integer
        example: 12345
        description: the default service provider account Id
      defaultCallerId:
        type: integer
        example: 1
        description: the default caller Id
      serviceProviderShortCode:
        type: integer
        example: 12234456678
        description: the service provider short code
      vsn:
        type: string
        example: script@org
        description: vsn
    allOf:
      - $ref: '#/definitions/WorkType'
      - {}
  OutreachEmailWorkType:
    properties:
      fromName:
        type: string
        example: Alvaria Sales
        description: Name to be shown to the reveiver
      fromAddress:
        type: string
        example: no-reply@alvaria.com
        description: Email address to be shown to the receiver.
    allOf:
      - $ref: '#/definitions/WorkType'
      - {}
  WorkTypeWorkHandlerRules:
    type: object
    required:
      - kind
      - version
      - canAddAttachments
      - canBlindTransfer
      - canCallBackSelf
      - canCallBackWorkType
      - canChangePhoneInPreview
      - canConference
      - canConsult
      - canDial
      - canForwardEmailToExternal
      - canHold
      - canInitiateNewOutboundEmail
      - canPauseResumeRecording
      - canRecord
      - canTerminate
      - canViewTeamLeads
      - canViewWorkHandlers
      - canViewWorktypes
      - canWarmTransfer
      - defaultCallBackWorkTypeId
      - emailDeliveryType
      - isTimedPreview
      - maxCallBackDays
      - maxWrapTime
      - minWrapTime
      - mustDisplayPastCallBackWarning
      - mustDisposition
      - mustHideSpeedDialPhone
      - previewTimeout
      - urlForwardType
      - wrapExceedAction
      - wrapType
      - wrapWarningDelay
      - isAuthenticated
    properties:
      kind:
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results.
        type: string
        default: via#workHandlerRules
        example: via#workHandlerRules
      version:
        $ref: '#/definitions/Version'
      canAddAttachments:
        $ref: '#/definitions/CanAddAttachments'
      canBlindTransfer:
        $ref: '#/definitions/CanBlindTransfer'
      canCallBackSelf:
        $ref: '#/definitions/CanCallBackSelf'
      canCallBackWorkType:
        $ref: '#/definitions/CanCallBackWorkType'
      canChangePhoneInPreview:
        $ref: '#/definitions/CanChangePhoneInPreview'
      canConference:
        $ref: '#/definitions/CanConference'
      canConsult:
        $ref: '#/definitions/CanConsult'
      canDial:
        $ref: '#/definitions/CanDial'
      canForwardEmailToExternal:
        $ref: '#/definitions/CanForwardEmailToExternal'
      canHold:
        $ref: '#/definitions/CanHold'
      canInitiateNewOutboundEmail:
        $ref: '#/definitions/CanInitiateNewOutboundEmail'
      canPauseResumeRecording:
        $ref: '#/definitions/CanPauseResumeRecording'
      canRecord:
        $ref: '#/definitions/CanRecord'
      canTerminate:
        $ref: '#/definitions/CanTerminate'
      canViewTeamLeads:
        $ref: '#/definitions/CanViewTeamLeads'
      canViewWorkHandlers:
        $ref: '#/definitions/CanViewWorkHandlers'
      canViewWorktypes:
        $ref: '#/definitions/CanViewWorktypes'
      canWarmTransfer:
        $ref: '#/definitions/CanWarmTransfer'
      defaultCallBackWorkTypeId:
        $ref: '#/definitions/DefaultCallBackWorkTypeId'
      emailDeliveryType:
        $ref: '#/definitions/EmailDeliveryType'
      isTimedPreview:
        $ref: '#/definitions/IsTimedPreview'
      maxCallBackDays:
        $ref: '#/definitions/MaxCallBackDays'
      maxWrapTime:
        $ref: '#/definitions/MaxWrapTime'
      minWrapTime:
        $ref: '#/definitions/MinWrapTime'
      mustDisplayPastCallBackWarning:
        $ref: '#/definitions/MustDisplayPastCallBackWarning'
      mustDisposition:
        $ref: '#/definitions/MustDisposition'
      mustHideSpeedDialPhone:
        $ref: '#/definitions/MustHideSpeedDialPhone'
      previewTimeout:
        $ref: '#/definitions/PreviewTimeout'
      urlForwardType:
        $ref: '#/definitions/URLForwardType'
      wrapExceedAction:
        $ref: '#/definitions/WrapExceedActionType'
      wrapType:
        $ref: '#/definitions/WrapType'
      wrapWarningDelay:
        $ref: '#/definitions/WrapWarningDelay'
      isAuthenticated:
        $ref: '#/definitions/IsAuthenticated'
  PutWorkTypeWorkHandlerRulesRequest:
    type: object
    required:
      - version
      - canAddAttachments
      - can3WayXfer
      - canDial
      - canForwardEmailToExternal
      - canHold
      - canInitiateNewOutboundEmail
      - canPauseResumeRecording
      - canTerminate
      - canViewTeamLeads
      - canViewWorkHandlers
      - canViewWorktypes
      - defaultCallBackWorkTypeId
      - maxWrapTime
      - minWrapTime
      - mustDisposition
      - wrapExceedAction
      - wrapType
      - wrapWarningDelay
      - isAuthenticated
    properties:
      version:
        $ref: '#/definitions/Version'
      canAddAttachments:
        $ref: '#/definitions/CanAddAttachments'
      can3WayXfer:
        $ref: '#/definitions/Can3WayXfer'
      canDial:
        $ref: '#/definitions/CanDial'
      canForwardEmailToExternal:
        $ref: '#/definitions/CanForwardEmailToExternal'
      canHold:
        $ref: '#/definitions/CanHold'
      canInitiateNewOutboundEmail:
        $ref: '#/definitions/CanInitiateNewOutboundEmail'
      canPauseResumeRecording:
        $ref: '#/definitions/CanPauseResumeRecording'
      canTerminate:
        $ref: '#/definitions/CanTerminate'
      canViewTeamLeads:
        $ref: '#/definitions/CanViewTeamLeads'
      canViewWorkHandlers:
        $ref: '#/definitions/CanViewWorkHandlers'
      canViewWorktypes:
        $ref: '#/definitions/CanViewWorktypes'
      defaultCallBackWorkTypeId:
        $ref: '#/definitions/DefaultCallBackWorkTypeId'
      maxWrapTime:
        $ref: '#/definitions/MaxWrapTime'
      minWrapTime:
        $ref: '#/definitions/MinWrapTime'
      mustDisposition:
        $ref: '#/definitions/MustDisposition'
      wrapExceedAction:
        $ref: '#/definitions/WrapExceedActionType'
      wrapType:
        $ref: '#/definitions/WrapType'
      wrapWarningDelay:
        $ref: '#/definitions/WrapWarningDelay'
      isAuthenticated:
        $ref: '#/definitions/IsAuthenticated'
  UserWorkHandlerRules:
    type: object
    required:
      - kind
      - version
      - canAddAttachments
      - canBlindTransfer
      - canCallBackSelf
      - canCallBackWorkType
      - canChangePhoneInPreview
      - canConference
      - canConsult
      - canDial
      - canForwardEmailToExternal
      - canHold
      - canInitiateNewOutboundEmail
      - canPauseResumeRecording
      - canRecord
      - canTerminate
      - canViewTeamLeads
      - canViewWorkHandlers
      - canViewWorktypes
      - canWarmTransfer
      - defaultCallBackWorkTypeId
      - emailDeliveryType
      - isTimedPreview
      - maxCallBackDays
      - maxWrapTime
      - minWrapTime
      - mustDisplayPastCallBackWarning
      - mustDisposition
      - mustHideSpeedDialPhone
      - previewTimeout
      - urlForwardType
      - wrapExceedAction
      - wrapType
      - wrapWarningDelay
      - canDeleteVoicemail
      - canForwardVoicemail
      - canNotReady
      - canPark
      - isOnDemand
      - maxEmailInteractions
      - maxMessageInteractions
      - maxTotalInteractions
      - mustDisplayWorkTypes
      - mustSelectWorkType
      - parkWarningTime
    properties:
      kind:
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results.
        type: string
        default: via#workHandlerRules
        example: via#workHandlerRules
      version:
        $ref: '#/definitions/Version'
      canAddAttachments:
        $ref: '#/definitions/CanAddAttachments'
      canBlindTransfer:
        $ref: '#/definitions/CanBlindTransfer'
      canCallBackSelf:
        $ref: '#/definitions/CanCallBackSelf'
      canCallBackWorkType:
        $ref: '#/definitions/CanCallBackWorkType'
      canChangePhoneInPreview:
        $ref: '#/definitions/CanChangePhoneInPreview'
      canConference:
        $ref: '#/definitions/CanConference'
      canConsult:
        $ref: '#/definitions/CanConsult'
      canDial:
        $ref: '#/definitions/CanDial'
      canForwardEmailToExternal:
        $ref: '#/definitions/CanForwardEmailToExternal'
      canHold:
        $ref: '#/definitions/CanHold'
      canInitiateNewOutboundEmail:
        $ref: '#/definitions/CanInitiateNewOutboundEmail'
      canPauseResumeRecording:
        $ref: '#/definitions/CanPauseResumeRecording'
      canRecord:
        $ref: '#/definitions/CanRecord'
      canTerminate:
        $ref: '#/definitions/CanTerminate'
      canViewTeamLeads:
        $ref: '#/definitions/CanViewTeamLeads'
      canViewWorkHandlers:
        $ref: '#/definitions/CanViewWorkHandlers'
      canViewWorktypes:
        $ref: '#/definitions/CanViewWorktypes'
      canWarmTransfer:
        $ref: '#/definitions/CanWarmTransfer'
      defaultCallBackWorkTypeId:
        $ref: '#/definitions/DefaultCallBackWorkTypeId'
      emailDeliveryType:
        $ref: '#/definitions/EmailDeliveryType'
      isTimedPreview:
        $ref: '#/definitions/IsTimedPreview'
      maxCallBackDays:
        $ref: '#/definitions/MaxCallBackDays'
      maxWrapTime:
        $ref: '#/definitions/MaxWrapTime'
      minWrapTime:
        $ref: '#/definitions/MinWrapTime'
      mustDisplayPastCallBackWarning:
        $ref: '#/definitions/MustDisplayPastCallBackWarning'
      mustDisposition:
        $ref: '#/definitions/MustDisposition'
      mustHideSpeedDialPhone:
        $ref: '#/definitions/MustHideSpeedDialPhone'
      previewTimeout:
        $ref: '#/definitions/PreviewTimeout'
      urlForwardType:
        $ref: '#/definitions/URLForwardType'
      wrapExceedAction:
        $ref: '#/definitions/WrapExceedActionType'
      wrapType:
        $ref: '#/definitions/WrapType'
      wrapWarningDelay:
        $ref: '#/definitions/WrapWarningDelay'
      canDeleteVoicemail:
        $ref: '#/definitions/CanDeleteVoicemail'
      canForwardVoicemail:
        $ref: '#/definitions/CanForwardVoicemail'
      canNotReady:
        $ref: '#/definitions/CanNotReady'
      canPark:
        $ref: '#/definitions/CanPark'
      isOnDemand:
        $ref: '#/definitions/IsOnDemand'
      maxEmailInteractions:
        $ref: '#/definitions/MaxEmailInteractions'
      maxMessageInteractions:
        $ref: '#/definitions/MaxMessageInteractions'
      maxTotalInteractions:
        $ref: '#/definitions/MaxTotalInteractions'
      mustDisplayWorkTypes:
        $ref: '#/definitions/MustDisplayWorkTypes'
      mustSelectWorkType:
        $ref: '#/definitions/MustSelectWorkType'
      parkWarningTime:
        $ref: '#/definitions/ParkWarningTime'
  PutUserWorkHandlerRulesRequest:
    type: object
    required:
      - version
      - canCallBackSelf
      - canDial
      - canPauseResumeRecording
      - maxWrapTime
      - minWrapTime
      - mustDisposition
      - mustHideSpeedDialPhone
      - wrapExceedAction
      - wrapType
      - wrapWarningDelay
      - canDeleteVoicemail
      - canForwardVoicemail
      - canNotReady
      - canPark
      - isOnDemand
      - maxEmailInteractions
      - maxMessageInteractions
      - maxTotalInteractions
      - mustSelectWorkType
      - parkWarningTime
    properties:
      version:
        $ref: '#/definitions/Version'
      canCallBackSelf:
        $ref: '#/definitions/CanCallBackSelf'
      canDial:
        $ref: '#/definitions/CanDial'
      canPauseResumeRecording:
        $ref: '#/definitions/CanPauseResumeRecording'
      maxWrapTime:
        $ref: '#/definitions/MaxWrapTime'
      minWrapTime:
        $ref: '#/definitions/MinWrapTime'
      mustDisposition:
        $ref: '#/definitions/MustDisposition'
      mustHideSpeedDialPhone:
        $ref: '#/definitions/MustHideSpeedDialPhone'
      wrapExceedAction:
        $ref: '#/definitions/WrapExceedActionType'
      wrapType:
        $ref: '#/definitions/WrapType'
      wrapWarningDelay:
        $ref: '#/definitions/WrapWarningDelay'
      canDeleteVoicemail:
        $ref: '#/definitions/CanDeleteVoicemail'
      canForwardVoicemail:
        $ref: '#/definitions/CanForwardVoicemail'
      canNotReady:
        $ref: '#/definitions/CanNotReady'
      canPark:
        $ref: '#/definitions/CanPark'
      isOnDemand:
        $ref: '#/definitions/IsOnDemand'
      maxEmailInteractions:
        $ref: '#/definitions/MaxEmailInteractions'
      maxMessageInteractions:
        $ref: '#/definitions/MaxMessageInteractions'
      maxTotalInteractions:
        $ref: '#/definitions/MaxTotalInteractions'
      mustSelectWorkType:
        $ref: '#/definitions/MustSelectWorkType'
      parkWarningTime:
        $ref: '#/definitions/ParkWarningTime'
  CanAddAttachments:
    description: >-
      Whether the agent can add attachments to an email interaction. Applies
      only to Email work types.
    type: boolean
    example: true
    default: true
  CanBlindTransfer:
    description: Whether the agent can initiate a blind transfer
    type: boolean
    example: true
    default: true
  CanCallBackSelf:
    description: Whether the agent can direct callbacks to themselves
    type: boolean
    example: true
    default: true
  CanCallBackWorkType:
    description: Allow work type callbacks for this work type
    type: boolean
    example: true
    default: true
  CanChangePhoneInPreview:
    description: Whether the agent can initiate an outbound interaction
    type: boolean
    example: true
    default: true
  CanConference:
    description: Whether the agent can initiate a conference
    type: boolean
    example: true
    default: true
  CanConsult:
    description: Whether the agent can initiate a consultation
    type: boolean
    example: true
    default: true
  CanDial:
    description: >-
      Whether the agent can initiate voice interactions while in states Idle,
      Park, Wrap, or while on a non-voice interaction. 
    type: boolean
    example: true
    default: true
  CanForwardEmailToExternal:
    description: >-
      Whether the agent can forward an email interaction to an external email
      address(es). Applies only to Email work types.
    type: boolean
    example: true
    default: true
  CanHold:
    description: Enables the user to place the contact on Hold.
    type: boolean
    example: true
    default: true
  CanInitiateNewOutboundEmail:
    description: >-
      Whether the agent can create and send outbound email messages to external
      email addresses
    type: boolean
    example: true
    default: true
  CanPauseResumeRecording:
    description: Whether the agent can pause and resume recording of a conversation
    type: boolean
    example: true
    default: true
  CanRecord:
    description: Whether the agent can initiate recording of a conversation
    type: boolean
    example: true
    default: true
  CanTerminate:
    description: Whether the agent can terminate an interaction
    type: boolean
    example: true
    default: true
  Can3WayXfer:
    description: Whether the agent can initiate conferences and blind transfers
    type: boolean
    example: true
    default: true
  CanViewTeamLeads:
    description: Whether the agent can consult and transfer to team leads.
    type: boolean
    example: true
    default: true
  CanViewWorkHandlers:
    description: Whether the agent can consult and transfer to agents.
    type: boolean
    example: true
    default: true
  CanViewWorktypes:
    description: Whether the agent can consult and transfer to work types.
    type: boolean
    example: true
    default: true
  CanWarmTransfer:
    description: Whether the agent can initiate a warm transfer
    type: boolean
    example: true
    default: true
  DefaultCallBackWorkTypeId:
    description: >-
      Alvaria-generated unique identifier of the Outreach work type to use by
      default when scheduling a Callback.
    type: string
    example: AB345.100
    default: true
  EmailDeliveryType:
    description: >-
      If pull selected, enables the agent to select an email to work on from the
      Inbound Email work type queue.
    type: string
    example: push
    enum:
      - none
      - push
      - pull
    default: push
  IsTimedPreview:
    description: Whether an automated interaction is previewed before dialing
    type: boolean
    example: true
    default: true
  MaxCallBackDays:
    description: Maximum number of days in which a callback must be scheduled
    type: integer
    example: 5
    default: 0
  MaxWrapTime:
    description: Maximum number of seconds an agent can be in Wrap in an interaction.
    type: integer
    example: 5
    default: 5
  MinWrapTime:
    description: >-
      Minimum number of seconds an agent must be in Wrap in an interaction
      before dispositioning it.
    type: integer
    example: 5
    default: 5
  MustDisplayPastCallBackWarning:
    description: >-
      When true, a warning is displayed when a callback is scheduled behind the
      agent's time zone
    type: boolean
    example: true
    default: true
  MustDisposition:
    description: Whether a disposition is required for interactions.
    type: boolean
    example: true
    default: true
  MustHideSpeedDialPhone:
    description: 'If true, only the speed dial name is shown. The phone number is hidden.'
    type: boolean
    example: true
    default: true
  PreviewTimeout:
    description: Seconds that an automated interaction is previewed before being dialed
    type: integer
    example: 30
    default: 30
  WrapType:
    description: >-
      Specifies whether interactions must go to Wrap (required), must not go to
      Wrap (none), or may go to Wrap (optional).
    type: string
    example: required
    default: required
    enum:
      - none
      - optional
      - required
  WrapWarningDelay:
    description: >-
      Maximum number of seconds an agent can be in Wrap before receiving a
      warning.
    type: integer
    example: 5
    default: 10
  IsAuthenticated:
    description: >-
      Whether a web chat customer must be authenticated with an external service
      when initiating a chat interaction. Applies only to Chat work types.
    type: boolean
    example: false
    default: false
  WrapExceedActionType:
    type: string
    description: >-
      The action to take when the agent’s time in Wrap in an interaction exceeds
      the configured maxWrapTime.
    enum:
      - none
      - displayWarning
      - changeToNotReady
      - changeToIdle
      - changeToPark
    example: displayWarning
  URLForwardType:
    type: string
    description: >-
      Specifies whether the URLs from any browser navigation done by the agent
      should be automatically pushed (auto) or not (dragAndDrop) to a web chat
      customer. Applies only to Chat work types.
    example: auto
    default: auto
    enum:
      - auto
      - dragAndDrop
  CanDeleteVoicemail:
    description: Whether the user can delete voicemail from their inbox
    type: boolean
    example: true
    default: true
  CanForwardVoicemail:
    description: >-
      Whether the user can forward voicemail to another mailbox, mailbox group,
      or external voicemail system
    type: boolean
    example: true
    default: true
  CanNotReady:
    description: Whether the agent can record a personal greeting.
    type: boolean
    example: true
    default: true
  CanPark:
    description: >-
      Whether the agent can initiate a outbound manual dial and receive
      non-service calls, such as internal, consult, or DID calls
    type: boolean
    example: true
    default: true
  IsOnDemand:
    description: >-
      Whether the system can dial to an agent resource instead of maintaining a
      permanent voice link.
    type: boolean
    example: true
    default: true
  MaxEmailInteractions:
    description: Max number of email interactions an agent can receive at one time
    type: integer
    example: 5
    default: 8
  MaxMessageInteractions:
    description: Max number of Chat/SMS interactions an agent can receive at one time
    type: integer
    example: 5
    default: 10
  MaxTotalInteractions:
    description: >-
      Max number of Inbound interactions an agent can receive at one time. This
      includes Voice, Chat, SMS and Email. (Workhandler is always allowed only
      one voice call with a second consult line, rest of the lines can have non
      voice 
        calls.)
    type: integer
    example: 5
    default: 8
  MustDisplayWorkTypes:
    description: >-
      Whether a list of assigned work types is shown to an agent prior to
      dialing
    type: boolean
    example: true
    default: true
  MustSelectWorkType:
    description: Whether an agent can dial without selecting a work type from a list
    type: boolean
    example: true
    default: true
  ParkWarningTime:
    description: >-
      Max seconds before agents are warned they have exceeded the allotted Park
      time
    type: integer
    example: 5
    default: 8
  ChannelTypeFragment:
    type: object
    required:
      - channelType
    properties:
      channelType:
        description: 'Media type (voice, chat, sms, email)'
        type: string
        enum:
          - voice
          - chat
          - sms
          - email
        example: voice
  ChannelTypeCollection:
    type: array
    items:
      $ref: '#/definitions/ChannelTypeFragment'
    example:
      - channelType: voice
      - channelType: email
  Direction:
    type: string
    description: Direction of a work type. This is used to filter by work type direction.
    enum:
      - inbound
      - outreach
    example: outreach
  AudioMessage:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Via components to serialize the payload of the
          results
        default: via#audiomessage
        example: via#audiomessage
      id:
        type: string
        description: Alvaria-generated unique identifier for the AudioMessage id.
        example: 53
      language:
        type: string
        description: The IETF Language for the audio message language.
        example: en-US
      duration:
        type: integer
        description: Length of the audio message in seconds
        example: 20
      friendlyName:
        $ref: '#/definitions/FriendlyNameCollection'
  AudioMessageCollection:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Via components to serialize the payload of the
          results
        default: via#audioMessagesList
        example: via#audioMessagesList
      lastModifiedTime:
        $ref: '#/definitions/LastModifiedTime'
      version:
        $ref: '#/definitions/Version'
      audioMessages:
        type: array
        description: 'Ordered array of audio messages.  '
        items:
          $ref: '#/definitions/AudioMessage'
  PutWorkTypeEmailTemplateFragment:
    type: object
    properties:
      id:
        type: string
        description: Alvaria-generated unique identifier for the EmailTemplate.
        example: 7
  EmailTemplateFragment:
    type: object
    properties:
      active:
        $ref: '#/definitions/Active'
      kind:
        type: string
        description: >-
          Identifier used by Via components to serialize the payload of the
          results
        default: via#emailTemplate
        example: via#emailTemplate
      id:
        type: string
        description: Alvaria-generated unique identifier for the EmailTemplate.
        example: 7
      friendlyName:
        $ref: '#/definitions/FriendlyNameCollection'
      subject:
        type: string
        description: An introductory line that identifies the email's intent
        example: information
      templateType:
        $ref: '#/definitions/TemplateType'
  EmailTemplateFragmentCollection:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Via components to serialize the payload of the
          results
        default: via#emailTemplateFragmentCollection
        example: via#emailTemplateFragmentCollection
      emailTemplates:
        type: array
        description: 'Array of email template identifiers.  '
        items:
          $ref: '#/definitions/EmailTemplateFragment'
      totalItems:
        type: integer
        description: >-
          The total number of outreach workTypes with terminal prioritization
          available
        example: 1
  WorkTypeEmailTemplateFragmentCollection:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Via components to serialize the payload of the
          results
        default: via#workTypeEmailTemplateFragmentCollection
        example: via#workTypeEmailTemplateFragmentCollection
      lastModifiedTime:
        $ref: '#/definitions/LastModifiedTime'
      version:
        $ref: '#/definitions/Version'
      emailTemplates:
        type: array
        description: 'Array of email template identifiers.  '
        items:
          $ref: '#/definitions/EmailTemplateFragment'
      totalItems:
        type: integer
        description: >-
          The total number of outreach workTypes with terminal prioritization
          available
        example: 1
  Signature:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Via components to serialize the payload of the
          results
        default: via#signature
        example: via#signature
      id:
        type: string
        description: Alvaria-generated unique identifier for the Signature id.
        example: 7
      active:
        $ref: '#/definitions/Active'
      contents:
        $ref: '#/definitions/SignatureContents'
      friendlyName:
        $ref: '#/definitions/FriendlyNameCollection'
      lastModifiedTime:
        $ref: '#/definitions/LastModifiedTime'
      version:
        $ref: '#/definitions/Version'
  PostSignatureRequest:
    type: object
    properties:
      contents:
        $ref: '#/definitions/SignatureContents'
      friendlyName:
        $ref: '#/definitions/FriendlyNameCollection'
  SignatureFragment:
    type: object
    properties:
      active:
        $ref: '#/definitions/Active'
      kind:
        type: string
        description: >-
          Identifier used by Via components to serialize the payload of the
          results
        default: via#signature
        example: via#signature
      id:
        type: string
        description: Alvaria-generated unique identifier for the Signature.
        example: 1
      friendlyName:
        $ref: '#/definitions/FriendlyNameCollection'
  SignatureFragmentCollection:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Via components to serialize the payload of the
          results
        default: via#signatureFragmentCollection
        example: via#signatureFragmentCollection
      signatures:
        type: array
        description: 'Array of signature identifiers.  '
        items:
          $ref: '#/definitions/SignatureFragment'
      totalItems:
        type: integer
        description: >-
          The total number of outreach workTypes with terminal prioritization
          available
        example: 1
  DispositionRoutingPlanRules:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Via components to serialize the payload of the
          results
        default: via#dispositionRoutingPlanRules
        example: via#dispositionRoutingPlanRules
      id:
        type: string
        description: Alvaria-generated unique identifier for the Disposition.
        example: '40'
      dispositionCode:
        type: string
        description: >-
          An Alvaria internal disposition code identifier for the
          dispositionRoutingPlan entity instance.
        example: CC_EXP
      friendlyName:
        $ref: '#/definitions/FriendlyNameCollection'
  PostEmailTemplateRequest:
    type: object
    properties:
      subject:
        $ref: '#/definitions/EmailTemplateSubject'
      body:
        $ref: '#/definitions/EmailTemplateBody'
      templateType:
        $ref: '#/definitions/TemplateType'
      signatureId:
        $ref: '#/definitions/SignatureId'
      friendlyName:
        $ref: '#/definitions/FriendlyNameCollection'
  EmailTemplate:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Via components to serialize the payload of the
          results
        default: via#emailTemplate
        example: via#emailTemplate
      id:
        type: string
        description: Alvaria-generated unique identifier for the emailTemplate entity
        example: '23'
      active:
        $ref: '#/definitions/Active'
      subject:
        type: string
        description: An introductory line that identifies the email's intent
        example: information
      body:
        $ref: '#/definitions/EmailTemplateBody'
      templateType:
        $ref: '#/definitions/TemplateType'
      signatureId:
        type: string
        description: Alvaria-generated unique identifier for the Signature.
        example: '1'
      lastModifiedTime:
        $ref: '#/definitions/LastModifiedTime'
      version:
        $ref: '#/definitions/Version'
      friendlyName:
        $ref: '#/definitions/FriendlyNameCollection'
  WorkHandlerStatusReasonCollection:
    type: object
    required:
      - kind
      - totalItems
      - workHandlerStatuses
    properties:
      kind:
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results.
        type: string
        default: via#workHandlerStatusReasonCollection
        example: via#workHandlerStatusReasonCollection
      workHandlerStatuses:
        type: array
        items:
          $ref: '#/definitions/WorkHandlerStatusReasonFragment'
        example:
          - kind: via#workHandlerStatus
            id: '114.114'
            category: Park
            friendlyName:
              - locale: en-US
                value: Auto Consult
          - kind: via#workHandlerStatus
            id: '192.192'
            category: NotReady
            friendlyName:
              - locale: en-US
                value: On Break
      totalItems:
        type: integer
        description: The total number of Entity instances existing in the system.
        example: 2
  WorkHandlerStatusReasonFragment:
    type: object
    required:
      - kind
      - id
      - category
      - friendlyName
    properties:
      kind:
        description: Alvaria-generated unique identifier for the workHandlerStatusReason.
        type: string
        default: via#workHandlerStatus
        example: via#workHandlerStatus
      id:
        description: Alvaria-generated unique identifier for the entity instance.
        type: string
        example: '17.17'
      category:
        type: string
        description: Alvaria-generated unique identifier for the workHandlerStatusReason.
        example: Park
        enum:
          - Park
          - NotReady
          - LoggedOut
          - CallRejectedReason
      friendlyName:
        type: array
        minItems: 1
        items:
          $ref: '#/definitions/FriendlyName'
        description: A descriptive name for this WorkHandlerStatus.
        example:
          - locale: en-US
            value: Initial Login
  WorkTypeState:
    type: string
    description: current state of the work type
    enum:
      - none
      - inactive
      - active
      - unmanned
      - holiday
      - paused
    example: inactive
  SkillList:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        default: via#skillList
        example: via#skillList
      skills:
        type: array
        items:
          $ref: '#/definitions/Skill'
      totalItems:
        type: integer
        description: >-
          indicates the total number of records in the result set. The client
          can use this value to determine how many calls will be required to
          navigate through the entire result set.
        example: 1
  Skill:
    type: object
    properties:
      active:
        $ref: '#/definitions/Active'
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        default: via#skill
        example: via#skill
      id:
        type: string
        description: Alvaria-generated unique identifier for the Entity.
        example: '18'
      friendlyName:
        $ref: '#/definitions/FriendlyNameCollection'
  SkillDetails:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        default: via#skillDetails
        example: via#skillDetails
      active:
        $ref: '#/definitions/Active'
      id:
        type: string
        description: Alvaria-generated unique identifier for the Entity.
        example: '18'
      friendlyName:
        $ref: '#/definitions/FriendlyNameCollection'
      skillLevels:
        type: array
        items:
          $ref: '#/definitions/SkillLevel'
  SkillLevel:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        default: via#skillLevel
        example: via#skillLevel
      id:
        type: string
        description: Alvaria-generated unique identifier for the Entity.
        example: '35'
      friendlyName:
        $ref: '#/definitions/FriendlyNameCollection'
      levelPriority:
        $ref: '#/definitions/SkillLevelPriorityType'
  SkillLevelPriorityType:
    type: string
    enum:
      - lowest
      - low
      - medium
      - high
      - highest
    description: An enum value indicating priority for skill level
    example: lowest
  UserSkillList:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        default: via#userSkillList
        example: via#userSkillList
      version:
        $ref: '#/definitions/Version'
      userSkills:
        type: array
        items:
          $ref: '#/definitions/UserSkill'
      totalItems:
        type: integer
        description: >-
          indicates the total number of records in the result set. The client
          can use this value to determine how many calls will be required to
          navigate through the entire result set.
        example: 1
  UserSkill:
    type: object
    properties:
      active:
        $ref: '#/definitions/Active'
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        default: via#userSkill
        example: via#userSkill
      id:
        type: string
        description: Alvaria-generated unique identifier for the Entity.
        example: '18'
      levelId:
        type: string
        description: Alvaria-generated unique identifier for the Entity.
        example: '35'
  PutUserSkillsRequest:
    type: object
    required:
      - userSkills
    properties:
      version:
        $ref: '#/definitions/Version'
      userSkills:
        type: array
        description: Array of user skills.
        items:
          $ref: '#/definitions/UserSkillsRequest'
  UserSkillsRequest:
    type: object
    properties:
      id:
        type: string
        description: Alvaria-generated unique identifier for the Entity.
        example: '18'
      levelId:
        type: string
        description: Alvaria-generated unique identifier for the Entity.
        example: '35'
parameters:
  authorization:
    name: Authorization
    in: header
    description: >-
      Authentication token with the value: 'Bearer {accessToken}', where
      {accessToken} was returned from a call to the authorization endpoint
    required: true
    type: string
  x-api-key:
    name: x-api-key
    in: header
    description: Alvaria-provided value used to track API endpoint usage.
    required: true
    type: string
  includeInactive:
    name: includeInactive
    in: query
    description: >-
      If the 'includeInactive' query parameter is not passed OR set to 'false'
      only active object instances are returned. If 'includeInactive' query
      parameter is passed and set to 'true' both active and inactive object
      instances are returned in the API response.
    type: boolean
    default: false
    required: false
  orgId:
    name: orgId
    in: path
    description: Name of a customer organization.
    required: true
    type: string
  teamId:
    name: teamId
    in: path
    description: Alvaria-generated unique ID for a team
    required: true
    type: string
  systemExternalId:
    name: systemExternalId
    in: path
    description: Alvaria-generated unique identifier for the System External
    required: true
    type: string
  userId:
    name: userId
    in: path
    description: >-
      The Alvaria generated unique identifier for the user instance. The ID is
      determined through the GET /users endpoint.
    required: true
    type: string
  email:
    name: email
    in: query
    description: The email address of the user.
    type: string
    required: false
  preferredNameValue:
    name: preferredNameValue
    in: query
    description: 'Preferred name of a user, which is the user''s first and last name.'
    type: string
    required: false
  maxResults:
    name: maxResults
    in: query
    description: >-
      Maximum results. This is used to specify the maximum number of records to
      return in the result set. You can use this to set a result set limit that
      is less than the system/API-specific limit.
    type: integer
    required: false
  startIndex:
    name: startIndex
    in: query
    description: >-
      Index of the starting record. This is used to set the beginning record for
      the result set when multiple GET Collection requests are required due to
      the pagination of a large result set.
    type: integer
    default: 0
    required: false
  workTypeId:
    name: workTypeId
    in: path
    description: Alvaria-generated unique ID for a work type.
    required: true
    type: string
  dispositionId:
    name: dispositionId
    in: path
    description: >-
      The ID of the disposition. The ID must contain only letters (a-z, A-z),
      numbers (0-9), or underscores (_). The maximum length is 64 characters.
    required: true
    type: string
  dispPlanId:
    name: dispPlanId
    in: path
    description: Alvaria-generated unique ID for a disposition plan.
    required: true
    type: string
  channelType:
    name: channelType
    in: query
    description: >-
      Filters results based on Disposition Routing Plan channel type, Example=
      voice,chat,email.
    required: false
    type: string
    enum:
      - voice
      - email
      - chat
      - sms
      - screen
  dispositionType:
    name: dispositionType
    in: query
    description: This may be used to filter by disposition type.
    required: false
    type: string
    enum:
      - systemDefined
      - userDefined
  app:
    name: app
    in: query
    description: either dbjob or archive.
    required: false
    type: string
  type:
    name: type
    in: query
    description: either EnterpriseHistorical/Outreach/Intraday.
    required: false
    type: string
  contactDataDefId:
    name: contactDataDefId
    in: path
    description: The ID of the contact data definition
    required: true
    type: string
  contactDataDefReservedWordId:
    name: contactDataDefReservedWordId
    in: path
    description: The ID of the contact data definition reserved word
    required: true
    type: string
securityDefinitions:
  oauth:
    type: oauth2
    authorizationUrl: >-
      https://myaspect.{region}.id.aspect-cloud.net/tokenservice/oauth2/access_token?realm={orgId}
    flow: implicit
    scopes:
      provisioningapi: Manage the provisioning resources
      ConfigurationService: Manage the provisioning resources
tags:
  - name: Users
  - name: Teams
  - name: SystemExternals
  - name: WorkTypes
  - name: DispositionRoutingPlans

