Web API Hosting

Web API Hosting Хостинг

Что такое api

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

API доступно всем в панели управлении серверами, раздел Настройки. Документация находится по ссылке.

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

Что это дает

Инфраструктура 1cloud (картинка кликабельна)

С помощью методов API развернуть сервер можно с помощью одного запроса, при этом возможна полная автоматизация всех задач по управлению хостингом (или, например, по масштабированию инфраструктуры) без необходимости совершения каких-либо действий руками в интерфейсеНашим API могут пользоваться целый ряд частных и корпоративных клиентов. Среди них:

Кроме того, API может использоваться в рамках процесса непрерывной интеграции (continuous integration) — в ходе проверки готового кода можно создать эталонную тестовую среду (один или группа серверов), на которой и «прогоняются» все тестовые сценарии.

Пример реализации клиентского приложения для API 1cloud на C# можно найти по ссылке(выражаем благодарность за реализацию Сергею partyz0ne Вычегжанину)

На сегодня все. Спасибо за внимание, будем рады ответить на вопросы в комментариях!

Api возможности | ru vds

По умолчанию функция возвращает информацию обо всех Ваших серверах. Если Вам требуется получить информацию только о каких-то конкретно, Вы можете указать дополнительно их ID (настоятельно рекомендуется).

fields – Список названий свойств, заданных через запятую (,) или через точку с запятой (;), объекта item, значение которых необходимо получить; если параметр не задан или список пуст, выводятся все доступные поля

id – ID сервера в системе RuVDS (формирует имя сервера RUXXXX)

cpu – количество ядер процессора

ram – объем оперативной памяти, ГБ

vram – объем видеопамяти на сервере, МБ

drive – установленные жесткие диски, их тип (1 — HDD, 3 — SSD) и объем, ГБ

ip – информация по IP-адресам сервера

count – затребованное количество адресов

assigned – массив назначенных адресов

premium – является ли сервер сервером с «премиум» размещением

tariff – детали тарифного плана

premium – является ли тарифный план планом «премиум»

id – ID тарифного плана в системе RuVDS

cpu – стоимость 1 ядра процессора (RUB)

ram – стоимость 1 ГБ оперативной памяти (RUB)

vram – стоимость 1МБ видеопамяти (RUB)

drive – стоимость 1ГБ жесткого диска (RUB) и доступные варианты (HDD, SSD)

ip – стоимость 1 дополнительного IP-адреса (RUB). 1 IP на сервер дается бесплатно

active – актуален ли тариф в настоящий момент

priceRub – полная стоимость сервера, включая дополнительные услуги, за платёжный период с учетом скидок по промокоду и за платёжный период

additionalServices – дополнительные услуги, подключенные для данного сервера

count – подключенное количество

name – название услуги

price – стоимость услуги в месяц без учета скидок

applyDiscount – применяются ли к данной услуге скидки

monthIsMin – если TRUE, то минимальный расчетный период составляет 1 месяц, и возврат при досрочном отключении не производится

paymentPeriod – 1 — тестовый период; 2 — 1 месяц; 3 — 3 месяца; 4 — 6 месяцев; 5 — 1 год

discount – относящиеся к серверу скидки, NULL если их нет

paymentPeriod – скидка за выбранный период оплаты, %

promocode – скидка по промокоду, %

state – 1 — новый; 2 — сконфигурирован; 3 — контактные данные не подтверждены; 4 — нет доступных ресурсов; 5 — не оплачен; 6 — заблокирован за нарушение; 100 — готов к работе

addDT – дата и время добавления (UTC, в формате ddMMyyyyHHmmss)

createDT – дата и время завершения создания (UTC, в формате ddMMyyyyHHmmss), NULL если не создан

createProgress – значение от 0 до 100 состояния создания сервера

createState – 1 — в ожидании; 2 — запуск начала; 3 — копирование файлов; 4 — запуск системы; 5 — конфигурирование; 6 — перезагрузка; 100 — завершено

defaultAdminPassword – пароль, созданный по умолчанию для пользователя Administrator

configurationUpdating – идет ли процесс изменения конфигурации сервера

limitedTrafficMbps – заданное ограничение на трафик (Mbps)

running – запущен ли сервер

paid – оплачен ли сервер

paidTill – до какого времени сервер оплачен (UTC в формате ddMMyyyyHHmmss)

stat – базовая инфомация по использованию ресурсов; state: 1 — нагрузка оптимальная; 2 — близка к границе лимита; 3 — превышена

