langfuse_client_base/models/
create_chat_prompt_request.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize, bon::Builder)]
15pub struct CreateChatPromptRequest {
16 #[serde(rename = "name")]
17 pub name: String,
18 #[serde(rename = "prompt")]
19 pub prompt: Vec<models::ChatMessageWithPlaceholders>,
20 #[serde(
21 rename = "config",
22 default,
23 with = "::serde_with::rust::double_option",
24 skip_serializing_if = "Option::is_none"
25 )]
26 pub config: Option<Option<serde_json::Value>>,
27 #[serde(
29 rename = "labels",
30 default,
31 with = "::serde_with::rust::double_option",
32 skip_serializing_if = "Option::is_none"
33 )]
34 pub labels: Option<Option<Vec<String>>>,
35 #[serde(
37 rename = "tags",
38 default,
39 with = "::serde_with::rust::double_option",
40 skip_serializing_if = "Option::is_none"
41 )]
42 pub tags: Option<Option<Vec<String>>>,
43 #[serde(
45 rename = "commitMessage",
46 default,
47 with = "::serde_with::rust::double_option",
48 skip_serializing_if = "Option::is_none"
49 )]
50 pub commit_message: Option<Option<String>>,
51}
52
53impl CreateChatPromptRequest {
54 pub fn new(
55 name: String,
56 prompt: Vec<models::ChatMessageWithPlaceholders>,
57 ) -> CreateChatPromptRequest {
58 CreateChatPromptRequest {
59 name,
60 prompt,
61 config: None,
62 labels: None,
63 tags: None,
64 commit_message: None,
65 }
66 }
67}