Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Оглавление

Вы можете взаимодействовать с системой ECCM посредством открытого API. Методы API позволяют получать статистику по группам и устройствам, журналы событий, проблем и задач.

Авторизация

Все запросы требуют аутентификации с помощью JWT Bearer-токена. Токен должен передаваться в заголовке Authorization. Пример запроса с помощью curl:

Блок кода
languagebash
titlecurl
$ export TOKEN=<YOUR_TOKEN>
$ curl -X GET -H "Authorization: Bearer ${TOKEN}" http://localhost/api/v1/groups

Пример запроса с помощью python:

Блок кода
languagepy
titlepython
import requests

TOKEN = "<YOUR_TOKEN>"
response = requests.get(
    url="http://localhost/api/v1/groups",
    headers={"Authorization": f"Bearer {TOKEN}"}
).json()
print(response)

# {
#     "groups": [
#         {
#             "id": "1",
#             "name": "eccm",
#             "parentGroupId": "0",
#             "type": "GROUPS",
#             "path": "eccm/",
#             "idPath": "1/"
#         }
#     ]
# }


Примечание

Создание токена доступа осуществляется на персональной странице пользователя.

Особенности обработки запросов

Обработка запросов имеет следующие ограничения:

  1. Строковые параметры (тип "string")
  2.  фильтруются
  3. фильтруются по операции "Содержит/Contains";
  4. Числовые параметры (тип "uint64") фильтруются по операции "Равно/Equal";
  5. При передаче некорректного ENUM-a запрос не выполнится, пользователь получит ошибку несоответствия ожидаемого типа
  6. enum-a
  7. .

Описание API

МетодОписаниеПараметрыСхема ответаПример использования
GET /api/v1/groupsПолучение информации по всем группам

Query-параметры:

  • id (uint64): Уникальный ID группы
  • name (string): Имя группы

  • type (GroupType): Тип группы

  • path (string): Полный путь до группы по имени

  • parentGroupId (uint64): ID родительской группы

  • idPath (string): Полный путь до группы по ID

  • offset (uint64): Начальный элемент пагинации

  • size (uint64): Ограничение максимального количества элементов в ответе

  • total (boolean): Общее количество найденных объектов без учёта лимита пагинации

Блок кода
title200 - успешная операция
{
   "groups":[Group],
   "total": string
}


Блок кода
title400 - ошибка валидации
AnswerContract


Блок кода
title500 - ошибка сервера
AnswerContract


Блок кода
languagebash
curl -X GET -H "Authorization: Bearer ${TOKEN}" http://localhost/api/v1/groups


Раскрыть
titleКод ответа 200 - успешный запрос
Блок кода
{
    "groups": [
        {
            "id": "1",
            "name": "eccm",
            "parentGroupId": "0",
            "type": "GROUPS",
            "path": "eccm/",
            "idPath": "1/"
        },
        {
            "id": "100",
            "name": "group-1",
            "parentGroupId": "1",
            "type": "EMPTY",
            "path": "eccm/group-1/",
            "idPath": "1/100/"
        }
    ],
    "total":2
}
Раскрыть
titleКод ответа 400 - ошибка валидации
Блок кода
{
    "message": "Failed to get groups",
    "code": 400,
    "errors": [
        {
            "domain": "backend-ui",
            "message": "Failed to get groups",
            "reason": "Invalid group type: test",
            "extendedHelp": "Provide valid parameter value and try again"
        }
    ]
}
Раскрыть
titleКод ответа 500 - ошибка сервера
Блок кода
{
	"message": "RPC error",
	"code": 500,
	"errors": [
		{
			"domain": "backend-ui",
			"message": "RPC error",
			"reason": "RPC timeout",
			"extendedHelp": "Please try again later or contact support"
		}
	]
}


GET /api/v1/groups/{id}Получение информации по конкретной группе
Path-параметры: 
  • id (uint64): Уникальный ID группы



Блок кода
title200 - успешная операция
Group


Блок кода
title400 - ошибка валидации
AnswerContract


Блок кода
title500 - ошибка сервера
AnswerContract


Блок кода
languagebash
curl -X GET -H "Authorization: Bearer ${TOKEN}" http://localhost/api/v1/groups/1


