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<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 = "turn", skip_serializing_if = "Option::is_none")]
29 pub turn: Option<f64>,
30 #[serde(rename = "timestamp", skip_serializing_if = "Option::is_none")]
32 pub timestamp: Option<f64>,
33 #[serde(rename = "artifact", skip_serializing_if = "Option::is_none")]
35 pub artifact: Option<models::Artifact>,
36 #[serde(rename = "assistant", skip_serializing_if = "Option::is_none")]
38 pub assistant: Option<models::CreateAssistantDto>,
39 #[serde(rename = "customer", skip_serializing_if = "Option::is_none")]
41 pub customer: Option<models::CreateCustomerDto>,
42 #[serde(rename = "call", skip_serializing_if = "Option::is_none")]
44 pub call: Option<models::Call>,
45}
46
47impl ServerMessageSpeechUpdate {
48 pub fn new(r#type: Type, status: Status, role: Role) -> ServerMessageSpeechUpdate {
49 ServerMessageSpeechUpdate {
50 phone_number: None,
51 r#type,
52 status,
53 role,
54 turn: None,
55 timestamp: None,
56 artifact: None,
57 assistant: None,
58 customer: None,
59 call: None,
60 }
61 }
62}
63#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
65pub enum Type {
66 #[serde(rename = "speech-update")]
67 SpeechUpdate,
68}
69
70impl Default for Type {
71 fn default() -> Type {
72 Self::SpeechUpdate
73 }
74}
75#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
77pub enum Status {
78 #[serde(rename = "started")]
79 Started,
80 #[serde(rename = "stopped")]
81 Stopped,
82}
83
84impl Default for Status {
85 fn default() -> Status {
86 Self::Started
87 }
88}
89#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
91pub enum Role {
92 #[serde(rename = "assistant")]
93 Assistant,
94 #[serde(rename = "user")]
95 User,
96}
97
98impl Default for Role {
99 fn default() -> Role {
100 Self::Assistant
101 }
102}
103