vapi_client/models/
call_costs_inner.rs1use serde::{Deserialize, Serialize};
12 use utoipa::ToSchema;
13 use models::KnowledgeBaseCost;
14 use crate::models;
15
16 #[derive(Clone, Debug, PartialEq, Serialize, Deserialize, ToSchema)]
17 #[serde(untagged)]
18 pub enum CallCostsInner {
19 TransportCost(models::TransportCost),
20 TranscriberCost(models::TranscriberCost),
21 ModelCost(models::ModelCost),
22 VoiceCost(models::VoiceCost),
23 VapiCost(models::VapiCost),
24 VoicemailDetectionCost(models::VoicemailDetectionCost),
25 AnalysisCost(models::AnalysisCost),
26
27 KnowledgeBaseCost(models::KnowledgeBaseCost),
29 }
30
31 impl Default for CallCostsInner {
32 fn default() -> Self {
33 Self::TransportCost(Default::default())
34 }
35 }
36
37 #[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, ToSchema)]
39 pub enum Type {
40 #[serde(rename = "transport")]
41 Transport,
42 #[serde(rename = "transcriber")]
43 Transcriber,
44 #[serde(rename = "model")]
45 Model,
46 #[serde(rename = "voice")]
47 Voice,
48 #[serde(rename = "vapi")]
49 Vapi,
50 #[serde(rename = "voicemail-detection")]
51 VoicemailDetection,
52 #[serde(rename = "analysis")]
53 Analysis,
54
55 #[serde(rename = "knowledge-base")]
57 KnowledgeBase,
58 }
59
60 impl Default for Type {
61 fn default() -> Type {
62 Self::Transport
63 }
64 }
65
66 #[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, ToSchema)]
68 pub enum Provider {
69 #[serde(rename = "twilio")]
70 Twilio,
71 #[serde(rename = "google")]
72 Google,
73 #[serde(rename = "openai")]
74 Openai,
75 }
76
77 impl Default for Provider {
78 fn default() -> Provider {
79 Self::Twilio
80 }
81 }
82
83 #[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, ToSchema)]
85 pub enum SubType {
86 #[serde(rename = "normal")]
87 Normal,
88 #[serde(rename = "overage")]
89 Overage,
90 }
91
92 impl Default for SubType {
93 fn default() -> SubType {
94 Self::Normal
95 }
96 }
97
98 #[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, ToSchema)]
100 pub enum AnalysisType {
101 #[serde(rename = "summary")]
102 Summary,
103 #[serde(rename = "structuredData")]
104 StructuredData,
105 #[serde(rename = "successEvaluation")]
106 SuccessEvaluation,
107 }
108
109 impl Default for AnalysisType {
110 fn default() -> AnalysisType {
111 Self::Summary
112 }
113 }
114