langfuse_client_base/models/
create_model_request.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct CreateModelRequest {
16 #[serde(rename = "modelName")]
18 pub model_name: String,
19 #[serde(rename = "matchPattern")]
21 pub match_pattern: String,
22 #[serde(
24 rename = "startDate",
25 default,
26 with = "::serde_with::rust::double_option",
27 skip_serializing_if = "Option::is_none"
28 )]
29 pub start_date: Option<Option<String>>,
30 #[serde(rename = "unit", skip_serializing_if = "Option::is_none")]
31 pub unit: Option<models::ModelUsageUnit>,
32 #[serde(
34 rename = "inputPrice",
35 default,
36 with = "::serde_with::rust::double_option",
37 skip_serializing_if = "Option::is_none"
38 )]
39 pub input_price: Option<Option<f64>>,
40 #[serde(
42 rename = "outputPrice",
43 default,
44 with = "::serde_with::rust::double_option",
45 skip_serializing_if = "Option::is_none"
46 )]
47 pub output_price: Option<Option<f64>>,
48 #[serde(
50 rename = "totalPrice",
51 default,
52 with = "::serde_with::rust::double_option",
53 skip_serializing_if = "Option::is_none"
54 )]
55 pub total_price: Option<Option<f64>>,
56 #[serde(
58 rename = "tokenizerId",
59 default,
60 with = "::serde_with::rust::double_option",
61 skip_serializing_if = "Option::is_none"
62 )]
63 pub tokenizer_id: Option<Option<String>>,
64 #[serde(
66 rename = "tokenizerConfig",
67 default,
68 with = "::serde_with::rust::double_option",
69 skip_serializing_if = "Option::is_none"
70 )]
71 pub tokenizer_config: Option<Option<serde_json::Value>>,
72}
73
74impl CreateModelRequest {
75 pub fn new(model_name: String, match_pattern: String) -> CreateModelRequest {
76 CreateModelRequest {
77 model_name,
78 match_pattern,
79 start_date: None,
80 unit: None,
81 input_price: None,
82 output_price: None,
83 total_price: None,
84 tokenizer_id: None,
85 tokenizer_config: None,
86 }
87 }
88}