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}
499/// Nested message and enum types in `Dynamic`.
500pub mod dynamic {
501    #[derive(serde::Serialize, serde::Deserialize)]
502    #[serde(rename_all = "snake_case")]
503    #[derive(Clone, PartialEq, ::prost::Message)]
504    pub struct Query {
505        #[prost(oneof = "query::Value", tags = "1, 2, 3, 4")]
506        pub value: ::core::option::Option<query::Value>,
507    }
508    /// Nested message and enum types in `Query`.
509    pub mod query {
510        #[derive(serde::Serialize, serde::Deserialize)]
511        #[serde(rename_all = "snake_case")]
512        #[derive(Clone, PartialEq, ::prost::Message)]
513        pub struct Logs {
514            #[prost(message, optional, tag = "1")]
515            pub lucene_query: ::core::option::Option<
516                super::super::super::super::common::LuceneQuery,
517            >,
518            #[prost(enumeration = "super::super::common::DataModeType", tag = "2")]
519            pub data_mode_type: i32,
520            #[prost(message, repeated, tag = "3")]
521            pub filters: ::prost::alloc::vec::Vec<
522                super::super::super::filters::filter::LogsFilter,
523            >,
524            #[prost(message, repeated, tag = "4")]
525            pub group_by: ::prost::alloc::vec::Vec<
526                super::super::super::super::common::ObservationField,
527            >,
528            #[prost(message, repeated, tag = "5")]
529            pub aggregation: ::prost::alloc::vec::Vec<
530                super::super::super::super::common::LogsAggregation,
531            >,
532        }
533        #[derive(serde::Serialize, serde::Deserialize)]
534        #[serde(rename_all = "snake_case")]
535        #[derive(Clone, PartialEq, ::prost::Message)]
536        pub struct Spans {
537            #[prost(message, optional, tag = "1")]
538            pub lucene_query: ::core::option::Option<
539                super::super::super::super::common::LuceneQuery,
540            >,
541            #[prost(enumeration = "super::super::common::DataModeType", tag = "2")]
542            pub data_mode_type: i32,
543            #[prost(message, repeated, tag = "3")]
544            pub filters: ::prost::alloc::vec::Vec<
545                super::super::super::filters::filter::SpansFilter,
546            >,
547            #[prost(message, repeated, tag = "4")]
548            pub group_by: ::prost::alloc::vec::Vec<
549                super::super::super::super::common::SpanObservationField,
550            >,
551            #[prost(message, repeated, tag = "5")]
552            pub aggregation: ::prost::alloc::vec::Vec<
553                super::super::super::super::common::LogsAggregation,
554            >,
555        }
556        #[derive(serde::Serialize, serde::Deserialize)]
557        #[serde(rename_all = "snake_case")]
558        #[derive(Clone, PartialEq, ::prost::Message)]
559        pub struct Metrics {
560            #[prost(message, optional, tag = "1")]
561            pub promql_query: ::core::option::Option<
562                super::super::super::super::common::PromQlQuery,
563            >,
564            #[prost(
565                enumeration = "super::super::super::super::common::PromQlQueryType",
566                tag = "2"
567            )]
568            pub promql_query_type: i32,
569            #[prost(
570                enumeration = "super::super::common::MetricsQueryEditorMode",
571                tag = "3"
572            )]
573            pub editor_mode: i32,
574            #[prost(
575                enumeration = "super::super::super::super::common::MetricsSeriesLimitType",
576                tag = "4"
577            )]
578            pub series_limit_type: i32,
579        }
580        #[derive(serde::Serialize, serde::Deserialize)]
581        #[serde(rename_all = "snake_case")]
582        #[derive(Clone, PartialEq, ::prost::Message)]
583        pub struct Dataprime {
584            #[prost(message, optional, tag = "1")]
585            pub dataprime_query: ::core::option::Option<
586                super::super::super::super::common::DataprimeQuery,
587            >,
588            #[prost(enumeration = "super::super::common::DataModeType", tag = "2")]
589            pub data_mode_type: i32,
590        }
591        #[derive(serde::Serialize, serde::Deserialize)]
592        #[serde(rename_all = "snake_case")]
593        #[derive(Clone, PartialEq, ::prost::Oneof)]
594        pub enum Value {
595            #[prost(message, tag = "1")]
596            Logs(Logs),
597            #[prost(message, tag = "2")]
598            Spans(Spans),
599            #[prost(message, tag = "3")]
600            Metrics(Metrics),
601            #[prost(message, tag = "4")]
602            Dataprime(Dataprime),
603        }
604    }
605    #[derive(serde::Serialize, serde::Deserialize)]
606    #[serde(rename_all = "snake_case")]
607    #[derive(
608        Clone,
609        Copy,
610        Debug,
611        PartialEq,
612        Eq,
613        Hash,
614        PartialOrd,
615        Ord,
616        ::prost::Enumeration
617    )]
618    #[repr(i32)]
619    pub enum Interpretation {
620        Unspecified = 0,
621        RawDataTable = 1,
622        TrendOverTimeLine = 2,
623        SingleValueKpi = 3,
624        MultiValueKpi = 4,
625        CategoricalAnalysisVerticalBars = 5,
626        SingleValueKpiStat = 6,
627        SingleValueKpiGauge = 7,
628        MultiValueKpiStat = 8,
629        MultiValueKpiGauge = 9,
630        MultiValueKpiHexagonBins = 10,
631        CategoricalAnalysisPieChart = 11,
632        CategoricalAnalysisHorizontalBars = 12,
633    }
634    impl Interpretation {
635        /// String value of the enum field names used in the ProtoBuf definition.
636        ///
637        /// The values are not transformed in any way and thus are considered stable
638        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
639        pub fn as_str_name(&self) -> &'static str {
640            match self {
641                Self::Unspecified => "INTERPRETATION_UNSPECIFIED",
642                Self::RawDataTable => "INTERPRETATION_RAW_DATA_TABLE",
643                Self::TrendOverTimeLine => "INTERPRETATION_TREND_OVER_TIME_LINE",
644                Self::SingleValueKpi => "INTERPRETATION_SINGLE_VALUE_KPI",
645                Self::MultiValueKpi => "INTERPRETATION_MULTI_VALUE_KPI",
646                Self::CategoricalAnalysisVerticalBars => {
647                    "INTERPRETATION_CATEGORICAL_ANALYSIS_VERTICAL_BARS"
648                }
649                Self::SingleValueKpiStat => "INTERPRETATION_SINGLE_VALUE_KPI_STAT",
650                Self::SingleValueKpiGauge => "INTERPRETATION_SINGLE_VALUE_KPI_GAUGE",
651                Self::MultiValueKpiStat => "INTERPRETATION_MULTI_VALUE_KPI_STAT",
652                Self::MultiValueKpiGauge => "INTERPRETATION_MULTI_VALUE_KPI_GAUGE",
653                Self::MultiValueKpiHexagonBins => {
654                    "INTERPRETATION_MULTI_VALUE_KPI_HEXAGON_BINS"
655                }
656                Self::CategoricalAnalysisPieChart => {
657                    "INTERPRETATION_CATEGORICAL_ANALYSIS_PIE_CHART"
658                }
659                Self::CategoricalAnalysisHorizontalBars => {
660                    "INTERPRETATION_CATEGORICAL_ANALYSIS_HORIZONTAL_BARS"
661                }
662            }
663        }
664        /// Creates an enum from field names used in the ProtoBuf definition.
665        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
666            match value {
667                "INTERPRETATION_UNSPECIFIED" => Some(Self::Unspecified),
668                "INTERPRETATION_RAW_DATA_TABLE" => Some(Self::RawDataTable),
669                "INTERPRETATION_TREND_OVER_TIME_LINE" => Some(Self::TrendOverTimeLine),
670                "INTERPRETATION_SINGLE_VALUE_KPI" => Some(Self::SingleValueKpi),
671                "INTERPRETATION_MULTI_VALUE_KPI" => Some(Self::MultiValueKpi),
672                "INTERPRETATION_CATEGORICAL_ANALYSIS_VERTICAL_BARS" => {
673                    Some(Self::CategoricalAnalysisVerticalBars)
674                }
675                "INTERPRETATION_SINGLE_VALUE_KPI_STAT" => Some(Self::SingleValueKpiStat),
676                "INTERPRETATION_SINGLE_VALUE_KPI_GAUGE" => {
677                    Some(Self::SingleValueKpiGauge)
678                }
679                "INTERPRETATION_MULTI_VALUE_KPI_STAT" => Some(Self::MultiValueKpiStat),
680                "INTERPRETATION_MULTI_VALUE_KPI_GAUGE" => Some(Self::MultiValueKpiGauge),
681                "INTERPRETATION_MULTI_VALUE_KPI_HEXAGON_BINS" => {
682                    Some(Self::MultiValueKpiHexagonBins)
683                }
684                "INTERPRETATION_CATEGORICAL_ANALYSIS_PIE_CHART" => {
685                    Some(Self::CategoricalAnalysisPieChart)
686                }
687                "INTERPRETATION_CATEGORICAL_ANALYSIS_HORIZONTAL_BARS" => {
688                    Some(Self::CategoricalAnalysisHorizontalBars)
689                }
690                _ => None,
691            }
692        }
693    }
694}
695#[derive(serde::Serialize, serde::Deserialize)]
696#[serde(rename_all = "snake_case")]
697#[derive(Clone, PartialEq, ::prost::Message)]
698pub struct Gauge {
699    #[prost(message, optional, tag = "1")]
700    pub query: ::core::option::Option<gauge::Query>,
701    #[prost(message, optional, tag = "2")]
702    pub min: ::core::option::Option<f64>,
703    #[prost(message, optional, tag = "3")]
704    pub max: ::core::option::Option<f64>,
705    #[prost(message, optional, tag = "4")]
706    pub show_inner_arc: ::core::option::Option<bool>,
707    #[prost(message, optional, tag = "5")]
708    pub show_outer_arc: ::core::option::Option<bool>,
709    #[prost(enumeration = "gauge::Unit", tag = "6")]
710    pub unit: i32,
711    #[prost(message, repeated, tag = "7")]
712    pub thresholds: ::prost::alloc::vec::Vec<gauge::Threshold>,
713    #[prost(enumeration = "common::DataModeType", tag = "8")]
714    pub data_mode_type: i32,
715    #[prost(enumeration = "gauge::ThresholdBy", tag = "9")]
716    pub threshold_by: i32,
717    #[prost(message, optional, tag = "10")]
718    pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
719    #[prost(message, optional, tag = "11")]
720    pub decimal: ::core::option::Option<i32>,
721    #[prost(enumeration = "common::ThresholdType", tag = "12")]
722    pub threshold_type: i32,
723    #[prost(message, optional, tag = "13")]
724    pub legend: ::core::option::Option<common::Legend>,
725    #[prost(enumeration = "common::LegendBy", tag = "14")]
726    pub legend_by: i32,
727    #[prost(message, optional, tag = "15")]
728    pub display_series_name: ::core::option::Option<bool>,
729    #[prost(message, optional, tag = "16")]
730    pub decimal_precision: ::core::option::Option<bool>,
731}
732/// Nested message and enum types in `Gauge`.
733pub mod gauge {
734    #[derive(serde::Serialize, serde::Deserialize)]
735    #[serde(rename_all = "snake_case")]
736    #[derive(Clone, PartialEq, ::prost::Message)]
737    pub struct Query {
738        #[prost(oneof = "query::Value", tags = "1, 2, 3, 4")]
739        pub value: ::core::option::Option<query::Value>,
740    }
741    /// Nested message and enum types in `Query`.
742    pub mod query {
743        #[derive(serde::Serialize, serde::Deserialize)]
744        #[serde(rename_all = "snake_case")]
745        #[derive(Clone, PartialEq, ::prost::Oneof)]
746        pub enum Value {
747            #[prost(message, tag = "1")]
748            Metrics(super::MetricsQuery),
749            #[prost(message, tag = "2")]
750            Logs(super::LogsQuery),
751            #[prost(message, tag = "3")]
752            Spans(super::SpansQuery),
753            #[prost(message, tag = "4")]
754            Dataprime(super::DataprimeQuery),
755        }
756    }
757    #[derive(serde::Serialize, serde::Deserialize)]
758    #[serde(rename_all = "snake_case")]
759    #[derive(Clone, PartialEq, ::prost::Message)]
760    pub struct MetricsQuery {
761        #[prost(message, optional, tag = "1")]
762        pub promql_query: ::core::option::Option<
763            super::super::super::common::PromQlQuery,
764        >,
765        #[prost(enumeration = "Aggregation", tag = "2")]
766        pub aggregation: i32,
767        #[prost(message, repeated, tag = "3")]
768        pub filters: ::prost::alloc::vec::Vec<
769            super::super::filters::filter::MetricsFilter,
770        >,
771        #[prost(enumeration = "super::common::MetricsQueryEditorMode", tag = "4")]
772        pub editor_mode: i32,
773        #[prost(message, optional, tag = "5")]
774        pub time_frame: ::core::option::Option<
775            super::super::super::common::TimeFrameSelect,
776        >,
777        #[prost(enumeration = "super::super::super::common::PromQlQueryType", tag = "6")]
778        pub promql_query_type: i32,
779    }
780    #[derive(serde::Serialize, serde::Deserialize)]
781    #[serde(rename_all = "snake_case")]
782    #[derive(Clone, PartialEq, ::prost::Message)]
783    pub struct LogsQuery {
784        #[prost(message, optional, tag = "1")]
785        pub lucene_query: ::core::option::Option<
786            super::super::super::common::LuceneQuery,
787        >,
788        #[prost(message, optional, tag = "2")]
789        pub logs_aggregation: ::core::option::Option<
790            super::super::super::common::LogsAggregation,
791        >,
792        #[deprecated]
793        #[prost(enumeration = "Aggregation", tag = "3")]
794        pub aggregation: i32,
795        #[prost(message, repeated, tag = "4")]
796        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::LogsFilter>,
797        #[prost(message, repeated, tag = "5")]
798        pub group_by: ::prost::alloc::vec::Vec<
799            super::super::super::common::ObservationField,
800        >,
801        #[prost(message, optional, tag = "6")]
802        pub time_frame: ::core::option::Option<
803            super::super::super::common::TimeFrameSelect,
804        >,
805    }
806    #[derive(serde::Serialize, serde::Deserialize)]
807    #[serde(rename_all = "snake_case")]
808    #[derive(Clone, PartialEq, ::prost::Message)]
809    pub struct SpansQuery {
810        #[prost(message, optional, tag = "1")]
811        pub lucene_query: ::core::option::Option<
812            super::super::super::common::LuceneQuery,
813        >,
814        #[prost(message, optional, tag = "2")]
815        pub spans_aggregation: ::core::option::Option<
816            super::super::super::common::SpansAggregation,
817        >,
818        #[deprecated]
819        #[prost(enumeration = "Aggregation", tag = "3")]
820        pub aggregation: i32,
821        #[prost(message, repeated, tag = "4")]
822        pub filters: ::prost::alloc::vec::Vec<
823            super::super::filters::filter::SpansFilter,
824        >,
825        #[prost(message, repeated, tag = "5")]
826        pub group_by: ::prost::alloc::vec::Vec<super::super::super::common::SpanField>,
827        #[prost(message, optional, tag = "6")]
828        pub time_frame: ::core::option::Option<
829            super::super::super::common::TimeFrameSelect,
830        >,
831        #[prost(message, repeated, tag = "7")]
832        pub group_bys: ::prost::alloc::vec::Vec<
833            super::super::super::common::SpanObservationField,
834        >,
835    }
836    #[derive(serde::Serialize, serde::Deserialize)]
837    #[serde(rename_all = "snake_case")]
838    #[derive(Clone, PartialEq, ::prost::Message)]
839    pub struct DataprimeQuery {
840        #[prost(message, optional, tag = "1")]
841        pub dataprime_query: ::core::option::Option<
842            super::super::super::common::DataprimeQuery,
843        >,
844        #[prost(message, repeated, tag = "2")]
845        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::Source>,
846        #[prost(message, optional, tag = "3")]
847        pub time_frame: ::core::option::Option<
848            super::super::super::common::TimeFrameSelect,
849        >,
850    }
851    #[derive(serde::Serialize, serde::Deserialize)]
852    #[serde(rename_all = "snake_case")]
853    #[derive(Clone, PartialEq, ::prost::Message)]
854    pub struct Threshold {
855        #[prost(message, optional, tag = "1")]
856        pub from: ::core::option::Option<f64>,
857        #[prost(message, optional, tag = "2")]
858        pub color: ::core::option::Option<::prost::alloc::string::String>,
859        #[prost(message, optional, tag = "3")]
860        pub label: ::core::option::Option<::prost::alloc::string::String>,
861    }
862    #[derive(serde::Serialize, serde::Deserialize)]
863    #[serde(rename_all = "snake_case")]
864    #[derive(
865        Clone,
866        Copy,
867        Debug,
868        PartialEq,
869        Eq,
870        Hash,
871        PartialOrd,
872        Ord,
873        ::prost::Enumeration
874    )]
875    #[repr(i32)]
876    pub enum Aggregation {
877        Unspecified = 0,
878        Last = 1,
879        Min = 2,
880        Max = 3,
881        Avg = 4,
882        Sum = 5,
883    }
884    impl Aggregation {
885        /// String value of the enum field names used in the ProtoBuf definition.
886        ///
887        /// The values are not transformed in any way and thus are considered stable
888        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
889        pub fn as_str_name(&self) -> &'static str {
890            match self {
891                Self::Unspecified => "AGGREGATION_UNSPECIFIED",
892                Self::Last => "AGGREGATION_LAST",
893                Self::Min => "AGGREGATION_MIN",
894                Self::Max => "AGGREGATION_MAX",
895                Self::Avg => "AGGREGATION_AVG",
896                Self::Sum => "AGGREGATION_SUM",
897            }
898        }
899        /// Creates an enum from field names used in the ProtoBuf definition.
900        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
901            match value {
902                "AGGREGATION_UNSPECIFIED" => Some(Self::Unspecified),
903                "AGGREGATION_LAST" => Some(Self::Last),
904                "AGGREGATION_MIN" => Some(Self::Min),
905                "AGGREGATION_MAX" => Some(Self::Max),
906                "AGGREGATION_AVG" => Some(Self::Avg),
907                "AGGREGATION_SUM" => Some(Self::Sum),
908                _ => None,
909            }
910        }
911    }
912    #[derive(serde::Serialize, serde::Deserialize)]
913    #[serde(rename_all = "snake_case")]
914    #[derive(
915        Clone,
916        Copy,
917        Debug,
918        PartialEq,
919        Eq,
920        Hash,
921        PartialOrd,
922        Ord,
923        ::prost::Enumeration
924    )]
925    #[repr(i32)]
926    pub enum Unit {
927        Unspecified = 0,
928        Number = 1,
929        Percent = 2,
930        Microseconds = 3,
931        Milliseconds = 4,
932        Seconds = 5,
933        Bytes = 6,
934        Kbytes = 7,
935        Mbytes = 8,
936        Gbytes = 9,
937        BytesIec = 10,
938        Kibytes = 11,
939        Mibytes = 12,
940        Gibytes = 13,
941        EurCents = 14,
942        Eur = 15,
943        UsdCents = 16,
944        Usd = 17,
945        Custom = 18,
946        PercentZeroOne = 19,
947        PercentZeroHundred = 20,
948        Nanoseconds = 21,
949    }
950    impl Unit {
951        /// String value of the enum field names used in the ProtoBuf definition.
952        ///
953        /// The values are not transformed in any way and thus are considered stable
954        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
955        pub fn as_str_name(&self) -> &'static str {
956            match self {
957                Self::Unspecified => "UNIT_UNSPECIFIED",
958                Self::Number => "UNIT_NUMBER",
959                Self::Percent => "UNIT_PERCENT",
960                Self::Microseconds => "UNIT_MICROSECONDS",
961                Self::Milliseconds => "UNIT_MILLISECONDS",
962                Self::Seconds => "UNIT_SECONDS",
963                Self::Bytes => "UNIT_BYTES",
964                Self::Kbytes => "UNIT_KBYTES",
965                Self::Mbytes => "UNIT_MBYTES",
966                Self::Gbytes => "UNIT_GBYTES",
967                Self::BytesIec => "UNIT_BYTES_IEC",
968                Self::Kibytes => "UNIT_KIBYTES",
969                Self::Mibytes => "UNIT_MIBYTES",
970                Self::Gibytes => "UNIT_GIBYTES",
971                Self::EurCents => "UNIT_EUR_CENTS",
972                Self::Eur => "UNIT_EUR",
973                Self::UsdCents => "UNIT_USD_CENTS",
974                Self::Usd => "UNIT_USD",
975                Self::Custom => "UNIT_CUSTOM",
976                Self::PercentZeroOne => "UNIT_PERCENT_ZERO_ONE",
977                Self::PercentZeroHundred => "UNIT_PERCENT_ZERO_HUNDRED",
978                Self::Nanoseconds => "UNIT_NANOSECONDS",
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                "UNIT_UNSPECIFIED" => Some(Self::Unspecified),
985                "UNIT_NUMBER" => Some(Self::Number),
986                "UNIT_PERCENT" => Some(Self::Percent),
987                "UNIT_MICROSECONDS" => Some(Self::Microseconds),
988                "UNIT_MILLISECONDS" => Some(Self::Milliseconds),
989                "UNIT_SECONDS" => Some(Self::Seconds),
990                "UNIT_BYTES" => Some(Self::Bytes),
991                "UNIT_KBYTES" => Some(Self::Kbytes),
992                "UNIT_MBYTES" => Some(Self::Mbytes),
993                "UNIT_GBYTES" => Some(Self::Gbytes),
994                "UNIT_BYTES_IEC" => Some(Self::BytesIec),
995                "UNIT_KIBYTES" => Some(Self::Kibytes),
996                "UNIT_MIBYTES" => Some(Self::Mibytes),
997                "UNIT_GIBYTES" => Some(Self::Gibytes),
998                "UNIT_EUR_CENTS" => Some(Self::EurCents),
999                "UNIT_EUR" => Some(Self::Eur),
1000                "UNIT_USD_CENTS" => Some(Self::UsdCents),
1001                "UNIT_USD" => Some(Self::Usd),
1002                "UNIT_CUSTOM" => Some(Self::Custom),
1003                "UNIT_PERCENT_ZERO_ONE" => Some(Self::PercentZeroOne),
1004                "UNIT_PERCENT_ZERO_HUNDRED" => Some(Self::PercentZeroHundred),
1005                "UNIT_NANOSECONDS" => Some(Self::Nanoseconds),
1006                _ => None,
1007            }
1008        }
1009    }
1010    #[derive(serde::Serialize, serde::Deserialize)]
1011    #[serde(rename_all = "snake_case")]
1012    #[derive(
1013        Clone,
1014        Copy,
1015        Debug,
1016        PartialEq,
1017        Eq,
1018        Hash,
1019        PartialOrd,
1020        Ord,
1021        ::prost::Enumeration
1022    )]
1023    #[repr(i32)]
1024    pub enum ThresholdBy {
1025        Unspecified = 0,
1026        Value = 1,
1027        Background = 2,
1028    }
1029    impl ThresholdBy {
1030        /// String value of the enum field names used in the ProtoBuf definition.
1031        ///
1032        /// The values are not transformed in any way and thus are considered stable
1033        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1034        pub fn as_str_name(&self) -> &'static str {
1035            match self {
1036                Self::Unspecified => "THRESHOLD_BY_UNSPECIFIED",
1037                Self::Value => "THRESHOLD_BY_VALUE",
1038                Self::Background => "THRESHOLD_BY_BACKGROUND",
1039            }
1040        }
1041        /// Creates an enum from field names used in the ProtoBuf definition.
1042        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1043            match value {
1044                "THRESHOLD_BY_UNSPECIFIED" => Some(Self::Unspecified),
1045                "THRESHOLD_BY_VALUE" => Some(Self::Value),
1046                "THRESHOLD_BY_BACKGROUND" => Some(Self::Background),
1047                _ => None,
1048            }
1049        }
1050    }
1051}
1052#[derive(serde::Serialize, serde::Deserialize)]
1053#[serde(rename_all = "snake_case")]
1054#[derive(Clone, PartialEq, ::prost::Message)]
1055pub struct Hexagon {
1056    #[prost(message, optional, tag = "1")]
1057    pub query: ::core::option::Option<hexagon::Query>,
1058    #[prost(message, optional, tag = "2")]
1059    pub min: ::core::option::Option<f64>,
1060    #[prost(message, optional, tag = "3")]
1061    pub max: ::core::option::Option<f64>,
1062    #[prost(enumeration = "common::Unit", tag = "6")]
1063    pub unit: i32,
1064    #[prost(message, repeated, tag = "7")]
1065    pub thresholds: ::prost::alloc::vec::Vec<common::Threshold>,
1066    #[prost(enumeration = "common::DataModeType", tag = "8")]
1067    pub data_mode_type: i32,
1068    #[prost(message, optional, tag = "10")]
1069    pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
1070    #[prost(message, optional, tag = "11")]
1071    pub decimal: ::core::option::Option<i32>,
1072    #[prost(enumeration = "common::ThresholdType", tag = "12")]
1073    pub threshold_type: i32,
1074    #[prost(message, optional, tag = "13")]
1075    pub legend: ::core::option::Option<common::Legend>,
1076    #[prost(enumeration = "common::LegendBy", tag = "14")]
1077    pub legend_by: i32,
1078    #[prost(message, optional, tag = "15")]
1079    pub decimal_precision: ::core::option::Option<bool>,
1080}
1081/// Nested message and enum types in `Hexagon`.
1082pub mod hexagon {
1083    #[derive(serde::Serialize, serde::Deserialize)]
1084    #[serde(rename_all = "snake_case")]
1085    #[derive(Clone, PartialEq, ::prost::Message)]
1086    pub struct Query {
1087        #[prost(oneof = "query::Value", tags = "1, 2, 3, 4")]
1088        pub value: ::core::option::Option<query::Value>,
1089    }
1090    /// Nested message and enum types in `Query`.
1091    pub mod query {
1092        #[derive(serde::Serialize, serde::Deserialize)]
1093        #[serde(rename_all = "snake_case")]
1094        #[derive(Clone, PartialEq, ::prost::Oneof)]
1095        pub enum Value {
1096            #[prost(message, tag = "1")]
1097            Metrics(super::MetricsQuery),
1098            #[prost(message, tag = "2")]
1099            Logs(super::LogsQuery),
1100            #[prost(message, tag = "3")]
1101            Spans(super::SpansQuery),
1102            #[prost(message, tag = "4")]
1103            Dataprime(super::DataprimeQuery),
1104        }
1105    }
1106    #[derive(serde::Serialize, serde::Deserialize)]
1107    #[serde(rename_all = "snake_case")]
1108    #[derive(Clone, PartialEq, ::prost::Message)]
1109    pub struct MetricsQuery {
1110        #[prost(message, optional, tag = "1")]
1111        pub promql_query: ::core::option::Option<
1112            super::super::super::common::PromQlQuery,
1113        >,
1114        #[prost(message, repeated, tag = "2")]
1115        pub filters: ::prost::alloc::vec::Vec<
1116            super::super::filters::filter::MetricsFilter,
1117        >,
1118        #[prost(enumeration = "super::common::MetricsQueryEditorMode", tag = "3")]
1119        pub editor_mode: i32,
1120        #[prost(message, optional, tag = "4")]
1121        pub time_frame: ::core::option::Option<
1122            super::super::super::common::TimeFrameSelect,
1123        >,
1124        #[prost(enumeration = "super::common::Aggregation", tag = "5")]
1125        pub aggregation: i32,
1126        #[prost(enumeration = "super::super::super::common::PromQlQueryType", tag = "6")]
1127        pub promql_query_type: i32,
1128    }
1129    #[derive(serde::Serialize, serde::Deserialize)]
1130    #[serde(rename_all = "snake_case")]
1131    #[derive(Clone, PartialEq, ::prost::Message)]
1132    pub struct LogsQuery {
1133        #[prost(message, optional, tag = "1")]
1134        pub lucene_query: ::core::option::Option<
1135            super::super::super::common::LuceneQuery,
1136        >,
1137        #[prost(message, optional, tag = "2")]
1138        pub logs_aggregation: ::core::option::Option<
1139            super::super::super::common::LogsAggregation,
1140        >,
1141        #[prost(message, repeated, tag = "3")]
1142        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::LogsFilter>,
1143        #[prost(message, repeated, tag = "4")]
1144        pub group_by: ::prost::alloc::vec::Vec<
1145            super::super::super::common::ObservationField,
1146        >,
1147        #[prost(message, optional, tag = "5")]
1148        pub time_frame: ::core::option::Option<
1149            super::super::super::common::TimeFrameSelect,
1150        >,
1151    }
1152    #[derive(serde::Serialize, serde::Deserialize)]
1153    #[serde(rename_all = "snake_case")]
1154    #[derive(Clone, PartialEq, ::prost::Message)]
1155    pub struct SpansQuery {
1156        #[prost(message, optional, tag = "1")]
1157        pub lucene_query: ::core::option::Option<
1158            super::super::super::common::LuceneQuery,
1159        >,
1160        #[prost(message, optional, tag = "2")]
1161        pub spans_aggregation: ::core::option::Option<
1162            super::super::super::common::SpansAggregation,
1163        >,
1164        #[prost(message, repeated, tag = "3")]
1165        pub filters: ::prost::alloc::vec::Vec<
1166            super::super::filters::filter::SpansFilter,
1167        >,
1168        #[prost(message, repeated, tag = "4")]
1169        pub group_by: ::prost::alloc::vec::Vec<super::super::super::common::SpanField>,
1170        #[prost(message, optional, tag = "5")]
1171        pub time_frame: ::core::option::Option<
1172            super::super::super::common::TimeFrameSelect,
1173        >,
1174        #[prost(message, repeated, tag = "6")]
1175        pub group_bys: ::prost::alloc::vec::Vec<
1176            super::super::super::common::SpanObservationField,
1177        >,
1178    }
1179    #[derive(serde::Serialize, serde::Deserialize)]
1180    #[serde(rename_all = "snake_case")]
1181    #[derive(Clone, PartialEq, ::prost::Message)]
1182    pub struct DataprimeQuery {
1183        #[prost(message, optional, tag = "1")]
1184        pub dataprime_query: ::core::option::Option<
1185            super::super::super::common::DataprimeQuery,
1186        >,
1187        #[prost(message, repeated, tag = "2")]
1188        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::Source>,
1189        #[prost(message, optional, tag = "3")]
1190        pub time_frame: ::core::option::Option<
1191            super::super::super::common::TimeFrameSelect,
1192        >,
1193    }
1194}
1195#[derive(serde::Serialize, serde::Deserialize)]
1196#[serde(rename_all = "snake_case")]
1197#[derive(Clone, PartialEq, ::prost::Message)]
1198pub struct HorizontalBarChart {
1199    #[prost(message, optional, tag = "1")]
1200    pub query: ::core::option::Option<horizontal_bar_chart::Query>,
1201    #[prost(message, optional, tag = "2")]
1202    pub max_bars_per_chart: ::core::option::Option<i32>,
1203    #[prost(message, optional, tag = "3")]
1204    pub group_name_template: ::core::option::Option<::prost::alloc::string::String>,
1205    #[prost(message, optional, tag = "4")]
1206    pub stack_definition: ::core::option::Option<horizontal_bar_chart::StackDefinition>,
1207    #[prost(enumeration = "common::ScaleType", tag = "5")]
1208    pub scale_type: i32,
1209    #[prost(message, optional, tag = "6")]
1210    pub colors_by: ::core::option::Option<common::ColorsBy>,
1211    #[prost(enumeration = "common::Unit", tag = "8")]
1212    pub unit: i32,
1213    #[prost(message, optional, tag = "9")]
1214    pub display_on_bar: ::core::option::Option<bool>,
1215    #[prost(message, optional, tag = "10")]
1216    pub y_axis_view_by: ::core::option::Option<horizontal_bar_chart::YAxisViewBy>,
1217    #[prost(enumeration = "common::SortByType", tag = "11")]
1218    pub sort_by: i32,
1219    #[prost(message, optional, tag = "12")]
1220    pub color_scheme: ::core::option::Option<::prost::alloc::string::String>,
1221    #[prost(enumeration = "common::DataModeType", tag = "13")]
1222    pub data_mode_type: i32,
1223    #[prost(message, optional, tag = "14")]
1224    pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
1225    #[prost(message, optional, tag = "15")]
1226    pub decimal: ::core::option::Option<i32>,
1227    #[prost(message, optional, tag = "16")]
1228    pub legend: ::core::option::Option<common::Legend>,
1229    #[prost(message, optional, tag = "17")]
1230    pub hash_colors: ::core::option::Option<bool>,
1231    #[prost(message, optional, tag = "18")]
1232    pub y_axis_min: ::core::option::Option<f32>,
1233    #[prost(message, optional, tag = "19")]
1234    pub y_axis_max: ::core::option::Option<f32>,
1235    #[prost(message, optional, tag = "20")]
1236    pub decimal_precision: ::core::option::Option<bool>,
1237}
1238/// Nested message and enum types in `HorizontalBarChart`.
1239pub mod horizontal_bar_chart {
1240    #[derive(serde::Serialize, serde::Deserialize)]
1241    #[serde(rename_all = "snake_case")]
1242    #[derive(Clone, PartialEq, ::prost::Message)]
1243    pub struct Query {
1244        #[prost(oneof = "query::Value", tags = "1, 2, 3, 4")]
1245        pub value: ::core::option::Option<query::Value>,
1246    }
1247    /// Nested message and enum types in `Query`.
1248    pub mod query {
1249        #[derive(serde::Serialize, serde::Deserialize)]
1250        #[serde(rename_all = "snake_case")]
1251        #[derive(Clone, PartialEq, ::prost::Oneof)]
1252        pub enum Value {
1253            #[prost(message, tag = "1")]
1254            Logs(super::LogsQuery),
1255            #[prost(message, tag = "2")]
1256            Spans(super::SpansQuery),
1257            #[prost(message, tag = "3")]
1258            Metrics(super::MetricsQuery),
1259            #[prost(message, tag = "4")]
1260            Dataprime(super::DataprimeQuery),
1261        }
1262    }
1263    #[derive(serde::Serialize, serde::Deserialize)]
1264    #[serde(rename_all = "snake_case")]
1265    #[derive(Clone, PartialEq, ::prost::Message)]
1266    pub struct StackDefinition {
1267        #[prost(message, optional, tag = "1")]
1268        pub max_slices_per_bar: ::core::option::Option<i32>,
1269        #[prost(message, optional, tag = "2")]
1270        pub stack_name_template: ::core::option::Option<::prost::alloc::string::String>,
1271    }
1272    #[derive(serde::Serialize, serde::Deserialize)]
1273    #[serde(rename_all = "snake_case")]
1274    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1275    pub struct YAxisViewBy {
1276        #[prost(oneof = "y_axis_view_by::YAxisView", tags = "1, 2")]
1277        pub y_axis_view: ::core::option::Option<y_axis_view_by::YAxisView>,
1278    }
1279    /// Nested message and enum types in `YAxisViewBy`.
1280    pub mod y_axis_view_by {
1281        #[derive(serde::Serialize, serde::Deserialize)]
1282        #[serde(rename_all = "snake_case")]
1283        #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1284        pub struct YAxisViewByCategory {}
1285        #[derive(serde::Serialize, serde::Deserialize)]
1286        #[serde(rename_all = "snake_case")]
1287        #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1288        pub struct YAxisViewByValue {}
1289        #[derive(serde::Serialize, serde::Deserialize)]
1290        #[serde(rename_all = "snake_case")]
1291        #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
1292        pub enum YAxisView {
1293            #[prost(message, tag = "1")]
1294            Category(YAxisViewByCategory),
1295            #[prost(message, tag = "2")]
1296            Value(YAxisViewByValue),
1297        }
1298    }
1299    #[derive(serde::Serialize, serde::Deserialize)]
1300    #[serde(rename_all = "snake_case")]
1301    #[derive(Clone, PartialEq, ::prost::Message)]
1302    pub struct LogsQuery {
1303        #[prost(message, optional, tag = "1")]
1304        pub lucene_query: ::core::option::Option<
1305            super::super::super::common::LuceneQuery,
1306        >,
1307        #[prost(message, optional, tag = "2")]
1308        pub aggregation: ::core::option::Option<
1309            super::super::super::common::LogsAggregation,
1310        >,
1311        #[prost(message, repeated, tag = "3")]
1312        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::LogsFilter>,
1313        #[prost(message, repeated, tag = "4")]
1314        pub group_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1315        #[prost(message, optional, tag = "5")]
1316        pub stacked_group_name: ::core::option::Option<::prost::alloc::string::String>,
1317        #[prost(message, repeated, tag = "6")]
1318        pub group_names_fields: ::prost::alloc::vec::Vec<
1319            super::super::super::common::ObservationField,
1320        >,
1321        #[prost(message, optional, tag = "7")]
1322        pub stacked_group_name_field: ::core::option::Option<
1323            super::super::super::common::ObservationField,
1324        >,
1325        #[prost(message, optional, tag = "8")]
1326        pub time_frame: ::core::option::Option<
1327            super::super::super::common::TimeFrameSelect,
1328        >,
1329    }
1330    #[derive(serde::Serialize, serde::Deserialize)]
1331    #[serde(rename_all = "snake_case")]
1332    #[derive(Clone, PartialEq, ::prost::Message)]
1333    pub struct SpansQuery {
1334        #[prost(message, optional, tag = "1")]
1335        pub lucene_query: ::core::option::Option<
1336            super::super::super::common::LuceneQuery,
1337        >,
1338        #[prost(message, optional, tag = "2")]
1339        pub aggregation: ::core::option::Option<
1340            super::super::super::common::SpansAggregation,
1341        >,
1342        #[prost(message, repeated, tag = "3")]
1343        pub filters: ::prost::alloc::vec::Vec<
1344            super::super::filters::filter::SpansFilter,
1345        >,
1346        #[prost(message, repeated, tag = "4")]
1347        pub group_names: ::prost::alloc::vec::Vec<
1348            super::super::super::common::SpanField,
1349        >,
1350        #[prost(message, optional, tag = "5")]
1351        pub stacked_group_name: ::core::option::Option<
1352            super::super::super::common::SpanField,
1353        >,
1354        #[prost(message, optional, tag = "6")]
1355        pub time_frame: ::core::option::Option<
1356            super::super::super::common::TimeFrameSelect,
1357        >,
1358        #[prost(message, repeated, tag = "7")]
1359        pub group_names_fields: ::prost::alloc::vec::Vec<
1360            super::super::super::common::SpanObservationField,
1361        >,
1362        #[prost(message, optional, tag = "8")]
1363        pub stacked_group_name_field: ::core::option::Option<
1364            super::super::super::common::SpanObservationField,
1365        >,
1366    }
1367    #[derive(serde::Serialize, serde::Deserialize)]
1368    #[serde(rename_all = "snake_case")]
1369    #[derive(Clone, PartialEq, ::prost::Message)]
1370    pub struct MetricsQuery {
1371        #[prost(message, optional, tag = "1")]
1372        pub promql_query: ::core::option::Option<
1373            super::super::super::common::PromQlQuery,
1374        >,
1375        #[prost(message, repeated, tag = "2")]
1376        pub filters: ::prost::alloc::vec::Vec<
1377            super::super::filters::filter::MetricsFilter,
1378        >,
1379        #[prost(message, repeated, tag = "3")]
1380        pub group_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1381        #[prost(message, optional, tag = "4")]
1382        pub stacked_group_name: ::core::option::Option<::prost::alloc::string::String>,
1383        #[prost(enumeration = "super::common::MetricsQueryEditorMode", tag = "5")]
1384        pub editor_mode: i32,
1385        #[prost(message, optional, tag = "6")]
1386        pub time_frame: ::core::option::Option<
1387            super::super::super::common::TimeFrameSelect,
1388        >,
1389        #[prost(enumeration = "super::super::super::common::PromQlQueryType", tag = "7")]
1390        pub promql_query_type: i32,
1391        #[prost(enumeration = "super::common::Aggregation", tag = "8")]
1392        pub aggregation: i32,
1393    }
1394    #[derive(serde::Serialize, serde::Deserialize)]
1395    #[serde(rename_all = "snake_case")]
1396    #[derive(Clone, PartialEq, ::prost::Message)]
1397    pub struct DataprimeQuery {
1398        #[prost(message, optional, tag = "1")]
1399        pub dataprime_query: ::core::option::Option<
1400            super::super::super::common::DataprimeQuery,
1401        >,
1402        #[prost(message, repeated, tag = "2")]
1403        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::Source>,
1404        #[prost(message, repeated, tag = "3")]
1405        pub group_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1406        #[prost(message, optional, tag = "4")]
1407        pub stacked_group_name: ::core::option::Option<::prost::alloc::string::String>,
1408        #[prost(message, optional, tag = "5")]
1409        pub time_frame: ::core::option::Option<
1410            super::super::super::common::TimeFrameSelect,
1411        >,
1412    }
1413}
1414#[derive(serde::Serialize, serde::Deserialize)]
1415#[serde(rename_all = "snake_case")]
1416#[derive(Clone, PartialEq, ::prost::Message)]
1417pub struct LineChart {
1418    #[prost(message, optional, tag = "2")]
1419    pub legend: ::core::option::Option<common::Legend>,
1420    #[prost(message, optional, tag = "6")]
1421    pub tooltip: ::core::option::Option<line_chart::Tooltip>,
1422    #[prost(message, repeated, tag = "7")]
1423    pub query_definitions: ::prost::alloc::vec::Vec<line_chart::QueryDefinition>,
1424    #[prost(enumeration = "line_chart::StackedLine", tag = "9")]
1425    pub stacked_line: i32,
1426    #[prost(message, optional, tag = "10")]
1427    pub connect_nulls: ::core::option::Option<bool>,
1428}
1429/// Nested message and enum types in `LineChart`.
1430pub mod line_chart {
1431    #[derive(serde::Serialize, serde::Deserialize)]
1432    #[serde(rename_all = "snake_case")]
1433    #[derive(Clone, PartialEq, ::prost::Message)]
1434    pub struct QueryDefinition {
1435        #[prost(message, optional, tag = "1")]
1436        pub id: ::core::option::Option<::prost::alloc::string::String>,
1437        #[prost(message, optional, tag = "2")]
1438        pub query: ::core::option::Option<Query>,
1439        #[prost(message, optional, tag = "3")]
1440        pub series_name_template: ::core::option::Option<::prost::alloc::string::String>,
1441        #[prost(message, optional, tag = "4")]
1442        pub series_count_limit: ::core::option::Option<i64>,
1443        #[prost(enumeration = "super::common::Unit", tag = "5")]
1444        pub unit: i32,
1445        #[prost(enumeration = "super::common::ScaleType", tag = "6")]
1446        pub scale_type: i32,
1447        #[prost(message, optional, tag = "7")]
1448        pub name: ::core::option::Option<::prost::alloc::string::String>,
1449        #[prost(message, optional, tag = "8")]
1450        pub is_visible: ::core::option::Option<bool>,
1451        #[prost(message, optional, tag = "9")]
1452        pub color_scheme: ::core::option::Option<::prost::alloc::string::String>,
1453        #[prost(message, optional, tag = "10")]
1454        pub resolution: ::core::option::Option<Resolution>,
1455        #[prost(enumeration = "super::common::DataModeType", tag = "11")]
1456        pub data_mode_type: i32,
1457        #[prost(message, optional, tag = "12")]
1458        pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
1459        #[prost(message, optional, tag = "13")]
1460        pub decimal: ::core::option::Option<i32>,
1461        #[prost(message, optional, tag = "14")]
1462        pub hash_colors: ::core::option::Option<bool>,
1463        #[prost(message, optional, tag = "15")]
1464        pub y_axis_min: ::core::option::Option<f32>,
1465        #[prost(message, optional, tag = "16")]
1466        pub y_axis_max: ::core::option::Option<f32>,
1467        #[prost(message, optional, tag = "17")]
1468        pub decimal_precision: ::core::option::Option<bool>,
1469    }
1470    #[derive(serde::Serialize, serde::Deserialize)]
1471    #[serde(rename_all = "snake_case")]
1472    #[derive(Clone, PartialEq, ::prost::Message)]
1473    pub struct Query {
1474        #[prost(oneof = "query::Value", tags = "1, 2, 3, 5")]
1475        pub value: ::core::option::Option<query::Value>,
1476    }
1477    /// Nested message and enum types in `Query`.
1478    pub mod query {
1479        #[derive(serde::Serialize, serde::Deserialize)]
1480        #[serde(rename_all = "snake_case")]
1481        #[derive(Clone, PartialEq, ::prost::Oneof)]
1482        pub enum Value {
1483            #[prost(message, tag = "1")]
1484            Logs(super::LogsQuery),
1485            #[prost(message, tag = "2")]
1486            Metrics(super::MetricsQuery),
1487            #[prost(message, tag = "3")]
1488            Spans(super::SpansQuery),
1489            #[prost(message, tag = "5")]
1490            Dataprime(super::DataprimeQuery),
1491        }
1492    }
1493    #[derive(serde::Serialize, serde::Deserialize)]
1494    #[serde(rename_all = "snake_case")]
1495    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1496    pub struct Tooltip {
1497        #[prost(message, optional, tag = "1")]
1498        pub show_labels: ::core::option::Option<bool>,
1499        #[prost(enumeration = "TooltipType", tag = "2")]
1500        pub r#type: i32,
1501    }
1502    #[derive(serde::Serialize, serde::Deserialize)]
1503    #[serde(rename_all = "snake_case")]
1504    #[derive(Clone, PartialEq, ::prost::Message)]
1505    pub struct LogsQuery {
1506        #[prost(message, optional, tag = "1")]
1507        pub lucene_query: ::core::option::Option<
1508            super::super::super::common::LuceneQuery,
1509        >,
1510        #[prost(message, repeated, tag = "2")]
1511        pub group_by: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1512        #[prost(message, repeated, tag = "3")]
1513        pub aggregations: ::prost::alloc::vec::Vec<
1514            super::super::super::common::LogsAggregation,
1515        >,
1516        #[prost(message, repeated, tag = "4")]
1517        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::LogsFilter>,
1518        #[prost(message, repeated, tag = "5")]
1519        pub group_bys: ::prost::alloc::vec::Vec<
1520            super::super::super::common::ObservationField,
1521        >,
1522        #[prost(message, optional, tag = "6")]
1523        pub time_frame: ::core::option::Option<
1524            super::super::super::common::TimeFrameSelect,
1525        >,
1526    }
1527    #[derive(serde::Serialize, serde::Deserialize)]
1528    #[serde(rename_all = "snake_case")]
1529    #[derive(Clone, PartialEq, ::prost::Message)]
1530    pub struct MetricsQuery {
1531        #[prost(message, optional, tag = "1")]
1532        pub promql_query: ::core::option::Option<
1533            super::super::super::common::PromQlQuery,
1534        >,
1535        #[prost(message, repeated, tag = "2")]
1536        pub filters: ::prost::alloc::vec::Vec<
1537            super::super::filters::filter::MetricsFilter,
1538        >,
1539        #[prost(enumeration = "super::common::MetricsQueryEditorMode", tag = "3")]
1540        pub editor_mode: i32,
1541        #[prost(message, optional, tag = "4")]
1542        pub time_frame: ::core::option::Option<
1543            super::super::super::common::TimeFrameSelect,
1544        >,
1545        #[prost(
1546            enumeration = "super::super::super::common::MetricsSeriesLimitType",
1547            tag = "5"
1548        )]
1549        pub series_limit_type: i32,
1550    }
1551    #[derive(serde::Serialize, serde::Deserialize)]
1552    #[serde(rename_all = "snake_case")]
1553    #[derive(Clone, PartialEq, ::prost::Message)]
1554    pub struct SpansQuery {
1555        #[prost(message, optional, tag = "1")]
1556        pub lucene_query: ::core::option::Option<
1557            super::super::super::common::LuceneQuery,
1558        >,
1559        #[prost(message, repeated, tag = "2")]
1560        pub group_by: ::prost::alloc::vec::Vec<super::super::super::common::SpanField>,
1561        #[prost(message, repeated, tag = "3")]
1562        pub aggregations: ::prost::alloc::vec::Vec<
1563            super::super::super::common::SpansAggregation,
1564        >,
1565        #[prost(message, repeated, tag = "4")]
1566        pub filters: ::prost::alloc::vec::Vec<
1567            super::super::filters::filter::SpansFilter,
1568        >,
1569        #[prost(message, optional, tag = "5")]
1570        pub time_frame: ::core::option::Option<
1571            super::super::super::common::TimeFrameSelect,
1572        >,
1573        #[prost(message, repeated, tag = "6")]
1574        pub group_bys: ::prost::alloc::vec::Vec<
1575            super::super::super::common::SpanObservationField,
1576        >,
1577    }
1578    #[derive(serde::Serialize, serde::Deserialize)]
1579    #[serde(rename_all = "snake_case")]
1580    #[derive(Clone, PartialEq, ::prost::Message)]
1581    pub struct DataprimeQuery {
1582        #[prost(message, optional, tag = "1")]
1583        pub dataprime_query: ::core::option::Option<
1584            super::super::super::common::DataprimeQuery,
1585        >,
1586        #[prost(message, repeated, tag = "2")]
1587        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::Source>,
1588        #[prost(message, optional, tag = "3")]
1589        pub time_frame: ::core::option::Option<
1590            super::super::super::common::TimeFrameSelect,
1591        >,
1592    }
1593    #[derive(serde::Serialize, serde::Deserialize)]
1594    #[serde(rename_all = "snake_case")]
1595    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1596    pub struct Resolution {
1597        /// it should be oneof i think
1598        #[prost(message, optional, tag = "1")]
1599        pub interval: ::core::option::Option<::prost_wkt_types::Duration>,
1600        #[prost(message, optional, tag = "2")]
1601        pub buckets_presented: ::core::option::Option<i32>,
1602    }
1603    #[derive(serde::Serialize, serde::Deserialize)]
1604    #[serde(rename_all = "snake_case")]
1605    #[derive(
1606        Clone,
1607        Copy,
1608        Debug,
1609        PartialEq,
1610        Eq,
1611        Hash,
1612        PartialOrd,
1613        Ord,
1614        ::prost::Enumeration
1615    )]
1616    #[repr(i32)]
1617    pub enum TooltipType {
1618        Unspecified = 0,
1619        All = 1,
1620        Single = 2,
1621    }
1622    impl TooltipType {
1623        /// String value of the enum field names used in the ProtoBuf definition.
1624        ///
1625        /// The values are not transformed in any way and thus are considered stable
1626        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1627        pub fn as_str_name(&self) -> &'static str {
1628            match self {
1629                Self::Unspecified => "TOOLTIP_TYPE_UNSPECIFIED",
1630                Self::All => "TOOLTIP_TYPE_ALL",
1631                Self::Single => "TOOLTIP_TYPE_SINGLE",
1632            }
1633        }
1634        /// Creates an enum from field names used in the ProtoBuf definition.
1635        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1636            match value {
1637                "TOOLTIP_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1638                "TOOLTIP_TYPE_ALL" => Some(Self::All),
1639                "TOOLTIP_TYPE_SINGLE" => Some(Self::Single),
1640                _ => None,
1641            }
1642        }
1643    }
1644    #[derive(serde::Serialize, serde::Deserialize)]
1645    #[serde(rename_all = "snake_case")]
1646    #[derive(
1647        Clone,
1648        Copy,
1649        Debug,
1650        PartialEq,
1651        Eq,
1652        Hash,
1653        PartialOrd,
1654        Ord,
1655        ::prost::Enumeration
1656    )]
1657    #[repr(i32)]
1658    pub enum StackedLine {
1659        Unspecified = 0,
1660        Absolute = 1,
1661        Relative = 2,
1662    }
1663    impl StackedLine {
1664        /// String value of the enum field names used in the ProtoBuf definition.
1665        ///
1666        /// The values are not transformed in any way and thus are considered stable
1667        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1668        pub fn as_str_name(&self) -> &'static str {
1669            match self {
1670                Self::Unspecified => "STACKED_LINE_UNSPECIFIED",
1671                Self::Absolute => "STACKED_LINE_ABSOLUTE",
1672                Self::Relative => "STACKED_LINE_RELATIVE",
1673            }
1674        }
1675        /// Creates an enum from field names used in the ProtoBuf definition.
1676        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1677            match value {
1678                "STACKED_LINE_UNSPECIFIED" => Some(Self::Unspecified),
1679                "STACKED_LINE_ABSOLUTE" => Some(Self::Absolute),
1680                "STACKED_LINE_RELATIVE" => Some(Self::Relative),
1681                _ => None,
1682            }
1683        }
1684    }
1685}
1686#[derive(serde::Serialize, serde::Deserialize)]
1687#[serde(rename_all = "snake_case")]
1688#[derive(Clone, PartialEq, ::prost::Message)]
1689pub struct Markdown {
1690    #[prost(message, optional, tag = "1")]
1691    pub markdown_text: ::core::option::Option<::prost::alloc::string::String>,
1692    #[prost(message, optional, tag = "2")]
1693    pub tooltip_text: ::core::option::Option<::prost::alloc::string::String>,
1694}
1695#[derive(serde::Serialize, serde::Deserialize)]
1696#[serde(rename_all = "snake_case")]
1697#[derive(Clone, PartialEq, ::prost::Message)]
1698pub struct PieChart {
1699    #[prost(message, optional, tag = "1")]
1700    pub query: ::core::option::Option<pie_chart::Query>,
1701    #[prost(message, optional, tag = "2")]
1702    pub max_slices_per_chart: ::core::option::Option<i32>,
1703    #[prost(message, optional, tag = "3")]
1704    pub min_slice_percentage: ::core::option::Option<i32>,
1705    #[prost(message, optional, tag = "4")]
1706    pub stack_definition: ::core::option::Option<pie_chart::StackDefinition>,
1707    #[prost(message, optional, tag = "5")]
1708    pub label_definition: ::core::option::Option<pie_chart::LabelDefinition>,
1709    /// not used, to be deprecated
1710    #[prost(message, optional, tag = "6")]
1711    pub show_legend: ::core::option::Option<bool>,
1712    #[prost(message, optional, tag = "7")]
1713    pub group_name_template: ::core::option::Option<::prost::alloc::string::String>,
1714    #[prost(enumeration = "common::Unit", tag = "8")]
1715    pub unit: i32,
1716    #[prost(message, optional, tag = "9")]
1717    pub color_scheme: ::core::option::Option<::prost::alloc::string::String>,
1718    #[prost(enumeration = "common::DataModeType", tag = "10")]
1719    pub data_mode_type: i32,
1720    #[prost(message, optional, tag = "11")]
1721    pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
1722    #[prost(message, optional, tag = "12")]
1723    pub decimal: ::core::option::Option<i32>,
1724    #[prost(message, optional, tag = "13")]
1725    pub legend: ::core::option::Option<common::Legend>,
1726    #[prost(message, optional, tag = "14")]
1727    pub hash_colors: ::core::option::Option<bool>,
1728    #[prost(message, optional, tag = "15")]
1729    pub decimal_precision: ::core::option::Option<bool>,
1730    #[prost(message, optional, tag = "16")]
1731    pub show_total: ::core::option::Option<bool>,
1732}
1733/// Nested message and enum types in `PieChart`.
1734pub mod pie_chart {
1735    #[derive(serde::Serialize, serde::Deserialize)]
1736    #[serde(rename_all = "snake_case")]
1737    #[derive(Clone, PartialEq, ::prost::Message)]
1738    pub struct Query {
1739        #[prost(oneof = "query::Value", tags = "1, 2, 3, 4")]
1740        pub value: ::core::option::Option<query::Value>,
1741    }
1742    /// Nested message and enum types in `Query`.
1743    pub mod query {
1744        #[derive(serde::Serialize, serde::Deserialize)]
1745        #[serde(rename_all = "snake_case")]
1746        #[derive(Clone, PartialEq, ::prost::Oneof)]
1747        pub enum Value {
1748            #[prost(message, tag = "1")]
1749            Logs(super::LogsQuery),
1750            #[prost(message, tag = "2")]
1751            Spans(super::SpansQuery),
1752            #[prost(message, tag = "3")]
1753            Metrics(super::MetricsQuery),
1754            #[prost(message, tag = "4")]
1755            Dataprime(super::DataprimeQuery),
1756        }
1757    }
1758    #[derive(serde::Serialize, serde::Deserialize)]
1759    #[serde(rename_all = "snake_case")]
1760    #[derive(Clone, PartialEq, ::prost::Message)]
1761    pub struct StackDefinition {
1762        #[prost(message, optional, tag = "1")]
1763        pub max_slices_per_stack: ::core::option::Option<i32>,
1764        #[prost(message, optional, tag = "2")]
1765        pub stack_name_template: ::core::option::Option<::prost::alloc::string::String>,
1766    }
1767    #[derive(serde::Serialize, serde::Deserialize)]
1768    #[serde(rename_all = "snake_case")]
1769    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1770    pub struct LabelDefinition {
1771        #[prost(enumeration = "LabelSource", tag = "1")]
1772        pub label_source: i32,
1773        #[prost(message, optional, tag = "2")]
1774        pub is_visible: ::core::option::Option<bool>,
1775        #[prost(message, optional, tag = "3")]
1776        pub show_name: ::core::option::Option<bool>,
1777        #[prost(message, optional, tag = "4")]
1778        pub show_value: ::core::option::Option<bool>,
1779        #[prost(message, optional, tag = "5")]
1780        pub show_percentage: ::core::option::Option<bool>,
1781    }
1782    #[derive(serde::Serialize, serde::Deserialize)]
1783    #[serde(rename_all = "snake_case")]
1784    #[derive(Clone, PartialEq, ::prost::Message)]
1785    pub struct LogsQuery {
1786        #[prost(message, optional, tag = "1")]
1787        pub lucene_query: ::core::option::Option<
1788            super::super::super::common::LuceneQuery,
1789        >,
1790        #[prost(message, optional, tag = "2")]
1791        pub aggregation: ::core::option::Option<
1792            super::super::super::common::LogsAggregation,
1793        >,
1794        #[prost(message, repeated, tag = "3")]
1795        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::LogsFilter>,
1796        #[prost(message, repeated, tag = "4")]
1797        pub group_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1798        #[prost(message, optional, tag = "5")]
1799        pub stacked_group_name: ::core::option::Option<::prost::alloc::string::String>,
1800        #[prost(message, repeated, tag = "6")]
1801        pub group_names_fields: ::prost::alloc::vec::Vec<
1802            super::super::super::common::ObservationField,
1803        >,
1804        #[prost(message, optional, tag = "7")]
1805        pub stacked_group_name_field: ::core::option::Option<
1806            super::super::super::common::ObservationField,
1807        >,
1808        #[prost(message, optional, tag = "8")]
1809        pub time_frame: ::core::option::Option<
1810            super::super::super::common::TimeFrameSelect,
1811        >,
1812    }
1813    #[derive(serde::Serialize, serde::Deserialize)]
1814    #[serde(rename_all = "snake_case")]
1815    #[derive(Clone, PartialEq, ::prost::Message)]
1816    pub struct SpansQuery {
1817        #[prost(message, optional, tag = "1")]
1818        pub lucene_query: ::core::option::Option<
1819            super::super::super::common::LuceneQuery,
1820        >,
1821        #[prost(message, optional, tag = "2")]
1822        pub aggregation: ::core::option::Option<
1823            super::super::super::common::SpansAggregation,
1824        >,
1825        #[prost(message, repeated, tag = "3")]
1826        pub filters: ::prost::alloc::vec::Vec<
1827            super::super::filters::filter::SpansFilter,
1828        >,
1829        #[prost(message, repeated, tag = "4")]
1830        pub group_names: ::prost::alloc::vec::Vec<
1831            super::super::super::common::SpanField,
1832        >,
1833        #[prost(message, optional, tag = "5")]
1834        pub stacked_group_name: ::core::option::Option<
1835            super::super::super::common::SpanField,
1836        >,
1837        #[prost(message, optional, tag = "6")]
1838        pub time_frame: ::core::option::Option<
1839            super::super::super::common::TimeFrameSelect,
1840        >,
1841        #[prost(message, repeated, tag = "7")]
1842        pub group_names_fields: ::prost::alloc::vec::Vec<
1843            super::super::super::common::SpanObservationField,
1844        >,
1845        #[prost(message, optional, tag = "8")]
1846        pub stacked_group_name_field: ::core::option::Option<
1847            super::super::super::common::SpanObservationField,
1848        >,
1849    }
1850    #[derive(serde::Serialize, serde::Deserialize)]
1851    #[serde(rename_all = "snake_case")]
1852    #[derive(Clone, PartialEq, ::prost::Message)]
1853    pub struct MetricsQuery {
1854        #[prost(message, optional, tag = "1")]
1855        pub promql_query: ::core::option::Option<
1856            super::super::super::common::PromQlQuery,
1857        >,
1858        #[prost(message, repeated, tag = "2")]
1859        pub filters: ::prost::alloc::vec::Vec<
1860            super::super::filters::filter::MetricsFilter,
1861        >,
1862        #[prost(message, repeated, tag = "3")]
1863        pub group_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1864        #[prost(message, optional, tag = "4")]
1865        pub stacked_group_name: ::core::option::Option<::prost::alloc::string::String>,
1866        #[prost(enumeration = "super::common::MetricsQueryEditorMode", tag = "5")]
1867        pub editor_mode: i32,
1868        #[prost(message, optional, tag = "6")]
1869        pub time_frame: ::core::option::Option<
1870            super::super::super::common::TimeFrameSelect,
1871        >,
1872        #[prost(enumeration = "super::super::super::common::PromQlQueryType", tag = "7")]
1873        pub promql_query_type: i32,
1874        #[prost(enumeration = "super::common::Aggregation", tag = "8")]
1875        pub aggregation: i32,
1876    }
1877    #[derive(serde::Serialize, serde::Deserialize)]
1878    #[serde(rename_all = "snake_case")]
1879    #[derive(Clone, PartialEq, ::prost::Message)]
1880    pub struct DataprimeQuery {
1881        #[prost(message, optional, tag = "1")]
1882        pub dataprime_query: ::core::option::Option<
1883            super::super::super::common::DataprimeQuery,
1884        >,
1885        #[prost(message, repeated, tag = "2")]
1886        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::Source>,
1887        #[prost(message, repeated, tag = "3")]
1888        pub group_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1889        #[prost(message, optional, tag = "4")]
1890        pub stacked_group_name: ::core::option::Option<::prost::alloc::string::String>,
1891        #[prost(message, optional, tag = "5")]
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(
1899        Clone,
1900        Copy,
1901        Debug,
1902        PartialEq,
1903        Eq,
1904        Hash,
1905        PartialOrd,
1906        Ord,
1907        ::prost::Enumeration
1908    )]
1909    #[repr(i32)]
1910    pub enum LabelSource {
1911        Unspecified = 0,
1912        Inner = 1,
1913        Stack = 2,
1914    }
1915    impl LabelSource {
1916        /// String value of the enum field names used in the ProtoBuf definition.
1917        ///
1918        /// The values are not transformed in any way and thus are considered stable
1919        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1920        pub fn as_str_name(&self) -> &'static str {
1921            match self {
1922                Self::Unspecified => "LABEL_SOURCE_UNSPECIFIED",
1923                Self::Inner => "LABEL_SOURCE_INNER",
1924                Self::Stack => "LABEL_SOURCE_STACK",
1925            }
1926        }
1927        /// Creates an enum from field names used in the ProtoBuf definition.
1928        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1929            match value {
1930                "LABEL_SOURCE_UNSPECIFIED" => Some(Self::Unspecified),
1931                "LABEL_SOURCE_INNER" => Some(Self::Inner),
1932                "LABEL_SOURCE_STACK" => Some(Self::Stack),
1933                _ => None,
1934            }
1935        }
1936    }
1937}