Public API (v1.0.0)

Serverspace Public API - публичный API для взаимодействия с услугами Serverspace. Действия, выполняемые в панели управления Serverspace, также могут быть выполнены с помощью публичного API. В этой документации описывается программный интерфейс (API) Serverspace - различные операции API, структуры запросов и ответов, коды ошибок и примеры.

Аутентификация

Для работы с публичным API необходимо создать API-ключ для проекта. Сгенерировать ключ может владелец проекта в панели управления во вкладке Автоматизация. Каждый ключ обладает атрибутами: имя, значение ключа, дата выпуска, дата истечения. Имя ключа может быть произвольным, но не превышать 50 символов. Значение ключа генерируется автоматически, оно имеет длину 64 символа. Дата истечения ключа может отсутствовать, т.е. ключ может быть бессрочным.

Для работы с публичным API значение ключа необходимо передавать при каждом запросе в заголовке X-API-KEY, например:

-H "X-API-KEY: lmGwbvllpIqIrKROOCLgE5Z941MKP5EYfbkgwtqJZGigfXUTpuYRpNQkCqShmm6r"

Все запросы API должны выполняться через протокол HTTPS. Вызовы, сделанные через HTTP, завершатся ошибкой. Запросы API без аутентификации также завершатся ошибкой.

Endpoint:

https://api.serverspace.ru/

Возможности

Ниже представлены объекты, которыми можно управлять с помощью публичного API, и как они соотносятся с услугами в панели управления.

Услуга Объект Действия
Облачные серверы Шаблон ОС Просмотр доступных ОС для создания серверов и сетей
Облачные серверы Конфигурация Просмотр доступных конфигураций для создания серверов и cетей
Облачные серверы Локация Просмотр доступных локаций для создания серверов и сетей
Облачные серверы Сервер Создание сервера
Просмотр деталей
Управление питанием
Изменение конфигурации
Удаление
Облачные серверы Диск Создание диска
Просмотр деталей
Изменение размера
Удаление
Облачные серверы Снимок Создание снимка
Просмотр деталей
Возвращение сервера к снимку
Удаление
Облачные серверы Группы Affinity Создание группы
Просмотр деталей
Удаление
Облачные серверы Изолированная сеть Создание изолированной сети
Просмотр деталей
Изменение конфигурации
Удаление
Облачные серверы Сетевой интерфейс Подключение сервера к сети (создание сетевого интерфейса)
Просмотр деталей
Отключение сервера от сети (удаление сетевого интерфейса)
Облачные серверы Шлюз Создание пограничного шлюза
Просмотр деталей
Управление правилами Firewall и NAT
Подключение и отключение изолированной сети
Удаление
Проект SSH-ключ Создание SSH-ключа
Просмотр деталей
Удаление
Проект Проект Просмотр деталей проекта
Проект Задача Просмотр деталей
DNS Доменное имя Создание доменного имени
Просмотр деталей
Удаление домена
DNS DNS-запись Создание DNS-записи
Просмотр деталей
Изменение DNS-записи
Удаление DNS-записи

Проекты

Получить информацию о проекте

Детализация

Возвращает ID проекта и текущий баланс проекта. Проекты позволяют владельцу аккаунта предоставлять полный или ограниченный доступ к своей инфраструктуре другим пользователям для совместной работы с ресурсами: серверами, сетями, балансом и др. Существует два типа проектов: личные и общие. Каждому пользователю в проекте, может быть присвоена роль с определенными правами доступа: владелец, администратор или бухгалтер

Responses

Response samples

Content type
application/json
{
  • "project": {
    }
}

SSH-ключи

Работа с SSH-ключами

Список

Возвращает список SSH-ключей. SSH-ключи используются при создании сервера с операционной системой семейства Linux. Использование SSH-ключей позволяет подключаться к серверу без пароля и повышает уровень безопасности сервера

Responses

Response samples

Content type
application/json
{
  • "ssh_keys": [
    ]
}

Создать новый

Добавляет новый SSH-ключ. SSH-ключи используются при создании сервера с операционной системой семейства Linux. Использование SSH-ключей позволяет подключаться к серверу без пароля и повышает уровень безопасности сервера

Request Body schema: application/json

Поддерживаемые форматы OpenSSH и SSH2

name
string

Название ключа

public_key
string

Код ключа

Responses

Request samples

