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

Ключ

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

Оглавление

Вы можете взаимодействовать с системой 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") фильтруются по операции "Содержит/Contains";
  2. Числовые параметры (тип "uint64") фильтруются по операции "Равно/Equal";
  3. При передаче некорректного ENUM-a запрос не выполнится, пользователь получит ошибку несоответствия ожидаемого типа.

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


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

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

 

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

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

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

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

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

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

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

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


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


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


Блок кода
title500 - ошибка сервера
AnswerContract
Блок кода
{ "id": "1",
languagebash
curl -X GET -H "Authorization: Bearer ${TOKEN}" http://localhost/api/v1/groups/statistics


Раскрыть
titleКод ответа 200 - успешный запрос
Блок кода
{
    "
name
groupStatistics": 
"eccm",
[
     
"parentGroupId": "0",
   {
     
"totalDevices"
       "id": "
0
1",
    
"hasChildren": true,
        "
problemDevices
name": "
0
eccm",
            "
unavailableDevices
parentGroupId": "0",
     
"devicesWithAvailabilityStatuses
       "totalDevices": "0",
            "
disabledDevices
hasChildren": 
"0"
true,
      
"enabledDevices
      "problemDevices": "0",
            "
type
unavailableDevices": "
GROUPS
0",
    
"idPath
        "devicesWithAvailabilityStatuses": "
1/
0",
     
"path": "eccm/" }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
       "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",
Блок кода{ "devices": [

        
{
    "reason": "Invalid 
"id"
group type: 
"100
test",
            "
label
extendedHelp": "
100.122.0.111_ESR-200",
Provide valid parameter value and try again"
        }
    
"ip": "100.122.0.111", "hostname
]
}
Раскрыть
titleКод ответа 500 - ошибка сервера
Блок кода
{
	"message": "
testhost
RPC error",
"mac
	"code": 500,
	"errors"
cc:9d:a2:70:af:d8", "model
: [
		{
			"domain": "
ESR
backend-
200
ui",
"serialNumber
			"message": "
NP15011091
RPC error",
"firmwareVersion
			"reason": "
1.34.4 build 10", "maintenanceStatus
RPC timeout",
			"extendedHelp": "
ENABLED",
Please try again later or 
"groupId": "100", "note": "", "isStack": false
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",
    "
availabilityIcmpStatus
totalDevices": "
UP
0",
    
"hasChildren": true,
    "
availabilitySnmpStatus
problemDevices": "
UP
0",
    "unavailableDevices": "0",
    
"
availabilitySshStatus
devicesWithAvailabilityStatuses": "
DOWN
0",
    
}
"disabledDevices": "0",
    
] }GET /api/v1/devices/{id}Получение информации по конкретному устройствуPath-параметры: 
  • id (uint64): Уникальный ID устройства
Блок кода
title200 - успешная операция
Device
Блок кода
title400 - ошибка валидации
AnswerContract
Блок кода
title500 - ошибка сервера
AnswerContract
Блок кода{
"enabledDevices": "0",
    "
id
type": "
100
GROUPS",
    "
label
idPath": 
"100.122.0.111_ESR-200"
"1/",
    "
ip
path": "
100.122.0.111",
eccm/"
}
Раскрыть
titleКод ответа 400 - ошибка валидации
Блок кода
{
    "
hostname
message": "
testhost
Entity not found",
    "
mac
code": 
"cc:9d:a2:70:af:d8"
400,
    "
model
errors": 
"ESR-200",
[
      
"serialNumber": "NP15011091",
  {
    
"firmwareVersion": "1.34.4 build 10",
        "
maintenanceStatus
domain": "
ENABLED
data-presenter",
    
"groupId
        "message": "
100
Entity not found",
            "
note
reason": "Failed to find GroupInfo with id 44 in the database",
       
"isStack":
 
false,
    "
availabilityIcmpStatus
extendedHelp": "
UP",
Please enter only id of the existing entity"
    
"availabilitySnmpStatus": "UP",
    }
    
"availabilitySshStatus": "DOWN"
]
}
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
Раскрыть
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 (

Блок кода
{
    "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"
        }
    ]
}
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
    devices": [
    Problem
    Device],
        "total": "uint64"
    }


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


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


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


    Раскрыть
    titleКод ответа 200 - успешный запрос
    Блок кода
    {
        "devices": [
            {
                "id": "
    1
    100",
                "
    status
    label": "
    CLOSED
    100.122.0.111_ESR-200",
                "
    severity
    ip": "
    ALERT
    100.122.0.111",
                "
    createdAt
    hostname": "
    1770190451591
    testhost",
                "
    isAcknowledged
    mac": 
    false
    "cc:9d:a2:70:af:d8",
                "
    closedBy
    model": "
    System
    ESR-200",
                "
    closedAt
    serialNumber": "
    1770190466098
    NP15011091",
                "
    label
    firmwareVersion": "
    Устройство недоступно по протоколу SNMP
    1.34.4 build 10",
                "
    description
    maintenanceStatus": "
    Потеря доступа к устройству по протоколу SNMP
    ENABLED",
                "
    deviceId": "106", "deviceIp
    groupId": "100
    .122.0.108
    ",
                "
    deviceLabel
    note": "
    100.122.0.108_WLC-15
    ",
                "
    deviceHostname
    isStack": 
    "ECCM-WLC"
    false,
                "
    groupId
    availabilityIcmpStatus": "
    100
    UP",
                "
    groupName
    availabilitySnmpStatus": "
    1
    UP",
                "
    duration
    availabilitySshStatus": "
    14507
    DOWN"
            }
        ]
    }
    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
    Раскрыть
    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",
    Блок кода{ "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"
    
            
    }
    Блок кода
    {
        "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"
            }
        ]
    }
    GET /api/v1/problemsПолучение списка всех проблем
        
    ] }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
    "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): Уровень важности
    проблемыstatus (ProblemStatus): Статус проблемы
    • события
    • description (string): Описание

    проблемы
    • события

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

    проблемы
    • события

    • timestampCreatedTo (uint64): Конечное время

    созданияпроблемы
    • создания события

    timestampClosedFrom
    • offset (uint64):

    Начальное время закрытия проблемы
    • Начальный элемент пагинации

    • size

    timestampClosedTo
    • (uint64):

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

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

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


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


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


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

    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): Начальное время завершения задачи
  • Раскрыть
    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): Конечное время назначения проблемы
    timestampStoppedTo (uint64): Конечное время завершения задачи
    • offset (uint64): Начальный элемент пагинации
    • size (uint64): Ограничение максимального количества элементов в ответе

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


    Блок кода
    title
    200 - успешная операция
    {
        "tasks": [Task],
        "total": "uint64"
    }
    Блок кода
    title400 - ошибка валидации
    AnswerContract
    Блок кода
    title500 - ошибка сервера
    AnswerContract
    200 - успешная операция
    {
        "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",
    Блок кода{ "tasks": [ {
    
                "
    id
    deviceIp": "
    19
    100.122.0.108",
                "
    status
    deviceLabel": "
    FAILED
    100.122.0.108_WLC-15",
                "
    type
    deviceHostname": "
    UPDATE_DEVICE_INFO_GROUP",
    ECCM-WLC"
            }
        ]
    }
    Раскрыть
    titleКод ответа 400 - ошибка валидации
    Блок кода
    {
        "
    createdAt
    message": "
    1770190212668
    Failed to get tasks",
        "code": 400,
        "errors": [
          
    "scheduledAt": "0",
      {
                "
    startAt
    domain": "
    1770190212681
    backend-ui",
                "
    stoppedAt
    message": "
    1770190232600
    Failed to get tasks",
                "
    author
    reason": "
    System
    Invalid type: test",
                "
    errorCause
    extendedHelp": "
    Child task failed",
    Provide valid parameter value and try again"
            }
        
    "deviceId
    ]
    }
    Раскрыть
    titleКод ответа 500 - ошибка сервера
    Блок кода
    {
    	"message": "
    106
    RPC error",
    	"code": 
    "deviceIp
    500,
    	"errors": [
    		{
    			"domain": "
    100.122.0.108
    backend-ui",
    
    "deviceLabel
    			"message": "
    100.122.0.108_WLC-15", "deviceHostname
    RPC error",
    			"reason": "
    ECCM-WLC" }
    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