Перейти к основному содержимому

VPN API 1.7.0

Методы API для работы с разделом «VPN».

Базовый путь: https://{IP_контроллера}/api/v1. Версия описания API: 1.7.0.

Примеры используют placeholder-значения для паролей, token, UUID, адресов и секретов. Перед выполнением запроса замените их на значения вашего контроллера.

Методы раздела

МетодПуть
GET/share_vpn
POST/share_vpn
GET/share_vpn/status
GET/vpn/date_time
GET/vpn/master/status
POST/vpn/master/sync/stop
POST/vpn/master/sync/{serial}/{action}
GET/vpn/members
POST/vpn/replace_controller
PUT/vpn/set_member_name/{serial_num}
GET/vpn/slave/status
POST/vpn/slave/sync/{action}
DELETE/vpn/{serial}

GET /share_vpn

Раздел: VPN.

Возвращает идентификатор сеанса сетевой связи для авторизации в кластере

Источник в Teamly

Назначение

URL запроса

Возвращает идентификатор сеанса сетевой связи для авторизации в кластере

https://{IP_контроллера}/api/v1/share_vpn?serial={серийный номер контроллера}

Параметры запроса:

Наименование, * - обязательный

Описание

serial* string (query)

Серийный номер контроллера, который нужно добавить

Варианты ответа:

Code 200 (Successfully got VPN share string) - удачное выполнение запроса

Название, * - обязательный

Тип

Формат

Назначение

connection_string*

string

Строка общего доступа к vpn

Пример:

{
"connection_string": "MTcyLjE2LjE2Ny4yMDUvZk1JQXlQWGRjLXluRUxGZ2trdGlYZmpyYUZBdXo0NmM5VEVuaVBLaXcxbzl3c0hI"
}

Code 500 (Unexpected server error) - запрос не выполнен получено сообщение об ошибке

Параметры и ответы по OpenAPI
{
"description": "Get VPN share string",
"parameters": [
{
"in": "query",
"name": "serial",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Successfully got VPN share string",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"connection_string"
],
"properties": {
"connection_string": {
"type": "string"
}
}
}
}
}
}
}
}

Примеры по OpenAPI

Сформированы по схеме контроллера; значения полей необходимо заменить.

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

curl -k -X GET "https://{IP_контроллера}/api/v1/share_vpn?serial=<serial>" \
-H "Authorization: Bearer <token>"

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

{
"connection_string": "string"
}

POST /share_vpn

Раздел: VPN.

Добавляет контроллер в кластер

Источник в Teamly

Назначение

URL запроса

Добавляет контроллер в кластер

https://{IP_контроллера}/api/v1/share_vpn

Параметры запроса:

Название

Тип

Описание

vpn_data*

object(body)

Тело запроса. Указывается токен сессии полученный методом GET/share_vpn

BODY

Название

* - обязательный

Тип

Формат

Назначение

connection_string*

string

minLength: 1

Строка общего доступа к vpn

Пример:

URL запроса: POST
https://{IP_контроллера}/api/v1/share_vpn

Body

Пример с исправленным синтаксисом JSON

Удалена лишняя запятая после последнего поля. Строка подключения взята из исходного примера.

{
"connection_string": "MTY5LjI1NC4yMzMuMTg1L3BKZi0wdFF6aWJPMzcxdDd1SnlsbFZnNlB4RF80dXhoM0FEOWRIQUlUMWlQeVJoRw=="
}
Исходный пример Teamly

Пример из Teamly сохранён дословно, но не является корректным JSON.

{
"connection_string": "MTY5LjI1NC4yMzMuMTg1L3BKZi0wdFF6aWJPMzcxdDd1SnlsbFZnNlB4RF80dXhoM0FEOWRIQUlUMWlQeVJoRw==",
}

Варианты ответа:

Code 200 (Successfully connected to VPN) - удачное выполнение запроса

{
"success": false,
"message": "string",
"data": {}
}