Content type
application/json
{
  • "name": "Test Ssh-Key 1",
  • "public_key": "---- BEGIN SSH2 PUBLIC KEY ----\r\nComment: \"rsa-key-20190927\"\r\nAAAAB3NzaC1yc2EAAAABJQAAAQEAkEWseYLYVW4wpdNwWNXtoz84r5sYZ2FBXJ5M\r\nsfibRpJ47o/2z6VcdYnbhhJ/J2dE9AlDCGgleXilnxc9UKRgWXi3NHMmDNFi1kR5\r\nJ6xcY3Tv0ly6w0if+QMJULnoixgPulg93JanVxCvAFy4sE8kwQqTQrYio3UJbiQ5\r\nlX0kEkaWMDM/p8Z97d5izVN+PoMjW0bZdK17VAS90cf+FKFL6cs5VKrY/d7OMfxi\r\nqNeEs+vzYPK2VT4aiLLzryTIiDgG9CjsPtRoMxSihw5tdIw3mhsFdZkKdaJDfank\r\noQ3Y6P4XFPbzwOfDLwIRkDd7Gbh7jRp+4SeVVsBP9AbBR/kv3w==\r\n---- END SSH2 PUBLIC KEY ----"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Test Ssh-Key 1",
  • "public_key": "---- BEGIN SSH2 PUBLIC KEY ----\r\nComment: \"rsa-key-20190927\"\r\nAAAAB3NzaC1yc2EAAAABJQAAAQEAkEWseYLYVW4wpdNwWNXtoz84r5sYZ2FBXJ5M\r\nsfibRpJ47o/2z6VcdYnbhhJ/J2dE9AlDCGgleXilnxc9UKRgWXi3NHMmDNFi1kR5\r\nJ6xcY3Tv0ly6w0if+QMJULnoixgPulg93JanVxCvAFy4sE8kwQqTQrYio3UJbiQ5\r\nlX0kEkaWMDM/p8Z97d5izVN+PoMjW0bZdK17VAS90cf+FKFL6cs5VKrY/d7OMfxi\r\nqNeEs+vzYPK2VT4aiLLzryTIiDgG9CjsPtRoMxSihw5tdIw3mhsFdZkKdaJDfank\r\noQ3Y6P4XFPbzwOfDLwIRkDd7Gbh7jRp+4SeVVsBP9AbBR/kv3w==\r\n---- END SSH2 PUBLIC KEY ----"
}

Получить по ID

Возвращает детализацию одного SSH-ключа. SSH-ключи используются при создании сервера с операционной системой семейства Linux. Использование SSH-ключей позволяет подключаться к серверу без пароля и повышает уровень безопасности сервера

path Parameters
ssh_key_id
required
integer <int32>

ID SSH-ключа, информацию о котором необходимо получить

Responses

Response samples

Content type
application/json
{
  • "ssh_key": {
    }
}

Удалить

Удаляет один SSH-ключ

path Parameters
ssh_key_id
required
integer <int32>

ID SSH-ключа, который необходимо удалить

Responses

Задачи

Получить информацию о задаче

Задача

Возвращает информацию о задаче, ID сущности, над которой выполняется действие, а также данные о её завершении

path Parameters
task_id
required
string

ID задачи, информацию о которой необходимо получить

Responses

Response samples

Content type
application/json
Example
{
  • "task": {
    }
}

Метаинформация для серверов

Получить метаинформацию для серверов

Список локаций

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

Responses

Response samples

Content type
application/json
{
  • "locations": [
    ]
}

Список шаблонов

Возвращает список доступных шаблонов

Responses

Response samples

Content type
application/json
{
  • "images": [
    ]
}

Список приложений

Возвращает список приложений, доступных для установки на серверы

query Parameters
location_id
string

Название локации, позволяет отфильтровать доступные приложения по локации

Responses

Response samples

Content type
application/json
{
  • "applications": [
    ]
}

Серверы

Получить информацию о серверах

Список

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

Responses

Response samples

Content type
application/json
{
  • "servers": [
    ]
}

Создать

Создаёт новый сервер, в результате возвращается ID задачи, по которой можно отследить процесс создания сервера и его ID. При создании сервера должен быть указан минимум один диск, который будет являться загрузочным, имя у него должно быть "boot". Для подключения к публичной сети необходимо указать только пропускную способность интерфейса в теле запроса, для подключения к изолированной сети только её идентификатор

Request Body schema: application/json
location_id
required
string

ID локации

image_id
required
string

ID шаблона

cpu
required
integer <int32>

Количество ядер

ram_mb
required
integer <int32>

Объём оперативной памяти в МБ

required
Array of objects
Array of objects
name
required
string

Имя сервера

ssh_key_ids
Array of integers <int32> [ items <int32 > ]

ID SSH-ключей, если не будет указан ни один SSH-ключ, то для сервера будет доступна аутентификация по логину и паролю

application_ids
Array of strings

Список приложений, которые будут установлены на сервер. Если задано поле application_ids, то поле server_init_script игнорируется

tags
Array of strings

Список тегов, которые будут присвоены серверу. Список можно оставить пустым

