Resource Governance API: schemas

The request and response bodies of the operations in this API.

ActivateRetentionChoiceRequestDto

PropertyTypeRequiredDescription
assignmentKeystringyes
assignmentRevisionnumberyes
bundleRetentionBundleRefDtoyes
effectiveFromstring (date-time)yes
effectiveUntilstring (date-time) or nullyes
expectedPointerRevisionstringyes
prioritynumberyes
reasonstringyes
sourceRefstringyes
targetOrgRetentionChoiceTargetDtoyes

EffectiveRetentionDto

PropertyTypeRequiredDescription
apiVersionone of "xema.retention/v1"yes
ceilingDaysnumber or nullyesnull means no rule of that role applies, NOT "unbounded".
chosenDaysnumber or nullyes
clampedbooleanyesTrue when the live bounds moved the chosen window.
configuredbooleanyes
effectiveDaysnumber or nullyes
floorDaysnumber or nullyesnull means no rule of that role applies, NOT "unbounded".
kindone of "effective_retention"yes
orgIdstringyes
policyWatermarkstringyes
provenanceRetentionProvenanceDtoyes
resolvedAtstring (date-time)yes
subjectClassone of "agent_session", "artifact", "app_run", "notification", "activity_feed_entry", "search_trace", "workload_record", "audit_entry"yes

EffectiveRetentionDtoDataEnvelope

PropertyTypeRequiredDescription
dataEffectiveRetentionDtoyes

GovernanceRecordDto

PropertyTypeRequiredDescription
valueobjectyesVersioned resource-governance result.

GovernanceRecordDtoDataEnvelope

PropertyTypeRequiredDescription
dataGovernanceRecordDtoyes

GovernanceRowDto

One versioned resource-governance row.

Type: object

GovernanceRowDtoDataArrayEnvelope

PropertyTypeRequiredDescription
dataarray of GovernanceRowDtoyes

InventoryItemDto

PropertyTypeRequiredDescription
definitionIdstringyes
definitionKeystringyes
definitionRevisionnumberyes
dimensionsJsonobjectyes
generationnumberyes
idstringyes
lifecycleone of "present", "retired"yes
observedAtstring (date-time)yes
orgIdstringyes
parentResourceRefsJsonarray of stringyes
producerIdstringyes
quantityValuestringyesCanonical exact decimal string.
reservedQuantityValuestringyesCanonical exact decimal string.
resourceRefstringyes
retiredAtstring (date-time) or nullno
scopePathJsonobjectyes
sourceRefstringyes
unitstringyes

InventoryItemDtoPaginatedEnvelope

PropertyTypeRequiredDescription
dataarray of InventoryItemDtoyes
paginationPaginationMetayes

LegalHoldOrgScopeDto

PropertyTypeRequiredDescription
kindone of "org"yesFreeze EVERYTHING for the organization.

LegalHoldRecordDto

PropertyTypeRequiredDescription
apiVersionone of "xema.retention/v1"yes
holdIdstringyes
kindone of "legal_hold"yes
matterRefstringyesA stable reference to the matter (case number, ticket, order) this serves.
orgIdstringyesThe organization whose data is frozen. A hold never spans organizations.
placedAtstring (date-time)yes
placedBystringyes
reasonstringyes
releaseReasonstring or nullyes
releasedAtstring (date-time) or nullyes
releasedBystring or nullyes
scopeLegalHoldOrgScopeDto or LegalHoldSubjectClassScopeDto or LegalHoldSubjectScopeDtoyesHow wide the hold reaches. Discriminated on kind; the three variants are an organization-wide freeze, a class-wide freeze, and a freeze on one named aggregate.
stateone of "active", "released"yes

LegalHoldRecordDtoDataArrayEnvelope

PropertyTypeRequiredDescription
dataarray of LegalHoldRecordDtoyes

LegalHoldRecordDtoDataEnvelope

PropertyTypeRequiredDescription
dataLegalHoldRecordDtoyes

LegalHoldSubjectClassScopeDto

PropertyTypeRequiredDescription
kindone of "subject_class"yesFreeze one kind of data organization-wide.
subjectClassone of "agent_session", "artifact", "app_run", "notification", "activity_feed_entry", "search_trace", "workload_record", "audit_entry"yes

