Identity & Access Management

Preview — pending review

This reference is generated from the platform API contract and is still under review. Operations, fields, and descriptions can change before publication.

Revoke an OpenStack API credential

DELETE
/scopes/{scopeId}/iam/openstack-credentials/{credentialId}

Deletes the application credential on the cloud at once (it stops authenticating; tokens already issued from it live until they expire, at most the Keystone token lifetime) and marks the record revoked (revokeReason: user). Allowed for the credential's own member, tokens: manage for a service-account credential, and iam: manage for any credential in the project. Errors: 401; 403; 404; 409 not active.

Authorization

bearerToken
headerAuthorizationBearer <token>

An API token (pc_live_…) or a service-account key (sak_live_…), created in Identity & Access Management and sent as Authorization: Bearer <token>. Requests are rate limited per credential and per tenant: every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset, and a refused request gets 429 RATE_LIMITED with Retry-After.

Path Parameters

scopeId*string

Opaque ownership+authorization scope resolving to tenant + subscription + project.

credentialId*string

Identifier of the credential to revoke.

Header Parameters

Idempotency-Key?string

Optional; recommended for safe retries. When sent, the same key+body within 24h replays the original result and the same key with a different body is 409 CONFLICT; keys are unique per tenant. When an API token or service-account (bearer) caller omits it, the request is applied once with no replay protection (a retry may apply it again). A console session gets one from the edge.

Formatuuid

Response Body

Revoked; the updated record is returned.

application/json
  1. response

An OpenStack application credential minted by the platform (the secret is never included).

id*string
name*string
projectId*string

The portal project (scope) id.

owner*

Who the credential authenticates as (a member, or a service account).

profile*OpenStackCredentialProfile

full = Keystone member + load-balancer_member; readonly = reader + load-balancer_observer. Never more than the owner's projected roles on the project.

Value in"full""readonly"
roles*array<string>

The Keystone roles the credential carries.

status*OpenStackCredentialStatus

Lifecycle of an OpenStack API credential.

Value in"active""revoked""expired"
applicationCredentialId?|

The Keystone application credential id (not a secret).

expiresAt*string
Formatdate-time
createdAt*string
Formatdate-time
createdBy*string
lastUsedAt?|
Formatdate-time
revokedAt?|
Formatdate-time
revokeReason?|null
rotatedFromId?string|null
replacedById?string|null
deleteAfter?|

End of a rotation overlap window (the old credential is deleted then).

Formatdate-time
curl -X DELETE "https://example.com/scopes/string/iam/openstack-credentials/string"
{  "id": "string",  "name": "string",  "projectId": "string",  "owner": {    "kind": "user",    "id": "string"  },  "profile": "full",  "roles": [    "string"  ],  "status": "active",  "applicationCredentialId": "string",  "expiresAt": "2019-08-24T14:15:22Z",  "createdAt": "2019-08-24T14:15:22Z",  "createdBy": "string",  "lastUsedAt": "2019-08-24T14:15:22Z",  "revokedAt": "2019-08-24T14:15:22Z",  "revokeReason": "user",  "rotatedFromId": "string",  "replacedById": "string",  "deleteAfter": "2019-08-24T14:15:22Z"}