affinity_group_id
string

ID группы Affinity

server_init_script
string

Пользовательский скрипт, который будет запущен на сервере при его создании. При написании скрипта можно использовать экранирование, специальные и управляющие символы. Только для ОС Linux и FreeBSD. Если задано поле application_ids, то поле server_init_script игнорируется

Responses

Request samples

Content type
application/json
Example
{
  • "location_id": "am2",
  • "image_id": "Ubuntu-20.04-X64",
  • "cpu": 1,
  • "ram_mb": 1024,
  • "volumes": [
    ],
  • "networks": [
    ],
  • "name": "public-api",
  • "ssh_key_ids": [
    ],
  • "application_ids": [
    ],
  • "tags": [
    ],
  • "affinity_group_id": "l1g11",
  • "server_init_script": "sudo apt update\nsudo apt install apache2 -y\nsudo systemctl enable apache2\nsudo systemctl start apache2\n"
}

Response samples

Content type
application/json
{
  • "task_id": "lt17499"
}

Получить по ID

Возвращает детализацию одного сервера

path Parameters
server_id
required
string

ID сервера, по которому необходимо получить детализацию

Responses

Response samples

Content type
application/json
{
  • "server": {
    }
}

Изменить

Изменяет количество ядер и объём оперативной памяти одного сервера, в результате возвращается ID задачи, по которой можно отследить процесс изменения сервера и его ID

path Parameters
server_id
required
string

ID сервера, который необходимо изменить

Request Body schema: application/json
cpu
required
integer <int32>

Новое количество ядер

ram_mb
required
integer <int32>

Новый объём оперативной памяти в МБ

Responses

Request samples

Content type
application/json
{
  • "cpu": 4,
  • "ram_mb": 4096
}

Response samples

Content type
application/json
{
  • "task_id": "lt17499"
}

Изменить

Изменяет количество ядер и/или объём оперативной памяти одного сервера, в результате возвращается ID задачи, по которой можно отследить процесс изменения сервера и его ID

path Parameters
server_id
required
string

ID сервера, который необходимо изменить

Request Body schema: application/json
cpu
integer <int32>

Новое количество ядер

ram_mb
integer <int32>

Новый объём оперативной памяти в МБ

Responses

Request samples

Content type
application/json
Example
{
  • "cpu": 4
}

Response samples

Content type
application/json
{
  • "task_id": "lt17499"
}

Удалить

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

path Parameters
server_id
required
string

ID сервера, который необходимо удалить

Responses

Создать тег

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

path Parameters
server_id
required
string

ID сервера, для которого необходимо создать тег

Request Body schema: application/json
value
required
string

Название тега. Тег представляет собой текстовую метку длиной до 32 символов, состоящую из любых печатных символов без пробелов

Responses

Request samples

Content type
application/json
{
  • "value": "MyTag"
}

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Удалить тег

Удаляет один тег сервера

path Parameters
server_id
required
string

ID сервера, тег которого необходимо удалить

tag
required
string

Название тега, который необходимо удалить

Responses

Получить цену

Возвращает стоимость указанной конфигурации сервера за 1 месяц. Ресурс принимает такую же модель, которая требуется при создании сервера

Request Body schema: application/json
location_id
required
string

ID локации

image_id
required
string

ID шаблона

cpu
required
integer <int32>

Количество ядер

ram_mb
required
integer <int32>

Объём оперативной памяти в МБ

required
Array of objects
Array of objects
name
string

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

ssh_key_ids
Array of integers <int32> [ items <int32 > ]

ID SSH-ключей. Поле необязательное, используется для совместимости с запросом создания сервера

Responses

Request samples

Content type
application/json
{
  • "location_id": "am2",
  • "image_id": "CentOS-8.3-X64",
  • "cpu": 1,
  • "ram_mb": 1024,
  • "volumes": [
    ],
  • "networks": [
    ]
}

Response samples

Content type
application/json
{
  • "price": 3011.4
}

Питание серверов

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

Включить питание

Включает питание сервера, в результате возвращается ID задачи

path Parameters
server_id
required
string

ID сервера, который необходимо включить

Responses

Response samples

Content type
application/json
{
  • "task_id": "lt17499"
}

Выключить средствами ОС

Выключает сервер средствами ОС, в результате возвращается ID задачи

path Parameters
server_id
required
string

ID сервера, который необходимо выключить

Responses

Response samples

Content type
application/json
{
  • "task_id": "lt17499"
}

Выключить по питанию

Выключает сервер по питанию, в результате возвращается ID задачи

path Parameters
server_id
required
string

ID сервера, который необходимо выключить

Responses

Response samples

Content type
application/json
{
  • "task_id": "lt17499"
}

