windmill_api/models/
ai_token_usage_bucket.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct AiTokenUsageBucket {
16 #[serde(rename = "key")]
18 pub key: String,
19 #[serde(rename = "provider")]
20 pub provider: String,
21 #[serde(rename = "model")]
22 pub model: String,
23 #[serde(rename = "input_tokens")]
24 pub input_tokens: i32,
25 #[serde(rename = "cache_read_tokens")]
26 pub cache_read_tokens: i32,
27 #[serde(rename = "cache_write_tokens")]
28 pub cache_write_tokens: i32,
29 #[serde(rename = "output_tokens")]
30 pub output_tokens: i32,
31 #[serde(rename = "reported_cost_nano_usd", skip_serializing_if = "Option::is_none")]
32 pub reported_cost_nano_usd: Option<i32>,
33 #[serde(rename = "requests")]
34 pub requests: i32,
35}
36
37impl AiTokenUsageBucket {
38 pub fn new(key: String, provider: String, model: String, input_tokens: i32, cache_read_tokens: i32, cache_write_tokens: i32, output_tokens: i32, requests: i32) -> AiTokenUsageBucket {
39 AiTokenUsageBucket {
40 key,
41 provider,
42 model,
43 input_tokens,
44 cache_read_tokens,
45 cache_write_tokens,
46 output_tokens,
47 reported_cost_nano_usd: None,
48 requests,
49 }
50 }
51}
52