traffic – суммарный трафик за последние 24 часа, МБ

trafficOutbound – исходящий трафик за последние 24 часа, МB

trafficInbound – входящий трафик за последние 24 часа, МБ

driveRead – объем прочитанных с диска данных за последние 24 часа, МБ

driveWritten – объем записанных на диск данных за последние 24 часа, МБ

avgIOPS – средняя за 24 часа дисковая нагрузка, IOPS

avgCPU – средняя за 24 часа нагрузка на процессор (от 0 до 100)

notifications – уведомления по работе сервера

id – системное ID уведомления

type – 1 — информационное; 2 — предупреждение; 3 — нарушение

blocked – повлекло ли уведомление за собой блокировку

message – текст сообщения в формате HTML

dt – дата и время уведомления (UTC, в формате ddMMyyyyHHmmss)

configurationChangeable – возможно ли изменить конфигурацию данного сервера

canRecreate – возможно ли пересоздать данный сервер с нуля

userComment – пользовательский комментарий

Hosting controller infrastructure

You can use the same ASP.NET routing and ApiController capabilities of ASP.NET Hosting in self hosting.


In the same self hosting console application, create simple HomeController class as shown below.

Now, in the Main() method, configure a default route using config object as shown below.

Iis hosting

Web API can be hosted under IIS, in the same way as a web application. You have learned to create a Web API in the previous section. As you have seen there, a Web API is created with ASP.NET MVC project by default. So, when you host your MVC web application under IIS it will also host Web API that uses the same base address.

Self hosting


You can host a Web API as separate process than ASP.NET. It means you can host a Web API in console application or windows service or OWIN or any other process that is managed by .NET framework.

You need to do following steps in order to self-host a web API.

Where can i host my local rest api for free?

Something went wrong. Wait a moment and try again.

Возможности api

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

Возможности по своей сути позволяют создать собственный уникальный сервис по предоставлению облачных услуг (это настоящий White Label), для ваших клиентов только вы будете конечным поставщиком услуг и VPS.house нигде фигурировать не будет. Цены же на услуги вы в праве выставлять произвольно.

Принимая во внимание тот факт, что в условиях высокой конкуренции и ценового демпинга может быть не сильно интересно создавать с нуля изолированный сервис и раскручивать его, а вот внедрить возможность получениявиртуального сервера клиентом, который уже использует какие-либо ваши услуги – решение, которое уже не раз было воплощено в жизнь партнёрами VPS.house.

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

Также ко всем серверам, создаваемым через API мы предлагаем воспользоваться промокодом, дающим вечную скидку 5% на любое количество серверов!

Узнать подробнее о нашем API, а также ознакомиться с документацией с примерами вы можете на нашем сайте.

VPS.house – это не сервис по предоставлению услуг «как есть», мы всегда готовы помочь решить любые нестандартные задачи вашего бизнеса. А круглосуточная служба поддержки готова профессионально проконсультировать вас по самым сложным вопросам, касающихся облачных технологий.

Как это работает

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

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

Для реализации API мы использовали тот же механизм. Когда клиент посылает запрос к API, формируется задание, затем его «подхватывает» обработчик, после чего уже происходит исполнение. Отследить состояние конкретной задачи можно, обратившись к методу «Действие над сервером»:

Как получить api-ключ

API-ключ создается автоматически и доступен в окружении облачных серверов во вкладке Настройки:

Партнёрская программа

Мы стараемся не делать революций из привычных вещей, наша программа для партнёрских проектов – классическое решение в современном и удобном исполнении, предлагающая 2 варианта взаимодействия между нами, вами и вашими клиентами (пользователями):

Стартовые условия партнёрской программы предполагают получение

10% отчислений

от расходов приведённого клиента. По мере роста количества активных серверов от таких клиентов процент отчислений увеличивается

до 20%

Создавая собственные промокоды, вы можете выбрать процент скидки для самого клиента от базовой стоимости сервера в конфигураторе на сайте. Этот процент будет вычтен из вашего партнёрского процента. Так вы можете сразу предоставлять скидку для своих клиентов на все 10%, а самому начать получать доход только тогда, когда количество клиентов увеличится и вместе с ним процент партнёрских отчислений по вашему аккаунту.

Для участия в партнёрской программе не обязательно самому быть клиентом VPS.house и держать какой-то сервер, достаточно просто создать аккаунт и активировать партнёрскую программу в личном кабинете.

