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