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.
Resize a file share's provisioned capacity
Changes the provisioned capacity of the selected file share (the file share detail page "Resize"
action). The new size must respect the platform minimum and may not be smaller than the share's
current used capacity (usedGb); growing also re-derives the tier's provisioned IOPS/throughput
envelope and the hourly billing for provisioned capacity. On acceptance the share enters the
UPDATING state while the underlying filesystem is extended; clients stay mounted throughout.
Validation: fileShareId must reference a live share (→ 404 NOT_FOUND); the share must be
in a state that permits resize (AVAILABLE, or ERROR when the share exists in the backing file
service — the resize reads the provider's real state, so it is also the way to recover an ERROR
share the provider holds healthy; CREATING/UPDATING, or an ERROR share that was never
provisioned → 409 CONFLICT);
provisionedGb ≥ 100 and ≥ current usedGb (shrink below used data → 422 VALIDATION_ERROR);
the resulting capacity must fit the scope quota (→ 409 QUOTA_EXCEEDED) and regional tier
capacity (→ 409 CAPACITY_UNAVAILABLE). RBAC: owner|admin|contributor.
Async & state: Asynchronous; returns 202 with an Operation resource. The share transitions
AVAILABLE|ERROR → UPDATING → AVAILABLE (or → ERROR on failure); resource.updated SSE frames with
kind "storage.file_share" patch status, provisionedGb, iops, throughputMbps, updatedAt
and, when the provider reports it, mountPath. When the provider has not finished the resize by the time
the worker stops waiting, the share lands ERROR (Operation FAILED) and keeps being re-checked in
the background (shortly after, then periodically): if the provider reports the share healthy,
it returns to AVAILABLE at the provider's actual size (a resource.updated frame carries the
healed fields). A resize of an ERROR share never shrinks a share the provider already holds
larger than the requested size; it settles the share at its actual size instead.
Errors: 401 unauthenticated; 403 insufficient role; 404 unknown scopeId or fileShareId;
409 CONFLICT share not in a resizable state; 409 QUOTA_EXCEEDED scope capacity quota; 409
CAPACITY_UNAVAILABLE no regional capacity; 412 If-Match mismatch; 422 invalid target size;
500 unexpected failure.
Idempotency/Concurrency: Idempotency-Key is optional (recommended); replaying the same
key returns the
original 202 Operation without applying the resize twice. If-Match pins the resize to the
share revision the user saw (mismatch → 412).
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.
Idempotency-Key?stringOptional; 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.
uuidIf-Match?stringETag for optimistic concurrency on mutations/deletes; mismatch results in 412.
application/json- body
Request body for storage.file_share.resize.
provisionedGb*integerNew provisioned capacity in GB — must be >= 100 and >= the share's current usedGb.
100 <= valueResize accepted; returns the tracking Operation.
application/json- response
A long-running operation record. GET /operations/{operationId} returns its current state.
id*stringOperation identifier, unique platform-wide.
action*stringCanonical action id that started this operation, e.g. compute.instance.create.
state*OperationStateState machine for long-running operations. PENDING and RUNNING are transitional; the rest are terminal.
"PENDING""RUNNING""SUCCEEDED""FAILED""CANCELLED"resourceKind?|Kind of the target resource (matches RealtimeEvent.kind), null for resource-less actions.
resourceId?|Identifier of the target resource; null until the resource is allocated.
resourceName?|Human-readable name of the target resource captured when the operation was opened; null when unknown or the resource has been deleted (clients fall back to resourceId).
principalId?|Subject id (user id/email or service-account id) of the actor that initiated this operation, captured at the create chokepoint; null on internal/worker paths with no request-scoped principal or for historical rows. This is the real actor the Activity feed renders.
sourceIp?|Source IP address of the request that initiated this operation; null when unavailable (internal/worker paths, historical rows).
progressPercent?|Best-effort progress; null when the action does not report progress.
0 <= value <= 100error?|nullPopulated only when state is FAILED (or CANCELLED with partial rollback notes).
warning?|nullNon-fatal degradation recorded on an operation that still SUCCEEDED - the primary action completed but something explicitly requested could not be delivered (e.g. publicIp was requested at instance create but no floating IP could be assigned). On a CANCELLED create it reports that the provider resource had already been created and was kept (live and billed until deleted; details.disposition = left_in_place). Same code+message shape as error so clients render both uniformly; null when the operation ran without degradation.
startedAt?|When the worker began executing; null while PENDING.
finishedAt?|When a terminal state was reached; null while transitional.
createdAt*stringupdatedAt*stringcurl -X POST "https://example.com/scopes/string/storage/file-shares/string/actions/resize" \ -H "Content-Type: application/json" \ -d '{ "provisionedGb": 100 }'{ "id": "string", "action": "string", "state": "PENDING", "resourceKind": "string", "resourceId": "string", "resourceName": "string", "principalId": "string", "sourceIp": "string", "progressPercent": 0, "error": { "code": "string", "message": "string", "field": "string", "details": {}, "retryable": false }, "warning": { "code": "string", "message": "string", "field": "string", "details": {}, "retryable": false }, "startedAt": "string", "finishedAt": "string", "createdAt": "string", "updatedAt": "string"}