Раскрыть
titleКод ответа 200 - успешный запрос
Блок кода
{
    "id": "1",
    "name": "eccm",
    "parentGroupId": "0",
    "type": "GROUPS",
    "path": "eccm/",
    "idPath": "1/"
}
Раскрыть
titleКод ответа 400 - ошибка валидации
Блок кода
{
    "message": "Entity not found",
    "code": 400,
    "errors": [
        {
            "domain": "data-presenter",
            "message": "Entity not found",
            "reason": "Failed to find GroupInfo with id 44 in the database",
            "extendedHelp": "Please enter only id of the existing entity"
        }
    ]
}
Раскрыть
titleКод ответа 500 - ошибка сервера
Блок кода
{
	"message": "RPC error",
	"code": 500,
	"errors": [
		{
			"domain": "backend-ui",
			"message": "RPC error",
			"reason": "RPC timeout",
			"extendedHelp": "Please try again later or contact support"
		}
	]
}


GET /api/v1/groups/statisticsПолучение расширенной информации по всем группам

Query-параметры:

  • id (uint64): Уникальный ID группы
  • name (string): Имя группы

  • type (enum): Тип группы

  • path (string): Полный путь до группы по имени

  • parentGroupId (uint64): ID родительской группы

  • idPath (string): Полный путь до группы по ID

  • offset (uint64): Начальный элемент пагинации

  • size (uint64): Ограничение максимального количества элементов в ответе

  • total (boolean): Общее количество найденных объектов без учёта лимита пагинации


Блок кода
title200 - успешная операция
{
   "groupStatistics":[GroupStatistics],
   "total": string
}


Блок кода
title400 - ошибка валидации
AnswerContract


Блок кода
title500 - ошибка сервера
AnswerContract


Блок кода
languagebash
curl -X GET -H "Authorization: Bearer ${TOKEN}" http://localhost/api/v1/groups/statistics


Раскрыть
titleКод ответа 200 - успешный запрос
Блок кода
{
    "groupStatistics": [
        {
            "id": "1",
            "name": "eccm",
            "parentGroupId": "0",
            "totalDevices": "0",
            "hasChildren": true,
            "problemDevices": "0",
            "unavailableDevices": "0",
            "devicesWithAvailabilityStatuses": "0",
            "disabledDevices": "0",
            "enabledDevices": "0",
            "type": "GROUPS",
            "idPath": "1/",
            "path": "eccm/"
        }
    ]
}
Раскрыть
titleКод ответа 400 - ошибка валидации
Блок кода
{
    "message": "Failed to get groups",
    "code": 400,
    "errors": [
        {
            "domain": "backend-ui",
            "message": "Failed to get groups",
            "reason": "Invalid group type: test",
            "extendedHelp": "Provide valid parameter value and try again"
        }
    ]
}
Раскрыть
titleКод ответа 500 - ошибка сервера
Блок кода
{
	"message": "RPC error",
	"code": 500,
	"errors": [
		{
			"domain": "backend-ui",
			"message": "RPC error",
			"reason": "RPC timeout",
			"extendedHelp": "Please try again later or contact support"
		}
	]
}


GET /api/v1/groups/{id}/statisticsПолучение расширенной информации по конкретной группе
Path-параметры: 
  • id (uint64): Уникальный ID группы



Блок кода
title200 - успешная операция
GroupStatistic


Блок кода
title400 - ошибка валидации
AnswerContract


Блок кода
title500 - ошибка сервера
AnswerContract


Блок кода
languagebash
curl -X GET -H "Authorization: Bearer ${TOKEN}" http://localhost/api/v1/groups/1/statistics


Раскрыть
titleКод ответа 200 - успешный запрос
Блок кода
{
    "id": "1",
    "name": "eccm",
    "parentGroupId": "0",
    "totalDevices": "0",
    "hasChildren": true,
    "problemDevices": "0",
    "unavailableDevices": "0",
    "devicesWithAvailabilityStatuses": "0",
    "disabledDevices": "0",
    "enabledDevices": "0",
    "type": "GROUPS",
    "idPath": "1/",
    "path": "eccm/"
}
Раскрыть
titleКод ответа 400 - ошибка валидации
Блок кода
{
    "message": "Entity not found",
    "code": 400,
    "errors": [
        {
            "domain": "data-presenter",
            "message": "Entity not found",
            "reason": "Failed to find GroupInfo with id 44 in the database",
            "extendedHelp": "Please enter only id of the existing entity"
        }
    ]
}
Раскрыть
titleКод ответа 500 - ошибка сервера
Блок кода
{
	"message": "RPC error",
	"code": 500,
	"errors": [
		{
			"domain": "backend-ui",
			"message": "RPC error",
			"reason": "RPC timeout",
			"extendedHelp": "Please try again later or contact support"
		}
	]
}


