This REST API is for local control by a client with direct access to the Kerrigan admin interface. Normal cloud controllers cannot access it; use the cloud-control interfaces instead.
Set local maintenance intent
PUT/v1/maintenance/:scope/:scope_id
Requires an administrator authenticated by the kerrigan_session cookie. Set persistent intent for global/all, pool/{pool_id}, or device/{target_id}. Returns 202 after saving intent, not after runner operations finish; poll GET on the same path for device reconciliation. Entry blocks new work and SDK pairing, waits for active work, and disables runner services. Exit rediscovers all actions.runner.*.service units and enables and starts them, including previously disabled or newly installed runners; it does not restore prior enabled/disabled state. Devices remain blocked while restoration is pending or failed. Clearing one scope does not clear other applicable scopes. There is no automatic expiry or scheduled start; explicitly send enabled: false to end the window. OTA updates are admitted after affected devices reach the active phase; they remain blocked while maintenance is entering, exiting, or in error. Maintenance is independent of firmware-update job state.
Request
Responses
- 202
- 401
- 403
- 404
- 422
Intent saved. Response contains scope intent, inherited scopes, and current device maintenance states.
Administrator session required.
The signed-in user is not an administrator.
Unknown pool/device, or global scope ID other than all.
Validation Error