Подробнее об условиях партнёрской программы вы можете прочитать на нашем сайте.

Получение и использование токена

Постоянный токен авторизации можно получить в личном кабинете в просмотре информации пользователя аккаунта:

Web API Hosting
Токен меняется при изменении пароля пользователя.

Для получения токена авторизации с помощью API необходимо пройти аутентификацию,
отправив POST-запрос в локацию /v1/auth с JSON-объектом, внутри которого будут
указаны параметры email и password (данные пользователя, с которым вы входите в
панель управления), например, так:

Результатом вернётся JSON-объект с новым токеном:

{
    "status": "ok",
    "status_msg": "Token info",
    "data": {
      "token": "024ccf95e8544260c0f1f78a6da38d376d8636f6baa326c0da7b0a2c207693ad"
    }
}

После этого полученный токен можно использовать для любых запросов к API, например, чтобы получить баланс аккаунта:

Результатом вернётся JSON-объект с данными о балансе:

{
    "status": "ok",
    "status_msg": "Balance information",
    "data": {
      "real": 2818,
      "bonus": 1240,
      "partner": 790
    }
}

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

Список доступных действий

Информация об аккаунте и прогнозе отключения, GET /v1/account

Возвращается ID и название аккаунта, дата создания и прогноз отключения (дата, до которой достаточно средств на оплату всех услуг):

Например, в результате возвращается JSON-объект:

Данные прогноза отключения и баланса кэшируются и изменяются только в случае реальных изменений по счетам или услугам. В объекте can будут перечислены некоторые возможности аккаунта: возможность создавать новых пользователей, заказывать новые услуги, выводить деньги со счетов.

Лимиты аккаунта, GET /v1/account.limit

Возвращаются все доступные лимиты по типам услуг:

Например, в результате возвращается JSON-объект:

{
  "status": "ok",
  "status_msg": "Account limits information",
  "data": {
    "server": {
      "max": 1,
      "now": 1
    },
    "server-ip4": {
      "max": 100,
      "child_max": 10,
      "now": 1
    },
    …
  }
}

Для каждого типа услуги будет возвращён объект, в котором указаны ограничения: max – максимум услуг такого типа в аккаунте, child_max – максимум услуг такого типа в родительской услуге (например, количество IPv4-адресов для одного сервера), now – количество заказанных услуг такого типа в аккаунте на данный момент.

Список дата-центров, GET /v1/datacenter

Возвращается список дата-центров, например:

Например, в результате возвращается JSON-объект:

{
  "status": "ok",
  "status_msg": "Datacenters list",
  "data": [
    {
      "id": 1,
      "name": "Дата-центр RU",
      "country": "ru",
      "active": true
    },
    {
      "id": 2,
      "name": "Дата-центр NL",
      "country": "nl",
      "active": false
    }
  ]
}

Данные представляют из себя массив объектов, флаг active указывает на возможность заказа сервера в конкретном дата-центре.

Список шаблонов ОС, GET /v1/template

Список шаблонов операционных систем, доступных для установки или переустановки сервера, например:

Например, в результате возвращается JSON-объект:

{
  "status": "ok",
  "status_msg": "OS templates list",
  "data": [
    {
      "id": 1,
      "name": "CentOS 7 x64",
      "image": "http://api2.vdsina.ru/uploads/template/43a7db318bd2ea21eacabe44abf62fff.png",
      "active": true,
      "has_instruction": false,
      "ssh-key": true,
      "server-plan": [
        1,
        2
      ],
      "limits": {
        "cpu": {
          "min": 1
        },
        "ram": {
          "min": 1
        },
        "disk": {
          "min": 5
        }
      }
    },
    {
      "id": 2,
      "name": "Windows Server 2022",
      "image": "http://api2.vdsina.ru/uploads/template/2c96181313b73d1ee22075fc41c05fef.png",
      "active": true,
      "has_instruction": false,
      "ssh-key": false,
      "server-plan": [
        2,
        3
      ],
      "limits": {
        "cpu": {
          "min": 2
        },
        "ram": {
          "min": 4
        },
        "disk": {
          "min": 20
        }
      }
    }
  ]
}

Данные представляют из себя массив объектов, флаг active указывает на возможность заказа сервера с конкретным шаблоном ОС.
Флаг ssh-key указывает на возможность использовать авторизацию по пользовательскому ключу SSH в конкретном шаблоне.
Массив server-plan содержит в себе ID тарифных планов, для которых доступна установка сервера с конкретным шаблоном ОС.