Code 500 (Unexpected server error) - запрос не выполнен, получено сообщение об ошибке

Параметры и ответы по OpenAPI
{
"description": "Share other controller's VPN",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"connection_string"
],
"properties": {
"connection_string": {
"type": "string",
"minLength": 1
}
}
}
}
}
},
"responses": {
"200": {
"description": "Successfully connected to VPN",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean",
"example": false
},
"message": {
"type": "string"
},
"data": {
"type": "object"
}
}
}
}
}
},
"500": {
"description": "Server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean",
"example": false
},
"message": {
"type": "string"
},
"data": {
"type": "object"
}
}
}
}
}
}
}
}

Примеры по OpenAPI

Сформированы по схеме контроллера; значения полей необходимо заменить.

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

curl -k -X POST "https://{IP_контроллера}/api/v1/share_vpn" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
--data-raw '{
"connection_string": "string"
}'

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

{
"connection_string": "string"
}

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

{
"success": false,
"message": "string",
"data": {}
}

GET /share_vpn/status

Раздел: VPN.

Возвращает текущий статус vpn соединения

Источник в Teamly

Назначение

URL запроса

Возвращает текущий статус vpn соединения

https://{IP_контроллера}/api/v1/share_vpn/status

Параметры запроса:

Отсутствуют

Варианты ответа:

Code 200 (Successfully received connection status) - удачное выполнение запроса

Название, * - обязательный

Тип

Формат

Назначение

status*

string

[DISCONNECTED, CONNECTING, CONNECTED, ERROR]

Статусы подключения

error_status*

string

Статус ошибки

Пример:

Пример с исправленным синтаксисом JSON

Добавлена закрывающая фигурная скобка.

{
"status": "DISCONNECTED",
"error_status": "string"
}
Исходный пример Teamly

Пример из Teamly сохранён дословно, но не является корректным JSON.

{
"status": "DISCONNECTED",
"error_status": "string"

Code 500 (Unexpected server error) - запрос не выполнен получено сообщение об ошибке

Параметры и ответы по OpenAPI
{
"description": "Get current VPN connection status",
"responses": {
"200": {
"description": "Successfully received connection status",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"status",
"error_status"
],
"properties": {
"status": {
"type": "string",
"enum": [
"DISCONNECTED",
"CONNECTING",
"CONNECTED",
"ERROR"
]
},
"error_status": {
"type": "string"
}
}
}
}
}
}
}
}

Примеры по OpenAPI

Сформированы по схеме контроллера; значения полей необходимо заменить.

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

curl -k -X GET "https://{IP_контроллера}/api/v1/share_vpn/status" \
-H "Authorization: Bearer <token>"

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

{
"status": "DISCONNECTED",
"error_status": "string"
}

GET /vpn/date_time

Раздел: VPN.

Возвращает статус об отклонении во времени контроллеров кластера

Источник в Teamly

Назначение

URL запроса

Возвращает статус об отклонении во времени контроллеров кластера

https://{IP_контроллера}/api/v1/vpn/date_time

Параметры запроса:

Отсутствуют

Варианты ответа:

Code 200 (Successfully) - удачное выполнение запроса

Название, * - обязательный

Тип

Формат

Назначение

success*

boolean

Результат запроса

statuses*

string

[ ok, error, unknown ]

Статус отклонения времени контроллеров

Пример:

{
"success": true,
"statuses": {
"00000001": "ok",
"00000002": "error",
"00000003": "unknown"
}
}

Code 500 (Unexpected server error) - запрос не выполнен, получено сообщение об ошибке

Параметры и ответы по OpenAPI
{
"description": "Получить статус об отклонении во времени контроллеров кластера",
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"success",
"statuses"
],
"properties": {
"success": {
"type": "boolean"
},
"statuses": {
"type": "object",
"additionalProperties": {
"type": "string",
"enum": [
"ok",
"error",
"unknown"
]
},
"example": {
"00000001": "ok",
"00000002": "error",
"00000003": "unknown"
}
}
}
}
}
}
},
"500": {
"description": "Ошибка сервера",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean",
"example": false
},
"message": {
"type": "string"
},
"data": {
"type": "object"
}
}
}
}
}
}
}
}

