rust_genai_types/
operations.rs1use serde::{Deserialize, Serialize};
2use serde_json::Value;
3
4use crate::http::HttpOptions;
5
6#[derive(Debug, Clone, Serialize, Deserialize, Default)]
8#[serde(rename_all = "camelCase")]
9pub struct OperationError {
10 #[serde(skip_serializing_if = "Option::is_none")]
11 pub code: Option<i32>,
12 #[serde(skip_serializing_if = "Option::is_none")]
13 pub message: Option<String>,
14 #[serde(skip_serializing_if = "Option::is_none")]
15 pub details: Option<Value>,
16}
17
18#[derive(Debug, Clone, Serialize, Deserialize, Default)]
20#[serde(rename_all = "camelCase")]
21pub struct Operation {
22 #[serde(skip_serializing_if = "Option::is_none")]
23 pub name: Option<String>,
24 #[serde(skip_serializing_if = "Option::is_none")]
25 pub done: Option<bool>,
26 #[serde(skip_serializing_if = "Option::is_none")]
27 pub error: Option<OperationError>,
28 #[serde(skip_serializing_if = "Option::is_none")]
29 pub response: Option<Value>,
30 #[serde(skip_serializing_if = "Option::is_none")]
31 pub metadata: Option<Value>,
32}
33
34#[derive(Debug, Clone, Serialize, Deserialize, Default)]
36#[serde(rename_all = "camelCase")]
37pub struct GetOperationConfig {
38 #[serde(skip_serializing, skip_deserializing)]
39 pub http_options: Option<HttpOptions>,
40}
41
42#[derive(Debug, Clone, Serialize, Deserialize, Default)]
44#[serde(rename_all = "camelCase")]
45pub struct ListOperationsConfig {
46 #[serde(skip_serializing, skip_deserializing)]
47 pub http_options: Option<HttpOptions>,
48 #[serde(skip_serializing_if = "Option::is_none")]
49 pub page_size: Option<i32>,
50 #[serde(skip_serializing_if = "Option::is_none")]
51 pub page_token: Option<String>,
52 #[serde(skip_serializing_if = "Option::is_none")]
53 pub filter: Option<String>,
54}
55
56#[derive(Debug, Clone, Serialize, Deserialize, Default)]
58#[serde(rename_all = "camelCase")]
59pub struct ListOperationsResponse {
60 #[serde(skip_serializing_if = "Option::is_none")]
61 pub operations: Option<Vec<Operation>>,
62 #[serde(skip_serializing_if = "Option::is_none")]
63 pub next_page_token: Option<String>,
64}