egsv2-api

2.85.3

README

История изменений

https://api-docs.egsv2.kz/CHANGELOG.txt

Для клиентов API

Начните с разделов HTTP, SocketIO, и метода account.login

Крайне рекомендуется изучить примеры по ссылке https://documenter.getpostman.com/view/1091318/RzfZQt2z

По этой же ссылке можно импортировать примеры в приложение Postman, в котором намного удобнее можно протестировать все методы.

В документации поля описаны в dot-notation. Это означает, что если поле описано как camera.id, то необходимо послать JSON:

{
  "camera": {
    "id": "id камеры"
  }
}

Многие запросы к апи поддерживают пагинацию с помощью параметров limit (число записей в ответе) и offset (число записей, которые надо пропустить).

Многие запросы к апи поддерживают фильтрацию по любым полям в БД. Запрос при этом формируется в формате MongoDB.

Если в описании какого-либо метода перечислены поля фильтра, это не значит что это единственные допустимые поля для фильтрации - можно добавить что-то своё.

Лишь некоторые методы поддерживают оператор $like для поиска по частичному совпадению. В остальных случаях следует использовать $regex.

При использовании оператора $like необходимо использовать спецсимвол "%" - например, {"name": {"$like": "%слово%"}}. $regex доступен только там, где недоступен $like. Для $regex не нужно использовать %, но нужно экранировать спецсимволы регулярных выражений.

Ознакомиться с форматом запросов можно в примерах из Postman и по ссылкам:

Для персонала

  1. Использовать deb-пакеты egsv2-api / bodycam-api / strazh-api
  2. http://wiki.megacam.kz/

HTTP

Подключение через HTTP API

Используется только метод POST. URL запроса имеет вид /v2/{method}.

Необходимо передавать заголовок

Content-Type: application/json

Данные должны быть отправлены в теле запроса, в формате JSON. Ответ предоставляется тоже в формате JSON.

Практически все запросы должны содержать токен, полученный с помощью метода account.login (POST /v2/account.login). Полученный токен необходимо передавать в заголовке Authorization, с суффиксом "Bearer " (пробел важен).

Полученный токен соответствует стандарту JSON Web Token (RFC 7519)

Токен необходимо хранить до его истечения (поскольку это JWT, дату истечения можно прочитать из самого токена, из поля exp), и переиспользовать в последующих запросах. Не стоит каждый раз запрашивать новый токен - вы можете превысить лимиты и аккаунт будет временно заблокирован.

Начиная с версии 2.37.0 можно передавать запросы с Content-Type: application/x-www-form-urlencoded Тело запроса при этом размещается в поле json, а токен либо в заголовке Authorization, либо в поле token

Начиная с версии 2.57.0 можно передавать search-параметр language, либо заголовок X-Language. Например /v2/account.login?language=kz

В случае ошибки, ответ будет содержать JSON с текстовым полем error - в нём будет указано описание ошибки. Дополнительно, HTTP статус ответа будет равен 400.

Примеры
// Запрос

 POST /v2/account.login HTTP/1.1
 Host: localhost
 Content-Type: application/json; charset=utf-8

 {
   "auth": {
     "username": "test",
     "password": "test"
   }
 }

 // Ответ

 HTTP/1.1 200 OK
 Access-Control-Allow-Origin: *
 Content-Type: application/json; charset=utf-8

 {
   "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE1NDIzOTA0NzUsImV4cCI6MTU0NDk4MjQ3NSwiaXNzIjoiZWdzdjIifQ.sIWSj-eInyrEVYau-zM_f-hYKG4Ho8HU78x_v7E-74E",
   "account": {
     "id": "5bf1b6baea47842084b4a72a",
     "created": "2018-11-18T18:49:18.715Z",
     "username": "test",
     "mail": "test@test.com",
   }
 }
// Запрос

 POST /v2/global.echo HTTP/1.1
 Host: localhost
 Content-Type: application/json; charset=utf-8
 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE1NDIzOTA0NzUsImV4cCI6MTU0NDk4MjQ3NSwiaXNzIjoiZWdzdjIifQ.sIWSj-eInyrEVYau-zM_f-hYKG4Ho8HU78x_v7E-74E

 {
   "a": "b",
   "test": true,
   "list": [1, 2, 3]
 }

 // Ответ

 HTTP/1.1 200 OK
 Access-Control-Allow-Origin: *
 Content-Type: application/json; charset=utf-8

 {
   "a": "b",
   "test": true,
   "list": [
       1,
       2,
       3
   ]
   "echo": true
 }
// Получение токена с помощью jQuery — особое внимание на JSON.stringify

 jQuery.ajax({
   "crossDomain": true,
   "url": "http://localhost:4080/v2/account.login",
   "method": "POST",
   "contentType": "application/json; charset=utf-8",
   "data": JSON.stringify({
     "auth": {
       "username": "test",
       "password": "test"
     }
   })
 }).done(function (response) {
   console.log(response);
 });
// Запросы к API с токеном — особое внимание на Authorization: Bearer [...]

 jQuery.ajax({
   "crossDomain": true,
   "url": "http://localhost:4080/v2/global.echo",
   "method": "POST",
   "contentType": "application/json; charset=utf-8",
   "headers": {
     "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE1NDIzOTA0NzUsImV4cCI6MTU0NDk4MjQ3NSwiaXNzIjoiZWdzdjIifQ.sIWSj-eInyrEVYau-zM_f-hYKG4Ho8HU78x_v7E-74E",
   },
   "data": JSON.stringify({
     "a": "b",
     "test": true,
     "list": [1, 2, 3]
   })
 }).done(function (response) {
   console.log(response);
 });

SocketIO

Подключение через Socket.IO.

Внимание! Socket.IO v3 не совместим с v2. Необходимо использовать socket.io-client версии 2.

Внимание! В случае переподключения необходимо повторно авторизоваться с помощью токена или логина и пароля.

Примеры
var socket = io.connect('http://localhost:4080', {transports: ['websocket']});
socket.on('connect', function () {
  socket.emit('account.login', {auth: {username: "test", password: "test"}}, function (err, data) {
    if (err) {
      console.error(err);
      // err может быть как строкой, так и объектом {name: '', message: ''}
    }
    else {
      // Посылаем запросы

      console.log('Успешная авторизация', data);

      socket.emit('global.echo', {test: true}, function (err, data) {
        if (err) {
          console.error(err);
        }
        else {
          console.log(data);
        }
      });

    }
  });
});
// После успешной авторизации можно вызывать любые методы - формат вызова всегда одинаков.
// params - входные поля запроса, это простой JavaScript объект, конвертировать в JSON с помощью JSON.stringify его не нужно.

socket.emit('название метода', params, function (err, data) {
  if (err) {
    console.error(err);
  }
  else {
    console.log(data);
  }
});
// Socket.IO позволяет получать различные события от API
// payload.event - имя события, совпадает с именем метода, например `taxonomy.update`
// payload.object - объект события

socket.on('api-event', function (payload) {
  console.log(payload);
});

Модели

Account

Модель пользователя.

Действия ACL: 'admin', 'create', 'view', 'update', 'delete', 'list'

Тип или модель: Object

Поля
id (String) : ID
username (String) : Логин
password (String) : Пароль
mail (String?) : E-mail
phone (String?) : Телефон
name (String?) : Имя пользователя
groups (Array<String>?) : Массив из ID групп, в которых состоит пользователь
created_at (Date?) : Дата регистрации
updated_at (Date?) : Дата последнего редактирования
password_updated_at (Date?) : Дата последнего изменения пароля
data (Object?) : Объект с данными - можно использовать для записи собственных полей
Acl

Модель правила доступа.

Права доступа описывают все возможные операции, которые допустимы при работе с API.

Внедрена поддержка древовидности. Таким образом, если в поле what указан ID элемента таксономии, правило будет применено для всех вложенных таксономий, и всех камер, которые принадлежат вложенным таксономиям.

Таким же образом работает поле for — все группы, подгруппы и принадлежащие им аккаунты получат (либо лишатся) доступа к объектам, описанным в правиле.

Пользователи и группы, которым назначено правило {"action": "admin", "model_name": "Acl"} получают права на любые действия.

Особое внимание стоит обратить на то, что поле what хранит ID камер либо таксономий, но не хранит непоследственно информацию, к какому типу модели относится указанный ID. То же самое с полем for - хранится только ID, но не информация, группа это или аккаунт. Избежать коллизий помогает факт, что ObjectID является уникальным для всей БД. Тем не менее, информация о принадлежности к модели порой бывает необходима. Предполагается, что эти данные могут быть записаны клиентом API самостоятельно в поле data. Также, в качестве решения можно использовать атрибут include для запроса правила ACL в запросах acl.list.

Правила cannot стоит применять только в крайнем случае, к примеру, если надо исключить доступ к объекту, права на который получены из-за наследования таксономии или группы. Использовать cannot чтобы забрать ранее выданные права не стоит.

Действия ACL: 'admin', 'create', 'view', 'update', 'delete'

Тип или модель: Object

Поля
id (String) : ID
verb (String?) : Тип правила - can или cannot
actions (Array<String>) : Массив действий (например, view , create , update , delete , admin )
model_name (String) : Имя модели (например, Account , Acl , Cam и т.д.)
what (Array<String>?) : Массив с ID моделей, к которым применяется правило (например, ID камеры или таксономии)
for (Array<String>) : Массив с ID моделей, которым выдается, либо отнимается право (например, ID аккаунта или группы)
created_at (Date?) : Дата создания
updated_at (Date?) : Дата последнего редактирования
comment (String?) : Комментарий
data (Object?) : Объект с данными - можно использовать для записи собственных полей
Action

Модель действий. Действия перекликаются с реакциями и триггерами - действия, как и триггеры, выполняют реакции, но действия доступны для выполнения пользователям напрямую. Действия отображаются в интерфейсе egsv2-ui в

Действия ACL: 'admin', 'create', 'view', 'update', 'delete', 'list', 'run'

Тип или модель: Object

Поля
id (String) : ID
name (String) : Имя действия
reaction (Object) : Реакция, которую запускает действие.
  • reaction.type (String) : Тип реакции
slots (Array<String>) : Массив слотов, в которых будет показана кнопка запуска действия
entity (Object?) : Описание сущности, к которой будет присоеденено действие.
  • entity.model_name (String?) : Имя модели (например, Account , Acl , Cam и т.д.) - учтите, что некоторые реакции уже требуют для себя поле с ID сущности
  • entity.id (String?) : ID сущности, к которой присоеденено действие. Может быть использовано UI, чтобы ограничить показ виджета (например, показать кнопку только для определенной камеры)
  • entity.once (Boolean?) : Разрешить запустить действие над сущностью только один раз. Работает только если указан entity.model_name - при выполнении действия в сущность будет вписан ID действия в поле data.committed_actions
taxonomies (Array<String>?) : ID терминов таксономии
created_at (Date?) : Дата создания
updated_at (Date?) : Дата последнего редактирования
data (Object?) : Объект с данными - можно использовать для записи собственных полей
Смотри также:
Alarm

Модель тревоги

Действия ACL: 'admin', 'create', 'view', 'accept', 'assign', 'deblock', 'list'

Тип или модель: Object

Поля
id (String) : ID
source (String) : Источник тревоги. Допустимые значения: button , sensor , detector , rtms , lvs2 , manual
camera (String?) : ID камеры
screen (String?) : ID экрана
assignee (String?) : ID аккаунта ответственного
accepted_by (String?) : ID аккаунта принявшего тревогу
deblocked_by (String?) : ID аккаунта деблокировавшего
description (String?) : Описание
origin_id (String?) : Идентификатор источника
origin_name (String?) : Имя источника
origin_serial_number (String?) : Серийный номер источника
origin_address (String?) : Адрес источника
origin_event_id (String?) : Идентификатор события на источнике
origin_event_uuid (String?) : Уникальный идентификатор события
taxonomies (Array<String>?) : ID терминов таксономии
latlng (Array<Number>?) : Массив координат тревоги
created_at (Date?) : Дата создания
updated_at (Date?) : Дата последнего редактирования
accepted_at (Date?) : Дата принятия тревоги
assigned_at (Date?) : Дата назначения ответственного
deblocked_at (Date?) : Дата деблокировки
real ((Boolean | Null)?) : Является ли тревога истинной. Может принимать значения true, false и null. null означает, что истонность не определена - например, оператор не подтвердил статус
data (Object?) : Объект с данными - можно использовать для записи собственных полей
metadata (Object<{type: String, object: (Lvs2Record | RtmsNumber | Object)}>?) : Объект с данными исходного события, на основе которого сгенерирована тревога
comments (Array<{comment: String, created_at: Date, account: String}>?) : Комментарии
Camera

Модель камеры.

Действия ACL: 'admin', 'create', 'view', 'update', 'delete', 'archive', 'download', 'ptz', 'rtms', 'intercept', 'alarm', 'list'

Тип или модель: Object

Поля
id (String) : ID
name (String) : Имя камеры
url (String) : URL видеопотока
secondary (Object?)
  • secondary.url (String?) : URL вторичного видеопотока
archive (Object) : Архив
  • archive.enable (Boolean?) : Архив включён
  • archive.days (Number?) : Число дней хранения архива
ptz (Object) : PTZ включён
  • ptz.enable (Boolean?) : PTZ включён
  • ptz.zoom_only (Boolean?) : На камере возможен только зум
  • ptz.username (String?) : Пользователь PTZ
  • ptz.password (String?) : Пароль PTZ
server (String) : ID сервера
account (String?) : ID владельца
taxonomies (Array<String>?) : ID терминов таксономии
latlng (Array<Number>?) : Массив координат камеры
api_connection (Object?) : Настройки для внутреннего соединения API с сервером. Поле будет скрыто при запросе от пользователя, не имеющего права редактирования камеры
services (Object?) : Настройки для подключенных сервисов
  • services.faceapi (Boolean?) : Включить Face API для камеры
  • services.guard (Boolean?) : Включить охрану для камеры (камера будет ставиться на охрану только при включении режима охраны)
created_at (Date?) : Дата создания
updated_at (Date?) : Дата последнего редактирования
data (Object?) : Объект с данными - можно использовать для записи собственных полей
FaceApi

Модель Face API

Действия ACL: 'admin', 'subscribe'

Тип или модель: Object

Поля
modelName (String)
Facility

Модель Объекта

Тип или модель: Object

Поля
id (String) : Идентификатор объекта
name (String) : Имя объекта
account (String?) : ID владельца
taxonomies (Array<String>?) : ID терминов таксономии
latlng (Array<Number>?) : Массив координат объекта
accounts (Array<String>?) : Массив аккаунтов объекта
cameras (Array<String>?) : Массив камер объекта
gates (Array<String>?) : Массив барьеров объекта
list_numbers (Array<String>?) : Массив списков номеров объекта
plans (Array<String>?) : Массив планов объекта
screens (Array<String>?) : Массив экранов объекта
servers (Array<String>?) : Массив серверов объекта
data (Object?) : Объект с данными - можно использовать для записи собственных полей
Gate

Модель Барьеров

Тип или модель: Object

Поля
id (String) : Идентификатор барьера
name (String) : Имя барьера
server (String) : ID сервера
account (String?) : ID владельца
cameras (Array<String>?) : Массив камер барьера
taxonomies (Array<String>?) : ID терминов таксономии
latlng (Array<Number>?) : Массив координат барьера
api_connection (Object?) : Настройки для внутреннего соединения API с сервером. Поле будет скрыто при запросе от пользователя, не имеющего права редактирования
cameras (Array<String>?) : ID камер, связанных с барьером
created_at (Date?) : Дата создания
updated_at (Date?) : Дата последнего редактирования
data (Object?) : Объект с данными - можно использовать для записи собственных полей
Group

Модель группы.

Действия ACL: 'admin', 'create', 'view', 'update', 'delete', 'list'

Тип или модель: Object

Поля
id (String) : ID
name (String) : Имя группы
parent ((String | null)?) : ID родительской группы. Если группа находится на верхнем уровне, необходимо либо передать null , либо не передавать поле. Пустая строка выдаст ошибку
path (String?) : Путь из ID родительских групп, разделенный " > " (только для чтения)
created_at (Date?) : Дата создания
updated_at (Date?) : Дата последнего редактирования
data (Object?) : Объект с данными - можно использовать для записи собственных полей
Guard

Модель постановки на охрану

Действия ACL: 'admin', 'subscribe'

Тип или модель: Object

Поля
modelName (String)
InterceptorEvent

Модель события перехвата

Тип или модель: Object

Поля
id (String) : Идентификатор события
datetime (Date) : Дата и время события
plate_number (String) : ГРНЗ
server (String) : ID сервера
camera (String) : ID камеры
reason (String) : Классификатор контроля
description (String) : Описание
comment (String) : Комментарий
origin_id (String) : Идентификатор источника (задаётся на источнике)
origin_name (String) : Имя источника (задаётся на источнике)
origin_event_id (String) : Идентификатор события на источнике (задаётся на источнике)
origin_event_uuid (String) : Уникальный идентификатор события (используется для слияния)
latlng (Array<Number>) : Массив координат источника (задаётся на источнике)
inserted_at (Date) : Дата и время добавления в БД
metadata (Object) : Метаданные
InterceptorWanted

Модель ориентировки.

Действия ACL: 'admin', 'create', 'view', 'update', 'delete', 'list'

Тип или модель: Object

Поля
id (String) : ID
enable (Boolean) : Включено
plate_number (String) : ГРНЗ
reason (String) : Классификатор контроля
vehicle_class (String?) : Класс ТС
vehicle_mark (String?) : Марка ТС
vehicle_model (String?) : Модель ТС
vehicle_year (String?) : Год ТС
vehicle_color (String?) : Цвет ТС
name (String?) : Имя персоны
comment (String?) : Комментарий
tags (Array<String>?) : Теги
account (String?) : ID владельца
created_at (Date?) : Дата создания
updated_at (Date?) : Дата последнего редактирования
data (Object?) : Объект с данными - можно использовать для записи собственных полей
ListNumber

Модель списка номеров

Тип или модель: Object

Поля
id (String) : Идентификатор списка
account (String?) : ID владельца
type (String?) : Тип списка - whitelist или blacklist
comment (String?) : Комментарий
data (Object?) : Объект с данными - можно использовать для записи собственных полей
Logger

Модель логов.

Действия ACL: 'admin', 'create', 'view', 'list'

Тип или модель: Object

Поля
id (String) : ID
level (String) : Уровень лога (может быть только info, warning или error)
type (String) : Тип лога, может принимать любое строковое значение. ('Разное', 'Авторизация', 'Выход', 'Аккаунт', 'Камера', 'Сервер', 'Таксономия', 'Группа', 'E-mail', 'Права доступа')
event (Object) : Объект события
  • event.name (String) : Название события
  • event.payload (String) : Дополнительные данные события
account (String?) : ID аккаунта
components (Array<String>?) : Компоненты имени события
ip (String?) : IP адрес
forwarded_for (String?) : IP адрес, который был проксирован
useragent (String?) : User-Agent
api_version (String?) : Версия API
created_at (Date?) : Дата создания
updated_at (Date?) : Дата последнего редактирования
data (Object?) : Объект с данными - можно использовать для записи собственных полей
Lvs2Record

Модель записи из LVS2

Тип или модель: Object

Поля
id (String) : Идентификатор события
datetime (Date) : Дата и время события
finished_at (Date) : Дата и время завершения события
server (String) : ID сервера
camera (String) : ID камеры
screen (String) : ID экрана
type (String) : Тип события
description (String) : Описание события
comment (String) : Комментарий
level (String) : Уровень (unknown - неизвестен; default - по умолчанию; violation - нарушение; alert - тревога; emergency - экстренное)
origin_id (String) : Идентификатор источника (задаётся на источнике)
origin_name (String) : Имя источника (задаётся на источнике)
origin_serial_number (String) : Серийный номер источника (задаётся на источнике)
origin_address (String) : Адрес источника (задаётся на источнике)
origin_event_id (String) : Идентификатор события на источнике (задаётся на источнике)
origin_event_uuid (String) : Уникальный идентификатор события (используется для слияния)
origin_event_version (String) : Версия события с уникальным идентификатором (используется для слияния)
latlng (Array<Number>) : Массив координат источника (задаётся на источнике)
inserted_at (Date) : Дата и время добавления в БД
metadata (Object) : Метаданные
input (Object?) : Оригинальный объект с источника (поле может отсутствовать)
files (Array<{type: String, url: String}>?) : Файлы, связанные с записью (поле может отсутствовать)
Смотри также:
Person

Модель персон.

Действия ACL: 'admin', 'create', 'view', 'update', 'delete', 'list'

Тип или модель: Object

Поля
id (String) : ID
enable (Boolean) : Включено
reason (String) : Классификатор контроля
name (String) : Имя персоны
gender (String?) : Пол
comment (String?) : Комментарий
account (String?) : ID владельца
tags (Array<String>?) : Теги
taxonomies (Array<String>?) : ID терминов таксономии
created_at (Date?) : Дата создания
updated_at (Date?) : Дата последнего редактирования
data (Object?) : Объект с данными - можно использовать для записи собственных полей
  • data.initiator (String?) : Инициатор розыска
  • data.article (String?) : Статья кодекса
  • data.recorded_at (String?) : Дата постановки на учёт / объявления в розыск (допустим любой формат, рекомендуется YYYY-MM-DD)
  • data.case_number (String?) : Номер дела
  • data.wanted_type (String?) : Тип розыска
  • data.wanted_kind (String?) : Вид розыска
  • data.wanted_category (String?) : Категория разыскиваемого
  • data.violation_class (String?) : Квалификация правонарушения по УД
  • data.precautionary (String?) : Мера пресечения
  • data.prosecutor_supervisor (String?) : Орган прокуратуры, надзирающей за розыском
  • data.prosecutor_executive (String?) : Текущий ответственный исполнитель прокуратуры
  • data.executive_name (String?) : Имя сотрудника, ответственного за розыск
  • data.tracing_agent (String?) : Орган, ведущий розыск
  • data.phone_station (String?) : Телефон дежурной части
PersonSearchItem

Модель записи из результата поиска персон.

Тип или модель: Object

Поля
id (String) : ID
search_id (String) : ID поисковой задачи
datetime (String) : Дата и время
camera (String?) : ID камеры
reason (String) : Классификатор контроля
name (String) : Имя персоны
gender (String?) : Пол
comment (String?) : Комментарий
account (String) : ID аккаунта, по чьему запросу произведён поиск
faces (Array<{note: String, image: {width: Number, height: Number, filedata: String}}>) : Массив объектов с данными лица
score (Number) : Процент схожести
expired_at (Date) : Дата истечения срока действия
created_at (Date?) : Дата создания
data (Object?) : Объект с дополнительными данными
Plan

Модель планов.

Действия ACL: 'admin', 'create', 'view', 'update', 'delete', 'list'

Тип или модель: Object

Поля
id (String) : ID
name (String) : Имя плана
account (String?) : ID владельца
taxonomies (Array<String>?) : ID терминов таксономии
latlng (Array<Number>?) : Массив координат плана
created_at (Date?) : Дата создания
updated_at (Date?) : Дата последнего редактирования
data (Object?) : Объект с данными - можно использовать для записи собственных полей
RtmsNumber

Модель события проезда авто из RTMS

Тип или модель: Object

