List Roles
role_ids usable from code: a Terraform module
or a provisioning script cannot hard-code a per-tenant UUID, and before this
existed the only way to find one was to open the admin UI and copy it out of the
URL bar.
Read-only, permanently. Creating, editing and deleting roles stays on the
MFA-gated admin surface (Settings → Permissions). There is no POST, PATCH or
DELETE on /v1/roles.
Requires the role:list permission, which all four seeded machine roles carry.
Query Parameters
Response
The rules a role grants are deliberately not returned. Enumerating them
would hand every machine credential in the tenant a map of your authorization
surface. To see what a role grants, open it in the admin UI.
The seeded machine roles
Key — Infrastructure deliberately excludes, and explicitly denies:
secret:reveal— a provisioning credential never needs the plaintext of a secret it created. KnoxCall holds the plaintext; that is the product.secret:custody_enable/custody_disable/custody_rotate— custody transitions decrypt the current administrative credential server-side.workload_binding:create/delete— a binding is a permanent route to a live credential for anyone presenting a matching JWT.ephemeral_proxy:invoke— one-shot runtime invocation against live credentials. It is not infrastructure state, and no Terraform resource models it.
(resource_type, action) allow, so a legacy *:* key does not silently
hold them.