Skip to content

Resume a hibernated cluster

POST
/api/v1/teams/{team_slug}/clusters/{name}/resume/
curl --request POST \
--url https://example.com/api/v1/teams/example/clusters/example/resume/ \
--cookie sessionid=<sessionid>

/api/v1/teams/{team}/clusters (docs/58 §3.4).

The custom POST actions (hibernate/resume/kubeconfig) are routed manually via as_view({"post": …}) rather than DRF’s @action, so their @extend_schema must live on the method directly — @extend_schema_view only matches recognised ViewSet actions.

name
required
string
team_slug
required
string
Media type application/json

202 Accepted body for a mutating call (docs/58 §5.3): the queued Operation + the resource as last observed.

object
operation
required

An async Operation resource (docs/58 §3.11, §5.3) — poll to convergence.

object
id
required
string
kind
required
string
target
required
object
key
additional properties
state
required
string
progress
required
integer
error
required
object
key
additional properties
desiredHash
required
string
createdAt
required
string format: date-time
updatedAt
required
string format: date-time
self
required
string
nullable
resource
required

A Cluster resource (docs/58 §3.2): {apiVersion, kind, metadata, spec, status}.

object
apiVersion
required
string
kind
required
string
metadata
required
object
name
required
string
id
required
string
team
required
string
generation
required
integer
observedGeneration
required
integer
etag
required
string
createdAt
required
string format: date-time
updatedAt
required
string format: date-time
spec
required
object
key
additional properties
status
required
object
phase
required
string
seedName
required
string
nullable
conditions
required
Array<object>
object
key
additional properties
migrationPhase
required
string
nullable
cost
required
object
key
additional properties
Example generated
{
"operation": {
"id": "example",
"kind": "example",
"target": {
"additionalProperty": "example"
},
"state": "example",
"progress": 1,
"error": {
"additionalProperty": "example"
},
"desiredHash": "example",
"createdAt": "2026-04-15T12:00:00Z",
"updatedAt": "2026-04-15T12:00:00Z",
"self": "example"
},
"resource": {
"apiVersion": "example",
"kind": "example",
"metadata": {
"name": "example",
"id": "example",
"team": "example",
"generation": 1,
"observedGeneration": 1,
"etag": "example",
"createdAt": "2026-04-15T12:00:00Z",
"updatedAt": "2026-04-15T12:00:00Z"
},
"spec": {
"additionalProperty": "example"
},
"status": {
"phase": "example",
"seedName": "example",
"conditions": [
{
"additionalProperty": "example"
}
],
"migrationPhase": "example",
"cost": {
"additionalProperty": "example"
}
}
}
}

RFC 7807 problem document

Media type application/json

RFC 7807 application/problem+json — every non-2xx response (docs/58 §5.10).

object
type
required
string format: uri
title
required
string
status
required
integer
detail
required
string
code
required

Stable machine code clients switch on

string
instance
required
string
nullable
operationId
required
string
nullable
Example generated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"instance": "example",
"operationId": "example"
}

RFC 7807 problem document

Media type application/json

RFC 7807 application/problem+json — every non-2xx response (docs/58 §5.10).

object
type
required
string format: uri
title
required
string
status
required
integer
detail
required
string
code
required

Stable machine code clients switch on

string
instance
required
string
nullable
operationId
required
string
nullable
Example generated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"instance": "example",
"operationId": "example"
}