Перейти к содержанию

presets.php

В этой статье

Модуль управления пресетами: получение списков, поиск подходящих серверов, группировка и отображение информации о конфигурациях

Методы API

Метод Действие Описание
add создание пресета Создает новый кастомный пресет с заданными характеристиками оборудования и ценой.
clone клонирование пресета Создает дубликат существующего пресета с новым именем.
groups получение групп Возвращает список групп пресетов.
history получение истории Возвращает историю действий, связанных с пресетами за указанный период или по типу.
info получение информации о пресетах Возвращает список пресетов с указанием цен в выбранных валютах.
list получение списка пресетов Возвращает список доступных пресетов с учетом локации и прав доступа.
remove удаление пресета Удаляет пресет и связанные с ним теги.
search поиск серверов Возвращает список серверов, подходящих под параметры указанного пресета.
show показ пресета Возвращает детальную информацию о конкретном пресете.

presets/add

Создает новый кастомный пресет с заданными характеристиками оборудования и ценой.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action ✅ string Идентификатор метода: add
token ✅ string Токен авторизации администратора.
params[name] ✅ string Название пресета.
params[active] ❌ boolean Статус активности пресета. По умолчанию -1.
params[virtual] ❌ boolean Флаг виртуального типа сервера. По умолчанию -1.
params[monthly_ru] ❌ number Ежемесячная стоимость в RUB. По умолчанию -1.
params[monthly_com] ❌ number Ежемесячная стоимость в USD (коммерческая). По умолчанию -1.
params[monthly_usd] ❌ number Ежемесячная стоимость в USD. По умолчанию -1.
params[description] ❌ string Описание пресета.
params[cpu] ❌ string Процессор (CPU).
params[ram] ❌ number Объем оперативной памяти. По умолчанию -1.
params[hdd] ❌ number Объем жесткого диска. По умолчанию -1.
params[gpu] ❌ string Видеокарта (GPU).
params[locations] ❌ array Список локаций. Принимает несколько значений: locations[]=val1&locations[]=val2
params[price] ❌ string Цена пресета в формате JSON.
params[locations_openstack] ❌ array Локации для OpenStack. Принимает несколько значений: locations_openstack[]=val1&locations_openstack[]=val2

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

curl -s "https://invapi.hostkey.ru/presets.php" -X POST \
--data "action=add" \
--data "token=YOUR_TOKEN" \
--data "params[name]=My Custom Preset" \
--data "params[cpu]=Intel Xeon" \
--data "params[ram]=32" \
--data "params[locations[]=NL]" \
--data "params[locations[]=DE]"
Пример успешного ответа
{
"result": "OK",
"action": "add",
"id": 123,
"name": "Custom Preset",
"virtual": true,
"monthly_ru": 5000,
"monthly_com": 60,
"monthly_usd": 55,
"price": "{\"amount\": 10}",
"description": "High performance preset",
"cpu": "Intel Xeon",
"ram": 32,
"hdd": 512,
"gpu": "RTX 3080",
"locations": [
"NL",
"DE"
],
"locations_openstack": [
"AMS"
]
}
Примеры ошибок
{
"code": -1,
"message": "$module/$action: preset name already exists"
}

presets/clone

Создает дубликат существующего пресета с новым именем.

HTTP-метод: POST

Параметры:

action ✅ string Идентификатор метода: clone
token ✅ string Токен авторизации администратора.
params[id] ✅ integer Идентификатор пресета для клонирования.
params[name] ✅ string Новое имя для клонированного пресета.
name ❌ string Новое имя для клонируемого пресета.

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

curl -s "https://invapi.hostkey.ru/presets.php" -X POST \
--data "action=clone" \
--data "token=HOSTKEY_TOKEN" \
--data "params[id]=123" \
--data "params[name]=NewPresetName"
Пример успешного ответа
{
"result": "OK",
"action": "clone",
"id": 124
}
Примеры ошибок
{
"code": -1,
"message": "$module/$action: preset $name already exists"
}

