Skip to content

PurchaseDeclaration

Versioned public purchase declaration; keys are merchant-authored, not runtime handles.

const PurchaseDeclaration: Schema.Struct<{
key: Schema.brand<Schema.String, "PurchaseKey">;
revision: Schema.brand<Schema.Int, "DefinitionRevision">;
provides: Schema.$Array<Schema.toTaggedUnion<"type", readonly [Schema.Struct<{
entitlements: Schema.$Array<Schema.brand<Schema.String, "EntitlementKey">>;
type: Schema.tag<"entitlements">;
duration: Schema.Union<readonly [..., ...]>;
}>, Schema.Struct<{
entitlement: Schema.brand<Schema.String, "EntitlementKey">;
activationLimit: Schema.Int;
type: Schema.tag<"license_eligibility">;
validity: Schema.withConstructorDefault<Schema.Literal<"while_entitled">>;
}>, Schema.Struct<{
type: Schema.tag<"download">;
asset: Schema.Struct<{
key: Schema.brand<..., ...>;
revision: Schema.brand<..., ...>;
}>;
duration: Schema.Union<readonly [..., ...]>;
}>, Schema.Struct<{
unit: Schema.brand<Schema.String, "UsageUnitKey">;
quantity: Schema.brand<Schema.BigInt, "UsageCreditQuantity">;
expiry: Schema.Literal<"never">;
type: Schema.tag<"usage_credits">;
}>, Schema.Struct<{
pool: Schema.brand<Schema.String, "SeatPoolKey">;
quantity: Schema.Union<readonly [..., ...]>;
entitlement: Schema.brand<Schema.String, "EntitlementKey">;
validity: Schema.Literal<"while_entitled">;
type: Schema.tag<"seat_capacity">;
}>, Schema.Struct<{
entitlement: Schema.brand<Schema.String, "EntitlementKey">;
validity: Schema.Literal<"while_entitled">;
type: Schema.tag<"external_fulfillment">;
binding: Schema.Struct<{
key: Schema.brand<..., ...>;
revision: Schema.brand<..., ...>;
}>;
}>, Schema.Struct<{
recipient: Schema.Literal<"customer">;
trigger: Schema.Literal<"eligible_settlement">;
type: Schema.tag<"download_email">;
asset: Schema.Struct<{
key: Schema.brand<..., ...>;
revision: Schema.brand<..., ...>;
}>;
}>, Schema.Struct<{
resource: Schema.brand<Schema.String, "ResourceLimitKey">;
quantity: Schema.brand<Schema.Int, "ResourceLimitQuantity">;
entitlement: Schema.brand<Schema.String, "EntitlementKey">;
validity: Schema.Literal<"while_entitled">;
type: Schema.tag<"resource_limit">;
}>]>>;
}>;