Apply quality configuration
POST /api/v1/quality/configuration/revisions: request fields and declared response contract.
POST/api/v1/quality/configuration/revisions
| Permission | quality.configure |
|---|---|
| Workspace scope | required |
| Scope target | workspace |
Request body
| Field | Type | Required | Nullable | Default |
|---|---|---|---|---|
| plan | object | required | non-null | — |
| plan.schemaVersion | number | required | non-null | — |
| plan.workspaceId | string | required | non-null | — |
| plan.expectedRevision | integer | required | non-null | — |
| plan.successor | object | required | non-null | — |
| plan.successor.kind | "metric_definition" | "objective" | "constraint" | "constraint_group" | "notification_binding" | required | non-null | — |
| plan.successor.resourceId | string | required | non-null | — |
| plan.successor.revision | integer | required | non-null | — |
| plan.successor.workspaceId | string | required | non-null | — |
| plan.successor.lifecycle | "active" | "inactive" | required | non-null | — |
| plan.successor.resource | object | required | non-null | — |
| plan.successor.references | array | required | non-null | — |
| plan.successor.associations | array | required | non-null | — |
| plan.successor.contentDigest | string | required | non-null | — |
| plan.successor.createdByPrincipalId | string | required | non-null | — |
| plan.successor.createdAt | string | required | non-null | — |
| plan.planDigest | string | required | non-null | — |
| expectedPlanDigest | string | required | non-null | — |
| idempotencyKey | string | required | non-null | — |
Response
201
| Field | Type | Required | Nullable | Default |
|---|---|---|---|---|
| data | object | required | non-null | — |
| data.revision | object | required | non-null | — |
| data.revision.kind | "metric_definition" | "objective" | "constraint" | "constraint_group" | "notification_binding" | required | non-null | — |
| data.revision.resourceId | string | required | non-null | — |
| data.revision.revision | integer | required | non-null | — |
| data.revision.workspaceId | string | required | non-null | — |
| data.revision.lifecycle | "active" | "inactive" | required | non-null | — |
| data.revision.resource | object | required | non-null | — |
| data.revision.references | array | required | non-null | — |
| data.revision.associations | array | required | non-null | — |
| data.revision.contentDigest | string | required | non-null | — |
| data.revision.createdByPrincipalId | string | required | non-null | — |
| data.revision.createdAt | string | required | non-null | — |
Declared failures
| QUALITY_CONFIGURATION_CAPABILITY_UNAVAILABLE | 422 — not retryable |
|---|---|
| QUALITY_CONFIGURATION_CONSTRAINT_GROUP_CYCLE | 422 — not retryable |
| QUALITY_CONFIGURATION_COST_REFUSED | 422 — not retryable |
| QUALITY_CONFIGURATION_FAILED | 500 — not retryable |
| QUALITY_CONFIGURATION_IDEMPOTENCY_MISMATCH | 409 — not retryable |
| QUALITY_CONFIGURATION_INVALID | 422 — not retryable |
| QUALITY_CONFIGURATION_PLAN_DIGEST_MISMATCH | 409 — not retryable |
| QUALITY_CONFIGURATION_REFERENCE_DENIED | 403 — not retryable |
| QUALITY_CONFIGURATION_REFERENCE_NOT_FOUND | 404 — not retryable |
| QUALITY_CONFIGURATION_SEMANTIC_SUCCESSOR_REQUIRED | 422 — not retryable |
| QUALITY_CONFIGURATION_STALE_HEAD | 409 — not retryable |
| QUALITY_CONFIGURATION_UNIT_MISMATCH | 422 — not retryable |
Readback
Read the result back with:
- quality.configuration.get
Request example
Schematic only. Replace placeholders with real values and include all required nested fields.
POST /api/v1/quality/configuration/revisions HTTP/1.1
Authorization: Bearer <token>
x-merulan-workspace-id: <workspace-id>
Content-Type: application/json
{
"plan": {},
"expectedPlanDigest": "<expectedPlanDigest>",
"idempotencyKey": "<idempotencyKey>"
}