1use serde::{Deserialize, Serialize};
12use utoipa::OpenApi;
13
14
15use crate::models;
16
17#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize, OpenApi)]
18pub struct AzureSpeechTranscriber {
19 #[serde(rename = "provider")]
21 pub provider: Provider,
22 #[serde(rename = "language", skip_serializing_if = "Option::is_none")]
24 pub language: Option<Language>,
25}
26
27impl AzureSpeechTranscriber {
28 pub fn new(provider: Provider) -> AzureSpeechTranscriber {
29 AzureSpeechTranscriber {
30 provider,
31 language: None,
32 }
33 }
34}
35#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, OpenApi)]
37pub enum Provider {
38 #[serde(rename = "azure")]
39 Azure,
40}
41
42impl Default for Provider {
43 fn default() -> Provider {
44 Self::Azure
45 }
46}
47#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, OpenApi)]
49pub enum Language {
50 #[serde(rename = "af-ZA")]
51 AfZa,
52 #[serde(rename = "am-ET")]
53 AmEt,
54 #[serde(rename = "ar-AE")]
55 ArAe,
56 #[serde(rename = "ar-BH")]
57 ArBh,
58 #[serde(rename = "ar-DZ")]
59 ArDz,
60 #[serde(rename = "ar-EG")]
61 ArEg,
62 #[serde(rename = "ar-IL")]
63 ArIl,
64 #[serde(rename = "ar-IQ")]
65 ArIq,
66 #[serde(rename = "ar-JO")]
67 ArJo,
68 #[serde(rename = "ar-KW")]
69 ArKw,
70 #[serde(rename = "ar-LB")]
71 ArLb,
72 #[serde(rename = "ar-LY")]
73 ArLy,
74 #[serde(rename = "ar-MA")]
75 ArMa,
76 #[serde(rename = "ar-OM")]
77 ArOm,
78 #[serde(rename = "ar-PS")]
79 ArPs,
80 #[serde(rename = "ar-QA")]
81 ArQa,
82 #[serde(rename = "ar-SA")]
83 ArSa,
84 #[serde(rename = "ar-SY")]
85 ArSy,
86 #[serde(rename = "ar-TN")]
87 ArTn,
88 #[serde(rename = "ar-YE")]
89 ArYe,
90 #[serde(rename = "az-AZ")]
91 AzAz,
92 #[serde(rename = "bg-BG")]
93 BgBg,
94 #[serde(rename = "bn-IN")]
95 BnIn,
96 #[serde(rename = "bs-BA")]
97 BsBa,
98 #[serde(rename = "ca-ES")]
99 CaEs,
100 #[serde(rename = "cs-CZ")]
101 CsCz,
102 #[serde(rename = "cy-GB")]
103 CyGb,
104 #[serde(rename = "da-DK")]
105 DaDk,
106 #[serde(rename = "de-AT")]
107 DeAt,
108 #[serde(rename = "de-CH")]
109 DeCh,
110 #[serde(rename = "de-DE")]
111 DeDe,
112 #[serde(rename = "el-GR")]
113 ElGr,
114 #[serde(rename = "en-AU")]
115 EnAu,
116 #[serde(rename = "en-CA")]
117 EnCa,
118 #[serde(rename = "en-GB")]
119 EnGb,
120 #[serde(rename = "en-GH")]
121 EnGh,
122 #[serde(rename = "en-HK")]
123 EnHk,
124 #[serde(rename = "en-IE")]
125 EnIe,
126 #[serde(rename = "en-IN")]
127 EnIn,
128 #[serde(rename = "en-KE")]
129 EnKe,
130 #[serde(rename = "en-NG")]
131 EnNg,
132 #[serde(rename = "en-NZ")]
133 EnNz,
134 #[serde(rename = "en-PH")]
135 EnPh,
136 #[serde(rename = "en-SG")]
137 EnSg,
138 #[serde(rename = "en-TZ")]
139 EnTz,
140 #[serde(rename = "en-US")]
141 EnUs,
142 #[serde(rename = "en-ZA")]
143 EnZa,
144 #[serde(rename = "es-AR")]
145 EsAr,
146 #[serde(rename = "es-BO")]
147 EsBo,
148 #[serde(rename = "es-CL")]
149 EsCl,
150 #[serde(rename = "es-CO")]
151 EsCo,
152 #[serde(rename = "es-CR")]
153 EsCr,
154 #[serde(rename = "es-CU")]
155 EsCu,
156 #[serde(rename = "es-DO")]
157 EsDo,
158 #[serde(rename = "es-EC")]
159 EsEc,
160 #[serde(rename = "es-ES")]
161 EsEs,
162 #[serde(rename = "es-GQ")]
163 EsGq,
164 #[serde(rename = "es-GT")]
165 EsGt,
166 #[serde(rename = "es-HN")]
167 EsHn,
168 #[serde(rename = "es-MX")]
169 EsMx,
170 #[serde(rename = "es-NI")]
171 EsNi,
172 #[serde(rename = "es-PA")]
173 EsPa,
174 #[serde(rename = "es-PE")]
175 EsPe,
176 #[serde(rename = "es-PR")]
177 EsPr,
178 #[serde(rename = "es-PY")]
179 EsPy,
180 #[serde(rename = "es-SV")]
181 EsSv,
182 #[serde(rename = "es-US")]
183 EsUs,
184 #[serde(rename = "es-UY")]
185 EsUy,
186 #[serde(rename = "es-VE")]
187 EsVe,
188 #[serde(rename = "et-EE")]
189 EtEe,
190 #[serde(rename = "eu-ES")]
191 EuEs,
192 #[serde(rename = "fa-IR")]
193 FaIr,
194 #[serde(rename = "fi-FI")]
195 FiFi,
196 #[serde(rename = "fil-PH")]
197 FilPh,
198 #[serde(rename = "fr-BE")]
199 FrBe,
200 #[serde(rename = "fr-CA")]
201 FrCa,
202 #[serde(rename = "fr-CH")]
203 FrCh,
204 #[serde(rename = "fr-FR")]
205 FrFr,
206 #[serde(rename = "ga-IE")]
207 GaIe,
208 #[serde(rename = "gl-ES")]
209 GlEs,
210 #[serde(rename = "gu-IN")]
211 GuIn,
212 #[serde(rename = "he-IL")]
213 HeIl,
214 #[serde(rename = "hi-IN")]
215 HiIn,
216 #[serde(rename = "hr-HR")]
217 HrHr,
218 #[serde(rename = "hu-HU")]
219 HuHu,
220 #[serde(rename = "hy-AM")]
221 HyAm,
222 #[serde(rename = "id-ID")]
223 IdId,
224 #[serde(rename = "is-IS")]
225 IsIs,
226 #[serde(rename = "it-CH")]
227 ItCh,
228 #[serde(rename = "it-IT")]
229 ItIt,
230 #[serde(rename = "ja-JP")]
231 JaJp,
232 #[serde(rename = "jv-ID")]
233 JvId,
234 #[serde(rename = "ka-GE")]
235 KaGe,
236 #[serde(rename = "kk-KZ")]
237 KkKz,
238 #[serde(rename = "km-KH")]
239 KmKh,
240 #[serde(rename = "kn-IN")]
241 KnIn,
242 #[serde(rename = "ko-KR")]
243 KoKr,
244 #[serde(rename = "lo-LA")]
245 LoLa,
246 #[serde(rename = "lt-LT")]
247 LtLt,
248 #[serde(rename = "lv-LV")]
249 LvLv,
250 #[serde(rename = "mk-MK")]
251 MkMk,
252 #[serde(rename = "ml-IN")]
253 MlIn,
254 #[serde(rename = "mn-MN")]
255 MnMn,
256 #[serde(rename = "mr-IN")]
257 MrIn,
258 #[serde(rename = "ms-MY")]
259 MsMy,
260 #[serde(rename = "mt-MT")]
261 MtMt,
262 #[serde(rename = "my-MM")]
263 MyMm,
264 #[serde(rename = "nb-NO")]
265 NbNo,
266 #[serde(rename = "ne-NP")]
267 NeNp,
268 #[serde(rename = "nl-BE")]
269 NlBe,
270 #[serde(rename = "nl-NL")]
271 NlNl,
272 #[serde(rename = "pa-IN")]
273 PaIn,
274 #[serde(rename = "pl-PL")]
275 PlPl,
276 #[serde(rename = "ps-AF")]
277 PsAf,
278 #[serde(rename = "pt-BR")]
279 PtBr,
280 #[serde(rename = "pt-PT")]
281 PtPt,
282 #[serde(rename = "ro-RO")]
283 RoRo,
284 #[serde(rename = "ru-RU")]
285 RuRu,
286 #[serde(rename = "si-LK")]
287 SiLk,
288 #[serde(rename = "sk-SK")]
289 SkSk,
290 #[serde(rename = "sl-SI")]
291 SlSi,
292 #[serde(rename = "so-SO")]
293 SoSo,
294 #[serde(rename = "sq-AL")]
295 SqAl,
296 #[serde(rename = "sr-RS")]
297 SrRs,
298 #[serde(rename = "sv-SE")]
299 SvSe,
300 #[serde(rename = "sw-KE")]
301 SwKe,
302 #[serde(rename = "sw-TZ")]
303 SwTz,
304 #[serde(rename = "ta-IN")]
305 TaIn,
306 #[serde(rename = "te-IN")]
307 TeIn,
308 #[serde(rename = "th-TH")]
309 ThTh,
310 #[serde(rename = "tr-TR")]
311 TrTr,
312 #[serde(rename = "uk-UA")]
313 UkUa,
314 #[serde(rename = "ur-IN")]
315 UrIn,
316 #[serde(rename = "uz-UZ")]
317 UzUz,
318 #[serde(rename = "vi-VN")]
319 ViVn,
320 #[serde(rename = "wuu-CN")]
321 WuuCn,
322 #[serde(rename = "yue-CN")]
323 YueCn,
324 #[serde(rename = "zh-CN")]
325 ZhCn,
326 #[serde(rename = "zh-CN-shandong")]
327 ZhCnShandong,
328 #[serde(rename = "zh-CN-sichuan")]
329 ZhCnSichuan,
330 #[serde(rename = "zh-HK")]
331 ZhHk,
332 #[serde(rename = "zh-TW")]
333 ZhTw,
334 #[serde(rename = "zu-ZA")]
335 ZuZa,
336}
337
338impl Default for Language {
339 fn default() -> Language {
340 Self::AfZa
341 }
342}