GET /api/v1/devicesПолучение информации по всем устройствам

Query-параметры:

  • id (uint64): ID устройства
  • ip (string): IP устройства
  • hostname (string): Имя хоста точки доступа
  • label (string): Имя устройства
  • mac (string): MAC-адрес
  • model (string): Модель
  • serialNumber (string): Серийный номер
  • firmwareVersion (string): Версия ПО
  • maintenanceStatus (MaintenanceStatus): Статус обслуживания устройства
  • groupId (string): ID родительской группы
  • note (string): Заметка об устройстве
  • availabilityIcmpStatus (AvailabilityStatus): Статус доступности ICMP
  • availabilitySnmpStatus (AvailabilityStatus): Статус доступности SNMP
  • availabilitySshStatus (AvailabilityStatus): Статус доступности SSH
  • offset (uint64): Начальный элемент пагинации

  • size (uint64): Ограничение максимального количества элементов в ответе

  • total (boolean): Общее количество найденных объектов без учёта лимита пагинации


Блок кода
title200 - успешная операция
{
    "devices": [Device],
    "total": "uint64"
}


Блок кода
title400 - ошибка валидации
AnswerContract


Блок кода
title500 - ошибка сервера
AnswerContract


Блок кода
languagebash
curl -X GET -H "Authorization: Bearer ${TOKEN}" http://localhost/api/v1/devices


Раскрыть
titleКод ответа 200 - успешный запрос
Блок кода
{
    "devices": [
        {
            "id": "100",
            "label": "100.122.0.111_ESR-200",
            "ip": "100.122.0.111",
            "hostname": "testhost",
            "mac": "cc:9d:a2:70:af:d8",
            "model": "ESR-200",
            "serialNumber": "NP15011091",
            "firmwareVersion": "1.34.4 build 10",
            "maintenanceStatus": "ENABLED",
            "groupId": "100",
            "note": "",
            "isStack": false,
            "availabilityIcmpStatus": "UP",
            "availabilitySnmpStatus": "UP",
            "availabilitySshStatus": "DOWN"
        }
    ]
}
Раскрыть
titleКод ответа 400 - ошибка валидации
Блок кода
{
    "message": "Failed to get devices",
    "code": 400,
    "errors": [
        {
            "domain": "backend-ui",
            "message": "Failed to get devices",
            "reason": "Invalid maintenance status: test",
            "extendedHelp": "Provide valid parameter value and try again"
        }
    ]
}
Раскрыть
titleКод ответа 500 - ошибка сервера
Блок кода
{
	"message": "RPC error",
	"code": 500,
	"errors": [
		{
			"domain": "backend-ui",
			"message": "RPC error",
			"reason": "RPC timeout",
			"extendedHelp": "Please try again later or contact support"
		}
	]
}


GET /api/v1/devices/{id}Получение информации по конкретному устройству
Path-параметры: 
  • id (uint64): Уникальный ID устройства



Блок кода
title200 - успешная операция
Device


Блок кода
title400 - ошибка валидации
AnswerContract


Блок кода
title500 - ошибка сервера
AnswerContract


Блок кода
languagebash
curl -X GET -H "Authorization: Bearer ${TOKEN}" http://localhost/api/v1/devices/100


