From ea31cec1a12813525d873680a952404a4dc3d29c Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Tue, 15 Apr 2025 21:21:52 +0000 Subject: [PATCH] chore: update OpenAPI specification --- fern/apis/api/openapi.json | 511 +++++++++++++++++++++++++++++++------ 1 file changed, 431 insertions(+), 80 deletions(-) diff --git a/fern/apis/api/openapi.json b/fern/apis/api/openapi.json index d80492dbd..ac5fa3627 100644 --- a/fern/apis/api/openapi.json +++ b/fern/apis/api/openapi.json @@ -1141,6 +1141,10 @@ "$ref": "#/components/schemas/CreateSlackSendMessageToolDTO", "title": "SlackSendMessageTool" }, + { + "$ref": "#/components/schemas/CreateSmsSendToolDTO", + "title": "SmsSendTool" + }, { "$ref": "#/components/schemas/CreateMcpToolDTO", "title": "McpTool" @@ -1164,6 +1168,7 @@ "google.sheets.row.append": "#/components/schemas/CreateGoogleSheetsRowAppendToolDTO", "google.calendar.availability.check": "#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO", "slack.message.send": "#/components/schemas/CreateSlackSendMessageToolDTO", + "sms": "#/components/schemas/CreateSmsSendToolDTO", "mcp": "#/components/schemas/CreateMcpToolDTO" } } @@ -1238,6 +1243,10 @@ "$ref": "#/components/schemas/SlackSendMessageTool", "title": "SlackSendMessageTool" }, + { + "$ref": "#/components/schemas/SmsSendTool", + "title": "SmsSendTool" + }, { "$ref": "#/components/schemas/McpTool", "title": "McpTool" @@ -1261,6 +1270,7 @@ "google.sheets.row.append": "#/components/schemas/GoogleSheetsRowAppendTool", "google.calendar.availability.check": "#/components/schemas/GoogleCalendarCheckAvailabilityTool", "slack.message.send": "#/components/schemas/SlackSendMessageTool", + "sms": "#/components/schemas/SmsSendTool", "mcp": "#/components/schemas/McpTool" } } @@ -1443,6 +1453,10 @@ "$ref": "#/components/schemas/SlackSendMessageTool", "title": "SlackSendMessageTool" }, + { + "$ref": "#/components/schemas/SmsSendTool", + "title": "SmsSendTool" + }, { "$ref": "#/components/schemas/McpTool", "title": "McpTool" @@ -1466,6 +1480,7 @@ "google.sheets.row.append": "#/components/schemas/GoogleSheetsRowAppendTool", "google.calendar.availability.check": "#/components/schemas/GoogleCalendarCheckAvailabilityTool", "slack.message.send": "#/components/schemas/SlackSendMessageTool", + "sms": "#/components/schemas/SmsSendTool", "mcp": "#/components/schemas/McpTool" } } @@ -1566,6 +1581,10 @@ "$ref": "#/components/schemas/SlackSendMessageTool", "title": "SlackSendMessageTool" }, + { + "$ref": "#/components/schemas/SmsSendTool", + "title": "SmsSendTool" + }, { "$ref": "#/components/schemas/McpTool", "title": "McpTool" @@ -1589,6 +1608,7 @@ "google.sheets.row.append": "#/components/schemas/GoogleSheetsRowAppendTool", "google.calendar.availability.check": "#/components/schemas/GoogleCalendarCheckAvailabilityTool", "slack.message.send": "#/components/schemas/SlackSendMessageTool", + "sms": "#/components/schemas/SmsSendTool", "mcp": "#/components/schemas/McpTool" } } @@ -1685,6 +1705,10 @@ "$ref": "#/components/schemas/UpdateSlackSendMessageToolDTO", "title": "SlackSendMessageTool" }, + { + "$ref": "#/components/schemas/UpdateSmsSendToolDTO", + "title": "SmsSendTool" + }, { "$ref": "#/components/schemas/UpdateMcpToolDTO", "title": "McpTool" @@ -1708,6 +1732,7 @@ "google.sheets.row.append": "#/components/schemas/UpdateGoogleSheetsRowAppendToolDTO", "google.calendar.availability.check": "#/components/schemas/UpdateGoogleCalendarCheckAvailabilityToolDTO", "slack.message.send": "#/components/schemas/UpdateSlackSendMessageToolDTO", + "sms": "#/components/schemas/UpdateSmsSendToolDTO", "mcp": "#/components/schemas/UpdateMcpToolDTO" } } @@ -1782,6 +1807,10 @@ "$ref": "#/components/schemas/SlackSendMessageTool", "title": "SlackSendMessageTool" }, + { + "$ref": "#/components/schemas/SmsSendTool", + "title": "SmsSendTool" + }, { "$ref": "#/components/schemas/McpTool", "title": "McpTool" @@ -1805,6 +1834,7 @@ "google.sheets.row.append": "#/components/schemas/GoogleSheetsRowAppendTool", "google.calendar.availability.check": "#/components/schemas/GoogleCalendarCheckAvailabilityTool", "slack.message.send": "#/components/schemas/SlackSendMessageTool", + "sms": "#/components/schemas/SmsSendTool", "mcp": "#/components/schemas/McpTool" } } @@ -1902,6 +1932,10 @@ "$ref": "#/components/schemas/SlackSendMessageTool", "title": "SlackSendMessageTool" }, + { + "$ref": "#/components/schemas/SmsSendTool", + "title": "SmsSendTool" + }, { "$ref": "#/components/schemas/McpTool", "title": "McpTool" @@ -1925,6 +1959,7 @@ "google.sheets.row.append": "#/components/schemas/GoogleSheetsRowAppendTool", "google.calendar.availability.check": "#/components/schemas/GoogleCalendarCheckAvailabilityTool", "slack.message.send": "#/components/schemas/SlackSendMessageTool", + "sms": "#/components/schemas/SmsSendTool", "mcp": "#/components/schemas/McpTool" } } @@ -4644,26 +4679,6 @@ } } }, - "Transport": { - "type": "object", - "properties": { - "provider": { - "type": "string", - "description": "This is the provider used for the call.", - "enum": [ - "twilio", - "vonage", - "vapi", - "daily", - "telnyx" - ] - }, - "assistantVideoEnabled": { - "type": "boolean", - "description": "This is determines whether the assistant will have video enabled.\n\nOnly relevant for `webCall` type." - } - } - }, "FallbackTranscriberPlan": { "type": "object", "properties": { @@ -4736,6 +4751,13 @@ "en" ] }, + "confidenceThreshold": { + "type": "number", + "description": "Transcripts below this confidence threshold will be discarded.\n\n@default 0.4", + "minimum": 0, + "maximum": 1, + "example": 0.4 + }, "realtimeUrl": { "type": "string", "description": "The WebSocket URL that the transcriber connects to." @@ -5179,6 +5201,13 @@ "description": "If set to true, this will cause deepgram to convert spoken numbers to literal numerals. For example, \"my phone number is nine-seven-two...\" would become \"my phone number is 972...\"\n\n@default false", "example": false }, + "confidenceThreshold": { + "type": "number", + "description": "Transcripts below this confidence threshold will be discarded.\n\n@default 0.4", + "minimum": 0, + "maximum": 1, + "example": 0.4 + }, "keywords": { "description": "These keywords are passed to the transcription model to help it pick up use-case specific words. Anything that may not be a common word, like your company name, should be added here.", "type": "array", @@ -5588,6 +5617,13 @@ "description": "If true, audio will be pre-processed to improve accuracy but latency will increase. Default value is false.", "example": false }, + "confidenceThreshold": { + "type": "number", + "description": "Transcripts below this confidence threshold will be discarded.\n\n@default 0.4", + "minimum": 0, + "maximum": 1, + "example": 0.4 + }, "fallbackPlan": { "description": "This is the plan for voice provider fallbacks in the event that the primary voice provider fails.", "allOf": [ @@ -6026,6 +6062,13 @@ "en" ] }, + "confidenceThreshold": { + "type": "number", + "description": "Transcripts below this confidence threshold will be discarded.\n\n@default 0.4", + "minimum": 0, + "maximum": 1, + "example": 0.4 + }, "realtimeUrl": { "type": "string", "description": "The WebSocket URL that the transcriber connects to." @@ -6377,6 +6420,13 @@ "description": "If set to true, this will cause deepgram to convert spoken numbers to literal numerals. For example, \"my phone number is nine-seven-two...\" would become \"my phone number is 972...\"\n\n@default false", "example": false }, + "confidenceThreshold": { + "type": "number", + "description": "Transcripts below this confidence threshold will be discarded.\n\n@default 0.4", + "minimum": 0, + "maximum": 1, + "example": 0.4 + }, "keywords": { "description": "These keywords are passed to the transcription model to help it pick up use-case specific words. Anything that may not be a common word, like your company name, should be added here.", "type": "array", @@ -6769,6 +6819,13 @@ "type": "boolean", "description": "If true, audio will be pre-processed to improve accuracy but latency will increase. Default value is false.", "example": false + }, + "confidenceThreshold": { + "type": "number", + "description": "Transcripts below this confidence threshold will be discarded.\n\n@default 0.4", + "minimum": 0, + "maximum": 1, + "example": 0.4 } }, "required": [ @@ -10252,6 +10309,9 @@ "type": "string", "description": "This is the OpenAI model that will be used.", "enum": [ + "gpt-4.1", + "gpt-4.1-mini", + "gpt-4.1-nano", "gpt-4.5-preview", "chatgpt-4o-latest", "o3-mini", @@ -10262,8 +10322,8 @@ "gpt-4o-realtime-preview-2024-10-01", "gpt-4o-realtime-preview-2024-12-17", "gpt-4o-mini-realtime-preview-2024-12-17", - "gpt-4o-mini", "gpt-4o-mini-2024-07-18", + "gpt-4o-mini", "gpt-4o", "gpt-4o-2024-05-13", "gpt-4o-2024-08-06", @@ -10286,6 +10346,9 @@ "type": "array", "description": "These are the fallback models that will be used if the primary model fails. This shouldn't be specified unless you have a specific reason to do so. Vapi will automatically find the fastest fallbacks that make sense.", "enum": [ + "gpt-4.1", + "gpt-4.1-mini", + "gpt-4.1-nano", "gpt-4.5-preview", "chatgpt-4o-latest", "o3-mini", @@ -10296,8 +10359,8 @@ "gpt-4o-realtime-preview-2024-10-01", "gpt-4o-realtime-preview-2024-12-17", "gpt-4o-mini-realtime-preview-2024-12-17", - "gpt-4o-mini", "gpt-4o-mini-2024-07-18", + "gpt-4o-mini", "gpt-4o", "gpt-4o-2024-05-13", "gpt-4o-2024-08-06", @@ -10322,6 +10385,9 @@ "items": { "type": "string", "enum": [ + "gpt-4.1", + "gpt-4.1-mini", + "gpt-4.1-nano", "gpt-4.5-preview", "chatgpt-4o-latest", "o3-mini", @@ -10332,8 +10398,8 @@ "gpt-4o-realtime-preview-2024-10-01", "gpt-4o-realtime-preview-2024-12-17", "gpt-4o-mini-realtime-preview-2024-12-17", - "gpt-4o-mini", "gpt-4o-mini-2024-07-18", + "gpt-4o-mini", "gpt-4o", "gpt-4o-2024-05-13", "gpt-4o-2024-08-06", @@ -10758,17 +10824,15 @@ "ai" ] }, - "matches": { - "type": "array", - "maxLength": 100, - "items": { - "type": "string" - } + "prompt": { + "type": "string", + "description": "This is the prompt for the AI edge condition. It should evaluate to a boolean.", + "maxLength": 1000 } }, "required": [ "type", - "matches" + "prompt" ] }, "LogicEdgeCondition": { @@ -11596,15 +11660,25 @@ "type": "object", "properties": { "speed": { - "type": "string", - "enum": [ - "slowest", - "slow", - "normal", - "fast", - "fastest" - ], - "example": "normal" + "oneOf": [ + { + "type": "string", + "enum": [ + "slowest", + "slow", + "normal", + "fast", + "fastest" + ], + "example": "normal" + }, + { + "type": "number", + "minimum": -1, + "maximum": 1, + "example": 0.5 + } + ] }, "emotion": { "type": "string", @@ -11904,6 +11978,11 @@ "description": "This enables the use of https://elevenlabs.io/docs/speech-synthesis/prompting#pronunciation. Defaults to false to save latency.\n\n@default false", "example": false }, + "autoMode": { + "type": "boolean", + "description": "Defines the auto mode for voice settings. Defaults to false.", + "example": false + }, "model": { "type": "string", "description": "This is the model that will be used. Defaults to 'eleven_turbo_v2' if not specified.", @@ -12132,19 +12211,6 @@ }, "voiceId": { "description": "This is the provider-specific ID that will be used.\nPlease note that ash, ballad, coral, sage, and verse may only be used with realtime models.", - "enum": [ - "alloy", - "echo", - "fable", - "onyx", - "nova", - "shimmer", - "ash", - "ballad", - "coral", - "sage", - "verse" - ], "oneOf": [ { "type": "string", @@ -13135,6 +13201,11 @@ "description": "This enables the use of https://elevenlabs.io/docs/speech-synthesis/prompting#pronunciation. Defaults to false to save latency.\n\n@default false", "example": false }, + "autoMode": { + "type": "boolean", + "description": "Defines the auto mode for voice settings. Defaults to false.", + "example": false + }, "model": { "type": "string", "description": "This is the model that will be used. Defaults to 'eleven_turbo_v2' if not specified.", @@ -13331,19 +13402,6 @@ }, "voiceId": { "description": "This is the provider-specific ID that will be used.\nPlease note that ash, ballad, coral, sage, and verse may only be used with realtime models.", - "enum": [ - "alloy", - "echo", - "fable", - "onyx", - "nova", - "shimmer", - "ash", - "ballad", - "coral", - "sage", - "verse" - ], "oneOf": [ { "type": "string", @@ -17943,6 +18001,14 @@ "maxLength": 10, "example": null }, + "assistantOverrides": { + "description": "These are the overrides for the assistant's settings and template variables specific to this customer.\nThis allows customization of the assistant's behavior for individual customers in batch calls.", + "allOf": [ + { + "$ref": "#/components/schemas/AssistantOverrides" + } + ] + }, "number": { "type": "string", "description": "This is the number of the customer.", @@ -17987,7 +18053,8 @@ "enum": [ "inboundPhoneCall", "outboundPhoneCall", - "webCall" + "webCall", + "vapi.websocketCall" ] }, "costs": { @@ -18324,6 +18391,34 @@ "call.in-progress.error-vapifault-anthropic-429-exceeded-quota", "call.in-progress.error-providerfault-anthropic-500-server-error", "call.in-progress.error-providerfault-anthropic-503-server-overloaded-error", + "pipeline-error-anthropic-bedrock-400-bad-request-validation-failed", + "pipeline-error-anthropic-bedrock-401-unauthorized", + "pipeline-error-anthropic-bedrock-403-model-access-denied", + "pipeline-error-anthropic-bedrock-429-exceeded-quota", + "pipeline-error-anthropic-bedrock-500-server-error", + "pipeline-error-anthropic-bedrock-503-server-overloaded-error", + "pipeline-error-anthropic-bedrock-llm-failed", + "call.in-progress.error-vapifault-anthropic-bedrock-llm-failed", + "call.in-progress.error-vapifault-anthropic-bedrock-400-bad-request-validation-failed", + "call.in-progress.error-vapifault-anthropic-bedrock-401-unauthorized", + "call.in-progress.error-vapifault-anthropic-bedrock-403-model-access-denied", + "call.in-progress.error-vapifault-anthropic-bedrock-429-exceeded-quota", + "call.in-progress.error-providerfault-anthropic-bedrock-500-server-error", + "call.in-progress.error-providerfault-anthropic-bedrock-503-server-overloaded-error", + "pipeline-error-anthropic-vertex-400-bad-request-validation-failed", + "pipeline-error-anthropic-vertex-401-unauthorized", + "pipeline-error-anthropic-vertex-403-model-access-denied", + "pipeline-error-anthropic-vertex-429-exceeded-quota", + "pipeline-error-anthropic-vertex-500-server-error", + "pipeline-error-anthropic-vertex-503-server-overloaded-error", + "pipeline-error-anthropic-vertex-llm-failed", + "call.in-progress.error-vapifault-anthropic-vertex-llm-failed", + "call.in-progress.error-vapifault-anthropic-vertex-400-bad-request-validation-failed", + "call.in-progress.error-vapifault-anthropic-vertex-401-unauthorized", + "call.in-progress.error-vapifault-anthropic-vertex-403-model-access-denied", + "call.in-progress.error-vapifault-anthropic-vertex-429-exceeded-quota", + "call.in-progress.error-providerfault-anthropic-vertex-500-server-error", + "call.in-progress.error-providerfault-anthropic-vertex-503-server-overloaded-error", "pipeline-error-together-ai-400-bad-request-validation-failed", "pipeline-error-together-ai-401-unauthorized", "pipeline-error-together-ai-403-model-access-denied", @@ -18501,8 +18596,8 @@ "call.in-progress.error-providerfault-playht-504-gateway-error", "pipeline-error-custom-transcriber-failed", "call.in-progress.error-vapifault-custom-transcriber-failed", - "pipeline-error-11labs-transcriber-failed", - "call.in-progress.error-vapifault-11labs-transcriber-failed", + "pipeline-error-eleven-labs-transcriber-failed", + "call.in-progress.error-vapifault-eleven-labs-transcriber-failed", "pipeline-error-deepgram-returning-400-no-such-model-language-tier-combination", "pipeline-error-deepgram-returning-401-invalid-credentials", "pipeline-error-deepgram-returning-403-model-access-denied", @@ -18628,14 +18723,6 @@ } ] }, - "transport": { - "description": "This is the transport used for the call.", - "allOf": [ - { - "$ref": "#/components/schemas/Transport" - } - ] - }, "phoneCallProviderId": { "type": "string", "description": "The ID of the call as provided by the phone number service. callSid in Twilio. conversationUuid in Vonage. callControlId in Telnyx.\n\nOnly relevant for `outboundPhoneCall` and `inboundPhoneCall` type." @@ -18708,6 +18795,10 @@ "$ref": "#/components/schemas/SchedulePlan" } ] + }, + "transport": { + "type": "object", + "description": "This is the transport of the call." } }, "required": [ @@ -18778,6 +18869,10 @@ } ] }, + "transport": { + "type": "object", + "description": "This is the transport of the call." + }, "assistantId": { "type": "string", "description": "This is the assistant that will be used for the call. To use a transient assistant, use `assistant` instead." @@ -18896,6 +18991,10 @@ } ] }, + "transport": { + "type": "object", + "description": "This is the transport of the call." + }, "assistantId": { "type": "string", "description": "This is the assistant that will be used for the call. To use a transient assistant, use `assistant` instead." @@ -23462,6 +23561,88 @@ "updatedAt" ] }, + "SmsSendTool": { + "type": "object", + "properties": { + "async": { + "type": "boolean", + "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).", + "example": false + }, + "messages": { + "type": "array", + "description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/ToolMessageStart", + "title": "ToolMessageStart" + }, + { + "$ref": "#/components/schemas/ToolMessageComplete", + "title": "ToolMessageComplete" + }, + { + "$ref": "#/components/schemas/ToolMessageFailed", + "title": "ToolMessageFailed" + }, + { + "$ref": "#/components/schemas/ToolMessageDelayed", + "title": "ToolMessageDelayed" + } + ] + } + }, + "type": { + "type": "string", + "enum": [ + "sms" + ], + "description": "The type of tool. \"sms\" for Twilio SMS sending tool." + }, + "id": { + "type": "string", + "description": "This is the unique identifier for the tool." + }, + "orgId": { + "type": "string", + "description": "This is the unique identifier for the organization that this tool belongs to." + }, + "createdAt": { + "format": "date-time", + "type": "string", + "description": "This is the ISO 8601 date-time string of when the tool was created." + }, + "updatedAt": { + "format": "date-time", + "type": "string", + "description": "This is the ISO 8601 date-time string of when the tool was last updated." + }, + "function": { + "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.", + "allOf": [ + { + "$ref": "#/components/schemas/OpenAIFunction" + } + ] + }, + "server": { + "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.", + "allOf": [ + { + "$ref": "#/components/schemas/Server" + } + ] + } + }, + "required": [ + "type", + "id", + "orgId", + "createdAt", + "updatedAt" + ] + }, "McpTool": { "type": "object", "properties": { @@ -23849,6 +24030,66 @@ "name" ] }, + "CreateSmsSendToolDTO": { + "type": "object", + "properties": { + "async": { + "type": "boolean", + "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).", + "example": false + }, + "messages": { + "type": "array", + "description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/ToolMessageStart", + "title": "ToolMessageStart" + }, + { + "$ref": "#/components/schemas/ToolMessageComplete", + "title": "ToolMessageComplete" + }, + { + "$ref": "#/components/schemas/ToolMessageFailed", + "title": "ToolMessageFailed" + }, + { + "$ref": "#/components/schemas/ToolMessageDelayed", + "title": "ToolMessageDelayed" + } + ] + } + }, + "type": { + "type": "string", + "enum": [ + "sms" + ], + "description": "The type of tool. \"sms\" for Twilio SMS sending tool." + }, + "function": { + "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.", + "allOf": [ + { + "$ref": "#/components/schemas/OpenAIFunction" + } + ] + }, + "server": { + "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.", + "allOf": [ + { + "$ref": "#/components/schemas/Server" + } + ] + } + }, + "required": [ + "type" + ] + }, "CreateMcpToolDTO": { "type": "object", "properties": { @@ -24753,6 +24994,56 @@ } } }, + "UpdateSmsSendToolDTO": { + "type": "object", + "properties": { + "async": { + "type": "boolean", + "description": "This determines if the tool is async.\n\nIf async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.\n\nIf sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.\n\nDefaults to synchronous (`false`).", + "example": false + }, + "messages": { + "type": "array", + "description": "These are the messages that will be spoken to the user as the tool is running.\n\nFor some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/ToolMessageStart", + "title": "ToolMessageStart" + }, + { + "$ref": "#/components/schemas/ToolMessageComplete", + "title": "ToolMessageComplete" + }, + { + "$ref": "#/components/schemas/ToolMessageFailed", + "title": "ToolMessageFailed" + }, + { + "$ref": "#/components/schemas/ToolMessageDelayed", + "title": "ToolMessageDelayed" + } + ] + } + }, + "function": { + "description": "This is the function definition of the tool.\n\nFor `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.\n\nAn example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument \"reason\". Then, in `messages` array, you can have many \"request-complete\" messages. One of these messages will be triggered if the `messages[].conditions` matches the \"reason\" argument.", + "allOf": [ + { + "$ref": "#/components/schemas/OpenAIFunction" + } + ] + }, + "server": { + "description": "This is the server that will be hit when this tool is requested by the model.\n\nAll requests will be sent with the call object among other things. You can find more details in the Server URL documentation.\n\nThis overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.", + "allOf": [ + { + "$ref": "#/components/schemas/Server" + } + ] + } + } + }, "UpdateMcpToolDTO": { "type": "object", "properties": { @@ -25409,6 +25700,10 @@ "$ref": "#/components/schemas/TestSuitePhoneNumber" } ] + }, + "assistantId": { + "type": "string", + "description": "This is the assistantId that is being tested." } } }, @@ -32800,6 +33095,34 @@ "call.in-progress.error-vapifault-anthropic-429-exceeded-quota", "call.in-progress.error-providerfault-anthropic-500-server-error", "call.in-progress.error-providerfault-anthropic-503-server-overloaded-error", + "pipeline-error-anthropic-bedrock-400-bad-request-validation-failed", + "pipeline-error-anthropic-bedrock-401-unauthorized", + "pipeline-error-anthropic-bedrock-403-model-access-denied", + "pipeline-error-anthropic-bedrock-429-exceeded-quota", + "pipeline-error-anthropic-bedrock-500-server-error", + "pipeline-error-anthropic-bedrock-503-server-overloaded-error", + "pipeline-error-anthropic-bedrock-llm-failed", + "call.in-progress.error-vapifault-anthropic-bedrock-llm-failed", + "call.in-progress.error-vapifault-anthropic-bedrock-400-bad-request-validation-failed", + "call.in-progress.error-vapifault-anthropic-bedrock-401-unauthorized", + "call.in-progress.error-vapifault-anthropic-bedrock-403-model-access-denied", + "call.in-progress.error-vapifault-anthropic-bedrock-429-exceeded-quota", + "call.in-progress.error-providerfault-anthropic-bedrock-500-server-error", + "call.in-progress.error-providerfault-anthropic-bedrock-503-server-overloaded-error", + "pipeline-error-anthropic-vertex-400-bad-request-validation-failed", + "pipeline-error-anthropic-vertex-401-unauthorized", + "pipeline-error-anthropic-vertex-403-model-access-denied", + "pipeline-error-anthropic-vertex-429-exceeded-quota", + "pipeline-error-anthropic-vertex-500-server-error", + "pipeline-error-anthropic-vertex-503-server-overloaded-error", + "pipeline-error-anthropic-vertex-llm-failed", + "call.in-progress.error-vapifault-anthropic-vertex-llm-failed", + "call.in-progress.error-vapifault-anthropic-vertex-400-bad-request-validation-failed", + "call.in-progress.error-vapifault-anthropic-vertex-401-unauthorized", + "call.in-progress.error-vapifault-anthropic-vertex-403-model-access-denied", + "call.in-progress.error-vapifault-anthropic-vertex-429-exceeded-quota", + "call.in-progress.error-providerfault-anthropic-vertex-500-server-error", + "call.in-progress.error-providerfault-anthropic-vertex-503-server-overloaded-error", "pipeline-error-together-ai-400-bad-request-validation-failed", "pipeline-error-together-ai-401-unauthorized", "pipeline-error-together-ai-403-model-access-denied", @@ -32977,8 +33300,8 @@ "call.in-progress.error-providerfault-playht-504-gateway-error", "pipeline-error-custom-transcriber-failed", "call.in-progress.error-vapifault-custom-transcriber-failed", - "pipeline-error-11labs-transcriber-failed", - "call.in-progress.error-vapifault-11labs-transcriber-failed", + "pipeline-error-eleven-labs-transcriber-failed", + "call.in-progress.error-vapifault-eleven-labs-transcriber-failed", "pipeline-error-deepgram-returning-400-no-such-model-language-tier-combination", "pipeline-error-deepgram-returning-401-invalid-credentials", "pipeline-error-deepgram-returning-403-model-access-denied", @@ -33850,6 +34173,34 @@ "call.in-progress.error-vapifault-anthropic-429-exceeded-quota", "call.in-progress.error-providerfault-anthropic-500-server-error", "call.in-progress.error-providerfault-anthropic-503-server-overloaded-error", + "pipeline-error-anthropic-bedrock-400-bad-request-validation-failed", + "pipeline-error-anthropic-bedrock-401-unauthorized", + "pipeline-error-anthropic-bedrock-403-model-access-denied", + "pipeline-error-anthropic-bedrock-429-exceeded-quota", + "pipeline-error-anthropic-bedrock-500-server-error", + "pipeline-error-anthropic-bedrock-503-server-overloaded-error", + "pipeline-error-anthropic-bedrock-llm-failed", + "call.in-progress.error-vapifault-anthropic-bedrock-llm-failed", + "call.in-progress.error-vapifault-anthropic-bedrock-400-bad-request-validation-failed", + "call.in-progress.error-vapifault-anthropic-bedrock-401-unauthorized", + "call.in-progress.error-vapifault-anthropic-bedrock-403-model-access-denied", + "call.in-progress.error-vapifault-anthropic-bedrock-429-exceeded-quota", + "call.in-progress.error-providerfault-anthropic-bedrock-500-server-error", + "call.in-progress.error-providerfault-anthropic-bedrock-503-server-overloaded-error", + "pipeline-error-anthropic-vertex-400-bad-request-validation-failed", + "pipeline-error-anthropic-vertex-401-unauthorized", + "pipeline-error-anthropic-vertex-403-model-access-denied", + "pipeline-error-anthropic-vertex-429-exceeded-quota", + "pipeline-error-anthropic-vertex-500-server-error", + "pipeline-error-anthropic-vertex-503-server-overloaded-error", + "pipeline-error-anthropic-vertex-llm-failed", + "call.in-progress.error-vapifault-anthropic-vertex-llm-failed", + "call.in-progress.error-vapifault-anthropic-vertex-400-bad-request-validation-failed", + "call.in-progress.error-vapifault-anthropic-vertex-401-unauthorized", + "call.in-progress.error-vapifault-anthropic-vertex-403-model-access-denied", + "call.in-progress.error-vapifault-anthropic-vertex-429-exceeded-quota", + "call.in-progress.error-providerfault-anthropic-vertex-500-server-error", + "call.in-progress.error-providerfault-anthropic-vertex-503-server-overloaded-error", "pipeline-error-together-ai-400-bad-request-validation-failed", "pipeline-error-together-ai-401-unauthorized", "pipeline-error-together-ai-403-model-access-denied", @@ -34027,8 +34378,8 @@ "call.in-progress.error-providerfault-playht-504-gateway-error", "pipeline-error-custom-transcriber-failed", "call.in-progress.error-vapifault-custom-transcriber-failed", - "pipeline-error-11labs-transcriber-failed", - "call.in-progress.error-vapifault-11labs-transcriber-failed", + "pipeline-error-eleven-labs-transcriber-failed", + "call.in-progress.error-vapifault-eleven-labs-transcriber-failed", "pipeline-error-deepgram-returning-400-no-such-model-language-tier-combination", "pipeline-error-deepgram-returning-401-invalid-credentials", "pipeline-error-deepgram-returning-403-model-access-denied",