vapi_client/models/
cost_breakdown.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct CostBreakdown {
16 #[serde(rename = "transport", skip_serializing_if = "Option::is_none")]
18 pub transport: Option<f64>,
19 #[serde(rename = "stt", skip_serializing_if = "Option::is_none")]
21 pub stt: Option<f64>,
22 #[serde(rename = "llm", skip_serializing_if = "Option::is_none")]
24 pub llm: Option<f64>,
25 #[serde(rename = "tts", skip_serializing_if = "Option::is_none")]
27 pub tts: Option<f64>,
28 #[serde(rename = "vapi", skip_serializing_if = "Option::is_none")]
30 pub vapi: Option<f64>,
31 #[serde(rename = "total", skip_serializing_if = "Option::is_none")]
33 pub total: Option<f64>,
34 #[serde(rename = "llmPromptTokens", skip_serializing_if = "Option::is_none")]
36 pub llm_prompt_tokens: Option<f64>,
37 #[serde(rename = "llmCompletionTokens", skip_serializing_if = "Option::is_none")]
39 pub llm_completion_tokens: Option<f64>,
40 #[serde(rename = "ttsCharacters", skip_serializing_if = "Option::is_none")]
42 pub tts_characters: Option<f64>,
43 #[serde(rename = "analysisCostBreakdown", skip_serializing_if = "Option::is_none")]
45 pub analysis_cost_breakdown: Option<models::AnalysisCostBreakdown>,
46}
47
48impl CostBreakdown {
49 pub fn new() -> CostBreakdown {
50 CostBreakdown {
51 transport: None,
52 stt: None,
53 llm: None,
54 tts: None,
55 vapi: None,
56 total: None,
57 llm_prompt_tokens: None,
58 llm_completion_tokens: None,
59 tts_characters: None,
60 analysis_cost_breakdown: None,
61 }
62 }
63}
64