Поля
id (String) : Идентификатор события
datetime (Date) : Дата и время события
plate_number (String) : ГРНЗ
plate_country (String) : Двухбуквенный код страны
violation (String) : Нарушение
speed (Number) : Скорость ТС
speed_limit (Number) : Лимит скорости
speed_imprecision (Number) : Погрешность измерения скорости
standing_duration (Number) : Срок стоянки/остановки в секундах
lane_number (Number) : Номер полосы
lane_name (String) : Название полосы
direction (String) : approaching (приближающееся ТС) либо receding (удаляющееся ТС)
direction_name (String) : Название направления
vehicle_class (String) : Класс ТС
vehicle_mark (String) : Марка ТС
vehicle_model (String) : Модель ТС
vehicle_color (String) : Цвет ТС
origin_id (String) : Идентификатор источника (задаётся на источнике)
origin_name (String) : Имя источника (задаётся на источнике)
origin_serial_number (String) : Серийный номер источника (задаётся на источнике)
origin_address (String) : Адрес источника (задаётся на источнике)
origin_event_id (String) : Идентификатор события на источнике (задаётся на источнике)
origin_event_uuid (String) : Уникальный идентификатор события (используется для слияния)
origin_event_version (String) : Версия события с уникальным идентификатором (используется для слияния)
latlng (Array<Number>) : Массив координат источника (задаётся на источнике)
certificate_number (String) : Номер сертификата поверки (задаётся на источнике)
certificate_issue_date (String) : Дата выдачи сертификата поверки (задаётся на источнике)
certificate_expire_date (String) : Дата окончания сертификата поверки (задаётся на источнике)
certificate_issuer (String) : Орган, выдавший сертификат поверки (задаётся на источнике)
inserted_at (Date) : Дата и время добавления в БД
metadata (Object) : Метаданные
input (Object?) : Оригинальный объект с источника (поле может отсутствовать)
files (Array<{type: String, url: String}>?) : Файлы, связанные с записью (поле может отсутствовать)
Смотри также:
Screen

Модель экранов.

Действия ACL: 'admin', 'create', 'view', 'update', 'delete', 'list', 'alarm'

Тип или модель: Object

Поля
id (String) : ID
name (String) : Имя экрана
account (String?) : ID владельца
taxonomies (Array<String>?) : ID терминов таксономии
latlng (Array<Number>?) : Массив координат экрана
displays (Array<{template: String, cameras: Array<{camera: String, slot: Number}>}>) : Массив дисплеев. Каждый экран содержит минимум один дисплей. Формат поля template: 9+9x9 или 9x9
created_at (Date?) : Дата создания
updated_at (Date?) : Дата последнего редактирования
data (Object?) : Объект с данными - можно использовать для записи собственных полей
Server

Модель сервера.

Действия ACL: 'admin', 'create', 'view', 'update', 'delete', 'list'

Тип или модель: Object

Поля
id (String) : ID
name (String) : Имя сервера
host (String) : Публичный hostname сервера
port (Number) : Публичный порт сервера
protocol (String?) : Публичный протокол сервера - http или https
api_connection (Object) : Настройки для внутреннего соединения API с сервером. Поле будет скрыто при запросе от пользователя, не имеющего права редактирования сервера
  • api_connection.host (String?) : Приватный hostname сервера для соединения API с сервером. Ели не указан, используется публичный
  • api_connection.port (Number?) : Приватный порт сервера для соединения API с сервером. Ели не указан, используется публичный
  • api_connection.protocol (String?) : Приватный протокол сервера для соединения API с сервером. Ели не указан, используется публичный
  • api_connection.proxy (Object?) : Настройки прокси для внутреннего соединения API с сервером. Пример: socks5://user:pass@127.0.0.1:1080 . Поле будет скрыто при запросе от пользователя, не имеющего права редактирования сервера
  • api_connection.driver (String) : Драйвер для сервера.
  • api_connection.brc (Object?) : Настройки для соединения с BRC

    • api_connection.brc.group_key (String) : BRC Group Key
    • api_connection.brc.api_key (String) : BRC API Key
    • api_connection.brc.api_key_public (String) : BRC API Key для просмотра
taxonomies (Array<String>?) : ID терминов таксономии
created_at (Date?) : Дата создания
updated_at (Date?) : Дата последнего редактирования
data (Object?) : Объект с данными - можно использовать для записи собственных полей
Storage

Модель файла в хранилище

Действия ACL: 'admin', 'view', 'upload', 'delete', 'list'

Тип или модель: Object

Поля
id (String) : ID
filename (String) : Имя
filepath (String) : Путь
url (String) : URL
created_at (Date?) : Дата создания
updated_at (Date?) : Дата последнего редактирования
System

Модель системных настроек

Действия ACL: 'admin'

Тип или модель: Object

Поля
modelName (String)
Taxonomy

Модель таксономии.

Действия ACL: 'admin', 'create', 'view', 'update', 'delete', 'list'

Тип или модель: Object

Поля
id (String) : ID
name (String) : Имя элемента таксономии
parent (String?) : ID родительского элемента
path (String?) : Путь из ID родительских элементов, разделенный " > " (только для чтения)
created_at (Date?) : Дата создания
updated_at (Date?) : Дата последнего редактирования
is_facility (Boolean?) : Является ли термин таксономии объектом (поле есть только если включен модуль megacam)
latlng (Array<Number>?) : Массив координат объекта (поле есть только если включен модуль megacam)
data (Object?) : Объект с данными - можно использовать для записи собственных полей
Trigger

Модель триггера.

Триггер срабатывает при возникновении какого-либо события и выполняет заданные действия.

Действия ACL: 'admin', 'create', 'view', 'update', 'delete'

Тип или модель: Object

Поля
id (String) : ID
name (String) : Имя триггера
events (Array<String>) : Массив событий модели (например, camera.create , server.update , taxonomy.* ) или псевдомодели (например cron.minutely ).
filter (Object?) : Mongo-подобный объект для фильтрации данных события. @see https://www.npmjs.com/package/sift
reactions (Array<Object>) : Массив с реакциями, которые будут выполнены при срабатывании триггера.
taxonomies (Array<String>?) : ID терминов таксономии
created_at (Date?) : Дата создания
updated_at (Date?) : Дата последнего редактирования
data (Object?) : Объект с данными - можно использовать для записи собственных полей
Variable

Модель переменной.

Тип или модель: Object

Поля
id (String) : ID
name (String) : Имя переменной
value (Mixed) : Значене переменной
created_at (Date?) : Дата создания
updated_at (Date?) : Дата последнего редактирования
data (Object?) : Объект с данными - можно использовать для записи собственных полей

HOWTO

Работа внешних автоматизированных систем в режиме включённой двухфакторной авторизации

Шаги администратора egsv2:

  1. Создать новый аккаунт для внешней системы
  2. Задать максимально ограниченные права для этого сервисного аккаунта, разрешив только необходимый минимум
  3. Залогиниться через egsv2-ui с логином-паролем сервисного аккаунта
  4. В появившемся диалоговом окне настройки двухфакторной авторизации скопировать секретный ключ
  5. Просканировать QR-код мобильным приложением-аутентификатором, получить код и ввести в модальном окне
  6. После авторизации удостовериться, что сервисный аккаунт получил доступ только к необходимым ресурсам
  7. Передать IP адрес, порт, логин, пароль и секрет разработчику внешней системы

Шаги разработчика внешней системы:

  1. Подобрать библиотеку для TOTP и использовать секретный ключ для генерации кода
  2. Использовать метод account.login для получения токена, передавая логин, пароль и сгенерированный код
  3. Использовать токен в остальных запросах к egsv2-api

Получение live-видеопотока в реальном времени

  1. Уточнить, включена ли двухфакторная аутентификация на api. Если включена, см. раздел "Работа внешних автоматизированных систем в режиме включённой двухфакторной авторизации"
  2. Использовать метод account.login для получения токена
  3. Использовать метод camera.list для получения списка доступных камер
  4. Для каждого нового посетителя, желающего просмотреть видео в реальном времени, перед каждой новой попыткой начать просмотр, использовать метод camera.get, с включением "include": ["player"] в запросе. Обратите внимание, что нельзя получить URL потока один раз и потом использовать его в просмотре - URL может быть "протухающим" со временем
  5. Если ответ содержит ключ "mse" либо это значение в поле "format", следует предпочесть именно этот формат и воспроизводить видео через websocket-подключение и Media Source Extension в браузере

Сбор тревог старше определенной даты

  1. Уточнить, включена ли двухфакторная аутентификация на api. Если включена, см. раздел "Работа внешних автоматизированных систем в режиме включённой двухфакторной авторизации"
  2. Использовать метод account.login для получения токена
  3. Для получения данных в режиме реального времени - использовать socket.io и метод alarm.subscribe
  4. Либо, для периодического получения свежеотправленных тревог использовать метод alarm.list с фильтром и датой (каждый раз устанавливая дату на последнюю полученную):
{
  "filter": {
    "created_at": {
      "$gt": "2024-04-01T15:00:00+0500"
    }
  }
}

Сбор тревог, отправленных во внешнюю систему (например АзияСофт/ЦОУ2.0)

Этот пример используется только для получения тревог, которые были проверены оператором системы и отправлены во внешнюю систему.

  1. Уточнить, используется ли версия 2.78.3 или выше.
  2. Уточнить, включена ли двухфакторная аутентификация на api. Если включена, см. раздел "Работа внешних автоматизированных систем в режиме включённой двухфакторной авторизации"
  3. Использовать метод account.login для получения токена
  4. Для получения данных в режиме реального времени - использовать socket.io и метод alarm.subscribe
  5. Либо, для периодического получения свежеотправленных тревог использовать метод alarm.list с фильтром и датой (каждый раз устанавливая дату на последнюю полученную):
{
  "filter": {
    "data.incident.sent_at": {
      "$gt": "2024-04-01T15:00:00+0500"
    },
    "real": true
  }
}

Сбор ГРНЗ из RTMS

Шаги разработчика внешней системы:

  1. Изучить, как отправлять запросы в API и получить данные для входа
  2. Уточнить, включена ли двухфакторная аутентификация на api. Если включена, см. раздел "Работа внешних автоматизированных систем в режиме включённой двухфакторной авторизации"
  3. Использовать метод account.login для получения токена
  4. Для получения данных в режиме реал-тайм использовать socket.io (см. раздел SocketIO в документации)
  5. Подписаться на события: socket.emit('rtms.number.subscribe', {});
  6. Получение событий: socket.on('api-event', payload => console.log(payload));
  7. Нет необходимости использовать реал-тайм, можно скачивать свежие события через метод rtms.number.list или rtms.number.csv. Вариант с csv не будет содержать ссылки на файлы, но более предпочтителен для выгрузки больших объемов данных.

Получение событий требует указания диапазона дат, когда событие произошло. Тем не менее, события могут приходить не в хронологическом порядке, поэтому для последовательных выгрузок в цикле рекомендуется использовать фильтр по двум полям: datetime и inserted_at.

datetime - время регистрации проезда, т.е. время, когда автомобиль проехал

inserted_at - время, когда событие было получено и записано в БД RTMS

Пример тела запроса rtms.number.list:

{
  "filter": {
    "datetime": {
      "$gte": "2024-09-17T00:00:00+0500",
      "$lte": "2024-09-20T00:00:00+0500"
    },
    "inserted_at": {
      "$gte": "2024-09-19T23:00:00+0500",
      "$lte": "2024-09-20T00:00:00+0500"
    }
  },
  "limit": 100000,
  "sort": {
    "inserted_at": "asc"
  },
  "include": ["files", "certificate"],
  "performance": true,
}

Пояснения:

  1. filter.datetime.$gte вставлен в три дня назад от интересующей даты - поскольку фильтр по дате обязателен в запросе, и события проезда могут приходить с ощутимой задержкой, мы выбираем проезды вплоть до 3 дней назад.
  2. filter.datetime.$lte и filter.inserted_at.$lte установлены в одинаковые значения даты "до"
  3. filter.inserted_at.$gte установлен в стартовую дату, начиная от которой мы хотим получить свежие записи. Если делать запросы в цикле, рекомендуется устанавливать максимальную дату-время, полученную в результатах предыдущего запроса
  4. include позволяет получить файлы фото и видео, и данные о сертификатах поверки
  5. performance отключит подсчёт общего числа записей, подходящих под фильтр, позволяя запросу выполниться быстрее

Пример: Массовое удаление ориентировок ГРНЗ по тегу

bulk.queue

{
  "bulk": [
    {
      "method": "interceptor.wanted.list",
      "params": {
        "filter": {
          "tags": "ТУТ ТЕГ"
        }
      },
      "return": false
    },
    {
      "method": "interceptor.wanted.delete",
      "params": {},
      "loop": "0.interceptor_wanted",
      "set": {
        "interceptor_wanted.id": "$.id"
      },
      "return": false
    }
  ]
}

Также можно удалить params.filter из запроса, чтобы удалить все ориентировки.

Пример: Массовое удаление персон по тегу

bulk.queue

{
  "bulk": [
    {
      "method": "person.list",
      "params": {
        "filter": {
          "tags": "ТУТ ТЕГ"
        }
      },
      "return": false
    },
    {
      "method": "person.delete",
      "params": {},
      "loop": "0.persons",
      "set": {
        "person.id": "$.id"
      },
      "return": false
    }
  ]
}

Также можно удалить params.filter из запроса, чтобы удалить все персоны.

RTMS

Для интеграции внешней системы и приёма в RTMS новых записей о детекциях ГРНЗ или правонарушениях, необходимо знать URL для отправки данных. Если вы осуществляете интеграцию, запросите URL у представителя компании.

По договорённости, API может требовать (а может и нет) авторизацию методом HTTP Auth Basic. Запросите имя пользователя и пароль у представителя компании.

Каждая детекция/нарушение отправляется отдельным запросом по HTTP, метод POST. Тело запроса должно соответствовать RFC7578 (multipart/form-data).

multipart/form-data описывает метод, которым браузеры посылают HTML-формы по HTTP методом POST - тот же самый принцип используется для приёма данных. Обратитесь к документации вашей библиотеки, чтобы сформировать правильный запрос.

Для начала, необходимо сформировать JSON с метаданными. Описание полей:

{
    "datetime": "Дата, время и временная зона, обязательное поле",
    "plate_number": "Номерной знак, латиницей, верхний регистр, обязательное поле",
    "plate_country": "Двухбуквенный код страны, необязательное поле",
    "origin_id": "Уникальный идентификатор источника, строка, обязательное поле",
    "origin_name": "Название источника, обязательное поле",
    "origin_serial_number": "Серийный номер источника, строка, обязательное поле",
    "origin_address": "Адрес источника, обязательное поле",
    "origin_event_id": "Уникальный ID события во внешней системе, строка, необязательное поле",
    "origin_event_uuid": "Уникальный UUID измерения во внешней системе, строка, необязательное поле. Если событие проезда и событие нарушения во внешней системе это две разных записи, они должны иметь одинаковый origin_event_uuid. Если одна и та же детекция отправляется повторно, тот же самый origin_event_uuid должен быть передан повторно",
    "latitude": "Широта, число от -90 до 90, необязательное поле",
    "longitude": "Долгота, число от -180 до 180, необязательное поле",
    "certificate_number": "Номер сертификата поверки, необязательное поле",
    "certificate_issue_date": "Дата выдачи сертификата поверки, необязательное поле",
    "certificate_expire_date": "Дата окончания сертификата поверки, необязательное поле",
    "certificate_issuer": "Кем выдан сертификат поверки, необязательное поле",
    "violation": "Код нарушения, необязательное поле, допустимые значения: speed, speed-average, stop-line, stop-forbidden, parking-forbidden, red-light, lane-violation, pedestrian-no-pass",
    "speed": "Скорость ТС в км/ч, число, необязательное поле (если violation не speed)",
    "speed_limit": "Скоростной лимит в км/ч, число, необязательное поле (если violation не speed)",
    "speed_imprecision": "Погрешность измерения скорости в км/ч, число, необязательное поле (если violation не speed)",
    "standing_duration": "Срок стоянки в секундах (для нарушений парковки либо фиксации остановки), число, необязательное поле",
    "lane_number": "Номер полосы, число, необязательное поле",
    "lane_name": "Название полосы (например, автобусная полоса), строка, необязательное поле",
    "direction": "Направление движения транспортного средства, необязательное поле, допустимые значения: unknown, approaching, receding",
    "direction_name": "Название направления движение (например, в сторону вокзала), строка, необязательное поле",
    "vehicle_class": "Класс ТС, необязательное поле, допустимые значения: VAN, MINIVAN, HT, LT, OFFROAD, CROSSOVER, PICKUP, BUS, CAR, MOTO",
    "vehicle_color": "Цвет ТС, необязательное поле, допустимые значения: black, blue, brown, gold, gray, green, orange, purple, red, silver, tan, white, yellow",
    "vehicle_mark": "Марка ТС, необязательное поле",
    "vehicle_model": "Модель ТС, необязательное поле",
    "metadata": {"Объект с дополнительными метаданными, необязательное поле"},
    "flags": ["Массив дополнительных пометок, необязательное поле"]
}

Необязательные поля можно просто не включать в JSON.

Пример JSON:

{
    "datetime": "2000-12-05T14:15:22+06:00",
    "plate_number": "001ABC01",
    "plate_country": "KZ",
    "origin_id": "123abc",
    "origin_name": "Камера на стадионе Шахтёр",
    "origin_serial_number": "001XXX11",
    "origin_address": "Бухар-Жырау",
    "origin_event_id": "2121abcddd",
    "latitude": 73.08197,
    "longitude": 49.79914,
    "certificate_number": "4-сю-424",
    "certificate_issue_date": "2021-01-21",
    "certificate_expire_date": "2023-01-21",
    "certificate_issuer": "НацЭкс",
    "violation": "speed",
    "speed": 78,
    "speed_limit": 60,
    "speed_imprecision": 2,
    "standing_duration": 0,
    "lane_number": 2,
    "lane_name": "полоса для автобусов",
    "direction": "approaching",
    "direction_name": "в сторону ул. Ерубаева",
    "vehicle_class": "CROSSOVER",
    "vehicle_color": "black",
    "vehicle_mark": "BMW",
    "vehicle_model": "X5"
}

Для передачи информации о потенциальном таксисте необходимо добавить в JSON поле flags, массив со значением "maybe-taxi-driver", пример:

{
    // ...остальные поля из примера выше,
    "vehicle_mark": "BMW",
    "vehicle_model": "X5",
    "flags": ["maybe-taxi-driver"]
}

Полученный JSON надо отправить как текстовое поле формы с именем json. Фотографии и видео помещаются в поля формы со следующими именами:

  • image_full для фото полного кадра
  • image_plate для фото ГРНЗ
  • image_vehicle для фото ТС отдельно
  • image_clean для фото без добавления разметки детектора и подписей
  • image_additional для дополнительного фото
  • image_bofore_violation для фото перед нарушением
  • image_traffic_lights для фото светофора
  • video_violation для видео нарушения
  • video_traffic_lights для видео светофора

Если определенного типа фото/видео нет, включать поле в запрос не нужно.

Пример сформированного "голого" HTTP запроса:

POST /webhook/server-id/await HTTP/1.1
Host: ip:post
Content-Length: 1220
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW

----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="json"

{"datetime":"2000-12-05T14:15:22+06:00", "origin_id":"123abc", "plate_number":"001ABC01", "plate_country":"KZ", "origin_name":"Камера на стадионе Шахтёр", "origin_serial_number":"001XXX11", "origin_address":"Бухар-Жырау", "origin_event_id":"2121abcddd", "latitude":73.08197,"longitude":49.79914,"certificate_number":"4-сю-424", "certificate_issue_date":"2021-01-21", "certificate_expire_date":"2023-01-21", "certificate_issuer":"НацЭкс", "violation":"red-light", "lane_number":2,"lane_name":"полоса для автобусов", "direction":"approaching", "direction_name":"в сторону ул. Ерубаева", "vehicle_class":"CROSSOVER", "vehicle_mark":"BMW", "vehicle_model":"X5"}
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="image_full"; filename="full.jpg"
Content-Type: <Content-Type header here>

(data)
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="image_plate"; filename="plate.jpg"
Content-Type: <Content-Type header here>

(data)
----WebKitFormBoundary7MA4YWxkTrZu0gW

Пример сформированного "голого" HTTP запроса с авторизацией Basic Auth (имя пользователя и пароль соеденены через двоеточие и закодированы алгоримом base64):

POST /webhook/server-id/await HTTP/1.1
Host: ip:post
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Content-Length: 1220
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW

----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="json"

{"datetime":"2000-12-05T14:15:22+06:00", "origin_id":"123abc", "plate_number":"001ABC01", "plate_country":"KZ", "origin_name":"Камера на стадионе Шахтёр", "origin_serial_number":"001XXX11", "origin_address":"Бухар-Жырау", "origin_event_id":"2121abcddd", "latitude":73.08197,"longitude":49.79914,"certificate_number":"4-сю-424", "certificate_issue_date":"2021-01-21", "certificate_expire_date":"2023-01-21", "certificate_issuer":"НацЭкс", "violation":"red-light", "lane_number":2,"lane_name":"полоса для автобусов", "direction":"approaching", "direction_name":"в сторону ул. Ерубаева", "vehicle_class":"CROSSOVER", "vehicle_mark":"BMW", "vehicle_model":"X5"}
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="image_full"; filename="full.jpg"
Content-Type: <Content-Type header here>

(data)
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="image_plate"; filename="plate.jpg"
Content-Type: <Content-Type header here>

(data)
----WebKitFormBoundary7MA4YWxkTrZu0gW

Пример запроса curl из командной строки:

curl --location --request POST 'http://ip:post/webhook/server-id/await' \
--form 'json="{\"datetime\":\"2000-12-05T14:15:22+06:00\", \"origin_id\":\"123abc\", \"plate_number\":\"001ABC01\", \"plate_country\":\"KZ\", \"origin_name\":\"Камера на стадионе Шахтёр\", \"origin_serial_number\":\"001XXX11\", \"origin_address\":\"Бухар-Жырау\", \"origin_event_id\":\"2121abcddd\", \"latitude\":73.08197,\"longitude\":49.79914,\"certificate_number\":\"4-сю-424\", \"certificate_issue_date\":\"2021-01-21\", \"certificate_expire_date\":\"2023-01-21\", \"certificate_issuer\":\"НацЭкс\", \"violation\":\"red-light\", \"lane_number\":2,\"lane_name\":\"полоса для автобусов\", \"direction\":\"approaching\", \"direction_name\":\"в сторону ул. Ерубаева\", \"vehicle_class\":\"CROSSOVER\", \"vehicle_mark\":\"BMW\", \"vehicle_model\":\"X5\"}"' \
--form 'image_full=@"/path/to/file"' \
--form 'image_plate=@"/path/to/file"'

Пример на javascript/nodejs:

const fs = require('fs');
const fetch = require('node-fetch');
const FormData = require('form-data');

const formdata = new FormData();

formdata.append("json", JSON.stringify({
  "datetime": "2000-12-05T14:15:22+06:00",
  "origin_id": "123abc",
  "plate_number": "001ABC01",
  "plate_country": "KZ",
  "origin_name": "Камера на стадионе Шахтёр",
  "origin_serial_number": "001XXX11",
  "origin_address": "Бухар-Жырау",
  "origin_event_id": "2121abcddd",
  "latitude": 73.08197,
  "longitude": 49.79914,
  "certificate_number": "4-сю-424",
  "certificate_issue_date": "2021-01-21",
  "certificate_expire_date": "2023-01-21",
  "certificate_issuer": "НацЭкс",
  "violation": "red-light",
  "lane_number": 2,
  "lane_name": "полоса для автобусов",
  "direction": "approaching",
  "direction_name": "в сторону ул. Ерубаева",
  "vehicle_class": "CROSSOVER",
  "vehicle_color": "black",
  "vehicle_mark": "BMW",
  "vehicle_model": "X5"
}));
formdata.append("image_full", fs.createReadStream('full.jpg'));
formdata.append("image_plate", fs.createReadStream('plate.jpg'));

await fetch("http://ip:post/webhook/rtms.capture.some-random", {method: 'POST', body: formdata});

Ответ будет выглядеть примерно так:

{
  "status": true,
  "event": {
    "name": "webhook.6391773bbda15962f0218cfd",
    "payload": {}
  },
  "response": {
    "ok": true,
    "json": {
      "datetime": "2000-12-05T14:15:22+06:00"
    }
  }
}

Либо примерно так:

{
  "status": true,
  "event": {
    "name": "webhook.6391773bbda15962f0218cfd",
    "payload": {}
  },
  "response": {
    "ok": false,
    "error": "plate_number is missing"
  }
}

