Skip to content
导航

设置账户的支出上限或套餐

spend_limit_usd。从现在起每个自然月,控制平面自行从账户的银行卡扣款的上限(自动充值,以及账单日扣收的欠款);null 表示取消上限。如果某次充值会让当月自行扣款的总额(不含失败的和已退回的)超过上限,自动充值就不会进行:上限为 $45、每次充值 $20 时,一个月内充值两次。账单日扣收欠费账户的欠款时,不超过上限剩余的额度,自动充值也会把它计算在内。账户自己发起的充值不计入,也不会被拦下。上限本身不会停止任何东西。提高或取消上限后,自动充值可以借本次调用进行充值。从未充值过的账户没有自动充值,上限也不起作用。从未设置过上限的账户使用其套餐的上限(GET /internal/control 的 plans 中的 spend_limit_usd:按控制平面的默认启动设置,付费版为 $50,免费版没有)。

plan。paid:账户订阅付费版。会扣收付费版的月费 $5(GET /v1/billing/charges,kind:subscription),扣款成功那一刻起账户就在付费版上,进入一个包含付费版全部额度的周期;再次发起同一调用不会重复扣款。free 在已付费周期结束时终止订阅;在那之前再请求 paid 可以撤回终止。在只面向企业销售的地方,不是企业的账户不能请求付费版:返回 403 tax_region_business_only,在执行调用的任何部分之前返回(control/README.md,税)。409 subscription_charge_pending:订阅的一笔扣款(首个周期的或下一个周期的)正在收取时请求 free,这笔扣款无法撤回,扣款成功后会开始一个账户表示不想要的周期。

所需权限范围:admin。

PATCH
https://api.glac.ai/v1/billing

授权

  • apiKeyHTTPrequired

请求体JSON必填

  • planoptionalfree或paid

    paid:账户订阅付费版,每月 $5:立即发起第一个周期的扣款(GET /v1/billing/charges,kind 为 subscription),扣款收取成功那一刻起账户就在付费版上;在即将终止的订阅仍在进行时请求,则订阅继续,不扣任何费用。free:订阅在已付费周期结束时终止,不退还任何费用;在此之前账户仍在付费版上。

  • spend_limit_usdoptionalnumber | null

    控制平面每个自然月自行从银行卡扣款的上限(自动充值,以及账单日扣收的欠款),以美元计(精确到百万分之一);null:没有限制。

    minimum: 0
  • start_nowoptionalboolean

    对于现在购买的 plan(账户没有持续的订阅,或者在升级):true:账户要求在 14 天内立即提供所购服务(欧洲经济区或英国的消费者在这 14 天内可以撤回购买),并确认如果撤回,需要为已提供的部分付费,以及点数已全部用完的充值视为已全部提供、不能再撤回(具体措辞见 GET /v1/billing/withdrawals 的 right.start_now)。作为当地消费者购买的账户(没有已核验或正在核验的税号,且账单地址在当地;没有账单地址时,按调用的来源地址判断)必须给出:不给出时返回 400 start_now_required。无论在哪里给出,都会与购买记录一起保存:不给出时,撤回会退还全部已付金额(control/README.md,撤回)。

Returns

200

账户当前的计费信息。

