Skip to main content

gproxy_protocol/protocol/claude/common/
fallback.rs

1use serde::{Deserialize, Serialize};
2
3use super::{ClaudeModel, JsonObject, OutputConfig, Speed, ThinkingConfig};
4
5/// One entry of the request-level `fallbacks` chain (beta
6/// `server-side-fallback-2026-06-01`): a substitute model tried server-side
7/// when the requested model declines for policy reasons.
8#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
9pub struct FallbackParam {
10    pub model: ClaudeModel,
11    #[serde(skip_serializing_if = "Option::is_none")]
12    pub max_tokens: Option<u64>,
13    #[serde(skip_serializing_if = "Option::is_none")]
14    pub output_config: Option<OutputConfig>,
15    #[serde(skip_serializing_if = "Option::is_none")]
16    pub speed: Option<Speed>,
17    #[serde(skip_serializing_if = "Option::is_none")]
18    pub thinking: Option<ThinkingConfig>,
19    #[serde(default, flatten, skip_serializing_if = "JsonObject::is_empty")]
20    pub extra: JsonObject,
21}