База знаний Clodo.ru
Перейти на сайт clodo.ru

Описание 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)

Коды возврата:

  • 200 - без ошибок

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

<?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>
Входные параметры:

  • URI: id - 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>
Входные параметры:

  • URI: id - номер VPS

Выходные параметры: нет

Коды возврата:

  • 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/
Входные параметры:

  • URI: id - номер VPS

Выходные параметры:

  • 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
Входные параметры:

  • URI: id - номер VPS

Выходные параметры:

  • 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
Входные параметры:

  • URI: id - номер VPS

Выходные параметры:

  • 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 - количество записей в зоне

Коды возврата:

  • 200 - без ошибок

Добавление зоны

HTTP метод: PUT
URI: /dns/
Входные параметры:

  • newdomain - имя новой зоны
  • newdomain_type - тип зоны (MASTER, SLAVE)
  • slave_addr - адрес мастер-сервера для SLAVE-зоны (не указывается для MASTER-зоны)

Выходные параметры:

  • id - id созданное зоны

Коды возврата:

  • 200 - без ошибок
  • 400 - некорректные данные в запросе

Удаление зоны

HTTP метод: DELETE
URI: /dns/<id>
Входные параметры:

  • URI: id - id зоны

Выходные параметры: нет

Коды возврата:

  • 204 - без ошибок
  • 404 - зона не найдена

Просмотр зоны

HTTP метод: GET
URI: /dns/<id>
Входные параметры:

  • URI: id - 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 - есть ли в обращении новые сообщения

Коды возврата:

  • 200 - без ошибок

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

<?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, которой касается обращение

Выходные параметры: нет

Коды возврата:

  • 204 - без ошибок

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

<?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 - сообщение

Выходные параметры: нет

Коды возврата:

  • 204 - без ошибок

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

<?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 - статус (ОК|Ошибка)

Коды возврата:

  • 204 - без ошибок

Изменение профиля пользователя

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 - токен для работы с хранилищем

Коды возврата:

  • 200 - без ошибок

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

<?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
Входные параметры:

  • URI: id - id хранилища

Выходные параметры:

  • 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>
Входные параметры:

  • URI: id - id хранилища

Выходные параметры: нет

Коды возврата:

  • 204 - без ошибок
  • 404 - хранилище не найдено

Дополнительные возможности

Получение статуса запроса

HTTP метод: GET
URI: /requests/<id>
Входные параметры:

  • URI: id - 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
Входные параметры: нет

Выходные параметры:

  • 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-адрес публикации.