Wake targets of a workspace
Needs `workspace.view`. Wakes the named targets, or without a body the IDE and every service whose run switch is on. Returns at once: a target that can wake is `waking` (the IDE first in `rwo-colocated` mode, then the services on its node), one that cannot says why in `wake.state` (`no-capacity`, `sleeps-until`, `paused`, `stopped`, `busy`). An awake target stays as it is. The shell calls it when the workspace page opens (pre-wake) with `{"targets": ["ide"]}`.
openapi/harthelm.yaml at v1.5.0__Host-harthelm_session<token>Browser session of the UI (12 h idle, 7 days absolute). State-changing requests also need the header
Harthelm-CSRF: 1 and a matching Origin.
ws*integerNumeric resource id.
int641 <= valueapplication/json- body
targets?array<>The targets; absent for the default of the operation.
1 <= items <= 64Accepted; the power state after the request.
application/json- response
workspace_id*IDNumeric resource id.
int641 <= valuetargets*array<>The IDE first, then the services by name.
curl -X POST 'https://console.example.com/api/v1/workspaces/1/wake' \ -H 'Content-Type: application/json' \ -d '{}'{ "workspace_id": 1, "targets": [ { "target": "string", "availability": "always", "asleep": true, "ready_replicas": 0, "sleep_reason": "idle", "slept_at": "2019-08-24T14:15:22Z", "woke_at": "2019-08-24T14:15:22Z", "idle_timeout_minutes": 1, "last_active_at": "2019-08-24T14:15:22Z", "sleeps_at": "2019-08-24T14:15:22Z", "busy": [ "ide" ], "busy_at": "2019-08-24T14:15:22Z", "wake": { "state": "awake", "requested_at": "2019-08-24T14:15:22Z", "finished_at": "2019-08-24T14:15:22Z", "detail": "string", "retry_after_seconds": 0, "until": "2019-08-24T14:15:22Z" } } ]}Put targets of a workspace to sleep
Needs `landscape.manage`. Puts the named targets, or without a body the IDE and every service, to sleep now (sleep reason `manual`), always-running ones included; the next request or wake wakes them. Running steps get the agents' stop grace. A workspace that is deleting, or whose volume Harthelm works on, answers 409.
Add a container registry
Team admins (`team.manage`). Sync uses the registry whose `address` is the longest match of an image (whole path segments) to resolve the image's digest, and the service's pods pull with the same credentials. The credentials are not checked here; a Plan reports a refused pull as the blocker `image-unavailable`. 409 `name-taken` when the team has a registry of that name or address.