Также необходимо обратить внимание на минимальные системные требования шаблона ОС: в объекте limits указаны следующие
параметры: минимальное количество процессоров/ядер – cpu, минимальное количество
оперативной памяти в ГБ – ram, минимальное количество места для дискового раздела в ГБ – disk.

Список тарифных планов для серверов, GET /v1/server-plan/ID

Список тарифных планов для серверов возвращается по ID группы тарифных планов, например:

Например, в результате возвращается JSON-объект:

{
  "status": "ok",
  "status_msg": "Server plans list",
  "data": [
    {
      "id": 2,
      "name": "Plan-2",
      "cost": 20,
      "period": "day",
      "period_name": "день",
      "min_money": 100,
      "can_bonus": true,
      "description": "Test Plan",
      "data": {
        "cpu": {
          "type": "integer",
          "title": "vCPU",
          "value": 1,
          "for": "core"
        },
        "ram": {
          "type": "float",
          "title": "RAM",
          "value": 1,
          "bytes": 1073741824,
          "for": "ГБ"
        },
        "disk": {
          "type": "integer",
          "title": "NVMe",
          "value": 30,
          "bytes": 32212254720,
          "for": "ГБ"
        },
        "traff": {
          "type": "float",
          "title": "Трафик",
          "value": 32,
          "bytes": 35184372088832,
          "for": "ТБ"
        }
      },
      "server-group": 1,
      "selected": false,
      "active": true,
      "enable": true,
      "has_params": false,
      "backup": {
        "cost": 0.1,
        "full_cost": 0.1,
        "period": "day",
        "period_name": "день",
        "for": "ГБ"
      }
    },
    {
      "id": 4,
      "name": "Plan-4",
      "cost": 30,
      "period": "day",
      "period_name": "день",
      "min_money": 1000,
      "can_bonus": true,
      "description": "TEST",
      "data": {
        "cpu": {
          "type": "integer",
          "title": "vCPU",
          "value": 2,
          "for": "core"
        },
        "ram": {
          "type": "float",
          "title": "RAM",
          "value": 1,
          "bytes": 1073741824,
          "for": "ГБ"
        },
        "disk": {
          "type": "integer",
          "title": "NVMe",
          "value": 30,
          "bytes": 32212254720,
          "for": "ГБ"
        },
        "traff": {
          "type": "float",
          "title": "Трафик",
          "value": 32,
          "bytes": 35184372088832,
          "for": "ТБ"
        }
      },
      "server-group": 1,
      "selected": true,
      "active": false,
      "enable": false,
      "has_params": false,
      "backup": {
        "cost": 0.1,
        "full_cost": 0.1,
        "period": "day",
        "period_name": "день",
        "for": "ГБ"
      }
    }
  ]
}

Данные представляют из себя массив объектов, флаги active и enable указывают на возможность заказа сервера с конкретным тарифным планом.
Объект data содержит в себе краткие характеристики тарифного плана.
Поля cost и period содержат в себе цену тарифа за указанный период (обычно 1 день).
Поле min_money указывает, сколько средств нужно иметь на основном балансе для заказа тарифа, флаг can_bonus указывает на возможность оплачивать тариф средствами с бонусного баланса.

В объекте data хранится полный состав тарифного плана: cpu – количество процессоров/ядер, ram – количество оперативной памяти в ГБ, disk – количество
дискового пространства в ГБ, traff – количество включённого в тарифный план трафика на 1 календарный месяц в ГБ.

В параметре has_params хранится признак тарифа-конструктора, в таком случае
дополнительно у тарифа может быть объект params с данными о возможном составе
итогового тарифа и стоимости отдельных параметров тарифного плана. Общая стоимость
такого тарифа складывается из стоимости самого тарифного плана и совокупной
стоимости всех добавленных параметров тарифа.

ISO для серверов

Доступные методы:

  • GET /v1/iso – список всех загруженных клиентом ISO-образов
  • GET /v1/iso/ID – просмотр данных ISO, ID услуги ISO
  • GET /v1/iso/KEY – просмотр состояния загрузки ISO с ключом KEY
  • POST /v1/iso – начало загрузки нового файла ISO, доступные поля: url
  • POST /v1/iso/KEY – создание нового ISO с ключом загруженного файла KEY
  • DELETE /v1/iso/ID – удаление ISO, ID услуги ISO

