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