Skip to content

RateTable

@final
class RateTable

The pinned rate table, and everything it says about itself.

The rates are exact decimal strings for the same reason the money types are: they are figures like 0.0000276944 and an f64 round trip through Python would make a report irreconcilable against the page it came from.

RateTable declares no __new__ or __init__, so it is not constructed directly: an instance comes back from another call in this package.

bills_vcpu_and_memory_separately: bool

True: vCPU and memory are two line items, as the pricing page prices them.

free_tier: bool

False: no published MicroVMs free tier. The Lambda one is Functions-only.

gb_second: str
minimum_billing_increment_sec: float | None

None means not published, not one second. Nothing rounds a duration up, because inventing an increment would overcharge every short exec.

minimum_retention_seconds: float

Snapshot storage bills at least this long however briefly the snapshot exists.

per_request: str

Zero: MicroVMs bills per second with no per-request charge.

region: str
retrieved: str

ISO 8601, matching the Python’s retrieved.isoformat() so the two are diffable.

snapshot_read_gb: str
snapshot_write_gb: str
source_url: str
storage_gb_month: str

Per GB-month. The one derived figure: the API quotes per GB-hour and this is that times 730.

vcpu_second: str
def age_days() -> int

How many days ago these rates were read, against today UTC.

@staticmethod
def pinned() -> RateTable

us-east-1, read 2026-08-07, as recorded in docs/PLATFORM.md.

There is deliberately no constructor taking rates. The core’s RateTable has private rate fields and exactly two doors — this one and from_catalog, which refuses a catalog whose ARM compute line is missing rather than substituting the x86 one (COST-9, 17.9% higher). A binding constructor taking five numbers would reopen precisely that.

def staleness() -> str | None

The staleness warning, or None when the table is fresh.

def __repr__() -> str

This page is generated from bindings/microvms-py/microvms.pyi by Griffe 2.3.0, run from site/scripts/gen-reference.mjs on every pnpm run sync, so an edit made here is overwritten by the next run.

To change the page, change the doc comment in the binding’s Rust source, then regenerate the declarations with mise run stubs. mise run stubs:check fails when the committed file no longer matches the source.