2 Описание программного интерфейса JSON-RPC

Описание

Все запросы на сервер отправляются методом POST по адресу https://your_host/api/jsonrpc. В заголовках ответа передаются "печеньки". Их необходимо передавать во всех последующих запросах.

В теле запроса передается массив [] объектов типа

Пример запроса:

{
"jsonrpc":"2.0",
"method":"Api_GetAppVersion", -- Имя метода
"params":{}, -- Объект с параметрами
"id":1515659482430 - идентификатор запроса (может быть любое случайное число)
}

Если в запросе передан массив из нескольких объектов, в ответе будет массив. Если в запросе передан массив из одного объекта, в ответе вернется один объект, не массив.

Примечание: регистр и тип параметров имеет значение.

Пример ответа:

{
"jsonrpc":"2.0",
"id":1515659482430, -- идентификатор заданный при запросе
"result":{
"success":true, -- результат (булево значение)
"data":"2.0.0" -- данные (строка, массив, объект)
}
}

Ответ может вернуться с ошибкой. Ошибки подразделяются на две категории:

Глобальные - обрабатываются на уровне модуля json-rpc. Например, переданы неверные параметры. Ошибка выводится в поле error.

{
"jsonrpc":"2.0",
"id":1515660273515,
"error":{
"code":6000,
"message":"Invalid parameters",
"data":{
"errors":[
{
"code":"required_field",
"message":"Не передан либо пустой обязательный параметр",
"object_name":"Test"
}
]
}
}
}

Локальные - обрабатываются на уровне Api внутри вызываемой функции. Например, ошибки записи в БД. Ошибка выводится в поле result.error. При этом result.success = false.

{
"jsonrpc":"2.0",
"id":1515660902722,
"result":{
"success":false,
"error":{
"code":-203,
"msg":"Duplicate entry"
},
"data":null
}
}

Несколько примеров запросов с использованием CURL

Получить версию приложения:

curl -b cookie.txt -c cookie.txt -X POST -k -i 'https://192.168.1.123/api/jsonrpc' --data '[{"jsonrpc":"2.0","method":"Api_GetAppVersion","params":{},"id":1563436495288}]'

Выполнить авторизацию:

curl -b cookie.txt -c cookie.txt -X POST -k -i 'https://192.168.1.123/api/jsonrpc' --data '[{"jsonrpc":"2.0","method":"Api_Login","params":{"username":"admin","password":"vasexperts","remember":t
rue},"id":1563438645838}]'

Получить файл конфигурации DPI:

curl -b cookie.txt -c cookie.txt -X POST -k -i 'https://192.168.1.123/api/jsonrpc' --data '[{"jsonrpc":"2.0","method":"Api_GetDpiConfig","params":{"Id":1},"id":1563448913831}]'

Общие функции

Api_GetAppVersion

Выводит версию приложения.

Параметры отсутствуют.

Пример запроса:

[{
"jsonrpc":"2.0",
"method":"Api_GetAppVersion",
"params":{},
"id":1515659482430
}]

Пример ответа:

{
"jsonrpc":"2.0",
"id":1515659482430,
"result":{
"success":true,
"data":"2.0.0"
}
}

Api_GetDics

Выводит словари.

Параметры:

DicsKeys - Array:список идентификаторов словарей. По умолчанию выводит все.

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_GetDics",
"params":{},
"id":1515921551526
}
]

Пример ответа:

{
"jsonrpc":"2.0",
"id":1515921551526,
"result":{
"success":true,
"data":{
"RolesDic":{
"1":{
"dic_id":"1",
"value":"Администратор"
}
},
"HardwaresDic":{
"1":{
"dic_id":"1",
"value":"Тестовый стенд. 34",
"ip":"x.x.x.x",
"port":"22",
"login":"dpisu"
},
"2":{
"dic_id":"2",
"value":"Рабочий стенд .83 !",
"ip":"y.y.y.y",
"port":"22",
"login":"dpisu"
}
}
}
}
}

Функции аутентификации и авторизации

Api_Auth

Api_Login

Api_Logout

Api_Auth

Проверяет и выводит результат: авторизован пользователь или нет.

Параметры отсутствуют.

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_Auth",
"params":{
},
"id":1515661809137
}
]

Пример ответа, если пользователь не авторизован:

{
"jsonrpc":"2.0",
"id":1515661809137,
"error":{
"code":7000,
"message":"Unauthorized"
}
}

Пример ответа, если пользователь авторизован:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data":{
"username":"admin"
}
}
}

Api_Login

Авторизует пользователя

Параметры:

username - string:имя пользователя

password - string:пароль

remember - bool:пароль

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_Login",
"params":{
"username":"admin",
"password":"vasexperts",
"remember":true
},
"id":1515662219320
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662219320,
"result":{
"success":true,
"data":{
"username":"admin"
}
}
}

Пример неуспешного ответа:

{
"jsonrpc":"2.0",
"id":1515662233320,
"result":{
"success":false,
"error":{
"code":404,
"msg":"Invalid credentials"
},
"data":null
}
}

Если авторизация прошла успешно, в заголовках ответа передаются "печеньки". Их необходимо передавать во всех последующих запросах.

Api_Logout

Деавторизацует текущего пользователя.

Параметры отсутствуют.

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_Logout",
"params":{
},
"id":1515662234646
}
]

Управление профилем пользователя

Api_GetMyProfile

Api_SaveMyProfile

Api_ChangeMyPassword

Api_GetMyProfile

Выводит профиль пользователя.

Параметры отсутствуют.

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_GetMyProfile",
"params":{
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": {
"user_id": "1",
"username": "admin",
"name": "Строгий С.С.",
"email": "email@email.ru",
"phone": "2-2-2",
"company": "VasExpert",
"position": "Админ"
}
}
}

Api_SaveMyProfile

Изменение профиля пользователя.

Параметры:

MyProfile - object:модель пользователя

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_SaveMyProfile",
"params":{
"MyProfile":{
"user_id": "1",
"username": "admin",
"name": "Строгий С.С.",
"email": "email@email.ru",
"phone": "2-2-2",
"company": "VasExpert",
"position": "Админ"
}
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": {
"user_id": "1",
"username": "admin",
"name": "Строгий С.С.",
"email": "email@email.ru",
"phone": "2-2-2",
"company": "VasExpert",
"position": "Админ"
}
}
}

Api_ChangeMyPassword

Изменение пароля пользователя.

Параметры:

OldPassword - object:старый пароль

NewPassword - string:новый пароль

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_SaveMyProfile",
"params":{
"OldPassword":"vasexperts",
"NewPassword":"vasexperts1"
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": {
"user_id": "1",
"username": "admin",
"name": "Строгий С.С.",
"email": "email@email.ru",
"phone": "2-2-2",
"company": "VasExpert",
"position": "Админ",
"password": "$2y$10$t/PdsQVXr927wyunbdET1.EHtuxTBg4iKmtHlJ4jfmU0XR4qPUANu"
}
}
}

Управление пользователями

Api_GetUsers

Api_SaveUser

Api_DeleteUser

Api_GetUsers

Получение списка пользователей.

Параметры:

Id - int:идентификатор пользователя(необязательный параметр)

Пример запроса с идентификатором пользователя:

[
{
"jsonrpc":"2.0",
"method":"Api_GetUsers",
"params":{
"Id":1
},
"id":1515661809137
}
]

Пример успешного ответа на запрос с идентификатором пользователя:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": {
"user_id": "1",
"username": "admin",
"name": "Строгий С.С.",
"email": "email@email.ru",
"phone": "2-2-2",
"company": "VasExpert",
"position": "Админ",
"role_sections": "hardware.read,hardware.write,..."
}
}
}

Пример успешного ответа на запрос без параметров:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": [
{
"user_id": "1",
"username": "admin",
"name": "Строгий С.С.",
"email": "email@email.ru",
"phone": "2-2-2",
"company": "VasExpert",
"position": "Админ",
"role_sections": "hardware.read,hardware.write,..."
},
...
]
}
}

Api_SaveUser

Создание/изменение данных пользователя.

Параметры:

user - object:модель пользователя

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_SaveUser",
"params":{
"user":{
"user_id": "1",
"username": "admin",
"name": "Строгий С.С.",
"email": "email@email.ru",
"phone": "2-2-2",
"company": "VasExpert",
"position": "Админ",
"password":"vasexperts",
"role": "1",
"role_sections": "hardware.read,hardware.write,..."
}
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": {
"user_id": "1",
"username": "admin",
"name": "Строгий С.С.",
"email": "email@email.ru",
"phone": "2-2-2",
"company": "VasExpert",
"position": "Админ",
"password": "$2y$10$rxlWVJdRybSf9N6nAQE9j.i2LrSTbpGzoiDwsVVsAP9OQ5vDY0uhu"
}
}
}

Api_DeleteUser

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

Параметры:

user - object:модель пользователя

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_DeleteUser",
"params":{
"user":{
"user_id": "2",
"username": "admin",
"name": "Строгий С.С.",
"email": "email@email.ru",
"phone": "2-2-2",
"company": "VasExpert",
"position": "Админ",
"password":"vasexperts",
"role": "1",
"role_sections": "hardware.read,hardware.write,..."
}
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true
}
}

Управление ролями

Api_GetRoles

Api_SaveRole

Api_DeleteRole

Api_GetRoles

Получение списка пользователей.

Параметры:

Id - int:идентификатор роли(необязательный параметр)

Пример запроса с идентификатором роли:

[
{
"jsonrpc":"2.0",
"method":"Api_GetRoles",
"params":{
"Id":1
},
"id":1515661809137
}
]

Пример успешного ответа на запрос с идентификатором роли:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": [
{
"role_id": "1",
"role": "Администратор",
"sections": "hardware.read,hardware.write,..."
}
]
}
}

Пример успешного ответа на запрос без параметров:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": [
{
"role_id": "1",
"role": "Администратор",
"sections": "hardware.read,hardware.write,..."
},
...
]
}
}

Api_SaveRole

Создание/изменение данных роли.

Параметры:

role - object:модель роли

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_SaveRole",
"params":{
"role":{
"role_id": "1",
"role": "Администратор",
"sections": "hardware.read,hardware.write,..."
}
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": {
"role_id": "1",
"role": "Администратор",
"sections": "hardware.read,hardware.write,..."
}
}
}

Api_DeleteRole

Удаление роли.

Параметры:

role - object:модель роли

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_DeleteRole",
"params":{
"role":{
"role_id": "1",
"role": "Администратор",
"sections": "hardware.read,hardware.write,..."
}
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true
}
}

Управление оборудованием

Api_GetHardwares

Api_SaveHardware

Api_DeleteHardware

Api_RestartHardware

Api_ReloadHardware

Api_TestConnectToHardware

Api_GetDpiConfig

Api_ValidateDpiConfig

Api_SetDpiConfig

Api_GetDpiConfigHistory

Api_GetDpiConfigFile

Api_GetDpiInfo

Api_GetDpiResourcesUsageTick

Api_GetDpiResourcesStatsUsageForPeriod

Api_ProcessDpiStatLog

Api_GetStatLogTail

Api_DownloadStatLog

Api_GetAlertLogTail

Api_DownloadAlertLog

Api_GetHardwares

Получить список оборудований.

Параметры:

Id - int:идентификатор оборудования(необязательный параметр)

Пример запроса с идентификатором оборудования:

[
{
"jsonrpc":"2.0",
"method":"Api_GetHardwares",
"params":{
"Id":1
},
"id":1515661809137
}
]

Пример успешного ответа на запрос с идентификатором оборудования:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": [
{
"hardware_id": "1",
"name": "Тестовый стенд. 34",
"ip": "188.227.73.34",
"port": "22",
"login": "admin",
"password": "vasexperts",
"ssl_key": "",
"sudocheck": "1",
"load_cs": 0,
"port_cs": "1500",
"protocol_cs": "udp",
"ip_cs": "217.71.228.148",
"status_cs": 0
}
]
}
}

Пример успешного ответа на запрос без параметров:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": [
{
"hardware_id": "1",
"name": "Тестовый стенд. 34",
"ip": "188.227.73.34",
"port": "22",
"login": "admin",
"password": "vasexperts",
"ssl_key": "",
"sudocheck": "1",
"load_cs": 0,
"port_cs": "1500",
"protocol_cs": "udp",
"ip_cs": "217.71.228.148",
"status_cs": 0
},
...
]
}
}

Api_SaveHardware

Создание/изменение данных оборудования.

Параметры:

hardware - object:модель оборудования

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_SaveHardware",
"params":{
"hardware":{
"hardware_id": "1",
"name": "Тестовый стенд. 34",
"ip": "188.227.73.34",
"port": "22",
"login": "admin",
"password": "vasexperts",
"ssl_key": "",
"sudocheck": "1",
"load_cs": 0,
"port_cs": "1500",
"protocol_cs": "udp",
"ip_cs": "217.71.228.148",
"status_cs": 0
}
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": {
"hardware_id": "1",
"name": "Тестовый стенд. 34",
"ip": "188.227.73.34",
"port": "22",
"login": "admin",
"password": "vasexperts",
"ssl_key": "",
"sudocheck": "1",
"load_cs": 0,
"port_cs": "1500",
"protocol_cs": "udp",
"ip_cs": "217.71.228.148",
"status_cs": 0
}
}
}

Api_DeleteHardware

Удаление оборудования.

Параметры:

hardware - object:модель оборудования

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_DeleteRole",
"params":{
"hardware":{
"hardware_id": "1",
"name": "Тестовый стенд. 34",
"ip": "188.227.73.34",
"port": "22",
"login": "admin",
"password": "vasexperts",
"ssl_key": "",
"sudocheck": "1",
"load_cs": 0,
"port_cs": "1500",
"protocol_cs": "udp",
"ip_cs": "217.71.228.148",
"status_cs": 0
}
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true
}
}

