Skip to main content

rust_genai_types/
operations.rs

1use serde::{Deserialize, Serialize};
2use serde_json::Value;
3
4use crate::http::HttpOptions;
5
6/// LRO error.
7#[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/// Long-running operation.
19#[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/// Get operation config.
35#[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/// List operations config.
43#[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/// List operations response.
57#[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}