Возможные статусы ISO:

Дополнительно к статусу ISO может быть дополнительный статус в поле status_text. В нём содержится описание действия, которое выполняется с ISO в данный момент.

Процесс загрузки нового файла и создания услуги ISO:

  • передаём в POST /v1/iso новый URL для загрузки в доступном поле url, в результате, в объекте data в поле id получаем идентификатор загрузки KEY, либо ошибочные статусы с указанием текста ошибки
  • делаем периодический запрос GET /v1/iso/KEY с идентификатором загрузки KEY, проверяя, загрузился ли файл: в объекте data проверяем поле status на значение «done», это означает, что файл скачан, либо возвращается значение «processing» с указанием прогресса загрузки, либо ошибочные статусы с указанием текста ошибки
  • создаём услугу ISO из загруженного файла POST /v1/iso/KEY с идентификатором загрузки KEY, в результате, в объекте data в поле id получаем идентификатор ID услуги ISO
Серверы

Доступные методы:

  • GET /v1/server – список всех серверов клиента, в случае, если не хватает каких-либо данных о сервере в списке, необходимо получить данные о конкретном сервере отдельным запросом по его ID
  • GET /v1/server/ID – просмотр сервера и его параметров, ID услуги сервера
  • PUT /v1/server/ID – правка данных, ID услуги сервера, доступные поля: name, autoprolong
  • POST /v1/server – создание нового сервера, доступные поля: datacenter, server-plan, template, ssh-key, iso, backup, host, name, cpu, ram, disk, ip4
  • DELETE /v1/server/ID – удаление сервера со всеми его данными и зависимыми услугами, ID услуги сервера
ПолеПризнакОписание, тип
nameнеобязательноСтрока, текстовое название услуги для удобства клиента
autoprolongнеобязательно0 или 1, признак автоматического продления услуги
datacenterобязательноЧисло, ID дата-центра, может быть недоступен для заказа при отсутствии ресурсов
server-planобязательноЧисло, ID тарифного плана, должен быть из нужной группы
templateнеобязательноЧисло, ID шаблона ОС для установки, взаимоисключающий параметр c backup, шаблон ОС может быть недоступен для конкретных тарифных планов
ssh-keyнеобязательноЧисло, ID SSH-ключа для пользователя root в поддерживаемых ОС, игнорируется в случае восстановления из резервной копии
backupнеобязательноЧисло, ID услуги резервной копии, из которой нужно произвести восстановление после создания услуги сервера, взаимоисключающий параметр c template, резервная копия должна находиться в том же дата-центре, что и создаваемый сервер и быть не более размера диска выбранного тарифного плана
isoнеобязательноЧисло, ID услуги ISO, из которой нужно произвести установку после создания услуги сервера, взаимоисключающий параметр c template
hostнеобязательноСтрока, текстовое значение для hostname сервера, должно быть правильным доменным именем, игнорируется в случае восстановления из резервной копии
cpuнеобязательноЧисло, количество виртуальных процессоров для создаваемого сервера, если тарифный план поддерживает настройку параметров
ramнеобязательноЧисло, количество ГБ оперативной памяти для создаваемого сервера, если тарифный план поддерживает настройку параметров
diskнеобязательноЧисло, количество ГБ для дискового раздела для создаваемого сервера, если тарифный план поддерживает настройку параметров
ip4необязательно0 или 1, признак подключения IPv4-адреса при создании сервера, если тарифный план поддерживает настройку параметров

При создании сервера, необходимо учитывать минимальные системные требования
шаблона ОС для установки на сервере, сравнивая параметры из состава тарифа с
минимальными параметрами шаблона ОС.

Пример получения информации о сервере:

И пример возвращаемого ответа в формате JSON:

{
  "status": "ok",
  "status_msg": "Server information",
  "data": {
    "id": 1345,
    "name": "v1301.hosted-by-vdsina.ru",
    "status": "active",
    "created": "2022-07-11 20:05:49",
    "updated": "2022-07-12 17:50:02",
    "end": "2022-07-12 20:08:27",
    "autoprolong": true,
    "ip": [
      {
        "id": 1574,
        "ip": "185.251.37.62",
        "type": "4",
        "host": "host-185-251-37-62.hosted-by-vdsina.ru",
        "gateway": "185.251.37.1",
        "netmask": "255.255.255.0",
        "mac": "52:54:00:00:05:41"
      }
    ],
    "ip_local": null,
    "host": "v1301.hosted-by-vdsina.ru",
    "data": {
      "cpu": {
        "type": "integer",
        "title": "vCPU",
        "value": 1,
        "for": "core",
        "total": 4
      },
      "ram": {
        "type": "float",
        "title": "RAM",
        "value": 1,
        "bytes": 1073741824,
        "for": "ГБ",
        "total": 8,
        "total_bytes": 8589934592
      },
      "disk": {
        "type": "integer",
        "title": "NVMe",
        "value": 1,
        "bytes": 1073741824,
        "for": "ГБ",
        "total": 10,
        "total_bytes": 10737418240
      },
      "traff": {
        "type": "float",
        "title": "Трафик",
        "value": 32,
        "bytes": 35184372088832,
        "for": "ТБ"
      }
    },
    "server-plan": {
      "id": 44,
      "name": "Минималь "
    },
    "server-group": {
      "id": 5,
      "name": "VDS"
    },
    "template": {
      "id": 22,
      "name": "Ubuntu 16.04"
    },
    "datacenter": {
      "id": 29,
      "name": "Serverius",
      "country": "nl"
    },
    "ssh-key": null,
    "can": {
      "reboot": true,
      "update": true,
      "delete": true,
      "prolong": false,
      "backup": true,
      "ip_local": true
    },
    "bandwidth": {
      "current_month": "20987612334",
      "past_month": "0"
    }
  }
}

Возможные статусы сервера:

Дополнительно к статусу сервера может быть дополнительный статус в поле status_text. В нём содержится описание действия, которое выполняется с сервером в данный момент.

В объекте data для сервера показывается его полная конфигурация согласно тарифу и
содержимому тарифа: cpu – количество процессоров/ядер, ram – количество оперативной
памяти в ГБ, disk – количество дискового пространства в ГБ, traff – количество
включённого в тарифный план трафика на 1 календарный месяц в ГБ. В параметрах value
и total указаны значения из базового тарифного плана и общие значения, соответственно,
если тарифный план был настроен с дополнительными параметрами.

Перезагрузка сервера, PUT /v1/server.reboot/ID

Перезагрузка сервера по ID услуги сервера. Дополнительно можно передать поле type, который может принимать значения soft или hard. При установке type=soft (по умолчанию), серверу будет отправлен сигнал на перезагрузку. При установке type=hard, операционной системе будет отправлен сигнал завершения работы, через некоторое время будет произведена проверка статуса сервера, если он выключен, то он снова будет запущен, в противном случае сервер будет выключен принудительно (с возможной потерей данных в работающей системе), а после этого снова запущен.

Изменение тарифного плана сервера, PUT /v1/server.plan/ID

Изменение (расширение) тарифного плана сервера по ID услуги сервера. Изменение тарифного плана на младший технически невозможно.
Дополнительно нужно передать поле server-plan с числовым ID нового тарифного плана. Сервер будет перезапущен.
После смены тарифного плана ресурсы будут добавлены автоматически, расширить файловую систему на весь новый раздел диска необходимо вручную средствами ОС.

ПолеПризнакОписание, тип
server-planобязательноЧисло, ID тарифного плана, должен быть из нужной группы
cpuнеобязательноЧисло, количество виртуальных процессоров для сервера, если тарифный план поддерживает настройку параметров
ramнеобязательноЧисло, количество ГБ оперативной памяти для сервера, если тарифный план поддерживает настройку параметров
diskнеобязательноЧисло, количество ГБ для дискового раздела для сервера, если тарифный план поддерживает настройку параметров
Резервная копия сервера

Доступные методы:

  • GET /v1/backup – список всех услуг с резервными копиями
  • GET /v1/backup/ID – подробная информация услуги с резервной копией, ID услуги резервной копии
  • POST /v1/backup/ID – создание новой резервной копии сервера, ID услуги сервера, без дополнительных полей
  • PUT /v1/backup/ID – правка данных услуги резервной копии сервера, ID услуги резервной копии, доступны поля: name, autoprolong
  • DELETE /v1/backup/ID – удаление услуги резервной копии со всеми данными, ID услуги резервной копии
  • PUT /v1/server.backup/ID – восстановление резервной копии на сервер, ID услуги сервера, необходимое поле: backup
  • POST /v1/server.backup/ID – создание новой резервной копии сервера, ID услуги сервера, без дополнительных полей
  • PUT /v1/backup.copy/ID – копирование резервной копии в другой дата-центр, ID услуги резервной копии, необходимое поле: datacenter
