gproxy_protocol/claude/file_list/
response.rs1use http::StatusCode;
2use serde::{Deserialize, Serialize};
3
4use crate::claude::types::{BetaErrorResponse, ClaudeResponseHeaders, FileMetadata};
5
6#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
8pub struct ResponseBody {
9 pub data: Vec<FileMetadata>,
11 #[serde(default, skip_serializing_if = "Option::is_none")]
13 pub first_id: Option<String>,
14 #[serde(default, skip_serializing_if = "Option::is_none")]
16 pub has_more: Option<bool>,
17 #[serde(default, skip_serializing_if = "Option::is_none")]
19 pub last_id: Option<String>,
20}
21
22#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
24#[serde(untagged)]
25pub enum ClaudeFileListResponse {
26 Success {
27 #[serde(with = "crate::claude::types::status_code_serde")]
28 stats_code: StatusCode,
29 headers: ClaudeResponseHeaders,
30 body: ResponseBody,
31 },
32 Error {
33 #[serde(with = "crate::claude::types::status_code_serde")]
34 stats_code: StatusCode,
35 headers: ClaudeResponseHeaders,
36 body: BetaErrorResponse,
37 },
38}