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

Deployments Costs

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

Деньги по ВСЕМ машинам владельца сразу: расход на модель и цена тарифа.

Объявлен ДО /{deployment_id}: иначе «usage» попал бы туда как идентификатор и ответил бы невнятной ошибкой разбора — ровно как у /plans, /pipeline и /stats.

Отдельный маршрут, а не поля в списке развёртываний, и это не стиль. Состав ответа про развёртывание пришпилен сторожем, который бережёт п. 0 ТЗ: способ размещения наружу не уходит. Расширяя его ради денег, мы каждый раз заново доказывали бы, что новое поле не рассказывает о провайдере. Тем же приёмом уже живёт /{id}/usage.

!!! warning “cost_rub и machine_plan_rub не складываются” Первое — учтённая работа модели, второе — цена тарифа, по которой счёта не выставлялось: почасового учёта провайдера мы не ведём, а остановленная машина стоит иначе, чем работающая. Сложив их, клиент показал бы сумму, которой никто не выставлял.

next_charge_at — поле КОНВЕРТА, а не строки: подписка живёт на уровне аккаунта, и повторив её у каждой машины, мы пообещали бы, что машины оплачиваются по отдельности.

Successful Response

Media typeapplication/json
DeploymentCostsOut

Деньги по всем машинам владельца сразу.

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

object
items
Items
Array<object>
DeploymentCostRow

Деньги одной машины в списке: расход на модель и цена тарифа.

Отдельно от DeploymentOut НАМЕРЕННО. Состав ответа про развёртывание пришпилен сторожем, который бережёт п. 0 ТЗ — способ размещения наружу не уходит, — и расширять его ради денег значит каждый раз заново доказывать, что новое поле не рассказывает о провайдере. Деньги живут своим маршрутом, как это уже сделано у /{id}/usage.

object
cost_rub
Cost Rub
number
0
deployment_id
required
Deployment Id
string format: uuid
machine_plan_rub
Any of:
number
next_charge_at
Any of:
string format: date-time
period_start
required
Period Start
string format: date-time
Example
{
"items": [
{
"cost_rub": 0
}
]
}

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"
}
]
}