gproxy_protocol/gemini/batch/
types.rs1use 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}