Api_RestartHardware

Перезапуск оборудования.

Параметры:

Id - int:идентификатор оборудования

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_RestartHardware",
"params":{
"Id":1
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true
}
}

Api_ReloadHardware

Обновление горячих параметров.

Параметры:

Id - int:идентификатор оборудования

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_ReloadHardware",
"params":{
"Id":1
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true
}
}

Api_TestConnectToHardware

Проверка доступности оборудования.

Параметры:

Id - int:идентификатор оборудования

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_TestConnectToHardware",
"params":{
"Id":1
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true
}
}

Api_GetDpiConfig

Получение DPI-конфигурации оборудования.

Параметры:

Id - int:идентификатор оборудования

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_GetDpiConfig",
"params":{
"Id":1
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data":"string:content"
}
}

Api_ValidateDpiConfig

Валидация DPI-конфигурации оборудования.

Параметры:

Id - int:идентификатор оборудования

Config - string: конфигурация

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_ValidateDpiConfig",
"params":{
"Id":1,
"Config":"string:content"
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data":"FastDPI 7.4 Minsk (Dec 12 2017) : Check configuration '/tmp/dpi/fastdpi.conf' : \n\nResult check
configuration : SUCCESS\n"
}
}

Api_SetDpiConfig

Установка DPI-конфигурации на оборудование.

Параметры:

Id - int:идентификатор оборудования

Config - string: конфигурация

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_SetDpiConfig",
"params":{
"Id":1,
"Config":"string:content"
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true
}
}

Api_GetDpiConfigHistory

Получение истории установки DPI-конфигураций на оборудовании.

Параметры:

Id - int:идентификатор оборудования

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_GetDpiConfigHistory",
"params":{
"Id":1
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": [
"2015.03.22.03.26.12.000000.fastdpi.conf",
"2015.03.22.03.26.22.000000.fastdpi.conf",
"2015.03.22.19.03.53.000000.fastdpi.conf",
"2015.03.22.19.44.35.000000.fastdpi.conf",
"2015.03.23.01.30.11.000000.fastdpi.conf",
"2015.03.23.01.31.26.000000.fastdpi.conf",
...
]
}
}

Api_GetDpiConfigFile

Получение содержимого файла DPI-конфигурации.

Параметры:

Id - int:идентификатор оборудования

File - string:имя файла

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_GetDpiConfigFile",
"params":{
"Id":1,
"File":"2015.03.22.03.26.12.000000.fastdpi.conf"
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": "string:content"
}
}

Api_GetDpiInfo

Получение информации об оборудовании.

Параметры:

Id - int:идентификатор оборудования

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_GetDpiInfo",
"params":{
"Id":1
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": {
"FastDPI": "FastDPI 7.4 Minsk (Dec 12 2017)",
"Architecture": "x86_64",
"CPU op-mode(s)": "32-bit, 64-bit",
"Byte Order": "Little Endian",
"CPU(s)": "8",
"On-line CPU(s) list": "0-7",
"Thread(s) per core": "2",
"Core(s) per socket": "4",
"Socket(s)": "1",
"NUMA node(s)": "1",
"Vendor ID": "GenuineIntel",
"CPU family": "6",
"Model": "58",
"Stepping": "9",
"CPU MHz": "3392.160",
"BogoMIPS": "6784.32",
"Virtualization": "VT-x",
"L1d cache": "32K",
"L1i cache": "32K",
"L2 cache": "256K",
"L3 cache": "8192K",
"NUMA node0 CPU(s)": "0-7"
}
}
}

Api_GetDpiResourcesUsageTick

Получение информации о текущем состоянии производительности оборудования.

Параметры:

Id - int:идентификатор оборудования

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_GetDpiResourcesUsageTick",
"params":{
"Id":1
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": {
"cpus_info": null,
"cpus_usage": {
"stat_key": 1,
"us": 0.40000000000000002,
"sy": 3.5,
"ni": 0,
"idle": 95.299999999999997,
"wa": 0.69999999999999996,
"hi": 0,
"si": 0,
"st": 0,
"date": "2018.01.13 10:43:03"
},
"mem_usage": {
"stat_key": 2,
"total": 8030376000,
"used": 2301548000,
"free": 5728828000,
"buffers": 138556000,
"date": "2018.01.13 10:43:03"
},
"swap_usage": {
"stat_key": 2,
"total": 2097144000,
"used": 42040000,
"free": 2055104000,
"cached": 795280000,
"date": "2018.01.13 10:43:03"
},
"top_processes": [
{
"pid": "23650",
"virt": "10.0g",
"res": "997m",
"shr": "10m",
"cpu": 110.59999999999999,
"mem": 12.699999999999999,
"command": "fastdpi_main",
"date": null
},
{
"pid": "13347",
"virt": "98.0m",
"res": "3960",
"shr": "3000",
"cpu": 9.9000000000000004,
"mem": 0,
"command": "sshd",
"date": null
},
{
"pid": "13342",
"virt": "15036",
"res": "1380",
"shr": "996",
"cpu": 4,
"mem": 0,
"command": "top",
"date": null
},
{
"pid": "1084",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 1,
"mem": 0,
"command": "kauditd",
"date": null
},
{
"pid": "13351",
"virt": "98.0m",
"res": "2004",
"shr": "1024",
"cpu": 1,
"mem": 0,
"command": "sshd",
"date": null
},
{
"pid": "1",
"virt": "19232",
"res": "884",
"shr": "748",
"cpu": 0,
"mem": 0,
"command": "init",
"date": null
},
{
"pid": "2",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "kthreadd",
"date": null
},
{
"pid": "3",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "migration/0",
"date": null
},
{
"pid": "4",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "ksoftirqd/0",
"date": null
},
{
"pid": "5",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "migration/0",
"date": null
},
{
"pid": "6",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "watchdog/0",
"date": null
},
{
"pid": "7",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "migration/1",
"date": null
},
{
"pid": "8",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "migration/1",
"date": null
},
{
"pid": "9",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "ksoftirqd/1",
"date": null
},
{
"pid": "10",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "watchdog/1",
"date": null
},
{
"pid": "11",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "migration/2",
"date": null
},
{
"pid": "12",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "migration/2",
"date": null
},
{
"pid": "13",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "ksoftirqd/2",
"date": null
},
{
"pid": "14",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "watchdog/2",
"date": null
},
{
"pid": "15",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "migration/3",
"date": null
},
{
"pid": "16",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "migration/3",
"date": null
},
{
"pid": "17",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "ksoftirqd/3",
"date": null
},
{
"pid": "18",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "watchdog/3",
"date": null
},
{
"pid": "19",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "migration/4",
"date": null
},
{
"pid": "20",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "migration/4",
"date": null
},
{
"pid": "21",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "ksoftirqd/4",
"date": null
},
{
"pid": "22",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "watchdog/4",
"date": null
},
{
"pid": "23",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "migration/5",
"date": null
},
{
"pid": "24",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "migration/5",
"date": null
},
{
"pid": "25",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "ksoftirqd/5",
"date": null
},
{
"pid": "26",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "watchdog/5",
"date": null
}
],
"date": "2018.01.13 10:43:03",
"cpus_count": "8"
}
}
}

Api_GetDpiResourcesStatsUsageForPeriod

Получение информации о состоянии производительности оборудования за период.

Параметры:

Id - int:идентификатор оборудования

Period - object:…(необязательный параметр)

PeriodType - string:…(необязательный параметр)

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_GetDpiResourcesStatsUsageForPeriod",
"params":{
"Id":1,
"Period":{
"start":"2018-01-13T21:00:00.000Z",
"end":"2018-01-13T21:00:00.000Z"
},
"PeriodType":"H"
},
"id":1515921656764
}

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515921656764,
"result":{
"success":true,
"data":{
"2018-01-14 11":{
"cpus_usage":{
"stat_key":"1",
"us":"0.12121212121212127",
"sy":"0.47272727272727294",
"ni":"0",
"idle":"99.14545454545457",
"wa":"0.2787878787878788",
"hi":"0",
"si":"0",
"st":"0",
"date":"2018-01-14 11"
},
"mem_usage":{
"stat_key":"2",
"virt":"10787827712",
"res":"3747196928",
"date":"2018-01-14 11"
},
"dnas_usage":{
"1_0_out":{
"stat_key":"1_0_out",
"cluster_id":"1",
"dna_id":"0",
"act_rcvd_pkts":"165.87878787878788",
"act_send_pkts":"0",
"act_esnd_pkts_err":"0",
"act_drop_pkts":"0",
"act_eemt_pkts_err":"0",
"date":"2018-01-14 11"
},
"1_1_in":{
"stat_key":"1_1_in",
"cluster_id":"1",
"dna_id":"1",
"act_rcvd_pkts":"0",
"act_send_pkts":"165.87878787878788",
"act_esnd_pkts_err":"0",
"act_drop_pkts":"0",
"act_eemt_pkts_err":"0",
"date":"2018-01-14 11"
}
},
"ifs_usage":{
"1":{
"cluster_id":"1",
"abs_rcvd_pkts":"1755914.8181818181",
"abs_rcvd_bytes":"1572754593.4545455",
"abs_rcvd_pkts_dropped":"0",
"act_captured_pkts_sec":"0.03606060606060608",
"act_processed_pkts_sec":"0.03606060606060608",
"act_send_pkts_sec":"0.03606060606060608",
"date":"2018-01-14 11"
}
},
"http_usage":{
"stat_key":"5",
"url":"1517",
"url_lock":"0",
"ssl":"2653",
"ssl_lock":"0",
"cna":"8",
"cna_lock":"0",
"sni":"2645",
"sni_lock":"0",
"quic":"392",
"quic_lock":"0",
"chnprc":"0",
"ccheck":"487579",
"ccheck_ip_check":null,
"ccheck_lock":null,
"ftp":0,
"ftp_lock":0,
"smtp":0,
"smtp_lock":0,
"pop3":0,
"pop3_lock":0,
"imap":0,
"imap_lock":0,
"xmpp":0,
"xmpp_lock":0,
"date":"2018-01-14 11"
},
"date":"2018-01-14 11"
},
"2018-01-14 12":{
"cpus_usage":{
"stat_key":"1",
"us":"2.4529953917050675",
"sy":"1.2198156682027643",
"ni":"0",
"idle":"95.97419354838706",
"wa":"0.3612903225806449",
"hi":"0",
"si":"0",
"st":"0",
"date":"2018-01-14 12"
},
"mem_usage":{
"stat_key":"2",
"virt":"10787827712",
"res":"3747747245.419355",
"date":"2018-01-14 12"
},
"dnas_usage":{
"1_1_in":{
"stat_key":"1_1_in",
"cluster_id":"1",
"dna_id":"1",
"act_rcvd_pkts":"23789.79262672811",
"act_send_pkts":"175827.29493087556",
"act_esnd_pkts_err":"0",
"act_drop_pkts":"0",
"act_eemt_pkts_err":"0",
"date":"2018-01-14 12"
},
"1_0_out":{
"stat_key":"1_0_out",
"cluster_id":"1",
"dna_id":"0",
"act_rcvd_pkts":"175827.29493087556",
"act_send_pkts":"23789.79262672811",
"act_esnd_pkts_err":"0",
"act_drop_pkts":"0",
"act_eemt_pkts_err":"0",
"date":"2018-01-14 12"
}
},
"ifs_usage":{
"1":{
"cluster_id":"1",
"abs_rcvd_pkts":"1795976.133640553",
"abs_rcvd_bytes":"1597939948.7695854",
"abs_rcvd_pkts_dropped":"0",
"act_captured_pkts_sec":"22.814608294930885",
"act_processed_pkts_sec":"22.814608294930885",
"act_send_pkts_sec":"22.814608294930885",
"date":"2018-01-14 12"
}
},
"http_usage":{
"stat_key":"5",
"url":"1527.6036866359448",
"url_lock":"0",
"ssl":"2943.2258064516127",
"ssl_lock":"0",
"cna":"8",
"cna_lock":"0",
"sni":"2935.2258064516127",
"sni_lock":"0",
"quic":"392",
"quic_lock":"0",
"chnprc":"0",
"ccheck":"488168.02764976956",
"ccheck_ip_check":null,
"ccheck_lock":null,
"ftp":0,
"ftp_lock":0,
"smtp":0,
"smtp_lock":0,
"pop3":0,
"pop3_lock":0,
"imap":0,
"imap_lock":0,
"xmpp":0,
"xmpp_lock":0,
"date":"2018-01-14 12"
},
"date":"2018-01-14 12"
}
}
}
}

Api_ProcessDpiStatLog

Запускает процесс обработки лога статистики DPI. Обычно запускается автоматически по расписанию.

Параметры:

Id - int:идентификатор оборудования

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_ProcessDpiStatLog",
"params":{
"Id":1
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true
}
}

Api_GetStatLogTail

Получение "хвоста" лога статистики DPI.

Параметры:

Id - int:идентификатор оборудования

Tail - int: длина "хвоста"

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_GetStatLogTail",
"params":{
"Id":1,
"Tail":20
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": "\ttotal : allocate=165/7555650\n[STAT ][2018/01/13-13:56:08:375363] Detailed statistics on HTTP
:\n\tthread_slave=0 :\n\t\turl/lock=4/0 ( 5,0,0 )( 1,1,0 )\n\t\tssl/lock=25/0 ( 0,1,0 )( 1,2,1
)\n\t\t\tcna/lock=0/0 ( 0,1 )\n\t\t\tsni/lock=25/0 ( 0,0 )\n\t\tquic/lock=0/0 ( 0,0,0 )( 0,0,0
)\n\t\tchnprc=0\n\t\tccheck/ip_check/lock=309/20/0\n\tTotal : \n\t\turl/lock=4/0 ( 5,0,0 )(
1,1,0,98879 )\n\t\tssl/lock=25/0 ( 0,1,0 )( 1,2,1,196647 )\n\t\t\tcna/lock=0/0 ( 0,1
)\n\t\t\tsni/lock=25/0 ( 0,0 )\n\t\tquic/lock=0/0 ( 0,0,0 )( 0,0,0,0
)\n\t\tchnprc=0\n\t\tccheck/ip_check/lock=309/20/0\n[STAT ][2018/01/13-13:56:08:375374] [BRAS]
ARP statistics:\n\tprocessed: subs->inet=0, inet->subs=0; originated=0\n"
}
}

