Перейти к содержимому

List Plans

GET
/v1/deployments/plans
curl --request GET \
--url 'https://api.cloud.agentums.ru/v1/deployments/plans?agent=' \
--header 'Authorization: Bearer <token>'

Машины, которые можно выбрать под агента, и точная цена каждой в месяц.

Машины двух линеек («Стандарт», «Эконом») с их настоящими характеристиками. Цена ТОЧНАЯ: конкретная машина плюс адрес плюс надбавка. Распроданная позиция остаётся в списке с available: false — заказать её нельзя, но видно, что она бывает.

Пустой список означает, что цену узнать не удалось. Отдельного признака для этого нет намеренно: выбирать в обоих случаях не из чего, а причина — наша забота.

Объявлен ДО /{deployment_id}: иначе plans попал бы в него как идентификатор и ответил бы невнятной ошибкой разбора вместо списка.

agent
Agent
string
""

Successful Response

Media typeapplication/json
PlanListOut

Что предлагаем. Пустой список — цену узнать не удалось, а не «предлагать нечего».

Различать это на стороне клиента нечем и не нужно: и в том, и в другом случае выбирать не из чего, а причина — наша забота, и она в журнале.

object
currency
Currency
string
default: RUB
items
Items
Array<object>
PlanOut

Машина, которую можно выбрать под агента.

Линейка, ресурсы и цена — то есть ЧТО человек получает. Ни провайдера, ни идентификатора тарифа, ни локации здесь нет по тому же п. 0, по которому их нет в ответе про развёртывание: способ размещения остаётся реализационной деталью. У линейки — наше название («Стандарт», «Эконом»), а не бренд провайдера.

object
available
Available
boolean
default: true
cpu
required
Cpu
integer
disk_mb
required
Disk Mb
integer
fits
Fits
boolean
default: true
line
Line
string
""
line_name
Line Name
string
""
name
required
Name
string
price_rub
required
Price Rub
number
ram_mb
required
Ram Mb
integer
recommended
Recommended
boolean
slug
required
Slug
string
suits
Suits
Array<string>
period
Period
string
default: month
Example
{
"currency": "RUB",
"items": [
{
"available": true,
"fits": true,
"line": "",
"line_name": "",
"recommended": false
}
],
"period": "month"
}

Validation Error

Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
ctx
Context
object
input
Input
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
Examplegenerated
{
"detail": [
{
"ctx": {},
"input": "example",
"loc": [
"example"
],
"msg": "example",
"type": "example"
}
]
}