Перейти до вмісту
NimbusNexus

Квоти

Квоти — це ліміти на рівні проєкту, які обмежують, скільки будь-якого ресурсу може мати проєкт. Вони запобігають неконтрольованим витратам через випадкові цикли й гарантують, що споживання одного проєкту не вичерпає потужностей регіону.

На що діють квоти

Кожен проєкт має квоту на кожен із таких ресурсів:

РесурсКвота за замовчуваннямПримітки
VM50На регіон; «VM» враховує всі стани, крім terminated
vCPU200Сумарно на всіх запущених VM
RAM (GB)800Сумарно на всіх запущених VM
Блокове сховище (GB)5 000Сума всіх томів (підʼєднаних + відʼєднаних)
Обʼєктне сховище (GB)без обмеженьЛише мʼякий ліміт: понад ~50 TB ми звʼяжемося з вами, щоб узгодити очікування
Снапшоти200На регіон; видалені снапшоти не враховуються
Бекапи500На регіон
Плаваючі IP20На регіон
Мережі10На регіон
Групи безпеки50На регіон
Балансувальники навантаження10На регіон
DNS-зони50На весь проєкт
Користувачі25На весь проєкт

Значення за замовчуванням консервативні. Більшості продакшн-проєктів невдовзі після запуску піднімають квоти до 5–10× за найбільш використовуваними параметрами (vCPU, RAM, сховище).

Квота та споживання

Ендпоінти повертають і те, і інше:

  • GET /v1/quotas — ліміти (50 VM, 200 vCPU тощо)
  • GET /v1/quotas/usage — поточне споживання (використано 12 VM із 50, 48 vCPU із 200 тощо)

Завжди перевіряйте споживання перед масовим створенням ресурсів: запит, який вивів би вас за межі квоти, повертає 429 з порожнім Retry-After (оскільки квота не обмежена в часі, повтор не допоможе — потрібно щось видалити або підвищити квоту).

Підвищення квоти

Квоти підвищують через контактну форму підтримки, а не через API. На це є три причини:

  1. Планування потужностей. Для великих підвищень (10× і більше) потрібно зарезервувати обладнання в цільовому регіоні.
  2. Відповідність вимогам. Деякі підвищення квот потребують короткої розмови про характер навантаження.
  3. Запобігання зловживанням. Ендпоінт самостійного підвищення квоти був би першим, що викликав би скомпрометований акаунт.

Більшість підвищень схвалюють менш ніж за робочий день. Міграції продакшну розглядають того самого дня, якщо ви позначите це в запиті.

Квоти в різних регіонах

Більшість квот діють на регіон (VM, снапшоти, мережі). Кілька діють на весь проєкт (DNS-зони, користувачі). Відповідь ендпоінта це явно показує: кожен запис квоти містить поле scope (region: us-east-1 або project).

Що далі

  • Проєкти — контейнер, до якого привʼязані квоти.
  • Автентифікація — як викликати ці ендпоінти.
  • Контактна форма підтримки за адресою /contact/support — там підвищують квоти.

Reference

GET/api/v1/quota-request/

Get Quota Request

Retrieve a single quota change request by ID within the caller's project.

Parameters

NameInTypeDescription
id*querystring—

Responses

  • 200Successful Response
  • 401Unauthorized
  • 403Forbidden
  • 404Not Found
  • 422Validation error
  • 500Internal Server Error

Example

curl -X GET "https://api.nimbusnexus.net/api/v1/quota-request/?id=example" \
  -H "Authorization: Bearer $NIMBUS_KEY"
POST/api/v1/quota-request/

Create Quota Request

Submit a new quota change request for the caller's project or domain.

Request body

FieldTypeDescription
reasonstring | null—
service_name*ServiceNameEnum—
quota_name*string—
new_value*integer—
project_idstring | null—

Responses

  • 201Successful Response
  • 400Bad Request
  • 401Unauthorized
  • 403Forbidden
  • 422Validation error
  • 500Internal Server Error

Example

curl -X POST "https://api.nimbusnexus.net/api/v1/quota-request/" \
  -H "Authorization: Bearer $NIMBUS_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "service_name": "nova",
    "quota_name": "example",
    "new_value": 1
  }'
PATCH/api/v1/quota-request/

Update Quota Request

Update an existing quota change request; non-admin callers may only edit their own request payload.

Request body

FieldTypeDescription
id*string—
new_valueinteger | null—
stateQuotaRequestStateEnum | null—
admin_user_idstring | null—
messagestring | null—

Responses

  • 200Successful Response
  • 400Bad Request
  • 401Unauthorized
  • 403Forbidden
  • 404Not Found
  • 409Conflict
  • 422Validation error
  • 429Too Many Requests
  • 500Internal Server Error

Example

curl -X PATCH "https://api.nimbusnexus.net/api/v1/quota-request/" \
  -H "Authorization: Bearer $NIMBUS_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "example"
  }'
DELETE/api/v1/quota-request/

Delete Quota Request

Delete a quota change request owned by the caller's project.

Parameters

NameInTypeDescription
id*querystring—

Responses

  • 204Successful Response
  • 400Bad Request
  • 401Unauthorized
  • 403Forbidden
  • 404Not Found
  • 409Conflict
  • 422Validation error
  • 429Too Many Requests
  • 500Internal Server Error