Api_DownloadStatLog

Получение идентификатора лог-файла статистики для скачивания.

Параметры:

Id - int:идентификатор оборудования

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_DownloadStatLog",
"params":{
"Id":1
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": "fq4KpGuICfAxICtX5lAC"
}
}

Получив идентификатор, файл можно получить по ссылке виде

http://<ip адрес сервера>/api/file/fq4KpGuICfAxICtX5lAC

Api_GetAlertLogTail

Получение "хвоста" лога сообщений DPI.

Параметры:

Id - int:идентификатор оборудования

Tail - int: длина "хвоста"

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_GetAlertLogTail",
"params":{
"Id":1,
"Tail":20
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": "\t\tbras_max_session_duration =604800 seconds\n\t\tbras_dhcp_request_delay =300 seconds\n\tARP
proxy:\n\t\tbras_arp_proxy =0x0000 (local:off, gateway:off)\n\t\tbras_arp_ip
=0.0.0.0 (not specified)\n\t\tbras_arp_mac =00:00:00:00:00:00\n\tBRAS
services:\n\t\tbras_dhcp_auth_mix =1 (enabled)\n\t\tbras_ip_source_guard =0
(disabled)\n\t\tbras_terminate_local =0 (disabled)\n\t\tbras_vlan_terminate =0
(disabled)\n\t\tbras_vlan_subst =\n\t\tbras_terminate_l2 =0
(disabled)\n\t\tbras_term_by_as =0 (disabled)\n\t\tbras_gateway_ip
=0.0.0.0\n\t\tbras_gateway_mac =00:00:00:00:00:00\n[COMMON ][2018/01/13-13:32:48:364905]
[0x7fac68409820] BRAS PPPoE: disabled\n[INFO ][2018/01/13-13:32:48:365180][0x7fac68409820] DSCP
settings is loaded.\n[WARNING ][2018/01/13-13:35:58:302925][0x7faa21306700] NFLW : very long
operation to send data, duration=11000669 msec, tmout=10000380 msec, cntr=1\n[ERROR ]
[2018/01/13-13:37:13:630075][0x7faa138fe700] bpm : Error reset_bypass_wd_timer, if='dna0',
errno=95 : Operation not supported\n"
}
}

Api_DownloadAlertLog

Получение идентификатора лог-файла сообщений для скачивания.

Параметры:

Id - int:идентификатор оборудования

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_GetDpiInfo",
"params":{
"Id":1
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": "tjFNBnsRkQmXlJbBsCHM"
}
}

Получив идентификатор, файл можно получить по ссылке виде

http://<ip адрес сервера>/api/file/fq4KpGuICfAxICtX5lAC

Управление нотификациями

Api_GetLastNotifications

Api_GetUnreadedNotificationsCount

Api_SetNotificationsReaded

Api_DeleteNotifications

Api_GetLastNotifications

Получение списка последних нотификаций.

Параметры:

Page - int:номер страницы

Size - int:количество нотификаций в ответе

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_GetLastNotifications",
"params":{
"Page":1,
"Size":3
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": {
"page": 1,
"size": 3,
"count": 200,
"rows": [
{
"notif_id": "391439",
"hardware_hardware_id": "2",
"users_user_id": null,
"date": "2018-01-12T09:22:32",
"from": "Result 'check license', err_code=1",
"text": " Result 'check license', err_code=1 : Success: loaded",
"importance": "COMMON",
"readed": "0",
"deleted": "0"
},
{
"notif_id": "391438",
"hardware_hardware_id": "2",
"users_user_id": null,
"date": "2018-01-12T09:22:32",
"from": "Check license",
"text": " Check license : devices dna0 <--> dna1 ...",
"importance": "COMMON",
"readed": "0",
"deleted": "0"
},
{
"notif_id": "391437",
"hardware_hardware_id": "2",
"users_user_id": null,
"date": "2018-01-12T09:20:32",
"from": "bl_updater_thread",
"text": " bl_updater_thread : Notifications(updatenotifications) list loaded with result, rc=0
: Success: loaded.",
"importance": "INFO",
"readed": "0",
"deleted": "0"
}
]
}
}
}
}

Api_GetUnreadedNotificationsCount

Получение количества непрочитанных CRITICAL нотификаций.

Параметры отсутствуют.

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_GetUnreadedNotificationsCount",
"params":{
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": 123
}
}

Api_SetNotificationsReaded

Отметить нотификации как прочитанные.

Параметры:

Notifs - array:массив нотификаций

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_SetNotificationsReaded",
"params":{
"Notifs":[
{
"notif_id": "391439",
"hardware_hardware_id": "2",
"users_user_id": null,
"date": "2018-01-12T09:22:32",
"from": "Result 'check license', err_code=1",
"text": " Result 'check license', err_code=1 : Success: loaded",
"importance": "COMMON",
"readed": "0",
"deleted": "0"
},
...
]
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true
}
}

Api_DeleteNotifications

Удалить нотификации.

Параметры:

Notifs - array:массив нотификаций

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_DeleteNotifications",
"params":{
"Notifs":[
{
"notif_id": "391439",
"hardware_hardware_id": "2",
"users_user_id": null,
"date": "2018-01-12T09:22:32",
"from": "Result 'check license', err_code=1",
"text": " Result 'check license', err_code=1 : Success: loaded",
"importance": "COMMON",
"readed": "0",
"deleted": "0"
},
...
]
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true
}
}

Отправка ошибок

Api_SendError

Api_LogError

Api_SendError

Отправка сообщения об ошибке на почту указанную в конфигурации.

Параметры:

Params - object: модель сообщения об ошибке

Параметры конфигурации отправки:

subject - string: тема сообщения

body - string: тело сообщения

hardware_id - int: идентификатор оборудования

alertLog - bool: включение файла с логами уведомлений в сообщение

statLog - bool: включение файла с логами состояния оборудования в сообщение

uiLog - bool: включение файла с логами dpiui в сообщение

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_SendError",
"params":{
"Params":{
"hardware_id": "1",
"subject":"test",
"body":"test",
"alertLog":true,
"statLog":true,
"uiLog":true
}
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true
}
}

Api_LogError

Запись информации об ошибке в dpiui-лог.

Параметры:

Content - string: тело сообщения об ошибке

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_LogError",
"params":{
"Content":"error text"
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true
}
}

Управление абонентами

Api_GetSubscribers

Api_SaveSubscriber

Api_DeleteSubscriber

Api_GetSubscribers

Получение списка абонентов. Параметры:

Params - object: параметры поиска(необязательный параметр)

Возможные параметры поиска Params:

page - int: номер страницы

size - int: размерность массива с результатом

hardware_id - int: идентификатор оборудования

login - string: имя пользователя

login_equal - string:…

ip - string: ip-адрес пользователя

ip_equal - string:…

bind_type - …

services - …

policings - …

order_by - string: поле, по которому будет упорядочен список абонентов

order_dir - string: упорядочивание списка по возрастанию("asc")/убыванию("desc")

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_GetSubscribers",
"params":{
"Params":{
"hardware_id":"1",
"page":0,
"size":100,
"login":"",
"ip":"",
"bind_type":"",
"services":"",
"policings": ""
}
},
"id":1515929803508
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515929803508,
"result":{
"success":true,
"data":{
"page":0,
"size":100,
"count":6,
"rows":[
{
"hardware_id":"1",
"login":"llllyyy",
"ip":"5.5.5.7",
"bind_type":"1",
"services":"5,",
"policing": "278"
},
{
"hardware_id":"1",
"login":"user11",
"ip":"1.1.1.1",
"bind_type":"0",
"services":"4,",
"policing": "279"
},
{
"hardware_id":"1",
"login":"user22",
"ip":"1.1.1.3",
"bind_type":"1",
"services":"2,3,4,5,6,",
"policing": "278"
},
{
"hardware_id":"1",
"login":"user3",
"ip":"2.2.2.2",
"bind_type":"1",
"services":"2,3,4,5,6,",
"policing": "278"
},
{
"hardware_id":"1",
"login":"user4",
"ip":"3.3.3.3",
"bind_type":"1",
"services":"4,",
"policing": "278"
},
{
"hardware_id":"1",
"login":"userxx",
"ip":"5.5.5.6",
"bind_type":"1",
"services":"3,4,6,",
"policing": "278"
}
]
}
}
}

Api_SaveSubscriber

Сохранение модели абонента.

Параметры:

Id - int: идентификатор оборудования

Subscriber - object: модель абонента с новыми данными

SubscriberOld - object: модель абонента со старыми данными. Если данный параметры указан, производится редактирование данных этого абонента и подключенных ему услуг.Если не указан, создается новый абонент.

Пример запроса при создании абонента:

[
{
"jsonrpc":"2.0",
"method":"Api_SaveSubscriber",
"params":{
"Id":1,
"Subscriber":{
"id":1515929803535,
"hardware_id":0,
"login":"test",
"ip":"77.77.77.77",
"bind_type":"0",
"services":"4,6,",
"policing":"278",
"valid":true,
"oldSubscriber":{
"id":1515929803535,
"hardware_id":0,
"login":"",
"ip":"",
"bind_type":1,
"services":"",
"policing":"0",
"valid":true
}
},
"SubscriberOld":{
"id":1515929803535,
"hardware_id":0,
"login":"",
"ip":"",
"bind_type":1,
"services":"",
"policing":"",
"valid":true
}
},
"id":1515929803535
}
]

Пример успешного ответа при создании абонента:

{
"jsonrpc":"2.0",
"id":1515929803535,
"result":{
"success":true,
"data":{
"bind":{
"success":true,
"data":{
"bind_result":{
"total":"1",
"success":"1",
"fail":"0",
"were_set_before":"0",
"were_not_set_before":"0",
"data":{
}
},
"unbind_result":null
}
},
"services":{
"success":true,
"data":{
"bind_result":{
"total":"1",
"success":"1",
"fail":"0",
"were_set_before":"0",
"were_not_set_before":"0",
"data":{
}
},
"unbind_result":null
}
},
"sync_bind":{
"success":true,
"data":0.0988309383392334
},
"sync_services":{
"success":true,
"data":0.08402705192565918
},
"policing":{
"success": true,
"data":{
"bind":{
"success":true
},
"unbind":{
"success":true
}
}
},
"sync_policing":{
"success": true
}
}
}
}

Пример запроса при редактировании абонента:

[
{
"jsonrpc":"2.0",
"method":"Api_SaveSubscriber",
"params":{
"Id":1,
"Subscriber":{
"id":1515929804490,
"hardware_id":"1",
"login":"test123",
"ip":"77.77.77.77",
"bind_type":"0",
"services":"1,4,6,",
"policing":"277",
"valid":true,
"oldSubscriber":{
"id":1515929804490,
"hardware_id":"1",
"login":"test",
"ip":"77.77.77.77",
"bind_type":"0",
"services":"4,6,",
"policing":"",
"valid":true
}
},
"SubscriberOld":{
"id":1515929804490,
"hardware_id":"1",
"login":"test",
"ip":"77.77.77.77",
"bind_type":"0",
"services":"4,6,",
"policing":"278",
"valid":true
}
},
"id":1515929804490
}
]

Пример успешного ответа при редактировании абонента:

{
"jsonrpc":"2.0",
"id":1515929804490,
"result":{
"success":true,
"data":{
"bind":{
"success":true,
"data":{
"bind_result":{
"total":"1",
"success":"1",
"fail":"0",
"were_set_before":"0",
"were_not_set_before":"0",
"data":{
}
},
"unbind_result":null
}
},
"services":{
"success":true,
"data":{
"bind_result":{
"total":"1",
"success":"1",
"fail":"0",
"were_set_before":"0",
"were_not_set_before":"0",
"data":{
}
},
"unbind_result":{
"total":"1",
"success":"1",
"fail":"0",
"were_set_before":"0",
"were_not_set_before":"0",
"data":{
}
}
}
},
"sync_bind":{
"success":true,
"data":0.1651449203491211
},
"sync_services":{
"success":true,
"data":0.1676170825958252
},
"policing":{
"success": true,
"data":{
"bind":{
"success":true
},
"unbind":{
"success":true
}
}
},
"sync_policing":{
"success": true
}
}
}
}

Api_DeleteSubscriber

Удаление абонента.

Параметры:

Id - int: идентификатор оборудования

Subscriber - object: модель абонента

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_DeleteSubscriber",
"params":{
"Id":1,
"Subscriber":{
"id":1515929804638,
"hardware_id":"1",
"login":"test123",
"ip":"77.77.77.77",
"bind_type":"0",
"services":"1,4,6,",
"policing":"278",
"valid":true
}
},
"id":1515929804638
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515929804638,
"result":{
"success":true,
"data":{
"services":{
"success":true,
"data":{
"bind_result":null,
"unbind_result":{
"total":"1",
"success":"1",
"fail":"0",
"were_set_before":"0",
"were_not_set_before":"0",
"data":{
}
}
}
},
"unbind":{
"success":true,
"data":{
"total":"1",
"success":"1",
"fail":"0",
"were_set_before":"0",
"were_not_set_before":"0",
"data":{
}
}
},
"sync_bind":{
"success":true,
"data":0.07761001586914062
},
"sync_services":{
"success":true,
"data":0.0842139720916748
},
"policing":{
"success": true,
"data":{
"unbind":{
"success":true
}
}
},
"sync_policing":{
"success": true
}
}
}
}

