Документация API SimpleCloud.ru

Вступление

simplecloud api позволяет манипулировать ресурсами с помощью общепринятых HTTP запросов. Взаимодействие с конечными точками api интуитивно понятное, что позволяет получать необходимые данные и выполнять действия. Весь функционал panel.simplecloud.ru может быть задействован при помощи API, что позволяет автоматизировать работу.

Документация каждого элемента API начинается с описания используемой технологии. Далее следует подробная справочная информация.

Запросы

Каждая программа, способная выполнять HTTP-запросы, может взаимодействовать с API через корректно заданный URI. В целях безопасности запросы должны совершаться через шифруемый протокол HTTPS. Интерфейс посылает ответ на каждый успешный запрос.

GET

Метод используется для получения информации об аккаунте или сервере. Запрошенная информация будет возвращена в виде json-объекта. Атрибут определяемые в json могут быть использованы для дополнительных запросов. Все запросы GET имеют read-only доступ и не изменяют указанные в запросе объекты.

DELETE

Метод используется для остановки ресурсов и удаления ресурсов из аккаунта. В случае, если указанный в запросе объект не найден, будет отправлен соответствующий ответ. В данном методе соблюдается принцип идемпотентности, означающий, что не нужно проверять наличие ресурса до выполнения операции удаления. Конечное состояние объекта будет таким же, вне зависимости от его существования.

PUT

Используется для обновления данных о ресурсе в аккаунте. Идемпотентен, также как и метод DELETE. Изменяет заданный объект, используя переданные значения, независимо от текущих значений. Запросы метода PUT не проверяют текущие атрибуты объекта.

POST

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

HEAD

Данный метод используется при получении метаданных. Ответ метода - заголовок того, что будет возвращено при соответствующем GET-запросе. Заголовки содержат полезные данные о вашем api-доступе и результаты, доступные вам для запроса. Например, текущее значение лимита подключений и время до сброса данного лимита. Также в нем содержится показатель общего количества найденных объектов, информация о нумерации и длина содержимого.

HTTP Статусы

Вместе с ответами на HTTP-методы, api будет также возвращать и стандартные HTTP-статусы, включая коды ошибок.

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

Если статус вернул значение в диапазоне 200, это значит что запрос был выполнен успешно и ошибок не возникло.

Код возврата диапазона 400 сообщает о проблеме с запросом. Это может быть один из следующих вариантов:

  • некорректный запрос (формат запроса)
  • некорректная авторизация
  • запрос действия, на которого у вас нет прав
  • запрос действий по отношению к объекту, который не существует

Ответ, находящийся в диапазоне 500, обычно означает проблемы на уровне сервера. В таком случае, запрос не может быть обработан самим api.

Ответы

При успешном запросе, тело ответа будет содержать в себе форму JSON-объекта. Исключением является метод DELETE, который отдает только статус 204 и пустое тело ответа.

Корнем объекта JSON, который был целью запроса, будет представлен в виде ключа. В единственной форме если это один объект, и коллекцией, если больше одного объекта.

Например, если послать мы отправим запрос GET на /v2/vps/$VPS_ID, то в ответ получим объект с ключом "vps". Отправив запрос на коллекцию /v2/vps, в ответе получим ключ "vps".

Значением этих ключей будет JSON-объект, полученный одним запросом. Он будет включать в себя массив объектов, попадающих под запрос.


{
    "vps": [
        {
        "name": "example.com"
        . . .
        },
        {
        "name": "second.com"
        . . .
        }
    ]
}
				

Метаданные

В дополнению к корню основного ресурса, ответ может также содержать метаданные объекта. Этот объект включает в себя информацию об ответе.

Объект meta содержит ключ total, который отображает количество возвращаемых объектов.

meta будет отображен только если принимает значение.

Примеры curl-запросов

В данном руководстве указаны примеры запросов при помощи утилиты curl. Это позволит наглядно продемонстрировать некоторые особенности работы api в текстовом формате. Названия аккаунт-специфичного содержимого (ID vps) будуте представлены в виде переменных. Например $VPS_ID.

Сперва стоит обозначить объявить переменные для OAuth-авторизации. Об этом будет написано в следующей части, но установить эти переменные можно уже сейчас.

Используйте существующий токен, чтобы обозначить переменную токена и vps, как указано ниже:

export TOKEN=your_token
export VPS_ID=your_vps_id

Переменная VPS_ID будет часто фигурировать в API-запросах.