presets/groups

Возвращает список групп пресетов.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action ✅ string Идентификатор метода: groups
token ❌ string Токен авторизации.

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

curl -s "https://invapi.hostkey.ru/presets.php" -X POST \
--data "action=groups"
Пример успешного ответа
{
"result": "OK",
"action": "groups",
"data": [
{
"id": 1,
"name": "Standard Group"
},
{
"id": 2,
"name": "Premium Group"
}
]
}
Примеры ошибок
{
"code": -1,
"message": "Error fetching groups"
}

presets/history

Возвращает историю действий, связанных с пресетами за указанный период или по типу.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action ✅ string Идентификатор метода: history
token ✅ string Авторизационный токен пользователя
type ❌ array<string> Тип истории. Принимает несколько значений: type[]=val1&type[]=val2
date_from ❌ string Дата начала периода для фильтрации истории
all ❌ boolean Флаг получения всей истории без учета даты

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

curl -s "https://invapi.hostkey.ru/presets.php" -X POST \
--data "action=history" \
--data "token=HOSTKEY_TOKEN" \
--data "type[]=val1" \
--data "type[]=val2"
Пример успешного ответа
{
"result": "OK",
"module": "presets",
"action": "history",
"history": [
{
"id": 123,
"component": "presets",
"type": "update",
"date_from": "2024-05-01T10:00:00Z"
}
]
}
Примеры ошибок
{
"code": -1,
"message": "Ошибка получения истории"
}

presets/info

Возвращает список пресетов с указанием цен в выбранных валютах.

HTTP-метод: GET

Параметры:

Параметр Обязательный Тип Описание
action ✅ string Идентификатор метода: info
currencies ❌ string Список валют для отображения цен через запятую.
params[currencies] ❌ array<string> Список валют для отображения цен через запятую.
token ❌ string Уникальный идентификатор сессии или токен авторизации для выполнения запроса.

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

curl -s "https://invapi.hostkey.ru/presets.php" -X GET \
--data "action=info" \
--data "currencies=EUR,RUB"
Пример успешного ответа
{
"result": "OK",
"action": "info",
"presets": [
{
"id": 1,
"name": "Basic",
"price": {
"EUR": 10.0,
"RUB": 950.0
}
}
]
}
Примеры ошибок
{
"code": -1,
"message": "Error fetching info"
}

presets/list

Возвращает список доступных пресетов с учетом локации и прав доступа.

HTTP-метод: GET

Параметры:

Параметр Обязательный Тип Описание
action ✅ string Идентификатор метода: list
token ❌ string Токен авторизации.
location ❌ string Код локации или ID локации для фильтрации доступных пресетов.

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

curl -s "https://invapi.hostkey.ru/presets.php" -X GET \
--data "action=list"
Пример успешного ответа
{
"result": "OK",
"action": "list",
"presets": [
{
"id": 5,
"name": "Standard VPS",
"available": 10,
"price": {
"EUR": 5.0,
"RUB": 480.0
},
"tags": [
{
"id": 1,
"name": "ssd"
}
],
"total": 0,
"server_type": "Instant Server"
}
]
}
Примеры ошибок
{
"code": -1,
"message": "no presets found"
}

presets/remove

Удаляет пресет и связанные с ним теги.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action ✅ string Идентификатор метода: remove
token ✅ string Токен авторизации администратора.
id ✅ integer Идентификатор пресета для удаления.

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

curl -s "https://invapi.hostkey.ru/presets.php" -X POST \
--data "action=remove" \
--data "token=HOSTKEY_TOKEN" \
--data "id=123"
Пример успешного ответа
{
"result": "OK",
"action": "remove",
"id": 123
}
Примеры ошибок
{
"code": -1,
"message": "$module/$action: failed to remove preset"
}

presets/search

