Skip to content

Costs

We'd rather show COST_UNAVAILABLE than invent a fake dollar amount.

What you see today

SurfaceBehavior
listBest-effort Cost Explorer MTD UnblendedCost per row; denied/missing/unmatched → COST_UNAVAILABLE. Inventory never fails because of CE
costsSame 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 --json

Static 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 list when CE fails
  • A hosted cost dashboard (that's a later sprint)

See IAM for ce:Get* and costs command.

Working name — your AWS account, your bill.