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<super::common::LuceneQuery>,
117        #[prost(message, optional, tag = "2")]
118        pub aggregation: ::core::option::Option<
119            super::super::super::common::LogsAggregation,
120        >,
121        #[prost(message, repeated, tag = "3")]
122        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::LogsFilter>,
123        #[prost(message, repeated, tag = "4")]
124        pub group_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
125        #[prost(message, optional, tag = "5")]
126        pub stacked_group_name: ::core::option::Option<::prost::alloc::string::String>,
127        #[prost(message, repeated, tag = "6")]
128        pub group_names_fields: ::prost::alloc::vec::Vec<
129            super::super::super::common::ObservationField,
130        >,
131        #[prost(message, optional, tag = "7")]
132        pub stacked_group_name_field: ::core::option::Option<
133            super::super::super::common::ObservationField,
134        >,
135        #[prost(message, optional, tag = "8")]
136        pub time_frame: ::core::option::Option<
137            super::super::super::common::TimeFrameSelect,
138        >,
139    }
140    #[derive(serde::Serialize, serde::Deserialize)]
141    #[serde(rename_all = "snake_case")]
142    #[derive(Clone, PartialEq, ::prost::Message)]
143    pub struct SpansQuery {
144        #[prost(message, optional, tag = "1")]
145        pub lucene_query: ::core::option::Option<super::common::LuceneQuery>,
146        #[prost(message, optional, tag = "2")]
147        pub aggregation: ::core::option::Option<
148            super::super::super::common::SpansAggregation,
149        >,
150        #[prost(message, repeated, tag = "3")]
151        pub filters: ::prost::alloc::vec::Vec<
152            super::super::filters::filter::SpansFilter,
153        >,
154        #[prost(message, repeated, tag = "4")]
155        pub group_names: ::prost::alloc::vec::Vec<
156            super::super::super::common::SpanField,
157        >,
158        #[prost(message, optional, tag = "5")]
159        pub stacked_group_name: ::core::option::Option<
160            super::super::super::common::SpanField,
161        >,
162        #[prost(message, optional, tag = "6")]
163        pub time_frame: ::core::option::Option<
164            super::super::super::common::TimeFrameSelect,
165        >,
166        #[prost(message, repeated, tag = "7")]
167        pub group_names_fields: ::prost::alloc::vec::Vec<
168            super::super::super::common::SpanObservationField,
169        >,
170        #[prost(message, optional, tag = "8")]
171        pub stacked_group_name_field: ::core::option::Option<
172            super::super::super::common::SpanObservationField,
173        >,
174    }
175    #[derive(serde::Serialize, serde::Deserialize)]
176    #[serde(rename_all = "snake_case")]
177    #[derive(Clone, PartialEq, ::prost::Message)]
178    pub struct MetricsQuery {
179        #[prost(message, optional, tag = "1")]
180        pub promql_query: ::core::option::Option<super::common::PromQlQuery>,
181        #[prost(message, repeated, tag = "2")]
182        pub filters: ::prost::alloc::vec::Vec<
183            super::super::filters::filter::MetricsFilter,
184        >,
185        #[prost(message, repeated, tag = "3")]
186        pub group_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
187        #[prost(message, optional, tag = "4")]
188        pub stacked_group_name: ::core::option::Option<::prost::alloc::string::String>,
189        #[prost(enumeration = "super::common::MetricsQueryEditorMode", tag = "5")]
190        pub editor_mode: i32,
191        #[prost(message, optional, tag = "6")]
192        pub time_frame: ::core::option::Option<
193            super::super::super::common::TimeFrameSelect,
194        >,
195        #[prost(enumeration = "super::super::super::common::PromQlQueryType", tag = "7")]
196        pub promql_query_type: i32,
197        #[prost(enumeration = "super::common::Aggregation", tag = "8")]
198        pub aggregation: i32,
199    }
200    #[derive(serde::Serialize, serde::Deserialize)]
201    #[serde(rename_all = "snake_case")]
202    #[derive(Clone, PartialEq, ::prost::Message)]
203    pub struct DataprimeQuery {
204        #[prost(message, optional, tag = "1")]
205        pub dataprime_query: ::core::option::Option<
206            super::super::super::common::DataprimeQuery,
207        >,
208        #[prost(message, repeated, tag = "2")]
209        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::Source>,
210        #[prost(message, repeated, tag = "3")]
211        pub group_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
212        #[prost(message, optional, tag = "4")]
213        pub stacked_group_name: ::core::option::Option<::prost::alloc::string::String>,
214        #[prost(message, optional, tag = "5")]
215        pub time_frame: ::core::option::Option<
216            super::super::super::common::TimeFrameSelect,
217        >,
218    }
219}
220#[derive(serde::Serialize, serde::Deserialize)]
221#[serde(rename_all = "snake_case")]
222#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
223#[repr(i32)]
224pub enum BarValueDisplay {
225    Unspecified = 0,
226    Top = 1,
227    Inside = 2,
228    Both = 3,
229}
230impl BarValueDisplay {
231    /// String value of the enum field names used in the ProtoBuf definition.
232    ///
233    /// The values are not transformed in any way and thus are considered stable
234    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
235    pub fn as_str_name(&self) -> &'static str {
236        match self {
237            Self::Unspecified => "BAR_VALUE_DISPLAY_UNSPECIFIED",
238            Self::Top => "BAR_VALUE_DISPLAY_TOP",
239            Self::Inside => "BAR_VALUE_DISPLAY_INSIDE",
240            Self::Both => "BAR_VALUE_DISPLAY_BOTH",
241        }
242    }
243    /// Creates an enum from field names used in the ProtoBuf definition.
244    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
245        match value {
246            "BAR_VALUE_DISPLAY_UNSPECIFIED" => Some(Self::Unspecified),
247            "BAR_VALUE_DISPLAY_TOP" => Some(Self::Top),
248            "BAR_VALUE_DISPLAY_INSIDE" => Some(Self::Inside),
249            "BAR_VALUE_DISPLAY_BOTH" => Some(Self::Both),
250            _ => None,
251        }
252    }
253}
254#[derive(serde::Serialize, serde::Deserialize)]
255#[serde(rename_all = "snake_case")]
256#[derive(Clone, PartialEq, ::prost::Message)]
257pub struct DataTable {
258    #[prost(message, optional, tag = "1")]
259    pub query: ::core::option::Option<data_table::Query>,
260    #[prost(message, optional, tag = "2")]
261    pub results_per_page: ::core::option::Option<i32>,
262    #[prost(enumeration = "RowStyle", tag = "3")]
263    pub row_style: i32,
264    #[prost(message, repeated, tag = "4")]
265    pub columns: ::prost::alloc::vec::Vec<data_table::Column>,
266    #[prost(message, optional, tag = "5")]
267    pub order_by: ::core::option::Option<super::super::common::OrderingField>,
268    #[prost(enumeration = "common::DataModeType", tag = "11")]
269    pub data_mode_type: i32,
270}
271/// Nested message and enum types in `DataTable`.
272pub mod data_table {
273    #[derive(serde::Serialize, serde::Deserialize)]
274    #[serde(rename_all = "snake_case")]
275    #[derive(Clone, PartialEq, ::prost::Message)]
276    pub struct Query {
277        #[prost(oneof = "query::Value", tags = "1, 2, 3, 4")]
278        pub value: ::core::option::Option<query::Value>,
279    }
280    /// Nested message and enum types in `Query`.
281    pub mod query {
282        #[derive(serde::Serialize, serde::Deserialize)]
283        #[serde(rename_all = "snake_case")]
284        #[derive(Clone, PartialEq, ::prost::Oneof)]
285        pub enum Value {
286            #[prost(message, tag = "1")]
287            Logs(super::LogsQuery),
288            #[prost(message, tag = "2")]
289            Spans(super::SpansQuery),
290            #[prost(message, tag = "3")]
291            Metrics(super::MetricsQuery),
292            #[prost(message, tag = "4")]
293            Dataprime(super::DataprimeQuery),
294        }
295    }
296    #[derive(serde::Serialize, serde::Deserialize)]
297    #[serde(rename_all = "snake_case")]
298    #[derive(Clone, PartialEq, ::prost::Message)]
299    pub struct LogsQuery {
300        #[prost(message, optional, tag = "1")]
301        pub lucene_query: ::core::option::Option<super::common::LuceneQuery>,
302        #[prost(message, repeated, tag = "2")]
303        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::LogsFilter>,
304        #[prost(message, optional, tag = "3")]
305        pub grouping: ::core::option::Option<logs_query::Grouping>,
306        #[prost(message, optional, tag = "4")]
307        pub time_frame: ::core::option::Option<
308            super::super::super::common::TimeFrameSelect,
309        >,
310    }
311    /// Nested message and enum types in `LogsQuery`.
312    pub mod logs_query {
313        #[derive(serde::Serialize, serde::Deserialize)]
314        #[serde(rename_all = "snake_case")]
315        #[derive(Clone, PartialEq, ::prost::Message)]
316        pub struct Grouping {
317            #[prost(message, repeated, tag = "1")]
318            pub group_by: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
319            #[prost(message, repeated, tag = "2")]
320            pub aggregations: ::prost::alloc::vec::Vec<Aggregation>,
321            #[prost(message, repeated, tag = "3")]
322            pub group_bys: ::prost::alloc::vec::Vec<
323                super::super::super::super::common::ObservationField,
324            >,
325        }
326        #[derive(serde::Serialize, serde::Deserialize)]
327        #[serde(rename_all = "snake_case")]
328        #[derive(Clone, PartialEq, ::prost::Message)]
329        pub struct Aggregation {
330            #[prost(message, optional, tag = "1")]
331            pub id: ::core::option::Option<::prost::alloc::string::String>,
332            #[prost(message, optional, tag = "2")]
333            pub name: ::core::option::Option<::prost::alloc::string::String>,
334            #[prost(message, optional, tag = "3")]
335            pub is_visible: ::core::option::Option<bool>,
336            #[prost(message, optional, tag = "4")]
337            pub aggregation: ::core::option::Option<
338                super::super::super::super::common::LogsAggregation,
339            >,
340        }
341    }
342    #[derive(serde::Serialize, serde::Deserialize)]
343    #[serde(rename_all = "snake_case")]
344    #[derive(Clone, PartialEq, ::prost::Message)]
345    pub struct SpansQuery {
346        #[prost(message, optional, tag = "1")]
347        pub lucene_query: ::core::option::Option<super::common::LuceneQuery>,
348        #[prost(message, repeated, tag = "2")]
349        pub filters: ::prost::alloc::vec::Vec<
350            super::super::filters::filter::SpansFilter,
351        >,
352        #[prost(message, optional, tag = "3")]
353        pub grouping: ::core::option::Option<spans_query::Grouping>,
354        #[prost(message, optional, tag = "4")]
355        pub time_frame: ::core::option::Option<
356            super::super::super::common::TimeFrameSelect,
357        >,
358    }
359    /// Nested message and enum types in `SpansQuery`.
360    pub mod spans_query {
361        #[derive(serde::Serialize, serde::Deserialize)]
362        #[serde(rename_all = "snake_case")]
363        #[derive(Clone, PartialEq, ::prost::Message)]
364        pub struct Grouping {
365            #[prost(message, repeated, tag = "1")]
366            pub group_by: ::prost::alloc::vec::Vec<
367                super::super::super::super::common::SpanField,
368            >,
369            #[prost(message, repeated, tag = "2")]
370            pub aggregations: ::prost::alloc::vec::Vec<Aggregation>,
371            #[prost(message, repeated, tag = "3")]
372            pub group_bys: ::prost::alloc::vec::Vec<
373                super::super::super::super::common::SpanObservationField,
374            >,
375        }
376        #[derive(serde::Serialize, serde::Deserialize)]
377        #[serde(rename_all = "snake_case")]
378        #[derive(Clone, PartialEq, ::prost::Message)]
379        pub struct Aggregation {
380            #[prost(message, optional, tag = "1")]
381            pub id: ::core::option::Option<::prost::alloc::string::String>,
382            #[prost(message, optional, tag = "2")]
383            pub name: ::core::option::Option<::prost::alloc::string::String>,
384            #[prost(message, optional, tag = "3")]
385            pub is_visible: ::core::option::Option<bool>,
386            #[prost(message, optional, tag = "4")]
387            pub aggregation: ::core::option::Option<
388                super::super::super::super::common::SpansAggregation,
389            >,
390        }
391    }
392    #[derive(serde::Serialize, serde::Deserialize)]
393    #[serde(rename_all = "snake_case")]
394    #[derive(Clone, PartialEq, ::prost::Message)]
395    pub struct MetricsQuery {
396        #[prost(message, optional, tag = "1")]
397        pub promql_query: ::core::option::Option<super::common::PromQlQuery>,
398        #[prost(message, repeated, tag = "2")]
399        pub filters: ::prost::alloc::vec::Vec<
400            super::super::filters::filter::MetricsFilter,
401        >,
402        #[prost(enumeration = "super::common::MetricsQueryEditorMode", tag = "3")]
403        pub editor_mode: i32,
404        #[prost(message, optional, tag = "4")]
405        pub time_frame: ::core::option::Option<
406            super::super::super::common::TimeFrameSelect,
407        >,
408        #[prost(enumeration = "super::super::super::common::PromQlQueryType", tag = "5")]
409        pub promql_query_type: i32,
410    }
411    #[derive(serde::Serialize, serde::Deserialize)]
412    #[serde(rename_all = "snake_case")]
413    #[derive(Clone, PartialEq, ::prost::Message)]
414    pub struct DataprimeQuery {
415        #[prost(message, optional, tag = "1")]
416        pub dataprime_query: ::core::option::Option<
417            super::super::super::common::DataprimeQuery,
418        >,
419        #[prost(message, repeated, tag = "2")]
420        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::Source>,
421        #[prost(message, optional, tag = "3")]
422        pub time_frame: ::core::option::Option<
423            super::super::super::common::TimeFrameSelect,
424        >,
425    }
426    #[derive(serde::Serialize, serde::Deserialize)]
427    #[serde(rename_all = "snake_case")]
428    #[derive(Clone, PartialEq, ::prost::Message)]
429    pub struct Column {
430        #[prost(message, optional, tag = "1")]
431        pub field: ::core::option::Option<::prost::alloc::string::String>,
432        #[prost(message, optional, tag = "2")]
433        pub width: ::core::option::Option<i32>,
434    }
435}
436#[derive(serde::Serialize, serde::Deserialize)]
437#[serde(rename_all = "snake_case")]
438#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
439#[repr(i32)]
440pub enum RowStyle {
441    Unspecified = 0,
442    OneLine = 1,
443    TwoLine = 2,
444    Condensed = 3,
445    Json = 4,
446    List = 5,
447}
448impl RowStyle {
449    /// String value of the enum field names used in the ProtoBuf definition.
450    ///
451    /// The values are not transformed in any way and thus are considered stable
452    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
453    pub fn as_str_name(&self) -> &'static str {
454        match self {
455            Self::Unspecified => "ROW_STYLE_UNSPECIFIED",
456            Self::OneLine => "ROW_STYLE_ONE_LINE",
457            Self::TwoLine => "ROW_STYLE_TWO_LINE",
458            Self::Condensed => "ROW_STYLE_CONDENSED",
459            Self::Json => "ROW_STYLE_JSON",
460            Self::List => "ROW_STYLE_LIST",
461        }
462    }
463    /// Creates an enum from field names used in the ProtoBuf definition.
464    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
465        match value {
466            "ROW_STYLE_UNSPECIFIED" => Some(Self::Unspecified),
467            "ROW_STYLE_ONE_LINE" => Some(Self::OneLine),
468            "ROW_STYLE_TWO_LINE" => Some(Self::TwoLine),
469            "ROW_STYLE_CONDENSED" => Some(Self::Condensed),
470            "ROW_STYLE_JSON" => Some(Self::Json),
471            "ROW_STYLE_LIST" => Some(Self::List),
472            _ => None,
473        }
474    }
475}
476#[derive(serde::Serialize, serde::Deserialize)]
477#[serde(rename_all = "snake_case")]
478#[derive(Clone, PartialEq, ::prost::Message)]
479pub struct Gauge {
480    #[prost(message, optional, tag = "1")]
481    pub query: ::core::option::Option<gauge::Query>,
482    #[prost(message, optional, tag = "2")]
483    pub min: ::core::option::Option<f64>,
484    #[prost(message, optional, tag = "3")]
485    pub max: ::core::option::Option<f64>,
486    #[prost(message, optional, tag = "4")]
487    pub show_inner_arc: ::core::option::Option<bool>,
488    #[prost(message, optional, tag = "5")]
489    pub show_outer_arc: ::core::option::Option<bool>,
490    #[prost(enumeration = "gauge::Unit", tag = "6")]
491    pub unit: i32,
492    #[prost(message, repeated, tag = "7")]
493    pub thresholds: ::prost::alloc::vec::Vec<gauge::Threshold>,
494    #[prost(enumeration = "common::DataModeType", tag = "8")]
495    pub data_mode_type: i32,
496    #[prost(enumeration = "gauge::ThresholdBy", tag = "9")]
497    pub threshold_by: i32,
498    #[prost(message, optional, tag = "10")]
499    pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
500    #[prost(message, optional, tag = "11")]
501    pub decimal: ::core::option::Option<i32>,
502    #[prost(enumeration = "common::ThresholdType", tag = "12")]
503    pub threshold_type: i32,
504    #[prost(message, optional, tag = "13")]
505    pub legend: ::core::option::Option<common::Legend>,
506    #[prost(enumeration = "common::LegendBy", tag = "14")]
507    pub legend_by: i32,
508    #[prost(message, optional, tag = "15")]
509    pub display_series_name: ::core::option::Option<bool>,
510    #[prost(message, optional, tag = "16")]
511    pub decimal_precision: ::core::option::Option<bool>,
512}
513/// Nested message and enum types in `Gauge`.
514pub mod gauge {
515    #[derive(serde::Serialize, serde::Deserialize)]
516    #[serde(rename_all = "snake_case")]
517    #[derive(Clone, PartialEq, ::prost::Message)]
518    pub struct Query {
519        #[prost(oneof = "query::Value", tags = "1, 2, 3, 4")]
520        pub value: ::core::option::Option<query::Value>,
521    }
522    /// Nested message and enum types in `Query`.
523    pub mod query {
524        #[derive(serde::Serialize, serde::Deserialize)]
525        #[serde(rename_all = "snake_case")]
526        #[derive(Clone, PartialEq, ::prost::Oneof)]
527        pub enum Value {
528            #[prost(message, tag = "1")]
529            Metrics(super::MetricsQuery),
530            #[prost(message, tag = "2")]
531            Logs(super::LogsQuery),
532            #[prost(message, tag = "3")]
533            Spans(super::SpansQuery),
534            #[prost(message, tag = "4")]
535            Dataprime(super::DataprimeQuery),
536        }
537    }
538    #[derive(serde::Serialize, serde::Deserialize)]
539    #[serde(rename_all = "snake_case")]
540    #[derive(Clone, PartialEq, ::prost::Message)]
541    pub struct MetricsQuery {
542        #[prost(message, optional, tag = "1")]
543        pub promql_query: ::core::option::Option<super::common::PromQlQuery>,
544        #[prost(enumeration = "Aggregation", tag = "2")]
545        pub aggregation: i32,
546        #[prost(message, repeated, tag = "3")]
547        pub filters: ::prost::alloc::vec::Vec<
548            super::super::filters::filter::MetricsFilter,
549        >,
550        #[prost(enumeration = "super::common::MetricsQueryEditorMode", tag = "4")]
551        pub editor_mode: i32,
552        #[prost(message, optional, tag = "5")]
553        pub time_frame: ::core::option::Option<
554            super::super::super::common::TimeFrameSelect,
555        >,
556        #[prost(enumeration = "super::super::super::common::PromQlQueryType", tag = "6")]
557        pub promql_query_type: i32,
558    }
559    #[derive(serde::Serialize, serde::Deserialize)]
560    #[serde(rename_all = "snake_case")]
561    #[derive(Clone, PartialEq, ::prost::Message)]
562    pub struct LogsQuery {
563        #[prost(message, optional, tag = "1")]
564        pub lucene_query: ::core::option::Option<super::common::LuceneQuery>,
565        #[prost(message, optional, tag = "2")]
566        pub logs_aggregation: ::core::option::Option<
567            super::super::super::common::LogsAggregation,
568        >,
569        #[deprecated]
570        #[prost(enumeration = "Aggregation", tag = "3")]
571        pub aggregation: i32,
572        #[prost(message, repeated, tag = "4")]
573        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::LogsFilter>,
574        #[prost(message, repeated, tag = "5")]
575        pub group_by: ::prost::alloc::vec::Vec<
576            super::super::super::common::ObservationField,
577        >,
578        #[prost(message, optional, tag = "6")]
579        pub time_frame: ::core::option::Option<
580            super::super::super::common::TimeFrameSelect,
581        >,
582    }
583    #[derive(serde::Serialize, serde::Deserialize)]
584    #[serde(rename_all = "snake_case")]
585    #[derive(Clone, PartialEq, ::prost::Message)]
586    pub struct SpansQuery {
587        #[prost(message, optional, tag = "1")]
588        pub lucene_query: ::core::option::Option<super::common::LuceneQuery>,
589        #[prost(message, optional, tag = "2")]
590        pub spans_aggregation: ::core::option::Option<
591            super::super::super::common::SpansAggregation,
592        >,
593        #[deprecated]
594        #[prost(enumeration = "Aggregation", tag = "3")]
595        pub aggregation: i32,
596        #[prost(message, repeated, tag = "4")]
597        pub filters: ::prost::alloc::vec::Vec<
598            super::super::filters::filter::SpansFilter,
599        >,
600        #[prost(message, repeated, tag = "5")]
601        pub group_by: ::prost::alloc::vec::Vec<super::super::super::common::SpanField>,
602        #[prost(message, optional, tag = "6")]
603        pub time_frame: ::core::option::Option<
604            super::super::super::common::TimeFrameSelect,
605        >,
606        #[prost(message, repeated, tag = "7")]
607        pub group_bys: ::prost::alloc::vec::Vec<
608            super::super::super::common::SpanObservationField,
609        >,
610    }
611    #[derive(serde::Serialize, serde::Deserialize)]
612    #[serde(rename_all = "snake_case")]
613    #[derive(Clone, PartialEq, ::prost::Message)]
614    pub struct DataprimeQuery {
615        #[prost(message, optional, tag = "1")]
616        pub dataprime_query: ::core::option::Option<
617            super::super::super::common::DataprimeQuery,
618        >,
619        #[prost(message, repeated, tag = "2")]
620        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::Source>,
621        #[prost(message, optional, tag = "3")]
622        pub time_frame: ::core::option::Option<
623            super::super::super::common::TimeFrameSelect,
624        >,
625    }
626    #[derive(serde::Serialize, serde::Deserialize)]
627    #[serde(rename_all = "snake_case")]
628    #[derive(Clone, PartialEq, ::prost::Message)]
629    pub struct Threshold {
630        #[prost(message, optional, tag = "1")]
631        pub from: ::core::option::Option<f64>,
632        #[prost(message, optional, tag = "2")]
633        pub color: ::core::option::Option<::prost::alloc::string::String>,
634        #[prost(message, optional, tag = "3")]
635        pub label: ::core::option::Option<::prost::alloc::string::String>,
636    }
637    #[derive(serde::Serialize, serde::Deserialize)]
638    #[serde(rename_all = "snake_case")]
639    #[derive(
640        Clone,
641        Copy,
642        Debug,
643        PartialEq,
644        Eq,
645        Hash,
646        PartialOrd,
647        Ord,
648        ::prost::Enumeration
649    )]
650    #[repr(i32)]
651    pub enum Aggregation {
652        Unspecified = 0,
653        Last = 1,
654        Min = 2,
655        Max = 3,
656        Avg = 4,
657        Sum = 5,
658    }
659    impl Aggregation {
660        /// String value of the enum field names used in the ProtoBuf definition.
661        ///
662        /// The values are not transformed in any way and thus are considered stable
663        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
664        pub fn as_str_name(&self) -> &'static str {
665            match self {
666                Self::Unspecified => "AGGREGATION_UNSPECIFIED",
667                Self::Last => "AGGREGATION_LAST",
668                Self::Min => "AGGREGATION_MIN",
669                Self::Max => "AGGREGATION_MAX",
670                Self::Avg => "AGGREGATION_AVG",
671                Self::Sum => "AGGREGATION_SUM",
672            }
673        }
674        /// Creates an enum from field names used in the ProtoBuf definition.
675        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
676            match value {
677                "AGGREGATION_UNSPECIFIED" => Some(Self::Unspecified),
678                "AGGREGATION_LAST" => Some(Self::Last),
679                "AGGREGATION_MIN" => Some(Self::Min),
680                "AGGREGATION_MAX" => Some(Self::Max),
681                "AGGREGATION_AVG" => Some(Self::Avg),
682                "AGGREGATION_SUM" => Some(Self::Sum),
683                _ => None,
684            }
685        }
686    }
687    #[derive(serde::Serialize, serde::Deserialize)]
688    #[serde(rename_all = "snake_case")]
689    #[derive(
690        Clone,
691        Copy,
692        Debug,
693        PartialEq,
694        Eq,
695        Hash,
696        PartialOrd,
697        Ord,
698        ::prost::Enumeration
699    )]
700    #[repr(i32)]
701    pub enum Unit {
702        Unspecified = 0,
703        Number = 1,
704        Percent = 2,
705        Microseconds = 3,
706        Milliseconds = 4,
707        Seconds = 5,
708        Bytes = 6,
709        Kbytes = 7,
710        Mbytes = 8,
711        Gbytes = 9,
712        BytesIec = 10,
713        Kibytes = 11,
714        Mibytes = 12,
715        Gibytes = 13,
716        EurCents = 14,
717        Eur = 15,
718        UsdCents = 16,
719        Usd = 17,
720        Custom = 18,
721        PercentZeroOne = 19,
722        PercentZeroHundred = 20,
723        Nanoseconds = 21,
724    }
725    impl Unit {
726        /// String value of the enum field names used in the ProtoBuf definition.
727        ///
728        /// The values are not transformed in any way and thus are considered stable
729        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
730        pub fn as_str_name(&self) -> &'static str {
731            match self {
732                Self::Unspecified => "UNIT_UNSPECIFIED",
733                Self::Number => "UNIT_NUMBER",
734                Self::Percent => "UNIT_PERCENT",
735                Self::Microseconds => "UNIT_MICROSECONDS",
736                Self::Milliseconds => "UNIT_MILLISECONDS",
737                Self::Seconds => "UNIT_SECONDS",
738                Self::Bytes => "UNIT_BYTES",
739                Self::Kbytes => "UNIT_KBYTES",
740                Self::Mbytes => "UNIT_MBYTES",
741                Self::Gbytes => "UNIT_GBYTES",
742                Self::BytesIec => "UNIT_BYTES_IEC",
743                Self::Kibytes => "UNIT_KIBYTES",
744                Self::Mibytes => "UNIT_MIBYTES",
745                Self::Gibytes => "UNIT_GIBYTES",
746                Self::EurCents => "UNIT_EUR_CENTS",
747                Self::Eur => "UNIT_EUR",
748                Self::UsdCents => "UNIT_USD_CENTS",
749                Self::Usd => "UNIT_USD",
750                Self::Custom => "UNIT_CUSTOM",
751                Self::PercentZeroOne => "UNIT_PERCENT_ZERO_ONE",
752                Self::PercentZeroHundred => "UNIT_PERCENT_ZERO_HUNDRED",
753                Self::Nanoseconds => "UNIT_NANOSECONDS",
754            }
755        }
756        /// Creates an enum from field names used in the ProtoBuf definition.
757        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
758            match value {
759                "UNIT_UNSPECIFIED" => Some(Self::Unspecified),
760                "UNIT_NUMBER" => Some(Self::Number),
761                "UNIT_PERCENT" => Some(Self::Percent),
762                "UNIT_MICROSECONDS" => Some(Self::Microseconds),
763                "UNIT_MILLISECONDS" => Some(Self::Milliseconds),
764                "UNIT_SECONDS" => Some(Self::Seconds),
765                "UNIT_BYTES" => Some(Self::Bytes),
766                "UNIT_KBYTES" => Some(Self::Kbytes),
767                "UNIT_MBYTES" => Some(Self::Mbytes),
768                "UNIT_GBYTES" => Some(Self::Gbytes),
769                "UNIT_BYTES_IEC" => Some(Self::BytesIec),
770                "UNIT_KIBYTES" => Some(Self::Kibytes),
771                "UNIT_MIBYTES" => Some(Self::Mibytes),
772                "UNIT_GIBYTES" => Some(Self::Gibytes),
773                "UNIT_EUR_CENTS" => Some(Self::EurCents),
774                "UNIT_EUR" => Some(Self::Eur),
775                "UNIT_USD_CENTS" => Some(Self::UsdCents),
776                "UNIT_USD" => Some(Self::Usd),
777                "UNIT_CUSTOM" => Some(Self::Custom),
778                "UNIT_PERCENT_ZERO_ONE" => Some(Self::PercentZeroOne),
779                "UNIT_PERCENT_ZERO_HUNDRED" => Some(Self::PercentZeroHundred),
780                "UNIT_NANOSECONDS" => Some(Self::Nanoseconds),
781                _ => None,
782            }
783        }
784    }
785    #[derive(serde::Serialize, serde::Deserialize)]
786    #[serde(rename_all = "snake_case")]
787    #[derive(
788        Clone,
789        Copy,
790        Debug,
791        PartialEq,
792        Eq,
793        Hash,
794        PartialOrd,
795        Ord,
796        ::prost::Enumeration
797    )]
798    #[repr(i32)]
799    pub enum ThresholdBy {
800        Unspecified = 0,
801        Value = 1,
802        Background = 2,
803    }
804    impl ThresholdBy {
805        /// String value of the enum field names used in the ProtoBuf definition.
806        ///
807        /// The values are not transformed in any way and thus are considered stable
808        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
809        pub fn as_str_name(&self) -> &'static str {
810            match self {
811                Self::Unspecified => "THRESHOLD_BY_UNSPECIFIED",
812                Self::Value => "THRESHOLD_BY_VALUE",
813                Self::Background => "THRESHOLD_BY_BACKGROUND",
814            }
815        }
816        /// Creates an enum from field names used in the ProtoBuf definition.
817        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
818            match value {
819                "THRESHOLD_BY_UNSPECIFIED" => Some(Self::Unspecified),
820                "THRESHOLD_BY_VALUE" => Some(Self::Value),
821                "THRESHOLD_BY_BACKGROUND" => Some(Self::Background),
822                _ => None,
823            }
824        }
825    }
826}
827#[derive(serde::Serialize, serde::Deserialize)]
828#[serde(rename_all = "snake_case")]
829#[derive(Clone, PartialEq, ::prost::Message)]
830pub struct Hexagon {
831    #[prost(message, optional, tag = "1")]
832    pub query: ::core::option::Option<hexagon::Query>,
833    #[prost(message, optional, tag = "2")]
834    pub min: ::core::option::Option<f64>,
835    #[prost(message, optional, tag = "3")]
836    pub max: ::core::option::Option<f64>,
837    #[prost(enumeration = "common::Unit", tag = "6")]
838    pub unit: i32,
839    #[prost(message, repeated, tag = "7")]
840    pub thresholds: ::prost::alloc::vec::Vec<common::Threshold>,
841    #[prost(enumeration = "common::DataModeType", tag = "8")]
842    pub data_mode_type: i32,
843    #[prost(message, optional, tag = "10")]
844    pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
845    #[prost(message, optional, tag = "11")]
846    pub decimal: ::core::option::Option<i32>,
847    #[prost(enumeration = "common::ThresholdType", tag = "12")]
848    pub threshold_type: i32,
849    #[prost(message, optional, tag = "13")]
850    pub legend: ::core::option::Option<common::Legend>,
851    #[prost(enumeration = "common::LegendBy", tag = "14")]
852    pub legend_by: i32,
853    #[prost(message, optional, tag = "15")]
854    pub decimal_precision: ::core::option::Option<bool>,
855}
856/// Nested message and enum types in `Hexagon`.
857pub mod hexagon {
858    #[derive(serde::Serialize, serde::Deserialize)]
859    #[serde(rename_all = "snake_case")]
860    #[derive(Clone, PartialEq, ::prost::Message)]
861    pub struct Query {
862        #[prost(oneof = "query::Value", tags = "1, 2, 3, 4")]
863        pub value: ::core::option::Option<query::Value>,
864    }
865    /// Nested message and enum types in `Query`.
866    pub mod query {
867        #[derive(serde::Serialize, serde::Deserialize)]
868        #[serde(rename_all = "snake_case")]
869        #[derive(Clone, PartialEq, ::prost::Oneof)]
870        pub enum Value {
871            #[prost(message, tag = "1")]
872            Metrics(super::MetricsQuery),
873            #[prost(message, tag = "2")]
874            Logs(super::LogsQuery),
875            #[prost(message, tag = "3")]
876            Spans(super::SpansQuery),
877            #[prost(message, tag = "4")]
878            Dataprime(super::DataprimeQuery),
879        }
880    }
881    #[derive(serde::Serialize, serde::Deserialize)]
882    #[serde(rename_all = "snake_case")]
883    #[derive(Clone, PartialEq, ::prost::Message)]
884    pub struct MetricsQuery {
885        #[prost(message, optional, tag = "1")]
886        pub promql_query: ::core::option::Option<super::common::PromQlQuery>,
887        #[prost(message, repeated, tag = "2")]
888        pub filters: ::prost::alloc::vec::Vec<
889            super::super::filters::filter::MetricsFilter,
890        >,
891        #[prost(enumeration = "super::common::MetricsQueryEditorMode", tag = "3")]
892        pub editor_mode: i32,
893        #[prost(message, optional, tag = "4")]
894        pub time_frame: ::core::option::Option<
895            super::super::super::common::TimeFrameSelect,
896        >,
897        #[prost(enumeration = "super::common::Aggregation", tag = "5")]
898        pub aggregation: i32,
899        #[prost(enumeration = "super::super::super::common::PromQlQueryType", tag = "6")]
900        pub promql_query_type: i32,
901    }
902    #[derive(serde::Serialize, serde::Deserialize)]
903    #[serde(rename_all = "snake_case")]
904    #[derive(Clone, PartialEq, ::prost::Message)]
905    pub struct LogsQuery {
906        #[prost(message, optional, tag = "1")]
907        pub lucene_query: ::core::option::Option<super::common::LuceneQuery>,
908        #[prost(message, optional, tag = "2")]
909        pub logs_aggregation: ::core::option::Option<
910            super::super::super::common::LogsAggregation,
911        >,
912        #[prost(message, repeated, tag = "3")]
913        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::LogsFilter>,
914        #[prost(message, repeated, tag = "4")]
915        pub group_by: ::prost::alloc::vec::Vec<
916            super::super::super::common::ObservationField,
917        >,
918        #[prost(message, optional, tag = "5")]
919        pub time_frame: ::core::option::Option<
920            super::super::super::common::TimeFrameSelect,
921        >,
922    }
923    #[derive(serde::Serialize, serde::Deserialize)]
924    #[serde(rename_all = "snake_case")]
925    #[derive(Clone, PartialEq, ::prost::Message)]
926    pub struct SpansQuery {
927        #[prost(message, optional, tag = "1")]
928        pub lucene_query: ::core::option::Option<super::common::LuceneQuery>,
929        #[prost(message, optional, tag = "2")]
930        pub spans_aggregation: ::core::option::Option<
931            super::super::super::common::SpansAggregation,
932        >,
933        #[prost(message, repeated, tag = "3")]
934        pub filters: ::prost::alloc::vec::Vec<
935            super::super::filters::filter::SpansFilter,
936        >,
937        #[prost(message, repeated, tag = "4")]
938        pub group_by: ::prost::alloc::vec::Vec<super::super::super::common::SpanField>,
939        #[prost(message, optional, tag = "5")]
940        pub time_frame: ::core::option::Option<
941            super::super::super::common::TimeFrameSelect,
942        >,
943        #[prost(message, repeated, tag = "6")]
944        pub group_bys: ::prost::alloc::vec::Vec<
945            super::super::super::common::SpanObservationField,
946        >,
947    }
948    #[derive(serde::Serialize, serde::Deserialize)]
949    #[serde(rename_all = "snake_case")]
950    #[derive(Clone, PartialEq, ::prost::Message)]
951    pub struct DataprimeQuery {
952        #[prost(message, optional, tag = "1")]
953        pub dataprime_query: ::core::option::Option<
954            super::super::super::common::DataprimeQuery,
955        >,
956        #[prost(message, repeated, tag = "2")]
957        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::Source>,
958        #[prost(message, optional, tag = "3")]
959        pub time_frame: ::core::option::Option<
960            super::super::super::common::TimeFrameSelect,
961        >,
962    }
963}
964#[derive(serde::Serialize, serde::Deserialize)]
965#[serde(rename_all = "snake_case")]
966#[derive(Clone, PartialEq, ::prost::Message)]
967pub struct HorizontalBarChart {
968    #[prost(message, optional, tag = "1")]
969    pub query: ::core::option::Option<horizontal_bar_chart::Query>,
970    #[prost(message, optional, tag = "2")]
971    pub max_bars_per_chart: ::core::option::Option<i32>,
972    #[prost(message, optional, tag = "3")]
973    pub group_name_template: ::core::option::Option<::prost::alloc::string::String>,
974    #[prost(message, optional, tag = "4")]
975    pub stack_definition: ::core::option::Option<horizontal_bar_chart::StackDefinition>,
976    #[prost(enumeration = "common::ScaleType", tag = "5")]
977    pub scale_type: i32,
978    #[prost(message, optional, tag = "6")]
979    pub colors_by: ::core::option::Option<common::ColorsBy>,
980    #[prost(enumeration = "common::Unit", tag = "8")]
981    pub unit: i32,
982    #[prost(message, optional, tag = "9")]
983    pub display_on_bar: ::core::option::Option<bool>,
984    #[prost(message, optional, tag = "10")]
985    pub y_axis_view_by: ::core::option::Option<horizontal_bar_chart::YAxisViewBy>,
986    #[prost(enumeration = "common::SortByType", tag = "11")]
987    pub sort_by: i32,
988    #[prost(message, optional, tag = "12")]
989    pub color_scheme: ::core::option::Option<::prost::alloc::string::String>,
990    #[prost(enumeration = "common::DataModeType", tag = "13")]
991    pub data_mode_type: i32,
992    #[prost(message, optional, tag = "14")]
993    pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
994    #[prost(message, optional, tag = "15")]
995    pub decimal: ::core::option::Option<i32>,
996    #[prost(message, optional, tag = "16")]
997    pub legend: ::core::option::Option<common::Legend>,
998    #[prost(message, optional, tag = "17")]
999    pub hash_colors: ::core::option::Option<bool>,
1000    #[prost(message, optional, tag = "18")]
1001    pub y_axis_min: ::core::option::Option<f32>,
1002    #[prost(message, optional, tag = "19")]
1003    pub y_axis_max: ::core::option::Option<f32>,
1004    #[prost(message, optional, tag = "20")]
1005    pub decimal_precision: ::core::option::Option<bool>,
1006}
1007/// Nested message and enum types in `HorizontalBarChart`.
1008pub mod horizontal_bar_chart {
1009    #[derive(serde::Serialize, serde::Deserialize)]
1010    #[serde(rename_all = "snake_case")]
1011    #[derive(Clone, PartialEq, ::prost::Message)]
1012    pub struct Query {
1013        #[prost(oneof = "query::Value", tags = "1, 2, 3, 4")]
1014        pub value: ::core::option::Option<query::Value>,
1015    }
1016    /// Nested message and enum types in `Query`.
1017    pub mod query {
1018        #[derive(serde::Serialize, serde::Deserialize)]
1019        #[serde(rename_all = "snake_case")]
1020        #[derive(Clone, PartialEq, ::prost::Oneof)]
1021        pub enum Value {
1022            #[prost(message, tag = "1")]
1023            Logs(super::LogsQuery),
1024            #[prost(message, tag = "2")]
1025            Spans(super::SpansQuery),
1026            #[prost(message, tag = "3")]
1027            Metrics(super::MetricsQuery),
1028            #[prost(message, tag = "4")]
1029            Dataprime(super::DataprimeQuery),
1030        }
1031    }
1032    #[derive(serde::Serialize, serde::Deserialize)]
1033    #[serde(rename_all = "snake_case")]
1034    #[derive(Clone, PartialEq, ::prost::Message)]
1035    pub struct StackDefinition {
1036        #[prost(message, optional, tag = "1")]
1037        pub max_slices_per_bar: ::core::option::Option<i32>,
1038        #[prost(message, optional, tag = "2")]
1039        pub stack_name_template: ::core::option::Option<::prost::alloc::string::String>,
1040    }
1041    #[derive(serde::Serialize, serde::Deserialize)]
1042    #[serde(rename_all = "snake_case")]
1043    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1044    pub struct YAxisViewBy {
1045        #[prost(oneof = "y_axis_view_by::YAxisView", tags = "1, 2")]
1046        pub y_axis_view: ::core::option::Option<y_axis_view_by::YAxisView>,
1047    }
1048    /// Nested message and enum types in `YAxisViewBy`.
1049    pub mod y_axis_view_by {
1050        #[derive(serde::Serialize, serde::Deserialize)]
1051        #[serde(rename_all = "snake_case")]
1052        #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1053        pub struct YAxisViewByCategory {}
1054        #[derive(serde::Serialize, serde::Deserialize)]
1055        #[serde(rename_all = "snake_case")]
1056        #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1057        pub struct YAxisViewByValue {}
1058        #[derive(serde::Serialize, serde::Deserialize)]
1059        #[serde(rename_all = "snake_case")]
1060        #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
1061        pub enum YAxisView {
1062            #[prost(message, tag = "1")]
1063            Category(YAxisViewByCategory),
1064            #[prost(message, tag = "2")]
1065            Value(YAxisViewByValue),
1066        }
1067    }
1068    #[derive(serde::Serialize, serde::Deserialize)]
1069    #[serde(rename_all = "snake_case")]
1070    #[derive(Clone, PartialEq, ::prost::Message)]
1071    pub struct LogsQuery {
1072        #[prost(message, optional, tag = "1")]
1073        pub lucene_query: ::core::option::Option<super::common::LuceneQuery>,
1074        #[prost(message, optional, tag = "2")]
1075        pub aggregation: ::core::option::Option<
1076            super::super::super::common::LogsAggregation,
1077        >,
1078        #[prost(message, repeated, tag = "3")]
1079        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::LogsFilter>,
1080        #[prost(message, repeated, tag = "4")]
1081        pub group_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1082        #[prost(message, optional, tag = "5")]
1083        pub stacked_group_name: ::core::option::Option<::prost::alloc::string::String>,
1084        #[prost(message, repeated, tag = "6")]
1085        pub group_names_fields: ::prost::alloc::vec::Vec<
1086            super::super::super::common::ObservationField,
1087        >,
1088        #[prost(message, optional, tag = "7")]
1089        pub stacked_group_name_field: ::core::option::Option<
1090            super::super::super::common::ObservationField,
1091        >,
1092        #[prost(message, optional, tag = "8")]
1093        pub time_frame: ::core::option::Option<
1094            super::super::super::common::TimeFrameSelect,
1095        >,
1096    }
1097    #[derive(serde::Serialize, serde::Deserialize)]
1098    #[serde(rename_all = "snake_case")]
1099    #[derive(Clone, PartialEq, ::prost::Message)]
1100    pub struct SpansQuery {
1101        #[prost(message, optional, tag = "1")]
1102        pub lucene_query: ::core::option::Option<super::common::LuceneQuery>,
1103        #[prost(message, optional, tag = "2")]
1104        pub aggregation: ::core::option::Option<
1105            super::super::super::common::SpansAggregation,
1106        >,
1107        #[prost(message, repeated, tag = "3")]
1108        pub filters: ::prost::alloc::vec::Vec<
1109            super::super::filters::filter::SpansFilter,
1110        >,
1111        #[prost(message, repeated, tag = "4")]
1112        pub group_names: ::prost::alloc::vec::Vec<
1113            super::super::super::common::SpanField,
1114        >,
1115        #[prost(message, optional, tag = "5")]
1116        pub stacked_group_name: ::core::option::Option<
1117            super::super::super::common::SpanField,
1118        >,
1119        #[prost(message, optional, tag = "6")]
1120        pub time_frame: ::core::option::Option<
1121            super::super::super::common::TimeFrameSelect,
1122        >,
1123        #[prost(message, repeated, tag = "7")]
1124        pub group_names_fields: ::prost::alloc::vec::Vec<
1125            super::super::super::common::SpanObservationField,
1126        >,
1127        #[prost(message, optional, tag = "8")]
1128        pub stacked_group_name_field: ::core::option::Option<
1129            super::super::super::common::SpanObservationField,
1130        >,
1131    }
1132    #[derive(serde::Serialize, serde::Deserialize)]
1133    #[serde(rename_all = "snake_case")]
1134    #[derive(Clone, PartialEq, ::prost::Message)]
1135    pub struct MetricsQuery {
1136        #[prost(message, optional, tag = "1")]
1137        pub promql_query: ::core::option::Option<super::common::PromQlQuery>,
1138        #[prost(message, repeated, tag = "2")]
1139        pub filters: ::prost::alloc::vec::Vec<
1140            super::super::filters::filter::MetricsFilter,
1141        >,
1142        #[prost(message, repeated, tag = "3")]
1143        pub group_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1144        #[prost(message, optional, tag = "4")]
1145        pub stacked_group_name: ::core::option::Option<::prost::alloc::string::String>,
1146        #[prost(enumeration = "super::common::MetricsQueryEditorMode", tag = "5")]
1147        pub editor_mode: i32,
1148        #[prost(message, optional, tag = "6")]
1149        pub time_frame: ::core::option::Option<
1150            super::super::super::common::TimeFrameSelect,
1151        >,
1152        #[prost(enumeration = "super::super::super::common::PromQlQueryType", tag = "7")]
1153        pub promql_query_type: i32,
1154        #[prost(enumeration = "super::common::Aggregation", tag = "8")]
1155        pub aggregation: i32,
1156    }
1157    #[derive(serde::Serialize, serde::Deserialize)]
1158    #[serde(rename_all = "snake_case")]
1159    #[derive(Clone, PartialEq, ::prost::Message)]
1160    pub struct DataprimeQuery {
1161        #[prost(message, optional, tag = "1")]
1162        pub dataprime_query: ::core::option::Option<
1163            super::super::super::common::DataprimeQuery,
1164        >,
1165        #[prost(message, repeated, tag = "2")]
1166        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::Source>,
1167        #[prost(message, repeated, tag = "3")]
1168        pub group_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1169        #[prost(message, optional, tag = "4")]
1170        pub stacked_group_name: ::core::option::Option<::prost::alloc::string::String>,
1171        #[prost(message, optional, tag = "5")]
1172        pub time_frame: ::core::option::Option<
1173            super::super::super::common::TimeFrameSelect,
1174        >,
1175    }
1176}
1177#[derive(serde::Serialize, serde::Deserialize)]
1178#[serde(rename_all = "snake_case")]
1179#[derive(Clone, PartialEq, ::prost::Message)]
1180pub struct LineChart {
1181    #[prost(message, optional, tag = "2")]
1182    pub legend: ::core::option::Option<common::Legend>,
1183    #[prost(message, optional, tag = "6")]
1184    pub tooltip: ::core::option::Option<line_chart::Tooltip>,
1185    #[prost(message, repeated, tag = "7")]
1186    pub query_definitions: ::prost::alloc::vec::Vec<line_chart::QueryDefinition>,
1187    #[prost(enumeration = "line_chart::StackedLine", tag = "9")]
1188    pub stacked_line: i32,
1189}
1190/// Nested message and enum types in `LineChart`.
1191pub mod line_chart {
1192    #[derive(serde::Serialize, serde::Deserialize)]
1193    #[serde(rename_all = "snake_case")]
1194    #[derive(Clone, PartialEq, ::prost::Message)]
1195    pub struct QueryDefinition {
1196        #[prost(message, optional, tag = "1")]
1197        pub id: ::core::option::Option<::prost::alloc::string::String>,
1198        #[prost(message, optional, tag = "2")]
1199        pub query: ::core::option::Option<Query>,
1200        #[prost(message, optional, tag = "3")]
1201        pub series_name_template: ::core::option::Option<::prost::alloc::string::String>,
1202        #[prost(message, optional, tag = "4")]
1203        pub series_count_limit: ::core::option::Option<i64>,
1204        #[prost(enumeration = "super::common::Unit", tag = "5")]
1205        pub unit: i32,
1206        #[prost(enumeration = "super::common::ScaleType", tag = "6")]
1207        pub scale_type: i32,
1208        #[prost(message, optional, tag = "7")]
1209        pub name: ::core::option::Option<::prost::alloc::string::String>,
1210        #[prost(message, optional, tag = "8")]
1211        pub is_visible: ::core::option::Option<bool>,
1212        #[prost(message, optional, tag = "9")]
1213        pub color_scheme: ::core::option::Option<::prost::alloc::string::String>,
1214        #[prost(message, optional, tag = "10")]
1215        pub resolution: ::core::option::Option<Resolution>,
1216        #[prost(enumeration = "super::common::DataModeType", tag = "11")]
1217        pub data_mode_type: i32,
1218        #[prost(message, optional, tag = "12")]
1219        pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
1220        #[prost(message, optional, tag = "13")]
1221        pub decimal: ::core::option::Option<i32>,
1222        #[prost(message, optional, tag = "14")]
1223        pub hash_colors: ::core::option::Option<bool>,
1224        #[prost(message, optional, tag = "15")]
1225        pub y_axis_min: ::core::option::Option<f32>,
1226        #[prost(message, optional, tag = "16")]
1227        pub y_axis_max: ::core::option::Option<f32>,
1228        #[prost(message, optional, tag = "17")]
1229        pub decimal_precision: ::core::option::Option<bool>,
1230    }
1231    #[derive(serde::Serialize, serde::Deserialize)]
1232    #[serde(rename_all = "snake_case")]
1233    #[derive(Clone, PartialEq, ::prost::Message)]
1234    pub struct Query {
1235        #[prost(oneof = "query::Value", tags = "1, 2, 3, 5")]
1236        pub value: ::core::option::Option<query::Value>,
1237    }
1238    /// Nested message and enum types in `Query`.
1239    pub mod query {
1240        #[derive(serde::Serialize, serde::Deserialize)]
1241        #[serde(rename_all = "snake_case")]
1242        #[derive(Clone, PartialEq, ::prost::Oneof)]
1243        pub enum Value {
1244            #[prost(message, tag = "1")]
1245            Logs(super::LogsQuery),
1246            #[prost(message, tag = "2")]
1247            Metrics(super::MetricsQuery),
1248            #[prost(message, tag = "3")]
1249            Spans(super::SpansQuery),
1250            #[prost(message, tag = "5")]
1251            Dataprime(super::DataprimeQuery),
1252        }
1253    }
1254    #[derive(serde::Serialize, serde::Deserialize)]
1255    #[serde(rename_all = "snake_case")]
1256    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1257    pub struct Tooltip {
1258        #[prost(message, optional, tag = "1")]
1259        pub show_labels: ::core::option::Option<bool>,
1260        #[prost(enumeration = "TooltipType", tag = "2")]
1261        pub r#type: i32,
1262    }
1263    #[derive(serde::Serialize, serde::Deserialize)]
1264    #[serde(rename_all = "snake_case")]
1265    #[derive(Clone, PartialEq, ::prost::Message)]
1266    pub struct LogsQuery {
1267        #[prost(message, optional, tag = "1")]
1268        pub lucene_query: ::core::option::Option<super::common::LuceneQuery>,
1269        #[prost(message, repeated, tag = "2")]
1270        pub group_by: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1271        #[prost(message, repeated, tag = "3")]
1272        pub aggregations: ::prost::alloc::vec::Vec<
1273            super::super::super::common::LogsAggregation,
1274        >,
1275        #[prost(message, repeated, tag = "4")]
1276        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::LogsFilter>,
1277        #[prost(message, repeated, tag = "5")]
1278        pub group_bys: ::prost::alloc::vec::Vec<
1279            super::super::super::common::ObservationField,
1280        >,
1281        #[prost(message, optional, tag = "6")]
1282        pub time_frame: ::core::option::Option<
1283            super::super::super::common::TimeFrameSelect,
1284        >,
1285    }
1286    #[derive(serde::Serialize, serde::Deserialize)]
1287    #[serde(rename_all = "snake_case")]
1288    #[derive(Clone, PartialEq, ::prost::Message)]
1289    pub struct MetricsQuery {
1290        #[prost(message, optional, tag = "1")]
1291        pub promql_query: ::core::option::Option<super::common::PromQlQuery>,
1292        #[prost(message, repeated, tag = "2")]
1293        pub filters: ::prost::alloc::vec::Vec<
1294            super::super::filters::filter::MetricsFilter,
1295        >,
1296        #[prost(enumeration = "super::common::MetricsQueryEditorMode", tag = "3")]
1297        pub editor_mode: i32,
1298        #[prost(message, optional, tag = "4")]
1299        pub time_frame: ::core::option::Option<
1300            super::super::super::common::TimeFrameSelect,
1301        >,
1302    }
1303    #[derive(serde::Serialize, serde::Deserialize)]
1304    #[serde(rename_all = "snake_case")]
1305    #[derive(Clone, PartialEq, ::prost::Message)]
1306    pub struct SpansQuery {
1307        #[prost(message, optional, tag = "1")]
1308        pub lucene_query: ::core::option::Option<super::common::LuceneQuery>,
1309        #[prost(message, repeated, tag = "2")]
1310        pub group_by: ::prost::alloc::vec::Vec<super::super::super::common::SpanField>,
1311        #[prost(message, repeated, tag = "3")]
1312        pub aggregations: ::prost::alloc::vec::Vec<
1313            super::super::super::common::SpansAggregation,
1314        >,
1315        #[prost(message, repeated, tag = "4")]
1316        pub filters: ::prost::alloc::vec::Vec<
1317            super::super::filters::filter::SpansFilter,
1318        >,
1319        #[prost(message, optional, tag = "5")]
1320        pub time_frame: ::core::option::Option<
1321            super::super::super::common::TimeFrameSelect,
1322        >,
1323        #[prost(message, repeated, tag = "6")]
1324        pub group_bys: ::prost::alloc::vec::Vec<
1325            super::super::super::common::SpanObservationField,
1326        >,
1327    }
1328    #[derive(serde::Serialize, serde::Deserialize)]
1329    #[serde(rename_all = "snake_case")]
1330    #[derive(Clone, PartialEq, ::prost::Message)]
1331    pub struct DataprimeQuery {
1332        #[prost(message, optional, tag = "1")]
1333        pub dataprime_query: ::core::option::Option<
1334            super::super::super::common::DataprimeQuery,
1335        >,
1336        #[prost(message, repeated, tag = "2")]
1337        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::Source>,
1338        #[prost(message, optional, tag = "3")]
1339        pub time_frame: ::core::option::Option<
1340            super::super::super::common::TimeFrameSelect,
1341        >,
1342    }
1343    #[derive(serde::Serialize, serde::Deserialize)]
1344    #[serde(rename_all = "snake_case")]
1345    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1346    pub struct Resolution {
1347        /// it should be oneof i think
1348        #[prost(message, optional, tag = "1")]
1349        pub interval: ::core::option::Option<::prost_wkt_types::Duration>,
1350        #[prost(message, optional, tag = "2")]
1351        pub buckets_presented: ::core::option::Option<i32>,
1352    }
1353    #[derive(serde::Serialize, serde::Deserialize)]
1354    #[serde(rename_all = "snake_case")]
1355    #[derive(
1356        Clone,
1357        Copy,
1358        Debug,
1359        PartialEq,
1360        Eq,
1361        Hash,
1362        PartialOrd,
1363        Ord,
1364        ::prost::Enumeration
1365    )]
1366    #[repr(i32)]
1367    pub enum TooltipType {
1368        Unspecified = 0,
1369        All = 1,
1370        Single = 2,
1371    }
1372    impl TooltipType {
1373        /// String value of the enum field names used in the ProtoBuf definition.
1374        ///
1375        /// The values are not transformed in any way and thus are considered stable
1376        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1377        pub fn as_str_name(&self) -> &'static str {
1378            match self {
1379                Self::Unspecified => "TOOLTIP_TYPE_UNSPECIFIED",
1380                Self::All => "TOOLTIP_TYPE_ALL",
1381                Self::Single => "TOOLTIP_TYPE_SINGLE",
1382            }
1383        }
1384        /// Creates an enum from field names used in the ProtoBuf definition.
1385        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1386            match value {
1387                "TOOLTIP_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1388                "TOOLTIP_TYPE_ALL" => Some(Self::All),
1389                "TOOLTIP_TYPE_SINGLE" => Some(Self::Single),
1390                _ => None,
1391            }
1392        }
1393    }
1394    #[derive(serde::Serialize, serde::Deserialize)]
1395    #[serde(rename_all = "snake_case")]
1396    #[derive(
1397        Clone,
1398        Copy,
1399        Debug,
1400        PartialEq,
1401        Eq,
1402        Hash,
1403        PartialOrd,
1404        Ord,
1405        ::prost::Enumeration
1406    )]
1407    #[repr(i32)]
1408    pub enum StackedLine {
1409        Unspecified = 0,
1410        Absolute = 1,
1411        Relative = 2,
1412    }
1413    impl StackedLine {
1414        /// String value of the enum field names used in the ProtoBuf definition.
1415        ///
1416        /// The values are not transformed in any way and thus are considered stable
1417        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1418        pub fn as_str_name(&self) -> &'static str {
1419            match self {
1420                Self::Unspecified => "STACKED_LINE_UNSPECIFIED",
1421                Self::Absolute => "STACKED_LINE_ABSOLUTE",
1422                Self::Relative => "STACKED_LINE_RELATIVE",
1423            }
1424        }
1425        /// Creates an enum from field names used in the ProtoBuf definition.
1426        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1427            match value {
1428                "STACKED_LINE_UNSPECIFIED" => Some(Self::Unspecified),
1429                "STACKED_LINE_ABSOLUTE" => Some(Self::Absolute),
1430                "STACKED_LINE_RELATIVE" => Some(Self::Relative),
1431                _ => None,
1432            }
1433        }
1434    }
1435}
1436#[derive(serde::Serialize, serde::Deserialize)]
1437#[serde(rename_all = "snake_case")]
1438#[derive(Clone, PartialEq, ::prost::Message)]
1439pub struct Markdown {
1440    #[prost(message, optional, tag = "1")]
1441    pub markdown_text: ::core::option::Option<::prost::alloc::string::String>,
1442    #[prost(message, optional, tag = "2")]
1443    pub tooltip_text: ::core::option::Option<::prost::alloc::string::String>,
1444}
1445#[derive(serde::Serialize, serde::Deserialize)]
1446#[serde(rename_all = "snake_case")]
1447#[derive(Clone, PartialEq, ::prost::Message)]
1448pub struct PieChart {
1449    #[prost(message, optional, tag = "1")]
1450    pub query: ::core::option::Option<pie_chart::Query>,
1451    #[prost(message, optional, tag = "2")]
1452    pub max_slices_per_chart: ::core::option::Option<i32>,
1453    #[prost(message, optional, tag = "3")]
1454    pub min_slice_percentage: ::core::option::Option<i32>,
1455    #[prost(message, optional, tag = "4")]
1456    pub stack_definition: ::core::option::Option<pie_chart::StackDefinition>,
1457    #[prost(message, optional, tag = "5")]
1458    pub label_definition: ::core::option::Option<pie_chart::LabelDefinition>,
1459    /// not used, to be deprecated
1460    #[prost(message, optional, tag = "6")]
1461    pub show_legend: ::core::option::Option<bool>,
1462    #[prost(message, optional, tag = "7")]
1463    pub group_name_template: ::core::option::Option<::prost::alloc::string::String>,
1464    #[prost(enumeration = "common::Unit", tag = "8")]
1465    pub unit: i32,
1466    #[prost(message, optional, tag = "9")]
1467    pub color_scheme: ::core::option::Option<::prost::alloc::string::String>,
1468    #[prost(enumeration = "common::DataModeType", tag = "10")]
1469    pub data_mode_type: i32,
1470    #[prost(message, optional, tag = "11")]
1471    pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
1472    #[prost(message, optional, tag = "12")]
1473    pub decimal: ::core::option::Option<i32>,
1474    #[prost(message, optional, tag = "13")]
1475    pub legend: ::core::option::Option<common::Legend>,
1476    #[prost(message, optional, tag = "14")]
1477    pub hash_colors: ::core::option::Option<bool>,
1478    #[prost(message, optional, tag = "15")]
1479    pub decimal_precision: ::core::option::Option<bool>,
1480}
1481/// Nested message and enum types in `PieChart`.
1482pub mod pie_chart {
1483    #[derive(serde::Serialize, serde::Deserialize)]
1484    #[serde(rename_all = "snake_case")]
1485    #[derive(Clone, PartialEq, ::prost::Message)]
1486    pub struct Query {
1487        #[prost(oneof = "query::Value", tags = "1, 2, 3, 4")]
1488        pub value: ::core::option::Option<query::Value>,
1489    }
1490    /// Nested message and enum types in `Query`.
1491    pub mod query {
1492        #[derive(serde::Serialize, serde::Deserialize)]
1493        #[serde(rename_all = "snake_case")]
1494        #[derive(Clone, PartialEq, ::prost::Oneof)]
1495        pub enum Value {
1496            #[prost(message, tag = "1")]
1497            Logs(super::LogsQuery),
1498            #[prost(message, tag = "2")]
1499            Spans(super::SpansQuery),
1500            #[prost(message, tag = "3")]
1501            Metrics(super::MetricsQuery),
1502            #[prost(message, tag = "4")]
1503            Dataprime(super::DataprimeQuery),
1504        }
1505    }
1506    #[derive(serde::Serialize, serde::Deserialize)]
1507    #[serde(rename_all = "snake_case")]
1508    #[derive(Clone, PartialEq, ::prost::Message)]
1509    pub struct StackDefinition {
1510        #[prost(message, optional, tag = "1")]
1511        pub max_slices_per_stack: ::core::option::Option<i32>,
1512        #[prost(message, optional, tag = "2")]
1513        pub stack_name_template: ::core::option::Option<::prost::alloc::string::String>,
1514    }
1515    #[derive(serde::Serialize, serde::Deserialize)]
1516    #[serde(rename_all = "snake_case")]
1517    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1518    pub struct LabelDefinition {
1519        #[prost(enumeration = "LabelSource", tag = "1")]
1520        pub label_source: i32,
1521        #[prost(message, optional, tag = "2")]
1522        pub is_visible: ::core::option::Option<bool>,
1523        #[prost(message, optional, tag = "3")]
1524        pub show_name: ::core::option::Option<bool>,
1525        #[prost(message, optional, tag = "4")]
1526        pub show_value: ::core::option::Option<bool>,
1527        #[prost(message, optional, tag = "5")]
1528        pub show_percentage: ::core::option::Option<bool>,
1529    }
1530    #[derive(serde::Serialize, serde::Deserialize)]
1531    #[serde(rename_all = "snake_case")]
1532    #[derive(Clone, PartialEq, ::prost::Message)]
1533    pub struct LogsQuery {
1534        #[prost(message, optional, tag = "1")]
1535        pub lucene_query: ::core::option::Option<super::common::LuceneQuery>,
1536        #[prost(message, optional, tag = "2")]
1537        pub aggregation: ::core::option::Option<
1538            super::super::super::common::LogsAggregation,
1539        >,
1540        #[prost(message, repeated, tag = "3")]
1541        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::LogsFilter>,
1542        #[prost(message, repeated, tag = "4")]
1543        pub group_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1544        #[prost(message, optional, tag = "5")]
1545        pub stacked_group_name: ::core::option::Option<::prost::alloc::string::String>,
1546        #[prost(message, repeated, tag = "6")]
1547        pub group_names_fields: ::prost::alloc::vec::Vec<
1548            super::super::super::common::ObservationField,
1549        >,
1550        #[prost(message, optional, tag = "7")]
1551        pub stacked_group_name_field: ::core::option::Option<
1552            super::super::super::common::ObservationField,
1553        >,
1554        #[prost(message, optional, tag = "8")]
1555        pub time_frame: ::core::option::Option<
1556            super::super::super::common::TimeFrameSelect,
1557        >,
1558    }
1559    #[derive(serde::Serialize, serde::Deserialize)]
1560    #[serde(rename_all = "snake_case")]
1561    #[derive(Clone, PartialEq, ::prost::Message)]
1562    pub struct SpansQuery {
1563        #[prost(message, optional, tag = "1")]
1564        pub lucene_query: ::core::option::Option<super::common::LuceneQuery>,
1565        #[prost(message, optional, tag = "2")]
1566        pub aggregation: ::core::option::Option<
1567            super::super::super::common::SpansAggregation,
1568        >,
1569        #[prost(message, repeated, tag = "3")]
1570        pub filters: ::prost::alloc::vec::Vec<
1571            super::super::filters::filter::SpansFilter,
1572        >,
1573        #[prost(message, repeated, tag = "4")]
1574        pub group_names: ::prost::alloc::vec::Vec<
1575            super::super::super::common::SpanField,
1576        >,
1577        #[prost(message, optional, tag = "5")]
1578        pub stacked_group_name: ::core::option::Option<
1579            super::super::super::common::SpanField,
1580        >,
1581        #[prost(message, optional, tag = "6")]
1582        pub time_frame: ::core::option::Option<
1583            super::super::super::common::TimeFrameSelect,
1584        >,
1585        #[prost(message, repeated, tag = "7")]
1586        pub group_names_fields: ::prost::alloc::vec::Vec<
1587            super::super::super::common::SpanObservationField,
1588        >,
1589        #[prost(message, optional, tag = "8")]
1590        pub stacked_group_name_field: ::core::option::Option<
1591            super::super::super::common::SpanObservationField,
1592        >,
1593    }
1594    #[derive(serde::Serialize, serde::Deserialize)]
1595    #[serde(rename_all = "snake_case")]
1596    #[derive(Clone, PartialEq, ::prost::Message)]
1597    pub struct MetricsQuery {
1598        #[prost(message, optional, tag = "1")]
1599        pub promql_query: ::core::option::Option<super::common::PromQlQuery>,
1600        #[prost(message, repeated, tag = "2")]
1601        pub filters: ::prost::alloc::vec::Vec<
1602            super::super::filters::filter::MetricsFilter,
1603        >,
1604        #[prost(message, repeated, tag = "3")]
1605        pub group_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1606        #[prost(message, optional, tag = "4")]
1607        pub stacked_group_name: ::core::option::Option<::prost::alloc::string::String>,
1608        #[prost(enumeration = "super::common::MetricsQueryEditorMode", tag = "5")]
1609        pub editor_mode: i32,
1610        #[prost(message, optional, tag = "6")]
1611        pub time_frame: ::core::option::Option<
1612            super::super::super::common::TimeFrameSelect,
1613        >,
1614        #[prost(enumeration = "super::super::super::common::PromQlQueryType", tag = "7")]
1615        pub promql_query_type: i32,
1616        #[prost(enumeration = "super::common::Aggregation", tag = "8")]
1617        pub aggregation: i32,
1618    }
1619    #[derive(serde::Serialize, serde::Deserialize)]
1620    #[serde(rename_all = "snake_case")]
1621    #[derive(Clone, PartialEq, ::prost::Message)]
1622    pub struct DataprimeQuery {
1623        #[prost(message, optional, tag = "1")]
1624        pub dataprime_query: ::core::option::Option<
1625            super::super::super::common::DataprimeQuery,
1626        >,
1627        #[prost(message, repeated, tag = "2")]
1628        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::Source>,
1629        #[prost(message, repeated, tag = "3")]
1630        pub group_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1631        #[prost(message, optional, tag = "4")]
1632        pub stacked_group_name: ::core::option::Option<::prost::alloc::string::String>,
1633        #[prost(message, optional, tag = "5")]
1634        pub time_frame: ::core::option::Option<
1635            super::super::super::common::TimeFrameSelect,
1636        >,
1637    }
1638    #[derive(serde::Serialize, serde::Deserialize)]
1639    #[serde(rename_all = "snake_case")]
1640    #[derive(
1641        Clone,
1642        Copy,
1643        Debug,
1644        PartialEq,
1645        Eq,
1646        Hash,
1647        PartialOrd,
1648        Ord,
1649        ::prost::Enumeration
1650    )]
1651    #[repr(i32)]
1652    pub enum LabelSource {
1653        Unspecified = 0,
1654        Inner = 1,
1655        Stack = 2,
1656    }
1657    impl LabelSource {
1658        /// String value of the enum field names used in the ProtoBuf definition.
1659        ///
1660        /// The values are not transformed in any way and thus are considered stable
1661        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1662        pub fn as_str_name(&self) -> &'static str {
1663            match self {
1664                Self::Unspecified => "LABEL_SOURCE_UNSPECIFIED",
1665                Self::Inner => "LABEL_SOURCE_INNER",
1666                Self::Stack => "LABEL_SOURCE_STACK",
1667            }
1668        }
1669        /// Creates an enum from field names used in the ProtoBuf definition.
1670        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1671            match value {
1672                "LABEL_SOURCE_UNSPECIFIED" => Some(Self::Unspecified),
1673                "LABEL_SOURCE_INNER" => Some(Self::Inner),
1674                "LABEL_SOURCE_STACK" => Some(Self::Stack),
1675                _ => None,
1676            }
1677        }
1678    }
1679}