Справочник API
Сформировано из спецификаций OpenAPI в репозитории платформы при сборке сайта. Все пути начинаются с /api/v1. Общие правила — в разделе «Работа с API».
EGN Cloud Billing API
1.0.0 · billing.v1.yaml · 46 операцийcatalog
GET/api/v1/billing/catalogCurrent published price list
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| plan | query | string |
POST/api/v1/billing/estimatePrice a prospective configuration (hourly/daily/monthly, one-time)
account
GET/api/v1/orgs/{org}/billing/overviewBalance, credit, holds, month-to-date spend, run-rate and forecast
Requires `billing.accounts.read`.
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org* | path | string |
GET/api/v1/orgs/{org}/billing/account
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org* | path | string |
PUT/api/v1/orgs/{org}/billing/account/legalUpdate organization legal requisites (INN checksum validated)
Requires `billing.settings.update`.
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org* | path | string |
GET/api/v1/orgs/{org}/billing/holdsAdmission holds (funds reserved while resources are being provisioned)
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org* | path | string |
usage
GET/api/v1/orgs/{org}/billing/costsSpend for a business month grouped by service|project|resource|component
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org* | path | string | |
| period | query | string | |
| group_by | query | string | |
| project_id | query | string |
GET/api/v1/orgs/{org}/billing/costs/dailyHistorical (actual) spend per business day — not a forecast
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org* | path | string | |
| period | query | string | |
| project_id | query | string |
GET/api/v1/orgs/{org}/billing/chargesRated charges (exact amounts) — explains how each charge was calculated
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org* | path | string | |
| period | query | string | |
| project_id | query | string | |
| resource_id | query | string | |
| limit | query | integer |
ledger
GET/api/v1/orgs/{org}/billing/transactionsLedger movements of the organization's account (newest first, cursor pagination)
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org* | path | string | |
| limit | query | integer | |
| cursor | query | string |
GET/api/v1/orgs/{org}/billing/transactions/{id}One movement; usage settlements include the settled charges and rounding rule
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org* | path | string | |
| id* | path | string |
payments
GET/api/v1/orgs/{org}/billing/payments
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org* | path | string |
GET/api/v1/orgs/{org}/billing/payments/{id}
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org* | path | string | |
| id* | path | string |
POST/api/v1/orgs/{org}/billing/payments/cardTop up by card (T-Kassa). Returns payment_url to redirect the user.
Requires `billing.payments.create`. Funds are credited only after a verified CONFIRMED status.
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org* | path | string | |
| Idempotency-Key* | header | string |
POST/api/v1/orgs/{org}/billing/payments/bank-invoiceIssue a счёт на оплату for a bank transfer (requires organization INN)
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org* | path | string | |
| Idempotency-Key* | header | string |
POST/api/v1/orgs/{org}/billing/payments/{id}/simulateDEVELOPMENT ONLY — drive the T-Kassa simulator (404 when disabled)
documents
GET/api/v1/orgs/{org}/billing/documentsIssued documents (invoices, acts, usage details, reconciliation statements)
Requires `billing.invoices.read`. `status=draft_unresolved_tax` documents carry an ОБРАЗЕЦ banner.
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org* | path | string |
GET/api/v1/orgs/{org}/billing/documents/{id}
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org* | path | string | |
| id* | path | string |
GET/api/v1/orgs/{org}/billing/documents/{id}/pdf
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org* | path | string | |
| id* | path | string |
POST/api/v1/orgs/{org}/billing/documents/reconciliationGenerate an акт сверки for a date range (inclusive, business timezone)
budgets
GET/api/v1/orgs/{org}/billing/budgets
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org* | path | string |
POST/api/v1/orgs/{org}/billing/budgets
Requires `billing.budgets.update`. `hard_limit` blocks admission of new chargeable resources at 100% actual spend.
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org* | path | string |
DELETE/api/v1/orgs/{org}/billing/budgets/{id}
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org* | path | string | |
| id* | path | string |
GET/api/v1/orgs/{org}/billing/alertsBudget alerts (each threshold fires once per period; kinds actual|forecast)
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org* | path | string |
webhooks
POST/api/v1/billing/webhooks/tkassaT-Kassa notification endpoint
Token verified (SHA-256, constant time), TerminalKey and amount checked, status re-confirmed with GetState (configurable), then applied idempotently. Answers `OK` (200) when processed or for unknown orders, `403` for invalid signatures, `503` for transient failures (provider retries).
internal
POST/internal/v1/billing/admissionFunds admission (implements contracts.BillingAdmission over HTTP)
Service principals only. Atomically checks balance + credit − holds and places a hold.
POST/internal/v1/billing/admission/{hold}/commit
POST/internal/v1/billing/admission/{hold}/release
POST/internal/v1/billing/inventory-eventsIngest resource inventory facts (idempotent on event_id; ≤500 per batch)
POST/internal/v1/billing/usage-recordsIngest metered consumption records (idempotent on record_id)
GET/internal/v1/billing/pricescontracts.PriceBook wire format — rate_micro is millionths of a RUB; rate_micro_kopeck is billing's native precision
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| codes | query | string |
operator
GET/api/v1/operator/billing/accountsAll billing accounts with balances
PUT/api/v1/operator/billing/accounts/{org}/credit-limitApprove/change a credit limit (audited; approver = caller)
POST/api/v1/operator/billing/adjustmentsLedger adjustment with four-eyes rule (requested_by ≠ calling operator)
POST/api/v1/operator/billing/entries/{id}/reversePost a reversal (storno) of a ledger entry; one reversal per entry
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| id* | path | string |
POST/api/v1/operator/billing/payments/{id}/bank-receiptConfirm a bank transfer from a bank statement line (idempotent on statement_ref)
POST/api/v1/operator/billing/reconcilePoll provider for stuck payments; verify credits; trial balance
GET/api/v1/operator/billing/trial-balance
GET/api/v1/operator/billing/tariffsTariff versions of a plan (published + drafts)
POST/api/v1/operator/billing/tariffsSave a draft tariff version
POST/api/v1/operator/billing/tariffs/{id}/publishPublish a draft (effective_from must be in the future and after the latest version; published versions are immutable)
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| id* | path | string |
GET/api/v1/operator/billing/anomaliesUnrated usage (missing prices
POST/api/v1/operator/billing/jobs/run-cycleRun rating → settlement → policy → budgets now
POST/api/v1/operator/billing/documents/monthlyIssue act + usage detail for a closed month (refused while unsettled charges exist)
POST/api/v1/operator/billing/commitmentsAdd a monthly committed service
GET/api/v1/operator/billing/outboxPending outbox events
Схемы
Problem
| type | string | |
| title | string | |
| status | integer | |
| code | string (invalid_argument | unauthenticated | permission_denied | not_found | conflict | failed_precondition | insufficient_funds | integration_unavailable | rate_limited | idempotency_key_reused | internal) | |
| detail | string | |
| request_id | string |
Catalog
| tariff_version_id | string | |
| plan | string | |
| currency | string | |
| effective_from | string | |
| note | string | |
| components | { code, service, name, unit, model, rate_micro, rate, charge_states, charged_when_stopped }[] |
AdmissionItem
| component* | string | |
| quantity_milli* | integer | milli-units (2 vCPU = 2000, 1.5 GiB = 1500) |
Estimate
| hourly_minor | integer | |
| daily_minor | integer | |
| monthly_minor | integer | 730 hours |
| one_time_minor | integer | |
| hourly_micro | integer | |
| tariff_version_id | string | |
| currency | string | |
| unpriced | string[] | |
| lines | { component, name, unit, model, quantity_milli, rate_micro, hourly_micro, monthly_minor, one_time_minor, recurring, charged_when_stopped }[] |
Overview
| org_id | string | |
| currency | string | |
| balance | integer | kopecks; negative = debt |
| credit_limit | integer | |
| held | integer | |
| available | integer | |
| standing | string (active | warning | restricted | suspended) | |
| standing_since | string | |
| period | string | |
| month_to_date | integer | |
| run_rate_per_hour | integer | |
| forecast_month | integer | |
| runway_hours | integer | |
| rated_until | string | |
| tax_regime | string | |
| estimated_fields | string[] |
LegalDetails
| legal_name* | string | |
| inn* | string | |
| kpp | string | |
| ogrn | string | |
| address | string | |
| bank_name | string | |
| bik | string | |
| account | string | |
| corr_account | string | |
| string |
BillingAccount
| org_id | string | |
| currency | string | |
| credit_limit | integer | |
| standing | string | |
| standing_since | string | |
| legal | LegalDetails |
CostRow
| key | string | |
| label | string | |
| amount | integer | |
| settled | integer | |
| pending | integer | rated but not yet posted to the ledger |
Charge
| id | string | |
| project_id | string | |
| resource_id | string | |
| resource_name | string | |
| component | string | |
| component_name | string | |
| model | string | |
| tariff_version_id | string | |
| period | string | |
| start | string | |
| end | string | |
| state | string | |
| quantity_milli | integer | |
| seconds | integer | |
| rate | string | |
| amount_exact | string | |
| settled | boolean |
Transaction
| id | string | |
| seq | integer | |
| kind | string (payment | usage | refund | reversal | adjustment | promo) | |
| description | string | |
| amount | integer | effect on the customer balance (+ credit, − debit) |
| currency | string | |
| created_at | string | |
| effective_at | string | |
| reverses_entry_id | string | |
| metadata | object | |
| charges | object[] | |
| rounding | string |
Payment
| id | string | |
| provider | string (tkassa | bank_transfer | simulator) | |
| provider_payment_id | string | |
| amount | integer | |
| refunded_amount | integer | |
| currency | string | |
| status | string (new | pending | authorized | confirmed | rejected | canceled | refunded | partial_refunded | failed) | |
| payment_url | string | |
| invoice_document_id | string | |
| credit_entry_id | string | |
| created_at | string | |
| updated_at | string | |
| history | { from, to, source, at, note }[] |
Document
| id | string | |
| org_id | string | |
| type | string (invoice | act | usage_detail | reconciliation) | |
| number | string | |
| period | string | |
| date | string | |
| total | integer | |
| currency | string | |
| status | string (issued | draft_unresolved_tax | void) | |
| payment_id | string | |
| created_at | string |
Budget
| id | string | |
| project_id | string | |
| name* | string | |
| amount* | integer | kopecks per business month |
| thresholds | integer[] | |
| hard_limit | boolean |
AdmissionRequest
| org_id* | string | |
| project_id* | string | |
| idempotency_key* | string | |
| reference | string | |
| plan | string | |
| items* | AdmissionItem[] |
Decision
| allowed | boolean | |
| reason | string (ok | insufficient_funds | account_restricted | account_suspended | budget_hard_limit | billing_account_missing) | |
| hold_id | string | |
| required_minor | integer | |
| available_minor | integer | |
| balance_minor | integer | |
| credit_limit_minor | integer | |
| held_minor | integer |
InventoryEvent
| event_id* | string | |
| kind* | string (created | state_changed | resized | deleted) | |
| org_id* | string | |
| project_id* | string | |
| resource_id* | string | |
| resource_type | string | |
| resource_name | string | |
| region | string | |
| plan | string | |
| state | string (running | stopped | shelved | allocated | reserved | provisioning | error | deleted) | |
| quantities | object | |
| occurred_at* | string |
EGN Cloud Platform API
1.0.0-alpha · egn-cloud.v1.yaml · 94 операцийSession
GET/meCurrent principal and memberships
POST/dev/loginDEV ONLY — issue a development session (disabled unless EGN_DEV_AUTH=true and EGN_ENV!=production)
POST/dev/logout
Organizations
GET/organizationsOrganizations the caller is a member of
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| limit | query | integer | |
| cursor | query | string |
POST/organizations
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| Idempotency-Key | header | string |
GET/organizations/{org_id}
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org_id* | path | string |
PATCH/organizations/{org_id}
Permission: `organizations.settings.update`
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org_id* | path | string |
GET/organizations/{org_id}/members
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org_id* | path | string | |
| limit | query | integer | |
| cursor | query | string |
DELETE/organizations/{org_id}/members/{user_id}
Permission: `organizations.members.delete`. The last owner cannot be removed.
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org_id* | path | string | |
| user_id* | path | string |
GET/organizations/{org_id}/invitations
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org_id* | path | string |
POST/organizations/{org_id}/invitations
Permission: `organizations.members.invite`. Returns the one-time token only in this response (dev: no email is sent).
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org_id* | path | string | |
| Idempotency-Key | header | string |
DELETE/organizations/{org_id}/invitations/{invitation_id}
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org_id* | path | string | |
| invitation_id* | path | string |
POST/invitations/accept
Projects
GET/organizations/{org_id}/projectsProjects in the organization visible to the caller
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org_id* | path | string | |
| limit | query | integer | |
| cursor | query | string |
POST/organizations/{org_id}/projects
Permission: `resourcemanager.projects.create`
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org_id* | path | string | |
| Idempotency-Key | header | string |
GET/projects/{project_id}
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string |
PATCH/projects/{project_id}
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string |
DELETE/projects/{project_id}
Fails with `failed_precondition` while the project still owns resources.
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string |
IAM
GET/iam/permissionsCatalog of all permission strings
GET/organizations/{org_id}/rolesBuilt-in and custom roles
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org_id* | path | string |
POST/organizations/{org_id}/roles
Permission: `iam.roles.create`. Cannot grant permissions the caller does not hold.
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org_id* | path | string |
PATCH/organizations/{org_id}/roles/{role_id}
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org_id* | path | string | |
| role_id* | path | string |
DELETE/organizations/{org_id}/roles/{role_id}
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org_id* | path | string | |
| role_id* | path | string |
GET/organizations/{org_id}/role-bindings
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org_id* | path | string | |
| principal_id | query | string | |
| project_id | query | string |
POST/organizations/{org_id}/role-bindings
Permission: `iam.policies.update`
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org_id* | path | string |
DELETE/organizations/{org_id}/role-bindings/{binding_id}
Removing the last owner binding is rejected.
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org_id* | path | string | |
| binding_id* | path | string |
GET/organizations/{org_id}/policies
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org_id* | path | string |
POST/organizations/{org_id}/policies
Custom allow/deny policy attached to principals. Explicit deny always wins.
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org_id* | path | string |
DELETE/organizations/{org_id}/policies/{policy_id}
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org_id* | path | string | |
| policy_id* | path | string |
POST/organizations/{org_id}/iam/checkEvaluate which of the given permissions the caller holds (used by UI to enable actions — the backend re-checks on every mutation)
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org_id* | path | string |
Regions
GET/regions
GET/regions/{region_id}
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| region_id* | path | string |
GET/regions/{region_id}/flavors
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| region_id* | path | string | |
| cpu_class | query | CPUClass |
GET/regions/{region_id}/images
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| region_id* | path | string |
GET/regions/{region_id}/storage-classes
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| region_id* | path | string |
Compute
GET/projects/{project_id}/instances
Permission: `compute.instances.list`
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| limit | query | integer | |
| cursor | query | string | |
| region | query | string | |
| status | query | InstanceStatus | |
| q | query | string | Substring match on name |
| sort | query | string |
POST/projects/{project_id}/instances
Permission: `compute.instances.create` (+ `network.floatingips.create` when `assign_public_ip`). Validates region/zone/flavor/image capabilities, admits quota and billing credit, reserves capacity and enqueues provisioning. Returns 202 with the operation; the instance is in `creating` until the operation succeeds.
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| Idempotency-Key* | header | string |
POST/projects/{project_id}/instances/estimatePrice and quota impact of an instance configuration (no side effects)
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string |
GET/projects/{project_id}/instances/{instance_id}
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| instance_id* | path | string |
PATCH/projects/{project_id}/instances/{instance_id}
Metadata only (name, description, tags). Use actions for lifecycle.
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| instance_id* | path | string |
DELETE/projects/{project_id}/instances/{instance_id}
Permission: `compute.instances.delete`. Requires `confirm_name` query parameter equal to the instance name.
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| instance_id* | path | string | |
| confirm_name* | query | string | |
| Idempotency-Key | header | string |
POST/projects/{project_id}/instances/{instance_id}/actions/{action}
Lifecycle action. Permissions: start/stop/reboot/force-reboot → `compute.instances.operate`; resize → `compute.instances.update`; rebuild → `compute.instances.rebuild`; snapshot → `compute.snapshots.create`. Invalid state transitions return `failed_precondition`. Stopped instances keep incurring charges for reserved CPU/RAM, disks and IPs per tariff.
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| instance_id* | path | string | |
| action* | path | InstanceAction | |
| Idempotency-Key | header | string |
GET/projects/{project_id}/instances/{instance_id}/metrics
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| instance_id* | path | string | |
| metric* | query | string | |
| window | query | string |
Operations
GET/projects/{project_id}/operations
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| limit | query | integer | |
| cursor | query | string | |
| status | query | OperationStatus | |
| target_id | query | string |
GET/operations/{operation_id}
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| operation_id* | path | string |
Networking
GET/projects/{project_id}/vpcs
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| region | query | string |
POST/projects/{project_id}/vpcs
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| Idempotency-Key* | header | string |
GET/projects/{project_id}/vpcs/{vpc_id}
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| vpc_id* | path | string |
DELETE/projects/{project_id}/vpcs/{vpc_id}
Fails while subnets with attached instances exist.
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| vpc_id* | path | string |
GET/projects/{project_id}/vpcs/{vpc_id}/subnets
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| vpc_id* | path | string |
POST/projects/{project_id}/vpcs/{vpc_id}/subnets
CIDR must be RFC 1918, /16–/29, inside the VPC CIDR and not overlap other subnets of the VPC.
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| vpc_id* | path | string | |
| Idempotency-Key | header | string |
DELETE/projects/{project_id}/subnets/{subnet_id}
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| subnet_id* | path | string |
GET/projects/{project_id}/routers
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string |
GET/projects/{project_id}/security-groups
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| region | query | string |
POST/projects/{project_id}/security-groups
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| Idempotency-Key | header | string |
GET/projects/{project_id}/security-groups/{sg_id}
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| sg_id* | path | string |
DELETE/projects/{project_id}/security-groups/{sg_id}
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| sg_id* | path | string |
POST/projects/{project_id}/security-groups/{sg_id}/rules
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| sg_id* | path | string |
DELETE/projects/{project_id}/security-groups/{sg_id}/rules/{rule_id}
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| sg_id* | path | string | |
| rule_id* | path | string |
GET/projects/{project_id}/floating-ips
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| region | query | string |
POST/projects/{project_id}/floating-ips
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| Idempotency-Key* | header | string |
DELETE/projects/{project_id}/floating-ips/{fip_id}
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| fip_id* | path | string |
POST/projects/{project_id}/floating-ips/{fip_id}/associate
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| fip_id* | path | string |
POST/projects/{project_id}/floating-ips/{fip_id}/disassociate
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| fip_id* | path | string |
GET/projects/{project_id}/load-balancers
Returns an empty list plus `availability` per region. Creation returns `unsupported_in_region` where Octavia is not deployed.
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string |
GET/projects/{project_id}/vpn-connections
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string |
Block Storage
GET/projects/{project_id}/volumes
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| region | query | string | |
| limit | query | integer | |
| cursor | query | string |
POST/projects/{project_id}/volumes
Network volumes only (Ceph RBD via Cinder). Local NVMe disks are created with instances and cannot be created standalone.
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| Idempotency-Key* | header | string |
GET/projects/{project_id}/volumes/{volume_id}
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| volume_id* | path | string |
DELETE/projects/{project_id}/volumes/{volume_id}
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| volume_id* | path | string |
POST/projects/{project_id}/volumes/{volume_id}/attach
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| volume_id* | path | string |
POST/projects/{project_id}/volumes/{volume_id}/detach
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| volume_id* | path | string |
GET/projects/{project_id}/snapshots
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string |
POST/projects/{project_id}/snapshots
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| Idempotency-Key* | header | string |
DELETE/projects/{project_id}/snapshots/{snapshot_id}
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| snapshot_id* | path | string |
Object Storage
GET/projects/{project_id}/buckets
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string |
POST/projects/{project_id}/buckets
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| Idempotency-Key | header | string |
GET/projects/{project_id}/buckets/{bucket}
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| bucket* | path | string |
PATCH/projects/{project_id}/buckets/{bucket}
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| bucket* | path | string |
DELETE/projects/{project_id}/buckets/{bucket}
Bucket must be empty.
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| bucket* | path | string |
GET/projects/{project_id}/buckets/{bucket}/objects
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| bucket* | path | string | |
| prefix | query | string | |
| delimiter | query | string |
POST/projects/{project_id}/buckets/{bucket}/presignPresigned URL for direct browser upload/download (max 7 days)
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| bucket* | path | string |
GET/projects/{project_id}/s3-keys
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string |
POST/projects/{project_id}/s3-keys
The secret key is returned once and never stored in plaintext.
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string |
DELETE/projects/{project_id}/s3-keys/{key_id}
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| key_id* | path | string |
Quotas
GET/projects/{project_id}/quotas
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string | |
| region | query | string |
Audit
GET/organizations/{org_id}/audit-events
Permission: `audit.events.read`
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org_id* | path | string | |
| limit | query | integer | |
| cursor | query | string | |
| project_id | query | string | |
| actor_id | query | string | |
| action | query | string | Prefix match |
| resource_id | query | string |
Overview
GET/projects/{project_id}/overview
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string |
GET/searchTenant-scoped search for the command menu (projects, instances, IPs, VPCs, volumes, buckets)
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| q* | query | string | |
| org_id* | query | string |
Operator
GET/operator/organizations
Requires platform operator role (`operator.organizations.read`). All access is audited.
GET/operator/operations
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| status | query | OperationStatus | |
| limit | query | integer | |
| cursor | query | string |
PUT/operator/quotas/{project_id}
Override a project quota limit. Permission `operator.quotas.update`; requires `reason`; audited.
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| project_id* | path | string |
GET/operator/regionsRegions including disabled ones, with adapter mode and capacity
GET/operator/audit-events
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| limit | query | integer | |
| cursor | query | string | |
| org_id | query | string | |
| action | query | string |
Схемы
Problem
| type* | string | |
| title* | string | |
| status* | integer | |
| code* | string (invalid_argument | unauthenticated | permission_denied | not_found | conflict | already_exists | failed_precondition | quota_exceeded | insufficient_funds | capacity_exhausted | unsupported_in_region | integration_unavailable | rate_limited | idempotency_key_reused | internal) | |
| detail* | string | |
| fields | { field, message }[] | |
| meta | object | |
| request_id | string |
Money
| amount_minor* | integer | Integer minor units (kopecks) |
| currency* | string |
Me
| user* | { id, email, name } | |
| is_operator* | boolean | |
| auth_mode | string (oidc | dev) | |
| memberships* | { org_id, org_name, roles }[] |
DevSession
| token* | string | |
| expires_at* | string | |
| user_id* | string | |
| csrf_token* | string | Also set as the non-HttpOnly egn_csrf cookie; send it as X-CSRF-Token on cookie-authenticated mutations |
Organization
| id* | string | |
| name* | string | |
| legal_name | string | |
| inn | string | Russian taxpayer ID (10 digits for legal entities |
| kpp | string | |
| status* | string (active | restricted | suspended) | |
| billing_account_id | string | |
| created_at* | string |
OrganizationCreate
| name* | string | |
| legal_name | string | |
| inn | string | |
| kpp | string |
OrganizationUpdate
| name | string | |
| legal_name | string | |
| inn | string | |
| kpp | string |
OrganizationPage
| items* | Organization[] | |
| next_cursor | string | |
| total | integer |
Member
| user_id* | string | |
| email* | string | |
| name* | string | |
| roles* | string[] | |
| joined_at* | string |
MemberPage
| items* | Member[] | |
| next_cursor | string | |
| total | integer |
Invitation
| id* | string | |
| email* | string | |
| role_id* | string | |
| project_id | string | |
| status* | string (pending | accepted | revoked | expired) | |
| expires_at* | string | |
| created_at* | string | |
| invited_by | string |
InvitationCreate
| email* | string | |
| role_id* | string | |
| project_id | string | |
| ttl_hours | integer |
InvitationCreated
Project
| id* | string | |
| org_id* | string | |
| name* | string | |
| description | string | |
| status* | string (active | deleting) | |
| created_at* | string |
ProjectCreate
| name* | string | |
| description | string |
ProjectUpdate
| name | string | |
| description | string |
ProjectPage
| items* | Project[] | |
| next_cursor | string | |
| total | integer |
PermissionInfo
| name* | string | |
| service* | string | |
| description* | string | |
| dangerous | boolean |
Role
| id* | string | Built-in: roles/owner, roles/admin, roles/billing.admin, roles/developer, roles/viewer; custom: role_… |
| name* | string | |
| description | string | |
| builtin* | boolean | |
| permissions* | string[] | Permission strings; `service.*` wildcards allowed in built-ins |
RoleCreate
| name* | string | |
| description | string | |
| permissions* | string[] |
RoleUpdate
| name | string | |
| description | string | |
| permissions | string[] |
RoleBinding
| id* | string | |
| principal_id* | string | |
| principal_type* | string (user | service_account) | |
| role_id* | string | |
| scope* | { type, project_id } | |
| created_at* | string |
RoleBindingCreate
| principal_id* | string | |
| principal_type | string (user | service_account) | |
| role_id* | string | |
| project_id | string | Omit for organization-wide binding |
PolicyStatement
| effect* | string (allow | deny) | |
| actions* | string[] | Permission strings, `*` suffix wildcards allowed (e.g. compute.instances.*) |
| projects | string[] | Project IDs the statement applies to; empty = all projects of the organization |
| regions | string[] | Region restriction; empty = all |
Policy
| id* | string | |
| name* | string | |
| description | string | |
| principals* | string[] | |
| statements* | PolicyStatement[] | |
| created_at* | string |
PolicyCreate
| name* | string | |
| description | string | |
| principals* | string[] | |
| statements* | PolicyStatement[] |
Region
| id* | string | |
| display_name* | string | |
| location* | string | |
| country | string | |
| status* | string (available | limited | maintenance | coming_soon | disabled) | |
| adapter_mode* | string (simulator | integration | production) | `simulator` means no real infrastructure behind the region (development only) |
| zones* | Zone[] | |
| capabilities* | RegionCapabilities |
Zone
| id* | string | |
| display_name* | string | |
| status* | string (available | limited | sold_out | maintenance) |
RegionCapabilities
| shared_compute* | boolean | |
| guaranteed_compute* | boolean | True only when dedicated-CPU host aggregates with hw:cpu_policy=dedicated exist |
| local_nvme* | boolean | |
| network_block_storage* | boolean | Cinder + Ceph RBD available |
| floating_ips* | boolean | |
| load_balancers* | boolean | |
| vpn* | boolean | |
| object_storage* | boolean | |
| cross_region_reserve* | boolean | |
| compute_microversion | string |
CPUClassenum: shared | guaranteed
Flavor
| id* | string | |
| name* | string | |
| cpu_class* | CPUClass | |
| vcpu* | integer | |
| ram_mb* | integer | |
| local_disk_gb* | integer | Max local NVMe boot disk; 0 = network boot disk only |
| cpu_allocation_ratio | number | Oversubscription ratio for shared class (informational); 1.0 for guaranteed |
| available* | boolean | |
| availability_reason | string | |
| price_hourly* | Money | |
| price_monthly* | Money |
Image
| id* | string | |
| name* | string | |
| os_family* | string (ubuntu | debian | almalinux | rocky | windows | other) | |
| os_version* | string | |
| min_disk_gb* | integer | |
| source* | string (public | custom | marketplace) | |
| license_note | string |
StorageClass
| id* | string | |
| name* | string | |
| kind* | string (local_nvme | network_rbd) | |
| available* | boolean | |
| unavailable_reason | string | |
| attachable* | boolean | Can be detached/attached between instances |
| survives_host_failure* | boolean | |
| max_iops | integer | |
| min_size_gb | integer | |
| max_size_gb | integer | |
| price_gb_month* | Money |
InstanceStatusenum: creating | active | stopping | stopped | starting | rebooting | resizing | rebuilding | error | deleting | deleted
InstanceActionenum: start | stop | reboot | force-reboot | resize | rebuild | snapshot
Instance
| id* | string | |
| name* | string | |
| description | string | |
| project_id* | string | |
| region* | string | |
| zone* | string | |
| status* | InstanceStatus | |
| status_reason | string | |
| flavor* | { id, name, cpu_class, vcpu, ram_mb } | |
| image* | { id, name } | |
| boot_disk* | { size_gb, storage_class } | |
| volume_ids | string[] | |
| vpc_id | string | |
| subnet_id | string | |
| private_ip | string | |
| public_ip | string | |
| floating_ip_id | string | |
| security_group_ids* | string[] | |
| ssh_key_names | string[] | |
| tags* | string[] | |
| backup_policy | string (none | daily | weekly) | |
| reserve_eligible | boolean | |
| monthly_estimate | Money | |
| last_operation_id | string | |
| created_at* | string | |
| updated_at* | string |
InstancePage
| items* | Instance[] | |
| next_cursor | string | |
| total | integer |
InstanceCreate
| name* | string | |
| description | string | |
| region* | string | |
| zone* | string | |
| flavor_id* | string | |
| image_id* | string | |
| boot_disk* | { size_gb, storage_class } | |
| vpc_id | string | Omit to use the project default VPC in the region (created if missing) |
| subnet_id | string | |
| assign_public_ip | boolean | |
| security_group_ids | string[] | |
| ssh_public_keys | string[] | |
| user_data | string | cloud-init user data (plain text; not logged) |
| tags | string[] | |
| backup_policy | string (none | daily | weekly) |
InstanceAccepted
| instance* | Instance | |
| operation* | Operation |
InstanceUpdate
| name | string | |
| description | string | |
| tags | string[] |
InstanceActionRequest
| flavor_id | string | Required for resize |
| image_id | string | Required for rebuild |
| snapshot_name | string | Required for snapshot |
PriceLine
| component* | string (compute | boot_disk | public_ip | backup | reserve | setup) | |
| description* | string | |
| sku | string | |
| unit* | string (hour | day | gb_month | month | one_time) | |
| quantity* | integer | |
| recurring* | boolean | |
| hourly* | Money | |
| monthly* | Money | |
| one_time | Money |
InstanceEstimate
| lines* | PriceLine[] | |
| hourly* | Money | |
| daily* | Money | |
| monthly* | Money | 730 hours |
| one_time* | Money | |
| pricing_source* | string | Tariff version used; `dev-static` means development price list, not a published tariff |
| quota_impact* | { resource, scope, limit, used, requested, after, ok }[] | |
| billing_admission | { allowed, reason } |
MetricSeries
| metric* | string | |
| unit* | string | |
| source* | string (simulator | telemetry) | `simulator` data is synthetic (development only) |
| points* | { t, v }[] |
OperationStatusenum: pending | running | succeeded | failed | cancelled
Operation
| id* | string | |
| kind* | string | |
| status* | OperationStatus | |
| project_id* | string | |
| org_id | string | |
| target* | { kind, id, name } | |
| progress* | integer | |
| steps* | { name, status, started_at, finished_at, detail }[] | |
| error | { code, message } | |
| created_by | string | |
| created_at* | string | |
| updated_at* | string | |
| finished_at | string |
OperationPage
| items* | Operation[] | |
| next_cursor | string | |
| total | integer |
VPC
| id* | string | |
| name* | string | |
| description | string | |
| project_id* | string | |
| region* | string | |
| cidr* | string | |
| status* | string (creating | active | deleting | error) | |
| is_default | boolean | |
| router_id | string | |
| subnet_count* | integer | |
| created_at* | string |
VPCCreate
| name* | string | |
| description | string | |
| region* | string | |
| cidr* | string | RFC 1918 block, /16–/24 |
VPCAccepted
| vpc* | VPC | |
| operation* | Operation |
Subnet
| id* | string | |
| vpc_id* | string | |
| name* | string | |
| cidr* | string | |
| gateway_ip* | string | |
| zone* | string | |
| dns_servers | string[] | |
| available_ips* | integer | |
| created_at* | string |
SubnetCreate
| name* | string | |
| cidr* | string | |
| zone* | string | |
| dns_servers | string[] |
Router
| id* | string | |
| name* | string | |
| region* | string | |
| vpc_id* | string | |
| external_gateway* | boolean | |
| routes | { destination, nexthop }[] | |
| created_at* | string |
SecurityGroup
| id* | string | |
| name* | string | |
| description | string | |
| project_id* | string | |
| region* | string | |
| is_default | boolean | |
| rules* | SecurityGroupRule[] | |
| created_at* | string |
SecurityGroupCreate
| name* | string | |
| description | string | |
| region* | string |
SecurityGroupRule
| id* | string | |
| direction* | string (ingress | egress) | |
| protocol* | string (tcp | udp | icmp | any) | |
| ethertype* | string (IPv4 | IPv6) | |
| port_min | integer | |
| port_max | integer | |
| remote_cidr | string | |
| remote_group_id | string | |
| description | string |
SecurityGroupRuleCreate
| direction* | string (ingress | egress) | |
| protocol* | string (tcp | udp | icmp | any) | |
| ethertype | string (IPv4 | IPv6) | |
| port_min | integer | |
| port_max | integer | |
| remote_cidr | string | |
| remote_group_id | string | |
| description | string |
FloatingIP
| id* | string | |
| address* | string | |
| region* | string | |
| status* | string (allocated | associated | releasing) | |
| instance_id | string | |
| description | string | |
| monthly_price | Money | |
| created_at* | string |
Volume
| id* | string | |
| name* | string | |
| project_id* | string | |
| region* | string | |
| zone* | string | |
| size_gb* | integer | |
| storage_class* | string | |
| kind | string (local_nvme | network_rbd) | |
| status* | string (creating | available | attaching | in_use | detaching | deleting | error) | |
| attached_to | string | |
| is_boot | boolean | |
| monthly_estimate | Money | |
| created_at* | string |
VolumePage
| items* | Volume[] | |
| next_cursor | string | |
| total | integer |
VolumeCreate
| name* | string | |
| region* | string | |
| zone* | string | |
| size_gb* | integer | |
| storage_class* | string | |
| snapshot_id | string |
VolumeAccepted
| volume* | Volume | |
| operation* | Operation |
Snapshot
| id* | string | |
| name* | string | |
| volume_id* | string | |
| instance_id | string | |
| region | string | |
| size_gb* | integer | |
| status* | string (creating | available | deleting | error) | |
| created_at* | string |
Bucket
| name* | string | |
| project_id* | string | |
| region* | string | |
| versioning* | boolean | |
| public_read* | boolean | |
| size_bytes* | integer | |
| object_count* | integer | |
| endpoint | string | |
| created_at* | string |
BucketCreate
| name* | string | |
| region* | string | |
| versioning | boolean |
ObjectListing
| prefixes* | string[] | |
| objects* | { key, size_bytes, last_modified, etag }[] |
S3Key
| id* | string | |
| access_key_id* | string | |
| name* | string | |
| scope* | { buckets, read_only } | |
| status* | string (active | revoked) | |
| created_at* | string | |
| last_used_at | string |
S3KeyCreate
| name* | string | |
| buckets | string[] | Empty = all buckets of the project |
| read_only | boolean |
S3KeyCreated
QuotaResourceenum: instances | vcpu | ram_mb | volume_gb | volumes | floating_ips | vpcs | security_groups | snapshots | buckets | s3_storage_gb
QuotaUsage
| resource* | QuotaResource | |
| region* | string | |
| limit* | integer | |
| used* | integer | |
| reserved* | integer | Held by in-flight operations |
| unit | string |
AuditEvent
| id* | string | |
| org_id* | string | |
| project_id | string | |
| actor* | { id, type, email } | |
| action* | string | |
| resource | { kind, id, name } | |
| outcome* | string (success | denied | failure) | |
| request_id | string | |
| source_ip | string | |
| details | object | |
| occurred_at* | string |
AuditEventPage
| items* | AuditEvent[] | |
| next_cursor | string | |
| total | integer |
ProjectOverview
| project_id* | string | |
| instances* | { total, active, stopped, error } | |
| vcpu* | { used, limit } | |
| ram_mb* | { used, limit } | |
| storage_gb* | { used, limit } | |
| public_ips* | { used, limit } | |
| vpcs* | integer | |
| buckets* | integer | |
| monthly_run_rate | Money | |
| recent_operations* | Operation[] | |
| integrations* | { name, status, detail }[] | Per-integration availability so the UI can show explicit unavailable states |
SearchHit
| kind* | string (project | instance | vpc | volume | bucket | floating_ip | operation) | |
| id* | string | |
| title* | string | |
| subtitle | string | |
| project_id | string | |
| href* | string | Console-relative path |
EGN Cloud Cross-Region Reserve API
1.0.0 · reserve.v1.yaml · 32 операцийПрочее
GET/api/v1/reserve/regionsRegions and whether reserve capacity can currently be committed there
GET/api/v1/orgs/{org}/reserve/overviewRecovery Control Center summary (groups, readiness, protected capacity)
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org* | path | string |
POST/api/v1/orgs/{org}/reserve/eligibilityCheck a configuration (capacity, sync latency budget, BGP capability) without creating it
GET/api/v1/orgs/{org}/reserve/groups
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org* | path | string |
POST/api/v1/orgs/{org}/reserve/groupsCreate a protection group; capacity is reserved atomically in every target (all or nothing)
Requires `reserve.groups.update` on the org and project. Emits billing inventory events (reserve.* components).
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org* | path | string |
GET/api/v1/orgs/{org}/reserve/groups/{id}Group with readiness, replicas and recent operations
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org* | path | string | |
| id* | path | string |
DELETE/api/v1/orgs/{org}/reserve/groups/{id}Stop protection and release reserved capacity (refused while failed over or during an operation)
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org* | path | string | |
| id* | path | string |
GET/api/v1/orgs/{org}/reserve/groups/{id}/readinessIs recovery safe right now — and if not, why
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org* | path | string | |
| id* | path | string |
GET/api/v1/orgs/{org}/reserve/groups/{id}/replication
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org* | path | string | |
| id* | path | string |
GET/api/v1/orgs/{org}/reserve/groups/{id}/operationsFailover / test / failback history
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org* | path | string | |
| id* | path | string |
GET/api/v1/orgs/{org}/reserve/groups/{id}/audit
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org* | path | string | |
| id* | path | string |
POST/api/v1/orgs/{org}/reserve/groups/{id}/test-failoverNon-disruptive recovery test (isolated clones; no fencing, no network change). Requires reserve.failover.test
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org* | path | string | |
| id* | path | string |
POST/api/v1/orgs/{org}/reserve/groups/{id}/failoverFail over into a target region. Requires reserve.failover.execute and confirm_name == group name
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org* | path | string | |
| id* | path | string |
POST/api/v1/orgs/{org}/reserve/groups/{id}/failbackPlanned return to the original primary (final sync → zero data loss)
GET/api/v1/orgs/{org}/reserve/operations/{op}
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org* | path | string | |
| op* | path | string |
POST/api/v1/orgs/{org}/reserve/operations/{op}/abortAbort an operation that has not demoted the primary yet
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org* | path | string | |
| op* | path | string |
POST/api/v1/orgs/{org}/reserve/operations/{op}/accept-data-lossContinue an operation blocked by the data-loss policy gate
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| org* | path | string | |
| op* | path | string |
POST/api/v1/operator/reserve/operations/{op}/attestTwo-person attestation that the old primary is stopped (caller = approver, requested_by = second person)
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| op* | path | string |
PUT/api/v1/operator/reserve/regions/{code}Register/update a region (available|planned|unavailable)
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| code* | path | string |
PUT/api/v1/operator/reserve/linksRecord a measured inter-region RTT
GET/api/v1/operator/reserve/poolsPools with free capacity and overcommit flag
PUT/api/v1/operator/reserve/pools/{id}Create/update a pool (cannot shrink below commitments)
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| id* | path | string |
POST/api/v1/operator/reserve/pools/{id}/degradedRecord lost capacity (failed hosts)
| Параметр | Где | Тип | Описание |
|---|---|---|---|
| id* | path | string |
GET/api/v1/operator/reserve/groupsAll groups
GET/api/v1/operator/reserve/operationsAll operations
GET/api/v1/operator/reserve/auditAudit trail (filter org_id
POST/api/v1/operator/reserve/evaluateRun automatic-failover evaluation now
POST/api/v1/operator/reserve/simulator/faultsDEVELOPMENT ONLY — inject faults (crash, partition, heal, lag, consistency_fail, promote_fail, network_fail, clear)
POST/api/v1/operator/reserve/simulator/tickDEVELOPMENT ONLY — advance simulated time (telemetry + auto-failover evaluation per step)
GET/api/v1/operator/reserve/simulator/logDEVELOPMENT ONLY — simulated infrastructure log and split-brain violations
POST/internal/v1/reserve/replicationReplication agent telemetry (stale epochs rejected)
POST/internal/v1/reserve/observationsIndependent observer health probe
Схемы
Resources
| vcpu | integer | |
| ram_mib | integer | |
| storage_gib | integer |
Region
| code | string | |
| name | string | |
| country | string | |
| status | string (available | planned | unavailable) | |
| supports_sync | boolean | |
| bgp_capable | boolean | |
| capacity_available | boolean | |
| simulated | boolean | |
| note | string |
Policy
| mode | string (manual | automatic) | |
| max_data_loss_seconds | integer | |
| rto_target_seconds | integer | |
| network_identity | string (bgp | ip_dns) | |
| dns_records | string[] | |
| dns_ttl_seconds | integer | |
| detection_window_seconds | integer |
CreateGroup
| project_id* | string | |
| name* | string | |
| primary_region* | string | |
| targets* | { region, priority, pool_id }[] | |
| members* | { instance_id, name, vcpu, ram_mib, disk_gib, priority }[] | |
| replication_class* | string (async | sync) | |
| policy | Policy |
Eligibility
| eligible | boolean | |
| reasons | string[] | |
| pools | object | |
| rpo_zero_possible | boolean |
Group
| id | string | |
| org_id | string | |
| project_id | string | |
| name | string | |
| primary_region | string | |
| active_region | string | |
| targets | object[] | |
| members | object[] | |
| replication_class | string | |
| policy | Policy | |
| state | string (provisioning | protected | degraded | failing_over | failed_over | failing_back | suspended) | |
| epoch | integer | fencing token; increments on every promotion |
| last_test_at | string | |
| last_test_ok | boolean | |
| last_test_rto_seconds | integer |
Readiness
| group_id | string | |
| target | string | |
| recovery_safe | boolean | |
| auto_failover_ready | boolean | |
| rpo_zero | boolean | |
| estimated_rpo_seconds | integer | |
| last_recovery_point | string | |
| rto_target_seconds | integer | |
| last_measured_rto_seconds | integer | |
| rto_basis | string (target only | measured in simulation | measured) | |
| public_connectivity | string | |
| simulated | boolean | |
| checks | { name, ok, blocking, detail }[] |
Replica
| group_id | string | |
| instance_id | string | |
| region | string | |
| state | string (initial_sync | in_sync | lagging | broken) | |
| last_recovery_point | string | |
| lag_seconds | integer | |
| remote_ack | boolean | |
| epoch | integer | |
| updated_at | string |
Operation
| id | string | |
| group_id | string | |
| kind | string (failover | test_failover | failback) | |
| trigger | string (manual | automatic) | |
| actor | string | |
| source_region | string | |
| target_region | string | |
| state | string (running | awaiting_operator | completed | failed | rolled_back | aborted) | |
| steps | { name, status, started_at, finished_at, detail }[] | |
| epoch_before | integer | |
| epoch_after | integer | |
| recovery_point | string | |
| data_loss_seconds | integer | upper-bound estimate |
| detected_at | string | |
| started_at | string | |
| completed_at | string | |
| measured_rto_seconds | integer | only set when verification succeeded |
| error | string | |
| requires_operator | string | |
| simulated | boolean |