ПолеПризнакОписание, тип
nameнеобязательноСтрока, текстовое название услуги для удобства клиента
autoprolongнеобязательно0 или 1, признак автоматического продления услуги
backupобязательноЧисло, ID услуги резервной копии, из которой нужно произвести восстановление услуги сервера, резервная копия должна находиться в том же дата-центре, что и сервер и быть не более размера диска выбранного тарифного плана
datacenterобязательноЧисло, ID дата-центра, в который нужно произвести копирование услуги резервной копии

Возможные статусы резервной копии:

Дополнительно к статусу резервной копии может быть дополнительный статус в поле status_text. В нём содержится описание действия, которое выполняется с резервной копией в данный момент.

Настройка резервных копий сервера по расписанию

Доступные методы:

  • GET /v1/server.schedule/ID – список расписаний, ID услуги сервера
  • POST /v1/server.schedule/ID – создание расписания, ID услуги сервера, доступны поля: type, day, hour, left
  • DELETE /v1/server.schedule/ID – удаление расписания, ID услуги сервера, доступно поле: type, если не указать тип расписания, будут удалены все расписания
ПолеПризнакОписание, тип
typeобязательноСтрока, тип расписания, варианты: day, week, month, для одного сервера может быть создано не более одного расписания каждого типа
dayнеобязательноЧисло, день создания резервной копии (число месяца (1-30), в случае месячной копии или номер дня недели (1-7) в случае недельной копии), поле неприменимо к ежедневной резервной копии
hourнеобязательноЧисло, час создания резервной копии (только ночные часы: 1-6)
leftнеобязательноЧисло, количество сохраняемых копий (1-4)
Дополнительные IP-адреса для сервера

Доступные методы:

  • GET /v1/server-ip – список всех услуг с дополнительными IP для серверов
  • POST /v1/server-ip/ID – заказ дополнительных IP для сервера, ID услуги сервера, необходимые поля: type, count
  • PUT /v1/server-ip/ID – удаление дополнительных IP-адресов для сервера по списку, ID услуги дополнительных IP, дополнительные поля: type, delete
  • DELETE /v1/server-ip/ID – удаление услуги с дополнительными IP для сервера, ID услуги дополнительного IP
  • GET /v1/server.ip/ID – список услуг с дополнительными IP для сервера, ID услуги сервера
  • POST /v1/server.ip/ID – заказ дополнительных IP для сервера, ID услуги сервера, необходимые поля: type, count
  • PUT /v1/server.ip/ID – удаление дополнительных IP-адресов для сервера по списку, ID услуги сервера, дополнительные поля: type, delete
  • GET /v1/ip – список всех присвоенных клиенту IP-адресов (IP-пул)
  • GET /v1/ip/ID – подробная информация об адресе в IP-пуле, ID адреса

Возможные статусы услуги с дополнительными IP:

Дополнительно к статусу услуги с дополнительными IP может быть дополнительный статус в поле status_text. В нём содержится описание действия, которое выполняется с услугой в данный момент.

Статистика сервера, GET /v1/server.stat/ID

Получение данных статистики для сервера по ID услуги. По умолчанию выводится информация за последние 30 дней. При указании параметров from и to можно получить вывод статистики за указанный период, в параметрах допустимо указывать дату/время в стандартных форматах. Пример получения информации:

И пример возвращаемого ответа в формате JSON:

{
  "status": "ok",
  "status_msg": "Server stat information",
  "data": [
    {
      "dt": "2022-07-12 00:00:00",
      "stat": {
        "cpu": 2.0839426931666667,
        "disk_reads": 1,
        "disk_writes": 11,
        "lnet_rx": 0,
        "lnet_tx": 0,
        "vnet_rx": 9948,
        "vnet_tx": 103054
      }
    },
    ...
  ]
}

Статистика выводится блоками через каждый час. Значения можно расшифровать: cpu – средняя загрузка процессора в процентах за сегмент времени, disk_reads/disk_writes – количество операций чтения/записи за указанный сегмент времени, lnet_rx/lnet_tx – принятый и переданный трафик по локальной сети в байтах за сегмент времени, vnet_rx/vnet_tx – принятый и переданный трафик во внешней сети (интернет) в байтах.

Операции по балансам аккаунта

