1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct DeepgramVoice {
16 #[serde(rename = "cachingEnabled", skip_serializing_if = "Option::is_none")]
18 pub caching_enabled: Option<bool>,
19 #[serde(rename = "provider")]
21 pub provider: ProviderTrue,
22 #[serde(rename = "voiceId")]
24 pub voice_id: VoiceIdTrue,
25 #[serde(rename = "model", skip_serializing_if = "Option::is_none")]
27 pub model: Option<ModelTrue>,
28 #[serde(rename = "mipOptOut", skip_serializing_if = "Option::is_none")]
30 pub mip_opt_out: Option<bool>,
31 #[serde(rename = "chunkPlan", skip_serializing_if = "Option::is_none")]
33 pub chunk_plan: Option<models::ChunkPlan>,
34 #[serde(rename = "fallbackPlan", skip_serializing_if = "Option::is_none")]
36 pub fallback_plan: Option<models::FallbackPlan>,
37}
38
39impl DeepgramVoice {
40 pub fn new(provider: ProviderTrue, voice_id: VoiceIdTrue) -> DeepgramVoice {
41 DeepgramVoice {
42 caching_enabled: None,
43 provider,
44 voice_id,
45 model: None,
46 mip_opt_out: None,
47 chunk_plan: None,
48 fallback_plan: None,
49 }
50 }
51}
52#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
54pub enum ProviderTrue {
55 #[serde(rename = "deepgram")]
56 Deepgram,
57}
58
59impl Default for ProviderTrue {
60 fn default() -> ProviderTrue {
61 Self::Deepgram
62 }
63}
64#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
66pub enum VoiceIdTrue {
67 #[serde(rename = "asteria")]
68 Asteria,
69 #[serde(rename = "luna")]
70 Luna,
71 #[serde(rename = "stella")]
72 Stella,
73 #[serde(rename = "athena")]
74 Athena,
75 #[serde(rename = "hera")]
76 Hera,
77 #[serde(rename = "orion")]
78 Orion,
79 #[serde(rename = "arcas")]
80 Arcas,
81 #[serde(rename = "perseus")]
82 Perseus,
83 #[serde(rename = "angus")]
84 Angus,
85 #[serde(rename = "orpheus")]
86 Orpheus,
87 #[serde(rename = "helios")]
88 Helios,
89 #[serde(rename = "zeus")]
90 Zeus,
91 #[serde(rename = "thalia")]
92 Thalia,
93 #[serde(rename = "andromeda")]
94 Andromeda,
95 #[serde(rename = "helena")]
96 Helena,
97 #[serde(rename = "apollo")]
98 Apollo,
99 #[serde(rename = "arcas")]
100 Arcas2,
101 #[serde(rename = "aries")]
102 Aries,
103 #[serde(rename = "amalthea")]
104 Amalthea,
105 #[serde(rename = "asteria")]
106 Asteria2,
107 #[serde(rename = "athena")]
108 Athena2,
109 #[serde(rename = "atlas")]
110 Atlas,
111 #[serde(rename = "aurora")]
112 Aurora,
113 #[serde(rename = "callista")]
114 Callista,
115 #[serde(rename = "cora")]
116 Cora,
117 #[serde(rename = "cordelia")]
118 Cordelia,
119 #[serde(rename = "delia")]
120 Delia,
121 #[serde(rename = "draco")]
122 Draco,
123 #[serde(rename = "electra")]
124 Electra,
125 #[serde(rename = "harmonia")]
126 Harmonia,
127 #[serde(rename = "hera")]
128 Hera2,
129 #[serde(rename = "hermes")]
130 Hermes,
131 #[serde(rename = "hyperion")]
132 Hyperion,
133 #[serde(rename = "iris")]
134 Iris,
135 #[serde(rename = "janus")]
136 Janus,
137 #[serde(rename = "juno")]
138 Juno,
139 #[serde(rename = "jupiter")]
140 Jupiter,
141 #[serde(rename = "luna")]
142 Luna2,
143 #[serde(rename = "mars")]
144 Mars,
145 #[serde(rename = "minerva")]
146 Minerva,
147 #[serde(rename = "neptune")]
148 Neptune,
149 #[serde(rename = "odysseus")]
150 Odysseus,
151 #[serde(rename = "ophelia")]
152 Ophelia,
153 #[serde(rename = "orion")]
154 Orion2,
155 #[serde(rename = "orpheus")]
156 Orpheus2,
157 #[serde(rename = "pandora")]
158 Pandora,
159 #[serde(rename = "phoebe")]
160 Phoebe,
161 #[serde(rename = "pluto")]
162 Pluto,
163 #[serde(rename = "saturn")]
164 Saturn,
165 #[serde(rename = "selene")]
166 Selene,
167 #[serde(rename = "theia")]
168 Theia,
169 #[serde(rename = "vesta")]
170 Vesta,
171 #[serde(rename = "zeus")]
172 Zeus2,
173}
174
175impl Default for VoiceIdTrue {
176 fn default() -> VoiceIdTrue {
177 Self::Asteria
178 }
179}
180#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
182pub enum ModelTrue {
183 #[serde(rename = "aura")]
184 Aura,
185 #[serde(rename = "aura-2")]
186 Aura2,
187}
188
189impl Default for ModelTrue {
190 fn default() -> ModelTrue {
191 Self::Aura
192 }
193}