babelforce-manager-sdk 0.42.3

Rust SDK for the babelforce manager APIs — auth, user & agent management, call reporting, metrics, and task automations.
Documentation
/*
 * Manager API
 *
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 0.0.0-dev
 * Contact: support@babelforce.com
 * Generated by: https://openapi-generator.tech
 */

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>,
    /// Max duration in seconds
    #[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),
        }
    }
}