Если необходимо получить заголовки вместе с ответом при использовании curl, нужно указать флаг -i. Если нужен только заголовок, используйте -I.

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

Для взаимодействия с simplecloud API требуется аутентификации. Это производится через OAuth - стандартную форму авторизации. OAuth позволяет делегировать доступ к ресурсам аккаунта в полную силу либо в режиме чтения.

OAuth токен можно сгенерировать в панели управления. Функциональная роль токена - выполнения запроса на аутентификация в запросе. Он действует как замена для логина и пароля. Именно поэтому необходимо держать токен в безопасном месте. Токен отображается на экране только в процессе создания, в панели управления. Вам необходимо хранить его самостоятельно.

Как произвести аутентификацию через OAuth

Есть несколько способов аутентификации.

Первый - отправлять заголовок с информацией для авторизации вместе с запросом (bearer authorization header). Это наиболее предпочитаемый метод, поскольку он завершает процесс авторизации еще в заголовке, в стороне от самого запроса. Пример указан ниже:

curl -X $HTTP_METHOD -H "Authorization: Bearer $TOKEN" "https://api.simplecloud.ru/v2/$OBJECT"
				

Второй - путем базовой авторизации. При помощи curl -u, как указано ниже:

curl -X $HTTP_METHOD -u "$TOKEN:" "https://api.simplecloud.ru/v2/$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/v2/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/v2/domains"
				

Также можно использовать стандартную строку запроса, если это требует приложение. В таком случае, параметры передается в одну строку, и разделены знаком вопроса. Атрибуты разделяются знаком &.

Пример:

curl -H "Authorization: Bearer $TOKEN" \
				 -X POST \
				 "https://api.simplecloud.ru/v2/domains?name=example.com&ip_address=127.0.0.1"
				

Поддержка CORS (Cross Origin Resource Sharing)

Для того, чтобы производить запросы к API с других доменов, в API внедрена поддержка CORS.

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

Процедура, инициируемая браузером для выполнения указанных действий (кроме запросов GET) начинается с отправки "preflight"-запроса. Он устанавливает заголовок Origin и использует метод OPTIONS. Ответ сервера будет состоять из списка разрешенных методов и ограничений. Затем клиент отправляет фактический запрос, если он входит в рамки допустимых ограничений.

Данный процесс совершается в режиме бэкграунда, браузером. Но при желании можно использовать curl для эмуляции всего процесса вручную. Заголовки, которые будут установлены чтобы отобразить ограничения:

  • Access-Control-Allow-Origin - домен, отправляемый со стороны клиента или браузера, указанный как оригинальный. Устанавливается в заголовке Origin.
  • Access-Control-Allow-Methods - определяет разрешенные опции для запросов от домена. Список доступных методов.
  • Access-Control-Expose-Headers - содержит заголовки, которые будут доступны с оригинального домена.
  • Access-Control-Max-age - длительность времени, в течение которого сохраняется доступ. По истечении необходимо посылать "preflight"-запрос заново.
  • Access-Control-Allow-Credentials - установлен в состояние true. Позволяет отправлять OAuth-токен для авторизаций.

Пример "preflight"-запроса вручную:

curl -I -H "Origin: https://example.com" -X OPTIONS "https://api.simplecloud.ru/v2/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
				. . .
				

Как правило, об этом не приходится беспокоиться, поскольку браузер должен выполнять все необходимые действия автоматически.

Аккаунт

Атрибут Тип Описание
vps_limit число Общее количество серверов, которое у Вас может быть
email строка Email по которому зарегистрирован пользователь
uuid строка (буквенно-цифренная) Универсальный идентификатор для пользователя
email_verified Булева переменная true, если пользователя подтвердил свой аккаунт

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

curl -X GET -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v2/account"

Заголовки запроса:

Content-Type: application/json 
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
  "account": {
    "vps_limit": 25,
    "email": "test@simplecloud.ru",
    "uuid": "n49lwevdq7f0pdend6zpmf8qlw",
    "email_verified": true
    }
}

Действия

Действия - это записи событий, которые производились с ресурсами аккаунта. Такие, как перезагрузка, переустановка сервера; действия с образами. Объект действия создается каждый раз, когда один из подобных запросов инициируется. Объект содержит в себе информацию о текущем статусе действия, временных штампов по началу и окончанию задания, ассоциированные типы ресурсов и 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 на /v2/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 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v2/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/v2/actions?page=159&per_page=1",
      "next": "https://api.simplecloud.ru/v2/actions?page=2&per_page=1"
    }
  },
  "meta": {
    "total": 159
  }
}

