vapi_client/models/
google_transcriber.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, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct GoogleTranscriber {
16    /// This is the transcription provider that will be used.
17    #[serde(rename = "provider")]
18    pub provider: ProviderTrue,
19    /// This is the model that will be used for the transcription.
20    #[serde(rename = "model", skip_serializing_if = "Option::is_none")]
21    pub model: Option<ModelTrue>,
22    /// This is the language that will be set for the transcription.
23    #[serde(rename = "language", skip_serializing_if = "Option::is_none")]
24    pub language: Option<LanguageTrue>,
25    /// This is the plan for voice provider fallbacks in the event that the primary voice provider fails.
26    #[serde(rename = "fallbackPlan", skip_serializing_if = "Option::is_none")]
27    pub fallback_plan: Option<models::FallbackTranscriberPlan>,
28}
29
30impl GoogleTranscriber {
31    pub fn new(provider: ProviderTrue) -> GoogleTranscriber {
32        GoogleTranscriber {
33            provider,
34            model: None,
35            language: None,
36            fallback_plan: None,
37        }
38    }
39}
40/// This is the transcription provider that will be used.
41#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
42pub enum ProviderTrue {
43    #[serde(rename = "google")]
44    Google,
45}
46
47impl Default for ProviderTrue {
48    fn default() -> ProviderTrue {
49        Self::Google
50    }
51}
52/// This is the model that will be used for the transcription.
53#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
54pub enum ModelTrue {
55    #[serde(rename = "gemini-2.5-pro-preview-05-06")]
56    Gemini2Period5ProPreview0506,
57    #[serde(rename = "gemini-2.5-flash-preview-05-20")]
58    Gemini2Period5FlashPreview0520,
59    #[serde(rename = "gemini-2.5-flash-preview-04-17")]
60    Gemini2Period5FlashPreview0417,
61    #[serde(rename = "gemini-2.0-flash-thinking-exp")]
62    Gemini2Period0FlashThinkingExp,
63    #[serde(rename = "gemini-2.0-pro-exp-02-05")]
64    Gemini2Period0ProExp0205,
65    #[serde(rename = "gemini-2.0-flash")]
66    Gemini2Period0Flash,
67    #[serde(rename = "gemini-2.0-flash-lite")]
68    Gemini2Period0FlashLite,
69    #[serde(rename = "gemini-2.0-flash-lite-preview-02-05")]
70    Gemini2Period0FlashLitePreview0205,
71    #[serde(rename = "gemini-2.0-flash-exp")]
72    Gemini2Period0FlashExp,
73    #[serde(rename = "gemini-2.0-flash-realtime-exp")]
74    Gemini2Period0FlashRealtimeExp,
75    #[serde(rename = "gemini-1.5-flash")]
76    Gemini1Period5Flash,
77    #[serde(rename = "gemini-1.5-flash-002")]
78    Gemini1Period5Flash002,
79    #[serde(rename = "gemini-1.5-pro")]
80    Gemini1Period5Pro,
81    #[serde(rename = "gemini-1.5-pro-002")]
82    Gemini1Period5Pro002,
83    #[serde(rename = "gemini-1.0-pro")]
84    Gemini1Period0Pro,
85}
86
87impl Default for ModelTrue {
88    fn default() -> ModelTrue {
89        Self::Gemini2Period5ProPreview0506
90    }
91}
92/// This is the language that will be set for the transcription.
93#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
94pub enum LanguageTrue {
95    #[serde(rename = "Multilingual")]
96    Multilingual,
97    #[serde(rename = "Arabic")]
98    Arabic,
99    #[serde(rename = "Bengali")]
100    Bengali,
101    #[serde(rename = "Bulgarian")]
102    Bulgarian,
103    #[serde(rename = "Chinese")]
104    Chinese,
105    #[serde(rename = "Croatian")]
106    Croatian,
107    #[serde(rename = "Czech")]
108    Czech,
109    #[serde(rename = "Danish")]
110    Danish,
111    #[serde(rename = "Dutch")]
112    Dutch,
113    #[serde(rename = "English")]
114    English,
115    #[serde(rename = "Estonian")]
116    Estonian,
117    #[serde(rename = "Finnish")]
118    Finnish,
119    #[serde(rename = "French")]
120    French,
121    #[serde(rename = "German")]
122    German,
123    #[serde(rename = "Greek")]
124    Greek,
125    #[serde(rename = "Hebrew")]
126    Hebrew,
127    #[serde(rename = "Hindi")]
128    Hindi,
129    #[serde(rename = "Hungarian")]
130    Hungarian,
131    #[serde(rename = "Indonesian")]
132    Indonesian,
133    #[serde(rename = "Italian")]
134    Italian,
135    #[serde(rename = "Japanese")]
136    Japanese,
137    #[serde(rename = "Korean")]
138    Korean,
139    #[serde(rename = "Latvian")]
140    Latvian,
141    #[serde(rename = "Lithuanian")]
142    Lithuanian,
143    #[serde(rename = "Norwegian")]
144    Norwegian,
145    #[serde(rename = "Polish")]
146    Polish,
147    #[serde(rename = "Portuguese")]
148    Portuguese,
149    #[serde(rename = "Romanian")]
150    Romanian,
151    #[serde(rename = "Russian")]
152    Russian,
153    #[serde(rename = "Serbian")]
154    Serbian,
155    #[serde(rename = "Slovak")]
156    Slovak,
157    #[serde(rename = "Slovenian")]
158    Slovenian,
159    #[serde(rename = "Spanish")]
160    Spanish,
161    #[serde(rename = "Swahili")]
162    Swahili,
163    #[serde(rename = "Swedish")]
164    Swedish,
165    #[serde(rename = "Thai")]
166    Thai,
167    #[serde(rename = "Turkish")]
168    Turkish,
169    #[serde(rename = "Ukrainian")]
170    Ukrainian,
171    #[serde(rename = "Vietnamese")]
172    Vietnamese,
173}
174
175impl Default for LanguageTrue {
176    fn default() -> LanguageTrue {
177        Self::Multilingual
178    }
179}