Windstream Holdings tenants API

Tenant management and configuration

OpenAPI Specification

windstream-holdings-tenants-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Windstream Enterprise Contact Center Services agents tenants API
  description: The Windstream Enterprise Contact Center Services (CCS) API provides programmatic access to contact center operations, enabling developers to route calls, web chats, and text messages, manage agent states, configure tenants, and monitor queue activity. The REST API is complemented by a WebSocket interface for real-time event streaming.
  version: 2.0.0
  contact:
    name: Windstream Enterprise Developer Support
    url: https://api.solutions.uniti.com/
  termsOfService: https://www.windstreamenterprise.com/legal/
servers:
- url: https://{ccs_domain}/6/v2/api
  description: CCS REST API
  variables:
    ccs_domain:
      default: ccs.windstreamenterprise.com
      description: CCS domain hostname
tags:
- name: tenants
  description: Tenant management and configuration
paths:
  /tenants:
    get:
      operationId: listTenants
      summary: List Tenants
      description: Returns a list of all tenants managed by the contact center.
      tags:
      - tenants
      responses:
        '200':
          description: List of tenants
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Tenant'
  /tenants/{tenantUuid}:
    get:
      operationId: getTenant
      summary: Get Tenant Details
      description: Returns detailed configuration for a specific tenant.
      tags:
      - tenants
      parameters:
      - name: tenantUuid
        in: path
        required: true
        description: Tenant UUID
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Tenant details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Tenant'
        '404':
          description: Tenant not found
    post:
      operationId: updateTenantProducts
      summary: Update Tenant Products
      description: Adds or removes product assignments for a tenant.
      tags:
      - tenants
      parameters:
      - name: tenantUuid
        in: path
        required: true
        description: Tenant UUID
        schema:
          type: string
          format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TenantProductUpdate'
      responses:
        '200':
          description: Products updated
    put:
      operationId: updateTenantLimits
      summary: Update Tenant Limits
      description: Updates usage limits and license counts for a tenant.
      tags:
      - tenants
      parameters:
      - name: tenantUuid
        in: path
        required: true
        description: Tenant UUID
        schema:
          type: string
          format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TenantLimitsUpdate'
      responses:
        '200':
          description: Tenant limits updated
  /tenants/{tenantUuid}/roles:
    get:
      operationId: listTenantRoles
      summary: List Tenant Roles
      description: Returns all roles configured for a specific tenant.
      tags:
      - tenants
      parameters:
      - name: tenantUuid
        in: path
        required: true
        description: Tenant UUID
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: List of tenant roles
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Role'
  /tenants/{tenantUuid}/acds:
    get:
      operationId: listTenantACDs
      summary: List Tenant ACDs
      description: Returns all Automatic Call Distributors (ACDs/queues) for a tenant.
      tags:
      - tenants
      parameters:
      - name: tenantUuid
        in: path
        required: true
        description: Tenant UUID
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: List of ACDs
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ACD'
  /tenants/{tenantUuid}/presence-options:
    get:
      operationId: listPresenceOptions
      summary: List Presence Options
      description: Returns available presence/status options for agents in a tenant.
      tags:
      - tenants
      parameters:
      - name: tenantUuid
        in: path
        required: true
        description: Tenant UUID
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: List of presence options
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PresenceOption'
  /tenants/{tenantUuid}/extensions:
    get:
      operationId: listTenantExtensions
      summary: List Tenant Extensions
      description: Returns all extensions configured for a specific tenant.
      tags:
      - tenants
      parameters:
      - name: tenantUuid
        in: path
        required: true
        description: Tenant UUID
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: List of extensions
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Extension'
  /tenants/{tenantUuid}/extensions/{extensionUuid}:
    put:
      operationId: updateTenantExtension
      summary: Update Tenant Extension
      description: Updates configuration for a specific extension within a tenant.
      tags:
      - tenants
      parameters:
      - name: tenantUuid
        in: path
        required: true
        description: Tenant UUID
        schema:
          type: string
          format: uuid
      - name: extensionUuid
        in: path
        required: true
        description: Extension UUID
        schema:
          type: string
          format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExtensionUpdate'
      responses:
        '200':
          description: Extension updated
  /tenants/{tenantUuid}/text-count:
    get:
      operationId: getTextMessageCount
      summary: Get Text Message Count
      description: Returns the SMS/MMS message count for a tenant.
      tags:
      - tenants
      parameters:
      - name: tenantUuid
        in: path
        required: true
        description: Tenant UUID
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: SMS/MMS count
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TextCount'
    post:
      operationId: resetTextMessageCount
      summary: Reset Text Message Count
      description: Resets the SMS/MMS message count for a tenant.
      tags:
      - tenants
      parameters:
      - name: tenantUuid
        in: path
        required: true
        description: Tenant UUID
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Count reset successfully
components:
  schemas:
    TenantLimitsUpdate:
      type: object
      description: Request to update tenant limits
      properties:
        max_agents:
          type: integer
          description: New maximum agent count
        max_calls:
          type: integer
          description: New maximum concurrent calls
        sms_limit:
          type: integer
          description: SMS message limit
    Role:
      type: object
      description: A role with associated permissions
      properties:
        id:
          type: string
          description: Role identifier
        name:
          type: string
          description: Role name
          enum:
          - API
          - Agent Control
          - Call Control
          - Agent Events
          - Call Events
          - Inbound Queue Events
        description:
          type: string
          description: Role description
    Tenant:
      type: object
      description: A contact center tenant configuration
      properties:
        uuid:
          type: string
          format: uuid
          description: Tenant UUID
        name:
          type: string
          description: Tenant name
        status:
          type: string
          description: Tenant status
          enum:
          - active
          - inactive
          - suspended
        max_agents:
          type: integer
          description: Maximum number of concurrent agents
        max_calls:
          type: integer
          description: Maximum concurrent calls
    ExtensionUpdate:
      type: object
      description: Extension update request
      properties:
        name:
          type: string
          description: New display name
        role:
          type: string
          description: Updated role assignment
    TextCount:
      type: object
      description: SMS/MMS message count
      properties:
        sms_count:
          type: integer
          description: Number of SMS messages sent
        mms_count:
          type: integer
          description: Number of MMS messages sent
        period_start:
          type: string
          format: date-time
          description: Start of the counting period
    PresenceOption:
      type: object
      description: An agent presence/status option
      properties:
        id:
          type: string
          description: Presence option identifier
        name:
          type: string
          description: Display name (e.g., Available, Busy, On Break)
        available_for_calls:
          type: boolean
          description: Whether agent is available to receive calls in this state
    Extension:
      type: object
      description: A contact center extension
      properties:
        uuid:
          type: string
          format: uuid
          description: Extension UUID
        number:
          type: string
          description: Extension number
        name:
          type: string
          description: Display name
        tenant_uuid:
          type: string
          description: Tenant UUID
    ACD:
      type: object
      description: An Automatic Call Distributor (queue)
      properties:
        id:
          type: string
          description: ACD identifier
        name:
          type: string
          description: Queue name
        tenant_uuid:
          type: string
          description: Tenant UUID
        max_queue_length:
          type: integer
          description: Maximum number of calls in queue
        current_queue_length:
          type: integer
          description: Current number of calls waiting
        agents_available:
          type: integer
          description: Number of available agents
    TenantProductUpdate:
      type: object
      description: Request to update tenant product assignments
      properties:
        add:
          type: array
          items:
            type: string
          description: Product IDs to add
        remove:
          type: array
          items:
            type: string
          description: Product IDs to remove
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Bearer token authentication for CCS API