Skip to main content

windmill_api/models/
ai_token_usage_bucket.rs

1/*
2 * Windmill API
3 *
4 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5 *
6 * The version of the OpenAPI document: 1.796.0
7 * Contact: contact@windmill.dev
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct AiTokenUsageBucket {
16    /// the grouped dimension's value; empty when grouping by model
17    #[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