JSON
  • objectstringrequired
  • account_idstringrequired
  • periodstringrequired

    当前月份,YYYY-MM (UTC):即 usage_usd 和 statement 所在的月份。

  • planfree或paidrequired

    账户当前的套餐:free(无需绑卡;每日配额,从不扣费)或 paid(每月 $5;每个周期每个计量项有一定的包含量,超出后按标价从余额中扣除)。

  • next_planfree或paidrequired

    当前周期结束后账户将使用的套餐:如果订阅届时结束,则为 free。

  • included_fromstringrequired

    计算套餐包含额度的时段:在付费版上为账户所在的订阅周期,从开始到结束;在免费版上为当天 (UTC),当天结束时配额全部恢复 (included_to)。

    format: date-time
  • included_tostringrequired
    format: date-time
  • included_perday或periodrequired

    day:免费版的配额,按天 (UTC);period:付费版的包含量,按周期。

  • metersobjectrequired
    • cpuobjectrequired

      账户所在时段(included_from 到 included_to)的一个计量项:在付费版上为订阅的一个周期,在免费版上为当天 (UTC)。

      • unitcpu_ms或memory_gib_seconds或requests或volume_data_gb_hours或egress_bytes或volume_cache_gb_hours另有 4 个required

        数量的单位。付费版周期:CPU 毫秒(繁忙 vCPU 的毫秒数)、内存的 GiB·秒、请求数、存储卷数据和 NVMe 缓存的 GB·小时、发送的字节数、保留日志的 GB·小时。免费版的一天,则是其配额的计量单位:CPU、内存、请求和流量相同;存储卷数据和缓存为同时保存的字节数(volume_data_bytes、volume_cache_bytes:存量,以最近一个完整小时的账目为准);日志为当天打印的字节数 (log_bytes)。

      • usednumberrequired

        账户各项目在该时段的用量;免费版的存量项为当前保存的量。

      • includednumber | nullrequired

        该时段该计量项的包含额度:付费版为周期的包含量(存储卷数据、其缓存和日志,为整个周期可保存的 GB 数乘以周期的小时数),免费版为当天的配额(存储卷数据和缓存为存量上限)。null:用多少都包含在内(流量,在包含所有发送量的套餐上)。

      • leftnumber | nullrequired

        included 还剩多少;included 为 null 时也为 null。

      • billablenumberrequired

        used 中超出周期包含额度、需要计价的部分。免费版为 0,免费版从不扣费。

      • unit_price_usdnumberrequired

        当月的价格,对应 units_per_price 个 unit。

      • price_permillion_cpu_ms或gib_hour或million_requests或gb_month或gbrequired
      • units_per_priceintegerrequired

        价格对应多少个 unit:1,000,000(CPU 毫秒、请求),3,600(GiB·秒),时段的小时数(GB·小时),10^9(字节)。

      • amount_usdnumberrequired

        billable × unit_price_usd ÷ units_per_price,精确到百万分之一美元,四舍五入:即该周期这个计量项超出包含额度的用量按标价计算的金额。免费版为 0。

      • stoppedbooleanrequired

        该计量项对应的服务已停止。在付费版上:周期包含的额度已用完,且账户没有余额支付更多。在免费版上:当天的配额已用完,无论账户有多少余额,直到 UTC 00:00 (included_to)。cpu、memory:账户的沙箱被冻结,不能创建任何新东西 (frozen)。requests:发往其沙箱和应用的请求在边缘节点被拒绝。egress:其沙箱发往互联网的流量被停止。logs:其应用打印的内容不再保留。volume_data、volume_cache:从不停止:在付费版上,存储卷超出周期包含额度保存的数据会成为欠款;在免费版上,超出存量上限时新建存储卷或快照会被拒绝 (403 storage_quota_reached)。

      • regionsoptionalobject

        仅 egress 有:按区域细分的该行(区域为流量离开时所在节点的区域)。

        • naobjectrequired
          • usedintegerrequired

            从该区域节点发送的字节数(对于对账单的某一部分:在该部分内发送的)。

            format: int64 · minimum: 0
          • billableintegerrequired

            其中超出包含额度的部分。

            format: int64 · minimum: 0
          • unit_price_usdnumberrequired

            该区域每 GB(10^9 字节)的价格。

          • amount_usdnumberrequired

            billable 按该价格计算的金额,精确到百万分之一。

            minimum: 0
        • euobjectrequired
          • usedintegerrequired

            从该区域节点发送的字节数(对于对账单的某一部分:在该部分内发送的)。

            format: int64 · minimum: 0
          • billableintegerrequired

            其中超出包含额度的部分。

            format: int64 · minimum: 0
          • unit_price_usdnumberrequired

            该区域每 GB(10^9 字节)的价格。

          • amount_usdnumberrequired

            billable 按该价格计算的金额,精确到百万分之一。

            minimum: 0
        • apobjectrequired
          • usedintegerrequired

            从该区域节点发送的字节数(对于对账单的某一部分:在该部分内发送的)。

            format: int64 · minimum: 0
          • billableintegerrequired

            其中超出包含额度的部分。

            format: int64 · minimum: 0
          • unit_price_usdnumberrequired

            该区域每 GB(10^9 字节)的价格。

          • amount_usdnumberrequired

            billable 按该价格计算的金额,精确到百万分之一。

            minimum: 0
      • backups_gb_hoursoptionalnumber

        仅 volume_data 有,在付费版周期中:used 中有多少是账户存储卷的备份在对象存储中保存的 (/v1/backups)。与月度对账单中存储卷数据那一行给出的一致;任意时间范围可用 GET /v1/usage 加上 kind=backup 查询。

        minimum: 0
    • memoryobjectrequired

      账户所在时段(included_from 到 included_to)的一个计量项:在付费版上为订阅的一个周期,在免费版上为当天 (UTC)。

      • unitcpu_ms或memory_gib_seconds或requests或volume_data_gb_hours或egress_bytes或volume_cache_gb_hours另有 4 个required

        数量的单位。付费版周期:CPU 毫秒(繁忙 vCPU 的毫秒数)、内存的 GiB·秒、请求数、存储卷数据和 NVMe 缓存的 GB·小时、发送的字节数、保留日志的 GB·小时。免费版的一天,则是其配额的计量单位:CPU、内存、请求和流量相同;存储卷数据和缓存为同时保存的字节数(volume_data_bytes、volume_cache_bytes:存量,以最近一个完整小时的账目为准);日志为当天打印的字节数 (log_bytes)。

      • usednumberrequired

        账户各项目在该时段的用量;免费版的存量项为当前保存的量。

      • includednumber | nullrequired

        该时段该计量项的包含额度:付费版为周期的包含量(存储卷数据、其缓存和日志,为整个周期可保存的 GB 数乘以周期的小时数),免费版为当天的配额(存储卷数据和缓存为存量上限)。null:用多少都包含在内(流量,在包含所有发送量的套餐上)。

      • leftnumber | nullrequired

        included 还剩多少;included 为 null 时也为 null。

      • billablenumberrequired

        used 中超出周期包含额度、需要计价的部分。免费版为 0,免费版从不扣费。

      • unit_price_usdnumberrequired

        当月的价格,对应 units_per_price 个 unit。

      • price_permillion_cpu_ms或gib_hour或million_requests或gb_month或gbrequired
      • units_per_priceintegerrequired

        价格对应多少个 unit:1,000,000(CPU 毫秒、请求),3,600(GiB·秒),时段的小时数(GB·小时),10^9(字节)。

      • amount_usdnumberrequired

        billable × unit_price_usd ÷ units_per_price,精确到百万分之一美元,四舍五入:即该周期这个计量项超出包含额度的用量按标价计算的金额。免费版为 0。

      • stoppedbooleanrequired

        该计量项对应的服务已停止。在付费版上:周期包含的额度已用完,且账户没有余额支付更多。在免费版上:当天的配额已用完,无论账户有多少余额,直到 UTC 00:00 (included_to)。cpu、memory:账户的沙箱被冻结,不能创建任何新东西 (frozen)。requests:发往其沙箱和应用的请求在边缘节点被拒绝。egress:其沙箱发往互联网的流量被停止。logs:其应用打印的内容不再保留。volume_data、volume_cache:从不停止:在付费版上,存储卷超出周期包含额度保存的数据会成为欠款;在免费版上,超出存量上限时新建存储卷或快照会被拒绝 (403 storage_quota_reached)。

      • regionsoptionalobject

        仅 egress 有:按区域细分的该行(区域为流量离开时所在节点的区域)。

        • naobjectrequired
          • usedintegerrequired

            从该区域节点发送的字节数(对于对账单的某一部分:在该部分内发送的)。

            format: int64 · minimum: 0
          • billableintegerrequired

            其中超出包含额度的部分。

            format: int64 · minimum: 0
          • unit_price_usdnumberrequired

            该区域每 GB(10^9 字节)的价格。

          • amount_usdnumberrequired

            billable 按该价格计算的金额,精确到百万分之一。

            minimum: 0
        • euobjectrequired
          • usedintegerrequired

            从该区域节点发送的字节数(对于对账单的某一部分:在该部分内发送的)。

            format: int64 · minimum: 0
          • billableintegerrequired

            其中超出包含额度的部分。

            format: int64 · minimum: 0
          • unit_price_usdnumberrequired

            该区域每 GB(10^9 字节)的价格。

          • amount_usdnumberrequired

            billable 按该价格计算的金额,精确到百万分之一。

            minimum: 0
        • apobjectrequired
          • usedintegerrequired

            从该区域节点发送的字节数(对于对账单的某一部分:在该部分内发送的)。

            format: int64 · minimum: 0
          • billableintegerrequired

            其中超出包含额度的部分。

            format: int64 · minimum: 0
          • unit_price_usdnumberrequired

            该区域每 GB(10^9 字节)的价格。

          • amount_usdnumberrequired

            billable 按该价格计算的金额,精确到百万分之一。

            minimum: 0
      • backups_gb_hoursoptionalnumber

        仅 volume_data 有,在付费版周期中:used 中有多少是账户存储卷的备份在对象存储中保存的 (/v1/backups)。与月度对账单中存储卷数据那一行给出的一致;任意时间范围可用 GET /v1/usage 加上 kind=backup 查询。

        minimum: 0
    • requestsobjectrequired

      账户所在时段(included_from 到 included_to)的一个计量项:在付费版上为订阅的一个周期,在免费版上为当天 (UTC)。

      • unitcpu_ms或memory_gib_seconds或requests或volume_data_gb_hours或egress_bytes或volume_cache_gb_hours另有 4 个required

        数量的单位。付费版周期:CPU 毫秒(繁忙 vCPU 的毫秒数)、内存的 GiB·秒、请求数、存储卷数据和 NVMe 缓存的 GB·小时、发送的字节数、保留日志的 GB·小时。免费版的一天,则是其配额的计量单位:CPU、内存、请求和流量相同;存储卷数据和缓存为同时保存的字节数(volume_data_bytes、volume_cache_bytes:存量,以最近一个完整小时的账目为准);日志为当天打印的字节数 (log_bytes)。

      • usednumberrequired

        账户各项目在该时段的用量;免费版的存量项为当前保存的量。

      • includednumber | nullrequired

        该时段该计量项的包含额度:付费版为周期的包含量(存储卷数据、其缓存和日志,为整个周期可保存的 GB 数乘以周期的小时数),免费版为当天的配额(存储卷数据和缓存为存量上限)。null:用多少都包含在内(流量,在包含所有发送量的套餐上)。

      • leftnumber | nullrequired

        included 还剩多少;included 为 null 时也为 null。

      • billablenumberrequired

        used 中超出周期包含额度、需要计价的部分。免费版为 0,免费版从不扣费。

      • unit_price_usdnumberrequired

        当月的价格,对应 units_per_price 个 unit。

      • price_permillion_cpu_ms或gib_hour或million_requests或gb_month或gbrequired
      • units_per_priceintegerrequired

        价格对应多少个 unit:1,000,000(CPU 毫秒、请求),3,600(GiB·秒),时段的小时数(GB·小时),10^9(字节)。

      • amount_usdnumberrequired

        billable × unit_price_usd ÷ units_per_price,精确到百万分之一美元,四舍五入:即该周期这个计量项超出包含额度的用量按标价计算的金额。免费版为 0。

      • stoppedbooleanrequired

        该计量项对应的服务已停止。在付费版上:周期包含的额度已用完,且账户没有余额支付更多。在免费版上:当天的配额已用完,无论账户有多少余额,直到 UTC 00:00 (included_to)。cpu、memory:账户的沙箱被冻结,不能创建任何新东西 (frozen)。requests:发往其沙箱和应用的请求在边缘节点被拒绝。egress:其沙箱发往互联网的流量被停止。logs:其应用打印的内容不再保留。volume_data、volume_cache:从不停止:在付费版上,存储卷超出周期包含额度保存的数据会成为欠款;在免费版上,超出存量上限时新建存储卷或快照会被拒绝 (403 storage_quota_reached)。

      • regionsoptionalobject

        仅 egress 有:按区域细分的该行(区域为流量离开时所在节点的区域)。

        • naobjectrequired
          • usedintegerrequired

            从该区域节点发送的字节数(对于对账单的某一部分:在该部分内发送的)。

            format: int64 · minimum: 0
          • billableintegerrequired

            其中超出包含额度的部分。

            format: int64 · minimum: 0
          • unit_price_usdnumberrequired

            该区域每 GB(10^9 字节)的价格。

          • amount_usdnumberrequired

            billable 按该价格计算的金额,精确到百万分之一。

            minimum: 0
        • euobjectrequired
          • usedintegerrequired

            从该区域节点发送的字节数(对于对账单的某一部分:在该部分内发送的)。

            format: int64 · minimum: 0
          • billableintegerrequired

            其中超出包含额度的部分。

            format: int64 · minimum: 0
          • unit_price_usdnumberrequired

            该区域每 GB(10^9 字节)的价格。

          • amount_usdnumberrequired

            billable 按该价格计算的金额,精确到百万分之一。

            minimum: 0
        • apobjectrequired
          • usedintegerrequired

            从该区域节点发送的字节数(对于对账单的某一部分:在该部分内发送的)。

            format: int64 · minimum: 0
          • billableintegerrequired

            其中超出包含额度的部分。

            format: int64 · minimum: 0
          • unit_price_usdnumberrequired

            该区域每 GB(10^9 字节)的价格。

          • amount_usdnumberrequired

            billable 按该价格计算的金额,精确到百万分之一。

            minimum: 0
      • backups_gb_hoursoptionalnumber

        仅 volume_data 有,在付费版周期中:used 中有多少是账户存储卷的备份在对象存储中保存的 (/v1/backups)。与月度对账单中存储卷数据那一行给出的一致;任意时间范围可用 GET /v1/usage 加上 kind=backup 查询。

        minimum: 0
    • volume_dataobjectrequired

      账户的存储卷中的数据、快照保存的数据、休眠沙箱保存的自身内存和磁盘,以及存储卷备份保存的数据:在付费版上以 GB·小时计,在免费版上以同时保存的字节数计(是存量上限,不是每日配额)。

      • unitcpu_ms或memory_gib_seconds或requests或volume_data_gb_hours或egress_bytes或volume_cache_gb_hours另有 4 个required

        数量的单位。付费版周期:CPU 毫秒(繁忙 vCPU 的毫秒数)、内存的 GiB·秒、请求数、存储卷数据和 NVMe 缓存的 GB·小时、发送的字节数、保留日志的 GB·小时。免费版的一天,则是其配额的计量单位:CPU、内存、请求和流量相同;存储卷数据和缓存为同时保存的字节数(volume_data_bytes、volume_cache_bytes:存量,以最近一个完整小时的账目为准);日志为当天打印的字节数 (log_bytes)。

      • usednumberrequired

        账户各项目在该时段的用量;免费版的存量项为当前保存的量。

      • includednumber | nullrequired

        该时段该计量项的包含额度:付费版为周期的包含量(存储卷数据、其缓存和日志,为整个周期可保存的 GB 数乘以周期的小时数),免费版为当天的配额(存储卷数据和缓存为存量上限)。null:用多少都包含在内(流量,在包含所有发送量的套餐上)。

      • leftnumber | nullrequired

        included 还剩多少;included 为 null 时也为 null。

      • billablenumberrequired

        used 中超出周期包含额度、需要计价的部分。免费版为 0,免费版从不扣费。

      • unit_price_usdnumberrequired

        当月的价格,对应 units_per_price 个 unit。

      • price_permillion_cpu_ms或gib_hour或million_requests或gb_month或gbrequired
      • units_per_priceintegerrequired

        价格对应多少个 unit:1,000,000(CPU 毫秒、请求),3,600(GiB·秒),时段的小时数(GB·小时),10^9(字节)。

      • amount_usdnumberrequired

        billable × unit_price_usd ÷ units_per_price,精确到百万分之一美元,四舍五入:即该周期这个计量项超出包含额度的用量按标价计算的金额。免费版为 0。

      • stoppedbooleanrequired

        该计量项对应的服务已停止。在付费版上:周期包含的额度已用完,且账户没有余额支付更多。在免费版上:当天的配额已用完,无论账户有多少余额,直到 UTC 00:00 (included_to)。cpu、memory:账户的沙箱被冻结,不能创建任何新东西 (frozen)。requests:发往其沙箱和应用的请求在边缘节点被拒绝。egress:其沙箱发往互联网的流量被停止。logs:其应用打印的内容不再保留。volume_data、volume_cache:从不停止:在付费版上,存储卷超出周期包含额度保存的数据会成为欠款;在免费版上,超出存量上限时新建存储卷或快照会被拒绝 (403 storage_quota_reached)。

      • regionsoptionalobject

        仅 egress 有:按区域细分的该行(区域为流量离开时所在节点的区域)。

        • naobjectrequired
          • usedintegerrequired

            从该区域节点发送的字节数(对于对账单的某一部分:在该部分内发送的)。

            format: int64 · minimum: 0
          • billableintegerrequired

            其中超出包含额度的部分。

            format: int64 · minimum: 0
          • unit_price_usdnumberrequired

            该区域每 GB(10^9 字节)的价格。

          • amount_usdnumberrequired

            billable 按该价格计算的金额,精确到百万分之一。

            minimum: 0
        • euobjectrequired
          • usedintegerrequired

            从该区域节点发送的字节数(对于对账单的某一部分:在该部分内发送的)。

            format: int64 · minimum: 0
          • billableintegerrequired

            其中超出包含额度的部分。

            format: int64 · minimum: 0
          • unit_price_usdnumberrequired

            该区域每 GB(10^9 字节)的价格。

          • amount_usdnumberrequired

            billable 按该价格计算的金额,精确到百万分之一。

            minimum: 0
        • apobjectrequired
          • usedintegerrequired

            从该区域节点发送的字节数(对于对账单的某一部分:在该部分内发送的)。

            format: int64 · minimum: 0
          • billableintegerrequired

            其中超出包含额度的部分。

            format: int64 · minimum: 0
          • unit_price_usdnumberrequired

            该区域每 GB(10^9 字节)的价格。

          • amount_usdnumberrequired

            billable 按该价格计算的金额,精确到百万分之一。

            minimum: 0
      • backups_gb_hoursoptionalnumber

        仅 volume_data 有,在付费版周期中:used 中有多少是账户存储卷的备份在对象存储中保存的 (/v1/backups)。与月度对账单中存储卷数据那一行给出的一致;任意时间范围可用 GET /v1/usage 加上 kind=backup 查询。

        minimum: 0
    • egressobjectrequired

      账户所在时段(included_from 到 included_to)的一个计量项:在付费版上为订阅的一个周期,在免费版上为当天 (UTC)。

      • unitcpu_ms或memory_gib_seconds或requests或volume_data_gb_hours或egress_bytes或volume_cache_gb_hours另有 4 个required

        数量的单位。付费版周期:CPU 毫秒(繁忙 vCPU 的毫秒数)、内存的 GiB·秒、请求数、存储卷数据和 NVMe 缓存的 GB·小时、发送的字节数、保留日志的 GB·小时。免费版的一天,则是其配额的计量单位:CPU、内存、请求和流量相同;存储卷数据和缓存为同时保存的字节数(volume_data_bytes、volume_cache_bytes:存量,以最近一个完整小时的账目为准);日志为当天打印的字节数 (log_bytes)。

      • usednumberrequired

        账户各项目在该时段的用量;免费版的存量项为当前保存的量。

      • includednumber | nullrequired

        该时段该计量项的包含额度:付费版为周期的包含量(存储卷数据、其缓存和日志,为整个周期可保存的 GB 数乘以周期的小时数),免费版为当天的配额(存储卷数据和缓存为存量上限)。null:用多少都包含在内(流量,在包含所有发送量的套餐上)。

      • leftnumber | nullrequired

        included 还剩多少;included 为 null 时也为 null。

      • billablenumberrequired

        used 中超出周期包含额度、需要计价的部分。免费版为 0,免费版从不扣费。

      • unit_price_usdnumberrequired

        当月的价格,对应 units_per_price 个 unit。

      • price_permillion_cpu_ms或gib_hour或million_requests或gb_month或gbrequired
      • units_per_priceintegerrequired

        价格对应多少个 unit:1,000,000(CPU 毫秒、请求),3,600(GiB·秒),时段的小时数(GB·小时),10^9(字节)。

      • amount_usdnumberrequired

        billable × unit_price_usd ÷ units_per_price,精确到百万分之一美元,四舍五入:即该周期这个计量项超出包含额度的用量按标价计算的金额。免费版为 0。

      • stoppedbooleanrequired

        该计量项对应的服务已停止。在付费版上:周期包含的额度已用完,且账户没有余额支付更多。在免费版上:当天的配额已用完,无论账户有多少余额,直到 UTC 00:00 (included_to)。cpu、memory:账户的沙箱被冻结,不能创建任何新东西 (frozen)。requests:发往其沙箱和应用的请求在边缘节点被拒绝。egress:其沙箱发往互联网的流量被停止。logs:其应用打印的内容不再保留。volume_data、volume_cache:从不停止:在付费版上,存储卷超出周期包含额度保存的数据会成为欠款;在免费版上,超出存量上限时新建存储卷或快照会被拒绝 (403 storage_quota_reached)。

      • regionsoptionalobject

        仅 egress 有:按区域细分的该行(区域为流量离开时所在节点的区域)。

        • naobjectrequired
          • usedintegerrequired

            从该区域节点发送的字节数(对于对账单的某一部分:在该部分内发送的)。

            format: int64 · minimum: 0
          • billableintegerrequired

            其中超出包含额度的部分。

            format: int64 · minimum: 0
          • unit_price_usdnumberrequired

            该区域每 GB(10^9 字节)的价格。

          • amount_usdnumberrequired

            billable 按该价格计算的金额,精确到百万分之一。

            minimum: 0
        • euobjectrequired
          • usedintegerrequired

            从该区域节点发送的字节数(对于对账单的某一部分:在该部分内发送的)。

            format: int64 · minimum: 0
          • billableintegerrequired

            其中超出包含额度的部分。

            format: int64 · minimum: 0
          • unit_price_usdnumberrequired

            该区域每 GB(10^9 字节)的价格。

          • amount_usdnumberrequired

            billable 按该价格计算的金额,精确到百万分之一。

            minimum: 0
        • apobjectrequired
          • usedintegerrequired

            从该区域节点发送的字节数(对于对账单的某一部分:在该部分内发送的)。

            format: int64 · minimum: 0
          • billableintegerrequired

            其中超出包含额度的部分。

            format: int64 · minimum: 0
          • unit_price_usdnumberrequired

            该区域每 GB(10^9 字节)的价格。

          • amount_usdnumberrequired

            billable 按该价格计算的金额,精确到百万分之一。

            minimum: 0
      • backups_gb_hoursoptionalnumber

        仅 volume_data 有,在付费版周期中:used 中有多少是账户存储卷的备份在对象存储中保存的 (/v1/backups)。与月度对账单中存储卷数据那一行给出的一致;任意时间范围可用 GET /v1/usage 加上 kind=backup 查询。

        minimum: 0
    • volume_cacheobjectrequired

      账户的存储卷在其节点自有 NVMe 上保存的数据,取各存储卷所设缓存大小与其数据量中较小的那个:在付费版上以 GB·小时计,在免费版上以同时保存的字节数计(存量上限)。

      • unitcpu_ms或memory_gib_seconds或requests或volume_data_gb_hours或egress_bytes或volume_cache_gb_hours另有 4 个required

        数量的单位。付费版周期:CPU 毫秒(繁忙 vCPU 的毫秒数)、内存的 GiB·秒、请求数、存储卷数据和 NVMe 缓存的 GB·小时、发送的字节数、保留日志的 GB·小时。免费版的一天,则是其配额的计量单位:CPU、内存、请求和流量相同;存储卷数据和缓存为同时保存的字节数(volume_data_bytes、volume_cache_bytes:存量,以最近一个完整小时的账目为准);日志为当天打印的字节数 (log_bytes)。

      • usednumberrequired

        账户各项目在该时段的用量;免费版的存量项为当前保存的量。

      • includednumber | nullrequired

        该时段该计量项的包含额度:付费版为周期的包含量(存储卷数据、其缓存和日志,为整个周期可保存的 GB 数乘以周期的小时数),免费版为当天的配额(存储卷数据和缓存为存量上限)。null:用多少都包含在内(流量,在包含所有发送量的套餐上)。

      • leftnumber | nullrequired

        included 还剩多少;included 为 null 时也为 null。

      • billablenumberrequired

        used 中超出周期包含额度、需要计价的部分。免费版为 0,免费版从不扣费。

      • unit_price_usdnumberrequired

        当月的价格,对应 units_per_price 个 unit。

      • price_permillion_cpu_ms或gib_hour或million_requests或gb_month或gbrequired
      • units_per_priceintegerrequired

        价格对应多少个 unit:1,000,000(CPU 毫秒、请求),3,600(GiB·秒),时段的小时数(GB·小时),10^9(字节)。

      • amount_usdnumberrequired

        billable × unit_price_usd ÷ units_per_price,精确到百万分之一美元,四舍五入:即该周期这个计量项超出包含额度的用量按标价计算的金额。免费版为 0。

      • stoppedbooleanrequired

        该计量项对应的服务已停止。在付费版上:周期包含的额度已用完,且账户没有余额支付更多。在免费版上:当天的配额已用完,无论账户有多少余额,直到 UTC 00:00 (included_to)。cpu、memory:账户的沙箱被冻结,不能创建任何新东西 (frozen)。requests:发往其沙箱和应用的请求在边缘节点被拒绝。egress:其沙箱发往互联网的流量被停止。logs:其应用打印的内容不再保留。volume_data、volume_cache:从不停止:在付费版上,存储卷超出周期包含额度保存的数据会成为欠款;在免费版上,超出存量上限时新建存储卷或快照会被拒绝 (403 storage_quota_reached)。

      • regionsoptionalobject

        仅 egress 有:按区域细分的该行(区域为流量离开时所在节点的区域)。

        • naobjectrequired
          • usedintegerrequired

            从该区域节点发送的字节数(对于对账单的某一部分:在该部分内发送的)。

            format: int64 · minimum: 0
          • billableintegerrequired

            其中超出包含额度的部分。

            format: int64 · minimum: 0
          • unit_price_usdnumberrequired

            该区域每 GB(10^9 字节)的价格。

          • amount_usdnumberrequired

            billable 按该价格计算的金额,精确到百万分之一。

            minimum: 0
        • euobjectrequired
          • usedintegerrequired

            从该区域节点发送的字节数(对于对账单的某一部分:在该部分内发送的)。

            format: int64 · minimum: 0
          • billableintegerrequired

            其中超出包含额度的部分。

            format: int64 · minimum: 0
          • unit_price_usdnumberrequired

            该区域每 GB(10^9 字节)的价格。

          • amount_usdnumberrequired

            billable 按该价格计算的金额,精确到百万分之一。

            minimum: 0
        • apobjectrequired
          • usedintegerrequired

            从该区域节点发送的字节数(对于对账单的某一部分:在该部分内发送的)。

            format: int64 · minimum: 0
          • billableintegerrequired

            其中超出包含额度的部分。

            format: int64 · minimum: 0
          • unit_price_usdnumberrequired

            该区域每 GB(10^9 字节)的价格。

          • amount_usdnumberrequired

            billable 按该价格计算的金额,精确到百万分之一。

            minimum: 0
      • backups_gb_hoursoptionalnumber

        仅 volume_data 有,在付费版周期中:used 中有多少是账户存储卷的备份在对象存储中保存的 (/v1/backups)。与月度对账单中存储卷数据那一行给出的一致;任意时间范围可用 GET /v1/usage 加上 kind=backup 查询。

        minimum: 0
    • logsobjectrequired

      账户的应用打印且被节点保留的内容:在付费版上按保留时长计,单位为 GB·小时(每行的 text,按打印时计,乘以其保留的小时数);在免费版上为当天打印的字节数。

      • unitcpu_ms或memory_gib_seconds或requests或volume_data_gb_hours或egress_bytes或volume_cache_gb_hours另有 4 个required

        数量的单位。付费版周期:CPU 毫秒(繁忙 vCPU 的毫秒数)、内存的 GiB·秒、请求数、存储卷数据和 NVMe 缓存的 GB·小时、发送的字节数、保留日志的 GB·小时。免费版的一天,则是其配额的计量单位:CPU、内存、请求和流量相同;存储卷数据和缓存为同时保存的字节数(volume_data_bytes、volume_cache_bytes:存量,以最近一个完整小时的账目为准);日志为当天打印的字节数 (log_bytes)。

      • usednumberrequired

        账户各项目在该时段的用量;免费版的存量项为当前保存的量。

      • includednumber | nullrequired

        该时段该计量项的包含额度:付费版为周期的包含量(存储卷数据、其缓存和日志,为整个周期可保存的 GB 数乘以周期的小时数),免费版为当天的配额(存储卷数据和缓存为存量上限)。null:用多少都包含在内(流量,在包含所有发送量的套餐上)。

      • leftnumber | nullrequired

        included 还剩多少;included 为 null 时也为 null。

      • billablenumberrequired

        used 中超出周期包含额度、需要计价的部分。免费版为 0,免费版从不扣费。

      • unit_price_usdnumberrequired

        当月的价格,对应 units_per_price 个 unit。

      • price_permillion_cpu_ms或gib_hour或million_requests或gb_month或gbrequired
      • units_per_priceintegerrequired

        价格对应多少个 unit:1,000,000(CPU 毫秒、请求),3,600(GiB·秒),时段的小时数(GB·小时),10^9(字节)。

      • amount_usdnumberrequired

        billable × unit_price_usd ÷ units_per_price,精确到百万分之一美元,四舍五入:即该周期这个计量项超出包含额度的用量按标价计算的金额。免费版为 0。

      • stoppedbooleanrequired

        该计量项对应的服务已停止。在付费版上:周期包含的额度已用完,且账户没有余额支付更多。在免费版上:当天的配额已用完,无论账户有多少余额,直到 UTC 00:00 (included_to)。cpu、memory:账户的沙箱被冻结,不能创建任何新东西 (frozen)。requests:发往其沙箱和应用的请求在边缘节点被拒绝。egress:其沙箱发往互联网的流量被停止。logs:其应用打印的内容不再保留。volume_data、volume_cache:从不停止:在付费版上,存储卷超出周期包含额度保存的数据会成为欠款;在免费版上,超出存量上限时新建存储卷或快照会被拒绝 (403 storage_quota_reached)。

      • regionsoptionalobject

        仅 egress 有:按区域细分的该行(区域为流量离开时所在节点的区域)。

        • naobjectrequired
          • usedintegerrequired

            从该区域节点发送的字节数(对于对账单的某一部分:在该部分内发送的)。

            format: int64 · minimum: 0
          • billableintegerrequired

            其中超出包含额度的部分。

            format: int64 · minimum: 0
          • unit_price_usdnumberrequired

            该区域每 GB(10^9 字节)的价格。

          • amount_usdnumberrequired

            billable 按该价格计算的金额,精确到百万分之一。

            minimum: 0
        • euobjectrequired
          • usedintegerrequired

            从该区域节点发送的字节数(对于对账单的某一部分:在该部分内发送的)。

            format: int64 · minimum: 0
          • billableintegerrequired

            其中超出包含额度的部分。

            format: int64 · minimum: 0
          • unit_price_usdnumberrequired

            该区域每 GB(10^9 字节)的价格。

          • amount_usdnumberrequired

            billable 按该价格计算的金额,精确到百万分之一。

            minimum: 0
        • apobjectrequired
          • usedintegerrequired

            从该区域节点发送的字节数(对于对账单的某一部分:在该部分内发送的)。

            format: int64 · minimum: 0
          • billableintegerrequired

            其中超出包含额度的部分。

            format: int64 · minimum: 0
          • unit_price_usdnumberrequired

            该区域每 GB(10^9 字节)的价格。

          • amount_usdnumberrequired

            billable 按该价格计算的金额,精确到百万分之一。

            minimum: 0
      • backups_gb_hoursoptionalnumber

        仅 volume_data 有,在付费版周期中:used 中有多少是账户存储卷的备份在对象存储中保存的 (/v1/backups)。与月度对账单中存储卷数据那一行给出的一致;任意时间范围可用 GET /v1/usage 加上 kind=backup 查询。

        minimum: 0
  • list_usdnumberrequired

    当前时段各计量项按标价到目前为止的合计:即各项 amount_usd 之和(流量按区域分别计算)。免费版为 0。

  • creditsnumberrequired

    账户的余额:其账目所有条目的总和 (GET /v1/billing/balance)。用于支付超出付费版周期包含额度的用量。账户欠费时为负数。

  • owednumberrequired

    账户的欠款:在没有余额期间,其休眠沙箱、存储卷、快照和备份保存的数据超出付费版周期包含额度的部分。这是下一笔点数首先要支付的。不会欠其他款项:没有余额的账户在停止生效之前使用的其他计量项会被核销。免费版账户从不欠费。

  • lots数组,元素为objectrequired

    账户持有的点数,按每笔额度列出,最先失效的在前:也就是使用的顺序。

    • idstringrequired

      对应这笔额度的账目条目的 id。

    • kindcredit或topup或month_grant或period_grantrequired

      credit:运营方授予的。topup:已收款的充值。(month_grant、period_grant:只出现在套餐包含用量之前的存储中:每个自然月或每个订阅周期赠送的点数。现在已不再赠送;已赠送的与其他点数一样用于支付,并按原定时间失效。)

    • creditsnumberrequired

      剩余多少:授予的数量减去已支付的部分。

    • grantednumberrequired

      授予的数量。

    • granted_atstringrequired
      format: date-time
    • expires_atstringrequired

      失效时间:届时剩余部分会被核销。

      format: date-time
  • usage_usdnumberrequired

    当前自然月超出各周期包含额度的用量到目前为止的金额:即当月对账单给出的金额 (usage_usd),由余额支付。免费版的小时为 0。

  • fee_usdnumberrequired

    账户所在周期的月费:为它扣收的金额(赠送的周期为 0);对于到期的周期,为正在收取的金额。免费版为 0。

  • spend_limit_usdnumber | nullrequired

    账户的支出上限:控制平面每个自然月自行从其银行卡扣款的上限(自动充值,以及账单日扣收的欠款);null:没有上限。上限本身不会停止任何东西。从未设置过的账户使用其套餐的上限。

  • frozenbooleanrequired

    账户的沙箱被冻结,其项目中不能再创建任何新东西,包括沙箱、存储卷和快照(403 balance_used_up;对欠费账户,除读取欠款、付款、列出和删除其存储内容的调用外,所有调用都返回 402 account_in_debt)。已有的东西会保留。可以删除的由账户自己决定删除;欠费期间,可以删除的是其存储卷、快照和沙箱,别无其他。

  • frozen_reasonbalance_used_up或quota_used_up或account_in_debt或nullrequired

    balance_used_up:在付费版上,周期包含的 CPU 时间或内存已用完,且账户没有余额支付更多;quota_used_up:在免费版上,当天的 CPU 时间或内存配额已用完,直到 UTC 00:00;account_in_debt:账户欠费 (debt)。未冻结时为 null。

  • max_vcpusintegerrequired

    套餐允许账户拥有的最大沙箱。

  • max_memory_bytesintegerrequired
  • max_appsintegerrequired

    套餐允许账户在所有项目中拥有的应用数。

  • max_app_envintegerrequired

    套餐允许单个应用拥有的环境变量和机密的合计数量。

  • max_volumesintegerrequired

    账户的单个项目最多可以有多少个存储卷(超出后 POST /v1/volumes 返回 403 volume_limit_reached):套餐的数值,或运营方为该账户设定的替代数值。在付费版上是软限制,用于拦住失控的脚本,可以为账户申请提高。

  • max_volume_bytesintegerrequired

    单个存储卷最大多少(免费版 10 GiB,付费版 1 TiB,任何套餐都不会超过;运营方可为企业客户的账户设定数值,最大 16 TiB,即节点能创建的最大值):创建更大的存储卷返回 403 volume_limit_reached,param 为 size_bytes;不指定大小时使用此值,如果节点自己的大小 (64 GiB) 更大则用节点的。

  • max_volumes_bytesinteger | nullrequired

    项目所有存储卷合计最大多少;null:没有限制(付费版),按存储量计费。

  • max_secretsintegerrequired

    套餐允许单个项目保存的机密数量(再多一个时,PUT /v1/secrets/{name} 返回 403 secret_limit_reached)。

  • max_secret_bytesintegerrequired

    单个机密的值最大多少字节(更大的值会让 PUT /v1/secrets/{name} 返回 403 secret_limit_reached,param 为 value)。

  • max_sandbox_secrets_bytesintegerrequired

    单个沙箱获得的机密值合计最多多少字节:即应用的实例以环境变量和文件形式获得的机密,同一个机密给几次就算几次。如果创建、修改或部署应用,或者设置机密的新值,会让其实例获得更多(且比现在更多),则返回 403 secret_limit_reached。沙箱出站规则发送的机密不会交给沙箱:其值在请求出站时填入请求。

  • capsobjectrequired

    账户同时可拥有的数量,各项上限的数值及其来源。GET /v1/account 给出相同的内容,并附带账户当前各项的量 (used),它随沙箱的唤醒、休眠和创建而变化,不出现在账单中 (control/README.md)。套餐的数值(运行中、其 vCPU、其内存、休眠中、单个应用的实例数上限及未指定时的数量、一分钟内创建、单个项目一小时内创建、一小时内创建的应用和版本:免费版为 5、10、10 GiB、20、5 和 2、10、200、10;付费版为 500、500、1,000 GiB、10,000、500 和 50、600、10,000、500),或运营方为该账户设定的数值。上限是配额,不是预留:在上限之内,已满的节点照样会拒绝 (503 no_capacity)。它只阻止新的东西:达到上限时,或账户改用上限更小的套餐时,已在运行的照常运行。统计的是各节点每隔几秒 (--usage-seconds) 报告的账户所有项目中的沙箱,以及此后各调用带来的变化:节点因请求其端口而自行唤醒的沙箱,以及节点为请求创建或唤醒的应用实例,从其节点的下一次检查起计入。一分钟或一小时内创建的数量,由控制平面从启动起在内存中统计。超出上限时,账户会收到 403 plan_cap_reached,其 param 为该上限的名称。

    • instancesobjectrequired

      同时运行的沙箱和应用实例(运行中或正在启动)。

      • limitintegerrequired

        账户可以拥有的数量。

      • sourceplan或operatorrequired

        limit 的数值来自哪里:其套餐,或运营方为该账户设定(PATCH /internal/accounts/{id},caps)。

    • vcpusobjectrequired

      它们的 vCPU 合计:每个按其创建时或调整回的规格计 (limits)。

      • limitintegerrequired

        账户可以拥有的数量。

      • sourceplan或operatorrequired

        limit 的数值来自哪里:其套餐,或运营方为该账户设定(PATCH /internal/accounts/{id},caps)。

    • memory_bytesobjectrequired

      它们的内存合计,单位为字节。

      • limitintegerrequired

        账户可以拥有的数量。

      • sourceplan或operatorrequired

        limit 的数值来自哪里:其套餐,或运营方为该账户设定(PATCH /internal/accounts/{id},caps)。

    • sleepingobjectrequired

      保留着但不在运行的沙箱(休眠、冻结、失败),不含应用实例:达到上限时不能创建沙箱,也不能分叉,休眠从不会被拒绝。

      • limitintegerrequired

        账户可以拥有的数量。

      • sourceplan或operatorrequired

        limit 的数值来自哪里:其套餐,或运营方为该账户设定(PATCH /internal/accounts/{id},caps)。

    • app_instancesobjectrequired

      应用在一个区域内的实例数:其 scale.max_instances 和 scale.min_instances 最多能设为多少(超出时创建或修改应用会被拒绝),以及不指定 max_instances 时它拥有的数量。告诉其节点的数量就是这个数,且不超过账户除其他运行中资源外还能容纳的运行量,也不少于应用当前运行的实例数。

      • limitintegerrequired

        应用最多可以请求的数量。

      • sourceplan或operatorrequired
      • defaultintegerrequired

        What an app has that names no max_instances (or its min_instances, where that is more).

    • creates_per_minuteobjectrequired

      滑动一分钟内创建的沙箱:创建和一次性运行各算一个,分叉按其创建的数量计。达到上限时的拒绝为 retryable,并带有 Retry-After。

      • limitintegerrequired

        账户可以拥有的数量。

      • sourceplan或operatorrequired

        limit 的数值来自哪里:其套餐,或运营方为该账户设定(PATCH /internal/accounts/{id},caps)。

    • creates_per_hour_per_projectobjectrequired

      账户的单个项目在滑动一小时内创建的沙箱,计数方式与一分钟的相同;每个项目各自计算自己的一小时,used 为其中创建最多的那个项目的数量。达到上限时的拒绝为 retryable,并带有 Retry-After;如果一分钟的上限也已超出,则指明让调用等待更久的那一项。

      • limitintegerrequired

        账户可以拥有的数量。

      • sourceplan或operatorrequired

        limit 的数值来自哪里:其套餐,或运营方为该账户设定(PATCH /internal/accounts/{id},caps)。

    • app_creates_per_hourobjectrequired

      账户在滑动一小时内创建的应用和应用版本:创建一个应用(无论是否带镜像)、一次部署、一次产生版本的应用修改,各算一个;什么都没有创建的调用(被拒绝的,或修改的是立即生效的设置)不计入,回滚也不计入。账户没有余量容纳的应用,无论一小时的计数如何,都会因此被拒绝 (app_limit_reached)。达到上限时的拒绝为 retryable,并带有 Retry-After。

      • limitintegerrequired

        账户可以拥有的数量。

      • sourceplan或operatorrequired

        limit 的数值来自哪里:其套餐,或运营方为该账户设定(PATCH /internal/accounts/{id},caps)。

  • pricesobjectrequired

    以美元计,小数点后最多六位:所有产品共用一张价目表(浏览器会话、数据库的实例和云盘,与任何沙箱和存储卷的定价相同)。

    • cpu_ms_million_usdnumberrequired

      每百万 CPU 毫秒的 CPU 时间:即繁忙 vCPU 的毫秒数($0.01,相当于每 vCPU·小时 $0.036)。

    • memory_gib_hour_usdnumberrequired

      运行时或暂停在内存中(暂停层级)占用内存的每 GiB·小时价格。

    • requests_million_usdnumberrequired

      每百万次请求:发往应用的请求,以及经由预览 URL 发往沙箱的请求。

    • volume_data_gb_month_usdnumberrequired

      每 GB·月的存储卷数据:存储卷中的数据、快照保存的数据、休眠沙箱保存的自身内存和磁盘,以及存储卷备份在对象存储中保存的数据 (--price-volume-data-gb-month)。写入或读取存储卷不计价。

    • volume_cache_gb_month_usdnumberrequired

      每 GB·月的存储卷 NVMe 缓存:其节点在自己磁盘上为它保存的数据,取存储卷所设缓存大小(默认为全部)与其数据量中较小的那个 (--price-volume-cache-gb-month)。这样完全缓存的存储卷,每 GB·月的费用为此价格与 volume_data_gb_month_usd 之和。

    • egress_gb_usdnumberrequired

      从北美节点或没有区域的节点发送到互联网的每 GB(10^9 字节)流量:流量按其离开时所在节点的区域计价:na 北美(以及没有区域的节点),eu 欧洲,ap 亚太。

    • egress_eu_gb_usdnumberrequired

      从欧洲节点发送到互联网的每 GB 流量。

    • egress_ap_gb_usdnumberrequired

      从亚太节点发送到互联网的每 GB 流量。

    • logs_gb_month_usdnumberrequired

      应用打印且被节点保留的内容的每 GB·月价格:每一行保留的输出的 text,按打印时计,乘以其保留的小时数 (--price-logs-gb-month)。

    • provisionalbooleanrequired
  • subscriptionrequired

    账户的订阅;没有订阅也没有申请订阅的账户为 null。

    以下之一:

    • Subscription
      • statepending或active或ending或due或unpaidrequired

        pending:账户已申请订阅,正在收取第一个周期的扣款;在此之前账户使用免费版。active:处于已付费的周期中,周期结束时扣收下一个周期的费用。ending:处于已付费的周期中,该周期结束时订阅终止 (ends_at)。due:已付费的周期已结束,正在收取下一个周期的扣款。unpaid:那笔扣款失败了,会再次扣款 (charge.retry_at)。处于 due 或 unpaid 期间,账户仍在其套餐上,按其上一个周期的情况限制;这期间的用量不属于任何周期,按到期周期的包含额度对照,该周期付款后即归入该周期;到 ends_at 时订阅终止。

      • planpaid或nullrequired

        订阅所采用的套餐:paid。处于 pending 时:所申请的套餐。

      • sincestring | nullrequired

        开始时间:即其第一个周期的开始。处于 pending 时为 null。

        format: date-time
      • dayinteger | nullrequired

        其周期在每月的哪一天开始(在有这一天的月份中);处于 pending 时为 null。

      • chargedbooleanrequired

        其周期是否从账户的银行卡扣费。false:由运营方赠送,周期结束时不扣任何费用。

      • fee_usdnumberrequired

        每个周期的扣费金额:plan 的月费;赠送的订阅为 0。

      • periodobject | nullrequired

        账户所在的周期;处于 pending 时为 null。处于 due 或 unpaid 时:尚未付费的那个周期。

        • fromstringrequired
          format: date-time
        • tostringrequired
          format: date-time
        • paidbooleanrequired

          已付费,或为赠送。

        • charge_idstring | nullrequired

          为它付费的扣款,或正在为它收取的扣款;赠送的周期,以及收款方手上还没有它的扣款时,为 null。

      • next_charge_atstring | nullrequired

        下一个周期的扣款时间:即最后一个已付费周期的结束时间。届时不扣费时为 null:订阅即将终止,或为赠送;处于 pending、due 或 unpaid 时也为 null,此时起作用的扣款是 charge 中的那一笔。

        format: date-time
      • ends_atstring | nullrequired

        ending:订阅终止的时间,即已付费周期的结束时间。due、unpaid:如果在此之前扣款仍未收取,订阅就在此时终止:即宽限期结束的时间,为已付费周期结束后七天(按控制平面的默认启动设置);此后账户改用免费版。其他情况为 null。

        format: date-time
      • chargeobject | nullrequired

        处于 pending、due 或 unpaid 时:为订阅发起的最后一笔扣款,即正在收取的或已失败的那一笔。其他情况为 null。

        • idstringrequired
        • planpaid或nullrequired

          这笔扣款所支付周期的套餐。

        • stateto_collect或collected或failedrequired
        • failureobject | nullrequired

          失败的情况,与扣款的 failure 对账户的说法一致:card_declined 或 payment_failed,从不说明原因;不是 failed 时为 null。

          • codestringrequired
          • messagestringrequired
        • retry_atstring | nullrequired

          对失败的扣款:何时再次扣款;不再扣款时为 null。

          format: date-time
    • null
  • debtrequired

    账户的欠款、起始时间,以及其存储内容将被删除的时间;没有欠款的账户为 null。GET /v1/account 中有相同的信息,以及账户的 email。

    以下之一:

    • Debt
      • objectstringrequired
      • idstringrequired
      • stateowing或deleting或paid或deletedrequired

        owing:账户欠费,其中任何部分都不能使用。deleting:期限已过,账户存储的内容正在删除。账户只会看到这两种状态的欠款。paid:已付清,或欠款低于欠费的起点。deleted:账户存储的内容已被删除,其欠款已核销。

      • in_debt_sincestringrequired

        发现账户欠款达到欠费起点的时间。

        format: date-time
      • owed_usdnumberrequired

        当前欠款:余额低于零的金额。已结束的欠款为 0。

      • data_deleted_atstring | nullrequired

        如果账户仍欠费,其存储内容的删除时间:发件方已接收的通知中所写的最晚日期。在欠款的通知尚未被接收时(此时不会删除任何东西),以及运营方冻结账户期间,为 null。以删除告终的欠款,为删除的时间。

        format: date-time
      • notice_daysintegerrequired

        欠费账户从第一条通知起有多少天的期限 (--debt-days)。

      • on_holdbooleanrequired

        运营方冻结了该账户:账户的任何东西都不会被删除,其天数也停止计算。

      • charge_atstring | nullrequired

        下次从账户银行卡扣收欠款的时间:欠款开始后或上次扣款后的第一个账单日的 UTC 00:00(账单日是账户订阅开始那天在每月中的日期;没有订阅时为第一次充值收款的那天;当月没有这一天时取当月最后一天)。已到的时间会在下一次检查时扣款。null:不会扣款,因为账户没有登记银行卡 (Balance.card) 或没有账单日、运营方冻结了账户、删除已经开始,或者欠款低于欠费的起点。扣收的是当时的欠款,向上取整到分,且不超过账户支出上限在本自然月剩余的额度 (Balance.reload_left_usd):因此剩下的欠款在下一个账单日扣收;如果上限剩余的额度低于欠费的起点,当月不扣款,下个月的第一次检查时扣收(在此之前这个时间保持为已到的时间)。

        format: date-time
      • last_chargerequired

        最近一次从账户银行卡扣收欠款的记录及其结果;第一次扣款之前为 null。

        以下之一:

        • DebtCharge
        • null
      • notices数组,元素为objectrequired

        这笔欠款的通知,最早的在前:第一条通知,以及在它被接收后将要发出的提醒;以及每次扣款失败的通知 (charge_failed)。

        • idstringrequired
        • objectstringrequired
        • kindin_debt或reminder_7或reminder_14或reminder_21或reminder_27或reminder_29另有 8 个required

          in_debt:欠款的第一条通知。reminder_<day>:在其后的第几天发送(天数由控制平面决定,--debt-reminder-days)。charge_failed:在账单日从账户银行卡扣收欠款失败;每次这样的扣款各一条。data_deleted:账户存储的内容已被删除,欠款已核销。storage_80、storage_100:在产生任何欠款之前,账户套餐包含的存储已用掉五分之四或已用完,且账户没有余额。subscription_charge_failed:到期的订阅周期月费无法扣收;每次这样的扣款各一条,包括第一次以及宽限期内的每次重试。reload_failed:一次自动充值无法扣款;每次各一条。reload_no_card:自动充值已开启且余额低于设定值,但账户没有登记可扣款的银行卡;这种情况持续期间每个自然月一条。included_80、included_100:套餐包含的 CPU 时间、内存、请求或流量已用掉五分之四或已全部用完,且账户没有余额,自动充值也不会充值;每个计量项、每个阈值、每个时段各一条。

        • stateto_send或accepted或failed或cancelledrequired

          to_send:尚未交给发件方,或已交出但尚无回复。accepted:发件方已接收并负责投递。failed:发件方表示无法投递;如果是欠款通知,过一段时间会重新生成一条。cancelled:不再发送(欠款已付清;或者后来的提醒已经说明了它要说的内容)。账户看不到已取消的通知。

        • due_atstringrequired

          从何时起交给发件方。

          format: date-time
        • sent_atstring | nullrequired

          交给发件方的时间(针对发件方已接收的通知);其他情况为 null。对欠款的第一条通知而言:即欠款天数的起算时刻。

          format: date-time
        • subjectstring | nullrequired

          邮件主题(交出之后才有)。

    • null
  • trustobjectrequired

    账户的信任等级允许其充值达到的金额(trust_limit_exceeded、trust_limit.reached):当前生效的两个金额,各自取等级的数值,或运营方为该账户设定的替代数值。等级不会影响账户已持有的任何东西。

    • levelintegerrequired

      账户的信任等级:新账户为 0,随付款记录升为 1 和 2(--trust-level-1、--trust-level-2:首笔收款成功后经过一定天数,且此后没有争议和欺诈警告),3 由运营方授予;运营方可以设为任何等级。

      maximum: 3 · minimum: 0
    • set_bystringrequired

      等级由什么设定:账户的付款记录,或运营方(运营方设定的等级会一直保持,直到运营方另行设定)。

    • reload_most_usdnumber | nullrequired

      当前生效的自动充值每个自然月最多可从账户银行卡扣收的金额:即可设的最高 spend_limit_usd,以及最大的 reload_amount_usd;null:没有限制。

    • month_most_usdnumber | nullrequired

      当前生效的充值和自动充值每个自然月 (UTC) 合计的最高金额,按发起时计:包括已收款的、在收款方手上的、在付款页面上的,不包括失败的、已退回的,也不包括在账单日为欠款扣收的。null:没有限制。

    • reload_most_set_bystringrequired

      reload_most_usd 来自哪里:等级的数值,或运营方为该账户设定的数值,后者在任何等级下都有效,直到运营方收回。

    • month_most_set_bystringrequired

      month_most_usd 来自哪里,与 reload_most_set_by 对另一项的说明相同。

    • month_used_usdnumberrequired

      本月到目前为止的合计,按同样的方式计算。

    • rises_atstring | nullrequired

      如果在此之前没有付款被提出争议或被警告为欺诈,等级下次自动提升的时间:当天的第一次检查时提升。null:不会自动提升(由运营方设定、账户从未付过款、有付款被提出争议或警告,或者没有更高的可自动获得的等级)。

      format: date-time
  • statementstringrequired

    当月对账单的位置。