Перезагрузить средствами ОС

Перезагружает сервер средствами ОС, в результате возвращается ID задачи

path Parameters
server_id
required
string

ID сервера, который необходимо перезагрузить

Responses

Response samples

Content type
application/json
{
  • "task_id": "lt17499"
}

Перезагрузить по питанию

Перезагружает сервер по питанию, в результате возвращается ID задачи

path Parameters
server_id
required
string

ID сервера, который необходимо перезагрузить

Responses

Response samples

Content type
application/json
{
  • "task_id": "lt17499"
}

Диски

Получить информацию о дисках

Список

Возвращает список дисков для сервера. Дополнительные SSD диски позволяют увеличить доступный объём памяти для хранения информации

path Parameters
server_id
required
string

ID сервера, для которого необходимо получить список дисков

Responses

Response samples

Content type
application/json
{
  • "volumes": [
    ]
}

Создать

Добавляет новый SSD диск к серверу, в результате возвращается ID задачи. При добавлении диска происходит перезагрузка сервера. Подключение выполняется в автоматическом режиме и доступно для серверов с любой операционной системой

path Parameters
server_id
required
string

ID сервера, для которого необходимо создать диск

Request Body schema: application/json
name
required
string

Название диска

size_mb
required
integer <int32>

Размер диска в МБ, минимальный и максимальный размер диска можно найти в детализации локаций, размер диска должен быть кратен 10 ГБ

Responses

Request samples

Content type
application/json
{
  • "name": "Volume 1",
  • "size_mb": 10240
}

Response samples

Content type
application/json
{
  • "task_id": "lt17499"
}

Получить по ID

Возвращает детализацию одного диска. Дополнительные SSD диски позволяют увеличить доступный объём памяти для хранения информации

path Parameters
server_id
required
string

ID сервера, для которого необходимо получить детализацию диска

volume_id
required
integer <int32>

ID диска, по которому необходимо получить детализацию

Responses

Response samples

Content type
application/json
{
  • "volume": {
    }
}

Изменить

Изменяет размер одного диска или его название, в результате возвращается ID задачи. При изменении диска происходит перезагрузка сервера. Для загрузочного диска "boot" игнорируется изменение имени

path Parameters
server_id
required
string

ID сервера, для которого необходимо изменить размер диска

volume_id
required
integer <int32>

ID диска, который необходимо изменить

Request Body schema: application/json

Размер диска необходимо указать в МБ, минимальный и максимальный размер диска можно найти в детализации локаций, диск можно только увеличить

name
string

Название диска

size_mb
integer <int32>

Размер диска в МБ, размер диска должен быть кратен 10 ГБ

Responses

Request samples

Content type
application/json
Example
{
  • "size_mb": 20480
}

Response samples

Content type
application/json
{
  • "task_id": "lt17499"
}

Удалить

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

path Parameters
server_id
required
string

ID сервера, для которого необходимо удалить диск

volume_id
required
integer <int32>

ID диска, который необходимо удалить

Responses

Снимки

Получить информацию о снимках

Список

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

path Parameters
server_id
required
string

ID сервера, для которого необходимо получить список снимков

Responses

Response samples

Content type
application/json
{
  • "snapshots": [
    ]
}

Создать

Создаёт моментальный снимок сервера, в результате возвращается ID задачи

path Parameters
server_id
required
string

ID сервера, снимок которого необходимо создать

Request Body schema: application/json
name
string

Название снимка

Responses

Request samples

Content type
application/json
{
  • "name": "snapshot-example"
}

Response samples

Content type
application/json
{
  • "task_id": "lt17499"
}

Получить по ID

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

path Parameters
server_id
required
string

ID сервера, для которого необходимо получить детализацию снимка

snapshot_id
required
integer <int32>

ID снимка, по которому необходимо получить детализацию

Responses

Response samples

Content type
application/json
{
  • "snapshot": {
    }
}

Удалить

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

path Parameters
server_id
required
string

ID сервера, которому принадлежит снимок

snapshot_id
required
integer <int32>

ID снимка, который необходимо удалить

Responses

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

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

path Parameters
server_id
required
string

ID сервера, который нужно возвратить к снимку

snapshot_id
required
integer <int32>

ID снимка, к которому нужно возвратиться

Responses

Response samples

Content type
application/json
{
  • "task_id": "lt17499"
}

Группы Affinity

Получить информацию о группах Affinity и Anti-Affinity. Группы Affinity и Anti-Affinity позволяют разместить набор серверов на разных или на одном пуле локации в зависимости от требований

Список

Возвращает список групп Affinity и Anti-Affinity

Responses

Response samples

Content type
application/json
{
  • "affinity-groups": [
    ]
}

Создать

