use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct DeepgramVoice {
#[serde(rename = "cachingEnabled", skip_serializing_if = "Option::is_none")]
pub caching_enabled: Option<bool>,
#[serde(rename = "provider")]
pub provider: ProviderTrue,
#[serde(rename = "voiceId")]
pub voice_id: VoiceIdTrue,
#[serde(rename = "model", skip_serializing_if = "Option::is_none")]
pub model: Option<ModelTrue>,
#[serde(rename = "mipOptOut", skip_serializing_if = "Option::is_none")]
pub mip_opt_out: Option<bool>,
#[serde(rename = "chunkPlan", skip_serializing_if = "Option::is_none")]
pub chunk_plan: Option<models::ChunkPlan>,
#[serde(rename = "fallbackPlan", skip_serializing_if = "Option::is_none")]
pub fallback_plan: Option<models::FallbackPlan>,
}
impl DeepgramVoice {
pub fn new(provider: ProviderTrue, voice_id: VoiceIdTrue) -> DeepgramVoice {
DeepgramVoice {
caching_enabled: None,
provider,
voice_id,
model: None,
mip_opt_out: None,
chunk_plan: None,
fallback_plan: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ProviderTrue {
#[serde(rename = "deepgram")]
Deepgram,
}
impl Default for ProviderTrue {
fn default() -> ProviderTrue {
Self::Deepgram
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum VoiceIdTrue {
#[serde(rename = "asteria")]
Asteria,
#[serde(rename = "luna")]
Luna,
#[serde(rename = "stella")]
Stella,
#[serde(rename = "athena")]
Athena,
#[serde(rename = "hera")]
Hera,
#[serde(rename = "orion")]
Orion,
#[serde(rename = "arcas")]
Arcas,
#[serde(rename = "perseus")]
Perseus,
#[serde(rename = "angus")]
Angus,
#[serde(rename = "orpheus")]
Orpheus,
#[serde(rename = "helios")]
Helios,
#[serde(rename = "zeus")]
Zeus,
#[serde(rename = "thalia")]
Thalia,
#[serde(rename = "andromeda")]
Andromeda,
#[serde(rename = "helena")]
Helena,
#[serde(rename = "apollo")]
Apollo,
#[serde(rename = "arcas")]
Arcas2,
#[serde(rename = "aries")]
Aries,
#[serde(rename = "amalthea")]
Amalthea,
#[serde(rename = "asteria")]
Asteria2,
#[serde(rename = "athena")]
Athena2,
#[serde(rename = "atlas")]
Atlas,
#[serde(rename = "aurora")]
Aurora,
#[serde(rename = "callista")]
Callista,
#[serde(rename = "cora")]
Cora,
#[serde(rename = "cordelia")]
Cordelia,
#[serde(rename = "delia")]
Delia,
#[serde(rename = "draco")]
Draco,
#[serde(rename = "electra")]
Electra,
#[serde(rename = "harmonia")]
Harmonia,
#[serde(rename = "hera")]
Hera2,
#[serde(rename = "hermes")]
Hermes,
#[serde(rename = "hyperion")]
Hyperion,
#[serde(rename = "iris")]
Iris,
#[serde(rename = "janus")]
Janus,
#[serde(rename = "juno")]
Juno,
#[serde(rename = "jupiter")]
Jupiter,
#[serde(rename = "luna")]
Luna2,
#[serde(rename = "mars")]
Mars,
#[serde(rename = "minerva")]
Minerva,
#[serde(rename = "neptune")]
Neptune,
#[serde(rename = "odysseus")]
Odysseus,
#[serde(rename = "ophelia")]
Ophelia,
#[serde(rename = "orion")]
Orion2,
#[serde(rename = "orpheus")]
Orpheus2,
#[serde(rename = "pandora")]
Pandora,
#[serde(rename = "phoebe")]
Phoebe,
#[serde(rename = "pluto")]
Pluto,
#[serde(rename = "saturn")]
Saturn,
#[serde(rename = "selene")]
Selene,
#[serde(rename = "theia")]
Theia,
#[serde(rename = "vesta")]
Vesta,
#[serde(rename = "zeus")]
Zeus2,
}
impl Default for VoiceIdTrue {
fn default() -> VoiceIdTrue {
Self::Asteria
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ModelTrue {
#[serde(rename = "aura")]
Aura,
#[serde(rename = "aura-2")]
Aura2,
}
impl Default for ModelTrue {
fn default() -> ModelTrue {
Self::Aura
}
}