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/).