Prune retired contributions products
POST /api/v1/products/prune-retired-contributions: request fields and declared response contract.
POST/api/v1/products/prune-retired-contributions
| Property | Value |
|---|---|
| Permission | products.install |
| Workspace scope | required |
| Scope target | workspace |
Request body
| Field | Type | Required | Nullable | Default |
|---|---|---|---|---|
| installationId | string | required | non-null | — |
| expectedInstallUpdatedAt | string | required | non-null | — |
| dryRun | boolean | optional | non-null | — |
| deleteRecords | boolean | optional | non-null | — |
Response
201
| Field | Type | Required | Nullable | Default |
|---|---|---|---|---|
| data | object | required | non-null | — |
| data.outcome | "pruned" | "dry_run" | "refused" | required | non-null | — |
| data.installationId | string | required | non-null | — |
| data.dryRun | boolean | required | non-null | — |
| data.deleteRecords | boolean | required | non-null | — |
| data.counts | object | required | non-null | — |
| data.counts.partyRecords | integer | required | non-null | — |
| data.counts.resourcePolicies | integer | required | non-null | — |
| data.counts.dashboards | integer | required | non-null | — |
| data.counts.workflowTemplates | integer | required | non-null | — |
| data.counts.savedQueries | integer | required | non-null | — |
| data.counts.assetDefinitions | integer | required | non-null | — |
| data.counts.relationshipDefinitions | integer | required | non-null | — |
| data.counts.agents | integer | required | non-null | — |
| data.counts.slotBindings | integer | required | non-null | — |
| data.counts.tagValues | integer | required | non-null | — |
| data.counts.tagKeys | integer | required | non-null | — |
| data.counts.signalDescriptors | integer | required | non-null | — |
| data.counts.partyKinds | integer | required | non-null | — |
| data.counts.lineageRows | integer | required | non-null | — |
| data.removed | object | required | non-null | — |
| data.removed.partyRecords | object | required | non-null | — |
| data.removed.partyRecords.ids | array | required | non-null | — |
| data.removed.partyRecords.total | integer | required | non-null | — |
| data.removed.resourcePolicies | object | required | non-null | — |
| data.removed.resourcePolicies.ids | array | required | non-null | — |
| data.removed.resourcePolicies.total | integer | required | non-null | — |
| data.removed.dashboards | object | required | non-null | — |
| data.removed.dashboards.ids | array | required | non-null | — |
| data.removed.dashboards.total | integer | required | non-null | — |
| data.removed.workflowTemplates | object | required | non-null | — |
| data.removed.workflowTemplates.ids | array | required | non-null | — |
| data.removed.workflowTemplates.total | integer | required | non-null | — |
| data.removed.savedQueries | object | required | non-null | — |
| data.removed.savedQueries.ids | array | required | non-null | — |
| data.removed.savedQueries.total | integer | required | non-null | — |
| data.removed.assetDefinitions | object | required | non-null | — |
| data.removed.assetDefinitions.ids | array | required | non-null | — |
| data.removed.assetDefinitions.total | integer | required | non-null | — |
| data.removed.relationshipDefinitions | object | required | non-null | — |
| data.removed.relationshipDefinitions.ids | array | required | non-null | — |
| data.removed.relationshipDefinitions.total | integer | required | non-null | — |
| data.removed.agents | object | required | non-null | — |
| data.removed.agents.ids | array | required | non-null | — |
| data.removed.agents.total | integer | required | non-null | — |
| data.removed.slotBindings | object | required | non-null | — |
| data.removed.slotBindings.ids | array | required | non-null | — |
| data.removed.slotBindings.total | integer | required | non-null | — |
| data.removed.tagValues | object | required | non-null | — |
| data.removed.tagValues.ids | array | required | non-null | — |
| data.removed.tagValues.total | integer | required | non-null | — |
| data.removed.tagKeys | object | required | non-null | — |
| data.removed.tagKeys.ids | array | required | non-null | — |
| data.removed.tagKeys.total | integer | required | non-null | — |
| data.removed.signalDescriptors | object | required | non-null | — |
| data.removed.signalDescriptors.ids | array | required | non-null | — |
| data.removed.signalDescriptors.total | integer | required | non-null | — |
| data.removed.partyKinds | object | required | non-null | — |
| data.removed.partyKinds.ids | array | required | non-null | — |
| data.removed.partyKinds.total | integer | required | non-null | — |
| data.removed.lineageRows | object | required | non-null | — |
| data.removed.lineageRows.ids | array | required | non-null | — |
| data.removed.lineageRows.total | integer | required | non-null | — |
| data.refusedItems | array | required | non-null | — |
| data.preserved | array | required | non-null | — |
| data.retained | object | required | non-null | — |
| data.schedulesToReconcile | array | required | non-null | — |
| data.subscriptionIndexRecomputed | boolean | required | non-null | — |
Declared failures
| Property | Value |
|---|---|
| PRODUCT_OPERATION_FAILED | 500 — not retryable |
| PRODUCT_REQUIRES_RESOLUTION | 409 — not retryable |
| PRODUCT_STALE | 409 — not retryable |
Readback
Read the result back with:
- products.inspectInstalled
Request example
Schematic only. Replace placeholders with real values and include all required nested fields.
POST /api/v1/products/prune-retired-contributions HTTP/1.1
Authorization: Bearer <token>
x-merulan-workspace-id: <workspace-id>
Content-Type: application/json
{
"installationId": "<installationId>",
"expectedInstallUpdatedAt": "<expectedInstallUpdatedAt>"
}