Materialize a saved Metronome optimization candidate

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

Atomically creates a content-addressed immutable saved Metronome version and append-only candidate provenance. This operation never publishes or activates the workflow.

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
Query parameters
None.

Body schema

Content type: application/json · Required

FieldTypeRequiredDescription
proposalobjectYes
proposal.schemaVersioncomputer_agents_optimization_candidate_v1Yes
proposal.targetobjectYes
proposal.target.kindfunction | metronomeYes
proposal.target.resourceIdstringYes
proposal.target.baseVersionIdstringYes
proposal.target.baseFingerprintstringYes
proposal.objectiveFingerprintstringYes
proposal.candidateobjectYes
proposal.candidate.fingerprintstringYes
proposal.candidate.labelstringYes
proposal.candidate.descriptionstringNoHuman-readable description.
proposal.candidate.snapshotobjectYes
proposal.candidate.snapshot.namestringNoHuman-readable name.
proposal.candidate.snapshot.descriptionstringNoHuman-readable description.
proposal.candidate.snapshot.kindfunctionYes
proposal.candidate.snapshot.sourceTypemanual | computer | gitNo
proposal.candidate.snapshot.sourceEnvironmentIdstringNo
proposal.candidate.snapshot.sourcePathstringNoWorkspace-relative file path.
proposal.candidate.snapshot.regionstringNo
proposal.candidate.snapshot.runtimestringNo
proposal.candidate.snapshot.authModepublic | privateNo
proposal.candidate.snapshot.customDomainstringNo
proposal.candidate.snapshot.metadataobjectNoVersionable Function metadata. Deployment identity and credentials are rejected.
proposal.candidate.snapshot.sourceFilesobject[]Yes
proposal.candidate.snapshot.sourceFiles[].pathstringYesSafe relative versioned source path.
proposal.candidate.snapshot.sourceFiles[].namestringYesHuman-readable name.
proposal.candidate.snapshot.sourceFiles[].isFolderbooleanYes
proposal.candidate.snapshot.sourceFiles[].sizeintegerYes
proposal.candidate.snapshot.sourceFileContentsobjectYesComplete contents for every non-folder sourceFiles entry.
proposal.producerobjectYes
proposal.producer.kindagent | human | deterministic | externalYes
proposal.producer.idstringYesUnique identifier.
proposal.producer.versionIdstringNo
proposal.producer.runIdstringNo
proposal.evidenceobjectNo
proposal.evidence.evaluationRunIdsstring[]No
proposal.evidence.testRunIdsstring[]No
proposal.evidence.assuranceRunIdsstring[]No
proposal.evidence.repairEpisodeIdstringNo
proposal.evidence.diagnosticFingerprintstringNo
proposal.idempotencyKeystringYes

What the API returns

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

200Idempotent replay of an existing candidateapplication/json
FieldTypeRequiredDescription
objectoptimization_candidate.materializationYes
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.
alreadyMaterializedbooleanYes
publicationTriggeredfalseYes
deploymentTriggeredfalseYes
201Metronome candidate materializedapplication/json
FieldTypeRequiredDescription
objectoptimization_candidate.materializationYes
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.
alreadyMaterializedbooleanYes
publicationTriggeredfalseYes
deploymentTriggeredfalseYes
409Base drift or conflicting idempotency key
None.
422Candidate is unchanged or cannot target this resource
None.
Materialize a saved Metronome optimization candidate
Loading...
Response 200
Loading...
See the ACP quickstart and SDK flow