1#[derive(serde::Serialize, serde::Deserialize)]
3#[serde(rename_all = "snake_case")]
4#[derive(Clone, PartialEq, ::prost::Message)]
5pub struct DashboardFolder {
6 #[prost(message, optional, tag = "1")]
8 pub id: ::core::option::Option<::prost::alloc::string::String>,
9 #[prost(message, optional, tag = "2")]
11 pub name: ::core::option::Option<::prost::alloc::string::String>,
12 #[prost(message, optional, tag = "3")]
13 pub parent_id: ::core::option::Option<::prost::alloc::string::String>,
14}
15#[derive(serde::Serialize, serde::Deserialize)]
17#[serde(rename_all = "snake_case")]
18#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
19#[repr(i32)]
20pub enum SpanRelationType {
21 NoneUnspecified = 0,
23 Other = 1,
25 Parent = 2,
27 Root = 3,
29}
30impl SpanRelationType {
31 pub fn as_str_name(&self) -> &'static str {
36 match self {
37 Self::NoneUnspecified => "SPAN_RELATION_TYPE_NONE_UNSPECIFIED",
38 Self::Other => "SPAN_RELATION_TYPE_OTHER",
39 Self::Parent => "SPAN_RELATION_TYPE_PARENT",
40 Self::Root => "SPAN_RELATION_TYPE_ROOT",
41 }
42 }
43 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
45 match value {
46 "SPAN_RELATION_TYPE_NONE_UNSPECIFIED" => Some(Self::NoneUnspecified),
47 "SPAN_RELATION_TYPE_OTHER" => Some(Self::Other),
48 "SPAN_RELATION_TYPE_PARENT" => Some(Self::Parent),
49 "SPAN_RELATION_TYPE_ROOT" => Some(Self::Root),
50 _ => None,
51 }
52 }
53}
54#[derive(serde::Serialize, serde::Deserialize)]
55#[serde(rename_all = "snake_case")]
56#[derive(Clone, PartialEq, ::prost::Message)]
57pub struct ObservationField {
58 #[prost(message, repeated, tag = "1")]
59 pub keypath: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
60 #[prost(enumeration = "DatasetScope", tag = "2")]
61 pub scope: i32,
62}
63#[derive(serde::Serialize, serde::Deserialize)]
64#[serde(rename_all = "snake_case")]
65#[derive(Clone, PartialEq, ::prost::Message)]
66pub struct SpanObservationField {
67 #[prost(message, repeated, tag = "1")]
68 pub keypath: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
69 #[prost(enumeration = "DatasetScope", tag = "2")]
70 pub scope: i32,
71 #[prost(enumeration = "SpanRelationType", tag = "3")]
72 pub relation_type: i32,
73}
74#[derive(serde::Serialize, serde::Deserialize)]
75#[serde(rename_all = "snake_case")]
76#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
77#[repr(i32)]
78pub enum DatasetScope {
79 Unspecified = 0,
80 UserData = 1,
81 Label = 2,
82 Metadata = 3,
83}
84impl DatasetScope {
85 pub fn as_str_name(&self) -> &'static str {
90 match self {
91 Self::Unspecified => "DATASET_SCOPE_UNSPECIFIED",
92 Self::UserData => "DATASET_SCOPE_USER_DATA",
93 Self::Label => "DATASET_SCOPE_LABEL",
94 Self::Metadata => "DATASET_SCOPE_METADATA",
95 }
96 }
97 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
99 match value {
100 "DATASET_SCOPE_UNSPECIFIED" => Some(Self::Unspecified),
101 "DATASET_SCOPE_USER_DATA" => Some(Self::UserData),
102 "DATASET_SCOPE_LABEL" => Some(Self::Label),
103 "DATASET_SCOPE_METADATA" => Some(Self::Metadata),
104 _ => None,
105 }
106 }
107}
108#[derive(serde::Serialize, serde::Deserialize)]
109#[serde(rename_all = "snake_case")]
110#[derive(Clone, PartialEq, ::prost::Message)]
111pub struct DataprimeQuery {
112 #[prost(string, tag = "1")]
113 pub text: ::prost::alloc::string::String,
114}
115#[derive(serde::Serialize, serde::Deserialize)]
116#[serde(rename_all = "snake_case")]
117#[derive(Clone, PartialEq, ::prost::Message)]
118pub struct SerializedDataprimeQuery {
119 #[prost(bytes = "vec", tag = "1")]
120 pub data: ::prost::alloc::vec::Vec<u8>,
121}
122#[derive(serde::Serialize, serde::Deserialize)]
123#[serde(rename_all = "snake_case")]
124#[derive(Clone, PartialEq, ::prost::Message)]
125pub struct FullDataprimeQuery {
126 #[prost(message, optional, tag = "1")]
127 pub serialized: ::core::option::Option<SerializedDataprimeQuery>,
128 #[prost(message, optional, tag = "2")]
129 pub raw: ::core::option::Option<DataprimeQuery>,
130}
131#[derive(serde::Serialize, serde::Deserialize)]
132#[serde(rename_all = "snake_case")]
133#[derive(Clone, PartialEq, ::prost::Message)]
134pub struct PromQlQuery {
135 #[prost(message, optional, tag = "1")]
136 pub value: ::core::option::Option<::prost::alloc::string::String>,
137}
138#[derive(serde::Serialize, serde::Deserialize)]
139#[serde(rename_all = "snake_case")]
140#[derive(Clone, PartialEq, ::prost::Message)]
141pub struct LuceneQuery {
142 #[prost(message, optional, tag = "1")]
143 pub value: ::core::option::Option<::prost::alloc::string::String>,
144}
145#[derive(serde::Serialize, serde::Deserialize)]
146#[serde(rename_all = "snake_case")]
147#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
148#[repr(i32)]
149pub enum PromQlQueryType {
150 Unspecified = 0,
151 Range = 1,
152 Instant = 2,
153}
154impl PromQlQueryType {
155 pub fn as_str_name(&self) -> &'static str {
160 match self {
161 Self::Unspecified => "PROM_QL_QUERY_TYPE_UNSPECIFIED",
162 Self::Range => "PROM_QL_QUERY_TYPE_RANGE",
163 Self::Instant => "PROM_QL_QUERY_TYPE_INSTANT",
164 }
165 }
166 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
168 match value {
169 "PROM_QL_QUERY_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
170 "PROM_QL_QUERY_TYPE_RANGE" => Some(Self::Range),
171 "PROM_QL_QUERY_TYPE_INSTANT" => Some(Self::Instant),
172 _ => None,
173 }
174 }
175}
176#[derive(serde::Serialize, serde::Deserialize)]
177#[serde(rename_all = "snake_case")]
178#[derive(Clone, PartialEq, ::prost::Message)]
179pub struct SpanField {
180 #[prost(oneof = "span_field::Value", tags = "1, 2, 3")]
181 pub value: ::core::option::Option<span_field::Value>,
182}
183pub mod span_field {
185 #[derive(serde::Serialize, serde::Deserialize)]
186 #[serde(rename_all = "snake_case")]
187 #[derive(
188 Clone,
189 Copy,
190 Debug,
191 PartialEq,
192 Eq,
193 Hash,
194 PartialOrd,
195 Ord,
196 ::prost::Enumeration
197 )]
198 #[repr(i32)]
199 pub enum MetadataField {
200 Unspecified = 0,
201 ApplicationName = 1,
202 SubsystemName = 2,
203 ServiceName = 3,
204 OperationName = 4,
205 }
206 impl MetadataField {
207 pub fn as_str_name(&self) -> &'static str {
212 match self {
213 Self::Unspecified => "METADATA_FIELD_UNSPECIFIED",
214 Self::ApplicationName => "METADATA_FIELD_APPLICATION_NAME",
215 Self::SubsystemName => "METADATA_FIELD_SUBSYSTEM_NAME",
216 Self::ServiceName => "METADATA_FIELD_SERVICE_NAME",
217 Self::OperationName => "METADATA_FIELD_OPERATION_NAME",
218 }
219 }
220 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
222 match value {
223 "METADATA_FIELD_UNSPECIFIED" => Some(Self::Unspecified),
224 "METADATA_FIELD_APPLICATION_NAME" => Some(Self::ApplicationName),
225 "METADATA_FIELD_SUBSYSTEM_NAME" => Some(Self::SubsystemName),
226 "METADATA_FIELD_SERVICE_NAME" => Some(Self::ServiceName),
227 "METADATA_FIELD_OPERATION_NAME" => Some(Self::OperationName),
228 _ => None,
229 }
230 }
231 }
232 #[derive(serde::Serialize, serde::Deserialize)]
233 #[serde(rename_all = "snake_case")]
234 #[derive(Clone, PartialEq, ::prost::Oneof)]
235 pub enum Value {
236 #[prost(enumeration = "MetadataField", tag = "1")]
237 MetadataField(i32),
238 #[prost(message, tag = "2")]
239 TagField(::prost::alloc::string::String),
240 #[prost(message, tag = "3")]
241 ProcessTagField(::prost::alloc::string::String),
242 }
243}
244#[derive(serde::Serialize, serde::Deserialize)]
245#[serde(rename_all = "snake_case")]
246#[derive(Clone, PartialEq, ::prost::Message)]
247pub struct LogsAggregation {
248 #[prost(oneof = "logs_aggregation::Value", tags = "1, 2, 3, 4, 5, 6, 7")]
249 pub value: ::core::option::Option<logs_aggregation::Value>,
250}
251pub mod logs_aggregation {
253 #[derive(serde::Serialize, serde::Deserialize)]
254 #[serde(rename_all = "snake_case")]
255 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
256 pub struct Count {}
257 #[derive(serde::Serialize, serde::Deserialize)]
258 #[serde(rename_all = "snake_case")]
259 #[derive(Clone, PartialEq, ::prost::Message)]
260 pub struct CountDistinct {
261 #[prost(message, optional, tag = "1")]
262 pub field: ::core::option::Option<::prost::alloc::string::String>,
263 #[prost(message, optional, tag = "2")]
264 pub observation_field: ::core::option::Option<super::ObservationField>,
265 }
266 #[derive(serde::Serialize, serde::Deserialize)]
267 #[serde(rename_all = "snake_case")]
268 #[derive(Clone, PartialEq, ::prost::Message)]
269 pub struct Sum {
270 #[prost(message, optional, tag = "1")]
271 pub field: ::core::option::Option<::prost::alloc::string::String>,
272 #[prost(message, optional, tag = "2")]
273 pub observation_field: ::core::option::Option<super::ObservationField>,
274 }
275 #[derive(serde::Serialize, serde::Deserialize)]
276 #[serde(rename_all = "snake_case")]
277 #[derive(Clone, PartialEq, ::prost::Message)]
278 pub struct Average {
279 #[prost(message, optional, tag = "1")]
280 pub field: ::core::option::Option<::prost::alloc::string::String>,
281 #[prost(message, optional, tag = "2")]
282 pub observation_field: ::core::option::Option<super::ObservationField>,
283 }
284 #[derive(serde::Serialize, serde::Deserialize)]
285 #[serde(rename_all = "snake_case")]
286 #[derive(Clone, PartialEq, ::prost::Message)]
287 pub struct Min {
288 #[prost(message, optional, tag = "1")]
289 pub field: ::core::option::Option<::prost::alloc::string::String>,
290 #[prost(message, optional, tag = "2")]
291 pub observation_field: ::core::option::Option<super::ObservationField>,
292 }
293 #[derive(serde::Serialize, serde::Deserialize)]
294 #[serde(rename_all = "snake_case")]
295 #[derive(Clone, PartialEq, ::prost::Message)]
296 pub struct Max {
297 #[prost(message, optional, tag = "1")]
298 pub field: ::core::option::Option<::prost::alloc::string::String>,
299 #[prost(message, optional, tag = "2")]
300 pub observation_field: ::core::option::Option<super::ObservationField>,
301 }
302 #[derive(serde::Serialize, serde::Deserialize)]
303 #[serde(rename_all = "snake_case")]
304 #[derive(Clone, PartialEq, ::prost::Message)]
305 pub struct Percentile {
306 #[prost(message, optional, tag = "1")]
307 pub field: ::core::option::Option<::prost::alloc::string::String>,
308 #[prost(message, optional, tag = "2")]
310 pub percent: ::core::option::Option<f64>,
311 #[prost(message, optional, tag = "3")]
312 pub observation_field: ::core::option::Option<super::ObservationField>,
313 }
314 #[derive(serde::Serialize, serde::Deserialize)]
315 #[serde(rename_all = "snake_case")]
316 #[derive(Clone, PartialEq, ::prost::Oneof)]
317 pub enum Value {
318 #[prost(message, tag = "1")]
319 Count(Count),
320 #[prost(message, tag = "2")]
321 CountDistinct(CountDistinct),
322 #[prost(message, tag = "3")]
323 Sum(Sum),
324 #[prost(message, tag = "4")]
325 Average(Average),
326 #[prost(message, tag = "5")]
327 Min(Min),
328 #[prost(message, tag = "6")]
329 Max(Max),
330 #[prost(message, tag = "7")]
331 Percentile(Percentile),
332 }
333}
334#[derive(serde::Serialize, serde::Deserialize)]
335#[serde(rename_all = "snake_case")]
336#[derive(Clone, Copy, PartialEq, ::prost::Message)]
337pub struct SpansAggregation {
338 #[prost(oneof = "spans_aggregation::Aggregation", tags = "1, 2")]
339 pub aggregation: ::core::option::Option<spans_aggregation::Aggregation>,
340}
341pub mod spans_aggregation {
343 #[derive(serde::Serialize, serde::Deserialize)]
344 #[serde(rename_all = "snake_case")]
345 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
346 pub struct MetricAggregation {
347 #[prost(enumeration = "metric_aggregation::MetricField", tag = "1")]
348 pub metric_field: i32,
349 #[prost(enumeration = "metric_aggregation::MetricAggregationType", tag = "2")]
350 pub aggregation_type: i32,
351 }
352 pub mod metric_aggregation {
354 #[derive(serde::Serialize, serde::Deserialize)]
355 #[serde(rename_all = "snake_case")]
356 #[derive(
357 Clone,
358 Copy,
359 Debug,
360 PartialEq,
361 Eq,
362 Hash,
363 PartialOrd,
364 Ord,
365 ::prost::Enumeration
366 )]
367 #[repr(i32)]
368 pub enum MetricField {
369 Unspecified = 0,
370 Duration = 1,
371 }
372 impl MetricField {
373 pub fn as_str_name(&self) -> &'static str {
378 match self {
379 Self::Unspecified => "METRIC_FIELD_UNSPECIFIED",
380 Self::Duration => "METRIC_FIELD_DURATION",
381 }
382 }
383 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
385 match value {
386 "METRIC_FIELD_UNSPECIFIED" => Some(Self::Unspecified),
387 "METRIC_FIELD_DURATION" => Some(Self::Duration),
388 _ => None,
389 }
390 }
391 }
392 #[derive(serde::Serialize, serde::Deserialize)]
393 #[serde(rename_all = "snake_case")]
394 #[derive(
395 Clone,
396 Copy,
397 Debug,
398 PartialEq,
399 Eq,
400 Hash,
401 PartialOrd,
402 Ord,
403 ::prost::Enumeration
404 )]
405 #[repr(i32)]
406 pub enum MetricAggregationType {
407 Unspecified = 0,
408 Min = 1,
409 Max = 2,
410 Average = 3,
411 Sum = 4,
412 Percentile99 = 5,
413 Percentile95 = 6,
414 Percentile50 = 7,
415 }
416 impl MetricAggregationType {
417 pub fn as_str_name(&self) -> &'static str {
422 match self {
423 Self::Unspecified => "METRIC_AGGREGATION_TYPE_UNSPECIFIED",
424 Self::Min => "METRIC_AGGREGATION_TYPE_MIN",
425 Self::Max => "METRIC_AGGREGATION_TYPE_MAX",
426 Self::Average => "METRIC_AGGREGATION_TYPE_AVERAGE",
427 Self::Sum => "METRIC_AGGREGATION_TYPE_SUM",
428 Self::Percentile99 => "METRIC_AGGREGATION_TYPE_PERCENTILE_99",
429 Self::Percentile95 => "METRIC_AGGREGATION_TYPE_PERCENTILE_95",
430 Self::Percentile50 => "METRIC_AGGREGATION_TYPE_PERCENTILE_50",
431 }
432 }
433 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
435 match value {
436 "METRIC_AGGREGATION_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
437 "METRIC_AGGREGATION_TYPE_MIN" => Some(Self::Min),
438 "METRIC_AGGREGATION_TYPE_MAX" => Some(Self::Max),
439 "METRIC_AGGREGATION_TYPE_AVERAGE" => Some(Self::Average),
440 "METRIC_AGGREGATION_TYPE_SUM" => Some(Self::Sum),
441 "METRIC_AGGREGATION_TYPE_PERCENTILE_99" => Some(Self::Percentile99),
442 "METRIC_AGGREGATION_TYPE_PERCENTILE_95" => Some(Self::Percentile95),
443 "METRIC_AGGREGATION_TYPE_PERCENTILE_50" => Some(Self::Percentile50),
444 _ => None,
445 }
446 }
447 }
448 }
449 #[derive(serde::Serialize, serde::Deserialize)]
450 #[serde(rename_all = "snake_case")]
451 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
452 pub struct DimensionAggregation {
453 #[prost(enumeration = "dimension_aggregation::DimensionField", tag = "1")]
454 pub dimension_field: i32,
455 #[prost(
456 enumeration = "dimension_aggregation::DimensionAggregationType",
457 tag = "2"
458 )]
459 pub aggregation_type: i32,
460 }
461 pub mod dimension_aggregation {
463 #[derive(serde::Serialize, serde::Deserialize)]
464 #[serde(rename_all = "snake_case")]
465 #[derive(
466 Clone,
467 Copy,
468 Debug,
469 PartialEq,
470 Eq,
471 Hash,
472 PartialOrd,
473 Ord,
474 ::prost::Enumeration
475 )]
476 #[repr(i32)]
477 pub enum DimensionField {
478 Unspecified = 0,
479 TraceId = 1,
480 }
481 impl DimensionField {
482 pub fn as_str_name(&self) -> &'static str {
487 match self {
488 Self::Unspecified => "DIMENSION_FIELD_UNSPECIFIED",
489 Self::TraceId => "DIMENSION_FIELD_TRACE_ID",
490 }
491 }
492 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
494 match value {
495 "DIMENSION_FIELD_UNSPECIFIED" => Some(Self::Unspecified),
496 "DIMENSION_FIELD_TRACE_ID" => Some(Self::TraceId),
497 _ => None,
498 }
499 }
500 }
501 #[derive(serde::Serialize, serde::Deserialize)]
502 #[serde(rename_all = "snake_case")]
503 #[derive(
504 Clone,
505 Copy,
506 Debug,
507 PartialEq,
508 Eq,
509 Hash,
510 PartialOrd,
511 Ord,
512 ::prost::Enumeration
513 )]
514 #[repr(i32)]
515 pub enum DimensionAggregationType {
516 Unspecified = 0,
517 UniqueCount = 1,
518 ErrorCount = 2,
519 }
520 impl DimensionAggregationType {
521 pub fn as_str_name(&self) -> &'static str {
526 match self {
527 Self::Unspecified => "DIMENSION_AGGREGATION_TYPE_UNSPECIFIED",
528 Self::UniqueCount => "DIMENSION_AGGREGATION_TYPE_UNIQUE_COUNT",
529 Self::ErrorCount => "DIMENSION_AGGREGATION_TYPE_ERROR_COUNT",
530 }
531 }
532 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
534 match value {
535 "DIMENSION_AGGREGATION_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
536 "DIMENSION_AGGREGATION_TYPE_UNIQUE_COUNT" => Some(Self::UniqueCount),
537 "DIMENSION_AGGREGATION_TYPE_ERROR_COUNT" => Some(Self::ErrorCount),
538 _ => None,
539 }
540 }
541 }
542 }
543 #[derive(serde::Serialize, serde::Deserialize)]
544 #[serde(rename_all = "snake_case")]
545 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
546 pub enum Aggregation {
547 #[prost(message, tag = "1")]
548 MetricAggregation(MetricAggregation),
549 #[prost(message, tag = "2")]
550 DimensionAggregation(DimensionAggregation),
551 }
552}
553#[derive(serde::Serialize, serde::Deserialize)]
554#[serde(rename_all = "snake_case")]
555#[derive(Clone, Copy, PartialEq, ::prost::Message)]
556pub struct TimeFrameSelect {
557 #[prost(oneof = "time_frame_select::Value", tags = "1, 2")]
558 pub value: ::core::option::Option<time_frame_select::Value>,
559}
560pub mod time_frame_select {
562 #[derive(serde::Serialize, serde::Deserialize)]
563 #[serde(rename_all = "snake_case")]
564 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
565 pub enum Value {
566 #[prost(message, tag = "1")]
567 AbsoluteTimeFrame(super::TimeFrame),
568 #[prost(message, tag = "2")]
569 RelativeTimeFrame(::prost_wkt_types::Duration),
570 }
571}
572#[derive(serde::Serialize, serde::Deserialize)]
573#[serde(rename_all = "snake_case")]
574#[derive(Clone, Copy, PartialEq, ::prost::Message)]
575pub struct TimeFrame {
576 #[prost(message, optional, tag = "1")]
577 pub from: ::core::option::Option<::prost_wkt_types::Timestamp>,
578 #[prost(message, optional, tag = "2")]
579 pub to: ::core::option::Option<::prost_wkt_types::Timestamp>,
580}
581#[derive(serde::Serialize, serde::Deserialize)]
582#[serde(rename_all = "snake_case")]
583#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
584#[repr(i32)]
585pub enum OrderDirection {
586 Unspecified = 0,
587 Asc = 1,
588 Desc = 2,
589}
590impl OrderDirection {
591 pub fn as_str_name(&self) -> &'static str {
596 match self {
597 Self::Unspecified => "ORDER_DIRECTION_UNSPECIFIED",
598 Self::Asc => "ORDER_DIRECTION_ASC",
599 Self::Desc => "ORDER_DIRECTION_DESC",
600 }
601 }
602 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
604 match value {
605 "ORDER_DIRECTION_UNSPECIFIED" => Some(Self::Unspecified),
606 "ORDER_DIRECTION_ASC" => Some(Self::Asc),
607 "ORDER_DIRECTION_DESC" => Some(Self::Desc),
608 _ => None,
609 }
610 }
611}
612#[derive(serde::Serialize, serde::Deserialize)]
613#[serde(rename_all = "snake_case")]
614#[derive(Clone, PartialEq, ::prost::Message)]
615pub struct OrderingField {
616 #[prost(message, optional, tag = "1")]
617 pub field: ::core::option::Option<::prost::alloc::string::String>,
618 #[prost(enumeration = "OrderDirection", tag = "2")]
619 pub order_direction: i32,
620}
621#[derive(serde::Serialize, serde::Deserialize)]
626#[serde(rename_all = "snake_case")]
627#[derive(Clone, PartialEq, ::prost::Message)]
628pub struct Action {
629 #[prost(message, optional, tag = "1")]
630 pub id: ::core::option::Option<::prost::alloc::string::String>,
631 #[prost(message, optional, tag = "2")]
632 pub name: ::core::option::Option<::prost::alloc::string::String>,
633 #[prost(message, optional, tag = "3")]
634 pub should_open_in_new_window: ::core::option::Option<bool>,
635 #[prost(message, optional, tag = "4")]
636 pub is_private: ::core::option::Option<bool>,
637 #[prost(message, optional, tag = "5")]
638 pub dashboard_id: ::core::option::Option<::prost::alloc::string::String>,
639 #[prost(message, optional, tag = "6")]
640 pub widget_id: ::core::option::Option<::prost::alloc::string::String>,
641 #[prost(message, optional, tag = "7")]
642 pub definition: ::core::option::Option<ActionDefinition>,
643 #[prost(enumeration = "ActionDataSourceType", optional, tag = "8")]
644 pub data_source: ::core::option::Option<i32>,
645}
646#[derive(serde::Serialize, serde::Deserialize)]
647#[serde(rename_all = "snake_case")]
648#[derive(Clone, PartialEq, ::prost::Message)]
649pub struct DashboardAction {
650 #[prost(message, optional, tag = "1")]
651 pub id: ::core::option::Option<::prost::alloc::string::String>,
652 #[prost(message, optional, tag = "2")]
653 pub name: ::core::option::Option<::prost::alloc::string::String>,
654 #[prost(message, optional, tag = "3")]
655 pub should_open_in_new_window: ::core::option::Option<bool>,
656 #[prost(message, optional, tag = "4")]
657 pub widget_id: ::core::option::Option<::prost::alloc::string::String>,
658 #[prost(message, optional, tag = "5")]
659 pub definition: ::core::option::Option<ActionDefinition>,
660 #[prost(enumeration = "ActionDataSourceType", optional, tag = "6")]
661 pub data_source: ::core::option::Option<i32>,
662}
663#[derive(serde::Serialize, serde::Deserialize)]
664#[serde(rename_all = "snake_case")]
665#[derive(Clone, PartialEq, ::prost::Message)]
666pub struct ActionDefinition {
667 #[prost(oneof = "action_definition::Type", tags = "1, 2")]
668 pub r#type: ::core::option::Option<action_definition::Type>,
669}
670pub mod action_definition {
672 #[derive(serde::Serialize, serde::Deserialize)]
673 #[serde(rename_all = "snake_case")]
674 #[derive(Clone, PartialEq, ::prost::Message)]
675 pub struct CustomAction {
676 #[prost(message, optional, tag = "1")]
677 pub url: ::core::option::Option<::prost::alloc::string::String>,
678 }
679 #[derive(serde::Serialize, serde::Deserialize)]
680 #[serde(rename_all = "snake_case")]
681 #[derive(Clone, PartialEq, ::prost::Message)]
682 pub struct GoToDashboardTemplateAction {
683 #[prost(message, optional, tag = "1")]
684 pub dashboard_id: ::core::option::Option<::prost::alloc::string::String>,
685 }
686 #[derive(serde::Serialize, serde::Deserialize)]
687 #[serde(rename_all = "snake_case")]
688 #[derive(Clone, PartialEq, ::prost::Oneof)]
689 pub enum Type {
690 #[prost(message, tag = "1")]
691 CustomAction(CustomAction),
692 #[prost(message, tag = "2")]
693 GoToDashboardAction(GoToDashboardTemplateAction),
694 }
695}
696#[derive(serde::Serialize, serde::Deserialize)]
697#[serde(rename_all = "snake_case")]
698#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
699#[repr(i32)]
700pub enum ActionDataSourceType {
701 NoneUnspecified = 0,
702 Logs = 1,
703 Spans = 2,
704 Metrics = 3,
705 Dataprime = 4,
706}
707impl ActionDataSourceType {
708 pub fn as_str_name(&self) -> &'static str {
713 match self {
714 Self::NoneUnspecified => "ACTION_DATA_SOURCE_TYPE_NONE_UNSPECIFIED",
715 Self::Logs => "ACTION_DATA_SOURCE_TYPE_LOGS",
716 Self::Spans => "ACTION_DATA_SOURCE_TYPE_SPANS",
717 Self::Metrics => "ACTION_DATA_SOURCE_TYPE_METRICS",
718 Self::Dataprime => "ACTION_DATA_SOURCE_TYPE_DATAPRIME",
719 }
720 }
721 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
723 match value {
724 "ACTION_DATA_SOURCE_TYPE_NONE_UNSPECIFIED" => Some(Self::NoneUnspecified),
725 "ACTION_DATA_SOURCE_TYPE_LOGS" => Some(Self::Logs),
726 "ACTION_DATA_SOURCE_TYPE_SPANS" => Some(Self::Spans),
727 "ACTION_DATA_SOURCE_TYPE_METRICS" => Some(Self::Metrics),
728 "ACTION_DATA_SOURCE_TYPE_DATAPRIME" => Some(Self::Dataprime),
729 _ => None,
730 }
731 }
732}