Примеры по OpenAPI

Сформированы по схеме контроллера; значения полей необходимо заменить.

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

curl -k -X GET "https://{IP_контроллера}/api/v1/vpn/date_time" \
-H "Authorization: Bearer <token>"

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

{
"success": true,
"statuses": {
"00000001": "ok",
"00000002": "error",
"00000003": "unknown"
}
}

GET /vpn/master/status

Раздел: VPN.

Возвращает статус синхронизации текущего контроллера

Источник в Teamly

Назначение

URL запроса

Возвращает статус синхронизации текущего контроллера

https://{IP_контроллера}/api/v1/vpn/master/statues

Параметры запроса:

Отсутствуют

Варианты ответа:

Code 200 (Successfully got synchronization master status) - удачное выполнение запроса

Название, * - обязательный

Тип

Формат

Назначение

stage*

string

[STOPPED, HAND_SHAKE, CLEANUP, DATA_SYNC, DATA_SYNC_END, EVENTS_SYNC, SYNC_END]

Этапы синхронизации

controller*

string

Cерийный номер текущего контроллера

progress*

number

minimum: 0
maximum: 100

Прогресс синхронизации в процентах

error*

string

Описание ошибки (при наличии)

last_sync_end_timestamp_ms

integer

$int64

Время последней сохраненной синхронизации в миллисекундах

Пример:

{
"stage": "STOPPED",
"controller": "string",
"progress": 100,
"error": "string",
"last_sync_end_timestamp_ms": 0
}

Code 500 (Unexpected server error) - запрос не выполнен, получено сообщение об ошибке

Параметры и ответы по OpenAPI
{
"description": "Get synchronization master status",
"responses": {
"200": {
"description": "Successfully got synchronization master status",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"stage",
"controller",
"progress",
"error"
],
"properties": {
"stage": {
"type": "string",
"enum": [
"STOPPED",
"HAND_SHAKE",
"CLEANUP",
"DATA_SYNC",
"DATA_SYNC_END",
"EVENTS_SYNC",
"SYNC_END"
]
},
"controller": {
"type": "string"
},
"progress": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Sync progress in percentage"
},
"error": {
"description": "In case of error occured during last sync process, this field will contain error description",
"type": "string"
},
"last_sync_end_timestamp_ms": {
"description": "Last remembered synchronization UNIX timestamp in milliseconds",
"type": "integer",
"format": "int64"
}
}
}
}
}
}
}
}

Примеры по OpenAPI

Сформированы по схеме контроллера; значения полей необходимо заменить.

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

curl -k -X GET "https://{IP_контроллера}/api/v1/vpn/master/status" \
-H "Authorization: Bearer <token>"

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

{
"stage": "STOPPED",
"controller": "string",
"progress": 1.0,
"error": "string",
"last_sync_end_timestamp_ms": 1
}

POST /vpn/master/sync/stop

Раздел: VPN.

Останавливает синхронизацию данных с указанным контроллером

Источник в Teamly

Назначение

URL запроса

Останавливает синхронизацию данных с указанным контроллером

https://{IP_контроллера}/api/v1/vpn/master/sync/stop

Параметры запроса:

Отсутствуют

Варианты ответа:

Code 200 (Successfully stopped data synchronization) - удачное выполнение запроса

{
"success": false,
"message": "string",
"data": {}
}

Code 500 (Unexpected server error) - запрос не выполнен, получено сообщение об ошибке

Параметры и ответы по OpenAPI
{
"description": "Stop data synchronization to specified controller",
"responses": {
"200": {
"description": "Successfully stopped data synchronization",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean",
"example": false
},
"message": {
"type": "string"
},
"data": {
"type": "object"
}
}
}
}
}
},
"500": {
"description": "Server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean",
"example": false
},
"message": {
"type": "string"
},
"data": {
"type": "object"
}
}
}
}
}
}
}
}

