vapi_client/models/
artifact_messages_inner.rs

1/*
2 * Vapi API
3 *
4 * Voice AI for developers.
5 *
6 * The version of the OpenAPI document: 1.0
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
15#[serde(untagged)]
16pub enum ArtifactMessagesInner {
17    // Put the new simple types first so they are tried before the complex ones
18    ToolCallsMessage(Box<ToolCallsMessage>),
19    ToolCallResultMessageSimple(Box<ToolCallResultMessageSimple>),
20    // Then the original types
21    UserMessage(models::UserMessage),
22    SystemMessage(models::SystemMessage),
23    BotMessage(models::BotMessage),
24    ToolCallMessage(models::ToolCallMessage),
25    ToolCallResultMessage(models::ToolCallResultMessage),
26}
27
28impl Default for ArtifactMessagesInner {
29    fn default() -> Self {
30        Self::UserMessage(Default::default())
31    }
32}
33
34// New message type for "tool_calls" role
35#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
36pub struct ToolCallsMessage {
37    #[serde(rename = "role")]
38    pub role: String,
39    #[serde(rename = "message")]
40    pub message: String,
41    #[serde(rename = "secondsFromStart")]
42    pub seconds_from_start: f64,
43    #[serde(rename = "time")]
44    pub time: f64,
45    #[serde(rename = "toolCalls")]
46    pub tool_calls: Vec<serde_json::Value>,
47}
48
49// New message type for "tool_call_result" role
50#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
51pub struct ToolCallResultMessageSimple {
52    #[serde(rename = "role")]
53    pub role: String,
54    #[serde(rename = "name")]
55    pub name: String,
56    #[serde(rename = "result")]
57    pub result: String,
58    #[serde(rename = "secondsFromStart")]
59    pub seconds_from_start: f64,
60    #[serde(rename = "time")]
61    pub time: f64,
62    #[serde(rename = "toolCallId")]
63    pub tool_call_id: String,
64}