Флагом того, что событие было принято, является булево поле response.ok.

Если response не существует в ответе (либо null), то это значет что вы отправляете данные на некорректный URL.

LVS2

Для интеграции внешней системы и приёма в LVS2 новых записей о новых записях из видеоаналитики, необходимо знать URL для отправки данных. Если вы осуществляете интеграцию, запросите URL у представителя компании.

По договорённости, API может требовать (а может и нет) авторизацию методом HTTP Auth Basic. Запросите имя пользователя и пароль у представителя компании.

Каждая детекция/нарушение отправляется отдельным запросом по HTTP, метод POST. Тело запроса должно соответствовать RFC7578 (multipart/form-data).

multipart/form-data описывает метод, которым браузеры посылают HTML-формы по HTTP методом POST - тот же самый принцип используется для приёма данных. Обратитесь к документации вашей библиотеки, чтобы сформировать правильный запрос.

Для начала, необходимо сформировать JSON с метаданными. Описание полей:

{
    "datetime": "Дата, время и временная зона, обязательное поле",
    "origin_id": "Уникальный идентификатор источника, строка, обязательное поле",
    "origin_name": "Название источника, обязательное поле",
    "origin_serial_number": "Серийный номер источника, строка, необязательное поле",
    "origin_address": "Адрес источника, обязательное поле",
    "origin_event_id": "Уникальный ID события во внешней системе, строка, необязательное поле",
    "type": "Тип события lvs2",
    "description": "Текстовое описание события, необязательное поле",
    "latitude": "Широта, число от -90 до 90, необязательное поле",
    "longitude": "Долгота, число от -180 до 180, необязательное поле"
}

Необязательные поля можно просто не включать в JSON.

Пример JSON:

{
    "datetime": "2024-01-06T03:07:22+06:00",
    "origin_id": "abc123 (уникальный идентификатор источника)",
    "origin_name": "Камера на стадионе Шахтёр (имя источника)",
    "origin_serial_number": "001XXX111 (серийный номер источника)",
    "origin_address": "Бухар-Жырау, 1 (адрес источник)",
    "origin_event_id": "2121abcddd (id события)",
    "type": "count.lack-of-people",
    "description": "Тестовое событие",
    "latitude": 73.08197,
    "longitude": 49.79914
}

Полученный JSON надо отправить как текстовое поле формы с именем json. Фотографии и видео помещаются в поля формы со следующими именами:

  • image_full для фото полного кадра
  • image_clean для фото без добавления разметки детектора и подписей
  • image_additional для дополнительного фото
  • image_face для фото лица с детектора
  • image_person для фото персоны (из ориентировки или СКУД)
  • image_bofore_violation для фото перед нарушением
  • video_violation для видео нарушения

Если определенного типа фото/видео нет, включать поле в запрос не нужно.

Если есть фото/видео другого назначения, можно добавить их в запрос со своим ключом с префиксом image_ или video_ (по согласованию)

Пример сформированного "голого" HTTP запроса:

POST /webhook/server-id/await HTTP/1.1
Host: ip:post
Content-Length: 1220
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW

----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="json"

{"datetime":"2024-01-06T03:07:22+06:00","origin_id":"abc123 (уникальный идентификатор источника)","origin_name":"Камера на стадионе Шахтёр (имя источника)","origin_serial_number":"001XXX111 (серийный номер источника)","origin_address":"Бухар-Жырау, 1 (адрес источник)","origin_event_id":"2121abcddd (id события)","type":"count.lack-of-people","description":"Тестовое событие","latitude":73.08197,"longitude":49.79914}
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="image_full"; filename="full.jpg"
Content-Type: <Content-Type header here>

(data)
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="image_additional"; filename="additional.jpg"
Content-Type: <Content-Type header here>

(data)
----WebKitFormBoundary7MA4YWxkTrZu0gW

Пример сформированного "голого" HTTP запроса с авторизацией Basic Auth (имя пользователя и пароль соеденены через двоеточие и закодированы алгоримом base64):

POST /webhook/server-id/await HTTP/1.1
Host: ip:post
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Content-Length: 1220
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW

----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="json"

{"datetime":"2024-01-06T03:07:22+06:00","origin_id":"abc123 (уникальный идентификатор источника)","origin_name":"Камера на стадионе Шахтёр (имя источника)","origin_serial_number":"001XXX111 (серийный номер источника)","origin_address":"Бухар-Жырау, 1 (адрес источник)","origin_event_id":"2121abcddd (id события)","type":"count.lack-of-people","description":"Тестовое событие","latitude":73.08197,"longitude":49.79914}
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="image_full"; filename="full.jpg"
Content-Type: <Content-Type header here>

(data)
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="image_additional"; filename="additional.jpg"
Content-Type: <Content-Type header here>

(data)
----WebKitFormBoundary7MA4YWxkTrZu0gW

Пример запроса curl из командной строки:

curl --location --request POST 'http://ip:post/webhook/server-id/await' \
--form 'json="{\"datetime\":\"2024-01-06T03:07:22+06:00\",\"origin_id\":\"abc123 (уникальный идентификатор источника)\",\"origin_name\":\"Камера на стадионе Шахтёр (имя источника)\",\"origin_serial_number\":\"001XXX111 (серийный номер источника)\",\"origin_address\":\"Бухар-Жырау, 1 (адрес источник)\",\"origin_event_id\":\"2121abcddd (id события)\",\"type\":\"count.lack-of-people\",\"description\":\"Тестовое событие\",\"latitude\":73.08197,\"longitude\":49.79914}"' \
--form 'image_full=@"/path/to/file"' \
--form 'image_additional=@"/path/to/file"'

Ответ будет выглядеть примерно так:

{
  "status": true,
  "event": {
    "name": "webhook.6391773bbda15962f0218cfd",
    "payload": {}
  },
  "response": {
    "ok": true,
    "json": {
      "datetime": "2000-12-05T14:15:22+06:00"
    }
  }
}

Либо примерно так:

{
  "status": true,
  "event": {
    "name": "webhook.6391773bbda15962f0218cfd",
    "payload": {}
  },
  "response": {
    "ok": false,
    "error": "datetime is missing"
  }
}

Флагом того, что событие было принято, является булево поле response.ok.

Если response не существует в ответе (либо null), то это значет что вы отправляете данные на некорректный URL.

Типы значений, которые можно передать в поле type можно получить через метод lvs2.record.types (предпочтительно, т.к. часть типов может быть отключена в настройках). Либо воспользуйтесь списком ниже, значение и описание типа:

unclassified: Неклассифицированное событие
unclassified.violation: Неклассифицированное нарушение
count.lack-of-people: Недостаточное количество людей
count.excess-of-people: Избыточное количество людей
equipment-violation: Нарушение ношения СИЗ
equipment-violation.head: Нарушение ношения СИЗ на голове
equipment-violation.hand: Нарушение ношения СИЗ на руках
equipment-violation.body: Нарушение ношения СИЗ на теле
equipment-violation.hips: Нарушение ношения СИЗ на плечах
equipment-violation.foot: Нарушение ношения СИЗ на ногах
motion: Зафиксировано движение
motion.stop: Зафиксировано окончание движения
motion.snapshot: Снимок во время движения
fire: Огонь
fire.smoke: Дым
fire.smoking: Курение
gun: Оружие
person: Человек
person.violator: Нарушитель
person.sit: Сидящий человек
person.lay: Лежащий человек
person.run: Бегущий человек
face.matched: Распознанное лицо известно
face.unmatched: Распознанное лицо неизвестно
object: Предмет
object.abandoned: Оставленный предмет
object.taken: Забранный предмет
object.gas.tank: Газовый баллон
unlawful.fight: Драка
unlawful.vandalism: Вандализм
unlawful.hooliganism: Хулиганство
phone.talking: Разговор по телефону
distance.violation: Нарушение дистанции
zone.enter: Вход в зону
zone.leave: Выход из зоны
zone.long: Длительное нахождение в зоне
line.cross: Пересечение линии
video.loss: Видеосигнал потерян
video.blind: Видеосигнал ослеплён
archive.record: Запись архива
archive.record.started: Запись архива начата
archive.record.stopped: Запись архива остановлена
source.static: Нет передвижения источника
vehicle.accident: ДТП

Для срабатывания ориентировок рекомендуется использовать тип события "face.matched". Этот же тип события следует использовать для организации белых списков (например, для интеграции СКУД).

Для событий, когда на объекте появляется неизвестный человек (не из числа разрешенных лиц) рекомендуется слать событие "face.unmatched". Его же следует использовать, если распознавание лиц не смогло найти соответствие.

Если сработала ориентировка, и есть необходимость передать информацию об ориентировке, добавьте в json поле metadata в таком виде (все поля необязательные, но в любом случае укажите "reason": "wanted" или значение из списка ниже):

{
  [... остальные поля json ...],
  "metadata": {
    "score": "Процент распознания",
    "person": {
      "reason": "wanted",
      "gender": "male",
      "name": "Имя",
      "comment": "Комментарий",
      "created_at": "Дата создания ориентировки, ISO Date",
      "data": {
        "initiator": "Инициатор розыска",
        "article": "Статья кодекса",
        "recorded_at": "Дата постановки на учёт (объявления в розыск), YYYY-MM-DD",
        "case_number": "Номер дела",
        "wanted_type": "Тип розыска",
        "wanted_kind": "Вид розыска",
        "wanted_category": "Категория разыскиваемого",
        "violation_class": "Квалификация правонарушения по УД",
        "precautionary": "Мера пресечения",
        "prosecutor_supervisor": "Орган прокуратуры, надзирающей за розыском",
        "prosecutor_executive": "Текущий ответственный исполнитель прокуратуры",
        "executive_name": "Имя сотрудника, ответственного за розыск",
        "tracing_agent": "Орган, ведущий розыск",
        "phone_station": "Телефон дежурной части"
      }
    }
  }
}

Фотографию из ориентировки передавайте как файл в поле формы image_person.

Возможные значения поля reason:

wanted: Розыск
wanted.category.1: Розыск (Категория 1)
wanted.category.2: Розыск (Категория 2)
wanted.category.3: Розыск (Категория 3)
wanted.category.4: Розыск (Категория 4)
wanted.category.5: Розыск (Категория 5)
wanted.fraud: Розыск (мошенничество)
wanted.theft.personal: Розыск (кража личного имущества)
wanted.injury: Розыск (телесное повреждение)
wanted.theft.inventory: Розыск (кража ТМЦ)
wanted.fight: Розыск (драка)
wanted.hooligan: Розыск (хулиганство)
wanted.disorder: Розыск (дебош)
wanted.other: Розыск (другое)
staff: Персонал
vip: VIP

Методы API

account

account.2fa

Второй этап двухфакторной аутентификации - установка кода (если еще не был настроен), либо просто проверка

Входные параметры
auth (Object?)
Имя Описание
auth.code String? Код из приложения для аутентификации
auth.id_token String? ID-токен
setup (Object?)
Имя Описание
setup.secret String? Секрет, полученный из account.login - обязательно только если 2FA ещё не настроен
Возвращаемые значения
Смотри также:
account.create

Добавление нового аккаунта.

Входные параметры
account (Account)
Возвращаемые значения
  • account (Account)
  • token (String) - JWT-токен - возвращается только в случае открытой регистрации, если запрос приходит без токена
  • verification_required (Boolean) - необходимо ли пользователю пройти верификацию
account.delete

Удаление аккаунта.

Поле account.id является обязательным и должно содержать id удаляемого аккаунта.

Входные параметры
account (Account)
Имя Описание
account.id String
Возвращаемые значения
account.get

Чтение аккаунта.

Поле account.id является не обязательным. Если не передавать, будет возвращен текущий аккаунт.

Входные параметры
account (Object)
Имя Описание
account.id String?
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: groups , token (только при отключённой 2FA)
Возвращаемые значения
  • account (Account)
  • groups (Array<Group>) - Массив с группами, в которых состоит аккаунт, если параметр запроса include содержит элемент groups
  • token (String) - Токен авторизации, если параметр запроса include содержит элемент token , и пользователь имеет право редактирования аккаунта
account.list

Список аккаунтов.

Возвращает список аккаунтов, к которым есть доступ. Для обычного пользователя вернет только его самого.

Входные параметры
action (String = view) Будут возвращены только те модели, для которых разрешено указанное действие ACL
can (Array<String>?) Массив с действиями ACL, которые будут проверены и добавлены в ответ
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: groups , parents
filter (Object?) Фильтр в формате MongoDB.
sort (Mixed?) Сортировка в формате MongoDB
limit (Integer?)
offset (Integer?)
Возвращаемые значения
  • accounts (Array<Account>) - Массив с аккаунтами
  • can (Object) - Объект с результатами проверки действий из параметра params.can
  • groups (Array<Group>) - Массив с группами, в которых состоят аккаунты, если параметр запроса include содержит элемент groups (также с родителями, если содержит parents )
  • count (Integer) - Количество найденных записей
account.login

Авторизация с помощью логина и пароля. Используется как в HTTP API, так и в окружении, работающем без передачи токена в каждом запросе (socket.io / websocket).

При работе c HTTP API этот метод необходимо выполнить для получения токена.

Для выполнения этого метода токен не требуется.

Существуют лимиты на количество запросов для имени пользователя. Будет применена временная блокировка при превышении любого из следущих ограничений:

  • 2 запроса в течение 1 секунды.
  • 10 запросов в течение 1 минуты.
  • 20 запросов в течение 5 минут.
  • 30 запросов в течение 1 часа.
Since: 2.77.0 Изменения в возвращаемом объекте, если включена двухфактораная аутентификация
Входные параметры
auth (Object)
Имя Описание
auth.username String Имя пользователя
auth.password String Пароль
auth.code String? Код из приложения для аутентификации, если включена двухфакторная аутентификация
Возвращаемые значения
  • account (Account)
  • token (String) - JWT-токен - возвращается, только если не включена двухфакторная аутентификация
  • 2fa.configured (Boolean) - Флаг, что двухфакторная аутентификация настроена на аккаунте
  • 2fa.id_token (Boolean) - Возвращается вместе с ошибкой, если включена двухфакторная аутентификация.
  • 2fa.secret (String) - Возвращается вместе с ошибкой, если включена двухфакторная аутентификация, но у аккаунта еще не настроено приложение аутентификации. Секрет нужно добавить в приложение, и прислать вместе с кодом в методе account.2fa
Смотри также:
account.login_with_token

Авторизация с помощью токена в окружении, работающем без передачи токена в каждом запросе (socket.io / websocket).

Существуют лимиты на количество запросов для акканта. Лимиты те же самые, как при использовании метода account.login.

Входные параметры
auth (Object)
Имя Описание
auth.token String Токен
Возвращаемые значения
account.password

Смена пароля

Входные параметры
account (Object)
Имя Описание
account.mail String E-mail
account.password String Новый пароль
code (String) Код верификации, отправленный на e-mail
Возвращаемые значения
account.recovery

Запрос на восстановление пароля. На указанный e-mail будет отправлен код верификации.

Входные параметры
account (Object)
Имя Описание
account.mail String E-mail
Возвращаемые значения
  • status (Boolean)
  • expired_at (String) - срок действия кода верификации
account.renew_token

Обновление токена. Возможно только если старый токен ещё валиден.

Входные параметры
auth (Object)
Имя Описание
auth.token String Токен
Возвращаемые значения
account.subscribe

Подписка на получение событий изменения аккаунтов. Метод можно вызывать только при использовании socket.io Присылаемые значения event в событии api-event: account.create, account.update, account.delete

Входные параметры
Object (any)
Возвращаемые значения
account.unsubscribe

Отписка от получение событий изменения аккаунтов. Метод можно вызывать только при использовании socket.io

Входные параметры
Object (any)
Возвращаемые значения
account.update

Редактирование аккаунта.

Поле account.id является обязательным и должно содержать id редактируемого аккаунта.

Входные параметры
account (Account)
Имя Описание
account.id String
merge (Boolean = false) Склеить вложенные значения (актуально для поля data ), переданные в запросе с существующими
Возвращаемые значения
  • account (Account)
  • verification_required (Boolean) - необходимо ли пользователю пройти верификацию
account.update

Разлогинивает аккаунт и инвалидирует существующие токены.

Поле account.id является обязательным и должно содержать id редактируемого аккаунта.

Входные параметры
account (Account)
Имя Описание
account.id String
Возвращаемые значения
account.upsert

Редактирование или создание аккаунта.

Поле account.id является обязательным и должно содержать id редактируемого аккаунта.

Входные параметры
account (Account)
Имя Описание
account.id String
merge (Boolean = false) Склеить вложенные значения (актуально для поля data ), переданные в запросе с существующими
Возвращаемые значения
  • account (Account)
  • verification_required (Boolean) - необходимо ли пользователю пройти верификацию
account.verify

Верификация аккаунта

Входные параметры
code (String) Код верификации, отправленный на e-mail
Возвращаемые значения

acl

acl.actions

Список доступных действий для модели.

Входные параметры
query (Object)
Имя Описание
query.model_name String Имя модели (например, Account , Acl , Cam и т.д.)
Возвращаемые значения
  • actions (Array) - Список действий
acl.can

Проверка, есть ли у пользователя права доступа к запрошенным объектам.

Особое поведение - если надо проверить не доступ к конкретной модели, а поведение "в целом" - например, право на создание камеры. Для этого случая надо передать пустой массив "what", а ключ ответа будет установлен в "$" вместо ID модели.

Входные параметры
query (Object)
Имя Описание
query.what Array Массив из ID моделей, для которых проверяется доступ
query.actions Array<String> Массив из названий действий, для которых проверяется доступ (например, ["view", "update"] )
query.model_name String Имя модели (например, Account , Acl , Camera и т.д.)
Возвращаемые значения
  • results (Object) - Результаты проверки - объекты, в качестве ключей использующие ID запрошенных моделей (или "$"), с вложенным объектом, в качестве ключей использующих название действий. Если модель не найдена в базе данных, её ID не будет включён в ответ
Примеры
// Запрос

{"query": {
  "actions": ["view", "unknown-action"],
  "model_name": "Camera",
  "what": ["5bf9c27f89bd0733449ec34e", "5bf9c28689bd0733449ec34f"]
}}

// Ответ
{"results": {
  "5bf9c27f89bd0733449ec34e": {
    "view": true,
    "unknown-action": false
  },
  "5bf9c28689bd0733449ec34f": {
    "view": true,
    "unknown-action": false
  }
}}
// Запрос

{"query": {
  "actions": ["create", "admin"],
  "model_name": "Camera",
  "what": []
}}

// Ответ
{"results": {
  "$": {
    "create": true,
    "admin": false
  }
}}
acl.create

Добавление нового правила доступа.

Входные параметры
acl (Acl)
Возвращаемые значения
acl.delete

Удаление правила.

Поле acl.id является обязательным и должно содержать id удаляемого правила.

Входные параметры
acl (Acl)
Имя Описание
acl.id String
Возвращаемые значения
acl.get

Чтение правила.

Поле acl.id является обязательным и должно содержать id читаемого правила.

Входные параметры
acl (Object)
Имя Описание
acl.id String
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: what , for
Возвращаемые значения
  • acl (Acl)
  • what ((Array<Camera> | Array<Screen> | Array<Taxonomy>)) - Массив с моделями, к которым применятся правило, если параметр запроса include содержит элемент what . У каждой модели будет доступно поле _modelName
  • for ((Array<Account> | Array<Group>)) - Массив с моделями, которым выдается, либо отнимается право, если параметр запроса include содержит элемент for . У каждой модели будет доступно поле _modelName
acl.list

Список правил.

Возвращает список правил.

Входные параметры
action (String = view) Будут возвращены только те модели, для которых разрешено указанное действие ACL
can (Array<String>?) Массив с действиями ACL, которые будут проверены и добавлены в ответ
include (Array<String>?) Массив с связанными данными, которые будут добавлены в ответ. Допустимые значения: what , for
filter (Object?) Фильтр в формате MongoDB
sort (Mixed?) Сортировка в формате MongoDB
limit (Integer?)
offset (Integer?)
Возвращаемые значения
  • acl (Array<Acl>) - Массив с правилами
  • can (Object) - Объект с результатами проверки действий из параметра params.can
  • what ((Array<Camera> | Array<Screen> | Array<Taxonomy>)) - Массив с моделями, к которым применятся правило, если параметр запроса include содержит элемент what . У каждой модели будет доступно поле _modelName
  • for ((Array<Account> | Array<Group>)) - Массив с моделями, которым выдается, либо отнимается право, если параметр запроса include содержит элемент for . У каждой модели будет доступно поле _modelName
  • count (Integer) - Количество найденных записей
acl.subscribe

Подписка на получение событий изменения Acl. Метод можно вызывать только при использовании socket.io Присылаемые значения event в событии api-event: acl.create, acl.update, acl.delete

Входные параметры
Object (any)
Возвращаемые значения
acl.unsubscribe

Отписка от получение событий изменения Acl. Метод можно вызывать только при использовании socket.io

Входные параметры
Object (any)
Возвращаемые значения
acl.update

Редактирование правила.

Поле acl.id является обязательным и должно содержать id редактируемого правила.

Входные параметры
acl (Acl)
Имя Описание
acl.id String
merge (Boolean = false) Склеить вложенные значения (актуально для поля data ), переданные в запросе с существующими
Возвращаемые значения

action

action.create

Добавление нового действия.

Входные параметры
action (Action)
Возвращаемые значения
action.delete

Удаление действия.

Поле action.id является обязательным и должно содержать id удаляемого действия.

Входные параметры
action (Action)
Имя Описание
action.id String
Возвращаемые значения
action.get

Чтение действия.

Поле action.id является обязательным и должно содержать id читаемого действия.

Входные параметры
action (Object)
Имя Описание
action.id String
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: describe
entity (Object?) Сущность, связанная с действием
Имя Описание
entity.id String? ID сущности
Возвращаемые значения
  • action (Action)
  • describe (Object) - объект описания интерфейса, если параметр запроса include содержит элемент describe
action.list

Список действий.

Возвращает список действий.

Входные параметры
action (String = view) Будут возвращены только те модели, для которых разрешено указанное действие ACL
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: describe
filter (Object?) Фильтр в формате MongoDB
sort (Mixed?) Сортировка в формате MongoDB
limit (Integer?)
offset (Integer?)
entity (Object?) Сущность, связанная с действием
Имя Описание
entity.model_name String? Имя модели (например, Account , Alarm , Camera и т.д.)
entity.id String? ID сущности
Возвращаемые значения
  • actions (Array<Action>) - Массив с действиями
  • describes (Array<Object>) - Массив с описанием действий - он строится из действий, при этом будут проверены условия в действии
  • count (Integer) - Количество найденных записей
action.reactions

Список доступных типов реакций.

Возвращает список доступных реакций, в зависимости от настроек API.

Возвращаемые значения
  • reactions (Object) - Объект с типами реакций
action.run

Ручной запуск действия.

Требует прав на действие ACL: 'view'

Поле action.id является обязательным и должно содержать id запускаемого действия.

Входные параметры
action (Object)
Имя Описание
action.id String
payload (Object?) Дополнительные данные, которые можно передать в действие (например поля формы)
entity (Object?) Сущность, связанная с действием
Имя Описание
entity.model_name String? Имя модели (например, Account , Alarm , Camera и т.д.)
entity.id String? ID сущности
Возвращаемые значения
action.update

Редактирование или создание действия.

Поле action.id является обязательным и должно содержать id редактируемого действия.

Входные параметры
action (Action)
Имя Описание
action.id String
merge (Boolean = false) Склеить вложенные значения (актуально для поля data ), переданные в запросе с существующими
Возвращаемые значения
action.update

Редактирование действия.

Поле action.id является обязательным и должно содержать id редактируемого действия.

Входные параметры
action (Action)
Имя Описание
action.id String
merge (Boolean = false) Склеить вложенные значения (актуально для поля data ), переданные в запросе с существующими
Возвращаемые значения

alarm

alarm.accept