Примеры по OpenAPI

Сформированы по схеме контроллера; значения полей необходимо заменить.

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

curl -k -X POST "https://{IP_контроллера}/api/v1/vpn/master/sync/stop" \
-H "Authorization: Bearer <token>"

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

{
"success": false,
"message": "string",
"data": {}
}

POST /vpn/master/sync/{serial}/{action}

Раздел: VPN.

Добавляет или удаляет контроллер из очереди синхронизации данных

Источник в Teamly

Назначение

URL запроса

Добавляет или удаляет контроллер из очереди синхронизации данных

https://{IP_контроллера}/api/v1/vpn/master/sync/{S/N_контроллера}/{action}

Параметры запроса:

Название

Тип

Описание

serial*

string (path)

Cерийный номер контроллера

action*

string (path)

Доступные значения: queue – добавить в очередь на синхронизацию, dequeue –удалить из очереди

Пример:

URL запроса: POST
https://123.15.176.206/api/v1/vpn/master/sync/00001425/dequeue

Варианты ответа:

Code 200 (Successfully started/stopped data synchronization) - удачное выполнение запроса

{
"success": true,
"message": "OK"
}

Code 400 (Synchronization with ourselves does not make scence) - запрос не выполнен, неверно указаны параметры запроса

Code 409 (Synchronization already in progress) - запрос не выполнен, синхронизация уже запущена

Code 500 (Unexpected server error) - запрос не выполнен? получено сообщение об ошибке

Параметры и ответы по OpenAPI
{
"description": "Start/stop data synchronization to specified controller",
"parameters": [
{
"in": "path",
"name": "serial",
"required": true,
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "action",
"required": true,
"schema": {
"type": "string",
"enum": [
"queue",
"dequeue"
]
}
}
],
"responses": {
"200": {
"description": "Successfully started/stopped data synchronization",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean",
"example": false
},
"message": {
"type": "string"
},
"data": {
"type": "object"
}
}
}
}
}
},
"400": {
"description": "Synchronization with ourselves does not make scence",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean",
"example": false
},
"message": {
"type": "string"
},
"data": {
"type": "object"
}
}
}
}
}
},
"409": {
"description": "Synchronization already in progress",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean",
"example": false
},
"message": {
"type": "string"
},
"data": {
"type": "object"
}
}
}
}
}
}
}
}

Примеры по OpenAPI

Сформированы по схеме контроллера; значения полей необходимо заменить.

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

curl -k -X POST "https://{IP_контроллера}/api/v1/vpn/master/sync/{serial}/{action}" \
-H "Authorization: Bearer <token>"

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

{
"success": false,
"message": "string",
"data": {}
}

GET /vpn/members

Раздел: VPN.

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

Источник в Teamly

Назначение

URL запроса

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

https://{IP_контроллера}/api/v1/vpn/members

Параметры запроса:

Отсутствуют

Варианты ответа:

Code 200 (Successfully got VPN members serial numbers list) - удачное выполнение запроса

Название, * - обязательный

Тип

Формат

Назначение

vpn_members*

[{

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

serial*

string

Серийный номер контроллера

address*

string

Текущий IP-адрес контроллера

online*

boolean

Статус контроллера

licence*

name

]}

self*

string

Серийный номер текущего контроллера

Пример:

{
"vpn_members": [
{
"serial": "string",
"address": "string",
"online": true
}
],
"self": "string"
}

Code 500 (Unexpected server error) - запрос не выполнен получено сообщение об ошибке

