vapi-client 0.4.2

Unofficial crate for Vapi - Voice AI for developers.
Documentation
/*
 * Vapi API
 *
 * Voice AI for developers.
 *
 * The version of the OpenAPI document: 1.0
 *
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

/// 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`.
/// 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`.
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum ClientMessageMessage {
    ClientMessageWorkflowNodeStarted(models::ClientMessageWorkflowNodeStarted),
    ClientMessageConversationUpdate(models::ClientMessageConversationUpdate),
    ClientMessageHang(models::ClientMessageHang),
    ClientMessageMetadata(models::ClientMessageMetadata),
    ClientMessageModelOutput(models::ClientMessageModelOutput),
    ClientMessageSpeechUpdate(models::ClientMessageSpeechUpdate),
    ClientMessageTranscript(models::ClientMessageTranscript),
    ClientMessageToolCalls(models::ClientMessageToolCalls),
    ClientMessageToolCallsResult(models::ClientMessageToolCallsResult),
    ClientMessageTransferUpdate(models::ClientMessageTransferUpdate),
    ClientMessageUserInterrupted(models::ClientMessageUserInterrupted),
    ClientMessageLanguageChangeDetected(models::ClientMessageLanguageChangeDetected),
    ClientMessageVoiceInput(models::ClientMessageVoiceInput),
}

impl Default for ClientMessageMessage {
    fn default() -> Self {
        Self::ClientMessageWorkflowNodeStarted(Default::default())
    }
}
/// This is the type of the message. \"workflow.node.started\" is sent when the active node changes.
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum TypeTrue {
    #[serde(rename = "workflow.node.started")]
    WorkflowPeriodNodePeriodStarted,
    #[serde(rename = "conversation-update")]
    ConversationUpdate,
    #[serde(rename = "hang")]
    Hang,
    #[serde(rename = "metadata")]
    Metadata,
    #[serde(rename = "model-output")]
    ModelOutput,
    #[serde(rename = "speech-update")]
    SpeechUpdate,
    #[serde(rename = "transcript")]
    Transcript,
    #[serde(rename = "transcript[transcriptType=\"final\"]")]
    TranscriptLeftSquareBracketTranscriptTypeEqualDoubleQuoteFinalDoubleQuoteRightSquareBracket,
    #[serde(rename = "tool-calls")]
    ToolCalls,
    #[serde(rename = "tool-calls-result")]
    ToolCallsResult,
    #[serde(rename = "transfer-update")]
    TransferUpdate,
    #[serde(rename = "user-interrupted")]
    UserInterrupted,
    #[serde(rename = "language-change-detected")]
    LanguageChangeDetected,
    #[serde(rename = "voice-input")]
    VoiceInput,
}

impl Default for TypeTrue {
    fn default() -> TypeTrue {
        Self::WorkflowPeriodNodePeriodStarted
    }
}
/// This is the status of the speech update.
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum StatusTrue {
    #[serde(rename = "started")]
    Started,
    #[serde(rename = "stopped")]
    Stopped,
}

impl Default for StatusTrue {
    fn default() -> StatusTrue {
        Self::Started
    }
}
/// This is the role for which the transcript is for.
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum RoleTrue {
    #[serde(rename = "assistant")]
    Assistant,
    #[serde(rename = "user")]
    User,
}

impl Default for RoleTrue {
    fn default() -> RoleTrue {
        Self::Assistant
    }
}
/// This is the type of the transcript.
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum TranscriptTypeTrue {
    #[serde(rename = "partial")]
    Partial,
    #[serde(rename = "final")]
    Final,
}

impl Default for TranscriptTypeTrue {
    fn default() -> TranscriptTypeTrue {
        Self::Partial
    }
}