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"] |
| / |
The application id, from `list_applications`. Type: string |
response
| JSON pointer | Description and constraints |
|---|---|
| "" (root) | Type: object Required fields: ["contract_version","application"] |
| / |
Required value: 1 |
| / |
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}$ |
| / |
Type: object Required fields: ["id","label","account","plan","warm_floor","connection_limit"] |
| / |
Type: string |
| / |
Type: string |
| / |
the account the application belongs to, an operator account carrying the unbilled mark Type: string |
| / |
`unlimited`, the company's own plan, which no customer act selects yet Type: string Allowed values: ["unlimited"] |
| / |
the replica floor the plan gives (PRC-L0-17; PLD-L0-63): 1, as on Pro Type: integer |
| / |
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 |
| / |
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
- Refusals: every refusal, by surface, with its cause and its remedy
- schemas/wire_error.schema.json
- schemas/wire_errors.json
- schemas/action_payloads.json (includes shared shapes)
- management_api_contract.md