1#![allow(unused_imports)]
5
6use serde::{Deserialize, Serialize};
7use super::*;
8
9#[derive(Debug, Clone, Serialize, Deserialize)]
11#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
12pub struct ApplyPatchTool {
13 #[serde(rename = "type")]
15 pub type_: String,
16}
17
18#[derive(Debug, Clone, Serialize, Deserialize)]
19#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
20pub struct CompactedResponse {
21 pub id: String,
23 pub created_at: i64,
25 pub object: String,
27 pub output: Vec<ResponseOutputItem>,
29 pub usage: ResponseUsage,
31}
32
33#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
34#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
35#[non_exhaustive]
36pub enum ClickButton {
37 #[serde(rename = "left")]
38 Left,
39 #[serde(rename = "right")]
40 Right,
41 #[serde(rename = "wheel")]
42 Wheel,
43 #[serde(rename = "back")]
44 Back,
45 #[serde(rename = "forward")]
46 Forward,
47}
48
49#[derive(Debug, Clone, Serialize, Deserialize)]
51#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
52pub struct Click {
53 pub button: ClickButton,
55 #[serde(rename = "type")]
57 pub type_: String,
58 pub x: i64,
60 pub y: i64,
62}
63
64#[derive(Debug, Clone, Serialize, Deserialize)]
66#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
67pub struct DoubleClick {
68 #[serde(rename = "type")]
70 pub type_: String,
71 pub x: i64,
73 pub y: i64,
75}
76
77#[derive(Debug, Clone, Serialize, Deserialize)]
79#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
80pub struct DragPath {
81 pub x: i64,
83 pub y: i64,
85}
86
87#[derive(Debug, Clone, Serialize, Deserialize)]
89#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
90pub struct Drag {
91 pub path: Vec<DragPath>,
93 #[serde(rename = "type")]
95 pub type_: String,
96}
97
98#[derive(Debug, Clone, Serialize, Deserialize)]
100#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
101pub struct Keypress {
102 pub keys: Vec<String>,
104 #[serde(rename = "type")]
106 pub type_: String,
107}
108
109#[derive(Debug, Clone, Serialize, Deserialize)]
111#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
112pub struct Move {
113 #[serde(rename = "type")]
115 pub type_: String,
116 pub x: i64,
118 pub y: i64,
120}
121
122#[derive(Debug, Clone, Serialize, Deserialize)]
124#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
125pub struct Screenshot {
126 #[serde(rename = "type")]
128 pub type_: String,
129}
130
131#[derive(Debug, Clone, Serialize, Deserialize)]
133#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
134pub struct Scroll {
135 pub scroll_x: i64,
137 pub scroll_y: i64,
139 #[serde(rename = "type")]
141 pub type_: String,
142 pub x: i64,
144 pub y: i64,
146}
147
148#[derive(Debug, Clone, Serialize, Deserialize)]
150#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
151pub struct Type {
152 pub text: String,
154 #[serde(rename = "type")]
156 pub type_: String,
157}
158
159#[derive(Debug, Clone, Serialize, Deserialize)]
161#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
162pub struct Wait {
163 #[serde(rename = "type")]
165 pub type_: String,
166}
167
168pub type ComputerAction = serde_json::Value;
169
170pub type ComputerActionList = Vec<ComputerAction>;
171
172#[derive(Debug, Clone, Serialize, Deserialize)]
174#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
175pub struct ComputerTool {
176 #[serde(rename = "type")]
178 pub type_: String,
179}
180
181#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
182#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
183#[non_exhaustive]
184pub enum ComputerUsePreviewToolEnvironment {
185 #[serde(rename = "windows")]
186 Windows,
187 #[serde(rename = "mac")]
188 Mac,
189 #[serde(rename = "linux")]
190 Linux,
191 #[serde(rename = "ubuntu")]
192 Ubuntu,
193 #[serde(rename = "browser")]
194 Browser,
195}
196
197#[derive(Debug, Clone, Serialize, Deserialize)]
199#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
200pub struct ComputerUsePreviewTool {
201 pub display_height: i64,
203 pub display_width: i64,
205 pub environment: ComputerUsePreviewToolEnvironment,
207 #[serde(rename = "type")]
209 pub type_: String,
210}
211
212pub type NetworkPolicy = serde_json::Value;
213
214pub type Skill = serde_json::Value;
215
216#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
217#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
218#[non_exhaustive]
219pub enum ContainerAutoMemoryLimit {
220 #[serde(rename = "1g")]
221 V1g,
222 #[serde(rename = "4g")]
223 V4g,
224 #[serde(rename = "16g")]
225 V16g,
226 #[serde(rename = "64g")]
227 V64g,
228}
229
230#[derive(Debug, Clone, Serialize, Deserialize)]
231#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
232pub struct ContainerAuto {
233 #[serde(rename = "type")]
235 pub type_: String,
236 #[serde(skip_serializing_if = "Option::is_none", default)]
238 pub file_ids: Option<Vec<String>>,
239 #[serde(skip_serializing_if = "Option::is_none", default)]
241 pub memory_limit: Option<ContainerAutoMemoryLimit>,
242 #[serde(skip_serializing_if = "Option::is_none", default)]
244 pub network_policy: Option<NetworkPolicy>,
245 #[serde(skip_serializing_if = "Option::is_none", default)]
247 pub skills: Option<Vec<Skill>>,
248}
249
250#[derive(Debug, Clone, Serialize, Deserialize)]
251#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
252pub struct ContainerNetworkPolicyAllowlist {
253 pub allowed_domains: Vec<String>,
255 #[serde(rename = "type")]
257 pub type_: String,
258 #[serde(skip_serializing_if = "Option::is_none", default)]
260 pub domain_secrets: Option<Vec<ContainerNetworkPolicyDomainSecret>>,
261}
262
263#[derive(Debug, Clone, Serialize, Deserialize)]
264#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
265pub struct ContainerNetworkPolicyDisabled {
266 #[serde(rename = "type")]
268 pub type_: String,
269}
270
271#[derive(Debug, Clone, Serialize, Deserialize)]
272#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
273pub struct ContainerNetworkPolicyDomainSecret {
274 pub domain: String,
276 pub name: String,
278 pub value: String,
280}
281
282#[derive(Debug, Clone, Serialize, Deserialize)]
283#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
284pub struct ContainerReference {
285 pub container_id: String,
287 #[serde(rename = "type")]
289 pub type_: String,
290}
291
292#[derive(Debug, Clone, Serialize, Deserialize)]
294#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
295pub struct CustomTool {
296 pub name: String,
298 #[serde(rename = "type")]
300 pub type_: String,
301 #[serde(skip_serializing_if = "Option::is_none", default)]
303 pub defer_loading: Option<bool>,
304 #[serde(skip_serializing_if = "Option::is_none", default)]
306 pub description: Option<String>,
307 #[serde(skip_serializing_if = "Option::is_none", default)]
309 pub format: Option<serde_json::Value>,
310}
311
312#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
313#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
314#[non_exhaustive]
315pub enum EasyInputMessageRole {
316 #[serde(rename = "user")]
317 User,
318 #[serde(rename = "assistant")]
319 Assistant,
320 #[serde(rename = "system")]
321 System,
322 #[serde(rename = "developer")]
323 Developer,
324}
325
326#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
327#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
328#[non_exhaustive]
329pub enum EasyInputMessagePhase {
330 #[serde(rename = "commentary")]
331 Commentary,
332 #[serde(rename = "final_answer")]
333 FinalAnswer,
334}
335
336pub type Filters = serde_json::Value;
337
338#[derive(Debug, Clone, Serialize, Deserialize)]
340#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
341pub struct RankingOptionsHybridSearch {
342 pub embedding_weight: f64,
344 pub text_weight: f64,
346}
347
348#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
349#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
350#[non_exhaustive]
351pub enum RankingOptionsRanker {
352 #[serde(rename = "auto")]
353 Auto,
354 #[serde(rename = "default-2024-11-15")]
355 Default20241115,
356}
357
358#[derive(Debug, Clone, Serialize, Deserialize)]
360#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
361pub struct RankingOptions {
362 #[serde(skip_serializing_if = "Option::is_none", default)]
364 pub hybrid_search: Option<RankingOptionsHybridSearch>,
365 #[serde(skip_serializing_if = "Option::is_none", default)]
367 pub ranker: Option<RankingOptionsRanker>,
368 #[serde(skip_serializing_if = "Option::is_none", default)]
370 pub score_threshold: Option<f64>,
371}
372
373#[derive(Debug, Clone, Serialize, Deserialize)]
375#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
376pub struct FileSearchTool {
377 #[serde(rename = "type")]
379 pub type_: String,
380 pub vector_store_ids: Vec<String>,
382 #[serde(skip_serializing_if = "Option::is_none", default)]
384 pub filters: Option<Filters>,
385 #[serde(skip_serializing_if = "Option::is_none", default)]
387 pub max_num_results: Option<i64>,
388 #[serde(skip_serializing_if = "Option::is_none", default)]
390 pub ranking_options: Option<RankingOptions>,
391}
392
393pub type Environment = serde_json::Value;
394
395#[derive(Debug, Clone, Serialize, Deserialize)]
397#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
398pub struct FunctionShellTool {
399 #[serde(rename = "type")]
401 pub type_: String,
402 #[serde(skip_serializing_if = "Option::is_none", default)]
403 pub environment: Option<Environment>,
404}
405
406#[derive(Debug, Clone, Serialize, Deserialize)]
407#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
408pub struct InlineSkill {
409 pub description: String,
411 pub name: String,
413 pub source: InlineSkillSource,
415 #[serde(rename = "type")]
417 pub type_: String,
418}
419
420#[derive(Debug, Clone, Serialize, Deserialize)]
422#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
423pub struct InlineSkillSource {
424 pub data: String,
426 pub media_type: String,
428 #[serde(rename = "type")]
430 pub type_: String,
431}
432
433#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
434#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
435#[non_exhaustive]
436pub enum InputItemListParamsOrder {
437 #[serde(rename = "asc")]
438 Asc,
439 #[serde(rename = "desc")]
440 Desc,
441}
442
443#[derive(Debug, Clone, Serialize, Deserialize)]
444#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
445pub struct InputItemListParams {
446 #[serde(skip_serializing_if = "Option::is_none", default)]
448 pub after: Option<String>,
449 #[serde(skip_serializing_if = "Option::is_none", default)]
451 pub include: Option<Vec<ResponseIncludable>>,
452 #[serde(skip_serializing_if = "Option::is_none", default)]
454 pub limit: Option<i64>,
455 #[serde(skip_serializing_if = "Option::is_none", default)]
457 pub order: Option<InputItemListParamsOrder>,
458}
459
460#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
461#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
462#[non_exhaustive]
463pub enum InputTokenCountParamsTruncation {
464 #[serde(rename = "auto")]
465 Auto,
466 #[serde(rename = "disabled")]
467 Disabled,
468}
469
470#[derive(Debug, Clone, Serialize, Deserialize)]
471#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
472pub struct InputTokenCountParams {
473 #[serde(skip_serializing_if = "Option::is_none", default)]
475 pub conversation: Option<Conversation>,
476 #[serde(skip_serializing_if = "Option::is_none", default)]
478 pub input: Option<String>,
479 #[serde(skip_serializing_if = "Option::is_none", default)]
481 pub instructions: Option<String>,
482 #[serde(skip_serializing_if = "Option::is_none", default)]
484 pub model: Option<String>,
485 #[serde(skip_serializing_if = "Option::is_none", default)]
487 pub parallel_tool_calls: Option<bool>,
488 #[serde(skip_serializing_if = "Option::is_none", default)]
490 pub previous_response_id: Option<String>,
491 #[serde(skip_serializing_if = "Option::is_none", default)]
493 pub reasoning: Option<serde_json::Value>,
494 #[serde(skip_serializing_if = "Option::is_none", default)]
496 pub text: Option<Text>,
497 #[serde(skip_serializing_if = "Option::is_none", default)]
499 pub tool_choice: Option<ToolChoice>,
500 #[serde(skip_serializing_if = "Option::is_none", default)]
502 pub tools: Option<Vec<serde_json::Value>>,
503 #[serde(skip_serializing_if = "Option::is_none", default)]
505 pub truncation: Option<InputTokenCountParamsTruncation>,
506}
507
508pub type Conversation = serde_json::Value;
509
510#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
511#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
512#[non_exhaustive]
513pub enum TextVerbosity {
514 #[serde(rename = "low")]
515 Low,
516 #[serde(rename = "medium")]
517 Medium,
518 #[serde(rename = "high")]
519 High,
520}
521
522#[derive(Debug, Clone, Serialize, Deserialize)]
524#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
525pub struct Text {
526 #[serde(skip_serializing_if = "Option::is_none", default)]
528 pub format: Option<serde_json::Value>,
529 #[serde(skip_serializing_if = "Option::is_none", default)]
531 pub verbosity: Option<TextVerbosity>,
532}
533
534pub type ToolChoice = serde_json::Value;
535
536#[derive(Debug, Clone, Serialize, Deserialize)]
537#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
538pub struct InputTokenCountResponse {
539 pub input_tokens: i64,
540 pub object: String,
541}
542
543#[derive(Debug, Clone, Serialize, Deserialize)]
544#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
545pub struct LocalEnvironment {
546 #[serde(rename = "type")]
548 pub type_: String,
549 #[serde(skip_serializing_if = "Option::is_none", default)]
551 pub skills: Option<Vec<LocalSkill>>,
552}
553
554#[derive(Debug, Clone, Serialize, Deserialize)]
555#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
556pub struct LocalSkill {
557 pub description: String,
559 pub name: String,
561 pub path: String,
563}
564
565#[derive(Debug, Clone, Serialize, Deserialize)]
566#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
567pub struct ToolFunction {
568 pub name: String,
569 #[serde(rename = "type")]
570 pub type_: String,
571 #[serde(skip_serializing_if = "Option::is_none", default)]
573 pub defer_loading: Option<bool>,
574 #[serde(skip_serializing_if = "Option::is_none", default)]
575 pub description: Option<String>,
576 #[serde(skip_serializing_if = "Option::is_none", default)]
577 pub parameters: Option<serde_json::Value>,
578 #[serde(skip_serializing_if = "Option::is_none", default)]
579 pub strict: Option<bool>,
580}
581
582pub type Tool = serde_json::Value;
583
584#[derive(Debug, Clone, Serialize, Deserialize)]
586#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
587pub struct NamespaceTool {
588 pub description: String,
590 pub name: String,
592 pub tools: Vec<Tool>,
594 #[serde(rename = "type")]
596 pub type_: String,
597}
598
599pub type ParsedContent = serde_json::Value;
600
601pub type ParsedResponseOutputItem = serde_json::Value;
602
603#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
604#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
605#[non_exhaustive]
606pub enum IncompleteDetailsReason {
607 #[serde(rename = "max_output_tokens")]
608 MaxOutputTokens,
609 #[serde(rename = "content_filter")]
610 ContentFilter,
611}
612
613#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
614#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
615#[non_exhaustive]
616pub enum ResponsePromptCacheRetention {
617 #[serde(rename = "in-memory")]
618 InMemory,
619 #[serde(rename = "24h")]
620 V24h,
621}
622
623#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
624#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
625#[non_exhaustive]
626pub enum ResponseServiceTier {
627 #[serde(rename = "auto")]
628 Auto,
629 #[serde(rename = "default")]
630 Default,
631 #[serde(rename = "flex")]
632 Flex,
633 #[serde(rename = "scale")]
634 Scale,
635 #[serde(rename = "priority")]
636 Priority,
637}
638
639#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
640#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
641#[non_exhaustive]
642pub enum ResponseTruncation {
643 #[serde(rename = "auto")]
644 Auto,
645 #[serde(rename = "disabled")]
646 Disabled,
647}
648
649#[derive(Debug, Clone, Serialize, Deserialize)]
651#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
652pub struct OperationCreateFile {
653 pub diff: String,
655 pub path: String,
657 #[serde(rename = "type")]
659 pub type_: String,
660}
661
662#[derive(Debug, Clone, Serialize, Deserialize)]
664#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
665pub struct OperationDeleteFile {
666 pub path: String,
668 #[serde(rename = "type")]
670 pub type_: String,
671}
672
673#[derive(Debug, Clone, Serialize, Deserialize)]
675#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
676pub struct OperationUpdateFile {
677 pub diff: String,
679 pub path: String,
681 #[serde(rename = "type")]
683 pub type_: String,
684}
685
686pub type Operation = serde_json::Value;
687
688#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
689#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
690#[non_exhaustive]
691pub enum ResponseApplyPatchToolCallStatus {
692 #[serde(rename = "in_progress")]
693 InProgress,
694 #[serde(rename = "completed")]
695 Completed,
696}
697
698#[derive(Debug, Clone, Serialize, Deserialize)]
700#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
701pub struct ResponseApplyPatchToolCall {
702 pub id: String,
704 pub call_id: String,
706 pub operation: Operation,
708 pub status: ResponseApplyPatchToolCallStatus,
710 #[serde(rename = "type")]
712 pub type_: String,
713 #[serde(skip_serializing_if = "Option::is_none", default)]
715 pub created_by: Option<String>,
716}
717
718#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
719#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
720#[non_exhaustive]
721pub enum ResponseApplyPatchToolCallOutputStatus {
722 #[serde(rename = "completed")]
723 Completed,
724 #[serde(rename = "failed")]
725 Failed,
726}
727
728#[derive(Debug, Clone, Serialize, Deserialize)]
730#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
731pub struct ResponseApplyPatchToolCallOutput {
732 pub id: String,
734 pub call_id: String,
736 pub status: ResponseApplyPatchToolCallOutputStatus,
738 #[serde(rename = "type")]
740 pub type_: String,
741 #[serde(skip_serializing_if = "Option::is_none", default)]
743 pub created_by: Option<String>,
744 #[serde(skip_serializing_if = "Option::is_none", default)]
746 pub output: Option<String>,
747}
748
749#[derive(Debug, Clone, Serialize, Deserialize)]
751#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
752pub struct ResponseAudioDeltaEvent {
753 pub delta: String,
755 pub sequence_number: i64,
757 #[serde(rename = "type")]
759 pub type_: String,
760}
761
762#[derive(Debug, Clone, Serialize, Deserialize)]
764#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
765pub struct ResponseAudioDoneEvent {
766 pub sequence_number: i64,
768 #[serde(rename = "type")]
770 pub type_: String,
771}
772
773#[derive(Debug, Clone, Serialize, Deserialize)]
775#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
776pub struct ResponseAudioTranscriptDeltaEvent {
777 pub delta: String,
779 pub sequence_number: i64,
781 #[serde(rename = "type")]
783 pub type_: String,
784}
785
786#[derive(Debug, Clone, Serialize, Deserialize)]
788#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
789pub struct ResponseAudioTranscriptDoneEvent {
790 pub sequence_number: i64,
792 #[serde(rename = "type")]
794 pub type_: String,
795}
796
797#[derive(Debug, Clone, Serialize, Deserialize)]
799#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
800pub struct ResponseCodeInterpreterCallCodeDeltaEvent {
801 pub delta: String,
803 pub item_id: String,
805 pub output_index: i64,
807 pub sequence_number: i64,
809 #[serde(rename = "type")]
811 pub type_: String,
812}
813
814#[derive(Debug, Clone, Serialize, Deserialize)]
816#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
817pub struct ResponseCodeInterpreterCallCodeDoneEvent {
818 pub code: String,
820 pub item_id: String,
822 pub output_index: i64,
824 pub sequence_number: i64,
826 #[serde(rename = "type")]
828 pub type_: String,
829}
830
831#[derive(Debug, Clone, Serialize, Deserialize)]
833#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
834pub struct ResponseCodeInterpreterCallCompletedEvent {
835 pub item_id: String,
837 pub output_index: i64,
839 pub sequence_number: i64,
841 #[serde(rename = "type")]
843 pub type_: String,
844}
845
846#[derive(Debug, Clone, Serialize, Deserialize)]
848#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
849pub struct ResponseCodeInterpreterCallInProgressEvent {
850 pub item_id: String,
852 pub output_index: i64,
854 pub sequence_number: i64,
856 #[serde(rename = "type")]
858 pub type_: String,
859}
860
861#[derive(Debug, Clone, Serialize, Deserialize)]
863#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
864pub struct ResponseCodeInterpreterCallInterpretingEvent {
865 pub item_id: String,
867 pub output_index: i64,
869 pub sequence_number: i64,
871 #[serde(rename = "type")]
873 pub type_: String,
874}
875
876#[derive(Debug, Clone, Serialize, Deserialize)]
878#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
879pub struct OutputLogs {
880 pub logs: String,
882 #[serde(rename = "type")]
884 pub type_: String,
885}
886
887#[derive(Debug, Clone, Serialize, Deserialize)]
889#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
890pub struct OutputImage {
891 #[serde(rename = "type")]
893 pub type_: String,
894 pub url: String,
896}
897
898pub type Output = serde_json::Value;
899
900#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
901#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
902#[non_exhaustive]
903pub enum ResponseCodeInterpreterToolCallStatus {
904 #[serde(rename = "in_progress")]
905 InProgress,
906 #[serde(rename = "completed")]
907 Completed,
908 #[serde(rename = "incomplete")]
909 Incomplete,
910 #[serde(rename = "interpreting")]
911 Interpreting,
912 #[serde(rename = "failed")]
913 Failed,
914}
915
916#[derive(Debug, Clone, Serialize, Deserialize)]
918#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
919pub struct ResponseCodeInterpreterToolCall {
920 pub id: String,
922 #[serde(skip_serializing_if = "Option::is_none", default)]
924 pub code: Option<String>,
925 pub container_id: String,
927 #[serde(skip_serializing_if = "Option::is_none", default)]
929 pub outputs: Option<Vec<FunctionShellOutput>>,
930 pub status: ResponseCodeInterpreterToolCallStatus,
932 #[serde(rename = "type")]
934 pub type_: String,
935}
936
937#[derive(Debug, Clone, Serialize, Deserialize)]
938#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
939pub struct ResponseCompactParams {
940 pub model: Option<String>,
942 #[serde(skip_serializing_if = "Option::is_none", default)]
944 pub input: Option<String>,
945 #[serde(skip_serializing_if = "Option::is_none", default)]
947 pub instructions: Option<String>,
948 #[serde(skip_serializing_if = "Option::is_none", default)]
950 pub previous_response_id: Option<String>,
951 #[serde(skip_serializing_if = "Option::is_none", default)]
953 pub prompt_cache_key: Option<String>,
954}
955
956#[derive(Debug, Clone, Serialize, Deserialize)]
958#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
959pub struct ResponseCompactionItem {
960 pub id: String,
962 pub encrypted_content: String,
964 #[serde(rename = "type")]
966 pub type_: String,
967 #[serde(skip_serializing_if = "Option::is_none", default)]
969 pub created_by: Option<String>,
970}
971
972#[derive(Debug, Clone, Serialize, Deserialize)]
974#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
975pub struct PendingSafetyCheck {
976 pub id: String,
978 #[serde(skip_serializing_if = "Option::is_none", default)]
980 pub code: Option<String>,
981 #[serde(skip_serializing_if = "Option::is_none", default)]
983 pub message: Option<String>,
984}
985
986#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
987#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
988#[non_exhaustive]
989pub enum ActionClickButton {
990 #[serde(rename = "left")]
991 Left,
992 #[serde(rename = "right")]
993 Right,
994 #[serde(rename = "wheel")]
995 Wheel,
996 #[serde(rename = "back")]
997 Back,
998 #[serde(rename = "forward")]
999 Forward,
1000}
1001
1002#[derive(Debug, Clone, Serialize, Deserialize)]
1004#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1005pub struct ActionClick {
1006 pub button: ActionClickButton,
1008 #[serde(rename = "type")]
1010 pub type_: String,
1011 pub x: i64,
1013 pub y: i64,
1015}
1016
1017#[derive(Debug, Clone, Serialize, Deserialize)]
1019#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1020pub struct ActionDoubleClick {
1021 #[serde(rename = "type")]
1023 pub type_: String,
1024 pub x: i64,
1026 pub y: i64,
1028}
1029
1030#[derive(Debug, Clone, Serialize, Deserialize)]
1032#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1033pub struct ActionDragPath {
1034 pub x: i64,
1036 pub y: i64,
1038}
1039
1040#[derive(Debug, Clone, Serialize, Deserialize)]
1042#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1043pub struct ActionDrag {
1044 pub path: Vec<ActionDragPath>,
1046 #[serde(rename = "type")]
1048 pub type_: String,
1049}
1050
1051#[derive(Debug, Clone, Serialize, Deserialize)]
1053#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1054pub struct ActionKeypress {
1055 pub keys: Vec<String>,
1057 #[serde(rename = "type")]
1059 pub type_: String,
1060}
1061
1062#[derive(Debug, Clone, Serialize, Deserialize)]
1064#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1065pub struct ActionMove {
1066 #[serde(rename = "type")]
1068 pub type_: String,
1069 pub x: i64,
1071 pub y: i64,
1073}
1074
1075#[derive(Debug, Clone, Serialize, Deserialize)]
1077#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1078pub struct ActionScreenshot {
1079 #[serde(rename = "type")]
1081 pub type_: String,
1082}
1083
1084#[derive(Debug, Clone, Serialize, Deserialize)]
1086#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1087pub struct ActionScroll {
1088 pub scroll_x: i64,
1090 pub scroll_y: i64,
1092 #[serde(rename = "type")]
1094 pub type_: String,
1095 pub x: i64,
1097 pub y: i64,
1099}
1100
1101#[derive(Debug, Clone, Serialize, Deserialize)]
1103#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1104pub struct ActionType {
1105 pub text: String,
1107 #[serde(rename = "type")]
1109 pub type_: String,
1110}
1111
1112#[derive(Debug, Clone, Serialize, Deserialize)]
1114#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1115pub struct ActionWait {
1116 #[serde(rename = "type")]
1118 pub type_: String,
1119}
1120
1121pub type Action = serde_json::Value;
1122
1123#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
1124#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1125#[non_exhaustive]
1126pub enum ResponseComputerToolCallStatus {
1127 #[serde(rename = "in_progress")]
1128 InProgress,
1129 #[serde(rename = "completed")]
1130 Completed,
1131 #[serde(rename = "incomplete")]
1132 Incomplete,
1133}
1134
1135#[derive(Debug, Clone, Serialize, Deserialize)]
1137#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1138pub struct ResponseComputerToolCall {
1139 pub id: String,
1141 pub call_id: String,
1143 pub pending_safety_checks: Vec<PendingSafetyCheck>,
1145 pub status: ResponseComputerToolCallStatus,
1147 #[serde(rename = "type")]
1149 pub type_: String,
1150 #[serde(skip_serializing_if = "Option::is_none", default)]
1152 pub action: Option<FunctionShellAction>,
1153 #[serde(skip_serializing_if = "Option::is_none", default)]
1155 pub actions: Option<ComputerActionList>,
1156}
1157
1158#[derive(Debug, Clone, Serialize, Deserialize)]
1160#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1161pub struct AcknowledgedSafetyCheck {
1162 pub id: String,
1164 #[serde(skip_serializing_if = "Option::is_none", default)]
1166 pub code: Option<String>,
1167 #[serde(skip_serializing_if = "Option::is_none", default)]
1169 pub message: Option<String>,
1170}
1171
1172#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
1173#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1174#[non_exhaustive]
1175pub enum ResponseComputerToolCallOutputItemStatus {
1176 #[serde(rename = "in_progress")]
1177 InProgress,
1178 #[serde(rename = "completed")]
1179 Completed,
1180 #[serde(rename = "incomplete")]
1181 Incomplete,
1182}
1183
1184#[derive(Debug, Clone, Serialize, Deserialize)]
1185#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1186pub struct ResponseComputerToolCallOutputItem {
1187 pub id: String,
1189 pub call_id: String,
1191 pub output: ResponseComputerToolCallOutputScreenshot,
1193 #[serde(rename = "type")]
1195 pub type_: String,
1196 #[serde(skip_serializing_if = "Option::is_none", default)]
1198 pub acknowledged_safety_checks: Option<Vec<AcknowledgedSafetyCheck>>,
1199 #[serde(skip_serializing_if = "Option::is_none", default)]
1201 pub status: Option<ResponseComputerToolCallOutputItemStatus>,
1202}
1203
1204#[derive(Debug, Clone, Serialize, Deserialize)]
1206#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1207pub struct ResponseComputerToolCallOutputScreenshot {
1208 #[serde(rename = "type")]
1210 pub type_: String,
1211 #[serde(skip_serializing_if = "Option::is_none", default)]
1213 pub file_id: Option<String>,
1214 #[serde(skip_serializing_if = "Option::is_none", default)]
1216 pub image_url: Option<String>,
1217}
1218
1219#[derive(Debug, Clone, Serialize, Deserialize)]
1221#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1222pub struct ResponseContainerReference {
1223 pub container_id: String,
1224 #[serde(rename = "type")]
1226 pub type_: String,
1227}
1228
1229#[derive(Debug, Clone, Serialize, Deserialize)]
1231#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1232pub struct PartReasoningText {
1233 pub text: String,
1235 #[serde(rename = "type")]
1237 pub type_: String,
1238}
1239
1240pub type Part = serde_json::Value;
1241
1242#[derive(Debug, Clone, Serialize, Deserialize)]
1244#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1245pub struct ResponseContentPartAddedEvent {
1246 pub content_index: i64,
1248 pub item_id: String,
1250 pub output_index: i64,
1252 pub part: ReasoningSummaryPart,
1254 pub sequence_number: i64,
1256 #[serde(rename = "type")]
1258 pub type_: String,
1259}
1260
1261#[derive(Debug, Clone, Serialize, Deserialize)]
1263#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1264pub struct ResponseContentPartDoneEvent {
1265 pub content_index: i64,
1267 pub item_id: String,
1269 pub output_index: i64,
1271 pub part: ReasoningSummaryPart,
1273 pub sequence_number: i64,
1275 #[serde(rename = "type")]
1277 pub type_: String,
1278}
1279
1280#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
1281#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1282#[non_exhaustive]
1283pub enum ResponseCreateParamsBasePromptCacheRetention {
1284 #[serde(rename = "in-memory")]
1285 InMemory,
1286 #[serde(rename = "24h")]
1287 V24h,
1288}
1289
1290#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
1291#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1292#[non_exhaustive]
1293pub enum ResponseCreateParamsBaseServiceTier {
1294 #[serde(rename = "auto")]
1295 Auto,
1296 #[serde(rename = "default")]
1297 Default,
1298 #[serde(rename = "flex")]
1299 Flex,
1300 #[serde(rename = "scale")]
1301 Scale,
1302 #[serde(rename = "priority")]
1303 Priority,
1304}
1305
1306#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
1307#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1308#[non_exhaustive]
1309pub enum ResponseCreateParamsBaseTruncation {
1310 #[serde(rename = "auto")]
1311 Auto,
1312 #[serde(rename = "disabled")]
1313 Disabled,
1314}
1315
1316#[derive(Debug, Clone, Serialize, Deserialize)]
1317#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1318pub struct ResponseCreateParamsBase {
1319 #[serde(skip_serializing_if = "Option::is_none", default)]
1321 pub background: Option<bool>,
1322 #[serde(skip_serializing_if = "Option::is_none", default)]
1324 pub context_management: Option<Vec<ContextManagement>>,
1325 #[serde(skip_serializing_if = "Option::is_none", default)]
1327 pub conversation: Option<Conversation>,
1328 #[serde(skip_serializing_if = "Option::is_none", default)]
1330 pub include: Option<Vec<ResponseIncludable>>,
1331 #[serde(skip_serializing_if = "Option::is_none", default)]
1333 pub input: Option<String>,
1334 #[serde(skip_serializing_if = "Option::is_none", default)]
1336 pub instructions: Option<String>,
1337 #[serde(skip_serializing_if = "Option::is_none", default)]
1339 pub max_output_tokens: Option<i64>,
1340 #[serde(skip_serializing_if = "Option::is_none", default)]
1342 pub max_tool_calls: Option<i64>,
1343 #[serde(skip_serializing_if = "Option::is_none", default)]
1345 pub metadata: Option<serde_json::Value>,
1346 #[serde(skip_serializing_if = "Option::is_none", default)]
1348 pub model: Option<serde_json::Value>,
1349 #[serde(skip_serializing_if = "Option::is_none", default)]
1351 pub parallel_tool_calls: Option<bool>,
1352 #[serde(skip_serializing_if = "Option::is_none", default)]
1354 pub previous_response_id: Option<String>,
1355 #[serde(skip_serializing_if = "Option::is_none", default)]
1357 pub prompt: Option<serde_json::Value>,
1358 #[serde(skip_serializing_if = "Option::is_none", default)]
1360 pub prompt_cache_key: Option<String>,
1361 #[serde(skip_serializing_if = "Option::is_none", default)]
1363 pub prompt_cache_retention: Option<ResponseCreateParamsBasePromptCacheRetention>,
1364 #[serde(skip_serializing_if = "Option::is_none", default)]
1366 pub reasoning: Option<serde_json::Value>,
1367 #[serde(skip_serializing_if = "Option::is_none", default)]
1369 pub safety_identifier: Option<String>,
1370 #[serde(skip_serializing_if = "Option::is_none", default)]
1372 pub service_tier: Option<ResponseCreateParamsBaseServiceTier>,
1373 #[serde(skip_serializing_if = "Option::is_none", default)]
1375 pub store: Option<bool>,
1376 #[serde(skip_serializing_if = "Option::is_none", default)]
1378 pub stream_options: Option<StreamOptions>,
1379 #[serde(skip_serializing_if = "Option::is_none", default)]
1381 pub temperature: Option<f64>,
1382 #[serde(skip_serializing_if = "Option::is_none", default)]
1384 pub text: Option<serde_json::Value>,
1385 #[serde(skip_serializing_if = "Option::is_none", default)]
1387 pub tool_choice: Option<ToolChoice>,
1388 #[serde(skip_serializing_if = "Option::is_none", default)]
1390 pub tools: Option<Vec<serde_json::Value>>,
1391 #[serde(skip_serializing_if = "Option::is_none", default)]
1393 pub top_logprobs: Option<i64>,
1394 #[serde(skip_serializing_if = "Option::is_none", default)]
1396 pub top_p: Option<f64>,
1397 #[serde(skip_serializing_if = "Option::is_none", default)]
1399 pub truncation: Option<ResponseCreateParamsBaseTruncation>,
1400 #[serde(skip_serializing_if = "Option::is_none", default)]
1402 pub user: Option<String>,
1403}
1404
1405#[derive(Debug, Clone, Serialize, Deserialize)]
1406#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1407pub struct ContextManagement {
1408 #[serde(rename = "type")]
1410 pub type_: String,
1411 #[serde(skip_serializing_if = "Option::is_none", default)]
1413 pub compact_threshold: Option<i64>,
1414}
1415
1416#[derive(Debug, Clone, Serialize, Deserialize)]
1418#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1419pub struct StreamOptions {
1420 #[serde(skip_serializing_if = "Option::is_none", default)]
1422 pub include_obfuscation: Option<bool>,
1423}
1424
1425pub type ResponseCreateParams = serde_json::Value;
1426
1427#[derive(Debug, Clone, Serialize, Deserialize)]
1429#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1430pub struct ResponseCreatedEvent {
1431 pub response: Response,
1433 pub sequence_number: i64,
1435 #[serde(rename = "type")]
1437 pub type_: String,
1438}
1439
1440#[derive(Debug, Clone, Serialize, Deserialize)]
1442#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1443pub struct ResponseCustomToolCall {
1444 pub call_id: String,
1446 pub input: String,
1448 pub name: String,
1450 #[serde(rename = "type")]
1452 pub type_: String,
1453 #[serde(skip_serializing_if = "Option::is_none", default)]
1455 pub id: Option<String>,
1456 #[serde(skip_serializing_if = "Option::is_none", default)]
1458 pub namespace: Option<String>,
1459}
1460
1461#[derive(Debug, Clone, Serialize, Deserialize)]
1463#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1464pub struct ResponseCustomToolCallInputDeltaEvent {
1465 pub delta: String,
1467 pub item_id: String,
1469 pub output_index: i64,
1471 pub sequence_number: i64,
1473 #[serde(rename = "type")]
1475 pub type_: String,
1476}
1477
1478#[derive(Debug, Clone, Serialize, Deserialize)]
1480#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1481pub struct ResponseCustomToolCallInputDoneEvent {
1482 pub input: String,
1484 pub item_id: String,
1486 pub output_index: i64,
1488 pub sequence_number: i64,
1490 #[serde(rename = "type")]
1492 pub type_: String,
1493}
1494
1495pub type OutputOutputContentList = serde_json::Value;
1496
1497#[derive(Debug, Clone, Serialize, Deserialize)]
1499#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1500pub struct ResponseCustomToolCallOutput {
1501 pub call_id: String,
1503 pub output: String,
1505 #[serde(rename = "type")]
1507 pub type_: String,
1508 #[serde(skip_serializing_if = "Option::is_none", default)]
1510 pub id: Option<String>,
1511}
1512
1513#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
1514#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1515#[non_exhaustive]
1516pub enum ResponseErrorCode {
1517 #[serde(rename = "server_error")]
1518 ServerError,
1519 #[serde(rename = "rate_limit_exceeded")]
1520 RateLimitExceeded,
1521 #[serde(rename = "invalid_prompt")]
1522 InvalidPrompt,
1523 #[serde(rename = "vector_store_timeout")]
1524 VectorStoreTimeout,
1525 #[serde(rename = "invalid_image")]
1526 InvalidImage,
1527 #[serde(rename = "invalid_image_format")]
1528 InvalidImageFormat,
1529 #[serde(rename = "invalid_base64_image")]
1530 InvalidBase64Image,
1531 #[serde(rename = "invalid_image_url")]
1532 InvalidImageUrl,
1533 #[serde(rename = "image_too_large")]
1534 ImageTooLarge,
1535 #[serde(rename = "image_too_small")]
1536 ImageTooSmall,
1537 #[serde(rename = "image_parse_error")]
1538 ImageParseError,
1539 #[serde(rename = "image_content_policy_violation")]
1540 ImageContentPolicyViolation,
1541 #[serde(rename = "invalid_image_mode")]
1542 InvalidImageMode,
1543 #[serde(rename = "image_file_too_large")]
1544 ImageFileTooLarge,
1545 #[serde(rename = "unsupported_image_media_type")]
1546 UnsupportedImageMediaType,
1547 #[serde(rename = "empty_image_file")]
1548 EmptyImageFile,
1549 #[serde(rename = "failed_to_download_image")]
1550 FailedToDownloadImage,
1551 #[serde(rename = "image_file_not_found")]
1552 ImageFileNotFound,
1553}
1554
1555#[derive(Debug, Clone, Serialize, Deserialize)]
1557#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1558pub struct ResponseFileSearchCallCompletedEvent {
1559 pub item_id: String,
1561 pub output_index: i64,
1563 pub sequence_number: i64,
1565 #[serde(rename = "type")]
1567 pub type_: String,
1568}
1569
1570#[derive(Debug, Clone, Serialize, Deserialize)]
1572#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1573pub struct ResponseFileSearchCallInProgressEvent {
1574 pub item_id: String,
1576 pub output_index: i64,
1578 pub sequence_number: i64,
1580 #[serde(rename = "type")]
1582 pub type_: String,
1583}
1584
1585#[derive(Debug, Clone, Serialize, Deserialize)]
1587#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1588pub struct ResponseFileSearchCallSearchingEvent {
1589 pub item_id: String,
1591 pub output_index: i64,
1593 pub sequence_number: i64,
1595 #[serde(rename = "type")]
1597 pub type_: String,
1598}
1599
1600#[derive(Debug, Clone, Serialize, Deserialize)]
1601#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1602pub struct FileSearchResult {
1603 #[serde(skip_serializing_if = "Option::is_none", default)]
1605 pub attributes: Option<std::collections::HashMap<String, serde_json::Value>>,
1606 #[serde(skip_serializing_if = "Option::is_none", default)]
1608 pub file_id: Option<String>,
1609 #[serde(skip_serializing_if = "Option::is_none", default)]
1611 pub filename: Option<String>,
1612 #[serde(skip_serializing_if = "Option::is_none", default)]
1614 pub score: Option<f64>,
1615 #[serde(skip_serializing_if = "Option::is_none", default)]
1617 pub text: Option<String>,
1618}
1619
1620#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
1621#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1622#[non_exhaustive]
1623pub enum ResponseFileSearchToolCallStatus {
1624 #[serde(rename = "in_progress")]
1625 InProgress,
1626 #[serde(rename = "searching")]
1627 Searching,
1628 #[serde(rename = "completed")]
1629 Completed,
1630 #[serde(rename = "incomplete")]
1631 Incomplete,
1632 #[serde(rename = "failed")]
1633 Failed,
1634}
1635
1636#[derive(Debug, Clone, Serialize, Deserialize)]
1638#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1639pub struct ResponseFileSearchToolCall {
1640 pub id: String,
1642 pub queries: Vec<String>,
1644 pub status: ResponseFileSearchToolCallStatus,
1646 #[serde(rename = "type")]
1648 pub type_: String,
1649 #[serde(skip_serializing_if = "Option::is_none", default)]
1651 pub results: Option<Vec<FileSearchResult>>,
1652}
1653
1654pub type ResponseFormatTextConfig = serde_json::Value;
1655
1656#[derive(Debug, Clone, Serialize, Deserialize)]
1658#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1659pub struct ResponseFormatTextJSONSchemaConfig {
1660 pub name: String,
1662 #[serde(rename = "schema")]
1664 pub schema_: std::collections::HashMap<String, serde_json::Value>,
1665 #[serde(rename = "type")]
1667 pub type_: String,
1668 #[serde(skip_serializing_if = "Option::is_none", default)]
1670 pub description: Option<String>,
1671 #[serde(skip_serializing_if = "Option::is_none", default)]
1673 pub strict: Option<bool>,
1674}
1675
1676pub type ResponseFunctionCallOutputItem = serde_json::Value;
1677
1678pub type ResponseFunctionCallOutputItemList = Vec<ResponseFunctionCallOutputItem>;
1679
1680#[derive(Debug, Clone, Serialize, Deserialize)]
1682#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1683pub struct OutcomeTimeout {
1684 #[serde(rename = "type")]
1686 pub type_: String,
1687}
1688
1689#[derive(Debug, Clone, Serialize, Deserialize)]
1691#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1692pub struct OutcomeExit {
1693 pub exit_code: i64,
1695 #[serde(rename = "type")]
1697 pub type_: String,
1698}
1699
1700pub type Outcome = serde_json::Value;
1701
1702#[derive(Debug, Clone, Serialize, Deserialize)]
1704#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1705pub struct ResponseFunctionShellCallOutputContent {
1706 pub outcome: Outcome,
1708 pub stderr: String,
1710 pub stdout: String,
1712}
1713
1714#[derive(Debug, Clone, Serialize, Deserialize)]
1716#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1717pub struct FunctionShellAction {
1718 pub commands: Vec<String>,
1719 #[serde(skip_serializing_if = "Option::is_none", default)]
1721 pub max_output_length: Option<i64>,
1722 #[serde(skip_serializing_if = "Option::is_none", default)]
1724 pub timeout_ms: Option<i64>,
1725}
1726
1727#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
1728#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1729#[non_exhaustive]
1730pub enum ResponseFunctionShellToolCallStatus {
1731 #[serde(rename = "in_progress")]
1732 InProgress,
1733 #[serde(rename = "completed")]
1734 Completed,
1735 #[serde(rename = "incomplete")]
1736 Incomplete,
1737}
1738
1739#[derive(Debug, Clone, Serialize, Deserialize)]
1741#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1742pub struct ResponseFunctionShellToolCall {
1743 pub id: String,
1745 pub action: FunctionShellAction,
1747 pub call_id: String,
1749 #[serde(skip_serializing_if = "Option::is_none", default)]
1751 pub environment: Option<Environment>,
1752 pub status: ResponseFunctionShellToolCallStatus,
1754 #[serde(rename = "type")]
1756 pub type_: String,
1757 #[serde(skip_serializing_if = "Option::is_none", default)]
1759 pub created_by: Option<String>,
1760}
1761
1762#[derive(Debug, Clone, Serialize, Deserialize)]
1764#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1765pub struct OutputOutcomeTimeout {
1766 #[serde(rename = "type")]
1768 pub type_: String,
1769}
1770
1771#[derive(Debug, Clone, Serialize, Deserialize)]
1773#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1774pub struct OutputOutcomeExit {
1775 pub exit_code: i64,
1777 #[serde(rename = "type")]
1779 pub type_: String,
1780}
1781
1782pub type OutputOutcome = serde_json::Value;
1783
1784#[derive(Debug, Clone, Serialize, Deserialize)]
1786#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1787pub struct FunctionShellOutput {
1788 pub outcome: OutputOutcome,
1790 pub stderr: String,
1792 pub stdout: String,
1794 #[serde(skip_serializing_if = "Option::is_none", default)]
1796 pub created_by: Option<String>,
1797}
1798
1799#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
1800#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1801#[non_exhaustive]
1802pub enum ResponseFunctionShellToolCallOutputStatus {
1803 #[serde(rename = "in_progress")]
1804 InProgress,
1805 #[serde(rename = "completed")]
1806 Completed,
1807 #[serde(rename = "incomplete")]
1808 Incomplete,
1809}
1810
1811#[derive(Debug, Clone, Serialize, Deserialize)]
1813#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1814pub struct ResponseFunctionShellToolCallOutput {
1815 pub id: String,
1817 pub call_id: String,
1819 #[serde(skip_serializing_if = "Option::is_none", default)]
1821 pub max_output_length: Option<i64>,
1822 pub output: Vec<FunctionShellOutput>,
1824 pub status: ResponseFunctionShellToolCallOutputStatus,
1826 #[serde(rename = "type")]
1828 pub type_: String,
1829 #[serde(skip_serializing_if = "Option::is_none", default)]
1831 pub created_by: Option<String>,
1832}
1833
1834#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
1835#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1836#[non_exhaustive]
1837pub enum ResponseFunctionToolCallStatus {
1838 #[serde(rename = "in_progress")]
1839 InProgress,
1840 #[serde(rename = "completed")]
1841 Completed,
1842 #[serde(rename = "incomplete")]
1843 Incomplete,
1844}
1845
1846#[derive(Debug, Clone, Serialize, Deserialize)]
1848#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1849pub struct ResponseFunctionToolCall {
1850 pub arguments: String,
1852 pub call_id: String,
1854 pub name: String,
1856 #[serde(rename = "type")]
1858 pub type_: String,
1859 #[serde(skip_serializing_if = "Option::is_none", default)]
1861 pub id: Option<String>,
1862 #[serde(skip_serializing_if = "Option::is_none", default)]
1864 pub namespace: Option<String>,
1865 #[serde(skip_serializing_if = "Option::is_none", default)]
1867 pub status: Option<ResponseFunctionToolCallStatus>,
1868}
1869
1870#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
1871#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1872#[non_exhaustive]
1873pub enum ResponseFunctionToolCallOutputItemStatus {
1874 #[serde(rename = "in_progress")]
1875 InProgress,
1876 #[serde(rename = "completed")]
1877 Completed,
1878 #[serde(rename = "incomplete")]
1879 Incomplete,
1880}
1881
1882#[derive(Debug, Clone, Serialize, Deserialize)]
1883#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1884pub struct ResponseFunctionToolCallOutputItem {
1885 pub id: String,
1887 pub call_id: String,
1889 pub output: String,
1891 #[serde(rename = "type")]
1893 pub type_: String,
1894 #[serde(skip_serializing_if = "Option::is_none", default)]
1896 pub status: Option<ResponseFunctionToolCallOutputItemStatus>,
1897}
1898
1899#[derive(Debug, Clone, Serialize, Deserialize)]
1901#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1902pub struct ActionSearchSource {
1903 #[serde(rename = "type")]
1905 pub type_: String,
1906 pub url: String,
1908}
1909
1910#[derive(Debug, Clone, Serialize, Deserialize)]
1912#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1913pub struct ActionSearch {
1914 pub query: String,
1916 #[serde(rename = "type")]
1918 pub type_: String,
1919 #[serde(skip_serializing_if = "Option::is_none", default)]
1921 pub queries: Option<Vec<String>>,
1922 #[serde(skip_serializing_if = "Option::is_none", default)]
1924 pub sources: Option<Vec<ActionSearchSource>>,
1925}
1926
1927#[derive(Debug, Clone, Serialize, Deserialize)]
1929#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1930pub struct ActionOpenPage {
1931 #[serde(rename = "type")]
1933 pub type_: String,
1934 #[serde(skip_serializing_if = "Option::is_none", default)]
1936 pub url: Option<String>,
1937}
1938
1939#[derive(Debug, Clone, Serialize, Deserialize)]
1941#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1942pub struct ActionFind {
1943 pub pattern: String,
1945 #[serde(rename = "type")]
1947 pub type_: String,
1948 pub url: String,
1950}
1951
1952#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
1953#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1954#[non_exhaustive]
1955pub enum ResponseFunctionWebSearchStatus {
1956 #[serde(rename = "in_progress")]
1957 InProgress,
1958 #[serde(rename = "searching")]
1959 Searching,
1960 #[serde(rename = "completed")]
1961 Completed,
1962 #[serde(rename = "failed")]
1963 Failed,
1964}
1965
1966#[derive(Debug, Clone, Serialize, Deserialize)]
1968#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1969pub struct ResponseFunctionWebSearch {
1970 pub id: String,
1972 pub action: FunctionShellAction,
1974 pub status: ResponseFunctionWebSearchStatus,
1976 #[serde(rename = "type")]
1978 pub type_: String,
1979}
1980
1981#[derive(Debug, Clone, Serialize, Deserialize)]
1983#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1984pub struct ResponseImageGenCallCompletedEvent {
1985 pub item_id: String,
1987 pub output_index: i64,
1989 pub sequence_number: i64,
1991 #[serde(rename = "type")]
1993 pub type_: String,
1994}
1995
1996#[derive(Debug, Clone, Serialize, Deserialize)]
1998#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
1999pub struct ResponseImageGenCallGeneratingEvent {
2000 pub item_id: String,
2002 pub output_index: i64,
2004 pub sequence_number: i64,
2006 #[serde(rename = "type")]
2008 pub type_: String,
2009}
2010
2011#[derive(Debug, Clone, Serialize, Deserialize)]
2013#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2014pub struct ResponseImageGenCallInProgressEvent {
2015 pub item_id: String,
2017 pub output_index: i64,
2019 pub sequence_number: i64,
2021 #[serde(rename = "type")]
2023 pub type_: String,
2024}
2025
2026#[derive(Debug, Clone, Serialize, Deserialize)]
2028#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2029pub struct ResponseImageGenCallPartialImageEvent {
2030 pub item_id: String,
2032 pub output_index: i64,
2034 pub partial_image_b64: String,
2036 pub partial_image_index: i64,
2038 pub sequence_number: i64,
2040 #[serde(rename = "type")]
2042 pub type_: String,
2043}
2044
2045#[derive(Debug, Clone, Serialize, Deserialize)]
2047#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2048pub struct ResponseInProgressEvent {
2049 pub response: Response,
2051 pub sequence_number: i64,
2053 #[serde(rename = "type")]
2055 pub type_: String,
2056}
2057
2058#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
2059#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2060#[non_exhaustive]
2061pub enum ResponseIncludable {
2062 #[serde(rename = "file_search_call.results")]
2063 FileSearchCallResults,
2064 #[serde(rename = "web_search_call.results")]
2065 WebSearchCallResults,
2066 #[serde(rename = "web_search_call.action.sources")]
2067 WebSearchCallActionSources,
2068 #[serde(rename = "message.input_image.image_url")]
2069 MessageInputImageImageUrl,
2070 #[serde(rename = "computer_call_output.output.image_url")]
2071 ComputerCallOutputOutputImageUrl,
2072 #[serde(rename = "code_interpreter_call.outputs")]
2073 CodeInterpreterCallOutputs,
2074 #[serde(rename = "reasoning.encrypted_content")]
2075 ReasoningEncryptedContent,
2076 #[serde(rename = "message.output_text.logprobs")]
2077 MessageOutputTextLogprobs,
2078}
2079
2080#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
2081#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2082#[non_exhaustive]
2083pub enum InputAudioFormat {
2084 #[serde(rename = "mp3")]
2085 Mp3,
2086 #[serde(rename = "wav")]
2087 Wav,
2088}
2089
2090#[derive(Debug, Clone, Serialize, Deserialize)]
2091#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2092pub struct InputAudio {
2093 pub data: String,
2095 pub format: InputAudioFormat,
2097}
2098
2099#[derive(Debug, Clone, Serialize, Deserialize)]
2101#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2102pub struct ResponseInputAudio {
2103 pub input_audio: InputAudio,
2104 #[serde(rename = "type")]
2106 pub type_: String,
2107}
2108
2109pub type ResponseInputContent = serde_json::Value;
2110
2111#[derive(Debug, Clone, Serialize, Deserialize)]
2113#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2114pub struct ResponseInputFile {
2115 #[serde(rename = "type")]
2117 pub type_: String,
2118 #[serde(skip_serializing_if = "Option::is_none", default)]
2120 pub file_data: Option<String>,
2121 #[serde(skip_serializing_if = "Option::is_none", default)]
2123 pub file_id: Option<String>,
2124 #[serde(skip_serializing_if = "Option::is_none", default)]
2126 pub file_url: Option<String>,
2127 #[serde(skip_serializing_if = "Option::is_none", default)]
2129 pub filename: Option<String>,
2130}
2131
2132#[derive(Debug, Clone, Serialize, Deserialize)]
2134#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2135pub struct ResponseInputFileContent {
2136 #[serde(rename = "type")]
2138 pub type_: String,
2139 #[serde(skip_serializing_if = "Option::is_none", default)]
2141 pub file_data: Option<String>,
2142 #[serde(skip_serializing_if = "Option::is_none", default)]
2144 pub file_id: Option<String>,
2145 #[serde(skip_serializing_if = "Option::is_none", default)]
2147 pub file_url: Option<String>,
2148 #[serde(skip_serializing_if = "Option::is_none", default)]
2150 pub filename: Option<String>,
2151}
2152
2153#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
2154#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2155#[non_exhaustive]
2156pub enum ResponseInputImageDetail {
2157 #[serde(rename = "low")]
2158 Low,
2159 #[serde(rename = "high")]
2160 High,
2161 #[serde(rename = "auto")]
2162 Auto,
2163 #[serde(rename = "original")]
2164 Original,
2165}
2166
2167#[derive(Debug, Clone, Serialize, Deserialize)]
2169#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2170pub struct ResponseInputImage {
2171 pub detail: ResponseInputImageDetail,
2173 #[serde(rename = "type")]
2175 pub type_: String,
2176 #[serde(skip_serializing_if = "Option::is_none", default)]
2178 pub file_id: Option<String>,
2179 #[serde(skip_serializing_if = "Option::is_none", default)]
2181 pub image_url: Option<String>,
2182}
2183
2184#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
2185#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2186#[non_exhaustive]
2187pub enum ResponseInputImageContentDetail {
2188 #[serde(rename = "low")]
2189 Low,
2190 #[serde(rename = "high")]
2191 High,
2192 #[serde(rename = "auto")]
2193 Auto,
2194 #[serde(rename = "original")]
2195 Original,
2196}
2197
2198#[derive(Debug, Clone, Serialize, Deserialize)]
2200#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2201pub struct ResponseInputImageContent {
2202 #[serde(rename = "type")]
2204 pub type_: String,
2205 #[serde(skip_serializing_if = "Option::is_none", default)]
2207 pub detail: Option<ResponseInputImageContentDetail>,
2208 #[serde(skip_serializing_if = "Option::is_none", default)]
2210 pub file_id: Option<String>,
2211 #[serde(skip_serializing_if = "Option::is_none", default)]
2213 pub image_url: Option<String>,
2214}
2215
2216#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
2217#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2218#[non_exhaustive]
2219pub enum MessageRole {
2220 #[serde(rename = "user")]
2221 User,
2222 #[serde(rename = "system")]
2223 System,
2224 #[serde(rename = "developer")]
2225 Developer,
2226}
2227
2228#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
2229#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2230#[non_exhaustive]
2231pub enum MessageStatus {
2232 #[serde(rename = "in_progress")]
2233 InProgress,
2234 #[serde(rename = "completed")]
2235 Completed,
2236 #[serde(rename = "incomplete")]
2237 Incomplete,
2238}
2239
2240#[derive(Debug, Clone, Serialize, Deserialize)]
2242#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2243pub struct Message {
2244 pub content: ResponseInputMessageContentList,
2246 pub role: MessageRole,
2248 #[serde(skip_serializing_if = "Option::is_none", default)]
2250 pub status: Option<MessageStatus>,
2251 #[serde(rename = "type", skip_serializing_if = "Option::is_none", default)]
2253 pub type_: Option<String>,
2254}
2255
2256#[derive(Debug, Clone, Serialize, Deserialize)]
2258#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2259pub struct ComputerCallOutputAcknowledgedSafetyCheck {
2260 pub id: String,
2262 #[serde(skip_serializing_if = "Option::is_none", default)]
2264 pub code: Option<String>,
2265 #[serde(skip_serializing_if = "Option::is_none", default)]
2267 pub message: Option<String>,
2268}
2269
2270#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
2271#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2272#[non_exhaustive]
2273pub enum ComputerCallOutputStatus {
2274 #[serde(rename = "in_progress")]
2275 InProgress,
2276 #[serde(rename = "completed")]
2277 Completed,
2278 #[serde(rename = "incomplete")]
2279 Incomplete,
2280}
2281
2282#[derive(Debug, Clone, Serialize, Deserialize)]
2284#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2285pub struct ComputerCallOutput {
2286 pub call_id: String,
2288 pub output: ResponseComputerToolCallOutputScreenshot,
2290 #[serde(rename = "type")]
2292 pub type_: String,
2293 #[serde(skip_serializing_if = "Option::is_none", default)]
2295 pub id: Option<String>,
2296 #[serde(skip_serializing_if = "Option::is_none", default)]
2298 pub acknowledged_safety_checks: Option<Vec<ComputerCallOutputAcknowledgedSafetyCheck>>,
2299 #[serde(skip_serializing_if = "Option::is_none", default)]
2301 pub status: Option<ComputerCallOutputStatus>,
2302}
2303
2304#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
2305#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2306#[non_exhaustive]
2307pub enum FunctionCallOutputStatus {
2308 #[serde(rename = "in_progress")]
2309 InProgress,
2310 #[serde(rename = "completed")]
2311 Completed,
2312 #[serde(rename = "incomplete")]
2313 Incomplete,
2314}
2315
2316#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
2317#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2318#[non_exhaustive]
2319pub enum ToolSearchCallExecution {
2320 #[serde(rename = "server")]
2321 Server,
2322 #[serde(rename = "client")]
2323 Client,
2324}
2325
2326#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
2327#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2328#[non_exhaustive]
2329pub enum ToolSearchCallStatus {
2330 #[serde(rename = "in_progress")]
2331 InProgress,
2332 #[serde(rename = "completed")]
2333 Completed,
2334 #[serde(rename = "incomplete")]
2335 Incomplete,
2336}
2337
2338#[derive(Debug, Clone, Serialize, Deserialize)]
2339#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2340pub struct ToolSearchCall {
2341 pub arguments: serde_json::Value,
2343 #[serde(rename = "type")]
2345 pub type_: String,
2346 #[serde(skip_serializing_if = "Option::is_none", default)]
2348 pub id: Option<String>,
2349 #[serde(skip_serializing_if = "Option::is_none", default)]
2351 pub call_id: Option<String>,
2352 #[serde(skip_serializing_if = "Option::is_none", default)]
2354 pub execution: Option<ToolSearchCallExecution>,
2355 #[serde(skip_serializing_if = "Option::is_none", default)]
2357 pub status: Option<ToolSearchCallStatus>,
2358}
2359
2360#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
2361#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2362#[non_exhaustive]
2363pub enum ImageGenerationCallStatus {
2364 #[serde(rename = "in_progress")]
2365 InProgress,
2366 #[serde(rename = "completed")]
2367 Completed,
2368 #[serde(rename = "generating")]
2369 Generating,
2370 #[serde(rename = "failed")]
2371 Failed,
2372}
2373
2374#[derive(Debug, Clone, Serialize, Deserialize)]
2376#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2377pub struct ImageGenerationCall {
2378 pub id: String,
2380 #[serde(skip_serializing_if = "Option::is_none", default)]
2382 pub result: Option<String>,
2383 pub status: ImageGenerationCallStatus,
2385 #[serde(rename = "type")]
2387 pub type_: String,
2388}
2389
2390#[derive(Debug, Clone, Serialize, Deserialize)]
2392#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2393pub struct LocalShellCallAction {
2394 pub command: Vec<String>,
2396 pub env: std::collections::HashMap<String, String>,
2398 #[serde(rename = "type")]
2400 pub type_: String,
2401 #[serde(skip_serializing_if = "Option::is_none", default)]
2403 pub timeout_ms: Option<i64>,
2404 #[serde(skip_serializing_if = "Option::is_none", default)]
2406 pub user: Option<String>,
2407 #[serde(skip_serializing_if = "Option::is_none", default)]
2409 pub working_directory: Option<String>,
2410}
2411
2412#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
2413#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2414#[non_exhaustive]
2415pub enum LocalShellCallStatus {
2416 #[serde(rename = "in_progress")]
2417 InProgress,
2418 #[serde(rename = "completed")]
2419 Completed,
2420 #[serde(rename = "incomplete")]
2421 Incomplete,
2422}
2423
2424#[derive(Debug, Clone, Serialize, Deserialize)]
2426#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2427pub struct LocalShellCall {
2428 pub id: String,
2430 pub action: LocalShellCallAction,
2432 pub call_id: String,
2434 pub status: LocalShellCallStatus,
2436 #[serde(rename = "type")]
2438 pub type_: String,
2439}
2440
2441#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
2442#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2443#[non_exhaustive]
2444pub enum LocalShellCallOutputStatus {
2445 #[serde(rename = "in_progress")]
2446 InProgress,
2447 #[serde(rename = "completed")]
2448 Completed,
2449 #[serde(rename = "incomplete")]
2450 Incomplete,
2451}
2452
2453#[derive(Debug, Clone, Serialize, Deserialize)]
2455#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2456pub struct LocalShellCallOutput {
2457 pub id: String,
2459 pub output: String,
2461 #[serde(rename = "type")]
2463 pub type_: String,
2464 #[serde(skip_serializing_if = "Option::is_none", default)]
2466 pub status: Option<LocalShellCallOutputStatus>,
2467}
2468
2469#[derive(Debug, Clone, Serialize, Deserialize)]
2471#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2472pub struct ShellCallAction {
2473 pub commands: Vec<String>,
2475 #[serde(skip_serializing_if = "Option::is_none", default)]
2477 pub max_output_length: Option<i64>,
2478 #[serde(skip_serializing_if = "Option::is_none", default)]
2480 pub timeout_ms: Option<i64>,
2481}
2482
2483pub type ShellCallEnvironment = serde_json::Value;
2484
2485#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
2486#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2487#[non_exhaustive]
2488pub enum ShellCallStatus {
2489 #[serde(rename = "in_progress")]
2490 InProgress,
2491 #[serde(rename = "completed")]
2492 Completed,
2493 #[serde(rename = "incomplete")]
2494 Incomplete,
2495}
2496
2497#[derive(Debug, Clone, Serialize, Deserialize)]
2499#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2500pub struct ShellCall {
2501 pub action: ShellCallAction,
2503 pub call_id: String,
2505 #[serde(rename = "type")]
2507 pub type_: String,
2508 #[serde(skip_serializing_if = "Option::is_none", default)]
2510 pub id: Option<String>,
2511 #[serde(skip_serializing_if = "Option::is_none", default)]
2513 pub environment: Option<ShellCallEnvironment>,
2514 #[serde(skip_serializing_if = "Option::is_none", default)]
2516 pub status: Option<ShellCallStatus>,
2517}
2518
2519#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
2520#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2521#[non_exhaustive]
2522pub enum ShellCallOutputStatus {
2523 #[serde(rename = "in_progress")]
2524 InProgress,
2525 #[serde(rename = "completed")]
2526 Completed,
2527 #[serde(rename = "incomplete")]
2528 Incomplete,
2529}
2530
2531#[derive(Debug, Clone, Serialize, Deserialize)]
2533#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2534pub struct ShellCallOutput {
2535 pub call_id: String,
2537 pub output: Vec<ResponseFunctionShellCallOutputContent>,
2539 #[serde(rename = "type")]
2541 pub type_: String,
2542 #[serde(skip_serializing_if = "Option::is_none", default)]
2544 pub id: Option<String>,
2545 #[serde(skip_serializing_if = "Option::is_none", default)]
2547 pub max_output_length: Option<i64>,
2548 #[serde(skip_serializing_if = "Option::is_none", default)]
2550 pub status: Option<ShellCallOutputStatus>,
2551}
2552
2553#[derive(Debug, Clone, Serialize, Deserialize)]
2555#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2556pub struct ApplyPatchCallOperationCreateFile {
2557 pub diff: String,
2559 pub path: String,
2561 #[serde(rename = "type")]
2563 pub type_: String,
2564}
2565
2566#[derive(Debug, Clone, Serialize, Deserialize)]
2568#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2569pub struct ApplyPatchCallOperationDeleteFile {
2570 pub path: String,
2572 #[serde(rename = "type")]
2574 pub type_: String,
2575}
2576
2577#[derive(Debug, Clone, Serialize, Deserialize)]
2579#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2580pub struct ApplyPatchCallOperationUpdateFile {
2581 pub diff: String,
2583 pub path: String,
2585 #[serde(rename = "type")]
2587 pub type_: String,
2588}
2589
2590pub type ApplyPatchCallOperation = serde_json::Value;
2591
2592#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
2593#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2594#[non_exhaustive]
2595pub enum ApplyPatchCallStatus {
2596 #[serde(rename = "in_progress")]
2597 InProgress,
2598 #[serde(rename = "completed")]
2599 Completed,
2600}
2601
2602#[derive(Debug, Clone, Serialize, Deserialize)]
2604#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2605pub struct ApplyPatchCall {
2606 pub call_id: String,
2608 pub operation: ApplyPatchCallOperation,
2610 pub status: ApplyPatchCallStatus,
2612 #[serde(rename = "type")]
2614 pub type_: String,
2615 #[serde(skip_serializing_if = "Option::is_none", default)]
2617 pub id: Option<String>,
2618}
2619
2620#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
2621#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2622#[non_exhaustive]
2623pub enum ApplyPatchCallOutputStatus {
2624 #[serde(rename = "completed")]
2625 Completed,
2626 #[serde(rename = "failed")]
2627 Failed,
2628}
2629
2630#[derive(Debug, Clone, Serialize, Deserialize)]
2632#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2633pub struct ApplyPatchCallOutput {
2634 pub call_id: String,
2636 pub status: ApplyPatchCallOutputStatus,
2638 #[serde(rename = "type")]
2640 pub type_: String,
2641 #[serde(skip_serializing_if = "Option::is_none", default)]
2643 pub id: Option<String>,
2644 #[serde(skip_serializing_if = "Option::is_none", default)]
2646 pub output: Option<String>,
2647}
2648
2649#[derive(Debug, Clone, Serialize, Deserialize)]
2651#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2652pub struct McpListToolsTool {
2653 pub input_schema: serde_json::Value,
2655 pub name: String,
2657 #[serde(skip_serializing_if = "Option::is_none", default)]
2659 pub annotations: Option<serde_json::Value>,
2660 #[serde(skip_serializing_if = "Option::is_none", default)]
2662 pub description: Option<String>,
2663}
2664
2665#[derive(Debug, Clone, Serialize, Deserialize)]
2667#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2668pub struct McpListTools {
2669 pub id: String,
2671 pub server_label: String,
2673 pub tools: Vec<McpListToolsTool>,
2675 #[serde(rename = "type")]
2677 pub type_: String,
2678 #[serde(skip_serializing_if = "Option::is_none", default)]
2680 pub error: Option<String>,
2681}
2682
2683#[derive(Debug, Clone, Serialize, Deserialize)]
2685#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2686pub struct McpApprovalRequest {
2687 pub id: String,
2689 pub arguments: String,
2691 pub name: String,
2693 pub server_label: String,
2695 #[serde(rename = "type")]
2697 pub type_: String,
2698}
2699
2700#[derive(Debug, Clone, Serialize, Deserialize)]
2702#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2703pub struct McpApprovalResponse {
2704 pub approval_request_id: String,
2706 pub approve: bool,
2708 #[serde(rename = "type")]
2710 pub type_: String,
2711 #[serde(skip_serializing_if = "Option::is_none", default)]
2713 pub id: Option<String>,
2714 #[serde(skip_serializing_if = "Option::is_none", default)]
2716 pub reason: Option<String>,
2717}
2718
2719#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
2720#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2721#[non_exhaustive]
2722pub enum McpCallStatus {
2723 #[serde(rename = "in_progress")]
2724 InProgress,
2725 #[serde(rename = "completed")]
2726 Completed,
2727 #[serde(rename = "incomplete")]
2728 Incomplete,
2729 #[serde(rename = "calling")]
2730 Calling,
2731 #[serde(rename = "failed")]
2732 Failed,
2733}
2734
2735#[derive(Debug, Clone, Serialize, Deserialize)]
2737#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2738pub struct McpCall {
2739 pub id: String,
2741 pub arguments: String,
2743 pub name: String,
2745 pub server_label: String,
2747 #[serde(rename = "type")]
2749 pub type_: String,
2750 #[serde(skip_serializing_if = "Option::is_none", default)]
2752 pub approval_request_id: Option<String>,
2753 #[serde(skip_serializing_if = "Option::is_none", default)]
2755 pub error: Option<String>,
2756 #[serde(skip_serializing_if = "Option::is_none", default)]
2758 pub output: Option<String>,
2759 #[serde(skip_serializing_if = "Option::is_none", default)]
2761 pub status: Option<McpCallStatus>,
2762}
2763
2764#[derive(Debug, Clone, Serialize, Deserialize)]
2766#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2767pub struct ItemReference {
2768 pub id: String,
2770 #[serde(rename = "type", skip_serializing_if = "Option::is_none", default)]
2772 pub type_: Option<String>,
2773}
2774
2775pub type ResponseInputMessageContentList = Vec<ResponseInputContent>;
2776
2777#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
2778#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2779#[non_exhaustive]
2780pub enum ResponseInputMessageItemRole {
2781 #[serde(rename = "user")]
2782 User,
2783 #[serde(rename = "system")]
2784 System,
2785 #[serde(rename = "developer")]
2786 Developer,
2787}
2788
2789#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
2790#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2791#[non_exhaustive]
2792pub enum ResponseInputMessageItemStatus {
2793 #[serde(rename = "in_progress")]
2794 InProgress,
2795 #[serde(rename = "completed")]
2796 Completed,
2797 #[serde(rename = "incomplete")]
2798 Incomplete,
2799}
2800
2801#[derive(Debug, Clone, Serialize, Deserialize)]
2802#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2803pub struct ResponseInputMessageItem {
2804 pub id: String,
2806 pub content: ResponseInputMessageContentList,
2808 pub role: ResponseInputMessageItemRole,
2810 #[serde(skip_serializing_if = "Option::is_none", default)]
2812 pub status: Option<ResponseInputMessageItemStatus>,
2813 #[serde(rename = "type", skip_serializing_if = "Option::is_none", default)]
2815 pub type_: Option<String>,
2816}
2817
2818#[derive(Debug, Clone, Serialize, Deserialize)]
2820#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2821pub struct ResponseInputText {
2822 pub text: String,
2824 #[serde(rename = "type")]
2826 pub type_: String,
2827}
2828
2829#[derive(Debug, Clone, Serialize, Deserialize)]
2831#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2832pub struct ResponseInputTextContent {
2833 pub text: String,
2835 #[serde(rename = "type")]
2837 pub type_: String,
2838}
2839
2840pub type ResponseItem = serde_json::Value;
2841
2842#[derive(Debug, Clone, Serialize, Deserialize)]
2844#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2845pub struct ResponseItemList {
2846 pub data: Vec<ResponseItem>,
2848 pub first_id: String,
2850 pub has_more: bool,
2852 pub last_id: String,
2854 pub object: String,
2856}
2857
2858#[derive(Debug, Clone, Serialize, Deserialize)]
2860#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2861pub struct ResponseLocalEnvironment {
2862 #[serde(rename = "type")]
2864 pub type_: String,
2865}
2866
2867#[derive(Debug, Clone, Serialize, Deserialize)]
2869#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2870pub struct ResponseMcpCallArgumentsDeltaEvent {
2871 pub delta: String,
2873 pub item_id: String,
2875 pub output_index: i64,
2877 pub sequence_number: i64,
2879 #[serde(rename = "type")]
2881 pub type_: String,
2882}
2883
2884#[derive(Debug, Clone, Serialize, Deserialize)]
2886#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2887pub struct ResponseMcpCallArgumentsDoneEvent {
2888 pub arguments: String,
2890 pub item_id: String,
2892 pub output_index: i64,
2894 pub sequence_number: i64,
2896 #[serde(rename = "type")]
2898 pub type_: String,
2899}
2900
2901#[derive(Debug, Clone, Serialize, Deserialize)]
2903#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2904pub struct ResponseMcpCallCompletedEvent {
2905 pub item_id: String,
2907 pub output_index: i64,
2909 pub sequence_number: i64,
2911 #[serde(rename = "type")]
2913 pub type_: String,
2914}
2915
2916#[derive(Debug, Clone, Serialize, Deserialize)]
2918#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2919pub struct ResponseMcpCallFailedEvent {
2920 pub item_id: String,
2922 pub output_index: i64,
2924 pub sequence_number: i64,
2926 #[serde(rename = "type")]
2928 pub type_: String,
2929}
2930
2931#[derive(Debug, Clone, Serialize, Deserialize)]
2933#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2934pub struct ResponseMcpCallInProgressEvent {
2935 pub item_id: String,
2937 pub output_index: i64,
2939 pub sequence_number: i64,
2941 #[serde(rename = "type")]
2943 pub type_: String,
2944}
2945
2946#[derive(Debug, Clone, Serialize, Deserialize)]
2948#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2949pub struct ResponseMcpListToolsCompletedEvent {
2950 pub item_id: String,
2952 pub output_index: i64,
2954 pub sequence_number: i64,
2956 #[serde(rename = "type")]
2958 pub type_: String,
2959}
2960
2961#[derive(Debug, Clone, Serialize, Deserialize)]
2963#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2964pub struct ResponseMcpListToolsFailedEvent {
2965 pub item_id: String,
2967 pub output_index: i64,
2969 pub sequence_number: i64,
2971 #[serde(rename = "type")]
2973 pub type_: String,
2974}
2975
2976#[derive(Debug, Clone, Serialize, Deserialize)]
2978#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2979pub struct ResponseMcpListToolsInProgressEvent {
2980 pub item_id: String,
2982 pub output_index: i64,
2984 pub sequence_number: i64,
2986 #[serde(rename = "type")]
2988 pub type_: String,
2989}
2990
2991#[derive(Debug, Clone, Serialize, Deserialize)]
2993#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
2994pub struct ResponseOutputItemDoneEvent {
2995 pub item: ResponseOutputItem,
2997 pub output_index: i64,
2999 pub sequence_number: i64,
3001 #[serde(rename = "type")]
3003 pub type_: String,
3004}
3005
3006pub type Content = serde_json::Value;
3007
3008#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
3009#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3010#[non_exhaustive]
3011pub enum ResponseOutputMessageStatus {
3012 #[serde(rename = "in_progress")]
3013 InProgress,
3014 #[serde(rename = "completed")]
3015 Completed,
3016 #[serde(rename = "incomplete")]
3017 Incomplete,
3018}
3019
3020#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
3021#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3022#[non_exhaustive]
3023pub enum ResponseOutputMessagePhase {
3024 #[serde(rename = "commentary")]
3025 Commentary,
3026 #[serde(rename = "final_answer")]
3027 FinalAnswer,
3028}
3029
3030#[derive(Debug, Clone, Serialize, Deserialize)]
3032#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3033pub struct ResponseOutputMessage {
3034 pub id: String,
3036 pub content: Vec<ReasoningItemContent>,
3038 pub role: String,
3040 pub status: ResponseOutputMessageStatus,
3042 #[serde(rename = "type")]
3044 pub type_: String,
3045 #[serde(skip_serializing_if = "Option::is_none", default)]
3047 pub phase: Option<ResponseOutputMessagePhase>,
3048}
3049
3050#[derive(Debug, Clone, Serialize, Deserialize)]
3052#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3053pub struct ResponseOutputRefusal {
3054 pub refusal: String,
3056 #[serde(rename = "type")]
3058 pub type_: String,
3059}
3060
3061#[derive(Debug, Clone, Serialize, Deserialize)]
3063#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3064pub struct AnnotationFileCitation {
3065 pub file_id: String,
3067 pub filename: String,
3069 pub index: i64,
3071 #[serde(rename = "type")]
3073 pub type_: String,
3074}
3075
3076#[derive(Debug, Clone, Serialize, Deserialize)]
3078#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3079pub struct AnnotationURLCitation {
3080 pub end_index: i64,
3082 pub start_index: i64,
3084 pub title: String,
3086 #[serde(rename = "type")]
3088 pub type_: String,
3089 pub url: String,
3091}
3092
3093#[derive(Debug, Clone, Serialize, Deserialize)]
3095#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3096pub struct AnnotationContainerFileCitation {
3097 pub container_id: String,
3099 pub end_index: i64,
3101 pub file_id: String,
3103 pub filename: String,
3105 pub start_index: i64,
3107 #[serde(rename = "type")]
3109 pub type_: String,
3110}
3111
3112#[derive(Debug, Clone, Serialize, Deserialize)]
3114#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3115pub struct AnnotationFilePath {
3116 pub file_id: String,
3118 pub index: i64,
3120 #[serde(rename = "type")]
3122 pub type_: String,
3123}
3124
3125pub type Annotation = serde_json::Value;
3126
3127#[derive(Debug, Clone, Serialize, Deserialize)]
3129#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3130pub struct LogprobTopLogprob {
3131 pub token: String,
3132 pub bytes: Vec<i64>,
3133 pub logprob: f64,
3134}
3135
3136#[derive(Debug, Clone, Serialize, Deserialize)]
3138#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3139pub struct Logprob {
3140 pub token: String,
3141 pub bytes: Vec<i64>,
3142 pub logprob: f64,
3143 pub top_logprobs: Vec<LogprobTopLogprob>,
3144}
3145
3146#[derive(Debug, Clone, Serialize, Deserialize)]
3148#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3149pub struct ResponseOutputText {
3150 pub annotations: Vec<Annotation>,
3152 pub text: String,
3154 #[serde(rename = "type")]
3156 pub type_: String,
3157 #[serde(skip_serializing_if = "Option::is_none", default)]
3158 pub logprobs: Option<Vec<Logprob>>,
3159}
3160
3161#[derive(Debug, Clone, Serialize, Deserialize)]
3163#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3164pub struct ResponseOutputTextAnnotationAddedEvent {
3165 pub annotation: serde_json::Value,
3167 pub annotation_index: i64,
3169 pub content_index: i64,
3171 pub item_id: String,
3173 pub output_index: i64,
3175 pub sequence_number: i64,
3177 #[serde(rename = "type")]
3179 pub type_: String,
3180}
3181
3182pub type Variables = serde_json::Value;
3183
3184#[derive(Debug, Clone, Serialize, Deserialize)]
3186#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3187pub struct ResponsePrompt {
3188 pub id: String,
3190 #[serde(skip_serializing_if = "Option::is_none", default)]
3192 pub variables: Option<std::collections::HashMap<String, Variables>>,
3193 #[serde(skip_serializing_if = "Option::is_none", default)]
3195 pub version: Option<String>,
3196}
3197
3198#[derive(Debug, Clone, Serialize, Deserialize)]
3200#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3201pub struct ResponseQueuedEvent {
3202 pub response: Response,
3204 pub sequence_number: i64,
3206 #[serde(rename = "type")]
3208 pub type_: String,
3209}
3210
3211#[derive(Debug, Clone, Serialize, Deserialize)]
3213#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3214pub struct ReasoningItemSummary {
3215 pub text: String,
3217 #[serde(rename = "type")]
3219 pub type_: String,
3220}
3221
3222#[derive(Debug, Clone, Serialize, Deserialize)]
3224#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3225pub struct ReasoningItemContent {
3226 pub text: String,
3228 #[serde(rename = "type")]
3230 pub type_: String,
3231}
3232
3233#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
3234#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3235#[non_exhaustive]
3236pub enum ResponseReasoningItemStatus {
3237 #[serde(rename = "in_progress")]
3238 InProgress,
3239 #[serde(rename = "completed")]
3240 Completed,
3241 #[serde(rename = "incomplete")]
3242 Incomplete,
3243}
3244
3245#[derive(Debug, Clone, Serialize, Deserialize)]
3247#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3248pub struct ResponseReasoningItem {
3249 pub id: String,
3251 pub summary: Vec<ReasoningItemSummary>,
3253 #[serde(rename = "type")]
3255 pub type_: String,
3256 #[serde(skip_serializing_if = "Option::is_none", default)]
3258 pub content: Option<Vec<ReasoningItemContent>>,
3259 #[serde(skip_serializing_if = "Option::is_none", default)]
3261 pub encrypted_content: Option<String>,
3262 #[serde(skip_serializing_if = "Option::is_none", default)]
3264 pub status: Option<ResponseReasoningItemStatus>,
3265}
3266
3267#[derive(Debug, Clone, Serialize, Deserialize)]
3269#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3270pub struct ReasoningSummaryPart {
3271 pub text: String,
3273 #[serde(rename = "type")]
3275 pub type_: String,
3276}
3277
3278#[derive(Debug, Clone, Serialize, Deserialize)]
3280#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3281pub struct ResponseReasoningSummaryPartAddedEvent {
3282 pub item_id: String,
3284 pub output_index: i64,
3286 pub part: ReasoningSummaryPart,
3288 pub sequence_number: i64,
3290 pub summary_index: i64,
3292 #[serde(rename = "type")]
3294 pub type_: String,
3295}
3296
3297#[derive(Debug, Clone, Serialize, Deserialize)]
3299#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3300pub struct ResponseReasoningSummaryPartDoneEvent {
3301 pub item_id: String,
3303 pub output_index: i64,
3305 pub part: ReasoningSummaryPart,
3307 pub sequence_number: i64,
3309 pub summary_index: i64,
3311 #[serde(rename = "type")]
3313 pub type_: String,
3314}
3315
3316#[derive(Debug, Clone, Serialize, Deserialize)]
3318#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3319pub struct ResponseReasoningSummaryTextDoneEvent {
3320 pub item_id: String,
3322 pub output_index: i64,
3324 pub sequence_number: i64,
3326 pub summary_index: i64,
3328 pub text: String,
3330 #[serde(rename = "type")]
3332 pub type_: String,
3333}
3334
3335#[derive(Debug, Clone, Serialize, Deserialize)]
3337#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3338pub struct ResponseReasoningTextDoneEvent {
3339 pub content_index: i64,
3341 pub item_id: String,
3343 pub output_index: i64,
3345 pub sequence_number: i64,
3347 pub text: String,
3349 #[serde(rename = "type")]
3351 pub type_: String,
3352}
3353
3354#[derive(Debug, Clone, Serialize, Deserialize)]
3356#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3357pub struct ResponseRefusalDeltaEvent {
3358 pub content_index: i64,
3360 pub delta: String,
3362 pub item_id: String,
3364 pub output_index: i64,
3366 pub sequence_number: i64,
3368 #[serde(rename = "type")]
3370 pub type_: String,
3371}
3372
3373#[derive(Debug, Clone, Serialize, Deserialize)]
3375#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3376pub struct ResponseRefusalDoneEvent {
3377 pub content_index: i64,
3379 pub item_id: String,
3381 pub output_index: i64,
3383 pub refusal: String,
3385 pub sequence_number: i64,
3387 #[serde(rename = "type")]
3389 pub type_: String,
3390}
3391
3392#[derive(Debug, Clone, Serialize, Deserialize)]
3393#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3394pub struct ResponseRetrieveParamsBase {
3395 #[serde(skip_serializing_if = "Option::is_none", default)]
3397 pub include: Option<Vec<ResponseIncludable>>,
3398 #[serde(skip_serializing_if = "Option::is_none", default)]
3400 pub include_obfuscation: Option<bool>,
3401 #[serde(skip_serializing_if = "Option::is_none", default)]
3403 pub starting_after: Option<i64>,
3404}
3405
3406pub type ResponseRetrieveParams = serde_json::Value;
3407
3408#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
3409#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3410#[non_exhaustive]
3411pub enum ResponseStatus {
3412 #[serde(rename = "completed")]
3413 Completed,
3414 #[serde(rename = "failed")]
3415 Failed,
3416 #[serde(rename = "in_progress")]
3417 InProgress,
3418 #[serde(rename = "cancelled")]
3419 Cancelled,
3420 #[serde(rename = "queued")]
3421 Queued,
3422 #[serde(rename = "incomplete")]
3423 Incomplete,
3424}
3425
3426#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
3427#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3428#[non_exhaustive]
3429pub enum ResponseTextConfigVerbosity {
3430 #[serde(rename = "low")]
3431 Low,
3432 #[serde(rename = "medium")]
3433 Medium,
3434 #[serde(rename = "high")]
3435 High,
3436}
3437
3438#[derive(Debug, Clone, Serialize, Deserialize)]
3440#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3441pub struct ResponseTextDoneEvent {
3442 pub content_index: i64,
3444 pub item_id: String,
3446 pub logprobs: Vec<Logprob>,
3448 pub output_index: i64,
3450 pub sequence_number: i64,
3452 pub text: String,
3454 #[serde(rename = "type")]
3456 pub type_: String,
3457}
3458
3459#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
3460#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3461#[non_exhaustive]
3462pub enum ResponseToolSearchCallExecution {
3463 #[serde(rename = "server")]
3464 Server,
3465 #[serde(rename = "client")]
3466 Client,
3467}
3468
3469#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
3470#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3471#[non_exhaustive]
3472pub enum ResponseToolSearchCallStatus {
3473 #[serde(rename = "in_progress")]
3474 InProgress,
3475 #[serde(rename = "completed")]
3476 Completed,
3477 #[serde(rename = "incomplete")]
3478 Incomplete,
3479}
3480
3481#[derive(Debug, Clone, Serialize, Deserialize)]
3482#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3483pub struct ResponseToolSearchCall {
3484 pub id: String,
3486 pub arguments: serde_json::Value,
3488 #[serde(skip_serializing_if = "Option::is_none", default)]
3490 pub call_id: Option<String>,
3491 pub execution: ResponseToolSearchCallExecution,
3493 pub status: ResponseToolSearchCallStatus,
3495 #[serde(rename = "type")]
3497 pub type_: String,
3498 #[serde(skip_serializing_if = "Option::is_none", default)]
3500 pub created_by: Option<String>,
3501}
3502
3503#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
3504#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3505#[non_exhaustive]
3506pub enum ResponseToolSearchOutputItemExecution {
3507 #[serde(rename = "server")]
3508 Server,
3509 #[serde(rename = "client")]
3510 Client,
3511}
3512
3513#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
3514#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3515#[non_exhaustive]
3516pub enum ResponseToolSearchOutputItemStatus {
3517 #[serde(rename = "in_progress")]
3518 InProgress,
3519 #[serde(rename = "completed")]
3520 Completed,
3521 #[serde(rename = "incomplete")]
3522 Incomplete,
3523}
3524
3525#[derive(Debug, Clone, Serialize, Deserialize)]
3526#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3527pub struct ResponseToolSearchOutputItem {
3528 pub id: String,
3530 #[serde(skip_serializing_if = "Option::is_none", default)]
3532 pub call_id: Option<String>,
3533 pub execution: ResponseToolSearchOutputItemExecution,
3535 pub status: ResponseToolSearchOutputItemStatus,
3537 pub tools: Vec<Tool>,
3539 #[serde(rename = "type")]
3541 pub type_: String,
3542 #[serde(skip_serializing_if = "Option::is_none", default)]
3544 pub created_by: Option<String>,
3545}
3546
3547#[derive(Debug, Clone, Serialize, Deserialize)]
3549#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3550pub struct ResponseWebSearchCallCompletedEvent {
3551 pub item_id: String,
3553 pub output_index: i64,
3555 pub sequence_number: i64,
3557 #[serde(rename = "type")]
3559 pub type_: String,
3560}
3561
3562#[derive(Debug, Clone, Serialize, Deserialize)]
3564#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3565pub struct ResponseWebSearchCallInProgressEvent {
3566 pub item_id: String,
3568 pub output_index: i64,
3570 pub sequence_number: i64,
3572 #[serde(rename = "type")]
3574 pub type_: String,
3575}
3576
3577#[derive(Debug, Clone, Serialize, Deserialize)]
3579#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3580pub struct ResponseWebSearchCallSearchingEvent {
3581 pub item_id: String,
3583 pub output_index: i64,
3585 pub sequence_number: i64,
3587 #[serde(rename = "type")]
3589 pub type_: String,
3590}
3591
3592#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
3593#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3594#[non_exhaustive]
3595pub enum ResponsesClientEventPromptCacheRetention {
3596 #[serde(rename = "in-memory")]
3597 InMemory,
3598 #[serde(rename = "24h")]
3599 V24h,
3600}
3601
3602#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
3603#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3604#[non_exhaustive]
3605pub enum ResponsesClientEventServiceTier {
3606 #[serde(rename = "auto")]
3607 Auto,
3608 #[serde(rename = "default")]
3609 Default,
3610 #[serde(rename = "flex")]
3611 Flex,
3612 #[serde(rename = "scale")]
3613 Scale,
3614 #[serde(rename = "priority")]
3615 Priority,
3616}
3617
3618#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
3619#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3620#[non_exhaustive]
3621pub enum ResponsesClientEventTruncation {
3622 #[serde(rename = "auto")]
3623 Auto,
3624 #[serde(rename = "disabled")]
3625 Disabled,
3626}
3627
3628#[derive(Debug, Clone, Serialize, Deserialize)]
3629#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3630pub struct ResponsesClientEvent {
3631 #[serde(rename = "type")]
3633 pub type_: String,
3634 #[serde(skip_serializing_if = "Option::is_none", default)]
3636 pub background: Option<bool>,
3637 #[serde(skip_serializing_if = "Option::is_none", default)]
3639 pub context_management: Option<Vec<ContextManagement>>,
3640 #[serde(skip_serializing_if = "Option::is_none", default)]
3642 pub conversation: Option<Conversation>,
3643 #[serde(skip_serializing_if = "Option::is_none", default)]
3645 pub include: Option<Vec<ResponseIncludable>>,
3646 #[serde(skip_serializing_if = "Option::is_none", default)]
3648 pub input: Option<String>,
3649 #[serde(skip_serializing_if = "Option::is_none", default)]
3651 pub instructions: Option<String>,
3652 #[serde(skip_serializing_if = "Option::is_none", default)]
3654 pub max_output_tokens: Option<i64>,
3655 #[serde(skip_serializing_if = "Option::is_none", default)]
3657 pub max_tool_calls: Option<i64>,
3658 #[serde(skip_serializing_if = "Option::is_none", default)]
3660 pub metadata: Option<serde_json::Value>,
3661 #[serde(skip_serializing_if = "Option::is_none", default)]
3663 pub model: Option<serde_json::Value>,
3664 #[serde(skip_serializing_if = "Option::is_none", default)]
3666 pub parallel_tool_calls: Option<bool>,
3667 #[serde(skip_serializing_if = "Option::is_none", default)]
3669 pub previous_response_id: Option<String>,
3670 #[serde(skip_serializing_if = "Option::is_none", default)]
3672 pub prompt: Option<ResponsePrompt>,
3673 #[serde(skip_serializing_if = "Option::is_none", default)]
3675 pub prompt_cache_key: Option<String>,
3676 #[serde(skip_serializing_if = "Option::is_none", default)]
3678 pub prompt_cache_retention: Option<ResponsesClientEventPromptCacheRetention>,
3679 #[serde(skip_serializing_if = "Option::is_none", default)]
3681 pub reasoning: Option<serde_json::Value>,
3682 #[serde(skip_serializing_if = "Option::is_none", default)]
3684 pub safety_identifier: Option<String>,
3685 #[serde(skip_serializing_if = "Option::is_none", default)]
3687 pub service_tier: Option<ResponsesClientEventServiceTier>,
3688 #[serde(skip_serializing_if = "Option::is_none", default)]
3690 pub store: Option<bool>,
3691 #[serde(skip_serializing_if = "Option::is_none", default)]
3693 pub stream: Option<bool>,
3694 #[serde(skip_serializing_if = "Option::is_none", default)]
3696 pub stream_options: Option<StreamOptions>,
3697 #[serde(skip_serializing_if = "Option::is_none", default)]
3699 pub temperature: Option<f64>,
3700 #[serde(skip_serializing_if = "Option::is_none", default)]
3702 pub text: Option<ResponseTextConfig>,
3703 #[serde(skip_serializing_if = "Option::is_none", default)]
3705 pub tool_choice: Option<ToolChoice>,
3706 #[serde(skip_serializing_if = "Option::is_none", default)]
3708 pub tools: Option<Vec<Tool>>,
3709 #[serde(skip_serializing_if = "Option::is_none", default)]
3711 pub top_logprobs: Option<i64>,
3712 #[serde(skip_serializing_if = "Option::is_none", default)]
3714 pub top_p: Option<f64>,
3715 #[serde(skip_serializing_if = "Option::is_none", default)]
3717 pub truncation: Option<ResponsesClientEventTruncation>,
3718 #[serde(skip_serializing_if = "Option::is_none", default)]
3720 pub user: Option<String>,
3721}
3722
3723pub type ResponsesServerEvent = serde_json::Value;
3724
3725#[derive(Debug, Clone, Serialize, Deserialize)]
3726#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3727pub struct SkillReference {
3728 pub skill_id: String,
3730 #[serde(rename = "type")]
3732 pub type_: String,
3733 #[serde(skip_serializing_if = "Option::is_none", default)]
3735 pub version: Option<String>,
3736}
3737
3738#[derive(Debug, Clone, Serialize, Deserialize)]
3740#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3741pub struct McpAllowedToolsMcpToolFilter {
3742 #[serde(skip_serializing_if = "Option::is_none", default)]
3744 pub read_only: Option<bool>,
3745 #[serde(skip_serializing_if = "Option::is_none", default)]
3747 pub tool_names: Option<Vec<String>>,
3748}
3749
3750pub type McpAllowedTools = serde_json::Value;
3751
3752#[derive(Debug, Clone, Serialize, Deserialize)]
3754#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3755pub struct McpRequireApprovalMcpToolApprovalFilterAlways {
3756 #[serde(skip_serializing_if = "Option::is_none", default)]
3758 pub read_only: Option<bool>,
3759 #[serde(skip_serializing_if = "Option::is_none", default)]
3761 pub tool_names: Option<Vec<String>>,
3762}
3763
3764#[derive(Debug, Clone, Serialize, Deserialize)]
3766#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3767pub struct McpRequireApprovalMcpToolApprovalFilterNever {
3768 #[serde(skip_serializing_if = "Option::is_none", default)]
3770 pub read_only: Option<bool>,
3771 #[serde(skip_serializing_if = "Option::is_none", default)]
3773 pub tool_names: Option<Vec<String>>,
3774}
3775
3776#[derive(Debug, Clone, Serialize, Deserialize)]
3778#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3779pub struct McpRequireApprovalMcpToolApprovalFilter {
3780 #[serde(skip_serializing_if = "Option::is_none", default)]
3782 pub always: Option<McpRequireApprovalMcpToolApprovalFilterAlways>,
3783 #[serde(skip_serializing_if = "Option::is_none", default)]
3785 pub never: Option<McpRequireApprovalMcpToolApprovalFilterNever>,
3786}
3787
3788#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
3789#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3790#[non_exhaustive]
3791pub enum McpRequireApproval {
3792 Always,
3793 Never,
3794}
3795
3796#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
3797#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3798#[non_exhaustive]
3799pub enum McpConnectorId {
3800 #[serde(rename = "connector_dropbox")]
3801 ConnectorDropbox,
3802 #[serde(rename = "connector_gmail")]
3803 ConnectorGmail,
3804 #[serde(rename = "connector_googlecalendar")]
3805 ConnectorGooglecalendar,
3806 #[serde(rename = "connector_googledrive")]
3807 ConnectorGoogledrive,
3808 #[serde(rename = "connector_microsoftteams")]
3809 ConnectorMicrosoftteams,
3810 #[serde(rename = "connector_outlookcalendar")]
3811 ConnectorOutlookcalendar,
3812 #[serde(rename = "connector_outlookemail")]
3813 ConnectorOutlookemail,
3814 #[serde(rename = "connector_sharepoint")]
3815 ConnectorSharepoint,
3816}
3817
3818#[derive(Debug, Clone, Serialize, Deserialize)]
3820#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3821pub struct Mcp {
3822 pub server_label: String,
3824 #[serde(rename = "type")]
3826 pub type_: String,
3827 #[serde(skip_serializing_if = "Option::is_none", default)]
3829 pub allowed_tools: Option<McpAllowedTools>,
3830 #[serde(skip_serializing_if = "Option::is_none", default)]
3832 pub authorization: Option<String>,
3833 #[serde(skip_serializing_if = "Option::is_none", default)]
3835 pub connector_id: Option<McpConnectorId>,
3836 #[serde(skip_serializing_if = "Option::is_none", default)]
3838 pub defer_loading: Option<bool>,
3839 #[serde(skip_serializing_if = "Option::is_none", default)]
3841 pub headers: Option<std::collections::HashMap<String, String>>,
3842 #[serde(skip_serializing_if = "Option::is_none", default)]
3844 pub require_approval: Option<McpRequireApproval>,
3845 #[serde(skip_serializing_if = "Option::is_none", default)]
3847 pub server_description: Option<String>,
3848 #[serde(skip_serializing_if = "Option::is_none", default)]
3850 pub server_url: Option<String>,
3851}
3852
3853pub type CodeInterpreterContainerCodeInterpreterToolAutoNetworkPolicy = serde_json::Value;
3854
3855#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
3856#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3857#[non_exhaustive]
3858pub enum CodeInterpreterContainerCodeInterpreterToolAutoMemoryLimit {
3859 #[serde(rename = "1g")]
3860 V1g,
3861 #[serde(rename = "4g")]
3862 V4g,
3863 #[serde(rename = "16g")]
3864 V16g,
3865 #[serde(rename = "64g")]
3866 V64g,
3867}
3868
3869#[derive(Debug, Clone, Serialize, Deserialize)]
3871#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3872pub struct CodeInterpreterContainerCodeInterpreterToolAuto {
3873 #[serde(rename = "type")]
3875 pub type_: String,
3876 #[serde(skip_serializing_if = "Option::is_none", default)]
3878 pub file_ids: Option<Vec<String>>,
3879 #[serde(skip_serializing_if = "Option::is_none", default)]
3881 pub memory_limit: Option<CodeInterpreterContainerCodeInterpreterToolAutoMemoryLimit>,
3882 #[serde(skip_serializing_if = "Option::is_none", default)]
3884 pub network_policy: Option<CodeInterpreterContainerCodeInterpreterToolAutoNetworkPolicy>,
3885}
3886
3887pub type CodeInterpreterContainer = serde_json::Value;
3888
3889#[derive(Debug, Clone, Serialize, Deserialize)]
3891#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3892pub struct CodeInterpreter {
3893 pub container: CodeInterpreterContainer,
3895 #[serde(rename = "type")]
3897 pub type_: String,
3898}
3899
3900#[derive(Debug, Clone, Serialize, Deserialize)]
3902#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3903pub struct ImageGenerationInputImageMask {
3904 #[serde(skip_serializing_if = "Option::is_none", default)]
3906 pub file_id: Option<String>,
3907 #[serde(skip_serializing_if = "Option::is_none", default)]
3909 pub image_url: Option<String>,
3910}
3911
3912#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
3913#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3914#[non_exhaustive]
3915pub enum ImageGenerationAction {
3916 #[serde(rename = "generate")]
3917 Generate,
3918 #[serde(rename = "edit")]
3919 Edit,
3920 #[serde(rename = "auto")]
3921 Auto,
3922}
3923
3924#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
3925#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3926#[non_exhaustive]
3927pub enum ImageGenerationBackground {
3928 #[serde(rename = "transparent")]
3929 Transparent,
3930 #[serde(rename = "opaque")]
3931 Opaque,
3932 #[serde(rename = "auto")]
3933 Auto,
3934}
3935
3936#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
3937#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3938#[non_exhaustive]
3939pub enum ImageGenerationInputFidelity {
3940 #[serde(rename = "high")]
3941 High,
3942 #[serde(rename = "low")]
3943 Low,
3944}
3945
3946#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
3947#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3948#[non_exhaustive]
3949pub enum ImageGenerationModeration {
3950 #[serde(rename = "auto")]
3951 Auto,
3952 #[serde(rename = "low")]
3953 Low,
3954}
3955
3956#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
3957#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3958#[non_exhaustive]
3959pub enum ImageGenerationOutputFormat {
3960 #[serde(rename = "png")]
3961 Png,
3962 #[serde(rename = "webp")]
3963 Webp,
3964 #[serde(rename = "jpeg")]
3965 Jpeg,
3966}
3967
3968#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
3969#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3970#[non_exhaustive]
3971pub enum ImageGenerationQuality {
3972 #[serde(rename = "low")]
3973 Low,
3974 #[serde(rename = "medium")]
3975 Medium,
3976 #[serde(rename = "high")]
3977 High,
3978 #[serde(rename = "auto")]
3979 Auto,
3980}
3981
3982#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
3983#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3984#[non_exhaustive]
3985pub enum ImageGenerationSize {
3986 #[serde(rename = "1024x1024")]
3987 V1024x1024,
3988 #[serde(rename = "1024x1536")]
3989 V1024x1536,
3990 #[serde(rename = "1536x1024")]
3991 V1536x1024,
3992 #[serde(rename = "auto")]
3993 Auto,
3994}
3995
3996#[derive(Debug, Clone, Serialize, Deserialize)]
3998#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
3999pub struct ImageGeneration {
4000 #[serde(rename = "type")]
4002 pub type_: String,
4003 #[serde(skip_serializing_if = "Option::is_none", default)]
4005 pub action: Option<ImageGenerationAction>,
4006 #[serde(skip_serializing_if = "Option::is_none", default)]
4008 pub background: Option<ImageGenerationBackground>,
4009 #[serde(skip_serializing_if = "Option::is_none", default)]
4011 pub input_fidelity: Option<ImageGenerationInputFidelity>,
4012 #[serde(skip_serializing_if = "Option::is_none", default)]
4014 pub input_image_mask: Option<ImageGenerationInputImageMask>,
4015 #[serde(skip_serializing_if = "Option::is_none", default)]
4017 pub model: Option<String>,
4018 #[serde(skip_serializing_if = "Option::is_none", default)]
4020 pub moderation: Option<ImageGenerationModeration>,
4021 #[serde(skip_serializing_if = "Option::is_none", default)]
4023 pub output_compression: Option<i64>,
4024 #[serde(skip_serializing_if = "Option::is_none", default)]
4026 pub output_format: Option<ImageGenerationOutputFormat>,
4027 #[serde(skip_serializing_if = "Option::is_none", default)]
4029 pub partial_images: Option<i64>,
4030 #[serde(skip_serializing_if = "Option::is_none", default)]
4032 pub quality: Option<ImageGenerationQuality>,
4033 #[serde(skip_serializing_if = "Option::is_none", default)]
4035 pub size: Option<ImageGenerationSize>,
4036}
4037
4038#[derive(Debug, Clone, Serialize, Deserialize)]
4040#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
4041pub struct LocalShell {
4042 #[serde(rename = "type")]
4044 pub type_: String,
4045}
4046
4047#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
4048#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
4049#[non_exhaustive]
4050pub enum ToolChoiceAllowedMode {
4051 #[serde(rename = "auto")]
4052 Auto,
4053 #[serde(rename = "required")]
4054 Required,
4055}
4056
4057#[derive(Debug, Clone, Serialize, Deserialize)]
4059#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
4060pub struct ToolChoiceAllowed {
4061 pub mode: ToolChoiceAllowedMode,
4063 pub tools: Vec<std::collections::HashMap<String, serde_json::Value>>,
4065 #[serde(rename = "type")]
4067 pub type_: String,
4068}
4069
4070#[derive(Debug, Clone, Serialize, Deserialize)]
4072#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
4073pub struct ToolChoiceApplyPatch {
4074 #[serde(rename = "type")]
4076 pub type_: String,
4077}
4078
4079#[derive(Debug, Clone, Serialize, Deserialize)]
4081#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
4082pub struct ToolChoiceCustom {
4083 pub name: String,
4085 #[serde(rename = "type")]
4087 pub type_: String,
4088}
4089
4090#[derive(Debug, Clone, Serialize, Deserialize)]
4092#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
4093pub struct ToolChoiceMcp {
4094 pub server_label: String,
4096 #[serde(rename = "type")]
4098 pub type_: String,
4099 #[serde(skip_serializing_if = "Option::is_none", default)]
4101 pub name: Option<String>,
4102}
4103
4104#[derive(Debug, Clone, Serialize, Deserialize)]
4106#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
4107pub struct ToolChoiceShell {
4108 #[serde(rename = "type")]
4110 pub type_: String,
4111}
4112
4113#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
4114#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
4115#[non_exhaustive]
4116pub enum ToolChoiceTypesType {
4117 #[serde(rename = "file_search")]
4118 FileSearch,
4119 #[serde(rename = "web_search_preview")]
4120 WebSearchPreview,
4121 #[serde(rename = "computer")]
4122 Computer,
4123 #[serde(rename = "computer_use_preview")]
4124 ComputerUsePreview,
4125 #[serde(rename = "computer_use")]
4126 ComputerUse,
4127 #[serde(rename = "web_search_preview_2025_03_11")]
4128 WebSearchPreview20250311,
4129 #[serde(rename = "image_generation")]
4130 ImageGeneration,
4131 #[serde(rename = "code_interpreter")]
4132 CodeInterpreter,
4133}
4134
4135#[derive(Debug, Clone, Serialize, Deserialize)]
4137#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
4138pub struct ToolChoiceTypes {
4139 #[serde(rename = "type")]
4141 pub type_: ToolChoiceTypesType,
4142}
4143
4144#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
4145#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
4146#[non_exhaustive]
4147pub enum ToolSearchToolExecution {
4148 #[serde(rename = "server")]
4149 Server,
4150 #[serde(rename = "client")]
4151 Client,
4152}
4153
4154#[derive(Debug, Clone, Serialize, Deserialize)]
4156#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
4157pub struct ToolSearchTool {
4158 #[serde(rename = "type")]
4160 pub type_: String,
4161 #[serde(skip_serializing_if = "Option::is_none", default)]
4163 pub description: Option<String>,
4164 #[serde(skip_serializing_if = "Option::is_none", default)]
4166 pub execution: Option<ToolSearchToolExecution>,
4167 #[serde(skip_serializing_if = "Option::is_none", default)]
4169 pub parameters: Option<serde_json::Value>,
4170}
4171
4172#[derive(Debug, Clone, Serialize, Deserialize)]
4174#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
4175pub struct UserLocation {
4176 #[serde(rename = "type")]
4178 pub type_: String,
4179 #[serde(skip_serializing_if = "Option::is_none", default)]
4181 pub city: Option<String>,
4182 #[serde(skip_serializing_if = "Option::is_none", default)]
4184 pub country: Option<String>,
4185 #[serde(skip_serializing_if = "Option::is_none", default)]
4187 pub region: Option<String>,
4188 #[serde(skip_serializing_if = "Option::is_none", default)]
4190 pub timezone: Option<String>,
4191}
4192
4193#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
4194#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
4195#[non_exhaustive]
4196pub enum WebSearchPreviewToolType {
4197 #[serde(rename = "web_search_preview")]
4198 WebSearchPreview,
4199 #[serde(rename = "web_search_preview_2025_03_11")]
4200 WebSearchPreview20250311,
4201}
4202
4203#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
4204#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
4205#[non_exhaustive]
4206pub enum WebSearchPreviewToolSearchContextSize {
4207 #[serde(rename = "low")]
4208 Low,
4209 #[serde(rename = "medium")]
4210 Medium,
4211 #[serde(rename = "high")]
4212 High,
4213}
4214
4215#[derive(Debug, Clone, Serialize, Deserialize)]
4217#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
4218pub struct WebSearchPreviewTool {
4219 #[serde(rename = "type")]
4221 pub type_: WebSearchPreviewToolType,
4222 #[serde(skip_serializing_if = "Option::is_none", default)]
4223 pub search_content_types: Option<Vec<serde_json::Value>>,
4224 #[serde(skip_serializing_if = "Option::is_none", default)]
4226 pub search_context_size: Option<WebSearchPreviewToolSearchContextSize>,
4227 #[serde(skip_serializing_if = "Option::is_none", default)]
4229 pub user_location: Option<UserLocation>,
4230}
4231
4232#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
4233#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
4234#[non_exhaustive]
4235pub enum WebSearchToolType {
4236 #[serde(rename = "web_search")]
4237 WebSearch,
4238 #[serde(rename = "web_search_2025_08_26")]
4239 WebSearch20250826,
4240}
4241
4242#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
4243#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
4244#[non_exhaustive]
4245pub enum WebSearchToolSearchContextSize {
4246 #[serde(rename = "low")]
4247 Low,
4248 #[serde(rename = "medium")]
4249 Medium,
4250 #[serde(rename = "high")]
4251 High,
4252}
4253
4254#[derive(Debug, Clone, Serialize, Deserialize)]
4256#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
4257pub struct WebSearchTool {
4258 #[serde(rename = "type")]
4260 pub type_: WebSearchToolType,
4261 #[serde(skip_serializing_if = "Option::is_none", default)]
4263 pub filters: Option<Filters>,
4264 #[serde(skip_serializing_if = "Option::is_none", default)]
4266 pub search_context_size: Option<WebSearchToolSearchContextSize>,
4267 #[serde(skip_serializing_if = "Option::is_none", default)]
4269 pub user_location: Option<UserLocation>,
4270}