Принятие тревоги оператором.

Поле alarm.id является обязательным и должно содержать id принимаемой тревоги.

Входные параметры
alarm (Object)
Имя Описание
alarm.id String
Возвращаемые значения
alarm.assign

Назначение ответственного за тревогу.

Поле alarm.id является обязательным и должно содержать id назначаемой тревоги.

Входные параметры
alarm (Object)
Имя Описание
alarm.id String
account (Object)
Имя Описание
account.id String
Возвращаемые значения
alarm.camera

Генерация тревоги на камере.

Требует прав на действие ACL камеры: 'alarm'

Поле camera.id является обязательным и должно содержать id связанной камеры.

Входные параметры
camera (Object)
Имя Описание
camera.id String
alarm (Alarm)
popup (Boolean = true) открыть высплывающее окно с камерой
Возвращаемые значения
alarm.comment

Добавление комментария к тревоге.

Поле alarm.id является обязательным и должно содержать id тревоги.

Входные параметры
alarm (Object)
Имя Описание
alarm.id String
alarm.comment String
Возвращаемые значения
alarm.deblock

Деблокирование тревоги оператором.

Поле alarm.id является обязательным и должно содержать id принимаемой тревоги.

Входные параметры
alarm (Object)
Имя Описание
alarm.id String
comment (String)
Возвращаемые значения
alarm.get

Чтение тревоги.

Поле alarm.id является обязательным и должно содержать id читаемой тревоги.

Входные параметры
alarm (Object)
Имя Описание
alarm.id String
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: accounts , origin
Возвращаемые значения
  • alarm (Alarm)
  • accounts (Array<Account>) - Массив с аккаунтами, которые имеют отношение к тревоге (ответственный, принявший, деблокировавший, прокомментировавший), если параметр запроса include содержит элемент accounts .
  • origin ((Lvs2Record | RtmsNumber | Object)) - Оригинальный объект, из которого была создана тревога, например записи lvs2 или rtms, если параметр запроса include содержит элемент origin .
alarm.list

Список тревог.

Возвращает список тревог, к которым есть доступ.

Входные параметры
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: origins .
filter (Object?) Фильтр в формате MongoDB
sort (Mixed?) Сортировка в формате MongoDB
limit (Integer?)
offset (Integer?)
Возвращаемые значения
  • alarms (Array<Alarm>) - Массив с тревогами.
  • origins (Object<(Lvs2Record | RtmsNumber | Object)>) - Оригинальные объекты, из которых была создана тревога, если параметр запроса include содержит элемент origins .
  • origins.$ ((Lvs2Record | RtmsNumber | Object)) - Оригинальный объект записан в origins, в качестве ключа используется id тревоги.
  • count (Integer) - Количество найденных записей.
alarm.lvs2

Генерация тревоги из lvs2.

Требует прав на действие ACL камеры: 'alarm'

Поле camera.id является обязательным и должно содержать id связанной камеры.

Входные параметры
record (Object)
Имя Описание
record.id String
record.datetime String
Возвращаемые значения
alarm.origin_event_types

Типы событий *

Входные параметры
pairs (Boolean = false) Ответить массивом объектов
Возвращаемые значения
  • origin_event_types (Object) - Объект типов событий
alarm.real

Установка реальности тревоги оператором.

Поле alarm.id является обязательным и должно содержать id тревоги. Тревога также будет деблокирована

Входные параметры
alarm (Object)
Имя Описание
alarm.id String
alarm.real Boolean тревога реальна или ложна
alarm.comment String
Возвращаемые значения
alarm.screen

Генерация тревоги на экране.

Требует прав на действие ACL камеры: 'alarm'

Поле screen.id является обязательным и должно содержать id связанного экрана.

Входные параметры
screen (Object)
Имя Описание
screen.id String
alarm (Alarm)
popup (Boolean = true) открыть высплывающее окно с камерой
Возвращаемые значения
alarm.sources

Типы источников *

Входные параметры
pairs (Boolean = false) Ответить массивом объектов
Возвращаемые значения
  • sources (Object) - Объект типов источников
alarm.subscribe

Подписка на получение событий изменения тревог. Метод можно вызывать только при использовании socket.io

Входные параметры
Object (any)
Возвращаемые значения
alarm.unsubscribe

Отписка от получения событий изменения тревог. Метод можно вызывать только при использовании socket.io

Входные параметры
Object (any)
Возвращаемые значения

bodycam

bodycam.camera.get

Получение камеры для Bodycam

Входные параметры
machine_id (String?)
Возвращаемые значения
  • camera (Camera)
  • computed (Object)
  • account_flags (Object) - Флаги аккаунта
  • account_flags.lvs2_watcher (Boolean) - У аккаунта есть несколько камер с правом lvs2, можно подписаться на события
bodycam.camera.record_lvs2

Создание записи в LVS2

Доступно два варианта - передать base64, либо загружить файл методом multipart/form-data При multipart/form-data поле image.filedata необязательно. Дополнительные параметры будет передаваться в поле с именем json, а файлы - в полях с именами image_* и video_*

Since: 2.81.64
Входные параметры
camera (Camera)
Имя Описание
camera.id String
record (Lvs2Record) Запись lvs2, без полей camera и server
files (Array<{type: String, filedata: String}>) Файлы lvs2
Возвращаемые значения
bodycam.camera.record_lvs2_exists

Проверка существования записи в LVS2

Since: 2.81.132
Входные параметры
camera (Camera)
Имя Описание
camera.id String
record (Object) Запись lvs2
Имя Описание
record.datetime String
record.origin_event_uuid String
Возвращаемые значения
bodycam.camera.shift

Запись изменения статуса смены/дежурства

Since: 2.82.1
Входные параметры
camera (Camera)
Имя Описание
camera.id String
shift (Object) Запись смены
Имя Описание
shift.datetime String Дата и время изменения статуса
shift.is_finish Boolean (по умолчанию false) Завершение смены. Для начала смены отправьте false, для окончания смены - true
Возвращаемые значения
bodycam.camera.update_geo

Обновление координат Bodycam

Since: 2.79.0 изменение параметров
Входные параметры
camera (Camera)
Имя Описание
camera.id String
history (Array<{latlng: Array<Number>, datetime: String}>)
Возвращаемые значения
bodycam.report.camera

Отчёт по камерам Bodycam

Входные параметры
filter (Object) Фильтр в формате MongoDB.
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: servers , cameras , accounts
Возвращаемые значения
  • stats (Array)
  • count (Integer) - Количество найденных записей.
bodycam.report.detect_shifts

Анализ смен Bodycam

Входные параметры
filter (Object) Фильтр в формате MongoDB.
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: servers , cameras , accounts
Возвращаемые значения
bodycam.report.shifts

Отчёт по сменам Bodycam

Входные параметры
shifts (Array<{camera: Object<{id: String}>, start: String, end: String}>) Информация о сменах
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: servers , accounts , taxonomy_stats
update (Boolean?) Надо ли обновить камеры и записать смены в поле data.shifts
Возвращаемые значения

bulk

bulk.parallel

Выполнение нескольких методов одновременно.

Все перечисленые методы будут запущены параллельно, но не более указанного лимита в один момент времени. Лимит параллельных запросов по умолчанию равен 20.

Входные параметры
bulk (Array<Object>) Массив команд, которые надо выполнить. Каждый элемента массива - это объект вида {"method": "method.name", "params": {...params}}
each (Object) Объект, для дописывания значений в каждый запрос. Может быть полезно при отправке больших данных в несколько вызовов.
limit (Number = 20) Ограничить количество одновременно запущенных команд. Передайте -1 для запуска всех команд одновременно
Возвращаемые значения
  • results (Array<Object>) - Массив результатов выполнения. Каждый элемент массива соответсвует запрошенному объекту, с добавлением полей "error" и "data"
Пример
// Запрос

{
  "bulk": [
    {
      "method": "group.create",
      "params": {
        "group": {
          "name": "Новая группа 1"
        }
      }
    },
    {
      "method": "group.create",
      "params": {
        "group": {
          "name": "Новая группа 2"
        }
      }
    },
    {
      "method": "taxonomy.create",
      "params": {
        "group": {
          "name": "Новый термин таксономии"
        }
      }
    }
  ],
  "limit": 5
}

// Ответ

{
  "results": [
    {
      "method": "group.create",
      "params": {
        "group": {
          "name": "Новая группа 1"
        }
      },
      "error": null,
      "data": {
        "group": {
          "created_at": "2018-12-02T06:37:18.191Z",
          "updated_at": "2018-12-02T06:37:30.998Z",
          "name": "Новая группа 1",
          "path": "5c037daa825f352e684a5c9a",
          "id": "5c037daa825f352e684a5c9a"
        }
      }
    },
    {
      "method": "group.create",
      "params": {
        "group": {
          "name": "Новая группа 2"
        }
      },
      "error": null,
      "data": {
        "group": {
          "created_at": "2018-12-02T06:37:18.191Z",
          "updated_at": "2018-12-02T06:37:31.004Z",
          "name": "Новая группа 2",
          "path": "5c037dab825f352e684a5c9b",
          "id": "5c037dab825f352e684a5c9b"
        }
      }
    },
    {
      "method": "taxonomy.create",
      "params": {
        "taxonomy": {
          "name": "Новый термин таксономии"
        }
      },
      "error": null,
      "data": {
        "taxonomy": {
          "created_at": "2018-12-02T06:39:06.826Z",
          "updated_at": "2018-12-02T06:41:10.127Z",
          "name": "Новый термин таксономии",
          "path": "5c037e86535f570c804c2600",
          "id": "5c037e86535f570c804c2600"
        }
      }
    }
  ]
}
bulk.queue

Выполнение нескольких методов последовательно

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

В отличии от метода bulk.parallel, если один один вызов вернет ошибку, все последующие вызовы не будут выполнены.

В отличии от метода bulk.parallel, если один один вызов вернет ошибку, текст ошибки будет помещен в свойство error на верхнем уровне, а не в объект внутри results

Есть возможность зациклить запросы, используя свойство loop

Входные параметры
bulk (Array<Object>) Массив команд, которые надо выполнить. Каждый элемента массива - это объект вида {"method": "method.name", "params": {...params}}. Если указано поле "set", то инструкции из него будут приминены к элементу "params" (смотри пример)
skip_errors (Boolean = false) Пропускать ошибки. Если не установлено в true, первая ошибка прервёт всю цепочку вызовов.
Возвращаемые значения
  • results (Array<Object>) - Массив результатов выполнения. Каждый элемент массива соответсвует запрошенному объекту, с добавлением полей "error" и "data"
Примеры
// Запрос
// "group.parent": "0.group.id" означает следующее: установить значение "group.parent" в текущем запросе, взяв "group.id" из запроса номер 0 - т.е. id, который будет назначен "Новая группа 10".
// "group.parent": "1.group.id" означает то же самое, но в качестве источника уже будет взят запрос номер 1 - т.е. из "Новая группа 11 - вложенная в 10".
// В результате, будет создано три группы, одна вложенная в другую.

{
  "bulk": [
    {
      "method": "group.create",
      "params": {
        "group": {
          "name": "Новая группа 10"
        }
      }
    },
    {
      "method": "group.create",
      "params": {
        "group": {
          "name": "Новая группа 11 - вложенная в 10"
        }
      },
      "set": {
        "group.parent": "0.group.id"
      }
    },
    {
      "method": "group.create",
      "params": {
        "group": {
          "name": "Новая группа 12 - вложенная в 11"
        }
      },
      "set": {
        "group.parent": "1.group.id"
      }
    },
    {
      "method": "group.create",
      "params": {
        "group": {
          "name": "Новая группа 13 - вложенная в 11"
        }
      },
      "set": {
        "group.parent": "1.group.id"
      }
    }
  ]
}

// Ответ

{
  "results": [
    {
      "method": "group.create",
      "params": {
        "group": {
          "name": "Новая группа 10"
        }
      },
      "error": null,
      "data": {
        "group": {
          "created_at": "2018-12-02T08:01:33.666Z",
          "updated_at": "2018-12-02T08:04:51.835Z",
          "name": "Новая группа 10",
          "path": "5c039223a27710048c09cfbe",
          "id": "5c039223a27710048c09cfbe"
        }
      }
    },
    {
      "method": "group.create",
      "params": {
        "group": {
          "name": "Новая группа 11 - вложенная в 10",
          "parent": "5c039223a27710048c09cfbe"       // Не было в оригинальном запросе, но было добавлено из-за правила в "set"
        }
      },
      "set": {
        "group.parent": "0.group.id"
      },
      "error": null,
      "data": {
        "group": {
          "created_at": "2018-12-02T08:01:33.666Z",
          "updated_at": "2018-12-02T08:04:51.843Z",
          "name": "Новая группа 11 - вложенная в 10",
          "parent": "5c039223a27710048c09cfbe",
          "path": "5c039223a27710048c09cfbe > 5c039223a27710048c09cfbf",
          "id": "5c039223a27710048c09cfbf"
        }
      }
    },
    {
      "method": "group.create",
      "params": {
        "group": {
          "name": "Новая группа 12 - вложенная в 11",
          "parent": "5c039223a27710048c09cfbf"       // Не было в оригинальном запросе, но было добавлено из-за правила в "set"
        }
      },
      "set": {
        "group.parent": "1.group.id"
      },
      "error": null,
      "data": {
        "group": {
          "created_at": "2018-12-02T08:01:33.666Z",
          "updated_at": "2018-12-02T08:04:51.852Z",
          "name": "Новая группа 12 - вложенная в 11",
          "parent": "5c039223a27710048c09cfbf",
          "path": "5c039223a27710048c09cfbe > 5c039223a27710048c09cfbf > 5c039223a27710048c09cfc0",
          "id": "5c039223a27710048c09cfc0"
        }
      }
    },
    {
      "method": "group.create",
      "params": {
        "group": {
          "name": "Новая группа 13 - вложенная в 11",
          "parent": "5c039223a27710048c09cfbf"       // Не было в оригинальном запросе, но было добавлено из-за правила в "set"
        }
      },
      "set": {
        "group.parent": "1.group.id"
      },
      "error": null,
      "data": {
        "group": {
          "created_at": "2018-12-02T08:01:33.666Z",
          "updated_at": "2018-12-02T08:04:51.859Z",
          "name": "Новая группа 13 - вложенная в 11",
          "parent": "5c039223a27710048c09cfbf",
          "path": "5c039223a27710048c09cfbe > 5c039223a27710048c09cfbf > 5c039223a27710048c09cfc1",
          "id": "5c039223a27710048c09cfc1"
        }
      }
    }
  ]
}
{
  "bulk": [
    {
      "method": "camera.list",
      "params": {
        "limit": 2
      },
      "return": false
    },
    {
      "method": "global.echo",
      "params": {
        "test": true
      },
      "loop": "0.cameras",
      "set": {
        "id": "$.id",
        "name": "$.name"
      }
    }
  ]
}

// Ответ

{
  "results": [
    {
      "method": "camera.list",
      "params": {
        "limit": 2
      },
      "return": false,
      "error": null,
      "data": null
    },
    {
      "method": "global.echo",
      "params": {
        "test": true
      },
      "loop": "0.cameras",
      "set": {
        "id": "$.id",
        "name": "$.name"
      },
      "count": 2,
      "error": null,
      "data": null
    },
    {
      "method": "global.echo",
      "params": {
        "test": true,
        "id": "60e7d7946331397119064789",
        "name": "Купол KAR-K-063 005483-09_P"
      },
      "error": null,
      "data": {
        "test": true,
        "id": "60e7d7946331397119064789",
        "name": "Купол KAR-K-063 005483-09_P",
        "echo": true
      }
    },
    {
      "method": "global.echo",
      "params": {
        "test": true,
        "id": "6107a05f633139003d907526",
        "name": "Статика 005680-02"
      },
      "error": null,
      "data": {
        "test": true,
        "id": "6107a05f633139003d907526",
        "name": "Статика 005680-02",
        "echo": true
      }
    }
  ]
}

camera

camera.archive.download

Скачивание архива камеры.

Требует прав на действие ACL: 'archive'

Входные параметры
camera (Object)
Имя Описание
camera.id String
time (Object)
Имя Описание
time.start String Дата и время начала архивного файла
time.end String Дата и время окончания архивного файла
format (String?) Формат файла
await (Boolean?) Ответить только после того, как файл будет создан
Возвращаемые значения
  • download (Object)
  • download.processing (Boolean) - обрабатывается ли файл
  • download.percent (Number) - процент выполнения
  • download.format (String) - формат видеофайла
  • download.url (String) - ссылка на видеофайл
camera.archive.play

Воспроизведение архива камеры.

Требует прав на действие ACL: 'archive'

Входные параметры
camera (Object)
Имя Описание
camera.id String
time (Object)
Имя Описание
time.start String Дата и время начала воспроизведения
format (String?) Формат, зависит от драйвера. Можно не указывать, либо для спец-версий указать одно из: rtsp (BRC/Strazh), timelapse (BRC/Strazh)
speed (Number = 1) Скорость воспроизведения от 1 до 10
Возвращаемые значения
  • play (Object) - объект плеера
  • play.format (String) - формат видеопотока
  • play.url (String) - ссылка на видеопоток
camera.archive.protect

Пометить защищенным архив камеры.

Требует прав на действие ACL: 'archive'

Since: 2.82.0
Входные параметры
camera (Object)
Имя Описание
camera.id String
time (Object)
Имя Описание
time.start String Дата и время начала архивного диапазона
time.end String Дата и время окончания архивного диапазона
protect (Object)
Имя Описание
protect.expired_at String Дата и время истечения гарантированного хранения
protect.tags Array<String>? Теги
camera.archive.size

Размер архива камеры.

Требует прав на действие ACL: 'archive'

Входные параметры
camera (Object)
Имя Описание
camera.id String
time (Object)
Имя Описание
time.start String Дата и время начала архивного файла
time.end String Дата и время окончания архивного файла
Возвращаемые значения
  • download (Object)
  • download.processing (Boolean) - обрабатывается ли файл
  • download.percent (Number) - процент выполнения
  • download.format (String) - формат видеофайла
  • download.url (String) - ссылка на видеофайл
camera.archive.snapshot

Получение снапшота из архива

Требует прав на действие ACL: 'archive'

Входные параметры
camera (Object)
Имя Описание
camera.id String
time (Object)
Имя Описание
time.start String Дата и время скриншота
Возвращаемые значения
  • snapshot (Object) - объект снапшота
  • snapshot.format (String) - формат снапшота
  • snapshot.url (String) - ссылка на снапшот
camera.archive.store

Сохранение архива камеры в хранилище.

Требует прав на действие ACL: 'archive'

Входные параметры
camera (Object)
Имя Описание
camera.id String
storage (Object)
Имя Описание
storage.path String Путь к папке сохранения
time (Object)
Имя Описание
time.start String Дата и время начала архивного файла
time.end String Дата и время окончания архивного файла
format (String?) Формат файла
await (Boolean?) Ответить только после того, как файл будет создан
Возвращаемые значения
  • store (Object) - Объект хранимого файла
  • store.processing (Boolean) - обрабатывается ли файл
  • store.percent (Number) - процент выполнения
  • store.filepath (String) - путь к файлу
  • store.filename (String) - имя файла
camera.archive.summary

Сводка архива камеры.

Требует прав на действие ACL: 'archive'

Входные параметры
camera (Object)
Имя Описание
camera.id String
time (Object)
Имя Описание
time.start String Дата и время начала архива
time.end String Дата и время окончания архива
format (String?) Формат архива. Можно не указывать, либо для спец-версий указать одно из: timelapse , history , history-extremes , protected
limit (Integer?)
Возвращаемые значения
camera.clear

Удаление всех камер.

Удаляем все камеры, к которым есть доступ.

Входные параметры
filter (Object?) Фильтр в формате MongoDB
sort (Mixed?) Сортировка в формате MongoDB
limit (Integer?)
offset (Integer?)
Возвращаемые значения
  • cameras (Array<Camera>) - Массив с камерами.
  • count (Integer) - Количество удалённых записей.
camera.cluster

Кластер камер.

Возвращает список координат, созданных из кластеризированных камер, к которым есть доступ.

Входные параметры
action (String = view) Будут возвращены только те модели, для которых разрешено указанное действие ACL
filter (Object?) Фильтр в формате MongoDB
size (Number = 50) Размер стороны квадрата кластера, км
first (Boolean = false) Отдавать в качестве координат кластера координаты первой камеры из кластера (если false - то центральную точку квадрата)
camera.create

Добавление новой камеры.

Входные параметры
camera (Camera)
Возвращаемые значения
camera.delete

Удаление камеры.

Поле camera.id является обязательным и должно содержать id удаляемой камеры.

Входные параметры
camera (Camera)
Имя Описание
camera.id String
Возвращаемые значения
camera.detection.config.get

Чтение настроек детекции камеры.

Поле camera.id является обязательным и должно содержать id читаемой камеры.

Входные параметры
camera (Object)
Имя Описание
camera.id String
Возвращаемые значения
  • config (Object) - объект настроек детектора
camera.detection.config.set

Установка настроек детекции камеры.

Поле camera.id является обязательным и должно содержать id настраиваемой камеры.

Входные параметры
camera (Object)
Имя Описание
camera.id String
config (Object) объект настроек детектора
Возвращаемые значения
  • config (Object) - объект настроек детектора
camera.detection.get

Получение детекции.

Возвращает детекцию с камеры

Входные параметры
camera (Object)
Имя Описание
camera.id String
filename (String)
format (String?)
Возвращаемые значения
  • detection (Object) - Объект детекции.
camera.detection.list

Список детекций.

Возвращает список детекций на камере

Входные параметры
filter (Object)
Имя Описание
filter.date Object
filter.date.$gte String Дата от
filter.date.$lte String Дата до
filter.camera Object
filter.camera.id String
limit (Integer?)
offset (Integer?)
Возвращаемые значения
  • detections (Array<Object>) - Массив с детекциями.
  • count (Integer) - Количество найденных записей.
camera.get

Чтение камеры.

Поле camera.id является обязательным и должно содержать id читаемой камеры.

Входные параметры
camera (Object)
Имя Описание
camera.id String
include (Array<String>?) Массив с связанными данными, которые будут добавлены в ответ. Допустимые значения: server , taxonomies , account , allowed , can , player , snapshot , archive , is_online , is_online_cached , motion_mask , capabilities , computed
can (String?) Действие ACL, которое будут проверено, если параметр запроса include содержит элемент allowed или can
archive (Object?) Объект с дополнительными параметрами для запроса сводки архива
Возвращаемые значения
  • camera (Camera)
  • player (Object) - объект плеера, если параметр запроса include содержит элемент player . Плеер необходимо запрашивать каждый раз, когда начинается просмотр видео, не допускается сохранять URL для повторного переиспользования
  • player.format (String) - формат видеопотока
  • player.url (String) - ссылка на видеопоток
  • player.secondary.format (String) - формат вторичного видеопотока, null если не поддерживается
  • player.secondary.url (String) - ссылка на вторичный видеопоток
  • player.websocket.format (String) - формат видеопотока через WebSocket, null если не поддерживается
  • player.websocket.url (String) - ссылка на видеопоток через WebSocket
  • player.websocket.secondary.url (String) - ссылка на вторичный видеопоток через WebSocket
  • player.websocket.secondary.format (String) - формат вторичного видеопотока через WebSocket, null если не поддерживается
  • player.mse.format (String) - формат видеопотока через MSE, null если не поддерживается
  • player.mse.url (String) - ссылка на видеопоток через MSE
  • player.mse.secondary.url (String) - ссылка на вторичный видеопоток через MSE
  • player.mse.secondary.format (String) - формат вторичного видеопотока через MSE, null если не поддерживается
  • player.rtsp.url (String) - ссылка на видеопоток через RTSP, если поддерживается
  • player.rtsp.secondary.url (String) - ссылка на вторичный видеопоток через RTSP, если поддерживается
  • snapshot (Object) - объект снапшота, если параметр запроса include содержит элемент snapshot
  • snapshot.format (String) - формат снапшота
  • snapshot.url (String) - ссылка на снапшот
  • archive (Object) - объект архива, если параметр запроса include содержит элемент archive
  • archive.summary (Array<Object>) - сводка видеоархива
  • is_online (Boolean) - в онлайне ли камера, если параметр запроса include содержит элемент is_online
  • is_online_cached ((Boolean | null)) - в онлайне ли камера (кешированное значение), если параметр запроса include содержит элемент is_online_cached
  • server (Server) - Сервер, на котором хранится камера, если параметр запроса include содержит элемент server
  • taxonomies (Array<Taxonomy>) - Массив с терминами таксономии, которым принадлежат камера, если параметр запроса include содержит элемент taxonomies
  • account (Account) - Аккаунт, который владеет камерой, если параметр запроса include содержит элемент account
  • allowed (Array<Account>) - Массив с аккаунтами, которые имеют доступ к камере, если параметр запроса include содержит элемент allowed .
  • can (Object) - Объект с результатами проверки действий из параметра params.can
  • capabilities (Object) - Объект возможностей драйвера камеры, если параметр запроса include содержит элемент capabilities
  • computed (Object) - Объект информации о камере от драйвера камеры, если параметр запроса include содержит элемент computed
