orvanta_api/models/
new_copilot_conversation_message.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct NewCopilotConversationMessage {
16 #[serde(rename = "channel")]
17 pub channel: Channel,
18 #[serde(rename = "role")]
19 pub role: Role,
20 #[serde(rename = "payload", deserialize_with = "Option::deserialize")]
22 pub payload: Option<serde_json::Value>,
23}
24
25impl NewCopilotConversationMessage {
26 pub fn new(channel: Channel, role: Role, payload: Option<serde_json::Value>) -> NewCopilotConversationMessage {
27 NewCopilotConversationMessage {
28 channel,
29 role,
30 payload,
31 }
32 }
33}
34#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
36pub enum Channel {
37 #[serde(rename = "actual")]
38 Actual,
39 #[serde(rename = "display")]
40 Display,
41}
42
43impl Default for Channel {
44 fn default() -> Channel {
45 Self::Actual
46 }
47}
48#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
50pub enum Role {
51 #[serde(rename = "user")]
52 User,
53 #[serde(rename = "assistant")]
54 Assistant,
55 #[serde(rename = "system")]
56 System,
57 #[serde(rename = "tool")]
58 Tool,
59 #[serde(rename = "developer")]
60 Developer,
61 #[serde(rename = "function")]
62 Function,
63}
64
65impl Default for Role {
66 fn default() -> Role {
67 Self::User
68 }
69}
70