use crate::gen::manager::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct AgenticApplicationSettings {
#[serde(rename = "flowEndApplication", skip_serializing_if = "Option::is_none")]
pub flow_end_application: Option<Box<models::ResourceReference>>,
#[serde(rename = "prompts", skip_serializing_if = "Option::is_none")]
pub prompts: Option<Vec<models::ApplicationPrompt>>,
#[serde(rename = "textToSpeech", skip_serializing_if = "Option::is_none")]
pub text_to_speech: Option<Box<models::DefaultTextToSpeechSettings>>,
#[serde(rename = "routes", skip_serializing_if = "Option::is_none")]
pub routes: Option<Vec<models::ApplicationRoutesInner>>,
#[serde(rename = "speechToText")]
pub speech_to_text: Box<models::AgenticApplicationSettingsSpeechToText>,
#[serde(rename = "maxDuration")]
pub max_duration: f64,
#[serde(rename = "maxIterations")]
pub max_iterations: f64,
#[serde(rename = "stopTrigger", skip_serializing_if = "Option::is_none")]
pub stop_trigger: Option<Box<models::ApplicationSettingsTrigger>>,
#[serde(rename = "providerSettings")]
pub provider_settings: Box<models::AgenticApplicationUltimateProviderSettings>,
}
impl AgenticApplicationSettings {
pub fn new(
speech_to_text: models::AgenticApplicationSettingsSpeechToText,
max_duration: f64,
max_iterations: f64,
provider_settings: models::AgenticApplicationUltimateProviderSettings,
) -> AgenticApplicationSettings {
AgenticApplicationSettings {
flow_end_application: None,
prompts: None,
text_to_speech: None,
routes: None,
speech_to_text: Box::new(speech_to_text),
max_duration,
max_iterations,
stop_trigger: None,
provider_settings: Box::new(provider_settings),
}
}
}