vapi_client/models/
server_message_speech_update.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct ServerMessageSpeechUpdate {
16    #[serde(rename = "phoneNumber", skip_serializing_if = "Option::is_none")]
17    pub phone_number: Option<Box<models::ServerMessageAssistantRequestPhoneNumber>>,
18    #[serde(rename = "type")]
20    pub r#type: Type,
21    #[serde(rename = "status")]
23    pub status: Status,
24    #[serde(rename = "role")]
26    pub role: Role,
27    #[serde(rename = "timestamp", skip_serializing_if = "Option::is_none")]
29    pub timestamp: Option<String>,
30    #[serde(rename = "artifact", skip_serializing_if = "Option::is_none")]
32    pub artifact: Option<Box<models::Artifact>>,
33    #[serde(rename = "assistant", skip_serializing_if = "Option::is_none")]
35    pub assistant: Option<Box<models::CreateAssistantDto>>,
36    #[serde(rename = "customer", skip_serializing_if = "Option::is_none")]
38    pub customer: Option<Box<models::CreateCustomerDto>>,
39    #[serde(rename = "call", skip_serializing_if = "Option::is_none")]
41    pub call: Option<Box<models::Call>>,
42}
43
44impl ServerMessageSpeechUpdate {
45    pub fn new(r#type: Type, status: Status, role: Role) -> ServerMessageSpeechUpdate {
46        ServerMessageSpeechUpdate {
47            phone_number: None,
48            r#type,
49            status,
50            role,
51            timestamp: None,
52            artifact: None,
53            assistant: None,
54            customer: None,
55            call: None,
56        }
57    }
58}
59#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
61pub enum Type {
62    #[serde(rename = "speech-update")]
63    SpeechUpdate,
64}
65
66impl Default for Type {
67    fn default() -> Type {
68        Self::SpeechUpdate
69    }
70}
71#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
73pub enum Status {
74    #[serde(rename = "started")]
75    Started,
76    #[serde(rename = "stopped")]
77    Stopped,
78}
79
80impl Default for Status {
81    fn default() -> Status {
82        Self::Started
83    }
84}
85#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
87pub enum Role {
88    #[serde(rename = "assistant")]
89    Assistant,
90    #[serde(rename = "user")]
91    User,
92}
93
94impl Default for Role {
95    fn default() -> Role {
96        Self::Assistant
97    }
98}
99