1#[derive(serde::Serialize, serde::Deserialize)]
3#[serde(rename_all = "snake_case")]
4#[derive(Clone, PartialEq, ::prost::Message)]
5pub struct Annotation {
6 #[prost(message, optional, tag = "1")]
8 pub id: ::core::option::Option<::prost::alloc::string::String>,
9 #[prost(message, optional, tag = "2")]
10 pub name: ::core::option::Option<::prost::alloc::string::String>,
11 #[prost(message, optional, tag = "3")]
12 pub enabled: ::core::option::Option<bool>,
13 #[prost(message, optional, tag = "4")]
14 pub source: ::core::option::Option<annotation::Source>,
15}
16pub mod annotation {
18 #[derive(serde::Serialize, serde::Deserialize)]
19 #[serde(rename_all = "snake_case")]
20 #[derive(Clone, PartialEq, ::prost::Message)]
21 pub struct Source {
22 #[prost(oneof = "source::Value", tags = "1, 2, 3")]
23 pub value: ::core::option::Option<source::Value>,
24 }
25 pub mod source {
27 #[derive(serde::Serialize, serde::Deserialize)]
28 #[serde(rename_all = "snake_case")]
29 #[derive(Clone, PartialEq, ::prost::Oneof)]
30 pub enum Value {
31 #[prost(message, tag = "1")]
32 Metrics(super::MetricsSource),
33 #[prost(message, tag = "2")]
34 Logs(super::LogsSource),
35 #[prost(message, tag = "3")]
36 Spans(super::SpansSource),
37 }
38 }
39 #[derive(serde::Serialize, serde::Deserialize)]
40 #[serde(rename_all = "snake_case")]
41 #[derive(Clone, PartialEq, ::prost::Message)]
42 pub struct MetricsSource {
43 #[prost(message, optional, tag = "1")]
44 pub promql_query: ::core::option::Option<super::super::common::PromQlQuery>,
45 #[prost(message, optional, tag = "2")]
46 pub strategy: ::core::option::Option<metrics_source::Strategy>,
47 #[prost(message, optional, tag = "3")]
48 pub message_template: ::core::option::Option<::prost::alloc::string::String>,
49 #[prost(message, repeated, tag = "4")]
50 pub labels: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
51 }
52 pub mod metrics_source {
54 #[derive(serde::Serialize, serde::Deserialize)]
56 #[serde(rename_all = "snake_case")]
57 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
58 pub struct Strategy {
59 #[prost(oneof = "strategy::Value", tags = "1")]
60 pub value: ::core::option::Option<strategy::Value>,
61 }
62 pub mod strategy {
64 #[derive(serde::Serialize, serde::Deserialize)]
65 #[serde(rename_all = "snake_case")]
66 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
67 pub enum Value {
68 #[prost(message, tag = "1")]
70 StartTimeMetric(super::StartTimeMetric),
71 }
72 }
73 #[derive(serde::Serialize, serde::Deserialize)]
74 #[serde(rename_all = "snake_case")]
75 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
76 pub struct StartTimeMetric {}
77 }
78 #[derive(serde::Serialize, serde::Deserialize)]
79 #[serde(rename_all = "snake_case")]
80 #[derive(Clone, PartialEq, ::prost::Message)]
81 pub struct LogsSource {
82 #[prost(message, optional, tag = "1")]
83 pub lucene_query: ::core::option::Option<super::super::common::LuceneQuery>,
84 #[prost(message, optional, tag = "2")]
85 pub strategy: ::core::option::Option<logs_source::Strategy>,
86 #[prost(message, optional, tag = "3")]
87 pub message_template: ::core::option::Option<::prost::alloc::string::String>,
88 #[prost(message, repeated, tag = "4")]
89 pub label_fields: ::prost::alloc::vec::Vec<
90 super::super::common::ObservationField,
91 >,
92 }
93 pub mod logs_source {
95 #[derive(serde::Serialize, serde::Deserialize)]
96 #[serde(rename_all = "snake_case")]
97 #[derive(Clone, PartialEq, ::prost::Message)]
98 pub struct Strategy {
99 #[prost(oneof = "strategy::Value", tags = "1, 2, 3")]
100 pub value: ::core::option::Option<strategy::Value>,
101 }
102 pub mod strategy {
104 #[derive(serde::Serialize, serde::Deserialize)]
105 #[serde(rename_all = "snake_case")]
106 #[derive(Clone, PartialEq, ::prost::Message)]
107 pub struct Instant {
108 #[prost(message, optional, tag = "1")]
109 pub timestamp_field: ::core::option::Option<
110 super::super::super::super::common::ObservationField,
111 >,
112 }
113 #[derive(serde::Serialize, serde::Deserialize)]
114 #[serde(rename_all = "snake_case")]
115 #[derive(Clone, PartialEq, ::prost::Message)]
116 pub struct Range {
117 #[prost(message, optional, tag = "1")]
118 pub start_timestamp_field: ::core::option::Option<
119 super::super::super::super::common::ObservationField,
120 >,
121 #[prost(message, optional, tag = "2")]
122 pub end_timestamp_field: ::core::option::Option<
123 super::super::super::super::common::ObservationField,
124 >,
125 }
126 #[derive(serde::Serialize, serde::Deserialize)]
127 #[serde(rename_all = "snake_case")]
128 #[derive(Clone, PartialEq, ::prost::Message)]
129 pub struct Duration {
130 #[prost(message, optional, tag = "1")]
131 pub start_timestamp_field: ::core::option::Option<
132 super::super::super::super::common::ObservationField,
133 >,
134 #[prost(message, optional, tag = "2")]
135 pub duration_field: ::core::option::Option<
136 super::super::super::super::common::ObservationField,
137 >,
138 }
139 #[derive(serde::Serialize, serde::Deserialize)]
140 #[serde(rename_all = "snake_case")]
141 #[derive(Clone, PartialEq, ::prost::Oneof)]
142 pub enum Value {
143 #[prost(message, tag = "1")]
144 Instant(Instant),
145 #[prost(message, tag = "2")]
146 Range(Range),
147 #[prost(message, tag = "3")]
148 Duration(Duration),
149 }
150 }
151 }
152 #[derive(serde::Serialize, serde::Deserialize)]
153 #[serde(rename_all = "snake_case")]
154 #[derive(Clone, PartialEq, ::prost::Message)]
155 pub struct SpansSource {
156 #[prost(message, optional, tag = "1")]
157 pub lucene_query: ::core::option::Option<super::super::common::LuceneQuery>,
158 #[prost(message, optional, tag = "2")]
159 pub strategy: ::core::option::Option<spans_source::Strategy>,
160 #[prost(message, optional, tag = "3")]
161 pub message_template: ::core::option::Option<::prost::alloc::string::String>,
162 #[prost(message, repeated, tag = "4")]
163 pub label_fields: ::prost::alloc::vec::Vec<
164 super::super::common::ObservationField,
165 >,
166 }
167 pub mod spans_source {
169 #[derive(serde::Serialize, serde::Deserialize)]
170 #[serde(rename_all = "snake_case")]
171 #[derive(Clone, PartialEq, ::prost::Message)]
172 pub struct Strategy {
173 #[prost(oneof = "strategy::Value", tags = "1, 2, 3")]
174 pub value: ::core::option::Option<strategy::Value>,
175 }
176 pub mod strategy {
178 #[derive(serde::Serialize, serde::Deserialize)]
179 #[serde(rename_all = "snake_case")]
180 #[derive(Clone, PartialEq, ::prost::Message)]
181 pub struct Instant {
182 #[prost(message, optional, tag = "1")]
183 pub timestamp_field: ::core::option::Option<
184 super::super::super::super::common::ObservationField,
185 >,
186 }
187 #[derive(serde::Serialize, serde::Deserialize)]
188 #[serde(rename_all = "snake_case")]
189 #[derive(Clone, PartialEq, ::prost::Message)]
190 pub struct Range {
191 #[prost(message, optional, tag = "1")]
192 pub start_timestamp_field: ::core::option::Option<
193 super::super::super::super::common::ObservationField,
194 >,
195 #[prost(message, optional, tag = "2")]
196 pub end_timestamp_field: ::core::option::Option<
197 super::super::super::super::common::ObservationField,
198 >,
199 }
200 #[derive(serde::Serialize, serde::Deserialize)]
201 #[serde(rename_all = "snake_case")]
202 #[derive(Clone, PartialEq, ::prost::Message)]
203 pub struct Duration {
204 #[prost(message, optional, tag = "1")]
205 pub start_timestamp_field: ::core::option::Option<
206 super::super::super::super::common::ObservationField,
207 >,
208 #[prost(message, optional, tag = "2")]
209 pub duration_field: ::core::option::Option<
210 super::super::super::super::common::ObservationField,
211 >,
212 }
213 #[derive(serde::Serialize, serde::Deserialize)]
214 #[serde(rename_all = "snake_case")]
215 #[derive(Clone, PartialEq, ::prost::Oneof)]
216 pub enum Value {
217 #[prost(message, tag = "1")]
218 Instant(Instant),
219 #[prost(message, tag = "2")]
220 Range(Range),
221 #[prost(message, tag = "3")]
222 Duration(Duration),
223 }
224 }
225 }
226}
227#[derive(serde::Serialize, serde::Deserialize)]
228#[serde(rename_all = "snake_case")]
229#[derive(Clone, PartialEq, ::prost::Message)]
230pub struct Filter {
231 #[prost(message, optional, tag = "1")]
233 pub source: ::core::option::Option<filter::Source>,
234 #[prost(message, optional, tag = "2")]
236 pub enabled: ::core::option::Option<bool>,
237 #[prost(message, optional, tag = "3")]
239 pub collapsed: ::core::option::Option<bool>,
240}
241pub mod filter {
243 #[derive(serde::Serialize, serde::Deserialize)]
244 #[serde(rename_all = "snake_case")]
245 #[derive(Clone, PartialEq, ::prost::Message)]
246 pub struct Source {
247 #[prost(oneof = "source::Value", tags = "1, 2, 3")]
248 pub value: ::core::option::Option<source::Value>,
249 }
250 pub mod source {
252 #[derive(serde::Serialize, serde::Deserialize)]
253 #[serde(rename_all = "snake_case")]
254 #[derive(Clone, PartialEq, ::prost::Oneof)]
255 pub enum Value {
256 #[prost(message, tag = "1")]
258 Logs(super::LogsFilter),
259 #[prost(message, tag = "2")]
261 Spans(super::SpansFilter),
262 #[prost(message, tag = "3")]
264 Metrics(super::MetricsFilter),
265 }
266 }
267 #[derive(serde::Serialize, serde::Deserialize)]
268 #[serde(rename_all = "snake_case")]
269 #[derive(Clone, PartialEq, ::prost::Message)]
270 pub struct LogsFilter {
271 #[prost(message, optional, tag = "1")]
273 pub field: ::core::option::Option<::prost::alloc::string::String>,
274 #[prost(message, optional, tag = "2")]
276 pub operator: ::core::option::Option<Operator>,
277 #[prost(message, optional, tag = "3")]
279 pub observation_field: ::core::option::Option<
280 super::super::common::ObservationField,
281 >,
282 }
283 #[derive(serde::Serialize, serde::Deserialize)]
284 #[serde(rename_all = "snake_case")]
285 #[derive(Clone, PartialEq, ::prost::Message)]
286 pub struct SpansFilter {
287 #[prost(message, optional, tag = "1")]
289 pub field: ::core::option::Option<super::super::common::SpanField>,
290 #[prost(message, optional, tag = "2")]
292 pub operator: ::core::option::Option<Operator>,
293 #[prost(message, optional, tag = "3")]
295 pub observation_field: ::core::option::Option<
296 super::super::common::ObservationField,
297 >,
298 }
299 #[derive(serde::Serialize, serde::Deserialize)]
300 #[serde(rename_all = "snake_case")]
301 #[derive(Clone, PartialEq, ::prost::Message)]
302 pub struct MetricsFilter {
303 #[prost(message, optional, tag = "1")]
305 pub metric: ::core::option::Option<::prost::alloc::string::String>,
306 #[prost(message, optional, tag = "2")]
308 pub label: ::core::option::Option<::prost::alloc::string::String>,
309 #[prost(message, optional, tag = "3")]
311 pub operator: ::core::option::Option<Operator>,
312 }
313 #[derive(serde::Serialize, serde::Deserialize)]
314 #[serde(rename_all = "snake_case")]
315 #[derive(Clone, PartialEq, ::prost::Message)]
316 pub struct Operator {
317 #[prost(oneof = "operator::Value", tags = "1, 2")]
319 pub value: ::core::option::Option<operator::Value>,
320 }
321 pub mod operator {
323 #[derive(serde::Serialize, serde::Deserialize)]
325 #[serde(rename_all = "snake_case")]
326 #[derive(Clone, PartialEq, ::prost::Oneof)]
327 pub enum Value {
328 #[prost(message, tag = "1")]
330 Equals(super::Equals),
331 #[prost(message, tag = "2")]
333 NotEquals(super::NotEquals),
334 }
335 }
336 #[derive(serde::Serialize, serde::Deserialize)]
337 #[serde(rename_all = "snake_case")]
338 #[derive(Clone, PartialEq, ::prost::Message)]
339 pub struct Equals {
340 #[prost(message, optional, tag = "1")]
342 pub selection: ::core::option::Option<equals::Selection>,
343 }
344 pub mod equals {
346 #[derive(serde::Serialize, serde::Deserialize)]
347 #[serde(rename_all = "snake_case")]
348 #[derive(Clone, PartialEq, ::prost::Message)]
349 pub struct Selection {
350 #[prost(oneof = "selection::Value", tags = "1, 2")]
352 pub value: ::core::option::Option<selection::Value>,
353 }
354 pub mod selection {
356 #[derive(serde::Serialize, serde::Deserialize)]
357 #[serde(rename_all = "snake_case")]
358 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
359 pub struct AllSelection {}
360 #[derive(serde::Serialize, serde::Deserialize)]
361 #[serde(rename_all = "snake_case")]
362 #[derive(Clone, PartialEq, ::prost::Message)]
363 pub struct ListSelection {
364 #[prost(message, repeated, tag = "1")]
366 pub values: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
367 }
368 #[derive(serde::Serialize, serde::Deserialize)]
370 #[serde(rename_all = "snake_case")]
371 #[derive(Clone, PartialEq, ::prost::Oneof)]
372 pub enum Value {
373 #[prost(message, tag = "1")]
375 All(AllSelection),
376 #[prost(message, tag = "2")]
378 List(ListSelection),
379 }
380 }
381 }
382 #[derive(serde::Serialize, serde::Deserialize)]
383 #[serde(rename_all = "snake_case")]
384 #[derive(Clone, PartialEq, ::prost::Message)]
385 pub struct NotEquals {
386 #[prost(message, optional, tag = "1")]
388 pub selection: ::core::option::Option<not_equals::Selection>,
389 }
390 pub mod not_equals {
392 #[derive(serde::Serialize, serde::Deserialize)]
393 #[serde(rename_all = "snake_case")]
394 #[derive(Clone, PartialEq, ::prost::Message)]
395 pub struct Selection {
396 #[prost(oneof = "selection::Value", tags = "1")]
398 pub value: ::core::option::Option<selection::Value>,
399 }
400 pub mod selection {
402 #[derive(serde::Serialize, serde::Deserialize)]
403 #[serde(rename_all = "snake_case")]
404 #[derive(Clone, PartialEq, ::prost::Message)]
405 pub struct ListSelection {
406 #[prost(message, repeated, tag = "1")]
408 pub values: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
409 }
410 #[derive(serde::Serialize, serde::Deserialize)]
412 #[serde(rename_all = "snake_case")]
413 #[derive(Clone, PartialEq, ::prost::Oneof)]
414 pub enum Value {
415 #[prost(message, tag = "1")]
417 List(ListSelection),
418 }
419 }
420 }
421}
422#[derive(serde::Serialize, serde::Deserialize)]
423#[serde(rename_all = "snake_case")]
424#[derive(Clone, PartialEq, ::prost::Message)]
425pub struct FolderPath {
426 #[prost(string, repeated, tag = "1")]
427 pub segments: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
428}
429#[derive(serde::Serialize, serde::Deserialize)]
430#[serde(rename_all = "snake_case")]
431#[derive(Clone, PartialEq, ::prost::Message)]
432pub struct Widget {
433 #[prost(message, optional, tag = "1")]
435 pub id: ::core::option::Option<super::Uuid>,
436 #[prost(message, optional, tag = "2")]
437 pub title: ::core::option::Option<::prost::alloc::string::String>,
438 #[prost(message, optional, tag = "3")]
439 pub description: ::core::option::Option<::prost::alloc::string::String>,
440 #[prost(message, optional, tag = "4")]
441 pub definition: ::core::option::Option<widget::Definition>,
442 #[deprecated]
443 #[prost(message, optional, tag = "5")]
444 pub appearance: ::core::option::Option<widget::Appearance>,
445 #[prost(message, optional, tag = "6")]
446 pub created_at: ::core::option::Option<::prost_wkt_types::Timestamp>,
447 #[prost(message, optional, tag = "7")]
448 pub updated_at: ::core::option::Option<::prost_wkt_types::Timestamp>,
449}
450pub mod widget {
452 #[derive(serde::Serialize, serde::Deserialize)]
453 #[serde(rename_all = "snake_case")]
454 #[derive(Clone, PartialEq, ::prost::Message)]
455 pub struct Definition {
456 #[prost(oneof = "definition::Value", tags = "1, 2, 3, 4, 5, 6, 7, 8")]
457 pub value: ::core::option::Option<definition::Value>,
458 }
459 pub mod definition {
461 #[derive(serde::Serialize, serde::Deserialize)]
462 #[serde(rename_all = "snake_case")]
463 #[derive(Clone, PartialEq, ::prost::Oneof)]
464 pub enum Value {
465 #[prost(message, tag = "1")]
466 LineChart(super::super::widgets::LineChart),
467 #[prost(message, tag = "2")]
468 DataTable(super::super::widgets::DataTable),
469 #[prost(message, tag = "3")]
470 Gauge(super::super::widgets::Gauge),
471 #[prost(message, tag = "4")]
472 PieChart(super::super::widgets::PieChart),
473 #[prost(message, tag = "5")]
474 BarChart(super::super::widgets::BarChart),
475 #[prost(message, tag = "6")]
476 HorizontalBarChart(super::super::widgets::HorizontalBarChart),
477 #[prost(message, tag = "7")]
478 Markdown(super::super::widgets::Markdown),
479 #[prost(message, tag = "8")]
480 Hexagon(super::super::widgets::Hexagon),
481 }
482 }
483 #[derive(serde::Serialize, serde::Deserialize)]
484 #[serde(rename_all = "snake_case")]
485 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
486 pub struct Appearance {
487 #[prost(message, optional, tag = "1")]
488 pub width: ::core::option::Option<i32>,
489 }
490}
491#[derive(serde::Serialize, serde::Deserialize)]
492#[serde(rename_all = "snake_case")]
493#[derive(Clone, PartialEq, ::prost::Message)]
494pub struct Layout {
495 #[prost(message, repeated, tag = "1")]
496 pub sections: ::prost::alloc::vec::Vec<Section>,
497}
498#[derive(serde::Serialize, serde::Deserialize)]
499#[serde(rename_all = "snake_case")]
500#[derive(Clone, PartialEq, ::prost::Message)]
501pub struct Section {
502 #[prost(message, optional, tag = "1")]
504 pub id: ::core::option::Option<super::Uuid>,
505 #[prost(message, repeated, tag = "2")]
506 pub rows: ::prost::alloc::vec::Vec<Row>,
507 #[prost(message, optional, tag = "3")]
508 pub options: ::core::option::Option<SectionOptions>,
509}
510#[derive(serde::Serialize, serde::Deserialize)]
511#[serde(rename_all = "snake_case")]
512#[derive(Clone, PartialEq, ::prost::Message)]
513pub struct Row {
514 #[prost(message, optional, tag = "1")]
516 pub id: ::core::option::Option<super::Uuid>,
517 #[prost(message, optional, tag = "2")]
518 pub appearance: ::core::option::Option<row::Appearance>,
519 #[prost(message, repeated, tag = "3")]
520 pub widgets: ::prost::alloc::vec::Vec<Widget>,
521}
522pub mod row {
524 #[derive(serde::Serialize, serde::Deserialize)]
525 #[serde(rename_all = "snake_case")]
526 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
527 pub struct Appearance {
528 #[prost(message, optional, tag = "1")]
529 pub height: ::core::option::Option<i32>,
530 }
531}
532#[derive(serde::Serialize, serde::Deserialize)]
533#[serde(rename_all = "snake_case")]
534#[derive(Clone, PartialEq, ::prost::Message)]
535pub struct SectionOptions {
536 #[prost(oneof = "section_options::Value", tags = "1, 2")]
537 pub value: ::core::option::Option<section_options::Value>,
538}
539pub mod section_options {
541 #[derive(serde::Serialize, serde::Deserialize)]
542 #[serde(rename_all = "snake_case")]
543 #[derive(Clone, PartialEq, ::prost::Oneof)]
544 pub enum Value {
545 #[prost(message, tag = "1")]
546 Internal(super::InternalSectionOptions),
547 #[prost(message, tag = "2")]
548 Custom(super::CustomSectionOptions),
549 }
550}
551#[derive(serde::Serialize, serde::Deserialize)]
552#[serde(rename_all = "snake_case")]
553#[derive(Clone, Copy, PartialEq, ::prost::Message)]
554pub struct InternalSectionOptions {}
555#[derive(serde::Serialize, serde::Deserialize)]
556#[serde(rename_all = "snake_case")]
557#[derive(Clone, PartialEq, ::prost::Message)]
558pub struct CustomSectionOptions {
559 #[prost(message, optional, tag = "1")]
560 pub name: ::core::option::Option<::prost::alloc::string::String>,
561 #[prost(message, optional, tag = "2")]
562 pub description: ::core::option::Option<::prost::alloc::string::String>,
563 #[prost(message, optional, tag = "3")]
564 pub collapsed: ::core::option::Option<bool>,
565 #[prost(message, optional, tag = "4")]
566 pub color: ::core::option::Option<SectionColor>,
567}
568#[derive(serde::Serialize, serde::Deserialize)]
569#[serde(rename_all = "snake_case")]
570#[derive(Clone, Copy, PartialEq, ::prost::Message)]
571pub struct SectionColor {
572 #[prost(oneof = "section_color::Value", tags = "1")]
573 pub value: ::core::option::Option<section_color::Value>,
574}
575pub mod section_color {
577 #[derive(serde::Serialize, serde::Deserialize)]
578 #[serde(rename_all = "snake_case")]
579 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
580 pub enum Value {
581 #[prost(enumeration = "super::SectionPredefinedColor", tag = "1")]
582 Predefined(i32),
583 }
584}
585#[derive(serde::Serialize, serde::Deserialize)]
586#[serde(rename_all = "snake_case")]
587#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
588#[repr(i32)]
589pub enum SectionPredefinedColor {
590 Unspecified = 0,
591 Cyan = 1,
592 Green = 2,
593 Blue = 3,
594 Purple = 4,
595 Magenta = 5,
596 Pink = 6,
597 Orange = 7,
598}
599impl SectionPredefinedColor {
600 pub fn as_str_name(&self) -> &'static str {
605 match self {
606 Self::Unspecified => "SECTION_PREDEFINED_COLOR_UNSPECIFIED",
607 Self::Cyan => "SECTION_PREDEFINED_COLOR_CYAN",
608 Self::Green => "SECTION_PREDEFINED_COLOR_GREEN",
609 Self::Blue => "SECTION_PREDEFINED_COLOR_BLUE",
610 Self::Purple => "SECTION_PREDEFINED_COLOR_PURPLE",
611 Self::Magenta => "SECTION_PREDEFINED_COLOR_MAGENTA",
612 Self::Pink => "SECTION_PREDEFINED_COLOR_PINK",
613 Self::Orange => "SECTION_PREDEFINED_COLOR_ORANGE",
614 }
615 }
616 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
618 match value {
619 "SECTION_PREDEFINED_COLOR_UNSPECIFIED" => Some(Self::Unspecified),
620 "SECTION_PREDEFINED_COLOR_CYAN" => Some(Self::Cyan),
621 "SECTION_PREDEFINED_COLOR_GREEN" => Some(Self::Green),
622 "SECTION_PREDEFINED_COLOR_BLUE" => Some(Self::Blue),
623 "SECTION_PREDEFINED_COLOR_PURPLE" => Some(Self::Purple),
624 "SECTION_PREDEFINED_COLOR_MAGENTA" => Some(Self::Magenta),
625 "SECTION_PREDEFINED_COLOR_PINK" => Some(Self::Pink),
626 "SECTION_PREDEFINED_COLOR_ORANGE" => Some(Self::Orange),
627 _ => None,
628 }
629 }
630}
631#[derive(serde::Serialize, serde::Deserialize)]
632#[serde(rename_all = "snake_case")]
633#[derive(Clone, PartialEq, ::prost::Message)]
634pub struct Variable {
635 #[prost(message, optional, tag = "1")]
636 pub name: ::core::option::Option<::prost::alloc::string::String>,
637 #[prost(message, optional, tag = "2")]
638 pub definition: ::core::option::Option<variable::Definition>,
639 #[prost(message, optional, tag = "3")]
640 pub display_name: ::core::option::Option<::prost::alloc::string::String>,
641 #[prost(message, optional, tag = "4")]
642 pub description: ::core::option::Option<::prost::alloc::string::String>,
643 #[prost(enumeration = "VariableDisplayType", tag = "5")]
644 pub display_type: i32,
645}
646pub mod variable {
648 #[derive(serde::Serialize, serde::Deserialize)]
649 #[serde(rename_all = "snake_case")]
650 #[derive(Clone, PartialEq, ::prost::Message)]
651 pub struct Definition {
652 #[prost(oneof = "definition::Value", tags = "1, 2")]
653 pub value: ::core::option::Option<definition::Value>,
654 }
655 pub mod definition {
657 #[derive(serde::Serialize, serde::Deserialize)]
658 #[serde(rename_all = "snake_case")]
659 #[derive(Clone, PartialEq, ::prost::Oneof)]
660 pub enum Value {
661 #[prost(message, tag = "1")]
662 Constant(super::super::Constant),
663 #[prost(message, tag = "2")]
664 MultiSelect(super::super::MultiSelect),
665 }
666 }
667}
668#[derive(serde::Serialize, serde::Deserialize)]
669#[serde(rename_all = "snake_case")]
670#[derive(Clone, PartialEq, ::prost::Message)]
671pub struct Constant {
672 #[prost(message, optional, tag = "1")]
673 pub value: ::core::option::Option<::prost::alloc::string::String>,
674}
675#[derive(serde::Serialize, serde::Deserialize)]
676#[serde(rename_all = "snake_case")]
677#[derive(Clone, PartialEq, ::prost::Message)]
678pub struct MultiSelect {
679 #[deprecated]
680 #[prost(message, repeated, tag = "1")]
681 pub selected: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
682 #[prost(message, optional, tag = "2")]
683 pub source: ::core::option::Option<multi_select::Source>,
684 #[prost(message, optional, tag = "3")]
685 pub selection: ::core::option::Option<multi_select::Selection>,
686 #[prost(enumeration = "super::common::OrderDirection", tag = "4")]
687 pub values_order_direction: i32,
688 #[prost(message, optional, tag = "5")]
689 pub selection_options: ::core::option::Option<
690 multi_select::VariableSelectionOptions,
691 >,
692}
693pub mod multi_select {
695 #[derive(serde::Serialize, serde::Deserialize)]
696 #[serde(rename_all = "snake_case")]
697 #[derive(Clone, PartialEq, ::prost::Message)]
698 pub struct Source {
699 #[prost(oneof = "source::Value", tags = "1, 2, 3, 4, 5")]
700 pub value: ::core::option::Option<source::Value>,
701 }
702 pub mod source {
704 #[derive(serde::Serialize, serde::Deserialize)]
705 #[serde(rename_all = "snake_case")]
706 #[derive(Clone, PartialEq, ::prost::Oneof)]
707 pub enum Value {
708 #[prost(message, tag = "1")]
709 LogsPath(super::LogsPathSource),
710 #[prost(message, tag = "2")]
711 MetricLabel(super::MetricLabelSource),
712 #[prost(message, tag = "3")]
713 ConstantList(super::ConstantListSource),
714 #[prost(message, tag = "4")]
715 SpanField(super::SpanFieldSource),
716 #[prost(message, tag = "5")]
717 Query(super::QuerySource),
718 }
719 }
720 #[derive(serde::Serialize, serde::Deserialize)]
721 #[serde(rename_all = "snake_case")]
722 #[derive(Clone, PartialEq, ::prost::Message)]
723 pub struct LogsPathSource {
724 #[prost(message, optional, tag = "1")]
725 pub value: ::core::option::Option<::prost::alloc::string::String>,
726 #[prost(message, optional, tag = "3")]
727 pub observation_field: ::core::option::Option<
728 super::super::common::ObservationField,
729 >,
730 }
731 #[derive(serde::Serialize, serde::Deserialize)]
732 #[serde(rename_all = "snake_case")]
733 #[derive(Clone, PartialEq, ::prost::Message)]
734 pub struct MetricLabelSource {
735 #[prost(message, optional, tag = "1")]
736 pub metric_name: ::core::option::Option<::prost::alloc::string::String>,
737 #[prost(message, optional, tag = "2")]
738 pub label: ::core::option::Option<::prost::alloc::string::String>,
739 }
740 #[derive(serde::Serialize, serde::Deserialize)]
741 #[serde(rename_all = "snake_case")]
742 #[derive(Clone, PartialEq, ::prost::Message)]
743 pub struct SpanFieldSource {
744 #[prost(message, optional, tag = "1")]
745 pub value: ::core::option::Option<super::super::common::SpanField>,
746 }
747 #[derive(serde::Serialize, serde::Deserialize)]
748 #[serde(rename_all = "snake_case")]
749 #[derive(Clone, PartialEq, ::prost::Message)]
750 pub struct ConstantListSource {
751 #[prost(message, repeated, tag = "1")]
752 pub values: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
753 }
754 #[derive(serde::Serialize, serde::Deserialize)]
755 #[serde(rename_all = "snake_case")]
756 #[derive(Clone, PartialEq, ::prost::Message)]
757 pub struct QuerySource {
758 #[prost(message, optional, tag = "1")]
759 pub query: ::core::option::Option<Query>,
760 #[prost(enumeration = "RefreshStrategy", tag = "2")]
761 pub refresh_strategy: i32,
762 #[prost(message, optional, tag = "3")]
763 pub value_display_options: ::core::option::Option<ValueDisplayOptions>,
764 }
765 #[derive(serde::Serialize, serde::Deserialize)]
766 #[serde(rename_all = "snake_case")]
767 #[derive(Clone, PartialEq, ::prost::Message)]
768 pub struct Query {
769 #[prost(oneof = "query::Value", tags = "1, 2, 3")]
770 pub value: ::core::option::Option<query::Value>,
771 }
772 pub mod query {
774 #[derive(serde::Serialize, serde::Deserialize)]
775 #[serde(rename_all = "snake_case")]
776 #[derive(Clone, PartialEq, ::prost::Message)]
777 pub struct LogsQuery {
778 #[prost(message, optional, tag = "1")]
779 pub r#type: ::core::option::Option<logs_query::Type>,
780 }
781 pub mod logs_query {
783 #[derive(serde::Serialize, serde::Deserialize)]
784 #[serde(rename_all = "snake_case")]
785 #[derive(Clone, PartialEq, ::prost::Message)]
786 pub struct Type {
787 #[prost(oneof = "r#type::Value", tags = "1, 2")]
788 pub value: ::core::option::Option<r#type::Value>,
789 }
790 pub mod r#type {
792 #[derive(serde::Serialize, serde::Deserialize)]
793 #[serde(rename_all = "snake_case")]
794 #[derive(Clone, PartialEq, ::prost::Message)]
795 pub struct FieldName {
796 #[prost(message, optional, tag = "1")]
797 pub log_regex: ::core::option::Option<
798 ::prost::alloc::string::String,
799 >,
800 }
801 #[derive(serde::Serialize, serde::Deserialize)]
802 #[serde(rename_all = "snake_case")]
803 #[derive(Clone, PartialEq, ::prost::Message)]
804 pub struct FieldValue {
805 #[prost(message, optional, tag = "3")]
806 pub observation_field: ::core::option::Option<
807 super::super::super::super::super::common::ObservationField,
808 >,
809 }
810 #[derive(serde::Serialize, serde::Deserialize)]
811 #[serde(rename_all = "snake_case")]
812 #[derive(Clone, PartialEq, ::prost::Oneof)]
813 pub enum Value {
814 #[prost(message, tag = "1")]
815 FieldName(FieldName),
816 #[prost(message, tag = "2")]
817 FieldValue(FieldValue),
818 }
819 }
820 }
821 #[derive(serde::Serialize, serde::Deserialize)]
822 #[serde(rename_all = "snake_case")]
823 #[derive(Clone, PartialEq, ::prost::Message)]
824 pub struct SpansQuery {
825 #[prost(message, optional, tag = "1")]
826 pub r#type: ::core::option::Option<spans_query::Type>,
827 }
828 pub mod spans_query {
830 #[derive(serde::Serialize, serde::Deserialize)]
831 #[serde(rename_all = "snake_case")]
832 #[derive(Clone, PartialEq, ::prost::Message)]
833 pub struct Type {
834 #[prost(oneof = "r#type::Value", tags = "1, 2")]
835 pub value: ::core::option::Option<r#type::Value>,
836 }
837 pub mod r#type {
839 #[derive(serde::Serialize, serde::Deserialize)]
840 #[serde(rename_all = "snake_case")]
841 #[derive(Clone, PartialEq, ::prost::Message)]
842 pub struct FieldName {
843 #[prost(message, optional, tag = "1")]
844 pub span_regex: ::core::option::Option<
845 ::prost::alloc::string::String,
846 >,
847 }
848 #[derive(serde::Serialize, serde::Deserialize)]
849 #[serde(rename_all = "snake_case")]
850 #[derive(Clone, PartialEq, ::prost::Message)]
851 pub struct FieldValue {
852 #[prost(message, optional, tag = "1")]
853 pub value: ::core::option::Option<
854 super::super::super::super::super::common::SpanField,
855 >,
856 #[prost(message, optional, tag = "2")]
857 pub observation_field: ::core::option::Option<
858 super::super::super::super::super::common::ObservationField,
859 >,
860 }
861 #[derive(serde::Serialize, serde::Deserialize)]
862 #[serde(rename_all = "snake_case")]
863 #[derive(Clone, PartialEq, ::prost::Oneof)]
864 pub enum Value {
865 #[prost(message, tag = "1")]
866 FieldName(FieldName),
867 #[prost(message, tag = "2")]
868 FieldValue(FieldValue),
869 }
870 }
871 }
872 #[derive(serde::Serialize, serde::Deserialize)]
873 #[serde(rename_all = "snake_case")]
874 #[derive(Clone, PartialEq, ::prost::Message)]
875 pub struct MetricsQuery {
876 #[prost(message, optional, tag = "1")]
877 pub r#type: ::core::option::Option<metrics_query::Type>,
878 }
879 pub mod metrics_query {
881 #[derive(serde::Serialize, serde::Deserialize)]
882 #[serde(rename_all = "snake_case")]
883 #[derive(Clone, PartialEq, ::prost::Message)]
884 pub struct Type {
885 #[prost(oneof = "r#type::Value", tags = "1, 2, 3")]
886 pub value: ::core::option::Option<r#type::Value>,
887 }
888 pub mod r#type {
890 #[derive(serde::Serialize, serde::Deserialize)]
891 #[serde(rename_all = "snake_case")]
892 #[derive(Clone, PartialEq, ::prost::Message)]
893 pub struct MetricName {
894 #[prost(message, optional, tag = "1")]
895 pub metric_regex: ::core::option::Option<
896 ::prost::alloc::string::String,
897 >,
898 }
899 #[derive(serde::Serialize, serde::Deserialize)]
900 #[serde(rename_all = "snake_case")]
901 #[derive(Clone, PartialEq, ::prost::Message)]
902 pub struct LabelName {
903 #[prost(message, optional, tag = "1")]
904 pub metric_regex: ::core::option::Option<
905 ::prost::alloc::string::String,
906 >,
907 }
908 #[derive(serde::Serialize, serde::Deserialize)]
909 #[serde(rename_all = "snake_case")]
910 #[derive(Clone, PartialEq, ::prost::Message)]
911 pub struct LabelValue {
912 #[prost(message, optional, tag = "1")]
913 pub metric_name: ::core::option::Option<super::StringOrVariable>,
914 #[prost(message, optional, tag = "2")]
915 pub label_name: ::core::option::Option<super::StringOrVariable>,
916 #[prost(message, repeated, tag = "3")]
917 pub label_filters: ::prost::alloc::vec::Vec<
918 super::MetricsLabelFilter,
919 >,
920 }
921 #[derive(serde::Serialize, serde::Deserialize)]
922 #[serde(rename_all = "snake_case")]
923 #[derive(Clone, PartialEq, ::prost::Oneof)]
924 pub enum Value {
925 #[prost(message, tag = "1")]
926 MetricName(MetricName),
927 #[prost(message, tag = "2")]
928 LabelName(LabelName),
929 #[prost(message, tag = "3")]
930 LabelValue(LabelValue),
931 }
932 }
933 #[derive(serde::Serialize, serde::Deserialize)]
934 #[serde(rename_all = "snake_case")]
935 #[derive(Clone, PartialEq, ::prost::Message)]
936 pub struct StringOrVariable {
937 #[prost(oneof = "string_or_variable::Value", tags = "1, 2")]
938 pub value: ::core::option::Option<string_or_variable::Value>,
939 }
940 pub mod string_or_variable {
942 #[derive(serde::Serialize, serde::Deserialize)]
943 #[serde(rename_all = "snake_case")]
944 #[derive(Clone, PartialEq, ::prost::Oneof)]
945 pub enum Value {
946 #[prost(message, tag = "1")]
947 StringValue(::prost::alloc::string::String),
948 #[prost(message, tag = "2")]
949 VariableName(::prost::alloc::string::String),
950 }
951 }
952 #[derive(serde::Serialize, serde::Deserialize)]
953 #[serde(rename_all = "snake_case")]
954 #[derive(Clone, PartialEq, ::prost::Message)]
955 pub struct MetricsLabelFilter {
956 #[prost(message, optional, tag = "1")]
957 pub metric: ::core::option::Option<StringOrVariable>,
958 #[prost(message, optional, tag = "2")]
959 pub label: ::core::option::Option<StringOrVariable>,
960 #[prost(message, optional, tag = "3")]
961 pub operator: ::core::option::Option<Operator>,
962 }
963 #[derive(serde::Serialize, serde::Deserialize)]
964 #[serde(rename_all = "snake_case")]
965 #[derive(Clone, PartialEq, ::prost::Message)]
966 pub struct Operator {
967 #[prost(oneof = "operator::Value", tags = "1, 2")]
968 pub value: ::core::option::Option<operator::Value>,
969 }
970 pub mod operator {
972 #[derive(serde::Serialize, serde::Deserialize)]
973 #[serde(rename_all = "snake_case")]
974 #[derive(Clone, PartialEq, ::prost::Oneof)]
975 pub enum Value {
976 #[prost(message, tag = "1")]
977 Equals(super::Equals),
978 #[prost(message, tag = "2")]
979 NotEquals(super::NotEquals),
980 }
981 }
982 #[derive(serde::Serialize, serde::Deserialize)]
983 #[serde(rename_all = "snake_case")]
984 #[derive(Clone, PartialEq, ::prost::Message)]
985 pub struct Equals {
986 #[prost(message, optional, tag = "1")]
987 pub selection: ::core::option::Option<Selection>,
988 }
989 #[derive(serde::Serialize, serde::Deserialize)]
990 #[serde(rename_all = "snake_case")]
991 #[derive(Clone, PartialEq, ::prost::Message)]
992 pub struct NotEquals {
993 #[prost(message, optional, tag = "1")]
994 pub selection: ::core::option::Option<Selection>,
995 }
996 #[derive(serde::Serialize, serde::Deserialize)]
997 #[serde(rename_all = "snake_case")]
998 #[derive(Clone, PartialEq, ::prost::Message)]
999 pub struct Selection {
1000 #[prost(oneof = "selection::Value", tags = "1")]
1001 pub value: ::core::option::Option<selection::Value>,
1002 }
1003 pub mod selection {
1005 #[derive(serde::Serialize, serde::Deserialize)]
1006 #[serde(rename_all = "snake_case")]
1007 #[derive(Clone, PartialEq, ::prost::Message)]
1008 pub struct ListSelection {
1009 #[prost(message, repeated, tag = "1")]
1010 pub values: ::prost::alloc::vec::Vec<super::StringOrVariable>,
1011 }
1012 #[derive(serde::Serialize, serde::Deserialize)]
1013 #[serde(rename_all = "snake_case")]
1014 #[derive(Clone, PartialEq, ::prost::Oneof)]
1015 pub enum Value {
1016 #[prost(message, tag = "1")]
1017 List(ListSelection),
1018 }
1019 }
1020 }
1021 #[derive(serde::Serialize, serde::Deserialize)]
1022 #[serde(rename_all = "snake_case")]
1023 #[derive(Clone, PartialEq, ::prost::Oneof)]
1024 pub enum Value {
1025 #[prost(message, tag = "1")]
1026 LogsQuery(LogsQuery),
1027 #[prost(message, tag = "2")]
1028 MetricsQuery(MetricsQuery),
1029 #[prost(message, tag = "3")]
1030 SpansQuery(SpansQuery),
1031 }
1032 }
1033 #[derive(serde::Serialize, serde::Deserialize)]
1034 #[serde(rename_all = "snake_case")]
1035 #[derive(Clone, PartialEq, ::prost::Message)]
1036 pub struct ValueDisplayOptions {
1037 #[prost(message, optional, tag = "1")]
1038 pub value_regex: ::core::option::Option<::prost::alloc::string::String>,
1039 #[prost(message, optional, tag = "2")]
1040 pub label_regex: ::core::option::Option<::prost::alloc::string::String>,
1041 }
1042 #[derive(serde::Serialize, serde::Deserialize)]
1043 #[serde(rename_all = "snake_case")]
1044 #[derive(Clone, PartialEq, ::prost::Message)]
1045 pub struct Selection {
1046 #[prost(oneof = "selection::Value", tags = "1, 2")]
1047 pub value: ::core::option::Option<selection::Value>,
1048 }
1049 pub mod selection {
1051 #[derive(serde::Serialize, serde::Deserialize)]
1052 #[serde(rename_all = "snake_case")]
1053 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1054 pub struct AllSelection {}
1055 #[derive(serde::Serialize, serde::Deserialize)]
1056 #[serde(rename_all = "snake_case")]
1057 #[derive(Clone, PartialEq, ::prost::Message)]
1058 pub struct ListSelection {
1059 #[prost(message, repeated, tag = "1")]
1060 pub values: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1061 #[prost(message, repeated, tag = "2")]
1062 pub labels: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1063 }
1064 #[derive(serde::Serialize, serde::Deserialize)]
1065 #[serde(rename_all = "snake_case")]
1066 #[derive(Clone, PartialEq, ::prost::Oneof)]
1067 pub enum Value {
1068 #[prost(message, tag = "1")]
1069 All(AllSelection),
1070 #[prost(message, tag = "2")]
1071 List(ListSelection),
1072 }
1073 }
1074 #[derive(serde::Serialize, serde::Deserialize)]
1075 #[serde(rename_all = "snake_case")]
1076 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1077 pub struct VariableSelectionOptions {
1078 #[prost(enumeration = "variable_selection_options::SelectionType", tag = "1")]
1079 pub selection_type: i32,
1080 }
1081 pub mod variable_selection_options {
1083 #[derive(serde::Serialize, serde::Deserialize)]
1084 #[serde(rename_all = "snake_case")]
1085 #[derive(
1086 Clone,
1087 Copy,
1088 Debug,
1089 PartialEq,
1090 Eq,
1091 Hash,
1092 PartialOrd,
1093 Ord,
1094 ::prost::Enumeration
1095 )]
1096 #[repr(i32)]
1097 pub enum SelectionType {
1098 Unspecified = 0,
1099 MultiAll = 1,
1100 Multi = 2,
1101 Single = 3,
1102 }
1103 impl SelectionType {
1104 pub fn as_str_name(&self) -> &'static str {
1109 match self {
1110 Self::Unspecified => "SELECTION_TYPE_UNSPECIFIED",
1111 Self::MultiAll => "SELECTION_TYPE_MULTI_ALL",
1112 Self::Multi => "SELECTION_TYPE_MULTI",
1113 Self::Single => "SELECTION_TYPE_SINGLE",
1114 }
1115 }
1116 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1118 match value {
1119 "SELECTION_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1120 "SELECTION_TYPE_MULTI_ALL" => Some(Self::MultiAll),
1121 "SELECTION_TYPE_MULTI" => Some(Self::Multi),
1122 "SELECTION_TYPE_SINGLE" => Some(Self::Single),
1123 _ => None,
1124 }
1125 }
1126 }
1127 }
1128 #[derive(serde::Serialize, serde::Deserialize)]
1129 #[serde(rename_all = "snake_case")]
1130 #[derive(
1131 Clone,
1132 Copy,
1133 Debug,
1134 PartialEq,
1135 Eq,
1136 Hash,
1137 PartialOrd,
1138 Ord,
1139 ::prost::Enumeration
1140 )]
1141 #[repr(i32)]
1142 pub enum RefreshStrategy {
1143 Unspecified = 0,
1144 OnDashboardLoad = 1,
1145 OnTimeFrameChange = 2,
1146 }
1147 impl RefreshStrategy {
1148 pub fn as_str_name(&self) -> &'static str {
1153 match self {
1154 Self::Unspecified => "REFRESH_STRATEGY_UNSPECIFIED",
1155 Self::OnDashboardLoad => "REFRESH_STRATEGY_ON_DASHBOARD_LOAD",
1156 Self::OnTimeFrameChange => "REFRESH_STRATEGY_ON_TIME_FRAME_CHANGE",
1157 }
1158 }
1159 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1161 match value {
1162 "REFRESH_STRATEGY_UNSPECIFIED" => Some(Self::Unspecified),
1163 "REFRESH_STRATEGY_ON_DASHBOARD_LOAD" => Some(Self::OnDashboardLoad),
1164 "REFRESH_STRATEGY_ON_TIME_FRAME_CHANGE" => Some(Self::OnTimeFrameChange),
1165 _ => None,
1166 }
1167 }
1168 }
1169}
1170#[derive(serde::Serialize, serde::Deserialize)]
1171#[serde(rename_all = "snake_case")]
1172#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1173#[repr(i32)]
1174pub enum VariableDisplayType {
1175 Unspecified = 0,
1176 LabelValue = 1,
1177 Value = 2,
1178 Nothing = 3,
1179}
1180impl VariableDisplayType {
1181 pub fn as_str_name(&self) -> &'static str {
1186 match self {
1187 Self::Unspecified => "VARIABLE_DISPLAY_TYPE_UNSPECIFIED",
1188 Self::LabelValue => "VARIABLE_DISPLAY_TYPE_LABEL_VALUE",
1189 Self::Value => "VARIABLE_DISPLAY_TYPE_VALUE",
1190 Self::Nothing => "VARIABLE_DISPLAY_TYPE_NOTHING",
1191 }
1192 }
1193 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1195 match value {
1196 "VARIABLE_DISPLAY_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1197 "VARIABLE_DISPLAY_TYPE_LABEL_VALUE" => Some(Self::LabelValue),
1198 "VARIABLE_DISPLAY_TYPE_VALUE" => Some(Self::Value),
1199 "VARIABLE_DISPLAY_TYPE_NOTHING" => Some(Self::Nothing),
1200 _ => None,
1201 }
1202 }
1203}
1204#[derive(serde::Serialize, serde::Deserialize)]
1205#[serde(rename_all = "snake_case")]
1206#[derive(Clone, PartialEq, ::prost::Message)]
1207pub struct Dashboard {
1208 #[prost(message, optional, tag = "1")]
1210 pub id: ::core::option::Option<::prost::alloc::string::String>,
1211 #[prost(message, optional, tag = "2")]
1213 pub name: ::core::option::Option<::prost::alloc::string::String>,
1214 #[prost(message, optional, tag = "3")]
1216 pub description: ::core::option::Option<::prost::alloc::string::String>,
1217 #[prost(message, optional, tag = "4")]
1219 pub layout: ::core::option::Option<Layout>,
1220 #[prost(message, repeated, tag = "5")]
1222 pub variables: ::prost::alloc::vec::Vec<Variable>,
1223 #[prost(message, repeated, tag = "6")]
1225 pub filters: ::prost::alloc::vec::Vec<Filter>,
1226 #[prost(message, repeated, tag = "11")]
1227 pub annotations: ::prost::alloc::vec::Vec<Annotation>,
1228 #[prost(oneof = "dashboard::TimeFrame", tags = "7, 8")]
1230 pub time_frame: ::core::option::Option<dashboard::TimeFrame>,
1231 #[prost(oneof = "dashboard::Folder", tags = "9, 10")]
1233 pub folder: ::core::option::Option<dashboard::Folder>,
1234 #[prost(oneof = "dashboard::AutoRefresh", tags = "12, 13, 14")]
1236 pub auto_refresh: ::core::option::Option<dashboard::AutoRefresh>,
1237}
1238pub mod dashboard {
1240 #[derive(serde::Serialize, serde::Deserialize)]
1241 #[serde(rename_all = "snake_case")]
1242 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1243 pub struct AutoRefreshOff {}
1244 #[derive(serde::Serialize, serde::Deserialize)]
1245 #[serde(rename_all = "snake_case")]
1246 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1247 pub struct AutoRefreshTwoMinutes {}
1248 #[derive(serde::Serialize, serde::Deserialize)]
1249 #[serde(rename_all = "snake_case")]
1250 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1251 pub struct AutoRefreshFiveMinutes {}
1252 #[derive(serde::Serialize, serde::Deserialize)]
1254 #[serde(rename_all = "snake_case")]
1255 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
1256 pub enum TimeFrame {
1257 #[prost(message, tag = "7")]
1259 AbsoluteTimeFrame(super::super::common::TimeFrame),
1260 #[prost(message, tag = "8")]
1262 RelativeTimeFrame(::prost_wkt_types::Duration),
1263 }
1264 #[derive(serde::Serialize, serde::Deserialize)]
1266 #[serde(rename_all = "snake_case")]
1267 #[derive(Clone, PartialEq, ::prost::Oneof)]
1268 pub enum Folder {
1269 #[prost(message, tag = "9")]
1270 FolderId(super::super::Uuid),
1271 #[prost(message, tag = "10")]
1272 FolderPath(super::FolderPath),
1273 }
1274 #[derive(serde::Serialize, serde::Deserialize)]
1276 #[serde(rename_all = "snake_case")]
1277 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
1278 pub enum AutoRefresh {
1279 #[prost(message, tag = "12")]
1280 Off(AutoRefreshOff),
1281 #[prost(message, tag = "13")]
1282 TwoMinutes(AutoRefreshTwoMinutes),
1283 #[prost(message, tag = "14")]
1284 FiveMinutes(AutoRefreshFiveMinutes),
1285 }
1286}