Параметры и ответы по OpenAPI
{
"description": "Get VPN members list",
"responses": {
"200": {
"description": "Successfully got VPN members serial numbers list",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"vpn_members",
"self"
],
"properties": {
"vpn_members": {
"description": "Array of vpn members data (serial code and IP address)",
"type": "array",
"items": {
"type": "object",
"required": [
"serial",
"address",
"online"
],
"properties": {
"serial": {
"type": "string",
"description": "Controller serial"
},
"address": {
"type": "string",
"description": "Controller current IP address"
},
"online": {
"type": "boolean",
"description": "Controller is online in VPN network"
}
}
}
},
"self": {
"type": "string",
"description": "This controller serial"
}
}
}
}
}
},
"500": {
"description": "Server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean",
"example": false
},
"message": {
"type": "string"
},
"data": {
"type": "object"
}
}
}
}
}
}
}
}

Примеры по OpenAPI

Сформированы по схеме контроллера; значения полей необходимо заменить.

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

curl -k -X GET "https://{IP_контроллера}/api/v1/vpn/members" \
-H "Authorization: Bearer <token>"

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

{
"vpn_members": [
{
"serial": "string",
"address": "string",
"online": true
}
],
"self": "string"
}

POST /vpn/replace_controller

Раздел: VPN.

Заменяет один контроллер на другой

Источник в Teamly

Назначение

URL запроса

Заменяет один контроллер на другой

https://{IP_контроллера}/api/v1/vpn/replace_controller

Параметры запроса:

Название

Тип

Описание

controllers* object

body

Тело запроса

BODY

Название

* - обязательный

Тип

Формат

Назначение

controller_from*

string

minLength: 1

Серийный номер заменяемого контроллера

controller_to*

string

minLength: 1

Серийный номер нового контроллера

Пример:

URL запроса: POST
https://192/168/0/45/api/v1/vpn/replace_controller

Body

{
"controller_from": "100002356",
"controller_to": "100004567"
}

Варианты ответа:

Code 200 (Successfully replaced controller) - удачное выполнение запроса

{
"success": false,
"message": "string",
"data": {}
}

Code 500 (Unexpected server error) - запрос не выполнен, получено сообщение об ошибке

Параметры и ответы по OpenAPI
{
"description": "Replace controller",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"controller_from",
"controller_to"
],
"properties": {
"controller_from": {
"type": "string",
"minLength": 1
},
"controller_to": {
"type": "string",
"minLength": 1
}
}
}
}
}
},
"responses": {
"200": {
"description": "Successfully replaced controller",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean",
"example": false
},
"message": {
"type": "string"
},
"data": {
"type": "object"
}
}
}
}
}
},
"500": {
"description": "Server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean",
"example": false
},
"message": {
"type": "string"
},
"data": {
"type": "object"
}
}
}
}
}
}
}
}

Примеры по OpenAPI

Сформированы по схеме контроллера; значения полей необходимо заменить.

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

curl -k -X POST "https://{IP_контроллера}/api/v1/vpn/replace_controller" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
--data-raw '{
"controller_from": "string",
"controller_to": "string"
}'

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

{
"controller_from": "string",
"controller_to": "string"
}

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

{
"success": false,
"message": "string",
"data": {}
}

PUT /vpn/set_member_name/{serial_num}

Раздел: VPN.

Обновляет пользовательское имя контроллера

Источник в Teamly

Назначение

URL запроса

Обновляет пользовательское имя контроллера

https://{IP_контроллера}/api/v1/vpn/set_member_name/{serial_num}

Параметры запроса:

Название

Тип

Описание

serial_num*

string

Серийный номер контроллера

BODY

Название

* - обязательный

Тип

Формат

Назначение

name*

string

maxLength: 50

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

Пример:

URL запроса: PUT

https://{IP_контроллера}/api/v1/vpn/set_member_name/100001456

Body

Варианты ответа:

Code 200 (Successfully) - удачное выполнение запроса

{
"name": "Тестовое имя"
}

Code 400 (Bad request parameters) - запрос не выполнен, неверно указаны параметры запроса

Code 404 (Specified device does not exist) - запрос не выполнен, указанное устройство не существует

Code 500 (Unexpected server error) - запрос не выполнен получено сообщение об ошибке

