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