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