Создаёт новую группу Affinity или Anti-Affinity

Request Body schema: application/json
name
required
string

Имя группы

location_id
required
string

ID локации

affinity
required
boolean

Тип группы Affinity или Anti-Affinity

Responses

Request samples

Content type
application/json
{
  • "name": "affinity-group",
  • "location_id": "am2",
  • "affinity": true
}

Response samples

Content type
application/json
{
  • "affinity_group": {
    }
}

Получить по ID

Возвращает детализацию одной группы

path Parameters
affinity-group_id
required
string

ID группы, по которой необходимо получить детализацию

Responses

Response samples

Content type
application/json
{
  • "affinity-groups": [
    ]
}

Удалить

Удаляет группу Affinity или Anti-Affinity

path Parameters
affinity-group_id
required
string

ID группы, которую необходимо удалить

Responses

Сетевые интерфейсы

Получить информацию о сетевых интерфейсах

Список

Возвращает список сетевых интерфейсов сервера

path Parameters
server_id
required
string

ID сервера, для которого необходимо получить список сетевых интерфейсов

Responses

Response samples

Content type
application/json
{
  • "nics": [
    ]
}

Добавить

Подключает сервер к сети, в результате возвращается ID задачи. Для подключения к публичной сети необходимо указать только пропускную способность интерфейса в теле запроса, для подключения к изолированной сети только её идентификатор. Cеть позволяет объединять виртуальные серверы в облако внутри одного ЦОД. При подключении дополнительных публичных IP-адресов может взыматься единоразовое списание, равное стоимости одного IP-адреса за один месяц

path Parameters
server_id
required
string

ID сервера, который необходимо подключить к сети

Request Body schema: application/json
network_id
string

ID изолированной сети, к которой необходимо подключить сервер

ip_address
string

IP адрес в изолированной сети, который будет назначен вашему серверу. Если IP адрес не указан, он будет назначен автоматически

bandwidth_mbps
integer <int32>

Ширина канала публичной сети. Пропускная способность интерфейса указывается в Мбит/с, значение пропускной способности должно быть кратно 10 Мбит/с

Responses

Request samples

Content type
application/json
Example
{
  • "network_id": "l7n343",
  • "ip_address": "192.168.0.23"
}

Response samples

Content type
application/json
{
  • "task_id": "lt17499"
}

Получить по ID

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

path Parameters
server_id
required
string

ID сервера, для которого необходимо получить детализацию сетевого интерфейса

nic_id
required
integer <int32>

ID сетевого интерфейса, по которому необходимо получить детализацию

Responses

Response samples

Content type
application/json
{
  • "nic": {
    }
}

Изменить

Изменяет ширину канала интерфейса для общей публичной сети

path Parameters
server_id
required
string

ID сервера, для которого необходимо изменить ширину канала сетевого интерфейса

nic_id
required
integer <int32>

ID сетевого интерфейса, ширину канала которого необходимо изменить

Request Body schema: application/json

Возможно изменить пропускную способность только интерфейса, подключенного к общей публичной сети

bandwidth_mbps
integer <int32>

Ширина канала публичной сети. Пропускная способность интерфейса указывается в Мбит/с, значение пропускной способности должно быть кратно 10 Мбит/с

Responses

Request samples

Content type
application/json
{
  • "bandwidth_mbps": 150
}

Response samples

Content type
application/json
{
  • "task_id": "lt17499"
}

Удалить

Удаляет один сетевой интерфейс (отключает сервер от сети)

path Parameters
server_id
required
string

ID сервера, для которого необходимо удалить сетевой интерфейс

nic_id
required
integer <int32>

ID сетевого интерфейса, который необходимо удалить

Responses

Изолированные сети

Получить информацию об изолированных сетях

Список

Возвращает список изолированных сетей. Изолированная сеть позволяет объединять виртуальные серверы в приватное облако внутри одного ЦОД. Размещение ресурсов в приватном облаке происходит в отдельном изолированном сегменте сети без доступа в Интернет, за счет чего достигается высокий уровень его безопасности и конфиденциальности

Responses

Response samples

Content type
application/json
{
  • "isolated_networks": [
    ]
}

Создать

Создаёт новую изолированную сеть, в результате возвращается ID задачи. Изолированная сеть позволяет объединять виртуальные серверы в приватное облако внутри одного ЦОД. Размещение ресурсов в приватном облаке происходит в отдельном изолированном сегменте сети без доступа в Интернет, за счет чего достигается высокий уровень его безопасности и конфиденциальности

Request Body schema: application/json
location_id
string

ID локации для создания сети

name
string

Название сети

description
string

Описание сети

network_prefix
string

Адрес сети

mask
integer <int32>