Возвращает список серверов, подходящих под параметры указанного пресета.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action ✅ string Идентификатор метода: search
token ✅ string Токен авторизации
params[name] ❌ string Имя пресета для поиска.
params[scope] ❌ string Область поиска. Допустимые значения: free
params[location] ❌ string Локация (код или ID дата-центра) для фильтрации серверов.
name ❌ string Название пресета для поиска подходящих серверов.
location ❌ string Географическое местоположение или дата-центр сервера.

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

curl -s "https://invapi.hostkey.ru/presets.php" -X POST \
--data "action=search" \
--data "token=HOSTKEY_TOKEN" \
--data "params[name]=Standard" \
--data "params[scope]=free"
Пример успешного ответа
{
"result": "OK",
"action": "search",
"servers": [
{
"id": 123,
"name": "Standard Preset",
"days_left": 30,
"due_date": "2024-12-31T23:59:59Z"
}
]
}
Примеры ошибок
{
"code": -2,
"message": "Invalid hash"
}

presets/show

Возвращает детальную информацию о конкретном пресете.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action ✅ string Идентификатор метода: show
token ❌ string Токен авторизации (опционально для публичного просмотра)
params[id] ❌ integer Идентификатор пресета.
params[name] ❌ string Имя пресета (используется как альтернатива ID).
params[limit] ❌ integer Лимит возвращаемых объектов.
name ❌ string Название пресета для фильтрации результатов.
limit ❌ string Максимальное количество возвращаемых записей в ответе.
web_ip ❌ string IP-адрес пользователя для проверки прав доступа и ограничений.

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

curl -s "https://invapi.hostkey.ru/presets.php" -X POST \
--data "action=show" \
--data "params[id]=10"
Пример успешного ответа
{
"result": "OK",
"action": "show",
"presets": {
"id": 10,
"name": "High Performance",
"tags": [
{
"id": 1,
"name": "ssd"
}
],
"virtual": true
}
}
Примеры ошибок
{
"code": -1,
"message": "JSON encode failed"
}

presets/show_suitable

Возвращает список серверов, которые подходят под параметры указанного пресета.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action ✅ string Идентификатор метода: show_suitable
token ✅ string Токен авторизации администратора.
id ✅ integer Идентификатор пресета для поиска подходящих серверов.
params[cpu] ❌ string Требуемый процессор. Допустимые значения: %
params[ram] ❌ number Требуемый объем RAM.
params[hdd] ❌ number Требуемый объем HDD. Допускается формат 'Xy' (например, 2x100 для диапазона).
params[gpu] ❌ string Требуемая видеокарта в формате 'количествоxмодель' (например, 1xGTX1080).
params[location] ❌ string Локация сервера. По умолчанию NL.
params[virtual] ❌ boolean Тип виртуализации (виртуальный/физический). По умолчанию -1.
name ❌ string Название пресета для подбора подходящих серверов.
virtual ❌ integer Признак использования виртуальной среды или физического сервера.
cpu ❌ string Требуемое количество ядер процессора или модель CPU.
ram ❌ integer Необходимый объем оперативной памяти в МБ.
hdd ❌ integer Требуемый объем дискового пространства в ГБ.
gpu ❌ string Спецификации или наличие графического ускорителя.
location ❌ string Географическое расположение дата-центра для размещения сервера.

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

curl -s "https://invapi.hostkey.ru/presets.php" -X POST \
--data "action=show_suitable" \
--data "token=HOSTKEY_TOKEN" \
--data "id=123"
Пример успешного ответа
{
"result": "OK",
"action": "show_suitable",
"id": 123,
"name": "High RAM Preset",
"servers": [
{
"id": 501,
"status": "available",
"location": "NL",
"type": "Component1_ref_tableName",
"owner": "Component1_owner",
"Condition_Component": "Component1_Condition_Component",
"ip": "IpAdress2_ip",
"config": "Component1_hwconfig",
"r_warehouse": "Rack1_warehouse",
"dc_warehouse": "dataCenter_warehouse",
"full_location": "Rack1_description-Component1_pos-Component1_id",
"days_left": 0,
"due_date": "2023-01-01"
}
]
}
Примеры ошибок
{
"code": -1,
"message": "$module/$action: failed to get sutable servers for preset id $name "
}

