simplecloud api позволяет манипулировать ресурсами с помощью общепринятых HTTP запросов. Взаимодействие с конечными точками api интуитивно понятное, что позволяет получать необходимые данные и выполнять действия. Весь функционал simplecloud.ru/cpanel может быть задействован при помощи API, что позволяет автоматизировать работу.
Документация каждого элемента API начинается с описания используемой технологии. Далее следует подробная справочная информация.
Каждая программа, способная выполнять HTTP-запросы, может взаимодействовать с API через корректно заданный URI. В целях безопасности запросы должны совершаться через шифруемый протокол HTTPS. Интерфейс посылает ответ на каждый успешный запрос.
Метод используется для получения информации об аккаунте или сервере. Запрошенная информация будет возвращена в виде json-объекта. Атрибут определяемые в json могут быть использованы для дополнительных запросов. Все запросы GET имеют read-only доступ и не изменяют указанные в запросе объекты.
Метод используется для остановки ресурсов и удаления ресурсов из аккаунта. В случае, если указанный в запросе объект не найден, будет отправлен соответствующий ответ. В данном методе соблюдается принцип идемпотентности, означающий, что не нужно проверять наличие ресурса до выполнения операции удаления. Конечное состояние объекта будет таким же, вне зависимости от его существования.
Используется для обновления данных о ресурсе в аккаунте. Идемпотентен, также как и метод DELETE. Изменяет заданный объект, используя переданные значения, независимо от текущих значений. Запросы метода PUT не проверяют текущие атрибуты объекта.
Используется для создания новых объектов. Должен включать в себя все необходимые атрибуты, описывающие создаваемый объект.
Данный метод используется при получении метаданных. Ответ метода - заголовок того, что будет возвращено при соответствующем GET-запросе. Заголовки содержат полезные данные о вашем api-доступе и результаты, доступные вам для запроса. Например, текущее значение лимита подключений и время до сброса данного лимита. Также в нем содержится показатель общего количества найденных объектов, информация о нумерации и длина содержимого.
Вместе с ответами на HTTP-методы, api будет также возвращать и стандартные HTTP-статусы, включая коды ошибок.
В случае возникновения проблем, статус будет содержать в себе код ошибки, а его тело ответа будет отдавать расширенную информация о проблеме.
Если статус вернул значение в диапазоне 200, это значит что запрос был выполнен успешно и ошибок не возникло.
Код возврата диапазона 400 сообщает о проблеме с запросом. Это может быть один из следующих вариантов:
Ответ, находящийся в диапазоне 500, обычно означает проблемы на уровне сервера. В таком случае, запрос не может быть обработан самим api.
При успешном запросе, тело ответа будет содержать в себе форму JSON-объекта. Исключением является метод DELETE, который отдает только статус 204 и пустое тело ответа.
Корнем объекта JSON, который был целью запроса, будет представлен в виде ключа. В единственной форме если это один объект, и коллекцией, если больше одного объекта.
Например, если послать мы отправим запрос GET на /v3/vps/$VPS_ID
, то в ответ получим объект с ключом "vps". Отправив запрос на коллекцию /v3/vps
, в ответе получим ключ "vps".
Значением этих ключей будет JSON-объект, полученный одним запросом. Он будет включать в себя массив объектов, попадающих под запрос.
{
"vps": [
{
"name": "example.com"
. . .
},
{
"name": "second.com"
. . .
}
]
}
В дополнению к корню основного ресурса, ответ может также содержать метаданные объекта. Этот объект включает в себя информацию об ответе.
Объект meta
содержит ключ total
, который отображает количество возвращаемых объектов.
meta
будет отображен только если принимает значение.
Объект ссылки (links
) возвращается как часть ответа, когда добавлена нумерация страниц. По-умолчанию, на одну страницу возвращается 25 объектов.
Можно выполнить запрос с различными настройками лимита по страницам, добавив в запрос GET-параметр per_page=Х
. Номер страницы указывается GET-парамером page=Х
Объект links
содержит в себе объект pages
. pages
содержат ключи, отображающие связь дополнительных страниц в виде номеров соответствующих страниц. Ключи могут быть следующими:
В данном руководстве указаны примеры запросов при помощи утилиты curl. Это позволит наглядно продемонстрировать некоторые особенности работы api в текстовом формате. Названия аккаунт-специфичного содержимого (ID vps) будуте представлены в виде переменных. Например $VPS_ID
.
Сперва стоит обозначить объявить переменные для авторизации. Об этом будет написано в следующей части, но установить эти переменные можно уже сейчас.
Используйте существующий токен, чтобы обозначить переменную токена и vps, как указано ниже:
export TOKEN=your_token
export VPS_ID=your_vps_id
Переменная VPS_ID
будет часто фигурировать в API-запросах.
Если необходимо получить заголовки вместе с ответом при использовании curl, нужно указать флаг -i
. Если нужен только заголовок, используйте -I
.
Для взаимодействия с simplecloud API требуется аутентификации. Она производится с помощью токена.
Токен можно получить в процессе авторизации (см.ниже). Время жизни токена - 20 минут.
Также токен можно сгенерировать в панели управления. Время его действия - не ограничено. Необходимо держать токен в безопасном месте. Токен отображается на экране только в процессе создания, в панели управления. Вам необходимо хранить его самостоятельно.
Есть несколько способов аутентификации.
Первый - отправлять заголовок с информацией для авторизации вместе с запросом (bearer authorization header). Это наиболее предпочитаемый метод, поскольку он завершает процесс авторизации еще в заголовке, в стороне от самого запроса. Пример указан ниже:
curl -X $HTTP_METHOD -H "Authorization: Bearer $TOKEN" "https://api.simplecloud.ru/v3/$OBJECT"
Второй - путем базовой авторизации. При помощи curl -u
, как указано ниже:
curl -X $HTTP_METHOD -u "$TOKEN:" "https://api.simplecloud.ru/v3/$OBJECT"
В теле запроса должен фигурировать только токен, без логина и пароля.
Есть два способа передавать параметры в запросах к API.
Предпочтительный способ - в теле JSON-объекта, содержащего в себе соответствующие имена атрибутов и значений в формате пар ключ-значение. Следует передавать JSON-объект в заголовке запроса. Для этого нужно в теле заголовка Content-Type
указать application/json. Это гарантия того, что запрос будет верно распознан.
Пример:
curl -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "example.com", "ip_address": "127.0.0.1"}' \
-X POST "https://api.simplecloud.ru/v3/domains"
Второй способ - передавать параметры через стандартные атрибуты в теле запроса. В данном случае нужно передавать атрибуты в самом URI-запроса. curl может принимать параметры и их значения для создания корректного URI. В curl это делается при помощи использования флага -F
и передавая ключи и их значения в виде аргумента. Аргумент должен принимать форму строки в кавычках.
Пример:
curl -H "Authorization: Bearer $TOKEN" \
-F "name=example.com" -F "ip_address=127.0.0.1" \
-X POST "https://api.simplecloud.ru/v3/domains"
Также можно использовать стандартную строку запроса, если это требует приложение. В таком случае, параметры передается в одну строку, и разделены знаком вопроса. Атрибуты разделяются знаком &
.
Пример:
curl -H "Authorization: Bearer $TOKEN" \
-X POST \
"https://api.simplecloud.ru/v3/domains?name=example.com&ip_address=127.0.0.1"
Для того, чтобы производить запросы к API с других доменов, в API внедрена поддержка CORS.
CORS используется для создания AJAX запросов, выходящих за пределы авторизованного домена. Данное решение полезно для случаев, когда требуется организовать работу удаленной панели управления. Данная технология взаимодействуя с браузером, направляет его на сторонний домен.
Процедура, инициируемая браузером для выполнения указанных действий (кроме запросов GET) начинается с отправки "preflight"-запроса. Он устанавливает заголовок Origin и использует метод OPTIONS. Ответ сервера будет состоять из списка разрешенных методов и ограничений. Затем клиент отправляет фактический запрос, если он входит в рамки допустимых ограничений.
Данный процесс совершается в режиме бэкграунда, браузером. Но при желании можно использовать curl для эмуляции всего процесса вручную. Заголовки, которые будут установлены чтобы отобразить ограничения:
Origin
.true
. Позволяет отправлять OAuth-токен для авторизаций.Пример "preflight"-запроса вручную:
curl -I -H "Origin: https://example.com" -X OPTIONS "https://api.simplecloud.ru/v3/vps"
Пример ответа на "preflight"-запрос:
. . .
Access-Control-Allow-Origin: https://example.com
Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS
Access-Control-Expose-Headers: RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset, Total, Link
Access-Control-Max-Age: 86400
Access-Control-Allow-Credentials: true
. . .
Как правило, об этом не приходится беспокоиться, поскольку браузер должен выполнять все необходимые действия автоматически.
Атрибут | Тип | Описание |
---|---|---|
uuid | число | Идентификатор пользователя |
login | строка | Логин |
строка | Емайл | |
email_verified | логическое | Флаг подтверждения емайла |
is_legal | логическое | Флаг юридического лица |
is_resident | логическое | Флаг резиденства в РФ |
balance | число | Текущий баланс |
mailing | логическое | Флаг согласия получения уведомлений и рассылок |
dfa | логическое | Флаг двухфакторной авторизации |
vps_limit | число | Общее количество серверов, которое у Вас может быть |
is_subaccount | логическое | Флаг того, что аккаунт является сабаккаунтом |
notifications | число | Количество новых уведомлений |
curl -X POST -H 'Content-Type: application/json' -d "тело запроса" "https://api.simplecloud.ru/v3/auth/login"
Заголовки запроса:
Content-Type: application/json
Тело запроса:
{
login: "логин пользователя",
password: "пароль пользователя"
}
Заголовки ответа:
Content-type: application/json; charset=utf-8
Status: 200 OK - в случае успеха и не неизменности флага dfa
Status: 4хх - в случае ошибки
Тело ответа:
{
account: {
аккаунт
},
session_key: "токен"
}
curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/account"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа:
{
"account":
{
"uuid":123123,
"login": "test@simplecloud.ru",
"email":"test@simplecloud.ru",
"email_verified":false,
"is_legal":false,
"is_resident":true,
"balance":102903.72,
"mailing":true,
"dfa":false,
"vps_limit":9999,
"is_subaccount":false,
"notifications":0
}
}
curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d "тело запроса" "https://api.simplecloud.ru/v3/account"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Тело запроса:
{
"is_resident": boolean,
"dfa": boolean,
"mailing": boolean,
"password": "текущий пароль клиента",
"code": "введенный клиентом код проверки, отправляется только при его наличии после ответа сервера с кодом 402"
}
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK - в случае успеха и не неизменности флага dfa
status: 402 - в случае отсутствия ошибки и изменении флага dfa
Тело ответа при изменении флага dfa:
{
"verifying_ok": boolean, статус проверки введенного кода,
"need_verifying": boolean, флаг необходимости проверки,
"need_resend": boolean, флаг необходимости переотправки письма,
"incorrect_verifying":boolean, флаг неверного кода в запросе,
"incorrect_value":boolean, флаг неверного проверяемого значения,
"limit_exceeded":boolean, флаг окончания попыток отправки кода клиенту,
"limit_next_try": date ISO8601, дата и время возможной следующей попытки отправки нового кода
"retry_left":number, количество оставшихся попыток ввода,
"error": boolean, флаг ошибки,
"error_details": text, сообщение об ошибке
}
После отправки данных, где необходимо подтверждение, код ответа сервера будет 402 и в теле ответа вышеприведенный json.
Сервер принимает 3 попытки для каждого из 3х возможных кодов. Таким образом, есть 9 попыток ввода кода с его сменой через каждые 3 попытки не более 3х раз.
Первый код отправляется автоматически при первом запросе на изменение данных.
Если попытки для отправленного клиенту кода исчерпаны и остается лимит кодов, сервер возвращает флаг "need_resend: true
". При этом нужно просто повторить первоначальный запрос на изменение данных, без указания поля "code
".
При несоответствии кода на сервере и кода в запросе, флаг "incorrect_verifying
" будет выставлен в true. При этом, поле "retry_left
" показывает количество оставшихся попыток для текущего кода на сервере.
Для некоторых полей (например, email), так же проверяется значение. В случае, если в запросе с кодом подтверждения это значение не будет соответствовать первоначальному запросу - флаг "incorrect_value
" будет выставлен в true, проверка не пройдет.
Если были исчерпаны все попытки отправки кода клиенту, будет выставлен флаг "limit_exceeded
". Так же, поле "limit_next_try
" будет содержать дату и время, когда может быть предпринята следующая попытка отправки кода.
Таким образом, в общем, алгоритм проверки выглядит как отправка двух запросов - первый на изменение данных, второй - аналогичен первому, но добавляется поле "code
".
Тело ответа если флаг dfa не менялся или он успешно подтвержден (аналогично запросу информации о пользователе):
{
"account":
{
"uuid":123123,
"login": "test@simplecloud.ru",
"email":"test@simplecloud.ru",
"email_verified":false,
"is_legal":false,
"is_resident":true,
"balance":102903.72,
"mailing":true,
"dfa":false,
"vps_limit":9999,
"is_subaccount":false,
"notifications":0
}
}
curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/account/details"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа:
{
"lastName":"фамилия",
"firstName":"имя",
"secondName":"отчество",
"passport":
{
"series": "серия паспорта",
"number": "номер",
"date": "дата выдачи 2003-05-01",
"organization": "кем выдан",
"address": "адрес регистрации",
"confirmed": boolean, флаг того, что паспорт подтвержден,
"files":
["путь к файлу скана паспорта, загруженного на сервер"]
},
"birthDate":"дата рождения 2010-01-01"
}
curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d "тело запроса" "https://api.simplecloud.ru/v3/account/details"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Тело запроса:
{
"lastName":"фамилия",
"firstName":"имя",
"secondName":"отчество",
"passport":
{
"series":"серия паспорта",
"number":"номер",
"date":"дата выдачи 2003-05-01",
"organization":"кем выдан",
"address":"адрес регистрации",
},
"birthDate":"дата рождения 2010-01-01",
"password":"текущий пароль пользователя"
}
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа - аналогично запросу на получение данных.
curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/account/contacts"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа:
{
"email":"test@simplecloud.ru",
"phone":"77771112233",
"tech_email":"адрес электронной почты для технических уведомлений",
"work_phone":"рабочий телефон",
"skype":"скайп",
"jabber":"джаббер",
"telegram":"телеграм"
}
curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d "тело запроса" "https://api.simplecloud.ru/v3/account/details"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Тело запроса при изменении телефона:
{
"phone":"новый телефон в формате +7CCCNNNNNNN",
password: "текущий пароль пользователя"
}
При изменении данного поля, его нужно подтвердить. Алгоритм работы аналогичен проверке account.bfa. Аналогично работает изменение основного адреса электронной почты, для этого поле phone нужно заменить на email.
Тело запроса при изменении остальных контактов:
{
"tech_email":"email",
"work_phone":"рабочий телефон",
"skype":"скайп",
"jabber":"джаббер",
"telegram":"телеграм",
"password": "текущий пароль пользователя"
}
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа - аналогично запросу на получение данных.
curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/account/authLog"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа:
{
"log":[
{
"ip":"IP-адрес",
"date":"дата и время авторизации",
"status":"статус"
}
...
],
"links":
{
"pages":
{
"first": номер первой страницы,
"prev": номер предыдущей страницы,
"next": номер следующей страницы,
"last": номер последней страницы
}
},
"meta":
{
"total": общее количество записей
}
}
curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/account/financeLog"
В запросе могут быть использованы GET-параметры:
По умолчанию выводится 25 последних операций.
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа:
{
"transactions":
[
{
"sum": "сумма операции",
"count": "объем услуги, используется для списаний",
"date": "дата операции в формате ISO8601",
"type": "тип операции, income или outcome",
"vps_id": "ID сервера, связанного с операцией, используется для списаний",
"vps_title": "название сервера",
"name": "название операции",
"status": "статус операции, используется только для поступлений",
"status_descr": "текстовое описание статуса"
}
],
"outcome": "общая сумма списаний за выбранный период",
"income": "общая сумма поступлений за выбранный период",
"links":{"pages":{"first":1,"prev":1,"next":2,"last":100}},"meta":{"total":123456}}
Статусы платежей:
curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/account/financeRecharge"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа:
{
"payment_methods":
[
{
"type": "идентификатор способа оплаты",
"title": "название"
}
]
}
curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{payment_system: "AC", rebillingOn: false, sum: 1500}' "https://api.simplecloud.ru/v3/account/financeRecharge"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Тело запроса:
{
payment_system: "идентификатор способа платежа",
rebillingOn: флаг согласия на подключение автоплатежа при оплате банковской картой,
sum: сумма
}
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа:
{
"redirect_link": "URL для перехода на платежную систему",
"payment_system": "выбранный способ оплаты",
}
Уведомления делятся на 2 группы:
curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/notifications"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа:
{
"notifications":
[
{
"id": "ID уведомления",
"type": "тип уведомления",
"created_at": "дата уведомеления",
"viewed": флаг просмотрено,
"text": "текст",
"url": "ссылка на объект уведомления в ПУ, при наличии",
"item": "ID объекта уведомаления, при наличии"
}
],"links":{"pages":{"first":1,"prev":1,"next":1,"last":1}},"meta":{"total":9}}
curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/subaccounts/enabled"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа:
{
enabled: boolean, флаг включенности сервиса сабаккаунтов
}
curl -X PUT -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d "тело запроса" "https://api.simplecloud.ru/v3/subaccounts/enabled"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Тело запроса:
{
enabled: boolean, включить или выключить
}
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа - аналогично запросу на получение данных.
curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/subaccounts/"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа:
{
"subaccounts":
[
{
"id":"ID сабаккаунта",
"client_id":"ID аккаунта клиента",
"owner_id":"ID мастер-аккаунта",
"status": "статус заявки*",
"month_limit":"месячный лимит денег для сабаккаунта",
"subaccount_title":"Название сабаккаунта"
}
],
"links":...,
"meta":....
}
* - статусы сабаккаунта (заявки):
curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/subaccounts/$ID"
Заголовки и ответы аналогичны предыдущему запросу, за исключением того, что в теле ответа информация об одном сабаккаунте - {"id": "...", ...}.
curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d "тело запроса" "https://api.simplecloud.ru/v3/subaccounts/"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Тело запроса:
{
"email": "email/логин нового аккаунта",
"is_contractor": boolean, true если регистрируется юридическое лицо,
поля для юр лица
"title": "название организации",
"type": "форма собственности",
"inn": "1234564789",
"kpp": "235222222",
"legal_address": "юридический адрес",
"actual_address": "фактический адрес"
}
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа:
{
"id":"ID сабаккаунта",
"client_id":"ID аккаунта клиента",
"owner_id":"ID мастер-аккаунта",
"status":" статус заявки",
"month_limit":"месячный лимит денег для сабаккаунта",
"subaccount_title":"Название сабаккаунта"
}
curl -X PUT -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d "тело запроса" "https://api.simplecloud.ru/v3/subaccounts/"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Тело запроса:
{
subaccount_title: "название для отображения",
month_limit: "ежемесячный лимит средств"
}
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа:
{
"id":"ID сабаккаунта",
"client_id":"ID аккаунта клиента",
"owner_id":"ID мастер-аккаунта",
"status":" статус заявки",
"month_limit":"месячный лимит денег для сабаккаунта",
"subaccount_title":"Название сабаккаунта"
}
curl -X DELETE -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/subaccounts/$ID"
Заголовки ответа:
status: 204 No Content
curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/subaccounts/sessionkey/$ID"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа:
{
"session_key":"токен"
}
curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/projects/"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа:
{
"projects":
[
{
"id": "ID проекта",
"name": "название",
"comment":"комментарий>",
"vps":
[
список объектов серверов (см. Виртуальные серверы)
],
"dns":[
список объектов зон (см. Домены)
]
},
],
"links":...,
"meta":....
}
curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/projects/$ID"
Заголовки и ответы аналогичны предыдущему запросу, за исключением того, что в теле ответа информация об одном сабаккаунте - {"project": {"id": "...", ...}}.
curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d "тело запроса" "https://api.simplecloud.ru/v3/projects/"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Тело запроса:
{
project:
{
name: "название",
comment: "комментарий",
vps: [список ID серверов],
dns: [список ID доменных зон]
}
}
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа - см. Информация об одном проекте
curl -X PUT -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d "тело запроса" "https://api.simplecloud.ru/v3/Projects/"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Тело запроса:
{
project:
{
name: "название",
comment: "комментарий",
vps: [список ID серверов],
dns: [список ID доменных зон]
}
}
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа - см. Информация об одном проекте
curl -X DELETE -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/Projects/$ID"
Заголовки ответа:
status: 204 No Content
Действия - это записи событий, которые производились с ресурсами аккаунта. Такие, как перезагрузка, переустановка сервера; действия с образами. Объект действия создается каждый раз, когда один из подобных запросов инициируется. Объект содержит в себе информацию о текущем статусе действия, временных штампов по началу и окончанию задания, ассоциированные типы ресурсов и ID.
Каждое действие, создающее объект доступно через эту конечную точку в обращении к api. Отработавшие действия не удаляются, и всегда доступны в списке по запросу.
Атрибут | Тип | Описание |
---|---|---|
id | number | Уникальное числовой ID, использующийся для идентификации и ссылки на объект действия |
status | string | Текущий статус действия. Например "в процессе", "завершено", "ошибка" |
type | string | Тип дейсвия, совершаемый объектом. Напрмер, "перемещение", чтобы обозначить статус перемещения образа |
started_at | string | Время, указанное по стандарту ISO8601, указывающее на начало действия |
completed_at | string | Время, указанное по стандарту ISO8601, указывающее на окончание действия |
resource_id | number | Уникальный идентификатор ресурса, с которым ассоциируется действие |
resource_type | string | Тип ресурса, с которым ассоциируется действие |
region | string | Аббревиатура, обозначающая регион в котором возникло действие |
Чтобы отобразить список действий, произведенных с данным аккаунтом, необходимо послать запрос GET
на /v3/actions
. Посколько будет отображен весь список, он будет большим. Как и с любой другой коллекцией, возвращаемой api, по-умолчанию будет отображено только 25 объектов. Результат вернется в JSON-объекте, с ключом actions
. Массив будет содержать в себе набор стандартных атрибутов:
Атрибут | Тип | Описание |
---|---|---|
id | number | Уникальное числовой ID, использующийся для идентификации и ссылки на объект действия |
status | string | Текущий статус действия. Например "в процессе", "завершено", "ошибка" |
type | string | Тип дейсвия, совершаемый объектом. Напрмер, "перемещение", чтобы обозначить статус перемещения образа |
started_at | string | Время, указанное по стандарту ISO8601, указывающее на начало действия |
completed_at | string | Время, указанное по стандарту ISO8601, указывающее на окончание действия |
resource_id | number | Уникальный идентификатор ресурса, с которым ассоциируется действие |
resource_type | string | Тип ресурса, с которым ассоциируется действие |
region | string | Аббревиатура, обозначающая регион в котором возникло действие |
Пример запроса списка действий на curl:
curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/actions?page=1&per_page=1"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа:
{
"actions": [
{
"id": 36804636,
"status": "completed",
"type": "create",
"started_at": "2014-11-14T16:29:21Z",
"completed_at": "2014-11-14T16:30:06Z",
"resource_id": 3164444,
"resource_type": "vps",
"region": "miran"
}
],
"links": {
"pages": {
"last": "https://api.simplecloud.ru/v3/actions?page=159&per_page=1",
"next": "https://api.simplecloud.ru/v3/actions?page=2&per_page=1"
}
},
"meta": {
"total": 159
}
}
Чтобы получить существующее действие, необходимо выполнить GET
запрос на /v3/actions/$ACTION_ID
. Результат - JSON-объект с ключом action
. Атрибуты перечислены далее:
Атрибут | Тип | Описание |
---|---|---|
id | number | Уникальное числовой ID, использующийся для идентификации и ссылки на объект действия |
status | string | Текущий статус действия. Например "в процессе", "завершено", "ошибка" |
type | string | Тип дейсвия, совершаемый объектом. Напрмер, "перемещение", чтобы обозначить статус перемещения образа |
started_at | string | Время, указанное по стандарту ISO8601, указывающее на начало действия |
completed_at | string | Время, указанное по стандарту ISO8601, указывающее на окончание действия |
resource_id | number | Уникальный идентификатор ресурса, с которым ассоциируется действие |
resource_type | string | Тип ресурса, с которым ассоциируется действие |
region | string | Аббревиатура, обозначающая регион в котором возникло действие |
Пример запроса списка действий на curl:
curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/actions/36804636"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа:
{
"action": {
"id": 36804636,
"status": "completed",
"type": "create",
"started_at": "2014-11-14T16:29:21Z",
"completed_at": "2014-11-14T16:30:06Z",
"resource_id": 3164444,
"resource_type": "vps",
"region": "miran"
}
}
Домены - ресурс, описывающий доменные имена которыми можно манипулировать в панели управления. Ресурс позволяет осуществлять высокоуровневый контроль над каждым доменом. Ниже представлен список атрибутов.
Получение списка доменов возможно путем отправки GET
-запроса на /v3/domains
. Ответ будет представлен JSON-объектом с ключем domains
. Ниже представлены атрибуты:
Атрибут | Тип | Описание |
---|---|---|
name | string | Название домена. Должно соответствовать стандарту названия доменов (Например domain.tld, domain.com или домен.рф). |
delete_date | string | Дата удаление домена, если он не дерегирован на simplecloud.ru. |
is_delegated | string | Флаг того, что домен дерегирован на simplecloud.ru. |
records | string | Количество записей. |
type | string | Тип записи (master или slave). |
ttl | number | Время жизни каждой записи, в секундах. Временное окно в течение которого данные буду храниться в кэше клиента. По окончанию кэш будет обновлен. |
zone_file | string | Атрибут содержит в себе весь контент файла зоны. Для каждого домена следует использовать отдельный ресурс для более детализированного контроля. Данный атрибут может также быть использован для работы с SOA-записями. |
Пример запроса списка доменов используя curl
:
curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/domains"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа:
{
"domains": [
{
"name": "simplecloudtestdomain.com",
"ttl": 1800,
"zone_file": "$ORIGIN simplecloudtestdomain.com.\n$TTL 1800\nsimplecloudtestdomain.com. IN SOA ns1.simplecloud.ru. hostmaster.simplecloudtestdomain.com. 1415982609 10800 3600 604800 1800\nsimplecloudtestdomain.com. 1800 IN NS ns1.simplecloud.ru.\nsimplecloudtestdomain.com. 1800 IN NS ns2.simplecloud.ru.\nsimplecloudtestdomain.com. 1800 IN NS ns3.simplecloud.ru.\nsimplecloudtestdomain.com. 1800 IN A 1.2.3.4\n",
"type": "MASTER",
"is_delegated":false,
"delete_date":"2018-03-23T17:02:17+0300",
"records":6
}
],
"links": {},
"meta": {
"total": 1
}
}
Для создания нового домена, необходимо отправить запрос POST
на /v3/domains
. Атрибут "name" должен принимать имя домена, который добавляется; "ip_address" - ip-адрес соответственно.
Атрибут | Тип | Описание | Требуется |
---|---|---|---|
name | string | Название домена. Должно соответствовать стандарту названия доменов (Например domain.tld, domain.com или домен.рф) | true |
ip_address | string | IP-адрес на который указывает домен | true |
В ответ вернется JSON-объект с ключом domain
. Значением будет объект, состоящий из стандартного набора атрибутов.
Необходимо учитывать тот факт, что после создания объекта, поле zone_file
будет иметь значение null
, до тех пор пока не будет сформирован файл описание зоны на стороне api.simplecloud.ru.
Пример добавления домена:
curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"name":"getsimplecloud.ru","ip_address":"1.2.3.4"}' "https://api.simplecloud.ru/v3/domains"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Тело запроса:
{
"name": "getsimplecloud.ru",
"ip_address": "1.2.3.4"
}
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 201 Created
Тело ответа:
{
"domain": {
"id": "123"
"name": "getsimplecloud.ru",
"ttl": 1800,
"zone_file": null,
"type": "MASTER",
"is_delegated":false,
"delete_date":"2018-03-23T17:02:17+0300",
"records":6
}
}
Для запроса информации о существующем домене, необходимо выполнить запрос GET
на /v3/domains/$DOMAIN_ID
. В ответ придет JSON-объект с ключом domain
. Значением будет объект со стандартным набором атрибутов.
Пример запроса домена:
curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/domains/$DOMAIN_ID"
Заголовок запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа:
{
"domain": {
"name": "getsimplecloud.ru",
"ttl": 1800,
"zone_file": "$ORIGIN getsimplecloud.ru.\n$TTL 1800\ngetsimplecloud.ru. IN SOA ns1.simplecloud.ru. hostmaster.getsimplecloud.ru. 1415982611 10800 3600 604800 1800\ngetsimplecloud.ru. 1800 IN NS ns1.simplecloud.ru.\ngetsimplecloud.ru. 1800 IN NS ns2.simplecloud.ru.\ngetsimplecloud.ru. 1800 IN NS ns3.simplecloud.ru.\ngetsimplecloud.ru. 1800 IN A 1.2.3.4\n"
}
}
Для удаления домена нужно отправить запрос DELETE на /v3/domains/$DOMAIN_ID
. Домен будет удален из аккаунта, и в ответ вернется код ответа 204, информирующий об успешном удалении объекта.
Пример удаления домена с импользованием curl:
curl -X DELETE -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/domains/$DOMAIN_ID"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
status: 204 No Content
Доменные записи - это ресурс, содержащий в себе информацию о DNS-записи в отдельности. Данный ресурс позволяет создавать и контролировать DNS-зоны при помощи добавления и удаления индивидуальных записей для доменов.
Данный инструментарий также представлен в панели управления. В отличии от него, в атрибутах появится дополнительное поле id
, которое присваивается автоматически. Если при создании домена какой-либо атрибут не был указан, ему будет присвоено значение null
.
Для вывода списка всех доменных записей необходимо отправить GET
запрос на /v3/domains/$DOMAIN_ID/records
. В ответ будет возвращен JSON-объект со стандартным списком атрибутов домена.
Атрибутам, которые не используются специфичными записями, будет присвоено значение null
. Например, всем атрибутам кроме SRV
в поле weight
и port
.
Атрибут | Тип | Описание |
---|---|---|
id | number | Уникальный идентификатор для каждой доменной записи |
type | string | Тип записи (A-запись, CNAME, TXT e.t.c.) |
name | string | Название домена |
data | string | Значение даты для DNS-записи |
priority | nullable number | Приоритет для SRV и MX записи |
port | nullable number | Порт для SRV-записи |
weight | nullable number | Вес для SRV-записи |
Пример запроса списка доменных записей:
curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/domains/$DOMAIN_ID/records"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа:
{
"domain_records": [
{
"id": 3352892,
"type": "NS",
"name": "@",
"data": "ns1.simplecloud.ru",
"priority": null,
"port": null,
"weight": null
},
{
"id": 3352893,
"type": "NS",
"name": "@",
"data": "ns2.simplecloud.ru",
"priority": null,
"port": null,
"weight": null
},
{
"id": 3352894,
"type": "NS",
"name": "@",
"data": "ns3.simplecloud.ru",
"priority": null,
"port": null,
"weight": null
},
{
"id": 3352895,
"type": "A",
"name": "@",
"data": "1.2.3.4",
"priority": null,
"port": null,
"weight": null
}
],
"meta":{"total":7},
"links":{"pages":{"first":1,"prev":1,"next":1,"last":1}
}
Для создания новой доменной записи необходимо отправить POST
запрос на /v3/domains/$DOMAIN_ID/records
. Запрос должен включать в себя все необходимые поля, соответствующие типу записи.
Название | Тип | Описание | Требуется |
---|---|---|---|
type | string | Тип записи (А, MX, CNAME etc) | Все записи |
name | string | Имя хоста, алиас, или описание сервиса | A, AAAA, CNAME, MX, TXT, SRV |
data | string | Дата, зависящая от типа записи. | A, AAAA, CNAME,MX, TXT, SRV, NS |
priority | nullable number | Приоритет хоста (для SRV и MX, для остальных null) | MX, SRV |
port | nullable number | Порт по которому доступен сервис | SRV |
weight | nullable number | Вес добавляемой записи | SRV |
Ответом на запрос будет тело JSON-объекта с ключом domain_record
. Значением будет объект, представляющий собой новую запись. Атрибуты, которые не применяются к объекту, будут принимать значение null
. Атрибут id
генерируется автоматически.
Атрибут | Тип | Описание |
---|---|---|
id | number | Уникальный идентификатор для каждой доменной записи |
type | string | Тип записи (A-запись, CNAME, TXT e.t.c.) |
name | string | Название домена |
data | string | Значение даты для DNS-записи |
priority | nullable number | Приоритет для SRV и MX записи |
port | nullable number | Порт для SRV-записи |
weight | nullable number | Вес для SRV-записи |
Пример создания доменной записи:
curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"type":"A","name":"customdomainrecord.com","data":"162.10.66.0","priority":null,"port":null,"weight":null}' "https://api.simplecloud.ru/v3/domains/$DOMAIN_ID/records"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Тело ответа:
{
"type": "A",
"name": "customdomainrecord.com",
"data": "162.10.66.0",
"priority": null,
"port": null,
"weight": null
}
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 201 Created
Тело ответа:
{
"domain_record": {
"id": 3352896,
"type": "A",
"name": "customdomainrecord.com",
"data": "162.10.66.0",
"priority": null,
"port": null,
"weight": null
}
}
Чтобы получить существующую доменную запись, необходимо отправить GET
-запрос на /v3/domains/$DOMAIN_ID/records/$RECORD_ID
. Ответом будет JSON-объект с ключом domain_record. Значением будет объект, содержащий в себе стандартные атрибуты доменной записи.
Атрибут | Тип | Описание |
---|---|---|
id | number | Уникальный идентификатор для каждой доменной записи |
type | string | Тип записи (A-запись, CNAME, TXT e.t.c.) |
name | string | Название домена |
data | string | Значение даты для DNS-записи |
priority | nullable number | Приоритет для SRV и MX записи |
port | nullable number | Порт для SRV-записи |
weight | nullable number | Вес для SRV-записи |
Пример запроса данных о существующей доменной записи:
curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/domains/$DOMAIN_ID/records/3352896"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа:
{
"domain_record": {
"id": 3352896,
"type": "A",
"name": "customdomainrecord.com",
"data": "162.10.66.0",
"priority": null,
"port": null,
"weight": null
}
}
Для обновления доменной записи, необходимо отправить PUT
-запрос на /v3/domains/$DOMAIN_ID/records/$RECORD_ID
. В атрибуте "name" указывается имя новой записи.
Атрибут | Тип | Описание |
---|---|---|
name | string | Название домена |
Ответом будет JSON-объект с ключом domain_record
. Значением будет объект доменной записи, содержащий стандартные атрибуты доменной записи.
Атрибут | Тип | Описание |
---|---|---|
id | number | Уникальный идентификатор для каждой доменной записи |
type | string | Тип записи (A-запись, CNAME, TXT e.t.c.) |
name | string | Название домена |
data | string | Значение даты для DNS-записи |
priority | nullable number | Приоритет для SRV и MX записи |
port | nullable number | Порт для SRV-записи |
weight | nullable number | Вес для SRV-записи |
Пример запроса на обновление доменной записи:
curl -X PUT -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"name":"updated-record-name.com"}' "https://api.simplecloud.ru/v3/domains/$DOMAIN_ID/records/3352896"
Загловки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Тело запроса:
{
"name": "updated-record-name.com"
}
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа:
{
"domain_record": {
"id": 3352896,
"type": "A",
"name": "updated-record-name.com",
"data": "162.10.66.0",
"priority": null,
"port": null,
"weight": null
}
}
Для удаления доменной записи необходимо отправить запрос DELETE
на /v3/domains/$DOMAIN_ID/records/$RECORD_ID
. Запись будет удалена, в ответ будет возвращен код 204.
Пример удаления:
curl -X DELETE -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/domains/$DOMAIN_ID/records/3352896"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
content-type: application/octet-stream
status: 204 No Content
Для получения списка обратных записей необходимо отправить запрос GET
на /v3/domains/reverse/
.
Пример:
curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/domains/reverse/"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
content-type: application/octet-stream
status: 200 OK
Тело ответа:
{
"records":
[
{
"id": "ID записи",
"ip": "IP адрес",
"value": "значение записи",
"domain": "имя домена",
"vps": "название сервера и IP",
"vps_id": "ID сервера",
"ipv6": "ID записи v6 при наличии"
}
]
}
Для получения конкретной записи необходимо отправить запрос GET
на /v3/domains/reverse/$RECORD_ID
.
Пример:
curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/domains/reverse/$RECORD_ID"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
content-type: application/octet-stream
status: 200 OK
Тело ответа:
{
"id": "ID записи",
"ip": "IP адрес",
"value": "значение записи",
"domain": "имя домена",
"vps": "название сервера и IP",
"vps_id": "ID сервера",
"ipv6": "ID записи v6 при наличии"
}
Для изменения обратных записей необходимо отправить запрос PUT
на /v3/domains/reverse/$RECORD_ID
.
Пример:
curl -X PUT -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"domain": "новое название домена."}' "https://api.simplecloud.ru/v3/domains/reverse/$RECORD_ID"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Тело запроса.
{
"domain": "новое название домена."
}
Заголовки ответа:
content-type: application/octet-stream
status: 200 OK
Тело ответа аналогично предыдущему запросу.
Для сброса зоны необходимо отправить запрос DELETE
на /v3/domains/reverse/$RECORD_ID
.
Пример:
curl -X DELETE -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/domains/reverse/$RECORD_ID"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
content-type: application/octet-stream
status: 200 Ok
Тело ответа:
{
"id": "ID записи",
"ip": "IP адрес",
"value": "значение записи",
"domain": "имя домена",
"vps": "название сервера и IP",
"vps_id": "ID сервера",
"ipv6": "ID записи v6 при наличии"
}
Для создания этой обратной зоны необходимо отправить запрос POST
на /v3/domains/reverse/
.
Пример:
curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"vps_id": "170609"}' "https://api.simplecloud.ru/v3/domains/reverse/$RECORD_ID"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Тело запроса.
{
"vps_id": "ID сервера, для которого создается обратная зона"
}
Заголовки ответа:
content-type: application/octet-stream
status: 200 OK
Тело ответа:
{
"id":"43404",
"name": "0.d.b.8.1.0.0.0.0.0.c.a.4.0.a.2.ip6.arpa",
"ttl": "60",
"zone_file": "$ORIGIN 0.d.b.8.1.0.0.0.0.0.c.a.4.0.a.2.ip6.arpa\n$TTL 60\n0.d.b.8.1.0.0.0.0.0.c.a.4.0.a.2.ip6.arpa 60 IN SOA ns1.simplecloud.ru. alex.simplecloud.ru. 1521787333 600 60 86400 60\n0.d.b.8.1.0.0.0.0.0.c.a.4.0.a.2.ip6.arpa 60 IN NS ns1.simplecloud.ru.\n0.d.b.8.1.0.0.0.0.0.c.a.4.0.a.2.ip6.arpa 60 IN NS ns2.simplecloud.ru.\n1.e.9.3.1.0.e.f.f.f.0.0.4.5.0.5.0.d.b.8.1.0.0.0.0.0.c.a.4.0.a.2.ip6.arpa IN PTR 170609.simplecloud.ru.",
"type":"MASTER",
"is_delegated":true,
"delete_date":"",
"records":3
}
Управление осуществляется как обычным доменом - см. разделы Домены и Доменные записи.
ID зоны можно получить из данных об обратной записи сервера, поле ipv6
.
Для удаления v6 обратной зоны необходимо отправить запрос DELETE
на /v3/domains/$RECORD_V6_ID
.
$RECORD_V6_ID
можно получить из данных об обратной записи сервера, поле ipv6
.
Пример:
curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/domains/reverse/$RECORD_V6_ID"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
content-type: application/octet-stream
status: 204 No Content
Следующие атрибуты необходимы для манипуляций с виртуальными серверами.
Атрибут | Тип | Описание |
---|---|---|
id | number | Уникальный числовой идентификатор сервера. Генерируется автоматически |
name | string | Название сервера |
memory | number | ОЗУ сервера в мегабайтах |
vcpus | number | Количество CPU |
disk | number | Размер HDD в гигабайтах |
locked | boolean | Булевая переменная, отражающая возможность внесения изменений пользователями |
created_at | string | Время в стандарте ISO8601. Комбинированная дата и время, отображающая момент создания сервера |
started_first_at | string | Время в стандарте ISO8601. Комбинированная дата и время, отображающая момент первого запуска сервера |
started_at | string | Время в стандарте ISO8601. Комбинированная дата и время, отображающая момент последнего запуска сервера |
status | string | Статус сервера. Список статусов. |
backups_ids | array | Массив ID бэкапов для сервера. Бэкапы будут добавлены в момент создания сервера. |
backup_price_hourly | float | Стоимость резервной копии в час. |
features | array | Массив возможностей, подключенных на сервере |
region | object | Регион, в котором запущен сервер |
image | object | Базовый образ сервера. |
size | object | Текущий тарифный план |
size_slug | string | Идентификатор тарифного плана |
networks | object | Описание сети для сервера. Объект должен содержать ключи для настройки IPv4 и IPv6. Значения каждого - массив, содержащий в себе объекты для описания IP адреса, маски сети, шлюза, в зависимости от особенностей сети. |
kernel | object | Ядро сервера, которое будет запущено при его создании |
password | string | Пароль root сервера |
is_install | boolean | Флаг процесса установки |
is_error | boolean | Флаг ошибки последнего задания для сервера |
mbit200 | boolean | Флаг подключенной услуги Опция «Скорость 200 мбит/сек» |
billing | object | Информация о биллинге сервера, содержит поля:
|
Сервер может иметь один из следующих статусов:
Для создания нового сервера, необходимо отправить запрос POST
на /v3/vps
. Для нового объекта указываются следующие атрибуты:
Пример создания сервера:
curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"payment_period":"1m","size":"1","image":221,"region":"ixcellerate","name":"","password":"","mbit200":true}' "https://api.simplecloud.ru/v3/vps"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Тело запроса:
{
"payment_period": период оплаты, может быть "1h" или "1m",
"size": ID тарифного плана, см. раздел Тарифы,
"image": ID образа, см. раздел Образы,
"region": slug региона, см. раздел Регионы,
"name": "необязательное название сервера",
"password": "необязательный пароль root",
"mbit200": флаг подключения услуги Опция «Скорость 200 мбит/сек»
}
Тело ответа - информация о сервере, см. раздел Отобразить все сервера.
Для отображения всех серверов необходимо выполнить запрос на GET
на /v3/vps
. Ответом будет JSON-объект с ключом vps
. Это будет массив, содержащий в себе объекты, представляющие каждый сервер.
Пример запроса на отображение списка:
curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/vps?page=1&per_page=10"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа:
{
"vps":
[
{
"id": ID сервера,
"name": "название сервера",
"memory": память в Гб,
"vcpus": кол-во CPU,
"disk": размер диска в ГБ,
"region":
{
"id": ID региона,
"slug": "текстовый идентификатор",
"name": "название региона",
"available": флаг доступности для создания
},
"image":
{
"id": ID ОС,
"name": "название ОС",
"info":
{
"base_id": "ID базовой вервии ОС",
"base_os": "название базовой версии",
"version": "версия",
"bits": "битность"
},
"distribution":"ubuntu",
"slug": "идентификатор образа",
"public": флаб публичности,
"regions":[список доступных регионов (slug, в настоящее время не используется)],
"created_at":"0000-00-00T00:00:00Z",
"min_disk_size": минимальный размер диска в Гб,
"os_type": "тип ОС - чистая (clean) или пресет (preset)",
"price_month": стоимость месячной лицензии, если есть,
"price": стоимость разовой лицензии, если есть
},
"size":
{
"id": "ID тарифного плана",
"slug": "идентификатор тарифного плана, используется ID",
"memory": "память в Гб",
"vcpus": "кол-во CPU",
"disk": "размер диска в Гб",
"transfer": "размер пакета трафига, 0 - без ограничений",
"price_monthly": "месячная стоимость тарифного плана",
"price_hourly": "почасовая стоимость тарифного плана",
"regions": [список доступных регионов, в настоящее время не используется]
},
"backup_price_hourly": стоимость резервной копии в час,
"size_slug": "текущий тарифный план сервера",
"locked": флаг того, что сервер заблокирован,
"status": "статус сервера",
"networks":
{
"v4":
[
{
"ip_address": "IP адрес сервера",
"netmask": "маска подсети",
"gateway": "шлюз",
"type": "public",
"primary":true
}
],
"v6":
[
{
"ip_address": "IP адрес сервера",
"netmask": "маска подсети",
"gateway": "шлюз",
"type": "public"
}
]
},
"kernel":
{
"id":1,
"name":"standart",
"version":"0.1"
},
"created_at": "дата добавления сервера",
"started_first_at": "дата первого запуска (создания)",
"started_at": "дата последнего запуска",
"features": "",
"backup_ids": [список ID резервных копий],
"is_install": флаг установки ОС,
"is_error": флаг ошибки последнего задания,
"password": "пароль root",
"mbit200": флаг подключенной опции Скорость 200 мбит/сек,
"billing":
{
"payment_date": "дата следующего списания за сервер",
"payment_amount": "сумма следующего списания, руб.",
"payment_period": "следующий период оплаты",
"price": "текущая стоимость сервера, руб.",
"payperiod": "текущий период оплаты",
"money_need": необходимая сумма для запуска, при задолженности
}
}
],
"links":{"pages":{"first":1,"prev":1,"next":1,"last":1}},
"meta":{"total":5}
}
Для отображения данных о сервере, необходимо выполнить GET
запрос на /v3/vps/$VPS_ID
. В ответ будет выдан JSON-объект с ключом vps
.
Пример запроса:
curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/vps/3164494"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заготовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа - json-объект. Cм. раздел Отобразить все сервера.
Данный метод позволяет изменить тарифный план, период оплаты, опцию «Скорость 200 мбит/сек». Для изменения данных о сервере, необходимо выполнить PUT
запрос на /v3/vps/$VPS_ID
. В ответ будет выдан JSON-объект с ключом vps
.
Пример запроса:
curl -X PUT -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/vps/3164494"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Тело запроса:
{
"size": "ID тарифного плана",
"payment_period":"период оплаты, может принимать значния 1h или 1m",
"mbit200": флаг подключения опции «Скорость 200 мбит/сек»
}
Заготовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа - json-объект со списком действий, если таковые были созданы (см. Действия с сервером). При нехвартке средств - недостаюая сумма указывается в поле money_need.
{
"actions":
[
{
"id": "2348701",
"status":"in-progress",
"type":"traff_limit_disable",
"started_at":"null
completed_at":"null",
"resource_id":"174085",
"resource_type":"vps",
"initiator":"user"
},
{
"id":"2348699",
"status":"in-progress",
"type":"change",
"started_at":"null",
"completed_at":"null",
"resource_id":"174085",
"resource_type":"vps",
"initiator":"user"
}
],
"money_need":0
}
Для получения списка резервных копий для сервера, необходимо отправить GET
запрос на /v3/vps/$VPS_ID/backups
. В ответ придет JSON-объект, содержащий в себе ключ backups
. В качестве значения будет представлен массив, содержащий в себе набор атрибутов:
Название | Тип | Описание |
---|---|---|
id | number | Уникальный номер для идентификации и поиска образа |
name | string | Название образа. Отображается в WEB-интерфейсе. |
distribution | string | Базовый дистрибутив |
slug | nullable string | Уникальный идентификатор, аббревиатура. Может указывать на публичный образ. |
public | boolean | не используется |
regions | array | регион резервной копии |
status | string | статус копии |
name | string | название резервной копии |
created_at | string | дата создания/обновления |
min_disk_size | number | размер, Гб |
comment | string | комментарий |
days | array | расписание обновления: дни |
time | string | расписание обновления: время |
price_hourly | number | стоимость, руб/час |
action | number | ID текущего действия |
Статусы резервных копий:
Пример запроса на список:
curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/vps/3067509/backups"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа:
{
"backups":
[
{
"id":"70329",
"status":"completed",
"name":"VPS 170609 111111",
"distribution":"ubuntu",
"slug":"",
"public":false,
"regions":["miran"],
"created_at":"2018-03-26T11:28:49+0300",
"min_disk_size":"20",
"comment":"",
"days":["tu","fr"],
"time":"00:00",
"price_hourly":"0.08",
"action":"0"
}
],
"links":{"pages":{"first":1,"prev":1,"next":1,"last":1}},
"meta":{"total":1}
}
Для получения списка доступных действий для сервера, необходимо отправить GET
запрос на /v3/vps/$VPS_ID/actions
. Результатом будет JSON-объект с ключом actions
. Значением будет массив, содержащий в себе следующие атрибуты:
Название | Тип | Описание |
---|---|---|
id | number | Уникальный номер, который используется для идентификации и поиска действия |
status | string | Текущий статус действия. Например "in progress", "completed", "error" |
type | string | Тип действия. Например, "transfer" для процесса перемещения образа. |
started_at | string | Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время начала действия. |
completed_at | string | Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время окончания действия. |
resource_id | number | Уникальный идентификатор ресурса, с которым ассоциируется действие |
resource_type | string | Тип ресурса, с которым ассоциируется действие |
region | string | Значение, отображающее регион в котором возникло действие |
Пример запроса списка совершенных действий:
curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/vps/3164494/actions?page=1&per_page=1"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа:
{
"actions": [
{
"id": 36805187,
"status": "completed",
"type": "snapshot",
"started_at": "2014-11-14T16:37:34Z",
"completed_at": "2014-11-14T16:39:32Z",
"resource_id": 3164494,
"resource_type": "vps",
"region": "miran"
}
],
"links":{"pages":{"first":1,"prev":1,"next":1,"last":1}},
"meta":{"total":2}
}
Для удаления сервера необходимо отправить запрос DELETE
на /v3/vps/$VPS_ID
. В качестве ответа будет получен код 204, информирующий об успешном удалении объекта.
Пример удаления объекта:
curl -X DELETE -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/vps/3164494"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
content-type: application/octet-stream
status: 204 No Content
Данный метод позволяет получить статстику по серверу за выбранный период. Для этого необходимо выполнить GET
запрос на /v3/vps/$VPS_ID/statistics
.
По умолчанию выдается статистика по CPU, памяти и диску (IOPS) за 1 час. При указании GET-параметра type
(CPU, RAM, disk или traffic) будет выдаваться статистика только этого вида.
GET-параметр period
позволяет задать временной период и может принимать значения: 1h, 6h, 12h, 1d, 7d и 1m.
Пример запроса:
curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/vps/3164494/statistics"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заготовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа
{
"measures":
[
{
"time": "дата и время",
"RAM": "загрузка памяти, Гб",
"CPU": "загрузка CPU в процентах",
"disk":
{
"write": "кол-во операций записи",
"read": "кол-во операций чтения"
},
"traffic":
{
"incoming": "входящий трафик, байт",
"outgoing": "исходящий трафик, байт"
}
},
{
"time":"28.03.2018 15:02:00",
"RAM":"76.77",
"CPU":"5.23",
"disk":
{
"write":"23",
"read":"0"
},
"traffic":
{
"incoming":"8737",
"outgoing":"11459"
}
}
]
}
Действия с сервером представляют собой конечную точку вида "действие" при запросе определенного сервера. Запрос инициируется методом POST
с указанием действия и передачей параметров.
Создается объект действия с сервером, в котором представлены следующие атрибуты:
Название | Тип | Описание |
---|---|---|
id | number | Уникальный идентификатор действия. Используется для ссылки и поиска. |
status | string | Текущий статус действия. Например "in progress", "error", "completed" |
type | string | Тип действия, которое будет произведено. Например "reboot", "power_off". |
started_at | string | Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время начала действия. |
completed_at | string | Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время окончания действия. |
resource_id | number | Уникальный идентификатор ресурса, на который ссылается действие |
resource_type | string | Тип ресурса, на который ссылается действие |
region | string | Регион, в котором производится действие |
Для перезагрузки сервера необходимо отправить запрос методом POST
на /v3/vps/$VPS_ID/actions
и присвоить атрибуту "type" значение reboot
. Ответом на запрос будет JSON-объект с ключом action
. Для перезагрузки в rescue-режиме, нужно добавить флаг "rescue" со значением true. Значением будет объект с действиями сервера:
Название | Тип | Описание |
---|---|---|
id | number | Уникальный идентификатор действия. Используется для ссылки и поиска. |
status | string | Текущий статус действия. Например "in progress", "error", "completed" |
type | string | Тип действия, которое будет произведено. Например "reboot", "power_off". |
started_at | string | Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время начала действия. |
completed_at | string | Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время окончания действия. |
resource_id | number | Уникальный идентификатор ресурса, на который ссылается действие |
resource_type | string | Тип ресурса, на который ссылается действие |
region | string | Регион, в котором производится действие |
Пример запроса на перезагрузку сервера:
curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"type":"reboot"}' "https://api.simplecloud.ru/v3/vps/3164450/actions"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Тело запроса:
{
"type": "reboot",
"rescue": false
}
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 201 Created
Тело ответа:
{
"action": {
"id": 36804748,
"status": "in-progress",
"type": "reboot",
"started_at": "2014-11-14T16:31:00Z",
"completed_at": null,
"resource_id": 3164450,
"resource_type": "vps",
"region": "miran"
}
}
Для того, чтобы произвести подобную перезагрузку, необходимо послать запрос методом POST
на /v3/vps/$VPS_ID/actions
и присвоить атрибуту type
значение power_cycle
.
Ответом будет JSON-объект с ключом action
. Значением будет объект с указанным действием.
Название | Тип | Описание |
---|---|---|
id | number | Уникальный идентификатор действия. Используется для ссылки и поиска. |
status | string | Текущий статус действия. Например "in progress", "error", "completed" |
type | string | Тип действия, которое будет произведено. Например "reboot", "power_off". |
started_at | string | Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время начала действия. |
completed_at | string | Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время окончания действия. |
resource_id | number | Уникальный идентификатор ресурса, на который ссылается действие |
resource_type | string | Тип ресурса, на который ссылается действие |
region | string | Регион, в котором производится действие |
Пример запроса на выполнение перезагрузки сервера методом power cycle:
curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"type":"power_cycle"}' "https://api.simplecloud.ru/v3/vps/3164450/actions"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Тело запроса:
{
"type": "power_cycle"
}
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 201 Created
Для выключения сервера через shutdown, необходимо отправить запрос методом POST
на /v3/vps/$VPS_ID/actions
и присвоить атрибуту type
значение shutdown
. Данный запрос выполняет попытку прекратить работу сервера командой shutdown. Ответом на запрос будет JSON-объект с ключом action
.
Название | Тип | Описание |
---|---|---|
id | number | Уникальный идентификатор действия. Используется для ссылки и поиска. |
status | string | Текущий статус действия. Например "in progress", "error", "completed" |
type | string | Тип действия, которое будет произведено. Например "reboot", "power_off". |
started_at | string | Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время начала действия. |
completed_at | string | Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время окончания действия. |
resource_id | number | Уникальный идентификатор ресурса, на который ссылается действие |
resource_type | string | Тип ресурса, на который ссылается действие |
region | string | Регион, в котором производится действие |
Пример запроса на graceful shutdown:
curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"type":"shutdown"}' "https://api.simplecloud.ru/v3/vps/3067649/actions"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Тело запроса:
{
"type": "shutdown"
}
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 201 Created
Тело ответа:
{
"action": {
"id": 36077293,
"status": "in-progress",
"type": "shutdown",
"started_at": "2014-11-04T17:08:03Z",
"completed_at": null,
"resource_id": 3067649,
"resource_type": "vps",
"region": "miran"
}
}
Для выключение сервера методом Power Off, необходимо отправить POST
-запрос на /v3/vps/$VPS_ID/actions
с присвоенным атрибуту type
значением power_off
. Это принудительный способ прекращения работы сервера, и использовать его стоит в том случае, если не сработал обычный shutdown. Ответом на запрос будет JSON-объект с ключом action
.
Название | Тип | Описание |
---|---|---|
id | number | Уникальный номер, который используется для идентификации и поиска действия |
status | string | Текущий статус действия. Например "in progress", "completed", "error" |
type | string | Тип действия. Например, "transfer" для процесса перемещения образа. |
started_at | string | Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время начала действия. |
completed_at | string | Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время окончания действия. |
resource_id | number | Уникальный идентификатор ресурса, с которым ассоциируется действие |
resource_type | string | Тип ресурса, с которым ассоциируется действие |
region | string | Значение, отображающее регион в котором возникло действие |
Пример запроса на отключение сервера методом Power Off:
curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"type":"power_off"}' "https://api.simplecloud.ru/v3/vps/3164450/actions"
Загловки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Тело запроса:
{
"type": "power_off"
}
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 201 Created
Тело ответа:
{
"action": {
"id": 36804751,
"status": "in-progress",
"type": "power_off",
"started_at": "2014-11-14T16:31:07Z",
"completed_at": null,
"resource_id": 3164450,
"resource_type": "vps",
"region": "miran"
}
}
Для включения сервера необходимо отправить запрос методом POST
на /v3/vps/$VPS_ID/actions
, присвоив атрибуту type
значение power_on
. В ответ будет отправлен JSON-объект с ключом action.
Название | Тип | Описание |
---|---|---|
id | number | Уникальный номер, который используется для идентификации и поиска действия |
status | string | Текущий статус действия. Например "in progress", "completed", "error" |
type | string | Тип действия. Например, "transfer" для процесса перемещения образа. |
started_at | string | Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время начала действия. |
completed_at | string | Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время окончания действия. |
resource_id | number | Уникальный идентификатор ресурса, с которым ассоциируется действие |
resource_type | string | Тип ресурса, с которым ассоциируется действие |
region | string | Значение, отображающее регион в котором возникло действие |
Пример запроса на включение сервера:
curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"type":"power_on"}' "https://api.simplecloud.ru/v3/vps/3164450/actions"
Заголовки запроса:
Content-Type: application/json Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Тело запроса:
{
"type": "power_on"
}
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 201 Created
Тело ответа:
{
"action": {
"id": 36804758,
"status": "in-progress",
"type": "power_on",
"started_at": "2014-11-14T16:31:19Z",
"completed_at": null,
"resource_id": 3164450,
"resource_type": "vps",
"region": "miran"
}
}
Для восстановления сервера из резервной копии, необходимо отправить запрос POST
на /v3/vps/$VPS_ID/actions
, присвоив атрибуту type
значение restore
и атрибуту image
соответствующую image_id
. В время восстановления сервера, образ его диска будет восстановлен из образа резервной копии. Атрибуту image
должен быть передан ID существующей резервной копии восстанавливаемого сервера. Данная операция не затронет прикрепленные ssh-ключи.
Ответом на запрос будет JSON-объект с ключом action
.
Название | Тип | Описание |
---|---|---|
id | number | Уникальный номер, который используется для идентификации и поиска действия |
status | string | Текущий статус действия. Например "in progress", "completed", "error" |
type | string | Тип действия. Например, "transfer" для процесса перемещения образа. |
started_at | string | Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время начала действия. |
completed_at | string | Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время окончания действия. |
resource_id | number | Уникальный идентификатор ресурса, с которым ассоциируется действие |
resource_type | string | Тип ресурса, с которым ассоциируется действие |
region | string | Значение, отображающее регион в котором возникло действие |
Пример запроса на восстановление сервера:
curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"type":"restore", "image": 12389723 }' "https://api.simplecloud.ru/v3/vps/3067649/actions"
Заголовки запроса:
Content-Type: application/json Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Тело запроса:
{ "type": "restore", "image": 12389723 }
Заголовки ответа:
content-type: application/json; charset=utf-8 status: 201 Created
Тело ответа:
{ "action": { "id": 36077293, "status": "in-progress", "type": "restore", "started_at": "2014-11-04T17:08:03Z", "completed_at": null, "resource_id": 3067649, "resource_type": "vps", "region": "miran" } }
Для сброса пароля на сервере необходимо отправить запрос POST
на /v3/vps/$VPS_ID/actions
, присвоим атрибуту type
значение password_reset. Ответом будет JSON-объект с ключом action.
Название | Тип | Описание |
---|---|---|
id | number | Уникальный номер, который используется для идентификации и поиска действия |
status | string | Текущий статус действия. Например "in progress", "completed", "error" |
type | string | Тип действия. Например, "transfer" для процесса перемещения образа. |
started_at | string | Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время начала действия. |
completed_at | string | Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время окончания действия. |
resource_id | number | Уникальный идентификатор ресурса, с которым ассоциируется действие |
resource_type | string | Тип ресурса, с которым ассоциируется действие |
region | string | Значение, отображающее регион в котором возникло действие |
Пример запроса на сброс пароля:
curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"type":"password_reset"}' "https://api.simplecloud.ru/v3/vps/3164450/actions"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Тело запроса:
{
"type": "password_reset"
}
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 201 Created
Тело ответа:
{
"action": {
"id": 36804760,
"status": "in-progress",
"type": "passwd",
"started_at": "2014-11-14T16:31:25Z",
"completed_at": null,
"resource_id": 3164450,
"resource_type": "vps",
"region": "miran",
"password":"newpasswd"
}
}
Для смены размера сервера, необходимо отправить запрос POST
на /v3/vps/$VPS_ID/actions
присвоив атрибуту type
значение resize
и атрибуту size
соответствующее значение (slug из запроса sizes). Ответом будет JSON-объект с ключом action
.
Название | Тип | Описание |
---|---|---|
id | number | Уникальный номер, который используется для идентификации и поиска действия |
status | string | Текущий статус действия. Например "in progress", "completed", "error" |
type | string | Тип действия. Например, "transfer" для процесса перемещения образа. |
started_at | string | Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время начала действия. |
completed_at | string | Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время окончания действия. |
resource_id | number | Уникальный идентификатор ресурса, с которым ассоциируется действие |
resource_type | string | Тип ресурса, с которым ассоциируется действие |
region | string | Значение, отображающее регион в котором возникло действие |
Пример запроса на изменение размера сервера:
curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"type":"resize","size":"1"}' "https://api.simplecloud.ru/v3/vps/3164450/actions"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Тело запроса:
{
"type": "resize",
"size": "1"
}
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 201 Created
Тело ответа:
{
"action": {
"id": 36804888,
"status": "in-progress",
"type": "resize",
"started_at": "2014-11-14T16:33:17Z",
"completed_at": null,
"resource_id": 3164450,
"resource_type": "vps",
"region": "miran"
}
}
Для переустановки сервера необходимо отправить запрос методом POST
на /v3/vps/$VPS_ID/actions
, присвоив атрибуту type
значение rebuild
и атрибуту image
ID образа. Ответом на запрос будет JSON-объект с ключом action
.
Название | Тип | Описание |
---|---|---|
id | number | Уникальный номер, который используется для идентификации и поиска действия |
status | string | Текущий статус действия. Например "in progress", "completed", "error" |
type | string | Тип действия. Например, "transfer" для процесса перемещения образа. |
started_at | string | Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время начала действия. |
completed_at | string | Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время окончания действия. |
resource_id | number | Уникальный идентификатор ресурса, с которым ассоциируется действие |
resource_type | string | Тип ресурса, с которым ассоциируется действие |
region | string | Значение, отображающее регион в котором возникло действие |
Пример запроса на переустановку сервера:
curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"type":"rebuild","image":"1"}' "https://api.simplecloud.ru/v3/vps/3164450/actions"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Тело запроса:
{
"type": "rebuild",
"image": "1"
}
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 201 Created
Тело ответа:
{
"action": {
"id": 36804899,
"status": "in-progress",
"type": "rebuild",
"started_at": "2014-11-14T16:33:23Z",
"completed_at": null,
"resource_id": 3164450,
"resource_type": "vps",
"region": "miran"
}
}
Для переименования сервера необходимо отправить запрос POST
на /v3/vps/$VPS_ID/actions
, присвоив атрибуту type
значение rename
и атрибуту name
название сервера. Ответом будет JSON-объект с ключом action.
Метод не создает задания реально, поэтому объект с данными будет пустой.
Название | Тип | Описание |
---|---|---|
id | number | Уникальный номер, который используется для идентификации и поиска действия |
status | string | Текущий статус действия. Например "in progress", "completed", "error" |
type | string | Тип действия. Например, "transfer" для процесса перемещения образа. |
started_at | string | Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время начала действия. |
completed_at | string | Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время окончания действия. |
resource_id | number | Уникальный идентификатор ресурса, с которым ассоциируется действие |
resource_type | string | Тип ресурса, с которым ассоциируется действие |
region | string | Значение, отображающее регион в котором возникло действие |
Пример запроса на смену названия сервера:
curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"type":"rename","name":"nifty-new-name"}' "https://api.simplecloud.ru/v3/vps/3164450/actions"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Тело запроса:
{
"type": "rename",
"name": "nifty-new-name"
}
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 201 Created
Тело ответа:
{
"action": null
}
Для того, чтобы сделать резервную копию, необходимо отправить запрос методом POST
на /v3/vps/$VPS_ID/actions
. Атрибуту type
нужно присвоить значение snapshot
, а атрибуту name
название для снапшота. Ответом будет JSON-объект с ключом action
.
Название | Тип | Описание |
---|---|---|
id | number | Уникальный номер, который используется для идентификации и поиска действия |
status | string | Текущий статус действия. Например "in progress", "completed", "error" |
type | string | Тип действия. Например, "transfer" для процесса перемещения образа. |
started_at | string | Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время начала действия. |
completed_at | string | Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время окончания действия. |
resource_id | number | Уникальный идентификатор ресурса, с которым ассоциируется действие |
resource_type | string | Тип ресурса, с которым ассоциируется действие |
region | string | Значение, отображающее регион в котором возникло действие |
Пример создания снапшота:
curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"type":"snapshot","name":"Nifty New Snapshot"}' "https://api.simplecloud.ru/v3/vps/3164450/actions"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Тело запроса:
{
"type": "snapshot",
"name": "Nifty New Snapshot"
}
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 201 Created
Тело ответа:
{
"action": {
"id": 36805022,
"status": "in-progress",
"type": "snapshot",
"started_at": "2014-11-14T16:34:39Z",
"completed_at": null,
"resource_id": 3164450,
"resource_type": "vps",
"region": "miran"
}
}
Для того чтобы получить данные о действии над сервером, нужно отправить запрос методом GET
на /v3/vps/$VPS_ID/actions/$ACTION_ID
. Ответом будет JSON-объект с ключом action
.
Название | Тип | Описание |
---|---|---|
id | number | Уникальный номер, который используется для идентификации и поиска действия |
status | string | Текущий статус действия. Например "in progress", "completed", "error" |
type | string | Тип действия. Например, "transfer" для процесса перемещения образа. |
started_at | string | Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время начала действия. |
completed_at | string | Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время окончания действия. |
resource_id | number | Уникальный идентификатор ресурса, с которым ассоциируется действие |
resource_type | string | Тип ресурса, с которым ассоциируется действие |
region | string | Значение, отображающее регион в котором возникло действие |
Пример запроса действия:
curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/vps/3164444/actions/36804807"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа:
{
"action": {
"id": 36804807,
"status": "completed",
"type": "backup",
"started_at": "2014-11-14T16:32:24Z",
"completed_at": "2014-11-14T16:34:15Z",
"resource_id": 3164444,
"resource_type": "vps",
"region": "miran"
}
}
Образы могут ссылаться на разные объекты: снапшоты, резервные копии, дистрибутивы Linux. Взаимодействие с образами осуществляется через обращение к /v3/images
.
Название | Тип | Описание |
---|---|---|
id | number | Уникальный номер для идентификации и поиска образа |
name | string | Название образа. Отображается в WEB-интерфейсе. |
distribution | string | Базовый дистрибутив |
slug | nullable string | Уникальный идентификатор, аббревиатура. Может указывать на публичный образ. |
public | boolean | Сделать публичным образ |
regions | array | Регион, в котором совершается данное действие |
min_disk_size | number | Минимальный размер диска для использования данного образа |
Для отображения всех образов нужно отправить запрос методом GET
на /v3/images
. Ответом будет JSON-объект с ключом images
. Будет представлен набор атрибутов.
Название | Тип | Описание |
---|---|---|
id | number | Уникальный номер для идентификации и поиска образа |
name | string | Название образа. Отображается в WEB-интерфейсе. |
distribution | string | Базовый дистрибутив |
slug | nullable string | Уникальный идентификатор, аббревиатура. Может указывать на публичный образ. |
public | boolean | Сделать публичным образ |
regions | array | Регион, в котором совершается данное действие |
min_disk_size | number | Минимальный размер диска для использования данного образа |
Пример запроса списка образов:
curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/images?page=1&per_page=1"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа:
{
"images": [
{
"id": 7555620,
"name": "Nifty New Snapshot",
"distribution": "Ubuntu",
"slug": null,
"public": false,
"regions": [
"miran"
],
"created_at": "2014-11-04T22:23:02Z",
"min_disk_size": 20
}
],
"links": {
"pages": {
"last": "https://api.simplecloud.ru/v3/images?page=56&per_page=1",
"next": "https://api.simplecloud.ru/v3/images?page=2&per_page=1"
}
},
"meta": {
"total": 56
}
}
Для того, чтобы вывести весь список доступных образов, нужно отправить GET
-запрос на /v3/images?type=distribution
. Атрибуту type
присваивается значение distribution
.
Название | Тип | Описание |
---|---|---|
id | number | Уникальный номер для идентификации и поиска образа |
name | string | Название образа. Отображается в WEB-интерфейсе. |
distribution | string | Базовый дистрибутив |
slug | nullable string | Уникальный идентификатор, аббревиатура. Может указывать на публичный образ. |
public | boolean | Сделать публичным образ |
regions | array | Регион, в котором совершается данное действие |
min_disk_size | number | Минимальный размер диска для использования данного образа |
Пример запроса списка образов:
curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/images?page=1&per_page=1&type=distribution"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа:
{
"images": [
{
"id": 6370882,
"name": "20 x64",
"distribution": "Fedora",
"slug": "fedora-20-x64",
"public": true,
"regions": [
"miran",
"fdc"
],
"created_at": "2014-09-26T15:29:01Z",
"min_disk_size": 20
}
],
"links": {
"pages": {
"last": "https://api.simplecloud.ru/v3/images?page=24&per_page=1&type=distribution",
"next": "https://api.simplecloud.ru/v3/images?page=2&per_page=1&type=distribution"
}
},
"meta": {
"total": 24
}
}
Для того, чтобы отобразить список приложений, необходимо отправить запрос GET
с атрибутом type
со значением application
на /v3/images?type=application
.
Название | Тип | Описание |
---|---|---|
id | number | Уникальный номер для идентификации и поиска образа |
name | string | Название образа. Отображается в WEB-интерфейсе. |
distribution | string | Базовый дистрибутив |
slug | nullable string | Уникальный идентификатор, аббревиатура. Может указывать на публичный образ. |
public | boolean | Сделать публичным образ |
regions | array | Регион, в котором совершается данное действие |
min_disk_size | number | Минимальный размер диска для использования данного образа |
Пример запроса списка доступных приложений:
curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/images?page=1&per_page=1&type=application"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа:
{
"images": [
{
"id": 6376601,
"name": "Ruby on Rails on 14.04 (Nginx + Unicorn)",
"distribution": "Ubuntu",
"slug": "ruby-on-rails",
"public": true,
"regions": [
"miran",
"fdc"
],
"created_at": "2014-09-26T20:20:24Z",
"min_disk_size": 20
}
],
"links": {
"pages": {
"last": "https://api.simplecloud.ru/v3/images?page=14&per_page=1&type=application",
"next": "https://api.simplecloud.ru/v3/images?page=2&per_page=1&type=application"
}
},
"meta": {
"total": 14
}
}
Для получения существующего образа по ID, нужно отправить GET
-запрос на /v3/images/$IMAGE_ID
. Ответом будет JSON-объект с ключом image
. Список атрибутов представлен ниже:
Название | Тип | Описание |
---|---|---|
id | number | Уникальный номер для идентификации и поиска образа |
name | string | Название образа. Отображается в WEB-интерфейсе. |
distribution | string | Базовый дистрибутив |
slug | nullable string | Уникальный идентификатор, аббревиатура. Может указывать на публичный образ. |
public | boolean | Сделать публичным образ |
regions | array | Регион, в котором совершается данное действие |
min_disk_size | number | Минимальный размер диска для использования данного образа |
Пример запроса на получение образа по ID:
curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/images/7555620"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа:
{
"image": {
"id": 7555620,
"name": "Nifty New Snapshot",
"distribution": "Ubuntu",
"slug": null,
"public": false,
"regions": [
"miran"
],
"created_at": "2014-11-04T22:23:02Z",
"min_disk_size": 20
}
}
Для получения существующего образа по метке (slug), необходимо отправить запрос GET
на /v3/images/$IMAGE_SLUG
. Ответом будет JSON-объект с ключом image
. Его значением будут следующие атрибуты:
Название | Тип | Описание |
---|---|---|
id | number | Уникальный номер для идентификации и поиска образа |
name | string | Название образа. Отображается в WEB-интерфейсе. |
distribution | string | Базовый дистрибутив |
slug | nullable string | Уникальный идентификатор, аббревиатура. Может указывать на публичный образ. |
public | boolean | Сделать публичным образ |
regions | array | Регион, в котором совершается данное действие |
min_disk_size | number | Минимальный размер диска для использования данного образа |
Пример запроса образа:
curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/images/ubuntu-14-04-x64"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа:
{
"image": {
"id": 6918990,
"name": "14.04 x64",
"distribution": "Ubuntu",
"slug": "ubuntu-14-04-x64",
"public": true,
"regions": [
"miran",
"fdc"
],
"created_at": "2014-10-17T20:24:33Z",
"min_disk_size": 20
}
}
simplecloud позволяет хранить публичную часть ключа в аккаунте, чтобы автоматически добавлять их на сервер.
ID | Тип | Описание |
---|---|---|
id | number | Уникальный идентификационный номер. Используется для поиска объекта. |
fingerprint | string | Отпечаток для ssh-ключа. |
public_key | string | Публичная часть ключа |
name | string | Название для ключа. |
Для отображения списка ssh-ключей, необходимо отправить GET
-запрос на /v3/account/keys
. В ответ возвращается JSON-объект с ключом ssh_keys
. Значением будет массив ключевых объектов, каждый из которых содержит следующие атрибуты:
ID | Тип | Описание |
---|---|---|
id | number | Уникальный идентификационный номер. Используется для поиска объекта. |
fingerprint | string | Отпечаток для ssh-ключа. |
public_key | string | Публичная часть ключа |
name | string | Название для ключа. |
Пример запроса на отображение списка ключей:
curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/account/keys"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа:
{
"ssh_keys": [
{
"id": 512189,
"fingerprint": "3b:16:bf:e4:8b:00:8b:b8:59:8c:a9:d3:f0:19:45:fa",
"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAQQDDHr/jh2Jy4yALcK4JyWbVkPRaWmhck3IgCoeOO3z1e2dBowLh64QAM+Qb72pxekALga2oi4GvT+TlWNhzPH4V example",
"name": "My SSH Public Key"
}
],
"links": {
},
"meta": {
"total": 1
}
}
Для создания нового ключа необходимо отправить POST
-запрос на /v3/account/keys
. Атрибуту name
присваивается название ключа, public_key
- публичная часть ключа, соответсвенно. В ответ будет возвращен JSON-объект с ключом ssh_key
. Список атрибутов представлен ниже.
ID | Тип | Описание |
---|---|---|
id | number | Уникальный идентификационный номер. Используется для поиска объекта. |
fingerprint | string | Отпечаток для ssh-ключа. |
public_key | string | Публичная часть ключа |
name | string | Название для ключа. |
Пример запроса на создание ключа:
curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"name":"My SSH Public Key","public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAQQDDHr/jh2Jy4yALcK4JyWbVkPRaWmhck3IgCoeOO3z1e2dBowLh64QAM+Qb72pxekALga2oi4GvT+TlWNhzPH4V example"}' "https://api.simplecloud.ru/v3/account/keys"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Тело запроса:
{
"name": "My SSH Public Key",
"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAQQDDHr/jh2Jy4yALcK4JyWbVkPRaWmhck3IgCoeOO3z1e2dBowLh64QAM+Qb72pxekALga2oi4GvT+TlWNhzPH4V example"
}
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 201 Created
Тело ответа:
{
"ssh_key": {
"id": 512190,
"fingerprint": "3b:16:bf:e4:8b:00:8b:b8:59:8c:a9:d3:f0:19:45:fa",
"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAQQDDHr/jh2Jy4yALcK4JyWbVkPRaWmhck3IgCoeOO3z1e2dBowLh64QAM+Qb72pxekALga2oi4GvT+TlWNhzPH4V example",
"name": "My SSH Public Key"
}
}
Для получения существующего ключа необходимо отправить GET
-запрос на /v3/account/keys/$KEY_ID
или на /v3/account/keys/$KEY_FINGERPRINT
. В ответ будет возвращен JSON-объект с ключом ssh_key
. Список атрибутов представлен ниже.
ID | Тип | Описание |
---|---|---|
id | number | Уникальный идентификационный номер. Используется для поиска объекта. |
fingerprint | string | Отпечаток для ssh-ключа. |
public_key | string | Публичная часть ключа |
name | string | Название для ключа. |
Пример запроса ключа:
curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/account/keys/512190"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа:
{
"ssh_key": {
"id": 512190,
"fingerprint": "3b:16:bf:e4:8b:00:8b:b8:59:8c:a9:d3:f0:19:45:fa",
"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAQQDDHr/jh2Jy4yALcK4JyWbVkPRaWmhck3IgCoeOO3z1e2dBowLh64QAM+Qb72pxekALga2oi4GvT+TlWNhzPH4V example",
"name": "My SSH Public Key"
}
}
Для обновления ключа, необходимо отправить PUT
-запрос на /v3/account/keys/$SSH_KEY_ID
или /v3/account/keys/$SSH_KEY_FINGERPRINT
. Атрибуту name
присваивается имя ключа.В ответ будет возвращен JSON-объект с ключом ssh_key
. Список атрибутов представлен ниже.
ID | Тип | Описание |
---|---|---|
id | number | Уникальный идентификационный номер. Используется для поиска объекта. |
fingerprint | string | Отпечаток для ssh-ключа. |
public_key | string | Публичная часть ключа |
name | string | Название для ключа. |
Пример запроса на обновление ключа:
curl -X PUT -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"name":"Renamed SSH Key"}' "https://api.simplecloud.ru/v3/account/keys/512190"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Тело запроса:
{
"name": "Renamed SSH Key"
}
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа:
{
"ssh_key": {
"id": 512190,
"fingerprint": "3b:16:bf:e4:8b:00:8b:b8:59:8c:a9:d3:f0:19:45:fa",
"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAQQDDHr/jh2Jy4yALcK4JyWbVkPRaWmhck3IgCoeOO3z1e2dBowLh64QAM+Qb72pxekALga2oi4GvT+TlWNhzPH4V example",
"name": "Renamed SSH Key"
}
}
Для удаления ключа достаточно отправить запрос DELETE
на /v3/account/keys/$KEY_ID
или на /v3/account/keys/$KEY_FINGERPRINT
. В ответ будет возвращен код ответа 204, информирующей об успешном удалении объекта.
Пример запроса на удаление ключа:
curl -X DELETE -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/account/keys/512190"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
content-type: application/octet-stream
status: 204 No Content
Тарифы представляют собой различные варианты конфигурации сервера. При создании сервера необходимо указывать данный параметр. Тариф включает в себя объем ОЗУ, размер HDD, количество процессорных ядер. Также, объект содержит в себе биллинговую информацию.
Атрибут | Тип | Описание |
---|---|---|
slug | string | Уникальный идентификатор тарифа |
transfer | number | Пропускная способность для сервера. Учитывается только внешний трафик в террабайтах |
price_monthly | number | Месячная стоимость сервера. Цена указана в рублях |
price_hourly | number | Почасовая стоимость сервера. Цена указана в рублях |
memory | number | Количество выделенной памяти для сервера на данном тарифе. Указано в мегабайтах |
vcpus | number | Количество выделенных виртуальных ядер для сервера на данном тарифе |
disk | number | Объем HDD для сервера на текущем тарифе. Указан в гигабайтах |
regions | array | Массив, включающий в себя метки региона, в котором предоставляется данный тариф |
Для отображения списка всех существующих тарифов необходимо отправить запрос GET
на /v3/sizes
. Ответом на запрос будет JSON-объект с ключом sizes
. Значением будет объект с набором атрибутов:
Атрибут | Тип | Описание |
---|---|---|
slug | string | Уникальный идентификатор тарифа |
transfer | number | Пропускная способность для сервера. Учитывается только внешний трафик в террабайтах |
price_monthly | number | Месячная стоимость сервера. Цена указана в рублях |
price_hourly | number | Почасовая стоимость сервера. Цена указана в рублях |
memory | number | Количество выделенной памяти для сервера на данном тарифе. Указано в мегабайтах |
vcpus | number | Количество выделенных виртуальных ядер для сервера на данном тарифе |
disk | number | Объем HDD для сервера на текущем тарифе. Указан в гигабайтах |
regions | array | Массив, включающий в себя метки региона, в котором предоставляется данный тариф |
Пример запроса на отображение списка тарифов:
curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/sizes"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа:
{
"sizes": [
{
"slug": 1,
"memory": 1024,
"vcpus": 1,
"disk": 20,
"transfer": 1,
"price_monthly": 250,
"price_hourly": 0.4,
"regions": ["base"]
}
],
"links": {
},
"meta": {
"total": 1
}
}
Регионы - это дата-центры, в которых возможно создание серверов.
curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/regions"
Заголовки запроса:
Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
Заголовки ответа:
content-type: application/json; charset=utf-8
status: 200 OK
Тело ответа:
{
"regions":
[
{
"id":"числовой ID",
"slug":"символьный ID",
"name":"название региона",
"available":"флаг доступности (int)"
}
],
"links": {
},
"meta": {
"total": 1
}
}