Маска подсети определяет неизменную часть адреса и влияет на ёмкость сети (количество доступных адресов). Указывается в виде количества старших бит, не меняющихся от адреса к адресу. К примеру, 24 эквивалентно записи "255.255.255.0" и означает 256 доступных (254 рабочих) адреса. Доступный диапазон масок от 18 до 24 включительно.

Responses

Request samples

Content type
application/json
{
  • "location_id": "am2",
  • "name": "example-network",
  • "description": "description",
  • "network_prefix": "192.168.0.0",
  • "mask": 24
}

Response samples

Content type
application/json
{
  • "task_id": "l1t11871"
}

Получить по ID

Получить детализацию одной изолированной сети. Изолированная сеть позволяет объединять виртуальные серверы в приватное облако внутри одного ЦОД. Размещение ресурсов в приватном облаке происходит в отдельном изолированном сегменте сети без доступа в Интернет, за счет чего достигается высокий уровень его безопасности и конфиденциальности

path Parameters
network_id
required
string

ID изолированной сети, для которой необходимо получить детализацию

Responses

Response samples

Content type
application/json
{
  • "isolated_network": {
    }
}

Изменить

Изменяет название и описание изолированной сети. Изолированная сеть позволяет объединять виртуальные серверы в приватное облако внутри одного ЦОД. Размещение ресурсов в приватном облаке происходит в отдельном изолированном сегменте сети без доступа в Интернет, за счет чего достигается высокий уровень его безопасности и конфиденциальности

path Parameters
network_id
required
string

ID изолированной сети, которую необходимо изменить

Request Body schema: application/json
name
string

Новое название изолированной сети

description
string

Новое описание изолированной сети

Responses

Request samples

Content type
application/json
{
  • "name": "Network 1",
  • "description": "Description of Network 1"
}

Response samples

Content type
application/json
{
  • "isolated_network": {
    }
}

Удалить

Удаляет одну изолированную сеть

path Parameters
network_id
required
string

ID изолированной сети, которую необходимо удалить

Responses

Создать тег

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

path Parameters
network_id
required
string

ID изолированной сети, для которой необходимо создать тег

Request Body schema: application/json
value
required
string

Название тега. Тег представляет собой текстовую метку длиной до 32 символов, состоящую из любых печатных символов без пробелов

Responses

Request samples

Content type
application/json
{
  • "value": "MyTag"
}

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Удалить тег

Удаляет один тег изолированной сети

path Parameters
network_id
required
string

ID изолированной сети, тег которой необходимо удалить

tag
required
string

Название тега, который необходимо удалить

Responses

Шлюзы

Получить информацию о пограничных шлюзах

Список

Возвращает список пограничных шлюзов проекта

Responses

Response samples

Content type
application/json
{
  • "gateways": [
    ]
}

Создать

Создаёт новый пограничный шлюз, в результате возвращается ID задачи, по которой можно отследить процесс создания шлюза и его ID. При создании шлюза должны быть указаны изолированные сети, которые будут подключены к шлюзу

Request Body schema: application/json
location_id
required
string

ID локации

name
required
string

Имя шлюза

bandwidth_mbps
required
integer <int32>

Пропускная способность интерфейса в Мбит/с, значение пропускной способности должно быть кратно 10 Мбит/с

network_ids
required
Array of strings

ID изолированных сетей. Максимальное количество изолированных сетей, которое можно подключить к шлюзу - 3

Responses

Request samples

Content type
application/json
{
  • "location_id": "am2",
  • "name": "api-example",
  • "bandwidth_mbps": 60,
  • "network_ids": [
    ]
}

Response samples

Content type
application/json
{
  • "task_id": "lt17499"
}

Получить по ID

Возвращает детализацию одного пограничного шлюза

path Parameters
gateway_id
required
string

ID пограничного шлюза, по которому необходимо получить детализацию

Responses

Response samples

Content type
application/json
{
  • "gateway": {
    }
}

Изменить

Изменяет название пограничного шлюза

path Parameters
gateway_id
required
string

ID пограничного шлюза, который необходимо изменить

Request Body schema: application/json
name
string

Новое название пограничного шлюза

Responses

Request samples

Content type
application/json
{
  • "name": "Rename"
}

Response samples

Content type
application/json
{
  • "gateway": {
    }
}

Удалить

Удаляет один пограничный шлюз

path Parameters
gateway_id
required
string

ID пограничного шлюза, который необходимо удалить

Responses

Изменить канал

Изменяет ширину канала пограничного шлюза

path Parameters
gateway_id
required
string

ID пограничного шлюза, ширину канала которого необходимо изменить

Request Body schema: application/json
bandwidth_mbps
integer <int32>

Новая пропускная способность интерфейса в Мбит/с, значение пропускной способности должно быть кратно 10 Мбит/с

