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 flag to toggle voice caching for the assistant.
17    #[serde(rename = "cachingEnabled", skip_serializing_if = "Option::is_none")]
18    pub caching_enabled: Option<bool>,
19    /// This is the voice provider that will be used.
20    #[serde(rename = "provider")]
21    pub provider: ProviderTrue,
22    /// This is the provider-specific ID that will be used.
23    #[serde(rename = "voiceId")]
24    pub voice_id: VoiceIdTrue,
25    /// This is the model that will be used. Defaults to 'aura-2' when not specified.
26    #[serde(rename = "model", skip_serializing_if = "Option::is_none")]
27    pub model: Option<ModelTrue>,
28    /// 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
29    #[serde(rename = "mipOptOut", skip_serializing_if = "Option::is_none")]
30    pub mip_opt_out: Option<bool>,
31    /// This is the plan for chunking the model output before it is sent to the voice provider.
32    #[serde(rename = "chunkPlan", skip_serializing_if = "Option::is_none")]
33    pub chunk_plan: Option<models::ChunkPlan>,
34    /// This is the plan for voice provider fallbacks in the event that the primary voice provider fails.
35    #[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/// This is the voice provider that will be used.
53#[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/// This is the provider-specific ID that will be used.
65#[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/// This is the model that will be used. Defaults to 'aura-2' when not specified.
181#[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}