Описание ClodoAPI (версия 1.0)
Данный документ содержит описание ClodoAPI версии 1.0. Документ будет пополняться и расширяться по мере введения новой функциональности в API. По всем вопросам использования нашего api обращайтесь в службу технической поддержки Clodo.
Авторизация
Свойства метода:
HTTP метод: GET
URI: /
Входные параметры (HTTP headers):
- X-Auth-User - логин пользователя
- X-Auth-Key - ключ пользователя (ключ можно заказать в панели управления ресурсами в разделе “Мой профиль”)
Выходные параметры (HTTP headers):
- X-Server-Management-Url - url доступа к функциям API
- X-Auth-Token - токен авторизации
Коды возврата:
- 204 - без ошибок
- 401 - ошибка авторизации
Пример запроса:
GET / HTTP/1.1
Host: api.clodo.ru
X-Auth-User: jdoe
X-Auth-Key: a86850deb2742ec3cb41518e26aa2d89
Пример ответа:
HTTP/1.1 204 No Content
Date: Mon, 12 Nov 2007 15:32:21 GMT
Server: Apache
X-Server-Management-Url: https://api.clodo.ru/v1
X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb
Content-Length: 0
Content-Type: text/plain; charset=UTF-8
Формат запроса
Обращение(кроме авторизации) должно производиться на адрес, полученный в поле “X-Server-Management-Url” при авторизации + URL команды.
Например:
X-Server-Management-Url: https://api.clodo.ru/v1
URL команды: /servers
Итоговый URL: https://api.clodo.ru/v1/servers
При каждом обращении к API (кроме авторизации) в заголовке HTTP-запроса должно присутствовать поле “X-Auth-Token” (значение этого поля получается при авторизации). Срок действия данного токена - 20 минут. По истечении данного времени необходимо заново произвести авторизацию и получить новый токен.
В запросе могут дополнительно применяться следующие заголовки:
- Accept - указывает на формат, в котором вы хотите получить ответ (напр. “Accept: application/json” или “Accept: application/xml”);
- Content-type - формат, в котором вы передаете в запросе дополнительные параметры. Как и предыдущий может быть в двух вариантах - “Content-type: application/json; charset=UTF-8” или “Content-type: application/xml; charset=UTF-8”. Важен только в случае запроса, требующего дополнительных параметров.
Формат ответа
При ответе на запрос к API в зависимости от результатов обработки обращения выставляется соответствующий http-код. При успешном выполнения запроса будет установлен - 200 (если есть данные для возврата пользователю) или 204 (если данных нет). При ошибке будет установлен код 4xx (код варируется в зависимости от ошибки). Кроме того будет возвращено расширенное сообщение (в формате json или xml - в зависимости от поля “Accept” в запросе) со следующими параметрами:
- code - код ошибки
- message - наименование ошибки
- details - расширенное описание ошибки
Пример сообщения об ошибке:
<?xml version="1.0" encoding="UTF-8"?>
<Forbidden code="403">
<message>Forbidden</message>
<details>Доступ закрыт</details>
</Forbidden>
<?xml version="1.0" encoding="UTF-8"?>
<NotFound code="404">
<message>Not Found</message>
<details>VPS не найдена</details>
</NotFound>
{"NotFound":{"code":404,"message":"Not Found","details":"Модуль не найден"}}
Ограничения на количество запросов
Привязка лимитов осуществляется к пользователю, от имени которого делаются запросы. На данный момент выставлены следующие ограничения:
HTTP метод |
URI |
RegExp |
Кол-во запросов |
POST |
* |
.* |
10/мин |
POST |
*/servers |
^/servers |
50/день |
PUT |
* |
.* |
10/мин |
DELETE |
* |
.* |
60/мин |
GET |
* |
.* |
60/мин |
Здесь представлены значения по-умолчанию. Если Ваше приложение не укладывается в эти рамки, то по запросу в службу поддержки (с аргументацией необходимости изменения ограничений) могут быть внесены изменения для Вашего аккаунта.
Для получения текущих ограничений для Вашего аккаунта Вы можете использовать следующий запрос:
HTTP метод: GET
URI: /limits
Входные параметры: нет
Выходные параметры:
- verb - HTTP метод
- URI - шаблон URI
- regex - RegEx URI
- value - количество запросов в единицу времени
- remaining - осталось запросов до лимита
- unit - единица времени (MINUTE, HOUR, DAY)
- resetTime - сброс счетчика запросов (unix timestamp)
Коды возврата:
Пример ответа:
<?xml version="1.0" encoding="UTF-8"?>
<limits>
<rate>
<limit verb="POST" URI="*" regex=".*" value="100" remaining="100" unit="MINUTE"
resetTime="1302530220"/>
<limit verb="POST" URI="*/servers" regex=" ^/servers" value="500" remaining="500" unit="DAY"
resetTime="1302552000"/>
<limit verb="PUT" URI="*" regex=".*" value="100" remaining="100" unit="MINUTE"
resetTime="1302530220"/>
<limit verb="DELETE" URI="*" regex=".*" value="100" remaining="100" unit="MINUTE"
resetTime="1302530220"/>
<limit verb="GET" URI="*" regex=".*" value="100" remaining="99" unit="MINUTE"
resetTime="1302530220"/>
</rate>
</limits>
{"limits":{"rate":[
{"verb":"POST","URI":"*","regex":".*","value":"100","remaining":100,"unit":"MINUTE",
"resetTime":1302530580},
{"verb":"POST","URI":"*/servers","regex":"^/servers","value":"500","remaining":500,"unit":"DAY",
"resetTime":1302552000},
{"verb":"PUT","URI":"*","regex":".*","value":"100","remaining":100,"unit":"MINUTE",
"resetTime":1302530580},
{"verb":"DELETE","URI":"*","regex":".*","value":"100","remaining":100,"unit":"MINUTE",
"resetTime":1302530580},
{"verb":"GET","URI":"*","regex":".*","value":"100","remaining":99,"unit":"MINUTE",
"resetTime":1302530580}
]}}
Работа с виртуальным сервером
Раздел содержит описание набора методов для работы с виртуальными серверами на площадке Clodo.ru.
Список виртуальных серверов (общая информация)
Метод обеспечивающий получение списка виртуальных серверов на аккаунте и общей информации по виртуальным серверам.
Свойства метода:
HTTP метод: GET
URI: /servers
Входные параметры: нет
Выходные параметры:
- id - номер VPS
- name - название VPS(title)
- imageId - id операционной системы
- type - тип VPS
- status - статус VPS
- os_bits - битность ОС
- os_type - тип ОС
- addresses - ip-адреса
- public - публичные IP адреса
- private - приватные IP адреса
Коды возврата:
- 200 - без ошибок
- 404 - серверов не найдено
Пример ответа:
<?xml version="1.0" encoding="UTF-8"?>
<servers>
<server>
<id>60</id>
<name>main</name>
<imageId>561</imageId>
<type>VirtualServer</type>
<status>is_running</status>
<os_type>debian</os_type>
<os_bits>64</os_bits>
<addresses>
<public>
<ip addr="188.127.237.202" primary_ip="1"/>
<ip addr="188.127.237.203"/>
</public>
</addresses>
</server>
<server>
<id>186</id>
<name>scale</name>
<imageId>531</imageId>
<type>ScaleServer</type>
<status>is_running</status>
<os_type>centos</os_type>
<os_bits>32</os_bits>
<addresses>
<public>
<ip addr="188.127.245.119" primary_ip="1"/>
<ip addr="188.127.245.120"/>
</public>
</addresses>
</server>
</servers>
Список виртуальных серверов (подробная информация)
Метод обеспечивающий получение списка виртуальных серверов на аккаунте и подробной информации по виртуальным серверам.
HTTP метод: GET
URI: /servers/detail
Входные параметры: нет
Выходные параметры:
- id - номер VPS
- name - название VPS(title)
- imageId - id операционной системы
- type - тип VPS
- status - статус VPS
- addresses - ip-адреса
- public - публичные адреса
- private - праватные адреса
- vps_memory - оперативная память (для Scale - нижний предел памяти)
- vps_memory_max - для Scale - верхний предел памяти
- vps_os_title - название ОС
- vps_os_version - версия ОС
- vps_os_bits - битность ОС
- vps_os_type - тип ОС
- vps_vnc - ip и порт для VNC
- vps_cpu_load - текущая загрузка CPU (в %)
- vps_cpu_max - максимум CPU (в MHz)
- vps_cpu_1h_min - минимальная загрузка CPU за час (в %)
- vps_cpu_1h_max - максимальная загрузка CPU за час (в %)
- vps_mem_load - текущая используемая память (в %)
- vps_mem_max - текущая выделенная память (в MB)
- vps_mem_1h_min - минимальная используемая память за час (в MB)
- vps_mem_1h_max - максимальная используемая память за час (в MB)
- vps_disk_load - занятое место на диске (в %)
- vps_hdd_load - занятое место на диске (в MB)
- vps_hdd_max - размер диска (в GB)
- vps_createdate - дата первого запуска
- vps_billingdate - оплачен до данной даты (для Virtual Server)
- vps_update - дата последнего запуска (uptime)
- vps_update_days - время с последнего запуска (uptime)
- vps_root_pass - пароль root по-умолчанию
- vps_user_pass - пароль user по-умолчанию
- vps_vnc_pass - пароль для VNC
- vps_traff - купленный пакет трафика (если есть) (в GB)
- vps_traff_used - остаток купленного пакета трафика (если есть) (в GB)
- vps_traff_free - бесплатный пакет трафика (если есть) (в GB)
- vps_traff_used_free - остаток бесплатного пакета трафика (если есть) (в GB)
Коды возврата:
- 200 - без ошибок
- 404 - серверов не найдено
Пример ответа:
<?xml version="1.0" encoding="UTF-8"?>
<servers>
<server>
<vps_memory>2048</vps_memory>
<vps_memory_max>2048</vps_memory_max>
<vps_mem_load>6.76</vps_mem_load>
<vps_cpu_load>1.67</vps_cpu_load>
<vps_disk_load>34</vps_disk_load>
<vps_os_title>Debian</vps_os_title>
<vps_os_version>6</vps_os_version>
<vps_os_bits>64</vps_os_bits>
<vps_os_type>debian</vps_os_type>
<id>60</id>
<name>main</name>
<imageId>561</imageId>
<type>VirtualServer</type>
<status>is_running</status>
<vps_vnc>188.127.239.206:5905</vps_vnc>
<vps_cpu_max>2267</vps_cpu_max>
<vps_cpu_1h_min>0.00</vps_cpu_1h_min>
<vps_cpu_1h_max>1.67</vps_cpu_1h_max>
<vps_mem_1h_min>138.39</vps_mem_1h_min>
<vps_mem_1h_max>138.39</vps_mem_1h_max>
<vps_hdd_load>1694</vps_hdd_load>
<vps_hdd_max>5</vps_hdd_max>
<addresses>
<public>
<ip addr="188.127.245.119" primary_ip="1"/>
<ip addr="188.127.245.120"/>
</public>
</addresses>
<vps_root_pass>LKjKH8JK9j</vps_root_pass>
<vps_user_pass>lJKBFyh6Ff</vps_user_pass>
<vps_vnc_pass>lhGu7HF6jF</vps_vnc_pass>
<vps_createdate>07.02.2011 11:09:02</vps_createdate>
<vps_billingdate>04.05.2011 22:11:47</vps_billingdate>
<vps_update>04.03.2011 22:12:43</vps_update>
<vps_update_days>(31 день)</vps_update_days>
<vps_traff/>
<vps_traff_used/>
<vps_traff_free/>
<vps_traff_used_free/>
</server>
<server>
<vps_memory>512</vps_memory>
<vps_memory_max>512</vps_memory_max>
<vps_mem_load>12.50</vps_mem_load>
<vps_cpu_load>0.00</vps_cpu_load>
<vps_disk_load>31</vps_disk_load>
<vps_os_title>Debian</vps_os_title>
<vps_os_version>6</vps_os_version>
<vps_os_bits>32</vps_os_bits>
<vps_os_type>debian</vps_os_type>
<id>186</id>
<name>scale</name>
<imageId>531</imageId>
<type>ScaleServer</type>
<status>is_running</status>
<vps_vnc>188.127.239.206:5902</vps_vnc>
<vps_cpu_max>2267</vps_cpu_max>
<vps_cpu_1h_min>0.00</vps_cpu_1h_min>
<vps_cpu_1h_max>1.67</vps_cpu_1h_max>
<vps_mem_1h_min>98.33</vps_mem_1h_min>
<vps_mem_1h_max>98.57</vps_mem_1h_max>
<vps_hdd_load>1539</vps_hdd_load>
<vps_hdd_max>5</vps_hdd_max>
<addresses>
<public>
<ip addr="188.127.237.202" primary_ip="1"/>
<ip addr="188.127.237.203"/>
</public>
</addresses>
<vps_root_pass>87JgRe6BC6</vps_root_pass>
<vps_user_pass>kT54bFEoIU</vps_user_pass>
<vps_vnc_pass>bVtRrie9Rq</vps_vnc_pass>
<vps_createdate>06.02.2011 17:15:53</vps_createdate>
<vps_billingdate>10.04.2011 03:24:59</vps_billingdate>
<vps_update>03.04.2011 17:13:45</vps_update>
<vps_update_days>(2 дня)</vps_update_days>
<vps_traff/>
<vps_traff_used/>
<vps_traff_free/>
<vps_traff_used_free/>
</server>
</servers>
Получение информации по виртуальному серверу
HTTP метод: GET
URI: /servers/<id>
Входные параметры:
Выходные параметры:
- id - номер VPS
- name - название VPS(title)
- imageId - id операционной системы
- type - тип VPS
- status - статус VPS
- addresses - ip-адреса
- public - публичные адреса
- private - приватные адреса
- vps_memory - оперативная память (для Scale - нижний предел памяти)
- vps_memory_max - для Scale - верхний предел памяти
- vps_os_title - название ОС
- vps_os_version - версия ОС
- vps_os_bits - битность ОС
- vps_os_type - тип ОС
- vps_vnc - ip и порт для VNC
- vps_cpu_load - текущая загрузка CPU (в %)
- vps_cpu_max - максимум CPU (в MHz)
- vps_cpu_1h_min - минимальная загрузка CPU за час (в %)
- vps_cpu_1h_max - максимальная загрузка CPU за час (в %)
- vps_mem_load - текущая используемая память (в %)
- vps_mem_max - текущая выделенная память (в MB)
- vps_mem_1h_min - минимальная используемая память за час (в MB)
- vps_mem_1h_max - максимальная используемая память за час (в MB)
- vps_disk_load - занятое место на диске (в %)
- vps_hdd_load - занятое место на диске (в MB)
- vps_hdd_max - размер диска (в GB)
- vps_createdate - дата первого запуска
- vps_billingdate - оплачен до данной даты (для Virtual Server)
- vps_update - дата последнего запуска (uptime)
- vps_update_days - время с последнего запуска (uptime)
- vps_root_pass - пароль root по-умолчанию
- vps_user_pass - пароль user по-умолчанию
- vps_vnc_pass - пароль для VNC
- vps_traff - купленный пакет трафика (если есть) (в GB)
- vps_traff_used - остаток купленного пакета трафика (если есть) (в GB)
- vps_traff_free - бесплатный пакет трафика (если есть) (в GB)
- vps_traff_used_free - остаток бесплатного пакета трафика (если есть) (в GB)
Коды возврата:
- 200 - без ошибок
- 404 - сервер не найден
Пример ответа:
<?xml version="1.0" encoding="UTF-8"?>
<server>
<vps_memory>768</vps_memory>
<vps_memory_max>768</vps_memory_max>
<vps_mem_load>8.21</vps_mem_load>
<vps_cpu_load>0.00</vps_cpu_load>
<vps_disk_load>18</vps_disk_load>
<vps_os_title>Debian</vps_os_title>
<vps_os_version>6</vps_os_version>
<vps_os_bits>64</vps_os_bits>
<vps_os_type>debian</vps_os_type>
<id>298</id>
<name>api-test</name>
<imageId>561</imageId>
<type>VirtualServer</type>
<status>is_running</status>
<vps_vnc>188.127.239.206:5909</vps_vnc>
<vps_cpu_max>2267</vps_cpu_max>
<vps_cpu_1h_min>0.00</vps_cpu_1h_min>
<vps_cpu_1h_max>1.67</vps_cpu_1h_max>
<vps_mem_1h_min>63.05</vps_mem_1h_min>
<vps_mem_1h_max>63.07</vps_mem_1h_max>
<vps_hdd_load>901</vps_hdd_load>
<vps_hdd_max>5</vps_hdd_max>
<addresses>
<public>
<ip addr="188.127.237.202" primary_ip="1"/>
<ip addr="188.127.237.203"/>
</public>
</addresses>
<vps_root_pass>LKjKH8JK9j</vps_root_pass>
<vps_user_pass>lJKBFyh6Ff</vps_user_pass>
<vps_vnc_pass>lhGu7HF6jF</vps_vnc_pass>
<vps_createdate>07.02.2011 11:09:02</vps_createdate>
<vps_billingdate>04.05.2011 22:11:47</vps_billingdate>
<vps_update>04.03.2011 22:12:43</vps_update>
<vps_update_days>(31 день)</vps_update_days>
<vps_traf/>
<vps_traff_used/>
<vps_traff_free/>
<vps_traff_used_free/>
</server>
Создание виртуального сервера
Выбор датацентра для создания VPS осуществляется отправкой запроса к соответствующему API:
- api.oversun.clodo.ru - Oversun
- api.kh.clodo.ru - KIAE House
- api.mn.clodo.ru - Miran
HTTP метод: POST
URI: /servers
Входные параметры:
- name - название VPS
- vps_title - название VPS (может использоваться либо этот параметр, либо “name”)
- vps_type - тип VPS (VirtualServer,ScaleServer)
- vps_memory - память (для ScaleServer - нижняя граница) (в MB)
- vps_memory_max - верхняя граница памяти для ScaleServer (в MB)
- vps_hdd - размер диска (в GB)
- vps_admin - тип поддержки (1 - обычная, 3 - расширенная)
- vps_os - id ОС
- vps_os_preset - id пресета (указывается вместо vps_os)
- vps_os_preset_params - дополнительные параметры пресета. список меняется. указывается только в случае установки пресета
- vps_pay_period - период оплаты для VirtualServer (h - час, m - месяц)
- vps_abonement - количество pay_period в периоде оплаты (1,3,6,12). Для почасовой может быть только 1.
Выходные параметры:
- id - номер VPS
- name - название VPS
- imageId - id ОС
- adminPass - пароль root
Коды возврата:
- 200 - без ошибок
- 400 - некорректный запрос
- 405 - создание серверов недоступно
- 500 - внутренняя ошибка выполнения запроса
Пример запроса:
<?xml version="1.0" encoding="UTF-8"?>
<server>
<vps_title>api-test</vps_title>
<vps_type>VirtualServer</vps_type>
<vps_memory>512</vps_memory>
<vps_hdd>5</vps_hdd>
<vps_admin>1</vps_admin>
<vps_os>551</vps_os>
</server>
<?xml version="1.0" encoding="UTF-8"?>
<server>
<vps_title>api-test</vps_title>
<vps_type>ScaleServer</vps_type>
<vps_memory>512</vps_memory>
<vps_memory_max>512</vps_memory_max>
<vps_hdd>5</vps_hdd>
<vps_admin>1</vps_admin>
<vps_os>541</vps_os>
</server>
Пример ответа:
<?xml version="1.0" encoding="UTF-8"?>
<server>
<id>299</id>
<name>api-test2</name>
<imageId>541</imageId>
<adminPass>GbRAWJT2V8</adminPass>
</server>
Изменение параметров виртуального сервера
HTTP метод: PUT
URI: /servers/<id>
Входные параметры:
- URI: id - номер VPS
- vps_memory - память (для ScaleServer - нижняя граница) (в MB)
- vps_memory_max - верхняя граница памяти для ScaleServer (в MB)
- vps_hdd - размер диска (в GB)
- vps_admin - тип поддержки (1 - обычная, 3 - расширенная)
- vps_daylimit - суточное ограничение по списаниям для ScaleServer (в руб.)
- vps_swapsize - размер swap-файла (128 - 6144, в MB)
- vps_hddshaper - вкл/откл шейпера дисковых операций (0/1)
- vps_traff - покупка пакета трафика (даже если уже пакет куплен, то будет добавлен еще один указанного размера) (в GB)
- vps_memblocksize - размер блока памяти для масштабирования (1 - 2048, в MB)
- vps_minfreebytes - Минимальная разница между выделенной и используемой памятью (1 - 1024, в MB)
- vps_meminterval - интервал опроса (в сек)
- vps_pay_period - период оплаты для VirtualServer (h - час, m - месяц)
- vps_abonement - количество pay_period в периоде оплаты (1,3,6,12). Для почасовой может быть только 1.
- Изменение дополнительных настроек VPS (по одному параметру за запрос):
- modify_type - отмена запланированного изменения параметров VPS (“params” или “period”)
- newconfig_date - установка временнОго сдвига для применения новых параметров VPS (в днях 0-23)
- vps_abonement_disabled - отмена запланированного удаления VirtualServer (0) / отключени автопродления оплаты VirtualSever (1)
Выходные параметры: нет
Коды возврата:
- 204 - без ошибок
- 400 - некорректный запрос
- 405 - функция временно недоступна
- 500 - внутренняя ошибка выполнения запроса
Пример запроса:
<?xml version="1.0" encoding="UTF-8"?>
<server>
<vps_hdd>5</vps_hdd>
</server>
{
"server":{
"vps_hdd":5
}
}
Удаление виртуального сервера
HTTP метод: DELETE
URI: /servers/<id>
Входные параметры:
Выходные параметры: нет
Коды возврата:
- 204 - без ошибок
- 400 - некорректный запрос
- 405 - функция временно недоступна
- 500 - внутренняя ошибка выполнения запроса
Изменение типа виртуального сервера
HTTP метод: GET
URI: /servers/<id>/change_type/
Входные параметры:
- URI: id - номер VPS
- pay_type - устанавливаемый период оплаты при смене типа на VirtualServer:
- 1h - почасовая
- 1m - 1 месяц
- 3m - 3 месяца
- 6m - 6 месяцев
- 12m - 1 год
Выходные параметры: нет
Коды возврата:
- 204 - без ошибок
- 400 - некорректный запрос
- 405 - функция временно недоступна
- 500 - внутренняя ошибка выполнения запроса
Пример запроса:
<?xml version="1.0" encoding="UTF-8"?>
<server>
<pay_type>3m</pay_type>
</server>
{"server":{"pay_type":"3m"}}
Команды серверу
HTTP метод: POST
URI: /servers/<id>/action
Входные параметры:
- URI: id - номер VPS
- <action> - команда серверу:
- start - запуск VPS
- reboot - перезапуск VPS
- stop - выключение VPS
- rebuild - переустановка ОС. Параметры:
- imageId - id ОС
- vps_isp - установить ISP
Выходные параметры: нет
Коды возврата:
- 204 - без ошибок
- 400 - некорректный запрос
- 405 - функция временно недоступна
- 500 - внутренняя ошибка выполнения запроса
Пример запроса:
<?xml version="1.0" encoding="UTF-8"?>
<reboot/>
<?xml version="1.0" encoding="UTF-8"?>
<rebuild imageId="27"/>
Статистика использования ресурсов
HTTP метод: POST
URI: /stats/<id>
Входные параметры:
- URI: id - номер VPS
- from - начало периода
- to - окончание периода
Выходные параметры:
- statdate - unix timestamp записи
- cpu_perc - загрузка процессора (в %)
- mem_current - выделенная память (в Кб)
- mem_used - используемая память (в Кб)
- net_rx - входящий трафик за минуту (в Кб)
- net_tx - исходящий трафик за минуту (в Кб)
- hdd_read - запросы на чтение с жесткого диска
- hdd_read - запросы на запись на жесткий диск
Коды возврата:
- 200 - без ошибок
- 400 - некорректный запрос
- 404 - записей не найдено
Пример запроса:
<?xml version="1.0" encoding="UTF-8"?>
<stats>
<from>2011-04-04 00:00:00</from>
<to>2011-04-04 23:59:59</to>
</stats>
<?xml version="1.0" encoding="UTF-8"?>
<stats>
<from>1301860800</from>
<to>1301947199</to>
</stats>
{"stats":{"from":"1301860800","to":"1301947199"}}
Пример ответа:
<?xml version="1.0" encoding="UTF-8"?>
<stats>
<row>
<statdate>1301917560</statdate>
<cpu_sec>1</cpu_sec>
<cpu_perc>0.25</cpu_perc>
<mem_current>524288</mem_current>
<mem_used>146936</mem_used>
<net_rx>548</net_rx>
<net_tx>177</net_tx>
<hdd_read>0</hdd_read>
<hdd_write>75</hdd_write>
</row>
<row>
<statdate>1301917620</statdate>
<cpu_sec>0</cpu_sec>
<cpu_perc>2.29</cpu_perc>
<mem_current>524288</mem_current>
<mem_used>143280</mem_used>
<net_rx>1</net_rx>
<net_tx>1</net_tx>
<hdd_read>0</hdd_read>
<hdd_write>33</hdd_write>
</row>
</stats>
Лог работы виртуального сервера
HTTP метод: GET
URI: /servers/<id>/log/
Входные параметры:
Выходные параметры:
- id - id операции
- command - действие
- user - пользователь, инициировавший действие
- date - дата события
- status - статус операции
Коды возврата:
- 200 - без ошибок
- 404 - VPS не найден
Пример ответа:
<?xml version="1.0" encoding="UTF-8"?>
<logs>
<log>
<id>86097442</id>
<command>Старт</command>
<user>Клиент (панель)</user>
<date>25.12.2011 04:13:50</date>
<status>ОК</status>
</log>
<log>
<id>86097082</id>
<command>Выключение</command>
<user>Клиент (панель)</user>
<date>25.12.2011 04:12:30</date>
<status>ОК</status>
</log>
<log>
<id>85942222</id>
<command>Перезагрузка</command>
<user>Cloud Core</user>
<date>13.12.2011 12:45:49</date>
<status>ОК</status>
</log>
</logs>
Управление резервными копиями виртуального сервера
Список резервных копий
HTTP метод: GET
URI: /servers/<id>/backup/getlist
Входные параметры:
Выходные параметры:
- file - id резервной копии
- date - дата резервной копии
- price - стоимость (руб./час)
- size - размер (в Гб)
- desc - описание
- days - дни недели обновления резервной копии через запятую (1 - пн,…, 7 - вс)
- time - время обновления резервной копии по дням “days”
- os_type - тип ОС в резервной копии
Коды возврата:
- 200 - без ошибок
- 400 - ошибка запроса
- 404 - VPS не найден
Пример ответа:
<?xml version="1.0" encoding="UTF-8"?>
<backups>
<backup>
<file>2</file>
<date>2012-01-24 04:00:02</date>
<price>0.05</price>
<size>5</size>
<desc/>
<days>1,2,3,4,5,6,7</days>
<time>04:00</time>
<os_type>debian</os_type>
</backup>
<backup>
<file>3</file>
<date>2011-12-21 19:41:09</date>
<price>0.05</price>
<size>5</size>
<desc/>
<days/>
<time>00:00</time>
<os_type>debian</os_type>
</backup>
</backups>
{"backups":{"backup":[
{"file":"2","date":"2012-01-24 04:00:02","price":0.05,"size":"5","desc":"","days":"1,2,3,4,5,6,7","time":"04:00","os_type":"debian"},
{"file":"3","date":"2011-12-21 19:41:09","price":0.05,"size":"5","desc":"","days":"","time":"00:00","os_type":"debian"}
]}}
Создать резервную копию
HTTP метод: GET | POST
URI: /servers/<id>/backup/create
Входные параметры:
- URI: id - номер VPS
- file - номер копии для перезаписи (опциональный)
Выходные параметры:
- req - номер запроса на создание
Коды возврата:
- 200 - без ошибок
- 400 - ошибка запроса
- 404 - VPS не найден
Пример запроса:
<?xml version="1.0" encoding="UTF-8"?>
<file>2</file>
{"file":"2"}
Пример ответа:
<?xml version="1.0" encoding="UTF-8"?>
<backup_create>
<req>3120121</req>
</backup_create>
{"backup_create":{"req":3120121}}
Удалить резервную копию
HTTP метод: POST
URI: /servers/<id>/backup/delete
Входные параметры:
- URI: id - номер VPS
- file - номер копии для удаления
Выходные параметры:
- req - номер запроса на удаление
Коды возврата:
- 200 - без ошибок
- 400 - ошибка запроса
- 404 - VPS не найден
Пример запроса:
<?xml version="1.0" encoding="UTF-8"?>
<file>2</file>
{"file":"2"}
Пример ответа:
<?xml version="1.0" encoding="UTF-8"?>
<backup_delete>
<req>3120121</req>
</backup_delete>
{"backup_delete":{"req":3120121}}
Восстановить из резервной копии
HTTP метод: POST
URI: /servers/<id>/backup/restore
Входные параметры:
- URI: id - номер VPS
- file - id резервной копии
Выходные параметры:
- req - номер запроса на восстановление
Коды возврата:
- 200 - без ошибок
- 400 - ошибка запроса
- 404 - VPS не найден
Пример запроса:
<?xml version="1.0" encoding="UTF-8"?>
<file>2</file>
{"file":"2"}
Пример ответа:
<?xml version="1.0" encoding="UTF-8"?>
<backup_restore>
<req>3120121</req>
</backup_restore>
{"backup_restore":{"req":3120121}}
Статус восстановления
HTTP метод: GET
URI: /servers/<id>/backup/getstate
Входные параметры:
- URI: id - номер VPS
- req - номер запроса на восстановление
Выходные параметры:
- progress - статус восстановления (в %)
Коды возврата:
- 200 - без ошибок
- 400 - ошибка запроса
- 404 - VPS не найден
Пример запроса:
<?xml version="1.0" encoding="UTF-8"?>
<req>3120121</req>
{"req":"3120121"}
Пример ответа:
<?xml version="1.0" encoding="UTF-8"?>
<restore_state>
<progress>54</progress>
</restore_state>
{"restore_state":{"progress":54}}
Установка календаря обновления резервной копии
HTTP метод: POST
URI: /servers/<id>/backup/setcal
Входные параметры:
- URI: id - номер VPS
- file - id резервной копии
- backups_days - список дней (1 - пн,…, 7 - вс)
- backups_time - время обновления (hh:mm)
Выходные параметры: нет
Коды возврата:
- 204 - без ошибок
- 400 - ошибка запроса
- 404 - VPS не найден
Пример запроса:
<?xml version="1.0" encoding="UTF-8"?>
<backup>
<file>2</file>
<backups_days>1,3,5,7</backups_days>
<backups_time>03:30</backups_time>
</backup>
{"file":"2", "backups_days":"1,3,5,7", "backups_time":"03:30"}
Установка описания резервной копии
HTTP метод: POST
URI: /servers/<id>/backup/setdesc
Входные параметры:
- URI: id - номер VPS
- file - id резервной копии
- desc - описание
Выходные параметры: нет
Коды возврата:
- 204 - без ошибок
- 400 - ошибка запроса
- 404 - VPS не найден
Пример запроса:
<?xml version="1.0" encoding="UTF-8"?>
<backup>
<file>2</file>
<desc>Описание</desc>
</backup>
{"file":"2", "desc":"Описание"}
Управление IP-адресами виртуального сервера
Список IP-адресов
HTTP метод: GET
URI: /servers/<id>/ips
Входные параметры:
Выходные параметры:
- public - публичные адреса
- addr - адрес
- is_primary - является ли адрес основным на VPS (0|1)
- isp - привязана ли к данному адресу лицензия ISP (0|1)
Коды возврата:
- 200 - без ошибок
- 404 - VPS не найден
Пример ответа:
<?xml version="1.0" encoding="UTF-8"?>
<addresses>
<public>
<ip addr="62.76.41.218" is_primary="1" isp=""/>
<ip addr="62.76.41.219" is_primary="" isp=""/>
</public>
</addresses>
{"addresses":{"public":[{"ip":"62.76.41.218","is_primary":true,"isp":false},{"ip":"62.76.41.219","is_primary":false,"isp":false}]}}
Добавить IP-адрес
HTTP метод: PUT
URI: /servers/<id>/ips
Входные параметры:
- URI: id - номер VPS
- subnet - подсеть (необязательный). Например: 62.76.41.*
Выходные параметры: нет
Коды возврата:
- 204 - без ошибок
- 400 - ошибка запроса
- 404 - VPS не найден
Удалить IP-адрес
HTTP метод: DELETE
URI: /servers/<id>/ips
Входные параметры:
- URI: id - номер VPS
- ip - IP-адрес для удаления
Выходные параметры: нет
Коды возврата:
- 204 - без ошибок
- 400 - ошибка запроса
- 404 - VPS не найден
Пример запроса:
<?xml version="1.0" encoding="UTF-8"?>
<ip>62.76.41.218</ip>
{"ip":"62.76.41.218"}
Перемещение IP-адреса на другой сервер
HTTP метод: GET
URI: /servers/<id>/ips/moveip/
Входные параметры:
- URI: id - номер VPS, НА который переносится адрес
- ip - IP-адрес, который переносится
Выходные параметры: нет
Коды возврата:
- 204 - без ошибок
- 400 - ошибка запроса
- 404 - VPS не найден
Переносится могут только дополнительные адреса сервера!
Пример запроса:
<?xml version="1.0" encoding="UTF-8"?>
<ip>62.76.41.218</ip>
{"ip":"62.76.41.218"}
Список подсетей
HTTP метод: GET
URI: /servers/<id>/ips/getsubnets/
Входные параметры:
- URI: id - номер VPS, для которой получаются доступные сети
Выходные параметры:
- ip_subnet - подсеть
- current - у данной VPS уже есть адреса в этой подсети (0|1)
Коды возврата:
- 200 - без ошибок
- 400 - ошибка запроса
- 404 - VPS не найден
Пример ответа:
<?xml version="1.0" encoding="UTF-8"?>
<nets>
<net>
<ip_subnet>62.76.176.*</ip_subnet>
<current>1</current>
</net>
<net>
<ip_subnet>62.76.177.*</ip_subnet>
<current>0</current>
</net>
<net>
<ip_subnet>62.76.178.*</ip_subnet>
<current>0</current>
</net>
</nets>
{"nets":[
{"ip_subnet":"62.76.176.*","current":"1"},
{"ip_subnet":"62.76.177.*","current":"0"},
{"ip_subnet":"62.76.178.*","current":"0"},
{"ip_subnet":"62.76.47.*","current":"0"}
]}
Управление DNS
Получение списка зон
HTTP метод: GET
URI: /dns/
Входные параметры: нет
Выходные параметры:
- reverse - зоны обратного преобразования:
- ip_value - ip адрес
- virtual_mashines_title - имя VPS, на котором находится данные ip
- reverse_value - dns-запись ip-адреса
- domain_value - обратная зона
- domains - домены:
- id - id зоны
- name - имя зоны
- type - тип (MASTER, SLAVE)
- records_count - количество записей в зоне
Коды возврата:
Добавление зоны
HTTP метод: PUT
URI: /dns/
Входные параметры:
- newdomain - имя новой зоны
- newdomain_type - тип зоны (MASTER, SLAVE)
- slave_addr - адрес мастер-сервера для SLAVE-зоны (не указывается для MASTER-зоны)
Выходные параметры:
Коды возврата:
- 200 - без ошибок
- 400 - некорректные данные в запросе
Удаление зоны
HTTP метод: DELETE
URI: /dns/<id>
Входные параметры:
Выходные параметры: нет
Коды возврата:
- 204 - без ошибок
- 404 - зона не найдена
Просмотр зоны
HTTP метод: GET
URI: /dns/<id>
Входные параметры:
Выходные параметры:
- record_types - типы доступных записей
- records - записи в зоне:
- id - id записи
- domain_id - id зоны
- name - имя записи
- type - тип записи
- content - содержимое записи
- ttl - TTL
- prio - приоритет
Коды возврата:
- 200 - без ошибок
- 404 - зона не найдена
Изменение зоны
HTTP метод: POST
URI: /dns/<id>
Входные параметры:
- URI: id - id зоны
- domain_master - установить адрес master-сервера для SLAVE-зоны (для MASTER-зоны не указывается)
- <поле>_<id записи> - новое значение в поле:
- поле - name | type | content | ttl | prio
- id записи - если начинается с 0 - добавление новой записи
Выходные параметры: нет
Коды возврата:
- 204 - без ошибок
- 400 - ошибка во входных параметрах
- 404 - зона не найдена
Удаление записи в зоне
HTTP метод: DELETE
URI: /dns/<id>
Входные параметры:
- URI: id - id зоны
- delete_record - id записи
Выходные параметры:
- new_soa - новое значение “serial” SOA-записи в данной зоне
Коды возврата:
- 204 - без ошибок
- 400 - ошибка во входных параметрах
- 404 - зона не найдена
Обращение в службу поддержки (Helpdesk)
Получение списка открытых запросов
HTTP метод: GET
URI: /helpdesk/
Входные параметры: нет
Выходные параметры:
- id - id обращения
- subject - тема
- type_name - раздел обращений
- status - статус обращения
- status_id - id статуса обращения
- open_date - дата открытия
- is_new_events - есть ли в обращении новые сообщения
Коды возврата:
Пример ответа:
<?xml version="1.0" encoding="UTF-8"?>
<helpdesk>
<tickets>
<ticket>
<id>299442</id>
<subject>test req</subject>
<status>Обрабатывается</status>
<type_name>Общие вопросы</type_name>
<open_date>2011-09-26 16:45:19</open_date>
<status_id>1</status_id>
<is_new_events/>
</ticket>
<ticket>
<id>445822</id>
<subject>test works</subject>
<status>Обрабатывается</status>
<type_name>Общие вопросы</type_name>
<open_date>2012-01-20 12:41:12</open_date>
<status_id>1</status_id>
<is_new_events/>
</ticket>
</tickets>
</helpdesk>
Получение содержимого запроса
HTTP метод: GET
URI: /helpdesk/<id>
Входные параметры:
- URI: id - id обращения в службу поддержки
Выходные параметры:
- id - id обращения
- subject - тема
- text - текст обращения
- type_name - раздел обращений
- status - статус обращения
- status_id - id статуса обращения
- open_date - дата открытия
- operator_name - оператор, работающий над запросом
- sla - флаг VIP-запроса
- vote - отзыв пользователя на запрос (-1|0|1)
- events - сообщение (события) в запросе:
- ticket_events_id - id события
- ticket_events_date - дата события
- ticket_events_user_id - пользователь, добавивший событие
- ticket_events_text - текст события
- ticket_events_new_user - флаг новое событие
- users_name - имя пользователя
- is_user_msg - сообщение было написано создателем запроса
- is_file - событие является приаттаченным файлом
- works - платные работы по запросу
- ticket_events_id - id события
- ticket_events_date - дата события
- ticket_events_user_id - пользователь, добавивший событие
- ticket_events_text - ТЗ на работы
- ticket_events_new_user - флаг новое событие
- users_name - имя пользователя
- is_user_msg - сообщение было написано создателем запроса
- is_file - событие является приаттаченным файлом
- works_time - время, необходимое на работы
- works_cost - стоимость работ
- works_user_accept - подтверждение пользователя (-1 - несогласен|0 - думает|1 - согласен)
- works_actions - выполненные работы
Коды возврата:
- 200 - без ошибок
- 404 - запрос не найден
Пример ответа:
<?xml version="1.0" encoding="UTF-8"?>
<helpdesk>
<ticket>
<id>445822</id>
<text>проверка работ</text>
<subject>test works</subject>
<status>Обрабатывается</status>
<status_id>1</status_id>
<type_name>Общие вопросы</type_name>
<open_date>2012-01-20 12:41:12</open_date>
<operator_name>Иван Петров</operator_name>
<sla>1</sla>
<vote>1</vote>
</ticket>
<events>
<event>
<ticket_events_id>3848242</ticket_events_id>
<ticket_events_date>2012-01-25 17:44:13</ticket_events_date>
<ticket_events_user_id>54</ticket_events_user_id>
<ticket_events_text>test operator message</ticket_events_text>
<ticket_events_new_user>0</ticket_events_new_user>
<users_name>Иван Петров</users_name>
<is_user_msg/>
<is_file/>
</event>
</events>
<works>
<work>
<ticket_events_id>3835122</ticket_events_id>
<ticket_events_date>2012-01-24 13:07:49</ticket_events_date>
<ticket_events_user_id>54</ticket_events_user_id>
<ticket_events_text>test256</ticket_events_text>
<ticket_events_new_user>0</ticket_events_new_user>
<users_name>Иван Петров</users_name>
<is_user_msg/>
<is_file/>
<works_time>2</works_time>
<works_cost>1700</works_cost>
<works_user_accept>-1</works_user_accept>
<works_actions/>
</work>
<work>
<ticket_events_id>3825702</ticket_events_id>
<ticket_events_date>2012-01-23 17:07:22</ticket_events_date>
<ticket_events_user_id>54</ticket_events_user_id>
<ticket_events_text>test 2</ticket_events_text>
<ticket_events_new_user>0</ticket_events_new_user>
<users_name>Иван Петров</users_name>
<is_user_msg/>
<is_file/>
<works_time>4</works_time>
<works_cost>3400</works_cost>
<works_user_accept>1</works_user_accept>
<works_actions/>
</work>
</works>
</helpdesk>
Добавление запроса в службу поддержки
HTTP метод: POST
URI: /helpdesk/
Входные параметры:
- tickets_type - раздел сообщений
- tickets_subj - тема сообщения
- tickets_text - сообщение
- tickets_sla_type - флаг VIP-поддержки (0|1)
- virtual_mashines_num - номер VPS, которой касается обращение
Выходные параметры: нет
Коды возврата:
Пример запроса:
<?xml version="1.0" encoding="UTF-8"?>
<helpdesk>
<tickets_type>1</tickets_type>
<tickets_subj>Тема сообщения</tickets_subj>
<tickets_text>Текст сообщения!!!</tickets_text>
<tickets_sla_type>0</tickets_sla_type>
<virtual_mashines_num>0</virtual_mashines_num>
</helpdesk>
Добавление сообщения в запрос
HTTP метод: POST
URI: /helpdesk/<id>
Входные параметры:
- URI: id - id обращения в службу поддержки
- text - сообщение
Выходные параметры: нет
Коды возврата:
Пример запроса:
<?xml version="1.0" encoding="UTF-8"?>
<helpdesk>
<text>Текст сообщения!!!</tickets_text>
</helpdesk>
Профиль пользователя
Получение профиля пользователя
HTTP метод: GET
URI: /user/
Входные параметры: нет
Выходные параметры:
- users_id - id аккаунта
- users_login - логин
- users_last_visit - последний заход в панель управления
- users_added - дата создания аккаунта
- users_balance - текущий баланс
- users_family - фамилия
- users_firstname - имя
- users_lastname - отчество
- users_profile_jabber - Jabber
- users_profile_email - Email
- users_profile_phone - Телефон
- users_profile_icq - ICQ
- users_profile_skype - Skype
- users_profile_facetype - владелец аккаунта (физ. лицо, юр. лицо и т.д.)
- users_profile_orgname - название организации
- users_profile_inn - ИНН
- users_profile_address - юридический адрес
- users_profile_formasobstv - форма собственности
- users_profile_factaddress - фактический адрес
- users_profile_ogrn - ОГРН
- users_profile_okpo - ОКПО
- users_profile_kpp - КПП
- users_profile_raschschet - расчетный счет
- users_profile_bik - БИК
- users_profile_bank - наименование банка
- users_profile_korrschet - корреспондентский счет
- users_profile_dir - должность руководителя
- users_profile_dirdocument - документ, на основании которого действут руководитель (‘u’ - устав, ‘d’ - доверенность, ‘s’ - свидетельство)
- users_profile_dirdocumentnum - номер документа
- users_profile_dirdocumentdate - дата выдачи документа
- users_profile_dirfio - ФИО руководителя
- users_profile_buhfio - ФИО главного бухгалтера
- users_profile_workphone - рабочий телефон
- users_profile_workphoneext - дополнительный номер к рабочему телефону
- users_profile_fax - факс
- users_profile_faxext - дополнительный номер к номеру факса
- users_profile_mailaddress - почтовый адрес
- users_profile_ident - контакт по финансовым вопросам идентичен основному (0|1)
- users_profile_finfamily - фамилия
- users_profile_finfirstname - имя
- users_profile_finlastname - отчество
- users_profile_finworkphone - рабочий телефон
- users_profile_finworkphoneext - дополнительный номер к рабочему телефону
- users_profile_finphone - мобильный телефон
- users_profile_finfax - факс
- users_profile_finfaxext - дополнительный номер к номеру факса
- users_profile_finemail - электронная почта
- users_profile_birthday - день рождения
- users_profile_passportseries - серия пасспорта
- users_profile_passportnumber - номер пасспорта
- users_profile_passportdate - дата выдачи пасспорта
- users_profile_passportwho - кем выдан пасспорт
- users_profile_disableannounces - отключить почтовые рассылки (0|1)
- users_profile_scalemoneysms - состояние баланса при котором отправлять SMS-уведомление ( 0 - уведомления не отсылаются)
- users_profile_vpsdeletesms - уведомлять через SMS за сутки до окончания оплаченного срока Virtual Server (0|1)
- users_profile_vbddeletesms - уведомлять через SMS за сутки до полного удаления диска (0|1)
- users_profile_disableannouncesscale - отключить ежедневные рассылки по затратам ScaleServer
- users_profile_authsms - SMS подтверждение аутентификации в панели управления (0|1)
- default_vps_num - VPS, открываемый по-умолчанию
- default_storage_num - хранилище ClodoStorage, открываемое по-умолчанию
- scale_exists - на аккаунте есть ScaleServer (0|1)
- allow_change_facetype - разрешено ли сменить владельца аккаунта (физ. лицо, юр. лицо и т.д.) (0|1)
- dcs - список датацентров:
- id - id ДЦ
- apihost - хост для запросов к API
- title - название ДЦ
- auth_ips - список ip-адресов, с которых разрешен доступ в панель управления:
- ip - адрес
- auth_log - протокол аутентификации в панель управления:
- auth_date - дата аутентификации
- auth_ip - ip, с которого пришел запрос
- auth_status - статус (ОК|Ошибка)
Коды возврата:
Изменение профиля пользователя
HTTP метод: POST
URI: /user/update
Входные параметры: значения переменных из предыдущего пункта
Выходные параметры: нет
Коды возврата:
- 204 - без ошибок
- 400 - некорректные параметры
Пример запроса:
<?xml version="1.0" encoding="UTF-8"?>
<user>
<users_profile_jabber>test@jabber.com</users_profile_jabber>
<users_profile_icq>13382781</users_profile_icq>
</user>
{"users_profile_jabber":"test@jabber.com,
"users_profile_icq":"13382781"}
Cloud Storage
Получение списка хранилищ
HTTP метод: GET
URI: /storage/
Входные параметры: нет
Выходные параметры:
- id - id хранилища
- title - нахвание хранилища
- login - имя пользователя
- cluster - хост для подключения
- key - Storage Key
- size - размер данных в хранилище (в байтах)
- token - токен для работы с хранилищем
Коды возврата:
Пример ответа:
<?xml version="1.0" encoding="UTF-8"?>
<storages>
<storage>
<id>1</id>
<title>storage</title>
<login>storage_123_1</login>
<cluster>cs1.clodo.ru:80</cluster>
<key>CLODO_440233b83e04c723727aa2116f10a781</key>
<size>19282934228</size>
<token>CLODO_2f5e4af28424687f3f63047d581f36f2</token>
</storage>
<storage>
<id>5</id>
<title>test1</title>
<login>storage_123_10</login>
<cluster>cs1.clodo.ru:80</cluster>
<key>CLODO_3aef93049d655bb86994273d338c9474</key>
<size>24979167</size>
<token>CLODO_4239536e2a674889401182f3548536f7</token>
</storage>
</storages>
Получение расширенной информации о хранилище
HTTP метод: GET
URI: /storage/<id>/detail
Входные параметры:
Выходные параметры:
- id - id хранилища
- title - нахвание хранилища
- login - имя пользователя
- cluster - хост для подключения
- key - Storage Key
- size - размер данных в хранилище (в байтах)
- is_default - открывать по-умолчанию
- cache_xomcc - X-Object-Meta-Cache-Control
- cache_expires - директива expires
- cache_bypass - заголовок для обновления кэша
- cache_refererfilter - фильтр источника запросов
- cache_publicsearch - начинать поиск с контейнера Public (0|1)
- public_url - публичный домен
- public_url_checked - статус проверки публичного домена
Коды возврата:
- 200 - без ошибок
- 404 - хранилище не найдено
Пример ответа:
<?xml version="1.0" encoding="UTF-8"?>
<storage>
<id>1</id>
<title>storage</title>
<login>storage_123_1</login>
<cluster>cs1.clodo.ru:80</cluster>
<key>CLODO_440233b83e04c723727aa2116f10a781</key>
<size>19282934228</size>
<is_default>0</is_default>
<cache_xomcc>0</cache_xomcc>
<cache_expires>off</cache_expires>
<cache_bypass>X-Cache-Bypass-xjKRssBE</cache_bypass>
<cache_refererfilter/>
<cache_publicsearch>1</cache_publicsearch>
<public_url>storage.test.com</public_url>
<public_url_checked>checked</public_url_checked>
</storage>
Изменение настроек хранилища
HTTP метод: POST
URI: /storage/<id>
Входные параметры:
- URI: id - id хранилища
- title - нахвание хранилища
- cache_xomcc - X-Object-Meta-Cache-Control
- cache_expires - директива expires
- cache_bypass - заголовок для обновления кэша
- cache_refererfilter - фильтр источника запросов
- cache_publicsearch - начинать поиск с контейнера Public (0|1)
Выходные параметры: список измененных параметров с новыми значениями
Коды возврата:
- 200 - без ошибок
- 204 - изменений небыло
- 400 - ошибка сохранения изменений
- 404 - хранилище не найдено
Пример запроса:
<?xml version="1.0" encoding="UTF-8"?>
<storage>
<title>storage</title>
<cache_bypass>X-Cache-Bypass-xjKRssBE</cache_bypass>
</storage>
Создание хранилища
HTTP метод: PUT
URI: /storage/
Входные параметры:
- title - нахвание хранилища
- cache_xomcc - X-Object-Meta-Cache-Control
- cache_expires - директива expires
- cache_bypass - заголовок для обновления кэша
- cache_refererfilter - фильтр источника запросов
- cache_publicsearch - начинать поиск с контейнера Public (0|1)
Выходные параметры:
- id - id хранилища
- login - имя пользователя
- cluster - хост для подключения
- key - API Key
- storagekey - Storage Key
Коды возврата:
- 200 - без ошибок
- 400 - ошибка создания хранилища
Пример запроса:
<?xml version="1.0" encoding="UTF-8"?>
<storage>
<title>storage</title>
</storage>
Пример ответа:
<?xml version="1.0" encoding="UTF-8"?>
<storage>
<id>123</id>
<login>storage_123_1</login>
<cluster>cs1.clodo.ru:80</cluster>
<key>CLODO_4239536e2a674889401182f3548536f7</key>
<storagekey>CLODO_440233b83e04c723727aa2116f10a781</storagekey>
</storage>
Удаление хранилища
HTTP метод: DELETE
URI: /storage/<id>
Входные параметры:
Выходные параметры: нет
Коды возврата:
- 204 - без ошибок
- 404 - хранилище не найдено
Дополнительные возможности
Получение статуса запроса
HTTP метод: GET
URI: /requests/<id>
Входные параметры:
Выходные параметры:
- vps_num - номер VPS
- req_complete - флаг завершения обработки запроса
- req_complete_date - дата завершения обработки запроса
- req_inwork - дата начала обработки запроса
Коды возврата:
- 200 - без ошибок
- 404 - запрос не найден
Пример ответа:
<?xml version="1.0" encoding="UTF-8"?>
<request>
<vps_num/>
<req_complete>1</req_complete>
<req_complete_date>2011-03-11 14:48:31</req_complete_date>
<req_requests_inwork>2011-03-11 14:36:56</req_requests_inwork>
</request>
Запросы информации по биллингу
Получить текущий баланс
HTTP метод: GET
URI: /billing/balance
Входные параметры: нет
Выходные параметры:
Коды возврата:
- 200 - без ошибок
- 404 - записей не найдено
Пример ответа:
<?xml version="1.0" encoding="UTF-8"?>
<balance>1234</balance>
Получить список операций по счету за период (либо за текущий день по умолчанию)
HTTP метод: GET, POST
URI: /billing, /billing/<id>
Входные параметры:
- URI: id - номер VPS (не обязательный)
- from - дата начала периода (по умолчанию - начало текущего дня)
- to - дата окончания периода (по умолчанию - текущий момент)
- Выходные параметры:
- total_debit_amount - суммарные списания за период
- total_credit_amount - суммарные поступления за период
- debits - списания по типам:
- mem - Scale Server - ресурсы оперативной памяти
- cpu - Scale Server - ресурсы процессора
- vps - Virtual Server - фиксированные ресурсы
- vbd - Использование дисковых ресурсов
- vbd_io - Дисковые операции ввода/вывода
- traff - Предоплаченые пакеты трафика
- traffin - Входящий трафик (полных гигабайт)
- traffout - Исходящий трафик (полных гигабайт)
- ip - Дополнительные IP
- admin - Услуги расширенного администрирования
- ispprorent - Аренда лицензии ISPmanager PRO
- backup - Использование диска для резервных копий
- sms - SMS уведомления
- cloudstoragesize - Cloud Storage - использование диска
- cloudstoragetraffout - Cloud Storage - исходящий трафик (полных гигабайт)
- cloudstoragereqs - Cloud Storage - запросы к хранилищу
- credits - поступления
Коды возврата:
- 200 - без ошибок
- 404 - записей не найдено
Пример запроса:
<?xml version="1.0" encoding="UTF-8"?>
<billing>
<from>2011-04-04 00:00:00</from>
<to>2011-04-04 23:59:59</to>
</billing>
<?xml version="1.0" encoding="UTF-8"?>
<billing>
<from>1301860800</from>
<to>1301947199</to>
</billing>
{"billing":{"from":"1301860800","to":"1301947199"}}
Пример ответа:
<?xml version="1.0" encoding="UTF-8"?>
<billing>
<total_debit_amount>57.78</total_debit_amount>
<total_credit_amount>0</total_credit_amount>
<period>25.01.2012</period>
<debits>
<vbd>
<debits_amount>3.8</debits_amount>
<debits_count>380</debits_count>
</vbd>
<vps>
<debits_amount>17.550</debits_amount>
<debits_count>13.00</debits_count>
</vps>
<mem>
<debits_amount>24.48</debits_amount>
<debits_count>2448</debits_count>
</mem>
<cpu>
<debits_amount>0.900</debits_amount>
<debits_count>2160.00</debits_count>
</cpu>
<backup>
<debits_amount>8.580</debits_amount>
<debits_count>858.00</debits_count>
</backup>
<cloudstoragesize>
<debits_amount>2.470</debits_amount>
<debits_count>247.00</debits_count>
</cloudstoragesize>
</debits>
</billing>
{"billing":{
"total_debit_amount":57.82,
"total_credit_amount":0,
"period":"25.01.2012",
"debits":{
"vbd":{
"debits_amount":3.8,
"debits_count":380},
"vps":{
"debits_amount":17.550,
"debits_count":13.00},
"mem":{
"debits_amount":24.52,
"debits_count":2452},
"cpu":{
"debits_amount":0.900,
"debits_count":2160.00},
"backup":{
"debits_amount":8.580,
"debits_count":858.00},
"cloudstoragesize":{
"debits_amount":2.470,
"debits_count":247.00}
},
"credits":[]
}
}
Доступные операционные системы (Images)
Получить список доступных ОС
HTTP метод: GET
URI: /images
Входные параметры: нет
Выходные параметры:
- id - id ОС
- name - название ОС
- status - статус
- vps_type - тип VPS
Коды возврата:
- 200 - без ошибок
- 404 - не найдено
Пример ответа:
<?xml version="1.0" encoding="UTF-8"?>
<images>
<image id="1" name="Debian 5.0.6 64 bits" vps_type="VirtualServer" status="ACTIVE"/>
<image id="3" name="CentOS 5.5 32 bits" vps_type="VirtualServer" status="ACTIVE"/>
<image id="381" name="Debian 5.0.6 64 bits" vps_type="ScaleServer" status="ACTIVE"/>
</images>
Получить список доступных ОС (детализированно)
HTTP метод: GET
URI: /images/detail
Входные параметры: нет
Выходные параметры:
- id - id ОС
- name - название ОС
- status - статус
- vps_type - тип VPS
- os_type - тип ОС (debian,centos,bitrix и т.д)
- os_bits - битность
- os_hvm - флаг HVM
Коды возврата:
- 200 - без ошибок
- 404 - не найдено
Пример ответа:
<?xml version="1.0" encoding="UTF-8"?>
<images>
<image id="1" name="Debian 5.0.6 64 bits" vps_type="VirtualServer" status="ACTIVE">
<os_type>debian</os_type>
<os_bits>64</os_bits>
<os_hvm>0</os_hvm>
</image>
<image id="3" name="CentOS 5.5 32 bits" vps_type="VirtualServer" status="ACTIVE">
<os_type>centos</os_type>
<os_bits>32</os_bits>
<os_hvm>0</os_hvm>
</image>
<image id="381" name="Debian 5.0.6 64 bits" vps_type="ScaleServer" status="ACTIVE">
<os_type>debian</os_type>
<os_bits>64</os_bits>
<os_hvm>0</os_hvm>
</image>
</images>
Получить список доступных пресетов
HTTP метод: GET
URI: /images/presets
Входные параметры: нет
Выходные параметры:
- id - id пресета
- name - техническое название пресета
- title - пользовательское название пресета
- description - описание
- fields - дополнительные параметры, необходимые при установке:
- title - название поля
- name - имя переменной
- type - тип поля:
- string - простое текстовое поле
- login - поле для логина (не менее 5 символов)
- password - поле для пароля (не менее символов)
- email - электронный ящик
- domain - имя домена
- req - флаг обязательности поля (0|1)
Коды возврата:
- 200 - без ошибок
- 404 - не найдено
Пример ответа:
<?xml version="1.0" encoding="UTF-8"?>
<presets>
<preset>
<id>62</id>
<name>bitrix</name>
<title>Bitrix</title>
<description><p>«1С-Битрикс: Управление сайтом» - профессиональная система управления веб-проектами,
универсальный программный продукт для создания, поддержки и успешного развития: </p>
<ul>
<li>корпоративных сайтов</li>
<li>интернет-магазинов</li>
<li>информационных порталов</li>
<li>сайтов сообществ</li>
<li>социальных сетей и других веб-проектов </li>
</ul></description>
<fields>
<field>
<title>Логин администратора</title>
<name>login</name>
<type>login</type>
<req>1</req>
</field>
<field>
<title>Пароль администратора</title>
<name>pass</name>
<type>password</type>
<req>1</req>
</field>
<field>
<title>Почта администратора</title>
<name>email</name>
<type>email</type>
<req>1</req>
</field>
<field>
<title>Домен</title>
<name>domain</name>
<type>domain</type>
<req>1</req>
</field>
<field>
<title>Название сайта</title>
<name>title</name>
<type>string</type>
<req>1</req>
</field>
<field>
<title>Лицензия</title>
<name>license</name>
<type>string</type>
<req>1</req>
</field>
</fields>
</preset>
<preset>
<id>322</id>
<name>gitlabhq</name>
<title>Gitlabhq</title>
<description>gitlabhq</description>
<fields>
<field>
<title>Логин администратора</title>
<name>login</name>
<type>login</type>
<req>1</req>
</field>
<field>
<title>Пароль администратора</title>
<name>pass</name>
<type>password</type>
<req>1</req>
</field>
<field>
<title>Почта администратора</title>
<name>email</name>
<type>email</type>
<req>1</req>
</field>
<field>
<title>Домен</title>
<name>domain</name>
<type>domain</type>
<req>1</req>
</field>
</fields>
</preset>
</presets>
Условия использования документа
Материал представленный на данной странице может быть использован Вами по своему усмотрению. Разрешается копирование и распространение предоставленного материала без изменения содержания и без предварительного уведомления администрации Clodo.ru.
Мы будем признательны Вам за сообщения об ошибках в представленной документации и за предложения об улучшении документации. По этим вопросам необходимо обращаться по адресу mail@clodo.ru. При обращении не забывайте указывать URL-адрес публикации.