400

invalid_json、unknown_field、unknown_parameter;invalid_field:spend_limit_usd 不是大于等于零的美元数,也不是 null;plan 不是两种套餐之一(free、paid);start_now_required:账户作为欧洲经济区或英国的消费者购买,却没有要求立即提供所购服务 (start_now),因此没有创建任何东西。
JSON
  • errorobjectrequired
    • typestringrequired
    • codestringrequired
    • messagestringrequired
    • paramstring | nullrequired
    • retryablebooleanrequired
    • request_idstringrequired
    • docs_urlstring | nullrequired
  • move_idoptionalstring

    随 already_moving 返回:该沙箱正在进行的迁移。

  • upgrade_idoptionalstring

    随 upgrade_in_progress(该键尚未结束的升级)、upgrade_started(已开始的升级)和 rollback_gone(回退被拒绝的那次升级)返回:即那次升级。

    pattern: ^upg-[0-9a-hjkmnp-tv-z]{16}$
  • moveoptionalobject

    随 move_over、move_going_back 和 move_taken_over 返回 (POST /internal/moves/{id}/cancel):迁移的当前状态。

    • objectstringrequired
    • idstringrequired
      pattern: ^mov-[0-9a-hjkmnp-tv-z]{16}$
    • sandbox_idstringrequired
    • project_idstringrequired
    • fromobjectrequired
      • idstringrequired
      • namestring | nullrequired

        节点名称;之后已从记录中消失的节点为 null。

    • toobjectrequired
      • idstringrequired
      • namestring | nullrequired

        节点名称;之后已从记录中消失的节点为 null。

    • epochintegerrequired

      迁移开始时表中记录的沙箱纪元:旧节点在这个纪元释放它,新节点在纪元加一时接管它,旧节点在纪元加二时收回它,从对象存储接管则在纪元加三时。

      minimum: 1
    • stepstringrequired

      迁移的进展:releasing(正在请旧节点释放它;表中记录它在旧节点上)、taking_over(正在请新节点接管它;表中记录它在新节点上)、reclaiming(新节点拒绝了它,正在请旧节点收回)、restoring(旧节点没有保留它的任何东西,正从对象存储接管)、done(已在新节点上)、failed(留在原处,或回到了原处,或停在某个时间无法消除的故障或运营方的取消发生时所在的位置:error 说明原因)。

    • whystringrequired

      发起迁移的原因:运营方的迁移、撤离或恢复。

    • wakebooleanrequired

      新节点是否唤醒它:按调用的指定,或按迁移开始时它的状态(是否在运行)。

    • from_storebooleanrequired

      新节点只从对象存储接管它。

    • releaseobject | nullrequired

      旧节点释放时的响应(sandboxd/openapi/openapi.json,releaseSandbox),不含释放所用的密钥;响应之前为 null。

    • takeoverobject | nullrequired

      结束迁移的那次接管的响应(节点文档中的 takeoverSandbox):磁盘和内存来自哪里 (source)、各用了多长时间 (ms)、memory;之前为 null。

    • errorrequired

      失败的迁移:失败原因(如果被带回旧节点,则为新节点的拒绝原因);已完成的迁移:null;进行中的迁移:如果当前步骤要再次请求,则为该步骤上次得到的答复。

      以下之一:

      • object
      • null
    • attemptsintegerrequired

      当前步骤已请求了多少次,仍没有得到确定的答复。

      minimum: 0
    • next_attempt_atstring | nullrequired

      该步骤何时再次请求;不在等待时为 null。

      format: date-time
    • batchstring | nullrequired

      它所属的撤离 (evc-…) 或恢复 (rcv-…)。

    • created_atstringrequired
      format: date-time
    • updated_atstringrequired
      format: date-time
    • ended_atstring | nullrequired
      format: date-time
  • lease_untiloptionalstring

    随 lease_held 返回:节点最后获得的租约最晚可以持有到何时,再加上让节点察觉租约到期所需的时间(在此之前 recoverNode 会被拒绝)。

    format: date-time
  • activeoptionalobject | null

    随 standby 返回:备用副本最后一次读取租约时的活动副本;没有副本持有租约时为 null。

    • namestringrequired
    • urlstringrequired
    • termintegerrequired
      minimum: 1
  • allowed_hostsoptionalarray | null

    随 secret_host_not_allowed 返回:机密可以发往的主机,即机密上设置的主机;没有设置时为 null(节点的 SecretHosts)。

  • problemsoptional数组,元素为object

    随 invalid_definition 返回:定义中的每个问题,各附其位置和内容。

    • atstringrequired

      在定义中的位置,用点分隔的路径 (services.web.port);针对整个定义时为空。

    • messagestringrequired
  • reportoptionalobject

    随 compose_refused 返回:导入的报告,说明拒绝了什么、为什么以及要改什么。

    • objectcompose_importrequired
    • namestring | nullrequired

      模型的 name:即每个服务的标签 compose.project。null:模型没有名称。

    • dry_runbooleanrequired
    • strictbooleanrequired
    • profiles数组,元素为stringrequired
    • treatmentsobjectrequired

      报告中每种处理方式各有多少项。

      • doneintegerrequired
        minimum: 0
      • adaptedintegerrequired
        minimum: 0
      • ignoredintegerrequired
        minimum: 0
      • refusedintegerrequired
        minimum: 0
    • items数组,元素为objectrequired

      模型的顶层元素:name,以及每个卷、网络、config、secret 和扩展。

      • atstringrequired

        在模型中的位置:对服务而言,是其属性(ports[0]、depends_on.db、environment.KEY),针对整个服务时为空;对顶层而言,是元素 (volumes.db-data)。

      • treatmentdone或adapted或ignored或refusedrequired

        done:在平台上含义相同;adapted:平台用另一种方式实现同样的效果;ignored:只对本地运行有意义(带 strict 时会被拒绝);refused:平台做不到,而忽略它会让程序悄悄出错。

      • whystringrequired
      • changestring | nullrequired

        被拒绝的项:要改什么。其他情况为 null。

    • services数组,元素为objectrequired

      导入所采纳的服务,按模型中的顺序。

      • namestringrequired

        服务的名称,也是其应用的名称。

      • app_idstring | nullrequired

        其应用。null:试运行,且项目中没有该服务。

        pattern: ^app-
      • statuscreated或changed或unchangedrequired

        导入对其应用做了(试运行时为将会做)什么:创建、写入变化的部分,或什么都不做。

      • kindservice或jobrequired

        job:模型中有服务等待它完成,它会在每次需要它的部署中运行到结束。

      • statefulbooleanrequired

        它挂载自己的存储卷:只有一个实例,由该实例持有存储卷。

      • versionbooleanrequired

        导入的部署是否为它创建版本:即解析引用后其版本的构成与当前版本不同。

      • items数组,元素为objectrequired
        • atstringrequired

          在模型中的位置:对服务而言,是其属性(ports[0]、depends_on.db、environment.KEY),针对整个服务时为空;对顶层而言,是元素 (volumes.db-data)。

        • treatmentdone或adapted或ignored或refusedrequired

          done:在平台上含义相同;adapted:平台用另一种方式实现同样的效果;ignored:只对本地运行有意义(带 strict 时会被拒绝);refused:平台做不到,而忽略它会让程序悄悄出错。

        • whystringrequired
        • changestring | nullrequired

          被拒绝的项:要改什么。其他情况为 null。

      • appobjectrequired

        导入写入的服务应用字段:其版本的构成,以及立即生效的设置。

        • imagestring | nullrequired

          应用下一个版本的构成,连同其后的七个字段:即其最新版本的构成,加上此后的修改。null:应用没有镜像,也没有版本。

        • image_pull_secretstring | nullrequired

          保存镜像仓库凭据的机密的名称。任何响应都不包含其值。null:没有。

        • start_commandrequired

          以下之一:

          • StartCommand
          • null
        • start_argsrequired

          放在镜像 ENTRYPOINT 之后、取代其 CMD 的内容。null:使用镜像的 CMD,或者整个 start_command。

          以下之一:

          • array<string>
          • null
        • portinteger | nullrequired
        • readyobjectrequired

          判断实例已启动的方式,版本的模板会在实例启动后保存:三者必须恰好给出一个。前两种从实例外部检查,所以服务必须监听所有地址 (0.0.0.0)。

          • httpoptionalstring

            一个以 / 开头的路径:在应用端口上对它发起 GET,返回 200 到 399 之间的状态码。

          • tcpoptionaltrue

            应用端口接受连接。

          • commandoptional

            在实例中执行成功的一条命令。由实例的 shell 运行:参数列表会被写成一行交给它。

            以下之一:

            • string
            • array<string>
        • env映射,值为stringrequired
        • secrets映射,值为stringrequired

          机密的名称。任何响应都不包含值。

        • sizeobjectrequired

          单个实例最多能使用的资源。按实际用量计费。

          • vcpusintegerrequired
            minimum: 1
          • memory_bytesintegerrequired

            偶数个 MiB(即节点为虚拟机加载内存所用的 2 MiB 页的整数倍),以字节表示。其他任何大小都返回 400 invalid_field(param 为 size.memory_bytes):没有节点会创建这种大小的实例,正如没有节点会创建这种大小的沙箱(节点的 SandboxLimitsCreate.memory_bytes)。

            minimum: 134217728
        • volumes数组,元素为objectrequired
          • volumestringrequired
          • pathstringrequired
          • read_onlybooleanrequired
          • nocopyoptionalunknown

            只有给出为 true 时才会出现。

        • kindstringrequired
        • files数组,元素为objectrequired
          • pathstringrequired
          • modeintegerrequired
          • uidintegerrequired
          • gidintegerrequired
          • contentoptionalstring
          • secretoptionalstring
        • userstring | nullrequired
        • working_dirstring | nullrequired
        • stoprequired

          以下之一:

          • ServiceStop
            • signalstring | nullrequired
            • grace_msinteger | nullrequired
          • null
        • hostnamestring | nullrequired
        • regions数组,元素为stringrequired

          按 na、eu、ap 的顺序。

        • scaleobjectrequired
          • min_instancesintegerrequired

            无论有没有请求,应用在一个区域内保持运行的实例数:即下限。该区域服务该应用的节点按分摊 max_instances 的方式分摊它(两个节点、下限为 2:各一个;下限为 1:一个,在最先尝试的节点上;下限为 5:三个和两个),不在线的节点由其他节点补足。节点在收到通知时就创建自己那部分,而不是等到第一个请求,也不会因为空闲而停止或删除这些实例;它们按运行中的实例计量。0(未设置时的值):没有下限。调低后,超出部分的实例从那一刻起视为空闲,并像空闲实例一样被停止和删除。最多为 max_instances(如果给出),且不超过账户套餐允许应用在一个区域请求的数量(caps.app_instances.limit:5、50 和 500):超出会被拒绝,返回 403 plan_cap_reached。

            minimum: 0
          • max_instancesinteger | nullrequired

            应用在一个区域内最多有多少个实例:由该区域服务该应用的节点分摊。最多为账户套餐允许应用请求的数量(caps.app_instances.limit:免费版 5,付费版 500):超出会被拒绝,返回 403 plan_cap_reached;在允许的套餐上请求的数值会保留,但受当前套餐数值的限制。null:未指定数量的应用使用套餐的数值(caps.app_instances.default:免费版 2,付费版 50),如果 min_instances 更大则用它。告诉节点的数值,不超过账户除其他运行中资源外还能容纳的运行量,也不少于应用当前运行的实例数。

            minimum: 1
          • concurrencyinteger | nullrequired

            单个实例同时处理的上限:边缘节点发给它的请求,加上它在项目网络上打开的连接(经由其服务的地址,节点会按连接把它们分给各个实例;或者直接连到它自己的地址)。达到上限的实例即为已满,更多的请求会创建新实例。null(未设置时的值):没有上限。此时节点会在现有实例的 CPU 或内存接近其规格时增加实例,应用不必猜一个数字;一次只处理一个请求的服务应设为 1。

            maximum: 1000 · minimum: 1
          • sleep_after_msinteger | nullrequired

            实例在没有请求时最多等待多久就停止,单位为毫秒。在这个上限以内,节点根据应用自己的流量选择等待时间:在应用最近一段时间里两次请求之间的间隔上,比较多运行一秒空闲与停止再恢复所花的 CPU 时间,选出成本最低的等待时间;这样,请求间隔比停止成本还短的应用会一直运行,请求间隔很长的应用则在最后一个响应结束后立即停止(0:总是立即停止)。null(未设置时的值):平台的上限,三秒。设置过 100(2026年10月28日之前的默认值)的应用,从那天起视为 null。持续停止的实例会在 delete_after_ms 后被其节点删除,下一个需要实例的请求会得到一个新实例;min_instances 保持运行的实例既不会停止也不会删除。

            maximum: 600000 · minimum: 0
          • sleep_notice_msinteger | nullrequired

            在实例因空闲而停止之前多久,向连接到其客户机 /run/sbx/awake 的程序发送一行 sleep N,单位为毫秒:程序可以借此写出手头的数据、关闭连接,或者发起保持,从而推迟停止。无论它们是否响应,停止都会在这段时间之后到来;没有程序连接时,不会推迟。键控实例也会收到通知。0 或 null:不通知(默认)。

            maximum: 60000 · minimum: 0
          • sleep_hold_max_msintegerrequired

            实例中的程序发起的保持,在空闲时间到期后最多还能让实例运行多久,单位为毫秒:程序连接 /run/sbx/awake,如果某个请求在响应之后还有后续工作,就在响应它之前发送 +,工作完成后发送 -(或关闭连接,或退出);最后一个保持解除 sleep_after_ms 之后,实例停止。超过这个时间,无论有什么保持,实例都会停止;如果 sleep_notice_ms 要求通知,会先向已连接的程序发送 sleep N cap。保持期间实例在运行,并按运行计量。0:不理会保持。null:30000(默认)。

            maximum: 900000 · minimum: 0
          • delete_after_msinteger | nullrequired

            实例空闲多久后被删除,与停止使用同一个起算点:下一个需要实例的请求会得到一个新实例,即版本模板的克隆,不含被删除的实例在内存和磁盘中积累的东西(需要长久保存的数据请放在存储卷或数据库中)。一秒到一小时,一小时是平台的时间,也是上限:超出会被拒绝 (400 invalid_field),需要保持预热的实例应计入 min_instances。null(未设置时的值):节点的一小时 (--app-delete-after-seconds)。修改对应用现有的实例和之后创建的实例同样有效:每个节点至少每秒按应用当前的时间检查一次每个实例。不适用于应用的键控实例,键控实例用 keys.delete_after_idle_ms。

            maximum: 3600000 · minimum: 1000
          • suspend_after_msoptionalinteger | null

            已停止的实例在保存内存并真正休眠之前保持暂停多久,单位为毫秒:暂停时,下一个请求在一两毫秒内得到响应,内存照常计量;休眠时,唤醒要多几毫秒,只计量它保存的数据。节点会把它限制在节点让任何实例保持暂停的最长时间内(十分钟);宿主机内存不足、其他虚拟机需要占用槽位,或者有人请求休眠,都会让它更早休眠。null(默认):节点的最长时间。数据库的 suspend_after_seconds 就是其应用的这一设置。

            maximum: 86400000 · minimum: 1000
          • wake_daily_atoptionalstring | null

            每天的某个 UTC 时刻 (HH:MM),在此时唤醒应用中处于休眠状态的键控实例和有状态服务的实例,让它们完成等待唤醒才能做的工作(比如数据库维护);节点根据应用请求创建和删除的实例只会被请求唤醒。唤醒本身不算活动:唤醒后运行的东西才算,运行完毕后实例会再次休眠。此外,无论这里怎么设置,有状态服务的实例都会为其 PostgreSQL 服务器 pg_cron 任务的下一次运行而被唤醒。null(默认):不唤醒。数据库的 wake_daily_at 就是其应用的这一设置。

            pattern: ^([01][0-9]|2[0-3]):[0-5][0-9]$
        • keysrequired

          以下之一:

          • object
          • null
        • egressobject | nullrequired

          与沙箱相同的出站规则(default、allow、deny、http、inject),没有时为 null;按调用给出的原样保存(PATCH 会像节点那样按键逐个合并)。规则立即生效,不产生新版本:服务该应用的节点会把它们应用到其组内的每个实例上,包括现有的实例(运行中的实例对其已有连接也生效)和之后创建的实例;键控实例不受这些规则约束。控制平面只检查它们是不是由这些键组成、不超过 256 KiB 的对象:规则的内容由节点在应用时检查,节点读不懂其规则的实例,所有出站流量都会被拒绝(节点日志会说明原因)。

          • defaultoptionalallow或deny或null
          • allowoptionalarray | null
          • denyoptionalarray | null
          • httpoptionalarray | null
          • injectoptionalarray | null
          • deny_portsoptionalarray | null

            任何连接都到达不了的端口,TCP 或 UDP,无论连往哪里,也无论规则的其他部分怎么说。浏览器会话的规则总是包含 25、465、587 以及矿池监听的端口(3333、4444、5555、7777、14444、45700):无论其规则如何修改,控制平面都会把它们加上。

        • metadata映射,值为stringrequired
        • logsobjectrequired

          应用日志包含哪些内容,每一项为给出的值或默认值 (AppLogSettings)。

          • outputbooleanrequired
          • keepbooleanrequired
          • requestsobjectrequired
            • sample_ratenumberrequired
              maximum: 1 · minimum: 0
            • keep_errorsbooleanrequired
        • publicbooleanrequired

          是否在其默认域名 (url) 上响应。

        • depends_on数组,元素为objectrequired
          • servicestringrequired
          • conditionstringrequired
        • networkobjectrequired
          • aliases数组,元素为stringrequired
          • endpoint_modestringrequired
        • drivesoptional数组,元素为object

          其实例挂载的云盘 (AppCreate.drives):没有指定时为空列表 []。

          • drivestringrequired
          • pathstringrequired
          • modestringrequired
        • key_drivesoptional数组,元素为object

          每个键的实例自有的云盘 (AppCreate.key_drives):没有给出时为空列表 []。

          • namestringrequired
          • pathstringrequired
          • size_bytesinteger | nullrequired
            format: int64
          • nocopyoptionalunknown

            只有给出为 true 时才会出现。

        • runtimeoptional

          运行时设置 (AppCreate.runtime)。null:没有。

          以下之一:

          • Runtime
            • ulimits映射,值为RuntimeLimitGivenrequired
            • sysctls映射,值为stringrequired
            • tmpfs数组,元素为objectrequired
              • pathstringrequired
              • size_bytesinteger | nullrequired
              • modeintegerrequired
            • dnsobjectrequired
              • servers数组,元素为stringrequired
              • search数组,元素为stringrequired
              • options数组,元素为stringrequired
            • shm_size_bytesinteger | nullrequired
          • null
        • tracesoptionalobject

          应用请求的链路追踪包含哪些内容,每一项为给出的值或默认值 (AppTraceSettings):sample_rate 为 0 时不产生任何 span。

          • sample_ratenumberrequired
            maximum: 1 · minimum: 0
          • trust_incomingbooleanrequired
    • volumes数组,元素为objectrequired

      服务挂载的项目存储卷。

      • modelstring | nullrequired

        它在模型中的名称。null:为有状态服务挂载但未命名卷的路径创建的。

      • namestringrequired

        它在项目中的名称。

      • idstring | nullrequired

        null:尚未创建 (to_make)。

        pattern: ^vol-
      • sharedbooleanrequired

        有多个服务挂载它,或者某个服务有多个实例:每个服务的每个实例同时挂载它。

      • statusto_make或made或there或externalrequired

        to_make:导入会创建它(试运行时对将要创建的存储卷这样说明);made:本次导入创建了它;there:之前的导入创建了它,或者已有同名的存储卷;external:模型把它标为 external,而项目中已有它。

      • used_by数组,元素为stringrequired
    • secrets数组,元素为objectrequired

      模型中授予服务的 secrets。

      • modelstringrequired

        它在模型中的名称。

      • namestringrequired

        保存它的项目机密:即模型中的名称,其中机密名称不允许的每个字符都写成下划线。

      • therebooleanrequired

        项目中是否已有它。导入(非试运行)时如果它还不存在,会被拒绝,返回 404 secret_not_found。

      • used_by数组,元素为stringrequired
    • left_out数组,元素为objectrequired

      属于未启用 profile 的服务,导入不会处理它们。

      • namestringrequired
      • profiles数组,元素为stringrequired
    • absent数组,元素为stringrequired

      项目中有而模型中没有的服务:保持原样。

    • deploystring | nullrequired

      导入触发的部署 (GET /v1/deploys/{id})。null:试运行,或者没有服务需要新版本。

      pattern: ^dpl-
  • accountsoptional数组,元素为object

    随 sole_owner 返回:该用户是唯一所有者的那些账户。

    • idstringrequired
      pattern: ^acct-[0-9a-hjkmnp-tv-z]{16}$
    • namestringrequired