camera.list

Список камер.

Возвращает список камер, к которым есть доступ.

Входные параметры
action (String = view) Будут возвращены только те модели, для которых разрешено указанное действие ACL
can (Array<String>?) Массив с действиями ACL, которые будут проверены и добавлены в ответ
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: server , taxonomies , account , snapshot , is_online , is_online_cached , capabilities , computed
filter (Object?) Фильтр в формате MongoDB
sort (Mixed?) Сортировка в формате MongoDB
limit (Integer?)
offset (Integer?)
Возвращаемые значения
  • cameras (Array<Camera>) - Массив с камерами.
  • can (Object) - Объект с результатами проверки действий из параметра params.can
  • servers (Array<Server>) - Массив с серверами, на которых хранятся камеры, если параметр запроса include содержит элемент server
  • taxonomies (Array<Taxonomy>) - Массив с терминами таксономии, которым принадлежат камеры, если параметр запроса include содержит элемент taxonomies . Если параметр запроса include содержит элемент taxonomies_count , то в каждый элемент массива taxonomies будет добавлено свойство _count .
  • accounts (Array<Account>) - Массив с аккаунтами, которые владеют камерами, если параметр запроса include содержит элемент account
  • snapshots (Array<Object>) - Массив снапшотов камер, если параметр запроса include содержит элемент snapshot
  • snapshots.$.url (String) - ссылка на снапшот
  • snapshots.$.format (boolean) - формат снапшота
  • is_online (Array<Object>) - Массив информации в онлайне ли камеры, если параметр запроса include содержит элемент is_online
  • is_online.$.id (String) - ID камеры
  • is_online.$.is_online (boolean) - в онлайне ли камера
  • is_online_cached.$.id (String) - ID камеры
  • is_online_cached.$.is_online (boolean) - в онлайне ли камера (данные is_online_cached не запрашиваются в момент вызова метода, а берутся из кеша - хоть и менее точно, но предпочтительнее, т.к. быстрее)
  • capabilities (Array<Object>) - Массив информации о возможностях драйвера камеры, если параметр запроса include содержит элемент capabilities
  • capabilities.$.id (String) - ID камеры
  • computed (Array<Object>) - Массив информации о камере от драйвера камеры, если параметр запроса include содержит элемент computed
  • computed.$.id (String) - ID камеры
  • count (Integer) - Количество найденных записей.
camera.onvif.discovery

Поиск камере по Onvif.

Входные параметры
timeout (Number = 10)
Возвращаемые значения
camera.onvif.info

Опрос информации о камере по Onvif.

Входные параметры
camera (Object)
Имя Описание
camera.host String
camera.port Number?
camera.username String?
camera.password String?
Возвращаемые значения
  • camera (Object)
  • stream (Object)
  • stream.uri (String) - Ссылка, полученная по Onvif
  • stream.url (String) - Ссылка, полученная по Onvif и содержащая username и password из запроса
  • streams (Object) - Список потоков
  • device (Object)
  • device.manufacturer (String)
  • device.model (String)
  • device.is_megacam (Boolean)
camera.onvif.scan

Сканирование IP для поиска камер

Входные параметры
range (Object)
Имя Описание
range.from String Первый IP адрес из диапазона
range.to String Последний IP адрес из диапазона
ports (Array<Number>?) порты для проверки
timeout (Number = 10) таймаут на одно соединение, в секундах
Возвращаемые значения
camera.operation

Выполнение операции.

Входные параметры
operation (String) Операция
params (Object?) Остальные параметры, зависят от полей, заданный для конкретной операции @see server.drivers
Возвращаемые значения
  • result (Object) - Объект с результатами
camera.ptz.home

Возврат в позицию PTZ по умолчанию.

Входные параметры
camera (Camera)
Имя Описание
camera.id String
Возвращаемые значения
camera.ptz.move

Начало движения PTZ. Чтобы остановить движение, отправьте запрос без параметров.

Входные параметры
camera (Camera)
Имя Описание
camera.id String
ptz (Object)
Имя Описание
ptz.x Integer (по умолчанию 0) Перемещение по оси X, от -100 до 100
ptz.y Integer (по умолчанию 0) Перемещение по оси Y, от -100 до 100
ptz.zoom Integer (по умолчанию 0) Изменение зума, от -100 до 100
continuous (Boolean = false) Использовать непрерывное движение
Возвращаемые значения
camera.ptz.preset.create

Создать пресет PTZ.

Входные параметры
camera (Camera)
Имя Описание
camera.id String
preset (Object)
Имя Описание
preset.name String
Возвращаемые значения
camera.ptz.preset.delete

Удалить пресет PTZ.

Входные параметры
camera (Camera)
Имя Описание
camera.id String
preset (Object)
Имя Описание
preset.id String
Возвращаемые значения
camera.ptz.preset.goto

Перейти пресет PTZ.

Входные параметры
camera (Camera)
Имя Описание
camera.id String
preset (Object)
Имя Описание
preset.id String
Возвращаемые значения
  • status (Boolean)
  • locked (Number) - Число секунд, на которое PTZ заблокировано для других аккаунтов
camera.ptz.preset.list

Список пресетов PTZ.

Входные параметры
camera (Camera)
Имя Описание
camera.id String
Возвращаемые значения
camera.ptz.select

Выделение области и перемещение PTZ.

Входные параметры
camera (Camera)
Имя Описание
camera.id String
rect (Object)
Имя Описание
rect.x1 Integer X1, от 0 до 100
rect.y1 Integer Y1, от 0 до 100
rect.x2 Integer X2, от 0 до 100
rect.y2 Integer Y2, от 0 до 100
Возвращаемые значения
camera.ptz.stop

Остановка движения PTZ.

Входные параметры
camera (Camera)
Имя Описание
camera.id String
Возвращаемые значения
camera.ptz.unlock

Разблокирование управления.

Входные параметры
camera (Camera)
Имя Описание
camera.id String
force (Boolean) разблокировать, даже если заблокировано другим аккаунтом
Возвращаемые значения
camera.snapshot_store

Сохранение снапшота камеры в хранилище.

Требует прав на действие ACL: 'view'

Входные параметры
camera (Object)
Имя Описание
camera.id String
storage (Object)
Имя Описание
storage.path String Путь к папке сохранения
time (Object)
Имя Описание
time.start String? Дата и время снапшота
Возвращаемые значения
  • store (Object) - Объект хранимого файла
  • store.filepath (String) - путь к файлу
  • store.filename (String) - имя файла
camera.subscribe

Подписка на получение событий изменения камер. Метод можно вызывать только при использовании socket.io Присылаемые значения event в событии api-event: camera.create, camera.update, camera.delete, camera.online, camera.offline, camera.detection.config.set

Входные параметры
Object (any)
Возвращаемые значения
camera.transfer

Перенос камеры на другой сервер. Архив будет утерян.

Требует прав на действие ACL: 'admin' для камеры, 'view' для сервера, на который осуществляется перенос.

Входные параметры
camera (Object)
Имя Описание
camera.id String
server (Object)
Имя Описание
server.id String ID сервера, на который осуществляется перенос
Возвращаемые значения
camera.unsubscribe

Отписка от получения событий изменения камер. Метод можно вызывать только при использовании socket.io

Входные параметры
Object (any)
Возвращаемые значения
camera.update

Редактирование камеры.

Поле camera.id является обязательным и должно содержать id редактируемой камеры. Изменение сервера не доступно через этот метод.

Входные параметры
camera (Camera)
Имя Описание
camera.id String
merge (Boolean = false) Склеить вложенные значения (актуально для полей data и api_connection ), переданные в запросе с существующими
Возвращаемые значения
Смотри также:
camera.upsert

Редактирование или создание камеры.

Поле camera.id является обязательным и должно содержать id редактируемой камеры. Изменение сервера не доступно через этот метод.

Входные параметры
camera (Camera)
Имя Описание
camera.id String
merge (Boolean = false) Склеить вложенные значения (актуально для полей data и api_connection ), переданные в запросе с существующими
Возвращаемые значения
Смотри также:

faceapi

faceapi.config.get

Получение настроек Face API

Требует прав на действие ACL: 'admin'

Возвращаемые значения
  • config (Object) - Текущие настройки Face API
faceapi.config.set

Установка настроек Face API

Требует прав на действие ACL: 'admin'

Входные параметры
config (Object) Настройки Face API
Возвращаемые значения
faceapi.reindex

Переиндексация FaceAPI

Возвращаемые значения
faceapi.search.start

Поиск лица из сохраненных детекций. Метод можно вызывать только при использовании socket.io.

После старта поиска API будет присылать события через api-event с данными результатов поиска.

В payload события api-event будет передаваться параметр event, который может принимать следующие значения:

  • faceapi.search.start - в начале поиска
  • faceapi.search.end - после завершения поиска
  • faceapi.search.result - передаётся несколько раз, с результатами поиска

А также свойства:

  • object.process_id - с ID процесса поиска
  • object.detected_at - Дата детекции
  • object.image_data - Изображение, в base64
  • object.camera - Данные о камере
Входные параметры
image (Object)
Имя Описание
image.filedata String? Изображение лица в формате Data URLs
filter (Object)
Имя Описание
filter.date Object
filter.date.$gte String? Дата от
filter.date.$lte String? Дата до
filter.camera Object
filter.camera.id Object
filter.camera.id.$in Array<String>? Массив ID камер, по которым производится поиск
Возвращаемые значения
  • status (Boolean)
  • process_id (String) - ID процесса поиска.
faceapi.search.stop

Принудительная остановка поиска *

Входные параметры
process_id (String) ID процесса поиска
Возвращаемые значения
  • status (Boolean)
  • process_id (String) - ID процесса поиска.
faceapi.subscribe

Подписка на получение новых детекций лиц. Метод можно вызывать только при использовании socket.io

Входные параметры
Object (any)
Возвращаемые значения
faceapi.unsubscribe

Отписка от получения новых детекций лиц. Метод можно вызывать только при использовании socket.io

Входные параметры
Object (any)
Возвращаемые значения
faceapi.version

Версия FaceAPI

Возвращаемые значения

facility

facility.create

Добавление нового объекта.

Входные параметры
facility (Taxonomy)
Возвращаемые значения

gate

gate.create

Добавление нового барьера.

Входные параметры
gate (Gate)
Возвращаемые значения
gate.delete

Удаление барьера.

Поле gate.id является обязательным и должно содержать id удаляемого барьера.

Входные параметры
gate (Gate)
Имя Описание
gate.id String
Возвращаемые значения
gate.generate_webhook

Генерация вебхука на открытие или закрытие барьера.

Вебхук будет доступен некоторое заданное время и пока он не истёк - получатель вебхука сможет управлять шлагбаумом

В вебхук будет необходимо слать JSON {"state": "open"} или {"state": "close"}

Поле gate.id является обязательным и должно содержать id барьера. Требуется право доступа operation

Входные параметры
gate (Object)
Имя Описание
gate.id String
ttl (Number) Срок жизни вебхука в секундах
Возвращаемые значения
gate.get

Чтение барьера.

Поле gate.id является обязательным и должно содержать id читаемого барьера.

Входные параметры
gate (Object)
Имя Описание
gate.id String
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: state , cameras , computed
Возвращаемые значения
  • cameras (Array<Camera>) - Объект связанных камер, если параметр запроса include содержит элемент cameras
  • computed (Object) - Объект информации о барьере от драйвера барьеров, если параметр запроса include содержит элемент computed
  • gate (Gate)
gate.list

Список барьеров.

Возвращает список барьеров, к которым есть доступ.

Входные параметры
action (String = view) Будут возвращены только те модели, для которых разрешено указанное действие ACL
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: states , cameras , servers , computed
can (Array<String>?) Массив с действиями ACL, которые будут проверены и добавлены в ответ
filter (Object?) Фильтр в формате MongoDB
sort (Mixed?) Сортировка в формате MongoDB
limit (Integer?)
offset (Integer?)
Возвращаемые значения
  • gates (Array<Gate>) - Массив с барьерами
  • can (Object) - Объект с результатами проверки действий из параметра params.can
  • count (Integer) - Количество найденных записей.
  • cameras (Array<Camera>) - Объект связанных камер, если параметр запроса include содержит элемент cameras
  • servers (Array<Server>) - Массив с серверами, на которых хранятся камеры, если параметр запроса include содержит элемент server
  • states (Object) - Объект состояния о барьера, если параметр запроса include содержит элемент states
  • states.$.id (String) - ID барьера
  • computed (Object) - Объект информации о барьере от драйвера барьеров, если параметр запроса include содержит элемент computed
  • computed.$.id (String) - ID барьера
gate.set_state

Открытие или закрытие барьера.

Поле gate.id является обязательным и должно содержать id барьера. Требуется право доступа operation

Входные параметры
gate (Object)
Имя Описание
gate.id String
state (String) open или close
Возвращаемые значения
gate.subscribe

Подписка на получение событий изменения барьеров. Метод можно вызывать только при использовании socket.io Присылаемые значения event в событии api-event: gate.create, gate.update, gate.delete

Входные параметры
Object (any)
Возвращаемые значения
gate.unsubscribe

Отписка от получение событий изменения барьеров. Метод можно вызывать только при использовании socket.io

Входные параметры
Object (any)
Возвращаемые значения
gate.update

Редактирование барьера.

Поле gate.id является обязательным и должно содержать id редактируемого барьера.

Входные параметры
gate (Gate)
Имя Описание
gate.id String
merge (Boolean = false) Склеить вложенные значения (актуально для поля data ), переданные в запросе с существующими.
Возвращаемые значения
gate.upsert

Редактирование или создание барьера.

Поле gate.id является обязательным и должно содержать id редактируемого барьера.

Входные параметры
gate (Gate)
Имя Описание
gate.id String
merge (Boolean = false) Склеить вложенные значения (актуально для поля data ), переданные в запросе с существующими.
Возвращаемые значения
megacam.gate.list

Список барьеров megacam.

Возвращает список барьеров, к которым есть доступ.

Входные параметры
facility (Facility)
Имя Описание
facility.id String ID Объекта
action (String = view) Будут возвращены только те модели, для которых разрешено указанное действие ACL
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: states , cameras , computed
can (Array<String>?) Массив с действиями ACL, которые будут проверены и добавлены в ответ
filter (Object?) Фильтр в формате MongoDB
sort (Mixed?) Сортировка в формате MongoDB
limit (Integer?)
offset (Integer?)
Возвращаемые значения
  • gates (Array<Gate>) - Массив с барьерами
  • can (Object) - Объект с результатами проверки действий из параметра params.can
  • count (Integer) - Количество найденных записей.
  • cameras (Array<Camera>) - Объект связанных камер, если параметр запроса include содержит элемент cameras
  • states (Object) - Объект состояний барьеров, если параметр запроса include содержит элемент states
  • states.$.id (String) - ID барьера
  • computed (Object) - Объект информации о барьере от драйвера барьеров, если параметр запроса include содержит элемент computed
  • computed.$.id (String) - ID барьера

gate

gate.create

Добавление нового барьера.

Входные параметры
gate (Gate)
Возвращаемые значения
gate.delete

Удаление барьера.

Поле gate.id является обязательным и должно содержать id удаляемого барьера.

Входные параметры
gate (Gate)
Имя Описание
gate.id String
Возвращаемые значения
gate.generate_webhook

Генерация вебхука на открытие или закрытие барьера.

Вебхук будет доступен некоторое заданное время и пока он не истёк - получатель вебхука сможет управлять шлагбаумом

В вебхук будет необходимо слать JSON {"state": "open"} или {"state": "close"}

Поле gate.id является обязательным и должно содержать id барьера. Требуется право доступа operation

Входные параметры
gate (Object)
Имя Описание
gate.id String
ttl (Number) Срок жизни вебхука в секундах
Возвращаемые значения
gate.get

Чтение барьера.

Поле gate.id является обязательным и должно содержать id читаемого барьера.

Входные параметры
gate (Object)
Имя Описание
gate.id String
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: state , cameras , computed
Возвращаемые значения
  • cameras (Array<Camera>) - Объект связанных камер, если параметр запроса include содержит элемент cameras
  • computed (Object) - Объект информации о барьере от драйвера барьеров, если параметр запроса include содержит элемент computed
  • gate (Gate)
gate.list

Список барьеров.

Возвращает список барьеров, к которым есть доступ.

Входные параметры
action (String = view) Будут возвращены только те модели, для которых разрешено указанное действие ACL
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: states , cameras , servers , computed
can (Array<String>?) Массив с действиями ACL, которые будут проверены и добавлены в ответ
filter (Object?) Фильтр в формате MongoDB
sort (Mixed?) Сортировка в формате MongoDB
limit (Integer?)
offset (Integer?)
Возвращаемые значения
  • gates (Array<Gate>) - Массив с барьерами
  • can (Object) - Объект с результатами проверки действий из параметра params.can
  • count (Integer) - Количество найденных записей.
  • cameras (Array<Camera>) - Объект связанных камер, если параметр запроса include содержит элемент cameras
  • servers (Array<Server>) - Массив с серверами, на которых хранятся камеры, если параметр запроса include содержит элемент server
  • states (Object) - Объект состояния о барьера, если параметр запроса include содержит элемент states
  • states.$.id (String) - ID барьера
  • computed (Object) - Объект информации о барьере от драйвера барьеров, если параметр запроса include содержит элемент computed
  • computed.$.id (String) - ID барьера
gate.set_state

Открытие или закрытие барьера.

Поле gate.id является обязательным и должно содержать id барьера. Требуется право доступа operation

Входные параметры
gate (Object)
Имя Описание
gate.id String
state (String) open или close
Возвращаемые значения
gate.subscribe

Подписка на получение событий изменения барьеров. Метод можно вызывать только при использовании socket.io Присылаемые значения event в событии api-event: gate.create, gate.update, gate.delete

Входные параметры
Object (any)
Возвращаемые значения
gate.unsubscribe

Отписка от получение событий изменения барьеров. Метод можно вызывать только при использовании socket.io

Входные параметры
Object (any)
Возвращаемые значения
gate.update

Редактирование барьера.

Поле gate.id является обязательным и должно содержать id редактируемого барьера.

Входные параметры
gate (Gate)
Имя Описание
gate.id String
merge (Boolean = false) Склеить вложенные значения (актуально для поля data ), переданные в запросе с существующими.
Возвращаемые значения
gate.upsert

Редактирование или создание барьера.

Поле gate.id является обязательным и должно содержать id редактируемого барьера.

Входные параметры
gate (Gate)
Имя Описание
gate.id String
merge (Boolean = false) Склеить вложенные значения (актуально для поля data ), переданные в запросе с существующими.
Возвращаемые значения
megacam.gate.list

Список барьеров megacam.

Возвращает список барьеров, к которым есть доступ.

Входные параметры
facility (Facility)
Имя Описание
facility.id String ID Объекта
action (String = view) Будут возвращены только те модели, для которых разрешено указанное действие ACL
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: states , cameras , computed
can (Array<String>?) Массив с действиями ACL, которые будут проверены и добавлены в ответ
filter (Object?) Фильтр в формате MongoDB
sort (Mixed?) Сортировка в формате MongoDB
limit (Integer?)
offset (Integer?)
Возвращаемые значения
  • gates (Array<Gate>) - Массив с барьерами
  • can (Object) - Объект с результатами проверки действий из параметра params.can
  • count (Integer) - Количество найденных записей.
  • cameras (Array<Camera>) - Объект связанных камер, если параметр запроса include содержит элемент cameras
  • states (Object) - Объект состояний барьеров, если параметр запроса include содержит элемент states
  • states.$.id (String) - ID барьера
  • computed (Object) - Объект информации о барьере от драйвера барьеров, если параметр запроса include содержит элемент computed
  • computed.$.id (String) - ID барьера

global

global.echo

Возвращает полученный запрос.

Входные параметры
params (Object) Любые данные
Возвращаемые значения
  • params (Object) - Полученные данные
  • params.echo (Boolean)
global.params

Параметры API.

Возвращаемые значения
  • api_version (String) - Версия API
  • ui_version (String) - Версия UI, если она установлена на этой же машине
  • registration_allowed (Boolean) - Доступность регистрации анонимами
  • low_mode (Boolean) - Включён ли "низкий режим"
  • two_factor (Boolean) - Включена ли двухфакторная авторизация
  • modules (Object) - Список включённых или отключённых модулей
  • services (Object) - Список включённых или отключённых сервисов
  • features (Object) - Список включённых или отключённых фич
  • branding (Object) - Информация о брендировании
  • limits (Object) - Информация о лимитах
  • tiles_url (String) - Шаблон урла тайлов для карт
  • map_center (Array) - Широта и долгота центра карты
  • timezone (String) - Таймзона
global.pause

Возвращает ответ с паузой.

Входные параметры
params (Object)
pause (Object?) Величина задержки, по умолчанию 5000
Возвращаемые значения
global.ping

Пинг.

Возвращаемые значения
global.time

Возвращает текущее время на сервере.

Возвращаемые значения
global.version

Возвращает версию API.

Since: 2.60.4 ui_version
Возвращаемые значения

group

group.create

Добавление новой группы.

Входные параметры
group (Group)
Возвращаемые значения
group.delete

Удаление группы.

Поле group.id является обязательным и должно содержать id удаляемой группы.

Входные параметры
group (Group)
Имя Описание
group.id String
Возвращаемые значения
group.get

Чтение группы.

Поле group.id является обязательным и должно содержать id читаемой группы.

Входные параметры
group (Object)
Имя Описание
group.id String
Возвращаемые значения
group.list

Список групп.

Возвращает список групп, к которым есть доступ. Для обычного пользователя вернет список групп, в которых он состоит.

Входные параметры
action (String = view) Будут возвращены только те модели, для которых разрешено указанное действие ACL
include (Array<String>?) Массив с связанными данными, которые будут добавлены в ответ. Допустимые значения: parents
can (Array<String>?) Массив с действиями ACL, которые будут проверены и добавлены в ответ
filter (Object?) Фильтр в формате MongoDB
sort (Mixed?) Сортировка в формате MongoDB
limit (Integer?)
offset (Integer?)
Возвращаемые значения
  • groups (Array<Group>) - Массив с группами
  • parents Массив с родительскими терминами таксономии, если параметр запроса include содержит элемент parents . (Array<Group>)
  • can (Object) - Объект с результатами проверки действий из параметра params.can
  • count (Integer) - Количество найденных записей.
group.subscribe

Подписка на получение событий изменения групп. Метод можно вызывать только при использовании socket.io Присылаемые значения event в событии api-event: group.create, group.update, group.delete

Входные параметры
Object (any)
Возвращаемые значения
group.unsubscribe

Отписка от получение событий изменения групп. Метод можно вызывать только при использовании socket.io

Входные параметры
Object (any)
Возвращаемые значения
group.update

Редактирование группы.

