vapi_client/models/
client_message_message.rs1use serde::{Deserialize, Serialize};
12use utoipa::ToSchema;
13
14
15use crate::models;
16
17#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, ToSchema)]
20#[serde(untagged)]
21pub enum ClientMessageMessage {
22 ClientMessageWorkflowNodeStarted(models::ClientMessageWorkflowNodeStarted),
23 ClientMessageConversationUpdate(models::ClientMessageConversationUpdate),
24 ClientMessageHang(models::ClientMessageHang),
25 ClientMessageMetadata(models::ClientMessageMetadata),
26 ClientMessageModelOutput(models::ClientMessageModelOutput),
27 ClientMessageSpeechUpdate(models::ClientMessageSpeechUpdate),
28 ClientMessageTranscript(models::ClientMessageTranscript),
29 ClientMessageToolCalls(models::ClientMessageToolCalls),
30 ClientMessageToolCallsResult(models::ClientMessageToolCallsResult),
31 ClientMessageTransferUpdate(models::ClientMessageTransferUpdate),
32 ClientMessageUserInterrupted(models::ClientMessageUserInterrupted),
33 ClientMessageLanguageChangeDetected(models::ClientMessageLanguageChangeDetected),
34 ClientMessageVoiceInput(models::ClientMessageVoiceInput),
35}
36
37impl Default for ClientMessageMessage {
38 fn default() -> Self {
39 Self::ClientMessageWorkflowNodeStarted(Default::default())
40 }
41}
42#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, ToSchema)]
44pub enum Type {
45 #[serde(rename = "workflow.node.started")]
46 WorkflowPeriodNodePeriodStarted,
47 #[serde(rename = "conversation-update")]
48 ConversationUpdate,
49 #[serde(rename = "hang")]
50 Hang,
51 #[serde(rename = "metadata")]
52 Metadata,
53 #[serde(rename = "model-output")]
54 ModelOutput,
55 #[serde(rename = "speech-update")]
56 SpeechUpdate,
57 #[serde(rename = "transcript")]
58 Transcript,
59 #[serde(rename = "transcript[transcriptType=\"final\"]")]
60 TranscriptLeftSquareBracketTranscriptTypeEqualDoubleQuoteFinalDoubleQuoteRightSquareBracket,
61 #[serde(rename = "tool-calls")]
62 ToolCalls,
63 #[serde(rename = "tool-calls-result")]
64 ToolCallsResult,
65 #[serde(rename = "transfer-update")]
66 TransferUpdate,
67 #[serde(rename = "user-interrupted")]
68 UserInterrupted,
69 #[serde(rename = "language-change-detected")]
70 LanguageChangeDetected,
71 #[serde(rename = "voice-input")]
72 VoiceInput,
73}
74
75impl Default for Type {
76 fn default() -> Type {
77 Self::WorkflowPeriodNodePeriodStarted
78 }
79}
80#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, ToSchema)]
82pub enum Status {
83 #[serde(rename = "started")]
84 Started,
85 #[serde(rename = "stopped")]
86 Stopped,
87}
88
89impl Default for Status {
90 fn default() -> Status {
91 Self::Started
92 }
93}
94#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, ToSchema)]
96pub enum Role {
97 #[serde(rename = "assistant")]
98 Assistant,
99 #[serde(rename = "user")]
100 User,
101}
102
103impl Default for Role {
104 fn default() -> Role {
105 Self::Assistant
106 }
107}
108#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, ToSchema)]
110pub enum TranscriptType {
111 #[serde(rename = "partial")]
112 Partial,
113 #[serde(rename = "final")]
114 Final,
115}
116
117impl Default for TranscriptType {
118 fn default() -> TranscriptType {
119 Self::Partial
120 }
121}