langfuse_client/models/
trace.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15#[cfg_attr(feature="bon", derive(bon::Builder))]
16pub struct Trace {
17 #[serde(rename = "id")]
19 pub id: String,
20 #[serde(rename = "timestamp")]
22 pub timestamp: String,
23 #[serde(rename = "name", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
25 pub name: Option<Option<String>>,
26 #[serde(rename = "input", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
28 pub input: Option<Option<serde_json::Value>>,
29 #[serde(rename = "output", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
31 pub output: Option<Option<serde_json::Value>>,
32 #[serde(rename = "sessionId", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
34 pub session_id: Option<Option<String>>,
35 #[serde(rename = "release", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
37 pub release: Option<Option<String>>,
38 #[serde(rename = "version", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
40 pub version: Option<Option<String>>,
41 #[serde(rename = "userId", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
43 pub user_id: Option<Option<String>>,
44 #[serde(rename = "metadata", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
46 pub metadata: Option<Option<serde_json::Value>>,
47 #[serde(rename = "tags", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
49 pub tags: Option<Option<Vec<String>>>,
50 #[serde(rename = "public", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
52 pub public: Option<Option<bool>>,
53 #[serde(rename = "environment", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
55 pub environment: Option<Option<String>>,
56}
57
58impl Trace {
59 pub fn new(id: String, timestamp: String) -> Trace {
60 Trace {
61 id,
62 timestamp,
63 name: None,
64 input: None,
65 output: None,
66 session_id: None,
67 release: None,
68 version: None,
69 user_id: None,
70 metadata: None,
71 tags: None,
72 public: None,
73 environment: None,
74 }
75 }
76}
77