apollo_client/open/
responses.rs

1//! open api responses.
2
3use chrono::{DateTime, Local};
4use serde::{Deserialize, Serialize};
5
6macro_rules! struct_open_response_with_base_fields {
7    (
8        $(#[$enum_docs:meta])*
9        $name:ident,
10        {
11            $( ($i:ident, $t:ty) ,)*
12        }
13    ) => {
14        $(#[$enum_docs])*
15        #[derive(Clone, Debug, Serialize, Deserialize)]
16        #[serde(rename_all = "camelCase")]
17        pub struct $name {
18            $(pub $i : $t,)*
19            pub data_change_created_by: String,
20            pub data_change_last_modified_by: String,
21            pub data_change_created_by_display_name: Option<String>,
22            pub data_change_last_modified_by_display_name: Option<String>,
23            pub data_change_created_time: DateTime<Local>,
24            pub data_change_last_modified_time: DateTime<Local>,
25        }
26    };
27}
28
29macro_rules! struct_open_response_with_namespace_fields {
30    (
31        $(#[$enum_docs:meta])*
32        $name:ident,
33        {
34            $( ($i:ident, $t:ty) ,)*
35        }
36    ) => {
37        struct_open_response_with_base_fields! {
38            $(#[$enum_docs])*
39            $name,
40            {
41                (app_id, String),
42                (cluster_name, String),
43                (namespace_name, String),
44            }
45        }
46    };
47}
48
49/// Response for [crate::open::requests::OpenEnvClusterRequest].
50#[derive(Debug, Serialize, Deserialize)]
51#[serde(rename_all = "camelCase")]
52pub struct OpenEnvClusterResponse {
53    pub env: String,
54    pub clusters: Vec<String>,
55}
56
57implement_json_perform_response_for! { Vec<OpenEnvClusterResponse> }
58
59struct_open_response_with_base_fields! {
60    /// Response for [crate::open::requests::OpenAppRequest].
61    OpenAppResponse,
62    {
63        (name, String),
64        (app_id, String),
65        (org_id, String),
66        (org_name, String),
67        (owner_name, String),
68        (owner_email, String),
69    }
70}
71
72implement_json_perform_response_for! { Vec<OpenAppResponse> }
73
74struct_open_response_with_namespace_fields! {
75    /// Response for [crate::open::requests::OpenNamespaceRequest].
76    OpenNamespaceResponse,
77    {
78        (comment, Option<String>),
79        (format, String),
80        (is_public, bool),
81        (items, Vec<OpenItemResponse>),
82    }
83}
84
85implement_json_perform_response_for! { Vec<OpenNamespaceResponse> }
86
87struct_open_response_with_base_fields! {
88    /// Response for [crate::open::requests::OpenCreateItemRequest].
89    OpenItemResponse,
90    {
91        (key, String),
92        (value, String),
93        (comment, Option<String>),
94    }
95}
96
97implement_json_perform_response_for! { OpenItemResponse }
98implement_json_perform_response_for! { Vec<OpenItemResponse> }
99
100struct_open_response_with_namespace_fields! {
101    /// Response for [crate::open::requests::OpenPublishNamespaceRequest].
102    OpenPublishResponse,
103    {
104        (name, String),
105        (configurations, HashMap<String, String>),
106        (comment, Option<String>),
107    }
108}
109
110implement_json_perform_response_for! { OpenPublishResponse }
111
112struct_open_response_with_base_fields! {
113    /// Response for [crate::open::requests::OpenClusterRequest].
114    OpenClusterResponse,
115    {
116        (name, String),
117        (app_id, String),
118    }
119}
120
121implement_json_perform_response_for! { OpenClusterResponse }