Раскрыть
titleКод ответа 200 - успешный запрос
Блок кода
{
    "id": "100",
    "label": "100.122.0.111_ESR-200",
    "ip": "100.122.0.111",
    "hostname": "testhost",
    "mac": "cc:9d:a2:70:af:d8",
    "model": "ESR-200",
    "serialNumber": "NP15011091",
    "firmwareVersion": "1.34.4 build 10",
    "maintenanceStatus": "ENABLED",
    "groupId": "100",
    "note": "",
    "isStack": false,
    "availabilityIcmpStatus": "UP",
    "availabilitySnmpStatus": "UP",
    "availabilitySshStatus": "DOWN"
}
Раскрыть
titleКод ответа 400 - ошибка валидации
Блок кода
{
    "message": "Entity not found",
    "code": 400,
    "errors": [
        {
            "domain": "data-presenter",
            "message": "Entity not found",
            "reason": "Failed to find DeviceInfo with id 44 in the database",
            "extendedHelp": "Please enter only id of the existing entity"
        }
    ]
}
Раскрыть
titleКод ответа 500 - ошибка сервера
Блок кода
{
	"message": "RPC error",
	"code": 500,
	"errors": [
		{
			"domain": "backend-ui",
			"message": "RPC error",
			"reason": "RPC timeout",
			"extendedHelp": "Please try again later or contact support"
		}
	]
}


GET /api/v1/devices/{id}/eventsПолучение списка событий по конкретному устройству

Path-параметры: 

  • id (uint64): Уникальный ID устройства

Query-параметры:

  • id (uint64): ID события
  • severity (Severity): Уровень важности события
  • description (string): Описание события

  • timestampCreatedFrom (uint64): Начальное время создания события

  • timestampCreatedTo (uint64): Конечное время создания события

  • offset (uint64): Начальный элемент пагинации

  • size (uint64): Ограничение максимального количества элементов в ответе

  • total (boolean): Общее количество найденных объектов без учёта лимита пагинации

Блок кода
title200 - успешная операция
{
    "events": [Event],
    "total": "uint64"
}
 
Блок кода
title400 - ошибка валидации
AnswerContract


Блок кода
title500 - ошибка сервера
AnswerContract



Блок кода
languagebash
curl -X GET -H "Authorization: Bearer ${TOKEN}" http://localhost/api/v1/devices/100/events


Раскрыть
titleКод ответа 200 - успешный запрос
Блок кода
{
    "events": [
        {
            "id": "1",
            "sourceType": "METRIC",
            "severity": "ALERT",
            "createdAt": "1770190451591",
            "label": "WLC недоступен по SNMP",
            "description": "Устройство недоступно по SNMP",
            "deviceId": "100",
            "deviceIp": "100.122.0.108",
            "deviceLabel": "100.122.0.108_WLC-15",
            "deviceHostname": "ECCM-WLC"
        }
    ]
}
Раскрыть
titleКод ответа 400 - ошибка валидации
Блок кода
{
    "message": "Entity not found",
    "code": 400,
    "errors": [
        {
            "domain": "data-presenter",
            "message": "Entity not found",
            "reason": "Failed to find DeviceInfo with id 44 in the database",
            "extendedHelp": "Please enter only id of the existing entity"
        }
    ]
}
Раскрыть
titleКод ответа 500 - ошибка сервера
Блок кода
{
	"message": "RPC error",
	"code": 500,
	"errors": [
		{
			"domain": "backend-ui",
			"message": "RPC error",
			"reason": "RPC timeout",
			"extendedHelp": "Please try again later or contact support"
		}
	]
}


GET /api/v1/devices/{id}/problemsПолучение списка проблем по конкретному устройству

Path-параметры: 

  • id (uint64): Уникальный ID устройства

Query-параметры:

  • id (uint64): ID проблемы
  • severity (Severity): Уровень важности проблемы
  • status (ProblemStatus): Статус проблемы
  • description (string): Описание проблемы

  • timestampCreatedFrom (uint64): Начальное время создания проблемы

  • timestampCreatedTo (uint64): Конечное время создания проблемы

  • timestampClosedFrom (uint64): Начальное время закрытия проблемы
  • timestampClosedTo (uint64): Конечное время закрытия проблемы
  • timestampAcknowledgedFrom (uint64): Начальное время подтверждения проблемы
  • timestampAcknowledgedTo (uint64): Конечное время подтверждения проблемы
  • timestampAssignedFrom (uint64): Начальное время назначения проблемы
  • timestampAssignedTo (uint64): Конечное время назначения проблемы
  • offset (uint64): Начальный элемент пагинации
  • size (uint64): Ограничение максимального количества элементов в ответе

  • total (boolean): Общее количество найденных объектов без учёта лимита пагинации


Блок кода
title200 - успешная операция
{
    "problems": [Problem],
    "total": "uint64"
}


