vapi_client/models/
assistant_message.rs

1/*
2 * Vapi API
3 *
4 * Voice AI for developers.
5 *
6 * The version of the OpenAPI document: 1.0
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct AssistantMessage {
16    /// This is the role of the message author
17    #[serde(rename = "role")]
18    pub role: RoleTrue,
19    /// This is the content of the assistant message
20    #[serde(rename = "content", skip_serializing_if = "Option::is_none")]
21    pub content: Option<String>,
22    /// This is the refusal message generated by the model
23    #[serde(rename = "refusal", skip_serializing_if = "Option::is_none")]
24    pub refusal: Option<String>,
25    /// This is the tool calls generated by the model
26    #[serde(rename = "tool_calls", skip_serializing_if = "Option::is_none")]
27    pub tool_calls: Option<Vec<models::ToolCall>>,
28    /// This is an optional name for the participant
29    #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
30    pub name: Option<String>,
31}
32
33impl AssistantMessage {
34    pub fn new(role: RoleTrue) -> AssistantMessage {
35        AssistantMessage {
36            role,
37            content: None,
38            refusal: None,
39            tool_calls: None,
40            name: None,
41        }
42    }
43}
44/// This is the role of the message author
45#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
46pub enum RoleTrue {
47    #[serde(rename = "assistant")]
48    Assistant,
49}
50
51impl Default for RoleTrue {
52    fn default() -> RoleTrue {
53        Self::Assistant
54    }
55}