Доступные методы:

  • GET /v1/operation – список всех операций всех типов, доступные поля: from, to
  • GET /v1/operation/ID – подробная информация об операции, ID операции
  • POST /v1/operation – создание новой операции пополнения баланса аккаунта, доступные поля: summ
  • DELETE /v1/operation/ID – удаление неоплаченной операции пополнения, ID операции

Пример получения информации:

И пример возвращаемого ответа в формате JSON:

{
  "status": "ok",
  "status_msg": "Operation list",
  "data": [
    {
      "id": 2177311,
      "purse": "real",
      "type": 1,
      "status": 0,
      "summ": "1000",
      "created": "2022-07-18 14:39:29",
      "updated": "2022-07-18 14:48:28",
      "comment": "Пополнение баланса",
      "payment": {
        "type": "webmoney",
        "name": "WebMoney R"
      },
      "service": null,
      "paylink": "https://cp.vdsina.ru/operation/select/41cd63800a8beb1961527ddeebf530a521391f"
    },
    {
      "id": 2170929,
      "purse": "real",
      "type": -1,
      "status": 1,
      "summ": "8.3",
      "created": "2022-07-17 14:24:25",
      "updated": "2022-07-17 14:24:25",
      "comment": "Списание за услугу Сервер 1 ГБ #137841 – api test server",
      "payment": null,
      "service": {
        "id": 137841
      },
      "paylink": null
    },
    ...
  ]
}

Краткое описание некоторых возвращаемых полей:
purse – тип баланса (real – основной баланс, bonus – бонусный баланс, partner – партнёрский баланс), type – тип операции (1 – зачисление, -1 – списание), status – статус операции (0 – не оплачено, 1 – оплачено), summ – сумма операции (приведено к строковому типу). Если это операция пополнения и её можно оплатить, у такой операции есть поле paylink, в нём содержится ссылка на процесс оплаты, процесс не требует аутентификации в панели управления и ссылка может быть передана кому угодно, ссылка уникальная и одноразовая, если операция оплачена, повторно оплатить по такой ссылке нельзя.

Управление DNS

Доступные методы:

  • GET /v1/dns – список всех услуг с размещёнными в DNS доменами
  • GET /v1/dns/ID – подробная информация услуги с доменом в DNS, ID услуги c доменом
  • POST /v1/dns – создание нового домена в DNS, доступные поля: name, ip
  • DELETE /v1/dns/ID – удаление услуги домена в DNS, ID услуги с доменом
  • GET /v1/dns.record/ID – список DNS-записей для услуги с доменом, ID услуги c доменом
  • POST /v1/dns.record/ID – создание новой DNS-записи, ID услуги с доменом, доступные поля: host, type, priority, tag, value
  • PUT /v1/dns.record/ID – правка существующей DNS-записи, ID записи DNS, доступные поля: priority, tag, value
  • DELETE /v1/dns.record/ID – удаление существующей DNS-записи, ID записи DNS
ПолеПризнакОписание, тип
nameобязательноСтрока, имя домена для размещения в DNS
ipнеобязательноСтрока, адрес IPv4, на основе которого нужно создать DNS-записи по умолчанию
hostобязательноСтрока, имя DNS-записи, либо с постфиксом домена, либо только префикс, доступны также @ и * в имени, должно быть правильным именем домена в итоге
typeобязательноСтрока, тип записи, один из списка: A, AAAA, CNAME, MX, NS, SRV, CAA, TXT
valueобязательноСтрока, значение DNS-записи, в зависимости от типа разные проверки, например для записи типа A значение должно быть правильным IPv4-адресом
tagнеобязательноСтрока, необходимый параметр для записей типа CAA, может быть одним из списка: issue, issuewild, iodef, unknown
priorityнеобязательноПоложительное число, приоритет/флаг DNS-записи для поддерживаемых типов (MX, SRV, CAA)

Возможные статусы DNS-доменов:

Дополнительно к статусу DNS-домена может быть дополнительный статус в поле status_text. В нём содержится описание действия, которое выполняется с DNS-доменом в данный момент.

Список шаблонов

Если запрос составлен корректно и заявка на активацию новой услуги принята, Вы получите в ответ что-то типа этого:

Ниже в качестве бонуса прикладываю несколько скриптов для заказа произвольного количества виртуальных серверов для консоли Linux и Windows.Если в комментариях будет проявлен интерес к развитию темы работы с API нашего биллинга, мы постараемся описать ее более подробно, с использованием различных языков программирования и программных продуктов для интеграции.

Пример на BASH

Оцените статью
Хостинги