Запрос существующего действия

Чтобы получить существующее действие, необходимо выполнить GET запрос на /v2/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 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v2/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"
  }
}

Домены

Домены - ресурс, описывающий доменные имена которыми можно манипулировать в панели управления. Ресурс позволяет осуществлять высокоуровневый контроль над каждым доменом. Ниже представлен список атрибутов.

Атрибут Тип Описание
name string Название домена. Должно соответствовать стандарту названия доменов (Например domain.tld, domain.com или домен.рф).
ttl number Время жизни каждой записи, в секундах. Временное окно в течение которого данные буду храниться в кэше клиента. По окончанию кэш будет обновлен.
zone_file string Атрибут содержит в себе весь контент файла зоны. Для каждого домена следует использовать отдельный ресурс для более детализированного контроля. Данный атрибут может также быть использован для работы с SOA-записями.

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

Получение списка доменов возможно путем отправки GET-запроса на /v2/domains. Ответ будет представлен JSON-объектом с ключем domains. Ниже представлены атрибуты:

Атрибут Тип Описание
name string Название домена. Должно соответствовать стандарту названия доменов (Например domain.tld, domain.com или домен.рф).
ttl number Время жизни каждой записи, в секундах. Временное окно в течение которого данные буду храниться в кэше клиента. По окончанию кэш будет обновлен.
zone_file string Атрибут содержит в себе весь контент файла зоны. Для каждого домена следует использовать отдельный ресурс для более детализированного контроля. Данный атрибут может также быть использован для работы с SOA-записями.

Пример запроса списка доменов используя curl:

curl -X GET -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v2/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"
    }
  ],
  "links": {},
  "meta": {
    "total": 1
  }
}

Создание нового домена

Для создания нового домена, необходимо отправить запрос POST на /v2/domains. Атрибут "name" должен принимать имя домена, который добавляется; "ip_address" - ip-адрес соответственно.

Атрибут Тип Описание Требуется
name string Название домена. Должно соответствовать стандарту названия доменов (Например domain.tld, domain.com или домен.рф) true
ip_address string IP-адрес на который указывает домен true

В ответ вернется JSON-объект с ключом domain. Значением будет объект, состоящий из нижеперечисленных атрибутов.

Атрибут Тип Описание
name string Название домена. Должно соответствовать стандарту названия доменов (Например domain.tld, domain.com или домен.рф).
ttl number Время жизни каждой записи, в секундах. Временное окно в течение которого данные буду храниться в кэше клиента. По окончанию кэш будет обновлен.
zone_file string Атрибут содержит в себе весь контент файла зоны. Для каждого домена следует использовать отдельный ресурс для более детализированного контроля. Данный атрибут может также быть использован для работы с SOA-записями.

Необходимо учитывать тот факт, что после создания объекта, поле 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/v2/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": {
    "name": "getsimplecloud.ru",
    "ttl": 1800,
    "zone_file": null
  }
}

Запрос существующего домена

Для запроса информации о существующем домене, необходимо выполнить запрос GET на /v2/domains/$DOMAIN_NAME. В ответ придет JSON-объект с ключом domain. Значением будет объект со стандартным набором атрибутов:

Атрибут Тип Описание
name string Название домена. Должно соответствовать стандарту названия доменов (Например domain.tld, domain.com или домен.рф).
ttl number Время жизни каждой записи, в секундах. Временное окно в течение которого данные буду храниться в кэше клиента. По окончанию кэш будет обновлен.
zone_file string Атрибут содержит в себе весь контент файла зоны. Для каждого домена следует использовать отдельный ресурс для более детализированного контроля. Данный атрибут может также быть использован для работы с SOA-записями.

Пример запроса домена:

curl -X GET -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v2/domains/getsimplecloud.ru"

Заголовок запроса:

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 на /v2/domains/$DOMAIN_NAME. Домен будет удален из аккаунта, и в ответ вернется код ответа 204, информирующий об успешном удалении объекта.

Пример удаления домена с импользованием curl:

curl -X DELETE -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v2/domains/getsimplecloud.ru"

Заголовки запроса:

Content-Type: application/json 
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

status: 204 No Content

Доменные записи

Доменные записи - это ресурс, содержащий в себе информацию о DNS-записи в отдельности. Данный ресурс позволяет создавать и контролировать DNS-зоны при помощи добавления и удаления индивидуальных записей для доменов.

