Skip to main content

gproxy_protocol/gemini/model_get/
response.rs

1use http::StatusCode;
2use serde::{Deserialize, Serialize};
3
4use crate::gemini::types::{GeminiApiErrorResponse, GeminiModelInfo, GeminiResponseHeaders};
5
6/// Successful body for Gemini `models.get` endpoint.
7pub type ResponseBody = GeminiModelInfo;
8
9/// Full HTTP response for Gemini `models.get` endpoint.
10#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
11#[serde(untagged)]
12pub enum GeminiModelGetResponse {
13    Success {
14        /// HTTP status code returned by server (should be `200 OK`).
15        #[serde(with = "crate::gemini::types::status_code_serde")]
16        stats_code: StatusCode,
17        /// Response headers.
18        headers: GeminiResponseHeaders,
19        /// Successful body.
20        body: ResponseBody,
21    },
22    Error {
23        /// HTTP status code returned by server (typically non-2xx).
24        #[serde(with = "crate::gemini::types::status_code_serde")]
25        stats_code: StatusCode,
26        /// Response headers.
27        headers: GeminiResponseHeaders,
28        /// Error body.
29        body: GeminiApiErrorResponse,
30    },
31}