Skip to content

Upgrade preview products

POST /api/v1/products/upgrade-preview: request fields and declared response contract.

POST/api/v1/products/upgrade-preview

Authorization
Permissionproducts.install
Workspace scoperequired
Scope targetworkspace

Request body

Request body fields
FieldTypeRequiredNullableDefault
installationIdstringrequirednon-null—
targetVersionstringrequirednon-null—
expectedCurrentPlanobjectoptionalnon-null—
expectedCurrentPlan.planSchemaVersionnumberrequirednon-null—
expectedCurrentPlan.planHashstringrequirednon-null—
expectedTargetPlanobjectoptionalnon-null—
expectedTargetPlan.planSchemaVersionnumberrequirednon-null—
expectedTargetPlan.planHashstringrequirednon-null—
expectedInstallUpdatedAtstringrequirednon-null—
expectedManifestDigeststringrequirednon-null—
expectedConfigurationRevisionstringrequirednon-null—
bindingsobjectoptionalnon-null—
productConfigobjectoptionalnon-null—

Response

201

Response fields
FieldTypeRequiredNullableDefault
dataobjectrequirednon-null—
data.disposition"ready" | "requires_resolution"requirednon-null—
data.baselineunknownrequirednon-null—
data.planobjectrequirednon-null—
data.plan.schemaVersionnumberrequirednon-null—
data.plan.rootobjectrequirednon-null—
data.plan.root.productKeystringrequirednon-null—
data.plan.root.productVersionstringrequirednon-null—
data.plan.root.manifestDigeststringrequirednon-null—
data.plan.grapharrayrequirednon-null—
data.plan.referencesarrayrequirednon-null—
data.plan.ownedContentOrderarrayrequirednon-null—
data.plan.planHashstringrequirednon-null—
data.deltaunknownrequirednon-null—
data.staleGuardobjectrequirednon-null—
data.staleGuard.currentobjectrequirednon-null—
data.staleGuard.current.planSchemaVersionnumberrequirednon-null—
data.staleGuard.current.planHashstringrequirednon-null—
data.staleGuard.targetobjectrequirednon-null—
data.staleGuard.target.planSchemaVersionnumberrequirednon-null—
data.staleGuard.target.planHashstringrequirednon-null—
data.staleGuard.currentManifestDigeststringrequirednon-null—
data.staleGuard.currentInstallUpdatedAtstringrequirednon-null—
data.staleGuard.currentConfigurationRevisionstringrequirednon-null—
data.targetInputsobjectrequirednon-null—
data.targetInputs.bindingsobjectrequirednon-null—
data.targetInputs.roleSatisfactionsobjectoptionalnon-null—
data.targetInputs.productConfigobjectoptionalnon-null—
data.targetInputs.configurationProjectionDigeststringoptionalnon-null—
data.targetInputs.profileobjectoptionalnon-null—
data.targetInputs.profile.profileKeystringrequirednon-null—
data.targetInputs.profile.profileVersionstringrequirednon-null—
data.targetInputs.profile.profileDigeststringrequirednon-null—
data.targetInputs.configurationResolutionobjectoptionalnon-null—
data.targetInputs.configurationResolution.settingsobjectrequirednon-null—
data.targetInputs.configurationResolution.bindingsobjectrequirednon-null—
data.targetInputs.configurationResolution.roleSatisfactionsobjectoptionalnon-null—
data.targetInputs.configurationResolution.inputSlotSatisfactionsobjectrequirednon-null—
data.targetInputs.configurationResolution.planHashstringrequirednon-null—
data.targetInputs.referenceInputsobjectoptionalnon-null—
data.blockersarrayrequirednon-null—

Declared failures

Declared failures
PRODUCT_OPERATION_FAILED500 — not retryable
PRODUCT_REQUIRES_RESOLUTION409 — not retryable
PRODUCT_STALE409 — not retryable

Readback

This method returns the current state it read.

  • products.upgradePreview

Request example

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

POST /api/v1/products/upgrade-preview HTTP/1.1
Authorization: Bearer <token>
x-merulan-workspace-id: <workspace-id>
Content-Type: application/json

{
  "installationId": "<installationId>",
  "targetVersion": "<targetVersion>",
  "expectedInstallUpdatedAt": "<expectedInstallUpdatedAt>",
  "expectedManifestDigest": "<expectedManifestDigest>",
  "expectedConfigurationRevision": "<expectedConfigurationRevision>"
}