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.
Refresh the bucket object listing and counters
Re-reads the bucket's object inventory and recomputes the derived counters (object count,
total size, last-modified), backing the "Refresh" control in the object browser toolbar.
The command forces the read model to re-synchronise with the underlying object store so
that recently uploaded, deleted or lifecycle-transitioned objects appear immediately
instead of waiting for the periodic inventory sweep. The bucket configuration itself is
not modified.
Validation: bucketId must reference an existing, non-deleted bucket in the scope
(unknown → 404 NOT_FOUND); the current bucket state must permit refresh — a bucket already
in its deleting workflow cannot be refreshed (→ 409 CONFLICT); caller must hold
reader-or-higher RBAC on the scope, otherwise 403 FORBIDDEN.
Async & state: Synchronous — returns 200 with the refreshed Bucket resource carrying
up-to-date objectCount, sizeBytes and updatedAt. The stored object listing (the
BucketDetail objects) is capped at 10000 objects; past that objectCount/sizeBytes
come from the container itself. If counters changed, a single
resource.updated SSE frame is emitted (kind storage.bucket, patch
{objectCount, sizeBytes, updatedAt}) so other open views converge.
Errors: 401 unauthenticated; 403 caller lacks read access to the scope; 404 unknown
scopeId or bucketId; 409 bucket is mid-deletion and cannot be refreshed; 429 refresh
invoked too frequently (the UI can retry, so the backend rate-limits the sweep); 500
unexpected backend failure.
Idempotency/Concurrency: This operation does not use Idempotency-Key; it may be omitted
and a sent one is ignored. Every call re-lists the container and rewrites the stored inventory
and counters, so repeated requests converge on the same counters while the container is
unchanged.
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.
bucketId*stringIdentifier of the bucket.
Refreshed bucket resource with recomputed object count and size.
application/json- response
Object storage bucket, as listed and shown in the bucket detail header and properties.
origin?stringWhere the resource was made -- portal for a create on the console, api for an object made straight against the OpenStack API (CLI, Terraform, the Kubernetes cloud provider) that discovery adopted. Informational; nothing behaves differently. Absent from a backend that predates it, which means portal.
"portal""api""system""imported"status*BucketStatusLifecycle status of a bucket. creating until its Swift container exists; active; deleting while the delete Operation drains and removes it (object operations, rule changes and a second delete are refused with 409); error when a create or delete failed (the bucket can be deleted again).
"creating""active""deleting""error"id*stringname*stringGlobally unique, DNS-compatible bucket name used as the S3 endpoint host.
region*RegionIdPlatform region code (a DNS-label-shaped slug, e.g. ist-1). No longer a closed enum: the set of valid region codes is operator-managed in the platform-region registry, so this carries only a shape guard. The authoritative set of activated regions is read from GET /regions; invalid-shape codes are VALIDATION_FAILED and codes absent from the registry are rejected at the resolving endpoint.
^[a-z][a-z0-9-]{1,39}$objectCount*integersizeBytes*integervisibility*BucketVisibilityAccess visibility of a bucket. Authenticated can no longer be set (no container ACL is written for it); a bucket that carries it from before is reported as stored, but the only read ACL ever written for it is the private one.
"Private""Public""Authenticated"versioning*booleanencryption*BucketEncryptionWhether the bucket's data is encrypted at rest. NONE = not encrypted;
AT_REST = encrypted at rest by the object store with platform-managed keys. Set at
bucket creation from the region's operator-asserted capability and never changed
afterwards (the object store encrypts at write time). There are no S3 modes and no
customer-managed keys.
"NONE""AT_REST"kmsKeyId*|Always null -- customer-managed (KMS) keys are not offered.
storageClass*ObjectStorageClassStorage class of a bucket, echoed on its objects. Saved with the bucket; it doesn't change how objects are stored or billed.
"Standard""Infrequent Access""Archive"blockPublicAcls*booleanIgnore ACLs that grant public access.
blockPublicPolicy*booleanWhile true, visibility cannot be set to Public (409). Bucket policy statements are not supported at all.
objectLock*booleanLegacy platform delete protection. Enforced only on this API and the console; the object store itself does not enforce it. Direct OpenStack Swift access with the project's own credentials can delete objects. No new bucket can enable it.
accessLogging*booleanlogTarget*stringServer access log target bucket.
owner*stringcreatedAt*stringdate-timeupdatedAt*stringdate-timecurl -X POST "https://example.com/scopes/string/storage/buckets/string/actions/refresh"{ "origin": "portal", "status": "creating", "id": "string", "name": "string", "region": "string", "objectCount": 0, "sizeBytes": 0, "visibility": "Private", "versioning": true, "encryption": "NONE", "kmsKeyId": "string", "storageClass": "Standard", "blockPublicAcls": true, "blockPublicPolicy": true, "objectLock": true, "accessLogging": true, "logTarget": "string", "owner": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z"}