Данный инструментарий также представлен в panel.simplecloud.ru. В отличии от него, в атрибутах появится дополнительное поле id, которое присваивается автоматически. Если при создании домена какой-либо атрибут не был указан, ему будет присвоено значение null.

Атрибут Тип Описание
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-записи

Список всех доменных записей

Для вывода списка всех доменных записей необходимо отправить GET запрос на /v2/domains/$DOMAIN_NAME/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 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v2/domains/getsimplecloud.ru/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
    }
  ],
  "links": {},
  "meta": {
    "total": 4
  }
}

Создание новой доменной записи

Для создания новой доменной записи необходимо отправить POST запрос на /v2/domains/$DOMAIN_NAME/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/v2/domains/getsimplecloud.ru/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-запрос на /v2/domains/$DOMAIN_NAME/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 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v2/domains/getsimplecloud.ru/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
  }
}

Обновление доменной записи

Для обновления доменной записи, необходимо отправить GET-запрос на /v2/domains/$DOMAIN_NAME/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/v2/domains/getsimplecloud.ru/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 на /v2/domains/$DOMAIN_NAME/records/$RECORD_ID. Запись будет удалено, в ответ будет возвращен код 204.

Пример удаления:

curl -X DELETE -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v2/domains/getsimplecloud.ru/records/3352896"

Заголовки запроса:

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. Комбинированная дата и время, отображающая момент создания сервера
status string Статус сервера. Например, "new", "active", "error".
backups_ids array Массив ID бэкапов для сервера. Бэкапы будут добавлены в момент создания сервера.
snapshots_ids array Массив ID снапшотов.
features array Массив возможностей, подключенных на сервере
region object Регион, в котором запущен сервер
image object Базовый образ сервера.
size object Текущий тарифный план
size_slug string Идентификатор тарифного плана
networks object Описание сети для сервера. Объект должен содержать ключи для настройки IPv4 и IPv6. Значения каждого - массив, содержащий в себе объекты для описания IP адреса, маски сети, шлюза, в зависимости от особенностей сети.
kernel object Ядро сервера, которое будет запущено при его создании

Создание нового сервера

Для создания нового сервера, необходимо отправить запрос POST на /v2/vps. Для нового объекта указываются следующие атрибуты:

Название Тип Описание Требуется
name string Название сервера. Если указать домен, то api автоматически создаст домен в DNS-записях. Также генерируется hostname. true
region string Уникальный идентификатор региона, в котором запущен сервер (base по-умолчанию) true
size string Уникальный идентификатор тарифа сервера true
image number (если image ID), string, если идентификатор (slug) ID образа диска, частного или общедоступного. Образ будет базовой системой Вашего сервера true

Ответ от api будет содержать в себе JSON-объект, с ключом vps. Значением будет объект со стандартным набором параметров:

Атрибут Тип Описание
id number Уникальный числовой идентификатор сервера. Генерируется автоматически
name string Название сервера
memory number ОЗУ сервера в мегабайтах
vcpus number Количество CPU
disk number Размер HDD в гигабайтах
locked boolean Булевая переменная, отражающая возможность внесения изменений пользователями
created_at string Время в стандарте ISO8601. Комбинированная дата и время, отображающая момент создания сервера
status string Статус сервера. Например, "new", "active", "error".
backups_ids array Массив ID бэкапов для сервера. Бэкапы будут добавлены в момент создания сервера.
snapshots_ids array Массив ID снапшотов.
features array Массив возможностей, подключенных на сервере
region object Регион, в котором запущен сервер
image object Базовый образ сервера.
size object Текущий тарифный план
size_slug string Идентификатор тарифного плана
networks object Описание сети для сервера. Объект должен содержать ключи для настройки IPv4 и IPv6. Значения каждого - массив, содержащий в себе объекты для описания IP адреса, маски сети, шлюза, в зависимости от особенностей сети.
kernel object Ядро сервера, которое будет запущено при его создании

Пример создания сервера:

curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"name":"example.com","region":"miran","size":"512mb","image":"ubuntu-14-04-x64"}' "https://api.simplecloud.ru/v2/vps"

Заголовки запроса:

Content-Type: application/json 
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Тело запроса:

{
  "name": "example.com",
  "region": "miran",
  "size": "512mb",
  "image": "ubuntu-14-04-x64",
}

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 202 Accepted

Тело ответа:

