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