LegalHoldSubjectScopeDto

PropertyTypeRequiredDescription
kindone of "subject"yesFreeze one named aggregate.
subjectClassone of "agent_session", "artifact", "app_run", "notification", "activity_feed_entry", "search_trace", "workload_record", "audit_entry"yes
subjectIdstringyesOpaque to this plane — whatever the owning service calls the aggregate.

ListOwnLegalHoldsRequestDto

PropertyTypeRequiredDescription
matterRefobjectno
stateone of "active", "released"no

OrgResourceSummaryDto

PropertyTypeRequiredDescription
inventoryFreshnessarray of ProducerFreshnessDtoyes
openFindingsnumberyes
presentResourcesnumberyes
usageFreshnessarray of ProducerFreshnessDtoyes

OrgResourceSummaryDtoDataEnvelope

PropertyTypeRequiredDescription
dataOrgResourceSummaryDtoyes

OrgRetentionChoiceTargetDto

PropertyTypeRequiredDescription
scopeKindone of "org", "project", "user", "application"yes
scopeRefstringyes

OrgRetentionDecisionRequestDto

PropertyTypeRequiredDescription
atstring (date-time)no
scopePatharray of RetentionDecisionScopeSegmentDtoyes
subjectClassone of "agent_session", "artifact", "app_run", "notification", "activity_feed_entry", "search_trace", "workload_record", "audit_entry"yes

PaginationMeta

PropertyTypeRequiredDescription
hasMorebooleanno
limitnumberno
nextCursorstring or nullno
pagenumberno
previousCursorstring or nullno
totalnumberno
totalPagesnumberno

PlaceOwnLegalHoldRequestDto

PropertyTypeRequiredDescription
matterRefstringyes
reasonstringyes
scopeLegalHoldOrgScopeDto or LegalHoldSubjectClassScopeDto or LegalHoldSubjectScopeDtoyesHow wide the hold reaches. Discriminated on kind; the three variants are an organization-wide freeze, a class-wide freeze, and a freeze on one named aggregate.

ProblemActionableBy

Who can act on this refusal: user (correct the input, sign in), org-admin (an administrator of the organisation), platform (the operators of this installation), none (nobody — it cannot succeed). ABSENT when not known; never guessed.

Type: one of "user", "org-admin", "platform", "none"

ProblemDetailsDto

RFC 9457 problem document. The declared members are the reserved core; extension members are TOP-LEVEL and OPEN, owned by the refusing plane.

PropertyTypeRequiredDescription
actionableByProblemActionableBynoWho can act on this refusal: user (correct the input, sign in), org-admin (an administrator of the organisation), platform (the operators of this installation), none (nobody — it cannot succeed). ABSENT when not known; never guessed.
codestringyesSCREAMING_SNAKE_CASE. The machine-branchable refusal, and the value a policy rule, a retry predicate and a UI branch all name.
detailstringnoHuman-readable and specific to THIS occurrence.
errorsarray of ProblemFieldIssueDtonoField-level issues, when the refusal is about the request body.
instancestringnoURI reference identifying the occurrence — a request path, a run, a row.
paramsmap of string or number or booleannoSafe i18n interpolation values for the message keyed by code — typed and allowlisted per code by its declaration. Never server-authored copy, never internal diagnostics.
retryProblemRetrynoWhat a retry can achieve: transient (later, unchanged), after-change (only after someone changes something), never (a defect until a fixed version ships). ABSENT when not known.
statusnumberyesThe HTTP status code, repeated in the body so a logged document is self-contained.
titlestringyesShort, human-readable, and STABLE for a given type. Never per-occurrence — that is detail.
traceIdstringnoW3C trace-context trace-id, present when the caller sent a traceparent. Omitted rather than invented when it did not.
typestringyesAbsolute URI identifying the refusal TYPE. Derived one-to-one from code, so a caller may branch on either and can never be told two different things. Never about:blank.

ProblemFieldIssueDto

