#![allow(unused_imports)]
use serde::{Deserialize, Serialize};
use super::*;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ApplyPatchTool {
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct CompactedResponse {
pub id: String,
pub created_at: i64,
pub object: String,
pub output: Vec<ResponseOutputItem>,
pub usage: ResponseUsage,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ClickButton {
#[serde(rename = "left")]
Left,
#[serde(rename = "right")]
Right,
#[serde(rename = "wheel")]
Wheel,
#[serde(rename = "back")]
Back,
#[serde(rename = "forward")]
Forward,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct Click {
pub button: ClickButton,
#[serde(rename = "type")]
pub type_: String,
pub x: i64,
pub y: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct DoubleClick {
#[serde(rename = "type")]
pub type_: String,
pub x: i64,
pub y: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct DragPath {
pub x: i64,
pub y: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct Drag {
pub path: Vec<DragPath>,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct Keypress {
pub keys: Vec<String>,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct Move {
#[serde(rename = "type")]
pub type_: String,
pub x: i64,
pub y: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct Screenshot {
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct Scroll {
pub scroll_x: i64,
pub scroll_y: i64,
#[serde(rename = "type")]
pub type_: String,
pub x: i64,
pub y: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct Type {
pub text: String,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct Wait {
#[serde(rename = "type")]
pub type_: String,
}
pub type ComputerAction = serde_json::Value;
pub type ComputerActionList = Vec<ComputerAction>;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ComputerTool {
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ComputerUsePreviewToolEnvironment {
#[serde(rename = "windows")]
Windows,
#[serde(rename = "mac")]
Mac,
#[serde(rename = "linux")]
Linux,
#[serde(rename = "ubuntu")]
Ubuntu,
#[serde(rename = "browser")]
Browser,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ComputerUsePreviewTool {
pub display_height: i64,
pub display_width: i64,
pub environment: ComputerUsePreviewToolEnvironment,
#[serde(rename = "type")]
pub type_: String,
}
pub type NetworkPolicy = serde_json::Value;
pub type Skill = serde_json::Value;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ContainerAutoMemoryLimit {
#[serde(rename = "1g")]
V1g,
#[serde(rename = "4g")]
V4g,
#[serde(rename = "16g")]
V16g,
#[serde(rename = "64g")]
V64g,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ContainerAuto {
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub file_ids: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub memory_limit: Option<ContainerAutoMemoryLimit>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub network_policy: Option<NetworkPolicy>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub skills: Option<Vec<Skill>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ContainerNetworkPolicyAllowlist {
pub allowed_domains: Vec<String>,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub domain_secrets: Option<Vec<ContainerNetworkPolicyDomainSecret>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ContainerNetworkPolicyDisabled {
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ContainerNetworkPolicyDomainSecret {
pub domain: String,
pub name: String,
pub value: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ContainerReference {
pub container_id: String,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct CustomTool {
pub name: String,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub defer_loading: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub format: Option<serde_json::Value>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum EasyInputMessageRole {
#[serde(rename = "user")]
User,
#[serde(rename = "assistant")]
Assistant,
#[serde(rename = "system")]
System,
#[serde(rename = "developer")]
Developer,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum EasyInputMessagePhase {
#[serde(rename = "commentary")]
Commentary,
#[serde(rename = "final_answer")]
FinalAnswer,
}
pub type Filters = serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct RankingOptionsHybridSearch {
pub embedding_weight: f64,
pub text_weight: f64,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum RankingOptionsRanker {
#[serde(rename = "auto")]
Auto,
#[serde(rename = "default-2024-11-15")]
Default20241115,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct RankingOptions {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub hybrid_search: Option<RankingOptionsHybridSearch>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub ranker: Option<RankingOptionsRanker>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub score_threshold: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct FileSearchTool {
#[serde(rename = "type")]
pub type_: String,
pub vector_store_ids: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub filters: Option<Filters>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub max_num_results: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub ranking_options: Option<RankingOptions>,
}
pub type Environment = serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct FunctionShellTool {
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub environment: Option<Environment>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct InlineSkill {
pub description: String,
pub name: String,
pub source: InlineSkillSource,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct InlineSkillSource {
pub data: String,
pub media_type: String,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum InputItemListParamsOrder {
#[serde(rename = "asc")]
Asc,
#[serde(rename = "desc")]
Desc,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct InputItemListParams {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub after: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub include: Option<Vec<ResponseIncludable>>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub limit: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub order: Option<InputItemListParamsOrder>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum InputTokenCountParamsTruncation {
#[serde(rename = "auto")]
Auto,
#[serde(rename = "disabled")]
Disabled,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct InputTokenCountParams {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub conversation: Option<Conversation>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub input: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub instructions: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub model: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub parallel_tool_calls: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub previous_response_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub reasoning: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub text: Option<Text>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub tool_choice: Option<ToolChoice>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub tools: Option<Vec<serde_json::Value>>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub truncation: Option<InputTokenCountParamsTruncation>,
}
pub type Conversation = serde_json::Value;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum TextVerbosity {
#[serde(rename = "low")]
Low,
#[serde(rename = "medium")]
Medium,
#[serde(rename = "high")]
High,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct Text {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub format: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub verbosity: Option<TextVerbosity>,
}
pub type ToolChoice = serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct InputTokenCountResponse {
pub input_tokens: i64,
pub object: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct LocalEnvironment {
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub skills: Option<Vec<LocalSkill>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct LocalSkill {
pub description: String,
pub name: String,
pub path: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ToolFunction {
pub name: String,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub defer_loading: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub parameters: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub strict: Option<bool>,
}
pub type Tool = serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct NamespaceTool {
pub description: String,
pub name: String,
pub tools: Vec<Tool>,
#[serde(rename = "type")]
pub type_: String,
}
pub type ParsedContent = serde_json::Value;
pub type ParsedResponseOutputItem = serde_json::Value;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum IncompleteDetailsReason {
#[serde(rename = "max_output_tokens")]
MaxOutputTokens,
#[serde(rename = "content_filter")]
ContentFilter,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ResponsePromptCacheRetention {
#[serde(rename = "in-memory")]
InMemory,
#[serde(rename = "24h")]
V24h,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ResponseServiceTier {
#[serde(rename = "auto")]
Auto,
#[serde(rename = "default")]
Default,
#[serde(rename = "flex")]
Flex,
#[serde(rename = "scale")]
Scale,
#[serde(rename = "priority")]
Priority,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ResponseTruncation {
#[serde(rename = "auto")]
Auto,
#[serde(rename = "disabled")]
Disabled,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct OperationCreateFile {
pub diff: String,
pub path: String,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct OperationDeleteFile {
pub path: String,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct OperationUpdateFile {
pub diff: String,
pub path: String,
#[serde(rename = "type")]
pub type_: String,
}
pub type Operation = serde_json::Value;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ResponseApplyPatchToolCallStatus {
#[serde(rename = "in_progress")]
InProgress,
#[serde(rename = "completed")]
Completed,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseApplyPatchToolCall {
pub id: String,
pub call_id: String,
pub operation: Operation,
pub status: ResponseApplyPatchToolCallStatus,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub created_by: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ResponseApplyPatchToolCallOutputStatus {
#[serde(rename = "completed")]
Completed,
#[serde(rename = "failed")]
Failed,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseApplyPatchToolCallOutput {
pub id: String,
pub call_id: String,
pub status: ResponseApplyPatchToolCallOutputStatus,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub created_by: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub output: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseAudioDeltaEvent {
pub delta: String,
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseAudioDoneEvent {
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseAudioTranscriptDeltaEvent {
pub delta: String,
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseAudioTranscriptDoneEvent {
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseCodeInterpreterCallCodeDeltaEvent {
pub delta: String,
pub item_id: String,
pub output_index: i64,
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseCodeInterpreterCallCodeDoneEvent {
pub code: String,
pub item_id: String,
pub output_index: i64,
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseCodeInterpreterCallCompletedEvent {
pub item_id: String,
pub output_index: i64,
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseCodeInterpreterCallInProgressEvent {
pub item_id: String,
pub output_index: i64,
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseCodeInterpreterCallInterpretingEvent {
pub item_id: String,
pub output_index: i64,
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct OutputLogs {
pub logs: String,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct OutputImage {
#[serde(rename = "type")]
pub type_: String,
pub url: String,
}
pub type Output = serde_json::Value;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ResponseCodeInterpreterToolCallStatus {
#[serde(rename = "in_progress")]
InProgress,
#[serde(rename = "completed")]
Completed,
#[serde(rename = "incomplete")]
Incomplete,
#[serde(rename = "interpreting")]
Interpreting,
#[serde(rename = "failed")]
Failed,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseCodeInterpreterToolCall {
pub id: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub code: Option<String>,
pub container_id: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub outputs: Option<Vec<FunctionShellOutput>>,
pub status: ResponseCodeInterpreterToolCallStatus,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseCompactParams {
pub model: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub input: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub instructions: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub previous_response_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub prompt_cache_key: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseCompactionItem {
pub id: String,
pub encrypted_content: String,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub created_by: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct PendingSafetyCheck {
pub id: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub code: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub message: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ActionClickButton {
#[serde(rename = "left")]
Left,
#[serde(rename = "right")]
Right,
#[serde(rename = "wheel")]
Wheel,
#[serde(rename = "back")]
Back,
#[serde(rename = "forward")]
Forward,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ActionClick {
pub button: ActionClickButton,
#[serde(rename = "type")]
pub type_: String,
pub x: i64,
pub y: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ActionDoubleClick {
#[serde(rename = "type")]
pub type_: String,
pub x: i64,
pub y: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ActionDragPath {
pub x: i64,
pub y: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ActionDrag {
pub path: Vec<ActionDragPath>,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ActionKeypress {
pub keys: Vec<String>,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ActionMove {
#[serde(rename = "type")]
pub type_: String,
pub x: i64,
pub y: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ActionScreenshot {
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ActionScroll {
pub scroll_x: i64,
pub scroll_y: i64,
#[serde(rename = "type")]
pub type_: String,
pub x: i64,
pub y: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ActionType {
pub text: String,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ActionWait {
#[serde(rename = "type")]
pub type_: String,
}
pub type Action = serde_json::Value;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ResponseComputerToolCallStatus {
#[serde(rename = "in_progress")]
InProgress,
#[serde(rename = "completed")]
Completed,
#[serde(rename = "incomplete")]
Incomplete,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseComputerToolCall {
pub id: String,
pub call_id: String,
pub pending_safety_checks: Vec<PendingSafetyCheck>,
pub status: ResponseComputerToolCallStatus,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub action: Option<FunctionShellAction>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub actions: Option<ComputerActionList>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct AcknowledgedSafetyCheck {
pub id: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub code: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub message: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ResponseComputerToolCallOutputItemStatus {
#[serde(rename = "in_progress")]
InProgress,
#[serde(rename = "completed")]
Completed,
#[serde(rename = "incomplete")]
Incomplete,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseComputerToolCallOutputItem {
pub id: String,
pub call_id: String,
pub output: ResponseComputerToolCallOutputScreenshot,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub acknowledged_safety_checks: Option<Vec<AcknowledgedSafetyCheck>>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub status: Option<ResponseComputerToolCallOutputItemStatus>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseComputerToolCallOutputScreenshot {
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub file_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub image_url: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseContainerReference {
pub container_id: String,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct PartReasoningText {
pub text: String,
#[serde(rename = "type")]
pub type_: String,
}
pub type Part = serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseContentPartAddedEvent {
pub content_index: i64,
pub item_id: String,
pub output_index: i64,
pub part: ReasoningSummaryPart,
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseContentPartDoneEvent {
pub content_index: i64,
pub item_id: String,
pub output_index: i64,
pub part: ReasoningSummaryPart,
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ResponseCreateParamsBasePromptCacheRetention {
#[serde(rename = "in-memory")]
InMemory,
#[serde(rename = "24h")]
V24h,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ResponseCreateParamsBaseServiceTier {
#[serde(rename = "auto")]
Auto,
#[serde(rename = "default")]
Default,
#[serde(rename = "flex")]
Flex,
#[serde(rename = "scale")]
Scale,
#[serde(rename = "priority")]
Priority,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ResponseCreateParamsBaseTruncation {
#[serde(rename = "auto")]
Auto,
#[serde(rename = "disabled")]
Disabled,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseCreateParamsBase {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub background: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub context_management: Option<Vec<ContextManagement>>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub conversation: Option<Conversation>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub include: Option<Vec<ResponseIncludable>>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub input: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub instructions: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub max_output_tokens: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub max_tool_calls: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub metadata: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub model: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub parallel_tool_calls: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub previous_response_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub prompt: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub prompt_cache_key: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub prompt_cache_retention: Option<ResponseCreateParamsBasePromptCacheRetention>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub reasoning: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub safety_identifier: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub service_tier: Option<ResponseCreateParamsBaseServiceTier>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub store: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub stream_options: Option<StreamOptions>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub temperature: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub text: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub tool_choice: Option<ToolChoice>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub tools: Option<Vec<serde_json::Value>>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub top_logprobs: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub top_p: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub truncation: Option<ResponseCreateParamsBaseTruncation>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub user: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ContextManagement {
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub compact_threshold: Option<i64>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct StreamOptions {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub include_obfuscation: Option<bool>,
}
pub type ResponseCreateParams = serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseCreatedEvent {
pub response: Response,
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseCustomToolCall {
pub call_id: String,
pub input: String,
pub name: String,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub namespace: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseCustomToolCallInputDeltaEvent {
pub delta: String,
pub item_id: String,
pub output_index: i64,
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseCustomToolCallInputDoneEvent {
pub input: String,
pub item_id: String,
pub output_index: i64,
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
pub type OutputOutputContentList = serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseCustomToolCallOutput {
pub call_id: String,
pub output: String,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub id: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ResponseErrorCode {
#[serde(rename = "server_error")]
ServerError,
#[serde(rename = "rate_limit_exceeded")]
RateLimitExceeded,
#[serde(rename = "invalid_prompt")]
InvalidPrompt,
#[serde(rename = "vector_store_timeout")]
VectorStoreTimeout,
#[serde(rename = "invalid_image")]
InvalidImage,
#[serde(rename = "invalid_image_format")]
InvalidImageFormat,
#[serde(rename = "invalid_base64_image")]
InvalidBase64Image,
#[serde(rename = "invalid_image_url")]
InvalidImageUrl,
#[serde(rename = "image_too_large")]
ImageTooLarge,
#[serde(rename = "image_too_small")]
ImageTooSmall,
#[serde(rename = "image_parse_error")]
ImageParseError,
#[serde(rename = "image_content_policy_violation")]
ImageContentPolicyViolation,
#[serde(rename = "invalid_image_mode")]
InvalidImageMode,
#[serde(rename = "image_file_too_large")]
ImageFileTooLarge,
#[serde(rename = "unsupported_image_media_type")]
UnsupportedImageMediaType,
#[serde(rename = "empty_image_file")]
EmptyImageFile,
#[serde(rename = "failed_to_download_image")]
FailedToDownloadImage,
#[serde(rename = "image_file_not_found")]
ImageFileNotFound,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseFileSearchCallCompletedEvent {
pub item_id: String,
pub output_index: i64,
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseFileSearchCallInProgressEvent {
pub item_id: String,
pub output_index: i64,
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseFileSearchCallSearchingEvent {
pub item_id: String,
pub output_index: i64,
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct FileSearchResult {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub attributes: Option<std::collections::HashMap<String, serde_json::Value>>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub file_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub filename: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub score: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub text: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ResponseFileSearchToolCallStatus {
#[serde(rename = "in_progress")]
InProgress,
#[serde(rename = "searching")]
Searching,
#[serde(rename = "completed")]
Completed,
#[serde(rename = "incomplete")]
Incomplete,
#[serde(rename = "failed")]
Failed,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseFileSearchToolCall {
pub id: String,
pub queries: Vec<String>,
pub status: ResponseFileSearchToolCallStatus,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub results: Option<Vec<FileSearchResult>>,
}
pub type ResponseFormatTextConfig = serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseFormatTextJSONSchemaConfig {
pub name: String,
#[serde(rename = "schema")]
pub schema_: std::collections::HashMap<String, serde_json::Value>,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub strict: Option<bool>,
}
pub type ResponseFunctionCallOutputItem = serde_json::Value;
pub type ResponseFunctionCallOutputItemList = Vec<ResponseFunctionCallOutputItem>;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct OutcomeTimeout {
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct OutcomeExit {
pub exit_code: i64,
#[serde(rename = "type")]
pub type_: String,
}
pub type Outcome = serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseFunctionShellCallOutputContent {
pub outcome: Outcome,
pub stderr: String,
pub stdout: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct FunctionShellAction {
pub commands: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub max_output_length: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub timeout_ms: Option<i64>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ResponseFunctionShellToolCallStatus {
#[serde(rename = "in_progress")]
InProgress,
#[serde(rename = "completed")]
Completed,
#[serde(rename = "incomplete")]
Incomplete,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseFunctionShellToolCall {
pub id: String,
pub action: FunctionShellAction,
pub call_id: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub environment: Option<Environment>,
pub status: ResponseFunctionShellToolCallStatus,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub created_by: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct OutputOutcomeTimeout {
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct OutputOutcomeExit {
pub exit_code: i64,
#[serde(rename = "type")]
pub type_: String,
}
pub type OutputOutcome = serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct FunctionShellOutput {
pub outcome: OutputOutcome,
pub stderr: String,
pub stdout: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub created_by: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ResponseFunctionShellToolCallOutputStatus {
#[serde(rename = "in_progress")]
InProgress,
#[serde(rename = "completed")]
Completed,
#[serde(rename = "incomplete")]
Incomplete,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseFunctionShellToolCallOutput {
pub id: String,
pub call_id: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub max_output_length: Option<i64>,
pub output: Vec<FunctionShellOutput>,
pub status: ResponseFunctionShellToolCallOutputStatus,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub created_by: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ResponseFunctionToolCallStatus {
#[serde(rename = "in_progress")]
InProgress,
#[serde(rename = "completed")]
Completed,
#[serde(rename = "incomplete")]
Incomplete,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseFunctionToolCall {
pub arguments: String,
pub call_id: String,
pub name: String,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub namespace: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub status: Option<ResponseFunctionToolCallStatus>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ResponseFunctionToolCallOutputItemStatus {
#[serde(rename = "in_progress")]
InProgress,
#[serde(rename = "completed")]
Completed,
#[serde(rename = "incomplete")]
Incomplete,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseFunctionToolCallOutputItem {
pub id: String,
pub call_id: String,
pub output: String,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub status: Option<ResponseFunctionToolCallOutputItemStatus>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ActionSearchSource {
#[serde(rename = "type")]
pub type_: String,
pub url: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ActionSearch {
pub query: String,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub queries: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub sources: Option<Vec<ActionSearchSource>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ActionOpenPage {
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub url: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ActionFind {
pub pattern: String,
#[serde(rename = "type")]
pub type_: String,
pub url: String,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ResponseFunctionWebSearchStatus {
#[serde(rename = "in_progress")]
InProgress,
#[serde(rename = "searching")]
Searching,
#[serde(rename = "completed")]
Completed,
#[serde(rename = "failed")]
Failed,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseFunctionWebSearch {
pub id: String,
pub action: FunctionShellAction,
pub status: ResponseFunctionWebSearchStatus,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseImageGenCallCompletedEvent {
pub item_id: String,
pub output_index: i64,
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseImageGenCallGeneratingEvent {
pub item_id: String,
pub output_index: i64,
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseImageGenCallInProgressEvent {
pub item_id: String,
pub output_index: i64,
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseImageGenCallPartialImageEvent {
pub item_id: String,
pub output_index: i64,
pub partial_image_b64: String,
pub partial_image_index: i64,
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseInProgressEvent {
pub response: Response,
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ResponseIncludable {
#[serde(rename = "file_search_call.results")]
FileSearchCallResults,
#[serde(rename = "web_search_call.results")]
WebSearchCallResults,
#[serde(rename = "web_search_call.action.sources")]
WebSearchCallActionSources,
#[serde(rename = "message.input_image.image_url")]
MessageInputImageImageUrl,
#[serde(rename = "computer_call_output.output.image_url")]
ComputerCallOutputOutputImageUrl,
#[serde(rename = "code_interpreter_call.outputs")]
CodeInterpreterCallOutputs,
#[serde(rename = "reasoning.encrypted_content")]
ReasoningEncryptedContent,
#[serde(rename = "message.output_text.logprobs")]
MessageOutputTextLogprobs,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum InputAudioFormat {
#[serde(rename = "mp3")]
Mp3,
#[serde(rename = "wav")]
Wav,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct InputAudio {
pub data: String,
pub format: InputAudioFormat,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseInputAudio {
pub input_audio: InputAudio,
#[serde(rename = "type")]
pub type_: String,
}
pub type ResponseInputContent = serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseInputFile {
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub file_data: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub file_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub file_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub filename: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseInputFileContent {
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub file_data: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub file_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub file_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub filename: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ResponseInputImageDetail {
#[serde(rename = "low")]
Low,
#[serde(rename = "high")]
High,
#[serde(rename = "auto")]
Auto,
#[serde(rename = "original")]
Original,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseInputImage {
pub detail: ResponseInputImageDetail,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub file_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub image_url: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ResponseInputImageContentDetail {
#[serde(rename = "low")]
Low,
#[serde(rename = "high")]
High,
#[serde(rename = "auto")]
Auto,
#[serde(rename = "original")]
Original,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseInputImageContent {
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub detail: Option<ResponseInputImageContentDetail>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub file_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub image_url: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum MessageRole {
#[serde(rename = "user")]
User,
#[serde(rename = "system")]
System,
#[serde(rename = "developer")]
Developer,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum MessageStatus {
#[serde(rename = "in_progress")]
InProgress,
#[serde(rename = "completed")]
Completed,
#[serde(rename = "incomplete")]
Incomplete,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct Message {
pub content: ResponseInputMessageContentList,
pub role: MessageRole,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub status: Option<MessageStatus>,
#[serde(rename = "type", skip_serializing_if = "Option::is_none", default)]
pub type_: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ComputerCallOutputAcknowledgedSafetyCheck {
pub id: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub code: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub message: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ComputerCallOutputStatus {
#[serde(rename = "in_progress")]
InProgress,
#[serde(rename = "completed")]
Completed,
#[serde(rename = "incomplete")]
Incomplete,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ComputerCallOutput {
pub call_id: String,
pub output: ResponseComputerToolCallOutputScreenshot,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub acknowledged_safety_checks: Option<Vec<ComputerCallOutputAcknowledgedSafetyCheck>>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub status: Option<ComputerCallOutputStatus>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum FunctionCallOutputStatus {
#[serde(rename = "in_progress")]
InProgress,
#[serde(rename = "completed")]
Completed,
#[serde(rename = "incomplete")]
Incomplete,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ToolSearchCallExecution {
#[serde(rename = "server")]
Server,
#[serde(rename = "client")]
Client,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ToolSearchCallStatus {
#[serde(rename = "in_progress")]
InProgress,
#[serde(rename = "completed")]
Completed,
#[serde(rename = "incomplete")]
Incomplete,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ToolSearchCall {
pub arguments: serde_json::Value,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub call_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub execution: Option<ToolSearchCallExecution>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub status: Option<ToolSearchCallStatus>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageGenerationCallStatus {
#[serde(rename = "in_progress")]
InProgress,
#[serde(rename = "completed")]
Completed,
#[serde(rename = "generating")]
Generating,
#[serde(rename = "failed")]
Failed,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ImageGenerationCall {
pub id: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub result: Option<String>,
pub status: ImageGenerationCallStatus,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct LocalShellCallAction {
pub command: Vec<String>,
pub env: std::collections::HashMap<String, String>,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub timeout_ms: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub user: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub working_directory: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum LocalShellCallStatus {
#[serde(rename = "in_progress")]
InProgress,
#[serde(rename = "completed")]
Completed,
#[serde(rename = "incomplete")]
Incomplete,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct LocalShellCall {
pub id: String,
pub action: LocalShellCallAction,
pub call_id: String,
pub status: LocalShellCallStatus,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum LocalShellCallOutputStatus {
#[serde(rename = "in_progress")]
InProgress,
#[serde(rename = "completed")]
Completed,
#[serde(rename = "incomplete")]
Incomplete,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct LocalShellCallOutput {
pub id: String,
pub output: String,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub status: Option<LocalShellCallOutputStatus>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ShellCallAction {
pub commands: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub max_output_length: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub timeout_ms: Option<i64>,
}
pub type ShellCallEnvironment = serde_json::Value;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ShellCallStatus {
#[serde(rename = "in_progress")]
InProgress,
#[serde(rename = "completed")]
Completed,
#[serde(rename = "incomplete")]
Incomplete,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ShellCall {
pub action: ShellCallAction,
pub call_id: String,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub environment: Option<ShellCallEnvironment>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub status: Option<ShellCallStatus>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ShellCallOutputStatus {
#[serde(rename = "in_progress")]
InProgress,
#[serde(rename = "completed")]
Completed,
#[serde(rename = "incomplete")]
Incomplete,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ShellCallOutput {
pub call_id: String,
pub output: Vec<ResponseFunctionShellCallOutputContent>,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub max_output_length: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub status: Option<ShellCallOutputStatus>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ApplyPatchCallOperationCreateFile {
pub diff: String,
pub path: String,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ApplyPatchCallOperationDeleteFile {
pub path: String,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ApplyPatchCallOperationUpdateFile {
pub diff: String,
pub path: String,
#[serde(rename = "type")]
pub type_: String,
}
pub type ApplyPatchCallOperation = serde_json::Value;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ApplyPatchCallStatus {
#[serde(rename = "in_progress")]
InProgress,
#[serde(rename = "completed")]
Completed,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ApplyPatchCall {
pub call_id: String,
pub operation: ApplyPatchCallOperation,
pub status: ApplyPatchCallStatus,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub id: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ApplyPatchCallOutputStatus {
#[serde(rename = "completed")]
Completed,
#[serde(rename = "failed")]
Failed,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ApplyPatchCallOutput {
pub call_id: String,
pub status: ApplyPatchCallOutputStatus,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub output: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct McpListToolsTool {
pub input_schema: serde_json::Value,
pub name: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub annotations: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub description: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct McpListTools {
pub id: String,
pub server_label: String,
pub tools: Vec<McpListToolsTool>,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub error: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct McpApprovalRequest {
pub id: String,
pub arguments: String,
pub name: String,
pub server_label: String,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct McpApprovalResponse {
pub approval_request_id: String,
pub approve: bool,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub reason: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum McpCallStatus {
#[serde(rename = "in_progress")]
InProgress,
#[serde(rename = "completed")]
Completed,
#[serde(rename = "incomplete")]
Incomplete,
#[serde(rename = "calling")]
Calling,
#[serde(rename = "failed")]
Failed,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct McpCall {
pub id: String,
pub arguments: String,
pub name: String,
pub server_label: String,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub approval_request_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub error: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub output: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub status: Option<McpCallStatus>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ItemReference {
pub id: String,
#[serde(rename = "type", skip_serializing_if = "Option::is_none", default)]
pub type_: Option<String>,
}
pub type ResponseInputMessageContentList = Vec<ResponseInputContent>;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ResponseInputMessageItemRole {
#[serde(rename = "user")]
User,
#[serde(rename = "system")]
System,
#[serde(rename = "developer")]
Developer,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ResponseInputMessageItemStatus {
#[serde(rename = "in_progress")]
InProgress,
#[serde(rename = "completed")]
Completed,
#[serde(rename = "incomplete")]
Incomplete,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseInputMessageItem {
pub id: String,
pub content: ResponseInputMessageContentList,
pub role: ResponseInputMessageItemRole,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub status: Option<ResponseInputMessageItemStatus>,
#[serde(rename = "type", skip_serializing_if = "Option::is_none", default)]
pub type_: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseInputText {
pub text: String,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseInputTextContent {
pub text: String,
#[serde(rename = "type")]
pub type_: String,
}
pub type ResponseItem = serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseItemList {
pub data: Vec<ResponseItem>,
pub first_id: String,
pub has_more: bool,
pub last_id: String,
pub object: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseLocalEnvironment {
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseMcpCallArgumentsDeltaEvent {
pub delta: String,
pub item_id: String,
pub output_index: i64,
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseMcpCallArgumentsDoneEvent {
pub arguments: String,
pub item_id: String,
pub output_index: i64,
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseMcpCallCompletedEvent {
pub item_id: String,
pub output_index: i64,
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseMcpCallFailedEvent {
pub item_id: String,
pub output_index: i64,
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseMcpCallInProgressEvent {
pub item_id: String,
pub output_index: i64,
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseMcpListToolsCompletedEvent {
pub item_id: String,
pub output_index: i64,
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseMcpListToolsFailedEvent {
pub item_id: String,
pub output_index: i64,
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseMcpListToolsInProgressEvent {
pub item_id: String,
pub output_index: i64,
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseOutputItemDoneEvent {
pub item: ResponseOutputItem,
pub output_index: i64,
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
pub type Content = serde_json::Value;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ResponseOutputMessageStatus {
#[serde(rename = "in_progress")]
InProgress,
#[serde(rename = "completed")]
Completed,
#[serde(rename = "incomplete")]
Incomplete,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ResponseOutputMessagePhase {
#[serde(rename = "commentary")]
Commentary,
#[serde(rename = "final_answer")]
FinalAnswer,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseOutputMessage {
pub id: String,
pub content: Vec<ReasoningItemContent>,
pub role: String,
pub status: ResponseOutputMessageStatus,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub phase: Option<ResponseOutputMessagePhase>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseOutputRefusal {
pub refusal: String,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct AnnotationFileCitation {
pub file_id: String,
pub filename: String,
pub index: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct AnnotationURLCitation {
pub end_index: i64,
pub start_index: i64,
pub title: String,
#[serde(rename = "type")]
pub type_: String,
pub url: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct AnnotationContainerFileCitation {
pub container_id: String,
pub end_index: i64,
pub file_id: String,
pub filename: String,
pub start_index: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct AnnotationFilePath {
pub file_id: String,
pub index: i64,
#[serde(rename = "type")]
pub type_: String,
}
pub type Annotation = serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct LogprobTopLogprob {
pub token: String,
pub bytes: Vec<i64>,
pub logprob: f64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct Logprob {
pub token: String,
pub bytes: Vec<i64>,
pub logprob: f64,
pub top_logprobs: Vec<LogprobTopLogprob>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseOutputText {
pub annotations: Vec<Annotation>,
pub text: String,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub logprobs: Option<Vec<Logprob>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseOutputTextAnnotationAddedEvent {
pub annotation: serde_json::Value,
pub annotation_index: i64,
pub content_index: i64,
pub item_id: String,
pub output_index: i64,
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
pub type Variables = serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponsePrompt {
pub id: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub variables: Option<std::collections::HashMap<String, Variables>>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub version: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseQueuedEvent {
pub response: Response,
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ReasoningItemSummary {
pub text: String,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ReasoningItemContent {
pub text: String,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ResponseReasoningItemStatus {
#[serde(rename = "in_progress")]
InProgress,
#[serde(rename = "completed")]
Completed,
#[serde(rename = "incomplete")]
Incomplete,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseReasoningItem {
pub id: String,
pub summary: Vec<ReasoningItemSummary>,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub content: Option<Vec<ReasoningItemContent>>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub encrypted_content: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub status: Option<ResponseReasoningItemStatus>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ReasoningSummaryPart {
pub text: String,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseReasoningSummaryPartAddedEvent {
pub item_id: String,
pub output_index: i64,
pub part: ReasoningSummaryPart,
pub sequence_number: i64,
pub summary_index: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseReasoningSummaryPartDoneEvent {
pub item_id: String,
pub output_index: i64,
pub part: ReasoningSummaryPart,
pub sequence_number: i64,
pub summary_index: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseReasoningSummaryTextDoneEvent {
pub item_id: String,
pub output_index: i64,
pub sequence_number: i64,
pub summary_index: i64,
pub text: String,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseReasoningTextDoneEvent {
pub content_index: i64,
pub item_id: String,
pub output_index: i64,
pub sequence_number: i64,
pub text: String,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseRefusalDeltaEvent {
pub content_index: i64,
pub delta: String,
pub item_id: String,
pub output_index: i64,
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseRefusalDoneEvent {
pub content_index: i64,
pub item_id: String,
pub output_index: i64,
pub refusal: String,
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseRetrieveParamsBase {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub include: Option<Vec<ResponseIncludable>>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub include_obfuscation: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub starting_after: Option<i64>,
}
pub type ResponseRetrieveParams = serde_json::Value;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ResponseStatus {
#[serde(rename = "completed")]
Completed,
#[serde(rename = "failed")]
Failed,
#[serde(rename = "in_progress")]
InProgress,
#[serde(rename = "cancelled")]
Cancelled,
#[serde(rename = "queued")]
Queued,
#[serde(rename = "incomplete")]
Incomplete,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ResponseTextConfigVerbosity {
#[serde(rename = "low")]
Low,
#[serde(rename = "medium")]
Medium,
#[serde(rename = "high")]
High,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseTextDoneEvent {
pub content_index: i64,
pub item_id: String,
pub logprobs: Vec<Logprob>,
pub output_index: i64,
pub sequence_number: i64,
pub text: String,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ResponseToolSearchCallExecution {
#[serde(rename = "server")]
Server,
#[serde(rename = "client")]
Client,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ResponseToolSearchCallStatus {
#[serde(rename = "in_progress")]
InProgress,
#[serde(rename = "completed")]
Completed,
#[serde(rename = "incomplete")]
Incomplete,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseToolSearchCall {
pub id: String,
pub arguments: serde_json::Value,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub call_id: Option<String>,
pub execution: ResponseToolSearchCallExecution,
pub status: ResponseToolSearchCallStatus,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub created_by: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ResponseToolSearchOutputItemExecution {
#[serde(rename = "server")]
Server,
#[serde(rename = "client")]
Client,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ResponseToolSearchOutputItemStatus {
#[serde(rename = "in_progress")]
InProgress,
#[serde(rename = "completed")]
Completed,
#[serde(rename = "incomplete")]
Incomplete,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseToolSearchOutputItem {
pub id: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub call_id: Option<String>,
pub execution: ResponseToolSearchOutputItemExecution,
pub status: ResponseToolSearchOutputItemStatus,
pub tools: Vec<Tool>,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub created_by: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseWebSearchCallCompletedEvent {
pub item_id: String,
pub output_index: i64,
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseWebSearchCallInProgressEvent {
pub item_id: String,
pub output_index: i64,
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponseWebSearchCallSearchingEvent {
pub item_id: String,
pub output_index: i64,
pub sequence_number: i64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ResponsesClientEventPromptCacheRetention {
#[serde(rename = "in-memory")]
InMemory,
#[serde(rename = "24h")]
V24h,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ResponsesClientEventServiceTier {
#[serde(rename = "auto")]
Auto,
#[serde(rename = "default")]
Default,
#[serde(rename = "flex")]
Flex,
#[serde(rename = "scale")]
Scale,
#[serde(rename = "priority")]
Priority,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ResponsesClientEventTruncation {
#[serde(rename = "auto")]
Auto,
#[serde(rename = "disabled")]
Disabled,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResponsesClientEvent {
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub background: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub context_management: Option<Vec<ContextManagement>>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub conversation: Option<Conversation>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub include: Option<Vec<ResponseIncludable>>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub input: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub instructions: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub max_output_tokens: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub max_tool_calls: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub metadata: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub model: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub parallel_tool_calls: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub previous_response_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub prompt: Option<ResponsePrompt>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub prompt_cache_key: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub prompt_cache_retention: Option<ResponsesClientEventPromptCacheRetention>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub reasoning: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub safety_identifier: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub service_tier: Option<ResponsesClientEventServiceTier>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub store: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub stream: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub stream_options: Option<StreamOptions>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub temperature: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub text: Option<ResponseTextConfig>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub tool_choice: Option<ToolChoice>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub tools: Option<Vec<Tool>>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub top_logprobs: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub top_p: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub truncation: Option<ResponsesClientEventTruncation>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub user: Option<String>,
}
pub type ResponsesServerEvent = serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct SkillReference {
pub skill_id: String,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub version: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct McpAllowedToolsMcpToolFilter {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub read_only: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub tool_names: Option<Vec<String>>,
}
pub type McpAllowedTools = serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct McpRequireApprovalMcpToolApprovalFilterAlways {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub read_only: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub tool_names: Option<Vec<String>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct McpRequireApprovalMcpToolApprovalFilterNever {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub read_only: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub tool_names: Option<Vec<String>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct McpRequireApprovalMcpToolApprovalFilter {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub always: Option<McpRequireApprovalMcpToolApprovalFilterAlways>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub never: Option<McpRequireApprovalMcpToolApprovalFilterNever>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum McpRequireApproval {
Always,
Never,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum McpConnectorId {
#[serde(rename = "connector_dropbox")]
ConnectorDropbox,
#[serde(rename = "connector_gmail")]
ConnectorGmail,
#[serde(rename = "connector_googlecalendar")]
ConnectorGooglecalendar,
#[serde(rename = "connector_googledrive")]
ConnectorGoogledrive,
#[serde(rename = "connector_microsoftteams")]
ConnectorMicrosoftteams,
#[serde(rename = "connector_outlookcalendar")]
ConnectorOutlookcalendar,
#[serde(rename = "connector_outlookemail")]
ConnectorOutlookemail,
#[serde(rename = "connector_sharepoint")]
ConnectorSharepoint,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct Mcp {
pub server_label: String,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub allowed_tools: Option<McpAllowedTools>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub authorization: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub connector_id: Option<McpConnectorId>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub defer_loading: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub headers: Option<std::collections::HashMap<String, String>>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub require_approval: Option<McpRequireApproval>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub server_description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub server_url: Option<String>,
}
pub type CodeInterpreterContainerCodeInterpreterToolAutoNetworkPolicy = serde_json::Value;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum CodeInterpreterContainerCodeInterpreterToolAutoMemoryLimit {
#[serde(rename = "1g")]
V1g,
#[serde(rename = "4g")]
V4g,
#[serde(rename = "16g")]
V16g,
#[serde(rename = "64g")]
V64g,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct CodeInterpreterContainerCodeInterpreterToolAuto {
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub file_ids: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub memory_limit: Option<CodeInterpreterContainerCodeInterpreterToolAutoMemoryLimit>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub network_policy: Option<CodeInterpreterContainerCodeInterpreterToolAutoNetworkPolicy>,
}
pub type CodeInterpreterContainer = serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct CodeInterpreter {
pub container: CodeInterpreterContainer,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ImageGenerationInputImageMask {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub file_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub image_url: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageGenerationAction {
#[serde(rename = "generate")]
Generate,
#[serde(rename = "edit")]
Edit,
#[serde(rename = "auto")]
Auto,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageGenerationBackground {
#[serde(rename = "transparent")]
Transparent,
#[serde(rename = "opaque")]
Opaque,
#[serde(rename = "auto")]
Auto,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageGenerationInputFidelity {
#[serde(rename = "high")]
High,
#[serde(rename = "low")]
Low,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageGenerationModeration {
#[serde(rename = "auto")]
Auto,
#[serde(rename = "low")]
Low,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageGenerationOutputFormat {
#[serde(rename = "png")]
Png,
#[serde(rename = "webp")]
Webp,
#[serde(rename = "jpeg")]
Jpeg,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageGenerationQuality {
#[serde(rename = "low")]
Low,
#[serde(rename = "medium")]
Medium,
#[serde(rename = "high")]
High,
#[serde(rename = "auto")]
Auto,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageGenerationSize {
#[serde(rename = "1024x1024")]
V1024x1024,
#[serde(rename = "1024x1536")]
V1024x1536,
#[serde(rename = "1536x1024")]
V1536x1024,
#[serde(rename = "auto")]
Auto,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ImageGeneration {
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub action: Option<ImageGenerationAction>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub background: Option<ImageGenerationBackground>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub input_fidelity: Option<ImageGenerationInputFidelity>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub input_image_mask: Option<ImageGenerationInputImageMask>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub model: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub moderation: Option<ImageGenerationModeration>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub output_compression: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub output_format: Option<ImageGenerationOutputFormat>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub partial_images: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub quality: Option<ImageGenerationQuality>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub size: Option<ImageGenerationSize>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct LocalShell {
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ToolChoiceAllowedMode {
#[serde(rename = "auto")]
Auto,
#[serde(rename = "required")]
Required,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ToolChoiceAllowed {
pub mode: ToolChoiceAllowedMode,
pub tools: Vec<std::collections::HashMap<String, serde_json::Value>>,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ToolChoiceApplyPatch {
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ToolChoiceCustom {
pub name: String,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ToolChoiceMcp {
pub server_label: String,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub name: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ToolChoiceShell {
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ToolChoiceTypesType {
#[serde(rename = "file_search")]
FileSearch,
#[serde(rename = "web_search_preview")]
WebSearchPreview,
#[serde(rename = "computer")]
Computer,
#[serde(rename = "computer_use_preview")]
ComputerUsePreview,
#[serde(rename = "computer_use")]
ComputerUse,
#[serde(rename = "web_search_preview_2025_03_11")]
WebSearchPreview20250311,
#[serde(rename = "image_generation")]
ImageGeneration,
#[serde(rename = "code_interpreter")]
CodeInterpreter,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ToolChoiceTypes {
#[serde(rename = "type")]
pub type_: ToolChoiceTypesType,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ToolSearchToolExecution {
#[serde(rename = "server")]
Server,
#[serde(rename = "client")]
Client,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ToolSearchTool {
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub execution: Option<ToolSearchToolExecution>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub parameters: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct UserLocation {
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub city: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub country: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub region: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub timezone: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum WebSearchPreviewToolType {
#[serde(rename = "web_search_preview")]
WebSearchPreview,
#[serde(rename = "web_search_preview_2025_03_11")]
WebSearchPreview20250311,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum WebSearchPreviewToolSearchContextSize {
#[serde(rename = "low")]
Low,
#[serde(rename = "medium")]
Medium,
#[serde(rename = "high")]
High,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct WebSearchPreviewTool {
#[serde(rename = "type")]
pub type_: WebSearchPreviewToolType,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub search_content_types: Option<Vec<serde_json::Value>>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub search_context_size: Option<WebSearchPreviewToolSearchContextSize>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub user_location: Option<UserLocation>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum WebSearchToolType {
#[serde(rename = "web_search")]
WebSearch,
#[serde(rename = "web_search_2025_08_26")]
WebSearch20250826,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum WebSearchToolSearchContextSize {
#[serde(rename = "low")]
Low,
#[serde(rename = "medium")]
Medium,
#[serde(rename = "high")]
High,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct WebSearchTool {
#[serde(rename = "type")]
pub type_: WebSearchToolType,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub filters: Option<Filters>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub search_context_size: Option<WebSearchToolSearchContextSize>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub user_location: Option<UserLocation>,
}