Управление услугами

Управление черными/белыми списками

Управление записью PCAP

Управление мини Firewall-ом

Управление L2 BRAS

Управление L3 BRAS

Управление CG NAT

Управление защитой от DOS и DDOS атак

Управление кешированием

Управление уведомлениями абонентов

Управление блокировкой и заменой рекламы

Управление бонусной программой

Управление черными/белыми списками

Api_GetBlTasks

Api_SaveBlTask

Api_DeleteBlTask

Api_RunBlTask

Api_StopBlTask

Api_GetBlListItems

Api_SaveBlListItem

Api_DeleteBlListItem

Api_ImportBlListItems

Api_ImportBlListItemsFromQoE

Api_GetBlTargets

Api_SaveBlTargets

Api_SaveBlTarget

Api_DeleteBlTarget

Api_GetBlTasks

Получение списка профилей Черных/Белых списков. Параметры:

Params - object: параметры поиска(необязательный параметр)

Возможные параметры поиска Params:

page - int: номер страницы

size - int: размерность массива с результатом

hardware_id - int: идентификатор оборудования

title - string: имя профиля

white - int:0|1, если 0 - то профиль улуги Черного списка

task_id - int: идентификатор профиля

tasks_ids - string: идентификаторы профилей через запятую

not_in_tasks_ids - string: идентификаторы профилей через запятую

parent_ids_is_null - int: 0|1

status - int: 0|1 => Выкл|Вкл

order_by - string: поле, по которому будет упорядочен список профилей

order_dir - string: упорядочивание списка по возрастанию("asc")/убыванию("desc")

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_GetBlTasks",
"params":{
"Params":{
"hardware_id": 1,
"parent_id_is_null": 1
"order_by": "task_id",
"order_dir": "desc",
"page": 0,
"tasks_ids": null,
"size": 100,
"title": ""
}
},
"id":1515929803508
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515929803508,
"result":{
"success":true,
"data":{
"page":0,
"size":100,
"count":6,
"rows":[
{
"date": "2019-03-23 06:28:25",
"form_data": "{"title":"All range","white":0,"redirect_enabled":"","redirect":"spectredpi.com","target":""}",
"hardware_id": "1",
"lists_updated": "0",
"parent_id": null,
"status": "1",
"targets_updated": "0",
"task_id": "234",
"title": "All range",
"user_id": "1",
"white": "0",
},
...
]
}
}
}

Api_SaveBlTask

Сохранение профиля Черных/Белых списков. Параметры:

Form - object: модель данных из формы

Task - object: модель профиля

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_SaveBlTask",
"params":{
"Form":{
"title":"All range",
"redirect":"specredpi.com",
"white":0,
"target":"",
"redirect_enabled":""
},
"Task":{
"data":[],
"date":"2019-03-22 06:28:25",
"form_data":"{\"title\":\"All range1\",\"white\":1,\"redirect_enabled\":\"\",\"redirect\":\"spectredpi.com\",\"target\":\"\"}",
"hardware_id": 1,
"parent_id":null,
"status":1,
"task_id":234,
"title":"All range1",
"user_id":1,
"white":1
}
},
"id":1515929803508
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515929803508,
"result":{
"success":true,
"data":{
"task":{
"data":[],
"date":"2019-03-22 06:28:25",
"form_data":"{\"title\":\"All range\",\"white\":0,\"redirect_enabled\":\"\",\"redirect\":\"spectredpi.com\",\"target\":\"\"}",
"hardware_id": 1,
"parent_id":null,
"status":1,
"task_id":234,
"title":"All range",
"user_id":1,
"white":0,
"lists_updated":1,
"targets_updated":1
}
}
}
}

Api_DeleteBlTask

Удаление профиля Черных/Белых списков. Параметры:

Task - object: модель профиля

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_DeleteBlTask",
"params":{
"Task":{
"data":[],
"date":"2019-03-22 06:28:25",
"form_data":"{\"title\":\"All range1\",\"white\":1,\"redirect_enabled\":\"\",\"redirect\":\"spectredpi.com\",\"target\":\"\"}",
"hardware_id": 1,
"parent_id":null,
"status":1,
"task_id":234,
"title":"All range1",
"user_id":1,
"white":1
}
},
"id":1515929803508
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515929803508,
"result":{
"success":true
}
}

Api_RunBlTask

Включение профиля Черных/Белых списков. Параметры:

Task - object: модель профиля

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_RunBlTask",
"params":{
"Task":{
"data":[],
"date":"2019-03-22 06:28:25",
"form_data":"{\"title\":\"All range1\",\"white\":1,\"redirect_enabled\":\"\",\"redirect\":\"spectredpi.com\",\"target\":\"\"}",
"hardware_id": 1,
"parent_id":null,
"status":0,
"task_id":234,
"title":"All range1",
"user_id":1,
"white":1
}
},
"id":1515929803508
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515929803508,
"result":{
"success":true,
"data":{
"data":[],
"date":"2019-03-22 06:28:25",
"form_data":"{\"title\":\"All range1\",\"white\":1,\"redirect_enabled\":\"\",\"redirect\":\"spectredpi.com\",\"target\":\"\"}",
"hardware_id": 1,
"parent_id":null,
"status":1,
"task_id":234,
"title":"All range1",
"user_id":1,
"white":1
}
}
}

Api_StopBlTask

Выключение профиля Черных/Белых списков. Параметры:

Task - object: модель профиля

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_StopBlTask",
"params":{
"Task":{
"data":[],
"date":"2019-03-22 06:28:25",
"form_data":"{\"title\":\"All range1\",\"white\":1,\"redirect_enabled\":\"\",\"redirect\":\"spectredpi.com\",\"target\":\"\"}",
"hardware_id": 1,
"parent_id":null,
"status":1,
"task_id":234,
"title":"All range1",
"user_id":1,
"white":1
}
},
"id":1515929803508
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515929803508,
"result":{
"success":true,
"data":{
"data":[],
"date":"2019-03-22 06:28:25",
"form_data":"{\"title\":\"All range1\",\"white\":1,\"redirect_enabled\":\"\",\"redirect\":\"spectredpi.com\",\"target\":\"\"}",
"hardware_id": 1,
"parent_id":null,
"status":0,
"task_id":234,
"title":"All range1",
"user_id":1,
"white":1
}
}
}

Api_GetBlListItems

Получение списка ресурсов профилей Черных/Белых списков. Параметры:

Params - object: параметры поиска(необязательный параметр)

Возможные параметры поиска Params:

page - int: номер страницы

size - int: размерность массива с результатом

uri - string: ресурс

type - string:sni|ip|url|cn

task_id - int: идентификатор профиля

enabled - int: 0|1 => Выкл|Вкл

order_by - string: поле, по которому будет упорядочен список ресурсов

order_dir - string: упорядочивание списка по возрастанию("asc")/убыванию("desc")

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_GetBlListItems",
"params":{
"Params":{
"order_by": "uri",
"order_dir": "asc",
"page": 0,
"tasks_id": 234,
"size": 100
}
},
"id":1515929803508
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515929803508,
"result":{
"success":true,
"data":{
"page":0,
"size":100,
"count":6,
"rows":[
{
"enabled": 1,
"item_id": 2098644,
"task_id": "234",
"type": "sni",
"uri": "*.detik.com"
},
...
]
}
}
}

Api_SaveBlListItem

Сохранение ресурса профиля Черных/Белых списков. Параметры:

ListItem - object: модель ресурса

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_SaveBlListItem",
"params":{
"ListItem":{
"enabled": 1,
"item_id": 2098644,
"task_id": "234",
"type": "sni",
"uri": "*.detik.com"
}
},
"id":1515929803508
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515929803508,
"result":{
"success":true,
"data":{
"list_item":{
"enabled": 1,
"item_id": 2098644,
"task_id": "234",
"type": "sni",
"uri": "*.detik.com"
}
}
}
}

Api_DeleteBlListItem

Удаление ресурса профиля Черных/Белых списков.

Параметры:

ListItem - object: модель ресурса

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_DeleteBlListItem",
"params":{
"ListItem":{
"enabled": 1,
"item_id": 2098644,
"task_id": "234",
"type": "sni",
"uri": "*.detik.com"
}
},
"id":1515929803508
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515929803508,
"result":{
"success":true
}
}

Api_ImportBlListItems

Импорт массива моделей ресурсов профиля Черных/Белых списков.

Параметры:

Items - array: массив моделей ресурсов

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_ImportBlListItems",
"params":{
"Items":[
{
"enabled": 1,
"item_id": 0,
"task_id": "234",
"type": "sni",
"uri": "*.detik.com"
},
...
]
},
"id":1515929803508
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515929803508,
"result":{
"success":true
}
}

Api_ImportBlListItemsFromQoE

Импорт ресурсов по категориям из QoE.

Параметры:

Task - object: модель профиля

Categories - string: идентификаторы категорий ресурсов из QoE через запятую

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_ImportBlListItemsFromQoE",
"params":{
"Categories": "7,8,9,10",
"Task":{
"data":[],
"date":"2019-03-22 06:28:25",
"form_data":"{\"title\":\"All range1\",\"white\":1,\"redirect_enabled\":\"\",\"redirect\":\"spectredpi.com\",\"target\":\"\"}",
"hardware_id": 1,
"parent_id":null,
"status":1,
"task_id":234,
"title":"All range1",
"user_id":1,
"white":1
}
},
"id":1515929803508
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515929803508,
"result":{
"success":true
}
}

Api_GetBlTargets

Получение списка абонентов профилей Черных/Белых списков.

Параметры:

Params - object: параметры поиска(необязательный параметр)

Возможные параметры поиска Params:

page - int: номер страницы

size - int: размерность массива с результатом

task_id - int: идентификатор профиля

target - string: логин абонента

status - int: статус абонента

order_by - string: поле, по которому будет упорядочен список абонентов

order_dir - string: упорядочивание списка по возрастанию("asc")/убыванию("desc")

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_GetBlTargets",
"params":{
"Params":{
"order_by": "target",
"order_dir": "desc",
"page": 0,
"tasks_id": 234,
"size": 100
}
},
"id":1515929803508
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515929803508,
"result":{
"success":true,
"data":{
"page":0,
"size":100,
"count":6,
"rows":[
{
"status": 1,
"task_id": "234",
"target": "4.4.4.4"
},
...
]
}
}
}

Api_SaveBlTargets

Сохранение нескольких абонентов профиля Черных/Белых списков. Параметры:

Targets - array: массив моделей абонентов профиля

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_SaveBlTargets",
"params":{
"Targets":[
{
"status": 1,
"task_id": "234",
"target": "4.4.4.4"
},
{
"status": 1,
"task_id": "234",
"target": "10.64.66.101"
}
]
},
"id":1515929803508
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515929803508,
"result":{
"success":true
}
}

Api_SaveBlTarget

Сохранение абонента профиля Черных/Белых списков. Параметры:

NewTarget - object: новая модель абонента профиля

OldTarget - object: старая модель абонента профиля

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_SaveBlTarget",
"params":{
"NewTarget":{
"status": 1,
"task_id": "234",
"target": "4.4.4.4"
},
"OldTarget":null
},
"id":1515929803508
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515929803508,
"result":{
"success":true
}
}

Api_DeleteBlTarget

Удаление абонента профиля Черных/Белых списков. Параметры:

Target - object: модель абонента профиля

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_DeleteBlTarget",
"params":{
"Target":{
"status": 1,
"task_id": "234",
"target": "4.4.4.4"
}
},
"id":1515929803508
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515929803508,
"result":{
"success":true
}
}

Управление записью PCAP

В разработке.

Управление мини Firewall-ом

Api_GetMiniFirewallProfiles

Api_SaveMiniFirewallProfile

Api_DeleteMiniFirewallProfile

Api_RunMiniFirewallProfile

Api_StopMiniFirewallProfile

Api_GetMiniFirewallProfiles

Получение списка профилей Мини Firewall. Параметры:

Params - object: параметры поиска(необязательный параметр)

Возможные параметры поиска Params:

page - int: номер страницы

size - int: размерность массива с результатом

hardware_id - int: идентификатор оборудования

title - string: имя профиля

title_equal - string: точное имя профиля

profile_id - int: Идентификатор профиля

profile_id_not_eqaul - int: Идентификатор профиля

profile_ids - string: Строка с перечислением идентификаторов профилей через запятую

status - int: 0|1 => Выкл|Вкл

order_by - string: поле, по которому будет упорядочен список профилей

order_dir - string: упорядочивание списка по возрастанию("asc")/убыванию("desc")

Пример запроса:

[{
"jsonrpc":"2.0",
"method":"Api_GetMiniFirewallProfiles",
"params":
{
"Params":
{
"page":0,
"size":100,
"order_by":"profile_id",
"order_dir":"desc",
"profiles_ids":null,
"hardware_id":10
}
},
"id":1570094137904
}]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1570094137904,
"result":
{
"success":true,
"data":
{
"page":0,
"size":100,
"count":7,"rows":
[
{
"profile_id":"1202",
"hardware_id":"10",
"title":"qq",
"date":"2019-10-02 16:22:42",
"form_data":"{\"title\":\"qq\",\"max_port\":1000,\"port_holes\":[],\"out_port\":[555]}","status":"0","sync_marker":"0"
},
{...}
]
}
}
}

Api_SaveMiniFirewallProfile

Сохранение профиля Мини Firewall. Параметры:

Form - object: модель данных из формы

Task - object: модель профиля

Пример запроса:

[{
"jsonrpc":"2.0",
"method":"Api_SaveMiniFirewallProfile",
"params":
{
"Profile":
{
"id":1570094137951,
"profile_id":0,
"hardware_id":"10",
"title":"",
"date":0,
"status":0,
"form_data":"{\"title\":\"\",\"max_port\":0,\"port_holes\":[],\"out_port\":[],\"valid\":true}",
"sync_marker":0,
"valid":true
},
"Form":
{
"title":"test",
"max_port":10240,
"port_holes":[80,8080],
"out_port":[25,465],
"valid":true
}
},
"id":1570094137951
}]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1570094137951,
"result":
{
"success":true,
"data":
{
"profile":
{
"profile_id":"1509",
"hardware_id":"10",
"title":"test",
"date":"2019-10-03 09:44:22",
"form_data":"{\"title\":\"test\",\"max_port\":10240,\"port_holes\":[80,8080],\"out_port\":[25,465]}",
"status":"0",
"sync_marker":"0"
}
}
}
}

Api_DeleteMiniFirewallProfile

Удаление профиля Мини Firewall. Параметры:

Profile - object: модель профиля

Пример запроса:

[{
"jsonrpc":"2.0",
"method":"Api_DeleteMiniFirewallProfile",
"params":
{
"Profile":
{
"id":1570094137926,
"profile_id":"1202",
"hardware_id":"10",
"title":"qq",
"date":"2019-10-02 16:22:42",
"status":0,
"form_data":"{\"title\":\"qq\",\"max_port\":1000,\"port_holes\":[],\"out_port\":[555]}",
"sync_marker":"0",
"valid":true
}
},
"id":1570094137926
}]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1570094137926,
"result":{
"success":true
}
}

Api_RunMiniFirewallProfile

Запуск профиля Мини Firewall. Параметры:

Profile - object: модель профиля

Пример запроса:

[{
"jsonrpc":"2.0",
"method":"Api_RunMiniFirewallProfile",
"params":
{
"Profile":
{
"id":1570094137951,
"profile_id":"1509",
"hardware_id":"10",
"title":"test",
"date":"2019-10-03 09:44:22",
"status":0,
"form_data":"{\"title\":\"test\",\"max_port\":10240,\"port_holes\":[80,8080],\"out_port\":[25,465]}",
"sync_marker":"0",
"valid":true
}
},
"id":1570094137951
}]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1570094137951,
"result":
{
"success":true,
"data":
{
"profile_id":"1509",
"hardware_id":"10",
"title":"test",
"date":"2019-10-03 09:44:22",
"form_data":"{\"title\":\"test\",\"max_port\":10240,\"port_holes\":[80,8080],\"out_port\":[25,465]}",
"status":1,
"sync_marker":"0"
}
}
}

Api_StopMiniFirewallProfile

Остановка профиля Мини Firewall. Параметры:

Profile - object: модель профиля

Пример запроса:

[{
"jsonrpc":"2.0",
"method":"Api_StopMiniFirewallProfile",
"params":
{
"Profile":
{
"id":1570094137951,
"profile_id":"1509",
"hardware_id":"10",
"title":"test",
"date":"2019-10-03 09:44:22",
"status":1,
"form_data":"{\"title\":\"test\",\"max_port\":10240,\"port_holes\":[80,8080],\"out_port\":[25,465]}",
"sync_marker":"0",
"valid":true
}
},
"id":1570094137951
}]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1570094137951,
"result":
{
"success":true,
"data":
{
"profile_id":"1509",
"hardware_id":"10",
"title":"test",
"date":"2019-10-03 09:44:22",
"form_data":"{\"title\":\"test\",\"max_port\":10240,\"port_holes\":[80,8080],\"out_port\":[25,465]}",
"status":0,
"sync_marker":"0"
}
}
}

Управление L2 BRAS

В разработке.

Управление L3 BRAS

В разработке.

Управление CG NAT

Api_GetCgNatProfiles

Api_SaveCgNatProfile

Api_DeleteCgNatProfile

Api_RunCgNatProfile

Api_StopCgNatProfile

Api_GetCgNatDetailStatus

Api_GetCgNatFullStatus

Api_GetCgNatSubscribersStatus

Api_GetCgNatProfiles

Получение списка CG NAT профилей. Параметры:

Params - object: параметры поиска(необязательный параметр)

Возможные параметры поиска Params:

page - int: номер страницы

size - int: размерность массива с результатом

hardware_id - int: идентификатор оборудования

title - string: имя профиля

title_equal - string: точное имя профиля

profile_id - int: Идентификатор профиля

profile_id_not_eqaul - int: Идентификатор профиля

profile_ids - string: Строка с перечислением идентификаторов профилей через запятую

status - int: 0|1 => Выкл|Вкл

nat_type - int: Тип профиля (0 => CG NAT, 1 => 1:1)

order_by - string: поле, по которому будет упорядочен список профилей

order_dir - string: упорядочивание списка по возрастанию("asc")/убыванию("desc")

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_GetCgNatProfiles",
"params":{
"Params":{
"page":0,
"size":100,
"order_by":"profile_id",
"order_dir":"desc",
"profiles_ids":null,
"hardware_id":1
}
},
"id":1564488173195
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1564488173195,
"result":{
"success":true,
"data":{
"page":0,
"size":100,
"count":4,
"rows":[
{
"profile_id":"755",
"hardware_id":"1",
"title":"stress",
"date":"2019-07-22 20:24:25",
"form_data":"{\"title\":\"stress\",\"nat_ip_pool\":\"5.199.42.0\/28\",\"nat_type\":1,\"nat_tcp_max_sessions\":0,\"nat_udp_max_sessions\":0}",
"status":"0",
"nat_type":"1",
"subscribers_updated":"1",
"sync_marker":"2039079626"
},
{...},
...
]
}
}
}

Api_SaveCgNatProfile

Сохранение CG NAT профиля. Параметры:

Form - object: модель данных из формы

Task - object: модель профиля

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_SaveCgNatProfile",
"params":{
"Profile":{
"id":1564488173202,
"profile_id":"752",
"hardware_id":"1",
"title":"stress",
"date":"2019-07-22 20:24:25",
"status":0,
"nat_type":1,
"form_data":"{\"title\":\"stress\",\"nat_ip_pool\":\"5.200.44.0/32\",\"nat_type\":1,\"nat_tcp_max_sessions\":0,\"nat_udp_max_sessions\":0}",
"subscribers_updated":1,
"sync_marker":"2039079626",
"valid":true
},
"Form":{
"title":"stress",
"nat_ip_pool":"5.200.44.0/32",
"nat_type":1,
"nat_tcp_max_sessions":0,
"nat_udp_max_sessions":0,
"valid":true
}
},
"id":1564488173202
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1564488173202,
"result":{
"success":true,
"data":{
"profile":{
"profile_id":"752",
"hardware_id":"1",
"title":"stress",
"date":"2019-07-30 13:07:56",
"form_data":"{\"title\":\"stress\",\"nat_ip_pool\":\"5.200.44.0\\\/32\",\"nat_type\":1,\"nat_tcp_max_sessions\":0,\"nat_udp_max_sessions\":0}",
"status":"0",
"nat_type":"1",
"subscribers_updated":"1",
"sync_marker":"2039079626"
}
}
}
}

Api_DeleteCgNatProfile

Удаление CG NAT профиля. Параметры:

Profile - object: модель профиля

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_DeleteCgNatProfile",
"params":{
"Profile":{
"id":1564488173351,
"profile_id":"773",
"hardware_id":"1",
"title":"test_delete",
"date":"2019-07-30 13:16:12",
"status":0,
"nat_type":0,
"form_data":"{\"title\":\"test_delete\",\"nat_ip_pool\":\"192.168.1.90\\/24\",\"nat_type\":0,\"nat_tcp_max_sessions\":1500,\"nat_udp_max_sessions\":1500}",
"subscribers_updated":0,
"sync_marker":"0",
"valid":true
}
},
"id":1564488173351
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1564488173351,
"result":{
"success":true
}
}

Api_RunCgNatProfile

Запуск CG NAT профиля. Параметры:

Profile - object: модель профиля

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_RunCgNatProfile",
"params":{
"Profile":{
"id":1564494014854,
"profile_id":"752",
"hardware_id":"1",
"title":"stress",
"date":"2019-07-30 13:21:06",
"status":0,
"nat_type":1,
"form_data":"{\"title\":\"stress\",\"nat_ip_pool\":\"5.200.44.0\\/32\",\"nat_type\":1,\"nat_tcp_max_sessions\":0,\"nat_udp_max_sessions\":0}",
"subscribers_updated":1,
"sync_marker":"2039079626",
"valid":true
}
},
"id":1564494014854
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1564494014854,
"result":{
"success":true,
"data":{
"profile_id":"752",
"hardware_id":"1",
"title":"stress",
"date":"2019-07-30 13:21:06",
"form_data":"{\"title\":\"stress\",\"nat_ip_pool\":\"5.200.44.0\\\/32\",\"nat_type\":1,\"nat_tcp_max_sessions\":0,\"nat_udp_max_sessions\":0}",
"status":1,
"nat_type":"1",
"subscribers_updated":"1",
"sync_marker":"2039079626"
}
}
}

Api_StopCgNatProfile

Остановка CG NAT профиля. Параметры:

Profile - object: модель профиля

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_StopCgNatProfile",
"params":{
"Profile":{
"id":1564494014854,
"profile_id":"752",
"hardware_id":"1",
"title":"stress",
"date":"2019-07-30 13:21:06",
"status":1,
"nat_type":1,
"form_data":"{\"title\":\"stress\",\"nat_ip_pool\":\"5.200.44.0\\/32\",\"nat_type\":1,\"nat_tcp_max_sessions\":0,\"nat_udp_max_sessions\":0}",
"subscribers_updated":1,
"sync_marker":"2039079626",
"valid":true
}
},
"id":1564494014854
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1564494014854,
"result":{
"success":true,
"data":{
"profile_id":"752",
"hardware_id":"1",
"title":"stress",
"date":"2019-07-30 13:21:06",
"form_data":"{\"title\":\"stress\",\"nat_ip_pool\":\"5.200.44.0\\\/32\",\"nat_type\":1,\"nat_tcp_max_sessions\":0,\"nat_udp_max_sessions\":0}",
"status":0,
"nat_type":"1",
"subscribers_updated":"1",
"sync_marker":"2039079626"
}
}
}

Api_GetCgNatDetailStatus

Получение подробного статуса CG NAT профиля. Параметры:

Params - object: параметры поиска(необязательный параметр)

Возможные параметры поиска Params:

page - int: номер страницы

size - int: размерность массива с результатом

order_by - string: поле, по которому будет упорядочен список профилей

order_dir - string: упорядочивание списка по возрастанию("asc")/убыванию("desc")

hardware_id - int: идентификатор оборудования

profile_id - int: Идентификатор профиля

profile_ids - string: Строка с перечислением идентификаторов профилей через запятую

proto - string: Используемый протокол (TCP / UDP)

ip_mask - string: IP маска( 0x0 / 0x1)

nthr - int: Номер потока (0 / 1)

whip - string: Белый IP адрес

num_port - int: Общее количество портов ( >= )

use_port - int: Используемое количество портов ( >= )

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_GetCgNatDetailStatus",
"params":{
"Params":{
"page":0,
"size":100,
"order_by":"profile_id",
"order_dir":"desc",
"profile_ids":"753",
"hardware_id":"1"
}
},
"id":1564494015645
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1564494015645,
"result":{
"success":true,
"data":{
"page":0,
"size":100,
"count":16,
"rows":[
{
"profile_id":"753",
"proto":"TCP",
"nthr":"0",
"ip_mask":"0x0",
"whip":"8.8.8.10",
"num_port":"64512",
"use_port":"0",
"sync_marker":"2039079626",
"title":"1st_profile1"
},
{...},
...
]
}
}
}

Api_GetCgNatFullStatus

Получение общего статуса CG NAT профиля. Параметры:

Params - object: параметры поиска(необязательный параметр)

Возможные параметры поиска Params:

page - int: номер страницы

size - int: размерность массива с результатом

order_by - string: поле, по которому будет упорядочен список профилей

order_dir - string: упорядочивание списка по возрастанию("asc")/убыванию("desc")

hardware_id - int: идентификатор оборудования

profile_id - int: Идентификатор профиля

profile_ids - string: Строка с перечислением идентификаторов профилей через запятую

proto - string: Используемый протокол (TCP / UDP)

ip_mask - string: IP маска( 0x0 / 0x1)

nthr - int: Номер потока (0 / 1)

whip - string: Белый IP адрес

num_port - int: Общее количество портов ( >= )

use_port - int: Используемое количество портов ( >= )

num_addr - int: Общее количество адресов ( >= )

use_addr - int: Используемое количество адресов ( >= )

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_GetCgNatFullStatus",
"params":{
"Params":{
"page":0,
"size":100,
"order_by":"profile_id",
"order_dir":"desc",
"profile_ids":"753",
"hardware_id":"1"
}
},
"id":1564494015647
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1564494015647,
"result":{
"success":true,
"data":{
"page":0,"size":100,
"count":2,
"rows":[
{
"profile_id":"753",
"proto":"TCP",
"nthr":"0",
"ip_mask":"0x0",
"num_addr":"8",
"use_addr":"0",
"num_port":"516096",
"use_port":"0",
"sync_marker":"2039079626",
"title":"1st_profile1"
},
{
"profile_id":"753",
"proto":"UDP",
"nthr":"0",
"ip_mask":"0x0",
"num_addr":"8",
"use_addr":"0",
"num_port":"516096",
"use_port":"0",
"sync_marker":"2039079626",
"title":"1st_profile1"
}
]
}
}
}

Api_GetCgNatSubscribersStatus

Получение статуса абонентов CG NAT профиля. Параметры:

Params - object: параметры поиска(необязательный параметр)

Возможные параметры поиска Params:

