apollo_client/open/
responses.rs1use 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#[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 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 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 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 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 OpenClusterResponse,
115 {
116 (name, String),
117 (app_id, String),
118 }
119}
120
121implement_json_perform_response_for! { OpenClusterResponse }