Блок кода
title400 - ошибка валидации
AnswerContract


Блок кода
title500 - ошибка сервера
AnswerContract



Блок кода
languagebash
curl -X GET -H "Authorization: Bearer ${TOKEN}" http://localhost/api/v1/devices/100/problems


Раскрыть
titleКод ответа 200 - успешный запрос
Блок кода
{
    "problems": [
        {
            "id": "1",
            "status": "CLOSED",
            "severity": "ALERT",
            "createdAt": "1770190451591",
            "isAcknowledged": false,
            "closedBy": "System",
            "closedAt": "1770190466098",
            "label": "Устройство недоступно по протоколу SNMP",
            "description": "Потеря доступа к устройству по протоколу SNMP",
            "deviceId": "100",
            "deviceIp": "100.122.0.108",
            "deviceLabel": "100.122.0.108_WLC-15",
            "deviceHostname": "ECCM-WLC",
            "groupId": "100",
            "groupName": "1",
            "duration": "14507"
        }
    ]
}
Раскрыть
titleКод ответа 400 - ошибка валидации
Блок кода
{
    "message": "Entity not found",
    "code": 400,
    "errors": [
        {
            "domain": "data-presenter",
            "message": "Entity not found",
            "reason": "Failed to find DeviceInfo with id 44 in the database",
            "extendedHelp": "Please enter only id of the existing entity"
        }
    ]
}
Раскрыть
titleКод ответа 500 - ошибка сервера
Блок кода
{
	"message": "RPC error",
	"code": 500,
	"errors": [
		{
			"domain": "backend-ui",
			"message": "RPC error",
			"reason": "RPC timeout",
			"extendedHelp": "Please try again later or contact support"
		}
	]
}


GET /api/v1/devices/{id}/tasksПолучение списка задач по конкретному устройству

Path-параметры: 

  • id (uint64): Уникальный ID устройства

Query-параметры:

  • id (uint64): ID задачи
  • status (TaskStatus): Статус задачи
  • type (TaskType): Тип задачи
  • deviceId (uint64): ID устройства

  • deviceIp (string): IP устройства
  • deviceHostname (string): Hostname устройства
  • deviceLabel (string): Название устройства
  • timestampCreatedFrom (uint64): Начальное время создания задачи
  • timestampCreatedTo (uint64): Конечное время создания задачи

  • timestampStartFrom (uint64): Начальное время выполнения задачи
  • timestampStartTo (uint64): Конечное время выполнения задачи
  • timestampStoppedFrom (uint64): Начальное время остановки задачи
  • timestampStoppedTo (uint64): Конечное время остановки задачи
  • offset (uint64): Начальный элемент пагинации
  • size (uint64): Ограничение максимального количества элементов в ответе

  • total (boolean): Общее количество найденных объектов без учёта лимита пагинации

Блок кода
title200 - успешная операция
{
    "tasks": [Task],
    "total": "uint64"
}


Блок кода
title400 - ошибка валидации
AnswerContract


Блок кода
title500 - ошибка сервера
AnswerContract

  

Блок кода
languagebash
curl -X GET -H "Authorization: Bearer ${TOKEN}" http://localhost/api/v1/devices/100/tasks


Раскрыть
titleКод ответа 200 - успешный запрос
Блок кода
{
    "tasks": [
        {
            "id": "19",
            "status": "FAILED",
            "type": "UPDATE_DEVICE_INFO_GROUP",
            "createdAt": "1770190212668",
            "scheduledAt": "0",
            "startAt": "1770190212681",
            "stoppedAt": "1770190232600",
            "author": "System",
            "errorCause": "Child task failed",
            "deviceId": "100",
            "deviceIp": "100.122.0.108",
            "deviceLabel": "100.122.0.108_WLC-15",
            "deviceHostname": "ECCM-WLC"
        }
    ]
}
Раскрыть
titleКод ответа 400 - ошибка валидации
Блок кода
{
    "message": "Entity not found",
    "code": 400,
    "errors": [
        {
            "domain": "data-presenter",
            "message": "Entity not found",
            "reason": "Failed to find DeviceInfo with id 44 in the database",
            "extendedHelp": "Please enter only id of the existing entity"
        }
    ]
}
Раскрыть
titleКод ответа 500 - ошибка сервера
Блок кода
{
	"message": "RPC error",
	"code": 500,
	"errors": [
		{
			"domain": "backend-ui",
			"message": "RPC error",
			"reason": "RPC timeout",
			"extendedHelp": "Please try again later or contact support"
		}
	]
}