Поле group.id является обязательным и должно содержать id редактируемой группы.

Входные параметры
group (Group)
Имя Описание
group.id String
accounts (Array<String>?) Массово добавить/удалить аккаунты из группы. Если передать пустой массив, все пользователи из группы будут удалены.
merge (Boolean = false) Склеить вложенные значения (актуально для поля data ), переданные в запросе с существующими.
Возвращаемые значения
group.upsert

Редактирование или создание группы.

Поле group.id является обязательным и должно содержать id редактируемой группы.

Входные параметры
group (Group)
Имя Описание
group.id String
accounts (Array<String>?) Массово добавить/удалить аккаунты из группы. Если передать пустой массив, все пользователи из группы будут удалены.
merge (Boolean = false) Склеить вложенные значения (актуально для поля data ), переданные в запросе с существующими.
Возвращаемые значения

guard

guard.get

Получение режима охраны *

Возвращаемые значения
  • guard (Boolean) - Режим охраны
guard.set

Постановка и снятие режима охраны *

Входные параметры
guard (Boolean) Включён режим охраны
Возвращаемые значения
  • status (Boolean) - Статус операции
  • guard (Boolean) - Новый режим охраны
guard.subscribe

Подписка на получение событий охраны. Метод можно вызывать только при использовании socket.io

API будет присылать события через api-event с данными результатов поиска.

В payload события api-event будет передаваться параметр event, который может принимать следующие значения:

  • guard.set - при постановке или снятии с охраны
  • guard.detection - при срабатывании детекции
Входные параметры
Object (any)
Возвращаемые значения
guard.unsubscribe

Отписка от получения событий охраны. Метод можно вызывать только при использовании socket.io

Входные параметры
Object (any)
Возвращаемые значения

interceptor

interceptor.acknowledged.list

Список подтверждённых событий перехвата

Входные параметры
filter (Object) Фильтр в формате MongoDB. Исключение: поддерживается запрос $like
Имя Описание
filter.datetime Object Фильтр даты в формате MongoDB - запросы без указания диапазона дат запрещены
filter.datetime.$gte String
filter.datetime.$lte String
filter.acknowledged_by String
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: cameras , accounts
sort (Mixed?) Сортировка в формате MongoDB
limit (Integer?)
offset (Integer?)
Возвращаемые значения
  • count (Integer) - Количество найденных записей.
  • acknowledged (Array<Object>) - Найденные записи.
  • cameras (Array<Camera>) - Массив камер, если параметр запроса include содержит элемент camera
interceptor.camera.list

Список камер для перехвата.

Возвращает список камер, к которым есть доступ и которые участвуют в модуле Interceptor.

Входные параметры
include (Array<String>?) Массив с связанными данными, которые будут добавлены в ответ. Допустимые значения: server , taxonomies
filter (Object?) Фильтр в формате MongoDB
sort (Mixed?) Сортировка в формате MongoDB
limit (Integer?)
offset (Integer?)
Возвращаемые значения
  • cameras (Array<Camera>) - Массив с камерами.
  • servers (Array<Server>) - Массив с серверами, на которых хранятся камеры, если параметр запроса include содержит элемент server
  • taxonomies (Array<Taxonomy>) - Массив с терминами таксономии, которым принадлежат камеры, если параметр запроса include содержит элемент taxonomies
  • count (Integer) - Количество найденных записей.
interceptor.event.accept

Принятие (отработка) события перехвата оператором.

Поля event.id и event.datetime являются обязательными

Входные параметры
event (Object)
Имя Описание
event.id String
event.datetime String
comment (String?)
Возвращаемые значения
interceptor.event.acknowledge

Подтверждение получения события перехвата.

Поля event.id и event.datetime являются обязательными

Входные параметры
event (Object)
Имя Описание
event.id String
event.datetime String
Возвращаемые значения
interceptor.event.csv

Экспорт событий перехвата в формат CSV. Метод можно вызывать только при использовании http. Метод отличается от типичных ответов - возвращается не JSON, а сразу начинается передача данных. Ошибки возвращаются как обычно + код HTTP. Метод вернёт статус 204, если экспорт не содержит данных. Метод вернёт ошибку 422 при попытке экспорта более ста тысяч записей.

Входные параметры
filter (Object) Фильтр в формате MongoDB. Исключение: поддерживается запрос $like
Имя Описание
filter.datetime Object Фильтр даты в формате MongoDB - запросы без указания диапазона дат запрещены
filter.datetime.$gte String
filter.datetime.$lte String
csv (Object?)
Имя Описание
csv.delimiter String (по умолчанию ,) Символ-разделитель полей CSV
csv.charset String (по умолчанию utf-8) Кодировка. Допустимые значения: utf-8 , windows-1251
sort (Mixed?) Сортировка в формате MongoDB
limit (Integer?)
offset (Integer?)
interceptor.event.get

Чтение события перехвата.

Поля event.id и event.datetime являются обязательными

Входные параметры
event (Object)
Имя Описание
event.id String
event.datetime String
include (Array<String>?) Массив с связанными данными, которые будут добавлены в ответ. Допустимые значения: server , camera , wanted , player , files , files_fast
Возвращаемые значения
  • event (InterceptorEvent) - Событие
  • wanted (InterceptorWanted) - Ориентировка, если параметр запроса include содержит элемент wanted
  • camera (Camera) - Камера, зафиксировавшая событие, если параметр запроса include содержит элемент camera
  • server (Server) - Сервер, на котором хранится камера, если параметр запроса include содержит элемент server
  • player (Object) - Объект плеера, если параметр запроса include содержит элемент player . Плеер необходимо запрашивать каждый раз, когда начинается просмотр видео, не допускается сохранять URL для повторного переиспользования
  • files (Array<Object>) - Массив с файлами из RTMS, если параметр запроса include содержит элемент files
  • files_fast (Array<Object>) - Массив с файлами, запрошенными напрямую с устройства, если параметр запроса include содержит элемент files_fast
interceptor.event.list

Список отловленных событий перехвата

Входные параметры
filter (Object) Фильтр в формате MongoDB. Исключение: поддерживается запрос $like
Имя Описание
filter.datetime Object Фильтр даты в формате MongoDB - запросы без указания диапазона дат запрещены
filter.datetime.$gte String
filter.datetime.$lte String
filter.acknowledged_by String
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: cameras , metadata , origins , directions , accounts
sort (Mixed?) Сортировка в формате MongoDB
limit (Integer?)
offset (Integer?)
Возвращаемые значения
  • count (Integer) - Количество найденных записей.
  • events (Array<InterceptorEvent>) - Найденные записи.
  • cameras (Array<Camera>) - Массив камер, если параметр запроса include содержит элемент camera
  • directions (Array<Object>) - Предполагаемые траектории передвижения, если параметр запроса include содержит элемент directions и сервис направлений включён
interceptor.event.reasons

Типы причин перехватов

Входные параметры
pairs (Boolean = false) Ответить массивом объектов
Возвращаемые значения
  • reasons (Object) - Объект причин перехватов
interceptor.event.subscribe

Подписка на получение новых событий. Метод можно вызывать только при использовании socket.io Присылаемые значения event в событии api-event: rtms.capture.intercept

Входные параметры
filter (Object?) Фильтр в формате MongoDB. Исключение: поддерживается запрос $like
time (Object?)
Имя Описание
time.end String? Дата и время автоматической отписки
Возвращаемые значения
interceptor.event.unsubscribe

Отписка от получения новых событий. Метод можно вызывать только при использовании socket.io

Входные параметры
Object (any)
Возвращаемые значения
interceptor.event.vehicle_classes

Классы ТС

Входные параметры
pairs (Boolean = false) Ответить массивом объектов
Возвращаемые значения
  • vehicle_classes (Object) - Объект причин перехватов
interceptor.report.accounts

Список аккаунтов, которые участвуют в системе Interceptor - т.е. те, кто имеет право доступа intercept, но не право редактировать камеры

Входные параметры
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: groups
Возвращаемые значения
  • accounts (Array<Account>)
  • groups (Array<Group>) - Массив с группами, в которых состоят аккаунты, если параметр запроса include содержит элемент groups
interceptor.report.comments

Статистика по уникальным значениям поля "Комментарий" по принятым событиям

Входные параметры
filter (Object) Фильтр в формате MongoDB. Исключение: поддерживается запрос $like
Имя Описание
filter.datetime Object Фильтр даты в формате MongoDB - запросы без указания диапазона дат запрещены
filter.datetime.$gte String
filter.datetime.$lte String
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: accounts
pairs (Boolean = false) Ответить массивом объектов
Возвращаемые значения
  • stats (Object) - Строки статистики.
  • stats.$ (Array<Object>) - Строки статистики. Ключ - id аккаунта, если не передан pair
  • stats.$.accepted_by (String) - ID аккаунта
  • stats.$.accepted_comment (String) - Комментарий (пустой комментарий считается отдельно)
  • stats.$.count (Number) - Количество.
interceptor.report.list

Отчёт по Interceptor. Рекомендуется изучить примеры, находящиеся в коллекции Postman (см. ссылку в README)

Входные параметры
filter (Object) Фильтр в формате MongoDB. Исключение: поддерживается запрос $like
Имя Описание
filter.datetime Object Фильтр даты в формате MongoDB - запросы без указания диапазона дат запрещены
filter.datetime.$gte String
filter.datetime.$lte String
group (Object?)
Имя Описание
group.by String (по умолчанию camera) Поле группировки
group.date Boolean (по умолчанию true) Группировать по дате
group.hour Boolean (по умолчанию false) Группировать до часов
group.plate_number Boolean (по умолчанию false) Группировать по ГРНЗ
reasons (Array<String>?) Массив с типами причин перехватов, которые будут подсчитаны дополнительно и добавлены в ответ.
accepted_by ((Array<String> | Boolean)?) Массив с ID аккаунтов, принявших (отработавших) события, которые будут подсчитаны и добавлены в ответ, либо true - в этом случае будет подсчитаны все принятые события.
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: cameras , accounts , acknowledged
pairs (Boolean = false) Ответить массивом объектов
Возвращаемые значения
  • stats (Object) - Строки статистики.
  • stats.$ (Array<Object>) - Строки статистики. Ключ - значение group.by .
  • stats.$.date (String) - Дата, если group.hour = false.
  • stats.$.datetime (String) - Дата и время, если group.hour = true.
  • stats.$.count (Number) - Количество.
interceptor.wanted.create

Добавление новой ориентировки ГРНЗ.

Входные параметры
interceptor_wanted (InterceptorWanted)
Возвращаемые значения
interceptor.wanted.csv

Экспорт ориентировок ГРНЗ в формат CSV. Метод можно вызывать только при использовании http. Метод отличается от типичных ответов - возвращается не JSON, а сразу начинается передача данных. Ошибки возвращаются как обычно + код HTTP. Метод вернёт статус 204, если экспорт не содержит данных. Метод вернёт ошибку 422 при попытке экспорта более ста тысяч записей.

Входные параметры
filter (Object) Фильтр в формате MongoDB. Исключение: поддерживается запрос $like
csv (Object?)
Имя Описание
csv.delimiter String (по умолчанию ,) Символ-разделитель полей CSV
csv.charset String (по умолчанию utf-8) Кодировка. Допустимые значения: utf-8 , windows-1251
sort (Mixed?) Сортировка в формате MongoDB
limit (Integer?)
offset (Integer?)
Возвращаемые значения
interceptor.wanted.delete

Удаление ориентировки ГРНЗ.

Поле interceptor_wanted.id является обязательным и должно содержать id удаляемой ориентировки.

Входные параметры
interceptor_wanted (InterceptorWanted)
Имя Описание
interceptor_wanted.id String
Возвращаемые значения
interceptor.wanted.get

Чтение ориентировки ГРНЗ.

Поле interceptor_wanted.id является обязательным и должно содержать id читаемой ориентировки.

Входные параметры
interceptor_wanted (Object)
Имя Описание
interceptor_wanted.id String
Возвращаемые значения
interceptor.wanted.list

Список ориентировок ГРНЗ.

Возвращает список ориентировок, к которым есть доступ.

Входные параметры
action (String = view) Будут возвращены только те модели, для которых разрешено указанное действие ACL
can (Array<String>?) Массив с действиями ACL, которые будут проверены и добавлены в ответ
filter (Object?) Фильтр в формате MongoDB
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: account
sort (Mixed?) Сортировка в формате MongoDB
limit (Integer?)
offset (Integer?)
Возвращаемые значения
  • interceptor_wanted (Array<InterceptorWanted>) - Массив с ориентировками
  • can (Object) - Объект с результатами проверки действий из параметра params.can
  • count (Integer) - Количество найденных записей.
  • accounts (Array<Account>) - Массив с аккаунтами, которые создали ориентировки, если параметр запроса include содержит элемент account
interceptor.wanted.subscribe

Подписка на получение событий изменения ориентировок ГРНЗ. Метод можно вызывать только при использовании socket.io Присылаемые значения event в событии api-event: interceptor.wanted.committed. В отличие от других способов доставки изменений, данное событие приходит не чаще, чем 1 раз в 20 секунд, и не содержит информации об изменённой ориентировке.

Входные параметры
Object (any)
Возвращаемые значения
interceptor.wanted.tags

Список тегов.

Возвращает список тегов ориентировок ГРНЗ.

Возвращаемые значения
interceptor.wanted.unsubscribe

Отписка от получение событий изменения ориентировок ГРНЗ. Метод можно вызывать только при использовании socket.io

Входные параметры
Object (any)
Возвращаемые значения
interceptor.wanted.update

Редактирование ориентировки ГРНЗ.

Поле interceptor_wanted.id является обязательным и должно содержать id редактируемой ориентировки.

Входные параметры
interceptor_wanted (InterceptorWanted)
Имя Описание
interceptor_wanted.id String
merge (Boolean = false) Склеить вложенные значения (актуально для поля data ), переданные в запросе с существующими
Возвращаемые значения
interceptor.wanted.upsert

Редактирование или создание ориентировки ГРНЗ.

Поле interceptor_wanted.id либо interceptor_wanted.plate_number является обязательным и должно содержать id либо ГРНЗ редактируемой ориентировки.

Входные параметры
interceptor_wanted (InterceptorWanted)
Имя Описание
interceptor_wanted.id String
interceptor_wanted.plate_number String
merge (Boolean = false) Склеить вложенные значения (актуально для поля data ), переданные в запросе с существующими
Возвращаемые значения

list_number

list_number.create

Добавление нового списока.

Входные параметры
list_number (ListNumber)
Возвращаемые значения
list_number.delete

Удаление списока.

Поле list_number.id является обязательным и должно содержать id удаляемого списока.

Входные параметры
list_number (ListNumber)
Имя Описание
list_number.id String
Возвращаемые значения
list_number.get

Чтение списока.

Поле list_number.id является обязательным и должно содержать id читаемого списока.

Входные параметры
list_number (Object)
Имя Описание
list_number.id String
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: account , allowed , cameras
can (String?) Действие ACL, которое будут проверено, если параметр запроса include содержит элемент allowed
Возвращаемые значения
  • list_number (ListNumber)
  • account (Account) - Аккаунт, который владеет списоком, если параметр запроса include содержит элемент account
  • allowed (Array<Account>) - Массив с аккаунтами, которые имеют доступ к списоку, если параметр запроса include содержит элемент allowed .
list_number.list

Список списков.

Возвращает список списков, к которым есть доступ.

Входные параметры
action (String = view) Будут возвращены только те модели, для которых разрешено указанное действие ACL
can (Array<String>?) Массив с действиями ACL, которые будут проверены и добавлены в ответ
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: server , account
filter (Object?) Фильтр в формате MongoDB
sort (Mixed?) Сортировка в формате MongoDB
limit (Integer?)
offset (Integer?)
Возвращаемые значения
  • list_numbers (Array<ListNumber>) - Массив с списокми. ВНИМАНИЕ! stages.$.image не будет включён в ответ.
  • can (Object) - Объект с результатами проверки действий из параметра params.can
  • accounts (Array<Account>) - Массив с аккаунтами, которые владеют списокми, если параметр запроса include содержит элемент account
  • count (Integer) - Количество найденных записей.
list_number.update

Редактирование списока.

Поле list_number.id является обязательным и должно содержать id редактируемого списока.

Входные параметры
list_number (ListNumber)
Имя Описание
list_number.id String
merge (Boolean = false) Склеить вложенные значения (актуально для поля data ), переданные в запросе с существующими
Возвращаемые значения

logger

logger.create

Добавление нового лога.

Входные параметры
logger (Logger)
Возвращаемые значения
logger.csv

Экспорт логов в формат CSV. Метод можно вызывать только при использовании http. Метод отличается от типичных ответов - возвращается не JSON, а сразу начинается передача данных. Ошибки возвращаются как обычно + код HTTP. Метод вернёт статус 204, если экспорт не содержит данных. Метод вернёт ошибку 422 при попытке экспорта более ста тысяч записей без include: raw, или более 1000 записей с include: raw

Since: 2.76.11
Входные параметры
filter (Object?) Фильтр в формате MongoDB
sort (Mixed?) Сортировка в формате MongoDB
limit (Integer?)
offset (Integer?)
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: raw
csv (Object?)
Имя Описание
csv.delimiter String (по умолчанию ,) Символ-разделитель полей CSV
csv.charset String (по умолчанию utf-8) Кодировка. Допустимые значения: utf-8 , windows-1251
sort (Mixed?) Сортировка в формате MongoDB
limit (Integer?)
offset (Integer?)
Возвращаемые значения
logger.events

Типы событий

Since: 2.57.0
Входные параметры
pairs (Boolean = false) Ответить массивом объектов
filter (Object)
Имя Описание
filter.in_use String (по умолчанию false) Оставить в списке только типы, которые зафиксированы в логах
Возвращаемые значения
  • events (Object) - Объект типов событий
logger.get

Чтение лога.

Поле logger.id является обязательным и должно содержать id читаемого лога.

Входные параметры
logger (Object)
Имя Описание
logger.id String
include (Array<String>?) Массив с связанными данными, которые будут добавлены в ответ. Допустимые значения: account , allowed
can (String?) Действие ACL, которое будут проверено, если параметр запроса include содержит элемент allowed
Возвращаемые значения
  • logger (Logger)
  • account (Account) - Аккаунт, который владеет логом, если параметр запроса include содержит элемент account
  • allowed (Array<Account>) - Массив с аккаунтами, которые имеют доступ к логам, если параметр запроса include содержит элемент allowed .
logger.list

Список логов.

Возвращает список логов, к которым есть доступ.

Входные параметры
action (String = view) Будут возвращены только те модели, для которых разрешено указанное действие ACL
can (Array<String>?) Массив с действиями ACL, которые будут проверены и добавлены в ответ
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: account
filter (Object?) Фильтр в формате MongoDB
sort (Mixed?) Сортировка в формате MongoDB
limit (Integer?)
offset (Integer?)
Возвращаемые значения
  • loggers (Array<Logger>) - Массив с логами.
  • can (Object) - Объект с результатами проверки действий из параметра params.can
  • accounts (Array<Account>) - Массив с аккаунтами, которые владеют логами, если параметр запроса include содержит элемент account
  • count (Integer) - Количество найденных записей.
logger.subscribe

Подписка на получение событий запуска действий. Метод можно вызывать только при использовании socket.io

Входные параметры
Object (any)
Возвращаемые значения
logger.subscribe

Подписка на получение событий логов. Метод можно вызывать только при использовании socket.io

Входные параметры
Object (any)
Возвращаемые значения
logger.unsubscribe

Отписка от получение событий логов. Метод можно вызывать только при использовании socket.io

Входные параметры
Object (any)
Возвращаемые значения
logger.unsubscribe

Отписка от получение событий логов. Метод можно вызывать только при использовании socket.io

Входные параметры
Object (any)
Возвращаемые значения

lvs2

lvs2.camera.list

Список камер lvs2.

Возвращает список камер, к которым есть доступ и которые участвуют в lvs2.

Входные параметры
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: server , taxonomies
filter (Object?) Фильтр в формате MongoDB
sort (Mixed?) Сортировка в формате MongoDB
limit (Integer?)
offset (Integer?)
Возвращаемые значения
  • cameras (Array<Camera>) - Массив с камерами.
  • servers (Array<Server>) - Массив с серверами, на которых хранятся камеры, если параметр запроса include содержит элемент server
  • taxonomies (Array<Taxonomy>) - Массив с терминами таксономии, которым принадлежат камеры, если параметр запроса include содержит элемент taxonomies
  • count (Integer) - Количество найденных записей.
lvs2.record.csv

Экспорт записей из lvs2 в формат CSV. Метод можно вызывать только при использовании http. Метод отличается от типичных ответов - возвращается не JSON, а сразу начинается передача данных. Ошибки возвращаются как обычно + код HTTP. Метод вернёт статус 204, если экспорт не содержит данных. Метод вернёт ошибку 422 при попытке экспорта более ста тысяч записей.

Входные параметры
filter (Object) Фильтр в формате MongoDB. Исключение: поддерживается запрос $like
Имя Описание
filter.datetime Object Фильтр даты в формате MongoDB - запросы без указания диапазона дат запрещены
filter.datetime.$gte String
filter.datetime.$lte String
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: certificate , metadata
csv (Object?)
Имя Описание
csv.delimiter String (по умолчанию ,) Символ-разделитель полей CSV
csv.charset String (по умолчанию utf-8) Кодировка. Допустимые значения: utf-8 , windows-1251
sort (Mixed?) Сортировка в формате MongoDB
limit (Integer?)
offset (Integer?)
Возвращаемые значения
lvs2.record.get

Чтение записи из lvs2

Поля record.id и record.datetime являются обязательными

Входные параметры
record (Object)
Имя Описание
record.id String
record.datetime String
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: server , camera , player , screen , files , metadata
Возвращаемые значения
  • record (Lvs2Record) - Запись
  • camera (Camera) - Камера, зафиксировавшая событие, если параметр запроса include содержит элемент camera
  • server (Server) - Сервер, на котором хранится камера, если параметр запроса include содержит элемент server
  • player (Object) - Объект плеера, если параметр запроса include содержит элемент player . Плеер необходимо запрашивать каждый раз, когда начинается просмотр видео, не допускается сохранять URL для повторного переиспользования
lvs2.record.levels

Уровни записей

Входные параметры
pairs (Boolean = false) Ответить массивом объектов
Возвращаемые значения
  • levels (Object) - Объект типов записей
lvs2.record.list

Список записей из lvs2

Входные параметры
filter (Object) Фильтр в формате MongoDB. Исключение: поддерживается запрос $like
Имя Описание
filter.datetime Object Фильтр даты в формате MongoDB - запросы без указания диапазона дат запрещены
filter.datetime.$gte String
filter.datetime.$lte String
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: cameras , metadata , files , alarms , directions
sort (Mixed?) Сортировка в формате MongoDB
limit (Integer?)
offset (Integer?)
performance (Boolean = false) Включить режим оптимизации производительности. В этом режиме не будет подсчитано количество записей.
Возвращаемые значения
  • count (Integer) - Количество найденных записей
  • records (Array<Lvs2Record>) - Найденные записи
  • cameras (Array<Camera>) - Массив с камерами, если параметр запроса include содержит элемент cameras
  • alarms (Array<Alarm>) - Массив с тревогами, если параметр запроса include содержит элемент alarms
lvs2.record.subscribe

Подписка на получение новых записей. Метод можно вызывать только при использовании socket.io Присылаемые значения event в событии api-event: lvs2.capture

Входные параметры
filter (Object) Фильтр в формате MongoDB. Исключение: поддерживается запрос $like
Возвращаемые значения
lvs2.record.summary

Сводка по полю

Возвращает список значений поля и количество записей.

Входные параметры
filter (Object) Фильтр в формате MongoDB. Исключение: поддерживается запрос $like
Имя Описание
filter.datetime Object Фильтр даты в формате MongoDB - запросы без указания диапазона дат запрещены
filter.datetime.$gte String
filter.datetime.$lte String
field (String) Поле, по которому будет выполнена сводка. Допустимые значения: type , description , level , server , camera
Возвращаемые значения
  • lvs (Array<Object>) - Массив с пакетами
