Skip to main content

gproxy_protocol/claude/create_message/
response.rs

1use http::StatusCode;
2use serde::{Deserialize, Serialize};
3
4use crate::claude::create_message::types::BetaMessage;
5use crate::claude::types::{BetaErrorResponse, ClaudeResponseHeaders};
6
7/// Successful body for Claude "Create a Message" endpoint.
8pub type ResponseBody = BetaMessage;
9
10/// Full HTTP response for Claude "Create a Message" endpoint.
11#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
12#[serde(untagged)]
13#[allow(clippy::large_enum_variant)]
14pub enum ClaudeCreateMessageResponse {
15    Success {
16        /// HTTP status code returned by server (should be `200 OK`).
17        #[serde(with = "crate::claude::types::status_code_serde")]
18        stats_code: StatusCode,
19        /// Response headers.
20        headers: ClaudeResponseHeaders,
21        /// Successful body.
22        body: ResponseBody,
23    },
24    Error {
25        /// HTTP status code returned by server (typically 400/401/403/404/413/429/500/529).
26        #[serde(with = "crate::claude::types::status_code_serde")]
27        stats_code: StatusCode,
28        /// Response headers.
29        headers: ClaudeResponseHeaders,
30        /// Error body.
31        body: BetaErrorResponse,
32    },
33}