GET /api/v1/eventsПолучение списка всех событий

Query-параметры:

  • id (uint64): ID события
  • severity (Severity): Уровень важности события
  • description (string): Описание события

  • timestampCreatedFrom (uint64): Начальное время создания события

  • timestampCreatedTo (uint64): Конечное время создания события

  • offset (uint64): Начальный элемент пагинации

  • size (uint64): Ограничение максимального количества элементов в ответе

  • total (boolean): Общее количество найденных объектов без учёта лимита пагинации

Блок кода
title200 - успешная операция
{
    "events": [Event],
    "total": "uint64"
}


Блок кода
title400 - ошибка валидации
AnswerContract


Блок кода
title500 - ошибка сервера
AnswerContract




Блок кода
languagebash
curl -X GET -H "Authorization: Bearer ${TOKEN}" http://localhost/api/v1/events


Раскрыть
titleКод ответа 200 - успешный запрос
Блок кода
{
    "events": [
        {
            "id": "1",
            "sourceType": "METRIC",
            "severity": "ALERT",
            "createdAt": "1770190451591",
            "label": "WLC недоступен по SNMP",
            "description": "Устройство недоступно по SNMP",
            "deviceId": "106",
            "deviceIp": "100.122.0.108",
            "deviceLabel": "100.122.0.108_WLC-15",
            "deviceHostname": "ECCM-WLC"
        }
    ]
}
Раскрыть
titleКод ответа 400 - ошибка валидации
Блок кода
{
    "message": "Failed to get events",
    "code": 400,
    "errors": [
        {
            "domain": "backend-ui",
            "message": "Failed to get events",
            "reason": "Invalid severity: test",
            "extendedHelp": "Provide valid parameter value and try again"
        }
    ]
}
Раскрыть
titleКод ответа 500 - ошибка сервера
Блок кода
{
	"message": "RPC error",
	"code": 500,
	"errors": [
		{
			"domain": "backend-ui",
			"message": "RPC error",
			"reason": "RPC timeout",
			"extendedHelp": "Please try again later or contact support"
		}
	]
}



GET /api/v1/problemsПолучение списка всех проблем

Query-параметры:

  • id (uint64): ID проблемы
  • severity (Severity): Уровень важности проблемы
  • status (ProblemStatus): Статус проблемы
  • description (string): Описание проблемы

  • timestampCreatedFrom (uint64): Начальное время создания проблемы

  • timestampCreatedTo (uint64): Конечное время созданияпроблемы

  • timestampClosedFrom (uint64): Начальное время закрытия проблемы
  • timestampClosedTo (uint64): Конечное время создания проблемы
  • timestampAcknowledgedFrom (uint64): Начальное время подтверждения проблемы
  • timestampAcknowledgedTo (uint64): Конечное время подтверждения проблемы
  • timestampAssignedFrom (uint64): Начальное время назначения проблемы
  • timestampAssignedTo (uint64): Конечное время назначения проблемы
  • offset (uint64): Начальный элемент пагинации
  • size (uint64): Ограничение максимального количества элементов в ответе

  • total (boolean): Общее количество найденных объектов без учёта лимита пагинации

Блок кода
title200 - успешная операция
{
    "problems": [Problem],
    "total": "uint64"
}


Блок кода
title400 - ошибка валидации
AnswerContract


Блок кода
title500 - ошибка сервера
AnswerContract


Блок кода
languagebash
curl -X GET -H "Authorization: Bearer ${TOKEN}" http://localhost/api/v1/problems