Параметры и ответы по OpenAPI
{
"description": "Изменить пользовательское имя участника vpn",
"parameters": [
{
"in": "path",
"name": "serial_num",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"maxLength": 50,
"description": "Название (максимум 50 символов)"
}
},
"example": {
"name": "Тестовое имя"
}
}
}
}
},
"responses": {
"200": {
"description": "Пользовательское имя участника VPN успешно изменено",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean",
"example": false
},
"message": {
"type": "string"
},
"data": {
"type": "object"
}
}
}
}
}
},
"400": {
"description": "Bad request parameters",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean",
"example": false
},
"message": {
"type": "string"
},
"data": {
"type": "object"
}
}
}
}
}
},
"404": {
"description": "Участник VPN с таким серийным номером не найден",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean",
"example": false
},
"message": {
"type": "string"
},
"data": {
"type": "object"
}
}
}
}
}
},
"500": {
"description": "Серверная ошибка добавления пользовательского имени участника VPN",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean",
"example": false
},
"message": {
"type": "string"
},
"data": {
"type": "object"
}
}
}
}
}
}
}
}

Примеры по OpenAPI

Сформированы по схеме контроллера; значения полей необходимо заменить.

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

curl -k -X PUT "https://{IP_контроллера}/api/v1/vpn/set_member_name/{serial_num}" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
--data-raw '{
"name": "Тестовое имя"
}'

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

{
"name": "Тестовое имя"
}

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

{
"success": false,
"message": "string",
"data": {}
}

GET /vpn/slave/status

Раздел: VPN.

Возвращает статус контроллера, ожидающего синхронизацию

Источник в Teamly

Назначение

URL запроса

Возвращает статус контроллера, ожидающего синхронизацию

https://{IP_контроллера}/api/v1/vpn/slave/status

Параметры запроса:

Отсутствуют

Варианты ответа:

Code 200 (Successfully got synchronization slave status) - удачное выполнение запроса

Название, * - обязательный

Тип

Формат

Назначение

stage*

string

[STOPPED, HAND_SHAKE, CLEANUP, DATA_SYNC, DATA_SYNC_END, EVENTS_SYNC, SYNC_END]

Этапы синхронизации

controller*

string

Cерийный номер текущего контроллера

progress*

number

minimum: 0
maximum: 100

Прогресс синхронизации в процентах

error*

string

Описание ошибки (при наличии)

last_sync_end_timestamp_ms

integer

$int64

Время последней сохраненной синхронизации в миллисекундах

Пример:

{
"stage": "STOPPED",
"progress": 100,
"error": "string",
"controller": "string",
"last_sync_end_timestamp_ms": 0
}

Code 500 (Unexpected server error) - запрос не выполнен, получено сообщение об ошибке

Параметры и ответы по OpenAPI
{
"description": "Get synchronization slave status",
"responses": {
"200": {
"description": "Successfully got synchronization slave status",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"stage",
"progress",
"error",
"controller"
],
"properties": {
"stage": {
"type": "string",
"enum": [
"STOPPED",
"HAND_SHAKE",
"CLEANUP",
"DATA_SYNC",
"DATA_SYNC_END",
"EVENTS_SYNC",
"SYNC_END"
]
},
"progress": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Synchronization progress in percentage"
},
"error": {
"description": "In case of error occured during last sync process, this field will contain error description",
"type": "string"
},
"controller": {
"description": "Sync master controller serial",
"type": "string"
},
"last_sync_end_timestamp_ms": {
"description": "Last remembered synchronization UNIX timestamp in milliseconds",
"type": "integer",
"format": "int64"
}
}
}
}
}
}
}
}

Примеры по OpenAPI

Сформированы по схеме контроллера; значения полей необходимо заменить.

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

curl -k -X GET "https://{IP_контроллера}/api/v1/vpn/slave/status" \
-H "Authorization: Bearer <token>"

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

