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

Ключ

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

...

Примечание

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

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

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

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

    "
groupStatistics
errors": [
        {
            "
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",
	"code": 
"devicesWithAvailabilityStatuses
500,
	"errors": [
		{
			"domain": "
0
backend-ui",
"disabledDevices
			"message": "
0
RPC error",
"enabledDevices
			"reason": "
0", "type": "GROUPS", "idPath
RPC timeout",
			"extendedHelp": "
1/",
Please try again later or 
"path": "eccm/" }
contact support"
		}
	]
}


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

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

 

  • id (uint64): Уникальный ID группы
Блок кода
title200 - успешная операция
GroupStatistic
  • name (string): Имя группы

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

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

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

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

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

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

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

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


Блок кода
title
500 - ошибка сервера
AnswerContract
200 - успешная операция
{
  
 "
id
groupStatistics":
"1"
[GroupStatistics],
  
 "
name
total": 
"eccm", "parentGroupId": "0", "totalDevices": "0", "hasChildren": true,
string
}


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


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


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


Раскрыть
titleКод ответа 200 - успешный запрос
Блок кода
{
    "
problemDevices
groupStatistics": 
"0",
[
    
"unavailableDevices": "0",
    {
            "
devicesWithAvailabilityStatuses
id": "
0
1",
    
"disabledDevices
        "name": "
0
eccm",
            "
enabledDevices
parentGroupId": "0",
    
"type": "GROUPS",
        "
idPath
totalDevices": "
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): Общее количество найденных объектов без учёта лимита пагинации

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

Блок кода
{
    "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": [
            {
    Блок кода{ "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
    domain": "
    ECCM
    data-
    WLC
    presenter",
            
    }
    Блок кода
    {
        "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
    id": "
    CLOSED
    1",
                "
    severity
    sourceType": "
    ALERT
    METRIC",
                "
    createdAt
    severity": "
    1770190451591
    ALERT",
                "
    isAcknowledged
    createdAt": 
    false
    "1770190451591",
                "
    closedBy
    label": "
    System
    WLC недоступен по SNMP",
                "
    closedAt
    description": "
    1770190466098
    Устройство недоступно по SNMP",
                "
    label
    deviceId": "
    Устройство недоступно по протоколу SNMP
    100",
                "
    description
    deviceIp": "
    Потеря доступа к устройству по протоколу SNMP", "deviceId": "106", "deviceIp": "
    100.122.0.108",
                "deviceLabel": "100.122.0.108_WLC-15",
                "deviceHostname": "ECCM-WLC"
    ,
    
            }
        ]
    }
    Раскрыть
    titleКод ответа 400 - ошибка валидации
    Блок кода
    {
        "
    groupId
    message": "
    100
    Entity not found",
        
    "code": 400,
        
    "groupName
    "errors": [
            {
                "domain": "
    1
    data-presenter",
                "
    duration
    message": "
    14507
    Entity not found",
            
    }
        
    ] }

    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
    "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",
    Блок кода{ "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": "Failed to get 
    "1770190212668"
    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

    ...