vapi_client/models/
call_costs_inner.rs

1/*
2 * Vapi API
3 *
4 * Voice AI for developers.
5 *
6 * The version of the OpenAPI document: 1.0
7 * 
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
15#[serde(untagged)]
16pub enum CallCostsInner {
17    TransportCost(Box<models::TransportCost>),
18    TranscriberCost(Box<models::TranscriberCost>),
19    ModelCost(Box<models::ModelCost>),
20    VoiceCost(Box<models::VoiceCost>),
21    VapiCost(Box<models::VapiCost>),
22    VoicemailDetectionCost(Box<models::VoicemailDetectionCost>),
23    AnalysisCost(Box<models::AnalysisCost>),
24}
25
26impl Default for CallCostsInner {
27    fn default() -> Self {
28        Self::TransportCost(Default::default())
29    }
30}
31/// This is the type of cost, always 'transport' for this class.
32#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
33pub enum Type {
34    #[serde(rename = "transport")]
35    Transport,
36    #[serde(rename = "transcriber")]
37    Transcriber,
38    #[serde(rename = "model")]
39    Model,
40    #[serde(rename = "voice")]
41    Voice,
42    #[serde(rename = "vapi")]
43    Vapi,
44    #[serde(rename = "voicemail-detection")]
45    VoicemailDetection,
46    #[serde(rename = "analysis")]
47    Analysis,
48}
49
50impl Default for Type {
51    fn default() -> Type {
52        Self::Transport
53    }
54}
55/// This is the provider that was used to detect the voicemail.
56#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
57pub enum Provider {
58    #[serde(rename = "twilio")]
59    Twilio,
60    #[serde(rename = "google")]
61    Google,
62    #[serde(rename = "openai")]
63    Openai,
64}
65
66impl Default for Provider {
67    fn default() -> Provider {
68        Self::Twilio
69    }
70}
71/// This is the sub type of the cost.
72#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
73pub enum SubType {
74    #[serde(rename = "normal")]
75    Normal,
76    #[serde(rename = "overage")]
77    Overage,
78}
79
80impl Default for SubType {
81    fn default() -> SubType {
82        Self::Normal
83    }
84}
85/// This is the type of analysis performed.
86#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
87pub enum AnalysisType {
88    #[serde(rename = "summary")]
89    Summary,
90    #[serde(rename = "structuredData")]
91    StructuredData,
92    #[serde(rename = "successEvaluation")]
93    SuccessEvaluation,
94}
95
96impl Default for AnalysisType {
97    fn default() -> AnalysisType {
98        Self::Summary
99    }
100}
101