pub struct EntitlementFact {
pub tenant: TenantId,
pub plan: String,
pub state: State,
pub paid_until_unix_ms: Option<u64>,
pub caps: BTreeMap<String, u64>,
pub source: String,
pub signature: Vec<u8>,
}Expand description
The verdict monetize pushes back. Product-agnostic; the plugin maps it to the
product’s own enum (gunnar: EntitlementState).
Fields§
§tenant: TenantId§plan: StringThe ORDER this verdict came from — the ledger reference
(<product>/<tenant>/<date>+<caps>) for a purchase, an operator’s own
label (or nothing) for a hand-set fact. The field is still called plan
on the wire and in the signed canonical form (monetize_embed::signing),
because gunnar verifies that form and a renamed field would invalidate
every signature a deployed gunnar checks; the CONTENT is an order
reference since the plan catalogue went on 2026-09-05.
state: State§paid_until_unix_ms: Option<u64>§caps: BTreeMap<String, u64>Per-meter caps the product enforces itself (gunnar: pack_quota_bytes,
explode_budget_bytes). Absent = product default.
source: Stringoperator | payment:<vendor>:<reference> — lands in the product’s attestation log.
signature: Vec<u8>Ed25519 over the canonical JSON of the fields above, by monetize-server’s key.
Trait Implementations§
Source§impl Clone for EntitlementFact
impl Clone for EntitlementFact
Source§fn clone(&self) -> EntitlementFact
fn clone(&self) -> EntitlementFact
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more