Save the schedule (enabled, cron, retention); the dual-control restore gate's armed state is preserved, and server-owned bookkeeping fields are ignored
const url = 'https://example.com/v1/console/dr/schedule';const options = { method: 'PUT', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"cron":"example","enabled":true,"require_dual_control_restore":true,"retain_days":1}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PUT \ --url https://example.com/v1/console/dr/schedule \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "cron": "example", "enabled": true, "require_dual_control_restore": true, "retain_days": 1 }'Saves the schedule’s operator-owned fields (enabled, cron in the runner’s grammar, retention days). The dual-control gate’s armed state is preserved; server-owned bookkeeping fields in a read-modify-write round trip are ignored.
Authorizations
Section titled “ Authorizations ”Request Body required
Section titled “ Request Body required ”The schedule’s operator-owned fields. The armed state of the dual-control gate is preserved; server-owned bookkeeping (disarm instant, run history) is ignored on write.
object
The runner’s cron grammar; validated on write.
Arm (true) or request the disarm of (false) the dual-control restore gate. Disarm takes effect at the engine’s persisted instant, never immediately.
Example generated
{ "cron": "example", "enabled": true, "require_dual_control_restore": true, "retain_days": 1}Responses
Section titled “ Responses ”OK
object
The most recent scheduled run’s outcome, so a failing schedule is not a silent gap.
The effective console restore gate. When armed, a distinct administrator account must approve; CLI restore uses a declared-operator record instead, so estates requiring approval for every restore must also control host access.
Example
{ "last_run_status": "completed"}Bad request
object
object
With code module_not_enabled: the namespace of the module this node does not run.
Example generated
{ "error": { "code": "example", "message": "example", "module": "example" }}Unauthenticated
object
object
With code module_not_enabled: the namespace of the module this node does not run.
Example generated
{ "error": { "code": "example", "message": "example", "module": "example" }}Forbidden
object
object
With code module_not_enabled: the namespace of the module this node does not run.
Example generated
{ "error": { "code": "example", "message": "example", "module": "example" }}Not found
object
object
With code module_not_enabled: the namespace of the module this node does not run.
Example generated
{ "error": { "code": "example", "message": "example", "module": "example" }}Conflict / setup required
object
object
With code module_not_enabled: the namespace of the module this node does not run.
Example generated
{ "error": { "code": "example", "message": "example", "module": "example" }}Rate limited
object
object
With code module_not_enabled: the namespace of the module this node does not run.
Example generated
{ "error": { "code": "example", "message": "example", "module": "example" }}