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};
12use utoipa::ToSchema;
13
14
15use crate::models;
16
17/// 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`.
18/// 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`.
19#[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/// This is the type of the message. \"workflow.node.started\" is sent when the active node changes.
43#[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/// This is the status of the speech update.
81#[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/// This is the role for which the transcript is for.
95#[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/// This is the type of the transcript.
109#[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}