1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
{
"lexicon": 1,
"id": "com.publicdomainrelay.temp.cluster.listClusters",
"defs": {
"main": {
"type": "query",
"description": "Enumerate the calling account's clusters. The account comes from the verified token's iss, so this never takes a DID and can never be used to look at another account. This is a user verb, not an internal one: the gateway's own need to enumerate an account's workspaces is satisfied by a list against kcp with its own privileged credential, not by this call. UNPAGINATED, and it declares no parameters because it has none: an account's clusters are read as one Workspace list plus a CR read per cluster, so a page of clusters is not a page of anything the store can page. There is no limit and no cursor, and a request carrying either is not refused - undeclared query parameters are ignored. If paging is ever implemented, limit and cursor return as new OPTIONAL parameters and a cursor as a new optional output field.",
"output": {
"encoding": "application/json",
"schema": {
"type": "object",
"required": ["clusters"],
"properties": {
"clusters": {
"type": "array",
"items": { "type": "ref", "ref": "#clusterItem" }
}
}
}
},
"errors": [
{ "name": "InvalidRequest", "description": "The request is malformed." },
{ "name": "Unauthorized", "description": "Missing or invalid service-auth token. Also returned when the token's aud is not this service or its lxm is not this method." }
]
},
"clusterItem": {
"type": "object",
"required": ["name", "phase"],
"properties": {
"name": { "type": "string", "description": "The cluster label." },
"phase": {
"type": "string",
"knownValues": ["Unavailable", "Initializing", "Ready", "Draining"],
"description": "Unavailable is COLD: the store is retained and controlPlaneUp will bring it back. Draining means teardown has begun and the gate is running."
},
"running": { "type": "boolean", "description": "The desired state, as distinct from the phase: a cluster can be running=false and still Initializing out of an earlier request." },
"instance": { "type": "string", "description": "status.instance for this materialisation; changes on every wake and rebuild." },
"teardownBlocked": { "type": "boolean", "description": "True when the teardown gate timed out. Nothing has been destroyed and an operator has to act; this is the only place that outcome is visible. Absent means no source reports it, which for a cluster that is not Draining is the same thing as false; it is never sent as false, because a false would be a claim about a condition nothing has read." },
"server": { "type": "string", "description": "status.URL: the cluster's endpoint. Absent until the apiserver has answered at least once." }
}
}
}
}