use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, bon::Builder)]
pub struct LiveResponsesDelegationSettingsUpdateInputParam {
#[serde(rename = "model", skip_serializing_if = "Option::is_none")]
pub model: Option<String>,
#[serde(
rename = "instructions",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub instructions: Option<Option<String>>,
#[serde(
rename = "max_output_tokens",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub max_output_tokens: Option<Option<i32>>,
#[serde(
rename = "service_tier",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub service_tier: Option<Option<models::LiveResponsesServiceTier>>,
#[serde(
rename = "reasoning",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub reasoning: Option<Option<Box<models::LiveDelegationReasoningInputParam>>>,
#[serde(
rename = "text",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub text: Option<Option<Box<models::LiveDelegationTextInputParam>>>,
#[serde(rename = "tools", skip_serializing_if = "Option::is_none")]
pub tools: Option<Vec<models::LiveResponsesDelegationSettingsInputParamToolsInner>>,
#[serde(rename = "tool_choice", skip_serializing_if = "Option::is_none")]
pub tool_choice: Option<Box<models::LiveResponsesDelegationSettingsInputParamToolChoice>>,
#[serde(
rename = "parallel_tool_calls",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub parallel_tool_calls: Option<Option<bool>>,
}
impl LiveResponsesDelegationSettingsUpdateInputParam {
pub fn new() -> LiveResponsesDelegationSettingsUpdateInputParam {
LiveResponsesDelegationSettingsUpdateInputParam {
model: None,
instructions: None,
max_output_tokens: None,
service_tier: None,
reasoning: None,
text: None,
tools: None,
tool_choice: None,
parallel_tool_calls: None,
}
}
}
impl std::fmt::Display for LiveResponsesDelegationSettingsUpdateInputParam {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match serde_json::to_string(self) {
Ok(s) => write!(f, "{}", s),
Err(_) => Err(std::fmt::Error),
}
}
}