Quota and requests
Show the quota and the usage of an owner, and ask for more quota, access or a region change.
Last updated
On this page
Description and operation
General
Each owner, a person or a team, has a quota: a ceiling in seven dimensions. The platform counts the usage against it on every request and refuses a create, restore, clone or snapshot that passes a ceiling. An owner without a quota of its own gets the default for its kind, and an administrator of the platform can set another.
A request asks an administrator to decide something: more quota, access to a team, a move to another region, or anything else.
To do these tasks with an AI agent, see Agentic workflows – General.
Quota dimensions
| Dimension | Field | Counts | Default for a person | Default for a team |
|---|---|---|---|---|
| Workspaces | workspaces | Workspaces of the owner. | 5 | 20 |
| Environments | environments | Environments of the owner. | 2 | 8 |
| Snapshots | snapshots | Snapshots of the owner. | 20 | 80 |
| Disk | diskGb | GB that the volumes of the owner occupy. | 100 | 400 |
| CPU | cpu | Whole cores of running workspaces and environments. | 40 | 148 |
| Memory | memoryGb | GB of memory of running workspaces and environments. | 80 | 296 |
| Sandboxes | sandboxes | Sandboxes that did not end. | 5 | 10 |
A region can set different defaults. The platform computes the usage from live objects on each call and keeps no counter. A team workspace counts for the team, not for its creator. A stopped workspace counts only its disk. Disk counts every volume, also one without a workspace, at least 1 GB each, as last measured (diskUsedAt shows the oldest measurement).
A request over a ceiling gets 409 and one sentence. The first word is the full dimension, then the use and the limit:
diskGb: 96 of 100 in use; request more under QuotaRequests
| Kind | Asks for | Block |
|---|---|---|
quota | A higher ceiling. Name only the dimensions to raise. | quota |
access | A role in a team. | access: team and role |
region | A move to another region. See Regions. | region: region |
other | Anything else. | other: title and body |
A request has exactly the block of its kind. You can ask for your own account. An admin or an owner can ask for the team. An owner has one pending request for each kind.
| State | Meaning |
|---|---|
pending | Not decided. Nothing changed. |
approved | The administrator approved. The field resolution says what changed. |
denied | The administrator refused. The field note can give the reason. |
A decided request stays in the list. An approval has this effect:
| Kind | Effect |
|---|---|
quota | The platform writes the new ceilings. Dimensions that the request does not name keep their value. |
access | The platform gives you the role in the team. |
region | The platform moves the owner. It refuses while the owner holds a workspace, an environment, a volume or a session. |
other | The administrator writes the resolution as free text. |
Limits
| Item | Limit |
|---|---|
| Pending requests | One for each owner and kind |
| Quota request | Each named dimension is a number above 0 |
| Role in an access request | member, admin or owner |
Tasks
Show the quota and the usage
Reason for the task: Find the ceilings of an owner and the usage.
Job set-up
- Access: you, a member of the team.
- References:
GET /v1/quota, SDKquota.
Procedure
Create the SDK client.
from kloudlite import Kloudlitekl = Kloudlite()import { Kloudlite } from "./index.ts";const kl = new Kloudlite();kl := kloudlite.New(kloudlite.Options{})require_relative "kloudlite"kl = Kloudlite::Client.newvar kl = new Kloudlite();Show the quota of the owner. Use a team handle for
owner, or leave it out for your account.q = kl.quota(owner="acme")print(q["limit"])print(q["used"])const q = (await kl.quota({ owner: "acme" })) as { limit: unknown; used: unknown };console.log(q.limit);console.log(q.used);q, err := kl.Quota("acme")if err != nil { log.Fatal(err)}fmt.Println(q["limit"])fmt.Println(q["used"])q = kl.quota(owner: "acme")pp q["limit"]pp q["used"]// The answer is JSON; it has the fields "limit" and "used".System.out.println(kl.quota("acme"));kloudlite quota --owner acme
Close-out
- Find a dimension where
usedequalslimit. A create of that kind is refused.
Request more quota
Reason for the task: Raise a ceiling.
Job set-up
- Access: the account owner, or an
adminor anownerof the team. - Conditions: you know the dimensions and the values. The account has no pending request of the kind
quota. - References:
POST /v1/requests, Quota dimensions.
The console form requests for your own account. A request for a team goes to the same route with owner set to the team handle.
Procedure
Open your avatar menu, select My requests and select New request.
Select More quota in the field
What do you need?.Type the new ceiling in each field to raise. Leave the others empty.
Type the reason in the field
Reason, and select Send request.
Close-out
- Make sure that My requests lists the request as
pending.
Request access
Reason for the task: Ask for a role in a team.
Job set-up
- Access: you.
- Conditions: you have no pending request of the kind
access. - References:
POST /v1/requests.
To move an account to another region, see Move a team to a different region.
Procedure
Open your avatar menu, select My requests and select New request.
Select Team access in the field
What do you need?.Type the team handle in the field
Team, and select the role in the fieldRole.Type the reason in the field
Reason, and select Send request.
Close-out
- Make sure that My requests lists the request as
pending.
Show the status of a request
Reason for the task: Find out if an administrator decided a request.
Job set-up
- Access: the requester, a member of the team for its requests.
- References:
GET /v1/requests,GET /v1/requests/{id}.
Procedure
Open your avatar menu and select My requests.
Find the request, newest first. Read the state on the row and the text below the reason.
Close-out
- If a quota request is
approved, repeat the task that the quota refused.
Troubleshooting
| Symptom | Possible cause | Corrective action |
|---|---|---|
409 with workspaces: 5 of 5 in use; request more under Quota | The owner used the whole ceiling. The dimension and the numbers are examples. | Delete what you do not need, or request more quota. |
409 with a request is already pending | A request of this kind is pending. | Wait for the decision. See task 004. |
403 with only a team admin can request a team quota | You are not an admin or an owner of the team. | Ask one to send the request. |
422 with kind quota needs a quota block, or only the quota block belongs on a quota request | The block does not match the kind. The same holds for access, region and other. | Send exactly the block of the kind. |
422 with role must be member, admin or owner | The role is not valid. | Select one of the three roles. |
422 with unknown region | The region does not exist or is not active. | Select a region from Show the regions. |
The form shows Raise at least one dimension. or That is not a valid amount for | All fields are empty, or a value is 0, negative or not a number. | Type a number above 0 in at least one field. |
A region request stays pending | The owner holds workspaces, environments, volumes or sessions. | Delete them. See Move a team to a different region. |
diskGb does not match what you expect | The platform measures disk on a schedule, and each volume counts at least 1 GB. | Read diskUsedAt. Delete the volumes that you do not need. |