Example

curl -X DELETE "https://api.nimbusnexus.net/api/v1/quota-request/?id=example" \
  -H "Authorization: Bearer $NIMBUS_KEY"
POST/api/v1/quota-request/approve

Admin Approve Quota Request

Admin endpoint that approves a pending quota change request and applies the new limits.

Request body

FieldTypeDescription
id*string—

Responses

  • 200Successful Response
  • 400Bad Request
  • 401Unauthorized
  • 403Forbidden
  • 404Not Found
  • 409Conflict
  • 422Validation error
  • 429Too Many Requests
  • 500Internal Server Error

Example

curl -X POST "https://api.nimbusnexus.net/api/v1/quota-request/approve" \
  -H "Authorization: Bearer $NIMBUS_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "example"
  }'
GET/api/v1/quota-request/list

Get Quota Request List

List quota change requests for the caller's project, optionally filtered by request state.

Parameters

NameInTypeDescription
statesqueryarray of QuotaRequestStateEnum | null—
project_idquerystring | null—

Responses

  • 200Successful Response
  • 400Bad Request
  • 401Unauthorized
  • 403Forbidden
  • 422Validation error
  • 500Internal Server Error

Example

curl -X GET "https://api.nimbusnexus.net/api/v1/quota-request/list" \
  -H "Authorization: Bearer $NIMBUS_KEY"
POST/api/v1/quota-request/reject

Admin Reject Quota Request

Admin endpoint that rejects a quota change request with an explanatory message.

Request body

FieldTypeDescription
id*string—
messagestring—

Responses

  • 200Successful Response
  • 400Bad Request
  • 401Unauthorized
  • 403Forbidden
  • 404Not Found
  • 409Conflict
  • 422Validation error
  • 429Too Many Requests
  • 500Internal Server Error

Example

curl -X POST "https://api.nimbusnexus.net/api/v1/quota-request/reject" \
  -H "Authorization: Bearer $NIMBUS_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "example"
  }'
POST/api/v1/quota-request/update

Admin Mark Quota Request For Update

Admin endpoint that flags a quota change request as needing further updates from the requester.

Request body

FieldTypeDescription
id*string—
messagestring—

Responses

  • 200Successful Response
  • 400Bad Request
  • 401Unauthorized
  • 403Forbidden
  • 404Not Found
  • 409Conflict
  • 422Validation error
  • 429Too Many Requests
  • 500Internal Server Error

Example

curl -X POST "https://api.nimbusnexus.net/api/v1/quota-request/update" \
  -H "Authorization: Bearer $NIMBUS_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "example"
  }'
GET/api/v1/quota/{service}

Get Quotas

Return current quota limits (or defaults) for the given service in the caller's scope.

Parameters

NameInTypeDescription
service*pathQuotaServiceEnum—
admin_domainquerystring | null—
admin_projectquerystring | null—
defaultsqueryboolean | null—

Responses

  • 200Successful Response
  • 400Bad Request
  • 401Unauthorized
  • 403Forbidden
  • 422Validation error
  • 500Internal Server Error

Example

curl -X GET "https://api.nimbusnexus.net/api/v1/quota/<service>" \
  -H "Authorization: Bearer $NIMBUS_KEY"
PATCH/api/v1/quota/{service}

Update Quotas

Update quota limits for the given service in the caller's scope (admin only).

Parameters

NameInTypeDescription
service*pathQuotaServiceEnum—

Request body

FieldTypeDescription
admin_domainstring | null—
admin_projectstring | null—
quotas*object—

Responses

  • 200Successful Response
  • 400Bad Request
  • 401Unauthorized
  • 403Forbidden
  • 422Validation error
  • 500Internal Server Error

Example

curl -X PATCH "https://api.nimbusnexus.net/api/v1/quota/<service>" \
  -H "Authorization: Bearer $NIMBUS_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "quotas": {}
  }'
POST/api/v1/quota/{service}/reset

Reset Quotas

Reset quota limits for the given service back to their default values (admin only).

Parameters

NameInTypeDescription
service*pathQuotaServiceEnum—

Request body

FieldTypeDescription
admin_domainstring | null—
admin_projectstring | null—
quotasarray of string | null—

Responses

  • 200Successful Response
  • 400Bad Request
  • 401Unauthorized
  • 403Forbidden
  • 404Not Found
  • 409Conflict
  • 422Validation error
  • 429Too Many Requests
  • 500Internal Server Error

Example

curl -X POST "https://api.nimbusnexus.net/api/v1/quota/<service>/reset" \
  -H "Authorization: Bearer $NIMBUS_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
GET/api/v1/quota/{service}/usage

Get Quota Usage

Return current resource usage for the given service in the caller's scope.

Parameters

NameInTypeDescription
service*pathQuotaServiceEnum—
admin_domainquerystring | null—
admin_projectquerystring | null—

Responses

  • 200Successful Response
  • 400Bad Request
  • 401Unauthorized
  • 403Forbidden
  • 422Validation error
  • 500Internal Server Error

Example

curl -X GET "https://api.nimbusnexus.net/api/v1/quota/<service>/usage" \
  -H "Authorization: Bearer $NIMBUS_KEY"

Need to make a real call? Try these endpoints in the live Swagger UI →