page - int: номер страницы

size - int: размерность массива с результатом

order_by - string: поле, по которому будет упорядочен список профилей

order_dir - string: упорядочивание списка по возрастанию("asc")/убыванию("desc")

hardware_id - int: идентификатор оборудования

profile_id - int: Идентификатор профиля

profile_ids - string: Строка с перечислением идентификаторов профилей через запятую

ipv4 - string: Серый IP адрес

whiteip - string: Белый IP адрес

sess_tcp - int: Количество TCP сессий ( >= )

sess_udp - int: Количество UDP сессий ( >= )

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_GetCgNatSubscribersStatus",
"params":{
"Params":{
"page":0,
"size":100,
"order_by":"profile_id",
"order_dir":"desc",
"profile_ids":"753",
"hardware_id":"1"
}
},
"id":1564494015649
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1564494015649,
"result":{
"success":true,
"data":{
"page":0,
"size":100,
"count":15,
"rows":[
{
"profile_id":"753",
"ipv4": "192.168.15.25",
"whiteip": "5.200.44.1",
"sess_tcp": "134",
"sess_udp": "62",
"sync_marker": "2039079626"
},
{...},
...
]
}
}
}

Управление защитой от DOS и DDOS атак

В разработке.

Управление кешированием

В разработке.

Управление уведомлениями абонентов

В разработке.

Управление блокировкой и заменой рекламы

В разработке.

Управление бонусной программой

В разработке.

Управление тарифами

Api_GetPolicingProfiles

Api_SavePolicingProfile

Api_SavePolicingProfileConfig

Api_DeletePolicingProfile

Api_GetPolicingProfiles

Получение списка профилей тарифных планов. Параметры:

Params - object: параметры поиска(необязательный параметр)

Возможные параметры поиска Params:

page - int: номер страницы

size - int: размерность массива с результатом

hardware_id - int: идентификатор оборудования

title - string: имя профиля

individual - int:0|1

profile_id - int: идентификатор профиля тарифного плана

order_by - string: поле, по которому будет упорядочен список абонентов

order_dir - string: упорядочивание списка по возрастанию("asc")/убыванию("desc")

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_GetPolicingProfiles",
"params":{
"Params":{
"hardware_id": 1,
"individual": "0",
"order_by": "profile_id",
"order_dir": "desc",
"page": 0,
"profile_id": null,
"size": 100,
"title": ""
}
},
"id":1515929803508
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515929803508,
"result":{
"success":true,
"data":{
"page":0,
"size":100,
"count":6,
"rows":[
{
"config": "{"type":"HTB",...}"
"config_updated": "0"
"dpi_name": "at9Eneeg29"
"enabled": "0"
"hardware_id": "1"
"individual": "0"
"profile_id": "276"
"status": "0"
"subs_updated": "0"
"title": "10mbit"
"user_id": "1"
},
...
]
}
}
}

Api_SavePolicingProfile

Сохранение модели абонента.

Параметры:

Profile - object: модель профиля тарифного плана с новыми данными

Config - string: конфигурация тарифного плана. Если данный параметр указан, производится обновление конфигурация тарифного плана.

Пример запроса при сохранении профиля:

[
{
"jsonrpc":"2.0",
"method":"Api_SavePolicingProfile",
"params":{
"Config": "htb_inbound_root=rate 10mbit↵htb_inbound_class0=rate 8bit ceil 10mbit↵htb_inbound_class1=rate 8bit ceil...",
"Profile":{
"config": "",
"config_updated": 0,
"dpi_name": "",
"enabled": 0,
"hardware_id": "1",
"individual": 0,
"profile_id": 0,
"status": 0,
"subs_updated": 0,
"title": "test_save"
"user_id": 0,
"valid": true
}
},
"id":1515929803535
}
]

Пример успешного ответа при создании профиля:

{
"jsonrpc":"2.0",
"id":1553521000824,
"result":{
"success":true,
"data":{
"profile":{
"profile_id":"280",
"title":"test_save",
"hardware_id":"1",
"user_id":"1",
"enabled":"0",
"config":"{\"type\":\"HTB\",\"inbound\":{\"root_rate\":\"10mbit\",\"root_ceil\":\"10mbit\",\"root_burst\":\"5mbit\",\"root_cburst\":\"5mbit\",\"classes\":[...]},\"outbound\":{\"root_rate\":\"10mbit\",\"root_ceil\":\"10mbit\",\"root_burst\":\"5mbit\",\"root_cburst\":\"5mbit\",\"classes\":[...]}}",
"subs_updated":"0",
"config_updated":"0",
"dpi_name":"4t0KYYU83Z",
"status":"0",
"individual":"0"
}
}
}
}

Api_SavePolicingProfileConfig

Сохранение конфигурации профиля тарифного плана.

Параметры:

Profile - object: модель профиля тарифного плана.

Config - string: конфигурация тарифного плана.

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_SavePolicingProfile",
"params":{
"Config": "htb_inbound_root=rate 20mbit↵htb_inbound_class0=rate 8bit ceil 20mbit↵htb_inbound_class1=rate 8bit ceil...",
"Profile":{
"config": "{\"type\":\"HTB\",\"inbound\":{\"root_rate\":\"10mbit\",\"root_ceil\":\"10mbit\",\"root_burst\":\"5mbit\",\"root_cburst\":\"5mbit\",\"classes\":[...]},\"outbound\":{\"root_rate\":\"10mbit\",\"root_ceil\":\"10mbit\",\"root_burst\":\"5mbit\",\"root_cburst\":\"5mbit\",\"classes\":[...]}}",
"config_updated": 0,
"dpi_name": "ztovKBaiZs",
"enabled": 0,
"hardware_id": "1",
"individual": 0,
"profile_id": 278,
"status": 0,
"subs_updated": 0,
"title": "test_save"
"user_id": 1,
"valid": true
}
},
"id":1515929804638
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515929804638,
"result":{
"success":true,
"data":{
"profile":{
config: "{"type":"HTB","inbound":{"root_rate":"20mbit","root_ceil":"20mbit","root_burst":"10mbit","root_cburst":"10mbit","classes":[...]},"outbound":{"root_rate":"20mbit","root_ceil":"20mbit","root_burst":"10mbit","root_cburst":"10mbit","classes":[...]}}"
config_updated: "0"
dpi_name: "ztovKBaiZs"
enabled: "0"
hardware_id: "1"
individual: "0"
profile_id: "278"
status: "0"
subs_updated: "0"
title: "test_save"
user_id: "1"
}
}
}
}

Api_DeletePolicingProfile

Удаление профиля тарифного плана.

Параметры:

Profile - object: модель профиля тарифного плана.

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_DeletePolicingProfile",
"params":{
"Profile":{
config: "{"type":"HTB","inbound":{"root_rate":"20mbit","root_ceil":"20mbit","root_burst":"10mbit","root_cburst":"10mbit","classes":[...]},"outbound":{"root_rate":"20mbit","root_ceil":"20mbit","root_burst":"10mbit","root_cburst":"10mbit","classes":[...]}}"
config_updated: "0"
dpi_name: "ztovKBaiZs"
enabled: "0"
hardware_id: "1"
individual: "0"
profile_id: "278"
status: "0"
subs_updated: "0"
title: "test_save"
user_id: "1"
}
},
"id":1515929804638
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515929804638,
"result":{
"success":true,
"data":{
"profile":{
config: "{"type":"HTB","inbound":{"root_rate":"20mbit","root_ceil":"20mbit","root_burst":"10mbit","root_cburst":"10mbit","classes":[...]},"outbound":{"root_rate":"20mbit","root_ceil":"20mbit","root_burst":"10mbit","root_cburst":"10mbit","classes":[...]}}"
config_updated: "0"
dpi_name: "ztovKBaiZs"
enabled: "0"
hardware_id: "1"
individual: "0"
profile_id: "278"
status: "0"
subs_updated: "0"
title: "test_save"
user_id: "1"
}
}
}
}

Управление приоретизацией по протоколам (DSCP)

Api_GetDscpProtocolsConfig

Api_SetDscpProtocolsConfig

Api_GetDscpProtocolsConfigHistory

Api_GetDscpProtocolsConfigFile

Api_GetDscpProtocolsConfig

Получение конфигурации приоретизации по протоколу DSCP.

Параметры:

Id - int: идентификатор оборудования

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_GetDscpProtocolsConfig",
"params":{
"Id":1
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": "ftp cs4\nhttps cs1\nBittorrent cs7\nTCP Unknown cs7\ndefault keep\n"
}
}

Api_SetDscpProtocolsConfig

Установка конфигурации приоретизации по протоколу DSCP.

Параметры:

Id - int: идентификатор оборудования

Config - string: тело конфигурации

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_SetDscpProtocolsConfig",
"params":{
"Id":1,
"Config":"ftp cs4\nhttps cs1\nBittorrent cs7\nTCP Unknown cs7\ndefault keep\n"
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true
}
}

Api_GetDscpProtocolsConfigHistory

Получение истории изменения конфигураций приоретизации по протоколу DSCP.

Параметры:

Id - int: идентификатор оборудования

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_GetDscpProtocolsConfigHistory",
"params":{
"Id":1
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": [
"2015.06.03.03.54.25.000000.protocols.dscp",
"2015.06.03.04.00.28.000000.protocols.dscp",
"2015.06.04.15.48.34.000000.protocols.dscp",
...
]
}
}

Api_GetDscpProtocolsConfigFile

Получение файла конфигурации из истории по имени файла.

Параметры:

Id - int: идентификатор оборудования

File - string: имя файла

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_GetDscpProtocolsConfigFile",
"params":{
"Id":1,
"File":"2015.06.03.03.54.25.000000.protocols.dscp"
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": "dns cs0\nhttp cs1\nhttps cs1\nBittorrent cs7\nICMPv6 cs0\nICMP cs0\ndefault cs2\n"
}
}

Управление приоретизацией по ASN

Api_GetAsnDscpConfig

Api_SetAsnDscpConfig

Api_GetAsnDscpConfigHistory

Api_GetAsnDscpConfigFile

Api_GetAsnDscpConfig

Получение конфигурации приоретизации по ASN.

Параметры:

Id - int: идентификатор оборудования

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_GetAsnDscpConfig",
"params":{
"Id":1
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": {
"asn": {
"success": true,
"data": "192.168.1.16/32 64512\n192.168.1.111/32 64512\n"
},
"asn_dscp": {
"success": true,
"data": "64512 pass\n64512 cs0\n64513 drop\n64514 pass\n64514 peer\n"
}
}
}
}

Api_SetAsnDscpConfig

Установка конфигурации приоретизации по ASN.

Параметры:

Id - int: идентификатор оборудования

AsnConfig - string: тело конфигурации ASN

AsnDscpConfig - string: тело конфигурации ASNDSCP

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_SetDscpProtocolsConfig",
"params":{
"Id":1,
"AsnConfig":"192.168.1.16/32 64512\n192.168.1.111/32 64512\n",
"AsnDscpConfig":"64512 pass\n64512 cs0\n64513 drop\n64514 pass\n64514 peer\n"
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": {
"asn": {
"success": true
},
"asn_dscp": {
"success": true
}
}
}
}

Api_GetAsnDscpConfigHistory

Получение истории изменения конфигураций приоретизации по ASN.

Параметры:

Id - int: идентификатор оборудования

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_GetAsnDscpConfigHistory",
"params":{
"Id":1
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": [
"2015.06.07.08.29.29.000000.asnum.dscp",
"2015.06.07.08.30.12.000000.asnum.dscp",
"2015.06.07.08.33.40.000000.asnum.dscp",
...
]
}
}

Api_GetAsnDscpConfigFile

Получение файла конфигурации из истории по имени файла.

Параметры:

Id - int: идентификатор оборудования

File - string: имя файла

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_GetAsnDscpConfigFile",
"params":{
"Id":1,
"File":"2015.06.07.08.29.29.000000.asnum.dscp"
},
"id":1515661809137
}
]

Пример успешного ответа:

{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": "11111 pass\n11112 pass\n11113 pass\n11114 pass\n11115 pass\n11116 pass\n11117 pass\n11118
pass\n11119 pass\n11120 pass\n64514 pass\n"
}
}

Управление QoE

Api_GetQoEClientPredefinedReport

Api_GetQoEFilters

Api_SaveQoEFilter

Api_DeleteQoEFilter

Api_StartExpQoESubscribersToAdvcJob

Api_GetQoEClientPredefinedReport

Получение QoE отчета.

Параметры:

Config - Object: конфигурация отчета

Params - Object: параметры отчета (фильтры)

Пример: Топ хостов (Кликстрим)

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_GetQoEClientPredefinedReport",
"params":{
"Config":{
"type":"ClientPredefined",
"table":"clickstream_report",
"values":[
{
"col":"",
"alias":"total",
"func":"count"
},
{
"col":"session_id",
"alias":"sessons_uniq",
"func":"uniq"
},
{
"col":"subscriber",
"alias":"subscribers_uniq",
"func":"uniq"
},
{
"col":"user_agent",
"alias":"user_agent_uniq",
"func":"uniq"
},
{
"col":"device_other",
"alias":"device_other_uniq",
"func":"uniq"
},
{
"col":"host_ip",
"alias":"host_ip_uniq",
"func":"uniq"
}
],
"rows":[
"host"
],
"sort":{
"id":"total",
"dir":"desc"
},
"with_totals":true
},
"Params":{
"table":"clickstream_report",
"page":0,
"size":0,
"period":null,
"filter":{
"period":{
"id":"time",
"operator":"between",
"value":[
"2018-08-20 14:19:43",
"2018-09-20 14:19:43"
]
},
"host":""
},
"sort":{
"id":"total",
"dir":"desc"
}
}
},
"id":1537438732453
}
]

Пример ответа:

{
"jsonrpc":"2.0",
"id":1537438732453,
"result":{
"success":true,
"data":{
"page":0,
"size":100,
"count":2317,
"series":[
],
"rows":[
{
"host":"www.google.com",
"total":"3287",
"sessons_uniq":"1817",
"subscribers_uniq":"3",
"user_agent_uniq":"1",
"device_other_uniq":"1",
"host_ip_uniq":"58"
},
{
"host":"*.google.com.ru",
"total":"2838",
"sessons_uniq":"2838",
"subscribers_uniq":"3",
"user_agent_uniq":"1",
"device_other_uniq":"1",
"host_ip_uniq":"39"
},
{
"host":"*.google.com",
"total":"2328",
"sessons_uniq":"2328",
"subscribers_uniq":"3",
"user_agent_uniq":"1",
"device_other_uniq":"1",
"host_ip_uniq":"158"
},
...
{
"host":"edge.skype.com",
"total":"130",
"sessons_uniq":"109",
"subscribers_uniq":"3",
"user_agent_uniq":"1",
"device_other_uniq":"1",
"host_ip_uniq":"1"
}
],
"totals":{
"host":"",
"total":"74141",
"sessons_uniq":"45680",
"subscribers_uniq":"3",
"user_agent_uniq":"91",
"device_other_uniq":"42",
"host_ip_uniq":"3053"
}
}
}
}

Пример: RTT распределение (Нетфлоу)

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_GetQoEClientPredefinedReport",
"params":{
"Config":{
"type":"ClientPredefined",
"table":"fullflow_report",
"values":[
{
"col":"",
"alias":"RTT распределение",
"func":"countIf(rtt <> 0)"
},
{
"col":"",
"alias":"RTT распределение от абонента",
"func":"countIf(rtt_from_subscriber <> 0)"
},
{
"col":"",
"alias":"RTT распределение к абоненту",
"func":"countIf(rtt_to_subscriber <> 0)"
}
],
"rows":[
{
"col":"rtt",
"alias":"rtt",
"func":""
}
],
"sort":{
"id":"rtt",
"dir":"asc"
},
"size":1000
},
"Params":{
"table":"fullflow_report",
"page":0,
"size":1000,
"period":null,
"filter":{
"period":{
"id":"time",
"operator":"between",
"value":[
"2018-08-20 15:47:13",
"2018-09-20 15:47:13"
]
}
},
"sort":{
"id":"rtt",
"dir":"asc"
}
}
},
"id":1537447636531
}
]

Пример ответа:

{
"jsonrpc":"2.0",
"id":1537447636531,
"result":{
"success":true,
"data":{
"page":0,
"size":1000,
"count":1262,
"series":{
},
"rows":[
{
"rtt":0,
"RTT распределение":"0",
"RTT распределение от абонента":"0",
"RTT распределение к абоненту":"0"
},
{
"rtt":1,
"RTT распределение":"7641",
"RTT распределение от абонента":"6160",
"RTT распределение к абоненту":"1481"
},
{
"rtt":2,
"RTT распределение":"20061",
"RTT распределение от абонента":"15859",
"RTT распределение к абоненту":"4202"
},
{
"rtt":3,
"RTT распределение":"12266",
"RTT распределение от абонента":"10672",
"RTT распределение к абоненту":"1594"
},
{
"rtt":4,
"RTT распределение":"3922",
"RTT распределение от абонента":"3287",
"RTT распределение к абоненту":"635"
},
{
"rtt":5,
"RTT распределение":"2347",
"RTT распределение от абонента":"1501",
"RTT распределение к абоненту":"846"
},
........
{
"rtt":3856,
"RTT распределение":"2",
"RTT распределение от абонента":"1",
"RTT распределение к абоненту":"1"
},
{
"rtt":3860,
"RTT распределение":"1",
"RTT распределение от абонента":"0",
"RTT распределение к абоненту":"1"
}
],
"totals":null
}
}
}

Api_GetQoEFilters

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_GetQoEFilters",
"params":{
"Params":{
"page":0,
"size":100,
"order_by":"filter_id",
"order_dir":"desc",
"type":"subs_clickstream",
"filters_ids":null,
"parent_id_is_null":true
}
},
"id":1537447973672
}
]

Пример ответа:

{
"jsonrpc":"2.0",
"id":1537447973672,
"result":{
"success":true,
"data":{
"page":0,
"size":100,
"count":9,
"rows":[
{
"filter_id":"52",
"parent_id":null,
"user_id":"1",
"title":"\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b speedtest",
"date":"2018-09-13 11:27:36",
"form_data":"{\"filter_state\":[{\"id\":1536837377540,\"f_enabled\":0,\"f_id\":\"host\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377541,\"f_enabled\":0,\"f_id\":\"subscriber\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377542,\"f_enabled\":0,\"f_id\":\"login\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377543,\"f_enabled\":1,\"f_id\":\"url\",\"f_operator\":\"like\",\"f_value\":\"speedtest.net\\\/result\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377544,\"f_enabled\":0,\"f_id\":\"device\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377545,\"f_enabled\":0,\"f_id\":\"user_agent\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377546,\"f_enabled\":0,\"f_id\":\"host_ip\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377547,\"f_enabled\":0,\"f_id\":\"device_other_uniq\",\"f_operator\":\">=\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377548,\"f_enabled\":0,\"f_id\":\"user_agent_uniq\",\"f_operator\":\">=\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377549,\"f_enabled\":0,\"f_id\":\"hosts_uniq\",\"f_operator\":\">=\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377550,\"f_enabled\":0,\"f_id\":\"host_ip_uniq\",\"f_operator\":\">=\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"}]}",
"type":"subs_clickstream"
},
.....
{
"filter_id":"18",
"parent_id":null,
"user_id":"1",
"title":"test",
"date":"2018-08-20 17:24:37",
"form_data":"{\"filter_state\":[{\"id\":1534776214196,\"f_enabled\":1,\"f_id\":\"hosts_uniq\",\"f_operator\":\">=\",\"f_value\":\"100\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1534776214197,\"f_enabled\":0,\"f_id\":\"device_other_uniq\",\"f_operator\":\">=\",\"f_value\":\"10\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1534776214198,\"f_enabled\":0,\"f_id\":\"host\",\"f_operator\":\"like\",\"f_value\":\"test\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1534776214199,\"f_enabled\":0,\"f_id\":\"subscriber\",\"f_operator\":\"like\",\"f_value\":\"qq\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1534776214200,\"f_enabled\":0,\"f_id\":\"device_other_uniq\",\"f_operator\":\">=\",\"f_value\":\"10\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1534776214201,\"f_enabled\":0,\"f_id\":\"device\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1534776214202,\"f_enabled\":0,\"f_id\":\"host_ip\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"}]}",
"type":"subs_clickstream"
}
]
}
}
}

Api_SaveQoEFilter

Сохранить QoE фильтр.

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_SaveQoEFilter",
"params":{
"Filter":{
"id":1537447973674,
"filter_id":"52",
"parent_id":null,
"title":"Результаты speedtest",
"date":"2018-09-13 11:27:36",
"form_data":"{\"filter_state\":[{\"id\":1536837377540,\"f_enabled\":0,\"f_id\":\"host\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377541,\"f_enabled\":0,\"f_id\":\"subscriber\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377542,\"f_enabled\":0,\"f_id\":\"login\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377543,\"f_enabled\":1,\"f_id\":\"url\",\"f_operator\":\"like\",\"f_value\":\"speedtest.net\\/result\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377544,\"f_enabled\":0,\"f_id\":\"device\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377545,\"f_enabled\":0,\"f_id\":\"user_agent\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377546,\"f_enabled\":0,\"f_id\":\"host_ip\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377547,\"f_enabled\":0,\"f_id\":\"device_other_uniq\",\"f_operator\":\">=\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377548,\"f_enabled\":0,\"f_id\":\"user_agent_uniq\",\"f_operator\":\">=\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377549,\"f_enabled\":0,\"f_id\":\"hosts_uniq\",\"f_operator\":\">=\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377550,\"f_enabled\":0,\"f_id\":\"host_ip_uniq\",\"f_operator\":\">=\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"}]}",
"type":"subs_clickstream",
"data":[
],
"badge":1,
"open":true,
"valid":true
},
"Form":{
"filter_state":[
{
"id":1536837377540,
"f_enabled":0,
"f_id":"host",
"f_operator":"like",
"f_value":"",
"f_value_type":"string",
"f_value_editor":"text"
},
{
"id":1536837377541,
"f_enabled":0,
"f_id":"subscriber",
"f_operator":"like",
"f_value":"",
"f_value_type":"string",
"f_value_editor":"text"
},
{
"id":1536837377542,
"f_enabled":0,
"f_id":"login",
"f_operator":"like",
"f_value":"",
"f_value_type":"string",
"f_value_editor":"text"
},
{
"id":1536837377543,
"f_enabled":1,
"f_id":"url",
"f_operator":"like",
"f_value":"speedtest.net/result",
"f_value_type":"string",
"f_value_editor":"text"
},
{
"id":1536837377544,
"f_enabled":0,
"f_id":"device",
"f_operator":"like",
"f_value":"",
"f_value_type":"string",
"f_value_editor":"text"
},
{
"id":1536837377545,
"f_enabled":0,
"f_id":"user_agent",
"f_operator":"like",
"f_value":"",
"f_value_type":"string",
"f_value_editor":"text"
},
{
"id":1536837377546,
"f_enabled":0,
"f_id":"host_ip",
"f_operator":"like",
"f_value":"",
"f_value_type":"string",
"f_value_editor":"text"
},
{
"id":1536837377547,
"f_enabled":0,
"f_id":"device_other_uniq",
"f_operator":">=",
"f_value":"",
"f_value_type":"string",
"f_value_editor":"text"
},
{
"id":1536837377548,
"f_enabled":0,
"f_id":"user_agent_uniq",
"f_operator":">=",
"f_value":"",
"f_value_type":"string",
"f_value_editor":"text"
},
{
"id":1536837377549,
"f_enabled":0,
"f_id":"hosts_uniq",
"f_operator":">=",
"f_value":"",
"f_value_type":"string",
"f_value_editor":"text"
},
{
"id":1536837377550,
"f_enabled":0,
"f_id":"host_ip_uniq",
"f_operator":">=",
"f_value":"",
"f_value_type":"string",
"f_value_editor":"text"
}
]
}
},
"id":1537447973674
}
]

Пример ответа:

{
"jsonrpc":"2.0",
"id":1537447973674,
"result":{
"success":true,
"data":{
"filter":{
"filter_id":"52",
"parent_id":null,
"user_id":"1",
"title":"\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b speedtest",
"date":"2018-09-20 13:06:52",
"form_data":"{\"filter_state\":[{\"id\":1536837377540,\"f_enabled\":0,\"f_id\":\"host\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377541,\"f_enabled\":0,\"f_id\":\"subscriber\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377542,\"f_enabled\":0,\"f_id\":\"login\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377543,\"f_enabled\":1,\"f_id\":\"url\",\"f_operator\":\"like\",\"f_value\":\"speedtest.net\\\/result\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377544,\"f_enabled\":0,\"f_id\":\"device\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377545,\"f_enabled\":0,\"f_id\":\"user_agent\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377546,\"f_enabled\":0,\"f_id\":\"host_ip\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377547,\"f_enabled\":0,\"f_id\":\"device_other_uniq\",\"f_operator\":\">=\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377548,\"f_enabled\":0,\"f_id\":\"user_agent_uniq\",\"f_operator\":\">=\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377549,\"f_enabled\":0,\"f_id\":\"hosts_uniq\",\"f_operator\":\">=\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377550,\"f_enabled\":0,\"f_id\":\"host_ip_uniq\",\"f_operator\":\">=\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"}]}",
"type":"subs_clickstream"
}
}
}
}

Api_DeleteQoEFilter

Удалить сохраненный QoE фильтр.

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_DeleteQoEFilter",
"params":{
"Filter":{
"id":1537447973810,
"filter_id":"53",
"parent_id":null,
"title":"test",
"date":"2018-09-20 13:11:29",
"form_data":"{\"filter_state\":[{\"id\":1537447973833,\"f_enabled\":1,\"f_id\":\"host\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1537447973834,\"f_enabled\":0,\"f_id\":\"subscriber\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1537447973835,\"f_enabled\":0,\"f_id\":\"login\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1537447973836,\"f_enabled\":0,\"f_id\":\"url\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1537447973837,\"f_enabled\":0,\"f_id\":\"device\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1537447973838,\"f_enabled\":0,\"f_id\":\"user_agent\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1537447973839,\"f_enabled\":0,\"f_id\":\"host_ip\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1537447973840,\"f_enabled\":0,\"f_id\":\"device_other_uniq\",\"f_operator\":\">=\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1537447973841,\"f_enabled\":0,\"f_id\":\"user_agent_uniq\",\"f_operator\":\">=\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1537447973842,\"f_enabled\":0,\"f_id\":\"hosts_uniq\",\"f_operator\":\">=\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1537447973843,\"f_enabled\":0,\"f_id\":\"host_ip_uniq\",\"f_operator\":\">=\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"}]}",
"type":"subs_clickstream",
"data":[
],
"badge":1,
"open":true,
"valid":true
}
},
"id":1537447973810
}
]

Пример ответа:

{"jsonrpc":"2.0","id":1537447973810,"result":{"success":true}}

Api_StartExpQoESubscribersToAdvcJob

Запустить фоновую задачу импорта абонентов в рекламную кампанию на основе сохраненного QoE фильтра.

Пример запроса:

[
{
"jsonrpc":"2.0",
"method":"Api_StartExpQoESubscribersToAdvcJob",
"params":{
"Params":{
"Config":{
"type":"ClientPredefined",
"table":"clickstream_report",
"values":[
{
"col":"login",
"alias":"login_top",
"func":"topK(1)(login)"
},
{
"col":"",
"alias":"total",
"func":"count"
},
{
"col":"session_id",
"alias":"sessons_uniq",
"func":"uniq"
},
{
"col":"host",
"alias":"hosts_uniq",
"func":"uniq"
},
{
"col":"user_agent",
"alias":"user_agent_uniq",
"func":"uniq"
},
{
"col":"device_other",
"alias":"device_other_uniq",
"func":"uniq"
},
{
"col":"host_ip",
"alias":"host_ip_uniq",
"func":"uniq"
}
],
"rows":[
"subscriber"
],
"sort":{
"id":"total",
"dir":"desc"
},
"with_totals":true
},
"Params":{
"filter":{
"period":{
"id":"time",
"operator":"between",
"value":[
"2018-08-20 15:54:10",
"2018-09-20 15:54:10"
]
},
"1534931185441":{
"id":"hosts_uniq",
"operator":">=",
"value":"100",
"sql_type":"having"
}
},
"table":"clickstream_report"
},
"Type":"by_ip",
"Max":"0",
"HwCampaignData":{
"adc_id":"7",
"hardware_id":"6"
}
}
},
"id":1537447974127
}
]

Пример ответа:

{"jsonrpc":"2.0","id":1537447974127,"result":{"success":true}}

Управление рекламными кампаниями

Api_GetAdvProfiles

Api_SaveAdvProfile

Api_DeleteAdvProfile

Api_GetAdvCompanies

Api_SaveAdvCompany

Api_DeleteAdvCompany

Api_EnableAdvCompany

Api_DisableAdvCompany

Api_GetAdvProfiles

Получение профилей кампаний.

Параметры:

Params - Object: параметры поиска (фильтры)

Пример запроса

{
"jsonrpc": "2.0",
"method": "Api_GetAdvProfiles",
"params": {
"Params":{
"hardware_id":1,
"size":100,
"page":0,
"title":""
}
},
"id": 1081
}

Пример ответа

{
"jsonrpc": "2.0",
"id": 1081,
"result": {
"success": true,
"data": {
"page": 0,
"size": 100,
"count": 1,
"rows": [
{
"profile_id": "6",
"parent_id": null,
"hardware_id": "1",
"title": "test_profile_4",
"user_id": "1",
"deleted": "0",
"data": []
}
]
}
}
}

Api_SaveAdvProfile

Создание/изменение данных профиля кампаний.

Параметры:

Profile - Object: модель профиля кампании.

Пример запроса

{
"jsonrpc": "2.0",
"method": "Api_SaveAdvProfile",
"params": {
"Profile":{
"profile_id":0,
"parent_id": null,
"hardware_id": "1",
"title": "save_profile"
}
},
"id": 1081
}

Пример ответа

{
"jsonrpc": "2.0",
"id": 1081,
"result": {
"success": true,
"data": {
"profile": {
"profile_id": "20",
"parent_id": null,
"hardware_id": "1",
"title": "save_profile",
"user_id": "1",
"deleted": "0",
"data": []
}
}
}
}

Api_DeleteAdvProfile

Удаление профиля кампании.

Параметры:

Profile - Object: модель профиля кампании.

Пример запроса

{
"jsonrpc": "2.0",
"method": "Api_DeleteAdvProfile",
"params": {
"Profile":{
"profile_id": "20",
"parent_id": null,
"hardware_id": "1",
"title": "save_profile",
"user_id": "1",
"deleted": "0",
"data": []
}
},
"id": 1081
}

Пример ответа

{
"jsonrpc": "2.0",
"id": 1081,
"result": {
"success": true,
"data": {
"profile_id": "20",
"parent_id": null,
"hardware_id": "1",
"title": "save_profile",
"user_id": "1",
"deleted": "0",
"data": []
}
}
}

Api_GetAdvCompanies

Получение рекламных кампаний.

Параметры:

Params - Object: параметры поиска (фильтры)

Пример запроса

{
"jsonrpc": "2.0",
"method": "Api_GetAdvCompanies",
"params": {
"Params":{
"profile_id":6,
"title": "test",
"status":4
}
},
"id": 1081
}

Пример ответа

{
"jsonrpc": "2.0",
"id": 1081,
"result": {
"success": true,
"data": {
"page": 0,
"size": 100,
"count": 1,
"rows": [
{
"adc_id": "3",
"profile_id": "6",
"title": "test_profile_4",
"user_id": "1",
"from_date": "2018-09-18",
"to_date": "2018-10-30",
"from_time": "06:16:00",
"to_time": "23:55:00",
"total": "16",
"released": "16",
"redirect": "google.com",
"pack": "0",
"days_of_week": "1,2,3,4,5,6,7",
"status": "4",
"params": "[]",
"need_to_update": "1",
"processed": "1,3,8",
"prepared_url": "google.com?",
"deleted": "0",
"enabled": "0"
}
]
}
}
}

Api_SaveAdvCompany

Создание/изменение данных рекламной кампании.

Параметры:

Company - Object: модель рекламной кампании.

Пример запроса

{
"jsonrpc": "2.0",
"method": "Api_SaveAdvCompany",
"params": {
"Company":{
"adc_id": "0",
"profile_id": "6",
"title": "test_save_company",
"user_id": "1",
"from_date": "2018-09-18",
"to_date": "2018-10-30",
"from_time": "06:16:00",
"to_time": "23:55:00",
"redirect": "google.com",
"days_of_week": "1,2,3,4,5,6,7",
"params": "[]",
"enabled": "0"
}
},
"id": 1081
}

Пример ответа

{
"jsonrpc": "2.0",
"id": 1081,
"result": {
"success": true,
"data": {
"adc": {
"adc_id": "19",
"profile_id": "6",
"title": "test_save_company",
"user_id": "1",
"from_date": "2018-09-18",
"to_date": "2018-10-30",
"from_time": "06:16:00",
"to_time": "23:55:00",
"total": null,
"released": null,
"redirect": "google.com",
"pack": "0",
"days_of_week": "1,2,3,4,5,6,7",
"status": "1",
"params": "[]",
"need_to_update": "1",
"processed": null,
"prepared_url": "google.com?",
"deleted": "0",
"enabled": "0"
}
}
}
}

Api_DeleteAdvCompany

Удаление рекламной кампании.

Параметры:

Company - Object: модель рекламной кампании.

Пример запроса

{
"jsonrpc": "2.0",
"method": "Api_DeleteAdvCompany",
"params": {
"Company":{
"adc_id": "19",
"profile_id": "6",
"title": "test_save_company",
"user_id": "1",
"from_date": "2018-09-18",
"to_date": "2018-10-30",
"from_time": "06:16:00",
"to_time": "23:55:00",
"total": null,
"released": null,
"redirect": "google.com",
"pack": "0",
"days_of_week": "1,2,3,4,5,6,7",
"status": "1",
"params": "[]",
"need_to_update": "1",
"processed": null,
"prepared_url": "google.com?",
"deleted": "0",
"enabled": "0"
}
},
"id": 1081
}

Пример ответа

{
"jsonrpc": "2.0",
"id": 1081,
"result": {
"success": true,
"data": {
"adc_id": "19",
"profile_id": "6",
"title": "test_save_company",
"user_id": "1",
"from_date": "2018-09-18",
"to_date": "2018-10-30",
"from_time": "06:16:00",
"to_time": "23:55:00",
"total": null,
"released": null,
"redirect": "google.com",
"pack": "0",
"days_of_week": "1,2,3,4,5,6,7",
"status": "1",
"params": "[]",
"need_to_update": "1",
"processed": null,
"prepared_url": "google.com?",
"deleted": "0",
"enabled": "0"
}
}
}

Api_EnableAdvCompany

Запуск рекламной кампании.

Параметры:

Company - Object: модель рекламной кампании.

Пример запроса

{
"jsonrpc": "2.0",
"method": "Api_EnableAdvCompany",
"params": {
"Company":{
"adc_id": "4",
"profile_id": "6",
"title": "fake_company",
"user_id": "1",
"from_date": "2018-08-20",
"to_date": "2018-09-30",
"from_time": "00:00:00",
"to_time": "23:55:00",
"total": "16",
"released": "0",
"redirect": "abracadabra.ru",
"pack": "0",
"days_of_week": "1,2,3,4,5,6,7",
"status": "3",
"params": "[{\"data_name\":\"routing\",\"data_type\":\"enum\",\"default_value\":\"321\",\"id\":1535918599902}]",
"need_to_update": "1",
"processed": "4,16,17",
"prepared_url": "abracadabra.ru?",
"deleted": "0",
"enabled": "0"
}
},
"id": 1081
}

Пример ответа

{
"jsonrpc": "2.0",
"id": 1081,
"result": {
"success": true,
"data": {
"adc_id": "4",
"enabled": 1
}
}
}

Api_DisableAdvCompany

Остановка рекламной кампании.

Параметры:

Company - Object: модель рекламной кампании.

Пример запроса

{
"jsonrpc": "2.0",
"method": "Api_DisableAdvCompany",
"params": {
"Company":{
"adc_id": "4",
"profile_id": "6",
"title": "fake_company",
"user_id": "1",
"from_date": "2018-08-20",
"to_date": "2018-09-30",
"from_time": "00:00:00",
"to_time": "23:55:00",
"total": "16",
"released": "0",
"redirect": "abracadabra.ru",
"pack": "0",
"days_of_week": "1,2,3,4,5,6,7",
"status": "3",
"params": "[{\"data_name\":\"routing\",\"data_type\":\"enum\",\"default_value\":\"321\",\"id\":1535918599902}]",
"need_to_update": "1",
"processed": "4,16,17",
"prepared_url": "abracadabra.ru?",
"deleted": "0",
"enabled": "1"
}
},
"id": 1081
}

Пример ответа

{
"jsonrpc": "2.0",
"id": 1081,
"result": {
"success": true,
"data": {
"adc_id": "4",
"enabled": 0
}
}
}

Управление абонентами рекламных кампаний

Api_GetAdvProcessedSubscribers

Api_SaveAdvProcessedSubscriber

Api_SaveAdvProcessedSubscribers

Api_DeleteAdvProcessedSubscriber

Api_GetAdvProcessedSubscribers

Получения списка абонентов рекламной кампании.

Параметры:

Params - Object: параметры поиска абонентов (фильтры)

Пример запроса:

{
"jsonrpc": "2.0",
"method": "Api_GetAdvProcessedSubscribers",
"params": {
"Params":{
"adc_id": 18,
"hardware_id": 1,
"status": 1,
"login":"username1"
}
},
"id": 1081
}

Пример ответа:

{
"jsonrpc": "2.0",
"id": 1081,
"result": {
"success": true,
"data": {
"page": 0,
"size": 100,
"count": 8,
"rows": [
{
"adc_id": "18",
"login": "username1",
"hardware_id": "1",
"status": "1",
"notification_date": null,
"url": "",
"deleted": "0",
"params": "{}"
},
{
"adc_id": "18",
"login": "username10",
"hardware_id": "1",
"status": "1",
"notification_date": null,
"url": "",
"deleted": "0",
"params": "{\"routing\":\"10\",\"param2\":\"7\"}"
},
...
]
}
}
}

Api_SaveAdvProcessedSubscriber

Создание/обновления данных абонента рекламной кампании.

Параметры:

NewSubscriber - Object: модель абонента рекламной кампании с новыми данными.

OldSubscriber - Object: модель абонента рекламной кампании со старыми данными(может быть null).

Пример запроса:

{
"jsonrpc": "2.0",
"method": "Api_SaveAdvProcessedSubscriber",
"params": {
"NewSubscriber":{
"adc_id":"18",
"hardware_id":"1",
"status":"1",
"params":"{}",
"notification_date":null,
"login":"username1"
},
"OldSubscriber":{
"adc_id":"18",
"login":"username1",
"hardware_id":"1",
"status":"1",
"params":"{\"routing\":\"1\",\"param2\":\"16\"}",
"notification_date":null
}
},
"id": 1081
}

Пример ответа:

{
"jsonrpc": "2.0",
"id": 1081,
"result": {
"success": true
}
}

Api_SaveAdvProcessedSubscribers

Создание/обновления данных абонентов рекламной кампании.

Параметры:

Subscribers - Array: массив моделей абонентов рекламной кампании.

Пример запроса:

{
"jsonrpc": "2.0",
"method": "Api_SaveAdvProcessedSubscribers",
"params": {
"Subscribers":[
{
"adc_id":"18",
"login":"username1",
"hardware_id":"1",
"params":"{\"routing\":\"1\",\"param2\":\"16\"}",
"status":1,
"notification_date":null
},
{
"id":1538142108942,
"adc_id":"18",
"login":"username2",
"hardware_id":"1",
"params":"{\"routing\":\"2\",\"param2\":\"15\"}",
"status":1,
"notification_date":null
},
...
]
},
"id": 1081
}

Пример ответа:

{
"jsonrpc": "2.0",
"id": 1081,
"result": {
"success": true
}
}

Api_DeleteAdvProcessedSubscriber

Удаление абонента рекламной кампании.

Параметры:

Subscriber - Object: модель абонента рекламной кампании.

Пример запроса:

{
"jsonrpc": "2.0",
"method": "Api_DeleteAdvProcessedSubscriber",
"params": {
"Subscriber":{
"adc_id": "18",
"login": "username1",
"hardware_id": "1",
"status": "1",
"notification_date": null,
"url": "",
"deleted": "0",
"params": "{}"
}
},
"id": 1081
}

Пример ответа:

{
"jsonrpc": "2.0",
"id": 1081,
"result": {
"success": true,
"data": {
"adc_id": "18",
"login": "username1",
"hardware_id": "1",
"status": "1",
"notification_date": null,
"url": "",
"deleted": "0",
"params": "{}"
}
}
}