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.
List backup plans in the active scope
Returns the backup PLANS of the active scope. A plan is a reusable policy — a schedule
and a retention window — that any number of volumes are assigned to, so this list is
short and stable where the older per-volume plan list grew one row per protected volume.
Each row carries assignedVolumeCount, the last run's time and outcome, and the next
run time, which is what the plans table renders without a second call.
Validation: scopeId must resolve to a scope the caller can access (unknown or
soft-deleted → 404 NOT_FOUND); page ≥ 1 and pageSize within server bounds → 422.
RBAC: any scope role may read.
Async & state: Synchronous read; no state change.
Errors: 401 unauthenticated; 403 no role on the scope; 404 unknown scopeId;
422 malformed pagination; 500 unexpected backend failure.
Idempotency/Concurrency: Safe and cacheable; no idempotency key.
bearerTokenAuthorizationBearer <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.
scopeId*stringOpaque ownership+authorization scope resolving to tenant + subscription + project.
page?integer1-based page number.
1 <= value1pageSize?integerItems per page (max 200).
1 <= value <= 20050Paginated page of backup plans.
application/json- response
data*array<>meta*Pagination envelope metadata. List responses are always { data, meta } — never a naked array.
curl -X GET "https://example.com/scopes/string/storage/backup-plans"{ "data": [ { "id": "string", "name": "string", "description": "string", "scheduleKind": "MANUAL", "weekday": "mon", "dayOfMonth": 0, "time": "string", "scheduleDetail": "string", "retentionDays": 0, "incremental": true, "state": "ENABLED", "origin": "CUSTOMER", "assignedVolumeCount": 0, "lastRunAt": "2019-08-24T14:15:22Z", "lastRunStatus": "QUEUED", "nextRunAt": "2019-08-24T14:15:22Z", "createdAt": "2019-08-24T14:15:22Z" } ], "meta": { "page": 1, "pageSize": 1, "total": 0, "hasNext": true }}