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