1use serde::{Deserialize, Serialize};
12use utoipa::OpenApi;
13
14
15use crate::models;
16
17#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize, OpenApi)]
18pub struct TalkscriberTranscriber {
19 #[serde(rename = "provider")]
21 pub provider: Provider,
22 #[serde(rename = "model", skip_serializing_if = "Option::is_none")]
24 pub model: Option<Model>,
25 #[serde(rename = "language", skip_serializing_if = "Option::is_none")]
27 pub language: Option<Language>,
28}
29
30impl TalkscriberTranscriber {
31 pub fn new(provider: Provider) -> TalkscriberTranscriber {
32 TalkscriberTranscriber {
33 provider,
34 model: None,
35 language: None,
36 }
37 }
38}
39#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, OpenApi)]
41pub enum Provider {
42 #[serde(rename = "talkscriber")]
43 Talkscriber,
44}
45
46impl Default for Provider {
47 fn default() -> Provider {
48 Self::Talkscriber
49 }
50}
51#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, OpenApi)]
53pub enum Model {
54 #[serde(rename = "whisper")]
55 Whisper,
56}
57
58impl Default for Model {
59 fn default() -> Model {
60 Self::Whisper
61 }
62}
63#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, OpenApi)]
65pub enum Language {
66 #[serde(rename = "en")]
67 En,
68 #[serde(rename = "zh")]
69 Zh,
70 #[serde(rename = "de")]
71 De,
72 #[serde(rename = "es")]
73 Es,
74 #[serde(rename = "ru")]
75 Ru,
76 #[serde(rename = "ko")]
77 Ko,
78 #[serde(rename = "fr")]
79 Fr,
80 #[serde(rename = "ja")]
81 Ja,
82 #[serde(rename = "pt")]
83 Pt,
84 #[serde(rename = "tr")]
85 Tr,
86 #[serde(rename = "pl")]
87 Pl,
88 #[serde(rename = "ca")]
89 Ca,
90 #[serde(rename = "nl")]
91 Nl,
92 #[serde(rename = "ar")]
93 Ar,
94 #[serde(rename = "sv")]
95 Sv,
96 #[serde(rename = "it")]
97 It,
98 #[serde(rename = "id")]
99 Id,
100 #[serde(rename = "hi")]
101 Hi,
102 #[serde(rename = "fi")]
103 Fi,
104 #[serde(rename = "vi")]
105 Vi,
106 #[serde(rename = "he")]
107 He,
108 #[serde(rename = "uk")]
109 Uk,
110 #[serde(rename = "el")]
111 El,
112 #[serde(rename = "ms")]
113 Ms,
114 #[serde(rename = "cs")]
115 Cs,
116 #[serde(rename = "ro")]
117 Ro,
118 #[serde(rename = "da")]
119 Da,
120 #[serde(rename = "hu")]
121 Hu,
122 #[serde(rename = "ta")]
123 Ta,
124 #[serde(rename = "no")]
125 No,
126 #[serde(rename = "th")]
127 Th,
128 #[serde(rename = "ur")]
129 Ur,
130 #[serde(rename = "hr")]
131 Hr,
132 #[serde(rename = "bg")]
133 Bg,
134 #[serde(rename = "lt")]
135 Lt,
136 #[serde(rename = "la")]
137 La,
138 #[serde(rename = "mi")]
139 Mi,
140 #[serde(rename = "ml")]
141 Ml,
142 #[serde(rename = "cy")]
143 Cy,
144 #[serde(rename = "sk")]
145 Sk,
146 #[serde(rename = "te")]
147 Te,
148 #[serde(rename = "fa")]
149 Fa,
150 #[serde(rename = "lv")]
151 Lv,
152 #[serde(rename = "bn")]
153 Bn,
154 #[serde(rename = "sr")]
155 Sr,
156 #[serde(rename = "az")]
157 Az,
158 #[serde(rename = "sl")]
159 Sl,
160 #[serde(rename = "kn")]
161 Kn,
162 #[serde(rename = "et")]
163 Et,
164 #[serde(rename = "mk")]
165 Mk,
166 #[serde(rename = "br")]
167 Br,
168 #[serde(rename = "eu")]
169 Eu,
170 #[serde(rename = "is")]
171 Is,
172 #[serde(rename = "hy")]
173 Hy,
174 #[serde(rename = "ne")]
175 Ne,
176 #[serde(rename = "mn")]
177 Mn,
178 #[serde(rename = "bs")]
179 Bs,
180 #[serde(rename = "kk")]
181 Kk,
182 #[serde(rename = "sq")]
183 Sq,
184 #[serde(rename = "sw")]
185 Sw,
186 #[serde(rename = "gl")]
187 Gl,
188 #[serde(rename = "mr")]
189 Mr,
190 #[serde(rename = "pa")]
191 Pa,
192 #[serde(rename = "si")]
193 Si,
194 #[serde(rename = "km")]
195 Km,
196 #[serde(rename = "sn")]
197 Sn,
198 #[serde(rename = "yo")]
199 Yo,
200 #[serde(rename = "so")]
201 So,
202 #[serde(rename = "af")]
203 Af,
204 #[serde(rename = "oc")]
205 Oc,
206 #[serde(rename = "ka")]
207 Ka,
208 #[serde(rename = "be")]
209 Be,
210 #[serde(rename = "tg")]
211 Tg,
212 #[serde(rename = "sd")]
213 Sd,
214 #[serde(rename = "gu")]
215 Gu,
216 #[serde(rename = "am")]
217 Am,
218 #[serde(rename = "yi")]
219 Yi,
220 #[serde(rename = "lo")]
221 Lo,
222 #[serde(rename = "uz")]
223 Uz,
224 #[serde(rename = "fo")]
225 Fo,
226 #[serde(rename = "ht")]
227 Ht,
228 #[serde(rename = "ps")]
229 Ps,
230 #[serde(rename = "tk")]
231 Tk,
232 #[serde(rename = "nn")]
233 Nn,
234 #[serde(rename = "mt")]
235 Mt,
236 #[serde(rename = "sa")]
237 Sa,
238 #[serde(rename = "lb")]
239 Lb,
240 #[serde(rename = "my")]
241 My,
242 #[serde(rename = "bo")]
243 Bo,
244 #[serde(rename = "tl")]
245 Tl,
246 #[serde(rename = "mg")]
247 Mg,
248 #[serde(rename = "as")]
249 As,
250 #[serde(rename = "tt")]
251 Tt,
252 #[serde(rename = "haw")]
253 Haw,
254 #[serde(rename = "ln")]
255 Ln,
256 #[serde(rename = "ha")]
257 Ha,
258 #[serde(rename = "ba")]
259 Ba,
260 #[serde(rename = "jw")]
261 Jw,
262 #[serde(rename = "su")]
263 Su,
264 #[serde(rename = "yue")]
265 Yue,
266}
267
268impl Default for Language {
269 fn default() -> Language {
270 Self::En
271 }
272}