{
  "vps": {
    "id": 3164494,
    "name": "example.com",
    "memory": 512,
    "vcpus": 1,
    "disk": 20,
    "locked": true,
    "status": "new",
    "kernel": {
      "id": 2233,
      "name": "Ubuntu 14.04 x64 vmlinuz-3.13.0-37-generic",
      "version": "3.13.0-37-generic"
    },
    "created_at": "2014-11-14T16:36:31Z",
    "features": [
      "virtio"
    ],
    "backup_ids": [],
    "snapshot_ids": [],
    "image": {},
    "size": {},
    "size_slug": "512mb",
    "networks": {},
    "region": {}
  },
  "links": {
    "actions": [
      {
        "id": 36805096,
        "rel": "create",
        "href": "https://api.simplecloud.ru/v2/actions/36805096"
      }
    ]
  }
}

Получение сервера по ID

Для отображения данных о сервере, необходимо выполнить GET запрос на /v2/vps/$VPS_ID. В ответ будет выдан JSON-объект с ключом vps. Значением будет объект со следующими атрибутами:

Атрибут Тип Описание
id number Уникальный числовой идентификатор сервера. Генерируется автоматически
name string Название сервера
memory number ОЗУ сервера в мегабайтах
vcpus number Количество CPU
disk number Размер HDD в гигабайтах
locked boolean Булевая переменная, отражающая возможность внесения изменений пользователями
created_at string Время в стандарте ISO8601. Комбинированная дата и время, отображающая момент создания сервера
status string Статус сервера. Например, "new", "active", "error".
backups_ids array Массив ID бэкапов для сервера. Бэкапы будут добавлены в момент создания сервера.
snapshots_ids array Массив ID снапшотов.
features array Массив возможностей, подключенных на сервере
region object Регион, в котором запущен сервер
image object Базовый образ сервера.
size object Текущий тарифный план
size_slug string Идентификатор тарифного плана
networks object Описание сети для сервера. Объект должен содержать ключи для настройки IPv4 и IPv6. Значения каждого - массив, содержащий в себе объекты для описания IP адреса, маски сети, шлюза, в зависимости от особенностей сети.
kernel object Ядро сервера, которое будет запущено при его создании

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

curl -X GET -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v2/vps/3164494"

Заголовки запроса:

Content-Type: application/json 
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заготовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
  "vps": {
    "id": 3164494,
    "name": "example.com",
    "memory": 512,
    "vcpus": 1,
    "disk": 20,
    "locked": false,
    "status": "active",
    "kernel": {
      "id": 2233,
      "name": "Ubuntu 14.04 x64 vmlinuz-3.13.0-37-generic",
      "version": "3.13.0-37-generic"
    },
    "created_at": "2014-11-14T16:36:31Z",
    "features": [
      "ipv6",
      "virtio"
    ],
    "backup_ids": [],
    "snapshot_ids": [
      7938206
    ],
    "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
    },
    "size": {},
    "size_slug": "512mb",
    "networks": {
      "v4": [
        {
          "ip_address": "104.131.186.241",
          "netmask": "255.255.240.0",
          "gateway": "104.131.176.1",
          "type": "public"
        }
      ],
      "v6": [
        {
          "ip_address": "2604:A880:0800:0010:0000:0000:031D:2001",
          "netmask": 64,
          "gateway": "2604:A880:0800:0010:0000:0000:0000:0001",
          "type": "public"
        }
      ]
    },
    "region": {
      "name": "New York 3",
      "slug": "miran",
      "sizes": [
        "16gb",
        "2gb",
        "1gb",
        "4gb",
        "8gb"
      ],
      "features": [
        "virtio",
        "private_networking",
        "backups",
        "ipv6",
        "metadata"
      ],
      "available": true
    }
  }
}

Отобразить все сервера

Для отображения всех серверов необходимо выполнить запрос на GET на /v2/vps. Ответом будет JSON-объект с ключом vps. Это будет массив, содержащий в себе объекты, представляющие каждый сервер. Набор атрибутов будет стандартный для сервера:

Атрибут Тип Описание
id number Уникальный числовой идентификатор сервера. Генерируется автоматически
name string Название сервера
memory number ОЗУ сервера в мегабайтах
vcpus number Количество CPU
disk number Размер HDD в гигабайтах
locked boolean Булевая переменная, отражающая возможность внесения изменений пользователями
created_at string Время в стандарте ISO8601. Комбинированная дата и время, отображающая момент создания сервера
status string Статус сервера. Например, "new", "active", "error".
backups_ids array Массив ID бэкапов для сервера. Бэкапы будут добавлены в момент создания сервера.
snapshots_ids array Массив ID снапшотов.
features array Массив возможностей, подключенных на сервере
region object Регион, в котором запущен сервер
image object Базовый образ сервера.
size object Текущий тарифный план
size_slug string Идентификатор тарифного плана
networks object Описание сети для сервера. Объект должен содержать ключи для настройки IPv4 и IPv6. Значения каждого - массив, содержащий в себе объекты для описания IP адреса, маски сети, шлюза, в зависимости от особенностей сети.
kernel object Ядро сервера, которое будет запущено при его создании

