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

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