{
"stage": "STOPPED",
"progress": 1,
"error": "string",
"controller": "string",
"last_sync_end_timestamp_ms": 1
}

POST /vpn/slave/sync/{action}

Раздел: VPN.

Останавливает синхронизацию данных с текущим контроллером

Источник в Teamly

Назначение

URL запроса

Останавливает синхронизацию данных с текущим контроллером

https://{IP_контроллера}/api/v1/vpn/slave/sync/{action}

Параметры запроса:

Название

Тип

Описание

action*

string (path)

Доступные значение: stop

Пример:

URL запроса: POST
https://192.168.0.56/api/v1/vpn/slave/sync/stop

Варианты ответа:

Code 200 (Successfully started/stopped data synchronization) - удачное выполнение запроса

{
"success": false,
"message": "string",
"data": {}
}

Code 409 (Synchronization already in progress) - запрос не выполнен, указанная синхронизация уже запущена

Code 500 (Unexpected server error) - запрос не выполнен получено сообщение об ошибке

Параметры и ответы по OpenAPI
{
"description": "Start/stop data synchronization from another controller",
"parameters": [
{
"in": "path",
"name": "action",
"required": true,
"schema": {
"type": "string",
"enum": [
"stop"
]
}
}
],
"responses": {
"200": {
"description": "Successfully started/stopped data synchronization",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean",
"example": false
},
"message": {
"type": "string"
},
"data": {
"type": "object"
}
}
}
}
}
},
"409": {
"description": "Synchronization already in progress",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean",
"example": false
},
"message": {
"type": "string"
},
"data": {
"type": "object"
}
}
}
}
}
}
}
}

Примеры по OpenAPI

Сформированы по схеме контроллера; значения полей необходимо заменить.

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

curl -k -X POST "https://{IP_контроллера}/api/v1/vpn/slave/sync/{action}" \
-H "Authorization: Bearer <token>"

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

{
"success": false,
"message": "string",
"data": {}
}

DELETE /vpn/{serial}

Раздел: VPN.

Удаляет контроллер из кластера

Источник в Teamly

Назначение

URL запроса

Удаляет контроллер из кластера

https://{IP_контроллера}/api/v1/vpn/{S/N_контроллера}

Параметры запроса:

Наименование, * - обязательный

Описание

serial* string (path)

Серийный номер контроллера

Варианты ответа:

Code 200 (Successfully removed controller from cluster) - удачное выполнение запроса

{
"success": false,
"message": "string",
"data": {}
}

Code 400 (Controller with specified serial is not in cluster) - запрос не выполнен, контроллер с указанным серийным номером не находится в кластере

Code 409 (Deletion not allowed synchronization) - запрос не выполнен, удаление контроллера запрещено

Code 500 (Unexpected server error) - запрос не выполнен, получено сообщение об ошибке

Параметры и ответы по OpenAPI
{
"description": "Remove controller from cluster",
"parameters": [
{
"in": "path",
"name": "serial",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Successfully removed controller from cluster",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean",
"example": false
},
"message": {
"type": "string"
},
"data": {
"type": "object"
}
}
}
}
}
},
"400": {
"description": "Controller with specified serial is not in cluster",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean",
"example": false
},
"message": {
"type": "string"
},
"data": {
"type": "object"
}
}
}
}
}
},
"409": {
"description": "Deletion not allowed synchronization",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean",
"example": false
},
"message": {
"type": "string"
},
"data": {
"type": "object"
}
}
}
}
}
},
"500": {
"description": "Server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean",
"example": false
},
"message": {
"type": "string"
},
"data": {
"type": "object"
}
}
}
}
}
}
}
}

Примеры по OpenAPI

Сформированы по схеме контроллера; значения полей необходимо заменить.

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

curl -k -X DELETE "https://{IP_контроллера}/api/v1/vpn/{serial}" \
-H "Authorization: Bearer <token>"

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

{
"success": false,
"message": "string",
"data": {}
}