PropertyTypeRequiredDescription
codestringnoSCREAMING_SNAKE_CASE code of THIS issue, for a frontend i18n key. Present when the issue was minted by a declared problem.
detailstringyesProse for logs and developers. A frontend localises from code + params instead.
paramsmap of string or number or booleannoSafe i18n interpolation values for this issue's code.
pointerstringyesRFC 6901 JSON Pointer into the request body. Root is "/".

ProblemRetry

What a retry can achieve: transient (later, unchanged), after-change (only after someone changes something), never (a defect until a fixed version ships). ABSENT when not known.

Type: one of "transient", "after-change", "never"

ProducerFreshnessDto

PropertyTypeRequiredDescription
completenessone of "complete", "partial", "unavailable"yes
observedThroughstring (date-time)yes
producerIdstringyes

ResourceDefinitionDto

PropertyTypeRequiredDescription
aggregationstringyes
apiVersionstringyes
descriptionstringyes
dimensionsJsonobjectyes
displayNamestringyes
idstringyes
keystringyes
lifecycleone of "active", "retired"yes
measurementKindstringyes
ownerVersionstringyes
provenanceobject or objectyes
quotaJsonobjectyes
registeredAtstring (date-time)yes
retiredAtstring (date-time) or nullno
revisionnumberyes
sourceRefstringyes
unitstringyes
usageExportJsonobjectyes

ResourceDefinitionDtoPaginatedEnvelope

PropertyTypeRequiredDescription
dataarray of ResourceDefinitionDtoyes
paginationPaginationMetayes

RetentionActivationResultDto

PropertyTypeRequiredDescription
assignmentIdstring (uuid)yes
pointerRevisionstringyesSerialized BigInt. Pass the PREVIOUS value as expectedPointerRevision on the next activation — the compare-and-set is what makes two concurrent activations produce one winner and one 409.
policyWatermarkstringyesSerialized BigInt. Monotonic across BOTH policy families, so a resolver can tell whether any policy has moved since it last resolved.
targetKeystringyesThe activation pointer key: family + organization + scope + source.

RetentionActivationResultDtoDataEnvelope

PropertyTypeRequiredDescription
dataRetentionActivationResultDtoyes

RetentionBundleRefDto

PropertyTypeRequiredDescription
policyKeystringyes
revisionnumberyes

RetentionDecisionScopeSegmentDto

PropertyTypeRequiredDescription
idstringyes
kindone of "project", "user", "application"yes

RetentionProvenanceDto

PropertyTypeRequiredDescription
ceilingRetentionProvenanceEntryDto or nullyes
choiceRetentionProvenanceEntryDto or nullyes
consideredarray of RetentionProvenanceEntryDtoyes
floorRetentionProvenanceEntryDto or nullyes

RetentionProvenanceEntryDto

PropertyTypeRequiredDescription
assignmentIdstring (uuid)yes
assignmentKeystringyes
assignmentRevisionnumberyes
bundleIdstring (uuid)yes
bundleKeystringyes
bundleRevisionnumberyes
orgIdstring or nullyes
pointerRevisionstringyesSerialized BigInt — the activation pointer this rule was read through.
roleone of "floor", "ceiling", "choice"yes
ruleIdstringyes
scopeKindone of "installation", "org", "project", "user", "application"yes
scopeRefstringyes
sourceKindone of "installation_safety", "distribution", "license", "external_entitlement", "platform_org_override", "org_delegated_limit"yes
sourceRefstringyes
windowDaysnumberyes

UsageItemDto

PropertyTypeRequiredDescription
correctsSourceEventIdobject or nullno
definitionIdstringyes
definitionKeystringyes
definitionRevisionnumberyes
dimensionsJsonobjectyes
idstringyes
ingestedAtstring (date-time)yes
intervalEndstring (date-time)yes
intervalStartstring (date-time)yes
kindone of "usage", "correction"yes
orgIdstringyes
producedAtstring (date-time)yes
producerIdstringyes
quantityValuestringyesCanonical signed exact decimal string.
reasonobject or nullno
sourceEventIdstringyes
sourceResourceRefobject or nullno
unitstringyes

UsageItemDtoPaginatedEnvelope

PropertyTypeRequiredDescription
dataarray of UsageItemDtoyes
paginationPaginationMetayes