hosting

POST /v1/sites/{siteId}/quota/resources/{resource}/downgrade

Reduce a site's allowance — refused while the site is over the target.

所有 hosting 端点

所有开发者文档

身份验证

请将 API 密钥作为 bearer 令牌发送。该密钥必须具有 sites.view 权限;缺少该权限的密钥将被拒绝并返回 403 状态码,而非 404。

此端点不需要组织 ID。您的密钥已用于识别其所属的组织,且响应范围也仅限于该组织。

免费试用

将尖括号中的内容替换为您自己的值,并将键占位符替换为您仪表板中的一个键。

curl -X POST https://api.zinndigital.com/v1/sites/{siteId}/quota/resources/{resource}/downgrade \
  -H "Authorization: Bearer zdk_live_…" \
  -H "Content-Type: application/json" \
  -d '{ "target": <number> }'

已登录?您仪表板中的 API 控制台会自动填入您真实的组织 ID 和您自己的密钥,并针对实时 API 运行请求,以便您查看实际的响应。 在 API 控制台中打开此端点

详细信息

Owner ruling: downgrades are allowed only when the site is not over the limit. The check is made against a live reading of the box, not a stored sample: a downgrade is an irreversible narrowing the customer meets at their next write, so an hour-old figure could license one that is already breached. ⛔ An unreadable usage is a refusal, not a pass. If the box cannot be measured the request answers 422; "we could not tell, so we allowed it" is how a customer ends up above a ceiling they did not choose. The 422 body names the real numbers — "This site is using 1.90 GB of disk, which is more than the 1.00 GB you asked for" — because a customer told only "you cannot reduce this" files a ticket, and one told the figures deletes something. Purchased grants for the resource are revoked so the ceiling is the number asked for; staff gestures are deliberately left alone. Requires sites.view and hosting.quota.manage.

参数

名称类型必填内容简介
siteId (path)UuidSite ID (UUIDv7).
resource (path)string<disk, inodes, bandwidth, database>Which metered per-site resource. Every SELLABLE resource is addressable: disk and inodes are written to the box where the driver can hold them, while bandwidth (since the…

请求正文

名称类型必填内容简介
targetnumberThe new ceiling, in the resource's sold unit. Refused with 422 when the site is currently using more than this, or when its usage cannot be read.

响应

名称类型必填内容简介
resourcestring<disk, inodes, bandwidth, database>
unitSiteQuotaUnitThe unit a quota's figures are expressed in, as a code the client localises — never a word to render raw. GB for disk and bandwidth, files for inodes, MB for the…
stepintegerOne purchasable step, in unit. A customer buys N of these, never an arbitrary size.
basenumberThe site's own allowance, copied from the product line's admin-set default when the site was provisioned. null means this site has no limit row yet — it has not been through…
grantednumberExtra from grants live right now — staff gestures and purchased upgrades, added together.
totalnumberThe effective ceiling — base + granted. null when base is null.
usednumberMeasured usage. null means unknown — the box was unreachable, or nothing has sampled it yet — and never 0. A client must render those differently.
percentintegerUsage as a whole percentage of total, or null when either is unknown.
measured_atstringWhen the box was last asked. Render the age. A bar drawn from a two-day-old reading looks identical to one drawn a minute ago, and the customer cannot tell.
reverts_atstringWhen the ceiling next drops, because a temporary grant expires. null when no live grant has an expiry. A customer whose limit is about to fall needs to know before it does.
warn_at_percentinteger[]The thresholds at which the platform notifies the customer, ascending.
price_minorintegerCost of ONE step, in integer minor units of price_currency, NET of tax. null means no price is published in the caller's currency — the client must then show no upgrade…
price_currencystring
price_intervalstring<monthly, yearly>

此端点可能返回的错误

401 · 403 · 404 · 422 · 429