distributives/list
Получение списка дистрибутивов
Запрос
$ curl https://api.from.sh/sprintbox/distributives/list -H "AUTH-LOGIN: login" -H "AUTH-KEY: key"
Ответ
Словарь дистрибутивов. Содержит в качестве ключа название
дистрибутива.
Параметры каждого дистрибутива:
name - название дистрибутива;
description - описание дистрибутива;
x64 - поддержка архитектуры x64;
x86 - поддержка архитектуры x86. {
"data": {
"debian7": {
"name": "debian7",
"description": "Debian 7.9 \"Wheezy\"",
"x64": true,
"x86": true
},
"debian8": {
"name": "debian8",
"description": "Debian 8.5 \"Jessie\"",
"x64": true,
"x86": true
},
"ubuntu1404": {
"name": "ubuntu1404",
"description": "Ubuntu 14.04.3 LTS \"Trusty Tahr\"",
"x64": true,
"x86": true
},
"ubuntu1604": {
"name": "ubuntu1604",
"description": "Ubuntu 16.04.1 LTS \"Xenial Xerus\"",
"x64": true,
"x86": true
}
},
"error": null
}
services/list
Получение списка услуг для создания и модификации бокса
Запрос
$ curl https://api.from.sh/sprintbox/services/list -H "AUTH-LOGIN: login" -H "AUTH-KEY: key"
Ответ
Словарь услуг. Содержит в качестве ключа название услуги.
Параметры каждой услуги:
name - системное название услуги для передачи в методах
box/add,
box/modify;
description - описание услуги;
fee - ежемесячная стоимость услуги в рублях. {
"data": [
{
"name": "box32_2gb_1core",
"description": "Бокс 32 ГБ, ОЗУ 2 ГБ, 1 ядро",
"fee": 400
},
{
"name": "box32_2gb_2cores",
"description": "Бокс 32 ГБ, ОЗУ 2 ГБ, 2 ядра",
"fee": 599
},
{
"name": "box48_4gb_1core",
"description": "Бокс 48 ГБ, ОЗУ 4 ГБ, 1 ядро",
"fee": 999
},
{
"name": "box48_4gb_2cores",
"description": "Бокс 48 ГБ, ОЗУ 4 ГБ, 2 ядра",
"fee": 1199
}
],
"error": null
}
boxes/list
Получение списка боксов аккаунта
Запрос
$ curl https://api.from.sh/sprintbox/boxes/list -H "AUTH-LOGIN: login" -H "AUTH-KEY: key"
Ответ
Словарь боксов. Содержит в качестве ключа название бокса, значения -
данные каждого бокса.
Более подробное описание каждого поля бокса можно прочитать в описании
метода
box/show. {
"data": {
"box-4869": {
"name": "box-4869",
"description": "debian8-32gb-2gb-1core",
"distributive": "debian8",
"arch": "x64",
"cpu_count": 1,
"memory": 2048,
"hdd_quota": 32768,
"hdd_used": 1517,
"state_id": 1,
"state_description": "running",
"ipv4": [
"185.185.68.117"
],
"ipv6": [
"2a0a:2b40::4:30"
],
"vnc_ip": "141.8.196.171",
"vnc_port": "5926",
"vnc_password": "wjcmfpff",
"use_vlan": true,
"services": [
{
"name": "box32_2gb_1core",
"count": 1
}
],
"backups": [],
"snapshots": [
{
"name": "snap-1",
"description": "snap-1 description",
"parent_snapshot": null,
"child_snapshot": 'snap-2',
"timestamp": 1527212459
}
]
},
"box-5467": {
"name": "box-5467",
"description": "debian8-32768gb-2048gb-1core",
"distributive": "debian8",
"arch": "x64",
"cpu_count": 1,
"memory": 2048,
"hdd_quota": 32768,
"hdd_used": 1504,
"state_id": 1,
"state_description": "running",
"ipv4": [
"185.185.69.90"
],
"ipv6": [],
"vnc_ip": "141.8.196.171",
"vnc_port": "5919",
"vnc_password": "niveviye",
"use_vlan": false,
"services": [
{
"name": "box32_2gb_1core",
"count": 1
}
],
"backups": [],
"snapshots": []
}
},
"error": null
}
backups/list
Получение списка бекапов аккаунта
Запрос
$ curl https://api.from.sh/sprintbox/backups/list -H "AUTH-LOGIN: login" -H "AUTH-KEY: key"
Ответ
Словарь бекапов. Содержит в качестве ключа название бекапа, значения -
данные каждого бекапа.
Более подробное описание каждого поля бекапа можно прочитать в описании
метода
backup/show.
{
"data": {
"backup-11": {
"arch": "x64",
"box": "box-21",
"description": "my_backup_desc",
"distributive": "debian8",
"hdd_quota": 32768,
"hdd_used": 4358,
"name": "backup-11",
"live": true
},
"backup-12": {
"arch": "x64",
"box": "box-22",
"description": "my_backup_desc_2",
"distributive": "custom_iso",
"hdd_quota": 32768,
"hdd_used": 0,
"name": "backup-12",
"live": false
}
},
"error": null
}
status/show
Получение статуса выполнения асинхронной задачи
Запрос
Отправляем параметр id, полученный после запроса на асинхронную задачу
$ curl --data "id=a7890c4b-7a75-480f-b7fd-014272728ac0" https://api.from.sh/sprintbox/status/show -H "AUTH-LOGIN: login" -H "AUTH-KEY: key"
Ответ
Идентификатор и статус выполнения асинхронного задания.
Возможные значения статуса:
started - задание запущено и находится в процессе
выполнения
finished - задание успешно выполнено
error - задание завершилось ошибкой.
Если поле data.status содержит значение error, то поле error будет
содержать описание
ошибки.
Подробнее об ошибках на странице коды ошибок. {
"data": {
"id": "a7890c4b-7a75-480f-b7fd-014272728ac0",
"status": "finished"
},
"error": null
}
snapshot/list
Список всех снапшотов
Параметры ответа
Параметр |
Описание |
box_name |
Название бокса снапшота |
name |
Название снапшота |
description |
Описание снапшота |
parent_snapshot |
Имя родительского снапшота (на образы которого
ссылаются образы данного снапшота). Если оно равно null,
этот снапшот
является самым первым в цепочке (его родителем является сам
бокс)
|
child_snapshot |
Имя дочернего снапшота (образы которого
ссылаются на образы текущего). Если оно равно null, этот
снапшот
является последним в цепочке
|
timestamp |
Время создания снапшота в формате Unix Timestamp |
Запрос
$ curl https://api.from.sh/sprintbox/snapshot/list -H "AUTH-LOGIN: login" -H "AUTH-KEY: key"
Ответ
Если значения parent_snapshot и child_snapshot равны
null, данный снапшот является единственным. Цепочка следования снапшотов
(у каждого может быть не более одного родителя и не более одного
потомка) составляется из этих параметров. {
"data": [
{
"box_name": "box_1",
"name": "snap-1",
"description": "snap-1 description",
"parent_snapshot": null,
"child_snapshot": 'snap-2',
"timestamp": 1527212459
},
{
"box_name": "box_1",
"name": "snap-2",
"description": "snap-2 description",
"parent_snapshot": 'snap-1',
"child_snapshot": null,
"timestamp": 1527212459
},
{
"box_name": "box_22",
"name": "other-snap",
"description": "other-snap description",
"parent_snapshot": null,
"child_snapshot": null,
"timestamp": 1527212459
}
],
"error": null
}
box/show
Получение информации о боксе
Параметры запроса
Параметр |
Тип данных |
Обязательный (?)
|
Пример |
box_name |
string |
да/нет
|
box-5654 |
Параметры ответа
Параметр |
Описание |
name |
Системное название бокса |
description |
Описание бокса |
distributive |
Базовый дистрибутив |
arch |
Архитектура |
cpu_count |
Кол-во ядер процессора |
memory |
Оперативная память, МБ |
hdd_quota |
Объем жесткого диска, МБ |
hdd_used |
Объем использованного места на жестком диска, МБ |
state_id |
Идентификатор статуса бокса |
state_description |
Описание статуса бокса |
ipv4 |
Выделенные ipv4-адреса |
ipv6 |
Выделенные ipv6-адреса |
vnc_ip |
Доступ по VNC: ip-адрес |
vnc_port |
Доступ по VNC: порт |
vnc_password |
Доступ по VNC: пароль |
vnc_password |
Доступ по VNC: пароль |
use_vlan |
Включен ли бокс в локальную сеть |
services |
Набор услуг бокса |
backups |
Бекапы бокса |
snapshots |
Снапшоты бокса |
Запрос
$ curl --data "box_name=box-5654" https://api.from.sh/sprintbox/box/show -H "AUTH-LOGIN: login" -H "AUTH-KEY: key"
Ответ
{
"data": {
"name": "box-4869",
"description": "debian8-32gb-2gb-1core",
"distributive": "debian8",
"arch": "x64",
"cpu_count": 1,
"memory": 2048,
"hdd_quota": 32768,
"hdd_used": 1517,
"state_id": 1,
"state_description": "running",
"ipv4": [
"185.185.68.117"
],
"ipv6": [
"2a0a:2b40::4:30"
],
"vnc_ip": "141.8.196.171",
"vnc_port": "5926",
"vnc_password": "wjcmfpff",
"use_vlan": true,
"services": [
{
"name": "box32_2gb_1core",
"count": 1
}
],
"backups": [],
"snapshots": [
{
"name": "snap-1",
"description": "snap-1 description",
"parent_snapshot": null,
"child_snapshot": 'snap-2',
"timestamp": 1527212459
}
]
},
"error": null
}
backup/show
Получение информации о бекапе
Параметры запроса
Параметр |
Тип данных |
Обязательный (?)
|
Пример |
backup_name |
string |
да/нет
|
backup-5758 |
Параметры ответа
Параметр |
Описание |
box |
Название бокса |
name |
Название бекапа |
arch |
Архитектура бокса |
distributive |
Базовый дистрибутив бокса |
description |
Описание бекапа |
hdd_quota |
Дисковая квота бокса, из которого был сделан бекап, МБ |
hdd_used |
Использовано места на диске в момент создания бекапа, МБ
|
live |
Создан без остановки бокса, может содержать не все данные ?
|
Запрос
$ curl --data "backup_name=backup-5758" https://api.from.sh/sprintbox/backup/show -H "AUTH-LOGIN: login" -H "AUTH-KEY: key"
Ответ
{
"data": {
"box": "box-5471",
"name": "backup-5472",
"arch": "x64",
"distributive": "debian7",
"description": "some description",
"hdd_quota": 32768,
"hdd_used": 5641,
"live": false
},
"error": null
}
box/add
Создать новый бокс
Параметры запроса
Параметр |
Тип данных |
Обязательный (?)
|
Пример |
При создании из базового
образа
|
service |
string |
да/нет
|
box32_2gb_1core |
distributive |
string |
да/нет
|
debian8 |
arch |
string |
да/нет
|
x64 |
box_desc |
string |
нет
|
some description |
pubkey |
string |
нет
|
ssh-rsa AAAA... |
use_vlan |
boolean |
нет
|
true, false |
scheduled |
boolean |
нет
|
true, false |
При создании из бекапа |
service |
string |
да/нет
|
box32_2gb_1core |
backup_name |
string |
да/нет
|
backup-132 |
box_desc |
string |
нет
|
some description |
pubkey |
string |
нет
|
ssh-rsa AAAA... |
use_vlan |
boolean |
нет
|
true, false |
scheduled |
boolean |
нет
|
true, false |
При создании из ISO образа
|
service |
string |
да/нет
|
box32_2gb_1core |
iso_url |
string |
да/нет
|
http://releases.ubuntu.com/16.04.3/ubuntu-16.04.3-server-amd64.iso
|
box_desc |
string |
нет
|
some description |
use_vlan |
boolean |
нет
|
true, false |
scheduled |
boolean |
нет
|
true, false |
Параметры ответа
Параметр |
Описание |
id |
Идентификатор асинхронного задания |
Запрос
$ curl --data "service=box32_2gb_1core&arch=x64&distributive=debian8" https://api.from.sh/sprintbox/box/add -H "AUTH-LOGIN: login" -H "AUTH-KEY: key"
Ответ
{
"data": {
"id": "a7890c4b-7a75-480f-b7fd-014272728ac0"
},
"error": null
}
box/modify
Модификация бокса
Параметры запроса
Параметр |
Тип данных |
Обязательный (?)
|
Пример |
box_name |
string |
да/нет
|
box-5856 |
service |
string |
да/нет
|
box32_2gb_2cores |
root_password |
boolean |
нет/да
|
true |
Параметры ответа
Параметр |
Описание |
id |
Идентификатор асинхронного задания |
Запрос
Запрос для изменения услуги бокса $ curl --data "box_name=box-5152&service=box32_2gb_2cores" https://api.from.sh/sprintbox/box/modify -H "AUTH-LOGIN: login" -H "AUTH-KEY: key"
Запрос
Запрос для сброса root-пароля $ curl --data "box_name=box-5152&root_password=true" https://api.from.sh/sprintbox/box/modify -H "AUTH-LOGIN: login" -H "AUTH-KEY: key"
Ответ
{
"data": {
"id": "a7890c4b-7a75-480f-b7fd-014272728ac0"
},
"error": null
}
box/delete
Удаление бокса
Параметры запроса
Параметр |
Тип данных |
Обязательный (?)
|
Пример |
box_name |
string |
да/нет
|
box-5856 |
Параметры ответа
Параметр |
Описание |
id |
Идентификатор асинхронного задания |
Запрос
$ curl --data "box_name=box-5152" https://api.from.sh/sprintbox/box/delete -H "AUTH-LOGIN: login" -H "AUTH-KEY: key"
Ответ
{
"data": {
"id": "a7890c4b-7a75-480f-b7fd-014272728ac0"
},
"error": null
}
box/reinstall
Переустановка бокса
Параметры запроса
Параметр |
Тип данных |
Обязательный (?)
|
Пример |
box_name |
string |
да/нет
|
box-5856 |
distributive |
string |
да/нет
|
ubuntu1604 |
arch |
string |
да/нет
|
x64 |
backup_name |
string |
нет/да
|
backup-1647 |
pubkey |
string |
нет
|
ssh-rsa
AAAAB3NzaC1yc2
EAAAADAQABAAABAQCnYDg37ePA1IGPfQCZjWww9LJMbmlca
7WAQIThZsHDfqyCGeuvYjy6Ms0hXln93l56Dpp6ATbaCUTBDaAA3nO3M8lwIkt2XTFptFNTMs/uyFUvHQml/OJeV3L5DS/wl383LmrkrGZh6oSq4pBdDK/QWYh02tqMrZqRBCY+WsRxr3UOZFjMpzduoDYeTyz4cr+F+Arwoj70npIqxynbrTAbRbGknXCVwVbc7RiCd5bUszNH/H+U3M0flW3ShY5s9kemC0C1GMfMhcvWRUWWzT0RKSF9SShlZFXgCZWK4tgiekKSfa7ivWmxKliMZfB4SK8eirL2ut4liHxfGLAxnIhl
|
Параметры ответа
Параметр |
Описание |
id |
Идентификатор асинхронного задания |
Запрос
Запрос на переустановку бокса из базового образа $ curl --data "box_name=box-5152&distributive=ubuntu1604&arch=x64" https://api.from.sh/sprintbox/box/reinstall -H "AUTH-LOGIN: login" -H "AUTH-KEY: key"
Запрос
Запрос на переустановку из бекапа $ curl --data "box_name=box-5152&backup_name=backup-1647" https://api.from.sh/sprintbox/box/reinstall -H "AUTH-LOGIN: login" -H "AUTH-KEY: key"
Ответ
{
"data": {
"id": "a7890c4b-7a75-480f-b7fd-014272728ac0"
},
"error": null
}
box/restore
Восстановление бокса из бекапа
Параметры запроса
Параметр |
Тип данных |
Обязательный (?)
|
Пример |
box_name |
string |
да/нет
|
box-5856 |
backup_name |
string |
да/нет
|
backup-1647 |
snapshot_name |
string |
нет/да
|
snap-5a69c2ef5f8d0 |
Параметры ответа
Параметр |
Описание |
id |
Идентификатор асинхронного задания |
Запрос
Запрос на восстановление бокса из бекапа $ curl --data "box_name=box-5152&backup_name=backup-5758" https://api.from.sh/sprintbox/box/restore -H "AUTH-LOGIN: login" -H "AUTH-KEY: key"
Запрос
Запрос на восстановление бокса из снапшота $ curl --data "box_name=box-5152&snapshot_name=snap-5a69c2ef5f8d0" https://api.from.sh/sprintbox/box/restore -H "AUTH-LOGIN: login" -H "AUTH-KEY: key"
Ответ
{
"data": {
"id": "a7890c4b-7a75-480f-b7fd-014272728ac0"
},
"error": null
}
box/restart
Перезапуск бокса
Параметры запроса
Параметр |
Тип данных |
Обязательный (?)
|
Пример |
box_name |
string |
да/нет
|
box-5856 |
Параметры ответа
Параметр |
Описание |
id |
Идентификатор асинхронного задания |
Запрос
$ curl --data "box_name=box-5856" https://api.from.sh/sprintbox/box/restart -H "AUTH-LOGIN: login" -H "AUTH-KEY: key"
Ответ
{
"data": {
"id": "a7890c4b-7a75-480f-b7fd-014272728ac0"
},
"error": null
}
box/start
Запуск бокса
Параметры запроса
Параметр |
Тип данных |
Обязательный (?)
|
Пример |
box_name |
string |
да/нет
|
box-5856 |
Параметры ответа
Параметр |
Описание |
id |
Идентификатор асинхронного задания |
Запрос
$ curl --data "box_name=box-5856" https://api.from.sh/sprintbox/box/start -H "AUTH-LOGIN: login" -H "AUTH-KEY: key"
Ответ
{
"data": {
"id": "a7890c4b-7a75-480f-b7fd-014272728ac0"
},
"error": null
}
box/stop
Остановка бокса
Параметры запроса
Параметр |
Тип данных |
Обязательный (?)
|
Пример |
box_name |
string |
да/нет
|
box-5856 |
Параметры ответа
Параметр |
Описание |
id |
Идентификатор асинхронного задания |
Запрос
$ curl --data "box_name=box-5856" https://api.from.sh/sprintbox/box/stop -H "AUTH-LOGIN: login" -H "AUTH-KEY: key"
Ответ
{
"data": {
"id": "a7890c4b-7a75-480f-b7fd-014272728ac0"
},
"error": null
}
box/local-add
Включение в локальную сеть
Параметры запроса
Параметр |
Тип данных |
Обязательный (?)
|
Пример |
box_name |
string |
да/нет
|
box-5856 |
Параметры ответа
Параметр |
Описание |
id |
Идентификатор асинхронного задания |
Запрос
$ curl --data "box_name=box-5856" https://api.from.sh/sprintbox/box/local-add -H "AUTH-LOGIN: login" -H "AUTH-KEY: key"
Ответ
{
"data": {
"id": "a7890c4b-7a75-480f-b7fd-014272728ac0"
},
"error": null
}
box/local-delete
Отключение от локальной сети
Параметры запроса
Параметр |
Тип данных |
Обязательный (?)
|
Пример |
box_name |
string |
да/нет
|
box-5856 |
Параметры ответа
Параметр |
Описание |
id |
Идентификатор асинхронного задания |
Запрос
$ curl --data "box_name=box-5856" https://api.from.sh/sprintbox/box/local-delete -H "AUTH-LOGIN: login" -H "AUTH-KEY: key"
Ответ
{
"data": {
"id": "a7890c4b-7a75-480f-b7fd-014272728ac0"
},
"error": null
}
backup/add
Создание бекапа
Параметры запроса
Параметр |
Тип данных |
Обязательный (?)
|
Пример |
box_name |
string |
да/нет
|
box-5856 |
backup_desc |
string |
да/нет
|
apache-php71-mysql-configured |
live |
boolean |
нет
|
true, false |
Параметры ответа
Параметр |
Описание |
id |
Идентификатор асинхронного задания |
Запрос
$ curl --data "box_name=box-5856&backup_desc=apache-php71-mysql-configured" https://api.from.sh/sprintbox/backup/add -H "AUTH-LOGIN: login" -H "AUTH-KEY: key"
Ответ
{
"data": {
"id": "a7890c4b-7a75-480f-b7fd-014272728ac0"
},
"error": null
}
backup/delete
Удаление бекапа
Параметры запроса
Параметр |
Тип данных |
Обязательный (?)
|
Пример |
backup_name |
string |
да/нет
|
backup-5758 |
Параметры ответа
Параметр |
Описание |
id |
Идентификатор асинхронного задания |
Запрос
$ curl --data "backup_name=backup-5758" https://api.from.sh/sprintbox/backup/delete -H "AUTH-LOGIN: login" -H "AUTH-KEY: key"
Ответ
{
"data": {
"id": "a7890c4b-7a75-480f-b7fd-014272728ac0"
},
"error": null
}
backup/scheduled-on
Включение автоматических бекапов по расписанию
Параметры запроса
Параметр |
Тип данных |
Обязательный (?)
|
Пример |
box_name |
string |
да
|
box-5856 |
time_of_day_start |
int |
нет
|
12 |
time_of_day_end |
int |
нет
|
14 |
time_of_day_start - Время начала создания автоматических
бекапов по расписанию. По умолчанию имеет значение 0 (полночь). Минимальное
значние 0, максимальное значение 23, строго меньше time_of_day_end
time_of_day_end - Время окончания создания автоматических
бекапов по расписанию. По умолчанию имеет значение 8. Минимальное значние 1,
максимальное значение 24 (полночь), строго больше time_of_day_start
Параметры ответа
Возвращает список автоматических бекапов
Параметры автоматических бекапов
Параметр |
Описание |
box |
Бокс, к которому подключены автоматические бекапы |
description |
Описание автоматического бекапа |
live |
Запуск в live режиме |
backup |
Создаваемый бекап |
time_of_day_start |
Время начала создания автоматических бекапов |
time_of_day_end |
Время окончания создания автоматических бекапов |
Запрос
$ curl --data "box_name=box-5856&time_of_day_start=12&time_of_day_end=14" https://api.from.sh/sprintbox/backup/scheduled-on -H "AUTH-LOGIN: login" -H "AUTH-KEY: key"
Ответ
{
"data": [ {
"box": "box-5856",
"description": "auto_day",
"live": true,
"backup": "backup-5856",
"time_of_day_start": 0,
"time_of_day_end": 8
} ],
"error": null
}
backup/scheduled-off
Выключение автоматических бекапов по расписанию
Параметры запроса
Параметр |
Тип данных |
Обязательный (?)
|
Пример |
box_name |
string |
да
|
box-5856 |
Параметры ответа
Возавращает true в случае успеха, false в
случае неудачи
Запрос
$ curl --data "box_name=box-5856" https://api.from.sh/sprintbox/backup/scheduled-off -H "AUTH-LOGIN: login" -H "AUTH-KEY: key"
Ответ
{
"data": true,
"error": null
}
backup/scheduled-modify
Изменение времени автоматических бекапов по расписанию
Параметры запроса
Параметр |
Тип данных |
Обязательный (?)
|
Пример |
box_name |
string |
да
|
box-5856 |
time_of_day_start |
int |
да/нет/да
|
12 |
time_of_day_end |
int |
нет/да/да
|
14 |
time_of_day_start - Время начала создания автоматических
бекапов по расписанию. По умолчанию имеет значение 0 (полночь). Минимальное
значние 0, максимальное значение 23, строго меньше time_of_day_end
time_of_day_end - Время окончания создания автоматических
бекапов по расписанию. По умолчанию имеет значение 8. Минимальное значние 1,
максимальное значение 24 (полночь), строго больше time_of_day_start
Параметры ответа
Возавращает true в случае успеха, false в
случае неудачи
Запрос
$ curl --data "box_name=box-5856&time_of_day_start=12&time_of_day_end=14" https://api.from.sh/sprintbox/backup/scheduled-modify -H "AUTH-LOGIN: login" -H "AUTH-KEY: key"
Ответ
{
"data": true,
"error": null
}
backup/scheduled-show
Получение списка автоматических бекапов по расписанию
Параметры запроса
Параметр |
Тип данных |
Обязательный (?)
|
Пример |
box_names |
array |
да
|
[box-5856, box-5857] |
Параметры ответа
Возвращает список автоматических бекапов
Параметры автоматических бекапов
Параметр |
Описание |
box |
Бокс, к которому подключены автоматические бекапы |
description |
Описание автоматического бекапа |
live |
Запуск в live режиме |
backup |
Создаваемый бекап |
time_of_day_start |
Время начала создания автоматических бекапов |
time_of_day_end |
Время окончания создания автоматических бекапов |
Запрос
$ curl --data "box_names[]=box-5856&box_names[]=box-5857" https://api.from.sh/sprintbox/backup/scheduled-show -H "AUTH-LOGIN: login" -H "AUTH-KEY: key"
Ответ
{
"data": [
{
"box": "box-5856",
"description": "auto_day",
"live": true,
"backup": "backup-5856",
"time_of_day_start": 0,
"time_of_day_end": 8
},
{
"box": "box-5857",
"description": "auto_day",
"live": true,
"backup": "backup-5857",
"time_of_day_start": 0,
"time_of_day_end": 8
},
],
"error": null
}
snapshot/add
Создание снапшота
Параметры запроса
Параметр |
Тип данных |
Обязательный (?)
|
Пример |
box_name |
string |
да/нет
|
box-5856 |
snapshot_desc |
string |
да/нет
|
apache-php71-mysql-configured |
Параметры ответа
Параметр |
Описание |
id |
Идентификатор асинхронного задания |
Запрос
$ curl --data "box_name=box-5856&snapshot_desc=apache-php71-mysql-configured" https://api.from.sh/sprintbox/snapshot/add -H "AUTH-LOGIN: login" -H "AUTH-KEY: key"
Ответ
{
"data": {
"id": "a7890c4b-7a75-480f-b7fd-014272728ac0"
},
"error": null
}
snapshot/delete
Удаление снапшота
Параметры запроса
Параметр |
Тип данных |
Обязательный (?)
|
Пример |
box_name |
string |
да/нет
|
box-5654 |
snapshot_name |
string |
да/нет
|
snap-5a69c2ef5f8d0 |
Параметры ответа
Параметр |
Описание |
id |
Идентификатор асинхронного задания |
Запрос
$ curl --data "box_name=box-5856&snapshot_name=snap-5a69c2ef5f8d0" https://api.from.sh/sprintbox/snapshot/delete -H "AUTH-LOGIN: login" -H "AUTH-KEY: key"
Ответ
{
"data": {
"id": "a7890c4b-7a75-480f-b7fd-014272728ac0"
},
"error": null
}
Примеры
Рассмотрим пример создания нового бокса из базового дистрибутива.
1. Получение списка доступных дистрибутивов
Запрос отправляется методом distributives/list без параметров
$ curl https://api.from.sh/sprintbox/distributives/list -H "AUTH-LOGIN: login" -H "AUTH-KEY: randomkey"
Результат выполнения запроса
{
"data": {
"debian7": {
"name": "debian7",
"description": "Debian 7.9 \"Wheezy\"",
"x64": true,
"x86": true
},
"debian8": {
"name": "debian8",
"description": "Debian 8.5 \"Jessie\"",
"x64": true,
"x86": true
},
"ubuntu1404": {
"name": "ubuntu1404",
"description": "Ubuntu 14.04.3 LTS \"Trusty Tahr\"",
"x64": true,
"x86": true
},
"ubuntu1604": {
"name": "ubuntu1604",
"description": "Ubuntu 16.04.1 LTS \"Xenial Xerus\"",
"x64": true,
"x86": true
}
},
"error": null
}
2. Получение списка доступных услуг для боксов
Запрос отправляется методом services/list без параметров
$ curl https://api.from.sh/sprintbox/services/list -H "AUTH-LOGIN: login" -H "AUTH-KEY: randomkey"
Результат выполнения запроса
{
"data": [
{
"name": "box32_2gb_1core",
"description": "Бокс 32 ГБ, ОЗУ 2 ГБ, 1 ядро",
"fee": 400
},
{
"name": "box32_2gb_2cores",
"description": "Бокс 32 ГБ, ОЗУ 2 ГБ, 2 ядра",
"fee": 599
},
{
"name": "box48_4gb_1core",
"description": "Бокс 48 ГБ, ОЗУ 4 ГБ, 1 ядро",
"fee": 999
},
{
"name": "box48_4gb_2cores",
"description": "Бокс 48 ГБ, ОЗУ 4 ГБ, 2 ядра",
"fee": 1199
}
],
"error": null
}
3. Создание нового бокса
Отправляется запрос box/add со следующими параметрами:
service - название сервиса;
distributive - название базового дистрибутива;
arch - архитектура.
$ curl --data "service=&arch=x64&distributive=debian8" https://api.from.sh/sprintbox/box/add -H "AUTH-LOGIN: login" -H "AUTH-KEY: randomkey"
Результат выполнения запроса
{
"data": {
"id": "a7890c4b-7a75-480f-b7fd-014272728ac0"
},
"error": null
}
data.id - идентификатор асинхронного задания по созданию бокса.
4. Проверка статуса выполнения асинхронного задания
Статус обычно проверяется в цикле, пока не будет получен один из
результирующий статусов: finished, error
$ curl --data "id=a7890c4b-7a75-480f-b7fd-014272728ac0" https://api.from.sh/sprintbox/status/show -H "AUTH-LOGIN: login" -H "AUTH-KEY: randomkey"
Результат успешно выполненного задания. Бокс создан успешно.
{
"data": {
"id": "a7890c4b-7a75-480f-b7fd-014272728ac0",
"status": "finished"
},
"error": null
}
Результат задания с ошибкой
{
"data": {
"id": "a7890c4b-7a75-480f-b7fd-014272728ac0",
"status": "error"
},
"error": {
"code": 35003,
"message": "Task 'a7890c4b-7a75-480f-b7fd-014272728a' does not exist"
}
}
Со списком ошибок можно ознакомиться на странице коды ошибок.
5. Получение списка боксов аккаунта
Запрос отправляется методом boxes/list без параметров
$ curl https://api.from.sh/sprintbox/boxes/list -H "AUTH-LOGIN: login" -H "AUTH-KEY: key"
Результат выполнения запроса
{
"data": {
"box-4869": {
"name": "box-4869",
"description": "debian8-32gb-2gb-1core",
"distributive": "debian8",
"arch": "x64",
"cpu_count": 1,
"memory": 2048,
"hdd_quota": 32768,
"hdd_used": 1517,
"state_id": 1,
"state_description": "running",
"ipv4": [
"185.185.68.117"
],
"ipv6": [
"2a0a:2b40::4:30"
],
"vnc_ip": "141.8.196.171",
"vnc_port": "5926",
"vnc_password": "wjcmfpff",
"use_vlan": true,
"services": [
{
"name": "box32_2gb_1core",
"count": 1
}
],
"backups": []
},
"box-5467": {
"name": "box-5467",
"description": "debian8-32768gb-2048gb-1core",
"distributive": "debian8",
"arch": "x64",
"cpu_count": 1,
"memory": 2048,
"hdd_quota": 32768,
"hdd_used": 1504,
"state_id": 1,
"state_description": "running",
"ipv4": [
"185.185.69.90"
],
"ipv6": [],
"vnc_ip": "141.8.196.171",
"vnc_port": "5919",
"vnc_password": "niveviye",
"use_vlan": false,
"services": [
{
"name": "box32_2gb_1core",
"count": 1
}
],
"backups": []
}
},
"error": null
}