Responses

Request samples

Content type
application/json
{
  • "bandwidth_mbps": 100
}

Response samples

Content type
application/json
{
  • "task_id": "lt17499"
}

Выключить шлюз

Выключает питание шлюза, в результате возвращается ID задачи

path Parameters
gateway_id
required
string

ID пограничного шлюза, который необходимо выключить

Responses

Response samples

Content type
application/json
{
  • "task_id": "l1t90073"
}

Включить шлюз

Включает питание шлюза, в результате возвращается ID задачи

path Parameters
gateway_id
required
string

ID пограничного шлюза, который необходимо включить

Responses

Response samples

Content type
application/json
{
  • "task_id": "l1t90074"
}

Перезагрузить шлюз

Перезагружает шлюз, в результате возвращается ID задачи

path Parameters
gateway_id
required
string

ID пограничного шлюза, который необходимо перезагрузить

Responses

Response samples

Content type
application/json
{
  • "task_id": "l1t90075"
}

Получить список правил Firewall

Возвращает список правил Firewall одного пограничного шлюза. Правила выполняются последовательно. Приоритетным считается последнее правило, под которое попадает трафик. Чем выше правило в списке, тем ниже его приоритет

path Parameters
gateway_id
required
string

ID пограничного шлюза, по которому необходимо получить список правил Firewall

Responses

Response samples

Content type
application/json
{
  • "firewall_rules": [
    ]
}

Изменить правила Firewall

Изменяет набор правил Firewall пограничного шлюза. В теле запроса передаётся массив правил, который будет применён к данному шлюзу. Метод удаляет существующие правила и создаёт переданные. Возможно передать пустой список для удаления всех правил.
Правила выполняются последовательно. Приоритетным считается последнее правило, под которое попадает трафик. Чем выше правило в списке, тем ниже его приоритет

path Parameters
gateway_id
required
string

ID пограничного шлюза, для которого необходимо изменить набор правил Firewall

Request Body schema: application/json
Array of objects

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

Responses

Request samples

Content type
application/json
{
  • "firewall_rules": [
    ]
}

Response samples

Content type
application/json
{
  • "task_id": "lt17499"
}

Получить список правил NAT

Возвращает список правил NAT одного пограничного шлюза

path Parameters
gateway_id
required
string

ID пограничного шлюза, по которому необходимо получить список правил NAT

Responses

Response samples

Content type
application/json
{
  • "nat_rules": [
    ]
}

Изменить правила NAT

Изменяет набор правил NAT пограничного шлюза. В теле запроса передаётся массив правил, который будет применён к данному шлюзу. Метод удаляет существующие правила и создаёт переданные. Возможно передать пустой список для удаления всех правил

path Parameters
gateway_id
required
string

ID пограничного шлюза, для которого необходимо изменить набор правил NAT

Request Body schema: application/json
Array of objects

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

Responses

Request samples

Content type
application/json
{
  • "nat_rules": [
    ]
}

Response samples

Content type
application/json
{
  • "task_id": "lt17499"
}

Подключить сеть

Добавляет изолированную сеть к шлюзу, в результате возвращается ID задачи

path Parameters
gateway_id
required
string

ID шлюза, к которому необходимо подключить изолированную сеть

Request Body schema: application/json
network_id
required
string

ID изолированной сети, которую необходимо подключить к шлюзу

Responses

Request samples

Content type
application/json
{
  • "network_id": "l1n218"
}

Response samples

Content type
application/json
{
  • "task_id": "lt65000"
}

Отключить сеть

Отключает изолированную сеть от шлюза

path Parameters
gateway_id
required
string

ID шлюза, для которого необходимо отключить изолированную сеть

network_id
required
string

ID изолированной сети, которую необходимо отключить от шлюза

Responses

Создать тег

Добавляет новый тег к шлюзу. Тег представляет собой текстовую метку длиной до 32 символов, состоящую из любых печатных символов без пробелов

path Parameters
gateway_id
required
string

ID шлюза, для которого необходимо создать тег

Request Body schema: application/json
value
required
string

Название тега. Тег представляет собой текстовую метку длиной до 32 символов, состоящую из любых печатных символов без пробелов

Responses

Request samples

Content type
application/json
{
  • "value": "MyTag"
}

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Удалить тег

Удаляет один тег шлюза

path Parameters
gateway_id
required
string

ID шлюза, тег которого необходимо удалить

tag
required
string

Название тега, который необходимо удалить

Responses

DNS

Управление доменами и DNS-записями. В URL запросах доменные имена можно использовать как с указанием нулевого (корневого) уровня, так и без

Список доменов

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

Responses

Response samples

