vapi_client/models/
client_message_message.rs

1/*
2 * Vapi API
3 *
4 * API for building voice assistants
5 *
6 * The version of the OpenAPI document: 1.0
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11use serde::{Deserialize, Serialize};
12
13use crate::models;
14
15/// ClientMessageMessage : These are all the messages that can be sent to the client-side SDKs during the call. Configure the messages you'd like to receive in `assistant.clientMessages`.
16/// These are all the messages that can be sent to the client-side SDKs during the call. Configure the messages you'd like to receive in `assistant.clientMessages`.
17#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
18#[serde(untagged)]
19pub enum ClientMessageMessage {
20    ClientMessageWorkflowNodeStarted(models::ClientMessageWorkflowNodeStarted),
21    ClientMessageConversationUpdate(models::ClientMessageConversationUpdate),
22    ClientMessageHang(models::ClientMessageHang),
23    ClientMessageMetadata(models::ClientMessageMetadata),
24    ClientMessageModelOutput(models::ClientMessageModelOutput),
25    ClientMessageSpeechUpdate(models::ClientMessageSpeechUpdate),
26    ClientMessageTranscript(models::ClientMessageTranscript),
27    ClientMessageToolCalls(models::ClientMessageToolCalls),
28    ClientMessageToolCallsResult(models::ClientMessageToolCallsResult),
29    ClientMessageTransferUpdate(models::ClientMessageTransferUpdate),
30    ClientMessageUserInterrupted(models::ClientMessageUserInterrupted),
31    ClientMessageLanguageChangeDetected(models::ClientMessageLanguageChangeDetected),
32    ClientMessageVoiceInput(models::ClientMessageVoiceInput),
33}
34
35impl Default for ClientMessageMessage {
36    fn default() -> Self {
37        Self::ClientMessageWorkflowNodeStarted(Default::default())
38    }
39}
40/// This is the type of the message. \"workflow.node.started\" is sent when the active node changes.
41#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
42pub enum Type {
43    #[serde(rename = "workflow.node.started")]
44    WorkflowPeriodNodePeriodStarted,
45    #[serde(rename = "conversation-update")]
46    ConversationUpdate,
47    #[serde(rename = "hang")]
48    Hang,
49    #[serde(rename = "metadata")]
50    Metadata,
51    #[serde(rename = "model-output")]
52    ModelOutput,
53    #[serde(rename = "speech-update")]
54    SpeechUpdate,
55    #[serde(rename = "transcript")]
56    Transcript,
57    #[serde(rename = "transcript[transcriptType=\"final\"]")]
58    TranscriptLeftSquareBracketTranscriptTypeEqualDoubleQuoteFinalDoubleQuoteRightSquareBracket,
59    #[serde(rename = "tool-calls")]
60    ToolCalls,
61    #[serde(rename = "tool-calls-result")]
62    ToolCallsResult,
63    #[serde(rename = "transfer-update")]
64    TransferUpdate,
65    #[serde(rename = "user-interrupted")]
66    UserInterrupted,
67    #[serde(rename = "language-change-detected")]
68    LanguageChangeDetected,
69    #[serde(rename = "voice-input")]
70    VoiceInput,
71}
72
73impl Default for Type {
74    fn default() -> Type {
75        Self::WorkflowPeriodNodePeriodStarted
76    }
77}
78/// This is the status of the speech update.
79#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
80pub enum Status {
81    #[serde(rename = "started")]
82    Started,
83    #[serde(rename = "stopped")]
84    Stopped,
85}
86
87impl Default for Status {
88    fn default() -> Status {
89        Self::Started
90    }
91}
92/// This is the role for which the transcript is for.
93#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
94pub enum Role {
95    #[serde(rename = "assistant")]
96    Assistant,
97    #[serde(rename = "user")]
98    User,
99}
100
101impl Default for Role {
102    fn default() -> Role {
103        Self::Assistant
104    }
105}
106/// This is the type of the transcript.
107#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
108pub enum TranscriptType {
109    #[serde(rename = "partial")]
110    Partial,
111    #[serde(rename = "final")]
112    Final,
113}
114
115impl Default for TranscriptType {
116    fn default() -> TranscriptType {
117        Self::Partial
118    }
119}