VPN API 1.7.0
Методы API для работы с разделом «VPN».
Базовый путь: https://{IP_контроллера}/api/v1.
Версия описания API: 1.7.0.
Примеры используют placeholder-значения для паролей, token, UUID, адресов и секретов. Перед выполнением запроса замените их на значения вашего контроллера.
Методы раздела
GET /share_vpn
Раздел: VPN.
Возвращает идентификатор сеанса сетевой связи для авторизации в кластере
Назначение | 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.
Добавляет контроллер в кластер
Назначение | 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 соединения
Назначение | 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.
Возвращает статус об отклонении во времени контроллеров кластера
Назначение | 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.
Возвращает статус синхронизации текущего контроллера
Назначение | 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 | Прогресс синхронизации в процентах |
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.
Останавливает синхронизацию данных с указанным контроллером
Назначение | 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.
Добавляет или удаляет контроллер из очереди синхронизации данных
Назначение | 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.
Возвращает список контроллеров в кластере
Назначение | 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.
Заменяет один контроллер на другой
Назначение | 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.
Обновляет пользовательское имя контроллера
Назначение | 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.
Возвращает статус контроллера, ожидающего синхронизацию
Назначение | 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 | Прогресс синхронизации в процентах |
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.
Останавливает синхронизацию данных с текущим контроллером
Назначение | 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.
Удаляет контроллер из кластера
Назначение | 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": {}
}