presets/speed_test_locations_get

Запрашивает список доступных локаций для проведения теста скорости.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action ✅ string Идентификатор метода: speed_test_locations_get
token ✅ string Токен авторизации.

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

curl -s "https://invapi.hostkey.ru/presets.php" -X POST \
--data "action=speed_test_locations_get" \
--data "token=HOSTKEY_TOKEN"
Пример успешного ответа
{
"result": "OK",
"action": "speed_test_locations_get",
"data": [
{
"id": 1,
"name": "Amsterdam",
"code": "NL",
"ip": "1.2.3.4"
},
{
"id": 2,
"name": "Frankfurt",
"code": "DE",
"ip": "5.6.7.8"
}
]
}
Примеры ошибок
{
"code": 403,
"message": "Forbidden: Access denied"
}

presets/update

Обновляет параметры существующего пресета.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action ✅ string Идентификатор метода: update
token ✅ string Токен авторизации администратора.
params[id] ✅ integer Идентификатор пресета для обновления.
params[name] ❌ string Новое имя пресета.
params[active] ❌ boolean Статус активности. По умолчанию -1.
params[virtual] ❌ boolean Тип виртуализации. По умолчанию -1.
params[monthly_ru] ❌ number Цена в RUB. По умолчанию -1.
params[monthly_com] ❌ number Цена в USD (коммерческая). По умолчанию -1.
params[monthly_usd] ❌ number Цена в USD. По умолчанию -1.
params[description] ❌ string Описание пресета.
params[cpu] ❌ string Процессор (CPU).
params[ram] ❌ number Объем оперативной памяти. По умолчанию -1.
params[hdd] ❌ number Объем жесткого диска. По умолчанию -1.
params[gpu] ❌ string Видеокарта (GPU).
params[locations] ❌ array Список локаций. Принимает несколько значений: locations[]=val1&locations[]=val2
params[price] ❌ string Цена в формате JSON (используется при оплате от имени администратора).
params[locations_openstack] ❌ array Локации для OpenStack. Принимает несколько значений: locations_openstack[]=val1&locations_openstack[]=val2
name ❌ string Название пресета для конфигурации сервера.
active ❌ integer Статус активности пресета (например, -1 для значения по умолчанию).
virtual ❌ integer Флаг виртуализации или тип среды исполнения.
monthly_ru ❌ integer Ежемесячная стоимость услуги в российских рублях.
monthly_com ❌ integer Ежемесячная стоимость услуги в коммерческой валюте.
monthly_usd ❌ integer Ежемесячная стоимость услуги в долларах США.
description ❌ string Текстовое описание характеристик пресета.
cpu ❌ string Количество или модель центрального процессора.
ram ❌ integer Объем оперативной памяти в МБ.
hdd ❌ integer Общий объем дискового пространства в ГБ.
gpu ❌ string Характеристики или наличие графического ускорителя.
locations ❌ string Список доступных локаций размещения оборудования.
locations_openstack ❌ string Список локаций для облачной инфраструктуры OpenStack.
price ❌ string Сложная структура стоимости в формате JSON.

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

curl -s "https://invapi.hostkey.ru/presets.php" -X POST \
--data "action=update" \
--data "token=HOSTKEY_TOKEN" \
--data "params[id]=123" \
--data "params[name]=New Preset Name" \
--data "params[locations[]=val1" \
--data "params[locations[]=val2"
Пример успешного ответа
{
"id": 123,
"name": "Updated Preset",
"active": true,
"virtual": true,
"monthly_ru": 0,
"monthly_com": 0,
"monthly_usd": 0,
"description": "Description",
"cpu": "CPU",
"ram": 1024,
"hdd": 512,
"gpu": "GPU",
"locations": [],
"price": "{}",
"locations_openstack": []
}
Примеры ошибок
{
"code": -1,
"message": "$module/$action: incorrect JSON price $price set for preset $name"
}
question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×