Ir al contenido

Save the zones, the mode and the Ask overrides of a draft

PATCH/api/public/v1/aip/drafts/{public_id} beta

zone_ids (none or one: an AIP sits in one Autonomy Zone, 409 ONE_ZONE_PER_AIP for more), the mode it takes there, and the AIP's own ask_mode_override and ask_behaviour_override (null follows the zone; ratify writes them onto the AIP). A field not sent is left as it is; none moves the draft's revision. 422 ZONE_UNAVAILABLE names each zone that is not a live zone of this organization.

Ventana de terminal
curl --fail-with-body -X PATCH 'https://app.openlatch.ai/api/public/v1/aip/drafts/<draft_public_id>' \
-H "Authorization: Bearer $OPENLATCH_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"zone_ids":["<zone_id>"],"mode":"monitor"}'
Rol en la organizaciónEste punto de conexión
ownerPermitido
adminPermitido
editorPermitido
viewerNo permitido

Una clave tiene el rol que su propietario ocupa en la organización. Consulte Autenticación.

Ámbito de la clave de API: aip:write

ParámetroTipoDescripción
public_idstringObligatorio.
ParámetroTipoDescripción
Idempotency-Keystring or nullOptional. Makes the request safe to retry: the same key and the same request, within 24 hours, returns the stored response with Idempotent-Replayed: true and runs once.
CampoTipoDescripción
ask_behaviour_overridestring — one of pass_and_review, hold_until_validated or nullpass_and_review | hold_until_validated, or null to follow the Autonomy Zone.
ask_mode_overridestring — one of platform, agent, both or nullplatform | agent | both, or null to follow the Autonomy Zone.
modestring — one of disabled, monitor, enforce or null
zone_idsarray of string (uuid) or null
CampoTipoDescripción
dataobjectObligatorio. One draft: its intent policies, revision, zones, mode, preparation, replay and, for an edit draft, the live version it was opened from.
data.ask_behaviour_overridestring — one of pass_and_review, hold_until_validated or nullThe AIP's own Ask behaviour ratify gives it; null follows the Autonomy Zone.
data.ask_mode_overridestring — one of platform, agent, both or nullThe AIP's own Ask delivery ratify gives it; null follows the Autonomy Zone.
data.edit_ofobject or null
data.edit_of.versionintegerObligatorio.
data.from_framework_presetbooleanObligatorio. True when an intent policy of the draft holds a framework citation, edit drafts included.
data.intent_policiesarray of objectObligatorio.
data.intent_policies[].busyobject or nullWhat runs on the intent policy: grounding, cases (its stored cases checked again), fix, or topping_up (cases written for the values an answer added, appended when ready; it blocks nothing).
data.intent_policies[].capabilityobject or null
data.intent_policies[].cardsarray of objectObligatorio.
data.intent_policies[].casesarray of objectObligatorio.
data.intent_policies[].citationobject or nullObligatorio. The framework preset rule this intent policy came from, edited when its sentence differs; null for anything not drawn from a framework preset.
data.intent_policies[].confirmedobject or null
data.intent_policies[].deferredobject or nullThe deferred part's gap class and fallback; null when it has none.
data.intent_policies[].dimensionstring — one of quality, economics, security, safety, complianceObligatorio.
data.intent_policies[].fallbackobject or null
data.intent_policies[].fixobject or null
data.intent_policies[].idstringObligatorio.
data.intent_policies[].job_idobject or null
data.intent_policies[].languagestringObligatorio.
data.intent_policies[].passageobject or null
data.intent_policies[].refusalobject or null
data.intent_policies[].request_ruleobject or null
data.intent_policies[].sentencestringObligatorio. The intent policy. Empty while the drafting job still prepares it (busy is grounding and it holds no grounding yet): a sentence is served only once it is final.
data.intent_policies[].steerobject or null
data.intent_policies[].validateobject or null
data.languagestringObligatorio.
data.modestring — one of disabled, monitor, enforce or null
data.mode_advicestring or nullObligatorio. The Monitor line on a draft newly made from a framework preset; null otherwise and on edit drafts.
data.preparationobjectObligatorio.
data.preparation.errorobject or null
data.preparation.remainingarray of string — one of ground, test, pack, replayObligatorio.
data.preparation.revisioninteger or null
data.preparation.statestring — one of idle, running, ready, failedObligatorio.
data.preparation.steps_doneintegerObligatorio.
data.preparation.steps_totalintegerObligatorio.
data.public_idstringObligatorio.
data.replayobject or null
data.replay.rowsarray of object
data.replay.statestring — one of running, done, engine_unavailable, emptyObligatorio.
data.replay.summaryobject or nullThe replay's figures over all total rows; null while it runs.
data.replay.totalinteger
data.revisionintegerObligatorio.
data.source_kindstringObligatorio.
data.unavailable_zonesarray of object
data.unavailable_zones[].nameobject or null
data.unavailable_zones[].reasonstring — one of deleted, cannot_take_policyObligatorio.
data.unavailable_zones[].sinceobject or null
data.unavailable_zones[].zone_idstringObligatorio.
data.zone_idsarray of stringObligatorio.
{
"data": {
"ask_behaviour_override": "pass_and_review",
"ask_mode_override": "platform",
"edit_of": {
"version": 3
},
"from_framework_preset": false,
"intent_policies": [
{
"busy": "string",
"capability": "string",
"cards": [
{
"answer": {},
"key": "string",
"kind": "dictionary_values",
"question": "string",
"recommended": {}
}
],
"cases": [
{}
],
"citation": {
"edited": false,
"entries": [
{}
],
"items": [
{}
],
"license_url": "https://app.openlatch.ai/",
"preset_key": "string",
"preset_title": "string",
"rule_id": "3f6c1a2e-8b4d-4c1f-9a7e-0d5b2c8e4f10",
"source_commit": "string",
"source_date": "string",
"source_sentence": "string",
"version": 1
},
"confirmed": false,
"deferred": {
"class": "string",
"fallback": "Ask"
},
"dimension": "quality",
"fallback": "Ask",
"fix": {
"attempts_left": 3,
"available": false,
"diff": {},
"fix_id": "3f6c1a2e-8b4d-4c1f-9a7e-0d5b2c8e4f10",
"reason": "Never push to main without a review.",
"requested": false
},
"id": "3f6c1a2e-8b4d-4c1f-9a7e-0d5b2c8e4f10",
"job_id": "3f6c1a2e-8b4d-4c1f-9a7e-0d5b2c8e4f10",
"language": "string",
"passage": {
"end": 3,
"start": 3
},
"refusal": {
"class": "nothing_observable",
"reason": "Never push to main without a review."
},
"request_rule": {
"lever": "effort_clamp",
"params": {}
},
"sentence": "string",
"steer": "string",
"validate": {
"example": "string",
"fires_on_every_action": false,
"never_fires": false
}
}
],
"language": "string",
"mode": "disabled",
"mode_advice": "string",
"preparation": {
"error": {
"code": "NOT_FOUND",
"message": "Never push to main without a review."
},
"remaining": [
"ground"
],
"revision": 3,
"state": "idle",
"steps_done": 3,
"steps_total": 3
},
"public_id": "3f6c1a2e-8b4d-4c1f-9a7e-0d5b2c8e4f10",
"replay": {
"rows": [
{
"event_id": "evt_01jbwa2k1vfrn9y42xhgxhmzj2",
"occurred_at": "2026-01-15T14:32:05Z",
"platform": "string",
"readable": false,
"recorded_verdict": "string",
"verdict": "string"
}
],
"state": "running",
"summary": {},
"total": 0
},
"revision": 3,
"source_kind": "string",
"unavailable_zones": [
{
"name": "release-bot",
"reason": "deleted",
"since": "2026-01-15T14:32:05Z",
"zone_id": "3f6c1a2e-8b4d-4c1f-9a7e-0d5b2c8e4f10"
}
],
"zone_ids": [
"3f6c1a2e-8b4d-4c1f-9a7e-0d5b2c8e4f10"
]
}
}