Содержание
JSON-RPC API Описание программного интерфейса
Описание
Все запросы на сервер отправляются методом 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
Проверяет и выводит результат: авторизован пользователь или нет.
Параметры отсутствуют.
Пример запроса:
[ { "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
Выводит профиль пользователя.
Параметры отсутствуют.
Пример запроса:
[ { "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
Получение списка пользователей.
Параметры:
- 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
Получение списка пользователей.
Параметры:
- 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
Получить список оборудований.
Параметры:
- 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
Получение списка последних нотификаций.
Параметры:
- 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
Отправка сообщения об ошибке на почту указанную в конфигурации.
Параметры:
- 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
Получение списка абонентов. Параметры:
- 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 } } } }
Управление услугами
Управление черными/белыми списками
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
Получение списка профилей Мини 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
Получение списка 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
Получение списка профилей тарифных планов. Параметры:
- 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
Получение конфигурации приоретизации по протоколу 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
Получение конфигурации приоретизации по 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
Получение 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
Получение профилей кампаний.
Параметры:
- 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
Получения списка абонентов рекламной кампании.
Параметры:
- 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": "{}" } } }