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.

Preview the live resources a project's cascade delete would destroy

GET
/scopes/{scopeId}/iam/projects/{projectId}/live-resources

Returns a preview of everything that currently lives inside a project, grouped into four fixed categories (compute, storage, network, other), so a confirmation UI can show exactly what a cascade delete of the project would destroy before the caller consents. Each category is always present in the response, in that fixed order, even when its count is 0 — the confirmation dialog renders one checkbox per category and depends on a stable category set to know how many consents exist. Each category carries up to 100 named items (kind, id, name); itemsTruncated is true when count exceeds the number of items returned, so a project holding thousands of volumes never produces an unbounded payload. name is always populated — for the floatingIp kind it carries the IP address, since floating IPs have no name column. Validation: scopeId must reference an accessible scope and projectId must reference a project visible in that scope; an unknown or out-of-scope project maps to NOT_FOUND (404). No body or mutation parameters exist. Async & state: Synchronous read; no state change — nothing is deleted, locked, or reserved by calling this endpoint. Errors: 401 when unauthenticated; 403 from any of three checks — the caller's role does not grant IAM read on the scope, a bearer API token is missing the iam:read action scope (token principals only, so even an owner's token gets 403 without it), or the caller is not an owner of the resource group (this preview carries the same authorization as the cascade delete it gates, so a contributor or reader who does hold IAM read still gets 403); 404 when the project does not exist or is not visible in this scope; 500 on read-model failure. Idempotency/Concurrency: Safe, cacheable; no idempotency key required.

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.

projectId*string

Identifier of the project whose live resources are being previewed.

Response Body

Live-resource inventory of the project, grouped into fixed categories for cascade-delete confirmation.

application/json
  1. response

Preview of everything a project's cascade delete would destroy, grouped into fixed categories, as rendered by the cascade-delete confirmation dialog.

totalCount*integer

Total number of live resources across all categories in the project.

categories*array<>

Always contains exactly one entry per LiveResourceCategory value, in that fixed order (compute, storage, network, other).

Items4 <= items <= 4
curl -X GET "https://example.com/scopes/string/iam/projects/string/live-resources"
{  "totalCount": 0,  "categories": [    {      "category": "compute",      "count": 0,      "items": [        {          "kind": "instance",          "id": "string",          "name": "string"        }      ],      "itemsTruncated": true    },    {      "category": "compute",      "count": 0,      "items": [        {          "kind": "instance",          "id": "string",          "name": "string"        }      ],      "itemsTruncated": true    },    {      "category": "compute",      "count": 0,      "items": [        {          "kind": "instance",          "id": "string",          "name": "string"        }      ],      "itemsTruncated": true    },    {      "category": "compute",      "count": 0,      "items": [        {          "kind": "instance",          "id": "string",          "name": "string"        }      ],      "itemsTruncated": true    }  ]}