From d9ea2b7da6fb59f5bf30636abde72f327cbd3950 Mon Sep 17 00:00:00 2001 From: github-actions Date: Sun, 18 Jan 2026 00:33:03 +0000 Subject: [PATCH] Update API specifications with fern api update --- fern/apis/api/openapi.json | 1567 +++++++++++++++--------------------- 1 file changed, 628 insertions(+), 939 deletions(-) diff --git a/fern/apis/api/openapi.json b/fern/apis/api/openapi.json index fcb86d3c1..8fb219bd2 100644 --- a/fern/apis/api/openapi.json +++ b/fern/apis/api/openapi.json @@ -5763,10 +5763,10 @@ } }, { - "name": "policyId", + "name": "triggerId", "required": false, "in": "query", - "description": "This will return issues with the specified policy ID.", + "description": "This will return issues with the specified trigger ID.", "schema": { "type": "string" } @@ -6005,332 +6005,6 @@ ] } }, - "/monitoring/policy": { - "get": { - "operationId": "PolicyController_findAll", - "summary": "List Policies", - "parameters": [ - { - "name": "id", - "required": false, - "in": "query", - "description": "This will return policies with the specified id.", - "schema": { - "type": "string" - } - }, - { - "name": "severity", - "required": false, - "in": "query", - "description": "This will return policies with the specified severity.", - "schema": { - "enum": [ - "error", - "warning", - "info" - ], - "type": "string" - } - }, - { - "name": "monitorId", - "required": false, - "in": "query", - "description": "This will return policies associated with the specified monitor ID.", - "schema": { - "type": "string" - } - }, - { - "name": "page", - "required": false, - "in": "query", - "description": "This is the page number to return. Defaults to 1.", - "schema": { - "minimum": 1, - "type": "number" - } - }, - { - "name": "sortOrder", - "required": false, - "in": "query", - "description": "This is the sort order for pagination. Defaults to 'DESC'.", - "schema": { - "enum": [ - "ASC", - "DESC" - ], - "type": "string" - } - }, - { - "name": "limit", - "required": false, - "in": "query", - "description": "This is the maximum number of items to return. Defaults to 100.", - "schema": { - "minimum": 0, - "maximum": 1000, - "type": "number" - } - }, - { - "name": "createdAtGt", - "required": false, - "in": "query", - "description": "This will return items where the createdAt is greater than the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - }, - { - "name": "createdAtLt", - "required": false, - "in": "query", - "description": "This will return items where the createdAt is less than the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - }, - { - "name": "createdAtGe", - "required": false, - "in": "query", - "description": "This will return items where the createdAt is greater than or equal to the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - }, - { - "name": "createdAtLe", - "required": false, - "in": "query", - "description": "This will return items where the createdAt is less than or equal to the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - }, - { - "name": "updatedAtGt", - "required": false, - "in": "query", - "description": "This will return items where the updatedAt is greater than the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - }, - { - "name": "updatedAtLt", - "required": false, - "in": "query", - "description": "This will return items where the updatedAt is less than the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - }, - { - "name": "updatedAtGe", - "required": false, - "in": "query", - "description": "This will return items where the updatedAt is greater than or equal to the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - }, - { - "name": "updatedAtLe", - "required": false, - "in": "query", - "description": "This will return items where the updatedAt is less than or equal to the specified value.", - "schema": { - "format": "date-time", - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Policy" - } - } - } - } - } - }, - "tags": [ - "Monitoring" - ], - "security": [ - { - "bearer": [] - } - ] - }, - "post": { - "operationId": "PolicyController_create", - "summary": "Create Policy", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreatePolicyDTO" - } - } - } - }, - "responses": { - "201": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Policy" - } - } - } - } - }, - "tags": [ - "Monitoring" - ], - "security": [ - { - "bearer": [] - } - ] - } - }, - "/monitoring/policy/{id}": { - "get": { - "operationId": "PolicyController_findOne", - "summary": "Get Policy", - "parameters": [ - { - "name": "id", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Policy" - } - } - } - } - }, - "tags": [ - "Monitoring" - ], - "security": [ - { - "bearer": [] - } - ] - }, - "patch": { - "operationId": "PolicyController_update", - "summary": "Update Policy", - "parameters": [ - { - "name": "id", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdatePolicyDTO" - } - } - } - }, - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Policy" - } - } - } - } - }, - "tags": [ - "Monitoring" - ], - "security": [ - { - "bearer": [] - } - ] - }, - "delete": { - "operationId": "PolicyController_delete", - "summary": "Delete Policy", - "parameters": [ - { - "name": "id", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Policy" - } - } - } - } - }, - "tags": [ - "Monitoring" - ], - "security": [ - { - "bearer": [] - } - ] - } - }, "/provider/{provider}/{resourceName}": { "post": { "operationId": "ProviderResourceController_createProviderResource", @@ -7769,6 +7443,7 @@ { "enum": [ "scribe_v1", + "scribe_v2", "scribe_v2_realtime" ] } @@ -9627,6 +9302,7 @@ { "enum": [ "scribe_v1", + "scribe_v2", "scribe_v2_realtime" ] } @@ -10673,6 +10349,15 @@ "langfuse" ] }, + "promptName": { + "type": "string", + "description": "The name of a Langfuse prompt to link generations to. This enables tracking which prompt version was used for each generation. https://langfuse.com/docs/prompt-management/features/link-to-traces" + }, + "promptVersion": { + "type": "number", + "description": "The version number of the Langfuse prompt to link generations to. Used together with promptName to identify the exact prompt version. https://langfuse.com/docs/prompt-management/features/link-to-traces", + "minimum": 1 + }, "tags": { "description": "This is an array of tags to be added to the Langfuse trace. Tags allow you to categorize and filter traces. https://langfuse.com/docs/tracing-features/tags", "type": "array", @@ -18124,6 +17809,89 @@ } } }, + "ComplianceOverride": { + "type": "object", + "properties": { + "forceStoreOnHipaaEnabled": { + "type": "boolean", + "description": "Force storage for this output under HIPAA. Only enable if output contains no sensitive data.", + "example": false + } + } + }, + "CreateStructuredOutputDTO": { + "type": "object", + "properties": { + "model": { + "description": "This is the model that will be used to extract the structured output.\n\nTo provide your own custom system and user prompts for structured output extraction, populate the messages array with your system and user messages. You can specify liquid templating in your system and user messages.\nBetween the system or user messages, you must reference either 'transcript' or 'messages' with the '{{}}' syntax to access the conversation history.\nBetween the system or user messages, you must reference a variation of the structured output with the '{{}}' syntax to access the structured output definition.\ni.e.:\n{{structuredOutput}}\n{{structuredOutput.name}}\n{{structuredOutput.description}}\n{{structuredOutput.schema}}\n\nIf model is not specified, GPT-4.1 will be used by default for extraction, utilizing default system and user prompts.\nIf messages or required fields are not specified, the default system and user prompts will be used.", + "oneOf": [ + { + "$ref": "#/components/schemas/WorkflowOpenAIModel", + "title": "WorkflowOpenAIModel" + }, + { + "$ref": "#/components/schemas/WorkflowAnthropicModel", + "title": "WorkflowAnthropicModel" + }, + { + "$ref": "#/components/schemas/WorkflowGoogleModel", + "title": "WorkflowGoogleModel" + }, + { + "$ref": "#/components/schemas/WorkflowCustomModel", + "title": "WorkflowCustomModel" + } + ] + }, + "compliancePlan": { + "description": "Compliance configuration for this output. Only enable overrides if no sensitive data will be stored.", + "example": { + "forceStoreOnHipaaEnabled": false + }, + "allOf": [ + { + "$ref": "#/components/schemas/ComplianceOverride" + } + ] + }, + "name": { + "type": "string", + "description": "This is the name of the structured output.", + "minLength": 1, + "maxLength": 40 + }, + "schema": { + "description": "This is the JSON Schema definition for the structured output.\n\nThis is required when creating a structured output. Defines the structure and validation rules for the data that will be extracted. Supports all JSON Schema features including:\n- Objects and nested properties\n- Arrays and array validation\n- String, number, boolean, and null types\n- Enums and const values\n- Validation constraints (min/max, patterns, etc.)\n- Composition with allOf, anyOf, oneOf", + "allOf": [ + { + "$ref": "#/components/schemas/JsonSchema" + } + ] + }, + "description": { + "type": "string", + "description": "This is the description of what the structured output extracts.\n\nUse this to provide context about what data will be extracted and how it will be used." + }, + "assistantIds": { + "description": "These are the assistant IDs that this structured output is linked to.\n\nWhen linked to assistants, this structured output will be available for extraction during those assistant's calls.", + "type": "array", + "items": { + "type": "string" + } + }, + "workflowIds": { + "description": "These are the workflow IDs that this structured output is linked to.\n\nWhen linked to workflows, this structured output will be available for extraction during those workflow's execution.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "name", + "schema" + ] + }, "ScorecardMetric": { "type": "object", "properties": { @@ -18251,6 +18019,13 @@ "type": "string" } }, + "structuredOutputs": { + "description": "This is an array of transient structured outputs to be calculated during the call.\nThe outputs will be extracted and stored in `call.artifact.structuredOutputs` after the call is ended.\nUse this to provide inline structured output configurations instead of referencing existing ones via structuredOutputIds.", + "type": "array", + "items": { + "$ref": "#/components/schemas/CreateStructuredOutputDTO" + } + }, "scorecardIds": { "description": "This is an array of scorecard IDs that will be evaluated based on the structured outputs extracted during the call.\nThe scorecards will be evaluated and the results will be stored in `call.artifact.scorecards` after the call has ended.", "type": "array", @@ -34225,6 +34000,10 @@ } ] }, + "customerId": { + "type": "string", + "description": "This is the customerId of the customer who will receive the SMS." + }, "useLLMGeneratedMessageForOutbound": { "type": "boolean", "description": "Whether to use LLM-generated messages for outbound SMS.\nWhen true (default), input is processed by the assistant for a response.\nWhen false, the input text is forwarded directly as the SMS message without LLM processing.\nUseful for sending pre-defined messages or notifications.", @@ -35550,6 +35329,194 @@ } } }, + "RelayTargetAssistant": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "assistant" + ], + "description": "The type of relay target" + }, + "assistantId": { + "type": "string", + "description": "The unique identifier of the assistant" + }, + "assistantName": { + "type": "string", + "description": "The name of the assistant" + } + }, + "required": [ + "type" + ] + }, + "RelayTargetSquad": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "squad" + ], + "description": "The type of relay target" + }, + "squadId": { + "type": "string", + "description": "The unique identifier of the squad" + }, + "squadName": { + "type": "string", + "description": "The name of the squad" + } + }, + "required": [ + "type" + ] + }, + "RelayTargetOptions": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "assistant", + "squad" + ] + } + }, + "required": [ + "type" + ] + }, + "RelayCommandSay": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "say" + ], + "description": "The type of relay command" + }, + "content": { + "type": "string", + "description": "The content for the assistant to speak" + } + }, + "required": [ + "type", + "content" + ] + }, + "RelayCommandNote": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "message.add" + ], + "description": "The type of relay command" + }, + "content": { + "type": "string", + "description": "The note content to add to the conversation" + } + }, + "required": [ + "type", + "content" + ] + }, + "RelayCommandOptions": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "say", + "message.add" + ] + } + }, + "required": [ + "type" + ] + }, + "RelayRequest": { + "type": "object", + "properties": { + "source": { + "type": "string", + "description": "The source identifier of the relay request" + }, + "target": { + "oneOf": [ + { + "$ref": "#/components/schemas/RelayTargetAssistant" + }, + { + "$ref": "#/components/schemas/RelayTargetSquad" + } + ], + "description": "The target assistant or squad to relay the commands to" + }, + "customerId": { + "type": "string", + "description": "The unique identifier of the customer" + }, + "commands": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/RelayCommandSay" + }, + { + "$ref": "#/components/schemas/RelayCommandNote" + } + ] + }, + "description": "The list of commands to relay to the target" + } + }, + "required": [ + "source", + "target", + "customerId", + "commands" + ] + }, + "RelayResponse": { + "type": "object", + "properties": { + "status": { + "type": "string", + "enum": [ + "deliveredLive", + "deliveredHeadless", + "failed" + ], + "description": "The status of the relay request" + }, + "callId": { + "type": "string", + "description": "The unique identifier of the call, if delivered to a live call" + }, + "sessionId": { + "type": "string", + "description": "The unique identifier of the session, if delivered to a headless session" + }, + "chatId": { + "type": "string" + } + }, + "required": [ + "status" + ] + }, "Session": { "type": "object", "properties": { @@ -35627,6 +35594,14 @@ } ] }, + "assistantOverrides": { + "description": "These are the overrides for the assistant configuration.\nUse this to provide variable values and other overrides when using assistantId.\nVariable substitution will be applied to the assistant's messages and other text-based fields.", + "allOf": [ + { + "$ref": "#/components/schemas/AssistantOverrides" + } + ] + }, "squadId": { "type": "string", "description": "This is the squad ID associated with this session. Use this when referencing an existing squad." @@ -35675,6 +35650,10 @@ } ] }, + "customerId": { + "type": "string", + "description": "This is the customerId of the customer associated with this session." + }, "phoneNumberId": { "type": "string", "description": "This is the ID of the phone number associated with this session." @@ -35738,6 +35717,14 @@ } ] }, + "assistantOverrides": { + "description": "These are the overrides for the assistant configuration.\nUse this to provide variable values and other overrides when using assistantId.\nVariable substitution will be applied to the assistant's messages and other text-based fields.", + "allOf": [ + { + "$ref": "#/components/schemas/AssistantOverrides" + } + ] + }, "squadId": { "type": "string", "description": "This is the squad ID associated with this session. Use this when referencing an existing squad." @@ -35786,6 +35773,10 @@ } ] }, + "customerId": { + "type": "string", + "description": "This is the customerId of the customer associated with this session." + }, "phoneNumberId": { "type": "string", "description": "This is the ID of the phone number associated with this session." @@ -41753,16 +41744,6 @@ "providerId" ] }, - "ComplianceOverride": { - "type": "object", - "properties": { - "forceStoreOnHipaaEnabled": { - "type": "boolean", - "description": "Force storage for this output under HIPAA. Only enable if output contains no sensitive data.", - "example": false - } - } - }, "StructuredOutput": { "type": "object", "properties": { @@ -41876,79 +41857,6 @@ "metadata" ] }, - "CreateStructuredOutputDTO": { - "type": "object", - "properties": { - "model": { - "description": "This is the model that will be used to extract the structured output.\n\nTo provide your own custom system and user prompts for structured output extraction, populate the messages array with your system and user messages. You can specify liquid templating in your system and user messages.\nBetween the system or user messages, you must reference either 'transcript' or 'messages' with the '{{}}' syntax to access the conversation history.\nBetween the system or user messages, you must reference a variation of the structured output with the '{{}}' syntax to access the structured output definition.\ni.e.:\n{{structuredOutput}}\n{{structuredOutput.name}}\n{{structuredOutput.description}}\n{{structuredOutput.schema}}\n\nIf model is not specified, GPT-4.1 will be used by default for extraction, utilizing default system and user prompts.\nIf messages or required fields are not specified, the default system and user prompts will be used.", - "oneOf": [ - { - "$ref": "#/components/schemas/WorkflowOpenAIModel", - "title": "WorkflowOpenAIModel" - }, - { - "$ref": "#/components/schemas/WorkflowAnthropicModel", - "title": "WorkflowAnthropicModel" - }, - { - "$ref": "#/components/schemas/WorkflowGoogleModel", - "title": "WorkflowGoogleModel" - }, - { - "$ref": "#/components/schemas/WorkflowCustomModel", - "title": "WorkflowCustomModel" - } - ] - }, - "compliancePlan": { - "description": "Compliance configuration for this output. Only enable overrides if no sensitive data will be stored.", - "example": { - "forceStoreOnHipaaEnabled": false - }, - "allOf": [ - { - "$ref": "#/components/schemas/ComplianceOverride" - } - ] - }, - "name": { - "type": "string", - "description": "This is the name of the structured output.", - "minLength": 1, - "maxLength": 40 - }, - "schema": { - "description": "This is the JSON Schema definition for the structured output.\n\nThis is required when creating a structured output. Defines the structure and validation rules for the data that will be extracted. Supports all JSON Schema features including:\n- Objects and nested properties\n- Arrays and array validation\n- String, number, boolean, and null types\n- Enums and const values\n- Validation constraints (min/max, patterns, etc.)\n- Composition with allOf, anyOf, oneOf", - "allOf": [ - { - "$ref": "#/components/schemas/JsonSchema" - } - ] - }, - "description": { - "type": "string", - "description": "This is the description of what the structured output extracts.\n\nUse this to provide context about what data will be extracted and how it will be used." - }, - "assistantIds": { - "description": "These are the assistant IDs that this structured output is linked to.\n\nWhen linked to assistants, this structured output will be available for extraction during those assistant's calls.", - "type": "array", - "items": { - "type": "string" - } - }, - "workflowIds": { - "description": "These are the workflow IDs that this structured output is linked to.\n\nWhen linked to workflows, this structured output will be available for extraction during those workflow's execution.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "name", - "schema" - ] - }, "UpdateStructuredOutputDTO": { "type": "object", "properties": { @@ -42882,7 +42790,7 @@ "name": { "type": "string", "minLength": 1, - "maxLength": 40 + "maxLength": 255 } } }, @@ -42925,7 +42833,7 @@ "type": "string", "description": "This is the name of the Insight.", "minLength": 1, - "maxLength": 40 + "maxLength": 255 }, "type": { "type": "string", @@ -42985,6 +42893,10 @@ { "$ref": "#/components/schemas/JSONQueryOnCallTableWithStructuredOutputColumn", "title": "JSONQueryOnCallTableWithStructuredOutputColumn" + }, + { + "$ref": "#/components/schemas/JSONQueryOnEventsTable", + "title": "JSONQueryOnEventsTable" } ] } @@ -43043,7 +42955,7 @@ "type": "string", "description": "This is the name of the Insight.", "minLength": 1, - "maxLength": 40 + "maxLength": 255 }, "type": { "type": "string", @@ -43149,7 +43061,7 @@ "name": { "type": "string", "minLength": 1, - "maxLength": 40 + "maxLength": 255 } } }, @@ -43160,7 +43072,7 @@ "type": "string", "description": "This is the name of the Insight.", "minLength": 1, - "maxLength": 40 + "maxLength": 255 }, "type": { "type": "string", @@ -43259,7 +43171,7 @@ "type": "string", "description": "This is the name of the Insight.", "minLength": 1, - "maxLength": 40 + "maxLength": 255 }, "type": { "type": "string", @@ -43333,7 +43245,7 @@ "type": "string", "description": "This is the name of the Insight.", "minLength": 1, - "maxLength": 40 + "maxLength": 255 }, "type": { "type": "string", @@ -43393,6 +43305,10 @@ { "$ref": "#/components/schemas/JSONQueryOnCallTableWithStructuredOutputColumn", "title": "JSONQueryOnCallTableWithStructuredOutputColumn" + }, + { + "$ref": "#/components/schemas/JSONQueryOnEventsTable", + "title": "JSONQueryOnEventsTable" } ] } @@ -43406,7 +43322,7 @@ "type": "string", "description": "This is the name of the Insight.", "minLength": 1, - "maxLength": 40 + "maxLength": 255 }, "type": { "type": "string", @@ -43471,7 +43387,7 @@ "type": "string", "description": "This is the name of the Insight.", "minLength": 1, - "maxLength": 40 + "maxLength": 255 }, "type": { "type": "string", @@ -43544,7 +43460,7 @@ "type": "string", "description": "This is the name of the Insight.", "minLength": 1, - "maxLength": 40 + "maxLength": 255 }, "type": { "type": "string", @@ -43592,7 +43508,7 @@ "type": "string", "description": "This is the name of the Insight.", "minLength": 1, - "maxLength": 40 + "maxLength": 255 }, "type": { "type": "string", @@ -43652,6 +43568,10 @@ { "$ref": "#/components/schemas/JSONQueryOnCallTableWithStructuredOutputColumn", "title": "JSONQueryOnCallTableWithStructuredOutputColumn" + }, + { + "$ref": "#/components/schemas/JSONQueryOnEventsTable", + "title": "JSONQueryOnEventsTable" } ] } @@ -43669,7 +43589,7 @@ "type": "string", "description": "This is the name of the Insight.", "minLength": 1, - "maxLength": 40 + "maxLength": 255 }, "type": { "type": "string", @@ -43738,7 +43658,7 @@ "type": "string", "description": "This is the name of the Insight.", "minLength": 1, - "maxLength": 40 + "maxLength": 255 }, "type": { "type": "string", @@ -43815,7 +43735,7 @@ "type": "string", "description": "This is the name of the Insight.", "minLength": 1, - "maxLength": 40 + "maxLength": 255 }, "type": { "type": "string", @@ -44094,6 +44014,150 @@ "operation" ] }, + "JSONQueryOnEventsTable": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "This is the type of query. Only allowed type is \"vapiql-json\".", + "example": "vapiql-json", + "enum": [ + "vapiql-json" + ] + }, + "table": { + "type": "string", + "description": "This is the table that will be queried.\nMust be \"events\" for event-based insights.", + "enum": [ + "events" + ] + }, + "on": { + "type": "string", + "description": "The event type to query", + "example": "assistant.model.requestFailed", + "enum": [ + "call.started", + "call.ended", + "call.inProgress", + "call.queued", + "call.transportConnected", + "call.transportDisconnected", + "call.transportReconnected", + "call.transferInitiated", + "call.transferCompleted", + "call.transferFailed", + "call.transferCancelled", + "call.handoffInitiated", + "call.handoffCompleted", + "call.handoffFailed", + "call.assistantSwapped", + "call.assistantStarted", + "call.customerJoined", + "call.customerLeft", + "call.controlReceived", + "call.listenStarted", + "call.recordingStarted", + "call.recordingPaused", + "call.recordingResumed", + "call.voicemailDetected", + "call.voicemailNotDetected", + "call.dtmfReceived", + "call.dtmfSent", + "call.amdDetected", + "call.hookTriggered", + "call.hookSucceeded", + "call.hookFailed", + "call.statusReceived", + "call.silenceTimeout", + "call.microphoneTimeout", + "call.maxDurationReached", + "assistant.voice.requestStarted", + "assistant.voice.requestSucceeded", + "assistant.voice.requestFailed", + "assistant.voice.connectionOpened", + "assistant.voice.connectionClosed", + "assistant.voice.firstAudioReceived", + "assistant.voice.audioChunkReceived", + "assistant.voice.generationSucceeded", + "assistant.voice.generationFailed", + "assistant.voice.textPushed", + "assistant.voice.reconnecting", + "assistant.voice.cleanup", + "assistant.voice.clearing", + "assistant.voice.voiceSwitched", + "assistant.model.requestStarted", + "assistant.model.requestSucceeded", + "assistant.model.requestFailed", + "assistant.model.connectionOpened", + "assistant.model.connectionClosed", + "assistant.model.firstTokenReceived", + "assistant.model.tokenReceived", + "assistant.model.responseSucceeded", + "assistant.model.responseFailed", + "assistant.model.toolCallsReceived", + "assistant.model.reconnecting", + "assistant.model.cleanup", + "assistant.model.clearing", + "assistant.tool.started", + "assistant.tool.completed", + "assistant.tool.failed", + "assistant.tool.delayedMessageSent", + "assistant.tool.timeout", + "assistant.tool.asyncCallbackReceived", + "assistant.transcriber.requestStarted", + "assistant.transcriber.requestSucceeded", + "assistant.transcriber.requestFailed", + "assistant.transcriber.connectionOpened", + "assistant.transcriber.connectionClosed", + "assistant.transcriber.partialTranscript", + "assistant.transcriber.finalTranscript", + "assistant.transcriber.keepAlive", + "assistant.transcriber.reconnecting", + "assistant.transcriber.cleanup", + "assistant.transcriber.clearing", + "assistant.transcriber.transcriptIgnored", + "assistant.transcriber.languageSwitched" + ] + }, + "operation": { + "type": "string", + "description": "This is the operation to perform on matching events.\nFor events table, only \"count\" is supported.", + "example": "count", + "enum": [ + "count" + ] + }, + "filters": { + "type": "array", + "description": "These are the filters to apply to the events query.\nEach filter filters on a field specific to the event type.", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/EventsTableStringCondition" + }, + { + "$ref": "#/components/schemas/EventsTableNumberCondition" + }, + { + "$ref": "#/components/schemas/EventsTableBooleanCondition" + } + ] + } + }, + "name": { + "type": "string", + "description": "This is the name of the query.\nIt will be used to label the query in the insight board on the UI.", + "example": "Model Failures" + } + }, + "required": [ + "type", + "table", + "on", + "operation" + ] + }, "FilterStringTypeColumnOnCallTable": { "type": "object", "properties": { @@ -44239,7 +44303,9 @@ "in", "not_in", "contains", - "not_contains" + "not_contains", + "is_empty", + "is_not_empty" ] }, "value": { @@ -44279,7 +44345,9 @@ "example": "\"in\" or \"not_in\"", "enum": [ "in", - "not_in" + "not_in", + "is_empty", + "is_not_empty" ] }, "value": { @@ -44319,7 +44387,9 @@ "example": "\"in\" or \"not_in\"", "enum": [ "in", - "not_in" + "not_in", + "is_empty", + "is_not_empty" ] }, "value": { @@ -44336,6 +44406,98 @@ "value" ] }, + "EventsTableStringCondition": { + "type": "object", + "properties": { + "column": { + "type": "string", + "description": "The string field name from the event data", + "example": "provider" + }, + "operator": { + "type": "string", + "description": "String comparison operator", + "example": "=", + "enum": [ + "=", + "!=", + "contains", + "notContains" + ] + }, + "value": { + "type": "string", + "description": "The string value to compare", + "example": "openai" + } + }, + "required": [ + "column", + "operator", + "value" + ] + }, + "EventsTableNumberCondition": { + "type": "object", + "properties": { + "column": { + "type": "string", + "description": "The number field name from the event data", + "example": "latency" + }, + "operator": { + "type": "string", + "description": "Number comparison operator", + "example": ">=", + "enum": [ + "=", + "!=", + ">", + ">=", + "<", + "<=" + ] + }, + "value": { + "type": "number", + "description": "The number value to compare", + "example": 1000 + } + }, + "required": [ + "column", + "operator", + "value" + ] + }, + "EventsTableBooleanCondition": { + "type": "object", + "properties": { + "column": { + "type": "string", + "description": "The boolean field name from the event data", + "example": "success" + }, + "operator": { + "type": "string", + "description": "Boolean comparison operator", + "example": "=", + "enum": [ + "=" + ] + }, + "value": { + "type": "boolean", + "description": "The boolean value to compare", + "example": true + } + }, + "required": [ + "column", + "operator", + "value" + ] + }, "BarInsightFromCallTable": { "type": "object", "properties": { @@ -44343,7 +44505,7 @@ "type": "string", "description": "This is the name of the Insight.", "minLength": 1, - "maxLength": 40 + "maxLength": 255 }, "type": { "type": "string", @@ -44403,6 +44565,10 @@ { "$ref": "#/components/schemas/JSONQueryOnCallTableWithStructuredOutputColumn", "title": "JSONQueryOnCallTableWithStructuredOutputColumn" + }, + { + "$ref": "#/components/schemas/JSONQueryOnEventsTable", + "title": "JSONQueryOnEventsTable" } ] } @@ -44420,7 +44586,7 @@ "type": "string", "description": "This is the name of the Insight.", "minLength": 1, - "maxLength": 40 + "maxLength": 255 }, "type": { "type": "string", @@ -44489,7 +44655,7 @@ "type": "string", "description": "This is the name of the Insight.", "minLength": 1, - "maxLength": 40 + "maxLength": 255 }, "type": { "type": "string", @@ -44566,7 +44732,7 @@ "type": "string", "description": "This is the name of the Insight.", "minLength": 1, - "maxLength": 40 + "maxLength": 255 }, "type": { "type": "string", @@ -44619,7 +44785,7 @@ "description": "This is the name of the formula.\nIt will be used to label the formula in the insight board on the UI.", "example": "Booking Rate", "minLength": 1, - "maxLength": 40 + "maxLength": 255 }, "formula": { "type": "string", @@ -44699,7 +44865,7 @@ "type": "string", "description": "This is the name of the Insight.", "minLength": 1, - "maxLength": 40 + "maxLength": 255 }, "type": { "type": "string", @@ -46375,14 +46541,18 @@ "type": "string", "description": "This is the ID of the monitor that triggered this issue." }, - "policyId": { + "triggerId": { "type": "string", - "description": "This is the ID of the policy that triggered this issue." + "description": "This is the ID of the trigger that created this issue." }, "totalCalls": { "type": "number", "description": "This is the total number of calls made since evaluationStartAt to determine percentage of calls affected." }, + "callsCount": { + "type": "number", + "description": "This is the count of calls that triggered this issue.\nThis is populated in list responses as a summary count." + }, "evaluationStartAt": { "format": "date-time", "type": "string", @@ -46395,6 +46565,11 @@ "$ref": "#/components/schemas/IssueCall" } }, + "lastSeenAt": { + "format": "date-time", + "type": "string", + "description": "This is the ISO 8601 date-time string of when the issue was last seen (most recent failed call).\nThis is populated in list responses from the MAX(failed_at) in issue_call table." + }, "status": { "type": "string", "description": "This is the status of the issue.", @@ -46409,24 +46584,16 @@ "description": "This is the email/name of the user who acknowledged the issue.", "maxLength": 255 }, - "resolvedBy": { - "type": "string", - "description": "This is the email/name of the user who resolved the issue.", - "maxLength": 255 - }, - "id": { - "type": "string", - "description": "This is the unique identifier for the issue." - }, - "orgId": { - "type": "string", - "description": "This is the unique identifier for the org that this issue belongs to." - }, "acknowledgedAt": { "format": "date-time", "type": "string", "description": "This is the ISO 8601 date-time string of when the issue was acknowledged." }, + "resolvedBy": { + "type": "string", + "description": "This is the email/name of the user who resolved the issue.", + "maxLength": 255 + }, "resolvedAt": { "format": "date-time", "type": "string", @@ -46441,18 +46608,26 @@ "format": "date-time", "type": "string", "description": "This is the ISO 8601 date-time string of when the issue was last updated." + }, + "id": { + "type": "string", + "description": "This is the unique identifier for the issue." + }, + "orgId": { + "type": "string", + "description": "This is the unique identifier for the org that this issue belongs to." } }, "required": [ "monitorId", - "policyId", + "triggerId", "totalCalls", "evaluationStartAt", "status", - "id", - "orgId", "createdAt", - "updatedAt" + "updatedAt", + "id", + "orgId" ] }, "UpdateIssueDTO": { @@ -46479,492 +46654,6 @@ } } }, - "PolicyThreshold": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "This is the type of threshold evaluation.", - "enum": [ - "count", - "percentage" - ], - "example": "percentage" - }, - "comparator": { - "type": "string", - "description": "This is the comparator operator for the threshold.", - "enum": [ - "lt", - "gt", - "eq", - "lte", - "gte", - "neq" - ], - "example": "gt" - }, - "value": { - "type": "number", - "description": "This is the value to compare against.", - "minimum": 0, - "example": 50 - } - }, - "required": [ - "type", - "comparator", - "value" - ] - }, - "PolicySchedule": { - "type": "object", - "properties": { - "second": { - "description": "Second(s) of the minute. Valid values: 0-59 or '*' for any second.\nCan be a single number, an array, or '*'.\n@default 0", - "oneOf": [ - { - "type": "number" - }, - { - "type": "array", - "items": { - "type": "number" - } - }, - { - "type": "string", - "enum": [ - "*" - ] - } - ], - "example": 0, - "default": 0 - }, - "minute": { - "description": "Minute(s) of the hour. Valid values: 0-59 or '*' for any minute.\nCan be a single number, an array, or '*'.\n@default 0", - "oneOf": [ - { - "type": "number" - }, - { - "type": "array", - "items": { - "type": "number" - } - }, - { - "type": "string", - "enum": [ - "*" - ] - } - ], - "example": 30, - "default": 0 - }, - "hour": { - "description": "Hour(s) of the day. Valid values: 0-23 or '*' for any hour.\nCan be a single number, an array, or '*'.\n@default 0", - "oneOf": [ - { - "type": "number" - }, - { - "type": "array", - "items": { - "type": "number" - } - }, - { - "type": "string", - "enum": [ - "*" - ] - } - ], - "example": [ - 9, - 14, - 18 - ], - "default": 0 - }, - "dayOfMonth": { - "description": "Day(s) of the month. Valid values: 1-31 or '*' for any day.\nCan be a single number, an array, or '*'.", - "oneOf": [ - { - "type": "number" - }, - { - "type": "array", - "items": { - "type": "number" - } - }, - { - "type": "string", - "enum": [ - "*" - ] - } - ], - "example": [ - 1, - 15 - ] - }, - "month": { - "description": "Month(s) of the year. Use uppercase full names: JANUARY, FEBRUARY, etc., or '*' for any month.\nCan be a single month, an array, or '*'.", - "oneOf": [ - { - "type": "string", - "enum": [ - "JANUARY", - "FEBRUARY", - "MARCH", - "APRIL", - "MAY", - "JUNE", - "JULY", - "AUGUST", - "SEPTEMBER", - "OCTOBER", - "NOVEMBER", - "DECEMBER", - "*" - ] - }, - { - "type": "array", - "items": { - "type": "string", - "enum": [ - "JANUARY", - "FEBRUARY", - "MARCH", - "APRIL", - "MAY", - "JUNE", - "JULY", - "AUGUST", - "SEPTEMBER", - "OCTOBER", - "NOVEMBER", - "DECEMBER" - ] - } - } - ], - "example": [ - "JANUARY", - "APRIL", - "JULY" - ] - }, - "dayOfWeek": { - "description": "Day(s) of the week. Use uppercase full names: SUNDAY, MONDAY, etc., or '*' for any day.\nCan be a single day, an array, or '*'.", - "oneOf": [ - { - "type": "string", - "enum": [ - "SUNDAY", - "MONDAY", - "TUESDAY", - "WEDNESDAY", - "THURSDAY", - "FRIDAY", - "SATURDAY", - "*" - ] - }, - { - "type": "array", - "items": { - "type": "string", - "enum": [ - "SUNDAY", - "MONDAY", - "TUESDAY", - "WEDNESDAY", - "THURSDAY", - "FRIDAY", - "SATURDAY" - ] - } - } - ], - "example": [ - "MONDAY", - "WEDNESDAY", - "FRIDAY" - ] - }, - "year": { - "description": "Year(s). Use full years like 2025 or '*' for any year.\nCan be a single number, an array, or '*'.", - "oneOf": [ - { - "type": "number" - }, - { - "type": "array", - "items": { - "type": "number" - } - }, - { - "type": "string", - "enum": [ - "*" - ] - } - ], - "example": 2025 - } - } - }, - "PolicyInterval": { - "type": "object", - "properties": { - "every": { - "type": "number", - "description": "Interval in minutes", - "example": 60, - "minimum": 1 - }, - "offset": { - "type": "number", - "description": "Offset in minutes", - "example": 15, - "minimum": 0 - } - }, - "required": [ - "every" - ] - }, - "Policy": { - "type": "object", - "properties": { - "monitorIds": { - "description": "These are the monitor IDs associated with this policy.\nThis is only present when retrieving a single policy by ID.", - "type": "array", - "items": { - "type": "string" - } - }, - "name": { - "type": "string", - "description": "This is the name of the policy.", - "maxLength": 100, - "example": "High Error Rate Policy" - }, - "threshold": { - "description": "This is the threshold configuration for the policy.", - "allOf": [ - { - "$ref": "#/components/schemas/PolicyThreshold" - } - ] - }, - "lookbackWindowMinutes": { - "type": "number", - "description": "This is the lookback window in minutes. The policy will query events from the last N minutes.", - "minimum": 1, - "maximum": 1440, - "example": 60 - }, - "severity": { - "type": "string", - "description": "This is the severity level of issues created by this policy.", - "enum": [ - "error", - "warning", - "info" - ], - "example": "error" - }, - "schedule": { - "description": "This is the schedule configuration for when the policy should run.\nUse either schedule or interval, not both.", - "allOf": [ - { - "$ref": "#/components/schemas/PolicySchedule" - } - ] - }, - "interval": { - "description": "This is the interval configuration for when the policy should run.\nUse either schedule or interval, not both.", - "allOf": [ - { - "$ref": "#/components/schemas/PolicyInterval" - } - ] - }, - "id": { - "type": "string", - "description": "This is the unique identifier for the policy." - }, - "orgId": { - "type": "string", - "description": "This is the unique identifier for the org that this policy belongs to." - }, - "lastRunAt": { - "format": "date-time", - "type": "string", - "description": "This is the ISO 8601 date-time string of when the policy was last run." - }, - "createdAt": { - "format": "date-time", - "type": "string", - "description": "This is the ISO 8601 date-time string of when the policy was created." - }, - "updatedAt": { - "format": "date-time", - "type": "string", - "description": "This is the ISO 8601 date-time string of when the policy was last updated." - } - }, - "required": [ - "name", - "threshold", - "lookbackWindowMinutes", - "severity", - "id", - "orgId", - "createdAt", - "updatedAt" - ] - }, - "CreatePolicyDTO": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "This is the name of the policy.", - "maxLength": 100, - "example": "High Error Rate Policy" - }, - "threshold": { - "description": "This is the threshold configuration for the policy.", - "allOf": [ - { - "$ref": "#/components/schemas/PolicyThreshold" - } - ] - }, - "lookbackWindowMinutes": { - "type": "number", - "description": "This is the lookback window in minutes. The policy will query events from the last N minutes.", - "minimum": 1, - "maximum": 1440, - "example": 60 - }, - "severity": { - "type": "string", - "description": "This is the severity level of issues created by this policy.", - "enum": [ - "error", - "warning", - "info" - ], - "example": "error" - }, - "schedule": { - "description": "This is the schedule configuration for when the policy should run.\nUse either schedule or interval, not both.", - "allOf": [ - { - "$ref": "#/components/schemas/PolicySchedule" - } - ] - }, - "interval": { - "description": "This is the interval configuration for when the policy should run.\nUse either schedule or interval, not both.", - "allOf": [ - { - "$ref": "#/components/schemas/PolicyInterval" - } - ] - }, - "monitorIds": { - "description": "These are the monitor IDs to associate with this policy.\nThis creates entries in the monitor-policy join table.", - "example": [ - "550e8400-e29b-41d4-a716-446655440000" - ], - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "name", - "threshold", - "lookbackWindowMinutes", - "severity" - ] - }, - "UpdatePolicyDTO": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "This is the name of the policy.", - "maxLength": 100, - "example": "High Error Rate Policy" - }, - "threshold": { - "description": "This is the threshold configuration for the policy.", - "allOf": [ - { - "$ref": "#/components/schemas/PolicyThreshold" - } - ] - }, - "lookbackWindowMinutes": { - "type": "number", - "description": "This is the lookback window in minutes. The policy will query events from the last N minutes.", - "minimum": 1, - "maximum": 1440, - "example": 60 - }, - "severity": { - "type": "string", - "description": "This is the severity level of issues created by this policy.", - "enum": [ - "error", - "warning", - "info" - ], - "example": "error" - }, - "schedule": { - "description": "This is the schedule configuration for when the policy should run.\nUse either schedule or interval, not both.", - "allOf": [ - { - "$ref": "#/components/schemas/PolicySchedule" - } - ] - }, - "interval": { - "description": "This is the interval configuration for when the policy should run.\nUse either schedule or interval, not both.", - "allOf": [ - { - "$ref": "#/components/schemas/PolicyInterval" - } - ] - }, - "monitorIds": { - "description": "These are the monitor IDs to associate with this policy.\nThis creates entries in the monitor-policy join table.", - "example": [ - "550e8400-e29b-41d4-a716-446655440000" - ], - "type": "array", - "items": { - "type": "string" - } - } - } - }, "CreateOrgDTO": { "type": "object", "properties": {