vapi_client/models/
call_costs_inner.rs

1/*
2 * Vapi API
3 *
4 * API for building voice assistants
5 *
6 * The version of the OpenAPI document: 1.0
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11 use 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     // NEW: Add a KnowledgeBaseCost variant:
28     KnowledgeBaseCost(models::KnowledgeBaseCost),
29 }
30 
31 impl Default for CallCostsInner {
32     fn default() -> Self {
33         Self::TransportCost(Default::default())
34     }
35 }
36 
37 /// This is the type of cost, always 'transport' for this class.
38 #[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     // NEW: Add a knowledge-base variant:
56     #[serde(rename = "knowledge-base")]
57     KnowledgeBase,
58 }
59 
60 impl Default for Type {
61     fn default() -> Type {
62         Self::Transport
63     }
64 }
65 
66 /// This is the provider that was used to detect the voicemail.
67 #[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 /// This is the sub type of the cost.
84 #[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 /// This is the type of analysis performed.
99 #[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