BenefitDefinition
Public supported benefits; unknown families fail rather than silently disappearing.
Declaration
Section titled “Declaration”const BenefitDefinition: Schema.toTaggedUnion<"type", readonly [Schema.Struct<{ entitlements: Schema.$Array<Schema.brand<Schema.String, "EntitlementKey">>; type: Schema.tag<"entitlements">; duration: Schema.Union<readonly [Schema.Literals<readonly [..., ...]>, Schema.Struct<{ type: Schema.tag<...>; months: Schema.brand<..., ...>; anchor: Schema.Literal<...>; calendar: Schema.Literal<...>; }>]>;}>, 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<Schema.String, "DownloadAssetKey">; revision: Schema.brand<Schema.Int, "DefinitionRevision">; }>; duration: Schema.Union<readonly [Schema.Literals<readonly [..., ...]>, Schema.Struct<{ type: Schema.tag<...>; months: Schema.brand<..., ...>; anchor: Schema.Literal<...>; calendar: Schema.Literal<...>; }>]>;}>, 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 [Schema.brand<Schema.Int, "SeatCapacityQuantity">, Schema.Literal<"purchase_quantity">]>; 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<Schema.String, "FulfillmentBindingKey">; revision: Schema.brand<Schema.Int, "DefinitionRevision">; }>;}>, Schema.Struct<{ recipient: Schema.Literal<"customer">; trigger: Schema.Literal<"eligible_settlement">; type: Schema.tag<"download_email">; asset: Schema.Struct<{ key: Schema.brand<Schema.String, "DownloadAssetKey">; revision: Schema.brand<Schema.Int, "DefinitionRevision">; }>;}>, 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">;}>]>;