compute

POST /v1/compute/servers/{serverId}/renew

Extend a server's term.

ចំណុចបញ្ចប់ compute ទាំងអស់

ការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវ

បញ្ជូនសោ API ជា bearer token។ សោនេះត្រូវតែមានសិទ្ធិ sites.view។ សោដែលគ្មានសិទ្ធិនេះនឹងត្រូវបដិសេធដោយកូដ 403 មិនមែន 404 ទេ។

ចំនុចបញ្ចប់នេះមិនត្រូវការលេខសម្គាល់ស្ថាប័នទេ។ ពស័្ដកូនរបស់អ្នករួចហើយកំណត់អត្តសញ្ញាណស្ថាប័នដែលវាជាកម្មសិទ្ធិ ហើយការឆ្លើយតបគឺត្រូវបានកំណត់វិសាលភាពទៅតាមនោះ។

សាកល្បង

ជំនួសអ្វីមួយនៅក្នុងសញ្ញាពងក្រពើ < > ដោយប្រើតម្លៃផ្ទាល់ខ្លួនរបស់អ្នក ហើយជំនួសកន្លែងរក្សាទុកសោដោយប្រើសោចេញពីផ្ទាំងគ្រប់គ្រងរបស់អ្នក។

curl -X POST https://api.zinndigital.com/v1/compute/servers/{serverId}/renew \
  -H "Authorization: Bearer zdk_live_…" \
  -H "Content-Type: application/json" \
  -d '{ "term_months": <integer> }'

បានចូលគណនីរួចហើយមែនទេ? កុងសូល API ក្នុងផ្ទាំងគ្រប់គ្រងរបស់អ្នក បំពេញលេខសម្គាល់ស្ថាប័នពិតប្រាកដរបស់អ្នក និងសោផ្ទាល់ខ្លួនរបស់អ្នក ហើយដំណើរការសំណើទល់នឹង API ផ្ទាល់ ដូច្នេះអ្នកអាចមើលឃើញការឆ្លើយតបពិតប្រាកដ។ បើកចំណុចបញ្ចប់នេះក្នុងកុងសូល API

ព័ត៌មានលម្អិត

Buys more months on an existing machine and returns the server with `term_months` grown by what was asked. ⛔ **This charges immediately**, and — unlike a resize — there is deliberately **no quote operation to read first**. That asymmetry is real rather than an omission: a resize is priced by the provider, whereas a renewal is priced by the plan the customer is already on, and no figure on this surface carries it (a machine size has no price by design, and a server carries only a `plan_code`). A client says out loud that it cannot show a figure rather than inventing one (§2.8). The engine attaches an idempotency key derived from the server and the term, so a retry cannot buy the extension twice. `404` for a server that is not the caller's; `422` for a term outside 1…36 months, or a machine that is not `active`. Requires `sites.view` **and** `billing.payment.manage` — ⛔ **not** `sites.create`, which is what this was until #1682.

ប៉ារ៉ាម៉ែត្រ

ឈ្មោះប្រភេទតម្រូវការតើវាជាអ្វី
serverId (path)Uuidបាទ/ចាសThe server's id, as `listComputeServers` reports it. **Ours** (UUIDv7), minted when the order row was written — never the provider's own identifier for the machine.

សំណើរបស់រាងកាយ

ឈ្មោះប្រភេទតម្រូវការតើវាជាអ្វី
term_monthsintegerបាទ/ចាសMonths to add to the existing term. Outside 1…36 is refused `422` before the provider is called.

ផ្អាកដំណើរការ

ឈ្មោះប្រភេទតម្រូវការតើវាជាអ្វី
idUuidបាទ/ចាស**Ours**, and also the provisioning workflow's id and the machine's name at the provider — which is what makes the whole purchase path idempotent.
namestringបាទ/ចាសWhat the customer called it. ⛔ At the provider a machine's name is its row id; confusing the two is a cross-tenant defect, so this is the customer's string and nothing else.
deploy_targetstringបាទ/ចាសWhich compute range the machine belongs to.
plan_codestringបាទ/ចាសThe tier it was bought on, or `""` when it was ordered by size alone.
providerstringបាទ/ចាសOur provider id.
specstringបាទ/ចាសThe machine size it currently runs.
zonestringបាទ/ចាសThe data centre it runs in.
statusstring<pending, provisioning, active, failed, suspended, terminated>បាទ/ចាសHow far the order got — **ours**, and a different fact from `power_state`. `pending` is a row with nothing bought and nothing charged; `failed` is the state whose `message` is t…
messagestringបាទ/ចាសWhy the order failed, in a sentence the customer reads. Blank unless `failed`.
vendor_statusstringបាទ/ចាសThe provider's own word, verbatim and unrounded. Staff-facing detail; a customer client renders `status` and never this.
power_statestring<unknown, on, off, starting, stopping, rebooting>បាទ/ចាសWhat the machine is doing right now. ⛔ **Six values, not two, and the four extra ones are the point: a machine mid-transition is not "on".** `unknown` is the honest answer when…
addressesstring[]បាទ/ចាសPublic addresses **if the provider states them**. Empty means *not stated*, never "none" — a machine rendered as having no address reads as broken.
optimisationstringបាទ/ចាសThe stack optimisation profile it was built with, or `""` for none.
term_monthsintegerបាទ/ចាសThe term it was bought on, or null when the provider states none.
renews_atstringបាទ/ចាស⛔ **Always null today, and honestly so**: the provider publishes no renewal date, and one computed from the order plus the term would be our arithmetic rendered as the provider'…
created_atstringបាទ/ចាសWhen the row was created, or `""` when not stated.
operablebooleanបាទ/ចាសWhether the customer may act on this machine — power, resize, renew, rebuild. ⛔ Read rather than re-derived from `status`: the engine refuses every one of those on anything but…
imagestringបាទ/ចាសThe provider image the machine was built from. Blank on the resold range, which installs one managed image and offers no choice.
suspendedbooleanបាទ/ចាស⛔⛔ **Whether WE stopped it, which is not the same fact as `power_state`.** A stopped machine is the customer's own choice and they may start it again; a suspended one is ours an…
suspension_reasonstringបាទ/ចាសWhy, verbatim, so the customer reads the same sentence support wrote. Blank when the machine is in good standing.
capabilitiesstring[]បាទ/ចាស⭐⭐ **What this machine's provider can actually do** — capability tokens such as `compute:snapshots`, `compute:console`, `compute:firewall`, `compute:backups_manage` and `compute…

កំហុសដែលចំណុចបញ្ចប់នេះអាចបង្វិលត្រឡប់មកវិញ

401 · 403 · 404 · 422 · 429 · 503