401

missing_api_key, invalid_api_key, expired_api_key, invalid_token.
JSON
  • errorobjectrequired
    • typestringrequired
    • codestringrequired
    • messagestringrequired
    • paramstring | nullrequired
    • retryablebooleanrequired
    • request_idstringrequired
    • docs_urlstring | nullrequired
  • move_idoptionalstring

    随 already_moving 返回:该沙箱正在进行的迁移。

  • upgrade_idoptionalstring

    随 upgrade_in_progress(该键尚未结束的升级)、upgrade_started(已开始的升级)和 rollback_gone(回退被拒绝的那次升级)返回:即那次升级。

    pattern: ^upg-[0-9a-hjkmnp-tv-z]{16}$
  • moveoptionalobject

    随 move_over、move_going_back 和 move_taken_over 返回 (POST /internal/moves/{id}/cancel):迁移的当前状态。

    • objectstringrequired
    • idstringrequired
      pattern: ^mov-[0-9a-hjkmnp-tv-z]{16}$
    • sandbox_idstringrequired
    • project_idstringrequired
    • fromobjectrequired
      • idstringrequired
      • namestring | nullrequired

        节点名称;之后已从记录中消失的节点为 null。

    • toobjectrequired
      • idstringrequired
      • namestring | nullrequired

        节点名称;之后已从记录中消失的节点为 null。

    • epochintegerrequired

      迁移开始时表中记录的沙箱纪元:旧节点在这个纪元释放它,新节点在纪元加一时接管它,旧节点在纪元加二时收回它,从对象存储接管则在纪元加三时。

      minimum: 1
    • stepstringrequired

      迁移的进展:releasing(正在请旧节点释放它;表中记录它在旧节点上)、taking_over(正在请新节点接管它;表中记录它在新节点上)、reclaiming(新节点拒绝了它,正在请旧节点收回)、restoring(旧节点没有保留它的任何东西,正从对象存储接管)、done(已在新节点上)、failed(留在原处,或回到了原处,或停在某个时间无法消除的故障或运营方的取消发生时所在的位置:error 说明原因)。

    • whystringrequired

      发起迁移的原因:运营方的迁移、撤离或恢复。

    • wakebooleanrequired

      新节点是否唤醒它:按调用的指定,或按迁移开始时它的状态(是否在运行)。

    • from_storebooleanrequired

      新节点只从对象存储接管它。

    • releaseobject | nullrequired

      旧节点释放时的响应(sandboxd/openapi/openapi.json,releaseSandbox),不含释放所用的密钥;响应之前为 null。

    • takeoverobject | nullrequired

      结束迁移的那次接管的响应(节点文档中的 takeoverSandbox):磁盘和内存来自哪里 (source)、各用了多长时间 (ms)、memory;之前为 null。

    • errorrequired

      失败的迁移:失败原因(如果被带回旧节点,则为新节点的拒绝原因);已完成的迁移:null;进行中的迁移:如果当前步骤要再次请求,则为该步骤上次得到的答复。

      以下之一:

      • object
      • null
    • attemptsintegerrequired

      当前步骤已请求了多少次,仍没有得到确定的答复。

      minimum: 0
    • next_attempt_atstring | nullrequired

      该步骤何时再次请求;不在等待时为 null。

      format: date-time
    • batchstring | nullrequired

      它所属的撤离 (evc-…) 或恢复 (rcv-…)。

    • created_atstringrequired
      format: date-time
    • updated_atstringrequired
      format: date-time
    • ended_atstring | nullrequired
      format: date-time
  • lease_untiloptionalstring

    随 lease_held 返回:节点最后获得的租约最晚可以持有到何时,再加上让节点察觉租约到期所需的时间(在此之前 recoverNode 会被拒绝)。

    format: date-time
  • activeoptionalobject | null

    随 standby 返回:备用副本最后一次读取租约时的活动副本;没有副本持有租约时为 null。

    • namestringrequired
    • urlstringrequired
    • termintegerrequired
      minimum: 1
  • allowed_hostsoptionalarray | null

    随 secret_host_not_allowed 返回:机密可以发往的主机,即机密上设置的主机;没有设置时为 null(节点的 SecretHosts)。

  • problemsoptional数组,元素为object

    随 invalid_definition 返回:定义中的每个问题,各附其位置和内容。

    • atstringrequired

      在定义中的位置,用点分隔的路径 (services.web.port);针对整个定义时为空。

    • messagestringrequired
  • reportoptionalobject

    随 compose_refused 返回:导入的报告,说明拒绝了什么、为什么以及要改什么。

    • objectcompose_importrequired
    • namestring | nullrequired

      模型的 name:即每个服务的标签 compose.project。null:模型没有名称。

    • dry_runbooleanrequired
    • strictbooleanrequired
    • profiles数组,元素为stringrequired
    • treatmentsobjectrequired

      报告中每种处理方式各有多少项。

      • doneintegerrequired
        minimum: 0
      • adaptedintegerrequired
        minimum: 0
      • ignoredintegerrequired
        minimum: 0
      • refusedintegerrequired
        minimum: 0
    • items数组,元素为objectrequired

      模型的顶层元素:name,以及每个卷、网络、config、secret 和扩展。

      • atstringrequired

        在模型中的位置:对服务而言,是其属性(ports[0]、depends_on.db、environment.KEY),针对整个服务时为空;对顶层而言,是元素 (volumes.db-data)。

      • treatmentdone或adapted或ignored或refusedrequired

        done:在平台上含义相同;adapted:平台用另一种方式实现同样的效果;ignored:只对本地运行有意义(带 strict 时会被拒绝);refused:平台做不到,而忽略它会让程序悄悄出错。

      • whystringrequired
      • changestring | nullrequired

        被拒绝的项:要改什么。其他情况为 null。

    • services数组,元素为objectrequired

      导入所采纳的服务,按模型中的顺序。

      • namestringrequired

        服务的名称,也是其应用的名称。

      • app_idstring | nullrequired

        其应用。null:试运行,且项目中没有该服务。

        pattern: ^app-
      • statuscreated或changed或unchangedrequired

        导入对其应用做了(试运行时为将会做)什么:创建、写入变化的部分,或什么都不做。

      • kindservice或jobrequired

        job:模型中有服务等待它完成,它会在每次需要它的部署中运行到结束。

      • statefulbooleanrequired

        它挂载自己的存储卷:只有一个实例,由该实例持有存储卷。

      • versionbooleanrequired

        导入的部署是否为它创建版本:即解析引用后其版本的构成与当前版本不同。

      • items数组,元素为objectrequired
        • atstringrequired

          在模型中的位置:对服务而言,是其属性(ports[0]、depends_on.db、environment.KEY),针对整个服务时为空;对顶层而言,是元素 (volumes.db-data)。

        • treatmentdone或adapted或ignored或refusedrequired

          done:在平台上含义相同;adapted:平台用另一种方式实现同样的效果;ignored:只对本地运行有意义(带 strict 时会被拒绝);refused:平台做不到,而忽略它会让程序悄悄出错。

        • whystringrequired
        • changestring | nullrequired

          被拒绝的项:要改什么。其他情况为 null。

      • appobjectrequired

        导入写入的服务应用字段:其版本的构成,以及立即生效的设置。

        • imagestring | nullrequired

          应用下一个版本的构成,连同其后的七个字段:即其最新版本的构成,加上此后的修改。null:应用没有镜像,也没有版本。

        • image_pull_secretstring | nullrequired

          保存镜像仓库凭据的机密的名称。任何响应都不包含其值。null:没有。

        • start_commandrequired

          以下之一:

          • StartCommand
          • null
        • start_argsrequired

          放在镜像 ENTRYPOINT 之后、取代其 CMD 的内容。null:使用镜像的 CMD,或者整个 start_command。

          以下之一:

          • array<string>
          • null
        • portinteger | nullrequired
        • readyobjectrequired

          判断实例已启动的方式,版本的模板会在实例启动后保存:三者必须恰好给出一个。前两种从实例外部检查,所以服务必须监听所有地址 (0.0.0.0)。

          • httpoptionalstring

            一个以 / 开头的路径:在应用端口上对它发起 GET,返回 200 到 399 之间的状态码。

          • tcpoptionaltrue

            应用端口接受连接。

          • commandoptional

            在实例中执行成功的一条命令。由实例的 shell 运行:参数列表会被写成一行交给它。

            以下之一:

            • string
            • array<string>
        • env映射,值为stringrequired
        • secrets映射,值为stringrequired

          机密的名称。任何响应都不包含值。

        • sizeobjectrequired

          单个实例最多能使用的资源。按实际用量计费。

          • vcpusintegerrequired
            minimum: 1
          • memory_bytesintegerrequired

            偶数个 MiB(即节点为虚拟机加载内存所用的 2 MiB 页的整数倍),以字节表示。其他任何大小都返回 400 invalid_field(param 为 size.memory_bytes):没有节点会创建这种大小的实例,正如没有节点会创建这种大小的沙箱(节点的 SandboxLimitsCreate.memory_bytes)。

            minimum: 134217728
        • volumes数组,元素为objectrequired
          • volumestringrequired
          • pathstringrequired
          • read_onlybooleanrequired
          • nocopyoptionalunknown

            只有给出为 true 时才会出现。

        • kindstringrequired
        • files数组,元素为objectrequired
          • pathstringrequired
          • modeintegerrequired
          • uidintegerrequired
          • gidintegerrequired
          • contentoptionalstring
          • secretoptionalstring
        • userstring | nullrequired
        • working_dirstring | nullrequired
        • stoprequired

          以下之一:

          • ServiceStop
            • signalstring | nullrequired
            • grace_msinteger | nullrequired
          • null
        • hostnamestring | nullrequired
        • regions数组,元素为stringrequired

          按 na、eu、ap 的顺序。

        • scaleobjectrequired
          • min_instancesintegerrequired

            无论有没有请求,应用在一个区域内保持运行的实例数:即下限。该区域服务该应用的节点按分摊 max_instances 的方式分摊它(两个节点、下限为 2:各一个;下限为 1:一个,在最先尝试的节点上;下限为 5:三个和两个),不在线的节点由其他节点补足。节点在收到通知时就创建自己那部分,而不是等到第一个请求,也不会因为空闲而停止或删除这些实例;它们按运行中的实例计量。0(未设置时的值):没有下限。调低后,超出部分的实例从那一刻起视为空闲,并像空闲实例一样被停止和删除。最多为 max_instances(如果给出),且不超过账户套餐允许应用在一个区域请求的数量(caps.app_instances.limit:5、50 和 500):超出会被拒绝,返回 403 plan_cap_reached。

            minimum: 0
          • max_instancesinteger | nullrequired

            应用在一个区域内最多有多少个实例:由该区域服务该应用的节点分摊。最多为账户套餐允许应用请求的数量(caps.app_instances.limit:免费版 5,付费版 500):超出会被拒绝,返回 403 plan_cap_reached;在允许的套餐上请求的数值会保留,但受当前套餐数值的限制。null:未指定数量的应用使用套餐的数值(caps.app_instances.default:免费版 2,付费版 50),如果 min_instances 更大则用它。告诉节点的数值,不超过账户除其他运行中资源外还能容纳的运行量,也不少于应用当前运行的实例数。

            minimum: 1
          • concurrencyinteger | nullrequired

            单个实例同时处理的上限:边缘节点发给它的请求,加上它在项目网络上打开的连接(经由其服务的地址,节点会按连接把它们分给各个实例;或者直接连到它自己的地址)。达到上限的实例即为已满,更多的请求会创建新实例。null(未设置时的值):没有上限。此时节点会在现有实例的 CPU 或内存接近其规格时增加实例,应用不必猜一个数字;一次只处理一个请求的服务应设为 1。

            maximum: 1000 · minimum: 1
          • sleep_after_msinteger | nullrequired

            实例在没有请求时最多等待多久就停止,单位为毫秒。在这个上限以内,节点根据应用自己的流量选择等待时间:在应用最近一段时间里两次请求之间的间隔上,比较多运行一秒空闲与停止再恢复所花的 CPU 时间,选出成本最低的等待时间;这样,请求间隔比停止成本还短的应用会一直运行,请求间隔很长的应用则在最后一个响应结束后立即停止(0:总是立即停止)。null(未设置时的值):平台的上限,三秒。设置过 100(2026年10月28日之前的默认值)的应用,从那天起视为 null。持续停止的实例会在 delete_after_ms 后被其节点删除,下一个需要实例的请求会得到一个新实例;min_instances 保持运行的实例既不会停止也不会删除。

            maximum: 600000 · minimum: 0
          • sleep_notice_msinteger | nullrequired

            在实例因空闲而停止之前多久,向连接到其客户机 /run/sbx/awake 的程序发送一行 sleep N,单位为毫秒:程序可以借此写出手头的数据、关闭连接,或者发起保持,从而推迟停止。无论它们是否响应,停止都会在这段时间之后到来;没有程序连接时,不会推迟。键控实例也会收到通知。0 或 null:不通知(默认)。

            maximum: 60000 · minimum: 0
          • sleep_hold_max_msintegerrequired

            实例中的程序发起的保持,在空闲时间到期后最多还能让实例运行多久,单位为毫秒:程序连接 /run/sbx/awake,如果某个请求在响应之后还有后续工作,就在响应它之前发送 +,工作完成后发送 -(或关闭连接,或退出);最后一个保持解除 sleep_after_ms 之后,实例停止。超过这个时间,无论有什么保持,实例都会停止;如果 sleep_notice_ms 要求通知,会先向已连接的程序发送 sleep N cap。保持期间实例在运行,并按运行计量。0:不理会保持。null:30000(默认)。

            maximum: 900000 · minimum: 0
          • delete_after_msinteger | nullrequired

            实例空闲多久后被删除,与停止使用同一个起算点:下一个需要实例的请求会得到一个新实例,即版本模板的克隆,不含被删除的实例在内存和磁盘中积累的东西(需要长久保存的数据请放在存储卷或数据库中)。一秒到一小时,一小时是平台的时间,也是上限:超出会被拒绝 (400 invalid_field),需要保持预热的实例应计入 min_instances。null(未设置时的值):节点的一小时 (--app-delete-after-seconds)。修改对应用现有的实例和之后创建的实例同样有效:每个节点至少每秒按应用当前的时间检查一次每个实例。不适用于应用的键控实例,键控实例用 keys.delete_after_idle_ms。

            maximum: 3600000 · minimum: 1000
          • suspend_after_msoptionalinteger | null

            已停止的实例在保存内存并真正休眠之前保持暂停多久,单位为毫秒:暂停时,下一个请求在一两毫秒内得到响应,内存照常计量;休眠时,唤醒要多几毫秒,只计量它保存的数据。节点会把它限制在节点让任何实例保持暂停的最长时间内(十分钟);宿主机内存不足、其他虚拟机需要占用槽位,或者有人请求休眠,都会让它更早休眠。null(默认):节点的最长时间。数据库的 suspend_after_seconds 就是其应用的这一设置。

            maximum: 86400000 · minimum: 1000
          • wake_daily_atoptionalstring | null

            每天的某个 UTC 时刻 (HH:MM),在此时唤醒应用中处于休眠状态的键控实例和有状态服务的实例,让它们完成等待唤醒才能做的工作(比如数据库维护);节点根据应用请求创建和删除的实例只会被请求唤醒。唤醒本身不算活动:唤醒后运行的东西才算,运行完毕后实例会再次休眠。此外,无论这里怎么设置,有状态服务的实例都会为其 PostgreSQL 服务器 pg_cron 任务的下一次运行而被唤醒。null(默认):不唤醒。数据库的 wake_daily_at 就是其应用的这一设置。

            pattern: ^([01][0-9]|2[0-3]):[0-5][0-9]$
        • keysrequired

          以下之一:

          • object
          • null
        • egressobject | nullrequired

          与沙箱相同的出站规则(default、allow、deny、http、inject),没有时为 null;按调用给出的原样保存(PATCH 会像节点那样按键逐个合并)。规则立即生效,不产生新版本:服务该应用的节点会把它们应用到其组内的每个实例上,包括现有的实例(运行中的实例对其已有连接也生效)和之后创建的实例;键控实例不受这些规则约束。控制平面只检查它们是不是由这些键组成、不超过 256 KiB 的对象:规则的内容由节点在应用时检查,节点读不懂其规则的实例,所有出站流量都会被拒绝(节点日志会说明原因)。

          • defaultoptionalallow或deny或null
          • allowoptionalarray | null
          • denyoptionalarray | null
          • httpoptionalarray | null
          • injectoptionalarray | null
          • deny_portsoptionalarray | null

            任何连接都到达不了的端口,TCP 或 UDP,无论连往哪里,也无论规则的其他部分怎么说。浏览器会话的规则总是包含 25、465、587 以及矿池监听的端口(3333、4444、5555、7777、14444、45700):无论其规则如何修改,控制平面都会把它们加上。

        • metadata映射,值为stringrequired
        • logsobjectrequired

          应用日志包含哪些内容,每一项为给出的值或默认值 (AppLogSettings)。

          • outputbooleanrequired
          • keepbooleanrequired
          • requestsobjectrequired
            • sample_ratenumberrequired
              maximum: 1 · minimum: 0
            • keep_errorsbooleanrequired
        • publicbooleanrequired

          是否在其默认域名 (url) 上响应。

        • depends_on数组,元素为objectrequired
          • servicestringrequired
          • conditionstringrequired
        • networkobjectrequired
          • aliases数组,元素为stringrequired
          • endpoint_modestringrequired
        • drivesoptional数组,元素为object

          其实例挂载的云盘 (AppCreate.drives):没有指定时为空列表 []。

          • drivestringrequired
          • pathstringrequired
          • modestringrequired
        • key_drivesoptional数组,元素为object

          每个键的实例自有的云盘 (AppCreate.key_drives):没有给出时为空列表 []。

          • namestringrequired
          • pathstringrequired
          • size_bytesinteger | nullrequired
            format: int64
          • nocopyoptionalunknown

            只有给出为 true 时才会出现。

        • runtimeoptional

          运行时设置 (AppCreate.runtime)。null:没有。

          以下之一:

          • Runtime
            • ulimits映射,值为RuntimeLimitGivenrequired
            • sysctls映射,值为stringrequired
            • tmpfs数组,元素为objectrequired
              • pathstringrequired
              • size_bytesinteger | nullrequired
              • modeintegerrequired
            • dnsobjectrequired
              • servers数组,元素为stringrequired
              • search数组,元素为stringrequired
              • options数组,元素为stringrequired
            • shm_size_bytesinteger | nullrequired
          • null
        • tracesoptionalobject

          应用请求的链路追踪包含哪些内容,每一项为给出的值或默认值 (AppTraceSettings):sample_rate 为 0 时不产生任何 span。

          • sample_ratenumberrequired
            maximum: 1 · minimum: 0
          • trust_incomingbooleanrequired
    • volumes数组,元素为objectrequired

      服务挂载的项目存储卷。

      • modelstring | nullrequired

        它在模型中的名称。null:为有状态服务挂载但未命名卷的路径创建的。

      • namestringrequired

        它在项目中的名称。

      • idstring | nullrequired

        null:尚未创建 (to_make)。

        pattern: ^vol-
      • sharedbooleanrequired

        有多个服务挂载它,或者某个服务有多个实例:每个服务的每个实例同时挂载它。

      • statusto_make或made或there或externalrequired

        to_make:导入会创建它(试运行时对将要创建的存储卷这样说明);made:本次导入创建了它;there:之前的导入创建了它,或者已有同名的存储卷;external:模型把它标为 external,而项目中已有它。

      • used_by数组,元素为stringrequired
    • secrets数组,元素为objectrequired

      模型中授予服务的 secrets。

      • modelstringrequired

        它在模型中的名称。

      • namestringrequired

        保存它的项目机密:即模型中的名称,其中机密名称不允许的每个字符都写成下划线。

      • therebooleanrequired

        项目中是否已有它。导入(非试运行)时如果它还不存在,会被拒绝,返回 404 secret_not_found。

      • used_by数组,元素为stringrequired
    • left_out数组,元素为objectrequired

      属于未启用 profile 的服务,导入不会处理它们。

      • namestringrequired
      • profiles数组,元素为stringrequired
    • absent数组,元素为stringrequired

      项目中有而模型中没有的服务:保持原样。

    • deploystring | nullrequired

      导入触发的部署 (GET /v1/deploys/{id})。null:试运行,或者没有服务需要新版本。

      pattern: ^dpl-
  • accountsoptional数组,元素为object

    随 sole_owner 返回:该用户是唯一所有者的那些账户。

    • idstringrequired
      pattern: ^acct-[0-9a-hjkmnp-tv-z]{16}$
    • namestringrequired

