Set or revert an organization's shared-storage quota
const url = 'https://api.aetherplatform.cloud/api/v1/admin/organizations/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/storage-quota';const options = { method: 'PUT', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"quota_gb":200}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PUT \ --url https://api.aetherplatform.cloud/api/v1/admin/organizations/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/storage-quota \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "quota_gb": 200 }'Sets the org’s shared-storage cap and publishes it to the org’s StorageInventory so a raise takes effect immediately; the provisioner syncer is the durable path, so a failed publish is logged rather than returned. A null quota_gb REVERTS the org to the platform default and publishes a REMOVAL of spec.sharedQuotaBytes from the org’s StorageInventory (never 0 — ceph reads 0 as unlimited, the exact inversion of a revert).
Lowering is pre-flighted against the bytes already stored and rejected with 409 when it would fall below them: ceph accepts such a quota and then refuses every write to the pool until usage drops, an org-wide outage whose only undo is raising the quota back. The check is advisory — when no observed figure is available it is skipped, because a StorageInventory with no status yet is the ordinary state of a young org.
The change is recorded in the admin audit log with its before and after values. Requires the platform-admin realm role.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Organization UUID.
Request Bodyrequired
Section titled “Request Bodyrequired”object
The cap in GiB, between 1 and 10240, or null to revert to the platform default. 1 is the floor because 0 means UNLIMITED to ceph.
Example
{ "quota_gb": 200}Responses
Section titled “Responses”The stored quota, with the observed figures when available.
An organization’s shared-storage (CephFS) cap: what is configured, what applies, and what the cluster actually reports. Every optional member is nullable rather than absent — a 0 quota would read as “unlimited”, and a 0 observed pair would claim the org has no cap and has written nothing, neither of which can be asserted without a figure.
object
The per-org cap in GiB, or null when none is set and the platform default applies.
The cap in force — configured_gb when set, otherwise default_gb.
The platform default cap in GiB.
The quota ceph is currently ENFORCING on the org’s CephFS data pool — the configured-vs-observed drift readout. null when the management cluster has published no figure or could not be reached.
Bytes already written to that pool. null under the same conditions as observed_quota_bytes.
Examplegenerated
{ "configured_gb": 1, "effective_gb": 1, "default_gb": 1, "observed_quota_bytes": 1, "observed_used_bytes": 1}Malformed request — e.g. an invalid path UUID or an unparseable JSON body.
object
object
A stable, machine-readable error code.
object
Examplegenerated
{ "error": { "code": "example", "message": "example", "details": [ { "field": "example", "code": "example", "message": "example" } ] }}Missing or invalid credentials.
object
object
A stable, machine-readable error code.
object
Examplegenerated
{ "error": { "code": "example", "message": "example", "details": [ { "field": "example", "code": "example", "message": "example" } ] }}The credential was accepted but lacks the required role or access (e.g. a non-platform-admin calling an /api/v1/admin endpoint).
object
object
A stable, machine-readable error code.
object
Examplegenerated
{ "error": { "code": "example", "message": "example", "details": [ { "field": "example", "code": "example", "message": "example" } ] }}The requested resource was not found.
object
object
A stable, machine-readable error code.
object
Examplegenerated
{ "error": { "code": "example", "message": "example", "details": [ { "field": "example", "code": "example", "message": "example" } ] }}quota_below_usage — the requested cap is below the bytes already stored in the org’s pool.
object
object
A stable, machine-readable error code.
object
Examplegenerated
{ "error": { "code": "example", "message": "example", "details": [ { "field": "example", "code": "example", "message": "example" } ] }}Request validation failed.
object
object
A stable, machine-readable error code.
object
Examplegenerated
{ "error": { "code": "example", "message": "example", "details": [ { "field": "example", "code": "example", "message": "example" } ] }}