lvs2.record.types

Типы записей

Входные параметры
pairs (Boolean = false) Ответить массивом объектов
Возвращаемые значения
  • types (Object) - Объект типов записей
lvs2.record.unsubscribe

Отписка от получения новых записей. Метод можно вызывать только при использовании socket.io

Входные параметры
Object (any)
Возвращаемые значения
lvs2.report.list

Отчёт по LVS2

Входные параметры
filter (Object) Фильтр в формате MongoDB. Исключение: поддерживается запрос $like
Имя Описание
filter.datetime Object Фильтр даты в формате MongoDB - запросы без указания диапазона дат запрещены
filter.datetime.$gte String
filter.datetime.$lte String
types (Array<String>?) Массив с типами событий, которые будут подсчитаны и добавлены в ответ.
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: cameras , last_datetimes
Возвращаемые значения
  • count (Integer) - Количество найденных записей.
  • stats (Object) - Строки статистики.
  • stats.$ (Array<Object>) - Строки статистики. Ключ - ID камеры.
  • stats.$.date (String) - Дата, если group.hour = false.
  • stats.$.datetime (String) - Дата и время, если group.hour = true.
  • stats.$.count (Number) - Количество.
lvs2.report.stats

Состояние сборщика LVS2

Возвращаемые значения
  • stats (Object) - Строки статистики.
  • state.$ (Object<Object>) - Строки статистики. Ключ - ID сервера.

megacam

megacam.facility.get

Чтение объекта.

Поле facility.id является обязательным и должно содержать id читаемого объекта.

Входные параметры
facility (Object)
Имя Описание
facility.id String
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: cameras , screens , plans , gates
Возвращаемые значения
  • facility (Taxonomy)
  • cameras (Array<Camera>) - Массив с камерами объекта, если параметр запроса include содержит элемент cameras
  • screens (Array<Screen>) - Массив с экранами объекта, если параметр запроса include содержит элемент screens
  • plans (Array<Plan>) - Массив с планаи объекта, если параметр запроса include содержит элемент plans
  • gates (Array<Gate>) - Массив с барьерами объекта, если параметр запроса include содержит элемент gates
megacam.facility.list

Список объектов.

Возвращает список объектов, к которым есть доступ.

Входные параметры
action (String = view) Будут возвращены только те модели, для которых разрешено указанное действие ACL
filter (Object?) Фильтр в формате MongoDB
sort (Mixed?) Сортировка в формате MongoDB
limit (Integer?)
offset (Integer?)
Возвращаемые значения
  • facilities (Array<Taxonomy>) - Массив с объектами.
  • count (Integer) - Количество найденных записей.
megacam.gate.number.create

Добавить ГРНЗ

Входные параметры
facility (Facility)
Имя Описание
facility.id String ID Объекта
plate_number (String) ГРНЗ
expired_at (String?) Дата истечения срока действия
Возвращаемые значения
megacam.gate.number.delete

Удалить ГРНЗ

Входные параметры
facility (Facility)
Имя Описание
facility.id String ID Объекта
plate_number (String) ГРНЗ
Возвращаемые значения
megacam.gate.number.list

Список ГРНЗ

Входные параметры
facility (Facility)
Имя Описание
facility.id String ID Объекта

person

person.create

Добавление новой персоны.

Входные параметры
person (Person)
Возвращаемые значения
person.delete

Удаление персоны.

Поле person.id является обязательным и должно содержать id удаляемой персоны.

Входные параметры
person (Person)
Имя Описание
person.id String
Возвращаемые значения
person.get

Чтение персоны.

Поле person.id является обязательным и должно содержать id читаемой персоны.

Входные параметры
person (Object)
Имя Описание
person.id String
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: account , allowed
can (String?) Действие ACL, которое будут проверено, если параметр запроса include содержит элемент allowed
Возвращаемые значения
  • person (Person)
  • account (Account) - Аккаунт, который владеет записью, если параметр запроса include содержит элемент account
  • allowed (Array<Account>) - Массив с аккаунтами, которые имеют доступ к персоне, если параметр запроса include содержит элемент allowed .
person.list

Список персон.

Возвращает список персон, к которым есть доступ.

Входные параметры
action (String = view) Будут возвращены только те модели, для которых разрешено указанное действие ACL
can (Array<String>?) Массив с действиями ACL, которые будут проверены и добавлены в ответ
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: account
filter (Object?) Фильтр в формате MongoDB
sort (Mixed?) Сортировка в формате MongoDB
limit (Integer?)
offset (Integer?)
Возвращаемые значения
  • persons (Array<Person>) - Массив с персонами. ВНИМАНИЕ! faces.$.image не будет включён в ответ.
  • can (Object) - Объект с результатами проверки действий из параметра params.can
  • accounts (Array<Account>) - Массив с аккаунтами, которые владеют записями, если параметр запроса include содержит элемент account
  • count (Integer) - Количество найденных записей.
person.photo

Чтение первой фотки персоны.

Поле person.id является обязательным и должно содержать id читаемой персоны.

Входные параметры
person (Object)
Имя Описание
person.id String
Возвращаемые значения
person.reasons

Классификатор контроля

Входные параметры
pairs (Boolean = false) Ответить массивом объектов
Возвращаемые значения
  • reasons (Object) - Объект причин для добавления лица в список контроля
person.report.taxonomies

Отчёт по таксономиям

Входные параметры
filter (Object) Фильтр в формате MongoDB.
Возвращаемые значения
  • stats (Array<{taxonomy: Taxonomy, count: Number}>) - Суммарная статистика по таксономиям
person.search.cameras

Отчёт по камерам из результатов поиска

Since: 2.84.20
Входные параметры
filter (Object) Фильтр в формате MongoDB
Имя Описание
filter.search_id String ID процесса поиска
Возвращаемые значения
  • items (Array<PersonSearchItem>) - Массив с результатами поиска.
  • count (Integer) - Количество найденных записей.
  • completed (Boolean) - Завершёл ли процесс поиска.
  • expired_at (String) - Дата, после которой результаты поиска будут очищены.
person.search.list

Результаты поиска.

Возвращает список записей, соответствующих существующему поиску.

Входные параметры
filter (Object) Фильтр в формате MongoDB
Имя Описание
filter.search_id String ID процесса поиска
sort (Mixed?) Сортировка в формате MongoDB
limit (Integer?)
offset (Integer?)
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: cameras , directions
Возвращаемые значения
  • items (Array<PersonSearchItem>) - Массив с результатами поиска.
  • count (Integer) - Количество найденных записей.
  • completed (Boolean) - Завершёл ли процесс поиска.
  • expired_at (String) - Дата, после которой результаты поиска будут очищены.
person.search.match

Поиск совпадения лица в списке персон

Доступно два варианта - передать base64, либо загружить файл методом multipart/form-data При multipart/form-data поле image.filedata необязательно. Дополнительные параметры будет передаваться в поле с именем json, а данные файла - в поле file

Входные параметры
image (Object)
Имя Описание
image.filedata String? Изображение лица в формате Data URLs
event (Object?)
Имя Описание
event.camera Object?
event.camera.id String? ID камеры, на которой была детекция лица
event.datetime String? Дата и время детекции лица
event.latlng Array<Number>? координаты детекции лица
faces (Array<{id: String, rect: {top: Number, right: Number, bottom: Number, left: Number}}>?) Массив с данными о выборке лиц с фото
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: person_image
Возвращаемые значения
  • [results] (Array<{face: {id: String}, score: Number, person: Person}>) - Список результатов
  • [person_ids] (Array<{id: String, score: Number}>) - Список персон, которые потенциально могут подходить
person.search.start

Новый поиск лица из сохраненных детекций. Операция является асинхронной.

После старта поиска API будет присылать события через api-event с данными результатов поиска.

Входные параметры
image (Object)
Имя Описание
image.filedata String? Изображение лица в формате Data URLs
filter (Object)
Имя Описание
filter.datetime Object
filter.datetime.$gte String Дата от
filter.datetime.$lte String Дата до
Возвращаемые значения
  • status (Boolean)
  • search_id (String) - ID процесса поиска.
  • completed (Boolean) - Завершёл ли процесс поиска.
  • expired_at (String) - Дата, после которой результаты поиска будут очищены.
person.subscribe

Подписка на получение событий изменения персон. Метод можно вызывать только при использовании socket.io Присылаемые значения event в событии api-event: person.create, person.update, person.delete Присылаемый объект не будет содержать фотографии (поле faces.$.image)

Входные параметры
Object (any)
Возвращаемые значения
person.tags

Список тегов.

Возвращает список тегов персон.

Возвращаемые значения
person.unsubscribe

Отписка от получение событий изменения персон. Метод можно вызывать только при использовании socket.io

Входные параметры
Object (any)
Возвращаемые значения
person.update

Редактирование персоны.

Поле person.id является обязательным и должно содержать id редактируемой персоны.

Входные параметры
person (Person)
Имя Описание
person.id String
merge (Boolean = false) Склеить вложенные значения (актуально для поля data ), переданные в запросе с существующими
Возвращаемые значения

plan

plan.create

Добавление нового плана.

Входные параметры
plan (Plan)
Возвращаемые значения
plan.delete

Удаление плана.

Поле plan.id является обязательным и должно содержать id удаляемого плана.

Входные параметры
plan (Plan)
Имя Описание
plan.id String
Возвращаемые значения
plan.get

Чтение плана.

Поле plan.id является обязательным и должно содержать id читаемого плана.

Входные параметры
plan (Object)
Имя Описание
plan.id String
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: account , allowed , cameras
can (String?) Действие ACL, которое будут проверено, если параметр запроса include содержит элемент allowed
Возвращаемые значения
  • plan (Plan)
  • account (Account) - Аккаунт, который владеет планом, если параметр запроса include содержит элемент account
  • allowed (Array<Account>) - Массив с аккаунтами, которые имеют доступ к плану, если параметр запроса include содержит элемент allowed .
  • cameras (Array<Camera>) - Массив с камерами, если параметр запроса include содержит элемент cameras
plan.list

Список планов.

Возвращает список планов, к которым есть доступ.

Входные параметры
action (String = view) Будут возвращены только те модели, для которых разрешено указанное действие ACL
can (Array<String>?) Массив с действиями ACL, которые будут проверены и добавлены в ответ
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: server , account
filter (Object?) Фильтр в формате MongoDB
sort (Mixed?) Сортировка в формате MongoDB
limit (Integer?)
offset (Integer?)
Возвращаемые значения
  • plans (Array<Plan>) - Массив с планми. ВНИМАНИЕ! stages.$.image не будет включён в ответ.
  • can (Object) - Объект с результатами проверки действий из параметра params.can
  • accounts (Array<Account>) - Массив с аккаунтами, которые владеют планми, если параметр запроса include содержит элемент account
  • count (Integer) - Количество найденных записей.
plan.subscribe

Подписка на получение событий изменения планов. Метод можно вызывать только при использовании socket.io Присылаемые значения event в событии api-event: plan.create, plan.update, plan.delete

Входные параметры
Object (any)
Возвращаемые значения
plan.unsubscribe

Отписка от получение событий изменения планов. Метод можно вызывать только при использовании socket.io

Входные параметры
Object (any)
Возвращаемые значения
plan.update

Редактирование плана.

Поле plan.id является обязательным и должно содержать id редактируемого плана.

Входные параметры
plan (Plan)
Имя Описание
plan.id String
merge (Boolean = false) Склеить вложенные значения (актуально для поля data ), переданные в запросе с существующими
Возвращаемые значения

rtms

rtms.camera.list

Список камер RTMS.

Возвращает список камер, к которым есть доступ и которые участвуют в RTMS.

Входные параметры
include (Array<String>?) Массив с связанными данными, которые будут добавлены в ответ. Допустимые значения: server , taxonomies
filter (Object?) Фильтр в формате MongoDB
sort (Mixed?) Сортировка в формате MongoDB
limit (Integer?)
offset (Integer?)
Возвращаемые значения
  • cameras (Array<Camera>) - Массив с камерами.
  • servers (Array<Server>) - Массив с серверами, на которых хранятся камеры, если параметр запроса include содержит элемент server
  • taxonomies (Array<Taxonomy>) - Массив с терминами таксономии, которым принадлежат камеры, если параметр запроса include содержит элемент taxonomies
  • count (Integer) - Количество найденных записей.
rtms.number.csv

Экспорт номеров из RTMS в формат CSV. Метод можно вызывать только при использовании http. Метод отличается от типичных ответов - возвращается не JSON, а сразу начинается передача данных. Ошибки возвращаются как обычно + код HTTP. Метод вернёт статус 204, если экспорт не содержит данных. Метод вернёт ошибку 422 при попытке экспорта более ста тысяч записей.

Входные параметры
filter (Object) Фильтр в формате MongoDB. Исключение: поддерживается запрос $like
Имя Описание
filter.datetime Object Фильтр даты в формате MongoDB - запросы без указания диапазона дат запрещены
filter.datetime.$gte String
filter.datetime.$lte String
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: certificate , metadata , input
csv (Object?)
Имя Описание
csv.delimiter String (по умолчанию ,) Символ-разделитель полей CSV
csv.charset String (по умолчанию utf-8) Кодировка. Допустимые значения: utf-8 , windows-1251
sort (Mixed?) Сортировка в формате MongoDB
limit (Integer?)
offset (Integer?)
Возвращаемые значения
rtms.number.get

Чтение номера из RTMS

Поля number.id и number.datetime являются обязательными

Входные параметры
number (Object)
Имя Описание
number.id String
number.datetime String
include (Array<String>?) Массив с связанными данными, которые будут добавлены в ответ. Допустимые значения: server , camera , player , files
Возвращаемые значения
  • number (RtmsNumber) - Номер
  • camera (Camera) - Камера, зафиксировавшая событие, если параметр запроса include содержит элемент camera
  • server (Server) - Сервер, на котором хранится камера, если параметр запроса include содержит элемент server
  • player (Object) - Объект плеера, если параметр запроса include содержит элемент player . Плеер необходимо запрашивать каждый раз, когда начинается просмотр видео, не допускается сохранять URL для повторного переиспользования
rtms.number.list

Список номеров из RTMS

Входные параметры
filter (Object) Фильтр в формате MongoDB. Исключение: поддерживается запрос $like
Имя Описание
filter.datetime Object Фильтр даты в формате MongoDB - запросы без указания диапазона дат запрещены
filter.datetime.$gte String
filter.datetime.$lte String
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: cameras , certificate , metadata , input , files , origins
sort (Mixed?) Сортировка в формате MongoDB
limit (Integer?)
offset (Integer?)
performance (Boolean = false) Включить режим оптимизации производительности. В этом режиме не будет подсчитано количество записей.
Возвращаемые значения
  • count (Integer) - Количество найденных записей.
  • numbers (Array<RtmsNumber>) - Найденные записи.
rtms.number.subscribe

Подписка на получение новых номеров. Метод можно вызывать только при использовании socket.io Присылаемые значения event в событии api-event: rtms.capture либо rtms.capture.fast-capture

Входные параметры
filter (Object) Фильтр в формате MongoDB. Исключение: поддерживается запрос $like
fast (Boolean = false) Подписаться на быстрое получение номеров
Возвращаемые значения
rtms.number.unsubscribe

Отписка от получения новых номеров. Метод можно вызывать только при использовании socket.io

Входные параметры
fast (Boolean = false) Отписаться от быстрого получения номеров
Возвращаемые значения
rtms.number.vehicle_classes

Классы ТС

Входные параметры
pairs (Boolean = false) Ответить массивом объектов
Возвращаемые значения
  • vehicle_classes (Object) - Объект причин перехватов
rtms.number.vehicle_colors

Цвета ТС

Входные параметры
pairs (Boolean = false) Ответить массивом объектов
Возвращаемые значения
  • vehicle_colors (Object) - Объект причин перехватов
rtms.number.violations

Типы нарушений

Входные параметры
pairs (Boolean = false) Ответить массивом объектов
Возвращаемые значения
  • violations (Object) - Объект типов нарушений
rtms.report.list

Отчёт по RTMS

Входные параметры
filter (Object) Фильтр в формате MongoDB. Исключение: поддерживается запрос $like
Имя Описание
filter.datetime Object Фильтр даты в формате MongoDB - запросы без указания диапазона дат запрещены
filter.datetime.$gte String
filter.datetime.$lte String
violations (Array<String>?) Массив с типами нарушений, которые будут подсчитаны и добавлены в ответ. Допустимые значения: speed , speed-average , stop-line , stop-forbidden , parking-forbidden , red-light , lane-violation , pedestrian-no-pass
plate_countries (Array<String>?) Массив с двухбуквенными кодами стран, которые будут подсчитаны и добавлены в ответ.
include (Array<String>?) Массив с связанными данными, которые будут добавлены в ответ. Допустимые значения: cameras , last_datetimes
Возвращаемые значения
  • count (Integer) - Количество найденных записей.
  • stats (Object) - Строки статистики.
  • stats.$ (Array<Object>) - Строки статистики. Ключ - ID камеры.
  • stats.$.date (String) - Дата, если group.hour = false.
  • stats.$.datetime (String) - Дата и время, если group.hour = true.
  • stats.$.count (Number) - Количество.
rtms.report.stats

Состояние сборщика RTMS

Возвращаемые значения
  • stats (Object) - Строки статистики.
  • state.$ (Object<Object>) - Строки статистики. Ключ - ID сервера.

screen

screen.create

Добавление нового экрана.

Входные параметры
screen (Screen)
Возвращаемые значения
screen.delete

Удаление экрана.

Поле screen.id является обязательным и должно содержать id удаляемого экрана.

Входные параметры
screen (Screen)
Имя Описание
screen.id String
Возвращаемые значения
screen.get

Чтение экрана.

Поле screen.id является обязательным и должно содержать id читаемого экрана.

Входные параметры
screen (Object)
Имя Описание
screen.id String
include (Array<String>?) Массив с связанными данными, которые будут добавлены в ответ. Допустимые значения: taxonomies , account , allowed , can , players , snapshots , archives , is_online
can (String?) Действие ACL, которое будут проверено, если параметр запроса include содержит элемент allowed или can
Возвращаемые значения
  • screen (Screen)
  • players (Array<Object>) - Массив объектов плеера, если параметр запроса include содержит элемент players . Плееры необходимо запрашивать каждый раз, когда начинается просмотр видео, не допускается сохранять URL для повторного переиспользования
  • players.$.id (String) - ID камеры
  • players.$.format (String) - формат видеопотока
  • players.$.url (String) - ссылка на видеопоток
  • snapshots (Array<Object>) - Массив объектов снапшотов, если параметр запроса include содержит элемент snapshots
  • snapshots.$.id (String) - ID камеры
  • snapshots.$.format (String) - формат видеопотока
  • snapshots.$.url (String) - ссылка на видеопоток
  • archives (Array<Object>) - Массив объекток архива, если параметр запроса include содержит элемент archives
  • archives.$.id (String) - ID камеры
  • archives.$.summary (Array<Object>) - сводка видеоархива
  • is_online (Array<Object>) - Массив информации в онлайне ли камеры, если параметр запроса include содержит элемент is_online
  • is_online.$.id (String) - ID камеры
  • is_online.$.is_online (Boolean) - в онлайне ли камера
  • taxonomies (Array<Taxonomy>) - Массив с терминами таксономии, которым принадлежат экран, если параметр запроса include содержит элемент taxonomies
  • account (Account) - Аккаунт, который владеет экраном, если параметр запроса include содержит элемент account
  • allowed (Array<Account>) - Массив с аккаунтами, которые имеют доступ к камере, если параметр запроса include содержит элемент allowed .
  • can (Object) - Объект с результатами проверки действий из параметра params.can
screen.list

Список экранов.

Возвращает список экранов, к которым есть доступ.

Входные параметры
action (String = view) Будут возвращены только те модели, для которых разрешено указанное действие ACL
can (Array<String>?) Массив с действиями ACL, которые будут проверены и добавлены в ответ
include (Array<String>?) Массив с связанными данными, которые будут добавлены в ответ. Допустимые значения: server , taxonomies , account
filter (Object?) Фильтр в формате MongoDB
sort (Mixed?) Сортировка в формате MongoDB
limit (Integer?)
offset (Integer?)
Возвращаемые значения
  • screens (Array<Screen>) - Массив с экранми.
  • can (Object) - Объект с результатами проверки действий из параметра params.can
  • taxonomies (Array<Taxonomy>) - Массив с терминами таксономии, которым принадлежат экрана, если параметр запроса include содержит элемент taxonomies
  • accounts (Array<Account>) - Массив с аккаунтами, которые владеют экранми, если параметр запроса include содержит элемент account
  • count (Integer) - Количество найденных записей.
screen.subscribe

Подписка на получение событий изменения экранов. Метод можно вызывать только при использовании socket.io Присылаемые значения event в событии api-event: screen.create, screen.update, screen.delete

Входные параметры
Object (any)
Возвращаемые значения
screen.unsubscribe

Отписка от получение событий изменения экранов. Метод можно вызывать только при использовании socket.io

Входные параметры
Object (any)
Возвращаемые значения
screen.update

Редактирование экрана.

Поле screen.id является обязательным и должно содержать id редактируемого экрана.

Входные параметры
screen (Screen)
Имя Описание
screen.id String
merge (Boolean = false) Склеить вложенные значения (актуально для поля data ), переданные в запросе с существующими
Возвращаемые значения

server

server.create

Добавление нового сервера.

Входные параметры
server (Server)
Возвращаемые значения
server.delete

Удаление сервера.

Поле server.id является обязательным и должно содержать id удаляемого сервера.

Входные параметры
server (Server)
Имя Описание
server.id String
Возвращаемые значения
server.detection.list

Список детекций.

Возвращает список детекций на сервере

Входные параметры
filter (Object)
Имя Описание
filter.date Object
filter.date.$gte String? Дата от
filter.date.$lte String? Дата до
filter.camera Object
filter.camera.id Object
filter.camera.id.$in Array<String>? Массив ID камер, по которым производится поиск
filter.server Object
filter.server.id String
sort (Object?) Сортировка в формате MongoDB
Имя Описание
sort.date Number? Сортировка по дате
limit (Integer?)
offset (Integer?)
Возвращаемые значения
  • detections (Array<Object>) - Массив с детекциями.
  • count (Integer) - Количество найденных записей.
server.drivers

Список драйверов.

Входные параметры
filter (Object)
Имя Описание
filter.in_use String (по умолчанию false) Оставить в списке только драйверы, которые используются серверами
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: fields , camera_fields , sync_fields , operations , capabilities
Возвращаемые значения
  • drivers[] Массив с драйверами (String)
  • fields.$ (Object) - Объект с описанием дополнительных полей драйвера, если параметр запроса include содержит элемент fields
  • camera_fields.$ (Object) - Объект с описанием дополнительных полей драйвера, если параметр запроса include содержит элемент camera_fields
  • operations.$ (Object) - Объект с описанием доступных операций драйвера, если параметр запроса include содержит элемент operations
  • capabilities.$ (Object) - Объект с описанием доступных операций драйвера, если параметр запроса include содержит элемент operations
server.get

Чтение сервера.

Поле server.id является обязательным и должно содержать id читаемого сервера.

Входные параметры
server (Object)
Имя Описание
server.id String
include (Array<String>?) Массив с связанными данными, которые будут добавлены в ответ. Допустимые значения: version , info , health , stats , subservers
Возвращаемые значения
server.list

Список серверов.

Возвращает список серверов, к которым есть доступ. Для обычного пользователя вернет список всех серверов.