Раскрыть
titleКод ответа 200 - успешный запрос
Блок кода
{
    "problems": [
        {
            "id": "1",
            "status": "CLOSED",
            "severity": "ALERT",
            "createdAt": "1770190451591",
            "isAcknowledged": false,
            "closedBy": "System",
            "closedAt": "1770190466098",
            "label": "Устройство недоступно по протоколу SNMP",
            "description": "Потеря доступа к устройству по протоколу SNMP",
            "deviceId": "106",
            "deviceIp": "100.122.0.108",
            "deviceLabel": "100.122.0.108_WLC-15",
            "deviceHostname": "ECCM-WLC",
            "groupId": "100",
            "groupName": "1",
            "duration": "14507"
        }
    ]
}
Раскрыть
titleКод ответа 400 - ошибка валидации
Блок кода
{
    "message": "Failed to get problems",
    "code": 400,
    "errors": [
        {
            "domain": "backend-ui",
            "message": "Failed to get problems",
            "reason": "Invalid severity: test",
            "extendedHelp": "Provide valid parameter value and try again"
        }
    ]
}
Раскрыть
titleКод ответа 500 - ошибка сервера
Блок кода
{
	"message": "RPC error",
	"code": 500,
	"errors": [
		{
			"domain": "backend-ui",
			"message": "RPC error",
			"reason": "RPC timeout",
			"extendedHelp": "Please try again later or contact support"
		}
	]
}


GET /api/v1/tasks

Получение списка всех задач

Query-параметры:

  • id (uint64): ID задачи
  • status (TaskStatus): Статус задачи
  • type (TaskType): Тип задачи
  • deviceId (uint64): ID устройства

  • deviceIp (string): IP устройства
  • deviceHostname (string): Hostname устройства
  • deviceLabel (string): Название устройства
  • timestampCreatedFrom (uint64): Начальное время создания задачи
  • timestampCreatedTo (uint64): Конечное время создания задачи

  • timestampStartFrom (uint64): Начальное время запуска задачи
  • timestampStartTo (uint64): Конечное время запуска задачи
  • timestampStoppedFrom (uint64): Начальное время завершения задачи
  • timestampStoppedTo (uint64): Конечное время завершения задачи
  • offset (uint64): Начальный элемент пагинации
  • size (uint64): Ограничение максимального количества элементов в ответе

  • total (boolean): Общее количество найденных объектов без учёта лимита пагинации

Блок кода
title200 - успешная операция
{
    "tasks": [Task],
    "total": "uint64"
}
Блок кода
title400 - ошибка валидации
AnswerContract


Блок кода
title500 - ошибка сервера
AnswerContract


Блок кода
languagebash
curl -X GET -H "Authorization: Bearer ${TOKEN}" http://localhost/api/v1/tasks


Раскрыть
titleКод ответа 200 - успешный запрос
Блок кода
{
    "tasks": [
        {
            "id": "19",
            "status": "FAILED",
            "type": "UPDATE_DEVICE_INFO_GROUP",
            "createdAt": "1770190212668",
            "scheduledAt": "0",
            "startAt": "1770190212681",
            "stoppedAt": "1770190232600",
            "author": "System",
            "errorCause": "Child task failed",
            "deviceId": "106",
            "deviceIp": "100.122.0.108",
            "deviceLabel": "100.122.0.108_WLC-15",
            "deviceHostname": "ECCM-WLC"
        }
    ]
}
Раскрыть
titleКод ответа 400 - ошибка валидации
Блок кода
{
    "message": "Failed to get tasks",
    "code": 400,
    "errors": [
        {
            "domain": "backend-ui",
            "message": "Failed to get tasks",
            "reason": "Invalid type: test",
            "extendedHelp": "Provide valid parameter value and try again"
        }
    ]
}
Раскрыть
titleКод ответа 500 - ошибка сервера
Блок кода
{
	"message": "RPC error",
	"code": 500,
	"errors": [
		{
			"domain": "backend-ui",
			"message": "RPC error",
			"reason": "RPC timeout",
			"extendedHelp": "Please try again later or contact support"
		}
	]
}


Схема данных

Название сущностиОписание сущности
Group
Блок кода
{
  "id": "uint64",
  "name": "string",
  "type": GroupType,
  "parentGroupId": "uint64",
  "path": "string",
  "idPath": "string"
}
GroupType
EMPTY, GROUPS, DEVICES, IP_FABRIC, FBWA, CLUSTER
GroupStatistics


