use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum ToolChoiceParam {
ToolChoiceOptions(Box<models::ToolChoiceOptions>),
ToolChoiceAllowed(Box<models::ToolChoiceAllowed>),
ToolChoiceTypes(Box<models::ToolChoiceTypes>),
ToolChoiceFunction(Box<models::ToolChoiceFunction>),
ToolChoiceMcp(Box<models::ToolChoiceMcp>),
ToolChoiceCustom(Box<models::ToolChoiceCustom>),
SpecificApplyPatchParam(Box<models::SpecificApplyPatchParam>),
SpecificFunctionShellParam(Box<models::SpecificFunctionShellParam>),
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Mode {
Auto,
Required,
}