use crate::gen::manager::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(tag = "module")]
pub enum ApplicationUpdateBody {
#[serde(rename = "agentQueue")]
AgentQueue(Box<models::QueueAgentApplicationUpdateBody>),
#[serde(rename = "agentic")]
Agentic(Box<models::AgenticApplicationUpdateBody>),
#[serde(rename = "audioPlayer")]
AudioPlayer(Box<models::AudioPlayerApplicationUpdateBody>),
#[serde(rename = "consumerQueue")]
ConsumerQueue(Box<models::QueueConsumerApplicationUpdateBody>),
#[serde(rename = "inputReader")]
InputReader(Box<models::InputReaderApplicationUpdateBody>),
#[serde(rename = "inputReader.v2")]
InputReaderV2(Box<models::InputReaderV2ApplicationUpdateBody>),
#[serde(rename = "promptPlayer")]
PromptPlayer(Box<models::PromptPlayerApplicationUpdateBody>),
#[serde(rename = "recording")]
Recording(Box<models::RecordingApplicationUpdateBody>),
#[serde(rename = "simpleMenu")]
SimpleMenu(Box<models::SimpleMenuApplicationUpdateBody>),
#[serde(rename = "speechToText")]
SpeechToText(Box<models::SpeechToTextApplicationUpdateBody>),
#[serde(rename = "switchNode")]
SwitchNode(Box<models::SwitchNodeApplicationUpdateBody>),
#[serde(rename = "textToSpeech")]
TextToSpeech(Box<models::TextToSpeechApplicationUpdateBody>),
#[serde(rename = "transfer")]
Transfer(Box<models::TransferApplicationUpdateBody>),
}
impl Default for ApplicationUpdateBody {
fn default() -> Self {
Self::AgentQueue(Default::default())
}
}