Skip to content

Request model releases

POST /api/v1/predictive-models/releases: request fields and declared response contract.

POST/api/v1/predictive-models/releases

Authorization
PermissiondataPipelines.manage
Workspace scoperequired
Scope targetworkspace

Request body

Request body fields
FieldTypeRequiredNullableDefault
objectiveIdstringrequirednon-null—
environment"staging" | "production"requirednon-null—
versionIdstringrequirednon-null—
evidenceobjectoptionalnon-null—
evidence.evaluationRunIdstringoptionalnon-null—
evidence.gatesobjectoptionalnon-null{}
evidence.affectedConsumersarrayoptionalnon-null[]
evidence.summarystringoptionalnon-null—

Response

201

Response fields
FieldTypeRequiredNullableDefault
dataobjectrequirednon-null—
data.idstringrequirednon-null—
data.companyIdstringrequirednon-null—
data.workspaceIdstringrequirednon-null—
data.objectiveIdstringrequirednon-null—
data.environment"staging" | "production"requirednon-null—
data.versionIdstringrequirednon-null—
data.executorKindstringrequirednon-null—
data.kind"promotion" | "rollback"requirednon-null—
data.status"pending" | "approved" | "rejected"requirednon-null—
data.revisionintegerrequirednon-null—
data.isCurrentbooleanrequirednon-null—
data.supersedesVersionIdunknownrequirednon-null—
data.requestedBystringrequirednon-null—
data.requestedAtunknownrequirednon-null—
data.decidedByunknownrequirednon-null—
data.decidedAtunknownrequirednon-null—
data.decisionNoteunknownrequirednon-null—
data.evidenceobjectrequirednon-null—
data.evidence.evaluationRunIdstringoptionalnon-null—
data.evidence.gatesobjectrequirednon-null{}
data.evidence.affectedConsumersarrayrequirednon-null[]
data.evidence.summarystringoptionalnon-null—
data.createdAtunknownrequirednon-null—
data.updatedAtunknownrequirednon-null—

Declared failures

Declared failures
ACCESS_DENIED403 — not retryable
CORE_ERROR500 — not retryable
GOVERNANCE_DENIED403 — not retryable
QUOTA_DENIED429 — retryable
VALIDATION_ERROR400 — not retryable
VALIDATION_INPUT_ERROR400 — not retryable

Readback

Read the result back with:

  • predictiveModels.release.list

Request example

Schematic only. Replace placeholders with real values and include all required nested fields.

POST /api/v1/predictive-models/releases HTTP/1.1
Authorization: Bearer <token>
x-merulan-workspace-id: <workspace-id>
Content-Type: application/json

{
  "objectiveId": "<objectiveId>",
  "environment": "staging",
  "versionId": "<versionId>"
}