presets.php¶
Модуль управления пресетами серверов: получение списков, группировка, поиск подходящих серверов и детализация конфигураций с ценами в разных валютах.
Методы API¶
| Метод | Действие | Описание |
|---|---|---|
groups | получение групп | Возвращает список доступных групп пресетов |
info | получение информации о пресетах | Возвращает список пресетов с ценами в указанных валютах по умолчанию EUR и RUB |
list | получение списка пресетов | Возвращает список доступных пресетов серверов с фильтрацией по локации и правам доступа |
search | поиск серверов | Поиск подходящих серверов для конкретного пресета по имени, области видимости и локации. |
show | получение пресета | Возвращает информацию о пресете по ID или имени. Поддерживает фильтрацию и лимиты. |
presets/groups¶
Возвращает список доступных групп пресетов
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: groups |
| token | ❌ | string | Токен авторизации (не требуется для публичных действий, но рекомендуется для логирования) |
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Internal server error" }
```
presets/info¶
Возвращает список пресетов с ценами в указанных валютах по умолчанию EUR и RUB
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: info |
| currencies | ❌ | string | Список валют через запятую (например, EUR,RUB). По умолчанию: EUR,RUB |
Пример успешного ответа
{
"result": "OK",
"action": "info",
"presets": [
{
"id": 1,
"name": "Basic VPS",
"cpu": 2,
"ram": 4096,
"hdd": 50,
"gpu": null,
"virtual": 1,
"active": 1,
"description": "Basic virtual server configuration",
"locations": "NL,DE",
"price": {
"EUR": 10.0,
"RUB": 950.0
},
"monthly_ru": 950.0,
"monthly_com": 10.0,
"monthly_usd": 11.0
}
]
}
Примеры ошибок
``` { "code": -1, "message": "presets: action required" }
```
presets/list¶
Возвращает список доступных пресетов серверов с фильтрацией по локации и правам доступа
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: list |
| token | ❌ | string | Токен авторизации. Если передан, проверяются права доступа. Если не передан или невалиден, используется публичный режим (убирается поле total). |
| location | ❌ | string | Фильтр по локации (например, NL, RU). По умолчанию 'NL'. |
Пример успешного ответа
{
"result": "OK",
"action": "list",
"presets": [
{
"id": 101,
"name": "VPS Basic",
"description": "Базовый виртуальный сервер",
"cpu": 2,
"ram": 4096,
"hdd": 50,
"gpu": null,
"virtual": 1,
"active": 1,
"locations": "NL,DE",
"price": {
"EUR": 15.0,
"RUB": 1500.0,
"USD": 16.5
},
"monthly_ru": 1500,
"monthly_com": 15,
"monthly_usd": 16.5,
"internal": 0,
"available": 5,
"total": 10,
"server_type": "Virtual Private Server",
"tags": [
{
"component_id": 101,
"tag": "example_tag",
"value": "example_value"
}
]
}
]
}
Примеры ошибок
``` { "code": -1, "message": "presets/list error: Database connection failed", "details": { "action": "list", "module": "presets" } }
```
presets/search¶
Поиск подходящих серверов для конкретного пресета по имени, области видимости и локации.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: search |
| token | ✅ | string | Токен авторизации пользователя |
| name | ❌ | string | Имя пресета для поиска серверов |
| scope | ❌ | string | Область видимости (free/all). По умолчанию пустая строка. |
| location | ❌ | string | Локация сервера. По умолчанию NL. |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "presets/search: invalid token, logout" }
```
presets/show¶
Возвращает информацию о пресете по ID или имени. Поддерживает фильтрацию и лимиты.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: show |
| token | ❌ | string | Токен авторизации. Если передан, проверяет права доступа и фильтрует контент (например, блокировка для определенных регионов). |
| id | ❌ | integer | ID пресета для фильтрации. |
| name | ❌ | string | Имя пресета для фильтрации. |
| limit | ❌ | integer | Ограничение количества возвращаемых записей. |
Пример успешного ответа
{
"result": "OK",
"action": "show",
"presets": [
{
"id": 123,
"name": "Standard VPS",
"description": "Базовая конфигурация",
"active": 1,
"virtual": 0,
"cpu": "2 vCPU",
"ram": "4096",
"hdd": "80 SSD",
"gpu": null,
"locations": "NL,DE",
"locations_openstack": "",
"monthly_ru": 500,
"monthly_com": 1000,
"monthly_usd": 15,
"price": {
"EUR": 12.5,
"RUB": 1200,
"USD": 15.0
},
"tags": [
{
"id": 1,
"name": "popular"
}
],
"internal": 0,
"server_type": "vps",
"available": 1,
"total": 10,
"regions": {
"NL": "10+",
"DE": "5"
},
"hourly_usd": 0.025,
"hourly_com": 0.02,
"hourly_ru": 0.0083
}
]
}
Примеры ошибок
``` { "code": -1, "message": "JSON encode failed" }
```