Пример запроса на отображение списка:

curl -X GET -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v2/vps?page=1&per_page=1"

Заголовки запроса:

Content-Type: application/json 
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
  "vps": [
    {
      "id": 3164444,
      "name": "example.com",
      "memory": 512,
      "vcpus": 1,
      "disk": 20,
      "locked": false,
      "status": "active",
      "kernel": {
        "id": 2233,
        "name": "Ubuntu 14.04 x64 vmlinuz-3.13.0-37-generic",
        "version": "3.13.0-37-generic"
      },
      "created_at": "2014-11-14T16:29:21Z",
      "features": [
        "backups",
        "ipv6",
        "virtio"
      ],
      "backup_ids": [
        7938002
      ],
      "snapshot_ids": [],
      "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
      },
      "size": {},
      "size_slug": "512mb",
      "networks": {
        "v4": [
          {
            "ip_address": "104.236.32.182",
            "netmask": "255.255.192.0",
            "gateway": "104.236.0.1",
            "type": "public"
          }
        ],
        "v6": [
          {
            "ip_address": "2604:A880:0800:0010:0000:0000:02DD:4001",
            "netmask": 64,
            "gateway": "2604:A880:0800:0010:0000:0000:0000:0001",
            "type": "public"
          }
        ]
      },
      "region": {
        "name": "New York 3",
        "slug": "miran",
        "sizes": [],
        "features": [
          "virtio",
          "private_networking",
          "backups",
          "ipv6",
          "metadata"
        ],
        "available": null
      }
    }
  ],
  "links": {
    "pages": {
      "last": "https://api.simplecloud.ru/v2/vps?page=3&per_page=1",
      "next": "https://api.simplecloud.ru/v2/vps?page=2&per_page=1"
    }
  },
  "meta": {
    "total": 3
  }
}

Отобразить доступные ядра для сервера

Для отображения списка доступных ядер, необходимо послать запрос GET на /v2/vps/$VPS_ID/kernels. Ответом будет JSON-объект с ключом kernels. Значением будет объект со следующими атрибутами:

Название Тип Описание
id number Уникальный номер для идентификации и поиска ядра
name string Название ядра. Отображается в web-интерфейсе при выборе ядра
version string Стандартное описание ядра с описанием версии, патча и номер релиза

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

curl -X GET -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v2/vps/3164494/kernels?page=1&per_page=1"

Заголовки запроса:

Content-Type: application/json Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/json; charset=utf-8 status: 200 OK

Тело ответа:

{
  "kernels": [
    {
      "id": 231,
      "name": "DO-recovery-static-fsck",
      "version": "3.8.0-25-generic"
    }
  ],
  "links": {
    "pages": {
      "last": "https://api.simplecloud.ru/v2/vps/3164494/kernels?page=124&per_page=1",
      "next": "https://api.simplecloud.ru/v2/vps/3164494/kernels?page=2&per_page=1"
    }
  },
  "meta": {
    "total": 124
  }
}

Получение списка снапшотов для сервера

Для отображения сделанных снапшотов сервера, необходимо выполнить GET-запрос на /v2/vps/$VPS_ID/snapshots. В качестве ответа будет получен JSON-объект с ключом snapshots. Значением будет объект со стандартным набором атрибутов:

Название Тип Описание
id number Уникальный номер для идентификации и поиска образа
name string Название образа. Отображается в WEB-интерфейсе.
distribution string Базовый дистрибутив
slug nullable string Уникальный идентификатор, аббревиатура. Может указывать на публичный образ.
public boolean Сделать публичным образ
regions array Регион, в котором совершается данное действие

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

curl -X GET -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v2/vps/3164494/snapshots?page=1&per_page=1"

Заголовки запроса:

Content-Type: application/json 
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заготовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
  "snapshots": [
    {
      "id": 7938206,
      "name": "nginx-fresh",
      "distribution": "Ubuntu",
      "slug": null,
      "public": false,
      "regions": [
        "miran"
      ],
      "created_at": "2014-11-14T16:37:34Z",
      "min_disk_size": 20
    }
  ],
  "links": {},
  "meta": {
    "total": 1
  }
}