Входные параметры
action (String = view) Будут возвращены только те модели, для которых разрешено указанное действие ACL
can (Array<String>?) Массив с действиями ACL, которые будут проверены и добавлены в ответ
include (Array<String>?) Массив с связанными данными, которые будут добавлены в ответ. Допустимые значения: version , info , health , stats
filter (Object?) Фильтр в формате MongoDB.
sort (Mixed?) Сортировка в формате MongoDB
limit (Integer?)
offset (Integer?)
Возвращаемые значения
  • servers Массив с серверами. (Array<Server>)
  • can Объект с результатами проверки действий из параметра params.can (Object)
  • versions (Array<Object>) - Массив информации о версии серверов, если параметр запроса include содержит элемент version
  • infos (Array<Object>) - Массив информации о серверах, если параметр запроса include содержит элемент info
  • healths (Array<Object>) - Массив информации о здоровье серверов, если параметр запроса include содержит элемент health
  • stats (Array<Object>) - Массив информации о статистике серверов, если параметр запроса include содержит элемент stats
  • count Количество найденных записей. (Integer)
server.operation

Выполнение операции.

Входные параметры
driver (String?) Имя драйвера, если операция не предполагает выполнение над сервером. Обязательно, если не передается server.id
operation (String) Операция
params (Object?) Остальные параметры, зависят от полей, заданный для конкретной операции @see server.drivers
Возвращаемые значения
  • result (Object) - Объект с результатами
server.subscribe

Подписка на получение событий изменения серверов. Метод можно вызывать только при использовании socket.io Присылаемые значения event в событии api-event: server.create, server.update, server.delete

Входные параметры
Object (any)
Возвращаемые значения
server.sync

Синхронизация камер локального API с сервером. Если указан и upload, и download, то сначала будут сохранены камеры с сервера на локальное API. В случае если камеры уже есть, они будут перезаписаны на локальном API.

Особое внимание! Для синхронизации камер необходимо разрешение на действие admin с сервером. Права на создание камер при синхронизации не проверяются. Если камера еще не была создана, владельцем будет пользователь, производящий синхронизацию.

Входные параметры
server (Object)
Имя Описание
server.id String
download (Boolean = false) Загружать камеры с сервера на API. По умолчанию false.
upload (Boolean = false) Выгружать камеры с API на сервер. По умолчанию false.
delete (Boolean = false) Удалять отсутствующие камеры. Работает только если download или upload установлен в false, но не оба параметра. В зависимости от направления синхронизации, удаление будет происходить либо на сервере, либо в локальном API.
smart (Boolean = false) Пропустить сохранение камеры, если у камеры нет никаких изменений. По умолчанию false.
Возвращаемые значения
  • downloaded (Array<Camera>) - Массив с камерами, которые были загружены с сервера на API.
  • deleted_api (Array<Camera>) - Массив с камерами, которые были удалены с API.
  • uploaded (Array<Camera>) - Массив с камерами, которые были загружены с API на сервер.
  • deleted_remote (Array<Object>) - Массив с краткими данными камер, которые были удалены на сервере.
server.unsubscribe

Отписка от получение событий изменения серверов. Метод можно вызывать только при использовании socket.io

Входные параметры
Object (any)
Возвращаемые значения
server.update

Редактирование сервера.

Поле server.id является обязательным и должно содержать id редактируемого сервера.

Входные параметры
server (Server)
Имя Описание
server.id String
merge (Boolean = false) Склеить вложенные значения (актуально для полей data и api_connection ), переданные в запросе с существующими
Возвращаемые значения
server.update

Редактирование или создание сервера.

Поле server.id является обязательным и должно содержать id редактируемого сервера.

Входные параметры
server (Server)
Имя Описание
server.id String
merge (Boolean = false) Склеить вложенные значения (актуально для полей data и api_connection ), переданные в запросе с существующими
Возвращаемые значения

storage

storage.delete

Удаление файла из хранилища

Поле storage.filepath является обязательным и должно содержать имя удаляемого файла

Входные параметры
storage (Storage)
Имя Описание
storage.filepath String
rmdir (Boolean = false) Удалять каталог
Возвращаемые значения
storage.get

Получение файла из хранилища

Поле storage.filepath является обязательным и должно содержать имя читаемого файла

Входные параметры
storage (Storage)
Имя Описание
storage.filepath String
base64 (Boolean = true)
Возвращаемые значения
storage.list

Список файлов

Возвращает список сохраненных файлов в хранилище

Входные параметры
path (String?)
limit (Integer?)
offset (Integer?)
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: disk_space , installable
Возвращаемые значения
  • [path] (String)
  • storage Массив файлов. Поле installable (обозначающее, что пакет может быть установлен в системе) будет добавлено, если параметр запроса include содержит элемент installable (Array<{filename: String, filepath: String, url: String, size: Number, is_dir: boolean, installable: boolean}>)
  • count Количество найденных записей. (Integer)
  • disk_space.available (Integer) - Доступное для записи место на диске в байтах, если параметр запроса include содержит элемент disk_space
  • disk_space.free (Integer) - Свободное место на диске в байтах, если параметр запроса include содержит элемент disk_space
  • disk_space.total (Integer) - Объём диска в байтах, если параметр запроса include содержит элемент disk_space
storage.mkdir

Создание новой папки

Входные параметры
storage (Storage)
Имя Описание
storage.name String имя папки
storage.path String (по умолчанию /) путь, по которому будет создана новая папка
storage.upload

Загрузка нового файла. Доступно два варианта - передать base64 и имя файла, либо загружить файл методом multipart/form-data При multipart/form-data поля base64 и filename необязательны. Дополнительные параметры будет передаваться в поле с именем json, а данные файла - в поле file

Входные параметры
storage (Storage)
Имя Описание
storage.filename String? имя файла, если данные
storage.path String (по умолчанию /) путь, по которому будет загружен файл
storage.base64 String? данные в base64

strazh

strazh.control.app.reboot

Перезапуск Приложения Страж

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.app.start

Запуск Приложения Страж

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.app.status

Статус Приложения Страж

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.app.stop

Остановка Приложения Страж

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.brc.cron.reboot

Перезапуск BRC CRON

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.brc.cron.start

Запуск BRC CRON

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.brc.cron.status

Статус BRC CRON

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.brc.cron.stop

Остановка BRC CRON

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.brc.reboot

Перезапуск BRC

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.brc.start

Запуск BRC

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.brc.status

Статус BRC

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.brc.stop

Остановка BRC

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.chrony.disable

Удалить Chrony из автозагрузки

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.chrony.enable

Добавить Chrony в автозагрузку

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.chrony.reboot

Перезапуск Chrony

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.chrony.start

Запуск Chrony

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.chrony.status

Статус Chrony

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.chrony.stop

Остановка Chrony

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.dhcp.disable

Удалить DHCP из автозагрузки

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.dhcp.enable

Добавить DHCP в автозагрузку

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.dhcp.reboot

Перезапуск DHCP

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.dhcp.start

Запуск DHCP

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.dhcp.status

Статус DHCP

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.dhcp.stop

Остановка DHCP

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.faceapi.disable

Удалить FaceApi из автозагрузки

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.faceapi.enable

Добавить FaceApi в автозагрузку

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.faceapi.reboot

Перезапуск FaceApi

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.faceapi.start

Запуск FaceApi

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.faceapi.status

Статус FaceApi

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.faceapi.stop

Остановка FaceApi

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.iptables.disable

Удалить Iptables из автозагрузки

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.iptables.enable

Добавить Iptables в автозагрузку

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.iptables.reboot

Перезапуск Iptables

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.iptables.start

Запуск Iptables

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.iptables.status

Статус Iptables

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.iptables.stop

Остановка Iptables

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.lvs-queue.disable

Удалить lvs-queue из автозагрузки

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.lvs-queue.enable

Добавить lvs-queue в автозагрузку

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.lvs-queue.reboot

Перезапуск lvs-queue

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.lvs-queue.start

Запуск lvs-queue

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.lvs-queue.status

Статус lvs-queue

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.lvs-queue.stop

Остановка lvs-queue

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.network.reboot

Перезапуск Сети

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.ntp.disable

Удалить Ntp из автозагрузки

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.ntp.enable

Добавить Ntp в автозагрузку

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.ntp.reboot

Перезапуск Ntp

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.ntp.start

Запуск Ntp

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.ntp.status

Статус Ntp

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.ntp.stop

Остановка Ntp

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.openvpn.disable

Удалить Openvpn из автозагрузки

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.openvpn.enable

Добавить Openvpn в автозагрузку

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.openvpn.reboot

Перезапуск Openvpn

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.openvpn.start

Запуск Openvpn

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.openvpn.status

Статус Openvpn

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.openvpn.stop

Остановка Openvpn

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.strazh.reboot

Перезапуск Стража

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.strazh.shutdown

Выключение Стража

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.xterm.start

Запуск Xterm

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.control.xterm.stop

Остановка Xterm

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.dhcp.clients.clear

Очистка списка клиентов DHCP

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.dhcp.clients.list

Получение списка клиентов DHCP

Требует прав на действие ACL: 'admin'

  • expired_at может быть null - это означает, что ip назначен на постоянной основе
  • значения hostname и client_id зависят от окружения, и могут принимать значение null
Входные параметры
include (Array<String>?) Массив с связанными данными, которые будут добавлены в ответ. Допустимые значения: ping
Возвращаемые значения
strazh.dhcp.config.get

Получение настроек DHCP

Требует прав на действие ACL: 'admin'

Входные параметры
include (Array<String>?) Массив с связанными данными, которые будут добавлены в ответ. Допустимые значения: ping
Возвращаемые значения
  • dhcp (Object) - Настройки dhcp
  • dhcp.listen (String) - слушать IP
  • dhcp.interface (String) - сетевой интерфейс
  • dhcp.range (Object)
  • dhcp.range.start (String) - начало диапазона IP
  • dhcp.range.end (String) - конец диапазона IP
  • dhcp.range.lease (Number) - срок хранения IP, в часах
  • dhcp.netmask (String) - сетевая маска
  • dhcp.router (String) - IP роутера
  • dhcp.dns (String) - IP dns
  • dhcp.ntp (String) - IP ntp
strazh.dhcp.config.set

Установка настроек DHCP

Требует прав на действие ACL: 'admin'

Входные параметры
dhcp (Object) Настройки dhcp
Имя Описание
dhcp.listen String слушать IP
dhcp.interface String сетевой интерфейс
dhcp.range Object
dhcp.range.start String начало диапазона IP
dhcp.range.end String конец диапазона IP
dhcp.range.lease Number срок хранения IP, в часах
dhcp.netmask String сетевая маска
dhcp.router String IP роутера
dhcp.dns String IP dns
dhcp.ntp String IP ntp
Возвращаемые значения
strazh.dhcp.mapping.delete

Удаление записи из списка соответствий MAC и IP

Требует прав на действие ACL: 'admin'

Входные параметры
mapping (Object)
Имя Описание
mapping.mac String? обязательно, если не передан IP
mapping.ip String? обязательно, если не передан MAC
Возвращаемые значения
strazh.dhcp.mapping.get

Получение списка соответствий MAC и IP

Требует прав на действие ACL: 'admin'

Входные параметры
include (Array<String>?) Массив с связанными данными, которые будут добавлены в ответ. Допустимые значения: ping
Возвращаемые значения
  • mapping (Array<{mac: String, ip: String}>)
  • ping (Array<{ip: String, is_online: Boolean, loss: Number}>) - результаты пинга, если параметр запроса include содержит элемент ping .
strazh.dhcp.mapping.push

Добавлние записи в список соответствий MAC и IP

Требует прав на действие ACL: 'admin'

Входные параметры
mapping (Object)
Имя Описание
mapping.mac String
mapping.ip String
Возвращаемые значения
strazh.dhcp.mapping.set

Установка списка соответствий MAC и IP

Требует прав на действие ACL: 'admin'

Входные параметры
mapping (Array<{mac: String, ip: String}>)
Возвращаемые значения
strazh.filesystem.create

Инициализировать раздел

Требует прав на действие ACL: 'admin'

Входные параметры
device (Object)
Имя Описание
device.path String Путь к устройству
restart (Object)
Имя Описание
restart.brc Boolean (по умолчанию false) Перезапускать BRC после завершения
Возвращаемые значения
strazh.filesystem.delete

Удалить пул

Требует прав на действие ACL: 'admin'

Входные параметры
pool (Object)
Имя Описание
pool.name String Имя пула
restart (Object)
Имя Описание
restart.brc Boolean (по умолчанию false) Перезапускать BRC после завершения
Возвращаемые значения
strazh.filesystem.list

Список файловых систем

Требует прав на действие ACL: 'admin'

Возвращаемые значения
  • devices (Array<{path: String, size: Number, type: String}>) - Список всех дисков
  • uninitialized (Array<{path: String, size: Number, type: String}>) - Список неинициализированных дисков
  • initialized (Array<{path: String, size: Number, pool: {name: String, path: String}, type: String}>) - Список инициализированных дисков, включающий имя пула zpool
strazh.license.brc.get

Получение лицензии BRC

Требует прав на действие ACL: 'admin'

Возвращаемые значения
  • license (Object)
  • license.data (String) - лицензионный ключ
  • license.expired_at (String) - дата окончания лицензии
  • license.limits (Object) - лимиты, заданные в лицензии
  • license.product (String) - имя продукта
  • license.machine_id (String) - Machine ID
strazh.license.brc.set

Установка лицензии BRC

Требует прав на действие ACL: 'admin'

Входные параметры
license (Object)
Имя Описание
license.filepath String? путь к новому файлу лицензии
license.data String? данные файла лицензии, если не передан license.filepath
Возвращаемые значения
strazh.license.faceapi.get

Получение лицензии FaceAPI

Требует прав на действие ACL: 'admin'

Возвращаемые значения
  • license (Object)
  • license.data (String) - лицензионный ключ
  • license.expired_at (String) - дата окончания лицензии
  • license.limits (Object) - лимиты, заданные в лицензии
  • license.product (String) - имя продукта
  • license.machine_id (String) - Machine ID
strazh.license.faceapi.set

Установка лицензии FaceAPI

Требует прав на действие ACL: 'admin'

Входные параметры
license (Object)
Имя Описание
license.filepath String путь к новому файлу лицензии
Возвращаемые значения
strazh.license.machine_id

Получение Machine ID

Требует прав на действие ACL: 'admin'

Возвращаемые значения
strazh.lvs-queue.config.get

Получение настроек lvs-queue

Требует прав на действие ACL: 'admin'

Возвращаемые значения
  • config (Object) - Текущие настройки lvs-queue
strazh.lvs-queue.config.set

Установка настроек lvs-queue

Требует прав на действие ACL: 'admin'

Входные параметры
config (Object) Настройки lvs-queue
Возвращаемые значения
strazh.lvs-queue.version

Версия lvs-queue

Возвращаемые значения
strazh.network.get

Получение сетевых настроек

Требует прав на действие ACL: 'admin'

Возвращаемые значения
  • network (Object) - Сетевые настройки
  • network.lan.address (String)
  • network.lan.netmask (String)
  • network.wan.inet (String) - static или dhcp
  • network.wan.address (String) - если inet = static
  • network.wan.netmask (String) - если inet = static
  • network.wan.gateway (String) - если inet = static
  • network.wan.dns-nameservers (String) - если inet = static
strazh.network.set

Установка сетевых настроек

Требует прав на действие ACL: 'admin'

Входные параметры
network (Object) Сетевые настройки
ack (Boolean = false) если false, сетевой интерфейс будет перезапущен сразу. Если true, то через 1 секунду - это даст возможность получить ответ
Возвращаемые значения
strazh.switchboard.audio.delete

Удалить аудио файл с модуля коммутации

Требует прав на действие ACL: 'admin'

Входные параметры
filename (String) Наименование файла
Возвращаемые значения
  • status (Boolean) - Результат удаления аудио файла
strazh.switchboard.audio.list

Список аудио файлов с модуля коммутации

Требует прав на действие ACL: 'admin'

Возвращаемые значения
  • files (Array<{fileName: String}>) - Список всех аудио файлов
strazh.switchboard.audio.upload

Загрузить аудио файл в модуль коммутации

Требует прав на действие ACL: 'admin'

Входные параметры
filepath (String) Путь файла
Возвращаемые значения
  • status (Boolean) - Результат сохранения аудио файла
strazh.update.run

Запуск обновления

Требует прав на действие ACL: 'admin'

Возвращаемые значения

system

system.config.get

Получение настроек API

Требует прав на действие ACL: 'admin'

Возвращаемые значения
  • config (Object) - Текущие настройки API
system.config.set

Установка настроек API

Требует прав на действие ACL: 'admin'

Входные параметры
config (Object) Настройки API. Можно передавать частично, только необходимые значения
ack (Boolean = false) если false, сетевой интерфейс будет перезапущен сразу. Если true, то через 1 секунду - это даст возможность получить ответ
Возвращаемые значения
system.console

Получить вывод из консоли

Требует прав на действие ACL: 'admin'

Возвращаемые значения
system.hostname.get

Получение hostname

Требует прав на действие ACL: 'admin'

Возвращаемые значения
  • hostname (String) - Системный hostname
system.hostname.set

Установка hostname

Требует прав на действие ACL: 'admin'

Входные параметры
hostname (String) Новый hostname
Возвращаемые значения
system.ntp.get

Получение серверов NTP

Требует прав на действие ACL: 'admin'

Возвращаемые значения
  • pool (Array<String>) - Список серверов для синхронизации времени (NTP)
system.ntp.set

Установка серверов NTP

Требует прав на действие ACL: 'admin'

Входные параметры
pool (Array<String>) Массив серверов
Возвращаемые значения
system.ping

Запуск пингов

Требует прав на действие ACL: 'admin'

Входные параметры
hosts (Array<String>) Массив адресов для пинга
timeout (Number = 5) Таймаут
interval (Number = 0.01) Интервал между пингами
number (Number = 2) Число пингов
Возвращаемые значения
system.status

Статус egsv2-api

Требует прав на действие ACL: 'admin'

Since: 2.83.29
Возвращаемые значения
  • socketio (Object)
  • socketio.connections (Object) - число соединений socket.io
  • socketio.accounts (Object) - число пользователей, подключённых к socket.io
system.uptime

Аптайм

Требует прав на действие ACL: 'admin'

Возвращаемые значения
  • api (Object)
  • api.seconds (Object) - аптайм API в секундах
  • api.formatted (Object) - аптайм API в отформатированном виде
  • api.humanize (Object) - аптайм API в человекопонятном формате, приближенно
  • os (Object)
  • os.seconds (Object) - аптайм Linux в секундах
  • os.formatted (Object) - аптайм Linux в отформатированном виде
  • os.humanize (Object) - аптайм Linux в человекопонятном формате, приближенно

taxonomy

taxonomy.create

Добавление нового термина таксономии.

Входные параметры
taxonomy (Taxonomy)
Возвращаемые значения
taxonomy.delete

Удаление термина таксономии.

Поле taxonomy.id является обязательным и должно содержать id удаляемого термина таксономии.

Входные параметры
taxonomy (Taxonomy)
Имя Описание
taxonomy.id String
Возвращаемые значения
taxonomy.get

Чтение термина таксономии.

Поле taxonomy.id является обязательным и должно содержать id читаемого термина таксономии.

Входные параметры
taxonomy (Object)
Имя Описание
taxonomy.id String
include (Array<String>?) Массив с связанными данными, которые будут добавлены в ответ. Допустимые значения: parent , parents
Возвращаемые значения
  • taxonomy (Taxonomy)
  • parent (Taxonomy) - Родительский терминам таксономии, если параметр запроса include содержит элемент parent
  • parents (Array<Taxonomy>) - Массив со всеми родительскими терминами таксономии, если параметр запроса include содержит элемент parents
taxonomy.list

Список терминов таксономии.

Возвращает список терминов, к которым есть доступ. Для обычного пользователя вернет список всех терминов.

Входные параметры
action (String = view) Будут возвращены только те модели, для которых разрешено указанное действие ACL
include (Array<String>?) Массив со связанными данными, которые будут добавлены в ответ. Допустимые значения: parents
can (Array<String>?) Массив с действиями ACL, которые будут проверены и добавлены в ответ
filter (Object?) Фильтр в формате MongoDB.
sort (Mixed?) Сортировка в формате MongoDB
limit (Integer?)
offset (Integer?)
Возвращаемые значения
  • taxonomies Массив с терминами таксономии. (Array<Taxonomy>)
  • parents Массив с родительскими терминами таксономии, если параметр запроса include содержит элемент parents . (Array<Taxonomy>)
  • can Объект с результатами проверки действий из параметра params.can (Object)
  • count Количество найденных записей. (Integer)
taxonomy.subscribe

Подписка на получение событий изменения таксономии. Метод можно вызывать только при использовании socket.io Присылаемые значения event в событии api-event: taxonomy.create, taxonomy.update, taxonomy.delete

Входные параметры
Object (any)
Возвращаемые значения
taxonomy.unsubscribe

Отписка от получение событий изменения таксономии. Метод можно вызывать только при использовании socket.io

Входные параметры
Object (any)
Возвращаемые значения
taxonomy.update

Редактирование термина таксономии.

Поле taxonomy.id является обязательным и должно содержать id редактируемого термина.

Входные параметры
taxonomy (Taxonomy)
Имя Описание
taxonomy.id String
merge (Boolean = false) Склеить вложенные значения (актуально для поля data ), переданные в запросе с существующими
Возвращаемые значения
taxonomy.upsert

Редактирование или создание термина таксономии.

Поле taxonomy.id является обязательным и должно содержать id редактируемого термина.

Входные параметры
taxonomy (Taxonomy)
Имя Описание
taxonomy.id String
merge (Boolean = false) Склеить вложенные значения (актуально для поля data ), переданные в запросе с существующими
Возвращаемые значения

trigger

trigger.create

Добавление нового триггера.

Входные параметры
trigger (Trigger)
Возвращаемые значения
trigger.delete

Удаление триггера.

Поле trigger.id является обязательным и должно содержать id удаляемого триггера.

Входные параметры
trigger (Trigger)
Имя Описание
trigger.id String
Возвращаемые значения
trigger.event

Вызов событий для триггеров.

Поле event.name является обязательным и должно содержать имя вызываемого события. Поле event.name обязательно должно начинаться с external. или broadcast.

Входные параметры
event (Trigger)
Имя Описание
event.name String
event.payload Object (по умолчанию {})
Возвращаемые значения
trigger.get

Чтение триггера.

Поле trigger.id является обязательным и должно содержать id читаемого триггера.

Входные параметры
trigger (Object)
Имя Описание
trigger.id String
Возвращаемые значения
trigger.list

Список триггеров.

Возвращает список триггеров.

Входные параметры
filter (Object?) Фильтр в формате MongoDB
sort (Mixed?) Сортировка в формате MongoDB
limit (Integer?)
offset (Integer?)
Возвращаемые значения
  • triggers (Array<Trigger>) - Массив с триггерами
  • count (Integer) - Количество найденных записей
trigger.reactions

Список доступных типов реакций.

Возвращает список доступных реакций, в зависимости от настроек API.

Возвращаемые значения
  • reactions (Object) - Объект с типами реакций
trigger.run

Ручной запуск триггера. Назначение триггеров срабатывать по событиям API, но этот метод может быть полезен.

Требует прав на действие ACL: 'admin'

Поле trigger.id является обязательным и должно содержать id запускаемого триггера.

Входные параметры
trigger (Object)
Имя Описание
trigger.id String
event (Trigger)
Имя Описание
event.name String (по умолчанию external.api-call)
event.payload Object?
skip_filter (Boolean = fale) Пропустить проверку условий
Возвращаемые значения
trigger.update

Редактирование или создание триггера.

Поле trigger.id является обязательным и должно содержать id редактируемого триггера.

Входные параметры
trigger (Trigger)
Имя Описание
trigger.id String
merge (Boolean = false) Склеить вложенные значения (актуально для поля data ), переданные в запросе с существующими
Возвращаемые значения
trigger.update

Редактирование триггера.

Поле trigger.id является обязательным и должно содержать id редактируемого триггера.

Входные параметры
trigger (Trigger)
Имя Описание
trigger.id String
merge (Boolean = false) Склеить вложенные значения (актуально для поля data ), переданные в запросе с существующими
Возвращаемые значения