Skip to content

Apply quality configuration

POST /api/v1/quality/configuration/revisions: request fields and declared response contract.

POST/api/v1/quality/configuration/revisions

Authorization
Permissionquality.configure
Workspace scoperequired
Scope targetworkspace

Request body

Request body fields
FieldTypeRequiredNullableDefault
planobjectrequirednon-null—
plan.schemaVersionnumberrequirednon-null—
plan.workspaceIdstringrequirednon-null—
plan.expectedRevisionintegerrequirednon-null—
plan.successorobjectrequirednon-null—
plan.successor.kind"metric_definition" | "objective" | "constraint" | "constraint_group" | "notification_binding"requirednon-null—
plan.successor.resourceIdstringrequirednon-null—
plan.successor.revisionintegerrequirednon-null—
plan.successor.workspaceIdstringrequirednon-null—
plan.successor.lifecycle"active" | "inactive"requirednon-null—
plan.successor.resourceobjectrequirednon-null—
plan.successor.referencesarrayrequirednon-null—
plan.successor.associationsarrayrequirednon-null—
plan.successor.contentDigeststringrequirednon-null—
plan.successor.createdByPrincipalIdstringrequirednon-null—
plan.successor.createdAtstringrequirednon-null—
plan.planDigeststringrequirednon-null—
expectedPlanDigeststringrequirednon-null—
idempotencyKeystringrequirednon-null—

Response

201

Response fields
FieldTypeRequiredNullableDefault
dataobjectrequirednon-null—
data.revisionobjectrequirednon-null—
data.revision.kind"metric_definition" | "objective" | "constraint" | "constraint_group" | "notification_binding"requirednon-null—
data.revision.resourceIdstringrequirednon-null—
data.revision.revisionintegerrequirednon-null—
data.revision.workspaceIdstringrequirednon-null—
data.revision.lifecycle"active" | "inactive"requirednon-null—
data.revision.resourceobjectrequirednon-null—
data.revision.referencesarrayrequirednon-null—
data.revision.associationsarrayrequirednon-null—
data.revision.contentDigeststringrequirednon-null—
data.revision.createdByPrincipalIdstringrequirednon-null—
data.revision.createdAtstringrequirednon-null—

Declared failures

Declared failures
QUALITY_CONFIGURATION_CAPABILITY_UNAVAILABLE422 — not retryable
QUALITY_CONFIGURATION_CONSTRAINT_GROUP_CYCLE422 — not retryable
QUALITY_CONFIGURATION_COST_REFUSED422 — not retryable
QUALITY_CONFIGURATION_FAILED500 — not retryable
QUALITY_CONFIGURATION_IDEMPOTENCY_MISMATCH409 — not retryable
QUALITY_CONFIGURATION_INVALID422 — not retryable
QUALITY_CONFIGURATION_PLAN_DIGEST_MISMATCH409 — not retryable
QUALITY_CONFIGURATION_REFERENCE_DENIED403 — not retryable
QUALITY_CONFIGURATION_REFERENCE_NOT_FOUND404 — not retryable
QUALITY_CONFIGURATION_SEMANTIC_SUCCESSOR_REQUIRED422 — not retryable
QUALITY_CONFIGURATION_STALE_HEAD409 — not retryable
QUALITY_CONFIGURATION_UNIT_MISMATCH422 — 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>"
}