Content type
application/json
{
  • "domains": [
    ]
}

Создать домен

Создаёт новый домен, в результате возвращается ID задачи, по которой можно отследить процесс создания домена и его ID

Request Body schema: application/json
name
required
string

Доменное имя

migrate_records
boolean

Произвести миграцию DNS записей

Responses

Request samples

Content type
application/json
{
  • "name": "example.com",
  • "migrate_records": true
}

Response samples

Content type
application/json
{
  • "task_id": "dns3895"
}

Получить домен по имени

Возвращает детализацию одного домена

path Parameters
domain_name
required
string

Доменное имя, по которому необходимо получить детализацию

Responses

Response samples

Content type
application/json
{
  • "domain": {
    }
}

Удалить домен

Удаляет один домен

path Parameters
domain_name
required
string

Имя домена, который необходимо удалить

Responses

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

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

path Parameters
domain_name
required
string

Доменное имя, по которому необходимо получить список записей

Responses

Response samples

Content type
application/json
{
  • "records": [
    ]
}

Создать запись

Создаёт новую запись, в результате возвращается ID задачи, по которой можно отследить процесс создания записи и её ID

path Parameters
domain_name
required
string

Доменное имя, для которого необходимо создать запись

Request Body schema: application/json
name
required
string

Доменное имя

type
string
Enum: "A" "AAAA" "MX" "CNAME" "NS" "TXT" "SRV"

Тип записи

ip
string

IP адрес, используется для A и AAAA записей

mail_host
string

Почтовый сервер, используется для MX записей

priority
integer <int32>

Приоритет записи, используется для MX и SRV записей. Приоритет должен быть числом от 0 до 65535

canonical_name
string

Каноническое имя, используется для CNAME записи

name_server_host
string

Доменное имя, используется для NS записей

text
string

Текст, используется для TXT записей

protocol
string
Enum: "TCP" "UDP" "TLS"

Протокол, используется для SRV записей

service
string

Имя сервиса, используется для SRV записей

weight
integer <int32>

Вес записи, используется для SRV записей

port
integer <int32>

Порт, используется для SRV записей

target
string

Каноническое имя машины, предоставляющей сервис, используется для SRV записей

ttl
string
Enum: "1s" "5s" "30s" "1m" "5m" "10m" "15m" "30m" "1h" "2h" "6h" "12h" "1d"

TTL записи

Responses

Request samples

Content type
application/json
Example
{
  • "name": "a.example.org.",
  • "type": "A",
  • "ip": "93.184.216.38",
  • "ttl": "2h"
}

Response samples

Content type
application/json
{
  • "task_id": "dns3895"
}

Получить запись домена

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

path Parameters
domain_name
required
string

Доменное имя, по которому необходимо получить запись

record_id
required
string

ID записи, по которой необходимо получить детализацию

Responses

Response samples

Content type
application/json
Example
{
  • "record": {
    }
}

Изменить запись

Обновляет существующую запись, в результате возвращается ID задачи, по которой можно отследить процесс обновления записи и её ID

path Parameters
domain_name
required
string

Доменное имя, для которого необходимо изменить запись

record_id
required
string

ID записи, которую необходимо обновить

Request Body schema: application/json
name
string

Доменное имя

type
string
Enum: "A" "AAAA" "MX" "CNAME" "NS" "TXT" "SRV"

Тип записи

ip
string

IP адрес, используется для A и AAAA записей

mail_host
string

Почтовый сервер, используется для MX записей

priority
integer <int32>

Приоритет записи, используется для MX и SRV записей. Приоритет должен быть числом от 0 до 65535

canonical_name
string

Каноническое имя, используется для CNAME записи

name_server_host
string

Доменное имя, используется для NS записей

text
string

Текст, используется для TXT записей

protocol
string
Enum: "TCP" "UDP" "TLS"

Протокол, используется для SRV записей

service
string

Имя сервиса, используется для SRV записей

weight
integer <int32>

Вес записи, используется для SRV записей

port
integer <int32>

Порт, используется для SRV записей

target
string

Каноническое имя машины, предоставляющей сервис, используется для SRV записей

ttl
string
Enum: "1s" "5s" "30s" "1m" "5m" "10m" "15m" "30m" "1h" "2h" "6h" "12h" "1d"

TTL записи

Responses

Request samples

Content type
application/json
Example
{
  • "name": "a.example.org.",
  • "type": "A",
  • "ip": "93.184.216.38",
  • "ttl": "2h"
}

Response samples

Content type
application/json
{
  • "task_id": "dns3895"
}

Удалить запись

Удаляет одну запись

path Parameters
domain_name
required
string

Имя домена, запись по которому необходимо удалить

record_id
required
string

ID записи, которую необходимо удалить

Responses