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

Ключ

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

Оглавление

Вы можете взаимодействовать с системой 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
Блок кода
{ "groups": [
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
}
GET /api/v1/groups/{id}Получение информации по конкретной группеPath-параметры: 
  • id (uint64): Уникальный ID группы
Блок кода
title200 - успешная операция
Group
Раскрыть
titleКод ответа
Блок кодаtitle
400 - ошибка валидации
AnswerContract Блок кода{
Блок кода
title500 - ошибка сервера
AnswerContract
{
    "
id
message": "
1
Failed to get groups",
    "
name
code": 
"eccm"
400,
    "
parentGroupId
errors": 
"0",
[
        {
            "
type
domain": "
GROUPS
backend-ui",
            "
path
message": "
eccm/
Failed to get groups",
            "
idPath
reason": "
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): Общее количество найденных объектов без учёта лимита пагинации
    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 - успешная операция
    {
       "groupStatistics":[GroupStatistic],
       "total": string
    }
    Блок кода
    Group


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


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


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

    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 - ошибка валидации
    AnswerContractcode


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


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


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


    Раскрыть
    titleКод ответа 200 - успешный запрос
    Блок кода
    {
        "
    parentGroupId
    groupStatistics": 
    "0",
    [
          
    "totalDevices": "0",
      {
        
    "hasChildren": true,
            "
    problemDevices
    id": "
    0
    1",
                "
    unavailableDevices
    name": "
    0
    eccm",
        
    "devicesWithAvailabilityStatuses
            "parentGroupId": "0",
                "
    disabledDevices
    totalDevices": "0",
          
    "enabledDevices
          "hasChildren": 
    "0"
    true,
                "
    type
    problemDevices": "
    GROUPS
    0",
                "
    idPath
    unavailableDevices": "
    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
        "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",
    Блок кода{ "devices": [ {
    
                "
    id
    reason": "
    100
    Invalid group type: 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": 
    "cc:9d:a2:70:af:d8", "model
    500,
    	"errors": [
    		{
    			"domain": "
    ESR
    backend-
    200
    ui",
    			"message": 
    "serialNumber": "NP15011091", "firmwareVersion
    "RPC error",
    			"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", "availabilitySnmpStatus": "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
    groupId": "
    106", "deviceIp": "
    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"
    
            
    }
        
    ] }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 события
    Блок кода
    {
        "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Получение списка всех проблем

    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
    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"
    ,
    
            }
        
    "deviceIp
    ]
    }
    Раскрыть
    titleКод ответа 400 - ошибка валидации
    Блок кода
    {
        "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"
            }
        
    "createdAt": "1770190212668"
    ]
    }
    Раскрыть
    titleКод ответа 400 - ошибка валидации
    Блок кода
    {
        "message": "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