403

key_scope:密钥没有调用所需的权限范围(错误信息会指明是哪一个);needs_api_key:使用的是运营方的密钥或 SSH 网关的密钥;account_held:账户因付款问题被冻结,除 GET /v1/account 外,用它的密钥发起的所有调用都会这样被拒绝,而且在检查权限范围之前就拒绝;trust_limit_exceeded:超出了账户信任等级允许的范围(见 GET /v1/billing 的 trust):支出上限(或不设上限)高于该等级下自动充值每月可扣收的金额(param 为 spend_limit_usd),自动充值金额高于该金额 (reload_amount_usd),或者充值后会让本自然月的充值和自动充值合计超过该等级允许的金额 (amount_usd)。错误信息会说明等级、它的两个金额、本月已用的部分,以及如何提高等级;tax_region_business_only:账户不是企业(没有已核验或正在核验的税号),且位于平台只面向企业销售的地方(按其账单地址确定,没有账单地址时,按调用来源地址所在的国家确定:见 GET /v1/account 的 tax);错误信息会指明该地方,并说明企业如何设置税号,设置后即可立即付款 (x-error-codes)。
JSON
  • errorobjectrequired
    • typestringrequired
    • codestringrequired
    • messagestringrequired
    • paramstring | nullrequired
    • retryablebooleanrequired
    • request_idstringrequired
    • docs_urlstring | nullrequired
  • move_idoptionalstring

    随 already_moving 返回:该沙箱正在进行的迁移。

  • upgrade_idoptionalstring

    随 upgrade_in_progress(该键尚未结束的升级)、upgrade_started(已开始的升级)和 rollback_gone(回退被拒绝的那次升级)返回:即那次升级。

    pattern: ^upg-[0-9a-hjkmnp-tv-z]{16}$
  • moveoptionalobject

    随 move_over、move_going_back 和 move_taken_over 返回 (POST /internal/moves/{id}/cancel):迁移的当前状态。

    • objectstringrequired
    • idstringrequired
      pattern: ^mov-[0-9a-hjkmnp-tv-z]{16}$
    • sandbox_idstringrequired
    • project_idstringrequired
    • fromobjectrequired
      • idstringrequired
      • namestring | nullrequired

        节点名称;之后已从记录中消失的节点为 null。

    • toobjectrequired
      • idstringrequired
      • namestring | nullrequired

        节点名称;之后已从记录中消失的节点为 null。

    • epochintegerrequired

      迁移开始时表中记录的沙箱纪元:旧节点在这个纪元释放它,新节点在纪元加一时接管它,旧节点在纪元加二时收回它,从对象存储接管则在纪元加三时。

      minimum: 1
    • stepstringrequired

      迁移的进展:releasing(正在请旧节点释放它;表中记录它在旧节点上)、taking_over(正在请新节点接管它;表中记录它在新节点上)、reclaiming(新节点拒绝了它,正在请旧节点收回)、restoring(旧节点没有保留它的任何东西,正从对象存储接管)、done(已在新节点上)、failed(留在原处,或回到了原处,或停在某个时间无法消除的故障或运营方的取消发生时所在的位置:error 说明原因)。

    • whystringrequired

      发起迁移的原因:运营方的迁移、撤离或恢复。

    • wakebooleanrequired

      新节点是否唤醒它:按调用的指定,或按迁移开始时它的状态(是否在运行)。

    • from_storebooleanrequired

      新节点只从对象存储接管它。

    • releaseobject | nullrequired

      旧节点释放时的响应(sandboxd/openapi/openapi.json,releaseSandbox),不含释放所用的密钥;响应之前为 null。

    • takeoverobject | nullrequired

      结束迁移的那次接管的响应(节点文档中的 takeoverSandbox):磁盘和内存来自哪里 (source)、各用了多长时间 (ms)、memory;之前为 null。

    • errorrequired

      失败的迁移:失败原因(如果被带回旧节点,则为新节点的拒绝原因);已完成的迁移:null;进行中的迁移:如果当前步骤要再次请求,则为该步骤上次得到的答复。

      以下之一:

      • object
      • null
    • attemptsintegerrequired

      当前步骤已请求了多少次,仍没有得到确定的答复。

      minimum: 0
    • next_attempt_atstring | nullrequired

      该步骤何时再次请求;不在等待时为 null。

      format: date-time
    • batchstring | nullrequired

      它所属的撤离 (evc-…) 或恢复 (rcv-…)。

    • created_atstringrequired
      format: date-time
    • updated_atstringrequired
      format: date-time
    • ended_atstring | nullrequired
      format: date-time
  • lease_untiloptionalstring

    随 lease_held 返回:节点最后获得的租约最晚可以持有到何时,再加上让节点察觉租约到期所需的时间(在此之前 recoverNode 会被拒绝)。

    format: date-time
  • activeoptionalobject | null

    随 standby 返回:备用副本最后一次读取租约时的活动副本;没有副本持有租约时为 null。

    • namestringrequired
    • urlstringrequired
    • termintegerrequired
      minimum: 1
  • allowed_hostsoptionalarray | null

    随 secret_host_not_allowed 返回:机密可以发往的主机,即机密上设置的主机;没有设置时为 null(节点的 SecretHosts)。

  • problemsoptional数组,元素为object

    随 invalid_definition 返回:定义中的每个问题,各附其位置和内容。

    • atstringrequired

      在定义中的位置,用点分隔的路径 (services.web.port);针对整个定义时为空。

    • messagestringrequired
  • reportoptionalobject

    随 compose_refused 返回:导入的报告,说明拒绝了什么、为什么以及要改什么。

    • objectcompose_importrequired
    • namestring | nullrequired

      模型的 name:即每个服务的标签 compose.project。null:模型没有名称。

    • dry_runbooleanrequired
    • strictbooleanrequired
    • profiles数组,元素为stringrequired
    • treatmentsobjectrequired

      报告中每种处理方式各有多少项。

      • doneintegerrequired
        minimum: 0
      • adaptedintegerrequired
        minimum: 0
      • ignoredintegerrequired
        minimum: 0
      • refusedintegerrequired
        minimum: 0
    • items数组,元素为objectrequired

      模型的顶层元素:name,以及每个卷、网络、config、secret 和扩展。

      • atstringrequired

        在模型中的位置:对服务而言,是其属性(ports[0]、depends_on.db、environment.KEY),针对整个服务时为空;对顶层而言,是元素 (volumes.db-data)。

      • treatmentdone或adapted或ignored或refusedrequired

        done:在平台上含义相同;adapted:平台用另一种方式实现同样的效果;ignored:只对本地运行有意义(带 strict 时会被拒绝);refused:平台做不到,而忽略它会让程序悄悄出错。

      • whystringrequired
      • changestring | nullrequired

        被拒绝的项:要改什么。其他情况为 null。

    • services数组,元素为objectrequired

      导入所采纳的服务,按模型中的顺序。

      • namestringrequired

        服务的名称,也是其应用的名称。

      • app_idstring | nullrequired

        其应用。null:试运行,且项目中没有该服务。

        pattern: ^app-
      • statuscreated或changed或unchangedrequired

        导入对其应用做了(试运行时为将会做)什么:创建、写入变化的部分,或什么都不做。

      • kindservice或jobrequired

        job:模型中有服务等待它完成,它会在每次需要它的部署中运行到结束。

      • statefulbooleanrequired

        它挂载自己的存储卷:只有一个实例,由该实例持有存储卷。

      • versionbooleanrequired

        导入的部署是否为它创建版本:即解析引用后其版本的构成与当前版本不同。

      • items数组,元素为objectrequired
        • atstringrequired

          在模型中的位置:对服务而言,是其属性(ports[0]、depends_on.db、environment.KEY),针对整个服务时为空;对顶层而言,是元素 (volumes.db-data)。

        • treatmentdone或adapted或ignored或refusedrequired

          done:在平台上含义相同;adapted:平台用另一种方式实现同样的效果;ignored:只对本地运行有意义(带 strict 时会被拒绝);refused:平台做不到,而忽略它会让程序悄悄出错。

        • whystringrequired
        • changestring | nullrequired

          被拒绝的项:要改什么。其他情况为 null。

      • appobjectrequired

        导入写入的服务应用字段:其版本的构成,以及立即生效的设置。

        • imagestring | nullrequired

          应用下一个版本的构成,连同其后的七个字段:即其最新版本的构成,加上此后的修改。null:应用没有镜像,也没有版本。

        • image_pull_secretstring | nullrequired

          保存镜像仓库凭据的机密的名称。任何响应都不包含其值。null:没有。

        • start_commandrequired

          以下之一:

          • StartCommand
          • null
        • start_argsrequired

          放在镜像 ENTRYPOINT 之后、取代其 CMD 的内容。null:使用镜像的 CMD,或者整个 start_command。

          以下之一:

          • array<string>
          • null
        • portinteger | nullrequired
        • readyobjectrequired

          判断实例已启动的方式,版本的模板会在实例启动后保存:三者必须恰好给出一个。前两种从实例外部检查,所以服务必须监听所有地址 (0.0.0.0)。

          • httpoptionalstring

            一个以 / 开头的路径:在应用端口上对它发起 GET,返回 200 到 399 之间的状态码。

          • tcpoptionaltrue

            应用端口接受连接。

          • commandoptional

            在实例中执行成功的一条命令。由实例的 shell 运行:参数列表会被写成一行交给它。

            以下之一:

            • string
            • array<string>
        • env映射,值为stringrequired
        • secrets映射,值为stringrequired

          机密的名称。任何响应都不包含值。

        • sizeobjectrequired

          单个实例最多能使用的资源。按实际用量计费。

          • vcpusintegerrequired
            minimum: 1
          • memory_bytesintegerrequired

            偶数个 MiB(即节点为虚拟机加载内存所用的 2 MiB 页的整数倍),以字节表示。其他任何大小都返回 400 invalid_field(param 为 size.memory_bytes):没有节点会创建这种大小的实例,正如没有节点会创建这种大小的沙箱(节点的 SandboxLimitsCreate.memory_bytes)。

            minimum: 134217728
        • volumes数组,元素为objectrequired
          • volumestringrequired
          • pathstringrequired
          • read_onlybooleanrequired
          • nocopyoptionalunknown

            只有给出为 true 时才会出现。

        • kindstringrequired
        • files数组,元素为objectrequired
          • pathstringrequired
          • modeintegerrequired
          • uidintegerrequired
          • gidintegerrequired
          • contentoptionalstring
          • secretoptionalstring
        • userstring | nullrequired
        • working_dirstring | nullrequired
        • stoprequired

          以下之一:

          • ServiceStop
            • signalstring | nullrequired
            • grace_msinteger | nullrequired
          • null
        • hostnamestring | nullrequired
        • regions数组,元素为stringrequired

          按 na、eu、ap 的顺序。

        • scaleobjectrequired
          • min_instancesintegerrequired

            无论有没有请求,应用在一个区域内保持运行的实例数:即下限。该区域服务该应用的节点按分摊 max_instances 的方式分摊它(两个节点、下限为 2:各一个;下限为 1:一个,在最先尝试的节点上;下限为 5:三个和两个),不在线的节点由其他节点补足。节点在收到通知时就创建自己那部分,而不是等到第一个请求,也不会因为空闲而停止或删除这些实例;它们按运行中的实例计量。0(未设置时的值):没有下限。调低后,超出部分的实例从那一刻起视为空闲,并像空闲实例一样被停止和删除。最多为 max_instances(如果给出),且不超过账户套餐允许应用在一个区域请求的数量(caps.app_instances.limit:5、50 和 500):超出会被拒绝,返回 403 plan_cap_reached。

            minimum: 0
          • max_instancesinteger | nullrequired

            应用在一个区域内最多有多少个实例:由该区域服务该应用的节点分摊。最多为账户套餐允许应用请求的数量(caps.app_instances.limit:免费版 5,付费版 500):超出会被拒绝,返回 403 plan_cap_reached;在允许的套餐上请求的数值会保留,但受当前套餐数值的限制。null:未指定数量的应用使用套餐的数值(caps.app_instances.default:免费版 2,付费版 50),如果 min_instances 更大则用它。告诉节点的数值,不超过账户除其他运行中资源外还能容纳的运行量,也不少于应用当前运行的实例数。

            minimum: 1
          • concurrencyinteger | nullrequired

            单个实例同时处理的上限:边缘节点发给它的请求,加上它在项目网络上打开的连接(经由其服务的地址,节点会按连接把它们分给各个实例;或者直接连到它自己的地址)。达到上限的实例即为已满,更多的请求会创建新实例。null(未设置时的值):没有上限。此时节点会在现有实例的 CPU 或内存接近其规格时增加实例,应用不必猜一个数字;一次只处理一个请求的服务应设为 1。

            maximum: 1000 · minimum: 1
          • sleep_after_msinteger | nullrequired

            实例在没有请求时最多等待多久就停止,单位为毫秒。在这个上限以内,节点根据应用自己的流量选择等待时间:在应用最近一段时间里两次请求之间的间隔上,比较多运行一秒空闲与停止再恢复所花的 CPU 时间,选出成本最低的等待时间;这样,请求间隔比停止成本还短的应用会一直运行,请求间隔很长的应用则在最后一个响应结束后立即停止(0:总是立即停止)。null(未设置时的值):平台的上限,三秒。设置过 100(2026年10月28日之前的默认值)的应用,从那天起视为 null。持续停止的实例会在 delete_after_ms 后被其节点删除,下一个需要实例的请求会得到一个新实例;min_instances 保持运行的实例既不会停止也不会删除。

            maximum: 600000 · minimum: 0
          • sleep_notice_msinteger | nullrequired

            在实例因空闲而停止之前多久,向连接到其客户机 /run/sbx/awake 的程序发送一行 sleep N,单位为毫秒:程序可以借此写出手头的数据、关闭连接,或者发起保持,从而推迟停止。无论它们是否响应,停止都会在这段时间之后到来;没有程序连接时,不会推迟。键控实例也会收到通知。0 或 null:不通知(默认)。

            maximum: 60000 · minimum: 0
          • sleep_hold_max_msintegerrequired

            实例中的程序发起的保持,在空闲时间到期后最多还能让实例运行多久,单位为毫秒:程序连接 /run/sbx/awake,如果某个请求在响应之后还有后续工作,就在响应它之前发送 +,工作完成后发送 -(或关闭连接,或退出);最后一个保持解除 sleep_after_ms 之后,实例停止。超过这个时间,无论有什么保持,实例都会停止;如果 sleep_notice_ms 要求通知,会先向已连接的程序发送 sleep N cap。保持期间实例在运行,并按运行计量。0:不理会保持。null:30000(默认)。

            maximum: 900000 · minimum: 0
          • delete_after_msinteger | nullrequired

            实例空闲多久后被删除,与停止使用同一个起算点:下一个需要实例的请求会得到一个新实例,即版本模板的克隆,不含被删除的实例在内存和磁盘中积累的东西(需要长久保存的数据请放在存储卷或数据库中)。一秒到一小时,一小时是平台的时间,也是上限:超出会被拒绝 (400 invalid_field),需要保持预热的实例应计入 min_instances。null(未设置时的值):节点的一小时 (--app-delete-after-seconds)。修改对应用现有的实例和之后创建的实例同样有效:每个节点至少每秒按应用当前的时间检查一次每个实例。不适用于应用的键控实例,键控实例用 keys.delete_after_idle_ms。

            maximum: 3600000 · minimum: 1000
          • suspend_after_msoptionalinteger | null

            已停止的实例在保存内存并真正休眠之前保持暂停多久,单位为毫秒:暂停时,下一个请求在一两毫秒内得到响应,内存照常计量;休眠时,唤醒要多几毫秒,只计量它保存的数据。节点会把它限制在节点让任何实例保持暂停的最长时间内(十分钟);宿主机内存不足、其他虚拟机需要占用槽位,或者有人请求休眠,都会让它更早休眠。null(默认):节点的最长时间。数据库的 suspend_after_seconds 就是其应用的这一设置。

            maximum: 86400000 · minimum: 1000
          • wake_daily_atoptionalstring | null

            每天的某个 UTC 时刻 (HH:MM),在此时唤醒应用中处于休眠状态的键控实例和有状态服务的实例,让它们完成等待唤醒才能做的工作(比如数据库维护);节点根据应用请求创建和删除的实例只会被请求唤醒。唤醒本身不算活动:唤醒后运行的东西才算,运行完毕后实例会再次休眠。此外,无论这里怎么设置,有状态服务的实例都会为其 PostgreSQL 服务器 pg_cron 任务的下一次运行而被唤醒。null(默认):不唤醒。数据库的 wake_daily_at 就是其应用的这一设置。

            pattern: ^([01][0-9]|2[0-3]):[0-5][0-9]$
        • keysrequired

          以下之一:

          • object
          • null
        • egressobject | nullrequired

          与沙箱相同的出站规则(default、allow、deny、http、inject),没有时为 null;按调用给出的原样保存(PATCH 会像节点那样按键逐个合并)。规则立即生效,不产生新版本:服务该应用的节点会把它们应用到其组内的每个实例上,包括现有的实例(运行中的实例对其已有连接也生效)和之后创建的实例;键控实例不受这些规则约束。控制平面只检查它们是不是由这些键组成、不超过 256 KiB 的对象:规则的内容由节点在应用时检查,节点读不懂其规则的实例,所有出站流量都会被拒绝(节点日志会说明原因)。

          • defaultoptionalallow或deny或null
          • allowoptionalarray | null
          • denyoptionalarray | null
          • httpoptionalarray | null
          • injectoptionalarray | null
          • deny_portsoptionalarray | null

            任何连接都到达不了的端口,TCP 或 UDP,无论连往哪里,也无论规则的其他部分怎么说。浏览器会话的规则总是包含 25、465、587 以及矿池监听的端口(3333、4444、5555、7777、14444、45700):无论其规则如何修改,控制平面都会把它们加上。

        • metadata映射,值为stringrequired
        • logsobjectrequired

          应用日志包含哪些内容,每一项为给出的值或默认值 (AppLogSettings)。

          • outputbooleanrequired
          • keepbooleanrequired
          • requestsobjectrequired
            • sample_ratenumberrequired
              maximum: 1 · minimum: 0
            • keep_errorsbooleanrequired
        • publicbooleanrequired

          是否在其默认域名 (url) 上响应。

        • depends_on数组,元素为objectrequired
          • servicestringrequired
          • conditionstringrequired
        • networkobjectrequired
          • aliases数组,元素为stringrequired
          • endpoint_modestringrequired
        • drivesoptional数组,元素为object

          其实例挂载的云盘 (AppCreate.drives):没有指定时为空列表 []。

          • drivestringrequired
          • pathstringrequired
          • modestringrequired
        • key_drivesoptional数组,元素为object

          每个键的实例自有的云盘 (AppCreate.key_drives):没有给出时为空列表 []。

          • namestringrequired
          • pathstringrequired
          • size_bytesinteger | nullrequired
            format: int64
          • nocopyoptionalunknown

            只有给出为 true 时才会出现。

        • runtimeoptional

          运行时设置 (AppCreate.runtime)。null:没有。

          以下之一:

          • Runtime
            • ulimits映射,值为RuntimeLimitGivenrequired
            • sysctls映射,值为stringrequired
            • tmpfs数组,元素为objectrequired
              • pathstringrequired
              • size_bytesinteger | nullrequired
              • modeintegerrequired
            • dnsobjectrequired
              • servers数组,元素为stringrequired
              • search数组,元素为stringrequired
              • options数组,元素为stringrequired
            • shm_size_bytesinteger | nullrequired
          • null
        • tracesoptionalobject

          应用请求的链路追踪包含哪些内容,每一项为给出的值或默认值 (AppTraceSettings):sample_rate 为 0 时不产生任何 span。

          • sample_ratenumberrequired
            maximum: 1 · minimum: 0
          • trust_incomingbooleanrequired
    • volumes数组,元素为objectrequired

      服务挂载的项目存储卷。

      • modelstring | nullrequired

        它在模型中的名称。null:为有状态服务挂载但未命名卷的路径创建的。

      • namestringrequired

        它在项目中的名称。

      • idstring | nullrequired

        null:尚未创建 (to_make)。

        pattern: ^vol-
      • sharedbooleanrequired

        有多个服务挂载它,或者某个服务有多个实例:每个服务的每个实例同时挂载它。

      • statusto_make或made或there或externalrequired

        to_make:导入会创建它(试运行时对将要创建的存储卷这样说明);made:本次导入创建了它;there:之前的导入创建了它,或者已有同名的存储卷;external:模型把它标为 external,而项目中已有它。

      • used_by数组,元素为stringrequired
    • secrets数组,元素为objectrequired

      模型中授予服务的 secrets。

      • modelstringrequired

        它在模型中的名称。

      • namestringrequired

        保存它的项目机密:即模型中的名称,其中机密名称不允许的每个字符都写成下划线。

      • therebooleanrequired

        项目中是否已有它。导入(非试运行)时如果它还不存在,会被拒绝,返回 404 secret_not_found。

      • used_by数组,元素为stringrequired
    • left_out数组,元素为objectrequired

      属于未启用 profile 的服务,导入不会处理它们。

      • namestringrequired
      • profiles数组,元素为stringrequired
    • absent数组,元素为stringrequired

      项目中有而模型中没有的服务:保持原样。

    • deploystring | nullrequired

      导入触发的部署 (GET /v1/deploys/{id})。null:试运行,或者没有服务需要新版本。

      pattern: ^dpl-
  • accountsoptional数组,元素为object

    随 sole_owner 返回:该用户是唯一所有者的那些账户。

    • idstringrequired
      pattern: ^acct-[0-9a-hjkmnp-tv-z]{16}$
    • namestringrequired