Получение списка резервных копий сервера

Для получения списка резервных копий для сервера, необходимо отправить GET запрос на /v2/vps/$VPS_ID/backups. В ответ придет JSON-объект, содержащий в себе ключ backups. В качестве значения будет представлен массив, содержащий в себе набор атрибутов:

Название Тип Описание
id number Уникальный номер для идентификации и поиска образа
name string Название образа. Отображается в WEB-интерфейсе.
distribution string Базовый дистрибутив
slug nullable string Уникальный идентификатор, аббревиатура. Может указывать на публичный образ.
public boolean Сделать публичным образ
regions array

Пример запроса на список:

curl -X GET -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v2/vps/3067509/backups"

Заголовки запроса:

Content-Type: application/json 
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
  "backups": [
    {
      "id": 7622989,
      "name": "example.com 2014-11-14",
      "distribution": "Ubuntu",
      "slug": null,
      "public": false,
      "regions": [
        "miran"
      ],
      "created_at": "2014-11-14T16:07:38Z",
      "min_disk_size": 20
    }
  ],
  "meta": {
    "total": 1
  }
}

Получение списка действий для сервера

Для получения списка доступных действий для сервера, необходимо отправить GET запрос на /v2/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 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v2/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": {
      "last": "https://api.simplecloud.ru/v2/vps/3164494/actions?page=3&per_page=1",
      "next": "https://api.simplecloud.ru/v2/vps/3164494/actions?page=2&per_page=1"
    }
  },
  "meta": {
    "total": 3
  }
}

Удаление сервера

Для удаления сервера необходимо отправить запрос DELETE на /v2/vps/$VPS_ID. В качестве ответа будет получен код 204, информирующий об успешном удалении объекта.

Пример удаления объекта:

curl -X DELETE -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v2/vps/3164494"

Заголовки запроса:

Content-Type: application/json 
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/octet-stream
status: 204 No Content

Действия с сервером

Действия с сервером представляют собой конечную точку вида "действие" при запросе определенного сервера. Запрос инициируется методом 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 Регион, в котором производится действие

Перезагрузка сервера (Reboot)

Для перезагрузки сервера необходимо отправить запрос методом POST на /v2/vps/$VPS_ID/actions и присвоить атрибуту "type" значение reboot. Ответом на запрос будет 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 Регион, в котором производится действие

Пример запроса на перезагрузку сервера:

curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"type":"reboot"}' "https://api.simplecloud.ru/v2/vps/3164450/actions"

Заголовки запроса:

Content-Type: application/json 
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Тело запроса:

{
  "type": "reboot"
}

Заголовки ответа:

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"
  }
}

Перезагрузка сервера (Power Cycle)

Для того, чтобы произвести подобную перезагрузку, необходимо послать запрос методом POST на /v2/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/v2/vps/3164450/actions"

Заголовки запроса:

Content-Type: application/json 
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Тело запроса:

{
  "type": "power_cycle"
}

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 201 Created

Выключение сервера (Shutdown)

Для выключения сервера через shutdown, необходимо отправить запрос методом POST на /v2/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/v2/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)

Для выключение сервера методом Power Off, необходимо отправить POST-запрос на /v2/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/v2/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"
  }
}

Включение сервера (Power On)

Для включения сервера необходимо отправить запрос методом POST на /v2/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/v2/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"
  }
}

Восстановление сервера из резервной копии (Restore)

Для восстановления сервера из резервной копии, необходимо отправить запрос POST на /v2/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/v2/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" } }

Сброс пароля на сервере (Password Reset)

Для сброса пароля на сервере необходимо отправить запрос POST на /v2/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/v2/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"
  }
}

Изменение размера сервера (Resize)

Для смены размера сервера, необходимо отправить запрос POST на /v2/vps/$VPS_ID/actions присвоив атрибуту type значение resize и атрибуту size соответствующее значение. Ответом будет 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":"1gb"}' "https://api.simplecloud.ru/v2/vps/3164450/actions"

Заголовки запроса:

Content-Type: application/json 
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Тело запроса:

{
  "type": "resize",
  "size": "1gb"
}

Заголовки ответа:

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"
  }
}

Переустановка сервера (Rebuild)

