objectiveai-api 2.0.5

ObjectiveAI API Server
use serde::{Deserialize, Serialize};

#[derive(Clone, Copy, Debug, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "snake_case")]
pub enum DirectCallerType {
    Direct,
}

#[derive(Clone, Copy, Debug, Serialize, Deserialize, PartialEq, Eq)]
pub struct DirectCaller {
    pub r#type: DirectCallerType,
}

#[derive(Clone, Copy, Debug, Serialize, Deserialize, PartialEq, Eq)]
pub enum ServerToolCallerType {
    #[serde(rename = "code_execution_20250825")]
    CodeExecution20250825,
}

#[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
pub struct ServerToolCaller {
    pub tool_id: String,
    pub r#type: ServerToolCallerType,
}

#[derive(Clone, Copy, Debug, Serialize, Deserialize, PartialEq, Eq)]
pub enum ServerToolCaller20260120Type {
    #[serde(rename = "code_execution_20260120")]
    CodeExecution20260120,
}

#[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
pub struct ServerToolCaller20260120 {
    pub tool_id: String,
    pub r#type: ServerToolCaller20260120Type,
}

#[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
#[serde(untagged)]
pub enum Caller {
    Direct(DirectCaller),
    ServerTool(ServerToolCaller),
    ServerTool20260120(ServerToolCaller20260120),
}