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: Provider,
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<Model>,
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<Language>,
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: Provider) -> 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 Provider {
43    #[serde(rename = "google")]
44    Google,
45}
46
47impl Default for Provider {
48    fn default() -> Provider {
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 Model {
55    #[serde(rename = "gemini-2.0-flash-thinking-exp")]
56    Gemini2Period0FlashThinkingExp,
57    #[serde(rename = "gemini-2.0-pro-exp-02-05")]
58    Gemini2Period0ProExp0205,
59    #[serde(rename = "gemini-2.0-flash")]
60    Gemini2Period0Flash,
61    #[serde(rename = "gemini-2.0-flash-lite")]
62    Gemini2Period0FlashLite,
63    #[serde(rename = "gemini-2.0-flash-lite-preview-02-05")]
64    Gemini2Period0FlashLitePreview0205,
65    #[serde(rename = "gemini-2.0-flash-exp")]
66    Gemini2Period0FlashExp,
67    #[serde(rename = "gemini-2.0-flash-realtime-exp")]
68    Gemini2Period0FlashRealtimeExp,
69    #[serde(rename = "gemini-1.5-flash")]
70    Gemini1Period5Flash,
71    #[serde(rename = "gemini-1.5-flash-002")]
72    Gemini1Period5Flash002,
73    #[serde(rename = "gemini-1.5-pro")]
74    Gemini1Period5Pro,
75    #[serde(rename = "gemini-1.5-pro-002")]
76    Gemini1Period5Pro002,
77    #[serde(rename = "gemini-1.0-pro")]
78    Gemini1Period0Pro,
79}
80
81impl Default for Model {
82    fn default() -> Model {
83        Self::Gemini2Period0FlashThinkingExp
84    }
85}
86/// This is the language that will be set for the transcription.
87#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
88pub enum Language {
89    #[serde(rename = "Multilingual")]
90    Multilingual,
91    #[serde(rename = "Arabic")]
92    Arabic,
93    #[serde(rename = "Bengali")]
94    Bengali,
95    #[serde(rename = "Bulgarian")]
96    Bulgarian,
97    #[serde(rename = "Chinese")]
98    Chinese,
99    #[serde(rename = "Croatian")]
100    Croatian,
101    #[serde(rename = "Czech")]
102    Czech,
103    #[serde(rename = "Danish")]
104    Danish,
105    #[serde(rename = "Dutch")]
106    Dutch,
107    #[serde(rename = "English")]
108    English,
109    #[serde(rename = "Estonian")]
110    Estonian,
111    #[serde(rename = "Finnish")]
112    Finnish,
113    #[serde(rename = "French")]
114    French,
115    #[serde(rename = "German")]
116    German,
117    #[serde(rename = "Greek")]
118    Greek,
119    #[serde(rename = "Hebrew")]
120    Hebrew,
121    #[serde(rename = "Hindi")]
122    Hindi,
123    #[serde(rename = "Hungarian")]
124    Hungarian,
125    #[serde(rename = "Indonesian")]
126    Indonesian,
127    #[serde(rename = "Italian")]
128    Italian,
129    #[serde(rename = "Japanese")]
130    Japanese,
131    #[serde(rename = "Korean")]
132    Korean,
133    #[serde(rename = "Latvian")]
134    Latvian,
135    #[serde(rename = "Lithuanian")]
136    Lithuanian,
137    #[serde(rename = "Norwegian")]
138    Norwegian,
139    #[serde(rename = "Polish")]
140    Polish,
141    #[serde(rename = "Portuguese")]
142    Portuguese,
143    #[serde(rename = "Romanian")]
144    Romanian,
145    #[serde(rename = "Russian")]
146    Russian,
147    #[serde(rename = "Serbian")]
148    Serbian,
149    #[serde(rename = "Slovak")]
150    Slovak,
151    #[serde(rename = "Slovenian")]
152    Slovenian,
153    #[serde(rename = "Spanish")]
154    Spanish,
155    #[serde(rename = "Swahili")]
156    Swahili,
157    #[serde(rename = "Swedish")]
158    Swedish,
159    #[serde(rename = "Thai")]
160    Thai,
161    #[serde(rename = "Turkish")]
162    Turkish,
163    #[serde(rename = "Ukrainian")]
164    Ukrainian,
165    #[serde(rename = "Vietnamese")]
166    Vietnamese,
167}
168
169impl Default for Language {
170    fn default() -> Language {
171        Self::Multilingual
172    }
173}
174