Promote an accepted Metronome optimization candidate

POST/v1/optimization-candidates/metronomes/{resourceId}/{candidateId}/promote

Re-verifies the immutable acceptance proof and authoritative evidence, rejects a stale published base, re-verifies all immutable Function bindings, publishes the exact version, and activates the Metronome.

How to call this endpoint

Every ACP API request uses bearer authentication. The examples here show the actual request path, auth header, and body shape that the platform expects.

Path, query, and header parameters

These parameters control which ACP object the endpoint acts on and how the request is processed.

Path parameters
NameLocationTypeRequiredDescription
resourceIdpathstringYes
candidateIdpathstringYes
Query parameters
None.

Body schema

Content type: application/json · Required

FieldTypeRequiredDescription
acceptanceFingerprintstringYes

What the API returns

Each response code below includes the documented payload shape for the ACP API.

200Idempotent replay of an already published candidateapplication/json
FieldTypeRequiredDescription
objectoptimization_candidate.promotionYes
candidateobjectYes
candidate.idstringYesUnique identifier.
candidate.objectoptimization_candidateYes
candidate.targetKindfunction | metronomeYes
candidate.targetResourceIdstringYes
candidate.baseVersionIdstringYes
candidate.baseFingerprintstringYes
candidate.candidateVersionIdstringYes
candidate.candidateFingerprintstringYes
candidate.objectiveFingerprintstringYes
candidate.proposalFingerprintstringYes
candidate.idempotencyKeystringYes
candidate.statusmaterialized | validated | accepted | rejected | published | supersededYesCurrent lifecycle status.
candidate.proposalobjectYes
candidate.proposal.schemaVersioncomputer_agents_optimization_candidate_v1Yes
candidate.proposal.targetobjectYes
candidate.proposal.target.kindfunction | metronomeYes
candidate.proposal.target.resourceIdstringYes
candidate.proposal.target.baseVersionIdstringYes
candidate.proposal.target.baseFingerprintstringYes
candidate.proposal.objectiveFingerprintstringYes
candidate.proposal.candidateobjectYes
candidate.proposal.candidate.fingerprintstringYes
candidate.proposal.candidate.labelstringYes
candidate.proposal.candidate.descriptionstringNoHuman-readable description.
candidate.proposal.candidate.snapshotobjectYes
candidate.proposal.candidate.snapshot.namestringNoHuman-readable name.
candidate.proposal.candidate.snapshot.descriptionstringNoHuman-readable description.
candidate.proposal.candidate.snapshot.kindfunctionYes
candidate.proposal.candidate.snapshot.sourceTypemanual | computer | gitNo
candidate.proposal.candidate.snapshot.sourceEnvironmentIdstringNo
candidate.proposal.candidate.snapshot.sourcePathstringNoWorkspace-relative file path.
candidate.proposal.candidate.snapshot.regionstringNo
candidate.proposal.candidate.snapshot.runtimestringNo
candidate.proposal.candidate.snapshot.authModepublic | privateNo
candidate.proposal.candidate.snapshot.customDomainstringNo
candidate.proposal.candidate.snapshot.metadataobjectNoVersionable Function metadata. Deployment identity and credentials are rejected.
candidate.proposal.candidate.snapshot.sourceFilesobject[]Yes
candidate.proposal.candidate.snapshot.sourceFiles[].pathstringYesSafe relative versioned source path.
candidate.proposal.candidate.snapshot.sourceFiles[].namestringYesHuman-readable name.
candidate.proposal.candidate.snapshot.sourceFiles[].isFolderbooleanYes
candidate.proposal.candidate.snapshot.sourceFiles[].sizeintegerYes
candidate.proposal.candidate.snapshot.sourceFileContentsobjectYesComplete contents for every non-folder sourceFiles entry.
candidate.proposal.producerobjectYes
candidate.proposal.producer.kindagent | human | deterministic | externalYes
candidate.proposal.producer.idstringYesUnique identifier.
candidate.proposal.producer.versionIdstringNo
candidate.proposal.producer.runIdstringNo
candidate.proposal.evidenceobjectNo
candidate.proposal.evidence.evaluationRunIdsstring[]No
candidate.proposal.evidence.testRunIdsstring[]No
candidate.proposal.evidence.assuranceRunIdsstring[]No
candidate.proposal.evidence.repairEpisodeIdstringNo
candidate.proposal.evidence.diagnosticFingerprintstringNo
candidate.proposal.idempotencyKeystringYes
candidate.producerobjectYes
candidate.producer.kindagent | human | deterministic | externalYes
candidate.producer.idstringYesUnique identifier.
candidate.producer.versionIdstringNo
candidate.producer.runIdstringNo
candidate.evidenceobjectYes
candidate.evidence.evaluationRunIdsstring[]No
candidate.evidence.testRunIdsstring[]No
candidate.evidence.assuranceRunIdsstring[]No
candidate.evidence.repairEpisodeIdstringNo
candidate.evidence.diagnosticFingerprintstringNo
candidate.organizationIdstringNo
candidate.createdByUserIdstringNo
candidate.createdAtstringYesISO 8601 timestamp.
candidate.updatedAtstringYesISO 8601 timestamp.
versionobjectYes
version.idstringYesUnique identifier.
version.targetKindfunction | metronomeYes
version.resourceIdstringYes
version.versionintegerYes
version.labelstringYes
version.descriptionstringYesHuman-readable description.
version.statussaved | published | archivedYesCurrent lifecycle status.
version.snapshotobjectYes
version.metadataobjectNoFree-form metadata object.
version.publishedAtstringNo
version.createdAtstringYesISO 8601 timestamp.
version.updatedAtstringYesISO 8601 timestamp.
acceptanceobjectYes
acceptance.schemaVersioncomputer_agents_optimization_candidate_acceptance_v1Yes
acceptance.candidateobjectYes
acceptance.candidate.idstringYesUnique identifier.
acceptance.candidate.targetKindfunction | metronomeYes
acceptance.candidate.targetResourceIdstringYes
acceptance.candidate.baseVersionIdstringYes
acceptance.candidate.baseFingerprintstringYes
acceptance.candidate.candidateVersionIdstringYes
acceptance.candidate.candidateFingerprintstringYes
acceptance.candidate.objectiveFingerprintstringYes
acceptance.evaluationobjectYes
acceptance.evaluation.runIdstringYes
acceptance.evaluation.evaluationIdstringYes
acceptance.evaluation.evaluationVersionIdstringYes
acceptance.evaluation.evidenceFingerprintstringYes
acceptance.evaluation.targetFingerprintstringYes
acceptance.evaluation.attestationIdstringYes
acceptance.evaluation.completedAtstringYesISO 8601 timestamp.
acceptance.assuranceobjectYes
acceptance.assurance.runIdstringYes
acceptance.assurance.policyIdstringYes
acceptance.assurance.policyVersionIdstringYes
acceptance.assurance.evidenceFingerprintstringYes
acceptance.assurance.decisionFingerprintstringYes
acceptance.assurance.completedAtstringYesISO 8601 timestamp.
acceptance.acceptedAtstringYes
acceptance.acceptedByUserIdstringYes
acceptance.acceptanceFingerprintstringYes
alreadyPublishedbooleanYes
publicationTriggeredbooleanYes
deploymentTriggeredbooleanYes
201Accepted candidate promoted and activatedapplication/json
FieldTypeRequiredDescription
objectoptimization_candidate.promotionYes
candidateobjectYes
candidate.idstringYesUnique identifier.
candidate.objectoptimization_candidateYes
candidate.targetKindfunction | metronomeYes
candidate.targetResourceIdstringYes
candidate.baseVersionIdstringYes
candidate.baseFingerprintstringYes
candidate.candidateVersionIdstringYes
candidate.candidateFingerprintstringYes
candidate.objectiveFingerprintstringYes
candidate.proposalFingerprintstringYes
candidate.idempotencyKeystringYes
candidate.statusmaterialized | validated | accepted | rejected | published | supersededYesCurrent lifecycle status.
candidate.proposalobjectYes
candidate.proposal.schemaVersioncomputer_agents_optimization_candidate_v1Yes
candidate.proposal.targetobjectYes
candidate.proposal.target.kindfunction | metronomeYes
candidate.proposal.target.resourceIdstringYes
candidate.proposal.target.baseVersionIdstringYes
candidate.proposal.target.baseFingerprintstringYes
candidate.proposal.objectiveFingerprintstringYes
candidate.proposal.candidateobjectYes
candidate.proposal.candidate.fingerprintstringYes
candidate.proposal.candidate.labelstringYes
candidate.proposal.candidate.descriptionstringNoHuman-readable description.
candidate.proposal.candidate.snapshotobjectYes
candidate.proposal.candidate.snapshot.namestringNoHuman-readable name.
candidate.proposal.candidate.snapshot.descriptionstringNoHuman-readable description.
candidate.proposal.candidate.snapshot.kindfunctionYes
candidate.proposal.candidate.snapshot.sourceTypemanual | computer | gitNo
candidate.proposal.candidate.snapshot.sourceEnvironmentIdstringNo
candidate.proposal.candidate.snapshot.sourcePathstringNoWorkspace-relative file path.
candidate.proposal.candidate.snapshot.regionstringNo
candidate.proposal.candidate.snapshot.runtimestringNo
candidate.proposal.candidate.snapshot.authModepublic | privateNo
candidate.proposal.candidate.snapshot.customDomainstringNo
candidate.proposal.candidate.snapshot.metadataobjectNoVersionable Function metadata. Deployment identity and credentials are rejected.
candidate.proposal.candidate.snapshot.sourceFilesobject[]Yes
candidate.proposal.candidate.snapshot.sourceFiles[].pathstringYesSafe relative versioned source path.
candidate.proposal.candidate.snapshot.sourceFiles[].namestringYesHuman-readable name.
candidate.proposal.candidate.snapshot.sourceFiles[].isFolderbooleanYes
candidate.proposal.candidate.snapshot.sourceFiles[].sizeintegerYes
candidate.proposal.candidate.snapshot.sourceFileContentsobjectYesComplete contents for every non-folder sourceFiles entry.
candidate.proposal.producerobjectYes
candidate.proposal.producer.kindagent | human | deterministic | externalYes
candidate.proposal.producer.idstringYesUnique identifier.
candidate.proposal.producer.versionIdstringNo
candidate.proposal.producer.runIdstringNo
candidate.proposal.evidenceobjectNo
candidate.proposal.evidence.evaluationRunIdsstring[]No
candidate.proposal.evidence.testRunIdsstring[]No
candidate.proposal.evidence.assuranceRunIdsstring[]No
candidate.proposal.evidence.repairEpisodeIdstringNo
candidate.proposal.evidence.diagnosticFingerprintstringNo
candidate.proposal.idempotencyKeystringYes
candidate.producerobjectYes
candidate.producer.kindagent | human | deterministic | externalYes
candidate.producer.idstringYesUnique identifier.
candidate.producer.versionIdstringNo
candidate.producer.runIdstringNo
candidate.evidenceobjectYes
candidate.evidence.evaluationRunIdsstring[]No
candidate.evidence.testRunIdsstring[]No
candidate.evidence.assuranceRunIdsstring[]No
candidate.evidence.repairEpisodeIdstringNo
candidate.evidence.diagnosticFingerprintstringNo
candidate.organizationIdstringNo
candidate.createdByUserIdstringNo
candidate.createdAtstringYesISO 8601 timestamp.
candidate.updatedAtstringYesISO 8601 timestamp.
versionobjectYes
version.idstringYesUnique identifier.
version.targetKindfunction | metronomeYes
version.resourceIdstringYes
version.versionintegerYes
version.labelstringYes
version.descriptionstringYesHuman-readable description.
version.statussaved | published | archivedYesCurrent lifecycle status.
version.snapshotobjectYes
version.metadataobjectNoFree-form metadata object.
version.publishedAtstringNo
version.createdAtstringYesISO 8601 timestamp.
version.updatedAtstringYesISO 8601 timestamp.
acceptanceobjectYes
acceptance.schemaVersioncomputer_agents_optimization_candidate_acceptance_v1Yes
acceptance.candidateobjectYes
acceptance.candidate.idstringYesUnique identifier.
acceptance.candidate.targetKindfunction | metronomeYes
acceptance.candidate.targetResourceIdstringYes
acceptance.candidate.baseVersionIdstringYes
acceptance.candidate.baseFingerprintstringYes
acceptance.candidate.candidateVersionIdstringYes
acceptance.candidate.candidateFingerprintstringYes
acceptance.candidate.objectiveFingerprintstringYes
acceptance.evaluationobjectYes
acceptance.evaluation.runIdstringYes
acceptance.evaluation.evaluationIdstringYes
acceptance.evaluation.evaluationVersionIdstringYes
acceptance.evaluation.evidenceFingerprintstringYes
acceptance.evaluation.targetFingerprintstringYes
acceptance.evaluation.attestationIdstringYes
acceptance.evaluation.completedAtstringYesISO 8601 timestamp.
acceptance.assuranceobjectYes
acceptance.assurance.runIdstringYes
acceptance.assurance.policyIdstringYes
acceptance.assurance.policyVersionIdstringYes
acceptance.assurance.evidenceFingerprintstringYes
acceptance.assurance.decisionFingerprintstringYes
acceptance.assurance.completedAtstringYesISO 8601 timestamp.
acceptance.acceptedAtstringYes
acceptance.acceptedByUserIdstringYes
acceptance.acceptanceFingerprintstringYes
alreadyPublishedbooleanYes
publicationTriggeredbooleanYes
deploymentTriggeredbooleanYes
409Acceptance mismatch
None.
Promote an accepted Metronome optimization candidate
Loading...
Response 200
Loading...
See the ACP quickstart and SDK flow