#![allow(unused_imports)]
use super::*;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum AllModels {
#[serde(rename = "o1-pro")]
O1Pro,
#[serde(rename = "o1-pro-2025-03-19")]
O1Pro20250319,
#[serde(rename = "o3-pro")]
O3Pro,
#[serde(rename = "o3-pro-2025-06-10")]
O3Pro20250610,
#[serde(rename = "o3-deep-research")]
O3DeepResearch,
#[serde(rename = "o3-deep-research-2025-06-26")]
O3DeepResearch20250626,
#[serde(rename = "o4-mini-deep-research")]
O4MiniDeepResearch,
#[serde(rename = "o4-mini-deep-research-2025-06-26")]
O4MiniDeepResearch20250626,
#[serde(rename = "computer-use-preview")]
ComputerUsePreview,
#[serde(rename = "computer-use-preview-2025-03-11")]
ComputerUsePreview20250311,
#[serde(rename = "gpt-5-codex")]
Gpt5Codex,
#[serde(rename = "gpt-5-pro")]
Gpt5Pro,
#[serde(rename = "gpt-5-pro-2025-10-06")]
Gpt5Pro20251006,
#[serde(rename = "gpt-5.1-codex-max")]
Gpt51CodexMax,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ChatModel {
#[serde(rename = "gpt-5.4")]
Gpt54,
#[serde(rename = "gpt-5.4-mini")]
Gpt54Mini,
#[serde(rename = "gpt-5.4-nano")]
Gpt54Nano,
#[serde(rename = "gpt-5.4-mini-2026-03-17")]
Gpt54Mini20260317,
#[serde(rename = "gpt-5.4-nano-2026-03-17")]
Gpt54Nano20260317,
#[serde(rename = "gpt-5.3-chat-latest")]
Gpt53ChatLatest,
#[serde(rename = "gpt-5.2")]
Gpt52,
#[serde(rename = "gpt-5.2-2025-12-11")]
Gpt5220251211,
#[serde(rename = "gpt-5.2-chat-latest")]
Gpt52ChatLatest,
#[serde(rename = "gpt-5.2-pro")]
Gpt52Pro,
#[serde(rename = "gpt-5.2-pro-2025-12-11")]
Gpt52Pro20251211,
#[serde(rename = "gpt-5.1")]
Gpt51,
#[serde(rename = "gpt-5.1-2025-11-13")]
Gpt5120251113,
#[serde(rename = "gpt-5.1-codex")]
Gpt51Codex,
#[serde(rename = "gpt-5.1-mini")]
Gpt51Mini,
#[serde(rename = "gpt-5.1-chat-latest")]
Gpt51ChatLatest,
#[serde(rename = "gpt-5")]
Gpt5,
#[serde(rename = "gpt-5-mini")]
Gpt5Mini,
#[serde(rename = "gpt-5-nano")]
Gpt5Nano,
#[serde(rename = "gpt-5-2025-08-07")]
Gpt520250807,
#[serde(rename = "gpt-5-mini-2025-08-07")]
Gpt5Mini20250807,
#[serde(rename = "gpt-5-nano-2025-08-07")]
Gpt5Nano20250807,
#[serde(rename = "gpt-5-chat-latest")]
Gpt5ChatLatest,
#[serde(rename = "gpt-4.1")]
Gpt41,
#[serde(rename = "gpt-4.1-mini")]
Gpt41Mini,
#[serde(rename = "gpt-4.1-nano")]
Gpt41Nano,
#[serde(rename = "gpt-4.1-2025-04-14")]
Gpt4120250414,
#[serde(rename = "gpt-4.1-mini-2025-04-14")]
Gpt41Mini20250414,
#[serde(rename = "gpt-4.1-nano-2025-04-14")]
Gpt41Nano20250414,
#[serde(rename = "o4-mini")]
O4Mini,
#[serde(rename = "o4-mini-2025-04-16")]
O4Mini20250416,
#[serde(rename = "o3")]
O3,
#[serde(rename = "o3-2025-04-16")]
O320250416,
#[serde(rename = "o3-mini")]
O3Mini,
#[serde(rename = "o3-mini-2025-01-31")]
O3Mini20250131,
#[serde(rename = "o1")]
O1,
#[serde(rename = "o1-2024-12-17")]
O120241217,
#[serde(rename = "o1-preview")]
O1Preview,
#[serde(rename = "o1-preview-2024-09-12")]
O1Preview20240912,
#[serde(rename = "o1-mini")]
O1Mini,
#[serde(rename = "o1-mini-2024-09-12")]
O1Mini20240912,
#[serde(rename = "gpt-4o")]
Gpt4o,
#[serde(rename = "gpt-4o-2024-11-20")]
Gpt4o20241120,
#[serde(rename = "gpt-4o-2024-08-06")]
Gpt4o20240806,
#[serde(rename = "gpt-4o-2024-05-13")]
Gpt4o20240513,
#[serde(rename = "gpt-4o-audio-preview")]
Gpt4oAudioPreview,
#[serde(rename = "gpt-4o-audio-preview-2024-10-01")]
Gpt4oAudioPreview20241001,
#[serde(rename = "gpt-4o-audio-preview-2024-12-17")]
Gpt4oAudioPreview20241217,
#[serde(rename = "gpt-4o-audio-preview-2025-06-03")]
Gpt4oAudioPreview20250603,
#[serde(rename = "gpt-4o-mini-audio-preview")]
Gpt4oMiniAudioPreview,
#[serde(rename = "gpt-4o-mini-audio-preview-2024-12-17")]
Gpt4oMiniAudioPreview20241217,
#[serde(rename = "gpt-4o-search-preview")]
Gpt4oSearchPreview,
#[serde(rename = "gpt-4o-mini-search-preview")]
Gpt4oMiniSearchPreview,
#[serde(rename = "gpt-4o-search-preview-2025-03-11")]
Gpt4oSearchPreview20250311,
#[serde(rename = "gpt-4o-mini-search-preview-2025-03-11")]
Gpt4oMiniSearchPreview20250311,
#[serde(rename = "chatgpt-4o-latest")]
Chatgpt4oLatest,
#[serde(rename = "codex-mini-latest")]
CodexMiniLatest,
#[serde(rename = "gpt-4o-mini")]
Gpt4oMini,
#[serde(rename = "gpt-4o-mini-2024-07-18")]
Gpt4oMini20240718,
#[serde(rename = "gpt-4-turbo")]
Gpt4Turbo,
#[serde(rename = "gpt-4-turbo-2024-04-09")]
Gpt4Turbo20240409,
#[serde(rename = "gpt-4-0125-preview")]
Gpt40125Preview,
#[serde(rename = "gpt-4-turbo-preview")]
Gpt4TurboPreview,
#[serde(rename = "gpt-4-1106-preview")]
Gpt41106Preview,
#[serde(rename = "gpt-4-vision-preview")]
Gpt4VisionPreview,
#[serde(rename = "gpt-4")]
Gpt4,
#[serde(rename = "gpt-4-0314")]
Gpt40314,
#[serde(rename = "gpt-4-0613")]
Gpt40613,
#[serde(rename = "gpt-4-32k")]
Gpt432k,
#[serde(rename = "gpt-4-32k-0314")]
Gpt432k0314,
#[serde(rename = "gpt-4-32k-0613")]
Gpt432k0613,
#[serde(rename = "gpt-3.5-turbo")]
Gpt35Turbo,
#[serde(rename = "gpt-3.5-turbo-16k")]
Gpt35Turbo16k,
#[serde(rename = "gpt-3.5-turbo-0301")]
Gpt35Turbo0301,
#[serde(rename = "gpt-3.5-turbo-0613")]
Gpt35Turbo0613,
#[serde(rename = "gpt-3.5-turbo-1106")]
Gpt35Turbo1106,
#[serde(rename = "gpt-3.5-turbo-0125")]
Gpt35Turbo0125,
#[serde(rename = "gpt-3.5-turbo-16k-0613")]
Gpt35Turbo16k0613,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ComparisonFilterType {
#[serde(rename = "eq")]
Eq,
#[serde(rename = "ne")]
Ne,
#[serde(rename = "gt")]
Gt,
#[serde(rename = "gte")]
Gte,
#[serde(rename = "lt")]
Lt,
#[serde(rename = "lte")]
Lte,
#[serde(rename = "in")]
In,
#[serde(rename = "nin")]
Nin,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ComparisonFilter {
pub key: String,
#[serde(rename = "type")]
pub type_: ComparisonFilterType,
pub value: serde_json::Value,
}
pub type Filter = serde_json::Value;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum CompoundFilterType {
#[serde(rename = "and")]
And,
#[serde(rename = "or")]
Or,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct CompoundFilter {
pub filters: Vec<Filter>,
#[serde(rename = "type")]
pub type_: CompoundFilterType,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct Text {
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum GrammarSyntax {
#[serde(rename = "lark")]
Lark,
#[serde(rename = "regex")]
Regex,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct Grammar {
pub definition: String,
pub syntax: GrammarSyntax,
#[serde(rename = "type")]
pub type_: String,
}
pub type CustomToolInputFormat = serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ErrorObject {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub code: Option<String>,
pub message: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub param: Option<String>,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct FunctionDefinition {
pub name: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub parameters: Option<FunctionParameters>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub strict: Option<bool>,
}
pub type FunctionParameters = std::collections::HashMap<String, serde_json::Value>;
pub type Metadata = std::collections::HashMap<String, String>;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ReasoningGenerateSummary {
#[serde(rename = "auto")]
Auto,
#[serde(rename = "concise")]
Concise,
#[serde(rename = "detailed")]
Detailed,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ReasoningSummary {
#[serde(rename = "auto")]
Auto,
#[serde(rename = "concise")]
Concise,
#[serde(rename = "detailed")]
Detailed,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct Reasoning {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub effort: Option<ReasoningEffort>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub generate_summary: Option<ReasoningGenerateSummary>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub summary: Option<ReasoningSummary>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ReasoningEffort {
#[serde(rename = "none")]
None,
#[serde(rename = "minimal")]
Minimal,
#[serde(rename = "low")]
Low,
#[serde(rename = "medium")]
Medium,
#[serde(rename = "high")]
High,
#[serde(rename = "xhigh")]
Xhigh,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseFormatJSONObject {
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct JSONSchema {
pub name: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub description: Option<String>,
#[serde(rename = "schema")]
pub schema_: Option<std::collections::HashMap<String, serde_json::Value>>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub strict: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseFormatJSONSchema {
pub json_schema: JSONSchema,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseFormatText {
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseFormatTextGrammar {
pub grammar: String,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseFormatTextPython {
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ResponsesModel {
#[serde(rename = "o1-pro")]
O1Pro,
#[serde(rename = "o1-pro-2025-03-19")]
O1Pro20250319,
#[serde(rename = "o3-pro")]
O3Pro,
#[serde(rename = "o3-pro-2025-06-10")]
O3Pro20250610,
#[serde(rename = "o3-deep-research")]
O3DeepResearch,
#[serde(rename = "o3-deep-research-2025-06-26")]
O3DeepResearch20250626,
#[serde(rename = "o4-mini-deep-research")]
O4MiniDeepResearch,
#[serde(rename = "o4-mini-deep-research-2025-06-26")]
O4MiniDeepResearch20250626,
#[serde(rename = "computer-use-preview")]
ComputerUsePreview,
#[serde(rename = "computer-use-preview-2025-03-11")]
ComputerUsePreview20250311,
#[serde(rename = "gpt-5-codex")]
Gpt5Codex,
#[serde(rename = "gpt-5-pro")]
Gpt5Pro,
#[serde(rename = "gpt-5-pro-2025-10-06")]
Gpt5Pro20251006,
#[serde(rename = "gpt-5.1-codex-max")]
Gpt51CodexMax,
}