409

subscription_charge_pending:账户订阅的一笔扣款正在收取,在有结果之前,不能修改它所支付的内容,也不能终止订阅。可重试 (retryable)。对于付费版,billing_address_required(param 为 billing_address):平台用 Stripe Tax 计算税款并由 Stripe 收款,而 Stripe Tax 无法确定账户所在地:账户没有账单地址,登记的银行卡所属国家也未知(用 PATCH /v1/account 设置地址,或在付款页面付款 (POST /v1/billing/checkout),页面会要求填写地址)。没有创建任何东西。
JSON
  • errorobjectrequired
    • typestringrequired
    • codestringrequired
    • messagestringrequired
    • paramstring | nullrequired
    • retryablebooleanrequired
    • request_idstringrequired
    • docs_urlstring | nullrequired
  • move_idoptionalstring

    随 already_moving 返回:该沙箱正在进行的迁移。

  • upgrade_idoptionalstring

    随 upgrade_in_progress(该键尚未结束的升级)、upgrade_started(已开始的升级)和 rollback_gone(回退被拒绝的那次升级)返回:即那次升级。

    pattern: ^upg-[0-9a-hjkmnp-tv-z]{16}$
  • moveoptionalobject

    随 move_over、move_going_back 和 move_taken_over 返回 (POST /internal/moves/{id}/cancel):迁移的当前状态。

    • objectstringrequired
    • idstringrequired
      pattern: ^mov-[0-9a-hjkmnp-tv-z]{16}$
    • sandbox_idstringrequired
    • project_idstringrequired
    • fromobjectrequired
      • idstringrequired
      • namestring | nullrequired

        节点名称;之后已从记录中消失的节点为 null。

    • toobjectrequired
      • idstringrequired
      • namestring | nullrequired

        节点名称;之后已从记录中消失的节点为 null。

    • epochintegerrequired

      迁移开始时表中记录的沙箱纪元:旧节点在这个纪元释放它,新节点在纪元加一时接管它,旧节点在纪元加二时收回它,从对象存储接管则在纪元加三时。

      minimum: 1
    • stepstringrequired

      迁移的进展:releasing(正在请旧节点释放它;表中记录它在旧节点上)、taking_over(正在请新节点接管它;表中记录它在新节点上)、reclaiming(新节点拒绝了它,正在请旧节点收回)、restoring(旧节点没有保留它的任何东西,正从对象存储接管)、done(已在新节点上)、failed(留在原处,或回到了原处,或停在某个时间无法消除的故障或运营方的取消发生时所在的位置:error 说明原因)。

    • whystringrequired

      发起迁移的原因:运营方的迁移、撤离或恢复。

    • wakebooleanrequired

      新节点是否唤醒它:按调用的指定,或按迁移开始时它的状态(是否在运行)。

    • from_storebooleanrequired

      新节点只从对象存储接管它。

    • releaseobject | nullrequired

      旧节点释放时的响应(sandboxd/openapi/openapi.json,releaseSandbox),不含释放所用的密钥;响应之前为 null。

    • takeoverobject | nullrequired

      结束迁移的那次接管的响应(节点文档中的 takeoverSandbox):磁盘和内存来自哪里 (source)、各用了多长时间 (ms)、memory;之前为 null。

    • errorrequired

      失败的迁移:失败原因(如果被带回旧节点,则为新节点的拒绝原因);已完成的迁移:null;进行中的迁移:如果当前步骤要再次请求,则为该步骤上次得到的答复。

      以下之一:

      • object
      • null
    • attemptsintegerrequired

      当前步骤已请求了多少次,仍没有得到确定的答复。

      minimum: 0
    • next_attempt_atstring | nullrequired

      该步骤何时再次请求;不在等待时为 null。

      format: date-time
    • batchstring | nullrequired

      它所属的撤离 (evc-…) 或恢复 (rcv-…)。

    • created_atstringrequired
      format: date-time
    • updated_atstringrequired
      format: date-time
    • ended_atstring | nullrequired
      format: date-time
  • lease_untiloptionalstring

    随 lease_held 返回:节点最后获得的租约最晚可以持有到何时,再加上让节点察觉租约到期所需的时间(在此之前 recoverNode 会被拒绝)。

    format: date-time
  • activeoptionalobject | null

    随 standby 返回:备用副本最后一次读取租约时的活动副本;没有副本持有租约时为 null。

    • namestringrequired
    • urlstringrequired
    • termintegerrequired
      minimum: 1
  • allowed_hostsoptionalarray | null

    随 secret_host_not_allowed 返回:机密可以发往的主机,即机密上设置的主机;没有设置时为 null(节点的 SecretHosts)。

  • problemsoptional数组,元素为object

    随 invalid_definition 返回:定义中的每个问题,各附其位置和内容。

    • atstringrequired

      在定义中的位置,用点分隔的路径 (services.web.port);针对整个定义时为空。

    • messagestringrequired
  • reportoptionalobject

    随 compose_refused 返回:导入的报告,说明拒绝了什么、为什么以及要改什么。

    • objectcompose_importrequired
    • namestring | nullrequired

      模型的 name:即每个服务的标签 compose.project。null:模型没有名称。

    • dry_runbooleanrequired
    • strictbooleanrequired
    • profiles数组,元素为stringrequired
    • treatmentsobjectrequired

      报告中每种处理方式各有多少项。

      • doneintegerrequired
        minimum: 0
      • adaptedintegerrequired
        minimum: 0
      • ignoredintegerrequired
        minimum: 0
      • refusedintegerrequired
        minimum: 0
    • items数组,元素为objectrequired

      模型的顶层元素:name,以及每个卷、网络、config、secret 和扩展。

      • atstringrequired

        在模型中的位置:对服务而言,是其属性(ports[0]、depends_on.db、environment.KEY),针对整个服务时为空;对顶层而言,是元素 (volumes.db-data)。

      • treatmentdone或adapted或ignored或refusedrequired

        done:在平台上含义相同;adapted:平台用另一种方式实现同样的效果;ignored:只对本地运行有意义(带 strict 时会被拒绝);refused:平台做不到,而忽略它会让程序悄悄出错。

      • whystringrequired
      • changestring | nullrequired

        被拒绝的项:要改什么。其他情况为 null。

    • services数组,元素为objectrequired

      导入所采纳的服务,按模型中的顺序。

      • namestringrequired

        服务的名称,也是其应用的名称。

      • app_idstring | nullrequired

        其应用。null:试运行,且项目中没有该服务。

        pattern: ^app-
      • statuscreated或changed或unchangedrequired

        导入对其应用做了(试运行时为将会做)什么:创建、写入变化的部分,或什么都不做。

      • kindservice或jobrequired

        job:模型中有服务等待它完成,它会在每次需要它的部署中运行到结束。

      • statefulbooleanrequired

        它挂载自己的存储卷:只有一个实例,由该实例持有存储卷。

      • versionbooleanrequired

        导入的部署是否为它创建版本:即解析引用后其版本的构成与当前版本不同。

      • items数组,元素为objectrequired
        • atstringrequired

          在模型中的位置:对服务而言,是其属性(ports[0]、depends_on.db、environment.KEY),针对整个服务时为空;对顶层而言,是元素 (volumes.db-data)。

        • treatmentdone或adapted或ignored或refusedrequired

          done:在平台上含义相同;adapted:平台用另一种方式实现同样的效果;ignored:只对本地运行有意义(带 strict 时会被拒绝);refused:平台做不到,而忽略它会让程序悄悄出错。

        • whystringrequired
        • changestring | nullrequired

          被拒绝的项:要改什么。其他情况为 null。

      • appobjectrequired

        导入写入的服务应用字段:其版本的构成,以及立即生效的设置。

        • imagestring | nullrequired

          应用下一个版本的构成,连同其后的七个字段:即其最新版本的构成,加上此后的修改。null:应用没有镜像,也没有版本。

        • image_pull_secretstring | nullrequired

          保存镜像仓库凭据的机密的名称。任何响应都不包含其值。null:没有。

        • start_commandrequired

          以下之一:

          • StartCommand
          • null
        • start_argsrequired

          放在镜像 ENTRYPOINT 之后、取代其 CMD 的内容。null:使用镜像的 CMD,或者整个 start_command。

          以下之一:

          • array<string>
          • null
        • portinteger | nullrequired
        • readyobjectrequired

          判断实例已启动的方式,版本的模板会在实例启动后保存:三者必须恰好给出一个。前两种从实例外部检查,所以服务必须监听所有地址 (0.0.0.0)。

          • httpoptionalstring

            一个以 / 开头的路径:在应用端口上对它发起 GET,返回 200 到 399 之间的状态码。

          • tcpoptionaltrue

            应用端口接受连接。

          • commandoptional

            在实例中执行成功的一条命令。由实例的 shell 运行:参数列表会被写成一行交给它。

            以下之一:

            • string
            • array<string>
        • env映射,值为stringrequired
        • secrets映射,值为stringrequired

          机密的名称。任何响应都不包含值。

        • sizeobjectrequired

          单个实例最多能使用的资源。按实际用量计费。

          • vcpusintegerrequired
            minimum: 1
          • memory_bytesintegerrequired

            偶数个 MiB(即节点为虚拟机加载内存所用的 2 MiB 页的整数倍),以字节表示。其他任何大小都返回 400 invalid_field(param 为 size.memory_bytes):没有节点会创建这种大小的实例,正如没有节点会创建这种大小的沙箱(节点的 SandboxLimitsCreate.memory_bytes)。

            minimum: 134217728
        • volumes数组,元素为objectrequired
          • volumestringrequired
          • pathstringrequired
          • read_onlybooleanrequired
          • nocopyoptionalunknown

            只有给出为 true 时才会出现。

        • kindstringrequired
        • files数组,元素为objectrequired
          • pathstringrequired
          • modeintegerrequired
          • uidintegerrequired
          • gidintegerrequired
          • contentoptionalstring
          • secretoptionalstring
        • userstring | nullrequired
        • working_dirstring | nullrequired
        • stoprequired

          以下之一:

          • ServiceStop
            • signalstring | nullrequired
            • grace_msinteger | nullrequired
          • null
        • hostnamestring | nullrequired
        • regions数组,元素为stringrequired

          按 na、eu、ap 的顺序。

        • scaleobjectrequired
          • min_instancesintegerrequired

            无论有没有请求,应用在一个区域内保持运行的实例数:即下限。该区域服务该应用的节点按分摊 max_instances 的方式分摊它(两个节点、下限为 2:各一个;下限为 1:一个,在最先尝试的节点上;下限为 5:三个和两个),不在线的节点由其他节点补足。节点在收到通知时就创建自己那部分,而不是等到第一个请求,也不会因为空闲而停止或删除这些实例;它们按运行中的实例计量。0(未设置时的值):没有下限。调低后,超出部分的实例从那一刻起视为空闲,并像空闲实例一样被停止和删除。最多为 max_instances(如果给出),且不超过账户套餐允许应用在一个区域请求的数量(caps.app_instances.limit:5、50 和 500):超出会被拒绝,返回 403 plan_cap_reached。

            minimum: 0
          • max_instancesinteger | nullrequired

            应用在一个区域内最多有多少个实例:由该区域服务该应用的节点分摊。最多为账户套餐允许应用请求的数量(caps.app_instances.limit:免费版 5,付费版 500):超出会被拒绝,返回 403 plan_cap_reached;在允许的套餐上请求的数值会保留,但受当前套餐数值的限制。null:未指定数量的应用使用套餐的数值(caps.app_instances.default:免费版 2,付费版 50),如果 min_instances 更大则用它。告诉节点的数值,不超过账户除其他运行中资源外还能容纳的运行量,也不少于应用当前运行的实例数。

            minimum: 1
          • concurrencyinteger | nullrequired

            单个实例同时处理的上限:边缘节点发给它的请求,加上它在项目网络上打开的连接(经由其服务的地址,节点会按连接把它们分给各个实例;或者直接连到它自己的地址)。达到上限的实例即为已满,更多的请求会创建新实例。null(未设置时的值):没有上限。此时节点会在现有实例的 CPU 或内存接近其规格时增加实例,应用不必猜一个数字;一次只处理一个请求的服务应设为 1。

            maximum: 1000 · minimum: 1
          • sleep_after_msinteger | nullrequired

            实例在没有请求时最多等待多久就停止,单位为毫秒。在这个上限以内,节点根据应用自己的流量选择等待时间:在应用最近一段时间里两次请求之间的间隔上,比较多运行一秒空闲与停止再恢复所花的 CPU 时间,选出成本最低的等待时间;这样,请求间隔比停止成本还短的应用会一直运行,请求间隔很长的应用则在最后一个响应结束后立即停止(0:总是立即停止)。null(未设置时的值):平台的上限,三秒。设置过 100(2026年10月28日之前的默认值)的应用,从那天起视为 null。持续停止的实例会在 delete_after_ms 后被其节点删除,下一个需要实例的请求会得到一个新实例;min_instances 保持运行的实例既不会停止也不会删除。

            maximum: 600000 · minimum: 0
          • sleep_notice_msinteger | nullrequired

            在实例因空闲而停止之前多久,向连接到其客户机 /run/sbx/awake 的程序发送一行 sleep N,单位为毫秒:程序可以借此写出手头的数据、关闭连接,或者发起保持,从而推迟停止。无论它们是否响应,停止都会在这段时间之后到来;没有程序连接时,不会推迟。键控实例也会收到通知。0 或 null:不通知(默认)。

            maximum: 60000 · minimum: 0
          • sleep_hold_max_msintegerrequired

            实例中的程序发起的保持,在空闲时间到期后最多还能让实例运行多久,单位为毫秒:程序连接 /run/sbx/awake,如果某个请求在响应之后还有后续工作,就在响应它之前发送 +,工作完成后发送 -(或关闭连接,或退出);最后一个保持解除 sleep_after_ms 之后,实例停止。超过这个时间,无论有什么保持,实例都会停止;如果 sleep_notice_ms 要求通知,会先向已连接的程序发送 sleep N cap。保持期间实例在运行,并按运行计量。0:不理会保持。null:30000(默认)。

            maximum: 900000 · minimum: 0
          • delete_after_msinteger | nullrequired

            实例空闲多久后被删除,与停止使用同一个起算点:下一个需要实例的请求会得到一个新实例,即版本模板的克隆,不含被删除的实例在内存和磁盘中积累的东西(需要长久保存的数据请放在存储卷或数据库中)。一秒到一小时,一小时是平台的时间,也是上限:超出会被拒绝 (400 invalid_field),需要保持预热的实例应计入 min_instances。null(未设置时的值):节点的一小时 (--app-delete-after-seconds)。修改对应用现有的实例和之后创建的实例同样有效:每个节点至少每秒按应用当前的时间检查一次每个实例。不适用于应用的键控实例,键控实例用 keys.delete_after_idle_ms。

            maximum: 3600000 · minimum: 1000
          • suspend_after_msoptionalinteger | null

            已停止的实例在保存内存并真正休眠之前保持暂停多久,单位为毫秒:暂停时,下一个请求在一两毫秒内得到响应,内存照常计量;休眠时,唤醒要多几毫秒,只计量它保存的数据。节点会把它限制在节点让任何实例保持暂停的最长时间内(十分钟);宿主机内存不足、其他虚拟机需要占用槽位,或者有人请求休眠,都会让它更早休眠。null(默认):节点的最长时间。数据库的 suspend_after_seconds 就是其应用的这一设置。

            maximum: 86400000 · minimum: 1000
          • wake_daily_atoptionalstring | null

            每天的某个 UTC 时刻 (HH:MM),在此时唤醒应用中处于休眠状态的键控实例和有状态服务的实例,让它们完成等待唤醒才能做的工作(比如数据库维护);节点根据应用请求创建和删除的实例只会被请求唤醒。唤醒本身不算活动:唤醒后运行的东西才算,运行完毕后实例会再次休眠。此外,无论这里怎么设置,有状态服务的实例都会为其 PostgreSQL 服务器 pg_cron 任务的下一次运行而被唤醒。null(默认):不唤醒。数据库的 wake_daily_at 就是其应用的这一设置。

            pattern: ^([01][0-9]|2[0-3]):[0-5][0-9]$
        • keysrequired

          以下之一:

          • object
          • null
        • egressobject | nullrequired

          与沙箱相同的出站规则(default、allow、deny、http、inject),没有时为 null;按调用给出的原样保存(PATCH 会像节点那样按键逐个合并)。规则立即生效,不产生新版本:服务该应用的节点会把它们应用到其组内的每个实例上,包括现有的实例(运行中的实例对其已有连接也生效)和之后创建的实例;键控实例不受这些规则约束。控制平面只检查它们是不是由这些键组成、不超过 256 KiB 的对象:规则的内容由节点在应用时检查,节点读不懂其规则的实例,所有出站流量都会被拒绝(节点日志会说明原因)。

          • defaultoptionalallow或deny或null
          • allowoptionalarray | null
          • denyoptionalarray | null
          • httpoptionalarray | null
          • injectoptionalarray | null
          • deny_portsoptionalarray | null

            任何连接都到达不了的端口,TCP 或 UDP,无论连往哪里,也无论规则的其他部分怎么说。浏览器会话的规则总是包含 25、465、587 以及矿池监听的端口(3333、4444、5555、7777、14444、45700):无论其规则如何修改,控制平面都会把它们加上。

        • metadata映射,值为stringrequired
        • logsobjectrequired

          应用日志包含哪些内容,每一项为给出的值或默认值 (AppLogSettings)。

          • outputbooleanrequired
          • keepbooleanrequired
          • requestsobjectrequired
            • sample_ratenumberrequired
              maximum: 1 · minimum: 0
            • keep_errorsbooleanrequired
        • publicbooleanrequired

          是否在其默认域名 (url) 上响应。

        • depends_on数组,元素为objectrequired
          • servicestringrequired
          • conditionstringrequired
        • networkobjectrequired
          • aliases数组,元素为stringrequired
          • endpoint_modestringrequired
        • drivesoptional数组,元素为object

          其实例挂载的云盘 (AppCreate.drives):没有指定时为空列表 []。

          • drivestringrequired
          • pathstringrequired
          • modestringrequired
        • key_drivesoptional数组,元素为object

          每个键的实例自有的云盘 (AppCreate.key_drives):没有给出时为空列表 []。

          • namestringrequired
          • pathstringrequired
          • size_bytesinteger | nullrequired
            format: int64
          • nocopyoptionalunknown

            只有给出为 true 时才会出现。

        • runtimeoptional

          运行时设置 (AppCreate.runtime)。null:没有。

          以下之一:

          • Runtime
            • ulimits映射,值为RuntimeLimitGivenrequired
            • sysctls映射,值为stringrequired
            • tmpfs数组,元素为objectrequired
              • pathstringrequired
              • size_bytesinteger | nullrequired
              • modeintegerrequired
            • dnsobjectrequired
              • servers数组,元素为stringrequired
              • search数组,元素为stringrequired
              • options数组,元素为stringrequired
            • shm_size_bytesinteger | nullrequired
          • null
        • tracesoptionalobject

          应用请求的链路追踪包含哪些内容,每一项为给出的值或默认值 (AppTraceSettings):sample_rate 为 0 时不产生任何 span。

          • sample_ratenumberrequired
            maximum: 1 · minimum: 0
          • trust_incomingbooleanrequired
    • volumes数组,元素为objectrequired

      服务挂载的项目存储卷。

      • modelstring | nullrequired

        它在模型中的名称。null:为有状态服务挂载但未命名卷的路径创建的。

      • namestringrequired

        它在项目中的名称。

      • idstring | nullrequired

        null:尚未创建 (to_make)。

        pattern: ^vol-
      • sharedbooleanrequired

        有多个服务挂载它,或者某个服务有多个实例:每个服务的每个实例同时挂载它。

      • statusto_make或made或there或externalrequired

        to_make:导入会创建它(试运行时对将要创建的存储卷这样说明);made:本次导入创建了它;there:之前的导入创建了它,或者已有同名的存储卷;external:模型把它标为 external,而项目中已有它。

      • used_by数组,元素为stringrequired
    • secrets数组,元素为objectrequired

      模型中授予服务的 secrets。

      • modelstringrequired

        它在模型中的名称。

      • namestringrequired

        保存它的项目机密:即模型中的名称,其中机密名称不允许的每个字符都写成下划线。

      • therebooleanrequired

        项目中是否已有它。导入(非试运行)时如果它还不存在,会被拒绝,返回 404 secret_not_found。

      • used_by数组,元素为stringrequired
    • left_out数组,元素为objectrequired

      属于未启用 profile 的服务,导入不会处理它们。

      • namestringrequired
      • profiles数组,元素为stringrequired
    • absent数组,元素为stringrequired

      项目中有而模型中没有的服务:保持原样。

    • deploystring | nullrequired

      导入触发的部署 (GET /v1/deploys/{id})。null:试运行,或者没有服务需要新版本。

      pattern: ^dpl-
  • accountsoptional数组,元素为object

    随 sole_owner 返回:该用户是唯一所有者的那些账户。

    • idstringrequired
      pattern: ^acct-[0-9a-hjkmnp-tv-z]{16}$
    • namestringrequired

输入以搜索……

↑↓ 切换↵ 选择Esc 关闭