Панель управления | Регистрация

API

API предназначен для управления виртуальной инфраструктурой посредством удаленных вызовов, минуя интерфейс панели управления. Основное назначение это автоматизация процессов разворачивания больших систем и управление ими. Так же API используется pеселлерами, работающими по схеме White Label для управления виртуальными машинами своих клиентов. API Дублирует абсолютно все функции, представленные в панели управления IMserver. Иначе говоря, с помощью API можно выполнить любую функцию предусмотренную системой, без каких-либо ограничений, однако в случае возникновения большого количества бессмысленных запросов доступ к API может быть ограничен.

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

Использовать API может любой абонент зарегистрированный в системе. Никаких дополнительных действий для этого не требуется. Ограничений по вызовам API для абонентов в настоящий момент не предусмотрено.

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

SDK, библиотеки и интерфейсные модули

Perl:
Imserver.pm - Perl библиотека
Примеры использования.

PHP:
Imserver.php - PHP библиотека
Примеры использования.

Основное

URL API шлюза:

Разрешенные методы запросов "GET", "POST". Ответ от системы возвращается в формате JSON. Допускается использование JSON для передачи параметров вместо CGI. В этом случае JSON должен передаваться в CGI параметре json методом POST либо передаваться в request_body. Вызовы принимаются только с использованием https. Все передаваемые параметры являются чувствительными к регистру.

Обязательные поля:

cmd (string) команда. Полный список команд и их описание приведен ниже.
sess (string) сессия. Авторизационная сессия. (См. раздел Авторизация).

При выполнении команд последовательно над одним и тем же сервером, рекомендуем Вам, проверять статус сервера (функция get_servers_status) непосредственно перед выполнением команды, так как на выполнение некоторых процедур требуется длительное время. К примеру на клонирование сервера с большим объемом диска, может понадобится продолжительное время.

Пример запроса (включение сервера №333):

https://my.imserver.ru/api?cmd=run_server&sess=1d69a2ca5bbb423245438aabb0723f1f&id=333

или

https://my.imserver.ru/api?cmd=run_server&sess=1d69a2ca5bbb423245438aabb0723f1f&json={"id":"333"}

Пример ответа:

{"success":true,"data":"333","login":"user99"}

В случае возникновения ошибки при исполнении запроса в поле ответа будет указан статус исполнения "success" (true/false) и код ошибки в поле "data".

Пример ответа с ошибкой:

{"success":false,"data":"0027","login":"user99"}

Авторизация

Получение авторизационной сессии:
Поля запроса:

cmd: login
loginUsername (string) Логин (обязательное поле)
loginPassword (string) Пароль (обязательное поле)
smskey(int) Ключ полученный в SMS.
passkey(int) Passkey полученный с помощью "eToken PASS" брелока.
sendkey(int) Принимает значение 0 или 1. Признак необходимости отправить SMS с Ключом на мобильный номер. Если данный флаг передан не будет, отправки SMS не произойдет. Ключ можно запросить не чаще чем 1 раз в 30 секунд.

Опция twofactorauth в режиме SMS: При вызове функции login и наличии верных параметров loginUsername и loginPassword понадобится SMS Ключ. Для его получения на связанный с данным аккаунтом телефонный номер необходимо передать параметр sendkey=1. При этом авторизации абонента не произойдет. В случае если будут верными переданы все параметры ( loginUsername, loginPassword, smskey ), то авторизация произойдет успешно. Время жизни smskey ограничено 15 минутами и 3мя попытками.

Опция twofactorauth в режиме eToken PASS: При вызове функции login и наличии верных параметров loginUsername и loginPassword понадобится Passkey. Для его получения необходимо воспользоваться связанным с этим аккаунтом брелком eToekn PASS и передать в поле passkey сгенерированный одноразовый passkey. В случае если будут верными переданы все параметры ( loginUsername, loginPassword, passkey), то авторизация произойдет успешно.
Пример:

https://my.imserver.ru/api?cmd=login&loginUsername=petrov&loginPassword=superpassword

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

Поля ответа:

success (true, false) Статус выполнения команды
sess (string) Сессия для дальнейшей работы
login (string) логин пользователя.

Список команд

Управление аккаунтом Тикеты и поддержка
Управление серверами Управление шаблонами и образами ISO

Управление DNS серверами

Управление приватными сетями и интерфейсами серверов Получение статистики
Управление договорами Управление Финансами