gproxy_protocol/openai/common/tools/choices/
allowed.rs1use serde::{Deserialize, Serialize};
2
3use crate::openai::common::Rest;
4
5#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
6#[serde(tag = "type")]
7#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
8pub enum ResponseAllowedTool {
9 #[serde(rename = "function")]
10 Function {
11 name: String,
12 #[serde(default, flatten)]
13 rest: Rest,
14 },
15 #[serde(rename = "custom")]
16 Custom {
17 name: String,
18 #[serde(default, flatten)]
19 rest: Rest,
20 },
21 #[serde(rename = "mcp")]
22 Mcp {
23 server_label: String,
24 #[serde(skip_serializing_if = "Option::is_none")]
25 name: Option<String>,
26 #[serde(default, flatten)]
27 rest: Rest,
28 },
29 #[serde(rename = "file_search")]
30 FileSearch {
31 #[serde(default, flatten)]
32 rest: Rest,
33 },
34 #[serde(rename = "web_search_preview")]
35 WebSearchPreview {
36 #[serde(default, flatten)]
37 rest: Rest,
38 },
39 #[serde(rename = "computer")]
40 Computer {
41 #[serde(default, flatten)]
42 rest: Rest,
43 },
44 #[serde(rename = "computer_use_preview")]
45 ComputerUsePreview {
46 #[serde(default, flatten)]
47 rest: Rest,
48 },
49 #[serde(rename = "computer_use")]
50 ComputerUse {
51 #[serde(default, flatten)]
52 rest: Rest,
53 },
54 #[serde(rename = "web_search_preview_2025_03_11")]
55 WebSearchPreview20250311 {
56 #[serde(default, flatten)]
57 rest: Rest,
58 },
59 #[serde(rename = "image_generation")]
60 ImageGeneration {
61 #[serde(default, flatten)]
62 rest: Rest,
63 },
64 #[serde(rename = "code_interpreter")]
65 CodeInterpreter {
66 #[serde(default, flatten)]
67 rest: Rest,
68 },
69 #[serde(rename = "local_shell")]
70 LocalShell {
71 #[serde(default, flatten)]
72 rest: Rest,
73 },
74 #[serde(rename = "shell")]
75 Shell {
76 #[serde(default, flatten)]
77 rest: Rest,
78 },
79 #[serde(rename = "apply_patch")]
80 ApplyPatch {
81 #[serde(default, flatten)]
82 rest: Rest,
83 },
84}