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