Read one service's state.
curl --request GET \ --url https://stratum.example.com/v1/admin/services/db \ --header 'Authorization: Bearer <token>'Cedar action: platform:DescribeServices.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”A registered service key. images and lb are always-on services with no
registry row, so they are not addressable here.
Responses
Section titled “Responses”The service.
One Stratum service in the service registry. Only managed services are switchable; a service the platform itself runs on is always on where it exists. A single-node install does not offer asg, db, k8s or s3 at all.
object
The service key (db, k8s, client-vpn, backup, s3, secrets, security, asg).
The hosting bucket.
An operator may turn it off.
Service keys that must be on for this one to work.
The service exists here: on this install’s profile, and with its backend deployed. S3 on a cluster is not available until the Ceph object gateway (RGW) is deployed (waitsFor).
Set when the service is unavailable only because its backend is not deployed yet: ceph (no Ceph cluster yet), rgw (Ceph runs, its object gateway is not deployed). Also set on a service whose prerequisite (requires) waits so, with that prerequisite’s value (db waits with s3). The operator’s switch is kept meanwhile; the service turns on by itself once the backend is deployed.
On right now. Never true when available is false.
Why the service is unavailable or off.
When an operator last switched it. Absent if never.
A service’s teardown record.
object
Running: tenant routes answer 503 while the service’s reconcilers delete the resources. done: none were left and the service was switched off.
What a running teardown is waiting on.
Example
{ "key": "db", "bucket": "B", "waitsFor": "ceph", "teardown": { "state": "running" }}Authenticated but not authorized.
object
The findings of a rejected IAM policy document (custom and resource policies).
One finding of a rejected IAM policy document. A rejection lists every finding, so the author fixes the document in one round trip.
object
The finding, e.g. INVALID_DOCUMENT, UNKNOWN_ACTION, ACTION_NOT_APPLICABLE.
Index of the statement at fault; -1 for the document as a whole.
The offending action, where one is at fault (ACTION_NOT_APPLICABLE).
Field errors, for codes that carry them: each problem at its field
(see FieldError). Documented on the responses that set it, e.g.
approveNodeJoin’s INVALID_INPUT and JOIN_APPROVAL_REFUSED.
Absent otherwise.
One field’s problem, the stage-2 installer API’s shape.
field is the field’s path, message what is wrong with it.
object
The field’s path, e.g. links[0].interface, disks[1].confirm,
mgmt.address or role; empty for the whole request.
Structured facts about the refusal, for codes that carry them. The
shape is fixed per code and documented on the response that answers
it, e.g. IMAGE_POOL_MISMATCH (see ImagePoolMismatchDetails) and
IMAGE_IN_USE. Absent for codes that carry none.
object
Example
{ "issues": [ { "code": "ACTION_NOT_APPLICABLE", "action": "compute:CreateVpc" } ]}Resource not found.
object
The findings of a rejected IAM policy document (custom and resource policies).
One finding of a rejected IAM policy document. A rejection lists every finding, so the author fixes the document in one round trip.
object
The finding, e.g. INVALID_DOCUMENT, UNKNOWN_ACTION, ACTION_NOT_APPLICABLE.
Index of the statement at fault; -1 for the document as a whole.
The offending action, where one is at fault (ACTION_NOT_APPLICABLE).
Field errors, for codes that carry them: each problem at its field
(see FieldError). Documented on the responses that set it, e.g.
approveNodeJoin’s INVALID_INPUT and JOIN_APPROVAL_REFUSED.
Absent otherwise.
One field’s problem, the stage-2 installer API’s shape.
field is the field’s path, message what is wrong with it.
object
The field’s path, e.g. links[0].interface, disks[1].confirm,
mgmt.address or role; empty for the whole request.
Structured facts about the refusal, for codes that carry them. The
shape is fixed per code and documented on the response that answers
it, e.g. IMAGE_POOL_MISMATCH (see ImagePoolMismatchDetails) and
IMAGE_IN_USE. Absent for codes that carry none.
object
Example
{ "issues": [ { "code": "ACTION_NOT_APPLICABLE", "action": "compute:CreateVpc" } ]}