vapi_client/models/
deepgram_voice.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 DeepgramVoice {
16    /// This is the voice provider that will be used.
17    #[serde(rename = "provider")]
18    pub provider: Provider,
19    /// This is the provider-specific ID that will be used.
20    #[serde(rename = "voiceId")]
21    pub voice_id: VoiceId,
22    /// This is the model that will be used. Defaults to 'aura-2' when not specified.
23    #[serde(rename = "model", skip_serializing_if = "Option::is_none")]
24    pub model: Option<Model>,
25    /// If set to true, this will add mip_opt_out=true as a query parameter of all API requests. See https://developers.deepgram.com/docs/the-deepgram-model-improvement-partnership-program#want-to-opt-out  This will only be used if you are using your own Deepgram API key.  @default false
26    #[serde(rename = "mipOptOut", skip_serializing_if = "Option::is_none")]
27    pub mip_opt_out: Option<bool>,
28    /// This is the plan for chunking the model output before it is sent to the voice provider.
29    #[serde(rename = "chunkPlan", skip_serializing_if = "Option::is_none")]
30    pub chunk_plan: Option<models::ChunkPlan>,
31    /// This is the plan for voice provider fallbacks in the event that the primary voice provider fails.
32    #[serde(rename = "fallbackPlan", skip_serializing_if = "Option::is_none")]
33    pub fallback_plan: Option<models::FallbackPlan>,
34}
35
36impl DeepgramVoice {
37    pub fn new(provider: Provider, voice_id: VoiceId) -> DeepgramVoice {
38        DeepgramVoice {
39            provider,
40            voice_id,
41            model: None,
42            mip_opt_out: None,
43            chunk_plan: None,
44            fallback_plan: None,
45        }
46    }
47}
48/// This is the voice provider that will be used.
49#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
50pub enum Provider {
51    #[serde(rename = "deepgram")]
52    Deepgram,
53}
54
55impl Default for Provider {
56    fn default() -> Provider {
57        Self::Deepgram
58    }
59}
60/// This is the provider-specific ID that will be used.
61#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
62pub enum VoiceId {
63    #[serde(rename = "asteria")]
64    Asteria,
65    #[serde(rename = "luna")]
66    Luna,
67    #[serde(rename = "stella")]
68    Stella,
69    #[serde(rename = "athena")]
70    Athena,
71    #[serde(rename = "hera")]
72    Hera,
73    #[serde(rename = "orion")]
74    Orion,
75    #[serde(rename = "arcas")]
76    Arcas,
77    #[serde(rename = "perseus")]
78    Perseus,
79    #[serde(rename = "angus")]
80    Angus,
81    #[serde(rename = "orpheus")]
82    Orpheus,
83    #[serde(rename = "helios")]
84    Helios,
85    #[serde(rename = "zeus")]
86    Zeus,
87    #[serde(rename = "thalia")]
88    Thalia,
89    #[serde(rename = "andromeda")]
90    Andromeda,
91    #[serde(rename = "helena")]
92    Helena,
93    #[serde(rename = "apollo")]
94    Apollo,
95    #[serde(rename = "arcas-2")]
96    Arcas2,
97    #[serde(rename = "aries")]
98    Aries,
99    #[serde(rename = "amalthea")]
100    Amalthea,
101    #[serde(rename = "andromeda-2")]
102    Andromeda2,
103    #[serde(rename = "apollo-2")]
104    Apollo2,
105    #[serde(rename = "arcas-3")]
106    Arcas3,
107    #[serde(rename = "aries-2")]
108    Aries2,
109    #[serde(rename = "asteria-2")]
110    Asteria2,
111    #[serde(rename = "athena-2")]
112    Athena2,
113    #[serde(rename = "atlas")]
114    Atlas,
115    #[serde(rename = "aurora")]
116    Aurora,
117    #[serde(rename = "callista")]
118    Callista,
119    #[serde(rename = "cora")]
120    Cora,
121    #[serde(rename = "cordelia")]
122    Cordelia,
123    #[serde(rename = "delia")]
124    Delia,
125    #[serde(rename = "draco")]
126    Draco,
127    #[serde(rename = "electra")]
128    Electra,
129    #[serde(rename = "harmonia")]
130    Harmonia,
131    #[serde(rename = "helena-2")]
132    Helena2,
133    #[serde(rename = "hera-2")]
134    Hera2,
135    #[serde(rename = "hermes")]
136    Hermes,
137    #[serde(rename = "hyperion")]
138    Hyperion,
139    #[serde(rename = "iris")]
140    Iris,
141    #[serde(rename = "janus")]
142    Janus,
143    #[serde(rename = "juno")]
144    Juno,
145    #[serde(rename = "jupiter")]
146    Jupiter,
147    #[serde(rename = "luna-2")]
148    Luna2,
149    #[serde(rename = "mars")]
150    Mars,
151    #[serde(rename = "minerva")]
152    Minerva,
153    #[serde(rename = "neptune")]
154    Neptune,
155    #[serde(rename = "odysseus")]
156    Odysseus,
157    #[serde(rename = "ophelia")]
158    Ophelia,
159    #[serde(rename = "orion-2")]
160    Orion2,
161    #[serde(rename = "orpheus-2")]
162    Orpheus2,
163    #[serde(rename = "pandora")]
164    Pandora,
165    #[serde(rename = "phoebe")]
166    Phoebe,
167    #[serde(rename = "pluto")]
168    Pluto,
169    #[serde(rename = "saturn")]
170    Saturn,
171    #[serde(rename = "selene")]
172    Selene,
173    #[serde(rename = "thalia-2")]
174    Thalia2,
175    #[serde(rename = "theia")]
176    Theia,
177    #[serde(rename = "vesta")]
178    Vesta,
179    #[serde(rename = "zeus-2")]
180    Zeus2,
181}
182
183impl Default for VoiceId {
184    fn default() -> VoiceId {
185        Self::Asteria
186    }
187}
188/// This is the model that will be used. Defaults to 'aura-2' when not specified.
189#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
190pub enum Model {
191    #[serde(rename = "aura")]
192    Aura,
193    #[serde(rename = "aura-2")]
194    Aura2,
195}
196
197impl Default for Model {
198    fn default() -> Model {
199        Self::Aura
200    }
201}
202