cx_api/generated/
com.coralogixapis.dashboards.v1.ast.widgets.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 BarChart {
6    #[prost(message, optional, tag = "1")]
7    pub query: ::core::option::Option<bar_chart::Query>,
8    #[prost(message, optional, tag = "2")]
9    pub max_bars_per_chart: ::core::option::Option<i32>,
10    #[prost(message, optional, tag = "3")]
11    pub group_name_template: ::core::option::Option<::prost::alloc::string::String>,
12    #[prost(message, optional, tag = "4")]
13    pub stack_definition: ::core::option::Option<bar_chart::StackDefinition>,
14    #[prost(enumeration = "common::ScaleType", tag = "5")]
15    pub scale_type: i32,
16    #[prost(message, optional, tag = "6")]
17    pub colors_by: ::core::option::Option<common::ColorsBy>,
18    #[prost(message, optional, tag = "7")]
19    pub x_axis: ::core::option::Option<bar_chart::XAxis>,
20    #[prost(enumeration = "common::Unit", tag = "8")]
21    pub unit: i32,
22    #[prost(enumeration = "common::SortByType", tag = "9")]
23    pub sort_by: i32,
24    #[prost(message, optional, tag = "10")]
25    pub color_scheme: ::core::option::Option<::prost::alloc::string::String>,
26    #[prost(enumeration = "common::DataModeType", tag = "11")]
27    pub data_mode_type: i32,
28    #[prost(enumeration = "BarValueDisplay", tag = "12")]
29    pub bar_value_display: i32,
30    #[prost(message, optional, tag = "13")]
31    pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
32    #[prost(message, optional, tag = "14")]
33    pub decimal: ::core::option::Option<i32>,
34    #[prost(message, optional, tag = "15")]
35    pub legend: ::core::option::Option<common::Legend>,
36    #[prost(message, optional, tag = "16")]
37    pub hash_colors: ::core::option::Option<bool>,
38    #[prost(message, optional, tag = "17")]
39    pub y_axis_min: ::core::option::Option<f32>,
40    #[prost(message, optional, tag = "18")]
41    pub y_axis_max: ::core::option::Option<f32>,
42    #[prost(message, optional, tag = "19")]
43    pub decimal_precision: ::core::option::Option<bool>,
44}
45/// Nested message and enum types in `BarChart`.
46pub mod bar_chart {
47    #[derive(serde::Serialize, serde::Deserialize)]
48    #[serde(rename_all = "snake_case")]
49    #[derive(Clone, PartialEq, ::prost::Message)]
50    pub struct Query {
51        #[prost(oneof = "query::Value", tags = "1, 2, 3, 4")]
52        pub value: ::core::option::Option<query::Value>,
53    }
54    /// Nested message and enum types in `Query`.
55    pub mod query {
56        #[derive(serde::Serialize, serde::Deserialize)]
57        #[serde(rename_all = "snake_case")]
58        #[derive(Clone, PartialEq, ::prost::Oneof)]
59        pub enum Value {
60            #[prost(message, tag = "1")]
61            Logs(super::LogsQuery),
62            #[prost(message, tag = "2")]
63            Spans(super::SpansQuery),
64            #[prost(message, tag = "3")]
65            Metrics(super::MetricsQuery),
66            #[prost(message, tag = "4")]
67            Dataprime(super::DataprimeQuery),
68        }
69    }
70    #[derive(serde::Serialize, serde::Deserialize)]
71    #[serde(rename_all = "snake_case")]
72    #[derive(Clone, PartialEq, ::prost::Message)]
73    pub struct StackDefinition {
74        #[prost(message, optional, tag = "1")]
75        pub max_slices_per_bar: ::core::option::Option<i32>,
76        #[prost(message, optional, tag = "2")]
77        pub stack_name_template: ::core::option::Option<::prost::alloc::string::String>,
78    }
79    #[derive(serde::Serialize, serde::Deserialize)]
80    #[serde(rename_all = "snake_case")]
81    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
82    pub struct XAxis {
83        #[prost(oneof = "x_axis::Type", tags = "1, 2")]
84        pub r#type: ::core::option::Option<x_axis::Type>,
85    }
86    /// Nested message and enum types in `XAxis`.
87    pub mod x_axis {
88        #[derive(serde::Serialize, serde::Deserialize)]
89        #[serde(rename_all = "snake_case")]
90        #[derive(Clone, Copy, PartialEq, ::prost::Message)]
91        pub struct XAxisByValue {}
92        #[derive(serde::Serialize, serde::Deserialize)]
93        #[serde(rename_all = "snake_case")]
94        #[derive(Clone, Copy, PartialEq, ::prost::Message)]
95        pub struct XAxisByTime {
96            #[prost(message, optional, tag = "1")]
97            pub interval: ::core::option::Option<::prost_wkt_types::Duration>,
98            #[prost(message, optional, tag = "2")]
99            pub buckets_presented: ::core::option::Option<i32>,
100        }
101        #[derive(serde::Serialize, serde::Deserialize)]
102        #[serde(rename_all = "snake_case")]
103        #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
104        pub enum Type {
105            #[prost(message, tag = "1")]
106            Value(XAxisByValue),
107            #[prost(message, tag = "2")]
108            Time(XAxisByTime),
109        }
110    }
111    #[derive(serde::Serialize, serde::Deserialize)]
112    #[serde(rename_all = "snake_case")]
113    #[derive(Clone, PartialEq, ::prost::Message)]
114    pub struct LogsQuery {
115        #[prost(message, optional, tag = "1")]
116        pub lucene_query: ::core::option::Option<
117            super::super::super::common::LuceneQuery,
118        >,
119        #[prost(message, optional, tag = "2")]
120        pub aggregation: ::core::option::Option<
121            super::super::super::common::LogsAggregation,
122        >,
123        #[prost(message, repeated, tag = "3")]
124        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::LogsFilter>,
125        #[prost(message, repeated, tag = "4")]
126        pub group_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
127        #[prost(message, optional, tag = "5")]
128        pub stacked_group_name: ::core::option::Option<::prost::alloc::string::String>,
129        #[prost(message, repeated, tag = "6")]
130        pub group_names_fields: ::prost::alloc::vec::Vec<
131            super::super::super::common::ObservationField,
132        >,
133        #[prost(message, optional, tag = "7")]
134        pub stacked_group_name_field: ::core::option::Option<
135            super::super::super::common::ObservationField,
136        >,
137        #[prost(message, optional, tag = "8")]
138        pub time_frame: ::core::option::Option<
139            super::super::super::common::TimeFrameSelect,
140        >,
141    }
142    #[derive(serde::Serialize, serde::Deserialize)]
143    #[serde(rename_all = "snake_case")]
144    #[derive(Clone, PartialEq, ::prost::Message)]
145    pub struct SpansQuery {
146        #[prost(message, optional, tag = "1")]
147        pub lucene_query: ::core::option::Option<
148            super::super::super::common::LuceneQuery,
149        >,
150        #[prost(message, optional, tag = "2")]
151        pub aggregation: ::core::option::Option<
152            super::super::super::common::SpansAggregation,
153        >,
154        #[prost(message, repeated, tag = "3")]
155        pub filters: ::prost::alloc::vec::Vec<
156            super::super::filters::filter::SpansFilter,
157        >,
158        #[prost(message, repeated, tag = "4")]
159        pub group_names: ::prost::alloc::vec::Vec<
160            super::super::super::common::SpanField,
161        >,
162        #[prost(message, optional, tag = "5")]
163        pub stacked_group_name: ::core::option::Option<
164            super::super::super::common::SpanField,
165        >,
166        #[prost(message, optional, tag = "6")]
167        pub time_frame: ::core::option::Option<
168            super::super::super::common::TimeFrameSelect,
169        >,
170        #[prost(message, repeated, tag = "7")]
171        pub group_names_fields: ::prost::alloc::vec::Vec<
172            super::super::super::common::SpanObservationField,
173        >,
174        #[prost(message, optional, tag = "8")]
175        pub stacked_group_name_field: ::core::option::Option<
176            super::super::super::common::SpanObservationField,
177        >,
178    }
179    #[derive(serde::Serialize, serde::Deserialize)]
180    #[serde(rename_all = "snake_case")]
181    #[derive(Clone, PartialEq, ::prost::Message)]
182    pub struct MetricsQuery {
183        #[prost(message, optional, tag = "1")]
184        pub promql_query: ::core::option::Option<
185            super::super::super::common::PromQlQuery,
186        >,
187        #[prost(message, repeated, tag = "2")]
188        pub filters: ::prost::alloc::vec::Vec<
189            super::super::filters::filter::MetricsFilter,
190        >,
191        #[prost(message, repeated, tag = "3")]
192        pub group_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
193        #[prost(message, optional, tag = "4")]
194        pub stacked_group_name: ::core::option::Option<::prost::alloc::string::String>,
195        #[prost(enumeration = "super::common::MetricsQueryEditorMode", tag = "5")]
196        pub editor_mode: i32,
197        #[prost(message, optional, tag = "6")]
198        pub time_frame: ::core::option::Option<
199            super::super::super::common::TimeFrameSelect,
200        >,
201        #[prost(enumeration = "super::super::super::common::PromQlQueryType", tag = "7")]
202        pub promql_query_type: i32,
203        #[prost(enumeration = "super::common::Aggregation", tag = "8")]
204        pub aggregation: i32,
205    }
206    #[derive(serde::Serialize, serde::Deserialize)]
207    #[serde(rename_all = "snake_case")]
208    #[derive(Clone, PartialEq, ::prost::Message)]
209    pub struct DataprimeQuery {
210        #[prost(message, optional, tag = "1")]
211        pub dataprime_query: ::core::option::Option<
212            super::super::super::common::DataprimeQuery,
213        >,
214        #[prost(message, repeated, tag = "2")]
215        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::Source>,
216        #[prost(message, repeated, tag = "3")]
217        pub group_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
218        #[prost(message, optional, tag = "4")]
219        pub stacked_group_name: ::core::option::Option<::prost::alloc::string::String>,
220        #[prost(message, optional, tag = "5")]
221        pub time_frame: ::core::option::Option<
222            super::super::super::common::TimeFrameSelect,
223        >,
224    }
225}
226#[derive(serde::Serialize, serde::Deserialize)]
227#[serde(rename_all = "snake_case")]
228#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
229#[repr(i32)]
230pub enum BarValueDisplay {
231    Unspecified = 0,
232    Top = 1,
233    Inside = 2,
234    Both = 3,
235}
236impl BarValueDisplay {
237    /// String value of the enum field names used in the ProtoBuf definition.
238    ///
239    /// The values are not transformed in any way and thus are considered stable
240    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
241    pub fn as_str_name(&self) -> &'static str {
242        match self {
243            Self::Unspecified => "BAR_VALUE_DISPLAY_UNSPECIFIED",
244            Self::Top => "BAR_VALUE_DISPLAY_TOP",
245            Self::Inside => "BAR_VALUE_DISPLAY_INSIDE",
246            Self::Both => "BAR_VALUE_DISPLAY_BOTH",
247        }
248    }
249    /// Creates an enum from field names used in the ProtoBuf definition.
250    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
251        match value {
252            "BAR_VALUE_DISPLAY_UNSPECIFIED" => Some(Self::Unspecified),
253            "BAR_VALUE_DISPLAY_TOP" => Some(Self::Top),
254            "BAR_VALUE_DISPLAY_INSIDE" => Some(Self::Inside),
255            "BAR_VALUE_DISPLAY_BOTH" => Some(Self::Both),
256            _ => None,
257        }
258    }
259}
260#[derive(serde::Serialize, serde::Deserialize)]
261#[serde(rename_all = "snake_case")]
262#[derive(Clone, PartialEq, ::prost::Message)]
263pub struct DataTable {
264    #[prost(message, optional, tag = "1")]
265    pub query: ::core::option::Option<data_table::Query>,
266    #[prost(message, optional, tag = "2")]
267    pub results_per_page: ::core::option::Option<i32>,
268    #[prost(enumeration = "RowStyle", tag = "3")]
269    pub row_style: i32,
270    #[prost(message, repeated, tag = "4")]
271    pub columns: ::prost::alloc::vec::Vec<data_table::Column>,
272    #[prost(message, optional, tag = "5")]
273    pub order_by: ::core::option::Option<super::super::common::OrderingField>,
274    #[prost(enumeration = "common::DataModeType", tag = "11")]
275    pub data_mode_type: i32,
276}
277/// Nested message and enum types in `DataTable`.
278pub mod data_table {
279    #[derive(serde::Serialize, serde::Deserialize)]
280    #[serde(rename_all = "snake_case")]
281    #[derive(Clone, PartialEq, ::prost::Message)]
282    pub struct Query {
283        #[prost(oneof = "query::Value", tags = "1, 2, 3, 4")]
284        pub value: ::core::option::Option<query::Value>,
285    }
286    /// Nested message and enum types in `Query`.
287    pub mod query {
288        #[derive(serde::Serialize, serde::Deserialize)]
289        #[serde(rename_all = "snake_case")]
290        #[derive(Clone, PartialEq, ::prost::Oneof)]
291        pub enum Value {
292            #[prost(message, tag = "1")]
293            Logs(super::LogsQuery),
294            #[prost(message, tag = "2")]
295            Spans(super::SpansQuery),
296            #[prost(message, tag = "3")]
297            Metrics(super::MetricsQuery),
298            #[prost(message, tag = "4")]
299            Dataprime(super::DataprimeQuery),
300        }
301    }
302    #[derive(serde::Serialize, serde::Deserialize)]
303    #[serde(rename_all = "snake_case")]
304    #[derive(Clone, PartialEq, ::prost::Message)]
305    pub struct LogsQuery {
306        #[prost(message, optional, tag = "1")]
307        pub lucene_query: ::core::option::Option<
308            super::super::super::common::LuceneQuery,
309        >,
310        #[prost(message, repeated, tag = "2")]
311        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::LogsFilter>,
312        #[prost(message, optional, tag = "3")]
313        pub grouping: ::core::option::Option<logs_query::Grouping>,
314        #[prost(message, optional, tag = "4")]
315        pub time_frame: ::core::option::Option<
316            super::super::super::common::TimeFrameSelect,
317        >,
318    }
319    /// Nested message and enum types in `LogsQuery`.
320    pub mod logs_query {
321        #[derive(serde::Serialize, serde::Deserialize)]
322        #[serde(rename_all = "snake_case")]
323        #[derive(Clone, PartialEq, ::prost::Message)]
324        pub struct Grouping {
325            #[prost(message, repeated, tag = "1")]
326            pub group_by: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
327            #[prost(message, repeated, tag = "2")]
328            pub aggregations: ::prost::alloc::vec::Vec<Aggregation>,
329            #[prost(message, repeated, tag = "3")]
330            pub group_bys: ::prost::alloc::vec::Vec<
331                super::super::super::super::common::ObservationField,
332            >,
333        }
334        #[derive(serde::Serialize, serde::Deserialize)]
335        #[serde(rename_all = "snake_case")]
336        #[derive(Clone, PartialEq, ::prost::Message)]
337        pub struct Aggregation {
338            #[prost(message, optional, tag = "1")]
339            pub id: ::core::option::Option<::prost::alloc::string::String>,
340            #[prost(message, optional, tag = "2")]
341            pub name: ::core::option::Option<::prost::alloc::string::String>,
342            #[prost(message, optional, tag = "3")]
343            pub is_visible: ::core::option::Option<bool>,
344            #[prost(message, optional, tag = "4")]
345            pub aggregation: ::core::option::Option<
346                super::super::super::super::common::LogsAggregation,
347            >,
348        }
349    }
350    #[derive(serde::Serialize, serde::Deserialize)]
351    #[serde(rename_all = "snake_case")]
352    #[derive(Clone, PartialEq, ::prost::Message)]
353    pub struct SpansQuery {
354        #[prost(message, optional, tag = "1")]
355        pub lucene_query: ::core::option::Option<
356            super::super::super::common::LuceneQuery,
357        >,
358        #[prost(message, repeated, tag = "2")]
359        pub filters: ::prost::alloc::vec::Vec<
360            super::super::filters::filter::SpansFilter,
361        >,
362        #[prost(message, optional, tag = "3")]
363        pub grouping: ::core::option::Option<spans_query::Grouping>,
364        #[prost(message, optional, tag = "4")]
365        pub time_frame: ::core::option::Option<
366            super::super::super::common::TimeFrameSelect,
367        >,
368    }
369    /// Nested message and enum types in `SpansQuery`.
370    pub mod spans_query {
371        #[derive(serde::Serialize, serde::Deserialize)]
372        #[serde(rename_all = "snake_case")]
373        #[derive(Clone, PartialEq, ::prost::Message)]
374        pub struct Grouping {
375            #[prost(message, repeated, tag = "1")]
376            pub group_by: ::prost::alloc::vec::Vec<
377                super::super::super::super::common::SpanField,
378            >,
379            #[prost(message, repeated, tag = "2")]
380            pub aggregations: ::prost::alloc::vec::Vec<Aggregation>,
381            #[prost(message, repeated, tag = "3")]
382            pub group_bys: ::prost::alloc::vec::Vec<
383                super::super::super::super::common::SpanObservationField,
384            >,
385        }
386        #[derive(serde::Serialize, serde::Deserialize)]
387        #[serde(rename_all = "snake_case")]
388        #[derive(Clone, PartialEq, ::prost::Message)]
389        pub struct Aggregation {
390            #[prost(message, optional, tag = "1")]
391            pub id: ::core::option::Option<::prost::alloc::string::String>,
392            #[prost(message, optional, tag = "2")]
393            pub name: ::core::option::Option<::prost::alloc::string::String>,
394            #[prost(message, optional, tag = "3")]
395            pub is_visible: ::core::option::Option<bool>,
396            #[prost(message, optional, tag = "4")]
397            pub aggregation: ::core::option::Option<
398                super::super::super::super::common::SpansAggregation,
399            >,
400        }
401    }
402    #[derive(serde::Serialize, serde::Deserialize)]
403    #[serde(rename_all = "snake_case")]
404    #[derive(Clone, PartialEq, ::prost::Message)]
405    pub struct MetricsQuery {
406        #[prost(message, optional, tag = "1")]
407        pub promql_query: ::core::option::Option<
408            super::super::super::common::PromQlQuery,
409        >,
410        #[prost(message, repeated, tag = "2")]
411        pub filters: ::prost::alloc::vec::Vec<
412            super::super::filters::filter::MetricsFilter,
413        >,
414        #[prost(enumeration = "super::common::MetricsQueryEditorMode", tag = "3")]
415        pub editor_mode: i32,
416        #[prost(message, optional, tag = "4")]
417        pub time_frame: ::core::option::Option<
418            super::super::super::common::TimeFrameSelect,
419        >,
420        #[prost(enumeration = "super::super::super::common::PromQlQueryType", tag = "5")]
421        pub promql_query_type: i32,
422    }
423    #[derive(serde::Serialize, serde::Deserialize)]
424    #[serde(rename_all = "snake_case")]
425    #[derive(Clone, PartialEq, ::prost::Message)]
426    pub struct DataprimeQuery {
427        #[prost(message, optional, tag = "1")]
428        pub dataprime_query: ::core::option::Option<
429            super::super::super::common::DataprimeQuery,
430        >,
431        #[prost(message, repeated, tag = "2")]
432        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::Source>,
433        #[prost(message, optional, tag = "3")]
434        pub time_frame: ::core::option::Option<
435            super::super::super::common::TimeFrameSelect,
436        >,
437    }
438    #[derive(serde::Serialize, serde::Deserialize)]
439    #[serde(rename_all = "snake_case")]
440    #[derive(Clone, PartialEq, ::prost::Message)]
441    pub struct Column {
442        #[prost(message, optional, tag = "1")]
443        pub field: ::core::option::Option<::prost::alloc::string::String>,
444        #[prost(message, optional, tag = "2")]
445        pub width: ::core::option::Option<i32>,
446    }
447}
448#[derive(serde::Serialize, serde::Deserialize)]
449#[serde(rename_all = "snake_case")]
450#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
451#[repr(i32)]
452pub enum RowStyle {
453    Unspecified = 0,
454    OneLine = 1,
455    TwoLine = 2,
456    Condensed = 3,
457    Json = 4,
458    List = 5,
459}
460impl RowStyle {
461    /// String value of the enum field names used in the ProtoBuf definition.
462    ///
463    /// The values are not transformed in any way and thus are considered stable
464    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
465    pub fn as_str_name(&self) -> &'static str {
466        match self {
467            Self::Unspecified => "ROW_STYLE_UNSPECIFIED",
468            Self::OneLine => "ROW_STYLE_ONE_LINE",
469            Self::TwoLine => "ROW_STYLE_TWO_LINE",
470            Self::Condensed => "ROW_STYLE_CONDENSED",
471            Self::Json => "ROW_STYLE_JSON",
472            Self::List => "ROW_STYLE_LIST",
473        }
474    }
475    /// Creates an enum from field names used in the ProtoBuf definition.
476    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
477        match value {
478            "ROW_STYLE_UNSPECIFIED" => Some(Self::Unspecified),
479            "ROW_STYLE_ONE_LINE" => Some(Self::OneLine),
480            "ROW_STYLE_TWO_LINE" => Some(Self::TwoLine),
481            "ROW_STYLE_CONDENSED" => Some(Self::Condensed),
482            "ROW_STYLE_JSON" => Some(Self::Json),
483            "ROW_STYLE_LIST" => Some(Self::List),
484            _ => None,
485        }
486    }
487}
488#[derive(serde::Serialize, serde::Deserialize)]
489#[serde(rename_all = "snake_case")]
490#[derive(Clone, PartialEq, ::prost::Message)]
491pub struct Dynamic {
492    #[prost(message, optional, tag = "1")]
493    pub query: ::core::option::Option<dynamic::Query>,
494    #[prost(message, optional, tag = "2")]
495    pub time_frame: ::core::option::Option<super::super::common::TimeFrameSelect>,
496    #[prost(enumeration = "dynamic::Interpretation", tag = "3")]
497    pub interpretation: i32,
498    #[prost(message, optional, tag = "4")]
499    pub visualization: ::core::option::Option<dynamic::Visualization>,
500}
501/// Nested message and enum types in `Dynamic`.
502pub mod dynamic {
503    #[derive(serde::Serialize, serde::Deserialize)]
504    #[serde(rename_all = "snake_case")]
505    #[derive(Clone, PartialEq, ::prost::Message)]
506    pub struct Query {
507        #[prost(oneof = "query::Value", tags = "1, 2, 3, 4")]
508        pub value: ::core::option::Option<query::Value>,
509    }
510    /// Nested message and enum types in `Query`.
511    pub mod query {
512        #[derive(serde::Serialize, serde::Deserialize)]
513        #[serde(rename_all = "snake_case")]
514        #[derive(Clone, PartialEq, ::prost::Message)]
515        pub struct Logs {
516            #[prost(message, optional, tag = "1")]
517            pub lucene_query: ::core::option::Option<
518                super::super::super::super::common::LuceneQuery,
519            >,
520            #[prost(enumeration = "super::super::common::DataModeType", tag = "2")]
521            pub data_mode_type: i32,
522            #[prost(message, repeated, tag = "3")]
523            pub filters: ::prost::alloc::vec::Vec<
524                super::super::super::filters::filter::LogsFilter,
525            >,
526            #[prost(message, repeated, tag = "4")]
527            pub group_by: ::prost::alloc::vec::Vec<
528                super::super::super::super::common::ObservationField,
529            >,
530            #[prost(message, repeated, tag = "5")]
531            pub aggregation: ::prost::alloc::vec::Vec<
532                super::super::super::super::common::LogsAggregation,
533            >,
534        }
535        #[derive(serde::Serialize, serde::Deserialize)]
536        #[serde(rename_all = "snake_case")]
537        #[derive(Clone, PartialEq, ::prost::Message)]
538        pub struct Spans {
539            #[prost(message, optional, tag = "1")]
540            pub lucene_query: ::core::option::Option<
541                super::super::super::super::common::LuceneQuery,
542            >,
543            #[prost(enumeration = "super::super::common::DataModeType", tag = "2")]
544            pub data_mode_type: i32,
545            #[prost(message, repeated, tag = "3")]
546            pub filters: ::prost::alloc::vec::Vec<
547                super::super::super::filters::filter::SpansFilter,
548            >,
549            #[prost(message, repeated, tag = "4")]
550            pub group_by: ::prost::alloc::vec::Vec<
551                super::super::super::super::common::SpanObservationField,
552            >,
553            #[prost(message, repeated, tag = "5")]
554            pub aggregation: ::prost::alloc::vec::Vec<
555                super::super::super::super::common::LogsAggregation,
556            >,
557        }
558        #[derive(serde::Serialize, serde::Deserialize)]
559        #[serde(rename_all = "snake_case")]
560        #[derive(Clone, PartialEq, ::prost::Message)]
561        pub struct Metrics {
562            #[prost(message, optional, tag = "1")]
563            pub promql_query: ::core::option::Option<
564                super::super::super::super::common::PromQlQuery,
565            >,
566            #[prost(
567                enumeration = "super::super::super::super::common::PromQlQueryType",
568                tag = "2"
569            )]
570            pub promql_query_type: i32,
571            #[prost(
572                enumeration = "super::super::common::MetricsQueryEditorMode",
573                tag = "3"
574            )]
575            pub editor_mode: i32,
576            #[prost(
577                enumeration = "super::super::super::super::common::MetricsSeriesLimitType",
578                tag = "4"
579            )]
580            pub series_limit_type: i32,
581        }
582        #[derive(serde::Serialize, serde::Deserialize)]
583        #[serde(rename_all = "snake_case")]
584        #[derive(Clone, PartialEq, ::prost::Message)]
585        pub struct Dataprime {
586            #[prost(message, optional, tag = "1")]
587            pub dataprime_query: ::core::option::Option<
588                super::super::super::super::common::DataprimeQuery,
589            >,
590            #[prost(enumeration = "super::super::common::DataModeType", tag = "2")]
591            pub data_mode_type: i32,
592        }
593        #[derive(serde::Serialize, serde::Deserialize)]
594        #[serde(rename_all = "snake_case")]
595        #[derive(Clone, PartialEq, ::prost::Oneof)]
596        pub enum Value {
597            #[prost(message, tag = "1")]
598            Logs(Logs),
599            #[prost(message, tag = "2")]
600            Spans(Spans),
601            #[prost(message, tag = "3")]
602            Metrics(Metrics),
603            #[prost(message, tag = "4")]
604            Dataprime(Dataprime),
605        }
606    }
607    #[derive(serde::Serialize, serde::Deserialize)]
608    #[serde(rename_all = "snake_case")]
609    #[derive(Clone, PartialEq, ::prost::Message)]
610    pub struct Visualization {
611        #[prost(
612            oneof = "visualization::Value",
613            tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11"
614        )]
615        pub value: ::core::option::Option<visualization::Value>,
616    }
617    /// Nested message and enum types in `Visualization`.
618    pub mod visualization {
619        #[derive(serde::Serialize, serde::Deserialize)]
620        #[serde(rename_all = "snake_case")]
621        #[derive(Clone, PartialEq, ::prost::Message)]
622        pub struct Table {
623            #[prost(message, repeated, tag = "1")]
624            pub columns: ::prost::alloc::vec::Vec<table::Column>,
625            #[prost(message, repeated, tag = "2")]
626            pub rules: ::prost::alloc::vec::Vec<table::Rule>,
627        }
628        /// Nested message and enum types in `Table`.
629        pub mod table {
630            #[derive(serde::Serialize, serde::Deserialize)]
631            #[serde(rename_all = "snake_case")]
632            #[derive(Clone, PartialEq, ::prost::Message)]
633            pub struct Column {
634                #[prost(message, optional, tag = "1")]
635                pub field: ::core::option::Option<
636                    super::super::super::super::super::common::ObservationField,
637                >,
638            }
639            #[derive(serde::Serialize, serde::Deserialize)]
640            #[serde(rename_all = "snake_case")]
641            #[derive(Clone, PartialEq, ::prost::Message)]
642            pub struct Rule {
643                #[prost(message, optional, tag = "1")]
644                pub id: ::core::option::Option<super::super::super::super::super::Uuid>,
645                #[prost(message, optional, tag = "2")]
646                pub name: ::core::option::Option<::prost::alloc::string::String>,
647                #[prost(message, optional, tag = "3")]
648                pub description: ::core::option::Option<::prost::alloc::string::String>,
649                #[prost(message, optional, tag = "4")]
650                pub rule_scope: ::core::option::Option<RuleScope>,
651                #[prost(message, repeated, tag = "5")]
652                pub properties: ::prost::alloc::vec::Vec<Property>,
653            }
654            #[derive(serde::Serialize, serde::Deserialize)]
655            #[serde(rename_all = "snake_case")]
656            #[derive(Clone, PartialEq, ::prost::Message)]
657            pub struct RuleScope {
658                #[prost(oneof = "rule_scope::Value", tags = "1, 2, 3")]
659                pub value: ::core::option::Option<rule_scope::Value>,
660            }
661            /// Nested message and enum types in `RuleScope`.
662            pub mod rule_scope {
663                #[derive(serde::Serialize, serde::Deserialize)]
664                #[serde(rename_all = "snake_case")]
665                #[derive(Clone, PartialEq, ::prost::Oneof)]
666                pub enum Value {
667                    #[prost(message, tag = "1")]
668                    Field(
669                        super::super::super::super::super::super::common::ObservationField,
670                    ),
671                    #[prost(message, tag = "2")]
672                    Regex(::prost::alloc::string::String),
673                    #[prost(enumeration = "super::FieldDataType", tag = "3")]
674                    FieldType(i32),
675                }
676            }
677            #[derive(serde::Serialize, serde::Deserialize)]
678            #[serde(rename_all = "snake_case")]
679            #[derive(Clone, PartialEq, ::prost::Message)]
680            pub struct Property {
681                #[prost(message, optional, tag = "1")]
682                pub id: ::core::option::Option<super::super::super::super::super::Uuid>,
683                #[prost(message, optional, tag = "2")]
684                pub definition: ::core::option::Option<PropertyDefinition>,
685            }
686            #[derive(serde::Serialize, serde::Deserialize)]
687            #[serde(rename_all = "snake_case")]
688            #[derive(Clone, PartialEq, ::prost::Message)]
689            pub struct PropertyDefinition {
690                #[prost(oneof = "property_definition::Value", tags = "1, 2, 3, 4, 5")]
691                pub value: ::core::option::Option<property_definition::Value>,
692            }
693            /// Nested message and enum types in `PropertyDefinition`.
694            pub mod property_definition {
695                #[derive(serde::Serialize, serde::Deserialize)]
696                #[serde(rename_all = "snake_case")]
697                #[derive(Clone, PartialEq, ::prost::Oneof)]
698                pub enum Value {
699                    #[prost(message, tag = "1")]
700                    Thresholds(super::PropertyThresholds),
701                    #[prost(
702                        enumeration = "super::super::super::super::common::TextAlignment",
703                        tag = "2"
704                    )]
705                    Alignment(i32),
706                    #[prost(message, tag = "3")]
707                    Units(super::super::PropertyUnits),
708                    #[prost(message, tag = "4")]
709                    RegexExtract(::prost::alloc::string::String),
710                    #[prost(message, tag = "5")]
711                    Link(super::super::PropertyLinks),
712                }
713            }
714            #[derive(serde::Serialize, serde::Deserialize)]
715            #[serde(rename_all = "snake_case")]
716            #[derive(Clone, PartialEq, ::prost::Message)]
717            pub struct PropertyThresholds {
718                #[prost(message, repeated, tag = "1")]
719                pub values: ::prost::alloc::vec::Vec<
720                    super::super::super::common::Threshold,
721                >,
722                #[prost(
723                    enumeration = "super::super::super::common::ThresholdType",
724                    tag = "2"
725                )]
726                pub r#type: i32,
727                #[prost(message, optional, tag = "3")]
728                pub min: ::core::option::Option<f64>,
729                #[prost(message, optional, tag = "4")]
730                pub max: ::core::option::Option<f64>,
731            }
732            #[derive(serde::Serialize, serde::Deserialize)]
733            #[serde(rename_all = "snake_case")]
734            #[derive(
735                Clone,
736                Copy,
737                Debug,
738                PartialEq,
739                Eq,
740                Hash,
741                PartialOrd,
742                Ord,
743                ::prost::Enumeration
744            )]
745            #[repr(i32)]
746            pub enum FieldDataType {
747                Unspecified = 0,
748                Number = 1,
749                String = 2,
750                Boolean = 3,
751                Timestamp = 4,
752                Object = 5,
753                Array = 6,
754                Regex = 7,
755                Union = 8,
756                Enum = 9,
757            }
758            impl FieldDataType {
759                /// String value of the enum field names used in the ProtoBuf definition.
760                ///
761                /// The values are not transformed in any way and thus are considered stable
762                /// (if the ProtoBuf definition does not change) and safe for programmatic use.
763                pub fn as_str_name(&self) -> &'static str {
764                    match self {
765                        Self::Unspecified => "FIELD_DATA_TYPE_UNSPECIFIED",
766                        Self::Number => "FIELD_DATA_TYPE_NUMBER",
767                        Self::String => "FIELD_DATA_TYPE_STRING",
768                        Self::Boolean => "FIELD_DATA_TYPE_BOOLEAN",
769                        Self::Timestamp => "FIELD_DATA_TYPE_TIMESTAMP",
770                        Self::Object => "FIELD_DATA_TYPE_OBJECT",
771                        Self::Array => "FIELD_DATA_TYPE_ARRAY",
772                        Self::Regex => "FIELD_DATA_TYPE_REGEX",
773                        Self::Union => "FIELD_DATA_TYPE_UNION",
774                        Self::Enum => "FIELD_DATA_TYPE_ENUM",
775                    }
776                }
777                /// Creates an enum from field names used in the ProtoBuf definition.
778                pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
779                    match value {
780                        "FIELD_DATA_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
781                        "FIELD_DATA_TYPE_NUMBER" => Some(Self::Number),
782                        "FIELD_DATA_TYPE_STRING" => Some(Self::String),
783                        "FIELD_DATA_TYPE_BOOLEAN" => Some(Self::Boolean),
784                        "FIELD_DATA_TYPE_TIMESTAMP" => Some(Self::Timestamp),
785                        "FIELD_DATA_TYPE_OBJECT" => Some(Self::Object),
786                        "FIELD_DATA_TYPE_ARRAY" => Some(Self::Array),
787                        "FIELD_DATA_TYPE_REGEX" => Some(Self::Regex),
788                        "FIELD_DATA_TYPE_UNION" => Some(Self::Union),
789                        "FIELD_DATA_TYPE_ENUM" => Some(Self::Enum),
790                        _ => None,
791                    }
792                }
793            }
794        }
795        #[derive(serde::Serialize, serde::Deserialize)]
796        #[serde(rename_all = "snake_case")]
797        #[derive(Clone, PartialEq, ::prost::Message)]
798        pub struct PropertyUnits {
799            #[prost(message, optional, tag = "1")]
800            pub min: ::core::option::Option<f64>,
801            #[prost(message, optional, tag = "2")]
802            pub max: ::core::option::Option<f64>,
803            #[prost(enumeration = "super::super::common::Unit", tag = "3")]
804            pub unit: i32,
805            #[prost(message, optional, tag = "4")]
806            pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
807            #[prost(message, optional, tag = "5")]
808            pub decimal_precision: ::core::option::Option<i32>,
809            #[prost(message, optional, tag = "6")]
810            pub allow_abbreviation: ::core::option::Option<bool>,
811        }
812        #[derive(serde::Serialize, serde::Deserialize)]
813        #[serde(rename_all = "snake_case")]
814        #[derive(Clone, PartialEq, ::prost::Message)]
815        pub struct PropertyLinks {
816            #[prost(message, repeated, tag = "1")]
817            pub actions: ::prost::alloc::vec::Vec<property_links::LinkAction>,
818        }
819        /// Nested message and enum types in `PropertyLinks`.
820        pub mod property_links {
821            #[derive(serde::Serialize, serde::Deserialize)]
822            #[serde(rename_all = "snake_case")]
823            #[derive(Clone, PartialEq, ::prost::Message)]
824            pub struct LinkAction {
825                #[prost(message, optional, tag = "1")]
826                pub id: ::core::option::Option<super::super::super::super::super::Uuid>,
827                #[prost(message, optional, tag = "2")]
828                pub name: ::core::option::Option<::prost::alloc::string::String>,
829                #[prost(message, optional, tag = "3")]
830                pub url: ::core::option::Option<::prost::alloc::string::String>,
831                #[prost(message, optional, tag = "4")]
832                pub should_open_in_new_window: ::core::option::Option<bool>,
833            }
834        }
835        #[derive(serde::Serialize, serde::Deserialize)]
836        #[serde(rename_all = "snake_case")]
837        #[derive(Clone, PartialEq, ::prost::Message)]
838        pub struct TimeSeriesLines {
839            #[prost(message, optional, tag = "1")]
840            pub temporal_field: ::core::option::Option<
841                super::super::super::super::common::ObservationField,
842            >,
843            #[prost(message, repeated, tag = "2")]
844            pub value_fields: ::prost::alloc::vec::Vec<
845                super::super::super::super::common::ObservationField,
846            >,
847            #[prost(message, repeated, tag = "3")]
848            pub category_fields: ::prost::alloc::vec::Vec<
849                super::super::super::super::common::ObservationField,
850            >,
851            #[prost(message, optional, tag = "4")]
852            pub legend: ::core::option::Option<super::super::common::Legend>,
853            #[prost(message, optional, tag = "5")]
854            pub tooltip: ::core::option::Option<TimeSeriesTooltip>,
855            #[prost(enumeration = "time_series_lines::StackedLine", tag = "6")]
856            pub stacked_line: i32,
857            #[prost(message, optional, tag = "7")]
858            pub connect_nulls: ::core::option::Option<bool>,
859            #[prost(message, optional, tag = "8")]
860            pub series_name_template: ::core::option::Option<
861                ::prost::alloc::string::String,
862            >,
863            #[prost(message, optional, tag = "9")]
864            pub series_count_limit: ::core::option::Option<i64>,
865            #[prost(enumeration = "super::super::common::Unit", tag = "10")]
866            pub unit: i32,
867            #[prost(message, optional, tag = "11")]
868            pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
869            #[prost(enumeration = "super::super::common::ScaleType", tag = "12")]
870            pub scale_type: i32,
871            #[prost(message, optional, tag = "13")]
872            pub color_scheme: ::core::option::Option<::prost::alloc::string::String>,
873            #[prost(message, optional, tag = "14")]
874            pub hash_colors: ::core::option::Option<bool>,
875            #[prost(message, optional, tag = "15")]
876            pub decimal_precision: ::core::option::Option<i32>,
877            #[prost(message, optional, tag = "17")]
878            pub allow_abbreviation: ::core::option::Option<bool>,
879            #[prost(message, optional, tag = "18")]
880            pub y_axis_min: ::core::option::Option<f32>,
881            #[prost(message, optional, tag = "19")]
882            pub y_axis_max: ::core::option::Option<f32>,
883        }
884        /// Nested message and enum types in `TimeSeriesLines`.
885        pub mod time_series_lines {
886            #[derive(serde::Serialize, serde::Deserialize)]
887            #[serde(rename_all = "snake_case")]
888            #[derive(
889                Clone,
890                Copy,
891                Debug,
892                PartialEq,
893                Eq,
894                Hash,
895                PartialOrd,
896                Ord,
897                ::prost::Enumeration
898            )]
899            #[repr(i32)]
900            pub enum StackedLine {
901                Unspecified = 0,
902                Absolute = 1,
903                Relative = 2,
904            }
905            impl StackedLine {
906                /// String value of the enum field names used in the ProtoBuf definition.
907                ///
908                /// The values are not transformed in any way and thus are considered stable
909                /// (if the ProtoBuf definition does not change) and safe for programmatic use.
910                pub fn as_str_name(&self) -> &'static str {
911                    match self {
912                        Self::Unspecified => "STACKED_LINE_UNSPECIFIED",
913                        Self::Absolute => "STACKED_LINE_ABSOLUTE",
914                        Self::Relative => "STACKED_LINE_RELATIVE",
915                    }
916                }
917                /// Creates an enum from field names used in the ProtoBuf definition.
918                pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
919                    match value {
920                        "STACKED_LINE_UNSPECIFIED" => Some(Self::Unspecified),
921                        "STACKED_LINE_ABSOLUTE" => Some(Self::Absolute),
922                        "STACKED_LINE_RELATIVE" => Some(Self::Relative),
923                        _ => None,
924                    }
925                }
926            }
927        }
928        #[derive(serde::Serialize, serde::Deserialize)]
929        #[serde(rename_all = "snake_case")]
930        #[derive(Clone, PartialEq, ::prost::Message)]
931        pub struct TimeSeriesBars {
932            #[prost(message, optional, tag = "1")]
933            pub temporal_field: ::core::option::Option<
934                super::super::super::super::common::ObservationField,
935            >,
936            #[prost(message, repeated, tag = "2")]
937            pub value_fields: ::prost::alloc::vec::Vec<
938                super::super::super::super::common::ObservationField,
939            >,
940            #[prost(message, repeated, tag = "3")]
941            pub category_fields: ::prost::alloc::vec::Vec<
942                super::super::super::super::common::ObservationField,
943            >,
944            #[prost(message, optional, tag = "4")]
945            pub legend: ::core::option::Option<super::super::common::Legend>,
946            #[prost(message, optional, tag = "5")]
947            pub tooltip: ::core::option::Option<TimeSeriesTooltip>,
948            #[prost(message, optional, tag = "6")]
949            pub series_name_template: ::core::option::Option<
950                ::prost::alloc::string::String,
951            >,
952            #[prost(message, optional, tag = "7")]
953            pub max_slices_per_bar: ::core::option::Option<i32>,
954            #[prost(enumeration = "super::super::common::Unit", tag = "8")]
955            pub unit: i32,
956            #[prost(message, optional, tag = "9")]
957            pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
958            #[prost(enumeration = "super::super::common::ScaleType", tag = "10")]
959            pub scale_type: i32,
960            #[prost(message, optional, tag = "11")]
961            pub color_scheme: ::core::option::Option<::prost::alloc::string::String>,
962            #[prost(message, optional, tag = "12")]
963            pub hash_colors: ::core::option::Option<bool>,
964            #[prost(message, optional, tag = "13")]
965            pub decimal_precision: ::core::option::Option<i32>,
966            #[prost(message, optional, tag = "14")]
967            pub allow_abbreviation: ::core::option::Option<bool>,
968            #[prost(message, optional, tag = "15")]
969            pub y_axis_min: ::core::option::Option<f32>,
970            #[prost(message, optional, tag = "16")]
971            pub y_axis_max: ::core::option::Option<f32>,
972            #[prost(enumeration = "BarValueDisplay", tag = "17")]
973            pub bar_value_display: i32,
974            #[prost(enumeration = "super::super::common::SortByType", tag = "18")]
975            pub sort_by: i32,
976        }
977        #[derive(serde::Serialize, serde::Deserialize)]
978        #[serde(rename_all = "snake_case")]
979        #[derive(Clone, PartialEq, ::prost::Message)]
980        pub struct Stat {
981            #[deprecated]
982            #[prost(message, optional, tag = "1")]
983            pub value_field: ::core::option::Option<
984                super::super::super::super::common::ObservationField,
985            >,
986            #[prost(message, repeated, tag = "15")]
987            pub value_fields: ::prost::alloc::vec::Vec<
988                super::super::super::super::common::ObservationField,
989            >,
990            #[prost(message, repeated, tag = "2")]
991            pub category_fields: ::prost::alloc::vec::Vec<
992                super::super::super::super::common::ObservationField,
993            >,
994            #[prost(message, optional, tag = "3")]
995            pub min: ::core::option::Option<f64>,
996            #[prost(message, optional, tag = "4")]
997            pub max: ::core::option::Option<f64>,
998            #[prost(enumeration = "super::super::common::Unit", tag = "5")]
999            pub unit: i32,
1000            #[prost(message, optional, tag = "6")]
1001            pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
1002            #[prost(enumeration = "super::super::common::ThresholdType", tag = "7")]
1003            pub threshold_type: i32,
1004            #[prost(message, repeated, tag = "8")]
1005            pub thresholds: ::prost::alloc::vec::Vec<super::super::common::Threshold>,
1006            #[prost(message, optional, tag = "9")]
1007            pub legend: ::core::option::Option<super::super::common::Legend>,
1008            #[prost(enumeration = "super::super::common::LegendBy", tag = "10")]
1009            pub legend_by: i32,
1010            #[prost(message, optional, tag = "11")]
1011            pub decimal_precision: ::core::option::Option<i32>,
1012            #[prost(message, optional, tag = "12")]
1013            pub allow_abbreviation: ::core::option::Option<bool>,
1014            #[prost(message, optional, tag = "13")]
1015            pub display_series_name: ::core::option::Option<bool>,
1016            #[prost(enumeration = "super::super::common::ThresholdBy", tag = "14")]
1017            pub threshold_by: i32,
1018        }
1019        #[derive(serde::Serialize, serde::Deserialize)]
1020        #[serde(rename_all = "snake_case")]
1021        #[derive(Clone, PartialEq, ::prost::Message)]
1022        pub struct Gauge {
1023            #[deprecated]
1024            #[prost(message, optional, tag = "1")]
1025            pub value_field: ::core::option::Option<
1026                super::super::super::super::common::ObservationField,
1027            >,
1028            #[prost(message, repeated, tag = "16")]
1029            pub value_fields: ::prost::alloc::vec::Vec<
1030                super::super::super::super::common::ObservationField,
1031            >,
1032            #[prost(message, repeated, tag = "2")]
1033            pub category_fields: ::prost::alloc::vec::Vec<
1034                super::super::super::super::common::ObservationField,
1035            >,
1036            #[prost(message, optional, tag = "3")]
1037            pub min: ::core::option::Option<f64>,
1038            #[prost(message, optional, tag = "4")]
1039            pub max: ::core::option::Option<f64>,
1040            #[prost(enumeration = "super::super::common::Unit", tag = "5")]
1041            pub unit: i32,
1042            #[prost(message, optional, tag = "6")]
1043            pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
1044            #[prost(enumeration = "super::super::common::ThresholdType", tag = "7")]
1045            pub threshold_type: i32,
1046            #[prost(message, repeated, tag = "8")]
1047            pub thresholds: ::prost::alloc::vec::Vec<super::super::common::Threshold>,
1048            #[prost(message, optional, tag = "9")]
1049            pub legend: ::core::option::Option<super::super::common::Legend>,
1050            #[prost(enumeration = "super::super::common::LegendBy", tag = "10")]
1051            pub legend_by: i32,
1052            #[prost(message, optional, tag = "11")]
1053            pub decimal_precision: ::core::option::Option<i32>,
1054            #[prost(message, optional, tag = "12")]
1055            pub allow_abbreviation: ::core::option::Option<bool>,
1056            #[prost(message, optional, tag = "13")]
1057            pub show_inner_arc: ::core::option::Option<bool>,
1058            #[prost(message, optional, tag = "14")]
1059            pub show_outer_arc: ::core::option::Option<bool>,
1060            #[prost(message, optional, tag = "15")]
1061            pub display_series_name: ::core::option::Option<bool>,
1062        }
1063        #[derive(serde::Serialize, serde::Deserialize)]
1064        #[serde(rename_all = "snake_case")]
1065        #[derive(Clone, PartialEq, ::prost::Message)]
1066        pub struct HexagonBins {
1067            #[prost(message, optional, tag = "1")]
1068            pub value_field: ::core::option::Option<
1069                super::super::super::super::common::ObservationField,
1070            >,
1071            #[prost(message, repeated, tag = "2")]
1072            pub category_fields: ::prost::alloc::vec::Vec<
1073                super::super::super::super::common::ObservationField,
1074            >,
1075            #[prost(message, optional, tag = "3")]
1076            pub min: ::core::option::Option<f64>,
1077            #[prost(message, optional, tag = "4")]
1078            pub max: ::core::option::Option<f64>,
1079            #[prost(enumeration = "super::super::common::Unit", tag = "5")]
1080            pub unit: i32,
1081            #[prost(message, optional, tag = "6")]
1082            pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
1083            #[prost(enumeration = "super::super::common::ThresholdType", tag = "7")]
1084            pub threshold_type: i32,
1085            #[prost(message, repeated, tag = "8")]
1086            pub thresholds: ::prost::alloc::vec::Vec<super::super::common::Threshold>,
1087            #[prost(message, optional, tag = "9")]
1088            pub legend: ::core::option::Option<super::super::common::Legend>,
1089            #[prost(enumeration = "super::super::common::LegendBy", tag = "10")]
1090            pub legend_by: i32,
1091            #[prost(message, optional, tag = "11")]
1092            pub decimal_precision: ::core::option::Option<i32>,
1093            #[prost(message, optional, tag = "12")]
1094            pub allow_abbreviation: ::core::option::Option<bool>,
1095        }
1096        #[derive(serde::Serialize, serde::Deserialize)]
1097        #[serde(rename_all = "snake_case")]
1098        #[derive(Clone, PartialEq, ::prost::Message)]
1099        pub struct PieChart {
1100            #[prost(message, optional, tag = "1")]
1101            pub value_field: ::core::option::Option<
1102                super::super::super::super::common::ObservationField,
1103            >,
1104            #[prost(message, repeated, tag = "2")]
1105            pub category_fields: ::prost::alloc::vec::Vec<
1106                super::super::super::super::common::ObservationField,
1107            >,
1108            #[prost(message, repeated, tag = "3")]
1109            pub sub_category_fields: ::prost::alloc::vec::Vec<
1110                super::super::super::super::common::ObservationField,
1111            >,
1112            #[prost(message, optional, tag = "4")]
1113            pub max_slices_per_chart: ::core::option::Option<i32>,
1114            #[prost(message, optional, tag = "5")]
1115            pub min_slice_percentage: ::core::option::Option<i32>,
1116            #[prost(message, optional, tag = "6")]
1117            pub max_slices_per_stack: ::core::option::Option<i32>,
1118            #[prost(message, optional, tag = "7")]
1119            pub stack_name_template: ::core::option::Option<
1120                ::prost::alloc::string::String,
1121            >,
1122            #[prost(message, optional, tag = "8")]
1123            pub label_definition: ::core::option::Option<pie_chart::LabelDefinition>,
1124            #[prost(message, optional, tag = "9")]
1125            pub group_name_template: ::core::option::Option<
1126                ::prost::alloc::string::String,
1127            >,
1128            #[prost(enumeration = "super::super::common::Unit", tag = "10")]
1129            pub unit: i32,
1130            #[prost(message, optional, tag = "11")]
1131            pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
1132            #[prost(message, optional, tag = "12")]
1133            pub color_scheme: ::core::option::Option<::prost::alloc::string::String>,
1134            #[prost(message, optional, tag = "13")]
1135            pub hash_colors: ::core::option::Option<bool>,
1136            #[prost(message, optional, tag = "14")]
1137            pub decimal_precision: ::core::option::Option<i32>,
1138            #[prost(message, optional, tag = "15")]
1139            pub allow_abbreviation: ::core::option::Option<bool>,
1140            #[prost(message, optional, tag = "16")]
1141            pub legend: ::core::option::Option<super::super::common::Legend>,
1142            #[prost(message, optional, tag = "17")]
1143            pub show_total: ::core::option::Option<bool>,
1144        }
1145        /// Nested message and enum types in `PieChart`.
1146        pub mod pie_chart {
1147            #[derive(serde::Serialize, serde::Deserialize)]
1148            #[serde(rename_all = "snake_case")]
1149            #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1150            pub struct LabelDefinition {
1151                #[prost(enumeration = "LabelSource", tag = "1")]
1152                pub label_source: i32,
1153                #[prost(message, optional, tag = "2")]
1154                pub is_visible: ::core::option::Option<bool>,
1155                #[prost(message, optional, tag = "3")]
1156                pub show_name: ::core::option::Option<bool>,
1157                #[prost(message, optional, tag = "4")]
1158                pub show_value: ::core::option::Option<bool>,
1159                #[prost(message, optional, tag = "5")]
1160                pub show_percentage: ::core::option::Option<bool>,
1161            }
1162            #[derive(serde::Serialize, serde::Deserialize)]
1163            #[serde(rename_all = "snake_case")]
1164            #[derive(
1165                Clone,
1166                Copy,
1167                Debug,
1168                PartialEq,
1169                Eq,
1170                Hash,
1171                PartialOrd,
1172                Ord,
1173                ::prost::Enumeration
1174            )]
1175            #[repr(i32)]
1176            pub enum LabelSource {
1177                Unspecified = 0,
1178                Inner = 1,
1179                Stack = 2,
1180            }
1181            impl LabelSource {
1182                /// String value of the enum field names used in the ProtoBuf definition.
1183                ///
1184                /// The values are not transformed in any way and thus are considered stable
1185                /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1186                pub fn as_str_name(&self) -> &'static str {
1187                    match self {
1188                        Self::Unspecified => "LABEL_SOURCE_UNSPECIFIED",
1189                        Self::Inner => "LABEL_SOURCE_INNER",
1190                        Self::Stack => "LABEL_SOURCE_STACK",
1191                    }
1192                }
1193                /// Creates an enum from field names used in the ProtoBuf definition.
1194                pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1195                    match value {
1196                        "LABEL_SOURCE_UNSPECIFIED" => Some(Self::Unspecified),
1197                        "LABEL_SOURCE_INNER" => Some(Self::Inner),
1198                        "LABEL_SOURCE_STACK" => Some(Self::Stack),
1199                        _ => None,
1200                    }
1201                }
1202            }
1203        }
1204        #[derive(serde::Serialize, serde::Deserialize)]
1205        #[serde(rename_all = "snake_case")]
1206        #[derive(Clone, PartialEq, ::prost::Message)]
1207        pub struct HorizontalBars {
1208            #[prost(message, optional, tag = "1")]
1209            pub value_field: ::core::option::Option<
1210                super::super::super::super::common::ObservationField,
1211            >,
1212            #[prost(message, repeated, tag = "2")]
1213            pub category_fields: ::prost::alloc::vec::Vec<
1214                super::super::super::super::common::ObservationField,
1215            >,
1216            #[prost(message, repeated, tag = "3")]
1217            pub sub_category_fields: ::prost::alloc::vec::Vec<
1218                super::super::super::super::common::ObservationField,
1219            >,
1220            #[prost(message, optional, tag = "4")]
1221            pub max_bars_per_chart: ::core::option::Option<i32>,
1222            #[prost(message, optional, tag = "5")]
1223            pub max_slices_per_bar: ::core::option::Option<i32>,
1224            #[prost(message, optional, tag = "6")]
1225            pub stack_name_template: ::core::option::Option<
1226                ::prost::alloc::string::String,
1227            >,
1228            #[prost(enumeration = "super::super::common::ScaleType", tag = "7")]
1229            pub scale_type: i32,
1230            #[prost(message, optional, tag = "8")]
1231            pub colors_by: ::core::option::Option<super::super::common::ColorsBy>,
1232            #[prost(message, optional, tag = "9")]
1233            pub color_scheme: ::core::option::Option<::prost::alloc::string::String>,
1234            #[prost(message, optional, tag = "10")]
1235            pub hash_colors: ::core::option::Option<bool>,
1236            #[prost(enumeration = "super::super::common::Unit", tag = "11")]
1237            pub unit: i32,
1238            #[prost(message, optional, tag = "12")]
1239            pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
1240            #[prost(message, optional, tag = "13")]
1241            pub display_on_bar: ::core::option::Option<bool>,
1242            #[prost(message, optional, tag = "14")]
1243            pub decimal_precision: ::core::option::Option<i32>,
1244            #[prost(message, optional, tag = "15")]
1245            pub allow_abbreviation: ::core::option::Option<bool>,
1246            #[prost(message, optional, tag = "16")]
1247            pub y_axis_min: ::core::option::Option<f32>,
1248            #[prost(message, optional, tag = "17")]
1249            pub y_axis_max: ::core::option::Option<f32>,
1250            #[prost(message, optional, tag = "18")]
1251            pub legend: ::core::option::Option<super::super::common::Legend>,
1252            #[prost(enumeration = "super::super::common::SortByType", tag = "19")]
1253            pub sort_by: i32,
1254            #[prost(message, optional, tag = "20")]
1255            pub group_name_template: ::core::option::Option<
1256                ::prost::alloc::string::String,
1257            >,
1258            #[prost(enumeration = "horizontal_bars::YAxisViewBy", tag = "21")]
1259            pub y_axis_view_by: i32,
1260        }
1261        /// Nested message and enum types in `HorizontalBars`.
1262        pub mod horizontal_bars {
1263            #[derive(serde::Serialize, serde::Deserialize)]
1264            #[serde(rename_all = "snake_case")]
1265            #[derive(
1266                Clone,
1267                Copy,
1268                Debug,
1269                PartialEq,
1270                Eq,
1271                Hash,
1272                PartialOrd,
1273                Ord,
1274                ::prost::Enumeration
1275            )]
1276            #[repr(i32)]
1277            pub enum YAxisViewBy {
1278                Unspecified = 0,
1279                Category = 1,
1280                Value = 2,
1281            }
1282            impl YAxisViewBy {
1283                /// String value of the enum field names used in the ProtoBuf definition.
1284                ///
1285                /// The values are not transformed in any way and thus are considered stable
1286                /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1287                pub fn as_str_name(&self) -> &'static str {
1288                    match self {
1289                        Self::Unspecified => "Y_AXIS_VIEW_BY_UNSPECIFIED",
1290                        Self::Category => "Y_AXIS_VIEW_BY_CATEGORY",
1291                        Self::Value => "Y_AXIS_VIEW_BY_VALUE",
1292                    }
1293                }
1294                /// Creates an enum from field names used in the ProtoBuf definition.
1295                pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1296                    match value {
1297                        "Y_AXIS_VIEW_BY_UNSPECIFIED" => Some(Self::Unspecified),
1298                        "Y_AXIS_VIEW_BY_CATEGORY" => Some(Self::Category),
1299                        "Y_AXIS_VIEW_BY_VALUE" => Some(Self::Value),
1300                        _ => None,
1301                    }
1302                }
1303            }
1304        }
1305        #[derive(serde::Serialize, serde::Deserialize)]
1306        #[serde(rename_all = "snake_case")]
1307        #[derive(Clone, PartialEq, ::prost::Message)]
1308        pub struct VerticalBars {
1309            #[prost(message, optional, tag = "1")]
1310            pub value_field: ::core::option::Option<
1311                super::super::super::super::common::ObservationField,
1312            >,
1313            #[prost(message, repeated, tag = "2")]
1314            pub category_fields: ::prost::alloc::vec::Vec<
1315                super::super::super::super::common::ObservationField,
1316            >,
1317            #[prost(message, repeated, tag = "3")]
1318            pub sub_category_fields: ::prost::alloc::vec::Vec<
1319                super::super::super::super::common::ObservationField,
1320            >,
1321            #[prost(message, optional, tag = "4")]
1322            pub max_bars_per_chart: ::core::option::Option<i32>,
1323            #[prost(message, optional, tag = "5")]
1324            pub max_slices_per_bar: ::core::option::Option<i32>,
1325            #[prost(message, optional, tag = "6")]
1326            pub stack_name_template: ::core::option::Option<
1327                ::prost::alloc::string::String,
1328            >,
1329            #[prost(enumeration = "super::super::common::ScaleType", tag = "7")]
1330            pub scale_type: i32,
1331            #[prost(message, optional, tag = "8")]
1332            pub colors_by: ::core::option::Option<super::super::common::ColorsBy>,
1333            #[prost(message, optional, tag = "9")]
1334            pub color_scheme: ::core::option::Option<::prost::alloc::string::String>,
1335            #[prost(message, optional, tag = "10")]
1336            pub hash_colors: ::core::option::Option<bool>,
1337            #[prost(enumeration = "super::super::common::Unit", tag = "11")]
1338            pub unit: i32,
1339            #[prost(message, optional, tag = "12")]
1340            pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
1341            #[prost(enumeration = "BarValueDisplay", tag = "13")]
1342            pub bar_value_display: i32,
1343            #[prost(message, optional, tag = "14")]
1344            pub decimal_precision: ::core::option::Option<i32>,
1345            #[prost(message, optional, tag = "15")]
1346            pub allow_abbreviation: ::core::option::Option<bool>,
1347            #[prost(message, optional, tag = "16")]
1348            pub y_axis_min: ::core::option::Option<f32>,
1349            #[prost(message, optional, tag = "17")]
1350            pub y_axis_max: ::core::option::Option<f32>,
1351            #[prost(message, optional, tag = "18")]
1352            pub legend: ::core::option::Option<super::super::common::Legend>,
1353            #[prost(enumeration = "super::super::common::SortByType", tag = "19")]
1354            pub sort_by: i32,
1355            #[prost(message, optional, tag = "20")]
1356            pub group_name_template: ::core::option::Option<
1357                ::prost::alloc::string::String,
1358            >,
1359        }
1360        #[derive(serde::Serialize, serde::Deserialize)]
1361        #[serde(rename_all = "snake_case")]
1362        #[derive(Clone, PartialEq, ::prost::Message)]
1363        pub struct Heatmap {
1364            #[prost(message, optional, tag = "1")]
1365            pub value_field: ::core::option::Option<
1366                super::super::super::super::common::ObservationField,
1367            >,
1368            #[prost(message, repeated, tag = "2")]
1369            pub x_axis_fields: ::prost::alloc::vec::Vec<
1370                super::super::super::super::common::ObservationField,
1371            >,
1372            #[prost(message, repeated, tag = "3")]
1373            pub y_axis_fields: ::prost::alloc::vec::Vec<
1374                super::super::super::super::common::ObservationField,
1375            >,
1376            #[prost(message, optional, tag = "4")]
1377            pub show_numbers: ::core::option::Option<bool>,
1378            #[prost(enumeration = "super::super::common::ScaleType", tag = "5")]
1379            pub scale_type: i32,
1380            #[prost(message, optional, tag = "7")]
1381            pub allow_abbreviation: ::core::option::Option<bool>,
1382            #[prost(enumeration = "super::super::common::Unit", tag = "8")]
1383            pub unit: i32,
1384            #[prost(message, optional, tag = "9")]
1385            pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
1386            #[prost(message, optional, tag = "10")]
1387            pub decimal_precision: ::core::option::Option<i32>,
1388            #[prost(message, optional, tag = "11")]
1389            pub color_axis_min: ::core::option::Option<f32>,
1390            #[prost(message, optional, tag = "12")]
1391            pub color_axis_max: ::core::option::Option<f32>,
1392            #[prost(message, optional, tag = "13")]
1393            pub tooltip: ::core::option::Option<HeatmapTooltip>,
1394            #[prost(oneof = "heatmap::ColorConfig", tags = "6")]
1395            pub color_config: ::core::option::Option<heatmap::ColorConfig>,
1396        }
1397        /// Nested message and enum types in `Heatmap`.
1398        pub mod heatmap {
1399            #[derive(serde::Serialize, serde::Deserialize)]
1400            #[serde(rename_all = "snake_case")]
1401            #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
1402            pub enum ColorConfig {
1403                #[prost(
1404                    enumeration = "super::super::super::common::ColorGradientType",
1405                    tag = "6"
1406                )]
1407                Preset(i32),
1408            }
1409        }
1410        #[derive(serde::Serialize, serde::Deserialize)]
1411        #[serde(rename_all = "snake_case")]
1412        #[derive(Clone, PartialEq, ::prost::Message)]
1413        pub struct HeatmapTooltip {
1414            #[prost(message, optional, tag = "1")]
1415            pub message_template: ::core::option::Option<::prost::alloc::string::String>,
1416            #[prost(message, repeated, tag = "2")]
1417            pub labels: ::prost::alloc::vec::Vec<
1418                super::super::super::super::common::ObservationField,
1419            >,
1420        }
1421        #[derive(serde::Serialize, serde::Deserialize)]
1422        #[serde(rename_all = "snake_case")]
1423        #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1424        pub struct TimeSeriesTooltip {
1425            #[prost(message, optional, tag = "1")]
1426            pub show_all_series: ::core::option::Option<bool>,
1427            #[prost(message, optional, tag = "2")]
1428            pub show_labels: ::core::option::Option<bool>,
1429        }
1430        #[derive(serde::Serialize, serde::Deserialize)]
1431        #[serde(rename_all = "snake_case")]
1432        #[derive(Clone, PartialEq, ::prost::Message)]
1433        pub struct Geomap {
1434            #[prost(message, optional, tag = "1")]
1435            pub config: ::core::option::Option<geomap::GeomapFieldConfig>,
1436            #[prost(message, optional, tag = "2")]
1437            pub aggregation: ::core::option::Option<geomap::GeomapAggregation>,
1438            #[prost(message, optional, tag = "3")]
1439            pub color: ::core::option::Option<geomap::GeomapColor>,
1440            #[prost(message, optional, tag = "4")]
1441            pub min_max: ::core::option::Option<super::super::common::MinMax>,
1442            #[prost(message, optional, tag = "7")]
1443            pub allow_abbreviation: ::core::option::Option<bool>,
1444            #[prost(enumeration = "super::super::common::Unit", tag = "8")]
1445            pub unit: i32,
1446            #[prost(message, optional, tag = "9")]
1447            pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
1448            #[prost(message, optional, tag = "10")]
1449            pub decimal_precision: ::core::option::Option<i32>,
1450        }
1451        /// Nested message and enum types in `Geomap`.
1452        pub mod geomap {
1453            #[derive(serde::Serialize, serde::Deserialize)]
1454            #[serde(rename_all = "snake_case")]
1455            #[derive(Clone, PartialEq, ::prost::Message)]
1456            pub struct GeomapFieldConfig {
1457                #[prost(oneof = "geomap_field_config::Value", tags = "1, 2")]
1458                pub value: ::core::option::Option<geomap_field_config::Value>,
1459            }
1460            /// Nested message and enum types in `GeomapFieldConfig`.
1461            pub mod geomap_field_config {
1462                #[derive(serde::Serialize, serde::Deserialize)]
1463                #[serde(rename_all = "snake_case")]
1464                #[derive(Clone, PartialEq, ::prost::Message)]
1465                pub struct GeomapCoordinateConfig {
1466                    #[prost(message, optional, tag = "1")]
1467                    pub latitude_field: ::core::option::Option<
1468                        super::super::super::super::super::super::common::ObservationField,
1469                    >,
1470                    #[prost(message, optional, tag = "2")]
1471                    pub longitude_field: ::core::option::Option<
1472                        super::super::super::super::super::super::common::ObservationField,
1473                    >,
1474                }
1475                #[derive(serde::Serialize, serde::Deserialize)]
1476                #[serde(rename_all = "snake_case")]
1477                #[derive(Clone, PartialEq, ::prost::Message)]
1478                pub struct GeomapAwsRegionConfig {
1479                    #[prost(message, optional, tag = "1")]
1480                    pub aws_region_field: ::core::option::Option<
1481                        super::super::super::super::super::super::common::ObservationField,
1482                    >,
1483                }
1484                #[derive(serde::Serialize, serde::Deserialize)]
1485                #[serde(rename_all = "snake_case")]
1486                #[derive(Clone, PartialEq, ::prost::Oneof)]
1487                pub enum Value {
1488                    #[prost(message, tag = "1")]
1489                    CoordinateConfig(GeomapCoordinateConfig),
1490                    #[prost(message, tag = "2")]
1491                    AwsRegionConfig(GeomapAwsRegionConfig),
1492                }
1493            }
1494            #[derive(serde::Serialize, serde::Deserialize)]
1495            #[serde(rename_all = "snake_case")]
1496            #[derive(Clone, PartialEq, ::prost::Message)]
1497            pub struct GeomapAggregation {
1498                #[prost(oneof = "geomap_aggregation::Value", tags = "1, 2, 3, 4, 5")]
1499                pub value: ::core::option::Option<geomap_aggregation::Value>,
1500            }
1501            /// Nested message and enum types in `GeomapAggregation`.
1502            pub mod geomap_aggregation {
1503                #[derive(serde::Serialize, serde::Deserialize)]
1504                #[serde(rename_all = "snake_case")]
1505                #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1506                pub struct GeomapAggregationSimple {}
1507                #[derive(serde::Serialize, serde::Deserialize)]
1508                #[serde(rename_all = "snake_case")]
1509                #[derive(Clone, PartialEq, ::prost::Message)]
1510                pub struct GeomapAggregationFieldBased {
1511                    #[prost(message, optional, tag = "1")]
1512                    pub field: ::core::option::Option<
1513                        super::super::super::super::super::super::common::ObservationField,
1514                    >,
1515                }
1516                #[derive(serde::Serialize, serde::Deserialize)]
1517                #[serde(rename_all = "snake_case")]
1518                #[derive(Clone, PartialEq, ::prost::Oneof)]
1519                pub enum Value {
1520                    #[prost(message, tag = "1")]
1521                    Count(GeomapAggregationSimple),
1522                    #[prost(message, tag = "2")]
1523                    Sum(GeomapAggregationFieldBased),
1524                    #[prost(message, tag = "3")]
1525                    Min(GeomapAggregationFieldBased),
1526                    #[prost(message, tag = "4")]
1527                    Max(GeomapAggregationFieldBased),
1528                    #[prost(message, tag = "5")]
1529                    Avg(GeomapAggregationFieldBased),
1530                }
1531            }
1532            #[derive(serde::Serialize, serde::Deserialize)]
1533            #[serde(rename_all = "snake_case")]
1534            #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1535            pub struct GeomapColor {
1536                #[prost(oneof = "geomap_color::Value", tags = "1, 2")]
1537                pub value: ::core::option::Option<geomap_color::Value>,
1538            }
1539            /// Nested message and enum types in `GeomapColor`.
1540            pub mod geomap_color {
1541                #[derive(serde::Serialize, serde::Deserialize)]
1542                #[serde(rename_all = "snake_case")]
1543                #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
1544                pub enum Value {
1545                    #[prost(
1546                        enumeration = "super::super::super::super::common::ColorSolidType",
1547                        tag = "1"
1548                    )]
1549                    Size(i32),
1550                    #[prost(
1551                        enumeration = "super::super::super::super::common::ColorGradientType",
1552                        tag = "2"
1553                    )]
1554                    ColorRange(i32),
1555                }
1556            }
1557        }
1558        #[derive(serde::Serialize, serde::Deserialize)]
1559        #[serde(rename_all = "snake_case")]
1560        #[derive(
1561            Clone,
1562            Copy,
1563            Debug,
1564            PartialEq,
1565            Eq,
1566            Hash,
1567            PartialOrd,
1568            Ord,
1569            ::prost::Enumeration
1570        )]
1571        #[repr(i32)]
1572        pub enum BarValueDisplay {
1573            Unspecified = 0,
1574            Top = 1,
1575            Inside = 2,
1576            Both = 3,
1577        }
1578        impl BarValueDisplay {
1579            /// String value of the enum field names used in the ProtoBuf definition.
1580            ///
1581            /// The values are not transformed in any way and thus are considered stable
1582            /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1583            pub fn as_str_name(&self) -> &'static str {
1584                match self {
1585                    Self::Unspecified => "BAR_VALUE_DISPLAY_UNSPECIFIED",
1586                    Self::Top => "BAR_VALUE_DISPLAY_TOP",
1587                    Self::Inside => "BAR_VALUE_DISPLAY_INSIDE",
1588                    Self::Both => "BAR_VALUE_DISPLAY_BOTH",
1589                }
1590            }
1591            /// Creates an enum from field names used in the ProtoBuf definition.
1592            pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1593                match value {
1594                    "BAR_VALUE_DISPLAY_UNSPECIFIED" => Some(Self::Unspecified),
1595                    "BAR_VALUE_DISPLAY_TOP" => Some(Self::Top),
1596                    "BAR_VALUE_DISPLAY_INSIDE" => Some(Self::Inside),
1597                    "BAR_VALUE_DISPLAY_BOTH" => Some(Self::Both),
1598                    _ => None,
1599                }
1600            }
1601        }
1602        #[derive(serde::Serialize, serde::Deserialize)]
1603        #[serde(rename_all = "snake_case")]
1604        #[derive(Clone, PartialEq, ::prost::Oneof)]
1605        pub enum Value {
1606            #[prost(message, tag = "1")]
1607            Table(Table),
1608            #[prost(message, tag = "2")]
1609            TimeSeriesLines(TimeSeriesLines),
1610            #[prost(message, tag = "3")]
1611            TimeSeriesBars(TimeSeriesBars),
1612            #[prost(message, tag = "4")]
1613            Stat(Stat),
1614            #[prost(message, tag = "5")]
1615            Gauge(Gauge),
1616            #[prost(message, tag = "6")]
1617            HexagonBins(HexagonBins),
1618            #[prost(message, tag = "7")]
1619            PieChart(PieChart),
1620            #[prost(message, tag = "8")]
1621            HorizontalBars(HorizontalBars),
1622            #[prost(message, tag = "9")]
1623            VerticalBars(VerticalBars),
1624            #[prost(message, tag = "10")]
1625            Heatmap(Heatmap),
1626            #[prost(message, tag = "11")]
1627            Geomap(Geomap),
1628        }
1629    }
1630    #[derive(serde::Serialize, serde::Deserialize)]
1631    #[serde(rename_all = "snake_case")]
1632    #[derive(
1633        Clone,
1634        Copy,
1635        Debug,
1636        PartialEq,
1637        Eq,
1638        Hash,
1639        PartialOrd,
1640        Ord,
1641        ::prost::Enumeration
1642    )]
1643    #[repr(i32)]
1644    pub enum Interpretation {
1645        Unspecified = 0,
1646        RawDataTable = 1,
1647        TrendOverTimeLine = 2,
1648        SingleValueKpi = 3,
1649        MultiValueKpi = 4,
1650        CategoricalAnalysisVerticalBars = 5,
1651        SingleValueKpiStat = 6,
1652        SingleValueKpiGauge = 7,
1653        MultiValueKpiStat = 8,
1654        MultiValueKpiGauge = 9,
1655        MultiValueKpiHexagonBins = 10,
1656        CategoricalAnalysisPieChart = 11,
1657        CategoricalAnalysisHorizontalBars = 12,
1658    }
1659    impl Interpretation {
1660        /// String value of the enum field names used in the ProtoBuf definition.
1661        ///
1662        /// The values are not transformed in any way and thus are considered stable
1663        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1664        pub fn as_str_name(&self) -> &'static str {
1665            match self {
1666                Self::Unspecified => "INTERPRETATION_UNSPECIFIED",
1667                Self::RawDataTable => "INTERPRETATION_RAW_DATA_TABLE",
1668                Self::TrendOverTimeLine => "INTERPRETATION_TREND_OVER_TIME_LINE",
1669                Self::SingleValueKpi => "INTERPRETATION_SINGLE_VALUE_KPI",
1670                Self::MultiValueKpi => "INTERPRETATION_MULTI_VALUE_KPI",
1671                Self::CategoricalAnalysisVerticalBars => {
1672                    "INTERPRETATION_CATEGORICAL_ANALYSIS_VERTICAL_BARS"
1673                }
1674                Self::SingleValueKpiStat => "INTERPRETATION_SINGLE_VALUE_KPI_STAT",
1675                Self::SingleValueKpiGauge => "INTERPRETATION_SINGLE_VALUE_KPI_GAUGE",
1676                Self::MultiValueKpiStat => "INTERPRETATION_MULTI_VALUE_KPI_STAT",
1677                Self::MultiValueKpiGauge => "INTERPRETATION_MULTI_VALUE_KPI_GAUGE",
1678                Self::MultiValueKpiHexagonBins => {
1679                    "INTERPRETATION_MULTI_VALUE_KPI_HEXAGON_BINS"
1680                }
1681                Self::CategoricalAnalysisPieChart => {
1682                    "INTERPRETATION_CATEGORICAL_ANALYSIS_PIE_CHART"
1683                }
1684                Self::CategoricalAnalysisHorizontalBars => {
1685                    "INTERPRETATION_CATEGORICAL_ANALYSIS_HORIZONTAL_BARS"
1686                }
1687            }
1688        }
1689        /// Creates an enum from field names used in the ProtoBuf definition.
1690        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1691            match value {
1692                "INTERPRETATION_UNSPECIFIED" => Some(Self::Unspecified),
1693                "INTERPRETATION_RAW_DATA_TABLE" => Some(Self::RawDataTable),
1694                "INTERPRETATION_TREND_OVER_TIME_LINE" => Some(Self::TrendOverTimeLine),
1695                "INTERPRETATION_SINGLE_VALUE_KPI" => Some(Self::SingleValueKpi),
1696                "INTERPRETATION_MULTI_VALUE_KPI" => Some(Self::MultiValueKpi),
1697                "INTERPRETATION_CATEGORICAL_ANALYSIS_VERTICAL_BARS" => {
1698                    Some(Self::CategoricalAnalysisVerticalBars)
1699                }
1700                "INTERPRETATION_SINGLE_VALUE_KPI_STAT" => Some(Self::SingleValueKpiStat),
1701                "INTERPRETATION_SINGLE_VALUE_KPI_GAUGE" => {
1702                    Some(Self::SingleValueKpiGauge)
1703                }
1704                "INTERPRETATION_MULTI_VALUE_KPI_STAT" => Some(Self::MultiValueKpiStat),
1705                "INTERPRETATION_MULTI_VALUE_KPI_GAUGE" => Some(Self::MultiValueKpiGauge),
1706                "INTERPRETATION_MULTI_VALUE_KPI_HEXAGON_BINS" => {
1707                    Some(Self::MultiValueKpiHexagonBins)
1708                }
1709                "INTERPRETATION_CATEGORICAL_ANALYSIS_PIE_CHART" => {
1710                    Some(Self::CategoricalAnalysisPieChart)
1711                }
1712                "INTERPRETATION_CATEGORICAL_ANALYSIS_HORIZONTAL_BARS" => {
1713                    Some(Self::CategoricalAnalysisHorizontalBars)
1714                }
1715                _ => None,
1716            }
1717        }
1718    }
1719}
1720#[derive(serde::Serialize, serde::Deserialize)]
1721#[serde(rename_all = "snake_case")]
1722#[derive(Clone, PartialEq, ::prost::Message)]
1723pub struct Gauge {
1724    #[prost(message, optional, tag = "1")]
1725    pub query: ::core::option::Option<gauge::Query>,
1726    #[prost(message, optional, tag = "2")]
1727    pub min: ::core::option::Option<f64>,
1728    #[prost(message, optional, tag = "3")]
1729    pub max: ::core::option::Option<f64>,
1730    #[prost(message, optional, tag = "4")]
1731    pub show_inner_arc: ::core::option::Option<bool>,
1732    #[prost(message, optional, tag = "5")]
1733    pub show_outer_arc: ::core::option::Option<bool>,
1734    #[prost(enumeration = "gauge::Unit", tag = "6")]
1735    pub unit: i32,
1736    #[prost(message, repeated, tag = "7")]
1737    pub thresholds: ::prost::alloc::vec::Vec<gauge::Threshold>,
1738    #[prost(enumeration = "common::DataModeType", tag = "8")]
1739    pub data_mode_type: i32,
1740    #[prost(enumeration = "gauge::ThresholdBy", tag = "9")]
1741    pub threshold_by: i32,
1742    #[prost(message, optional, tag = "10")]
1743    pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
1744    #[prost(message, optional, tag = "11")]
1745    pub decimal: ::core::option::Option<i32>,
1746    #[prost(enumeration = "common::ThresholdType", tag = "12")]
1747    pub threshold_type: i32,
1748    #[prost(message, optional, tag = "13")]
1749    pub legend: ::core::option::Option<common::Legend>,
1750    #[prost(enumeration = "common::LegendBy", tag = "14")]
1751    pub legend_by: i32,
1752    #[prost(message, optional, tag = "15")]
1753    pub display_series_name: ::core::option::Option<bool>,
1754    #[prost(message, optional, tag = "16")]
1755    pub decimal_precision: ::core::option::Option<bool>,
1756}
1757/// Nested message and enum types in `Gauge`.
1758pub mod gauge {
1759    #[derive(serde::Serialize, serde::Deserialize)]
1760    #[serde(rename_all = "snake_case")]
1761    #[derive(Clone, PartialEq, ::prost::Message)]
1762    pub struct Query {
1763        #[prost(oneof = "query::Value", tags = "1, 2, 3, 4")]
1764        pub value: ::core::option::Option<query::Value>,
1765    }
1766    /// Nested message and enum types in `Query`.
1767    pub mod query {
1768        #[derive(serde::Serialize, serde::Deserialize)]
1769        #[serde(rename_all = "snake_case")]
1770        #[derive(Clone, PartialEq, ::prost::Oneof)]
1771        pub enum Value {
1772            #[prost(message, tag = "1")]
1773            Metrics(super::MetricsQuery),
1774            #[prost(message, tag = "2")]
1775            Logs(super::LogsQuery),
1776            #[prost(message, tag = "3")]
1777            Spans(super::SpansQuery),
1778            #[prost(message, tag = "4")]
1779            Dataprime(super::DataprimeQuery),
1780        }
1781    }
1782    #[derive(serde::Serialize, serde::Deserialize)]
1783    #[serde(rename_all = "snake_case")]
1784    #[derive(Clone, PartialEq, ::prost::Message)]
1785    pub struct MetricsQuery {
1786        #[prost(message, optional, tag = "1")]
1787        pub promql_query: ::core::option::Option<
1788            super::super::super::common::PromQlQuery,
1789        >,
1790        #[prost(enumeration = "Aggregation", tag = "2")]
1791        pub aggregation: i32,
1792        #[prost(message, repeated, tag = "3")]
1793        pub filters: ::prost::alloc::vec::Vec<
1794            super::super::filters::filter::MetricsFilter,
1795        >,
1796        #[prost(enumeration = "super::common::MetricsQueryEditorMode", tag = "4")]
1797        pub editor_mode: i32,
1798        #[prost(message, optional, tag = "5")]
1799        pub time_frame: ::core::option::Option<
1800            super::super::super::common::TimeFrameSelect,
1801        >,
1802        #[prost(enumeration = "super::super::super::common::PromQlQueryType", tag = "6")]
1803        pub promql_query_type: i32,
1804    }
1805    #[derive(serde::Serialize, serde::Deserialize)]
1806    #[serde(rename_all = "snake_case")]
1807    #[derive(Clone, PartialEq, ::prost::Message)]
1808    pub struct LogsQuery {
1809        #[prost(message, optional, tag = "1")]
1810        pub lucene_query: ::core::option::Option<
1811            super::super::super::common::LuceneQuery,
1812        >,
1813        #[prost(message, optional, tag = "2")]
1814        pub logs_aggregation: ::core::option::Option<
1815            super::super::super::common::LogsAggregation,
1816        >,
1817        #[deprecated]
1818        #[prost(enumeration = "Aggregation", tag = "3")]
1819        pub aggregation: i32,
1820        #[prost(message, repeated, tag = "4")]
1821        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::LogsFilter>,
1822        #[prost(message, repeated, tag = "5")]
1823        pub group_by: ::prost::alloc::vec::Vec<
1824            super::super::super::common::ObservationField,
1825        >,
1826        #[prost(message, optional, tag = "6")]
1827        pub time_frame: ::core::option::Option<
1828            super::super::super::common::TimeFrameSelect,
1829        >,
1830    }
1831    #[derive(serde::Serialize, serde::Deserialize)]
1832    #[serde(rename_all = "snake_case")]
1833    #[derive(Clone, PartialEq, ::prost::Message)]
1834    pub struct SpansQuery {
1835        #[prost(message, optional, tag = "1")]
1836        pub lucene_query: ::core::option::Option<
1837            super::super::super::common::LuceneQuery,
1838        >,
1839        #[prost(message, optional, tag = "2")]
1840        pub spans_aggregation: ::core::option::Option<
1841            super::super::super::common::SpansAggregation,
1842        >,
1843        #[deprecated]
1844        #[prost(enumeration = "Aggregation", tag = "3")]
1845        pub aggregation: i32,
1846        #[prost(message, repeated, tag = "4")]
1847        pub filters: ::prost::alloc::vec::Vec<
1848            super::super::filters::filter::SpansFilter,
1849        >,
1850        #[prost(message, repeated, tag = "5")]
1851        pub group_by: ::prost::alloc::vec::Vec<super::super::super::common::SpanField>,
1852        #[prost(message, optional, tag = "6")]
1853        pub time_frame: ::core::option::Option<
1854            super::super::super::common::TimeFrameSelect,
1855        >,
1856        #[prost(message, repeated, tag = "7")]
1857        pub group_bys: ::prost::alloc::vec::Vec<
1858            super::super::super::common::SpanObservationField,
1859        >,
1860    }
1861    #[derive(serde::Serialize, serde::Deserialize)]
1862    #[serde(rename_all = "snake_case")]
1863    #[derive(Clone, PartialEq, ::prost::Message)]
1864    pub struct DataprimeQuery {
1865        #[prost(message, optional, tag = "1")]
1866        pub dataprime_query: ::core::option::Option<
1867            super::super::super::common::DataprimeQuery,
1868        >,
1869        #[prost(message, repeated, tag = "2")]
1870        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::Source>,
1871        #[prost(message, optional, tag = "3")]
1872        pub time_frame: ::core::option::Option<
1873            super::super::super::common::TimeFrameSelect,
1874        >,
1875    }
1876    #[derive(serde::Serialize, serde::Deserialize)]
1877    #[serde(rename_all = "snake_case")]
1878    #[derive(Clone, PartialEq, ::prost::Message)]
1879    pub struct Threshold {
1880        #[prost(message, optional, tag = "1")]
1881        pub from: ::core::option::Option<f64>,
1882        #[prost(message, optional, tag = "2")]
1883        pub color: ::core::option::Option<::prost::alloc::string::String>,
1884        #[prost(message, optional, tag = "3")]
1885        pub label: ::core::option::Option<::prost::alloc::string::String>,
1886    }
1887    #[derive(serde::Serialize, serde::Deserialize)]
1888    #[serde(rename_all = "snake_case")]
1889    #[derive(
1890        Clone,
1891        Copy,
1892        Debug,
1893        PartialEq,
1894        Eq,
1895        Hash,
1896        PartialOrd,
1897        Ord,
1898        ::prost::Enumeration
1899    )]
1900    #[repr(i32)]
1901    pub enum Aggregation {
1902        Unspecified = 0,
1903        Last = 1,
1904        Min = 2,
1905        Max = 3,
1906        Avg = 4,
1907        Sum = 5,
1908    }
1909    impl Aggregation {
1910        /// String value of the enum field names used in the ProtoBuf definition.
1911        ///
1912        /// The values are not transformed in any way and thus are considered stable
1913        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1914        pub fn as_str_name(&self) -> &'static str {
1915            match self {
1916                Self::Unspecified => "AGGREGATION_UNSPECIFIED",
1917                Self::Last => "AGGREGATION_LAST",
1918                Self::Min => "AGGREGATION_MIN",
1919                Self::Max => "AGGREGATION_MAX",
1920                Self::Avg => "AGGREGATION_AVG",
1921                Self::Sum => "AGGREGATION_SUM",
1922            }
1923        }
1924        /// Creates an enum from field names used in the ProtoBuf definition.
1925        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1926            match value {
1927                "AGGREGATION_UNSPECIFIED" => Some(Self::Unspecified),
1928                "AGGREGATION_LAST" => Some(Self::Last),
1929                "AGGREGATION_MIN" => Some(Self::Min),
1930                "AGGREGATION_MAX" => Some(Self::Max),
1931                "AGGREGATION_AVG" => Some(Self::Avg),
1932                "AGGREGATION_SUM" => Some(Self::Sum),
1933                _ => None,
1934            }
1935        }
1936    }
1937    #[derive(serde::Serialize, serde::Deserialize)]
1938    #[serde(rename_all = "snake_case")]
1939    #[derive(
1940        Clone,
1941        Copy,
1942        Debug,
1943        PartialEq,
1944        Eq,
1945        Hash,
1946        PartialOrd,
1947        Ord,
1948        ::prost::Enumeration
1949    )]
1950    #[repr(i32)]
1951    pub enum Unit {
1952        Unspecified = 0,
1953        Number = 1,
1954        Percent = 2,
1955        Microseconds = 3,
1956        Milliseconds = 4,
1957        Seconds = 5,
1958        Bytes = 6,
1959        Kbytes = 7,
1960        Mbytes = 8,
1961        Gbytes = 9,
1962        BytesIec = 10,
1963        Kibytes = 11,
1964        Mibytes = 12,
1965        Gibytes = 13,
1966        EurCents = 14,
1967        Eur = 15,
1968        UsdCents = 16,
1969        Usd = 17,
1970        Custom = 18,
1971        PercentZeroOne = 19,
1972        PercentZeroHundred = 20,
1973        Nanoseconds = 21,
1974    }
1975    impl Unit {
1976        /// String value of the enum field names used in the ProtoBuf definition.
1977        ///
1978        /// The values are not transformed in any way and thus are considered stable
1979        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1980        pub fn as_str_name(&self) -> &'static str {
1981            match self {
1982                Self::Unspecified => "UNIT_UNSPECIFIED",
1983                Self::Number => "UNIT_NUMBER",
1984                Self::Percent => "UNIT_PERCENT",
1985                Self::Microseconds => "UNIT_MICROSECONDS",
1986                Self::Milliseconds => "UNIT_MILLISECONDS",
1987                Self::Seconds => "UNIT_SECONDS",
1988                Self::Bytes => "UNIT_BYTES",
1989                Self::Kbytes => "UNIT_KBYTES",
1990                Self::Mbytes => "UNIT_MBYTES",
1991                Self::Gbytes => "UNIT_GBYTES",
1992                Self::BytesIec => "UNIT_BYTES_IEC",
1993                Self::Kibytes => "UNIT_KIBYTES",
1994                Self::Mibytes => "UNIT_MIBYTES",
1995                Self::Gibytes => "UNIT_GIBYTES",
1996                Self::EurCents => "UNIT_EUR_CENTS",
1997                Self::Eur => "UNIT_EUR",
1998                Self::UsdCents => "UNIT_USD_CENTS",
1999                Self::Usd => "UNIT_USD",
2000                Self::Custom => "UNIT_CUSTOM",
2001                Self::PercentZeroOne => "UNIT_PERCENT_ZERO_ONE",
2002                Self::PercentZeroHundred => "UNIT_PERCENT_ZERO_HUNDRED",
2003                Self::Nanoseconds => "UNIT_NANOSECONDS",
2004            }
2005        }
2006        /// Creates an enum from field names used in the ProtoBuf definition.
2007        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2008            match value {
2009                "UNIT_UNSPECIFIED" => Some(Self::Unspecified),
2010                "UNIT_NUMBER" => Some(Self::Number),
2011                "UNIT_PERCENT" => Some(Self::Percent),
2012                "UNIT_MICROSECONDS" => Some(Self::Microseconds),
2013                "UNIT_MILLISECONDS" => Some(Self::Milliseconds),
2014                "UNIT_SECONDS" => Some(Self::Seconds),
2015                "UNIT_BYTES" => Some(Self::Bytes),
2016                "UNIT_KBYTES" => Some(Self::Kbytes),
2017                "UNIT_MBYTES" => Some(Self::Mbytes),
2018                "UNIT_GBYTES" => Some(Self::Gbytes),
2019                "UNIT_BYTES_IEC" => Some(Self::BytesIec),
2020                "UNIT_KIBYTES" => Some(Self::Kibytes),
2021                "UNIT_MIBYTES" => Some(Self::Mibytes),
2022                "UNIT_GIBYTES" => Some(Self::Gibytes),
2023                "UNIT_EUR_CENTS" => Some(Self::EurCents),
2024                "UNIT_EUR" => Some(Self::Eur),
2025                "UNIT_USD_CENTS" => Some(Self::UsdCents),
2026                "UNIT_USD" => Some(Self::Usd),
2027                "UNIT_CUSTOM" => Some(Self::Custom),
2028                "UNIT_PERCENT_ZERO_ONE" => Some(Self::PercentZeroOne),
2029                "UNIT_PERCENT_ZERO_HUNDRED" => Some(Self::PercentZeroHundred),
2030                "UNIT_NANOSECONDS" => Some(Self::Nanoseconds),
2031                _ => None,
2032            }
2033        }
2034    }
2035    #[derive(serde::Serialize, serde::Deserialize)]
2036    #[serde(rename_all = "snake_case")]
2037    #[derive(
2038        Clone,
2039        Copy,
2040        Debug,
2041        PartialEq,
2042        Eq,
2043        Hash,
2044        PartialOrd,
2045        Ord,
2046        ::prost::Enumeration
2047    )]
2048    #[repr(i32)]
2049    pub enum ThresholdBy {
2050        Unspecified = 0,
2051        Value = 1,
2052        Background = 2,
2053    }
2054    impl ThresholdBy {
2055        /// String value of the enum field names used in the ProtoBuf definition.
2056        ///
2057        /// The values are not transformed in any way and thus are considered stable
2058        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2059        pub fn as_str_name(&self) -> &'static str {
2060            match self {
2061                Self::Unspecified => "THRESHOLD_BY_UNSPECIFIED",
2062                Self::Value => "THRESHOLD_BY_VALUE",
2063                Self::Background => "THRESHOLD_BY_BACKGROUND",
2064            }
2065        }
2066        /// Creates an enum from field names used in the ProtoBuf definition.
2067        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2068            match value {
2069                "THRESHOLD_BY_UNSPECIFIED" => Some(Self::Unspecified),
2070                "THRESHOLD_BY_VALUE" => Some(Self::Value),
2071                "THRESHOLD_BY_BACKGROUND" => Some(Self::Background),
2072                _ => None,
2073            }
2074        }
2075    }
2076}
2077#[derive(serde::Serialize, serde::Deserialize)]
2078#[serde(rename_all = "snake_case")]
2079#[derive(Clone, PartialEq, ::prost::Message)]
2080pub struct Hexagon {
2081    #[prost(message, optional, tag = "1")]
2082    pub query: ::core::option::Option<hexagon::Query>,
2083    #[prost(message, optional, tag = "2")]
2084    pub min: ::core::option::Option<f64>,
2085    #[prost(message, optional, tag = "3")]
2086    pub max: ::core::option::Option<f64>,
2087    #[prost(enumeration = "common::Unit", tag = "6")]
2088    pub unit: i32,
2089    #[prost(message, repeated, tag = "7")]
2090    pub thresholds: ::prost::alloc::vec::Vec<common::Threshold>,
2091    #[prost(enumeration = "common::DataModeType", tag = "8")]
2092    pub data_mode_type: i32,
2093    #[prost(message, optional, tag = "10")]
2094    pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
2095    #[prost(message, optional, tag = "11")]
2096    pub decimal: ::core::option::Option<i32>,
2097    #[prost(enumeration = "common::ThresholdType", tag = "12")]
2098    pub threshold_type: i32,
2099    #[prost(message, optional, tag = "13")]
2100    pub legend: ::core::option::Option<common::Legend>,
2101    #[prost(enumeration = "common::LegendBy", tag = "14")]
2102    pub legend_by: i32,
2103    #[prost(message, optional, tag = "15")]
2104    pub decimal_precision: ::core::option::Option<bool>,
2105}
2106/// Nested message and enum types in `Hexagon`.
2107pub mod hexagon {
2108    #[derive(serde::Serialize, serde::Deserialize)]
2109    #[serde(rename_all = "snake_case")]
2110    #[derive(Clone, PartialEq, ::prost::Message)]
2111    pub struct Query {
2112        #[prost(oneof = "query::Value", tags = "1, 2, 3, 4")]
2113        pub value: ::core::option::Option<query::Value>,
2114    }
2115    /// Nested message and enum types in `Query`.
2116    pub mod query {
2117        #[derive(serde::Serialize, serde::Deserialize)]
2118        #[serde(rename_all = "snake_case")]
2119        #[derive(Clone, PartialEq, ::prost::Oneof)]
2120        pub enum Value {
2121            #[prost(message, tag = "1")]
2122            Metrics(super::MetricsQuery),
2123            #[prost(message, tag = "2")]
2124            Logs(super::LogsQuery),
2125            #[prost(message, tag = "3")]
2126            Spans(super::SpansQuery),
2127            #[prost(message, tag = "4")]
2128            Dataprime(super::DataprimeQuery),
2129        }
2130    }
2131    #[derive(serde::Serialize, serde::Deserialize)]
2132    #[serde(rename_all = "snake_case")]
2133    #[derive(Clone, PartialEq, ::prost::Message)]
2134    pub struct MetricsQuery {
2135        #[prost(message, optional, tag = "1")]
2136        pub promql_query: ::core::option::Option<
2137            super::super::super::common::PromQlQuery,
2138        >,
2139        #[prost(message, repeated, tag = "2")]
2140        pub filters: ::prost::alloc::vec::Vec<
2141            super::super::filters::filter::MetricsFilter,
2142        >,
2143        #[prost(enumeration = "super::common::MetricsQueryEditorMode", tag = "3")]
2144        pub editor_mode: i32,
2145        #[prost(message, optional, tag = "4")]
2146        pub time_frame: ::core::option::Option<
2147            super::super::super::common::TimeFrameSelect,
2148        >,
2149        #[prost(enumeration = "super::common::Aggregation", tag = "5")]
2150        pub aggregation: i32,
2151        #[prost(enumeration = "super::super::super::common::PromQlQueryType", tag = "6")]
2152        pub promql_query_type: i32,
2153    }
2154    #[derive(serde::Serialize, serde::Deserialize)]
2155    #[serde(rename_all = "snake_case")]
2156    #[derive(Clone, PartialEq, ::prost::Message)]
2157    pub struct LogsQuery {
2158        #[prost(message, optional, tag = "1")]
2159        pub lucene_query: ::core::option::Option<
2160            super::super::super::common::LuceneQuery,
2161        >,
2162        #[prost(message, optional, tag = "2")]
2163        pub logs_aggregation: ::core::option::Option<
2164            super::super::super::common::LogsAggregation,
2165        >,
2166        #[prost(message, repeated, tag = "3")]
2167        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::LogsFilter>,
2168        #[prost(message, repeated, tag = "4")]
2169        pub group_by: ::prost::alloc::vec::Vec<
2170            super::super::super::common::ObservationField,
2171        >,
2172        #[prost(message, optional, tag = "5")]
2173        pub time_frame: ::core::option::Option<
2174            super::super::super::common::TimeFrameSelect,
2175        >,
2176    }
2177    #[derive(serde::Serialize, serde::Deserialize)]
2178    #[serde(rename_all = "snake_case")]
2179    #[derive(Clone, PartialEq, ::prost::Message)]
2180    pub struct SpansQuery {
2181        #[prost(message, optional, tag = "1")]
2182        pub lucene_query: ::core::option::Option<
2183            super::super::super::common::LuceneQuery,
2184        >,
2185        #[prost(message, optional, tag = "2")]
2186        pub spans_aggregation: ::core::option::Option<
2187            super::super::super::common::SpansAggregation,
2188        >,
2189        #[prost(message, repeated, tag = "3")]
2190        pub filters: ::prost::alloc::vec::Vec<
2191            super::super::filters::filter::SpansFilter,
2192        >,
2193        #[prost(message, repeated, tag = "4")]
2194        pub group_by: ::prost::alloc::vec::Vec<super::super::super::common::SpanField>,
2195        #[prost(message, optional, tag = "5")]
2196        pub time_frame: ::core::option::Option<
2197            super::super::super::common::TimeFrameSelect,
2198        >,
2199        #[prost(message, repeated, tag = "6")]
2200        pub group_bys: ::prost::alloc::vec::Vec<
2201            super::super::super::common::SpanObservationField,
2202        >,
2203    }
2204    #[derive(serde::Serialize, serde::Deserialize)]
2205    #[serde(rename_all = "snake_case")]
2206    #[derive(Clone, PartialEq, ::prost::Message)]
2207    pub struct DataprimeQuery {
2208        #[prost(message, optional, tag = "1")]
2209        pub dataprime_query: ::core::option::Option<
2210            super::super::super::common::DataprimeQuery,
2211        >,
2212        #[prost(message, repeated, tag = "2")]
2213        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::Source>,
2214        #[prost(message, optional, tag = "3")]
2215        pub time_frame: ::core::option::Option<
2216            super::super::super::common::TimeFrameSelect,
2217        >,
2218    }
2219}
2220#[derive(serde::Serialize, serde::Deserialize)]
2221#[serde(rename_all = "snake_case")]
2222#[derive(Clone, PartialEq, ::prost::Message)]
2223pub struct HorizontalBarChart {
2224    #[prost(message, optional, tag = "1")]
2225    pub query: ::core::option::Option<horizontal_bar_chart::Query>,
2226    #[prost(message, optional, tag = "2")]
2227    pub max_bars_per_chart: ::core::option::Option<i32>,
2228    #[prost(message, optional, tag = "3")]
2229    pub group_name_template: ::core::option::Option<::prost::alloc::string::String>,
2230    #[prost(message, optional, tag = "4")]
2231    pub stack_definition: ::core::option::Option<horizontal_bar_chart::StackDefinition>,
2232    #[prost(enumeration = "common::ScaleType", tag = "5")]
2233    pub scale_type: i32,
2234    #[prost(message, optional, tag = "6")]
2235    pub colors_by: ::core::option::Option<common::ColorsBy>,
2236    #[prost(enumeration = "common::Unit", tag = "8")]
2237    pub unit: i32,
2238    #[prost(message, optional, tag = "9")]
2239    pub display_on_bar: ::core::option::Option<bool>,
2240    #[prost(message, optional, tag = "10")]
2241    pub y_axis_view_by: ::core::option::Option<horizontal_bar_chart::YAxisViewBy>,
2242    #[prost(enumeration = "common::SortByType", tag = "11")]
2243    pub sort_by: i32,
2244    #[prost(message, optional, tag = "12")]
2245    pub color_scheme: ::core::option::Option<::prost::alloc::string::String>,
2246    #[prost(enumeration = "common::DataModeType", tag = "13")]
2247    pub data_mode_type: i32,
2248    #[prost(message, optional, tag = "14")]
2249    pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
2250    #[prost(message, optional, tag = "15")]
2251    pub decimal: ::core::option::Option<i32>,
2252    #[prost(message, optional, tag = "16")]
2253    pub legend: ::core::option::Option<common::Legend>,
2254    #[prost(message, optional, tag = "17")]
2255    pub hash_colors: ::core::option::Option<bool>,
2256    #[prost(message, optional, tag = "18")]
2257    pub y_axis_min: ::core::option::Option<f32>,
2258    #[prost(message, optional, tag = "19")]
2259    pub y_axis_max: ::core::option::Option<f32>,
2260    #[prost(message, optional, tag = "20")]
2261    pub decimal_precision: ::core::option::Option<bool>,
2262}
2263/// Nested message and enum types in `HorizontalBarChart`.
2264pub mod horizontal_bar_chart {
2265    #[derive(serde::Serialize, serde::Deserialize)]
2266    #[serde(rename_all = "snake_case")]
2267    #[derive(Clone, PartialEq, ::prost::Message)]
2268    pub struct Query {
2269        #[prost(oneof = "query::Value", tags = "1, 2, 3, 4")]
2270        pub value: ::core::option::Option<query::Value>,
2271    }
2272    /// Nested message and enum types in `Query`.
2273    pub mod query {
2274        #[derive(serde::Serialize, serde::Deserialize)]
2275        #[serde(rename_all = "snake_case")]
2276        #[derive(Clone, PartialEq, ::prost::Oneof)]
2277        pub enum Value {
2278            #[prost(message, tag = "1")]
2279            Logs(super::LogsQuery),
2280            #[prost(message, tag = "2")]
2281            Spans(super::SpansQuery),
2282            #[prost(message, tag = "3")]
2283            Metrics(super::MetricsQuery),
2284            #[prost(message, tag = "4")]
2285            Dataprime(super::DataprimeQuery),
2286        }
2287    }
2288    #[derive(serde::Serialize, serde::Deserialize)]
2289    #[serde(rename_all = "snake_case")]
2290    #[derive(Clone, PartialEq, ::prost::Message)]
2291    pub struct StackDefinition {
2292        #[prost(message, optional, tag = "1")]
2293        pub max_slices_per_bar: ::core::option::Option<i32>,
2294        #[prost(message, optional, tag = "2")]
2295        pub stack_name_template: ::core::option::Option<::prost::alloc::string::String>,
2296    }
2297    #[derive(serde::Serialize, serde::Deserialize)]
2298    #[serde(rename_all = "snake_case")]
2299    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
2300    pub struct YAxisViewBy {
2301        #[prost(oneof = "y_axis_view_by::YAxisView", tags = "1, 2")]
2302        pub y_axis_view: ::core::option::Option<y_axis_view_by::YAxisView>,
2303    }
2304    /// Nested message and enum types in `YAxisViewBy`.
2305    pub mod y_axis_view_by {
2306        #[derive(serde::Serialize, serde::Deserialize)]
2307        #[serde(rename_all = "snake_case")]
2308        #[derive(Clone, Copy, PartialEq, ::prost::Message)]
2309        pub struct YAxisViewByCategory {}
2310        #[derive(serde::Serialize, serde::Deserialize)]
2311        #[serde(rename_all = "snake_case")]
2312        #[derive(Clone, Copy, PartialEq, ::prost::Message)]
2313        pub struct YAxisViewByValue {}
2314        #[derive(serde::Serialize, serde::Deserialize)]
2315        #[serde(rename_all = "snake_case")]
2316        #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
2317        pub enum YAxisView {
2318            #[prost(message, tag = "1")]
2319            Category(YAxisViewByCategory),
2320            #[prost(message, tag = "2")]
2321            Value(YAxisViewByValue),
2322        }
2323    }
2324    #[derive(serde::Serialize, serde::Deserialize)]
2325    #[serde(rename_all = "snake_case")]
2326    #[derive(Clone, PartialEq, ::prost::Message)]
2327    pub struct LogsQuery {
2328        #[prost(message, optional, tag = "1")]
2329        pub lucene_query: ::core::option::Option<
2330            super::super::super::common::LuceneQuery,
2331        >,
2332        #[prost(message, optional, tag = "2")]
2333        pub aggregation: ::core::option::Option<
2334            super::super::super::common::LogsAggregation,
2335        >,
2336        #[prost(message, repeated, tag = "3")]
2337        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::LogsFilter>,
2338        #[prost(message, repeated, tag = "4")]
2339        pub group_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2340        #[prost(message, optional, tag = "5")]
2341        pub stacked_group_name: ::core::option::Option<::prost::alloc::string::String>,
2342        #[prost(message, repeated, tag = "6")]
2343        pub group_names_fields: ::prost::alloc::vec::Vec<
2344            super::super::super::common::ObservationField,
2345        >,
2346        #[prost(message, optional, tag = "7")]
2347        pub stacked_group_name_field: ::core::option::Option<
2348            super::super::super::common::ObservationField,
2349        >,
2350        #[prost(message, optional, tag = "8")]
2351        pub time_frame: ::core::option::Option<
2352            super::super::super::common::TimeFrameSelect,
2353        >,
2354    }
2355    #[derive(serde::Serialize, serde::Deserialize)]
2356    #[serde(rename_all = "snake_case")]
2357    #[derive(Clone, PartialEq, ::prost::Message)]
2358    pub struct SpansQuery {
2359        #[prost(message, optional, tag = "1")]
2360        pub lucene_query: ::core::option::Option<
2361            super::super::super::common::LuceneQuery,
2362        >,
2363        #[prost(message, optional, tag = "2")]
2364        pub aggregation: ::core::option::Option<
2365            super::super::super::common::SpansAggregation,
2366        >,
2367        #[prost(message, repeated, tag = "3")]
2368        pub filters: ::prost::alloc::vec::Vec<
2369            super::super::filters::filter::SpansFilter,
2370        >,
2371        #[prost(message, repeated, tag = "4")]
2372        pub group_names: ::prost::alloc::vec::Vec<
2373            super::super::super::common::SpanField,
2374        >,
2375        #[prost(message, optional, tag = "5")]
2376        pub stacked_group_name: ::core::option::Option<
2377            super::super::super::common::SpanField,
2378        >,
2379        #[prost(message, optional, tag = "6")]
2380        pub time_frame: ::core::option::Option<
2381            super::super::super::common::TimeFrameSelect,
2382        >,
2383        #[prost(message, repeated, tag = "7")]
2384        pub group_names_fields: ::prost::alloc::vec::Vec<
2385            super::super::super::common::SpanObservationField,
2386        >,
2387        #[prost(message, optional, tag = "8")]
2388        pub stacked_group_name_field: ::core::option::Option<
2389            super::super::super::common::SpanObservationField,
2390        >,
2391    }
2392    #[derive(serde::Serialize, serde::Deserialize)]
2393    #[serde(rename_all = "snake_case")]
2394    #[derive(Clone, PartialEq, ::prost::Message)]
2395    pub struct MetricsQuery {
2396        #[prost(message, optional, tag = "1")]
2397        pub promql_query: ::core::option::Option<
2398            super::super::super::common::PromQlQuery,
2399        >,
2400        #[prost(message, repeated, tag = "2")]
2401        pub filters: ::prost::alloc::vec::Vec<
2402            super::super::filters::filter::MetricsFilter,
2403        >,
2404        #[prost(message, repeated, tag = "3")]
2405        pub group_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2406        #[prost(message, optional, tag = "4")]
2407        pub stacked_group_name: ::core::option::Option<::prost::alloc::string::String>,
2408        #[prost(enumeration = "super::common::MetricsQueryEditorMode", tag = "5")]
2409        pub editor_mode: i32,
2410        #[prost(message, optional, tag = "6")]
2411        pub time_frame: ::core::option::Option<
2412            super::super::super::common::TimeFrameSelect,
2413        >,
2414        #[prost(enumeration = "super::super::super::common::PromQlQueryType", tag = "7")]
2415        pub promql_query_type: i32,
2416        #[prost(enumeration = "super::common::Aggregation", tag = "8")]
2417        pub aggregation: i32,
2418    }
2419    #[derive(serde::Serialize, serde::Deserialize)]
2420    #[serde(rename_all = "snake_case")]
2421    #[derive(Clone, PartialEq, ::prost::Message)]
2422    pub struct DataprimeQuery {
2423        #[prost(message, optional, tag = "1")]
2424        pub dataprime_query: ::core::option::Option<
2425            super::super::super::common::DataprimeQuery,
2426        >,
2427        #[prost(message, repeated, tag = "2")]
2428        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::Source>,
2429        #[prost(message, repeated, tag = "3")]
2430        pub group_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2431        #[prost(message, optional, tag = "4")]
2432        pub stacked_group_name: ::core::option::Option<::prost::alloc::string::String>,
2433        #[prost(message, optional, tag = "5")]
2434        pub time_frame: ::core::option::Option<
2435            super::super::super::common::TimeFrameSelect,
2436        >,
2437    }
2438}
2439#[derive(serde::Serialize, serde::Deserialize)]
2440#[serde(rename_all = "snake_case")]
2441#[derive(Clone, PartialEq, ::prost::Message)]
2442pub struct LineChart {
2443    #[prost(message, optional, tag = "2")]
2444    pub legend: ::core::option::Option<common::Legend>,
2445    #[prost(message, optional, tag = "6")]
2446    pub tooltip: ::core::option::Option<line_chart::Tooltip>,
2447    #[prost(message, repeated, tag = "7")]
2448    pub query_definitions: ::prost::alloc::vec::Vec<line_chart::QueryDefinition>,
2449    #[prost(enumeration = "line_chart::StackedLine", tag = "9")]
2450    pub stacked_line: i32,
2451    #[prost(message, optional, tag = "10")]
2452    pub connect_nulls: ::core::option::Option<bool>,
2453}
2454/// Nested message and enum types in `LineChart`.
2455pub mod line_chart {
2456    #[derive(serde::Serialize, serde::Deserialize)]
2457    #[serde(rename_all = "snake_case")]
2458    #[derive(Clone, PartialEq, ::prost::Message)]
2459    pub struct QueryDefinition {
2460        #[prost(message, optional, tag = "1")]
2461        pub id: ::core::option::Option<::prost::alloc::string::String>,
2462        #[prost(message, optional, tag = "2")]
2463        pub query: ::core::option::Option<Query>,
2464        #[prost(message, optional, tag = "3")]
2465        pub series_name_template: ::core::option::Option<::prost::alloc::string::String>,
2466        #[prost(message, optional, tag = "4")]
2467        pub series_count_limit: ::core::option::Option<i64>,
2468        #[prost(enumeration = "super::common::Unit", tag = "5")]
2469        pub unit: i32,
2470        #[prost(enumeration = "super::common::ScaleType", tag = "6")]
2471        pub scale_type: i32,
2472        #[prost(message, optional, tag = "7")]
2473        pub name: ::core::option::Option<::prost::alloc::string::String>,
2474        #[prost(message, optional, tag = "8")]
2475        pub is_visible: ::core::option::Option<bool>,
2476        #[prost(message, optional, tag = "9")]
2477        pub color_scheme: ::core::option::Option<::prost::alloc::string::String>,
2478        #[prost(message, optional, tag = "10")]
2479        pub resolution: ::core::option::Option<Resolution>,
2480        #[prost(enumeration = "super::common::DataModeType", tag = "11")]
2481        pub data_mode_type: i32,
2482        #[prost(message, optional, tag = "12")]
2483        pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
2484        #[prost(message, optional, tag = "13")]
2485        pub decimal: ::core::option::Option<i32>,
2486        #[prost(message, optional, tag = "14")]
2487        pub hash_colors: ::core::option::Option<bool>,
2488        #[prost(message, optional, tag = "15")]
2489        pub y_axis_min: ::core::option::Option<f32>,
2490        #[prost(message, optional, tag = "16")]
2491        pub y_axis_max: ::core::option::Option<f32>,
2492        #[prost(message, optional, tag = "17")]
2493        pub decimal_precision: ::core::option::Option<bool>,
2494    }
2495    #[derive(serde::Serialize, serde::Deserialize)]
2496    #[serde(rename_all = "snake_case")]
2497    #[derive(Clone, PartialEq, ::prost::Message)]
2498    pub struct Query {
2499        #[prost(oneof = "query::Value", tags = "1, 2, 3, 5")]
2500        pub value: ::core::option::Option<query::Value>,
2501    }
2502    /// Nested message and enum types in `Query`.
2503    pub mod query {
2504        #[derive(serde::Serialize, serde::Deserialize)]
2505        #[serde(rename_all = "snake_case")]
2506        #[derive(Clone, PartialEq, ::prost::Oneof)]
2507        pub enum Value {
2508            #[prost(message, tag = "1")]
2509            Logs(super::LogsQuery),
2510            #[prost(message, tag = "2")]
2511            Metrics(super::MetricsQuery),
2512            #[prost(message, tag = "3")]
2513            Spans(super::SpansQuery),
2514            #[prost(message, tag = "5")]
2515            Dataprime(super::DataprimeQuery),
2516        }
2517    }
2518    #[derive(serde::Serialize, serde::Deserialize)]
2519    #[serde(rename_all = "snake_case")]
2520    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
2521    pub struct Tooltip {
2522        #[prost(message, optional, tag = "1")]
2523        pub show_labels: ::core::option::Option<bool>,
2524        #[prost(enumeration = "TooltipType", tag = "2")]
2525        pub r#type: i32,
2526    }
2527    #[derive(serde::Serialize, serde::Deserialize)]
2528    #[serde(rename_all = "snake_case")]
2529    #[derive(Clone, PartialEq, ::prost::Message)]
2530    pub struct LogsQuery {
2531        #[prost(message, optional, tag = "1")]
2532        pub lucene_query: ::core::option::Option<
2533            super::super::super::common::LuceneQuery,
2534        >,
2535        #[prost(message, repeated, tag = "2")]
2536        pub group_by: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2537        #[prost(message, repeated, tag = "3")]
2538        pub aggregations: ::prost::alloc::vec::Vec<
2539            super::super::super::common::LogsAggregation,
2540        >,
2541        #[prost(message, repeated, tag = "4")]
2542        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::LogsFilter>,
2543        #[prost(message, repeated, tag = "5")]
2544        pub group_bys: ::prost::alloc::vec::Vec<
2545            super::super::super::common::ObservationField,
2546        >,
2547        #[prost(message, optional, tag = "6")]
2548        pub time_frame: ::core::option::Option<
2549            super::super::super::common::TimeFrameSelect,
2550        >,
2551    }
2552    #[derive(serde::Serialize, serde::Deserialize)]
2553    #[serde(rename_all = "snake_case")]
2554    #[derive(Clone, PartialEq, ::prost::Message)]
2555    pub struct MetricsQuery {
2556        #[prost(message, optional, tag = "1")]
2557        pub promql_query: ::core::option::Option<
2558            super::super::super::common::PromQlQuery,
2559        >,
2560        #[prost(message, repeated, tag = "2")]
2561        pub filters: ::prost::alloc::vec::Vec<
2562            super::super::filters::filter::MetricsFilter,
2563        >,
2564        #[prost(enumeration = "super::common::MetricsQueryEditorMode", tag = "3")]
2565        pub editor_mode: i32,
2566        #[prost(message, optional, tag = "4")]
2567        pub time_frame: ::core::option::Option<
2568            super::super::super::common::TimeFrameSelect,
2569        >,
2570        #[prost(
2571            enumeration = "super::super::super::common::MetricsSeriesLimitType",
2572            tag = "5"
2573        )]
2574        pub series_limit_type: i32,
2575    }
2576    #[derive(serde::Serialize, serde::Deserialize)]
2577    #[serde(rename_all = "snake_case")]
2578    #[derive(Clone, PartialEq, ::prost::Message)]
2579    pub struct SpansQuery {
2580        #[prost(message, optional, tag = "1")]
2581        pub lucene_query: ::core::option::Option<
2582            super::super::super::common::LuceneQuery,
2583        >,
2584        #[prost(message, repeated, tag = "2")]
2585        pub group_by: ::prost::alloc::vec::Vec<super::super::super::common::SpanField>,
2586        #[prost(message, repeated, tag = "3")]
2587        pub aggregations: ::prost::alloc::vec::Vec<
2588            super::super::super::common::SpansAggregation,
2589        >,
2590        #[prost(message, repeated, tag = "4")]
2591        pub filters: ::prost::alloc::vec::Vec<
2592            super::super::filters::filter::SpansFilter,
2593        >,
2594        #[prost(message, optional, tag = "5")]
2595        pub time_frame: ::core::option::Option<
2596            super::super::super::common::TimeFrameSelect,
2597        >,
2598        #[prost(message, repeated, tag = "6")]
2599        pub group_bys: ::prost::alloc::vec::Vec<
2600            super::super::super::common::SpanObservationField,
2601        >,
2602    }
2603    #[derive(serde::Serialize, serde::Deserialize)]
2604    #[serde(rename_all = "snake_case")]
2605    #[derive(Clone, PartialEq, ::prost::Message)]
2606    pub struct DataprimeQuery {
2607        #[prost(message, optional, tag = "1")]
2608        pub dataprime_query: ::core::option::Option<
2609            super::super::super::common::DataprimeQuery,
2610        >,
2611        #[prost(message, repeated, tag = "2")]
2612        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::Source>,
2613        #[prost(message, optional, tag = "3")]
2614        pub time_frame: ::core::option::Option<
2615            super::super::super::common::TimeFrameSelect,
2616        >,
2617    }
2618    #[derive(serde::Serialize, serde::Deserialize)]
2619    #[serde(rename_all = "snake_case")]
2620    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
2621    pub struct Resolution {
2622        /// it should be oneof i think
2623        #[prost(message, optional, tag = "1")]
2624        pub interval: ::core::option::Option<::prost_wkt_types::Duration>,
2625        #[prost(message, optional, tag = "2")]
2626        pub buckets_presented: ::core::option::Option<i32>,
2627    }
2628    #[derive(serde::Serialize, serde::Deserialize)]
2629    #[serde(rename_all = "snake_case")]
2630    #[derive(
2631        Clone,
2632        Copy,
2633        Debug,
2634        PartialEq,
2635        Eq,
2636        Hash,
2637        PartialOrd,
2638        Ord,
2639        ::prost::Enumeration
2640    )]
2641    #[repr(i32)]
2642    pub enum TooltipType {
2643        Unspecified = 0,
2644        All = 1,
2645        Single = 2,
2646    }
2647    impl TooltipType {
2648        /// String value of the enum field names used in the ProtoBuf definition.
2649        ///
2650        /// The values are not transformed in any way and thus are considered stable
2651        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2652        pub fn as_str_name(&self) -> &'static str {
2653            match self {
2654                Self::Unspecified => "TOOLTIP_TYPE_UNSPECIFIED",
2655                Self::All => "TOOLTIP_TYPE_ALL",
2656                Self::Single => "TOOLTIP_TYPE_SINGLE",
2657            }
2658        }
2659        /// Creates an enum from field names used in the ProtoBuf definition.
2660        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2661            match value {
2662                "TOOLTIP_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
2663                "TOOLTIP_TYPE_ALL" => Some(Self::All),
2664                "TOOLTIP_TYPE_SINGLE" => Some(Self::Single),
2665                _ => None,
2666            }
2667        }
2668    }
2669    #[derive(serde::Serialize, serde::Deserialize)]
2670    #[serde(rename_all = "snake_case")]
2671    #[derive(
2672        Clone,
2673        Copy,
2674        Debug,
2675        PartialEq,
2676        Eq,
2677        Hash,
2678        PartialOrd,
2679        Ord,
2680        ::prost::Enumeration
2681    )]
2682    #[repr(i32)]
2683    pub enum StackedLine {
2684        Unspecified = 0,
2685        Absolute = 1,
2686        Relative = 2,
2687    }
2688    impl StackedLine {
2689        /// String value of the enum field names used in the ProtoBuf definition.
2690        ///
2691        /// The values are not transformed in any way and thus are considered stable
2692        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2693        pub fn as_str_name(&self) -> &'static str {
2694            match self {
2695                Self::Unspecified => "STACKED_LINE_UNSPECIFIED",
2696                Self::Absolute => "STACKED_LINE_ABSOLUTE",
2697                Self::Relative => "STACKED_LINE_RELATIVE",
2698            }
2699        }
2700        /// Creates an enum from field names used in the ProtoBuf definition.
2701        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2702            match value {
2703                "STACKED_LINE_UNSPECIFIED" => Some(Self::Unspecified),
2704                "STACKED_LINE_ABSOLUTE" => Some(Self::Absolute),
2705                "STACKED_LINE_RELATIVE" => Some(Self::Relative),
2706                _ => None,
2707            }
2708        }
2709    }
2710}
2711#[derive(serde::Serialize, serde::Deserialize)]
2712#[serde(rename_all = "snake_case")]
2713#[derive(Clone, PartialEq, ::prost::Message)]
2714pub struct Markdown {
2715    #[prost(message, optional, tag = "1")]
2716    pub markdown_text: ::core::option::Option<::prost::alloc::string::String>,
2717    #[prost(message, optional, tag = "2")]
2718    pub tooltip_text: ::core::option::Option<::prost::alloc::string::String>,
2719}
2720#[derive(serde::Serialize, serde::Deserialize)]
2721#[serde(rename_all = "snake_case")]
2722#[derive(Clone, PartialEq, ::prost::Message)]
2723pub struct PieChart {
2724    #[prost(message, optional, tag = "1")]
2725    pub query: ::core::option::Option<pie_chart::Query>,
2726    #[prost(message, optional, tag = "2")]
2727    pub max_slices_per_chart: ::core::option::Option<i32>,
2728    #[prost(message, optional, tag = "3")]
2729    pub min_slice_percentage: ::core::option::Option<i32>,
2730    #[prost(message, optional, tag = "4")]
2731    pub stack_definition: ::core::option::Option<pie_chart::StackDefinition>,
2732    #[prost(message, optional, tag = "5")]
2733    pub label_definition: ::core::option::Option<pie_chart::LabelDefinition>,
2734    /// not used, to be deprecated
2735    #[prost(message, optional, tag = "6")]
2736    pub show_legend: ::core::option::Option<bool>,
2737    #[prost(message, optional, tag = "7")]
2738    pub group_name_template: ::core::option::Option<::prost::alloc::string::String>,
2739    #[prost(enumeration = "common::Unit", tag = "8")]
2740    pub unit: i32,
2741    #[prost(message, optional, tag = "9")]
2742    pub color_scheme: ::core::option::Option<::prost::alloc::string::String>,
2743    #[prost(enumeration = "common::DataModeType", tag = "10")]
2744    pub data_mode_type: i32,
2745    #[prost(message, optional, tag = "11")]
2746    pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
2747    #[prost(message, optional, tag = "12")]
2748    pub decimal: ::core::option::Option<i32>,
2749    #[prost(message, optional, tag = "13")]
2750    pub legend: ::core::option::Option<common::Legend>,
2751    #[prost(message, optional, tag = "14")]
2752    pub hash_colors: ::core::option::Option<bool>,
2753    #[prost(message, optional, tag = "15")]
2754    pub decimal_precision: ::core::option::Option<bool>,
2755    #[prost(message, optional, tag = "16")]
2756    pub show_total: ::core::option::Option<bool>,
2757}
2758/// Nested message and enum types in `PieChart`.
2759pub mod pie_chart {
2760    #[derive(serde::Serialize, serde::Deserialize)]
2761    #[serde(rename_all = "snake_case")]
2762    #[derive(Clone, PartialEq, ::prost::Message)]
2763    pub struct Query {
2764        #[prost(oneof = "query::Value", tags = "1, 2, 3, 4")]
2765        pub value: ::core::option::Option<query::Value>,
2766    }
2767    /// Nested message and enum types in `Query`.
2768    pub mod query {
2769        #[derive(serde::Serialize, serde::Deserialize)]
2770        #[serde(rename_all = "snake_case")]
2771        #[derive(Clone, PartialEq, ::prost::Oneof)]
2772        pub enum Value {
2773            #[prost(message, tag = "1")]
2774            Logs(super::LogsQuery),
2775            #[prost(message, tag = "2")]
2776            Spans(super::SpansQuery),
2777            #[prost(message, tag = "3")]
2778            Metrics(super::MetricsQuery),
2779            #[prost(message, tag = "4")]
2780            Dataprime(super::DataprimeQuery),
2781        }
2782    }
2783    #[derive(serde::Serialize, serde::Deserialize)]
2784    #[serde(rename_all = "snake_case")]
2785    #[derive(Clone, PartialEq, ::prost::Message)]
2786    pub struct StackDefinition {
2787        #[prost(message, optional, tag = "1")]
2788        pub max_slices_per_stack: ::core::option::Option<i32>,
2789        #[prost(message, optional, tag = "2")]
2790        pub stack_name_template: ::core::option::Option<::prost::alloc::string::String>,
2791    }
2792    #[derive(serde::Serialize, serde::Deserialize)]
2793    #[serde(rename_all = "snake_case")]
2794    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
2795    pub struct LabelDefinition {
2796        #[prost(enumeration = "LabelSource", tag = "1")]
2797        pub label_source: i32,
2798        #[prost(message, optional, tag = "2")]
2799        pub is_visible: ::core::option::Option<bool>,
2800        #[prost(message, optional, tag = "3")]
2801        pub show_name: ::core::option::Option<bool>,
2802        #[prost(message, optional, tag = "4")]
2803        pub show_value: ::core::option::Option<bool>,
2804        #[prost(message, optional, tag = "5")]
2805        pub show_percentage: ::core::option::Option<bool>,
2806    }
2807    #[derive(serde::Serialize, serde::Deserialize)]
2808    #[serde(rename_all = "snake_case")]
2809    #[derive(Clone, PartialEq, ::prost::Message)]
2810    pub struct LogsQuery {
2811        #[prost(message, optional, tag = "1")]
2812        pub lucene_query: ::core::option::Option<
2813            super::super::super::common::LuceneQuery,
2814        >,
2815        #[prost(message, optional, tag = "2")]
2816        pub aggregation: ::core::option::Option<
2817            super::super::super::common::LogsAggregation,
2818        >,
2819        #[prost(message, repeated, tag = "3")]
2820        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::LogsFilter>,
2821        #[prost(message, repeated, tag = "4")]
2822        pub group_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2823        #[prost(message, optional, tag = "5")]
2824        pub stacked_group_name: ::core::option::Option<::prost::alloc::string::String>,
2825        #[prost(message, repeated, tag = "6")]
2826        pub group_names_fields: ::prost::alloc::vec::Vec<
2827            super::super::super::common::ObservationField,
2828        >,
2829        #[prost(message, optional, tag = "7")]
2830        pub stacked_group_name_field: ::core::option::Option<
2831            super::super::super::common::ObservationField,
2832        >,
2833        #[prost(message, optional, tag = "8")]
2834        pub time_frame: ::core::option::Option<
2835            super::super::super::common::TimeFrameSelect,
2836        >,
2837    }
2838    #[derive(serde::Serialize, serde::Deserialize)]
2839    #[serde(rename_all = "snake_case")]
2840    #[derive(Clone, PartialEq, ::prost::Message)]
2841    pub struct SpansQuery {
2842        #[prost(message, optional, tag = "1")]
2843        pub lucene_query: ::core::option::Option<
2844            super::super::super::common::LuceneQuery,
2845        >,
2846        #[prost(message, optional, tag = "2")]
2847        pub aggregation: ::core::option::Option<
2848            super::super::super::common::SpansAggregation,
2849        >,
2850        #[prost(message, repeated, tag = "3")]
2851        pub filters: ::prost::alloc::vec::Vec<
2852            super::super::filters::filter::SpansFilter,
2853        >,
2854        #[prost(message, repeated, tag = "4")]
2855        pub group_names: ::prost::alloc::vec::Vec<
2856            super::super::super::common::SpanField,
2857        >,
2858        #[prost(message, optional, tag = "5")]
2859        pub stacked_group_name: ::core::option::Option<
2860            super::super::super::common::SpanField,
2861        >,
2862        #[prost(message, optional, tag = "6")]
2863        pub time_frame: ::core::option::Option<
2864            super::super::super::common::TimeFrameSelect,
2865        >,
2866        #[prost(message, repeated, tag = "7")]
2867        pub group_names_fields: ::prost::alloc::vec::Vec<
2868            super::super::super::common::SpanObservationField,
2869        >,
2870        #[prost(message, optional, tag = "8")]
2871        pub stacked_group_name_field: ::core::option::Option<
2872            super::super::super::common::SpanObservationField,
2873        >,
2874    }
2875    #[derive(serde::Serialize, serde::Deserialize)]
2876    #[serde(rename_all = "snake_case")]
2877    #[derive(Clone, PartialEq, ::prost::Message)]
2878    pub struct MetricsQuery {
2879        #[prost(message, optional, tag = "1")]
2880        pub promql_query: ::core::option::Option<
2881            super::super::super::common::PromQlQuery,
2882        >,
2883        #[prost(message, repeated, tag = "2")]
2884        pub filters: ::prost::alloc::vec::Vec<
2885            super::super::filters::filter::MetricsFilter,
2886        >,
2887        #[prost(message, repeated, tag = "3")]
2888        pub group_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2889        #[prost(message, optional, tag = "4")]
2890        pub stacked_group_name: ::core::option::Option<::prost::alloc::string::String>,
2891        #[prost(enumeration = "super::common::MetricsQueryEditorMode", tag = "5")]
2892        pub editor_mode: i32,
2893        #[prost(message, optional, tag = "6")]
2894        pub time_frame: ::core::option::Option<
2895            super::super::super::common::TimeFrameSelect,
2896        >,
2897        #[prost(enumeration = "super::super::super::common::PromQlQueryType", tag = "7")]
2898        pub promql_query_type: i32,
2899        #[prost(enumeration = "super::common::Aggregation", tag = "8")]
2900        pub aggregation: i32,
2901    }
2902    #[derive(serde::Serialize, serde::Deserialize)]
2903    #[serde(rename_all = "snake_case")]
2904    #[derive(Clone, PartialEq, ::prost::Message)]
2905    pub struct DataprimeQuery {
2906        #[prost(message, optional, tag = "1")]
2907        pub dataprime_query: ::core::option::Option<
2908            super::super::super::common::DataprimeQuery,
2909        >,
2910        #[prost(message, repeated, tag = "2")]
2911        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::Source>,
2912        #[prost(message, repeated, tag = "3")]
2913        pub group_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2914        #[prost(message, optional, tag = "4")]
2915        pub stacked_group_name: ::core::option::Option<::prost::alloc::string::String>,
2916        #[prost(message, optional, tag = "5")]
2917        pub time_frame: ::core::option::Option<
2918            super::super::super::common::TimeFrameSelect,
2919        >,
2920    }
2921    #[derive(serde::Serialize, serde::Deserialize)]
2922    #[serde(rename_all = "snake_case")]
2923    #[derive(
2924        Clone,
2925        Copy,
2926        Debug,
2927        PartialEq,
2928        Eq,
2929        Hash,
2930        PartialOrd,
2931        Ord,
2932        ::prost::Enumeration
2933    )]
2934    #[repr(i32)]
2935    pub enum LabelSource {
2936        Unspecified = 0,
2937        Inner = 1,
2938        Stack = 2,
2939    }
2940    impl LabelSource {
2941        /// String value of the enum field names used in the ProtoBuf definition.
2942        ///
2943        /// The values are not transformed in any way and thus are considered stable
2944        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2945        pub fn as_str_name(&self) -> &'static str {
2946            match self {
2947                Self::Unspecified => "LABEL_SOURCE_UNSPECIFIED",
2948                Self::Inner => "LABEL_SOURCE_INNER",
2949                Self::Stack => "LABEL_SOURCE_STACK",
2950            }
2951        }
2952        /// Creates an enum from field names used in the ProtoBuf definition.
2953        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2954            match value {
2955                "LABEL_SOURCE_UNSPECIFIED" => Some(Self::Unspecified),
2956                "LABEL_SOURCE_INNER" => Some(Self::Inner),
2957                "LABEL_SOURCE_STACK" => Some(Self::Stack),
2958                _ => None,
2959            }
2960        }
2961    }
2962}