{
  "swagger": "2.0",
  "info": {
    "title": "Luware Nimbus",
    "version": "1.0",
    "description": "Connector for Nimbus Contact Center and Enterprise Routing licensed services to quickly connect Nimbus with third-party systems. By listening and reacting to trigger events, the connector can follow up with flow actions, e.g. to retrieve data from external systems and store them into Nimbus parameters for later use within your Nimbus workflows.",
    "contact": {
      "name": "Luware Helpdesk",
      "url": "https://helpdesk.luware.cloud/",
      "email": "nimbus.support@luware.com"
    }
  },
  "host": "api.uk-01.luware.cloud",
  "basePath": "/",
  "schemes": [
    "https"
  ],
  "consumes": [
    "application/json"
  ],
  "produces": [
    "application/json"
  ],
  "x-ms-connector-metadata": [
    {
      "propertyName": "Website",
      "propertyValue": "https://luware.com/"
    },
    {
      "propertyName": "Privacy Policy",
      "propertyValue": "https://luware.com/en/privacy-policy/"
    },
    {
      "propertyName": "Categories",
      "propertyValue": "Communication;Collaboration"
    }
  ],
  "paths": {
    "/v1/triggers/scheduler-entries": {
      "x-ms-notification-content": {
        "description": "Details for trigger",
        "schema": {
          "$ref": "#/definitions/SchedulerEntryEventData"
        }
      },
      "post": {
        "tags": [
          "Hooks"
        ],
        "summary": "When a scheduler entry changes state",
        "description": "Raised whenever a scheduler entry matching the filter criteria changes its state.",
        "operationId": "RegisterSchedulerEntryTrigger",
        "x-ms-trigger": "single",
        "parameters": [
          {
            "name": "Request body of the trigger",
            "in": "body",
            "description": "This is the request body of the trigger.",
            "required": true,
            "schema": {
              "type": "object",
              "required": [
                "config"
              ],
              "properties": {
                "config": {
                  "description": "Configuration of the Trigger.",
                  "type": "object",
                  "required": [
                    "url",
                    "services",
                    "schedulerEntryEvents"
                  ],
                  "properties": {
                    "services": {
                      "type": "array",
                      "description": "UPNs of the services, for which events for the tasks should be fetched.",
                      "title": "Services",
                      "items": {
                        "type": "string",
                        "description": "UPNs of the services, for which events for the tasks should be fetched.",
                        "title": "Services",
                        "x-ms-dynamic-values": {
                          "operationId": "GetSchedulerEntryServices"
                        },
                        "x-ms-visibility": "important"
                      },
                      "minItems": 1
                    },
                    "schedulerEntryEvents": {
                      "type": "array",
                      "description": "Events of the scheduler entry, for which this trigger should be raised.",
                      "title": "Scheduler Entry Events",
                      "items": {
                        "type": "string",
                        "description": "Events of the scheduler entry, for which this trigger should be raised.",
                        "title": "Scheduler Entry Events",
                        "x-ms-dynamic-values": {
                          "operationId": "GetSchedulerEntriesEvents",
                          "value-path": "value",
                          "value-title": "name"
                        },
                        "x-ms-visibility": "important"
                      }
                    },
                    "url": {
                      "type": "string",
                      "description": "CallbackUrl",
                      "title": "CallbackUrl",
                      "x-ms-notification-url": true,
                      "x-ms-visibility": "internal"
                    }
                  }
                }
              },
              "additionalProperties": false
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Trigger created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "504": {
            "description": "The request timed-out"
          },
          "default": {
            "description": "Operation Failed"
          }
        }
      }
    },
    "/v1/triggers/virtual-assistant": {
      "x-ms-notification-content": {
        "description": "Details for trigger",
        "schema": {
          "$ref": "#/definitions/VirtualUserAssistantEventData"
        }
      },
      "post": {
        "tags": [
          "Hooks"
        ],
        "summary": "When the virtual user assistant has an update",
        "deprecated": true,
        "description": "This event is triggered, when the virtual user assistant has new update.",
        "operationId": "RegisterVirtualUserAssistantTrigger",
        "x-ms-trigger": "single",
        "parameters": [
          {
            "name": "Request body of the trigger",
            "in": "body",
            "description": "This is the request body of the trigger.",
            "required": true,
            "schema": {
              "type": "object",
              "required": [
                "config"
              ],
              "properties": {
                "config": {
                  "description": "Configuration of the Trigger.",
                  "type": "object",
                  "required": [
                    "url",
                    "services",
                    "virtualUserAssistantEvents"
                  ],
                  "properties": {
                    "services": {
                      "type": "array",
                      "description": "UPNs of the services, for which events for the tasks should be fetched.",
                      "title": "Services",
                      "items": {
                        "type": "string",
                        "description": "UPNs of the services, for which events for the tasks should be fetched.",
                        "title": "Services",
                        "x-ms-dynamic-values": {
                          "operationId": "GetServiceUpnsForVirtualUserAssistant"
                        },
                        "x-ms-visibility": "important"
                      },
                      "minItems": 1
                    },
                    "virtualUserAssistantEvents": {
                      "type": "array",
                      "description": "Events of the virtual user assistant, for which this trigger should be raised.",
                      "title": "Virtual User Assistant Events",
                      "items": {
                        "type": "string",
                        "description": "Events of the virtual user assistant, for which this trigger should be raised.",
                        "title": "Virtual User Assistant Events",
                        "x-ms-dynamic-values": {
                          "operationId": "GetVirtualUserAssistantEvents",
                          "value-path": "value",
                          "value-title": "name"
                        },
                        "x-ms-visibility": "important"
                      }
                    },
                    "url": {
                      "type": "string",
                      "description": "CallbackUrl",
                      "title": "CallbackUrl",
                      "x-ms-notification-url": true,
                      "x-ms-visibility": "internal"
                    }
                  }
                }
              },
              "additionalProperties": false
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Trigger created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "504": {
            "description": "The request timed-out"
          },
          "default": {
            "description": "Operation Failed"
          }
        }
      }
    },
    "/v1/triggers/companion": {
      "x-ms-notification-content": {
        "description": "Details for trigger",
        "schema": {
          "$ref": "#/definitions/VirtualUserAssistantEventData"
        }
      },
      "post": {
        "tags": [
          "Hooks"
        ],
        "summary": "When the companion has an update",
        "description": "This event is triggered, when companion has a new update.",
        "operationId": "RegisterCompanionTrigger",
        "x-ms-trigger": "single",
        "parameters": [
          {
            "name": "Request body of the trigger",
            "in": "body",
            "description": "This is the request body of the trigger.",
            "required": true,
            "schema": {
              "type": "object",
              "required": [
                "config"
              ],
              "properties": {
                "config": {
                  "description": "Configuration of the Trigger.",
                  "type": "object",
                  "required": [
                    "url",
                    "services",
                    "virtualUserAssistantEvents"
                  ],
                  "properties": {
                    "services": {
                      "type": "array",
                      "description": "UPNs of the services, for which events for the tasks should be fetched.",
                      "title": "Services",
                      "items": {
                        "type": "string",
                        "description": "UPNs of the services, for which events for the tasks should be fetched.",
                        "title": "Services",
                        "x-ms-dynamic-values": {
                          "operationId": "GetServiceUpnsForVirtualUserAssistant"
                        },
                        "x-ms-visibility": "important"
                      },
                      "minItems": 1
                    },
                    "virtualUserAssistantEvents": {
                      "type": "array",
                      "description": "Events of the companion, for which this trigger should be raised.",
                      "title": "Companion Events",
                      "items": {
                        "type": "string",
                        "description": "Events of the companion, for which this trigger should be raised.",
                        "title": "Companion Events",
                        "x-ms-dynamic-values": {
                          "operationId": "GetVirtualUserAssistantEvents",
                          "value-path": "value",
                          "value-title": "name"
                        },
                        "x-ms-visibility": "important"
                      }
                    },
                    "url": {
                      "type": "string",
                      "description": "CallbackUrl",
                      "title": "CallbackUrl",
                      "x-ms-notification-url": true,
                      "x-ms-visibility": "internal"
                    }
                  }
                }
              },
              "additionalProperties": false
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Trigger created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "504": {
            "description": "The request timed-out"
          },
          "default": {
            "description": "Operation Failed"
          }
        }
      }
    },
    "/v1/triggers/tasks": {
      "x-ms-notification-content": {
        "description": "Details for trigger.",
        "schema": {
          "$ref": "#/definitions/TaskEventData"
        }
      },
      "post": {
        "tags": [
          "Hooks"
        ],
        "summary": "When a task changes state",
        "description": "Raised whenever a task matching the filter criteria changes its state.",
        "operationId": "RegisterTaskWebHook",
        "x-ms-trigger": "single",
        "parameters": [
          {
            "name": "Request body of trigger",
            "in": "body",
            "description": "This is the request body of the trigger.",
            "required": true,
            "schema": {
              "type": "object",
              "required": [
                "config"
              ],
              "properties": {
                "config": {
                  "description": "Configuration of the Trigger.",
                  "type": "object",
                  "required": [
                    "url",
                    "services",
                    "taskEvents"
                  ],
                  "properties": {
                    "services": {
                      "type": "array",
                      "description": "UPNs of the services, for which events for the tasks should be fetched.",
                      "title": "Services",
                      "items": {
                        "type": "string",
                        "description": "UPNs of the services, for which events for the tasks should be fetched.",
                        "title": "Services",
                        "x-ms-dynamic-values": {
                          "operationId": "GetServices"
                        },
                        "x-ms-visibility": "important"
                      },
                      "minItems": 1
                    },
                    "taskEvents": {
                      "type": "array",
                      "description": "Events of the tasks, for which this trigger should be raised.",
                      "title": "Task Events",
                      "items": {
                        "type": "string",
                        "description": "Events of the tasks, for which this trigger should be raised.",
                        "title": "Task Events",
                        "x-ms-dynamic-values": {
                          "operationId": "GetTaskEvents",
                          "value-path": "value",
                          "value-title": "name"
                        },
                        "x-ms-visibility": "important"
                      }
                    },
                    "modalities": {
                      "type": "array",
                      "description": "Specify the initial modalities of the tasks.",
                      "title": "Modalities",
                      "items": {
                        "type": "string",
                        "description": "Specify the initial modalities of the tasks.",
                        "title": "Modalities",
                        "x-ms-dynamic-values": {
                          "operationId": "GetTaskModalities",
                          "value-path": "value",
                          "value-title": "name"
                        }
                      }
                    },
                    "directions": {
                      "type": "array",
                      "description": "Specify the directions of the tasks.",
                      "title": "Directions",
                      "items": {
                        "type": "string",
                        "description": "Specify the directions of the tasks.",
                        "title": "Directions",
                        "x-ms-dynamic-values": {
                          "operationId": "GetTaskDirections",
                          "value-path": "value",
                          "value-title": "name"
                        }
                      }
                    },
                    "url": {
                      "type": "string",
                      "description": "CallbackUrl",
                      "title": "CallbackUrl",
                      "x-ms-notification-url": true,
                      "x-ms-visibility": "internal"
                    }
                  }
                }
              },
              "additionalProperties": false
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Trigger created"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "504": {
            "description": "The request timed-out"
          },
          "default": {
            "description": "Operation Failed"
          }
        }
      }
    },
    "/v1/tasks/{taskId}": {
      "put": {
        "summary": "Update task",
        "description": "Update customer information, context parameter and/or preferred user settings for a task in progress.",
        "operationId": "UpdateTask",
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "x-ms-url-encoding": "single",
            "description": "The Nimbus specific ID of the task.",
            "x-ms-summary": "Task ID",
            "type": "string",
            "maxLength": 128,
            "required": true
          },
          {
            "name": "TaskInformation",
            "in": "body",
            "description": "Contains all fields which can be updated on a task in progress.",
            "x-ms-summary": "Task In Progress Information",
            "schema": {
              "$ref": "#/definitions/TaskInformation"
            }
          },
          {
            "name": "serviceSessionId",
            "in": "query",
            "type": "string",
            "description": "The Id of the service session.",
            "x-ms-summary": "Service Session ID",
            "x-ms-visibility": "important",
            "required": false
          },
          {
            "name": "userSessionId",
            "in": "query",
            "type": "string",
            "description": "The Id of the user session.",
            "x-ms-summary": "User Session ID",
            "x-ms-visibility": "important",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "Task updated successfully"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "504": {
            "description": "The request timed-out"
          },
          "default": {
            "description": "Operation Failed"
          }
        }
      }
    },
    "/v1/triggers/tasks/{triggerId}": {
      "delete": {
        "description": "Deletes a trigger for task events.",
        "x-ms-visibility": "internal",
        "operationId": "DeleteTaskEventsTrigger",
        "parameters": [
          {
            "name": "triggerId",
            "in": "path",
            "x-ms-url-encoding": "single",
            "description": "ID of the trigger being deleted.",
            "required": true,
            "type": "string",
            "maxLength": 128
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "504": {
            "description": "The request timed-out"
          },
          "default": {
            "description": "Operation Failed"
          }
        },
        "summary": "Deletes a trigger"
      }
    },
    "/v1/triggers/scheduler-entries/{triggerId}": {
      "delete": {
        "description": "Deletes a trigger for scheduler entries.",
        "x-ms-visibility": "internal",
        "operationId": "DeleteSchedulerEntriesTrigger",
        "parameters": [
          {
            "name": "triggerId",
            "in": "path",
            "x-ms-url-encoding": "single",
            "description": "ID of the trigger being deleted.",
            "required": true,
            "type": "string",
            "maxLength": 128
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "504": {
            "description": "The request timed-out"
          },
          "default": {
            "description": "Operation Failed"
          }
        },
        "summary": "Deletes a trigger"
      }
    },
    "/v1/tasks/service-contacts": {
      "get": {
        "x-ms-visibility": "internal",
        "description": "Gets the list of service contacts of the user.",
        "summary": "Get the list of service contacts",
        "operationId": "GetServices",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ServiceUpnValues"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "504": {
            "description": "The request timed-out"
          },
          "default": {
            "description": "Operation Failed"
          }
        }
      }
    },
    "/v1/tasks/events": {
      "get": {
        "x-ms-visibility": "internal",
        "description": "Gets the list of available task events.",
        "summary": "Gets the list of available task events",
        "operationId": "GetTaskEvents",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/EventValues"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "504": {
            "description": "The request timed-out"
          },
          "default": {
            "description": "Operation Failed"
          }
        }
      }
    },
    "/v1/tasks/users-for-preferred-routing": {
      "get": {
        "x-ms-visibility": "internal",
        "description": "Gets a list of nimbus users.",
        "summary": "Get a list of nimbus users available for preferred routing",
        "operationId": "GetUsersForPreferredRouting",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/UserUpnValues"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "504": {
            "description": "The request timed-out"
          },
          "default": {
            "description": "Operation Failed"
          }
        }
      }
    },
    "/v1/scheduler-entries/events": {
      "get": {
        "x-ms-visibility": "internal",
        "description": "Gets the list of available scheduler entry events.",
        "summary": "Gets the list of available scheduler entry events",
        "operationId": "GetSchedulerEntriesEvents",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/EventValues"
            }
          },
          "500": {
            "description": "Internal Server Error"
          },
          "504": {
            "description": "The request timed-out"
          },
          "default": {
            "description": "Operation Failed"
          }
        }
      }
    },
    "/v1/tasks/modalities": {
      "get": {
        "x-ms-visibility": "internal",
        "description": "Gets the list of available task modalities.",
        "summary": "Gets the list of available task modalities",
        "operationId": "GetTaskModalities",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Returns a list of task modalities",
            "schema": {
              "$ref": "#/definitions/TaskModality"
            }
          },
          "500": {
            "description": "Internal Server Error"
          },
          "504": {
            "description": "The request timed-out"
          },
          "default": {
            "description": "Operation Failed"
          }
        }
      }
    },
    "/v1/tasks/directions": {
      "get": {
        "x-ms-visibility": "internal",
        "description": "Gets the list of available task directions.",
        "summary": "Gets the list of available task directions",
        "operationId": "GetTaskDirections",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Returns a list of task directions",
            "schema": {
              "$ref": "#/definitions/TaskDirection"
            }
          },
          "500": {
            "description": "Internal Server Error"
          },
          "504": {
            "description": "The request timed-out"
          },
          "default": {
            "description": "Operation Failed"
          }
        }
      }
    },
    "/v1/outbound-call-with-workflow/scheduler-entries": {
      "post": {
        "operationId": "CreateOutboundCallWithWorkflowSchedulerEntry",
        "summary": "Schedule a new outbound call with workflow",
        "description": "Schedule a new outbound call with workflow (scheduler entry).",
        "parameters": [
          {
            "name": "SchedulerEntry",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/OutboundCallWithWorkflowSchedulerEntryWriteData"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "x-ms-summary": "Scheduler Entry",
            "schema": {
              "$ref": "#/definitions/OutboundCallWithWorkflowSchedulerEntryEventData"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "504": {
            "description": "The request timed-out"
          },
          "default": {
            "description": "Operation Failed"
          }
        }
      }
    },
    "/v1/outbound-call-with-workflow/scheduler-entries/{SchedulerEntryID}": {
      "put": {
        "operationId": "UpdateOutboundCallWithWorkflowSchedulerEntry",
        "summary": "Update an outbound call with workflow scheduler entry",
        "description": "Change settings for an already created outbound call with workflow scheduler entry.",
        "parameters": [
          {
            "name": "SchedulerEntryID",
            "description": "ID of the scheduler entry to be updated.",
            "x-ms-summary": "Scheduler Entry ID",
            "x-ms-visibility": "important",
            "in": "path",
            "x-ms-url-encoding": "single",
            "required": true,
            "type": "string",
            "maxLength": 128
          },
          {
            "name": "SchedulerEntry",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/OutboundCallWithWorkflowSchedulerEntryWriteData"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the updated scheduler entry",
            "x-ms-summary": "Scheduler Entry Task",
            "schema": {
              "$ref": "#/definitions/OutboundCallWithWorkflowSchedulerEntryEventData"
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "404": {
            "description": "Scheduler Entry Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "default": {
            "description": "Operation Failed"
          }
        }
      }
    },
    "/v1/scheduler-entries/service-contacts": {
      "get": {
        "x-ms-visibility": "internal",
        "operationId": "GetSchedulerEntryServices",
        "summary": "Get Scheduler Entry Services",
        "description": "Gets the list of service contacts available for scheduler entries.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Returns a list of service contacts",
            "schema": {
              "$ref": "#/definitions/ServiceUpnValues"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "504": {
            "description": "The request timed-out"
          },
          "default": {
            "description": "Operation Failed"
          }
        }
      }
    },
    "/v1/outbound-call-with-workflow/service-contacts": {
      "get": {
        "x-ms-visibility": "internal",
        "operationId": "GetStartOcwwServices",
        "summary": "Get Scheduler Entry Services",
        "description": "Gets the list of service contacts available for the outbound call with workflow.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Returns a list of service contacts",
            "schema": {
              "$ref": "#/definitions/ServiceUpnValues"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "504": {
            "description": "The request timed-out"
          },
          "default": {
            "description": "Operation Failed"
          }
        }
      }
    },
    "/v1/service-check/service-contacts": {
      "get": {
        "x-ms-visibility": "internal",
        "operationId": "GetAllAvailableServices",
        "summary": "Get all the available services' UPNs for a customer",
        "description": "Gets the list of service contacts available for a generic, unrestricted step.",
        "parameters": [
          {
            "name": "filterBy",
            "in": "query",
            "description": "What kind of filtering should be applied.",
            "required": false,
            "type": "string",
            "default": "None",
            "x-ms-summary": "Service Upn Filter By",
            "x-ms-visibility": "important",
            "x-ms-url-encoding": "single"
          }

        ],
        "responses": {
          "200": {
            "description": "Returns a list of service contacts",
            "schema": {
              "$ref": "#/definitions/ServiceUpnValues"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "504": {
            "description": "The request timed-out"
          },
          "default": {
            "description": "Operation Failed"
          }
        }
      }
    },
    "/v1/scheduler-entries/distribution-priorities": {
      "get": {
        "x-ms-visibility": "internal",
        "operationId": "GetDistributionPriorities",
        "summary": "Get Distribution Priorities",
        "description": "Gets the list of distribution priorities available for scheduler entries.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/DistributionPriorityList"
            }
          },
          "500": {
            "description": "Internal Server Error"
          },
          "504": {
            "description": "The request timed-out"
          },
          "default": {
            "description": "Operation Failed"
          }
        }
      }
    },
    "/v1/scheduler-entries": {
      "get": {
        "operationId": "GetSchedulerEntries",
        "summary": "Get all scheduler entries",
        "description": "Returns all scheduler entries for the service specified.",
        "parameters": [
          {
            "name": "serviceUpn",
            "in": "query",
            "description": "UPN of the service for which the scheduler entries should be returned.",
            "required": true,
            "type": "string",
            "x-ms-summary": "Service UPN",
            "x-ms-dynamic-values": {
              "operationId": "GetSchedulerEntryServices"
            },
            "x-ms-visibility": "important"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "x-ms-summary": "Scheduled Tasks",
            "schema": {
              "type": "array",
              "description": "List of all scheduled tasks for the specified service ",
              "x-ms-summary": "Scheduled Tasks",
              "items": {
                "$ref": "#/definitions/SchedulerEntryEventData"
              }
            }
          },
          "403": {
            "description": "Forbidden for the given Service UPN"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "504": {
            "description": "The request timed-out"
          },
          "default": {
            "description": "Operation Failed"
          }
        }
      },
      "post": {
        "operationId": "CreateSchedulerEntry",
        "summary": "Schedule a new outbound call",
        "description": "Schedule a new outbound call (scheduler entry).",
        "parameters": [
          {
            "name": "SchedulerEntry",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SchedulerEntryWriteData"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "x-ms-summary": "Scheduler Entry",
            "schema": {
              "$ref": "#/definitions/SchedulerEntryEventData"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "504": {
            "description": "The request timed-out"
          },
          "default": {
            "description": "Operation Failed"
          }
        }
      }
    },
    "/v1/scheduler-entries/{SchedulerEntryID}": {
      "delete": {
        "operationId": "DeleteSchedulerEntry",
        "summary": "Remove a scheduler entry",
        "description": "Remove a scheduler entry from the system. Only possible, while the scheduler entry is not yet in progress.",
        "parameters": [
          {
            "name": "SchedulerEntryID",
            "in": "path",
            "x-ms-url-encoding": "single",
            "description": "ID of the scheduler entry to be removed.",
            "required": true,
            "type": "string",
            "maxLength": 128,
            "x-ms-summary": "Scheduler Entry ID "
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "504": {
            "description": "The request timed-out"
          },
          "default": {
            "description": "Operation Failed"
          }
        }
      },
      "put": {
        "operationId": "UpdateSchedulerEntry",
        "summary": "Update a scheduler entry",
        "description": "Change settings for an already created scheduler entry.",
        "parameters": [
          {
            "name": "SchedulerEntryID",
            "description": "ID of the scheduler entry to be updated.",
            "x-ms-summary": "Scheduler Entry ID",
            "x-ms-visibility": "important",
            "in": "path",
            "x-ms-url-encoding": "single",
            "required": true,
            "type": "string",
            "maxLength": 128
          },
          {
            "name": "SchedulerEntry",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SchedulerEntryWriteData"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the updated scheduler entry",
            "x-ms-summary": "Scheduler Entry Task",
            "schema": {
              "$ref": "#/definitions/SchedulerEntryEventData"
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "404": {
            "description": "Scheduler Entry Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "default": {
            "description": "Operation Failed"
          }
        }
      }
    },
    "/v1/virtual-assistant/{serviceSessionId}/transcriptionData/{dataType}": {
      "get": {
        "operationId": "GetVirtualUserAssistantData",
        "deprecated": true,
        "summary": "Get virtual user assistant data",
        "description": "Returns virtual user assistant data for selected service session.",
        "parameters": [
          {
            "name": "serviceSessionId",
            "in": "path",
            "description": "ID of the service session for which the virtual user assistant data should be returned.",
            "required": true,
            "type": "string",
            "maxLength": 128,
            "x-ms-summary": "Service Session ID",
            "x-ms-visibility": "important",
            "x-ms-url-encoding": "single"
          },
          {
            "name": "userSessionId",
            "in": "query",
            "description": "ID of the user session for which the virtual user assistant data should be returned.",
            "required": false,
            "type": "string",
            "maxLength": 128,
            "x-ms-summary": "User Session ID",
            "x-ms-visibility": "important",
            "x-ms-url-encoding": "single"
          },
          {
            "name": "dataType",
            "in": "path",
            "description": "Type of data that should be returned for the service session.",
            "required": true,
            "type": "string",
            "x-ms-summary": "Data Type",
            "x-ms-dynamic-values": {
              "operationId": "GetVirtualUserAssistantDataTypes",
              "value-path": "value",
              "value-title": "name"
            },
            "x-ms-visibility": "important"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/DynamicResponseGetVirtualUserAssistantData"
            }
          },
          "403": {
            "description": "Forbidden for the given Service UPN"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "504": {
            "description": "The request timed-out"
          },
          "default": {
            "description": "Operation Failed"
          }
        }
      }
    },
    "/v1/virtual-assistant/{serviceSessionId}/companion-transcription-data/{dataType}": {
      "get": {
        "operationId": "GetCompanionData",
        "summary": "Get companion task data",
        "description": "Returns companion data for selected service session.",
        "parameters": [
          {
            "name": "serviceSessionId",
            "in": "path",
            "description": "ID of the service session for which the companion data should be returned.",
            "required": true,
            "type": "string",
            "maxLength": 128,
            "x-ms-summary": "Service Session ID",
            "x-ms-visibility": "important",
            "x-ms-url-encoding": "single"
          },
          {
            "name": "userSessionId",
            "in": "query",
            "description": "ID of the user session for which the companion data should be returned.",
            "required": false,
            "type": "string",
            "maxLength": 128,
            "x-ms-summary": "User Session ID",
            "x-ms-visibility": "important",
            "x-ms-url-encoding": "single"
          },
          {
            "name": "dataType",
            "in": "path",
            "description": "Type of data that should be returned for the service session.",
            "required": true,
            "type": "string",
            "x-ms-summary": "Data Type",
            "x-ms-dynamic-values": {
              "operationId": "GetVirtualUserAssistantDataTypes",
              "value-path": "value",
              "value-title": "name"
            },
            "x-ms-visibility": "important"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/DynamicResponseGetVirtualUserAssistantData"
            }
          },
          "403": {
            "description": "Forbidden for the given Service UPN"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "504": {
            "description": "The request timed-out"
          },
          "default": {
            "description": "Operation Failed"
          }
        }
      }
    },
    "/v1/virtual-assistant/events": {
      "get": {
        "x-ms-visibility": "internal",
        "description": "Gets the list of available virtual user assistant events.",
        "summary": "Gets the list of available virtual user assistant events",
        "operationId": "GetVirtualUserAssistantEvents",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/EventValues"
            }
          },
          "500": {
            "description": "Internal Server Error"
          },
          "504": {
            "description": "The request timed-out"
          },
          "default": {
            "description": "Operation Failed"
          }
        }
      }
    },
    "/v1/virtual-assistant/data-types": {
      "get": {
        "x-ms-visibility": "internal",
        "description": "Gets the list of available virtual user assistant data types.",
        "summary": "Gets the list of available virtual user assistant data types",
        "operationId": "GetVirtualUserAssistantDataTypes",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/DataTypeValues"
            }
          },
          "500": {
            "description": "Internal Server Error"
          },
          "504": {
            "description": "The request timed-out"
          },
          "default": {
            "description": "Operation Failed"
          }
        }
      }
    },
    "/v1/virtual-assistant/schemas/{dataType}": {
      "get": {
        "x-ms-visibility": "internal",
        "description": "Gets the schema for the virtual user assistant data.",
        "summary": "Gets the schema for the virtual user assistant data",
        "operationId": "GetDataSchema",
        "parameters": [
          {
            "name": "dataType",
            "in": "path",
            "x-ms-url-encoding": "single",
            "description": "The selected data type for the request.",
            "x-ms-summary": "Data Type",
            "type": "string",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          },
          "500": {
            "description": "Internal Server Error"
          },
          "504": {
            "description": "The request timed-out"
          },
          "default": {
            "description": "Operation Failed"
          }
        }
      }
    },
    "/v1/virtual-assistant/service-contacts": {
      "get": {
        "x-ms-visibility": "internal",
        "operationId": "GetServiceUpnsForVirtualUserAssistant",
        "summary": "Virtual User Assistant Service Contacts",
        "x-ms-summary": "Virtual User Assistant Service Contacts",
        "description": "Gets the list of service contacts for virtual user assistant.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ServiceUpnValues"
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "default": {
            "description": "Operation Failed."
          }
        }
      }
    },
    "/v1/ExternalTasks/service-contacts": {
      "get": {
        "x-ms-visibility": "internal",
        "operationId": "GetExternalTasksServices",
        "summary": "External Task Service Contacts",
        "x-ms-summary": "External Task Service Contacts",
        "description": "Gets the list of service contacts for external tasks.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ServiceUpnValues"
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "default": {
            "description": "Operation Failed."
          }
        }
      }
    },
    "/v1/ExternalTasks/distribution-priorities": {
      "get": {
        "x-ms-visibility": "internal",
        "operationId": "GetExternalTasksDistributionPriorities",
        "summary": "GetExternalTasksDistributionPriorities",
        "x-ms-summary": "External Task Distribution Priorities",
        "description": "Gets the list of distribution priorities for external tasks.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/DistributionPriorityList"
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "default": {
            "description": "Operation Failed."
          }
        }
      }
    },
    "/v1/ExternalTasks": {
      "post": {
        "operationId": "AddExternalTask",
        "summary": "Add a new external task",
        "description": "Add a new external task",
        "x-ms-summary": "Add a new external task",
        "parameters": [
          {
            "name": "ExternalTask",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ExternalTaskWriteDto"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "x-ms-summary": "External Task",
            "schema": {
              "$ref": "#/definitions/ExternalTaskWriteResult"
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Operation Failed."
          }
        }
      }
    },
    "/v1/ExternalTasks/{externalTaskId}": {
      "delete": {
        "operationId": "RemoveExternalTask",
        "summary": "Remove an external task",
        "description": "Remove an external task",
        "x-ms-summary": "Remove an external task",
        "parameters": [
          {
            "name": "externalTaskId",
            "in": "path",
            "x-ms-url-encoding": "single",
            "description": "ID of the External Task being removed",
            "required": true,
            "type": "string",
            "maxLength": 128,
            "x-ms-summary": "External Task Id"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/AddressBooks": {
      "get": {
        "x-ms-visibility": "internal",
        "description": "Gets the list of available address books.",
        "summary": "Gets the list of available address books",
        "operationId": "GetAddressBooks",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/AddressBookList"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "default": {
            "description": "Operation Failed."
          }
        }
      }
    },
    "/v2/AddressBooks/{AddressBook}/contacts": {
      "get": {
        "summary": "Get contact(s) from an address book",
        "description": "Returns contacts from an address book.",
        "operationId": "GetContacts",
        "parameters": [
          {
            "name": "AddressBook",
            "description": "The address book to get the contact(s) from.",
            "x-ms-summary": "Addressbook",
            "in": "path",
            "x-ms-url-encoding": "single",
            "required": true,
            "type": "string",
            "maxLength": 128,
            "x-ms-dynamic-values": {
              "operationId": "GetAddressBooks",
              "value-path": "id",
              "value-title": "name"
            },
            "x-ms-visibility": "important"
          },
          {
            "name": "externalIds",
            "description": "External IDs of the contacts to fetch. Optional: If none provided, all contacts will be returned.",
            "x-ms-summary": "ExternalId",
            "in": "query",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Contacts List",
            "schema": {
              "type": "array",
              "description": "The returned contacts.",
              "x-ms-summary": "Contacts",
              "items": {
                "$ref": "#/definitions/ContactReadDto"
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden. No access to Addressbook."
          },
          "500": {
            "description": "Internal Server Error"
          },
          "default": {
            "description": "Operation Failed."
          }
        }
      },
      "post": {
        "summary": "Add a contact to an address book",
        "description": "Adds a new contact to a specific address book. The ExternalId is used as reference in further requests.",
        "operationId": "AddContact",
        "parameters": [
          {
            "name": "AddressBook",
            "description": "The addressbook to add the contact to.",
            "x-ms-summary": "Addressbook",
            "in": "path",
            "x-ms-url-encoding": "single",
            "required": true,
            "type": "string",
            "maxLength": 128,
            "x-ms-dynamic-values": {
              "operationId": "GetAddressBooks",
              "value-path": "id",
              "value-title": "name"
            },
            "x-ms-visibility": "important"
          },
          {
            "name": "contact",
            "description": "The contact to be newly added to the address book.",
            "x-ms-summary": "Contact",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ContactWriteDto"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ContactReadDto"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden. No access to Addressbook."
          },
          "500": {
            "description": "Internal Server Error"
          },
          "default": {
            "description": "Operation Failed."
          }
        }
      },
      "put": {
        "summary": "Update a contact in an address book",
        "description": "Updates a single contact in the specified address book.",
        "operationId": "UpdateContact",
        "parameters": [
          {
            "name": "AddressBook",
            "description": "The addressbook to update the contact in.",
            "x-ms-summary": "Addressbook",
            "in": "path",
            "x-ms-url-encoding": "single",
            "required": true,
            "type": "string",
            "maxLength": 128,
            "x-ms-dynamic-values": {
              "operationId": "GetAddressBooks",
              "value-path": "id",
              "value-title": "name"
            },
            "x-ms-visibility": "important"
          },
          {
            "name": "contact",
            "description": "The contact to be updated in the address book.",
            "x-ms-summary": "Contact",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ContactWriteDto"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ContactReadDto"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden. No access to Addressbook."
          },
          "500": {
            "description": "Internal Server Error"
          },
          "default": {
            "description": "Operation Failed."
          }
        }
      }
    },
    "/v2/AddressBooks/{AddressBook}/contacts/delete": {
      "post": {
        "summary": "Remove contact(s) from an address books",
        "description": "Remove one or many contacts from an address book.",
        "operationId": "RemoveContacts",
        "parameters": [
          {
            "name": "AddressBook",
            "description": "The address book to remove the contact from.",
            "x-ms-summary": "Addressbook",
            "in": "path",
            "x-ms-url-encoding": "single",
            "required": true,
            "type": "string",
            "maxLength": 128,
            "x-ms-dynamic-values": {
              "operationId": "GetAddressBooks",
              "value-path": "id",
              "value-title": "name"
            },
            "x-ms-visibility": "important"
          },
          {
            "name": "externalIds",
            "description": "External IDs identifying contacts to be removed from the address book.",
            "x-ms-summary": "External IDs ",
            "in": "body",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "504": {
            "description": "The request timed-out"
          },
          "default": {
            "description": "Operation Failed"
          }
        }
      }
    },
    "/v2/AddressBooks/{AddressBook}/contacts/clear": {
      "post": {
        "summary": "Empty an address book",
        "description": "Remove all contacts in the specified address book.",
        "operationId": "ClearContacts",
        "parameters": [
          {
            "name": "AddressBook",
            "description": "The addressbook to empty",
            "x-ms-summary": "Addressbook",
            "in": "path",
            "x-ms-url-encoding": "single",
            "required": true,
            "type": "string",
            "maxLength": 128,
            "x-ms-dynamic-values": {
              "operationId": "GetAddressBooks",
              "value-path": "id",
              "value-title": "name"
            },
            "x-ms-visibility": "important"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "504": {
            "description": "The request timed-out"
          },
          "default": {
            "description": "Operation Failed"
          }
        }
      }
    },
    "/v1/diagnostics/testconnection": {
      "get": {
        "tags": [
          "Diagnostics"
        ],
        "summary": "Test Connection",
        "description": "Test API access with the current connection.",
        "operationId": "TestConnection",
        "responses": {
          "200": {
            "description": "Connection Successful"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden."
          },
          "500": {
            "description": "Internal Server Error"
          },
          "default": {
            "description": "Operation Failed."
          }
        },
        "x-ms-visibility": "internal"
      }
    },
    "/v1/service-check/opening-hours": {
      "get": {
        "operationId": "GetOpeningHours",
        "summary": "Get opening hours (deprecated)",
        "description": "Get a service opening hours: it returns the service's status (Open, Closed, Holiday, etc.) at a given time. This operator is deprecated, please use the latest version",
        "deprecated": true,
        "x-ms-api-annotation": {
          "family": "GetOpeningHours",
          "revision": 1
        },
        "parameters": [
          {
            "name": "serviceUpn",
            "in": "query",
            "description": "UPN of the service for which the status will be checked.",
            "required": true,
            "type": "string",
            "maxLength": 128,
            "x-ms-summary": "Service UPN",
            "x-ms-visibility": "important",
            "x-ms-dynamic-values": {
              "operationId": "GetAllAvailableServices"
            }
          },
          {
            "name": "time",
            "in": "query",
            "type": "string",
            "description": "Due date and time in UTC: Example: '2020-03-23T11:00:00Z'.",
            "x-ms-summary": "Due Date Time (UTC)",
            "format": "date-time",
            "x-ms-visibility": "important"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/CalendarStatus"
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "501": {
            "description": "Invalid Request"
          },
          "504": {
            "description": "The request timed-out"
          },
          "default": {
            "description": "Operation Failed"
          }
        }
      }
    },
    "/v2/service-check/opening-hours": {
      "get": {
        "operationId": "GetOpeningHoursV2",
        "summary": "Get opening hours",
        "description": "Get the details of a service's opening hours: it returns the service's status (Open, Closed, Holiday, etc.) at a given time, and the time the status will change.",
        "deprecated": false,
        "x-ms-api-annotation": {
          "family": "GetOpeningHours",
          "revision": 2
        },
        "parameters": [
          {
            "name": "serviceUpn",
            "in": "query",
            "description": "UPN of the service for which the status will be checked.",
            "required": true,
            "type": "string",
            "maxLength": 128,
            "x-ms-summary": "Service UPN",
            "x-ms-visibility": "important",
            "x-ms-dynamic-values": {
              "operationId": "GetAllAvailableServices"
            }
          },
          {
            "name": "time",
            "in": "query",
            "type": "string",
            "description": "Time at which the status will be checked, in UTC time zone: Example: '2020-03-23T11:00:00Z'. When the field is left empty, it defaults to the current time.",
            "x-ms-summary": "Time (UTC)",
            "format": "date-time",
            "x-ms-visibility": "important"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/OpeningHoursResponse"
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "501": {
            "description": "Invalid Request"
          },
          "504": {
            "description": "The request timed-out"
          },
          "default": {
            "description": "Operation Failed"
          }
        }
      }
    },
    "/v2/service-check/opening-hours/next-block": {
      "get": {
        "operationId": "GetOpeningHoursNextBlock",
        "summary": "Get next calendar block",
        "description": "Get the next calendar block for which a specific service has been assigned one of a designated set of statuses. If there is no such block within a week after the start time parameter, null is returned.",
        "parameters": [
          {
            "name": "serviceUpn",
            "in": "query",
            "description": "UPN of the service whose calendars will be queried.",
            "required": true,
            "type": "string",
            "maxLength": 128,
            "x-ms-summary": "Service UPN",
            "x-ms-visibility": "important",
            "x-ms-dynamic-values": {
              "operationId": "GetAllAvailableServices"
            }
          },
          {
            "name": "time",
            "in": "query",
            "type": "string",
            "description": "Start time for the query: Only blocks ending after this time will be searched. If not specified, it defaults to the current time. Expressed in UTC time zone: Example: '2020-03-23T11:00:00Z'.",
            "x-ms-summary": "Start Time (UTC)",
            "format": "date-time",
            "x-ms-visibility": "important"
          },
          {
            "name": "statuses",
            "in": "query",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "Open",
                "Closed",
                "Holiday",
                "Special",
                "Special2",
                "Special3",
                "Special4"
              ]
            },
            "required": true,
            "minItems": 1,
            "description": "A set of calendar statuses that will be included in the search. The target calendar block must have one of these statuses.",
            "x-ms-summary": "Include Opening Hours Status",
            "x-ms-visibility": "important"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/CalendarBlockDetails"
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "501": {
            "description": "Invalid Request"
          },
          "504": {
            "description": "The request timed-out"
          },
          "default": {
            "description": "Operation Failed"
          }
        }
      }
    }
  },
  "definitions": {
    "TaskEventData": {
      "type": "object",
      "properties": {
        "taskId": {
          "type": "string",
          "description": "The Nimbus specific ID of the task.",
          "x-ms-summary": "Task ID",
          "title": "Task ID"
        },
        "serviceSessionId": {
          "type": "string",
          "description": "The ID of the service session",
          "x-ms-summary": "Service Session ID",
          "title": "Service Session ID"
        },
        "userSessionId": {
          "type": "string",
          "description": "The ID of the user session",
          "x-ms-summary": "User Session ID",
          "title": "User Session ID"
        },
        "userSessionStartedWithTransfer": {
          "type": "boolean",
          "description": "Indicates whether the user session was started as a result of a transfer.",
          "x-ms-summary": "User Session Started With Transfer",
          "title": "User Session Started With Transfer"
        },
        "callChainId": {
          "type": "string",
          "description": "The Call Chain ID from Microsoft of the task.",
          "x-ms-summary": "Call Chain ID",
          "title": "Call Chain ID",
          "x-ms-visibility": "advanced"
        },
        "tenantId": {
          "type": "string",
          "description": "The ID of the tenant.",
          "x-ms-summary": "TenantId",
          "title": "TenantId",
          "x-ms-visibility": "internal"
        },
        "event": {
          "type": "string",
          "description": "The event which occurred within Nimbus for the task.",
          "x-ms-summary": "Event",
          "title": "Event",
          "x-ms-visibility": "important"
        },
        "direction": {
          "type": "string",
          "description": "Direction of the task in progress in Nimbus (Inbound/Outbound/None).",
          "x-ms-summary": "Direction",
          "title": "Direction",
          "x-ms-visibility": "important"
        },
        "modality": {
          "type": "string",
          "description": "Initial modality of the task in Nimbus.",
          "x-ms-summary": "Modality",
          "title": "Modality",
          "x-ms-visibility": "important"
        },
        "created": {
          "type": "string",
          "description": "Timestamp, when the task has been created.",
          "x-ms-summary": "Created",
          "title": "Created"
        },
        "terminated": {
          "type": "string",
          "description": "Timestamp, when the task has been terminated.",
          "x-ms-summary": "Terminated"
        },
        "reason": {
          "type": "string",
          "description": "Reason of termination.",
          "x-ms-summary": "Reason"
        },
        "lastConnectedUserId": {
          "type": "string",
          "description": "Object ID (AAD) of the last connected user of the task.",
          "x-ms-summary": "ID of last connected user",
          "title": "ID of last connected user"
        },
        "LastConnectedUserUPN": {
          "type": "string",
          "description": "UPN of the last connected user of the task.",
          "x-ms-summary": "UPN of last connected user",
          "title": "UPN of last connected user"
        },
        "LastConnectedUserEmail": {
          "type": "string",
          "description": "Email of the last connected user of the task.",
          "x-ms-summary": "Email of last connected user",
          "title": "Email of last connected user"
        },
        "microsoftCallerId": {
          "type": "string",
          "description": "Object ID (AAD) of the caller.",
          "x-ms-summary": "Microsoft Caller ID",
          "title": "Microsoft Caller ID",
          "x-ms-visibility": "advanced"
        },
        "referenceId": {
          "type": "string",
          "description": "The ID for reference passed by the third-party system.",
          "x-ms-summary": "Reference ID",
          "title": "Reference ID"
        },
        "callerId": {
          "type": "string",
          "description": "Internal ID for the caller in Nimbus. Object ID (AAD) if the caller is known.",
          "x-ms-summary": "Caller ID",
          "title": "Caller ID",
          "x-ms-visibility": "advanced"
        },
        "callerTelNumber": {
          "type": "string",
          "description": "Phone number (E.164) of the caller. Set only for tasks with modality=Audio.",
          "x-ms-summary": "Caller Telephone Number",
          "title": "Caller Telephone Number",
          "x-ms-visibility": "important"
        },
        "callerUPN": {
          "type": "string",
          "description": "UPN of the customer.",
          "x-ms-summary": "Caller UPN",
          "x-ms-visibility": "important"
        },
        "microsoftDestinationId": {
          "type": "string",
          "description": "Object ID (AAD) of the callee in an outbound task.",
          "x-ms-summary": "Microsoft Destination ID",
          "x-ms-visibility": "advanced"
        },
        "destinationId": {
          "type": "string",
          "description": "Internal ID of the destination (Outbound) in Nimbus. Object ID (AAD) if the caller is known.",
          "x-ms-summary": "Destination ID"
        },
        "destinationTelNumber": {
          "type": "string",
          "description": "Phone number (E.164) of the destination (Outbound).",
          "x-ms-summary": "Destination Telephone Number "
        },
        "destinationUPN": {
          "type": "string",
          "description": "UPN of the destination (Outbound).",
          "x-ms-summary": "Destination UPN "
        },
        "acsId": {
          "type": "string",
          "description": "Azure Communication ID of the caller.",
          "x-ms-summary": "ACS ID ",
          "x-ms-visibility": "advanced"
        },
        "isAnonymous": {
          "type": "boolean",
          "description": "Flag set to true, when caller is anonymous.",
          "x-ms-summary": "Is Anonymous"
        },
        "customerIdentifier": {
          "type": "string",
          "description": "Identifier for the customer in all task types.",
          "x-ms-summary": "Customer Identifier"
        },
        "initialMessage": {
          "type": "string",
          "description": "First message the IM customer.",
          "x-ms-summary": "Initial Message "
        },
        "serviceId": {
          "type": "string",
          "description": "Internal ID of the Nimbus service.",
          "x-ms-summary": "Service ID",
          "x-ms-visibility": "advanced"
        },
        "serviceName": {
          "type": "string",
          "description": "Name of the Nimbus service.",
          "x-ms-summary": "Service Name"
        },
        "serviceDescription": {
          "type": "string",
          "description": "Description of the Nimbus service (inherited from Microsoft Teams).",
          "x-ms-summary": "Service Description "
        },
        "serviceDisplayName": {
          "type": "string",
          "description": "Display name of the Nimbus service.",
          "x-ms-summary": "Service Display Name",
          "x-ms-visibility": "important"
        },
        "serviceUPN": {
          "type": "string",
          "description": "UPN of the Nimbus service.",
          "x-ms-summary": "Service UPN",
          "x-ms-visibility": "important"
        },
        "serviceTelNumber": {
          "type": "string",
          "description": "Telephone number (E.164) of the Nimbus service.",
          "x-ms-summary": "Service Telephone Number",
          "x-ms-visibility": "important"
        },
        "emailSubject": {
          "type": "string",
          "description": "Subject of the email.",
          "x-ms-summary": "Email Subject"
        },
        "emailBodyUniqueRichText": {
          "type": "string",
          "description": "Body of the email, rich text.",
          "x-ms-summary": "Email Body Unique Rich Text"
        },
        "emailBodyUniquePlainText": {
          "type": "string",
          "description": "Body of the email, plain text.",
          "x-ms-summary": "Email Body Unique Plain Text"
        },
        "emailServiceMailboxUPN": {
          "type": "string",
          "description": "UPN of the mailbox assigned to the service.",
          "x-ms-summary": "Email Service Mailbox UPN"
        },
        "outboundAttempt": {
          "type": "integer",
          "format": "int32",
          "description": "Number of attempts to reach the outbound destination.",
          "x-ms-summary": "Outbound Attempts "
        },
        "updatedParameterName": {
          "type": "string",
          "description": "Name of the last parameter which was updated.",
          "x-ms-summary": "Updated Parameter Name"
        },
        "updatedParameterValue": {
          "type": "string",
          "description": "Value of the last parameter which was updated.",
          "x-ms-summary": "Updated Parameter Value "
        },
        "taskInformation": {
          "$ref": "#/definitions/TaskInformation"
        }
      }
    },
    "TaskInformation": {
      "type": "object",
      "description": "Contains information about the customer, custom context parameter and preferred users.",
      "x-ms-summary": "Task Information ",
      "properties": {
        "customer": {
          "$ref": "#/definitions/Customer"
        },
        "customContextParameters": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CustomContextParameter"
          },
          "maxItems": 50,
          "description": "List of custom context parameters (Key-Value).",
          "x-ms-summary": "Custom Context Parameters"
        },
        "preferredUsers": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/PreferredUser"
          },
          "maxItems": 10,
          "description": "List of preferred Users for the tasks (UPN-Priority).",
          "x-ms-summary": "Preferred Users"
        }
      }
    },
    "Customer": {
      "description": "Object containing all information of the customer.",
      "type": "object",
      "x-ms-visibility": "advanced",
      "properties": {
        "firstName": {
          "type": "string",
          "maxLength": 64,
          "description": "First name of the customer.",
          "x-ms-summary": "Customer First Name"
        },
        "lastName": {
          "type": "string",
          "maxLength": 64,
          "description": "Last name of the customer.",
          "x-ms-summary": "Customer Last Name"
        },
        "displayName": {
          "type": "string",
          "maxLength": 256,
          "description": "Display name of the customer.",
          "x-ms-summary": "Customer Display Name"
        },
        "company": {
          "type": "string",
          "maxLength": 64,
          "description": "Company of the customer.",
          "x-ms-summary": "Customer Company"
        },
        "jobTitle": {
          "type": "string",
          "maxLength": 128,
          "description": "Job title of the customer.",
          "x-ms-summary": "Customer Job Title"
        },
        "department": {
          "type": "string",
          "maxLength": 64,
          "description": "Department of the customer.",
          "x-ms-summary": "Customer Department"
        },
        "streetAddress": {
          "type": "string",
          "maxLength": 1024,
          "description": "Street address of the customer.",
          "x-ms-summary": "Customer Street Address"
        },
        "postCode": {
          "type": "string",
          "maxLength": 40,
          "description": "Postcode of the customer.",
          "x-ms-summary": "Customer Postcode"
        },
        "city": {
          "type": "string",
          "maxLength": 128,
          "description": "City of the customer.",
          "x-ms-summary": "Customer City"
        },
        "state": {
          "type": "string",
          "maxLength": 128,
          "description": "State of the customer.",
          "x-ms-summary": "Customer State"
        },
        "country": {
          "type": "string",
          "maxLength": 128,
          "description": "Country of the customer.",
          "x-ms-summary": "Customer Country"
        },
        "primaryTelNumber": {
          "type": "string",
          "maxLength": 32,
          "description": "Primary telephone number of the customer.",
          "x-ms-summary": "Customer Primary Telephone Number"
        },
        "telNumbers": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/TelNumber"
          },
          "maxItems": 10,
          "description": "List of additional telephone numbers of the Customer.",
          "x-ms-summary": "Telephone Numbers"
        },
        "UPN": {
          "type": "string",
          "maxLength": 128,
          "description": "UPN of the customer.",
          "x-ms-summary": "Customer UPN"
        },
        "imAddress": {
          "type": "string",
          "maxLength": 128,
          "description": "IM Address of the customer.",
          "x-ms-summary": "Customer IM Address"
        },
        "email": {
          "type": "string",
          "maxLength": 128,
          "description": "Email of the customer.",
          "x-ms-summary": "Customer Email"
        },
        "customFields": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CustomField"
          },
          "maxItems": 20,
          "description": "List of custom fields of the customer.",
          "x-ms-summary": "Custom Fields",
          "x-ms-visibility": "advanced"
        }
      }
    },
    "TelNumber": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 64,
          "description": "Designation of the telephone number.",
          "x-ms-summary": "Name"
        },
        "value": {
          "type": "string",
          "maxLength": 32,
          "description": "Value of the telephone number.",
          "x-ms-summary": "Value"
        }
      },
      "required": [
        "name"
      ]
    },
    "CustomField": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 64,
          "description": "Designation of the custom field.",
          "x-ms-summary": "Name"
        },
        "value": {
          "type": "string",
          "maxLength": 1024,
          "description": "Value of the custom field.",
          "x-ms-summary": "Value"
        }
      },
      "required": [
        "name"
      ]
    },
    "CustomContextParameter": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 64,
          "description": "Name of the custom context parameter.",
          "x-ms-summary": "Name"
        },
        "value": {
          "type": "string",
          "maxLength": 5120,
          "description": "Value of the custom context parameter.",
          "x-ms-summary": "Value"
        }
      },
      "required": [
        "name"
      ]
    },
    "PreferredUser": {
      "type": "object",
      "properties": {
        "upn": {
          "type": "string",
          "maxLength": 128,
          "description": "The UPN of the preferred user.",
          "x-ms-summary": "UPN",
          "x-ms-dynamic-values": {
            "operationId": "GetUsersForPreferredRouting"
          }
        },
        "priority": {
          "type": "integer",
          "description": "The priority. 1 high to 99 low.",
          "x-ms-summary": "Priority",
          "minimum": 1,
          "maximum": 99
        }
      },
      "required": [
        "upn"
      ]
    },
    "ServiceUpnValues": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "additionalProperties": false
    },
    "UserUpnValues": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "additionalProperties": false
    },
    "EventValues": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/NameValue"
      }
    },
    "DataTypeValues": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/NameValue"
      }
    },
    "TaskModality": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/NameValue"
      },
      "additionalProperties": false
    },
    "TaskDirection": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/NameValue"
      },
      "additionalProperties": false
    },
    "AddressBook": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "id": {
          "type": "string"
        }
      }
    },
    "NameValue": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      }
    },
    "AddressBookList": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/AddressBook"
      }
    },
    "ContactReadDto": {
      "type": "object",
      "properties": {
        "externalId": {
          "type": "string",
          "description": "ID of the contact given by the external system.",
          "x-ms-summary": "Contact External ID "
        },
        "firstName": {
          "type": "string",
          "description": "First name of the contact.",
          "x-ms-summary": "Contact First Name"
        },
        "lastName": {
          "type": "string",
          "description": "Last name of the contact.",
          "x-ms-summary": "Contact Last Name"
        },
        "displayName": {
          "type": "string",
          "description": "Display name of the contact.",
          "x-ms-summary": "Contact Display Name"
        },
        "initials": {
          "type": "string",
          "description": "Initials of the contact.",
          "x-ms-summary": "Contact Initials"
        },
        "company": {
          "type": "string",
          "description": "Company of the contact.",
          "x-ms-summary": "Contact Company"
        },
        "department": {
          "type": "string",
          "description": "Department of the contact.",
          "x-ms-summary": "Contact Department"
        },
        "jobTitle": {
          "type": "string",
          "description": "Job title of the contact.",
          "x-ms-summary": "Contact Job Title"
        },
        "userPrincipalName": {
          "type": "string",
          "description": "User principal name of the contact.",
          "x-ms-summary": "Contact User Principal Name"
        },
        "imAddresses": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of IM addresses.",
          "x-ms-summary": "Contact IM Addresses"
        },
        "emailAddresses": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of email addresses.",
          "x-ms-summary": "Contact Email Addresses"
        },
        "businessPhones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of business phones.",
          "x-ms-summary": "Contact Business Phones"
        },
        "mobilePhones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of mobile phones.",
          "x-ms-summary": "Contact Mobile Phones"
        },
        "homePhones": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of home phones.",
          "x-ms-summary": "Contact Home Phones"
        },
        "addresses": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Address"
          },
          "description": "List of addresses."
        },
        "customFields": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CustomField"
          },
          "description": "List of custom fields of the contact."
        }
      },
      "required": [
        "externalId"
      ]
    },
    "ContactWriteDto": {
      "type": "object",
      "properties": {
        "externalId": {
          "type": "string",
          "description": "ID of the contact given by the external system.",
          "maxLength": 128,
          "x-ms-summary": "Contact External ID"
        },
        "firstName": {
          "type": "string",
          "description": "First name of the contact.",
          "maxLength": 64,
          "x-ms-summary": "Contact First Name"
        },
        "lastName": {
          "type": "string",
          "description": "Last name of the contact.",
          "maxLength": 64,
          "x-ms-summary": "Contact Last Name"
        },
        "displayName": {
          "type": "string",
          "description": "Display name of the contact.",
          "maxLength": 256,
          "x-ms-summary": "Contact Display Name"
        },
        "initials": {
          "type": "string",
          "description": "Initials of the contact.",
          "maxLength": 16,
          "x-ms-summary": "Contact Initials"
        },
        "company": {
          "type": "string",
          "description": "Company of the contact.",
          "maxLength": 64,
          "x-ms-summary": "Contact Company"
        },
        "department": {
          "type": "string",
          "description": "Department of the contact.",
          "maxLength": 64,
          "x-ms-summary": "Contact Department"
        },
        "jobTitle": {
          "type": "string",
          "description": "Job title of the contact.",
          "maxLength": 128,
          "x-ms-summary": "Contact Job Title"
        },
        "userPrincipalName": {
          "type": "string",
          "description": "User principal name of the contact.",
          "maxLength": 128,
          "x-ms-summary": "Contact User Principal Name"
        },
        "imAddresses": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 128
          },
          "maxItems": 10,
          "description": "List of IM addresses.",
          "x-ms-summary": "Contact IM Addresses"
        },
        "emailAddresses": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 128
          },
          "maxItems": 10,
          "description": "List of email addresses.",
          "x-ms-summary": "Contact Email Addresses"
        },
        "businessPhones": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 32
          },
          "maxItems": 10,
          "description": "List of business phones.",
          "x-ms-summary": "Contact Business Phones"
        },
        "mobilePhones": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 32
          },
          "maxItems": 10,
          "description": "List of mobile phones.",
          "x-ms-summary": "Contact Mobile Phones"
        },
        "homePhones": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 32
          },
          "maxItems": 10,
          "description": "List of home phones.",
          "x-ms-summary": "Contact Home Phones"
        },
        "addresses": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Address"
          },
          "maxItems": 10,
          "description": "List of addresses.",
          "x-ms-summary": "Contact Addresses"
        },
        "customFields": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CustomField"
          },
          "maxItems": 20,
          "description": "List of custom fields of the contact.",
          "x-ms-summary": "Contact Custom Fields"
        }
      },
      "required": [
        "externalId"
      ]
    },
    "Address": {
      "type": "object",
      "properties": {
        "street": {
          "type": "string",
          "maxLength": 1024,
          "description": "Street and number of the address.",
          "x-ms-summary": "Address Street"
        },
        "city": {
          "type": "string",
          "maxLength": 128,
          "description": "City of the address.",
          "x-ms-summary": "Address City"
        },
        "country": {
          "type": "string",
          "maxLength": 128,
          "description": "Country of the address.",
          "x-ms-summary": "Address Country"
        },
        "state": {
          "type": "string",
          "maxLength": 128,
          "description": "State of the address.",
          "x-ms-summary": "Address State"
        },
        "postalCode": {
          "type": "string",
          "maxLength": 40,
          "description": "Postcode of the address.",
          "x-ms-summary": "Address Postcode"
        }
      }
    },
    "DistributionPriority": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      }
    },
    "DistributionPriorityList": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/DistributionPriority"
      }
    },
    "SchedulerEntryEventData": {
      "type": "object",
      "properties": {
        "schedulerEntryId": {
          "type": "string",
          "description": "The Nimbus specific ID of the scheduler entry.",
          "x-ms-summary": "Scheduler Entry ID",
          "x-ms-visibility": "important"
        },
        "conversationType": {
          "type": "string",
          "description": "The conversation type of the scheduler entry.",
          "x-ms-summary": "ConversationType",
          "title": "ConversationType",
          "x-ms-visibility": "important"
        },
        "event": {
          "type": "string",
          "description": "The event which occurred within Nimbus for the scheduled task.",
          "x-ms-summary": "Event",
          "title": "Event",
          "x-ms-visibility": "important"
        },
        "direction": {
          "type": "string",
          "description": "Direction of the task in progress in Nimbus (Inbound/Outbound/None).",
          "x-ms-summary": "Direction",
          "title": "Direction",
          "x-ms-visibility": "important"
        },
        "modality": {
          "type": "string",
          "description": "Initial modality of the task in Nimbus.",
          "x-ms-summary": "Modality",
          "title": "Modality",
          "x-ms-visibility": "important"
        },
        "ReferenceId": {
          "type": "string",
          "description": "The ID for reference passed by the third-party system.",
          "x-ms-summary": "Reference ID"
        },
        "unifiedConversationId": {
          "type": "string",
          "description": "Unified Conversation ID.",
          "x-ms-summary": "Unified Conversation ID",
          "x-ms-visibility": "advanced"
        },
        "completionReason": {
          "type": "string",
          "description": "Outcome of the scheduler entry when terminated.",
          "x-ms-summary": "Completion Reason "
        },
        "destination": {
          "type": "string",
          "description": "Destination of the scheduler entries with direction \"Outbound\".",
          "x-ms-summary": "Destination"
        },
        "distributionPriority": {
          "type": "string",
          "description": "Priority with which the task should be handled in Nimbus.",
          "x-ms-summary": "Distribution Priority "
        },
        "dueDateTimeUtc": {
          "type": "string",
          "description": "Due date and time in UTC: Example: '2020-03-23T11:00:00Z'.",
          "example": "2020-03-23T11:00:00Z",
          "x-ms-summary": "Due Date Time (UTC)",
          "format": "date-time",
          "x-ms-visibility": "important"
        },
        "serviceUpn": {
          "type": "string",
          "description": "UPN of the service for which the entry is scheduled.",
          "x-ms-summary": "Service UPN"
        },
        "maxAttempts": {
          "type": "integer",
          "format": "int32",
          "description": "Maximum Attempts to reach the Destination.",
          "x-ms-summary": "Maximum Attempts",
          "minimum": 1,
          "maximum": 10,
          "default": 1
        },
        "attemptTimeoutInSeconds": {
          "type": "integer",
          "format": "int32",
          "description": "Timeout (intervals) between connection retries until Maximum Attempts number is reached.",
          "x-ms-summary": "Attempt Timeout in Seconds",
          "minimum": 30,
          "maximum": 86400,
          "default": 3600
        },
        "maxQueueTimeInSeconds": {
          "type": "integer",
          "format": "int32",
          "description": "Defines how long Nimbus tries to solve the task until the task is considered �Limit Reached�.",
          "x-ms-summary": "Maximum Queue Time in Seconds",
          "minimum": 5,
          "maximum": 3600,
          "default": 300
        },
        "ronaTimeoutInSeconds": {
          "type": "integer",
          "format": "int32",
          "description": "Defines how long Nimbus tries to reach the user until the task is considered RONA and a new user will be selected.",
          "x-ms-summary": "RONA Timeout in Seconds",
          "minimum": 5,
          "maximum": 30,
          "default": 20
        },
        "customCallContextParameters": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CustomContextParameter"
          },
          "description": "List of custom context parameter (Key-Value).",
          "x-ms-summary": "Custom Context Parameters",
          "x-ms-visibility": "advanced"
        },
        "customer": {
          "$ref": "#/definitions/Customer"
        }
      }
    },
    "OutboundCallWithWorkflowSchedulerEntryEventData": {
      "type": "object",
      "properties": {
        "schedulerEntryId": {
          "type": "string",
          "description": "The Nimbus specific ID of the scheduler entry.",
          "x-ms-summary": "Scheduler Entry ID",
          "x-ms-visibility": "important"
        },
        "conversationType": {
          "type": "string",
          "description": "The conversation type of the scheduler entry.",
          "x-ms-summary": "ConversationType",
          "title": "ConversationType",
          "x-ms-visibility": "important"
        },
        "event": {
          "type": "string",
          "description": "The event which occurred within Nimbus for the scheduled task.",
          "x-ms-summary": "Event",
          "title": "Event",
          "x-ms-visibility": "important"
        },
        "direction": {
          "type": "string",
          "description": "Direction of the task in progress in Nimbus (Inbound/Outbound/None).",
          "x-ms-summary": "Direction",
          "title": "Direction",
          "x-ms-visibility": "important"
        },
        "modality": {
          "type": "string",
          "description": "Initial modality of the task in Nimbus.",
          "x-ms-summary": "Modality",
          "title": "Modality",
          "x-ms-visibility": "important"
        },
        "ReferenceId": {
          "type": "string",
          "description": "The ID for reference passed by the third-party system.",
          "x-ms-summary": "Reference ID"
        },
        "unifiedConversationId": {
          "type": "string",
          "description": "Unified Conversation ID.",
          "x-ms-summary": "Unified Conversation ID",
          "x-ms-visibility": "advanced"
        },
        "completionReason": {
          "type": "string",
          "description": "Outcome of the scheduler entry when terminated.",
          "x-ms-summary": "Completion Reason "
        },
        "destination": {
          "type": "string",
          "description": "Destination of the scheduler entries with direction \"Outbound\".",
          "x-ms-summary": "Destination"
        },
        "distributionPriority": {
          "type": "string",
          "description": "Priority with which the task should be handled in Nimbus.",
          "x-ms-summary": "Distribution Priority "
        },
        "dueDateTimeUtc": {
          "type": "string",
          "description": "Due date and time in UTC: Example: '2020-03-23T11:00:00Z'.",
          "example": "2020-03-23T11:00:00Z",
          "x-ms-summary": "Due Date Time (UTC)",
          "format": "date-time",
          "x-ms-visibility": "important"
        },
        "serviceUpn": {
          "type": "string",
          "description": "UPN of the service for which the entry is scheduled.",
          "x-ms-summary": "Service UPN"
        },
        "maxAttempts": {
          "type": "integer",
          "format": "int32",
          "description": "Maximum Attempts to reach the Destination.",
          "x-ms-summary": "Maximum Attempts",
          "minimum": 1,
          "maximum": 10,
          "default": 1
        },
        "attemptTimeoutInSeconds": {
          "type": "integer",
          "format": "int32",
          "description": "Defines how long Nimbus tries to reach the Destination before the attempt will be stopped.",
          "x-ms-summary": "Attempt Timeout in Seconds",
          "minimum": 30,
          "maximum": 86400,
          "default": 3600
        },
        "customCallContextParameters": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CustomContextParameter"
          },
          "description": "List of custom context parameter (Key-Value).",
          "x-ms-summary": "Custom Context Parameters",
          "x-ms-visibility": "advanced"
        },
        "customer": {
          "$ref": "#/definitions/Customer"
        }
      }
    },
    "VirtualUserAssistantEventData": {
      "type": "object",
      "properties": {
        "unifiedSessionId": {
          "type": "string",
          "description": "The ID of the related Nimbus unified session.",
          "x-ms-summary": "Unified Session ID",
          "x-ms-visibility": "important"
        },
        "serviceSessionId": {
          "type": "string",
          "description": "The ID of the related Nimbus service session.",
          "x-ms-summary": "Service Session ID",
          "x-ms-visibility": "important"
        },
        "userSessionId": {
          "type": "string",
          "description": "The ID of the related Nimbus user session.",
          "x-ms-summary": "User Session ID",
          "x-ms-visibility": "important"
        },
        "serviceUpn": {
          "type": "string",
          "description": "UPN of the service for which the event occured.",
          "x-ms-summary": "Service UPN"
        },
        "serviceId": {
          "type": "string",
          "description": "ID of the service for which the event occured.",
          "x-ms-summary": "Service ID"
        },
        "serviceName": {
          "type": "string",
          "description": "Name of the service for which the event occured.",
          "x-ms-summary": "Service Name"
        },
        "event": {
          "type": "string",
          "description": "The companion event which occurred within Nimbus.",
          "x-ms-summary": "Event",
          "title": "Event"
        },
        "userSessionStartedWithTransfer": {
          "type": "boolean",
          "description": "Indicates whether the user session was started as a result of a transfer.",
          "x-ms-summary": "User Session Started With Transfer",
          "title": "User Session Started With Transfer"
        }
      }
    },
    "SchedulerEntryWriteData": {
      "type": "object",
      "properties": {
        "ReferenceId": {
          "type": "string",
          "maxLength": 128,
          "description": "The ID for reference passed by the third-party system.",
          "x-ms-summary": "Reference ID"
        },
        "destination": {
          "type": "string",
          "maxLength": 128,
          "description": "Destination of the scheduler entries with direction \"Outbound\".",
          "x-ms-summary": "Destination"
        },
        "distributionPriority": {
          "type": "string",
          "maxLength": 16,
          "description": "Priority with which the task should be handled in Nimbus.",
          "x-ms-summary": "Distribution Priority ",
          "x-ms-dynamic-values": {
            "operationId": "GetDistributionPriorities",
            "value-path": "value",
            "value-title": "name"
          }
        },
        "dueDateTimeUtc": {
          "type": "string",
          "description": "Due date and time in UTC: Example: '2020-03-23T11:00:00Z'.",
          "example": "2020-03-23T11:00:00Z",
          "x-ms-summary": "Due Date Time (UTC)",
          "format": "date-time",
          "x-ms-visibility": "important"
        },
        "serviceUpn": {
          "type": "string",
          "description": "UPN of the service.",
          "maxLength": 128,
          "x-ms-summary": "Service UPN",
          "x-ms-dynamic-values": {
            "operationId": "GetSchedulerEntryServices"
          }
        },
        "maxAttempts": {
          "type": "integer",
          "format": "int32",
          "description": "Maximum Attempts to reach the Destination.",
          "x-ms-summary": "Maximum Attempts",
          "minimum": 1,
          "maximum": 10,
          "default": 1
        },
        "attemptTimeoutInSeconds": {
          "type": "integer",
          "format": "int32",
          "description": "Timeout (intervals) between connection retries until Maximum Attempts number is reached.",
          "x-ms-summary": "Attempt Timeout in Seconds",
          "minimum": 30,
          "maximum": 86400,
          "default": 3600
        },
        "maxQueueTimeInSeconds": {
          "type": "integer",
          "format": "int32",
          "description": "Defines how long Nimbus tries to solve the task until the task is considered �Limit Reached�.",
          "x-ms-summary": "Maximum Queue Time in Seconds",
          "minimum": 5,
          "maximum": 3600,
          "default": 300
        },
        "ronaTimeoutInSeconds": {
          "type": "integer",
          "format": "int32",
          "description": "Defines how long Nimbus tries to reach the user until the task is considered RONA and a new user will be selected.",
          "x-ms-summary": "RONA Timeout in Seconds",
          "minimum": 5,
          "maximum": 30,
          "default": 20
        },
        "customCallContextParameters": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CustomContextParameter"
          },
          "description": "List of custom context parameter (Key-Value).",
          "x-ms-summary": "Custom Context Parameters",
          "x-ms-visibility": "advanced"
        },
        "customer": {
          "$ref": "#/definitions/Customer"
        }
      },
      "required": [
        "dueDateTimeUtc",
        "serviceUpn",
        "destination"
      ]
    },
    "OutboundCallWithWorkflowSchedulerEntryWriteData": {
      "type": "object",
      "properties": {
        "ReferenceId": {
          "type": "string",
          "maxLength": 128,
          "description": "The ID for reference passed by the third-party system.",
          "x-ms-summary": "Reference ID"
        },
        "destination": {
          "type": "string",
          "maxLength": 128,
          "description": "Destination of the outbound call with workflow.",
          "x-ms-summary": "Destination"
        },
        "dueDateTimeUtc": {
          "type": "string",
          "description": "Due date and time in UTC: Example: '2020-03-23T11:00:00Z'.",
          "example": "2020-03-23T11:00:00Z",
          "x-ms-summary": "Due Date Time (UTC)",
          "format": "date-time",
          "x-ms-visibility": "important"
        },
        "serviceUpn": {
          "type": "string",
          "description": "UPN of the service.",
          "maxLength": 128,
          "x-ms-summary": "Service UPN",
          "x-ms-dynamic-values": {
            "operationId": "GetStartOcwwServices"
          }
        },
        "maxAttempts": {
          "type": "integer",
          "format": "int32",
          "description": "Maximum Attempts to reach the Destination.",
          "x-ms-summary": "Maximum Attempts",
          "minimum": 1,
          "maximum": 10,
          "default": 1
        },
        "attemptTimeoutInSeconds": {
          "type": "integer",
          "format": "int32",
          "description": "Defines how long Nimbus tries to reach the Destination before the attempt will be stopped.",
          "x-ms-summary": "Attempt Timeout in Seconds",
          "minimum": 30,
          "maximum": 86400,
          "default": 3600
        },
        "customCallContextParameters": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CustomContextParameter"
          },
          "description": "List of custom context parameter (Key-Value).",
          "x-ms-summary": "Custom Context Parameters",
          "x-ms-visibility": "advanced"
        },
        "customer": {
          "$ref": "#/definitions/Customer"
        }
      },
      "required": [
        "dueDateTimeUtc",
        "serviceUpn",
        "destination"
      ]
    },
    "ExternalTaskWriteDto": {
      "type": "object",
      "properties": {
        "serviceUpn": {
          "type": "string",
          "maxLength": 128,
          "description": "UPN of the service.",
          "x-ms-summary": "Service UPN",
          "x-ms-dynamic-values": {
            "operationId": "GetExternalTasksServices"
          }
        },
        "customerIdentifier": {
          "type": "string",
          "maxLength": 128,
          "description": "Optional unique reporting identifier, anonymous when empty.",
          "x-ms-summary": "Customer Identifier"
        },
        "customer": {
          "$ref": "#/definitions/Customer"
        },
        "customContextParameters": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CustomContextParameter"
          },
          "description": "Custom context parameters.",
          "x-ms-summary": "Custom Context Parameters"
        },
        "distributionPriority": {
          "type": "string",
          "maxLength": 16,
          "description": "Priority with which the task should be handled in Nimbus once it's due.",
          "x-ms-summary": "Distribution Priority",
          "x-ms-dynamic-values": {
            "operationId": "GetExternalTasksDistributionPriorities",
            "value-path": "value",
            "value-title": "name"
          }
        },
        "preferredUsers": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/PreferredUser"
          },
          "maxItems": 10,
          "description": "List of preferred users for the tasks (UPN-Priority).",
          "x-ms-summary": "Preferred Users"
        }
      },
      "required": [
        "serviceUpn"
      ]
    },
    "ExternalTaskWriteResult": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The ID of the added external task.",
          "x-ms-summary": "External Task ID"
        },
        "modality": {
          "$ref": "#/definitions/Modality"
        },
        "created": {
          "type": "string",
          "description": "Timestamp, when the external task has been created.",
          "x-ms-summary": "Created"
        },
        "type": {
          "type": "string",
          "description": "The type of the external task.",
          "x-ms-summary": "Type"
        },
        "isAnonymous": {
          "type": "boolean",
          "description": "Flag set to true, when caller is anonymous.",
          "x-ms-summary": "Is Anonymous"
        },
        "serviceId": {
          "type": "string",
          "description": "Internal ID of the Nimbus service.",
          "x-ms-summary": "Service ID",
          "x-ms-visibility": "advanced"
        },
        "serviceName": {
          "type": "string",
          "description": "Name of the Nimbus service.",
          "x-ms-summary": "Service Name"
        },
        "serviceDescription": {
          "type": "string",
          "description": "Description of the Nimbus service (inherited from Microsoft Teams).",
          "x-ms-summary": "Service Description "
        },
        "serviceDisplayName": {
          "type": "string",
          "description": "The display name of the service.",
          "x-ms-summary": "Service Display Name"
        },
        "serviceUPN": {
          "type": "string",
          "description": "The UPN of the service.",
          "x-ms-summary": "Service UPN"
        },
        "serviceTelNumber": {
          "type": "string",
          "description": "The telephone number of the service.",
          "x-ms-summary": "Service Tel Number"
        },
        "preferredUsers": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/PreferredUser"
          },
          "maxItems": 10,
          "description": "List of preferred users for the tasks (UPN-Priority).",
          "x-ms-summary": "Preferred Users"
        }
      }
    },
    "Modality": {
      "type": "string",
      "enum": [
        "Audio",
        "InstantMessaging",
        "ExternalTask"
      ],
      "description": "The modality of the task.",
      "x-ms-summary": "Modality"
    },
    "DynamicResponseGetVirtualUserAssistantData": {
      "type": "object",
      "x-ms-dynamic-schema": {
        "operationId": "GetDataSchema",
        "parameters": {
          "dataType": {
            "parameter": "dataType"
          }
        }
      }
    },
    "OpeningHoursResponse": {
      "type": "object",
      "properties": {
        "status": {
          "$ref": "#/definitions/CalendarStatus"
        },
        "endsAt": {
          "type": "string",
          "description": "Date and time (UTC) at which the current status will change.",
          "x-ms-summary": "Status Change Time (UTC)",
          "format": "date-time"
        }
      }
    },
    "CalendarBlockDetails": {
      "type": "object",
      "properties": {
        "status": {
          "$ref": "#/definitions/CalendarStatus",
          "description": "The status of the calendar block."
        },
        "startsAt": {
          "type": "string",
          "description": "Date and time (UTC) when the calendar block will start.",
          "x-ms-summary": "Block Start Time (UTC)",
          "format": "date-time"
        },
        "endsAt": {
          "type": "string",
          "description": "Date and time (UTC) when the calendar block will end.",
          "x-ms-summary": "Block End Time (UTC)",
          "format": "date-time"
        }
      }
    },
    "CalendarStatus": {
      "type": "string",
      "enum": [
        "None",
        "Open",
        "Closed",
        "Holiday",
        "Special",
        "Special2",
        "Special3",
        "Special4"
      ],
      "description": "The calendar status of a service (Open, Closed, etc.).",
      "x-ms-summary": "Opening Hours Status"
    },
    "ServiceUpnsFilterByOptions": {
      "type": "string",
      "enum": [
        "None",
        "ContactLicense",
        "AudioVideo",
        "OutboundCallsEnabled",
        "OutboundCallsWithWorkflowEnabled"
      ],
      "description": "Services can be filtered according to a range of options",
      "x-ms-summary": "Available options for service contacts filtering"
    }
  },
  "parameters": {},
  "responses": {},
  "securityDefinitions": {
    "oauth2-auth": {
      "type": "oauth2",
      "flow": "accessCode",
      "authorizationUrl": "https://login.windows.net/common/oauth2/authorize",
      "tokenUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
      "scopes": {
        "https://graph.microsoft.com/User.Read": "https://graph.microsoft.com/User.Read"
      }
    }
  },
  "security": [
    {
      "oauth2-auth": [
        "https://graph.microsoft.com/User.Read"
      ]
    }
  ],
  "tags": [],
  "x-ms-capabilities": {
    "testConnection": {
      "operationId": "TestConnection",
      "parameters": {}
    }
  }
}