langfuse_client_base/models/
observation_body.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize, bon::Builder)]
15pub struct ObservationBody {
16 #[serde(
17 rename = "id",
18 default,
19 with = "::serde_with::rust::double_option",
20 skip_serializing_if = "Option::is_none"
21 )]
22 pub id: Option<Option<String>>,
23 #[serde(
24 rename = "traceId",
25 default,
26 with = "::serde_with::rust::double_option",
27 skip_serializing_if = "Option::is_none"
28 )]
29 pub trace_id: Option<Option<String>>,
30 #[serde(rename = "type")]
31 pub r#type: models::ObservationType,
32 #[serde(
33 rename = "name",
34 default,
35 with = "::serde_with::rust::double_option",
36 skip_serializing_if = "Option::is_none"
37 )]
38 pub name: Option<Option<String>>,
39 #[serde(
40 rename = "startTime",
41 default,
42 with = "::serde_with::rust::double_option",
43 skip_serializing_if = "Option::is_none"
44 )]
45 pub start_time: Option<Option<chrono::DateTime<chrono::FixedOffset>>>,
46 #[serde(
47 rename = "endTime",
48 default,
49 with = "::serde_with::rust::double_option",
50 skip_serializing_if = "Option::is_none"
51 )]
52 pub end_time: Option<Option<chrono::DateTime<chrono::FixedOffset>>>,
53 #[serde(
54 rename = "completionStartTime",
55 default,
56 with = "::serde_with::rust::double_option",
57 skip_serializing_if = "Option::is_none"
58 )]
59 pub completion_start_time: Option<Option<chrono::DateTime<chrono::FixedOffset>>>,
60 #[serde(
61 rename = "model",
62 default,
63 with = "::serde_with::rust::double_option",
64 skip_serializing_if = "Option::is_none"
65 )]
66 pub model: Option<Option<String>>,
67 #[serde(
68 rename = "modelParameters",
69 default,
70 with = "::serde_with::rust::double_option",
71 skip_serializing_if = "Option::is_none"
72 )]
73 pub model_parameters: Option<Option<std::collections::HashMap<String, models::MapValue>>>,
74 #[serde(
75 rename = "input",
76 default,
77 with = "::serde_with::rust::double_option",
78 skip_serializing_if = "Option::is_none"
79 )]
80 pub input: Option<Option<serde_json::Value>>,
81 #[serde(
82 rename = "version",
83 default,
84 with = "::serde_with::rust::double_option",
85 skip_serializing_if = "Option::is_none"
86 )]
87 pub version: Option<Option<String>>,
88 #[serde(
89 rename = "metadata",
90 default,
91 with = "::serde_with::rust::double_option",
92 skip_serializing_if = "Option::is_none"
93 )]
94 pub metadata: Option<Option<serde_json::Value>>,
95 #[serde(
96 rename = "output",
97 default,
98 with = "::serde_with::rust::double_option",
99 skip_serializing_if = "Option::is_none"
100 )]
101 pub output: Option<Option<serde_json::Value>>,
102 #[serde(rename = "usage", skip_serializing_if = "Option::is_none")]
103 pub usage: Option<Box<models::Usage>>,
104 #[serde(rename = "level", skip_serializing_if = "Option::is_none")]
105 pub level: Option<models::ObservationLevel>,
106 #[serde(
107 rename = "statusMessage",
108 default,
109 with = "::serde_with::rust::double_option",
110 skip_serializing_if = "Option::is_none"
111 )]
112 pub status_message: Option<Option<String>>,
113 #[serde(
114 rename = "parentObservationId",
115 default,
116 with = "::serde_with::rust::double_option",
117 skip_serializing_if = "Option::is_none"
118 )]
119 pub parent_observation_id: Option<Option<String>>,
120 #[serde(
121 rename = "environment",
122 default,
123 with = "::serde_with::rust::double_option",
124 skip_serializing_if = "Option::is_none"
125 )]
126 pub environment: Option<Option<String>>,
127}
128
129impl ObservationBody {
130 pub fn new(r#type: models::ObservationType) -> ObservationBody {
131 ObservationBody {
132 id: None,
133 trace_id: None,
134 r#type,
135 name: None,
136 start_time: None,
137 end_time: None,
138 completion_start_time: None,
139 model: None,
140 model_parameters: None,
141 input: None,
142 version: None,
143 metadata: None,
144 output: None,
145 usage: None,
146 level: None,
147 status_message: None,
148 parent_observation_id: None,
149 environment: None,
150 }
151 }
152}