choose_products #
Generated automatically from the published contract sources.
A script calls this action over HTTPS at POST https://turnzero.ai/api/v1/actions/choose_products, with a bearer credential and the action's payload as the JSON body.
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.
Contract description #
Choose which of your account's products this connection's tools reach. Name every product to have on: the call replaces the connection's choice, so a product you leave out is turned off and its tools leave the list.
Only a person's sign-in can call it, including an AI tool under that sign-in, and the choice lasts until that sign-in ends. If the new tools don't show up: on claude.ai, choose Refresh tools list in the connector's menu; on ChatGPT, press the connector's Refresh, then open a new chat; elsewhere, start a new session or restart your AI tool.
Access and action metadata #
{
"name": "choose_products",
"resource": "connection",
"tier": "reversible",
"admits": [
"device_sign_in"
],
"summary": "Choose which of the account's products this connection reaches: the call lists the products to have on and replaces the connection's choice, under the connection's own sign-in alone.",
"annotations": {
"readOnlyHint": false,
"destructiveHint": false,
"openWorldHint": false,
"idempotentHint": true
}
}
MCP catalog entry #
{
"name": "choose_products",
"title": "Choose this connection's products",
"tier": "reversible",
"summary": "Choose which of your account's products this connection's tools reach. Name every product to have on: the call replaces the connection's choice, so a product you leave out is turned off and its tools leave the list.\n\nOnly a person's sign-in can call it, including an AI tool under that sign-in, and the choice lasts until that sign-in ends. If the new tools don't show up: on claude.ai, choose Refresh tools list in the connector's menu; on ChatGPT, press the connector's Refresh, then open a new chat; elsewhere, start a new session or restart your AI tool.",
"scenario": "API-L0-21",
"owners": [
"API-L0-21",
"MAPI-19",
"MCP-01",
"MCP-08"
]
}
request #
| JSON pointer | Description and constraints |
|---|---|
| "" (root) | Type: object Required fields: ["products"] |
| / |
The products to have on for this connection, each named once. The call replaces the connection's choice, so a product you leave out is turned off. A product your account does not hold is refused. Type: array Minimum items: 1 Maximum items: 3 uniqueItems: true |
| / |
Allowed values: ["tzcloud","tztrack","tzmesh"] |
response #
| JSON pointer | Description and constraints |
|---|---|
| "" (root) | Type: object Required fields: ["contract_version","on","off","detail"] Additional properties: false |
| / |
Required value: 1 |
| / |
The products now on for this connection, by the words this call takes. Type: array |
| / |
Type: string |
| / |
Each product your account holds that is now off for this connection. Type: array |
| / |
Type: string |
| / |
Type: string |
Complete payload contract #
{
"request": {
"type": "object",
"required": [
"products"
],
"properties": {
"products": {
"type": "array",
"minItems": 1,
"maxItems": 3,
"uniqueItems": true,
"items": {
"enum": [
"tzcloud",
"tztrack",
"tzmesh"
]
},
"description": "The products to have on for this connection, each named once. The call replaces the connection's choice, so a product you leave out is turned off. A product your account does not hold is refused."
}
}
},
"response": {
"type": "object",
"required": [
"contract_version",
"on",
"off",
"detail"
],
"properties": {
"contract_version": {
"const": 1
},
"on": {
"type": "array",
"items": {
"type": "string"
},
"description": "The products now on for this connection, by the words this call takes."
},
"off": {
"type": "array",
"items": {
"type": "string"
},
"description": "Each product your account holds that is now off for this connection."
},
"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