Skip to content

OfferSnapshotJson

Versioned accepted-terms codec; money is canonical decimal text and revisions are retained.

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: ...;
}>;
}>]>;
}>;
}>;