Draft Mission Test Config Change
draftMissionTestConfigChangeCheck a CHANGE to a saved mission-test config without saving it. Takes the config id and only the fields to change (same as the update body; null clears description, tags, maxDurationSecs, backgroundNoise, advancedParams or language). Returns the full config as it would be after the change, changes (only fields whose value would differ, with before and after), problems (every failed check at once) and version (the config's current updatedAt). Nothing is saved or changed, so it is safe to call repeatedly. Use when: the user wants to edit a test and you want to show what would change before they save it. Returns 404 if the config does not exist in your workspace. Saving is a separate step the user takes in the app.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"id": "<id>"
},
"name": "draftMissionTestConfigChange"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Mission test config identifier. | |
| name | No | ||
| tags | No | Lowercase kebab-case tag list (1-32 chars per tag, max 10 tags). Pass `null` to clear all tags (DDB REMOVE — same sentinel pattern as `description: null`). Pass `[]` to clear (handler normalises empty array to null before persisting). Omit the key to leave existing tags unchanged. | |
| sector | No | ||
| mission | No | ||
| voiceId | No | Telnyx voice id for the call, from the operator-enabled catalogue (`GET /testing/voices`). Omit to use the configured default voice. | |
| language | No | The call language. Pass `null` to clear it (DDB REMOVE — same sentinel pattern as `advancedParams`), which reverts the config to English. Omit the key to leave the current value unchanged. | |
| profileId | No | ||
| acceptance | No | ||
| description | No | Pass `null` to clear the description attribute (DDB REMOVE). Omit the key to leave the current value unchanged. | |
| phoneNumber | No | ||
| advancedParams | No | Per-call turn-detection overrides. Pass `null` to clear it (DDB REMOVE — same sentinel pattern as `description: null`), which reverts the config to mission-tester's env-var defaults. Omit the key to leave the current value unchanged. This is OpenAPI 3.1.0, so the nullable branch is expressed with `anyOf` + `type: 'null'` rather than the 3.0 `nullable` keyword (AJV ignores `nullable` under 3.1 — memory `feedback_ajv_openapi_nullable`). | |
| carrierRouteId | No | Bring-your-own-carrier (invite-only): the carrier route this config's runs dial through. Pass `null` to clear it, so runs dial over nopaque's network again. Omit the key to leave the current value unchanged. Changing `phoneNumber` alone re-checks the new number against the route already saved. | |
| backgroundNoise | No | Caller background noise played under the call. Pass `null` to remove it (no noise), or omit the key to leave the current value unchanged. | |
| maxDurationSecs | No | Per-call duration cap in seconds. Pass `null` to clear it (DDB REMOVE — same sentinel pattern as `description: null`), which reverts the config to the server default for its mission kind. Omit the key to leave the current value unchanged. The null branch is declared with `anyOf` + `type: 'null'` for the same reason `advancedParams` below is — see the note there. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| config | Yes | The full stored config as it would be after the change. Its `updatedAt` is the current one; a real save would set a new one. | |
| changes | Yes | Only the fields whose value would differ from the stored one. | |
| version | Yes | The stored config's current `updatedAt`. Pass it as `expectedUpdatedAt` when saving the change, so a save is refused if the config changed in between. | |
| problems | Yes | Every check that failed. Empty when the change could be saved as sent. |