Вы можете взаимодействовать с системой ECCM посредством открытого API. Методы API позволяют получать статистику по группам и устройствам, журналы событий, проблем и задач.
Авторизация
Все запросы требуют аутентификации с помощью JWT Bearer-токена. Токен должен передаваться в заголовке Authorization:
{
"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"
}
]
}
{
"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 группы
200 - успешная операция
Group
400 - ошибка валидации
AnswerContract
500 - ошибка сервера
AnswerContract
curl -X GET -H "Authorization: Bearer ${TOKEN}" http://localhost/api/v1/groups/1
{
"message": "Entity not found",
"code": 400,
"errors": [
{
"domain": "data-presenter",
"message": "Entity not found",
"reason": "Failed to find GroupInfo with id 44 in the database",
"extendedHelp": "Please enter only id of the existing entity"
}
]
}
{
"message": "RPC error",
"code": 500,
"errors": [
{
"domain": "backend-ui",
"message": "RPC error",
"reason": "RPC timeout",
"extendedHelp": "Please try again later or contact support"
}
]
}
GET /api/v1/groups/statistics
Получение расширенной информации по всем группам
Query - параметры:
id (uint64): Уникальный ID группы
name (string): Имя группы
type (enum): Тип группы
path (string): Полный путь до группы по имени
parentGroupId (uint64): ID родительской группы
idPath (string): Полный путь до группы по ID
offset (uint64): Начальный элемент пагинации
size (uint64): Ограничение максимального количества элементов в ответе
total (boolean): Общее количество найденных объектов без учёта лимита пагинации
{
"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"
}
]
}
{
"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 группы
200 - успешная операция
GroupStatistic
400 - ошибка валидации
AnswerContract
500 - ошибка сервера
AnswerContract
curl -X GET -H "Authorization: Bearer ${TOKEN}" http://localhost/api/v1/groups/1/statistics
{
"message": "Entity not found",
"code": 400,
"errors": [
{
"domain": "data-presenter",
"message": "Entity not found",
"reason": "Failed to find GroupInfo with id 44 in the database",
"extendedHelp": "Please enter only id of the existing entity"
}
]
}
{
"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): Общее количество найденных объектов без учёта лимита пагинации
200 - успешная операция
{
"devices": [Device],
"total": "uint64"
}
400 - ошибка валидации
AnswerContract
500 - ошибка сервера
AnswerContract
curl -X GET -H "Authorization: Bearer ${TOKEN}" http://localhost/api/v1/devices
{
"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"
}
]
}
{
"message": "RPC error",
"code": 500,
"errors": [
{
"domain": "backend-ui",
"message": "RPC error",
"reason": "RPC timeout",
"extendedHelp": "Please try again later or contact support"
}
]
}
GET /api/v1/devices/{id}/events
Получение списка событий по конкретному устройству
Path-параметры:
id (uint64): Уникальный ID устройства
Query - параметры:
id (uint64): ID события
severity (Severity): Уровень важности события
description (string): Описание события
timestampCreatedFrom (uint64): Начальное время создания события
timestampCreatedTo (uint64): Конечное время создания события
offset (uint64): Начальный элемент пагинации
size (uint64): Ограничение максимального количества элементов в ответе
total (boolean): Общее количество найденных объектов без учёта лимита пагинации
200 - успешная операция
{
"events": [Event],
"total": "uint64"
}
400 - ошибка валидации
AnswerContract
500 - ошибка сервера
AnswerContract
curl -X GET -H "Authorization: Bearer ${TOKEN}" http://localhost/api/v1/devices/100/events
{
"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"
}
]
}
{
"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): Общее количество найденных объектов без учёта лимита пагинации
200 - успешная операция
{
"problems": [Problem],
"total": "uint64"
}
400 - ошибка валидации
AnswerContract
500 - ошибка сервера
AnswerContract
curl -X GET -H "Authorization: Bearer ${TOKEN}" http://localhost/api/v1/devices/100/problems
{
"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"
}
]
}
{
"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): Общее количество найденных объектов без учёта лимита пагинации
200 - успешная операция
{
"tasks": [Task],
"total": "uint64"
}
400 - ошибка валидации
AnswerContract
500 - ошибка сервера
AnswerContract
curl -X GET -H "Authorization: Bearer ${TOKEN}" http://localhost/api/v1/devices/100/tasks
{
"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"
}
]
}
{
"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): Общее количество найденных объектов без учёта лимита пагинации
200 - успешная операция
{
"events": [Event],
"total": "uint64"
}
400 - ошибка валидации
AnswerContract
500 - ошибка сервера
AnswerContract
curl -X GET -H "Authorization: Bearer ${TOKEN}" http://localhost/api/v1/events