revoke_product
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/revoke_product, with a bearer credential and the action's payload as the JSON body.
Contract description
Remove one product profile from an account — `blueprint`, Turn Zero Blueprint access — so what it opened is closed to the account from its next request; `cloud` is the account's own and is refused. Super-admin (platform operator) only. A new invitation naming the product restores it.
Access and action metadata
{
"name": "revoke_product",
"resource": "account",
"tier": "reversible",
"grant": "super_admin",
"summary": "Remove one product profile from an account — `blueprint`, Turn Zero Blueprint access, at this revision — so what the profile opened is closed to the account from its next request; `cloud` is the account's own and is refused; a new invitation naming the product is the way back.",
"annotations": {
"readOnlyHint": false,
"destructiveHint": true,
"openWorldHint": false
}
}
MCP catalog entry
{
"name": "revoke_product",
"tier": "reversible",
"scenario": "API-L0-12",
"summary": "Remove one product profile from an account — `blueprint`, Turn Zero Blueprint access — so what it opened is closed to the account from its next request; `cloud` is the account's own and is refused. Super-admin (platform operator) only. A new invitation naming the product restores it.",
"owners": [
"ACB-L0-76"
]
}
request
| JSON pointer | Description and constraints |
|---|---|
| "" (root) | Type: object Required fields: ["subject_account","product"] Additional properties: false |
| / |
The account id, from `list_accounts`. Type: string |
| / |
The product profile to remove, as `read_account` names it under `profiles[].product`: `blueprint` at this revision. `cloud` is the account's own and is refused `invalid_request`. Allowed values: ["cloud","blueprint"] |
response
| JSON pointer | Description and constraints |
|---|---|
| "" (root) | Type: object Required fields: ["contract_version","account","product","removed"] Additional properties: false |
| / |
Required value: 1 |
| / |
Type: object Required fields: ["id","created_at","standing","synthetic"] Additional properties: false |
| / |
Type: string |
| / |
Type: string |
| / |
Allowed values: ["active","suspended"] |
| / |
Type: boolean |
| / |
The profile name the call named. Type: string |
| / |
true where the account held the profile and it is removed; false where it held none, nothing changed, and a repeat answers the same. Type: boolean |
| / |
Type: string |
Complete payload contract
{
"request": {
"type": "object",
"required": [
"subject_account",
"product"
],
"properties": {
"subject_account": {
"type": "string",
"description": "The account id, from `list_accounts`."
},
"product": {
"enum": [
"cloud",
"blueprint"
],
"description": "The product profile to remove, as `read_account` names it under `profiles[].product`: `blueprint` at this revision. `cloud` is the account's own and is refused `invalid_request`."
}
},
"additionalProperties": false
},
"response": {
"type": "object",
"required": [
"contract_version",
"account",
"product",
"removed"
],
"properties": {
"contract_version": {
"const": 1
},
"account": {
"type": "object",
"required": [
"id",
"created_at",
"standing",
"synthetic"
],
"properties": {
"id": {
"type": "string"
},
"created_at": {
"type": "string"
},
"standing": {
"enum": [
"active",
"suspended"
]
},
"synthetic": {
"type": "boolean"
}
},
"additionalProperties": false
},
"product": {
"type": "string",
"description": "The profile name the call named."
},
"removed": {
"type": "boolean",
"description": "true where the account held the profile and it is removed; false where it held none, nothing changed, and a repeat answers the same."
},
"detail": {
"type": "string"
}
},
"additionalProperties": false
}
}
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