Skip to main content

gproxy_protocol/gemini/batch/
types.rs

1use serde::{Deserialize, Serialize};
2
3use super::super::{BatchState, JsonMap, Status};
4
5#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
6#[serde(rename_all = "camelCase")]
7#[derive(gproxy_protocol_macros::WireBuilder)]
8#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
9pub struct GetBatchRequest {
10    #[serde(skip_serializing_if = "Option::is_none")]
11    pub name: Option<String>,
12    #[serde(default, flatten, skip_serializing_if = "JsonMap::is_empty")]
13    pub rest: JsonMap,
14}
15
16#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
17#[serde(rename_all = "camelCase")]
18#[derive(gproxy_protocol_macros::WireBuilder)]
19#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
20pub struct ListBatchesRequest {
21    #[serde(skip_serializing_if = "Option::is_none")]
22    pub name: Option<String>,
23    #[serde(skip_serializing_if = "Option::is_none")]
24    pub filter: Option<String>,
25    #[serde(skip_serializing_if = "Option::is_none")]
26    pub page_size: Option<i32>,
27    #[serde(skip_serializing_if = "Option::is_none")]
28    pub page_token: Option<String>,
29    #[serde(skip_serializing_if = "Option::is_none")]
30    pub return_partial_success: Option<bool>,
31    #[serde(default, flatten, skip_serializing_if = "JsonMap::is_empty")]
32    pub rest: JsonMap,
33}
34
35#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
36#[serde(rename_all = "camelCase")]
37#[derive(gproxy_protocol_macros::WireBuilder)]
38#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
39pub struct ListBatchesResponse {
40    #[serde(default, skip_serializing_if = "Vec::is_empty")]
41    pub operations: Vec<BatchOperation>,
42    #[serde(skip_serializing_if = "Option::is_none")]
43    pub next_page_token: Option<String>,
44    #[serde(default, skip_serializing_if = "Vec::is_empty")]
45    pub unreachable: Vec<String>,
46    #[serde(default, flatten, skip_serializing_if = "JsonMap::is_empty")]
47    pub rest: JsonMap,
48}
49
50pub type CancelBatchRequest = GetBatchRequest;
51pub type DeleteBatchRequest = GetBatchRequest;
52pub type CancelBatchResponse = JsonMap;
53pub type DeleteBatchResponse = JsonMap;
54pub type CancelBatchResponseBody = CancelBatchResponse;
55pub type DeleteBatchResponseBody = DeleteBatchResponse;
56
57#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
58#[serde(rename_all = "camelCase")]
59#[derive(gproxy_protocol_macros::WireBuilder)]
60#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
61pub struct BatchOperation {
62    #[serde(skip_serializing_if = "Option::is_none")]
63    pub name: Option<String>,
64    #[serde(skip_serializing_if = "Option::is_none")]
65    pub metadata: Option<JsonMap>,
66    #[serde(skip_serializing_if = "Option::is_none")]
67    pub done: Option<bool>,
68    #[serde(flatten, skip_serializing_if = "Option::is_none")]
69    pub result: Option<BatchOperationResult>,
70    #[serde(default, flatten, skip_serializing_if = "JsonMap::is_empty")]
71    pub rest: JsonMap,
72}
73
74pub type Operation = BatchOperation;
75pub type OperationResult = BatchOperationResult;
76
77#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
78#[serde(untagged)]
79#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
80pub enum BatchOperationResult {
81    Error { error: Status },
82    Response { response: JsonMap },
83}
84
85#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
86#[serde(rename_all = "camelCase")]
87#[derive(gproxy_protocol_macros::WireBuilder)]
88#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
89pub struct BatchStats {
90    #[serde(skip_serializing_if = "Option::is_none")]
91    pub request_count: Option<String>,
92    #[serde(skip_serializing_if = "Option::is_none")]
93    pub successful_request_count: Option<String>,
94    #[serde(skip_serializing_if = "Option::is_none")]
95    pub failed_request_count: Option<String>,
96    #[serde(skip_serializing_if = "Option::is_none")]
97    pub pending_request_count: Option<String>,
98    #[serde(default, flatten, skip_serializing_if = "JsonMap::is_empty")]
99    pub rest: JsonMap,
100}
101
102#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
103#[serde(rename_all = "camelCase")]
104#[derive(gproxy_protocol_macros::WireBuilder)]
105#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
106pub struct BatchResourceFields {
107    #[serde(skip_serializing_if = "Option::is_none")]
108    pub model: Option<String>,
109    #[serde(skip_serializing_if = "Option::is_none")]
110    pub name: Option<String>,
111    #[serde(skip_serializing_if = "Option::is_none")]
112    pub display_name: Option<String>,
113    #[serde(skip_serializing_if = "Option::is_none")]
114    pub create_time: Option<String>,
115    #[serde(skip_serializing_if = "Option::is_none")]
116    pub end_time: Option<String>,
117    #[serde(skip_serializing_if = "Option::is_none")]
118    pub update_time: Option<String>,
119    #[serde(skip_serializing_if = "Option::is_none")]
120    pub batch_stats: Option<BatchStats>,
121    #[serde(skip_serializing_if = "Option::is_none")]
122    pub state: Option<BatchState>,
123    #[serde(skip_serializing_if = "Option::is_none")]
124    pub priority: Option<String>,
125}