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

1// This file is @generated by prost-build.
2#[derive(serde::Serialize, serde::Deserialize)]
3#[serde(rename_all = "snake_case")]
4#[derive(Clone, PartialEq, ::prost::Message)]
5pub struct BarChart {
6    #[prost(message, optional, tag = "1")]
7    pub query: ::core::option::Option<bar_chart::Query>,
8    #[prost(message, optional, tag = "2")]
9    pub max_bars_per_chart: ::core::option::Option<i32>,
10    #[prost(message, optional, tag = "3")]
11    pub group_name_template: ::core::option::Option<::prost::alloc::string::String>,
12    #[prost(message, optional, tag = "4")]
13    pub stack_definition: ::core::option::Option<bar_chart::StackDefinition>,
14    #[prost(enumeration = "common::ScaleType", tag = "5")]
15    pub scale_type: i32,
16    #[prost(message, optional, tag = "6")]
17    pub colors_by: ::core::option::Option<common::ColorsBy>,
18    #[prost(message, optional, tag = "7")]
19    pub x_axis: ::core::option::Option<bar_chart::XAxis>,
20    #[prost(enumeration = "common::Unit", tag = "8")]
21    pub unit: i32,
22    #[prost(enumeration = "common::SortByType", tag = "9")]
23    pub sort_by: i32,
24    #[prost(message, optional, tag = "10")]
25    pub color_scheme: ::core::option::Option<::prost::alloc::string::String>,
26    #[prost(enumeration = "common::DataModeType", tag = "11")]
27    pub data_mode_type: i32,
28    #[prost(enumeration = "BarValueDisplay", tag = "12")]
29    pub bar_value_display: i32,
30    #[prost(message, optional, tag = "13")]
31    pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
32    #[prost(message, optional, tag = "14")]
33    pub decimal: ::core::option::Option<i32>,
34    #[prost(message, optional, tag = "15")]
35    pub legend: ::core::option::Option<common::Legend>,
36    #[prost(message, optional, tag = "16")]
37    pub hash_colors: ::core::option::Option<bool>,
38    #[prost(message, optional, tag = "17")]
39    pub y_axis_min: ::core::option::Option<f32>,
40    #[prost(message, optional, tag = "18")]
41    pub y_axis_max: ::core::option::Option<f32>,
42    #[prost(message, optional, tag = "19")]
43    pub decimal_precision: ::core::option::Option<bool>,
44}
45/// Nested message and enum types in `BarChart`.
46pub mod bar_chart {
47    #[derive(serde::Serialize, serde::Deserialize)]
48    #[serde(rename_all = "snake_case")]
49    #[derive(Clone, PartialEq, ::prost::Message)]
50    pub struct Query {
51        #[prost(oneof = "query::Value", tags = "1, 2, 3, 4")]
52        pub value: ::core::option::Option<query::Value>,
53    }
54    /// Nested message and enum types in `Query`.
55    pub mod query {
56        #[derive(serde::Serialize, serde::Deserialize)]
57        #[serde(rename_all = "snake_case")]
58        #[derive(Clone, PartialEq, ::prost::Oneof)]
59        pub enum Value {
60            #[prost(message, tag = "1")]
61            Logs(super::LogsQuery),
62            #[prost(message, tag = "2")]
63            Spans(super::SpansQuery),
64            #[prost(message, tag = "3")]
65            Metrics(super::MetricsQuery),
66            #[prost(message, tag = "4")]
67            Dataprime(super::DataprimeQuery),
68        }
69    }
70    #[derive(serde::Serialize, serde::Deserialize)]
71    #[serde(rename_all = "snake_case")]
72    #[derive(Clone, PartialEq, ::prost::Message)]
73    pub struct StackDefinition {
74        #[prost(message, optional, tag = "1")]
75        pub max_slices_per_bar: ::core::option::Option<i32>,
76        #[prost(message, optional, tag = "2")]
77        pub stack_name_template: ::core::option::Option<::prost::alloc::string::String>,
78    }
79    #[derive(serde::Serialize, serde::Deserialize)]
80    #[serde(rename_all = "snake_case")]
81    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
82    pub struct XAxis {
83        #[prost(oneof = "x_axis::Type", tags = "1, 2")]
84        pub r#type: ::core::option::Option<x_axis::Type>,
85    }
86    /// Nested message and enum types in `XAxis`.
87    pub mod x_axis {
88        #[derive(serde::Serialize, serde::Deserialize)]
89        #[serde(rename_all = "snake_case")]
90        #[derive(Clone, Copy, PartialEq, ::prost::Message)]
91        pub struct XAxisByValue {}
92        #[derive(serde::Serialize, serde::Deserialize)]
93        #[serde(rename_all = "snake_case")]
94        #[derive(Clone, Copy, PartialEq, ::prost::Message)]
95        pub struct XAxisByTime {
96            #[prost(message, optional, tag = "1")]
97            pub interval: ::core::option::Option<::prost_wkt_types::Duration>,
98            #[prost(message, optional, tag = "2")]
99            pub buckets_presented: ::core::option::Option<i32>,
100        }
101        #[derive(serde::Serialize, serde::Deserialize)]
102        #[serde(rename_all = "snake_case")]
103        #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
104        pub enum Type {
105            #[prost(message, tag = "1")]
106            Value(XAxisByValue),
107            #[prost(message, tag = "2")]
108            Time(XAxisByTime),
109        }
110    }
111    #[derive(serde::Serialize, serde::Deserialize)]
112    #[serde(rename_all = "snake_case")]
113    #[derive(Clone, PartialEq, ::prost::Message)]
114    pub struct LogsQuery {
115        #[prost(message, optional, tag = "1")]
116        pub lucene_query: ::core::option::Option<
117            super::super::super::common::LuceneQuery,
118        >,
119        #[prost(message, optional, tag = "2")]
120        pub aggregation: ::core::option::Option<
121            super::super::super::common::LogsAggregation,
122        >,
123        #[prost(message, repeated, tag = "3")]
124        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::LogsFilter>,
125        #[prost(message, repeated, tag = "4")]
126        pub group_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
127        #[prost(message, optional, tag = "5")]
128        pub stacked_group_name: ::core::option::Option<::prost::alloc::string::String>,
129        #[prost(message, repeated, tag = "6")]
130        pub group_names_fields: ::prost::alloc::vec::Vec<
131            super::super::super::common::ObservationField,
132        >,
133        #[prost(message, optional, tag = "7")]
134        pub stacked_group_name_field: ::core::option::Option<
135            super::super::super::common::ObservationField,
136        >,
137        #[prost(message, optional, tag = "8")]
138        pub time_frame: ::core::option::Option<
139            super::super::super::common::TimeFrameSelect,
140        >,
141    }
142    #[derive(serde::Serialize, serde::Deserialize)]
143    #[serde(rename_all = "snake_case")]
144    #[derive(Clone, PartialEq, ::prost::Message)]
145    pub struct SpansQuery {
146        #[prost(message, optional, tag = "1")]
147        pub lucene_query: ::core::option::Option<
148            super::super::super::common::LuceneQuery,
149        >,
150        #[prost(message, optional, tag = "2")]
151        pub aggregation: ::core::option::Option<
152            super::super::super::common::SpansAggregation,
153        >,
154        #[prost(message, repeated, tag = "3")]
155        pub filters: ::prost::alloc::vec::Vec<
156            super::super::filters::filter::SpansFilter,
157        >,
158        #[prost(message, repeated, tag = "4")]
159        pub group_names: ::prost::alloc::vec::Vec<
160            super::super::super::common::SpanField,
161        >,
162        #[prost(message, optional, tag = "5")]
163        pub stacked_group_name: ::core::option::Option<
164            super::super::super::common::SpanField,
165        >,
166        #[prost(message, optional, tag = "6")]
167        pub time_frame: ::core::option::Option<
168            super::super::super::common::TimeFrameSelect,
169        >,
170        #[prost(message, repeated, tag = "7")]
171        pub group_names_fields: ::prost::alloc::vec::Vec<
172            super::super::super::common::SpanObservationField,
173        >,
174        #[prost(message, optional, tag = "8")]
175        pub stacked_group_name_field: ::core::option::Option<
176            super::super::super::common::SpanObservationField,
177        >,
178    }
179    #[derive(serde::Serialize, serde::Deserialize)]
180    #[serde(rename_all = "snake_case")]
181    #[derive(Clone, PartialEq, ::prost::Message)]
182    pub struct MetricsQuery {
183        #[prost(message, optional, tag = "1")]
184        pub promql_query: ::core::option::Option<
185            super::super::super::common::PromQlQuery,
186        >,
187        #[prost(message, repeated, tag = "2")]
188        pub filters: ::prost::alloc::vec::Vec<
189            super::super::filters::filter::MetricsFilter,
190        >,
191        #[prost(message, repeated, tag = "3")]
192        pub group_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
193        #[prost(message, optional, tag = "4")]
194        pub stacked_group_name: ::core::option::Option<::prost::alloc::string::String>,
195        #[prost(enumeration = "super::common::MetricsQueryEditorMode", tag = "5")]
196        pub editor_mode: i32,
197        #[prost(message, optional, tag = "6")]
198        pub time_frame: ::core::option::Option<
199            super::super::super::common::TimeFrameSelect,
200        >,
201        #[prost(enumeration = "super::super::super::common::PromQlQueryType", tag = "7")]
202        pub promql_query_type: i32,
203        #[prost(enumeration = "super::common::Aggregation", tag = "8")]
204        pub aggregation: i32,
205    }
206    #[derive(serde::Serialize, serde::Deserialize)]
207    #[serde(rename_all = "snake_case")]
208    #[derive(Clone, PartialEq, ::prost::Message)]
209    pub struct DataprimeQuery {
210        #[prost(message, optional, tag = "1")]
211        pub dataprime_query: ::core::option::Option<
212            super::super::super::common::DataprimeQuery,
213        >,
214        #[prost(message, repeated, tag = "2")]
215        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::Source>,
216        #[prost(message, repeated, tag = "3")]
217        pub group_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
218        #[prost(message, optional, tag = "4")]
219        pub stacked_group_name: ::core::option::Option<::prost::alloc::string::String>,
220        #[prost(message, optional, tag = "5")]
221        pub time_frame: ::core::option::Option<
222            super::super::super::common::TimeFrameSelect,
223        >,
224    }
225}
226#[derive(serde::Serialize, serde::Deserialize)]
227#[serde(rename_all = "snake_case")]
228#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
229#[repr(i32)]
230pub enum BarValueDisplay {
231    Unspecified = 0,
232    Top = 1,
233    Inside = 2,
234    Both = 3,
235}
236impl BarValueDisplay {
237    /// String value of the enum field names used in the ProtoBuf definition.
238    ///
239    /// The values are not transformed in any way and thus are considered stable
240    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
241    pub fn as_str_name(&self) -> &'static str {
242        match self {
243            Self::Unspecified => "BAR_VALUE_DISPLAY_UNSPECIFIED",
244            Self::Top => "BAR_VALUE_DISPLAY_TOP",
245            Self::Inside => "BAR_VALUE_DISPLAY_INSIDE",
246            Self::Both => "BAR_VALUE_DISPLAY_BOTH",
247        }
248    }
249    /// Creates an enum from field names used in the ProtoBuf definition.
250    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
251        match value {
252            "BAR_VALUE_DISPLAY_UNSPECIFIED" => Some(Self::Unspecified),
253            "BAR_VALUE_DISPLAY_TOP" => Some(Self::Top),
254            "BAR_VALUE_DISPLAY_INSIDE" => Some(Self::Inside),
255            "BAR_VALUE_DISPLAY_BOTH" => Some(Self::Both),
256            _ => None,
257        }
258    }
259}
260#[derive(serde::Serialize, serde::Deserialize)]
261#[serde(rename_all = "snake_case")]
262#[derive(Clone, PartialEq, ::prost::Message)]
263pub struct DataTable {
264    #[prost(message, optional, tag = "1")]
265    pub query: ::core::option::Option<data_table::Query>,
266    #[prost(message, optional, tag = "2")]
267    pub results_per_page: ::core::option::Option<i32>,
268    #[prost(enumeration = "RowStyle", tag = "3")]
269    pub row_style: i32,
270    #[prost(message, repeated, tag = "4")]
271    pub columns: ::prost::alloc::vec::Vec<data_table::Column>,
272    #[prost(message, optional, tag = "5")]
273    pub order_by: ::core::option::Option<super::super::common::OrderingField>,
274    #[prost(enumeration = "common::DataModeType", tag = "11")]
275    pub data_mode_type: i32,
276}
277/// Nested message and enum types in `DataTable`.
278pub mod data_table {
279    #[derive(serde::Serialize, serde::Deserialize)]
280    #[serde(rename_all = "snake_case")]
281    #[derive(Clone, PartialEq, ::prost::Message)]
282    pub struct Query {
283        #[prost(oneof = "query::Value", tags = "1, 2, 3, 4")]
284        pub value: ::core::option::Option<query::Value>,
285    }
286    /// Nested message and enum types in `Query`.
287    pub mod query {
288        #[derive(serde::Serialize, serde::Deserialize)]
289        #[serde(rename_all = "snake_case")]
290        #[derive(Clone, PartialEq, ::prost::Oneof)]
291        pub enum Value {
292            #[prost(message, tag = "1")]
293            Logs(super::LogsQuery),
294            #[prost(message, tag = "2")]
295            Spans(super::SpansQuery),
296            #[prost(message, tag = "3")]
297            Metrics(super::MetricsQuery),
298            #[prost(message, tag = "4")]
299            Dataprime(super::DataprimeQuery),
300        }
301    }
302    #[derive(serde::Serialize, serde::Deserialize)]
303    #[serde(rename_all = "snake_case")]
304    #[derive(Clone, PartialEq, ::prost::Message)]
305    pub struct LogsQuery {
306        #[prost(message, optional, tag = "1")]
307        pub lucene_query: ::core::option::Option<
308            super::super::super::common::LuceneQuery,
309        >,
310        #[prost(message, repeated, tag = "2")]
311        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::LogsFilter>,
312        #[prost(message, optional, tag = "3")]
313        pub grouping: ::core::option::Option<logs_query::Grouping>,
314        #[prost(message, optional, tag = "4")]
315        pub time_frame: ::core::option::Option<
316            super::super::super::common::TimeFrameSelect,
317        >,
318    }
319    /// Nested message and enum types in `LogsQuery`.
320    pub mod logs_query {
321        #[derive(serde::Serialize, serde::Deserialize)]
322        #[serde(rename_all = "snake_case")]
323        #[derive(Clone, PartialEq, ::prost::Message)]
324        pub struct Grouping {
325            #[prost(message, repeated, tag = "1")]
326            pub group_by: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
327            #[prost(message, repeated, tag = "2")]
328            pub aggregations: ::prost::alloc::vec::Vec<Aggregation>,
329            #[prost(message, repeated, tag = "3")]
330            pub group_bys: ::prost::alloc::vec::Vec<
331                super::super::super::super::common::ObservationField,
332            >,
333        }
334        #[derive(serde::Serialize, serde::Deserialize)]
335        #[serde(rename_all = "snake_case")]
336        #[derive(Clone, PartialEq, ::prost::Message)]
337        pub struct Aggregation {
338            #[prost(message, optional, tag = "1")]
339            pub id: ::core::option::Option<::prost::alloc::string::String>,
340            #[prost(message, optional, tag = "2")]
341            pub name: ::core::option::Option<::prost::alloc::string::String>,
342            #[prost(message, optional, tag = "3")]
343            pub is_visible: ::core::option::Option<bool>,
344            #[prost(message, optional, tag = "4")]
345            pub aggregation: ::core::option::Option<
346                super::super::super::super::common::LogsAggregation,
347            >,
348        }
349    }
350    #[derive(serde::Serialize, serde::Deserialize)]
351    #[serde(rename_all = "snake_case")]
352    #[derive(Clone, PartialEq, ::prost::Message)]
353    pub struct SpansQuery {
354        #[prost(message, optional, tag = "1")]
355        pub lucene_query: ::core::option::Option<
356            super::super::super::common::LuceneQuery,
357        >,
358        #[prost(message, repeated, tag = "2")]
359        pub filters: ::prost::alloc::vec::Vec<
360            super::super::filters::filter::SpansFilter,
361        >,
362        #[prost(message, optional, tag = "3")]
363        pub grouping: ::core::option::Option<spans_query::Grouping>,
364        #[prost(message, optional, tag = "4")]
365        pub time_frame: ::core::option::Option<
366            super::super::super::common::TimeFrameSelect,
367        >,
368    }
369    /// Nested message and enum types in `SpansQuery`.
370    pub mod spans_query {
371        #[derive(serde::Serialize, serde::Deserialize)]
372        #[serde(rename_all = "snake_case")]
373        #[derive(Clone, PartialEq, ::prost::Message)]
374        pub struct Grouping {
375            #[prost(message, repeated, tag = "1")]
376            pub group_by: ::prost::alloc::vec::Vec<
377                super::super::super::super::common::SpanField,
378            >,
379            #[prost(message, repeated, tag = "2")]
380            pub aggregations: ::prost::alloc::vec::Vec<Aggregation>,
381            #[prost(message, repeated, tag = "3")]
382            pub group_bys: ::prost::alloc::vec::Vec<
383                super::super::super::super::common::SpanObservationField,
384            >,
385        }
386        #[derive(serde::Serialize, serde::Deserialize)]
387        #[serde(rename_all = "snake_case")]
388        #[derive(Clone, PartialEq, ::prost::Message)]
389        pub struct Aggregation {
390            #[prost(message, optional, tag = "1")]
391            pub id: ::core::option::Option<::prost::alloc::string::String>,
392            #[prost(message, optional, tag = "2")]
393            pub name: ::core::option::Option<::prost::alloc::string::String>,
394            #[prost(message, optional, tag = "3")]
395            pub is_visible: ::core::option::Option<bool>,
396            #[prost(message, optional, tag = "4")]
397            pub aggregation: ::core::option::Option<
398                super::super::super::super::common::SpansAggregation,
399            >,
400        }
401    }
402    #[derive(serde::Serialize, serde::Deserialize)]
403    #[serde(rename_all = "snake_case")]
404    #[derive(Clone, PartialEq, ::prost::Message)]
405    pub struct MetricsQuery {
406        #[prost(message, optional, tag = "1")]
407        pub promql_query: ::core::option::Option<
408            super::super::super::common::PromQlQuery,
409        >,
410        #[prost(message, repeated, tag = "2")]
411        pub filters: ::prost::alloc::vec::Vec<
412            super::super::filters::filter::MetricsFilter,
413        >,
414        #[prost(enumeration = "super::common::MetricsQueryEditorMode", tag = "3")]
415        pub editor_mode: i32,
416        #[prost(message, optional, tag = "4")]
417        pub time_frame: ::core::option::Option<
418            super::super::super::common::TimeFrameSelect,
419        >,
420        #[prost(enumeration = "super::super::super::common::PromQlQueryType", tag = "5")]
421        pub promql_query_type: i32,
422    }
423    #[derive(serde::Serialize, serde::Deserialize)]
424    #[serde(rename_all = "snake_case")]
425    #[derive(Clone, PartialEq, ::prost::Message)]
426    pub struct DataprimeQuery {
427        #[prost(message, optional, tag = "1")]
428        pub dataprime_query: ::core::option::Option<
429            super::super::super::common::DataprimeQuery,
430        >,
431        #[prost(message, repeated, tag = "2")]
432        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::Source>,
433        #[prost(message, optional, tag = "3")]
434        pub time_frame: ::core::option::Option<
435            super::super::super::common::TimeFrameSelect,
436        >,
437    }
438    #[derive(serde::Serialize, serde::Deserialize)]
439    #[serde(rename_all = "snake_case")]
440    #[derive(Clone, PartialEq, ::prost::Message)]
441    pub struct Column {
442        #[prost(message, optional, tag = "1")]
443        pub field: ::core::option::Option<::prost::alloc::string::String>,
444        #[prost(message, optional, tag = "2")]
445        pub width: ::core::option::Option<i32>,
446    }
447}
448#[derive(serde::Serialize, serde::Deserialize)]
449#[serde(rename_all = "snake_case")]
450#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
451#[repr(i32)]
452pub enum RowStyle {
453    Unspecified = 0,
454    OneLine = 1,
455    TwoLine = 2,
456    Condensed = 3,
457    Json = 4,
458    List = 5,
459}
460impl RowStyle {
461    /// String value of the enum field names used in the ProtoBuf definition.
462    ///
463    /// The values are not transformed in any way and thus are considered stable
464    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
465    pub fn as_str_name(&self) -> &'static str {
466        match self {
467            Self::Unspecified => "ROW_STYLE_UNSPECIFIED",
468            Self::OneLine => "ROW_STYLE_ONE_LINE",
469            Self::TwoLine => "ROW_STYLE_TWO_LINE",
470            Self::Condensed => "ROW_STYLE_CONDENSED",
471            Self::Json => "ROW_STYLE_JSON",
472            Self::List => "ROW_STYLE_LIST",
473        }
474    }
475    /// Creates an enum from field names used in the ProtoBuf definition.
476    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
477        match value {
478            "ROW_STYLE_UNSPECIFIED" => Some(Self::Unspecified),
479            "ROW_STYLE_ONE_LINE" => Some(Self::OneLine),
480            "ROW_STYLE_TWO_LINE" => Some(Self::TwoLine),
481            "ROW_STYLE_CONDENSED" => Some(Self::Condensed),
482            "ROW_STYLE_JSON" => Some(Self::Json),
483            "ROW_STYLE_LIST" => Some(Self::List),
484            _ => None,
485        }
486    }
487}
488#[derive(serde::Serialize, serde::Deserialize)]
489#[serde(rename_all = "snake_case")]
490#[derive(Clone, PartialEq, ::prost::Message)]
491pub struct Dynamic {
492    /// Deprecated: Use query_definitions instead. This field was deprecated because of multi-query support.
493    #[deprecated]
494    #[prost(message, optional, tag = "1")]
495    pub query: ::core::option::Option<dynamic::Query>,
496    #[prost(message, optional, tag = "2")]
497    pub time_frame: ::core::option::Option<super::super::common::TimeFrameSelect>,
498    #[prost(enumeration = "dynamic::Interpretation", tag = "3")]
499    pub interpretation: i32,
500    #[prost(message, optional, tag = "4")]
501    pub visualization: ::core::option::Option<dynamic::Visualization>,
502    #[prost(message, repeated, tag = "5")]
503    pub query_definitions: ::prost::alloc::vec::Vec<dynamic::QueryDefinition>,
504}
505/// Nested message and enum types in `Dynamic`.
506pub mod dynamic {
507    #[derive(serde::Serialize, serde::Deserialize)]
508    #[serde(rename_all = "snake_case")]
509    #[derive(Clone, PartialEq, ::prost::Message)]
510    pub struct QueryDefinition {
511        #[prost(message, optional, tag = "1")]
512        pub id: ::core::option::Option<::prost::alloc::string::String>,
513        #[prost(message, optional, tag = "2")]
514        pub query: ::core::option::Option<Query>,
515        #[prost(message, optional, tag = "3")]
516        pub name: ::core::option::Option<::prost::alloc::string::String>,
517    }
518    #[derive(serde::Serialize, serde::Deserialize)]
519    #[serde(rename_all = "snake_case")]
520    #[derive(Clone, PartialEq, ::prost::Message)]
521    pub struct Query {
522        #[prost(oneof = "query::Value", tags = "1, 2, 3, 4")]
523        pub value: ::core::option::Option<query::Value>,
524    }
525    /// Nested message and enum types in `Query`.
526    pub mod query {
527        #[derive(serde::Serialize, serde::Deserialize)]
528        #[serde(rename_all = "snake_case")]
529        #[derive(Clone, PartialEq, ::prost::Message)]
530        pub struct Logs {
531            #[prost(message, optional, tag = "1")]
532            pub lucene_query: ::core::option::Option<
533                super::super::super::super::common::LuceneQuery,
534            >,
535            #[prost(enumeration = "super::super::common::DataModeType", tag = "2")]
536            pub data_mode_type: i32,
537            #[prost(message, repeated, tag = "3")]
538            pub filters: ::prost::alloc::vec::Vec<
539                super::super::super::filters::filter::LogsFilter,
540            >,
541            #[prost(message, repeated, tag = "4")]
542            pub group_by: ::prost::alloc::vec::Vec<
543                super::super::super::super::common::ObservationField,
544            >,
545            #[prost(message, repeated, tag = "5")]
546            pub aggregation: ::prost::alloc::vec::Vec<
547                super::super::super::super::common::LogsAggregation,
548            >,
549        }
550        #[derive(serde::Serialize, serde::Deserialize)]
551        #[serde(rename_all = "snake_case")]
552        #[derive(Clone, PartialEq, ::prost::Message)]
553        pub struct Spans {
554            #[prost(message, optional, tag = "1")]
555            pub lucene_query: ::core::option::Option<
556                super::super::super::super::common::LuceneQuery,
557            >,
558            #[prost(enumeration = "super::super::common::DataModeType", tag = "2")]
559            pub data_mode_type: i32,
560            #[prost(message, repeated, tag = "3")]
561            pub filters: ::prost::alloc::vec::Vec<
562                super::super::super::filters::filter::SpansFilter,
563            >,
564            #[prost(message, repeated, tag = "4")]
565            pub group_by: ::prost::alloc::vec::Vec<
566                super::super::super::super::common::SpanObservationField,
567            >,
568            #[prost(message, repeated, tag = "5")]
569            pub aggregation: ::prost::alloc::vec::Vec<
570                super::super::super::super::common::LogsAggregation,
571            >,
572        }
573        #[derive(serde::Serialize, serde::Deserialize)]
574        #[serde(rename_all = "snake_case")]
575        #[derive(Clone, PartialEq, ::prost::Message)]
576        pub struct Metrics {
577            #[prost(message, optional, tag = "1")]
578            pub promql_query: ::core::option::Option<
579                super::super::super::super::common::PromQlQuery,
580            >,
581            #[prost(
582                enumeration = "super::super::super::super::common::PromQlQueryType",
583                tag = "2"
584            )]
585            pub promql_query_type: i32,
586            #[prost(
587                enumeration = "super::super::common::MetricsQueryEditorMode",
588                tag = "3"
589            )]
590            pub editor_mode: i32,
591            #[prost(
592                enumeration = "super::super::super::super::common::MetricsSeriesLimitType",
593                tag = "4"
594            )]
595            pub series_limit_type: i32,
596        }
597        #[derive(serde::Serialize, serde::Deserialize)]
598        #[serde(rename_all = "snake_case")]
599        #[derive(Clone, PartialEq, ::prost::Message)]
600        pub struct Dataprime {
601            #[prost(message, optional, tag = "1")]
602            pub dataprime_query: ::core::option::Option<
603                super::super::super::super::common::DataprimeQuery,
604            >,
605            #[prost(enumeration = "super::super::common::DataModeType", tag = "2")]
606            pub data_mode_type: i32,
607        }
608        #[derive(serde::Serialize, serde::Deserialize)]
609        #[serde(rename_all = "snake_case")]
610        #[derive(Clone, PartialEq, ::prost::Oneof)]
611        pub enum Value {
612            #[prost(message, tag = "1")]
613            Logs(Logs),
614            #[prost(message, tag = "2")]
615            Spans(Spans),
616            #[prost(message, tag = "3")]
617            Metrics(Metrics),
618            #[prost(message, tag = "4")]
619            Dataprime(Dataprime),
620        }
621    }
622    #[derive(serde::Serialize, serde::Deserialize)]
623    #[serde(rename_all = "snake_case")]
624    #[derive(Clone, PartialEq, ::prost::Message)]
625    pub struct Visualization {
626        #[prost(
627            oneof = "visualization::Value",
628            tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11"
629        )]
630        pub value: ::core::option::Option<visualization::Value>,
631    }
632    /// Nested message and enum types in `Visualization`.
633    pub mod visualization {
634        #[derive(serde::Serialize, serde::Deserialize)]
635        #[serde(rename_all = "snake_case")]
636        #[derive(Clone, PartialEq, ::prost::Message)]
637        pub struct Table {
638            #[prost(message, repeated, tag = "1")]
639            pub columns: ::prost::alloc::vec::Vec<table::Column>,
640            #[prost(message, repeated, tag = "2")]
641            pub rules: ::prost::alloc::vec::Vec<table::Rule>,
642        }
643        /// Nested message and enum types in `Table`.
644        pub mod table {
645            #[derive(serde::Serialize, serde::Deserialize)]
646            #[serde(rename_all = "snake_case")]
647            #[derive(Clone, PartialEq, ::prost::Message)]
648            pub struct Column {
649                #[prost(message, optional, tag = "1")]
650                pub field: ::core::option::Option<
651                    super::super::super::super::super::common::ObservationField,
652                >,
653            }
654            #[derive(serde::Serialize, serde::Deserialize)]
655            #[serde(rename_all = "snake_case")]
656            #[derive(Clone, PartialEq, ::prost::Message)]
657            pub struct Rule {
658                #[prost(message, optional, tag = "1")]
659                pub id: ::core::option::Option<super::super::super::super::super::Uuid>,
660                #[prost(message, optional, tag = "2")]
661                pub name: ::core::option::Option<::prost::alloc::string::String>,
662                #[prost(message, optional, tag = "3")]
663                pub description: ::core::option::Option<::prost::alloc::string::String>,
664                #[prost(message, optional, tag = "4")]
665                pub rule_scope: ::core::option::Option<RuleScope>,
666                #[prost(message, repeated, tag = "5")]
667                pub properties: ::prost::alloc::vec::Vec<Property>,
668            }
669            #[derive(serde::Serialize, serde::Deserialize)]
670            #[serde(rename_all = "snake_case")]
671            #[derive(Clone, PartialEq, ::prost::Message)]
672            pub struct RuleScope {
673                #[prost(oneof = "rule_scope::Value", tags = "1, 2, 3")]
674                pub value: ::core::option::Option<rule_scope::Value>,
675            }
676            /// Nested message and enum types in `RuleScope`.
677            pub mod rule_scope {
678                #[derive(serde::Serialize, serde::Deserialize)]
679                #[serde(rename_all = "snake_case")]
680                #[derive(Clone, PartialEq, ::prost::Oneof)]
681                pub enum Value {
682                    #[prost(message, tag = "1")]
683                    Field(
684                        super::super::super::super::super::super::common::ObservationField,
685                    ),
686                    #[prost(message, tag = "2")]
687                    Regex(::prost::alloc::string::String),
688                    #[prost(enumeration = "super::FieldDataType", tag = "3")]
689                    FieldType(i32),
690                }
691            }
692            #[derive(serde::Serialize, serde::Deserialize)]
693            #[serde(rename_all = "snake_case")]
694            #[derive(Clone, PartialEq, ::prost::Message)]
695            pub struct Property {
696                #[prost(message, optional, tag = "1")]
697                pub id: ::core::option::Option<super::super::super::super::super::Uuid>,
698                #[prost(message, optional, tag = "2")]
699                pub definition: ::core::option::Option<PropertyDefinition>,
700            }
701            #[derive(serde::Serialize, serde::Deserialize)]
702            #[serde(rename_all = "snake_case")]
703            #[derive(Clone, PartialEq, ::prost::Message)]
704            pub struct PropertyDefinition {
705                #[prost(
706                    oneof = "property_definition::Value",
707                    tags = "1, 2, 3, 4, 5, 6, 7"
708                )]
709                pub value: ::core::option::Option<property_definition::Value>,
710            }
711            /// Nested message and enum types in `PropertyDefinition`.
712            pub mod property_definition {
713                #[derive(serde::Serialize, serde::Deserialize)]
714                #[serde(rename_all = "snake_case")]
715                #[derive(Clone, PartialEq, ::prost::Oneof)]
716                pub enum Value {
717                    #[prost(message, tag = "1")]
718                    Thresholds(super::PropertyThresholds),
719                    #[prost(
720                        enumeration = "super::super::super::super::common::TextAlignment",
721                        tag = "2"
722                    )]
723                    Alignment(i32),
724                    #[prost(message, tag = "3")]
725                    Units(super::super::PropertyUnits),
726                    #[prost(message, tag = "4")]
727                    RegexExtract(::prost::alloc::string::String),
728                    #[prost(message, tag = "5")]
729                    Link(super::super::PropertyLinks),
730                    #[prost(message, tag = "6")]
731                    ValuesAlias(::prost::alloc::string::String),
732                    #[prost(message, tag = "7")]
733                    ValuesMapping(super::super::PropertyValuesMapping),
734                }
735            }
736            #[derive(serde::Serialize, serde::Deserialize)]
737            #[serde(rename_all = "snake_case")]
738            #[derive(Clone, PartialEq, ::prost::Message)]
739            pub struct PropertyThresholds {
740                #[prost(message, repeated, tag = "1")]
741                pub values: ::prost::alloc::vec::Vec<
742                    super::super::super::common::Threshold,
743                >,
744                #[prost(
745                    enumeration = "super::super::super::common::ThresholdType",
746                    tag = "2"
747                )]
748                pub r#type: i32,
749                #[prost(message, optional, tag = "3")]
750                pub min: ::core::option::Option<f64>,
751                #[prost(message, optional, tag = "4")]
752                pub max: ::core::option::Option<f64>,
753            }
754            #[derive(serde::Serialize, serde::Deserialize)]
755            #[serde(rename_all = "snake_case")]
756            #[derive(
757                Clone,
758                Copy,
759                Debug,
760                PartialEq,
761                Eq,
762                Hash,
763                PartialOrd,
764                Ord,
765                ::prost::Enumeration
766            )]
767            #[repr(i32)]
768            pub enum FieldDataType {
769                Unspecified = 0,
770                Number = 1,
771                String = 2,
772                Boolean = 3,
773                Timestamp = 4,
774                Object = 5,
775                Array = 6,
776                Regex = 7,
777                Union = 8,
778                Enum = 9,
779            }
780            impl FieldDataType {
781                /// String value of the enum field names used in the ProtoBuf definition.
782                ///
783                /// The values are not transformed in any way and thus are considered stable
784                /// (if the ProtoBuf definition does not change) and safe for programmatic use.
785                pub fn as_str_name(&self) -> &'static str {
786                    match self {
787                        Self::Unspecified => "FIELD_DATA_TYPE_UNSPECIFIED",
788                        Self::Number => "FIELD_DATA_TYPE_NUMBER",
789                        Self::String => "FIELD_DATA_TYPE_STRING",
790                        Self::Boolean => "FIELD_DATA_TYPE_BOOLEAN",
791                        Self::Timestamp => "FIELD_DATA_TYPE_TIMESTAMP",
792                        Self::Object => "FIELD_DATA_TYPE_OBJECT",
793                        Self::Array => "FIELD_DATA_TYPE_ARRAY",
794                        Self::Regex => "FIELD_DATA_TYPE_REGEX",
795                        Self::Union => "FIELD_DATA_TYPE_UNION",
796                        Self::Enum => "FIELD_DATA_TYPE_ENUM",
797                    }
798                }
799                /// Creates an enum from field names used in the ProtoBuf definition.
800                pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
801                    match value {
802                        "FIELD_DATA_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
803                        "FIELD_DATA_TYPE_NUMBER" => Some(Self::Number),
804                        "FIELD_DATA_TYPE_STRING" => Some(Self::String),
805                        "FIELD_DATA_TYPE_BOOLEAN" => Some(Self::Boolean),
806                        "FIELD_DATA_TYPE_TIMESTAMP" => Some(Self::Timestamp),
807                        "FIELD_DATA_TYPE_OBJECT" => Some(Self::Object),
808                        "FIELD_DATA_TYPE_ARRAY" => Some(Self::Array),
809                        "FIELD_DATA_TYPE_REGEX" => Some(Self::Regex),
810                        "FIELD_DATA_TYPE_UNION" => Some(Self::Union),
811                        "FIELD_DATA_TYPE_ENUM" => Some(Self::Enum),
812                        _ => None,
813                    }
814                }
815            }
816        }
817        #[derive(serde::Serialize, serde::Deserialize)]
818        #[serde(rename_all = "snake_case")]
819        #[derive(Clone, PartialEq, ::prost::Message)]
820        pub struct PropertyUnits {
821            #[prost(message, optional, tag = "1")]
822            pub min: ::core::option::Option<f64>,
823            #[prost(message, optional, tag = "2")]
824            pub max: ::core::option::Option<f64>,
825            #[prost(enumeration = "super::super::common::Unit", tag = "3")]
826            pub unit: i32,
827            #[prost(message, optional, tag = "4")]
828            pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
829            #[prost(message, optional, tag = "5")]
830            pub decimal_precision: ::core::option::Option<i32>,
831            #[prost(message, optional, tag = "6")]
832            pub allow_abbreviation: ::core::option::Option<bool>,
833        }
834        #[derive(serde::Serialize, serde::Deserialize)]
835        #[serde(rename_all = "snake_case")]
836        #[derive(Clone, PartialEq, ::prost::Message)]
837        pub struct PropertyLinks {
838            #[prost(message, repeated, tag = "1")]
839            pub actions: ::prost::alloc::vec::Vec<property_links::LinkAction>,
840        }
841        /// Nested message and enum types in `PropertyLinks`.
842        pub mod property_links {
843            #[derive(serde::Serialize, serde::Deserialize)]
844            #[serde(rename_all = "snake_case")]
845            #[derive(Clone, PartialEq, ::prost::Message)]
846            pub struct LinkAction {
847                #[prost(message, optional, tag = "1")]
848                pub id: ::core::option::Option<super::super::super::super::super::Uuid>,
849                #[prost(message, optional, tag = "2")]
850                pub name: ::core::option::Option<::prost::alloc::string::String>,
851                #[prost(message, optional, tag = "3")]
852                pub url: ::core::option::Option<::prost::alloc::string::String>,
853                #[prost(message, optional, tag = "4")]
854                pub should_open_in_new_window: ::core::option::Option<bool>,
855            }
856        }
857        #[derive(serde::Serialize, serde::Deserialize)]
858        #[serde(rename_all = "snake_case")]
859        #[derive(Clone, PartialEq, ::prost::Message)]
860        pub struct PropertyValuesMapping {
861            #[prost(message, repeated, tag = "1")]
862            pub mappings: ::prost::alloc::vec::Vec<
863                property_values_mapping::ValueMapping,
864            >,
865        }
866        /// Nested message and enum types in `PropertyValuesMapping`.
867        pub mod property_values_mapping {
868            #[derive(serde::Serialize, serde::Deserialize)]
869            #[serde(rename_all = "snake_case")]
870            #[derive(Clone, PartialEq, ::prost::Message)]
871            pub struct ValueMapping {
872                #[prost(enumeration = "ValuesMappingType", tag = "1")]
873                pub r#type: i32,
874                #[prost(message, optional, tag = "2")]
875                pub input_value: ::core::option::Option<::prost::alloc::string::String>,
876                #[prost(message, optional, tag = "3")]
877                pub replace_value: ::core::option::Option<
878                    ::prost::alloc::string::String,
879                >,
880            }
881            #[derive(serde::Serialize, serde::Deserialize)]
882            #[serde(rename_all = "snake_case")]
883            #[derive(
884                Clone,
885                Copy,
886                Debug,
887                PartialEq,
888                Eq,
889                Hash,
890                PartialOrd,
891                Ord,
892                ::prost::Enumeration
893            )]
894            #[repr(i32)]
895            pub enum ValuesMappingType {
896                Unspecified = 0,
897                Value = 1,
898                Regex = 2,
899            }
900            impl ValuesMappingType {
901                /// String value of the enum field names used in the ProtoBuf definition.
902                ///
903                /// The values are not transformed in any way and thus are considered stable
904                /// (if the ProtoBuf definition does not change) and safe for programmatic use.
905                pub fn as_str_name(&self) -> &'static str {
906                    match self {
907                        Self::Unspecified => "VALUES_MAPPING_TYPE_UNSPECIFIED",
908                        Self::Value => "VALUES_MAPPING_TYPE_VALUE",
909                        Self::Regex => "VALUES_MAPPING_TYPE_REGEX",
910                    }
911                }
912                /// Creates an enum from field names used in the ProtoBuf definition.
913                pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
914                    match value {
915                        "VALUES_MAPPING_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
916                        "VALUES_MAPPING_TYPE_VALUE" => Some(Self::Value),
917                        "VALUES_MAPPING_TYPE_REGEX" => Some(Self::Regex),
918                        _ => None,
919                    }
920                }
921            }
922        }
923        #[derive(serde::Serialize, serde::Deserialize)]
924        #[serde(rename_all = "snake_case")]
925        #[derive(Clone, PartialEq, ::prost::Message)]
926        pub struct TimeSeriesLines {
927            #[prost(message, optional, tag = "1")]
928            pub temporal_field: ::core::option::Option<
929                super::super::super::super::common::ObservationField,
930            >,
931            #[prost(message, repeated, tag = "2")]
932            pub value_fields: ::prost::alloc::vec::Vec<
933                super::super::super::super::common::ObservationField,
934            >,
935            #[prost(message, repeated, tag = "3")]
936            pub category_fields: ::prost::alloc::vec::Vec<
937                super::super::super::super::common::ObservationField,
938            >,
939            #[prost(message, optional, tag = "4")]
940            pub legend: ::core::option::Option<super::super::common::Legend>,
941            #[prost(message, optional, tag = "5")]
942            pub tooltip: ::core::option::Option<TimeSeriesTooltip>,
943            #[prost(enumeration = "time_series_lines::StackedLine", tag = "6")]
944            pub stacked_line: i32,
945            #[prost(message, optional, tag = "7")]
946            pub connect_nulls: ::core::option::Option<bool>,
947            #[prost(message, optional, tag = "8")]
948            pub series_name_template: ::core::option::Option<
949                ::prost::alloc::string::String,
950            >,
951            #[prost(message, optional, tag = "9")]
952            pub series_count_limit: ::core::option::Option<i64>,
953            #[prost(enumeration = "super::super::common::Unit", tag = "10")]
954            pub unit: i32,
955            #[prost(message, optional, tag = "11")]
956            pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
957            #[prost(enumeration = "super::super::common::ScaleType", tag = "12")]
958            pub scale_type: i32,
959            #[prost(message, optional, tag = "13")]
960            pub color_scheme: ::core::option::Option<::prost::alloc::string::String>,
961            #[prost(message, optional, tag = "14")]
962            pub hash_colors: ::core::option::Option<bool>,
963            #[prost(message, optional, tag = "15")]
964            pub decimal_precision: ::core::option::Option<i32>,
965            #[prost(message, optional, tag = "17")]
966            pub allow_abbreviation: ::core::option::Option<bool>,
967            #[prost(message, optional, tag = "18")]
968            pub y_axis_min: ::core::option::Option<f32>,
969            #[prost(message, optional, tag = "19")]
970            pub y_axis_max: ::core::option::Option<f32>,
971        }
972        /// Nested message and enum types in `TimeSeriesLines`.
973        pub mod time_series_lines {
974            #[derive(serde::Serialize, serde::Deserialize)]
975            #[serde(rename_all = "snake_case")]
976            #[derive(
977                Clone,
978                Copy,
979                Debug,
980                PartialEq,
981                Eq,
982                Hash,
983                PartialOrd,
984                Ord,
985                ::prost::Enumeration
986            )]
987            #[repr(i32)]
988            pub enum StackedLine {
989                Unspecified = 0,
990                Absolute = 1,
991                Relative = 2,
992            }
993            impl StackedLine {
994                /// String value of the enum field names used in the ProtoBuf definition.
995                ///
996                /// The values are not transformed in any way and thus are considered stable
997                /// (if the ProtoBuf definition does not change) and safe for programmatic use.
998                pub fn as_str_name(&self) -> &'static str {
999                    match self {
1000                        Self::Unspecified => "STACKED_LINE_UNSPECIFIED",
1001                        Self::Absolute => "STACKED_LINE_ABSOLUTE",
1002                        Self::Relative => "STACKED_LINE_RELATIVE",
1003                    }
1004                }
1005                /// Creates an enum from field names used in the ProtoBuf definition.
1006                pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1007                    match value {
1008                        "STACKED_LINE_UNSPECIFIED" => Some(Self::Unspecified),
1009                        "STACKED_LINE_ABSOLUTE" => Some(Self::Absolute),
1010                        "STACKED_LINE_RELATIVE" => Some(Self::Relative),
1011                        _ => None,
1012                    }
1013                }
1014            }
1015        }
1016        #[derive(serde::Serialize, serde::Deserialize)]
1017        #[serde(rename_all = "snake_case")]
1018        #[derive(Clone, PartialEq, ::prost::Message)]
1019        pub struct TimeSeriesBars {
1020            #[prost(message, optional, tag = "1")]
1021            pub temporal_field: ::core::option::Option<
1022                super::super::super::super::common::ObservationField,
1023            >,
1024            #[prost(message, repeated, tag = "2")]
1025            pub value_fields: ::prost::alloc::vec::Vec<
1026                super::super::super::super::common::ObservationField,
1027            >,
1028            #[prost(message, repeated, tag = "3")]
1029            pub category_fields: ::prost::alloc::vec::Vec<
1030                super::super::super::super::common::ObservationField,
1031            >,
1032            #[prost(message, optional, tag = "4")]
1033            pub legend: ::core::option::Option<super::super::common::Legend>,
1034            #[prost(message, optional, tag = "5")]
1035            pub tooltip: ::core::option::Option<TimeSeriesTooltip>,
1036            #[prost(message, optional, tag = "6")]
1037            pub series_name_template: ::core::option::Option<
1038                ::prost::alloc::string::String,
1039            >,
1040            #[prost(message, optional, tag = "7")]
1041            pub max_slices_per_bar: ::core::option::Option<i32>,
1042            #[prost(enumeration = "super::super::common::Unit", tag = "8")]
1043            pub unit: i32,
1044            #[prost(message, optional, tag = "9")]
1045            pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
1046            #[prost(enumeration = "super::super::common::ScaleType", tag = "10")]
1047            pub scale_type: i32,
1048            #[prost(message, optional, tag = "11")]
1049            pub color_scheme: ::core::option::Option<::prost::alloc::string::String>,
1050            #[prost(message, optional, tag = "12")]
1051            pub hash_colors: ::core::option::Option<bool>,
1052            #[prost(message, optional, tag = "13")]
1053            pub decimal_precision: ::core::option::Option<i32>,
1054            #[prost(message, optional, tag = "14")]
1055            pub allow_abbreviation: ::core::option::Option<bool>,
1056            #[prost(message, optional, tag = "15")]
1057            pub y_axis_min: ::core::option::Option<f32>,
1058            #[prost(message, optional, tag = "16")]
1059            pub y_axis_max: ::core::option::Option<f32>,
1060            #[prost(enumeration = "BarValueDisplay", tag = "17")]
1061            pub bar_value_display: i32,
1062            #[prost(enumeration = "super::super::common::SortByType", tag = "18")]
1063            pub sort_by: i32,
1064        }
1065        #[derive(serde::Serialize, serde::Deserialize)]
1066        #[serde(rename_all = "snake_case")]
1067        #[derive(Clone, PartialEq, ::prost::Message)]
1068        pub struct Stat {
1069            #[deprecated]
1070            #[prost(message, optional, tag = "1")]
1071            pub value_field: ::core::option::Option<
1072                super::super::super::super::common::ObservationField,
1073            >,
1074            #[prost(message, repeated, tag = "15")]
1075            pub value_fields: ::prost::alloc::vec::Vec<
1076                super::super::super::super::common::ObservationField,
1077            >,
1078            #[prost(message, repeated, tag = "2")]
1079            pub category_fields: ::prost::alloc::vec::Vec<
1080                super::super::super::super::common::ObservationField,
1081            >,
1082            #[prost(message, optional, tag = "3")]
1083            pub min: ::core::option::Option<f64>,
1084            #[prost(message, optional, tag = "4")]
1085            pub max: ::core::option::Option<f64>,
1086            #[prost(enumeration = "super::super::common::Unit", tag = "5")]
1087            pub unit: i32,
1088            #[prost(message, optional, tag = "6")]
1089            pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
1090            #[prost(enumeration = "super::super::common::ThresholdType", tag = "7")]
1091            pub threshold_type: i32,
1092            #[prost(message, repeated, tag = "8")]
1093            pub thresholds: ::prost::alloc::vec::Vec<super::super::common::Threshold>,
1094            #[prost(message, optional, tag = "9")]
1095            pub legend: ::core::option::Option<super::super::common::Legend>,
1096            #[prost(enumeration = "super::super::common::LegendBy", tag = "10")]
1097            pub legend_by: i32,
1098            #[prost(message, optional, tag = "11")]
1099            pub decimal_precision: ::core::option::Option<i32>,
1100            #[prost(message, optional, tag = "12")]
1101            pub allow_abbreviation: ::core::option::Option<bool>,
1102            #[prost(message, optional, tag = "13")]
1103            pub display_series_name: ::core::option::Option<bool>,
1104            #[prost(enumeration = "super::super::common::ThresholdBy", tag = "14")]
1105            pub threshold_by: i32,
1106        }
1107        #[derive(serde::Serialize, serde::Deserialize)]
1108        #[serde(rename_all = "snake_case")]
1109        #[derive(Clone, PartialEq, ::prost::Message)]
1110        pub struct Gauge {
1111            #[deprecated]
1112            #[prost(message, optional, tag = "1")]
1113            pub value_field: ::core::option::Option<
1114                super::super::super::super::common::ObservationField,
1115            >,
1116            #[prost(message, repeated, tag = "16")]
1117            pub value_fields: ::prost::alloc::vec::Vec<
1118                super::super::super::super::common::ObservationField,
1119            >,
1120            #[prost(message, repeated, tag = "2")]
1121            pub category_fields: ::prost::alloc::vec::Vec<
1122                super::super::super::super::common::ObservationField,
1123            >,
1124            #[prost(message, optional, tag = "3")]
1125            pub min: ::core::option::Option<f64>,
1126            #[prost(message, optional, tag = "4")]
1127            pub max: ::core::option::Option<f64>,
1128            #[prost(enumeration = "super::super::common::Unit", tag = "5")]
1129            pub unit: i32,
1130            #[prost(message, optional, tag = "6")]
1131            pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
1132            #[prost(enumeration = "super::super::common::ThresholdType", tag = "7")]
1133            pub threshold_type: i32,
1134            #[prost(message, repeated, tag = "8")]
1135            pub thresholds: ::prost::alloc::vec::Vec<super::super::common::Threshold>,
1136            #[prost(message, optional, tag = "9")]
1137            pub legend: ::core::option::Option<super::super::common::Legend>,
1138            #[prost(enumeration = "super::super::common::LegendBy", tag = "10")]
1139            pub legend_by: i32,
1140            #[prost(message, optional, tag = "11")]
1141            pub decimal_precision: ::core::option::Option<i32>,
1142            #[prost(message, optional, tag = "12")]
1143            pub allow_abbreviation: ::core::option::Option<bool>,
1144            #[prost(message, optional, tag = "13")]
1145            pub show_inner_arc: ::core::option::Option<bool>,
1146            #[prost(message, optional, tag = "14")]
1147            pub show_outer_arc: ::core::option::Option<bool>,
1148            #[prost(message, optional, tag = "15")]
1149            pub display_series_name: ::core::option::Option<bool>,
1150        }
1151        #[derive(serde::Serialize, serde::Deserialize)]
1152        #[serde(rename_all = "snake_case")]
1153        #[derive(Clone, PartialEq, ::prost::Message)]
1154        pub struct HexagonBins {
1155            #[prost(message, optional, tag = "1")]
1156            pub value_field: ::core::option::Option<
1157                super::super::super::super::common::ObservationField,
1158            >,
1159            #[prost(message, repeated, tag = "2")]
1160            pub category_fields: ::prost::alloc::vec::Vec<
1161                super::super::super::super::common::ObservationField,
1162            >,
1163            #[prost(message, optional, tag = "3")]
1164            pub min: ::core::option::Option<f64>,
1165            #[prost(message, optional, tag = "4")]
1166            pub max: ::core::option::Option<f64>,
1167            #[prost(enumeration = "super::super::common::Unit", tag = "5")]
1168            pub unit: i32,
1169            #[prost(message, optional, tag = "6")]
1170            pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
1171            #[prost(enumeration = "super::super::common::ThresholdType", tag = "7")]
1172            pub threshold_type: i32,
1173            #[prost(message, repeated, tag = "8")]
1174            pub thresholds: ::prost::alloc::vec::Vec<super::super::common::Threshold>,
1175            #[prost(message, optional, tag = "9")]
1176            pub legend: ::core::option::Option<super::super::common::Legend>,
1177            #[prost(enumeration = "super::super::common::LegendBy", tag = "10")]
1178            pub legend_by: i32,
1179            #[prost(message, optional, tag = "11")]
1180            pub decimal_precision: ::core::option::Option<i32>,
1181            #[prost(message, optional, tag = "12")]
1182            pub allow_abbreviation: ::core::option::Option<bool>,
1183        }
1184        #[derive(serde::Serialize, serde::Deserialize)]
1185        #[serde(rename_all = "snake_case")]
1186        #[derive(Clone, PartialEq, ::prost::Message)]
1187        pub struct PieChart {
1188            #[prost(message, optional, tag = "1")]
1189            pub value_field: ::core::option::Option<
1190                super::super::super::super::common::ObservationField,
1191            >,
1192            #[prost(message, repeated, tag = "2")]
1193            pub category_fields: ::prost::alloc::vec::Vec<
1194                super::super::super::super::common::ObservationField,
1195            >,
1196            #[prost(message, repeated, tag = "3")]
1197            pub sub_category_fields: ::prost::alloc::vec::Vec<
1198                super::super::super::super::common::ObservationField,
1199            >,
1200            #[prost(message, optional, tag = "4")]
1201            pub max_slices_per_chart: ::core::option::Option<i32>,
1202            #[prost(message, optional, tag = "5")]
1203            pub min_slice_percentage: ::core::option::Option<i32>,
1204            #[prost(message, optional, tag = "6")]
1205            pub max_slices_per_stack: ::core::option::Option<i32>,
1206            #[prost(message, optional, tag = "7")]
1207            pub stack_name_template: ::core::option::Option<
1208                ::prost::alloc::string::String,
1209            >,
1210            #[prost(message, optional, tag = "8")]
1211            pub label_definition: ::core::option::Option<pie_chart::LabelDefinition>,
1212            #[prost(message, optional, tag = "9")]
1213            pub group_name_template: ::core::option::Option<
1214                ::prost::alloc::string::String,
1215            >,
1216            #[prost(enumeration = "super::super::common::Unit", tag = "10")]
1217            pub unit: i32,
1218            #[prost(message, optional, tag = "11")]
1219            pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
1220            #[prost(message, optional, tag = "12")]
1221            pub color_scheme: ::core::option::Option<::prost::alloc::string::String>,
1222            #[prost(message, optional, tag = "13")]
1223            pub hash_colors: ::core::option::Option<bool>,
1224            #[prost(message, optional, tag = "14")]
1225            pub decimal_precision: ::core::option::Option<i32>,
1226            #[prost(message, optional, tag = "15")]
1227            pub allow_abbreviation: ::core::option::Option<bool>,
1228            #[prost(message, optional, tag = "16")]
1229            pub legend: ::core::option::Option<super::super::common::Legend>,
1230            #[prost(message, optional, tag = "17")]
1231            pub show_total: ::core::option::Option<bool>,
1232        }
1233        /// Nested message and enum types in `PieChart`.
1234        pub mod pie_chart {
1235            #[derive(serde::Serialize, serde::Deserialize)]
1236            #[serde(rename_all = "snake_case")]
1237            #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1238            pub struct LabelDefinition {
1239                #[prost(enumeration = "LabelSource", tag = "1")]
1240                pub label_source: i32,
1241                #[prost(message, optional, tag = "2")]
1242                pub is_visible: ::core::option::Option<bool>,
1243                #[prost(message, optional, tag = "3")]
1244                pub show_name: ::core::option::Option<bool>,
1245                #[prost(message, optional, tag = "4")]
1246                pub show_value: ::core::option::Option<bool>,
1247                #[prost(message, optional, tag = "5")]
1248                pub show_percentage: ::core::option::Option<bool>,
1249            }
1250            #[derive(serde::Serialize, serde::Deserialize)]
1251            #[serde(rename_all = "snake_case")]
1252            #[derive(
1253                Clone,
1254                Copy,
1255                Debug,
1256                PartialEq,
1257                Eq,
1258                Hash,
1259                PartialOrd,
1260                Ord,
1261                ::prost::Enumeration
1262            )]
1263            #[repr(i32)]
1264            pub enum LabelSource {
1265                Unspecified = 0,
1266                Inner = 1,
1267                Stack = 2,
1268            }
1269            impl LabelSource {
1270                /// String value of the enum field names used in the ProtoBuf definition.
1271                ///
1272                /// The values are not transformed in any way and thus are considered stable
1273                /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1274                pub fn as_str_name(&self) -> &'static str {
1275                    match self {
1276                        Self::Unspecified => "LABEL_SOURCE_UNSPECIFIED",
1277                        Self::Inner => "LABEL_SOURCE_INNER",
1278                        Self::Stack => "LABEL_SOURCE_STACK",
1279                    }
1280                }
1281                /// Creates an enum from field names used in the ProtoBuf definition.
1282                pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1283                    match value {
1284                        "LABEL_SOURCE_UNSPECIFIED" => Some(Self::Unspecified),
1285                        "LABEL_SOURCE_INNER" => Some(Self::Inner),
1286                        "LABEL_SOURCE_STACK" => Some(Self::Stack),
1287                        _ => None,
1288                    }
1289                }
1290            }
1291        }
1292        #[derive(serde::Serialize, serde::Deserialize)]
1293        #[serde(rename_all = "snake_case")]
1294        #[derive(Clone, PartialEq, ::prost::Message)]
1295        pub struct HorizontalBars {
1296            #[prost(message, optional, tag = "1")]
1297            pub value_field: ::core::option::Option<
1298                super::super::super::super::common::ObservationField,
1299            >,
1300            #[prost(message, repeated, tag = "2")]
1301            pub category_fields: ::prost::alloc::vec::Vec<
1302                super::super::super::super::common::ObservationField,
1303            >,
1304            #[prost(message, repeated, tag = "3")]
1305            pub sub_category_fields: ::prost::alloc::vec::Vec<
1306                super::super::super::super::common::ObservationField,
1307            >,
1308            #[prost(message, optional, tag = "4")]
1309            pub max_bars_per_chart: ::core::option::Option<i32>,
1310            #[prost(message, optional, tag = "5")]
1311            pub max_slices_per_bar: ::core::option::Option<i32>,
1312            #[prost(message, optional, tag = "6")]
1313            pub stack_name_template: ::core::option::Option<
1314                ::prost::alloc::string::String,
1315            >,
1316            #[prost(enumeration = "super::super::common::ScaleType", tag = "7")]
1317            pub scale_type: i32,
1318            #[prost(message, optional, tag = "8")]
1319            pub colors_by: ::core::option::Option<super::super::common::ColorsBy>,
1320            #[prost(message, optional, tag = "9")]
1321            pub color_scheme: ::core::option::Option<::prost::alloc::string::String>,
1322            #[prost(message, optional, tag = "10")]
1323            pub hash_colors: ::core::option::Option<bool>,
1324            #[prost(enumeration = "super::super::common::Unit", tag = "11")]
1325            pub unit: i32,
1326            #[prost(message, optional, tag = "12")]
1327            pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
1328            #[prost(message, optional, tag = "13")]
1329            pub display_on_bar: ::core::option::Option<bool>,
1330            #[prost(message, optional, tag = "14")]
1331            pub decimal_precision: ::core::option::Option<i32>,
1332            #[prost(message, optional, tag = "15")]
1333            pub allow_abbreviation: ::core::option::Option<bool>,
1334            #[prost(message, optional, tag = "16")]
1335            pub y_axis_min: ::core::option::Option<f32>,
1336            #[prost(message, optional, tag = "17")]
1337            pub y_axis_max: ::core::option::Option<f32>,
1338            #[prost(message, optional, tag = "18")]
1339            pub legend: ::core::option::Option<super::super::common::Legend>,
1340            #[prost(enumeration = "super::super::common::SortByType", tag = "19")]
1341            pub sort_by: i32,
1342            #[prost(message, optional, tag = "20")]
1343            pub group_name_template: ::core::option::Option<
1344                ::prost::alloc::string::String,
1345            >,
1346            #[prost(enumeration = "horizontal_bars::YAxisViewBy", tag = "21")]
1347            pub y_axis_view_by: i32,
1348        }
1349        /// Nested message and enum types in `HorizontalBars`.
1350        pub mod horizontal_bars {
1351            #[derive(serde::Serialize, serde::Deserialize)]
1352            #[serde(rename_all = "snake_case")]
1353            #[derive(
1354                Clone,
1355                Copy,
1356                Debug,
1357                PartialEq,
1358                Eq,
1359                Hash,
1360                PartialOrd,
1361                Ord,
1362                ::prost::Enumeration
1363            )]
1364            #[repr(i32)]
1365            pub enum YAxisViewBy {
1366                Unspecified = 0,
1367                Category = 1,
1368                Value = 2,
1369            }
1370            impl YAxisViewBy {
1371                /// String value of the enum field names used in the ProtoBuf definition.
1372                ///
1373                /// The values are not transformed in any way and thus are considered stable
1374                /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1375                pub fn as_str_name(&self) -> &'static str {
1376                    match self {
1377                        Self::Unspecified => "Y_AXIS_VIEW_BY_UNSPECIFIED",
1378                        Self::Category => "Y_AXIS_VIEW_BY_CATEGORY",
1379                        Self::Value => "Y_AXIS_VIEW_BY_VALUE",
1380                    }
1381                }
1382                /// Creates an enum from field names used in the ProtoBuf definition.
1383                pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1384                    match value {
1385                        "Y_AXIS_VIEW_BY_UNSPECIFIED" => Some(Self::Unspecified),
1386                        "Y_AXIS_VIEW_BY_CATEGORY" => Some(Self::Category),
1387                        "Y_AXIS_VIEW_BY_VALUE" => Some(Self::Value),
1388                        _ => None,
1389                    }
1390                }
1391            }
1392        }
1393        #[derive(serde::Serialize, serde::Deserialize)]
1394        #[serde(rename_all = "snake_case")]
1395        #[derive(Clone, PartialEq, ::prost::Message)]
1396        pub struct VerticalBars {
1397            #[prost(message, optional, tag = "1")]
1398            pub value_field: ::core::option::Option<
1399                super::super::super::super::common::ObservationField,
1400            >,
1401            #[prost(message, repeated, tag = "2")]
1402            pub category_fields: ::prost::alloc::vec::Vec<
1403                super::super::super::super::common::ObservationField,
1404            >,
1405            #[prost(message, repeated, tag = "3")]
1406            pub sub_category_fields: ::prost::alloc::vec::Vec<
1407                super::super::super::super::common::ObservationField,
1408            >,
1409            #[prost(message, optional, tag = "4")]
1410            pub max_bars_per_chart: ::core::option::Option<i32>,
1411            #[prost(message, optional, tag = "5")]
1412            pub max_slices_per_bar: ::core::option::Option<i32>,
1413            #[prost(message, optional, tag = "6")]
1414            pub stack_name_template: ::core::option::Option<
1415                ::prost::alloc::string::String,
1416            >,
1417            #[prost(enumeration = "super::super::common::ScaleType", tag = "7")]
1418            pub scale_type: i32,
1419            #[prost(message, optional, tag = "8")]
1420            pub colors_by: ::core::option::Option<super::super::common::ColorsBy>,
1421            #[prost(message, optional, tag = "9")]
1422            pub color_scheme: ::core::option::Option<::prost::alloc::string::String>,
1423            #[prost(message, optional, tag = "10")]
1424            pub hash_colors: ::core::option::Option<bool>,
1425            #[prost(enumeration = "super::super::common::Unit", tag = "11")]
1426            pub unit: i32,
1427            #[prost(message, optional, tag = "12")]
1428            pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
1429            #[prost(enumeration = "BarValueDisplay", tag = "13")]
1430            pub bar_value_display: i32,
1431            #[prost(message, optional, tag = "14")]
1432            pub decimal_precision: ::core::option::Option<i32>,
1433            #[prost(message, optional, tag = "15")]
1434            pub allow_abbreviation: ::core::option::Option<bool>,
1435            #[prost(message, optional, tag = "16")]
1436            pub y_axis_min: ::core::option::Option<f32>,
1437            #[prost(message, optional, tag = "17")]
1438            pub y_axis_max: ::core::option::Option<f32>,
1439            #[prost(message, optional, tag = "18")]
1440            pub legend: ::core::option::Option<super::super::common::Legend>,
1441            #[prost(enumeration = "super::super::common::SortByType", tag = "19")]
1442            pub sort_by: i32,
1443            #[prost(message, optional, tag = "20")]
1444            pub group_name_template: ::core::option::Option<
1445                ::prost::alloc::string::String,
1446            >,
1447        }
1448        #[derive(serde::Serialize, serde::Deserialize)]
1449        #[serde(rename_all = "snake_case")]
1450        #[derive(Clone, PartialEq, ::prost::Message)]
1451        pub struct Heatmap {
1452            #[prost(message, optional, tag = "1")]
1453            pub value_field: ::core::option::Option<
1454                super::super::super::super::common::ObservationField,
1455            >,
1456            #[prost(message, repeated, tag = "2")]
1457            pub x_axis_fields: ::prost::alloc::vec::Vec<
1458                super::super::super::super::common::ObservationField,
1459            >,
1460            #[prost(message, repeated, tag = "3")]
1461            pub y_axis_fields: ::prost::alloc::vec::Vec<
1462                super::super::super::super::common::ObservationField,
1463            >,
1464            #[prost(message, optional, tag = "4")]
1465            pub show_numbers: ::core::option::Option<bool>,
1466            #[prost(enumeration = "super::super::common::ScaleType", tag = "5")]
1467            pub scale_type: i32,
1468            #[prost(message, optional, tag = "7")]
1469            pub allow_abbreviation: ::core::option::Option<bool>,
1470            #[prost(enumeration = "super::super::common::Unit", tag = "8")]
1471            pub unit: i32,
1472            #[prost(message, optional, tag = "9")]
1473            pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
1474            #[prost(message, optional, tag = "10")]
1475            pub decimal_precision: ::core::option::Option<i32>,
1476            #[prost(message, optional, tag = "11")]
1477            pub color_axis_min: ::core::option::Option<f32>,
1478            #[prost(message, optional, tag = "12")]
1479            pub color_axis_max: ::core::option::Option<f32>,
1480            #[prost(message, optional, tag = "13")]
1481            pub tooltip: ::core::option::Option<HeatmapTooltip>,
1482            #[prost(oneof = "heatmap::ColorConfig", tags = "6, 14")]
1483            pub color_config: ::core::option::Option<heatmap::ColorConfig>,
1484        }
1485        /// Nested message and enum types in `Heatmap`.
1486        pub mod heatmap {
1487            #[derive(serde::Serialize, serde::Deserialize)]
1488            #[serde(rename_all = "snake_case")]
1489            #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
1490            pub enum ColorConfig {
1491                #[prost(enumeration = "super::HeatmapColorPreset", tag = "6")]
1492                Preset(i32),
1493                #[prost(
1494                    enumeration = "super::super::super::common::ColorGradientType",
1495                    tag = "14"
1496                )]
1497                ColorRange(i32),
1498            }
1499        }
1500        #[derive(serde::Serialize, serde::Deserialize)]
1501        #[serde(rename_all = "snake_case")]
1502        #[derive(Clone, PartialEq, ::prost::Message)]
1503        pub struct HeatmapTooltip {
1504            #[prost(message, optional, tag = "1")]
1505            pub message_template: ::core::option::Option<::prost::alloc::string::String>,
1506            #[prost(message, repeated, tag = "2")]
1507            pub labels: ::prost::alloc::vec::Vec<
1508                super::super::super::super::common::ObservationField,
1509            >,
1510        }
1511        #[derive(serde::Serialize, serde::Deserialize)]
1512        #[serde(rename_all = "snake_case")]
1513        #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1514        pub struct TimeSeriesTooltip {
1515            #[prost(message, optional, tag = "1")]
1516            pub show_all_series: ::core::option::Option<bool>,
1517            #[prost(message, optional, tag = "2")]
1518            pub show_labels: ::core::option::Option<bool>,
1519        }
1520        #[derive(serde::Serialize, serde::Deserialize)]
1521        #[serde(rename_all = "snake_case")]
1522        #[derive(Clone, PartialEq, ::prost::Message)]
1523        pub struct Geomap {
1524            #[prost(message, optional, tag = "1")]
1525            pub config: ::core::option::Option<geomap::GeomapFieldConfig>,
1526            #[prost(message, optional, tag = "2")]
1527            pub aggregation: ::core::option::Option<geomap::GeomapAggregation>,
1528            #[prost(message, optional, tag = "3")]
1529            pub color: ::core::option::Option<geomap::GeomapColor>,
1530            #[prost(message, optional, tag = "4")]
1531            pub min_max: ::core::option::Option<super::super::common::MinMax>,
1532            #[prost(message, optional, tag = "7")]
1533            pub allow_abbreviation: ::core::option::Option<bool>,
1534            #[prost(enumeration = "super::super::common::Unit", tag = "8")]
1535            pub unit: i32,
1536            #[prost(message, optional, tag = "9")]
1537            pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
1538            #[prost(message, optional, tag = "10")]
1539            pub decimal_precision: ::core::option::Option<i32>,
1540            #[prost(message, optional, tag = "11")]
1541            pub tooltip: ::core::option::Option<geomap::GeomapTooltip>,
1542        }
1543        /// Nested message and enum types in `Geomap`.
1544        pub mod geomap {
1545            #[derive(serde::Serialize, serde::Deserialize)]
1546            #[serde(rename_all = "snake_case")]
1547            #[derive(Clone, PartialEq, ::prost::Message)]
1548            pub struct GeomapFieldConfig {
1549                #[prost(oneof = "geomap_field_config::Value", tags = "1, 2")]
1550                pub value: ::core::option::Option<geomap_field_config::Value>,
1551            }
1552            /// Nested message and enum types in `GeomapFieldConfig`.
1553            pub mod geomap_field_config {
1554                #[derive(serde::Serialize, serde::Deserialize)]
1555                #[serde(rename_all = "snake_case")]
1556                #[derive(Clone, PartialEq, ::prost::Message)]
1557                pub struct GeomapCoordinateConfig {
1558                    #[prost(message, optional, tag = "1")]
1559                    pub latitude_field: ::core::option::Option<
1560                        super::super::super::super::super::super::common::ObservationField,
1561                    >,
1562                    #[prost(message, optional, tag = "2")]
1563                    pub longitude_field: ::core::option::Option<
1564                        super::super::super::super::super::super::common::ObservationField,
1565                    >,
1566                }
1567                #[derive(serde::Serialize, serde::Deserialize)]
1568                #[serde(rename_all = "snake_case")]
1569                #[derive(Clone, PartialEq, ::prost::Message)]
1570                pub struct GeomapAwsRegionConfig {
1571                    #[prost(message, optional, tag = "1")]
1572                    pub aws_region_field: ::core::option::Option<
1573                        super::super::super::super::super::super::common::ObservationField,
1574                    >,
1575                }
1576                #[derive(serde::Serialize, serde::Deserialize)]
1577                #[serde(rename_all = "snake_case")]
1578                #[derive(Clone, PartialEq, ::prost::Oneof)]
1579                pub enum Value {
1580                    #[prost(message, tag = "1")]
1581                    CoordinateConfig(GeomapCoordinateConfig),
1582                    #[prost(message, tag = "2")]
1583                    AwsRegionConfig(GeomapAwsRegionConfig),
1584                }
1585            }
1586            #[derive(serde::Serialize, serde::Deserialize)]
1587            #[serde(rename_all = "snake_case")]
1588            #[derive(Clone, PartialEq, ::prost::Message)]
1589            pub struct GeomapAggregation {
1590                #[prost(oneof = "geomap_aggregation::Value", tags = "1, 2, 3, 4, 5")]
1591                pub value: ::core::option::Option<geomap_aggregation::Value>,
1592            }
1593            /// Nested message and enum types in `GeomapAggregation`.
1594            pub mod geomap_aggregation {
1595                #[derive(serde::Serialize, serde::Deserialize)]
1596                #[serde(rename_all = "snake_case")]
1597                #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1598                pub struct GeomapAggregationSimple {}
1599                #[derive(serde::Serialize, serde::Deserialize)]
1600                #[serde(rename_all = "snake_case")]
1601                #[derive(Clone, PartialEq, ::prost::Message)]
1602                pub struct GeomapAggregationFieldBased {
1603                    #[prost(message, optional, tag = "1")]
1604                    pub field: ::core::option::Option<
1605                        super::super::super::super::super::super::common::ObservationField,
1606                    >,
1607                }
1608                #[derive(serde::Serialize, serde::Deserialize)]
1609                #[serde(rename_all = "snake_case")]
1610                #[derive(Clone, PartialEq, ::prost::Oneof)]
1611                pub enum Value {
1612                    #[prost(message, tag = "1")]
1613                    Count(GeomapAggregationSimple),
1614                    #[prost(message, tag = "2")]
1615                    Sum(GeomapAggregationFieldBased),
1616                    #[prost(message, tag = "3")]
1617                    Min(GeomapAggregationFieldBased),
1618                    #[prost(message, tag = "4")]
1619                    Max(GeomapAggregationFieldBased),
1620                    #[prost(message, tag = "5")]
1621                    Avg(GeomapAggregationFieldBased),
1622                }
1623            }
1624            #[derive(serde::Serialize, serde::Deserialize)]
1625            #[serde(rename_all = "snake_case")]
1626            #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1627            pub struct GeomapColor {
1628                #[prost(oneof = "geomap_color::Value", tags = "1, 2")]
1629                pub value: ::core::option::Option<geomap_color::Value>,
1630            }
1631            /// Nested message and enum types in `GeomapColor`.
1632            pub mod geomap_color {
1633                #[derive(serde::Serialize, serde::Deserialize)]
1634                #[serde(rename_all = "snake_case")]
1635                #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
1636                pub enum Value {
1637                    #[prost(
1638                        enumeration = "super::super::super::super::common::ColorSolidType",
1639                        tag = "1"
1640                    )]
1641                    Size(i32),
1642                    #[prost(
1643                        enumeration = "super::super::super::super::common::ColorGradientType",
1644                        tag = "2"
1645                    )]
1646                    ColorRange(i32),
1647                }
1648            }
1649            #[derive(serde::Serialize, serde::Deserialize)]
1650            #[serde(rename_all = "snake_case")]
1651            #[derive(Clone, PartialEq, ::prost::Message)]
1652            pub struct GeomapTooltip {
1653                #[prost(message, optional, tag = "1")]
1654                pub message_template: ::core::option::Option<
1655                    ::prost::alloc::string::String,
1656                >,
1657                #[prost(message, repeated, tag = "2")]
1658                pub labels: ::prost::alloc::vec::Vec<
1659                    super::super::super::super::super::common::ObservationField,
1660                >,
1661            }
1662        }
1663        /// Deprecated enum, will be removed in the future, use common.ColorGradientType instead
1664        #[derive(serde::Serialize, serde::Deserialize)]
1665        #[serde(rename_all = "snake_case")]
1666        #[derive(
1667            Clone,
1668            Copy,
1669            Debug,
1670            PartialEq,
1671            Eq,
1672            Hash,
1673            PartialOrd,
1674            Ord,
1675            ::prost::Enumeration
1676        )]
1677        #[repr(i32)]
1678        pub enum HeatmapColorPreset {
1679            Unspecified = 0,
1680            Blue = 1,
1681            Green = 2,
1682            Red = 3,
1683            Threshold = 4,
1684            BlueReversed = 5,
1685            GreenReversed = 6,
1686            RedReversed = 7,
1687            ThresholdReversed = 8,
1688        }
1689        impl HeatmapColorPreset {
1690            /// String value of the enum field names used in the ProtoBuf definition.
1691            ///
1692            /// The values are not transformed in any way and thus are considered stable
1693            /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1694            pub fn as_str_name(&self) -> &'static str {
1695                match self {
1696                    Self::Unspecified => "HEATMAP_COLOR_PRESET_UNSPECIFIED",
1697                    Self::Blue => "HEATMAP_COLOR_PRESET_BLUE",
1698                    Self::Green => "HEATMAP_COLOR_PRESET_GREEN",
1699                    Self::Red => "HEATMAP_COLOR_PRESET_RED",
1700                    Self::Threshold => "HEATMAP_COLOR_PRESET_THRESHOLD",
1701                    Self::BlueReversed => "HEATMAP_COLOR_PRESET_BLUE_REVERSED",
1702                    Self::GreenReversed => "HEATMAP_COLOR_PRESET_GREEN_REVERSED",
1703                    Self::RedReversed => "HEATMAP_COLOR_PRESET_RED_REVERSED",
1704                    Self::ThresholdReversed => "HEATMAP_COLOR_PRESET_THRESHOLD_REVERSED",
1705                }
1706            }
1707            /// Creates an enum from field names used in the ProtoBuf definition.
1708            pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1709                match value {
1710                    "HEATMAP_COLOR_PRESET_UNSPECIFIED" => Some(Self::Unspecified),
1711                    "HEATMAP_COLOR_PRESET_BLUE" => Some(Self::Blue),
1712                    "HEATMAP_COLOR_PRESET_GREEN" => Some(Self::Green),
1713                    "HEATMAP_COLOR_PRESET_RED" => Some(Self::Red),
1714                    "HEATMAP_COLOR_PRESET_THRESHOLD" => Some(Self::Threshold),
1715                    "HEATMAP_COLOR_PRESET_BLUE_REVERSED" => Some(Self::BlueReversed),
1716                    "HEATMAP_COLOR_PRESET_GREEN_REVERSED" => Some(Self::GreenReversed),
1717                    "HEATMAP_COLOR_PRESET_RED_REVERSED" => Some(Self::RedReversed),
1718                    "HEATMAP_COLOR_PRESET_THRESHOLD_REVERSED" => {
1719                        Some(Self::ThresholdReversed)
1720                    }
1721                    _ => None,
1722                }
1723            }
1724        }
1725        #[derive(serde::Serialize, serde::Deserialize)]
1726        #[serde(rename_all = "snake_case")]
1727        #[derive(
1728            Clone,
1729            Copy,
1730            Debug,
1731            PartialEq,
1732            Eq,
1733            Hash,
1734            PartialOrd,
1735            Ord,
1736            ::prost::Enumeration
1737        )]
1738        #[repr(i32)]
1739        pub enum BarValueDisplay {
1740            Unspecified = 0,
1741            Top = 1,
1742            Inside = 2,
1743            Both = 3,
1744        }
1745        impl BarValueDisplay {
1746            /// String value of the enum field names used in the ProtoBuf definition.
1747            ///
1748            /// The values are not transformed in any way and thus are considered stable
1749            /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1750            pub fn as_str_name(&self) -> &'static str {
1751                match self {
1752                    Self::Unspecified => "BAR_VALUE_DISPLAY_UNSPECIFIED",
1753                    Self::Top => "BAR_VALUE_DISPLAY_TOP",
1754                    Self::Inside => "BAR_VALUE_DISPLAY_INSIDE",
1755                    Self::Both => "BAR_VALUE_DISPLAY_BOTH",
1756                }
1757            }
1758            /// Creates an enum from field names used in the ProtoBuf definition.
1759            pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1760                match value {
1761                    "BAR_VALUE_DISPLAY_UNSPECIFIED" => Some(Self::Unspecified),
1762                    "BAR_VALUE_DISPLAY_TOP" => Some(Self::Top),
1763                    "BAR_VALUE_DISPLAY_INSIDE" => Some(Self::Inside),
1764                    "BAR_VALUE_DISPLAY_BOTH" => Some(Self::Both),
1765                    _ => None,
1766                }
1767            }
1768        }
1769        #[derive(serde::Serialize, serde::Deserialize)]
1770        #[serde(rename_all = "snake_case")]
1771        #[derive(Clone, PartialEq, ::prost::Oneof)]
1772        pub enum Value {
1773            #[prost(message, tag = "1")]
1774            Table(Table),
1775            #[prost(message, tag = "2")]
1776            TimeSeriesLines(TimeSeriesLines),
1777            #[prost(message, tag = "3")]
1778            TimeSeriesBars(TimeSeriesBars),
1779            #[prost(message, tag = "4")]
1780            Stat(Stat),
1781            #[prost(message, tag = "5")]
1782            Gauge(Gauge),
1783            #[prost(message, tag = "6")]
1784            HexagonBins(HexagonBins),
1785            #[prost(message, tag = "7")]
1786            PieChart(PieChart),
1787            #[prost(message, tag = "8")]
1788            HorizontalBars(HorizontalBars),
1789            #[prost(message, tag = "9")]
1790            VerticalBars(VerticalBars),
1791            #[prost(message, tag = "10")]
1792            Heatmap(Heatmap),
1793            #[prost(message, tag = "11")]
1794            Geomap(Geomap),
1795        }
1796    }
1797    #[derive(serde::Serialize, serde::Deserialize)]
1798    #[serde(rename_all = "snake_case")]
1799    #[derive(
1800        Clone,
1801        Copy,
1802        Debug,
1803        PartialEq,
1804        Eq,
1805        Hash,
1806        PartialOrd,
1807        Ord,
1808        ::prost::Enumeration
1809    )]
1810    #[repr(i32)]
1811    pub enum Interpretation {
1812        Unspecified = 0,
1813        RawDataTable = 1,
1814        TrendOverTimeLine = 2,
1815        SingleValueKpi = 3,
1816        MultiValueKpi = 4,
1817        CategoricalAnalysisVerticalBars = 5,
1818        SingleValueKpiStat = 6,
1819        SingleValueKpiGauge = 7,
1820        MultiValueKpiStat = 8,
1821        MultiValueKpiGauge = 9,
1822        MultiValueKpiHexagonBins = 10,
1823        CategoricalAnalysisPieChart = 11,
1824        CategoricalAnalysisHorizontalBars = 12,
1825    }
1826    impl Interpretation {
1827        /// String value of the enum field names used in the ProtoBuf definition.
1828        ///
1829        /// The values are not transformed in any way and thus are considered stable
1830        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1831        pub fn as_str_name(&self) -> &'static str {
1832            match self {
1833                Self::Unspecified => "INTERPRETATION_UNSPECIFIED",
1834                Self::RawDataTable => "INTERPRETATION_RAW_DATA_TABLE",
1835                Self::TrendOverTimeLine => "INTERPRETATION_TREND_OVER_TIME_LINE",
1836                Self::SingleValueKpi => "INTERPRETATION_SINGLE_VALUE_KPI",
1837                Self::MultiValueKpi => "INTERPRETATION_MULTI_VALUE_KPI",
1838                Self::CategoricalAnalysisVerticalBars => {
1839                    "INTERPRETATION_CATEGORICAL_ANALYSIS_VERTICAL_BARS"
1840                }
1841                Self::SingleValueKpiStat => "INTERPRETATION_SINGLE_VALUE_KPI_STAT",
1842                Self::SingleValueKpiGauge => "INTERPRETATION_SINGLE_VALUE_KPI_GAUGE",
1843                Self::MultiValueKpiStat => "INTERPRETATION_MULTI_VALUE_KPI_STAT",
1844                Self::MultiValueKpiGauge => "INTERPRETATION_MULTI_VALUE_KPI_GAUGE",
1845                Self::MultiValueKpiHexagonBins => {
1846                    "INTERPRETATION_MULTI_VALUE_KPI_HEXAGON_BINS"
1847                }
1848                Self::CategoricalAnalysisPieChart => {
1849                    "INTERPRETATION_CATEGORICAL_ANALYSIS_PIE_CHART"
1850                }
1851                Self::CategoricalAnalysisHorizontalBars => {
1852                    "INTERPRETATION_CATEGORICAL_ANALYSIS_HORIZONTAL_BARS"
1853                }
1854            }
1855        }
1856        /// Creates an enum from field names used in the ProtoBuf definition.
1857        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1858            match value {
1859                "INTERPRETATION_UNSPECIFIED" => Some(Self::Unspecified),
1860                "INTERPRETATION_RAW_DATA_TABLE" => Some(Self::RawDataTable),
1861                "INTERPRETATION_TREND_OVER_TIME_LINE" => Some(Self::TrendOverTimeLine),
1862                "INTERPRETATION_SINGLE_VALUE_KPI" => Some(Self::SingleValueKpi),
1863                "INTERPRETATION_MULTI_VALUE_KPI" => Some(Self::MultiValueKpi),
1864                "INTERPRETATION_CATEGORICAL_ANALYSIS_VERTICAL_BARS" => {
1865                    Some(Self::CategoricalAnalysisVerticalBars)
1866                }
1867                "INTERPRETATION_SINGLE_VALUE_KPI_STAT" => Some(Self::SingleValueKpiStat),
1868                "INTERPRETATION_SINGLE_VALUE_KPI_GAUGE" => {
1869                    Some(Self::SingleValueKpiGauge)
1870                }
1871                "INTERPRETATION_MULTI_VALUE_KPI_STAT" => Some(Self::MultiValueKpiStat),
1872                "INTERPRETATION_MULTI_VALUE_KPI_GAUGE" => Some(Self::MultiValueKpiGauge),
1873                "INTERPRETATION_MULTI_VALUE_KPI_HEXAGON_BINS" => {
1874                    Some(Self::MultiValueKpiHexagonBins)
1875                }
1876                "INTERPRETATION_CATEGORICAL_ANALYSIS_PIE_CHART" => {
1877                    Some(Self::CategoricalAnalysisPieChart)
1878                }
1879                "INTERPRETATION_CATEGORICAL_ANALYSIS_HORIZONTAL_BARS" => {
1880                    Some(Self::CategoricalAnalysisHorizontalBars)
1881                }
1882                _ => None,
1883            }
1884        }
1885    }
1886}
1887#[derive(serde::Serialize, serde::Deserialize)]
1888#[serde(rename_all = "snake_case")]
1889#[derive(Clone, PartialEq, ::prost::Message)]
1890pub struct Gauge {
1891    #[prost(message, optional, tag = "1")]
1892    pub query: ::core::option::Option<gauge::Query>,
1893    #[prost(message, optional, tag = "2")]
1894    pub min: ::core::option::Option<f64>,
1895    #[prost(message, optional, tag = "3")]
1896    pub max: ::core::option::Option<f64>,
1897    #[prost(message, optional, tag = "4")]
1898    pub show_inner_arc: ::core::option::Option<bool>,
1899    #[prost(message, optional, tag = "5")]
1900    pub show_outer_arc: ::core::option::Option<bool>,
1901    #[prost(enumeration = "gauge::Unit", tag = "6")]
1902    pub unit: i32,
1903    #[prost(message, repeated, tag = "7")]
1904    pub thresholds: ::prost::alloc::vec::Vec<gauge::Threshold>,
1905    #[prost(enumeration = "common::DataModeType", tag = "8")]
1906    pub data_mode_type: i32,
1907    #[prost(enumeration = "gauge::ThresholdBy", tag = "9")]
1908    pub threshold_by: i32,
1909    #[prost(message, optional, tag = "10")]
1910    pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
1911    #[prost(message, optional, tag = "11")]
1912    pub decimal: ::core::option::Option<i32>,
1913    #[prost(enumeration = "common::ThresholdType", tag = "12")]
1914    pub threshold_type: i32,
1915    #[prost(message, optional, tag = "13")]
1916    pub legend: ::core::option::Option<common::Legend>,
1917    #[prost(enumeration = "common::LegendBy", tag = "14")]
1918    pub legend_by: i32,
1919    #[prost(message, optional, tag = "15")]
1920    pub display_series_name: ::core::option::Option<bool>,
1921    #[prost(message, optional, tag = "16")]
1922    pub decimal_precision: ::core::option::Option<bool>,
1923}
1924/// Nested message and enum types in `Gauge`.
1925pub mod gauge {
1926    #[derive(serde::Serialize, serde::Deserialize)]
1927    #[serde(rename_all = "snake_case")]
1928    #[derive(Clone, PartialEq, ::prost::Message)]
1929    pub struct Query {
1930        #[prost(oneof = "query::Value", tags = "1, 2, 3, 4")]
1931        pub value: ::core::option::Option<query::Value>,
1932    }
1933    /// Nested message and enum types in `Query`.
1934    pub mod query {
1935        #[derive(serde::Serialize, serde::Deserialize)]
1936        #[serde(rename_all = "snake_case")]
1937        #[derive(Clone, PartialEq, ::prost::Oneof)]
1938        pub enum Value {
1939            #[prost(message, tag = "1")]
1940            Metrics(super::MetricsQuery),
1941            #[prost(message, tag = "2")]
1942            Logs(super::LogsQuery),
1943            #[prost(message, tag = "3")]
1944            Spans(super::SpansQuery),
1945            #[prost(message, tag = "4")]
1946            Dataprime(super::DataprimeQuery),
1947        }
1948    }
1949    #[derive(serde::Serialize, serde::Deserialize)]
1950    #[serde(rename_all = "snake_case")]
1951    #[derive(Clone, PartialEq, ::prost::Message)]
1952    pub struct MetricsQuery {
1953        #[prost(message, optional, tag = "1")]
1954        pub promql_query: ::core::option::Option<
1955            super::super::super::common::PromQlQuery,
1956        >,
1957        #[prost(enumeration = "Aggregation", tag = "2")]
1958        pub aggregation: i32,
1959        #[prost(message, repeated, tag = "3")]
1960        pub filters: ::prost::alloc::vec::Vec<
1961            super::super::filters::filter::MetricsFilter,
1962        >,
1963        #[prost(enumeration = "super::common::MetricsQueryEditorMode", tag = "4")]
1964        pub editor_mode: i32,
1965        #[prost(message, optional, tag = "5")]
1966        pub time_frame: ::core::option::Option<
1967            super::super::super::common::TimeFrameSelect,
1968        >,
1969        #[prost(enumeration = "super::super::super::common::PromQlQueryType", tag = "6")]
1970        pub promql_query_type: i32,
1971    }
1972    #[derive(serde::Serialize, serde::Deserialize)]
1973    #[serde(rename_all = "snake_case")]
1974    #[derive(Clone, PartialEq, ::prost::Message)]
1975    pub struct LogsQuery {
1976        #[prost(message, optional, tag = "1")]
1977        pub lucene_query: ::core::option::Option<
1978            super::super::super::common::LuceneQuery,
1979        >,
1980        #[prost(message, optional, tag = "2")]
1981        pub logs_aggregation: ::core::option::Option<
1982            super::super::super::common::LogsAggregation,
1983        >,
1984        #[deprecated]
1985        #[prost(enumeration = "Aggregation", tag = "3")]
1986        pub aggregation: i32,
1987        #[prost(message, repeated, tag = "4")]
1988        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::LogsFilter>,
1989        #[prost(message, repeated, tag = "5")]
1990        pub group_by: ::prost::alloc::vec::Vec<
1991            super::super::super::common::ObservationField,
1992        >,
1993        #[prost(message, optional, tag = "6")]
1994        pub time_frame: ::core::option::Option<
1995            super::super::super::common::TimeFrameSelect,
1996        >,
1997    }
1998    #[derive(serde::Serialize, serde::Deserialize)]
1999    #[serde(rename_all = "snake_case")]
2000    #[derive(Clone, PartialEq, ::prost::Message)]
2001    pub struct SpansQuery {
2002        #[prost(message, optional, tag = "1")]
2003        pub lucene_query: ::core::option::Option<
2004            super::super::super::common::LuceneQuery,
2005        >,
2006        #[prost(message, optional, tag = "2")]
2007        pub spans_aggregation: ::core::option::Option<
2008            super::super::super::common::SpansAggregation,
2009        >,
2010        #[deprecated]
2011        #[prost(enumeration = "Aggregation", tag = "3")]
2012        pub aggregation: i32,
2013        #[prost(message, repeated, tag = "4")]
2014        pub filters: ::prost::alloc::vec::Vec<
2015            super::super::filters::filter::SpansFilter,
2016        >,
2017        #[prost(message, repeated, tag = "5")]
2018        pub group_by: ::prost::alloc::vec::Vec<super::super::super::common::SpanField>,
2019        #[prost(message, optional, tag = "6")]
2020        pub time_frame: ::core::option::Option<
2021            super::super::super::common::TimeFrameSelect,
2022        >,
2023        #[prost(message, repeated, tag = "7")]
2024        pub group_bys: ::prost::alloc::vec::Vec<
2025            super::super::super::common::SpanObservationField,
2026        >,
2027    }
2028    #[derive(serde::Serialize, serde::Deserialize)]
2029    #[serde(rename_all = "snake_case")]
2030    #[derive(Clone, PartialEq, ::prost::Message)]
2031    pub struct DataprimeQuery {
2032        #[prost(message, optional, tag = "1")]
2033        pub dataprime_query: ::core::option::Option<
2034            super::super::super::common::DataprimeQuery,
2035        >,
2036        #[prost(message, repeated, tag = "2")]
2037        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::Source>,
2038        #[prost(message, optional, tag = "3")]
2039        pub time_frame: ::core::option::Option<
2040            super::super::super::common::TimeFrameSelect,
2041        >,
2042    }
2043    #[derive(serde::Serialize, serde::Deserialize)]
2044    #[serde(rename_all = "snake_case")]
2045    #[derive(Clone, PartialEq, ::prost::Message)]
2046    pub struct Threshold {
2047        #[prost(message, optional, tag = "1")]
2048        pub from: ::core::option::Option<f64>,
2049        #[prost(message, optional, tag = "2")]
2050        pub color: ::core::option::Option<::prost::alloc::string::String>,
2051        #[prost(message, optional, tag = "3")]
2052        pub label: ::core::option::Option<::prost::alloc::string::String>,
2053    }
2054    #[derive(serde::Serialize, serde::Deserialize)]
2055    #[serde(rename_all = "snake_case")]
2056    #[derive(
2057        Clone,
2058        Copy,
2059        Debug,
2060        PartialEq,
2061        Eq,
2062        Hash,
2063        PartialOrd,
2064        Ord,
2065        ::prost::Enumeration
2066    )]
2067    #[repr(i32)]
2068    pub enum Aggregation {
2069        Unspecified = 0,
2070        Last = 1,
2071        Min = 2,
2072        Max = 3,
2073        Avg = 4,
2074        Sum = 5,
2075    }
2076    impl Aggregation {
2077        /// String value of the enum field names used in the ProtoBuf definition.
2078        ///
2079        /// The values are not transformed in any way and thus are considered stable
2080        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2081        pub fn as_str_name(&self) -> &'static str {
2082            match self {
2083                Self::Unspecified => "AGGREGATION_UNSPECIFIED",
2084                Self::Last => "AGGREGATION_LAST",
2085                Self::Min => "AGGREGATION_MIN",
2086                Self::Max => "AGGREGATION_MAX",
2087                Self::Avg => "AGGREGATION_AVG",
2088                Self::Sum => "AGGREGATION_SUM",
2089            }
2090        }
2091        /// Creates an enum from field names used in the ProtoBuf definition.
2092        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2093            match value {
2094                "AGGREGATION_UNSPECIFIED" => Some(Self::Unspecified),
2095                "AGGREGATION_LAST" => Some(Self::Last),
2096                "AGGREGATION_MIN" => Some(Self::Min),
2097                "AGGREGATION_MAX" => Some(Self::Max),
2098                "AGGREGATION_AVG" => Some(Self::Avg),
2099                "AGGREGATION_SUM" => Some(Self::Sum),
2100                _ => None,
2101            }
2102        }
2103    }
2104    #[derive(serde::Serialize, serde::Deserialize)]
2105    #[serde(rename_all = "snake_case")]
2106    #[derive(
2107        Clone,
2108        Copy,
2109        Debug,
2110        PartialEq,
2111        Eq,
2112        Hash,
2113        PartialOrd,
2114        Ord,
2115        ::prost::Enumeration
2116    )]
2117    #[repr(i32)]
2118    pub enum Unit {
2119        Unspecified = 0,
2120        Number = 1,
2121        Percent = 2,
2122        Microseconds = 3,
2123        Milliseconds = 4,
2124        Seconds = 5,
2125        Bytes = 6,
2126        Kbytes = 7,
2127        Mbytes = 8,
2128        Gbytes = 9,
2129        BytesIec = 10,
2130        Kibytes = 11,
2131        Mibytes = 12,
2132        Gibytes = 13,
2133        EurCents = 14,
2134        Eur = 15,
2135        UsdCents = 16,
2136        Usd = 17,
2137        Custom = 18,
2138        PercentZeroOne = 19,
2139        PercentZeroHundred = 20,
2140        Nanoseconds = 21,
2141    }
2142    impl Unit {
2143        /// String value of the enum field names used in the ProtoBuf definition.
2144        ///
2145        /// The values are not transformed in any way and thus are considered stable
2146        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2147        pub fn as_str_name(&self) -> &'static str {
2148            match self {
2149                Self::Unspecified => "UNIT_UNSPECIFIED",
2150                Self::Number => "UNIT_NUMBER",
2151                Self::Percent => "UNIT_PERCENT",
2152                Self::Microseconds => "UNIT_MICROSECONDS",
2153                Self::Milliseconds => "UNIT_MILLISECONDS",
2154                Self::Seconds => "UNIT_SECONDS",
2155                Self::Bytes => "UNIT_BYTES",
2156                Self::Kbytes => "UNIT_KBYTES",
2157                Self::Mbytes => "UNIT_MBYTES",
2158                Self::Gbytes => "UNIT_GBYTES",
2159                Self::BytesIec => "UNIT_BYTES_IEC",
2160                Self::Kibytes => "UNIT_KIBYTES",
2161                Self::Mibytes => "UNIT_MIBYTES",
2162                Self::Gibytes => "UNIT_GIBYTES",
2163                Self::EurCents => "UNIT_EUR_CENTS",
2164                Self::Eur => "UNIT_EUR",
2165                Self::UsdCents => "UNIT_USD_CENTS",
2166                Self::Usd => "UNIT_USD",
2167                Self::Custom => "UNIT_CUSTOM",
2168                Self::PercentZeroOne => "UNIT_PERCENT_ZERO_ONE",
2169                Self::PercentZeroHundred => "UNIT_PERCENT_ZERO_HUNDRED",
2170                Self::Nanoseconds => "UNIT_NANOSECONDS",
2171            }
2172        }
2173        /// Creates an enum from field names used in the ProtoBuf definition.
2174        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2175            match value {
2176                "UNIT_UNSPECIFIED" => Some(Self::Unspecified),
2177                "UNIT_NUMBER" => Some(Self::Number),
2178                "UNIT_PERCENT" => Some(Self::Percent),
2179                "UNIT_MICROSECONDS" => Some(Self::Microseconds),
2180                "UNIT_MILLISECONDS" => Some(Self::Milliseconds),
2181                "UNIT_SECONDS" => Some(Self::Seconds),
2182                "UNIT_BYTES" => Some(Self::Bytes),
2183                "UNIT_KBYTES" => Some(Self::Kbytes),
2184                "UNIT_MBYTES" => Some(Self::Mbytes),
2185                "UNIT_GBYTES" => Some(Self::Gbytes),
2186                "UNIT_BYTES_IEC" => Some(Self::BytesIec),
2187                "UNIT_KIBYTES" => Some(Self::Kibytes),
2188                "UNIT_MIBYTES" => Some(Self::Mibytes),
2189                "UNIT_GIBYTES" => Some(Self::Gibytes),
2190                "UNIT_EUR_CENTS" => Some(Self::EurCents),
2191                "UNIT_EUR" => Some(Self::Eur),
2192                "UNIT_USD_CENTS" => Some(Self::UsdCents),
2193                "UNIT_USD" => Some(Self::Usd),
2194                "UNIT_CUSTOM" => Some(Self::Custom),
2195                "UNIT_PERCENT_ZERO_ONE" => Some(Self::PercentZeroOne),
2196                "UNIT_PERCENT_ZERO_HUNDRED" => Some(Self::PercentZeroHundred),
2197                "UNIT_NANOSECONDS" => Some(Self::Nanoseconds),
2198                _ => None,
2199            }
2200        }
2201    }
2202    #[derive(serde::Serialize, serde::Deserialize)]
2203    #[serde(rename_all = "snake_case")]
2204    #[derive(
2205        Clone,
2206        Copy,
2207        Debug,
2208        PartialEq,
2209        Eq,
2210        Hash,
2211        PartialOrd,
2212        Ord,
2213        ::prost::Enumeration
2214    )]
2215    #[repr(i32)]
2216    pub enum ThresholdBy {
2217        Unspecified = 0,
2218        Value = 1,
2219        Background = 2,
2220    }
2221    impl ThresholdBy {
2222        /// String value of the enum field names used in the ProtoBuf definition.
2223        ///
2224        /// The values are not transformed in any way and thus are considered stable
2225        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2226        pub fn as_str_name(&self) -> &'static str {
2227            match self {
2228                Self::Unspecified => "THRESHOLD_BY_UNSPECIFIED",
2229                Self::Value => "THRESHOLD_BY_VALUE",
2230                Self::Background => "THRESHOLD_BY_BACKGROUND",
2231            }
2232        }
2233        /// Creates an enum from field names used in the ProtoBuf definition.
2234        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2235            match value {
2236                "THRESHOLD_BY_UNSPECIFIED" => Some(Self::Unspecified),
2237                "THRESHOLD_BY_VALUE" => Some(Self::Value),
2238                "THRESHOLD_BY_BACKGROUND" => Some(Self::Background),
2239                _ => None,
2240            }
2241        }
2242    }
2243}
2244#[derive(serde::Serialize, serde::Deserialize)]
2245#[serde(rename_all = "snake_case")]
2246#[derive(Clone, PartialEq, ::prost::Message)]
2247pub struct Hexagon {
2248    #[prost(message, optional, tag = "1")]
2249    pub query: ::core::option::Option<hexagon::Query>,
2250    #[prost(message, optional, tag = "2")]
2251    pub min: ::core::option::Option<f64>,
2252    #[prost(message, optional, tag = "3")]
2253    pub max: ::core::option::Option<f64>,
2254    #[prost(enumeration = "common::Unit", tag = "6")]
2255    pub unit: i32,
2256    #[prost(message, repeated, tag = "7")]
2257    pub thresholds: ::prost::alloc::vec::Vec<common::Threshold>,
2258    #[prost(enumeration = "common::DataModeType", tag = "8")]
2259    pub data_mode_type: i32,
2260    #[prost(message, optional, tag = "10")]
2261    pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
2262    #[prost(message, optional, tag = "11")]
2263    pub decimal: ::core::option::Option<i32>,
2264    #[prost(enumeration = "common::ThresholdType", tag = "12")]
2265    pub threshold_type: i32,
2266    #[prost(message, optional, tag = "13")]
2267    pub legend: ::core::option::Option<common::Legend>,
2268    #[prost(enumeration = "common::LegendBy", tag = "14")]
2269    pub legend_by: i32,
2270    #[prost(message, optional, tag = "15")]
2271    pub decimal_precision: ::core::option::Option<bool>,
2272}
2273/// Nested message and enum types in `Hexagon`.
2274pub mod hexagon {
2275    #[derive(serde::Serialize, serde::Deserialize)]
2276    #[serde(rename_all = "snake_case")]
2277    #[derive(Clone, PartialEq, ::prost::Message)]
2278    pub struct Query {
2279        #[prost(oneof = "query::Value", tags = "1, 2, 3, 4")]
2280        pub value: ::core::option::Option<query::Value>,
2281    }
2282    /// Nested message and enum types in `Query`.
2283    pub mod query {
2284        #[derive(serde::Serialize, serde::Deserialize)]
2285        #[serde(rename_all = "snake_case")]
2286        #[derive(Clone, PartialEq, ::prost::Oneof)]
2287        pub enum Value {
2288            #[prost(message, tag = "1")]
2289            Metrics(super::MetricsQuery),
2290            #[prost(message, tag = "2")]
2291            Logs(super::LogsQuery),
2292            #[prost(message, tag = "3")]
2293            Spans(super::SpansQuery),
2294            #[prost(message, tag = "4")]
2295            Dataprime(super::DataprimeQuery),
2296        }
2297    }
2298    #[derive(serde::Serialize, serde::Deserialize)]
2299    #[serde(rename_all = "snake_case")]
2300    #[derive(Clone, PartialEq, ::prost::Message)]
2301    pub struct MetricsQuery {
2302        #[prost(message, optional, tag = "1")]
2303        pub promql_query: ::core::option::Option<
2304            super::super::super::common::PromQlQuery,
2305        >,
2306        #[prost(message, repeated, tag = "2")]
2307        pub filters: ::prost::alloc::vec::Vec<
2308            super::super::filters::filter::MetricsFilter,
2309        >,
2310        #[prost(enumeration = "super::common::MetricsQueryEditorMode", tag = "3")]
2311        pub editor_mode: i32,
2312        #[prost(message, optional, tag = "4")]
2313        pub time_frame: ::core::option::Option<
2314            super::super::super::common::TimeFrameSelect,
2315        >,
2316        #[prost(enumeration = "super::common::Aggregation", tag = "5")]
2317        pub aggregation: i32,
2318        #[prost(enumeration = "super::super::super::common::PromQlQueryType", tag = "6")]
2319        pub promql_query_type: i32,
2320    }
2321    #[derive(serde::Serialize, serde::Deserialize)]
2322    #[serde(rename_all = "snake_case")]
2323    #[derive(Clone, PartialEq, ::prost::Message)]
2324    pub struct LogsQuery {
2325        #[prost(message, optional, tag = "1")]
2326        pub lucene_query: ::core::option::Option<
2327            super::super::super::common::LuceneQuery,
2328        >,
2329        #[prost(message, optional, tag = "2")]
2330        pub logs_aggregation: ::core::option::Option<
2331            super::super::super::common::LogsAggregation,
2332        >,
2333        #[prost(message, repeated, tag = "3")]
2334        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::LogsFilter>,
2335        #[prost(message, repeated, tag = "4")]
2336        pub group_by: ::prost::alloc::vec::Vec<
2337            super::super::super::common::ObservationField,
2338        >,
2339        #[prost(message, optional, tag = "5")]
2340        pub time_frame: ::core::option::Option<
2341            super::super::super::common::TimeFrameSelect,
2342        >,
2343    }
2344    #[derive(serde::Serialize, serde::Deserialize)]
2345    #[serde(rename_all = "snake_case")]
2346    #[derive(Clone, PartialEq, ::prost::Message)]
2347    pub struct SpansQuery {
2348        #[prost(message, optional, tag = "1")]
2349        pub lucene_query: ::core::option::Option<
2350            super::super::super::common::LuceneQuery,
2351        >,
2352        #[prost(message, optional, tag = "2")]
2353        pub spans_aggregation: ::core::option::Option<
2354            super::super::super::common::SpansAggregation,
2355        >,
2356        #[prost(message, repeated, tag = "3")]
2357        pub filters: ::prost::alloc::vec::Vec<
2358            super::super::filters::filter::SpansFilter,
2359        >,
2360        #[prost(message, repeated, tag = "4")]
2361        pub group_by: ::prost::alloc::vec::Vec<super::super::super::common::SpanField>,
2362        #[prost(message, optional, tag = "5")]
2363        pub time_frame: ::core::option::Option<
2364            super::super::super::common::TimeFrameSelect,
2365        >,
2366        #[prost(message, repeated, tag = "6")]
2367        pub group_bys: ::prost::alloc::vec::Vec<
2368            super::super::super::common::SpanObservationField,
2369        >,
2370    }
2371    #[derive(serde::Serialize, serde::Deserialize)]
2372    #[serde(rename_all = "snake_case")]
2373    #[derive(Clone, PartialEq, ::prost::Message)]
2374    pub struct DataprimeQuery {
2375        #[prost(message, optional, tag = "1")]
2376        pub dataprime_query: ::core::option::Option<
2377            super::super::super::common::DataprimeQuery,
2378        >,
2379        #[prost(message, repeated, tag = "2")]
2380        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::Source>,
2381        #[prost(message, optional, tag = "3")]
2382        pub time_frame: ::core::option::Option<
2383            super::super::super::common::TimeFrameSelect,
2384        >,
2385    }
2386}
2387#[derive(serde::Serialize, serde::Deserialize)]
2388#[serde(rename_all = "snake_case")]
2389#[derive(Clone, PartialEq, ::prost::Message)]
2390pub struct HorizontalBarChart {
2391    #[prost(message, optional, tag = "1")]
2392    pub query: ::core::option::Option<horizontal_bar_chart::Query>,
2393    #[prost(message, optional, tag = "2")]
2394    pub max_bars_per_chart: ::core::option::Option<i32>,
2395    #[prost(message, optional, tag = "3")]
2396    pub group_name_template: ::core::option::Option<::prost::alloc::string::String>,
2397    #[prost(message, optional, tag = "4")]
2398    pub stack_definition: ::core::option::Option<horizontal_bar_chart::StackDefinition>,
2399    #[prost(enumeration = "common::ScaleType", tag = "5")]
2400    pub scale_type: i32,
2401    #[prost(message, optional, tag = "6")]
2402    pub colors_by: ::core::option::Option<common::ColorsBy>,
2403    #[prost(enumeration = "common::Unit", tag = "8")]
2404    pub unit: i32,
2405    #[prost(message, optional, tag = "9")]
2406    pub display_on_bar: ::core::option::Option<bool>,
2407    #[prost(message, optional, tag = "10")]
2408    pub y_axis_view_by: ::core::option::Option<horizontal_bar_chart::YAxisViewBy>,
2409    #[prost(enumeration = "common::SortByType", tag = "11")]
2410    pub sort_by: i32,
2411    #[prost(message, optional, tag = "12")]
2412    pub color_scheme: ::core::option::Option<::prost::alloc::string::String>,
2413    #[prost(enumeration = "common::DataModeType", tag = "13")]
2414    pub data_mode_type: i32,
2415    #[prost(message, optional, tag = "14")]
2416    pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
2417    #[prost(message, optional, tag = "15")]
2418    pub decimal: ::core::option::Option<i32>,
2419    #[prost(message, optional, tag = "16")]
2420    pub legend: ::core::option::Option<common::Legend>,
2421    #[prost(message, optional, tag = "17")]
2422    pub hash_colors: ::core::option::Option<bool>,
2423    #[prost(message, optional, tag = "18")]
2424    pub y_axis_min: ::core::option::Option<f32>,
2425    #[prost(message, optional, tag = "19")]
2426    pub y_axis_max: ::core::option::Option<f32>,
2427    #[prost(message, optional, tag = "20")]
2428    pub decimal_precision: ::core::option::Option<bool>,
2429}
2430/// Nested message and enum types in `HorizontalBarChart`.
2431pub mod horizontal_bar_chart {
2432    #[derive(serde::Serialize, serde::Deserialize)]
2433    #[serde(rename_all = "snake_case")]
2434    #[derive(Clone, PartialEq, ::prost::Message)]
2435    pub struct Query {
2436        #[prost(oneof = "query::Value", tags = "1, 2, 3, 4")]
2437        pub value: ::core::option::Option<query::Value>,
2438    }
2439    /// Nested message and enum types in `Query`.
2440    pub mod query {
2441        #[derive(serde::Serialize, serde::Deserialize)]
2442        #[serde(rename_all = "snake_case")]
2443        #[derive(Clone, PartialEq, ::prost::Oneof)]
2444        pub enum Value {
2445            #[prost(message, tag = "1")]
2446            Logs(super::LogsQuery),
2447            #[prost(message, tag = "2")]
2448            Spans(super::SpansQuery),
2449            #[prost(message, tag = "3")]
2450            Metrics(super::MetricsQuery),
2451            #[prost(message, tag = "4")]
2452            Dataprime(super::DataprimeQuery),
2453        }
2454    }
2455    #[derive(serde::Serialize, serde::Deserialize)]
2456    #[serde(rename_all = "snake_case")]
2457    #[derive(Clone, PartialEq, ::prost::Message)]
2458    pub struct StackDefinition {
2459        #[prost(message, optional, tag = "1")]
2460        pub max_slices_per_bar: ::core::option::Option<i32>,
2461        #[prost(message, optional, tag = "2")]
2462        pub stack_name_template: ::core::option::Option<::prost::alloc::string::String>,
2463    }
2464    #[derive(serde::Serialize, serde::Deserialize)]
2465    #[serde(rename_all = "snake_case")]
2466    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
2467    pub struct YAxisViewBy {
2468        #[prost(oneof = "y_axis_view_by::YAxisView", tags = "1, 2")]
2469        pub y_axis_view: ::core::option::Option<y_axis_view_by::YAxisView>,
2470    }
2471    /// Nested message and enum types in `YAxisViewBy`.
2472    pub mod y_axis_view_by {
2473        #[derive(serde::Serialize, serde::Deserialize)]
2474        #[serde(rename_all = "snake_case")]
2475        #[derive(Clone, Copy, PartialEq, ::prost::Message)]
2476        pub struct YAxisViewByCategory {}
2477        #[derive(serde::Serialize, serde::Deserialize)]
2478        #[serde(rename_all = "snake_case")]
2479        #[derive(Clone, Copy, PartialEq, ::prost::Message)]
2480        pub struct YAxisViewByValue {}
2481        #[derive(serde::Serialize, serde::Deserialize)]
2482        #[serde(rename_all = "snake_case")]
2483        #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
2484        pub enum YAxisView {
2485            #[prost(message, tag = "1")]
2486            Category(YAxisViewByCategory),
2487            #[prost(message, tag = "2")]
2488            Value(YAxisViewByValue),
2489        }
2490    }
2491    #[derive(serde::Serialize, serde::Deserialize)]
2492    #[serde(rename_all = "snake_case")]
2493    #[derive(Clone, PartialEq, ::prost::Message)]
2494    pub struct LogsQuery {
2495        #[prost(message, optional, tag = "1")]
2496        pub lucene_query: ::core::option::Option<
2497            super::super::super::common::LuceneQuery,
2498        >,
2499        #[prost(message, optional, tag = "2")]
2500        pub aggregation: ::core::option::Option<
2501            super::super::super::common::LogsAggregation,
2502        >,
2503        #[prost(message, repeated, tag = "3")]
2504        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::LogsFilter>,
2505        #[prost(message, repeated, tag = "4")]
2506        pub group_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2507        #[prost(message, optional, tag = "5")]
2508        pub stacked_group_name: ::core::option::Option<::prost::alloc::string::String>,
2509        #[prost(message, repeated, tag = "6")]
2510        pub group_names_fields: ::prost::alloc::vec::Vec<
2511            super::super::super::common::ObservationField,
2512        >,
2513        #[prost(message, optional, tag = "7")]
2514        pub stacked_group_name_field: ::core::option::Option<
2515            super::super::super::common::ObservationField,
2516        >,
2517        #[prost(message, optional, tag = "8")]
2518        pub time_frame: ::core::option::Option<
2519            super::super::super::common::TimeFrameSelect,
2520        >,
2521    }
2522    #[derive(serde::Serialize, serde::Deserialize)]
2523    #[serde(rename_all = "snake_case")]
2524    #[derive(Clone, PartialEq, ::prost::Message)]
2525    pub struct SpansQuery {
2526        #[prost(message, optional, tag = "1")]
2527        pub lucene_query: ::core::option::Option<
2528            super::super::super::common::LuceneQuery,
2529        >,
2530        #[prost(message, optional, tag = "2")]
2531        pub aggregation: ::core::option::Option<
2532            super::super::super::common::SpansAggregation,
2533        >,
2534        #[prost(message, repeated, tag = "3")]
2535        pub filters: ::prost::alloc::vec::Vec<
2536            super::super::filters::filter::SpansFilter,
2537        >,
2538        #[prost(message, repeated, tag = "4")]
2539        pub group_names: ::prost::alloc::vec::Vec<
2540            super::super::super::common::SpanField,
2541        >,
2542        #[prost(message, optional, tag = "5")]
2543        pub stacked_group_name: ::core::option::Option<
2544            super::super::super::common::SpanField,
2545        >,
2546        #[prost(message, optional, tag = "6")]
2547        pub time_frame: ::core::option::Option<
2548            super::super::super::common::TimeFrameSelect,
2549        >,
2550        #[prost(message, repeated, tag = "7")]
2551        pub group_names_fields: ::prost::alloc::vec::Vec<
2552            super::super::super::common::SpanObservationField,
2553        >,
2554        #[prost(message, optional, tag = "8")]
2555        pub stacked_group_name_field: ::core::option::Option<
2556            super::super::super::common::SpanObservationField,
2557        >,
2558    }
2559    #[derive(serde::Serialize, serde::Deserialize)]
2560    #[serde(rename_all = "snake_case")]
2561    #[derive(Clone, PartialEq, ::prost::Message)]
2562    pub struct MetricsQuery {
2563        #[prost(message, optional, tag = "1")]
2564        pub promql_query: ::core::option::Option<
2565            super::super::super::common::PromQlQuery,
2566        >,
2567        #[prost(message, repeated, tag = "2")]
2568        pub filters: ::prost::alloc::vec::Vec<
2569            super::super::filters::filter::MetricsFilter,
2570        >,
2571        #[prost(message, repeated, tag = "3")]
2572        pub group_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2573        #[prost(message, optional, tag = "4")]
2574        pub stacked_group_name: ::core::option::Option<::prost::alloc::string::String>,
2575        #[prost(enumeration = "super::common::MetricsQueryEditorMode", tag = "5")]
2576        pub editor_mode: i32,
2577        #[prost(message, optional, tag = "6")]
2578        pub time_frame: ::core::option::Option<
2579            super::super::super::common::TimeFrameSelect,
2580        >,
2581        #[prost(enumeration = "super::super::super::common::PromQlQueryType", tag = "7")]
2582        pub promql_query_type: i32,
2583        #[prost(enumeration = "super::common::Aggregation", tag = "8")]
2584        pub aggregation: i32,
2585    }
2586    #[derive(serde::Serialize, serde::Deserialize)]
2587    #[serde(rename_all = "snake_case")]
2588    #[derive(Clone, PartialEq, ::prost::Message)]
2589    pub struct DataprimeQuery {
2590        #[prost(message, optional, tag = "1")]
2591        pub dataprime_query: ::core::option::Option<
2592            super::super::super::common::DataprimeQuery,
2593        >,
2594        #[prost(message, repeated, tag = "2")]
2595        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::Source>,
2596        #[prost(message, repeated, tag = "3")]
2597        pub group_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2598        #[prost(message, optional, tag = "4")]
2599        pub stacked_group_name: ::core::option::Option<::prost::alloc::string::String>,
2600        #[prost(message, optional, tag = "5")]
2601        pub time_frame: ::core::option::Option<
2602            super::super::super::common::TimeFrameSelect,
2603        >,
2604    }
2605}
2606#[derive(serde::Serialize, serde::Deserialize)]
2607#[serde(rename_all = "snake_case")]
2608#[derive(Clone, PartialEq, ::prost::Message)]
2609pub struct LineChart {
2610    #[prost(message, optional, tag = "2")]
2611    pub legend: ::core::option::Option<common::Legend>,
2612    #[prost(message, optional, tag = "6")]
2613    pub tooltip: ::core::option::Option<line_chart::Tooltip>,
2614    #[prost(message, repeated, tag = "7")]
2615    pub query_definitions: ::prost::alloc::vec::Vec<line_chart::QueryDefinition>,
2616    #[prost(enumeration = "line_chart::StackedLine", tag = "9")]
2617    pub stacked_line: i32,
2618    #[prost(message, optional, tag = "10")]
2619    pub connect_nulls: ::core::option::Option<bool>,
2620}
2621/// Nested message and enum types in `LineChart`.
2622pub mod line_chart {
2623    #[derive(serde::Serialize, serde::Deserialize)]
2624    #[serde(rename_all = "snake_case")]
2625    #[derive(Clone, PartialEq, ::prost::Message)]
2626    pub struct QueryDefinition {
2627        #[prost(message, optional, tag = "1")]
2628        pub id: ::core::option::Option<::prost::alloc::string::String>,
2629        #[prost(message, optional, tag = "2")]
2630        pub query: ::core::option::Option<Query>,
2631        #[prost(message, optional, tag = "3")]
2632        pub series_name_template: ::core::option::Option<::prost::alloc::string::String>,
2633        #[prost(message, optional, tag = "4")]
2634        pub series_count_limit: ::core::option::Option<i64>,
2635        #[prost(enumeration = "super::common::Unit", tag = "5")]
2636        pub unit: i32,
2637        #[prost(enumeration = "super::common::ScaleType", tag = "6")]
2638        pub scale_type: i32,
2639        #[prost(message, optional, tag = "7")]
2640        pub name: ::core::option::Option<::prost::alloc::string::String>,
2641        #[prost(message, optional, tag = "8")]
2642        pub is_visible: ::core::option::Option<bool>,
2643        #[prost(message, optional, tag = "9")]
2644        pub color_scheme: ::core::option::Option<::prost::alloc::string::String>,
2645        #[prost(message, optional, tag = "10")]
2646        pub resolution: ::core::option::Option<Resolution>,
2647        #[prost(enumeration = "super::common::DataModeType", tag = "11")]
2648        pub data_mode_type: i32,
2649        #[prost(message, optional, tag = "12")]
2650        pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
2651        #[prost(message, optional, tag = "13")]
2652        pub decimal: ::core::option::Option<i32>,
2653        #[prost(message, optional, tag = "14")]
2654        pub hash_colors: ::core::option::Option<bool>,
2655        #[prost(message, optional, tag = "15")]
2656        pub y_axis_min: ::core::option::Option<f32>,
2657        #[prost(message, optional, tag = "16")]
2658        pub y_axis_max: ::core::option::Option<f32>,
2659        #[prost(message, optional, tag = "17")]
2660        pub decimal_precision: ::core::option::Option<bool>,
2661    }
2662    #[derive(serde::Serialize, serde::Deserialize)]
2663    #[serde(rename_all = "snake_case")]
2664    #[derive(Clone, PartialEq, ::prost::Message)]
2665    pub struct Query {
2666        #[prost(oneof = "query::Value", tags = "1, 2, 3, 5")]
2667        pub value: ::core::option::Option<query::Value>,
2668    }
2669    /// Nested message and enum types in `Query`.
2670    pub mod query {
2671        #[derive(serde::Serialize, serde::Deserialize)]
2672        #[serde(rename_all = "snake_case")]
2673        #[derive(Clone, PartialEq, ::prost::Oneof)]
2674        pub enum Value {
2675            #[prost(message, tag = "1")]
2676            Logs(super::LogsQuery),
2677            #[prost(message, tag = "2")]
2678            Metrics(super::MetricsQuery),
2679            #[prost(message, tag = "3")]
2680            Spans(super::SpansQuery),
2681            #[prost(message, tag = "5")]
2682            Dataprime(super::DataprimeQuery),
2683        }
2684    }
2685    #[derive(serde::Serialize, serde::Deserialize)]
2686    #[serde(rename_all = "snake_case")]
2687    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
2688    pub struct Tooltip {
2689        #[prost(message, optional, tag = "1")]
2690        pub show_labels: ::core::option::Option<bool>,
2691        #[prost(enumeration = "TooltipType", tag = "2")]
2692        pub r#type: i32,
2693    }
2694    #[derive(serde::Serialize, serde::Deserialize)]
2695    #[serde(rename_all = "snake_case")]
2696    #[derive(Clone, PartialEq, ::prost::Message)]
2697    pub struct LogsQuery {
2698        #[prost(message, optional, tag = "1")]
2699        pub lucene_query: ::core::option::Option<
2700            super::super::super::common::LuceneQuery,
2701        >,
2702        #[prost(message, repeated, tag = "2")]
2703        pub group_by: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2704        #[prost(message, repeated, tag = "3")]
2705        pub aggregations: ::prost::alloc::vec::Vec<
2706            super::super::super::common::LogsAggregation,
2707        >,
2708        #[prost(message, repeated, tag = "4")]
2709        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::LogsFilter>,
2710        #[prost(message, repeated, tag = "5")]
2711        pub group_bys: ::prost::alloc::vec::Vec<
2712            super::super::super::common::ObservationField,
2713        >,
2714        #[prost(message, optional, tag = "6")]
2715        pub time_frame: ::core::option::Option<
2716            super::super::super::common::TimeFrameSelect,
2717        >,
2718    }
2719    #[derive(serde::Serialize, serde::Deserialize)]
2720    #[serde(rename_all = "snake_case")]
2721    #[derive(Clone, PartialEq, ::prost::Message)]
2722    pub struct MetricsQuery {
2723        #[prost(message, optional, tag = "1")]
2724        pub promql_query: ::core::option::Option<
2725            super::super::super::common::PromQlQuery,
2726        >,
2727        #[prost(message, repeated, tag = "2")]
2728        pub filters: ::prost::alloc::vec::Vec<
2729            super::super::filters::filter::MetricsFilter,
2730        >,
2731        #[prost(enumeration = "super::common::MetricsQueryEditorMode", tag = "3")]
2732        pub editor_mode: i32,
2733        #[prost(message, optional, tag = "4")]
2734        pub time_frame: ::core::option::Option<
2735            super::super::super::common::TimeFrameSelect,
2736        >,
2737        #[prost(
2738            enumeration = "super::super::super::common::MetricsSeriesLimitType",
2739            tag = "5"
2740        )]
2741        pub series_limit_type: i32,
2742    }
2743    #[derive(serde::Serialize, serde::Deserialize)]
2744    #[serde(rename_all = "snake_case")]
2745    #[derive(Clone, PartialEq, ::prost::Message)]
2746    pub struct SpansQuery {
2747        #[prost(message, optional, tag = "1")]
2748        pub lucene_query: ::core::option::Option<
2749            super::super::super::common::LuceneQuery,
2750        >,
2751        #[prost(message, repeated, tag = "2")]
2752        pub group_by: ::prost::alloc::vec::Vec<super::super::super::common::SpanField>,
2753        #[prost(message, repeated, tag = "3")]
2754        pub aggregations: ::prost::alloc::vec::Vec<
2755            super::super::super::common::SpansAggregation,
2756        >,
2757        #[prost(message, repeated, tag = "4")]
2758        pub filters: ::prost::alloc::vec::Vec<
2759            super::super::filters::filter::SpansFilter,
2760        >,
2761        #[prost(message, optional, tag = "5")]
2762        pub time_frame: ::core::option::Option<
2763            super::super::super::common::TimeFrameSelect,
2764        >,
2765        #[prost(message, repeated, tag = "6")]
2766        pub group_bys: ::prost::alloc::vec::Vec<
2767            super::super::super::common::SpanObservationField,
2768        >,
2769    }
2770    #[derive(serde::Serialize, serde::Deserialize)]
2771    #[serde(rename_all = "snake_case")]
2772    #[derive(Clone, PartialEq, ::prost::Message)]
2773    pub struct DataprimeQuery {
2774        #[prost(message, optional, tag = "1")]
2775        pub dataprime_query: ::core::option::Option<
2776            super::super::super::common::DataprimeQuery,
2777        >,
2778        #[prost(message, repeated, tag = "2")]
2779        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::Source>,
2780        #[prost(message, optional, tag = "3")]
2781        pub time_frame: ::core::option::Option<
2782            super::super::super::common::TimeFrameSelect,
2783        >,
2784    }
2785    #[derive(serde::Serialize, serde::Deserialize)]
2786    #[serde(rename_all = "snake_case")]
2787    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
2788    pub struct Resolution {
2789        /// it should be oneof i think
2790        #[prost(message, optional, tag = "1")]
2791        pub interval: ::core::option::Option<::prost_wkt_types::Duration>,
2792        #[prost(message, optional, tag = "2")]
2793        pub buckets_presented: ::core::option::Option<i32>,
2794    }
2795    #[derive(serde::Serialize, serde::Deserialize)]
2796    #[serde(rename_all = "snake_case")]
2797    #[derive(
2798        Clone,
2799        Copy,
2800        Debug,
2801        PartialEq,
2802        Eq,
2803        Hash,
2804        PartialOrd,
2805        Ord,
2806        ::prost::Enumeration
2807    )]
2808    #[repr(i32)]
2809    pub enum TooltipType {
2810        Unspecified = 0,
2811        All = 1,
2812        Single = 2,
2813    }
2814    impl TooltipType {
2815        /// String value of the enum field names used in the ProtoBuf definition.
2816        ///
2817        /// The values are not transformed in any way and thus are considered stable
2818        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2819        pub fn as_str_name(&self) -> &'static str {
2820            match self {
2821                Self::Unspecified => "TOOLTIP_TYPE_UNSPECIFIED",
2822                Self::All => "TOOLTIP_TYPE_ALL",
2823                Self::Single => "TOOLTIP_TYPE_SINGLE",
2824            }
2825        }
2826        /// Creates an enum from field names used in the ProtoBuf definition.
2827        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2828            match value {
2829                "TOOLTIP_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
2830                "TOOLTIP_TYPE_ALL" => Some(Self::All),
2831                "TOOLTIP_TYPE_SINGLE" => Some(Self::Single),
2832                _ => None,
2833            }
2834        }
2835    }
2836    #[derive(serde::Serialize, serde::Deserialize)]
2837    #[serde(rename_all = "snake_case")]
2838    #[derive(
2839        Clone,
2840        Copy,
2841        Debug,
2842        PartialEq,
2843        Eq,
2844        Hash,
2845        PartialOrd,
2846        Ord,
2847        ::prost::Enumeration
2848    )]
2849    #[repr(i32)]
2850    pub enum StackedLine {
2851        Unspecified = 0,
2852        Absolute = 1,
2853        Relative = 2,
2854    }
2855    impl StackedLine {
2856        /// String value of the enum field names used in the ProtoBuf definition.
2857        ///
2858        /// The values are not transformed in any way and thus are considered stable
2859        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2860        pub fn as_str_name(&self) -> &'static str {
2861            match self {
2862                Self::Unspecified => "STACKED_LINE_UNSPECIFIED",
2863                Self::Absolute => "STACKED_LINE_ABSOLUTE",
2864                Self::Relative => "STACKED_LINE_RELATIVE",
2865            }
2866        }
2867        /// Creates an enum from field names used in the ProtoBuf definition.
2868        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2869            match value {
2870                "STACKED_LINE_UNSPECIFIED" => Some(Self::Unspecified),
2871                "STACKED_LINE_ABSOLUTE" => Some(Self::Absolute),
2872                "STACKED_LINE_RELATIVE" => Some(Self::Relative),
2873                _ => None,
2874            }
2875        }
2876    }
2877}
2878#[derive(serde::Serialize, serde::Deserialize)]
2879#[serde(rename_all = "snake_case")]
2880#[derive(Clone, PartialEq, ::prost::Message)]
2881pub struct Markdown {
2882    #[prost(message, optional, tag = "1")]
2883    pub markdown_text: ::core::option::Option<::prost::alloc::string::String>,
2884    #[prost(message, optional, tag = "2")]
2885    pub tooltip_text: ::core::option::Option<::prost::alloc::string::String>,
2886}
2887#[derive(serde::Serialize, serde::Deserialize)]
2888#[serde(rename_all = "snake_case")]
2889#[derive(Clone, PartialEq, ::prost::Message)]
2890pub struct PieChart {
2891    #[prost(message, optional, tag = "1")]
2892    pub query: ::core::option::Option<pie_chart::Query>,
2893    #[prost(message, optional, tag = "2")]
2894    pub max_slices_per_chart: ::core::option::Option<i32>,
2895    #[prost(message, optional, tag = "3")]
2896    pub min_slice_percentage: ::core::option::Option<i32>,
2897    #[prost(message, optional, tag = "4")]
2898    pub stack_definition: ::core::option::Option<pie_chart::StackDefinition>,
2899    #[prost(message, optional, tag = "5")]
2900    pub label_definition: ::core::option::Option<pie_chart::LabelDefinition>,
2901    /// not used, to be deprecated
2902    #[prost(message, optional, tag = "6")]
2903    pub show_legend: ::core::option::Option<bool>,
2904    #[prost(message, optional, tag = "7")]
2905    pub group_name_template: ::core::option::Option<::prost::alloc::string::String>,
2906    #[prost(enumeration = "common::Unit", tag = "8")]
2907    pub unit: i32,
2908    #[prost(message, optional, tag = "9")]
2909    pub color_scheme: ::core::option::Option<::prost::alloc::string::String>,
2910    #[prost(enumeration = "common::DataModeType", tag = "10")]
2911    pub data_mode_type: i32,
2912    #[prost(message, optional, tag = "11")]
2913    pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
2914    #[prost(message, optional, tag = "12")]
2915    pub decimal: ::core::option::Option<i32>,
2916    #[prost(message, optional, tag = "13")]
2917    pub legend: ::core::option::Option<common::Legend>,
2918    #[prost(message, optional, tag = "14")]
2919    pub hash_colors: ::core::option::Option<bool>,
2920    #[prost(message, optional, tag = "15")]
2921    pub decimal_precision: ::core::option::Option<bool>,
2922    #[prost(message, optional, tag = "16")]
2923    pub show_total: ::core::option::Option<bool>,
2924}
2925/// Nested message and enum types in `PieChart`.
2926pub mod pie_chart {
2927    #[derive(serde::Serialize, serde::Deserialize)]
2928    #[serde(rename_all = "snake_case")]
2929    #[derive(Clone, PartialEq, ::prost::Message)]
2930    pub struct Query {
2931        #[prost(oneof = "query::Value", tags = "1, 2, 3, 4")]
2932        pub value: ::core::option::Option<query::Value>,
2933    }
2934    /// Nested message and enum types in `Query`.
2935    pub mod query {
2936        #[derive(serde::Serialize, serde::Deserialize)]
2937        #[serde(rename_all = "snake_case")]
2938        #[derive(Clone, PartialEq, ::prost::Oneof)]
2939        pub enum Value {
2940            #[prost(message, tag = "1")]
2941            Logs(super::LogsQuery),
2942            #[prost(message, tag = "2")]
2943            Spans(super::SpansQuery),
2944            #[prost(message, tag = "3")]
2945            Metrics(super::MetricsQuery),
2946            #[prost(message, tag = "4")]
2947            Dataprime(super::DataprimeQuery),
2948        }
2949    }
2950    #[derive(serde::Serialize, serde::Deserialize)]
2951    #[serde(rename_all = "snake_case")]
2952    #[derive(Clone, PartialEq, ::prost::Message)]
2953    pub struct StackDefinition {
2954        #[prost(message, optional, tag = "1")]
2955        pub max_slices_per_stack: ::core::option::Option<i32>,
2956        #[prost(message, optional, tag = "2")]
2957        pub stack_name_template: ::core::option::Option<::prost::alloc::string::String>,
2958    }
2959    #[derive(serde::Serialize, serde::Deserialize)]
2960    #[serde(rename_all = "snake_case")]
2961    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
2962    pub struct LabelDefinition {
2963        #[prost(enumeration = "LabelSource", tag = "1")]
2964        pub label_source: i32,
2965        #[prost(message, optional, tag = "2")]
2966        pub is_visible: ::core::option::Option<bool>,
2967        #[prost(message, optional, tag = "3")]
2968        pub show_name: ::core::option::Option<bool>,
2969        #[prost(message, optional, tag = "4")]
2970        pub show_value: ::core::option::Option<bool>,
2971        #[prost(message, optional, tag = "5")]
2972        pub show_percentage: ::core::option::Option<bool>,
2973    }
2974    #[derive(serde::Serialize, serde::Deserialize)]
2975    #[serde(rename_all = "snake_case")]
2976    #[derive(Clone, PartialEq, ::prost::Message)]
2977    pub struct LogsQuery {
2978        #[prost(message, optional, tag = "1")]
2979        pub lucene_query: ::core::option::Option<
2980            super::super::super::common::LuceneQuery,
2981        >,
2982        #[prost(message, optional, tag = "2")]
2983        pub aggregation: ::core::option::Option<
2984            super::super::super::common::LogsAggregation,
2985        >,
2986        #[prost(message, repeated, tag = "3")]
2987        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::LogsFilter>,
2988        #[prost(message, repeated, tag = "4")]
2989        pub group_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2990        #[prost(message, optional, tag = "5")]
2991        pub stacked_group_name: ::core::option::Option<::prost::alloc::string::String>,
2992        #[prost(message, repeated, tag = "6")]
2993        pub group_names_fields: ::prost::alloc::vec::Vec<
2994            super::super::super::common::ObservationField,
2995        >,
2996        #[prost(message, optional, tag = "7")]
2997        pub stacked_group_name_field: ::core::option::Option<
2998            super::super::super::common::ObservationField,
2999        >,
3000        #[prost(message, optional, tag = "8")]
3001        pub time_frame: ::core::option::Option<
3002            super::super::super::common::TimeFrameSelect,
3003        >,
3004    }
3005    #[derive(serde::Serialize, serde::Deserialize)]
3006    #[serde(rename_all = "snake_case")]
3007    #[derive(Clone, PartialEq, ::prost::Message)]
3008    pub struct SpansQuery {
3009        #[prost(message, optional, tag = "1")]
3010        pub lucene_query: ::core::option::Option<
3011            super::super::super::common::LuceneQuery,
3012        >,
3013        #[prost(message, optional, tag = "2")]
3014        pub aggregation: ::core::option::Option<
3015            super::super::super::common::SpansAggregation,
3016        >,
3017        #[prost(message, repeated, tag = "3")]
3018        pub filters: ::prost::alloc::vec::Vec<
3019            super::super::filters::filter::SpansFilter,
3020        >,
3021        #[prost(message, repeated, tag = "4")]
3022        pub group_names: ::prost::alloc::vec::Vec<
3023            super::super::super::common::SpanField,
3024        >,
3025        #[prost(message, optional, tag = "5")]
3026        pub stacked_group_name: ::core::option::Option<
3027            super::super::super::common::SpanField,
3028        >,
3029        #[prost(message, optional, tag = "6")]
3030        pub time_frame: ::core::option::Option<
3031            super::super::super::common::TimeFrameSelect,
3032        >,
3033        #[prost(message, repeated, tag = "7")]
3034        pub group_names_fields: ::prost::alloc::vec::Vec<
3035            super::super::super::common::SpanObservationField,
3036        >,
3037        #[prost(message, optional, tag = "8")]
3038        pub stacked_group_name_field: ::core::option::Option<
3039            super::super::super::common::SpanObservationField,
3040        >,
3041    }
3042    #[derive(serde::Serialize, serde::Deserialize)]
3043    #[serde(rename_all = "snake_case")]
3044    #[derive(Clone, PartialEq, ::prost::Message)]
3045    pub struct MetricsQuery {
3046        #[prost(message, optional, tag = "1")]
3047        pub promql_query: ::core::option::Option<
3048            super::super::super::common::PromQlQuery,
3049        >,
3050        #[prost(message, repeated, tag = "2")]
3051        pub filters: ::prost::alloc::vec::Vec<
3052            super::super::filters::filter::MetricsFilter,
3053        >,
3054        #[prost(message, repeated, tag = "3")]
3055        pub group_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3056        #[prost(message, optional, tag = "4")]
3057        pub stacked_group_name: ::core::option::Option<::prost::alloc::string::String>,
3058        #[prost(enumeration = "super::common::MetricsQueryEditorMode", tag = "5")]
3059        pub editor_mode: i32,
3060        #[prost(message, optional, tag = "6")]
3061        pub time_frame: ::core::option::Option<
3062            super::super::super::common::TimeFrameSelect,
3063        >,
3064        #[prost(enumeration = "super::super::super::common::PromQlQueryType", tag = "7")]
3065        pub promql_query_type: i32,
3066        #[prost(enumeration = "super::common::Aggregation", tag = "8")]
3067        pub aggregation: i32,
3068    }
3069    #[derive(serde::Serialize, serde::Deserialize)]
3070    #[serde(rename_all = "snake_case")]
3071    #[derive(Clone, PartialEq, ::prost::Message)]
3072    pub struct DataprimeQuery {
3073        #[prost(message, optional, tag = "1")]
3074        pub dataprime_query: ::core::option::Option<
3075            super::super::super::common::DataprimeQuery,
3076        >,
3077        #[prost(message, repeated, tag = "2")]
3078        pub filters: ::prost::alloc::vec::Vec<super::super::filters::filter::Source>,
3079        #[prost(message, repeated, tag = "3")]
3080        pub group_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3081        #[prost(message, optional, tag = "4")]
3082        pub stacked_group_name: ::core::option::Option<::prost::alloc::string::String>,
3083        #[prost(message, optional, tag = "5")]
3084        pub time_frame: ::core::option::Option<
3085            super::super::super::common::TimeFrameSelect,
3086        >,
3087    }
3088    #[derive(serde::Serialize, serde::Deserialize)]
3089    #[serde(rename_all = "snake_case")]
3090    #[derive(
3091        Clone,
3092        Copy,
3093        Debug,
3094        PartialEq,
3095        Eq,
3096        Hash,
3097        PartialOrd,
3098        Ord,
3099        ::prost::Enumeration
3100    )]
3101    #[repr(i32)]
3102    pub enum LabelSource {
3103        Unspecified = 0,
3104        Inner = 1,
3105        Stack = 2,
3106    }
3107    impl LabelSource {
3108        /// String value of the enum field names used in the ProtoBuf definition.
3109        ///
3110        /// The values are not transformed in any way and thus are considered stable
3111        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
3112        pub fn as_str_name(&self) -> &'static str {
3113            match self {
3114                Self::Unspecified => "LABEL_SOURCE_UNSPECIFIED",
3115                Self::Inner => "LABEL_SOURCE_INNER",
3116                Self::Stack => "LABEL_SOURCE_STACK",
3117            }
3118        }
3119        /// Creates an enum from field names used in the ProtoBuf definition.
3120        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3121            match value {
3122                "LABEL_SOURCE_UNSPECIFIED" => Some(Self::Unspecified),
3123                "LABEL_SOURCE_INNER" => Some(Self::Inner),
3124                "LABEL_SOURCE_STACK" => Some(Self::Stack),
3125                _ => None,
3126            }
3127        }
3128    }
3129}