1use alert::Alert;
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, Serialize, Deserialize)]
5pub struct Panel {
6 #[serde(rename = "aliasColors")]
7 #[serde(skip_serializing_if = "Option::is_none")]
8 pub alias_colors: Option<AliasColors>,
9 #[serde(skip_serializing_if = "Option::is_none")]
10 pub alert: Option<Alert>,
11 #[serde(skip_serializing_if = "Option::is_none")]
12 pub bars: Option<bool>,
13 #[serde(skip_serializing_if = "Option::is_none")]
14 pub content: Option<String>,
15 #[serde(rename = "dashLength")]
16 #[serde(skip_serializing_if = "Option::is_none")]
17 pub dash_length: Option<u32>,
18 #[serde(skip_serializing_if = "Option::is_none")]
19 pub dashes: Option<bool>,
20 #[serde(skip_serializing_if = "Option::is_none")]
21 pub datasource: Option<String>,
22 #[serde(skip_serializing_if = "Option::is_none")]
23 pub fill: Option<u32>,
24 #[serde(skip_serializing_if = "Option::is_none")]
25 #[serde(rename = "fill_gradient")]
26 pub fill_gradient: Option<u32>,
27 #[serde(rename = "gridPos")]
28 #[serde(skip_serializing_if = "Option::is_none")]
29 pub grid_pos: Option<GridPos>,
30 #[serde(rename = "hiddenSeries")]
31 #[serde(skip_serializing_if = "Option::is_none")]
32 pub hidden_series: Option<bool>,
33 #[serde(skip_serializing_if = "Option::is_none")]
34 pub id: Option<u32>,
35 #[serde(skip_serializing_if = "Option::is_none")]
36 pub legend: Option<Legend>,
37 #[serde(skip_serializing_if = "Option::is_none")]
38 pub lines: Option<bool>,
39 #[serde(rename = "lineWidth")]
40 #[serde(skip_serializing_if = "Option::is_none")]
41 pub line_width: Option<u32>,
42 #[serde(rename = "nullPointMode")]
43 #[serde(skip_serializing_if = "Option::is_none")]
44 pub null_point_mode: Option<String>,
45 #[serde(skip_serializing_if = "Option::is_none")]
46 pub options: Option<Vec<DataLink>>,
47 #[serde(skip_serializing_if = "Option::is_none")]
48 pub percentage: Option<bool>,
49 #[serde(skip_serializing_if = "Option::is_none")]
50 pub pointradius: Option<u32>,
51 #[serde(skip_serializing_if = "Option::is_none")]
52 pub points: Option<bool>,
53 #[serde(skip_serializing_if = "Option::is_none")]
54 pub renderer: Option<String>,
55 #[serde(rename = "seriesOverrides")]
56 #[serde(skip_serializing_if = "Option::is_none")]
57 pub series_overrides: Option<Vec<SeriesOverride>>,
58 #[serde(rename = "spaceLength")]
59 #[serde(skip_serializing_if = "Option::is_none")]
60 pub space_length: Option<u32>,
61 #[serde(skip_serializing_if = "Option::is_none")]
62 pub stack: Option<bool>,
63 #[serde(rename = "steppedLine")]
64 #[serde(skip_serializing_if = "Option::is_none")]
65 pub stepped_line: Option<bool>,
66 #[serde(skip_serializing_if = "Option::is_none")]
67 pub targets: Option<Vec<Target>>,
68 #[serde(rename = "timeFrom")]
69 #[serde(skip_serializing_if = "Option::is_none")]
70 pub time_from: Option<String>,
72 #[serde(rename = "timeRegions")]
73 #[serde(skip_serializing_if = "Option::is_none")]
74 pub time_regions: Option<Vec<TimeRegion>>,
76 #[serde(rename = "timeShift")]
77 #[serde(skip_serializing_if = "Option::is_none")]
78 pub time_shift: Option<String>,
80 #[serde(skip_serializing_if = "Option::is_none")]
81 pub thresholds: Option<Vec<Threshold>>,
82 #[serde(skip_serializing_if = "Option::is_none")]
83 pub xaxis: Option<Axis>,
84 #[serde(skip_serializing_if = "Option::is_none")]
85 pub yaxes: Option<Vec<Axe>>,
86 #[serde(skip_serializing_if = "Option::is_none")]
87 pub yaxis: Option<Axis>,
88 #[serde(skip_serializing_if = "Option::is_none")]
89 pub r#type: Option<String>,
90 #[serde(skip_serializing_if = "Option::is_none")]
91 pub title: Option<String>,
92 #[serde(skip_serializing_if = "Option::is_none")]
93 pub tooltip: Option<ToolTip>,
94 #[serde(skip_serializing_if = "Option::is_none")]
95 pub mode: Option<String>,
96}
97
98#[derive(Debug, Clone, Serialize, Deserialize)]
99pub struct ToolTip {
100 #[serde(skip_serializing_if = "Option::is_none")]
101 pub shared: Option<bool>,
102 #[serde(skip_serializing_if = "Option::is_none")]
103 pub sort: Option<u32>,
104 #[serde(rename = "valueType")]
105 #[serde(skip_serializing_if = "Option::is_none")]
106 pub value_type: Option<String>,
107}
108
109#[derive(Debug, Clone, Serialize, Deserialize)]
110pub struct TimeRegion {
111 }
113
114#[derive(Debug, Clone, Serialize, Deserialize)]
115pub struct AliasColors {
116 }
118
119#[derive(Debug, Clone, Serialize, Deserialize)]
120pub struct Axis {
121 #[serde(skip_serializing_if = "Option::is_none")]
122 pub align: Option<bool>,
123 #[serde(rename = "alignLevel")]
124 #[serde(skip_serializing_if = "Option::is_none")]
125 pub align_level: Option<String>, #[serde(skip_serializing_if = "Option::is_none")]
127 pub buckets: Option<Vec<u32>>,
128 #[serde(skip_serializing_if = "Option::is_none")]
129 pub mode: Option<String>,
130 pub name: Option<String>,
132 #[serde(skip_serializing_if = "Option::is_none")]
133 pub show: Option<bool>,
134 #[serde(skip_serializing_if = "Option::is_none")]
135 pub values: Option<Vec<AxisValue>>,
136}
137
138#[derive(Debug, Clone, Serialize, Deserialize)]
139pub struct AxisValue {
140 }
142
143#[derive(Debug, Clone, Serialize, Deserialize)]
144pub struct Axe {
145 #[serde(rename = "$$hashKey")]
146 #[serde(skip_serializing_if = "Option::is_none")]
147 pub hash_key: Option<String>,
148 #[serde(skip_serializing_if = "Option::is_none")]
149 pub format: Option<String>,
150 #[serde(skip_serializing_if = "Option::is_none")]
151 pub label: Option<String>,
152 #[serde(rename = "logBase")]
153 #[serde(skip_serializing_if = "Option::is_none")]
154 pub log_base: Option<u32>,
155 #[serde(skip_serializing_if = "Option::is_none")]
156 pub max: Option<String>,
157 #[serde(skip_serializing_if = "Option::is_none")]
158 pub min: Option<String>,
159 #[serde(skip_serializing_if = "Option::is_none")]
160 pub show: Option<bool>,
161}
162
163#[derive(Debug, Clone, Serialize, Deserialize)]
164pub struct Threshold {
165 }
167
168#[derive(Debug, Clone, Serialize, Deserialize)]
169pub struct Target {
170 #[serde(skip_serializing_if = "Option::is_none")]
171 pub expr: Option<String>,
172 #[serde(skip_serializing_if = "Option::is_none")]
173 pub interval: Option<String>,
174 #[serde(rename = "legendFormat")]
175 #[serde(skip_serializing_if = "Option::is_none")]
176 pub legend_format: Option<String>,
177 #[serde(rename = "refId")]
178 #[serde(skip_serializing_if = "Option::is_none")]
179 pub ref_id: Option<String>,
180}
181
182#[derive(Debug, Clone, Serialize, Deserialize)]
183pub struct SeriesOverride {
184 }
186
187#[derive(Debug, Clone, Serialize, Deserialize)]
188pub struct DataLink {
189 }
191
192#[derive(Debug, Clone, Serialize, Deserialize)]
193pub struct Legend {
194 #[serde(skip_serializing_if = "Option::is_none")]
195 pub avg: Option<bool>,
196 #[serde(skip_serializing_if = "Option::is_none")]
197 pub current: Option<bool>,
198 #[serde(skip_serializing_if = "Option::is_none")]
199 pub max: Option<bool>,
200 #[serde(skip_serializing_if = "Option::is_none")]
201 pub min: Option<bool>,
202 #[serde(skip_serializing_if = "Option::is_none")]
203 pub show: Option<bool>,
204 #[serde(skip_serializing_if = "Option::is_none")]
205 pub total: Option<bool>,
206 #[serde(skip_serializing_if = "Option::is_none")]
207 pub values: Option<bool>,
208}
209
210#[derive(Debug, Clone, Serialize, Deserialize)]
211pub struct GridPos {
212 #[serde(skip_serializing_if = "Option::is_none")]
213 pub x: Option<i32>,
214 #[serde(skip_serializing_if = "Option::is_none")]
215 pub y: Option<i32>,
216 #[serde(skip_serializing_if = "Option::is_none")]
217 pub w: Option<i32>,
218 #[serde(skip_serializing_if = "Option::is_none")]
219 pub h: Option<i32>,
220}
221
222pub mod alert {
223 use serde::{Deserialize, Serialize};
224
225 #[derive(Debug, Clone, Serialize, Deserialize)]
226 pub struct Alert {
227 #[serde(skip_serializing_if = "Option::is_none")]
228 #[serde(rename = "alertRuleTag")]
229 pub alert_rule_tag: Option<RuleTag>,
230 #[serde(skip_serializing_if = "Option::is_none")]
231 pub conditions: Option<Vec<Condition>>,
232 }
233
234 #[derive(Debug, Clone, Serialize, Deserialize)]
235 pub struct RuleTag {
236 }
238
239 #[derive(Debug, Clone, Serialize, Deserialize)]
240 pub struct Condition {
241 #[serde(skip_serializing_if = "Option::is_none")]
242 pub evaluator: Option<Evaluator>,
243 #[serde(skip_serializing_if = "Option::is_none")]
244 pub operator: Option<Operator>,
245 #[serde(skip_serializing_if = "Option::is_none")]
246 pub query: Option<Query>,
247 #[serde(skip_serializing_if = "Option::is_none")]
248 pub reducer: Option<Reducer>,
249 #[serde(skip_serializing_if = "Option::is_none")]
250 pub r#type: Option<String>,
251 }
252
253 #[derive(Debug, Clone, Serialize, Deserialize)]
254 pub struct Evaluator {
255 #[serde(skip_serializing_if = "Option::is_none")]
256 pub params: Option<u32>,
257 #[serde(skip_serializing_if = "Option::is_none")]
258 pub r#type: Option<String>,
259 }
260
261 #[derive(Debug, Clone, Serialize, Deserialize)]
262 pub struct Operator {
263 #[serde(skip_serializing_if = "Option::is_none")]
264 pub r#type: Option<String>,
265 }
266
267 #[derive(Debug, Clone, Serialize, Deserialize)]
268 pub struct Query {
269 #[serde(skip_serializing_if = "Option::is_none")]
270 pub params: Option<u32>,
271 }
272
273 #[derive(Debug, Clone, Serialize, Deserialize)]
274 pub struct Reducer {
275 #[serde(skip_serializing_if = "Option::is_none")]
276 pub params: Option<u32>,
277 #[serde(skip_serializing_if = "Option::is_none")]
278 pub r#type: Option<String>,
279 }
280}