Блок кода
{
    "id": "uint64",
    "name": "string",
    "parentGroupId": "uint64",
    "totalDevices": "uint64",
    "hasChildren": bool,
    "problemDevices": "uint64",
    "unavailableDevices": "uint64",
    "devicesWithAvailabilityStatuses": "uint64",
    "disabledDevices": "uint64",
    "enabledDevices": "uint64",
    "type": GroupType,
    "idPath": "string",
    "path": "string"
}
Device
Блок кода
{
    "id": "uint64",
    "label": "string",
    "ip": "string",
    "hostname": "string",
    "mac": "string",
    "model": "string",
    "serialNumber": "string",
    "firmwareVersion": "string",
    "maintenanceStatus": MaintenanceStatus,
    "groupId": "uint64",
    "note": "string",
    "isStack": bool,
    "availabilityIcmpStatus": AvailabilityStatus,
    "availabilitySnmpStatus": AvailabilityStatus,
    "availabilitySshStatus": AvailabilityStatus
}
MaintenanceStatus

ENABLED, DISABLED, INCORRECT_MODEL, NO_LICENSE

AvailabilityStatus

UP, DOWN

Event


Блок кода
{
    "id": "uint64",
    "sourceType": SourceType,
    "severity": Severity,
    "createdAt": "uint64",
    "label": "string",
    "description": "string",
    "deviceId": "uint64",
    "deviceIp": "string",
    "deviceLabel": "string",
    "deviceHostname": "string"
}
SourceType

METRIC, TRAP, SYSLOG, TASK, WIFI_EVENT

Severity
EMERGENCY, ALERT, CRITICAL, ERROR, WARNING, NOTICE, INFORMATIONAL, DEBUG
Problem
Блок кода
{
    "id": "uint64",
    "status": ProblemStatus,
    "severity": Severity,
    "createdAt": "uint64",
    "isAcknowledged": bool,
    "closedBy": "string",
    "closedAt": "uint64",
    "label": "string",
    "description": "string",
    "deviceId": "uint64",
    "deviceIp": "string",
    "deviceLabel": "string",
    "deviceHostname": "string",
    "groupId": "uint64",
    "groupName": "string",
    "duration": "uint64"
} 
ProblemStatus
NEW, IN_PROGRESS, CLOSED
Task
Блок кода
{
    "id": "uint64",
    "status": TaskStatus,
    "type": TaskType,
    "createdAt": "uint64",
    "scheduledAt": "uint64",
    "startAt": "uint64",
    "stoppedAt": "uint64",
    "author": "string",
    "errorCause": "string",
    "deviceId": "uint64",
    "deviceIp": "string",
    "deviceLabel": "string",
    "deviceHostname": "string"
} 
TaskStatus
 DONE, IN_PROGRESS, FAILED, WAITING, INTERRUPTED, CANCELED
TaskType
 APPLY_CONFIGURATION, SYNC_CONFIGURATION, UPGRADE_DEVICE, REBOOT_DEVICE, UPGRADE_DEVICE_GROUP, APPLY_TEMPLATE, APPLY_TEMPLATE_GROUP, RESET_DEVICE, RESET_DEVICE_GROUP, APPLY_IP_FABRIC_ROLE_CONFIGURATION, INSTALL_DEVICE_LICENSE, INSTALL_DEVICE_LICENSE_GROUP, UPDATE_DEVICE_INVENTORY, UPDATE_DEVICE_AVAILABILITY_STATUSES, APPLY_IP_FABRIC_ROLE_CONFIGURATION_GROUP, UPDATE_LLDP_INFO, DISCOVER_INTERFACES, UPDATE_DEVICE_INFO_GROUP, APPLY_CONFIG_DATA_MODEL, REBOOT_DEVICE_GROUP, GET_ALL_FIRMWARES, SWITCH_FIRMWARE, UPDATE_DEVICE_AVAILABILITY_STATUSES_GROUP, REGISTER_ACCESS_POINTS, UNREGISTER_ACCESS_POINTS, SYNC_WIFI_CONFIG_GROUP, SYNC_WIFI_CONFIG, APPLY_WIFI_LOCATION_GROUP, APPLY_WIFI_LOCATION, DEAUTHENTICATE_WIFI_CLIENTS, SETUP_SYSLOG_SENDING, SETUP_SYSLOG_SENDING_GROUP, UPDATE_CLUSTER_DEVICES_STATUS, UPDATE_CLUSTER_DEVICES_STATUS_GROUP, DISCOVER_VLANS, UPDATE_LLDP_INFO_GROUP, SYNC_BROADBAND_PROFILES_GROUP, SYNC_BROADBAND_PROFILES