Для переустановки сервера необходимо отправить запрос методом POST на /v2/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":"ubuntu-14-04-x64"}' "https://api.simplecloud.ru/v2/vps/3164450/actions"

Заголовки запроса:

Content-Type: application/json 
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Тело запроса:

{
  "type": "rebuild",
  "image": "ubuntu-14-04-x64"
}

Заголовки ответа:

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 на /v2/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/v2/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": {
    "id": 36804946,
    "status": "in-progress",
    "type": "rename",
    "started_at": "2014-11-14T16:34:16Z",
    "completed_at": null,
    "resource_id": 3164450,
    "resource_type": "vps",
    "region": "miran"
  }
}

Снапшот

Для того, чтобы сделать снапшот сервера, необходимо отправить запрос методом POST на /v2/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/v2/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 на /v2/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 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v2/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. Взаимодействие с образами осуществляется через обращение к /v2/images.

Название Тип Описание
id number Уникальный номер для идентификации и поиска образа
name string Название образа. Отображается в WEB-интерфейсе.
distribution string Базовый дистрибутив
slug nullable string Уникальный идентификатор, аббревиатура. Может указывать на публичный образ.
public boolean Сделать публичным образ
regions array Регион, в котором совершается данное действие
min_disk_size number Минимальный размер диска для использования данного образа

Список образов

Для отображения всех образов нужно отправить запрос методом GET на /v2/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 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v2/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/v2/images?page=56&per_page=1",
      "next": "https://api.simplecloud.ru/v2/images?page=2&per_page=1"
    }
  },
  "meta": {
    "total": 56
  }
}

Список дистрибутивов

Для того, чтобы вывести весь список доступных образов, нужно отправить GET-запрос на /v2/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 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v2/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/v2/images?page=24&per_page=1&type=distribution",
      "next": "https://api.simplecloud.ru/v2/images?page=2&per_page=1&type=distribution"
    }
  },
  "meta": {
    "total": 24
  }
}

Список доступных образов приложений

Для того, чтобы отобразить список приложений, необходимо отправить запрос GET с атрибутом type со значением application на /v2/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 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v2/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/v2/images?page=14&per_page=1&type=application",
      "next": "https://api.simplecloud.ru/v2/images?page=2&per_page=1&type=application"
    }
  },
  "meta": {
    "total": 14
  }
}

Запрос существующего образа по ID

Для получения существующего образа по ID, нужно отправить GET-запрос на /v2/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 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v2/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 на /v2/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 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v2/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
  }
}

SSH-ключи

simplecloud позволяет хранить публичную часть ключа в аккаунте, чтобы автоматически добавлять их на сервер.

ID Тип Описание
id number Уникальный идентификационный номер. Используется для поиска объекта.
fingerprint string Отпечаток для ssh-ключа.
public_key string Публичная часть ключа
name string Название для ключа.

Вывод списка ключей

Для отображения списка ssh-ключей, необходимо отправить GET-запрос на /v2/account/keys. В ответ возвращается JSON-объект с ключом ssh_keys. Значением будет массив ключевых объектов, каждый из которых содержит следующие атрибуты:

ID Тип Описание
id number Уникальный идентификационный номер. Используется для поиска объекта.
fingerprint string Отпечаток для ssh-ключа.
public_key string Публичная часть ключа
name string Название для ключа.

Пример запроса на отображение списка ключей:

curl -X GET -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v2/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-запрос на /v2/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/v2/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-запрос на /v2/account/keys/$KEY_ID или на /v2/account/keys/$KEY_FINGERPRINT. В ответ будет возвращен JSON-объект с ключом ssh_key. Список атрибутов представлен ниже.

ID Тип Описание
id number Уникальный идентификационный номер. Используется для поиска объекта.
fingerprint string Отпечаток для ssh-ключа.
public_key string Публичная часть ключа
name string Название для ключа.

Пример запроса ключа:

curl -X GET -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v2/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-запрос на /v2/account/keys/$SSH_KEY_ID или /v2/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/v2/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 на /v2/account/keys/$KEY_ID или на /v2/account/keys/$KEY_FINGERPRINT. В ответ будет возвращен код ответа 204, информирующей об успешном удалении объекта.

Пример запроса на удаление ключа:

curl -X DELETE -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v2/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 на /v2/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 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v2/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
  }
}
Simple Cloud
На связи
  • Отзывы о хостинге simplecloud.ru
Оплата и безопасность

Оплата производится в российских рублях
Поддержка Яндекс.Деньги: 8 (800) 555-80-99

Сделано в России © 2014—2017