vapi_client/models/
open_ai_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#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct OpenAiMessage {
17    #[serde(rename = "content", deserialize_with = "Option::deserialize")]
18    pub content: Option<String>,
19    #[serde(rename = "role")]
20    pub role: Role,
21}
22
23impl OpenAiMessage {
24    pub fn new(content: Option<String>, role: Role) -> OpenAiMessage {
25        OpenAiMessage { content, role }
26    }
27}
28///
29#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
30pub enum Role {
31    #[serde(rename = "assistant")]
32    Assistant,
33    #[serde(rename = "function")]
34    Function,
35    #[serde(rename = "user")]
36    User,
37    #[serde(rename = "system")]
38    System,
39    #[serde(rename = "tool")]
40    Tool,
41}
42
43impl Default for Role {
44    fn default() -> Role {
45        Self::Assistant
46    }
47}