Skip to content

Use cases

Processor/retriever pattern: IEntitlementsProcessor / IEntitlementsRetriever (DefaultEntitlementsProcessor / DefaultEntitlementsRetriever).

Commands (write)

Input Validator Processor method
CreateEntitlementDraftInput CreateEntitlementDraftInputValidator CreateDraftAsync (one per tenant)
ActivateEntitlementInput ActivateEntitlementInputValidator ActivateAsync
AssignEditionInput AssignEditionInputValidator AssignEditionAsync -> returns IEntitlementAssignment
OverrideTenantFeatureInput OverrideTenantFeatureInputValidator OverrideFeatureAsync -> returns ITenantFeatureOverride
CatalogProductRetiredReactionInput CatalogProductRetiredReactionInputValidator ReactToCatalogProductRetiredAsync (internal, saga-invoked)

Queries (read)

Input Validator Retriever method
GetEntitlementByTenantInput GetEntitlementByTenantInputValidator GetRequiredForTenantAsync
GetEntitlementByIdInput GetEntitlementByIdInputValidator GetRequiredByIdAsync

AssignEditionAsync and OverrideFeatureAsync are the distinctive write operations. ReactToCatalogProductRetiredAsync is not exposed over REST/gRPC - it is invoked only by ProductCatalogReactionStateMachine.

Suspend/decommission gap

EntitlementStatusEnumeration includes Suspended/Decommissioned with transition rules in the processor, but there are no public API commands for suspend/decommission yet (tracked in docs/backlog/).

See also