Costs
We'd rather show COST_UNAVAILABLE than invent a fake dollar amount.
What you see today
| Surface | Behavior |
|---|---|
list | Best-effort Cost Explorer MTD UnblendedCost per row; denied/missing/unmatched → COST_UNAVAILABLE. Inventory never fails because of CE |
costs | Same enrichment as list, plus the static create-time hint table for every shipped noun |
create * | Prints a static/heuristic cost hint (not live pricing) |
Live enrichment (Cost Explorer)
When your credentials allow resource-level Cost Explorer (ce:GetCostAndUsageWithResources in us-east-1), list / costs fill matching rows with $X.XX month-to-date UnblendedCost.
When CE is denied, empty, or a row has no RESOURCE_ID match, that row stays COST_UNAVAILABLE. We never invent live dollars.
bash
awsutopia list --json
awsutopia costs --jsonStatic create hints
Every shipped noun prints a rough order-of-magnitude hint at create time: bucket, secret, fn, cron, site, domain, server, db, kv. Treat them as guidance — your AWS bill is still the source of truth.
What we don't do
- Fake live
$without Cost Explorer data - Blocking
listwhen CE fails - A hosted cost dashboard (that's a later sprint)
See IAM for ce:Get* and costs command.