OfferSnapshotJson
Versioned accepted-terms codec; money is canonical decimal text and revisions are retained.
Declaration
Section titled “Declaration”const OfferSnapshotJson: Schema.Struct<{ schemaVersion: Schema.Literal<1>; offer: Schema.Struct<{ key: Schema.brand<Schema.String, "OfferKey">; revision: Schema.brand<Schema.Int, "DefinitionRevision">; purchase: Schema.Struct<{ key: Schema.brand<Schema.String, "PurchaseKey">; revision: Schema.brand<Schema.Int, "DefinitionRevision">; provides: Schema.$Array<Schema.Union<readonly [Schema.Struct<...>, Schema.Struct<...>, Schema.Struct<...>, Schema.Struct<...>, Schema.Struct<...>, Schema.Struct<...>, Schema.Struct<...>, Schema.Struct<...>]>>; }>; billing: Schema.toTaggedUnion<"type", readonly [Schema.Struct<{ type: Schema.Literal<"metered_subscription">; family: Schema.brand<Schema.String, "SubscriptionFamilyKey">; interval: Schema.Literals<readonly ...>; meter: Schema.Struct<{ key: ...; revision: ...; }>; collection: Schema.Literal<"invoice">; roundingScope: Schema.Literal<"meter_invoice_period">; lateUsage: Schema.Literal<"next_invoice_original_rate">; accessPolicy: Schema.Struct<{ key: ...; revision: ...; }>; rate: Schema.Struct<{ currency: ...; rounding: ...; amount: ...; perUnits: ...; }>; }>, Schema.Struct<{ type: Schema.Literal<"per_seat_one_time">; minimumQuantity: Schema.brand<Schema.Int, "SeatCapacityQuantity">; maximumQuantity: Schema.brand<Schema.Int, "SeatCapacityQuantity">; price: Schema.Struct<{ currency: ...; amount: ...; }>; }>, Schema.Struct<{ type: Schema.Literal<"per_seat_subscription">; family: Schema.brand<Schema.String, "SubscriptionFamilyKey">; minimumQuantity: Schema.brand<Schema.Int, "SeatCapacityQuantity">; maximumQuantity: Schema.brand<Schema.Int, "SeatCapacityQuantity">; interval: Schema.Literals<readonly ...>; renewal: Schema.Literal<"manual">; price: Schema.Struct<{ currency: ...; amount: ...; }>; }>, Schema.Struct<{ type: Schema.Literal<"one_time">; price: Schema.Struct<{ currency: ...; amount: ...; }>; }>, Schema.Struct<{ type: Schema.Literal<"subscription">; family: Schema.brand<Schema.String, "SubscriptionFamilyKey">; interval: Schema.Literals<readonly ...>; renewal: Schema.Literal<"manual">; price: Schema.Struct<{ currency: ...; amount: ...; }>; }>]>; }>;}>;