cx_api/generated/
com.coralogixapis.dashboards.v1.ast.rs

1// This file is @generated by prost-build.
2#[derive(serde::Serialize, serde::Deserialize)]
3#[serde(rename_all = "snake_case")]
4#[derive(Clone, PartialEq, ::prost::Message)]
5pub struct Annotation {
6    /// Annotation unique identifier
7    #[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}
16/// Nested message and enum types in `Annotation`.
17pub 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    /// Nested message and enum types in `Source`.
26    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    /// Nested message and enum types in `MetricsSource`.
53    pub mod metrics_source {
54        /// A strategy for turning metrics data into annotations
55        #[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        /// Nested message and enum types in `Strategy`.
63        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                /// Take the first data point and use its value as annotation timestamp (instead of pointing to its own timestamp)
69                #[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    /// Nested message and enum types in `LogsSource`.
94    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        /// Nested message and enum types in `Strategy`.
103        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    /// Nested message and enum types in `SpansSource`.
168    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        /// Nested message and enum types in `Strategy`.
177        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")]
232    pub source: ::core::option::Option<filter::Source>,
233    #[prost(message, optional, tag = "2")]
234    pub enabled: ::core::option::Option<bool>,
235    #[prost(message, optional, tag = "3")]
236    pub collapsed: ::core::option::Option<bool>,
237}
238/// Nested message and enum types in `Filter`.
239pub mod filter {
240    #[derive(serde::Serialize, serde::Deserialize)]
241    #[serde(rename_all = "snake_case")]
242    #[derive(Clone, PartialEq, ::prost::Message)]
243    pub struct Source {
244        #[prost(oneof = "source::Value", tags = "1, 2, 3")]
245        pub value: ::core::option::Option<source::Value>,
246    }
247    /// Nested message and enum types in `Source`.
248    pub mod source {
249        #[derive(serde::Serialize, serde::Deserialize)]
250        #[serde(rename_all = "snake_case")]
251        #[derive(Clone, PartialEq, ::prost::Oneof)]
252        pub enum Value {
253            #[prost(message, tag = "1")]
254            Logs(super::LogsFilter),
255            #[prost(message, tag = "2")]
256            Spans(super::SpansFilter),
257            #[prost(message, tag = "3")]
258            Metrics(super::MetricsFilter),
259        }
260    }
261    #[derive(serde::Serialize, serde::Deserialize)]
262    #[serde(rename_all = "snake_case")]
263    #[derive(Clone, PartialEq, ::prost::Message)]
264    pub struct LogsFilter {
265        #[prost(message, optional, tag = "1")]
266        pub field: ::core::option::Option<::prost::alloc::string::String>,
267        #[prost(message, optional, tag = "2")]
268        pub operator: ::core::option::Option<Operator>,
269        #[prost(message, optional, tag = "3")]
270        pub observation_field: ::core::option::Option<
271            super::super::common::ObservationField,
272        >,
273    }
274    #[derive(serde::Serialize, serde::Deserialize)]
275    #[serde(rename_all = "snake_case")]
276    #[derive(Clone, PartialEq, ::prost::Message)]
277    pub struct SpansFilter {
278        #[prost(message, optional, tag = "1")]
279        pub field: ::core::option::Option<super::super::common::SpanField>,
280        #[prost(message, optional, tag = "2")]
281        pub operator: ::core::option::Option<Operator>,
282        #[prost(message, optional, tag = "3")]
283        pub observation_field: ::core::option::Option<
284            super::super::common::SpanObservationField,
285        >,
286    }
287    #[derive(serde::Serialize, serde::Deserialize)]
288    #[serde(rename_all = "snake_case")]
289    #[derive(Clone, PartialEq, ::prost::Message)]
290    pub struct MetricsFilter {
291        #[prost(message, optional, tag = "1")]
292        pub metric: ::core::option::Option<::prost::alloc::string::String>,
293        #[prost(message, optional, tag = "2")]
294        pub label: ::core::option::Option<::prost::alloc::string::String>,
295        #[prost(message, optional, tag = "3")]
296        pub operator: ::core::option::Option<Operator>,
297    }
298    #[derive(serde::Serialize, serde::Deserialize)]
299    #[serde(rename_all = "snake_case")]
300    #[derive(Clone, PartialEq, ::prost::Message)]
301    pub struct Operator {
302        /// Specifies the type of the comparison operation.
303        #[prost(oneof = "operator::Value", tags = "1, 2")]
304        pub value: ::core::option::Option<operator::Value>,
305    }
306    /// Nested message and enum types in `Operator`.
307    pub mod operator {
308        /// Specifies the type of the comparison operation.
309        #[derive(serde::Serialize, serde::Deserialize)]
310        #[serde(rename_all = "snake_case")]
311        #[derive(Clone, PartialEq, ::prost::Oneof)]
312        pub enum Value {
313            #[prost(message, tag = "1")]
314            Equals(super::Equals),
315            #[prost(message, tag = "2")]
316            NotEquals(super::NotEquals),
317        }
318    }
319    #[derive(serde::Serialize, serde::Deserialize)]
320    #[serde(rename_all = "snake_case")]
321    #[derive(Clone, PartialEq, ::prost::Message)]
322    pub struct Equals {
323        #[prost(message, optional, tag = "1")]
324        pub selection: ::core::option::Option<equals::Selection>,
325    }
326    /// Nested message and enum types in `Equals`.
327    pub mod equals {
328        #[derive(serde::Serialize, serde::Deserialize)]
329        #[serde(rename_all = "snake_case")]
330        #[derive(Clone, PartialEq, ::prost::Message)]
331        pub struct Selection {
332            /// Specifies the type of selection for the equality comparison.
333            #[prost(oneof = "selection::Value", tags = "1, 2")]
334            pub value: ::core::option::Option<selection::Value>,
335        }
336        /// Nested message and enum types in `Selection`.
337        pub mod selection {
338            #[derive(serde::Serialize, serde::Deserialize)]
339            #[serde(rename_all = "snake_case")]
340            #[derive(Clone, Copy, PartialEq, ::prost::Message)]
341            pub struct AllSelection {}
342            #[derive(serde::Serialize, serde::Deserialize)]
343            #[serde(rename_all = "snake_case")]
344            #[derive(Clone, PartialEq, ::prost::Message)]
345            pub struct ListSelection {
346                #[prost(message, repeated, tag = "1")]
347                pub values: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
348            }
349            /// Specifies the type of selection for the equality comparison.
350            #[derive(serde::Serialize, serde::Deserialize)]
351            #[serde(rename_all = "snake_case")]
352            #[derive(Clone, PartialEq, ::prost::Oneof)]
353            pub enum Value {
354                #[prost(message, tag = "1")]
355                All(AllSelection),
356                #[prost(message, tag = "2")]
357                List(ListSelection),
358            }
359        }
360    }
361    #[derive(serde::Serialize, serde::Deserialize)]
362    #[serde(rename_all = "snake_case")]
363    #[derive(Clone, PartialEq, ::prost::Message)]
364    pub struct NotEquals {
365        #[prost(message, optional, tag = "1")]
366        pub selection: ::core::option::Option<not_equals::Selection>,
367    }
368    /// Nested message and enum types in `NotEquals`.
369    pub mod not_equals {
370        #[derive(serde::Serialize, serde::Deserialize)]
371        #[serde(rename_all = "snake_case")]
372        #[derive(Clone, PartialEq, ::prost::Message)]
373        pub struct Selection {
374            /// Specifies the type of selection for the non-equality comparison.
375            #[prost(oneof = "selection::Value", tags = "1")]
376            pub value: ::core::option::Option<selection::Value>,
377        }
378        /// Nested message and enum types in `Selection`.
379        pub mod selection {
380            #[derive(serde::Serialize, serde::Deserialize)]
381            #[serde(rename_all = "snake_case")]
382            #[derive(Clone, PartialEq, ::prost::Message)]
383            pub struct ListSelection {
384                #[prost(message, repeated, tag = "1")]
385                pub values: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
386            }
387            /// Specifies the type of selection for the non-equality comparison.
388            #[derive(serde::Serialize, serde::Deserialize)]
389            #[serde(rename_all = "snake_case")]
390            #[derive(Clone, PartialEq, ::prost::Oneof)]
391            pub enum Value {
392                #[prost(message, tag = "1")]
393                List(ListSelection),
394            }
395        }
396    }
397}
398#[derive(serde::Serialize, serde::Deserialize)]
399#[serde(rename_all = "snake_case")]
400#[derive(Clone, PartialEq, ::prost::Message)]
401pub struct FolderPath {
402    #[prost(string, repeated, tag = "1")]
403    pub segments: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
404}
405#[derive(serde::Serialize, serde::Deserialize)]
406#[serde(rename_all = "snake_case")]
407#[derive(Clone, PartialEq, ::prost::Message)]
408pub struct Widget {
409    /// Widget unique identifier
410    #[prost(message, optional, tag = "1")]
411    pub id: ::core::option::Option<super::Uuid>,
412    #[prost(message, optional, tag = "2")]
413    pub title: ::core::option::Option<::prost::alloc::string::String>,
414    #[prost(message, optional, tag = "3")]
415    pub description: ::core::option::Option<::prost::alloc::string::String>,
416    #[prost(message, optional, tag = "4")]
417    pub definition: ::core::option::Option<widget::Definition>,
418    /// Appearance was probably planned but is unused and deprecated
419    #[deprecated]
420    #[prost(message, optional, tag = "5")]
421    pub appearance: ::core::option::Option<widget::Appearance>,
422    /// these are existing in DB but not mapped in the API
423    #[prost(message, optional, tag = "6")]
424    pub created_at: ::core::option::Option<::prost_wkt_types::Timestamp>,
425    #[prost(message, optional, tag = "7")]
426    pub updated_at: ::core::option::Option<::prost_wkt_types::Timestamp>,
427}
428/// Nested message and enum types in `Widget`.
429pub mod widget {
430    #[derive(serde::Serialize, serde::Deserialize)]
431    #[serde(rename_all = "snake_case")]
432    #[derive(Clone, PartialEq, ::prost::Message)]
433    pub struct Definition {
434        #[prost(oneof = "definition::Value", tags = "1, 2, 3, 4, 5, 6, 7, 8")]
435        pub value: ::core::option::Option<definition::Value>,
436    }
437    /// Nested message and enum types in `Definition`.
438    pub mod definition {
439        #[derive(serde::Serialize, serde::Deserialize)]
440        #[serde(rename_all = "snake_case")]
441        #[derive(Clone, PartialEq, ::prost::Oneof)]
442        pub enum Value {
443            #[prost(message, tag = "1")]
444            LineChart(super::super::widgets::LineChart),
445            #[prost(message, tag = "2")]
446            DataTable(super::super::widgets::DataTable),
447            #[prost(message, tag = "3")]
448            Gauge(super::super::widgets::Gauge),
449            #[prost(message, tag = "4")]
450            PieChart(super::super::widgets::PieChart),
451            #[prost(message, tag = "5")]
452            BarChart(super::super::widgets::BarChart),
453            #[prost(message, tag = "6")]
454            HorizontalBarChart(super::super::widgets::HorizontalBarChart),
455            #[prost(message, tag = "7")]
456            Markdown(super::super::widgets::Markdown),
457            #[prost(message, tag = "8")]
458            Hexagon(super::super::widgets::Hexagon),
459        }
460    }
461    #[derive(serde::Serialize, serde::Deserialize)]
462    #[serde(rename_all = "snake_case")]
463    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
464    pub struct Appearance {
465        #[prost(message, optional, tag = "1")]
466        pub width: ::core::option::Option<i32>,
467    }
468}
469#[derive(serde::Serialize, serde::Deserialize)]
470#[serde(rename_all = "snake_case")]
471#[derive(Clone, PartialEq, ::prost::Message)]
472pub struct Layout {
473    #[prost(message, repeated, tag = "1")]
474    pub sections: ::prost::alloc::vec::Vec<Section>,
475}
476#[derive(serde::Serialize, serde::Deserialize)]
477#[serde(rename_all = "snake_case")]
478#[derive(Clone, PartialEq, ::prost::Message)]
479pub struct Section {
480    /// Section unique identifier
481    #[prost(message, optional, tag = "1")]
482    pub id: ::core::option::Option<super::Uuid>,
483    #[prost(message, repeated, tag = "2")]
484    pub rows: ::prost::alloc::vec::Vec<Row>,
485    #[prost(message, optional, tag = "3")]
486    pub options: ::core::option::Option<SectionOptions>,
487}
488#[derive(serde::Serialize, serde::Deserialize)]
489#[serde(rename_all = "snake_case")]
490#[derive(Clone, PartialEq, ::prost::Message)]
491pub struct Row {
492    /// Row unique identifier
493    #[prost(message, optional, tag = "1")]
494    pub id: ::core::option::Option<super::Uuid>,
495    #[prost(message, optional, tag = "2")]
496    pub appearance: ::core::option::Option<row::Appearance>,
497    #[prost(message, repeated, tag = "3")]
498    pub widgets: ::prost::alloc::vec::Vec<Widget>,
499}
500/// Nested message and enum types in `Row`.
501pub mod row {
502    #[derive(serde::Serialize, serde::Deserialize)]
503    #[serde(rename_all = "snake_case")]
504    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
505    pub struct Appearance {
506        #[prost(message, optional, tag = "1")]
507        pub height: ::core::option::Option<i32>,
508    }
509}
510#[derive(serde::Serialize, serde::Deserialize)]
511#[serde(rename_all = "snake_case")]
512#[derive(Clone, PartialEq, ::prost::Message)]
513pub struct SectionOptions {
514    #[prost(oneof = "section_options::Value", tags = "1, 2")]
515    pub value: ::core::option::Option<section_options::Value>,
516}
517/// Nested message and enum types in `SectionOptions`.
518pub mod section_options {
519    #[derive(serde::Serialize, serde::Deserialize)]
520    #[serde(rename_all = "snake_case")]
521    #[derive(Clone, PartialEq, ::prost::Oneof)]
522    pub enum Value {
523        #[prost(message, tag = "1")]
524        Internal(super::InternalSectionOptions),
525        #[prost(message, tag = "2")]
526        Custom(super::CustomSectionOptions),
527    }
528}
529#[derive(serde::Serialize, serde::Deserialize)]
530#[serde(rename_all = "snake_case")]
531#[derive(Clone, Copy, PartialEq, ::prost::Message)]
532pub struct InternalSectionOptions {}
533#[derive(serde::Serialize, serde::Deserialize)]
534#[serde(rename_all = "snake_case")]
535#[derive(Clone, PartialEq, ::prost::Message)]
536pub struct CustomSectionOptions {
537    #[prost(message, optional, tag = "1")]
538    pub name: ::core::option::Option<::prost::alloc::string::String>,
539    #[prost(message, optional, tag = "2")]
540    pub description: ::core::option::Option<::prost::alloc::string::String>,
541    #[prost(message, optional, tag = "3")]
542    pub collapsed: ::core::option::Option<bool>,
543    #[prost(message, optional, tag = "4")]
544    pub color: ::core::option::Option<SectionColor>,
545}
546#[derive(serde::Serialize, serde::Deserialize)]
547#[serde(rename_all = "snake_case")]
548#[derive(Clone, Copy, PartialEq, ::prost::Message)]
549pub struct SectionColor {
550    #[prost(oneof = "section_color::Value", tags = "1")]
551    pub value: ::core::option::Option<section_color::Value>,
552}
553/// Nested message and enum types in `SectionColor`.
554pub mod section_color {
555    #[derive(serde::Serialize, serde::Deserialize)]
556    #[serde(rename_all = "snake_case")]
557    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
558    pub enum Value {
559        #[prost(enumeration = "super::SectionPredefinedColor", tag = "1")]
560        Predefined(i32),
561    }
562}
563#[derive(serde::Serialize, serde::Deserialize)]
564#[serde(rename_all = "snake_case")]
565#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
566#[repr(i32)]
567pub enum SectionPredefinedColor {
568    Unspecified = 0,
569    Cyan = 1,
570    Green = 2,
571    Blue = 3,
572    Purple = 4,
573    Magenta = 5,
574    Pink = 6,
575    Orange = 7,
576}
577impl SectionPredefinedColor {
578    /// String value of the enum field names used in the ProtoBuf definition.
579    ///
580    /// The values are not transformed in any way and thus are considered stable
581    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
582    pub fn as_str_name(&self) -> &'static str {
583        match self {
584            Self::Unspecified => "SECTION_PREDEFINED_COLOR_UNSPECIFIED",
585            Self::Cyan => "SECTION_PREDEFINED_COLOR_CYAN",
586            Self::Green => "SECTION_PREDEFINED_COLOR_GREEN",
587            Self::Blue => "SECTION_PREDEFINED_COLOR_BLUE",
588            Self::Purple => "SECTION_PREDEFINED_COLOR_PURPLE",
589            Self::Magenta => "SECTION_PREDEFINED_COLOR_MAGENTA",
590            Self::Pink => "SECTION_PREDEFINED_COLOR_PINK",
591            Self::Orange => "SECTION_PREDEFINED_COLOR_ORANGE",
592        }
593    }
594    /// Creates an enum from field names used in the ProtoBuf definition.
595    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
596        match value {
597            "SECTION_PREDEFINED_COLOR_UNSPECIFIED" => Some(Self::Unspecified),
598            "SECTION_PREDEFINED_COLOR_CYAN" => Some(Self::Cyan),
599            "SECTION_PREDEFINED_COLOR_GREEN" => Some(Self::Green),
600            "SECTION_PREDEFINED_COLOR_BLUE" => Some(Self::Blue),
601            "SECTION_PREDEFINED_COLOR_PURPLE" => Some(Self::Purple),
602            "SECTION_PREDEFINED_COLOR_MAGENTA" => Some(Self::Magenta),
603            "SECTION_PREDEFINED_COLOR_PINK" => Some(Self::Pink),
604            "SECTION_PREDEFINED_COLOR_ORANGE" => Some(Self::Orange),
605            _ => None,
606        }
607    }
608}
609#[derive(serde::Serialize, serde::Deserialize)]
610#[serde(rename_all = "snake_case")]
611#[derive(Clone, PartialEq, ::prost::Message)]
612pub struct Variable {
613    #[prost(message, optional, tag = "1")]
614    pub name: ::core::option::Option<::prost::alloc::string::String>,
615    #[prost(message, optional, tag = "2")]
616    pub definition: ::core::option::Option<variable::Definition>,
617    #[prost(message, optional, tag = "3")]
618    pub display_name: ::core::option::Option<::prost::alloc::string::String>,
619    #[prost(message, optional, tag = "4")]
620    pub description: ::core::option::Option<::prost::alloc::string::String>,
621    #[prost(enumeration = "VariableDisplayType", tag = "5")]
622    pub display_type: i32,
623}
624/// Nested message and enum types in `Variable`.
625pub mod variable {
626    #[derive(serde::Serialize, serde::Deserialize)]
627    #[serde(rename_all = "snake_case")]
628    #[derive(Clone, PartialEq, ::prost::Message)]
629    pub struct Definition {
630        #[prost(oneof = "definition::Value", tags = "1, 2")]
631        pub value: ::core::option::Option<definition::Value>,
632    }
633    /// Nested message and enum types in `Definition`.
634    pub mod definition {
635        #[derive(serde::Serialize, serde::Deserialize)]
636        #[serde(rename_all = "snake_case")]
637        #[derive(Clone, PartialEq, ::prost::Oneof)]
638        pub enum Value {
639            #[prost(message, tag = "1")]
640            Constant(super::super::Constant),
641            #[prost(message, tag = "2")]
642            MultiSelect(super::super::MultiSelect),
643        }
644    }
645}
646#[derive(serde::Serialize, serde::Deserialize)]
647#[serde(rename_all = "snake_case")]
648#[derive(Clone, PartialEq, ::prost::Message)]
649pub struct Constant {
650    #[prost(message, optional, tag = "1")]
651    pub value: ::core::option::Option<::prost::alloc::string::String>,
652}
653#[derive(serde::Serialize, serde::Deserialize)]
654#[serde(rename_all = "snake_case")]
655#[derive(Clone, PartialEq, ::prost::Message)]
656pub struct MultiSelect {
657    #[deprecated]
658    #[prost(message, repeated, tag = "1")]
659    pub selected: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
660    #[prost(message, optional, tag = "2")]
661    pub source: ::core::option::Option<multi_select::Source>,
662    #[prost(message, optional, tag = "3")]
663    pub selection: ::core::option::Option<multi_select::Selection>,
664    #[prost(enumeration = "super::common::OrderDirection", tag = "4")]
665    pub values_order_direction: i32,
666    #[prost(message, optional, tag = "5")]
667    pub selection_options: ::core::option::Option<
668        multi_select::VariableSelectionOptions,
669    >,
670}
671/// Nested message and enum types in `MultiSelect`.
672pub mod multi_select {
673    #[derive(serde::Serialize, serde::Deserialize)]
674    #[serde(rename_all = "snake_case")]
675    #[derive(Clone, PartialEq, ::prost::Message)]
676    pub struct Source {
677        #[prost(oneof = "source::Value", tags = "1, 2, 3, 4, 5")]
678        pub value: ::core::option::Option<source::Value>,
679    }
680    /// Nested message and enum types in `Source`.
681    pub mod source {
682        #[derive(serde::Serialize, serde::Deserialize)]
683        #[serde(rename_all = "snake_case")]
684        #[derive(Clone, PartialEq, ::prost::Oneof)]
685        pub enum Value {
686            #[prost(message, tag = "1")]
687            LogsPath(super::LogsPathSource),
688            #[prost(message, tag = "2")]
689            MetricLabel(super::MetricLabelSource),
690            #[prost(message, tag = "3")]
691            ConstantList(super::ConstantListSource),
692            #[prost(message, tag = "4")]
693            SpanField(super::SpanFieldSource),
694            #[prost(message, tag = "5")]
695            Query(super::QuerySource),
696        }
697    }
698    #[derive(serde::Serialize, serde::Deserialize)]
699    #[serde(rename_all = "snake_case")]
700    #[derive(Clone, PartialEq, ::prost::Message)]
701    pub struct LogsPathSource {
702        #[prost(message, optional, tag = "1")]
703        pub value: ::core::option::Option<::prost::alloc::string::String>,
704        #[prost(message, optional, tag = "3")]
705        pub observation_field: ::core::option::Option<
706            super::super::common::ObservationField,
707        >,
708    }
709    #[derive(serde::Serialize, serde::Deserialize)]
710    #[serde(rename_all = "snake_case")]
711    #[derive(Clone, PartialEq, ::prost::Message)]
712    pub struct MetricLabelSource {
713        #[prost(message, optional, tag = "1")]
714        pub metric_name: ::core::option::Option<::prost::alloc::string::String>,
715        #[prost(message, optional, tag = "2")]
716        pub label: ::core::option::Option<::prost::alloc::string::String>,
717    }
718    #[derive(serde::Serialize, serde::Deserialize)]
719    #[serde(rename_all = "snake_case")]
720    #[derive(Clone, PartialEq, ::prost::Message)]
721    pub struct SpanFieldSource {
722        #[prost(message, optional, tag = "1")]
723        pub value: ::core::option::Option<super::super::common::SpanField>,
724    }
725    #[derive(serde::Serialize, serde::Deserialize)]
726    #[serde(rename_all = "snake_case")]
727    #[derive(Clone, PartialEq, ::prost::Message)]
728    pub struct ConstantListSource {
729        #[prost(message, repeated, tag = "1")]
730        pub values: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
731    }
732    #[derive(serde::Serialize, serde::Deserialize)]
733    #[serde(rename_all = "snake_case")]
734    #[derive(Clone, PartialEq, ::prost::Message)]
735    pub struct QuerySource {
736        #[prost(message, optional, tag = "1")]
737        pub query: ::core::option::Option<Query>,
738        #[prost(enumeration = "RefreshStrategy", tag = "2")]
739        pub refresh_strategy: i32,
740        #[prost(message, optional, tag = "3")]
741        pub value_display_options: ::core::option::Option<ValueDisplayOptions>,
742    }
743    #[derive(serde::Serialize, serde::Deserialize)]
744    #[serde(rename_all = "snake_case")]
745    #[derive(Clone, PartialEq, ::prost::Message)]
746    pub struct Query {
747        #[prost(oneof = "query::Value", tags = "1, 2, 3")]
748        pub value: ::core::option::Option<query::Value>,
749    }
750    /// Nested message and enum types in `Query`.
751    pub mod query {
752        #[derive(serde::Serialize, serde::Deserialize)]
753        #[serde(rename_all = "snake_case")]
754        #[derive(Clone, PartialEq, ::prost::Message)]
755        pub struct LogsQuery {
756            #[prost(message, optional, tag = "1")]
757            pub r#type: ::core::option::Option<logs_query::Type>,
758        }
759        /// Nested message and enum types in `LogsQuery`.
760        pub mod logs_query {
761            #[derive(serde::Serialize, serde::Deserialize)]
762            #[serde(rename_all = "snake_case")]
763            #[derive(Clone, PartialEq, ::prost::Message)]
764            pub struct Type {
765                #[prost(oneof = "r#type::Value", tags = "1, 2")]
766                pub value: ::core::option::Option<r#type::Value>,
767            }
768            /// Nested message and enum types in `Type`.
769            pub mod r#type {
770                #[derive(serde::Serialize, serde::Deserialize)]
771                #[serde(rename_all = "snake_case")]
772                #[derive(Clone, PartialEq, ::prost::Message)]
773                pub struct FieldName {
774                    #[prost(message, optional, tag = "1")]
775                    pub log_regex: ::core::option::Option<
776                        ::prost::alloc::string::String,
777                    >,
778                }
779                #[derive(serde::Serialize, serde::Deserialize)]
780                #[serde(rename_all = "snake_case")]
781                #[derive(Clone, PartialEq, ::prost::Message)]
782                pub struct FieldValue {
783                    #[prost(message, optional, tag = "3")]
784                    pub observation_field: ::core::option::Option<
785                        super::super::super::super::super::common::ObservationField,
786                    >,
787                }
788                #[derive(serde::Serialize, serde::Deserialize)]
789                #[serde(rename_all = "snake_case")]
790                #[derive(Clone, PartialEq, ::prost::Oneof)]
791                pub enum Value {
792                    #[prost(message, tag = "1")]
793                    FieldName(FieldName),
794                    #[prost(message, tag = "2")]
795                    FieldValue(FieldValue),
796                }
797            }
798        }
799        #[derive(serde::Serialize, serde::Deserialize)]
800        #[serde(rename_all = "snake_case")]
801        #[derive(Clone, PartialEq, ::prost::Message)]
802        pub struct SpansQuery {
803            #[prost(message, optional, tag = "1")]
804            pub r#type: ::core::option::Option<spans_query::Type>,
805        }
806        /// Nested message and enum types in `SpansQuery`.
807        pub mod spans_query {
808            #[derive(serde::Serialize, serde::Deserialize)]
809            #[serde(rename_all = "snake_case")]
810            #[derive(Clone, PartialEq, ::prost::Message)]
811            pub struct Type {
812                #[prost(oneof = "r#type::Value", tags = "1, 2")]
813                pub value: ::core::option::Option<r#type::Value>,
814            }
815            /// Nested message and enum types in `Type`.
816            pub mod r#type {
817                #[derive(serde::Serialize, serde::Deserialize)]
818                #[serde(rename_all = "snake_case")]
819                #[derive(Clone, PartialEq, ::prost::Message)]
820                pub struct FieldName {
821                    #[prost(message, optional, tag = "1")]
822                    pub span_regex: ::core::option::Option<
823                        ::prost::alloc::string::String,
824                    >,
825                }
826                #[derive(serde::Serialize, serde::Deserialize)]
827                #[serde(rename_all = "snake_case")]
828                #[derive(Clone, PartialEq, ::prost::Message)]
829                pub struct FieldValue {
830                    #[prost(message, optional, tag = "1")]
831                    pub value: ::core::option::Option<
832                        super::super::super::super::super::common::SpanField,
833                    >,
834                    #[prost(message, optional, tag = "2")]
835                    pub observation_field: ::core::option::Option<
836                        super::super::super::super::super::common::ObservationField,
837                    >,
838                }
839                #[derive(serde::Serialize, serde::Deserialize)]
840                #[serde(rename_all = "snake_case")]
841                #[derive(Clone, PartialEq, ::prost::Oneof)]
842                pub enum Value {
843                    #[prost(message, tag = "1")]
844                    FieldName(FieldName),
845                    #[prost(message, tag = "2")]
846                    FieldValue(FieldValue),
847                }
848            }
849        }
850        #[derive(serde::Serialize, serde::Deserialize)]
851        #[serde(rename_all = "snake_case")]
852        #[derive(Clone, PartialEq, ::prost::Message)]
853        pub struct MetricsQuery {
854            #[prost(message, optional, tag = "1")]
855            pub r#type: ::core::option::Option<metrics_query::Type>,
856        }
857        /// Nested message and enum types in `MetricsQuery`.
858        pub mod metrics_query {
859            #[derive(serde::Serialize, serde::Deserialize)]
860            #[serde(rename_all = "snake_case")]
861            #[derive(Clone, PartialEq, ::prost::Message)]
862            pub struct Type {
863                #[prost(oneof = "r#type::Value", tags = "1, 2, 3")]
864                pub value: ::core::option::Option<r#type::Value>,
865            }
866            /// Nested message and enum types in `Type`.
867            pub mod r#type {
868                #[derive(serde::Serialize, serde::Deserialize)]
869                #[serde(rename_all = "snake_case")]
870                #[derive(Clone, PartialEq, ::prost::Message)]
871                pub struct MetricName {
872                    #[prost(message, optional, tag = "1")]
873                    pub metric_regex: ::core::option::Option<
874                        ::prost::alloc::string::String,
875                    >,
876                }
877                #[derive(serde::Serialize, serde::Deserialize)]
878                #[serde(rename_all = "snake_case")]
879                #[derive(Clone, PartialEq, ::prost::Message)]
880                pub struct LabelName {
881                    #[prost(message, optional, tag = "1")]
882                    pub metric_regex: ::core::option::Option<
883                        ::prost::alloc::string::String,
884                    >,
885                }
886                #[derive(serde::Serialize, serde::Deserialize)]
887                #[serde(rename_all = "snake_case")]
888                #[derive(Clone, PartialEq, ::prost::Message)]
889                pub struct LabelValue {
890                    #[prost(message, optional, tag = "1")]
891                    pub metric_name: ::core::option::Option<super::StringOrVariable>,
892                    #[prost(message, optional, tag = "2")]
893                    pub label_name: ::core::option::Option<super::StringOrVariable>,
894                    #[prost(message, repeated, tag = "3")]
895                    pub label_filters: ::prost::alloc::vec::Vec<
896                        super::MetricsLabelFilter,
897                    >,
898                }
899                #[derive(serde::Serialize, serde::Deserialize)]
900                #[serde(rename_all = "snake_case")]
901                #[derive(Clone, PartialEq, ::prost::Oneof)]
902                pub enum Value {
903                    #[prost(message, tag = "1")]
904                    MetricName(MetricName),
905                    #[prost(message, tag = "2")]
906                    LabelName(LabelName),
907                    #[prost(message, tag = "3")]
908                    LabelValue(LabelValue),
909                }
910            }
911            #[derive(serde::Serialize, serde::Deserialize)]
912            #[serde(rename_all = "snake_case")]
913            #[derive(Clone, PartialEq, ::prost::Message)]
914            pub struct StringOrVariable {
915                #[prost(oneof = "string_or_variable::Value", tags = "1, 2")]
916                pub value: ::core::option::Option<string_or_variable::Value>,
917            }
918            /// Nested message and enum types in `StringOrVariable`.
919            pub mod string_or_variable {
920                #[derive(serde::Serialize, serde::Deserialize)]
921                #[serde(rename_all = "snake_case")]
922                #[derive(Clone, PartialEq, ::prost::Oneof)]
923                pub enum Value {
924                    #[prost(message, tag = "1")]
925                    StringValue(::prost::alloc::string::String),
926                    #[prost(message, tag = "2")]
927                    VariableName(::prost::alloc::string::String),
928                }
929            }
930            #[derive(serde::Serialize, serde::Deserialize)]
931            #[serde(rename_all = "snake_case")]
932            #[derive(Clone, PartialEq, ::prost::Message)]
933            pub struct MetricsLabelFilter {
934                #[prost(message, optional, tag = "1")]
935                pub metric: ::core::option::Option<StringOrVariable>,
936                #[prost(message, optional, tag = "2")]
937                pub label: ::core::option::Option<StringOrVariable>,
938                #[prost(message, optional, tag = "3")]
939                pub operator: ::core::option::Option<Operator>,
940            }
941            #[derive(serde::Serialize, serde::Deserialize)]
942            #[serde(rename_all = "snake_case")]
943            #[derive(Clone, PartialEq, ::prost::Message)]
944            pub struct Operator {
945                #[prost(oneof = "operator::Value", tags = "1, 2")]
946                pub value: ::core::option::Option<operator::Value>,
947            }
948            /// Nested message and enum types in `Operator`.
949            pub mod operator {
950                #[derive(serde::Serialize, serde::Deserialize)]
951                #[serde(rename_all = "snake_case")]
952                #[derive(Clone, PartialEq, ::prost::Oneof)]
953                pub enum Value {
954                    #[prost(message, tag = "1")]
955                    Equals(super::Equals),
956                    #[prost(message, tag = "2")]
957                    NotEquals(super::NotEquals),
958                }
959            }
960            #[derive(serde::Serialize, serde::Deserialize)]
961            #[serde(rename_all = "snake_case")]
962            #[derive(Clone, PartialEq, ::prost::Message)]
963            pub struct Equals {
964                #[prost(message, optional, tag = "1")]
965                pub selection: ::core::option::Option<Selection>,
966            }
967            #[derive(serde::Serialize, serde::Deserialize)]
968            #[serde(rename_all = "snake_case")]
969            #[derive(Clone, PartialEq, ::prost::Message)]
970            pub struct NotEquals {
971                #[prost(message, optional, tag = "1")]
972                pub selection: ::core::option::Option<Selection>,
973            }
974            #[derive(serde::Serialize, serde::Deserialize)]
975            #[serde(rename_all = "snake_case")]
976            #[derive(Clone, PartialEq, ::prost::Message)]
977            pub struct Selection {
978                #[prost(oneof = "selection::Value", tags = "1")]
979                pub value: ::core::option::Option<selection::Value>,
980            }
981            /// Nested message and enum types in `Selection`.
982            pub mod selection {
983                #[derive(serde::Serialize, serde::Deserialize)]
984                #[serde(rename_all = "snake_case")]
985                #[derive(Clone, PartialEq, ::prost::Message)]
986                pub struct ListSelection {
987                    #[prost(message, repeated, tag = "1")]
988                    pub values: ::prost::alloc::vec::Vec<super::StringOrVariable>,
989                }
990                #[derive(serde::Serialize, serde::Deserialize)]
991                #[serde(rename_all = "snake_case")]
992                #[derive(Clone, PartialEq, ::prost::Oneof)]
993                pub enum Value {
994                    #[prost(message, tag = "1")]
995                    List(ListSelection),
996                }
997            }
998        }
999        #[derive(serde::Serialize, serde::Deserialize)]
1000        #[serde(rename_all = "snake_case")]
1001        #[derive(Clone, PartialEq, ::prost::Oneof)]
1002        pub enum Value {
1003            #[prost(message, tag = "1")]
1004            LogsQuery(LogsQuery),
1005            #[prost(message, tag = "2")]
1006            MetricsQuery(MetricsQuery),
1007            #[prost(message, tag = "3")]
1008            SpansQuery(SpansQuery),
1009        }
1010    }
1011    #[derive(serde::Serialize, serde::Deserialize)]
1012    #[serde(rename_all = "snake_case")]
1013    #[derive(Clone, PartialEq, ::prost::Message)]
1014    pub struct ValueDisplayOptions {
1015        #[prost(message, optional, tag = "1")]
1016        pub value_regex: ::core::option::Option<::prost::alloc::string::String>,
1017        #[prost(message, optional, tag = "2")]
1018        pub label_regex: ::core::option::Option<::prost::alloc::string::String>,
1019    }
1020    #[derive(serde::Serialize, serde::Deserialize)]
1021    #[serde(rename_all = "snake_case")]
1022    #[derive(Clone, PartialEq, ::prost::Message)]
1023    pub struct Selection {
1024        #[prost(oneof = "selection::Value", tags = "1, 2")]
1025        pub value: ::core::option::Option<selection::Value>,
1026    }
1027    /// Nested message and enum types in `Selection`.
1028    pub mod selection {
1029        #[derive(serde::Serialize, serde::Deserialize)]
1030        #[serde(rename_all = "snake_case")]
1031        #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1032        pub struct AllSelection {}
1033        #[derive(serde::Serialize, serde::Deserialize)]
1034        #[serde(rename_all = "snake_case")]
1035        #[derive(Clone, PartialEq, ::prost::Message)]
1036        pub struct ListSelection {
1037            #[prost(message, repeated, tag = "1")]
1038            pub values: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1039            #[prost(message, repeated, tag = "2")]
1040            pub labels: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1041        }
1042        #[derive(serde::Serialize, serde::Deserialize)]
1043        #[serde(rename_all = "snake_case")]
1044        #[derive(Clone, PartialEq, ::prost::Oneof)]
1045        pub enum Value {
1046            #[prost(message, tag = "1")]
1047            All(AllSelection),
1048            #[prost(message, tag = "2")]
1049            List(ListSelection),
1050        }
1051    }
1052    #[derive(serde::Serialize, serde::Deserialize)]
1053    #[serde(rename_all = "snake_case")]
1054    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1055    pub struct VariableSelectionOptions {
1056        #[prost(enumeration = "variable_selection_options::SelectionType", tag = "1")]
1057        pub selection_type: i32,
1058    }
1059    /// Nested message and enum types in `VariableSelectionOptions`.
1060    pub mod variable_selection_options {
1061        #[derive(serde::Serialize, serde::Deserialize)]
1062        #[serde(rename_all = "snake_case")]
1063        #[derive(
1064            Clone,
1065            Copy,
1066            Debug,
1067            PartialEq,
1068            Eq,
1069            Hash,
1070            PartialOrd,
1071            Ord,
1072            ::prost::Enumeration
1073        )]
1074        #[repr(i32)]
1075        pub enum SelectionType {
1076            Unspecified = 0,
1077            MultiAll = 1,
1078            Multi = 2,
1079            Single = 3,
1080        }
1081        impl SelectionType {
1082            /// String value of the enum field names used in the ProtoBuf definition.
1083            ///
1084            /// The values are not transformed in any way and thus are considered stable
1085            /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1086            pub fn as_str_name(&self) -> &'static str {
1087                match self {
1088                    Self::Unspecified => "SELECTION_TYPE_UNSPECIFIED",
1089                    Self::MultiAll => "SELECTION_TYPE_MULTI_ALL",
1090                    Self::Multi => "SELECTION_TYPE_MULTI",
1091                    Self::Single => "SELECTION_TYPE_SINGLE",
1092                }
1093            }
1094            /// Creates an enum from field names used in the ProtoBuf definition.
1095            pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1096                match value {
1097                    "SELECTION_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1098                    "SELECTION_TYPE_MULTI_ALL" => Some(Self::MultiAll),
1099                    "SELECTION_TYPE_MULTI" => Some(Self::Multi),
1100                    "SELECTION_TYPE_SINGLE" => Some(Self::Single),
1101                    _ => None,
1102                }
1103            }
1104        }
1105    }
1106    #[derive(serde::Serialize, serde::Deserialize)]
1107    #[serde(rename_all = "snake_case")]
1108    #[derive(
1109        Clone,
1110        Copy,
1111        Debug,
1112        PartialEq,
1113        Eq,
1114        Hash,
1115        PartialOrd,
1116        Ord,
1117        ::prost::Enumeration
1118    )]
1119    #[repr(i32)]
1120    pub enum RefreshStrategy {
1121        Unspecified = 0,
1122        OnDashboardLoad = 1,
1123        OnTimeFrameChange = 2,
1124    }
1125    impl RefreshStrategy {
1126        /// String value of the enum field names used in the ProtoBuf definition.
1127        ///
1128        /// The values are not transformed in any way and thus are considered stable
1129        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1130        pub fn as_str_name(&self) -> &'static str {
1131            match self {
1132                Self::Unspecified => "REFRESH_STRATEGY_UNSPECIFIED",
1133                Self::OnDashboardLoad => "REFRESH_STRATEGY_ON_DASHBOARD_LOAD",
1134                Self::OnTimeFrameChange => "REFRESH_STRATEGY_ON_TIME_FRAME_CHANGE",
1135            }
1136        }
1137        /// Creates an enum from field names used in the ProtoBuf definition.
1138        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1139            match value {
1140                "REFRESH_STRATEGY_UNSPECIFIED" => Some(Self::Unspecified),
1141                "REFRESH_STRATEGY_ON_DASHBOARD_LOAD" => Some(Self::OnDashboardLoad),
1142                "REFRESH_STRATEGY_ON_TIME_FRAME_CHANGE" => Some(Self::OnTimeFrameChange),
1143                _ => None,
1144            }
1145        }
1146    }
1147}
1148#[derive(serde::Serialize, serde::Deserialize)]
1149#[serde(rename_all = "snake_case")]
1150#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1151#[repr(i32)]
1152pub enum VariableDisplayType {
1153    Unspecified = 0,
1154    LabelValue = 1,
1155    Value = 2,
1156    Nothing = 3,
1157}
1158impl VariableDisplayType {
1159    /// String value of the enum field names used in the ProtoBuf definition.
1160    ///
1161    /// The values are not transformed in any way and thus are considered stable
1162    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1163    pub fn as_str_name(&self) -> &'static str {
1164        match self {
1165            Self::Unspecified => "VARIABLE_DISPLAY_TYPE_UNSPECIFIED",
1166            Self::LabelValue => "VARIABLE_DISPLAY_TYPE_LABEL_VALUE",
1167            Self::Value => "VARIABLE_DISPLAY_TYPE_VALUE",
1168            Self::Nothing => "VARIABLE_DISPLAY_TYPE_NOTHING",
1169        }
1170    }
1171    /// Creates an enum from field names used in the ProtoBuf definition.
1172    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1173        match value {
1174            "VARIABLE_DISPLAY_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1175            "VARIABLE_DISPLAY_TYPE_LABEL_VALUE" => Some(Self::LabelValue),
1176            "VARIABLE_DISPLAY_TYPE_VALUE" => Some(Self::Value),
1177            "VARIABLE_DISPLAY_TYPE_NOTHING" => Some(Self::Nothing),
1178            _ => None,
1179        }
1180    }
1181}
1182#[derive(serde::Serialize, serde::Deserialize)]
1183#[serde(rename_all = "snake_case")]
1184#[derive(Clone, PartialEq, ::prost::Message)]
1185pub struct Dashboard {
1186    /// A unique identifier of the dashboard.
1187    #[prost(message, optional, tag = "1")]
1188    pub id: ::core::option::Option<::prost::alloc::string::String>,
1189    /// The display name of the dashboard.
1190    #[prost(message, optional, tag = "2")]
1191    pub name: ::core::option::Option<::prost::alloc::string::String>,
1192    /// A brief description or summary of the dashboard's purpose or content.
1193    #[prost(message, optional, tag = "3")]
1194    pub description: ::core::option::Option<::prost::alloc::string::String>,
1195    /// The layout configuration for the dashboard's visual elements.
1196    #[prost(message, optional, tag = "4")]
1197    pub layout: ::core::option::Option<Layout>,
1198    /// A list of variables that can be used within the dashboard for dynamic content.
1199    #[prost(message, repeated, tag = "5")]
1200    pub variables: ::prost::alloc::vec::Vec<Variable>,
1201    /// A list of filters that can be applied to the dashboard's data.
1202    #[prost(message, repeated, tag = "6")]
1203    pub filters: ::prost::alloc::vec::Vec<Filter>,
1204    #[prost(message, repeated, tag = "11")]
1205    pub annotations: ::prost::alloc::vec::Vec<Annotation>,
1206    /// Specifies the time frame for the dashboard's data. Can be either absolute or relative.
1207    #[prost(oneof = "dashboard::TimeFrame", tags = "7, 8")]
1208    pub time_frame: ::core::option::Option<dashboard::TimeFrame>,
1209    /// A polymorphic field for the dashboard's folder. Either a folder ID or a folder path is supported.
1210    #[prost(oneof = "dashboard::Folder", tags = "9, 10")]
1211    pub folder: ::core::option::Option<dashboard::Folder>,
1212    /// The auto refresh interval for the dashboard.
1213    #[prost(oneof = "dashboard::AutoRefresh", tags = "12, 13, 14")]
1214    pub auto_refresh: ::core::option::Option<dashboard::AutoRefresh>,
1215}
1216/// Nested message and enum types in `Dashboard`.
1217pub mod dashboard {
1218    #[derive(serde::Serialize, serde::Deserialize)]
1219    #[serde(rename_all = "snake_case")]
1220    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1221    pub struct AutoRefreshOff {}
1222    #[derive(serde::Serialize, serde::Deserialize)]
1223    #[serde(rename_all = "snake_case")]
1224    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1225    pub struct AutoRefreshTwoMinutes {}
1226    #[derive(serde::Serialize, serde::Deserialize)]
1227    #[serde(rename_all = "snake_case")]
1228    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1229    pub struct AutoRefreshFiveMinutes {}
1230    /// Specifies the time frame for the dashboard's data. Can be either absolute or relative.
1231    #[derive(serde::Serialize, serde::Deserialize)]
1232    #[serde(rename_all = "snake_case")]
1233    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
1234    pub enum TimeFrame {
1235        /// Absolute time frame specifying a fixed start and end time.
1236        #[prost(message, tag = "7")]
1237        AbsoluteTimeFrame(super::super::common::TimeFrame),
1238        /// Relative time frame specifying a duration from the current time.
1239        #[prost(message, tag = "8")]
1240        RelativeTimeFrame(::prost_wkt_types::Duration),
1241    }
1242    /// A polymorphic field for the dashboard's folder. Either a folder ID or a folder path is supported.
1243    #[derive(serde::Serialize, serde::Deserialize)]
1244    #[serde(rename_all = "snake_case")]
1245    #[derive(Clone, PartialEq, ::prost::Oneof)]
1246    pub enum Folder {
1247        #[prost(message, tag = "9")]
1248        FolderId(super::super::Uuid),
1249        #[prost(message, tag = "10")]
1250        FolderPath(super::FolderPath),
1251    }
1252    /// The auto refresh interval for the dashboard.
1253    #[derive(serde::Serialize, serde::Deserialize)]
1254    #[serde(rename_all = "snake_case")]
1255    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
1256    pub enum AutoRefresh {
1257        #[prost(message, tag = "12")]
1258        Off(AutoRefreshOff),
1259        #[prost(message, tag = "13")]
1260        TwoMinutes(AutoRefreshTwoMinutes),
1261        #[prost(message, tag = "14")]
1262        FiveMinutes(AutoRefreshFiveMinutes),
1263    }
1264}