set_unlimited_plan

Generated automatically from the published contract sources.

Build metadata: Registered in this build. Registration describes the default dispatcher in this build. It does not guarantee that a caller has the required credential or grant, that a tool is listed for that connection, or that the required service is configured.

A script calls this action over HTTPS at POST https://turnzero.ai/api/v1/actions/set_unlimited_plan, with a bearer credential and the action's payload as the JSON body.

Contract description

Place one application on the unlimited plan, the company's own plan, which no customer act selects yet. Super-admin (platform operator) only, and only for an application of an operator account that carries the unbilled mark; any other application refuses `invalid_request`. The plan's entitlements — the replica floor and the database connection limit — are applied first and the plan recorded last, and the application's usage states are recomputed against the plan's quantities before the answer. A row of the unlimited plan that is absent or unset, for any measure Pro sets, refuses `plan_quantity_unset` naming the measure, and a standing schedule the plan's rows do not admit refuses `plan_schedule_conflict`. The same call on an application already on the plan applies the entitlements again; the owner's `set_plan` onto a customer plan moves the application off it.

Access and action metadata

{
  "name": "set_unlimited_plan",
  "resource": "application",
  "tier": "reversible",
  "grant": "super_admin",
  "summary": "Super-admin: place one application of an operator account that carries the unbilled mark on the unlimited plan, the company's own plan, which no customer act selects yet: the plan's entitlements — the replica floor and the database role's connection limit — are applied before the plan is recorded, and the application's three usage states are recomputed against the plan's served quantities before the change is answered; an application of any other account refuses `invalid_request`, an absent or Unset row of the unlimited plan for any entry Pro sets, a served value's among them, `plan_quantity_unset` naming the measure, a standing schedule the plan's rows do not admit `plan_schedule_conflict`, and a failed entitlement `entitlement_apply_failed` with the plan unchanged. The same call on an application already on the plan applies the entitlements again, the retry of a partial apply; the owner's `set_plan` onto a customer plan moves the application off it.",
  "annotations": {
    "readOnlyHint": false,
    "destructiveHint": true,
    "openWorldHint": true
  }
}

MCP catalog entry

{
  "name": "set_unlimited_plan",
  "tier": "reversible",
  "scenario": "API-L0-12",
  "summary": "Place one application on the unlimited plan, the company's own plan, which no customer act selects yet. Super-admin (platform operator) only, and only for an application of an operator account that carries the unbilled mark; any other application refuses `invalid_request`. The plan's entitlements — the replica floor and the database connection limit — are applied first and the plan recorded last, and the application's usage states are recomputed against the plan's quantities before the answer. A row of the unlimited plan that is absent or unset, for any measure Pro sets, refuses `plan_quantity_unset` naming the measure, and a standing schedule the plan's rows do not admit refuses `plan_schedule_conflict`. The same call on an application already on the plan applies the entitlements again; the owner's `set_plan` onto a customer plan moves the application off it.",
  "owners": [
    "ACB-L0-85",
    "PRC-L0-17",
    "ACB-L0-22",
    "API-L0-12"
  ]
}

request

JSON pointer Description and constraints
"" (root) Type: object
Required fields: ["application"]
/properties/application The application id, from `list_applications`.

Type: string

response

JSON pointer Description and constraints
"" (root) Type: object
Required fields: ["contract_version","application"]
/properties/contract_version Required value: 1
/properties/reference The short reference the platform recorded this call under, ten lowercase hexadecimal characters, the value the call’s record row carries; quote it when reporting the call.

Type: string
Pattern: ^[0-9a-f]{10}$
/properties/application Type: object
Required fields: ["id","label","account","plan","warm_floor","connection_limit"]
/properties/application/properties/id Type: string
/properties/application/properties/label Type: string
/properties/application/properties/account the account the application belongs to, an operator account carrying the unbilled mark

Type: string
/properties/application/properties/plan `unlimited`, the company's own plan, which no customer act selects yet

Type: string
Allowed values: ["unlimited"]
/properties/application/properties/warm_floor the replica floor the plan gives (PRC-L0-17; PLD-L0-63): 1, as on Pro

Type: integer
/properties/application/properties/connection_limit the unlimited plan's served `database-connection-limit` quantity: the connections each process of the application holds open at once, the client pool's maximum, which the pool reads from `APP_DATABASE_CONNECTION_LIMIT`. The role's CONNECTION LIMIT admits twice it, the second half a deploy's overlap of the previous and the new container, so a pool of this size is refused nothing (DBS-L0-04)

Type: integer
/properties/detail Type: string

Complete payload contract

{
  "request": {
    "type": "object",
    "required": [
      "application"
    ],
    "properties": {
      "application": {
        "type": "string",
        "description": "The application id, from `list_applications`."
      }
    }
  },
  "response": {
    "type": "object",
    "required": [
      "contract_version",
      "application"
    ],
    "properties": {
      "contract_version": {
        "const": 1
      },
      "reference": {
        "type": "string",
        "pattern": "^[0-9a-f]{10}$",
        "description": "The short reference the platform recorded this call under, ten lowercase hexadecimal characters, the value the call’s record row carries; quote it when reporting the call."
      },
      "application": {
        "type": "object",
        "required": [
          "id",
          "label",
          "account",
          "plan",
          "warm_floor",
          "connection_limit"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "account": {
            "type": "string",
            "description": "the account the application belongs to, an operator account carrying the unbilled mark"
          },
          "plan": {
            "type": "string",
            "enum": [
              "unlimited"
            ],
            "description": "`unlimited`, the company's own plan, which no customer act selects yet"
          },
          "warm_floor": {
            "type": "integer",
            "description": "the replica floor the plan gives (PRC-L0-17; PLD-L0-63): 1, as on Pro"
          },
          "connection_limit": {
            "type": "integer",
            "description": "the unlimited plan's served `database-connection-limit` quantity: the connections each process of the application holds open at once, the client pool's maximum, which the pool reads from `APP_DATABASE_CONNECTION_LIMIT`. The role's CONNECTION LIMIT admits twice it, the second half a deploy's overlap of the previous and the new container, so a pool of this size is refused nothing (DBS-L0-04)"
          }
        }
      },
      "detail": {
        "type": "string"
      }
    }
  }
}

Shared contracts