vtcode_core/gemini/models/
request.rs

1use super::{Content, SystemInstruction, Tool, ToolConfig};
2use serde::{Deserialize, Serialize};
3use serde_json::Value;
4
5#[derive(Debug, Clone, Serialize, Deserialize)]
6pub struct GenerateContentRequest {
7    pub contents: Vec<Content>,
8    #[serde(skip_serializing_if = "Option::is_none")]
9    pub tools: Option<Vec<Tool>>,
10    #[serde(skip_serializing_if = "Option::is_none", rename = "toolConfig")]
11    pub tool_config: Option<ToolConfig>,
12    #[serde(skip_serializing_if = "Option::is_none", rename = "systemInstruction")]
13    pub system_instruction: Option<SystemInstruction>,
14    #[serde(skip_serializing_if = "Option::is_none", rename = "generationConfig")]
15    pub generation_config: Option<Value>,
16    #[serde(skip_serializing_if = "Option::is_none", rename = "reasoningConfig")]
17    pub reasoning_config: Option<Value>,
18}