1#[derive(Clone, PartialEq, ::prost::Message)]
3pub struct AttributeKey {
4 #[prost(enumeration = "attribute_key::Type", tag = "1")]
5 pub r#type: i32,
6 #[prost(string, tag = "2")]
10 pub name: ::prost::alloc::string::String,
11}
12pub mod attribute_key {
14 #[derive(
16 Clone,
17 Copy,
18 Debug,
19 PartialEq,
20 Eq,
21 Hash,
22 PartialOrd,
23 Ord,
24 ::prost::Enumeration
25 )]
26 #[repr(i32)]
27 pub enum Type {
28 Unspecified = 0,
30 String = 1,
31 Boolean = 2,
32 Float = 3,
34 Int = 4,
36 Double = 5,
37 Array = 6,
38 }
39 impl Type {
40 pub fn as_str_name(&self) -> &'static str {
45 match self {
46 Type::Unspecified => "TYPE_UNSPECIFIED",
47 Type::String => "TYPE_STRING",
48 Type::Boolean => "TYPE_BOOLEAN",
49 Type::Float => "TYPE_FLOAT",
50 Type::Int => "TYPE_INT",
51 Type::Double => "TYPE_DOUBLE",
52 Type::Array => "TYPE_ARRAY",
53 }
54 }
55 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
57 match value {
58 "TYPE_UNSPECIFIED" => Some(Self::Unspecified),
59 "TYPE_STRING" => Some(Self::String),
60 "TYPE_BOOLEAN" => Some(Self::Boolean),
61 "TYPE_FLOAT" => Some(Self::Float),
62 "TYPE_INT" => Some(Self::Int),
63 "TYPE_DOUBLE" => Some(Self::Double),
64 "TYPE_ARRAY" => Some(Self::Array),
65 _ => None,
66 }
67 }
68 }
69}
70#[derive(Clone, PartialEq, ::prost::Message)]
86pub struct VirtualColumnContext {
87 #[prost(string, tag = "1")]
88 pub from_column_name: ::prost::alloc::string::String,
89 #[prost(string, tag = "2")]
90 pub to_column_name: ::prost::alloc::string::String,
91 #[prost(map = "string, string", tag = "3")]
92 pub value_map: ::std::collections::HashMap<
93 ::prost::alloc::string::String,
94 ::prost::alloc::string::String,
95 >,
96 #[prost(string, tag = "4")]
97 pub default_value: ::prost::alloc::string::String,
98}
99#[derive(Clone, PartialEq, ::prost::Message)]
100pub struct StrArray {
101 #[prost(string, repeated, tag = "1")]
102 pub values: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
103}
104#[derive(Clone, PartialEq, ::prost::Message)]
105pub struct IntArray {
106 #[prost(int64, repeated, tag = "1")]
107 pub values: ::prost::alloc::vec::Vec<i64>,
108}
109#[derive(Clone, PartialEq, ::prost::Message)]
110pub struct FloatArray {
111 #[prost(float, repeated, tag = "1")]
112 pub values: ::prost::alloc::vec::Vec<f32>,
113}
114#[derive(Clone, PartialEq, ::prost::Message)]
115pub struct DoubleArray {
116 #[prost(double, repeated, tag = "1")]
117 pub values: ::prost::alloc::vec::Vec<f64>,
118}
119#[derive(Clone, PartialEq, ::prost::Message)]
120pub struct Array {
121 #[prost(message, repeated, tag = "1")]
122 pub values: ::prost::alloc::vec::Vec<AttributeValue>,
123}
124#[derive(Clone, PartialEq, ::prost::Message)]
125pub struct AttributeValue {
126 #[prost(bool, tag = "11")]
128 pub is_null: bool,
129 #[prost(
130 oneof = "attribute_value::Value",
131 tags = "1, 2, 4, 9, 12, 3, 8, 10, 7, 6, 5"
132 )]
133 pub value: ::core::option::Option<attribute_value::Value>,
134}
135pub mod attribute_value {
137 #[derive(Clone, PartialEq, ::prost::Oneof)]
138 pub enum Value {
139 #[prost(bool, tag = "1")]
140 ValBool(bool),
141 #[prost(string, tag = "2")]
142 ValStr(::prost::alloc::string::String),
143 #[prost(int64, tag = "4")]
144 ValInt(i64),
145 #[prost(double, tag = "9")]
146 ValDouble(f64),
147 #[prost(message, tag = "12")]
148 ValArray(super::Array),
149 #[prost(float, tag = "3")]
151 ValFloat(f32),
152 #[prost(message, tag = "8")]
153 ValFloatArray(super::FloatArray),
154 #[prost(message, tag = "10")]
155 ValDoubleArray(super::DoubleArray),
156 #[prost(message, tag = "7")]
157 ValIntArray(super::IntArray),
158 #[prost(message, tag = "6")]
159 ValStrArray(super::StrArray),
160 #[prost(bool, tag = "5")]
161 ValNull(bool),
162 }
163}
164#[derive(Clone, PartialEq, ::prost::Message)]
165pub struct AttributeAggregation {
166 #[prost(enumeration = "Function", tag = "1")]
167 pub aggregate: i32,
168 #[prost(message, optional, tag = "2")]
169 pub key: ::core::option::Option<AttributeKey>,
170 #[prost(string, tag = "3")]
171 pub label: ::prost::alloc::string::String,
172 #[prost(enumeration = "ExtrapolationMode", tag = "4")]
173 pub extrapolation_mode: i32,
174}
175#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
176#[repr(i32)]
177pub enum Function {
178 Unspecified = 0,
179 Sum = 1,
180 Average = 2,
182 Count = 3,
183 P50 = 4,
184 P75 = 12,
185 P90 = 5,
186 P95 = 6,
187 P99 = 7,
188 Avg = 8,
189 Max = 9,
190 Min = 10,
191 Uniq = 11,
192 Any = 13,
193}
194impl Function {
195 pub fn as_str_name(&self) -> &'static str {
200 match self {
201 Function::Unspecified => "FUNCTION_UNSPECIFIED",
202 Function::Sum => "FUNCTION_SUM",
203 Function::Average => "FUNCTION_AVERAGE",
204 Function::Count => "FUNCTION_COUNT",
205 Function::P50 => "FUNCTION_P50",
206 Function::P75 => "FUNCTION_P75",
207 Function::P90 => "FUNCTION_P90",
208 Function::P95 => "FUNCTION_P95",
209 Function::P99 => "FUNCTION_P99",
210 Function::Avg => "FUNCTION_AVG",
211 Function::Max => "FUNCTION_MAX",
212 Function::Min => "FUNCTION_MIN",
213 Function::Uniq => "FUNCTION_UNIQ",
214 Function::Any => "FUNCTION_ANY",
215 }
216 }
217 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
219 match value {
220 "FUNCTION_UNSPECIFIED" => Some(Self::Unspecified),
221 "FUNCTION_SUM" => Some(Self::Sum),
222 "FUNCTION_AVERAGE" => Some(Self::Average),
223 "FUNCTION_COUNT" => Some(Self::Count),
224 "FUNCTION_P50" => Some(Self::P50),
225 "FUNCTION_P75" => Some(Self::P75),
226 "FUNCTION_P90" => Some(Self::P90),
227 "FUNCTION_P95" => Some(Self::P95),
228 "FUNCTION_P99" => Some(Self::P99),
229 "FUNCTION_AVG" => Some(Self::Avg),
230 "FUNCTION_MAX" => Some(Self::Max),
231 "FUNCTION_MIN" => Some(Self::Min),
232 "FUNCTION_UNIQ" => Some(Self::Uniq),
233 "FUNCTION_ANY" => Some(Self::Any),
234 _ => None,
235 }
236 }
237}
238#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
239#[repr(i32)]
240pub enum ExtrapolationMode {
241 Unspecified = 0,
242 None = 1,
243 SampleWeighted = 2,
244 ClientOnly = 3,
245 ServerOnly = 4,
246}
247impl ExtrapolationMode {
248 pub fn as_str_name(&self) -> &'static str {
253 match self {
254 ExtrapolationMode::Unspecified => "EXTRAPOLATION_MODE_UNSPECIFIED",
255 ExtrapolationMode::None => "EXTRAPOLATION_MODE_NONE",
256 ExtrapolationMode::SampleWeighted => "EXTRAPOLATION_MODE_SAMPLE_WEIGHTED",
257 ExtrapolationMode::ClientOnly => "EXTRAPOLATION_MODE_CLIENT_ONLY",
258 ExtrapolationMode::ServerOnly => "EXTRAPOLATION_MODE_SERVER_ONLY",
259 }
260 }
261 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
263 match value {
264 "EXTRAPOLATION_MODE_UNSPECIFIED" => Some(Self::Unspecified),
265 "EXTRAPOLATION_MODE_NONE" => Some(Self::None),
266 "EXTRAPOLATION_MODE_SAMPLE_WEIGHTED" => Some(Self::SampleWeighted),
267 "EXTRAPOLATION_MODE_CLIENT_ONLY" => Some(Self::ClientOnly),
268 "EXTRAPOLATION_MODE_SERVER_ONLY" => Some(Self::ServerOnly),
269 _ => None,
270 }
271 }
272}
273#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
274#[repr(i32)]
275pub enum Reliability {
276 Unspecified = 0,
277 Low = 1,
278 High = 2,
279}
280impl Reliability {
281 pub fn as_str_name(&self) -> &'static str {
286 match self {
287 Reliability::Unspecified => "RELIABILITY_UNSPECIFIED",
288 Reliability::Low => "RELIABILITY_LOW",
289 Reliability::High => "RELIABILITY_HIGH",
290 }
291 }
292 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
294 match value {
295 "RELIABILITY_UNSPECIFIED" => Some(Self::Unspecified),
296 "RELIABILITY_LOW" => Some(Self::Low),
297 "RELIABILITY_HIGH" => Some(Self::High),
298 _ => None,
299 }
300 }
301}
302#[derive(Clone, PartialEq, ::prost::Message)]
303pub struct AndFilter {
304 #[prost(message, repeated, tag = "1")]
305 pub filters: ::prost::alloc::vec::Vec<TraceItemFilter>,
306}
307#[derive(Clone, PartialEq, ::prost::Message)]
308pub struct OrFilter {
309 #[prost(message, repeated, tag = "1")]
310 pub filters: ::prost::alloc::vec::Vec<TraceItemFilter>,
311}
312#[derive(Clone, PartialEq, ::prost::Message)]
313pub struct NotFilter {
314 #[prost(message, repeated, tag = "1")]
315 pub filters: ::prost::alloc::vec::Vec<TraceItemFilter>,
316}
317#[derive(Clone, PartialEq, ::prost::Message)]
318pub struct ComparisonFilter {
319 #[prost(message, optional, tag = "1")]
320 pub key: ::core::option::Option<AttributeKey>,
321 #[prost(enumeration = "comparison_filter::Op", tag = "2")]
322 pub op: i32,
323 #[prost(message, optional, tag = "3")]
324 pub value: ::core::option::Option<AttributeValue>,
325 #[prost(bool, tag = "4")]
327 pub ignore_case: bool,
328}
329pub mod comparison_filter {
331 #[derive(
332 Clone,
333 Copy,
334 Debug,
335 PartialEq,
336 Eq,
337 Hash,
338 PartialOrd,
339 Ord,
340 ::prost::Enumeration
341 )]
342 #[repr(i32)]
343 pub enum Op {
344 Unspecified = 0,
345 LessThan = 1,
346 GreaterThan = 2,
347 LessThanOrEquals = 3,
348 GreaterThanOrEquals = 4,
349 Equals = 5,
350 NotEquals = 6,
351 Like = 7,
353 NotLike = 8,
355 In = 9,
357 NotIn = 10,
359 }
360 impl Op {
361 pub fn as_str_name(&self) -> &'static str {
366 match self {
367 Op::Unspecified => "OP_UNSPECIFIED",
368 Op::LessThan => "OP_LESS_THAN",
369 Op::GreaterThan => "OP_GREATER_THAN",
370 Op::LessThanOrEquals => "OP_LESS_THAN_OR_EQUALS",
371 Op::GreaterThanOrEquals => "OP_GREATER_THAN_OR_EQUALS",
372 Op::Equals => "OP_EQUALS",
373 Op::NotEquals => "OP_NOT_EQUALS",
374 Op::Like => "OP_LIKE",
375 Op::NotLike => "OP_NOT_LIKE",
376 Op::In => "OP_IN",
377 Op::NotIn => "OP_NOT_IN",
378 }
379 }
380 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
382 match value {
383 "OP_UNSPECIFIED" => Some(Self::Unspecified),
384 "OP_LESS_THAN" => Some(Self::LessThan),
385 "OP_GREATER_THAN" => Some(Self::GreaterThan),
386 "OP_LESS_THAN_OR_EQUALS" => Some(Self::LessThanOrEquals),
387 "OP_GREATER_THAN_OR_EQUALS" => Some(Self::GreaterThanOrEquals),
388 "OP_EQUALS" => Some(Self::Equals),
389 "OP_NOT_EQUALS" => Some(Self::NotEquals),
390 "OP_LIKE" => Some(Self::Like),
391 "OP_NOT_LIKE" => Some(Self::NotLike),
392 "OP_IN" => Some(Self::In),
393 "OP_NOT_IN" => Some(Self::NotIn),
394 _ => None,
395 }
396 }
397 }
398}
399#[derive(Clone, PartialEq, ::prost::Message)]
400pub struct ExistsFilter {
401 #[prost(message, optional, tag = "1")]
402 pub key: ::core::option::Option<AttributeKey>,
403}
404#[derive(Clone, PartialEq, ::prost::Message)]
413pub struct TraceItemFilter {
414 #[prost(oneof = "trace_item_filter::Value", tags = "1, 2, 3, 4, 5")]
415 pub value: ::core::option::Option<trace_item_filter::Value>,
416}
417pub mod trace_item_filter {
419 #[derive(Clone, PartialEq, ::prost::Oneof)]
420 pub enum Value {
421 #[prost(message, tag = "1")]
422 AndFilter(super::AndFilter),
423 #[prost(message, tag = "2")]
424 OrFilter(super::OrFilter),
425 #[prost(message, tag = "3")]
426 NotFilter(super::NotFilter),
427 #[prost(message, tag = "4")]
428 ComparisonFilter(super::ComparisonFilter),
429 #[prost(message, tag = "5")]
430 ExistsFilter(super::ExistsFilter),
431 }
432}
433#[derive(Clone, PartialEq, ::prost::Message)]
434pub struct AttributeConditionalAggregation {
435 #[prost(enumeration = "Function", tag = "1")]
436 pub aggregate: i32,
437 #[prost(message, optional, tag = "2")]
438 pub key: ::core::option::Option<AttributeKey>,
439 #[prost(string, tag = "3")]
440 pub label: ::prost::alloc::string::String,
441 #[prost(enumeration = "ExtrapolationMode", tag = "4")]
442 pub extrapolation_mode: i32,
443 #[prost(message, optional, tag = "5")]
444 pub filter: ::core::option::Option<TraceItemFilter>,
445}
446#[derive(Clone, Copy, PartialEq, ::prost::Message)]
447pub struct DownsampledStorageConfig {
448 #[prost(enumeration = "downsampled_storage_config::Mode", tag = "1")]
449 pub mode: i32,
450}
451pub mod downsampled_storage_config {
453 #[derive(
454 Clone,
455 Copy,
456 Debug,
457 PartialEq,
458 Eq,
459 Hash,
460 PartialOrd,
461 Ord,
462 ::prost::Enumeration
463 )]
464 #[repr(i32)]
465 pub enum Mode {
466 Unspecified = 0,
467 Preflight = 1,
469 BestEffort = 2,
471 Normal = 3,
475 HighestAccuracy = 4,
477 HighestAccuracyFlextime = 5,
479 LowPriority = 6,
482 }
483 impl Mode {
484 pub fn as_str_name(&self) -> &'static str {
489 match self {
490 Mode::Unspecified => "MODE_UNSPECIFIED",
491 Mode::Preflight => "MODE_PREFLIGHT",
492 Mode::BestEffort => "MODE_BEST_EFFORT",
493 Mode::Normal => "MODE_NORMAL",
494 Mode::HighestAccuracy => "MODE_HIGHEST_ACCURACY",
495 Mode::HighestAccuracyFlextime => "MODE_HIGHEST_ACCURACY_FLEXTIME",
496 Mode::LowPriority => "MODE_LOW_PRIORITY",
497 }
498 }
499 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
501 match value {
502 "MODE_UNSPECIFIED" => Some(Self::Unspecified),
503 "MODE_PREFLIGHT" => Some(Self::Preflight),
504 "MODE_BEST_EFFORT" => Some(Self::BestEffort),
505 "MODE_NORMAL" => Some(Self::Normal),
506 "MODE_HIGHEST_ACCURACY" => Some(Self::HighestAccuracy),
507 "MODE_HIGHEST_ACCURACY_FLEXTIME" => Some(Self::HighestAccuracyFlextime),
508 "MODE_LOW_PRIORITY" => Some(Self::LowPriority),
509 _ => None,
510 }
511 }
512 }
513}
514#[derive(Clone, Copy, PartialEq, ::prost::Message)]
515pub struct DownsampledStorageMeta {
516 #[prost(enumeration = "downsampled_storage_meta::SelectedTier", tag = "1")]
518 pub tier: i32,
519 #[prost(uint64, tag = "2")]
523 pub estimated_num_rows: u64,
524 #[prost(bool, tag = "3")]
527 pub can_go_to_higher_accuracy_tier: bool,
528}
529pub mod downsampled_storage_meta {
531 #[derive(
532 Clone,
533 Copy,
534 Debug,
535 PartialEq,
536 Eq,
537 Hash,
538 PartialOrd,
539 Ord,
540 ::prost::Enumeration
541 )]
542 #[repr(i32)]
543 pub enum SelectedTier {
544 Unspecified = 0,
545 SelectedTier1 = 1,
546 SelectedTier8 = 2,
547 SelectedTier64 = 3,
548 SelectedTier512 = 4,
549 }
550 impl SelectedTier {
551 pub fn as_str_name(&self) -> &'static str {
556 match self {
557 SelectedTier::Unspecified => "SELECTED_TIER_UNSPECIFIED",
558 SelectedTier::SelectedTier1 => "SELECTED_TIER_1",
559 SelectedTier::SelectedTier8 => "SELECTED_TIER_8",
560 SelectedTier::SelectedTier64 => "SELECTED_TIER_64",
561 SelectedTier::SelectedTier512 => "SELECTED_TIER_512",
562 }
563 }
564 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
566 match value {
567 "SELECTED_TIER_UNSPECIFIED" => Some(Self::Unspecified),
568 "SELECTED_TIER_1" => Some(Self::SelectedTier1),
569 "SELECTED_TIER_8" => Some(Self::SelectedTier8),
570 "SELECTED_TIER_64" => Some(Self::SelectedTier64),
571 "SELECTED_TIER_512" => Some(Self::SelectedTier512),
572 _ => None,
573 }
574 }
575 }
576}
577#[derive(Clone, Copy, PartialEq, ::prost::Message)]
578pub struct Literal {
579 #[prost(oneof = "literal::Value", tags = "1")]
580 pub value: ::core::option::Option<literal::Value>,
581}
582pub mod literal {
584 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
585 pub enum Value {
586 #[prost(double, tag = "1")]
587 ValDouble(f64),
588 }
589}
590#[derive(Clone, PartialEq, ::prost::Message)]
591pub struct RequestMeta {
592 #[prost(uint64, tag = "1")]
594 pub organization_id: u64,
595 #[prost(string, tag = "2")]
597 pub cogs_category: ::prost::alloc::string::String,
598 #[prost(string, tag = "3")]
601 pub referrer: ::prost::alloc::string::String,
602 #[prost(uint64, repeated, tag = "4")]
604 pub project_ids: ::prost::alloc::vec::Vec<u64>,
605 #[prost(message, optional, tag = "5")]
607 pub start_timestamp: ::core::option::Option<::prost_types::Timestamp>,
608 #[prost(message, optional, tag = "6")]
610 pub end_timestamp: ::core::option::Option<::prost_types::Timestamp>,
611 #[deprecated]
613 #[prost(enumeration = "TraceItemName", tag = "7")]
614 pub trace_item_name: i32,
615 #[prost(enumeration = "TraceItemType", tag = "8")]
617 pub trace_item_type: i32,
618 #[prost(bool, tag = "10")]
620 pub debug: bool,
621 #[prost(string, tag = "11")]
623 pub request_id: ::prost::alloc::string::String,
624 #[prost(message, optional, tag = "12")]
626 pub downsampled_storage_config: ::core::option::Option<DownsampledStorageConfig>,
627}
628#[derive(Clone, PartialEq, ::prost::Message)]
629pub struct ResponseMeta {
630 #[prost(string, tag = "1")]
632 pub request_id: ::prost::alloc::string::String,
633 #[prost(message, repeated, tag = "2")]
635 pub query_info: ::prost::alloc::vec::Vec<QueryInfo>,
636 #[prost(message, optional, tag = "3")]
638 pub downsampled_storage_meta: ::core::option::Option<DownsampledStorageMeta>,
639}
640#[derive(Clone, PartialEq, ::prost::Message)]
641pub struct TraceItemFilterWithType {
642 #[prost(enumeration = "TraceItemType", tag = "1")]
643 pub item_type: i32,
644 #[prost(message, optional, tag = "2")]
645 pub filter: ::core::option::Option<TraceItemFilter>,
646}
647#[derive(Clone, PartialEq, ::prost::Message)]
648pub struct PageToken {
649 #[prost(oneof = "page_token::Value", tags = "1, 2, 3")]
650 pub value: ::core::option::Option<page_token::Value>,
651}
652pub mod page_token {
654 #[derive(Clone, PartialEq, ::prost::Oneof)]
655 pub enum Value {
656 #[prost(uint64, tag = "1")]
658 Offset(u64),
659 #[prost(message, tag = "2")]
662 FilterOffset(super::TraceItemFilter),
663 #[prost(bool, tag = "3")]
666 EndPagination(bool),
667 }
668}
669#[derive(Clone, PartialEq, ::prost::Message)]
670pub struct QueryStats {
671 #[prost(int64, tag = "1")]
672 pub rows_read: i64,
673 #[prost(int64, tag = "2")]
674 pub columns_read: i64,
675 #[prost(int32, tag = "4")]
676 pub blocks: i32,
677 #[prost(int64, tag = "5")]
678 pub progress_bytes: i64,
679 #[prost(int32, tag = "8")]
680 pub max_threads: i32,
681 #[prost(message, optional, tag = "11")]
682 pub timing_marks: ::core::option::Option<TimingMarks>,
683}
684#[derive(Clone, PartialEq, ::prost::Message)]
685pub struct QueryMetadata {
686 #[prost(string, tag = "1")]
687 pub sql: ::prost::alloc::string::String,
688 #[prost(string, tag = "2")]
689 pub status: ::prost::alloc::string::String,
690 #[prost(string, tag = "3")]
691 pub clickhouse_table: ::prost::alloc::string::String,
692 #[prost(bool, tag = "4")]
693 pub r#final: bool,
694 #[prost(string, tag = "6")]
695 pub query_id: ::prost::alloc::string::String,
696 #[prost(bool, tag = "7")]
697 pub consistent: bool,
698 #[prost(bool, tag = "9")]
699 pub cache_hit: bool,
700 #[prost(string, tag = "10")]
701 pub cluster_name: ::prost::alloc::string::String,
702}
703#[derive(Clone, PartialEq, ::prost::Message)]
704pub struct TimingMarks {
705 #[prost(int64, tag = "1")]
706 pub duration_ms: i64,
707 #[prost(map = "string, int64", tag = "2")]
708 pub marks_ms: ::std::collections::HashMap<::prost::alloc::string::String, i64>,
709 #[prost(map = "string, string", tag = "3")]
710 pub tags: ::std::collections::HashMap<
711 ::prost::alloc::string::String,
712 ::prost::alloc::string::String,
713 >,
714 #[prost(int64, tag = "4")]
715 pub timestamp: i64,
716}
717#[derive(Clone, PartialEq, ::prost::Message)]
718pub struct QueryInfo {
719 #[prost(message, optional, tag = "1")]
720 pub stats: ::core::option::Option<QueryStats>,
721 #[prost(message, optional, tag = "2")]
722 pub metadata: ::core::option::Option<QueryMetadata>,
723 #[prost(string, tag = "3")]
724 pub trace_logs: ::prost::alloc::string::String,
725}
726#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
728#[repr(i32)]
729pub enum TraceItemName {
730 Unspecified = 0,
731 EapSpans = 1,
732 EapErrors = 2,
733}
734impl TraceItemName {
735 pub fn as_str_name(&self) -> &'static str {
740 match self {
741 TraceItemName::Unspecified => "TRACE_ITEM_NAME_UNSPECIFIED",
742 TraceItemName::EapSpans => "TRACE_ITEM_NAME_EAP_SPANS",
743 TraceItemName::EapErrors => "TRACE_ITEM_NAME_EAP_ERRORS",
744 }
745 }
746 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
748 match value {
749 "TRACE_ITEM_NAME_UNSPECIFIED" => Some(Self::Unspecified),
750 "TRACE_ITEM_NAME_EAP_SPANS" => Some(Self::EapSpans),
751 "TRACE_ITEM_NAME_EAP_ERRORS" => Some(Self::EapErrors),
752 _ => None,
753 }
754 }
755}
756#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
757#[repr(i32)]
758pub enum TraceItemType {
759 Unspecified = 0,
760 Span = 1,
761 Error = 2,
762 Log = 3,
763 UptimeCheck = 4,
764 UptimeResult = 5,
765 Replay = 6,
766 Occurrence = 7,
767 Metric = 8,
768 ProfileFunction = 9,
769 Attachment = 10,
770 Preprod = 11,
771}
772impl TraceItemType {
773 pub fn as_str_name(&self) -> &'static str {
778 match self {
779 TraceItemType::Unspecified => "TRACE_ITEM_TYPE_UNSPECIFIED",
780 TraceItemType::Span => "TRACE_ITEM_TYPE_SPAN",
781 TraceItemType::Error => "TRACE_ITEM_TYPE_ERROR",
782 TraceItemType::Log => "TRACE_ITEM_TYPE_LOG",
783 TraceItemType::UptimeCheck => "TRACE_ITEM_TYPE_UPTIME_CHECK",
784 TraceItemType::UptimeResult => "TRACE_ITEM_TYPE_UPTIME_RESULT",
785 TraceItemType::Replay => "TRACE_ITEM_TYPE_REPLAY",
786 TraceItemType::Occurrence => "TRACE_ITEM_TYPE_OCCURRENCE",
787 TraceItemType::Metric => "TRACE_ITEM_TYPE_METRIC",
788 TraceItemType::ProfileFunction => "TRACE_ITEM_TYPE_PROFILE_FUNCTION",
789 TraceItemType::Attachment => "TRACE_ITEM_TYPE_ATTACHMENT",
790 TraceItemType::Preprod => "TRACE_ITEM_TYPE_PREPROD",
791 }
792 }
793 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
795 match value {
796 "TRACE_ITEM_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
797 "TRACE_ITEM_TYPE_SPAN" => Some(Self::Span),
798 "TRACE_ITEM_TYPE_ERROR" => Some(Self::Error),
799 "TRACE_ITEM_TYPE_LOG" => Some(Self::Log),
800 "TRACE_ITEM_TYPE_UPTIME_CHECK" => Some(Self::UptimeCheck),
801 "TRACE_ITEM_TYPE_UPTIME_RESULT" => Some(Self::UptimeResult),
802 "TRACE_ITEM_TYPE_REPLAY" => Some(Self::Replay),
803 "TRACE_ITEM_TYPE_OCCURRENCE" => Some(Self::Occurrence),
804 "TRACE_ITEM_TYPE_METRIC" => Some(Self::Metric),
805 "TRACE_ITEM_TYPE_PROFILE_FUNCTION" => Some(Self::ProfileFunction),
806 "TRACE_ITEM_TYPE_ATTACHMENT" => Some(Self::Attachment),
807 "TRACE_ITEM_TYPE_PREPROD" => Some(Self::Preprod),
808 _ => None,
809 }
810 }
811}
812#[derive(Clone, PartialEq, ::prost::Message)]
820pub struct TimeSeriesRequest {
821 #[prost(message, optional, tag = "1")]
824 pub meta: ::core::option::Option<RequestMeta>,
825 #[prost(message, optional, tag = "2")]
828 pub filter: ::core::option::Option<TraceItemFilter>,
829 #[deprecated]
831 #[prost(message, repeated, tag = "3")]
832 pub aggregations: ::prost::alloc::vec::Vec<AttributeAggregation>,
833 #[prost(message, repeated, tag = "6")]
835 pub expressions: ::prost::alloc::vec::Vec<Expression>,
836 #[prost(uint64, tag = "4")]
843 pub granularity_secs: u64,
844 #[prost(message, repeated, tag = "5")]
848 pub group_by: ::prost::alloc::vec::Vec<AttributeKey>,
849 #[prost(message, repeated, tag = "7")]
854 pub trace_filters: ::prost::alloc::vec::Vec<TraceItemFilterWithType>,
855}
856#[derive(Clone, PartialEq, ::prost::Message)]
857pub struct Expression {
858 #[prost(string, tag = "3")]
859 pub label: ::prost::alloc::string::String,
860 #[prost(oneof = "expression::Expression", tags = "1, 2, 4, 5")]
861 pub expression: ::core::option::Option<expression::Expression>,
862}
863pub mod expression {
865 #[derive(Clone, PartialEq, ::prost::Message)]
866 pub struct BinaryFormula {
867 #[prost(enumeration = "binary_formula::Op", tag = "1")]
868 pub op: i32,
869 #[prost(message, optional, boxed, tag = "2")]
870 pub left: ::core::option::Option<::prost::alloc::boxed::Box<super::Expression>>,
871 #[prost(message, optional, boxed, tag = "3")]
872 pub right: ::core::option::Option<::prost::alloc::boxed::Box<super::Expression>>,
873 #[prost(oneof = "binary_formula::DefaultValue", tags = "4, 5")]
876 pub default_value: ::core::option::Option<binary_formula::DefaultValue>,
877 }
878 pub mod binary_formula {
880 #[derive(
881 Clone,
882 Copy,
883 Debug,
884 PartialEq,
885 Eq,
886 Hash,
887 PartialOrd,
888 Ord,
889 ::prost::Enumeration
890 )]
891 #[repr(i32)]
892 pub enum Op {
893 Unspecified = 0,
894 Divide = 1,
895 Multiply = 2,
896 Add = 3,
897 Subtract = 4,
898 }
899 impl Op {
900 pub fn as_str_name(&self) -> &'static str {
905 match self {
906 Op::Unspecified => "OP_UNSPECIFIED",
907 Op::Divide => "OP_DIVIDE",
908 Op::Multiply => "OP_MULTIPLY",
909 Op::Add => "OP_ADD",
910 Op::Subtract => "OP_SUBTRACT",
911 }
912 }
913 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
915 match value {
916 "OP_UNSPECIFIED" => Some(Self::Unspecified),
917 "OP_DIVIDE" => Some(Self::Divide),
918 "OP_MULTIPLY" => Some(Self::Multiply),
919 "OP_ADD" => Some(Self::Add),
920 "OP_SUBTRACT" => Some(Self::Subtract),
921 _ => None,
922 }
923 }
924 }
925 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
928 pub enum DefaultValue {
929 #[prost(double, tag = "4")]
930 DefaultValueDouble(f64),
931 #[prost(int64, tag = "5")]
932 DefaultValueInt64(i64),
933 }
934 }
935 #[derive(Clone, PartialEq, ::prost::Oneof)]
936 pub enum Expression {
937 #[prost(message, tag = "1")]
938 Aggregation(super::AttributeAggregation),
939 #[prost(message, tag = "2")]
940 Formula(::prost::alloc::boxed::Box<BinaryFormula>),
941 #[prost(message, tag = "4")]
942 ConditionalAggregation(super::AttributeConditionalAggregation),
943 #[prost(message, tag = "5")]
944 Literal(super::Literal),
945 }
946}
947#[derive(Clone, Copy, PartialEq, ::prost::Message)]
948pub struct DataPoint {
949 #[prost(float, tag = "1")]
950 pub data: f32,
951 #[prost(bool, tag = "2")]
955 pub data_present: bool,
956 #[prost(float, tag = "3")]
959 pub avg_sampling_rate: f32,
960 #[deprecated]
962 #[prost(bool, tag = "4")]
963 pub is_reliable: bool,
964 #[prost(enumeration = "Reliability", tag = "5")]
966 pub reliability: i32,
967 #[prost(int64, tag = "6")]
969 pub sample_count: i64,
970}
971#[derive(Clone, PartialEq, ::prost::Message)]
972pub struct TimeSeries {
973 #[prost(string, tag = "1")]
974 pub label: ::prost::alloc::string::String,
975 #[prost(map = "string, string", tag = "2")]
978 pub group_by_attributes: ::std::collections::HashMap<
979 ::prost::alloc::string::String,
980 ::prost::alloc::string::String,
981 >,
982 #[prost(message, repeated, tag = "3")]
984 pub buckets: ::prost::alloc::vec::Vec<::prost_types::Timestamp>,
985 #[prost(message, repeated, tag = "4")]
986 pub data_points: ::prost::alloc::vec::Vec<DataPoint>,
987 #[prost(uint64, tag = "5")]
989 pub num_events: u64,
990 #[deprecated]
992 #[prost(float, tag = "6")]
993 pub avg_sampling_rate: f32,
994}
995#[derive(Clone, PartialEq, ::prost::Message)]
998pub struct TimeSeriesResponse {
999 #[prost(message, repeated, tag = "1")]
1000 pub result_timeseries: ::prost::alloc::vec::Vec<TimeSeries>,
1001 #[prost(message, optional, tag = "5")]
1002 pub meta: ::core::option::Option<ResponseMeta>,
1003}
1004#[derive(Clone, PartialEq, ::prost::Message)]
1005pub struct CreateSubscriptionRequest {
1006 #[prost(message, optional, tag = "1")]
1007 pub time_series_request: ::core::option::Option<TimeSeriesRequest>,
1008 #[prost(uint32, tag = "2")]
1009 pub time_window_secs: u32,
1010 #[prost(uint32, tag = "3")]
1011 pub resolution_secs: u32,
1012}
1013#[derive(Clone, PartialEq, ::prost::Message)]
1014pub struct CreateSubscriptionResponse {
1015 #[prost(string, tag = "1")]
1016 pub subscription_id: ::prost::alloc::string::String,
1017}
1018#[derive(Clone, PartialEq, ::prost::Message)]
1027pub struct DeleteTraceItemsRequest {
1028 #[prost(message, optional, tag = "1")]
1029 pub meta: ::core::option::Option<RequestMeta>,
1030 #[prost(string, repeated, tag = "2")]
1031 pub trace_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1032 #[prost(message, repeated, tag = "3")]
1033 pub filters: ::prost::alloc::vec::Vec<TraceItemFilterWithType>,
1034}
1035#[derive(Clone, PartialEq, ::prost::Message)]
1039pub struct DeleteTraceItemsResponse {
1040 #[prost(message, optional, tag = "1")]
1041 pub meta: ::core::option::Option<ResponseMeta>,
1042 #[prost(uint32, tag = "2")]
1043 pub matching_items_count: u32,
1044}
1045#[derive(Clone, PartialEq, ::prost::Message)]
1046pub struct TracePageToken {
1047 #[prost(oneof = "trace_page_token::Value", tags = "1, 2, 3")]
1051 pub value: ::core::option::Option<trace_page_token::Value>,
1052}
1053pub mod trace_page_token {
1055 #[derive(Clone, PartialEq, ::prost::Oneof)]
1059 pub enum Value {
1060 #[prost(uint64, tag = "1")]
1061 Offset(u64),
1062 #[prost(message, tag = "2")]
1066 EventFilter(super::EventFilter),
1067 #[prost(message, tag = "3")]
1068 TraceFilter(super::TraceFilter),
1069 }
1070}
1071#[derive(Clone, PartialEq, ::prost::Message)]
1072pub struct FindTracesRequest {
1073 #[prost(message, optional, tag = "1")]
1074 pub meta: ::core::option::Option<RequestMeta>,
1075 #[prost(message, optional, tag = "2")]
1076 pub filter: ::core::option::Option<TraceFilter>,
1077 #[prost(message, optional, tag = "3")]
1078 pub page_token: ::core::option::Option<TracePageToken>,
1079 #[prost(enumeration = "TraceOrderBy", tag = "4")]
1080 pub order_by: i32,
1081}
1082#[derive(Clone, PartialEq, ::prost::Message)]
1083pub struct TraceResponse {
1084 #[prost(string, tag = "1")]
1085 pub trace_id: ::prost::alloc::string::String,
1086 #[prost(message, optional, tag = "5")]
1087 pub start_timestamp: ::core::option::Option<::prost_types::Timestamp>,
1088 #[prost(message, optional, tag = "6")]
1089 pub end_timestamp: ::core::option::Option<::prost_types::Timestamp>,
1090}
1091#[derive(Clone, PartialEq, ::prost::Message)]
1092pub struct FindTracesResponse {
1093 #[prost(message, repeated, tag = "1")]
1094 pub traces: ::prost::alloc::vec::Vec<TraceResponse>,
1095 #[prost(message, optional, tag = "2")]
1096 pub page_token: ::core::option::Option<TracePageToken>,
1097}
1098#[derive(Clone, PartialEq, ::prost::Message)]
1099pub struct EventFilter {
1100 #[prost(enumeration = "TraceItemName", tag = "1")]
1101 pub trace_item_name: i32,
1102 #[prost(message, optional, tag = "2")]
1103 pub filter: ::core::option::Option<TraceItemFilter>,
1104}
1105#[derive(Clone, PartialEq, ::prost::Message)]
1106pub struct AndTraceFilter {
1107 #[prost(message, repeated, tag = "1")]
1108 pub filters: ::prost::alloc::vec::Vec<TraceFilter>,
1109}
1110#[derive(Clone, PartialEq, ::prost::Message)]
1111pub struct OrTraceFilter {
1112 #[prost(message, repeated, tag = "1")]
1113 pub filters: ::prost::alloc::vec::Vec<TraceFilter>,
1114}
1115#[derive(Clone, PartialEq, ::prost::Message)]
1116pub struct NotTraceFilter {
1117 #[prost(message, repeated, tag = "1")]
1118 pub filters: ::prost::alloc::vec::Vec<TraceFilter>,
1119}
1120#[derive(Clone, PartialEq, ::prost::Message)]
1125pub struct TraceFilter {
1126 #[prost(oneof = "trace_filter::Filter", tags = "1, 2, 3, 4")]
1127 pub filter: ::core::option::Option<trace_filter::Filter>,
1128}
1129pub mod trace_filter {
1131 #[derive(Clone, PartialEq, ::prost::Oneof)]
1132 pub enum Filter {
1133 #[prost(message, tag = "1")]
1134 AndFilter(super::AndTraceFilter),
1135 #[prost(message, tag = "2")]
1136 OrFilter(super::OrTraceFilter),
1137 #[prost(message, tag = "3")]
1138 NotFilter(super::NotTraceFilter),
1139 #[prost(message, tag = "4")]
1140 EventFilter(super::EventFilter),
1141 }
1142}
1143#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1144#[repr(i32)]
1145pub enum TraceOrderBy {
1146 Unspecified = 0,
1147 EndTime = 1,
1148 TraceDuration = 2,
1149}
1150impl TraceOrderBy {
1151 pub fn as_str_name(&self) -> &'static str {
1156 match self {
1157 TraceOrderBy::Unspecified => "TRACE_ORDER_BY_UNSPECIFIED",
1158 TraceOrderBy::EndTime => "TRACE_ORDER_BY_END_TIME",
1159 TraceOrderBy::TraceDuration => "TRACE_ORDER_BY_TRACE_DURATION",
1160 }
1161 }
1162 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1164 match value {
1165 "TRACE_ORDER_BY_UNSPECIFIED" => Some(Self::Unspecified),
1166 "TRACE_ORDER_BY_END_TIME" => Some(Self::EndTime),
1167 "TRACE_ORDER_BY_TRACE_DURATION" => Some(Self::TraceDuration),
1168 _ => None,
1169 }
1170 }
1171}
1172#[derive(Clone, PartialEq, ::prost::Message)]
1177pub struct GetTraceRequest {
1178 #[prost(message, optional, tag = "1")]
1179 pub meta: ::core::option::Option<RequestMeta>,
1180 #[prost(string, tag = "2")]
1181 pub trace_id: ::prost::alloc::string::String,
1182 #[prost(message, repeated, tag = "3")]
1184 pub items: ::prost::alloc::vec::Vec<get_trace_request::TraceItem>,
1185 #[prost(message, optional, tag = "4")]
1187 pub page_token: ::core::option::Option<PageToken>,
1188 #[prost(uint32, tag = "5")]
1191 pub limit: u32,
1192}
1193pub mod get_trace_request {
1195 #[derive(Clone, PartialEq, ::prost::Message)]
1196 pub struct TraceItem {
1197 #[deprecated]
1199 #[prost(enumeration = "super::TraceItemName", tag = "1")]
1200 pub r#type: i32,
1201 #[prost(message, repeated, tag = "2")]
1203 pub attributes: ::prost::alloc::vec::Vec<super::AttributeKey>,
1204 #[prost(enumeration = "super::TraceItemType", tag = "3")]
1205 pub item_type: i32,
1206 }
1207}
1208#[derive(Clone, PartialEq, ::prost::Message)]
1210pub struct GetTraceResponse {
1211 #[prost(string, tag = "1")]
1212 pub trace_id: ::prost::alloc::string::String,
1213 #[prost(message, optional, tag = "2")]
1214 pub meta: ::core::option::Option<ResponseMeta>,
1215 #[prost(message, repeated, tag = "3")]
1216 pub item_groups: ::prost::alloc::vec::Vec<get_trace_response::ItemGroup>,
1217 #[prost(message, optional, tag = "4")]
1219 pub page_token: ::core::option::Option<PageToken>,
1220}
1221pub mod get_trace_response {
1223 #[derive(Clone, PartialEq, ::prost::Message)]
1224 pub struct Item {
1225 #[prost(string, tag = "1")]
1226 pub id: ::prost::alloc::string::String,
1227 #[prost(message, optional, tag = "2")]
1228 pub timestamp: ::core::option::Option<::prost_types::Timestamp>,
1229 #[prost(message, repeated, tag = "3")]
1230 pub attributes: ::prost::alloc::vec::Vec<item::Attribute>,
1231 }
1232 pub mod item {
1234 #[derive(Clone, PartialEq, ::prost::Message)]
1235 pub struct Attribute {
1236 #[prost(message, optional, tag = "1")]
1237 pub key: ::core::option::Option<super::super::AttributeKey>,
1238 #[prost(message, optional, tag = "2")]
1239 pub value: ::core::option::Option<super::super::AttributeValue>,
1240 }
1241 }
1242 #[derive(Clone, PartialEq, ::prost::Message)]
1244 pub struct ItemGroup {
1245 #[deprecated]
1247 #[prost(enumeration = "super::TraceItemName", tag = "1")]
1248 pub r#type: i32,
1249 #[prost(message, repeated, tag = "2")]
1250 pub items: ::prost::alloc::vec::Vec<Item>,
1251 #[prost(enumeration = "super::TraceItemType", tag = "3")]
1252 pub item_type: i32,
1253 }
1254}
1255#[derive(Clone, PartialEq, ::prost::Message)]
1257pub struct TraceAttribute {
1258 #[prost(enumeration = "trace_attribute::Key", tag = "1")]
1259 pub key: i32,
1260 #[prost(message, optional, tag = "2")]
1261 pub value: ::core::option::Option<AttributeValue>,
1262 #[prost(enumeration = "attribute_key::Type", tag = "3")]
1265 pub r#type: i32,
1266}
1267pub mod trace_attribute {
1269 #[derive(
1271 Clone,
1272 Copy,
1273 Debug,
1274 PartialEq,
1275 Eq,
1276 Hash,
1277 PartialOrd,
1278 Ord,
1279 ::prost::Enumeration
1280 )]
1281 #[repr(i32)]
1282 pub enum Key {
1283 Unspecified = 0,
1284 TraceId = 1,
1285 StartTimestamp = 2,
1287 RootSpanName = 3,
1290 TotalItemCount = 4,
1293 FilteredItemCount = 5,
1298 RootSpanDurationMs = 6,
1301 RootSpanProjectId = 7,
1304 EarliestSpanName = 8,
1307 EarliestFrontendSpan = 9,
1310 EndTimestamp = 10,
1312 EarliestSpanProjectId = 11,
1314 EarliestSpanDurationMs = 12,
1316 EarliestFrontendSpanProjectId = 13,
1318 EarliestFrontendSpanDurationMs = 14,
1320 }
1321 impl Key {
1322 pub fn as_str_name(&self) -> &'static str {
1327 match self {
1328 Key::Unspecified => "KEY_UNSPECIFIED",
1329 Key::TraceId => "KEY_TRACE_ID",
1330 Key::StartTimestamp => "KEY_START_TIMESTAMP",
1331 Key::RootSpanName => "KEY_ROOT_SPAN_NAME",
1332 Key::TotalItemCount => "KEY_TOTAL_ITEM_COUNT",
1333 Key::FilteredItemCount => "KEY_FILTERED_ITEM_COUNT",
1334 Key::RootSpanDurationMs => "KEY_ROOT_SPAN_DURATION_MS",
1335 Key::RootSpanProjectId => "KEY_ROOT_SPAN_PROJECT_ID",
1336 Key::EarliestSpanName => "KEY_EARLIEST_SPAN_NAME",
1337 Key::EarliestFrontendSpan => "KEY_EARLIEST_FRONTEND_SPAN",
1338 Key::EndTimestamp => "KEY_END_TIMESTAMP",
1339 Key::EarliestSpanProjectId => "KEY_EARLIEST_SPAN_PROJECT_ID",
1340 Key::EarliestSpanDurationMs => "KEY_EARLIEST_SPAN_DURATION_MS",
1341 Key::EarliestFrontendSpanProjectId => {
1342 "KEY_EARLIEST_FRONTEND_SPAN_PROJECT_ID"
1343 }
1344 Key::EarliestFrontendSpanDurationMs => {
1345 "KEY_EARLIEST_FRONTEND_SPAN_DURATION_MS"
1346 }
1347 }
1348 }
1349 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1351 match value {
1352 "KEY_UNSPECIFIED" => Some(Self::Unspecified),
1353 "KEY_TRACE_ID" => Some(Self::TraceId),
1354 "KEY_START_TIMESTAMP" => Some(Self::StartTimestamp),
1355 "KEY_ROOT_SPAN_NAME" => Some(Self::RootSpanName),
1356 "KEY_TOTAL_ITEM_COUNT" => Some(Self::TotalItemCount),
1357 "KEY_FILTERED_ITEM_COUNT" => Some(Self::FilteredItemCount),
1358 "KEY_ROOT_SPAN_DURATION_MS" => Some(Self::RootSpanDurationMs),
1359 "KEY_ROOT_SPAN_PROJECT_ID" => Some(Self::RootSpanProjectId),
1360 "KEY_EARLIEST_SPAN_NAME" => Some(Self::EarliestSpanName),
1361 "KEY_EARLIEST_FRONTEND_SPAN" => Some(Self::EarliestFrontendSpan),
1362 "KEY_END_TIMESTAMP" => Some(Self::EndTimestamp),
1363 "KEY_EARLIEST_SPAN_PROJECT_ID" => Some(Self::EarliestSpanProjectId),
1364 "KEY_EARLIEST_SPAN_DURATION_MS" => Some(Self::EarliestSpanDurationMs),
1365 "KEY_EARLIEST_FRONTEND_SPAN_PROJECT_ID" => {
1366 Some(Self::EarliestFrontendSpanProjectId)
1367 }
1368 "KEY_EARLIEST_FRONTEND_SPAN_DURATION_MS" => {
1369 Some(Self::EarliestFrontendSpanDurationMs)
1370 }
1371 _ => None,
1372 }
1373 }
1374 }
1375}
1376#[derive(Clone, PartialEq, ::prost::Message)]
1378pub struct GetTracesRequest {
1379 #[prost(message, optional, tag = "1")]
1380 pub meta: ::core::option::Option<RequestMeta>,
1381 #[prost(message, optional, tag = "2")]
1382 pub page_token: ::core::option::Option<PageToken>,
1383 #[prost(uint32, tag = "3")]
1384 pub limit: u32,
1385 #[prost(message, repeated, tag = "4")]
1387 pub filters: ::prost::alloc::vec::Vec<get_traces_request::TraceFilter>,
1388 #[prost(message, repeated, tag = "5")]
1390 pub order_by: ::prost::alloc::vec::Vec<get_traces_request::OrderBy>,
1391 #[prost(message, repeated, tag = "6")]
1393 pub attributes: ::prost::alloc::vec::Vec<TraceAttribute>,
1394}
1395pub mod get_traces_request {
1397 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1398 pub struct OrderBy {
1399 #[prost(enumeration = "super::trace_attribute::Key", tag = "1")]
1400 pub key: i32,
1401 #[prost(bool, tag = "2")]
1402 pub descending: bool,
1403 }
1404 #[derive(Clone, PartialEq, ::prost::Message)]
1406 pub struct TraceFilter {
1407 #[deprecated]
1409 #[prost(enumeration = "super::TraceItemName", tag = "1")]
1410 pub item_name: i32,
1411 #[prost(message, optional, tag = "2")]
1412 pub filter: ::core::option::Option<super::TraceItemFilter>,
1413 #[prost(enumeration = "super::TraceItemType", tag = "3")]
1415 pub item_type: i32,
1416 }
1417}
1418#[derive(Clone, PartialEq, ::prost::Message)]
1420pub struct GetTracesResponse {
1421 #[prost(message, optional, tag = "1")]
1422 pub page_token: ::core::option::Option<PageToken>,
1423 #[prost(message, optional, tag = "2")]
1424 pub meta: ::core::option::Option<ResponseMeta>,
1425 #[prost(message, repeated, tag = "3")]
1427 pub traces: ::prost::alloc::vec::Vec<get_traces_response::Trace>,
1428}
1429pub mod get_traces_response {
1431 #[derive(Clone, PartialEq, ::prost::Message)]
1432 pub struct Trace {
1433 #[prost(message, repeated, tag = "1")]
1435 pub attributes: ::prost::alloc::vec::Vec<super::TraceAttribute>,
1436 }
1437}
1438#[derive(Clone, PartialEq, ::prost::Message)]
1445pub struct TraceItemAttributeNamesRequest {
1446 #[prost(message, optional, tag = "1")]
1449 pub meta: ::core::option::Option<RequestMeta>,
1450 #[prost(uint32, tag = "2")]
1452 pub limit: u32,
1453 #[deprecated]
1455 #[prost(uint32, tag = "3")]
1456 pub offset: u32,
1457 #[prost(enumeration = "attribute_key::Type", tag = "5")]
1460 pub r#type: i32,
1461 #[prost(string, tag = "6")]
1463 pub value_substring_match: ::prost::alloc::string::String,
1464 #[prost(message, optional, tag = "7")]
1466 pub page_token: ::core::option::Option<PageToken>,
1467 #[prost(message, optional, tag = "8")]
1473 pub intersecting_attributes_filter: ::core::option::Option<TraceItemFilter>,
1474}
1475#[derive(Clone, PartialEq, ::prost::Message)]
1478pub struct TraceItemAttributeNamesResponse {
1479 #[prost(message, repeated, tag = "1")]
1481 pub attributes: ::prost::alloc::vec::Vec<
1482 trace_item_attribute_names_response::Attribute,
1483 >,
1484 #[prost(message, optional, tag = "2")]
1486 pub page_token: ::core::option::Option<PageToken>,
1487 #[prost(message, optional, tag = "3")]
1489 pub meta: ::core::option::Option<ResponseMeta>,
1490}
1491pub mod trace_item_attribute_names_response {
1493 #[derive(Clone, PartialEq, ::prost::Message)]
1494 pub struct Attribute {
1495 #[prost(string, tag = "1")]
1496 pub name: ::prost::alloc::string::String,
1497 #[prost(enumeration = "super::attribute_key::Type", tag = "2")]
1498 pub r#type: i32,
1499 }
1500}
1501#[derive(Clone, PartialEq, ::prost::Message)]
1508pub struct TraceItemAttributeValuesRequest {
1509 #[prost(message, optional, tag = "1")]
1512 pub meta: ::core::option::Option<RequestMeta>,
1513 #[prost(message, optional, tag = "2")]
1515 pub key: ::core::option::Option<AttributeKey>,
1516 #[deprecated]
1518 #[prost(string, tag = "3")]
1519 pub name: ::prost::alloc::string::String,
1520 #[prost(string, tag = "4")]
1524 pub value_substring_match: ::prost::alloc::string::String,
1525 #[prost(uint32, tag = "5")]
1527 pub limit: u32,
1528 #[prost(message, optional, tag = "6")]
1530 pub page_token: ::core::option::Option<PageToken>,
1531}
1532#[derive(Clone, PartialEq, ::prost::Message)]
1535pub struct TraceItemAttributeValuesResponse {
1536 #[prost(string, repeated, tag = "1")]
1538 pub values: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1539 #[prost(message, optional, tag = "6")]
1541 pub page_token: ::core::option::Option<PageToken>,
1542 #[prost(message, optional, tag = "7")]
1544 pub meta: ::core::option::Option<ResponseMeta>,
1545}
1546#[derive(Clone, PartialEq, ::prost::Message)]
1550pub struct TraceItemDetailsRequest {
1551 #[prost(message, optional, tag = "1")]
1552 pub meta: ::core::option::Option<RequestMeta>,
1553 #[prost(string, tag = "2")]
1555 pub item_id: ::prost::alloc::string::String,
1556 #[prost(string, tag = "4")]
1558 pub trace_id: ::prost::alloc::string::String,
1559 #[prost(message, optional, tag = "3")]
1560 pub filter: ::core::option::Option<TraceItemFilter>,
1561}
1562#[derive(Clone, PartialEq, ::prost::Message)]
1563pub struct TraceItemDetailsAttribute {
1564 #[prost(string, tag = "1")]
1565 pub name: ::prost::alloc::string::String,
1566 #[prost(message, optional, tag = "2")]
1567 pub value: ::core::option::Option<AttributeValue>,
1568}
1569#[derive(Clone, PartialEq, ::prost::Message)]
1571pub struct TraceItemDetailsResponse {
1572 #[prost(string, tag = "1")]
1573 pub item_id: ::prost::alloc::string::String,
1574 #[prost(message, optional, tag = "2")]
1575 pub timestamp: ::core::option::Option<::prost_types::Timestamp>,
1576 #[prost(message, repeated, tag = "3")]
1577 pub attributes: ::prost::alloc::vec::Vec<TraceItemDetailsAttribute>,
1578 #[prost(message, optional, tag = "4")]
1579 pub meta: ::core::option::Option<ResponseMeta>,
1580}
1581#[derive(Clone, PartialEq, ::prost::Message)]
1582pub struct AttributeDistributionsRequest {
1583 #[prost(uint32, tag = "1")]
1585 pub max_buckets: u32,
1586 #[prost(uint32, tag = "2")]
1587 pub max_attributes: u32,
1588 #[prost(message, repeated, tag = "3")]
1590 pub attributes: ::prost::alloc::vec::Vec<AttributeKey>,
1591}
1592#[derive(Clone, PartialEq, ::prost::Message)]
1612pub struct HeatmapRequest {
1613 #[prost(message, optional, tag = "1")]
1614 pub x_attribute: ::core::option::Option<AttributeKey>,
1615 #[prost(message, optional, tag = "2")]
1616 pub y_attribute: ::core::option::Option<AttributeKey>,
1617 #[prost(uint32, optional, tag = "3")]
1619 pub num_y_buckets: ::core::option::Option<u32>,
1620 #[prost(uint32, optional, tag = "4")]
1621 pub num_x_buckets: ::core::option::Option<u32>,
1622}
1623#[derive(Clone, PartialEq, ::prost::Message)]
1624pub struct StatsType {
1625 #[prost(oneof = "stats_type::Type", tags = "1, 2")]
1626 pub r#type: ::core::option::Option<stats_type::Type>,
1627}
1628pub mod stats_type {
1630 #[derive(Clone, PartialEq, ::prost::Oneof)]
1631 pub enum Type {
1632 #[prost(message, tag = "1")]
1633 AttributeDistributions(super::AttributeDistributionsRequest),
1634 #[prost(message, tag = "2")]
1635 Heatmap(super::HeatmapRequest),
1636 }
1637}
1638#[derive(Clone, PartialEq, ::prost::Message)]
1639pub struct TraceItemStatsRequest {
1640 #[prost(message, optional, tag = "1")]
1641 pub meta: ::core::option::Option<RequestMeta>,
1642 #[prost(message, optional, tag = "2")]
1644 pub filter: ::core::option::Option<TraceItemFilter>,
1645 #[prost(message, repeated, tag = "3")]
1646 pub stats_types: ::prost::alloc::vec::Vec<StatsType>,
1647}
1648#[derive(Clone, PartialEq, ::prost::Message)]
1649pub struct AttributeDistribution {
1650 #[prost(string, tag = "1")]
1651 pub attribute_name: ::prost::alloc::string::String,
1652 #[prost(message, repeated, tag = "2")]
1653 pub buckets: ::prost::alloc::vec::Vec<attribute_distribution::Bucket>,
1654}
1655pub mod attribute_distribution {
1657 #[derive(Clone, PartialEq, ::prost::Message)]
1658 pub struct Bucket {
1659 #[prost(string, tag = "1")]
1660 pub label: ::prost::alloc::string::String,
1661 #[prost(float, tag = "2")]
1662 pub value: f32,
1663 #[prost(message, optional, tag = "3")]
1664 pub last_seen: ::core::option::Option<::prost_types::Timestamp>,
1665 }
1666}
1667#[derive(Clone, PartialEq, ::prost::Message)]
1668pub struct AttributeDistributions {
1669 #[prost(message, repeated, tag = "1")]
1670 pub attributes: ::prost::alloc::vec::Vec<AttributeDistribution>,
1671}
1672#[derive(Clone, PartialEq, ::prost::Message)]
1673pub struct MatrixColumn {
1674 #[prost(message, optional, tag = "1")]
1675 pub x_label: ::core::option::Option<AttributeValue>,
1676 #[prost(float, repeated, tag = "2")]
1677 pub values: ::prost::alloc::vec::Vec<f32>,
1678}
1679#[derive(Clone, PartialEq, ::prost::Message)]
1692pub struct Heatmap {
1693 #[prost(message, optional, tag = "1")]
1694 pub x_attribute: ::core::option::Option<AttributeKey>,
1695 #[prost(message, optional, tag = "2")]
1696 pub y_attribute: ::core::option::Option<AttributeKey>,
1697 #[prost(message, repeated, tag = "3")]
1698 pub y_buckets: ::prost::alloc::vec::Vec<AttributeValue>,
1699 #[prost(message, repeated, tag = "4")]
1701 pub data: ::prost::alloc::vec::Vec<MatrixColumn>,
1702}
1703#[derive(Clone, PartialEq, ::prost::Message)]
1704pub struct TraceItemStatsResult {
1705 #[prost(oneof = "trace_item_stats_result::Result", tags = "1, 2")]
1706 pub result: ::core::option::Option<trace_item_stats_result::Result>,
1707}
1708pub mod trace_item_stats_result {
1710 #[derive(Clone, PartialEq, ::prost::Oneof)]
1711 pub enum Result {
1712 #[prost(message, tag = "1")]
1713 AttributeDistributions(super::AttributeDistributions),
1714 #[prost(message, tag = "2")]
1715 Heatmap(super::Heatmap),
1716 }
1717}
1718#[derive(Clone, PartialEq, ::prost::Message)]
1721pub struct TraceItemStatsResponse {
1722 #[prost(message, repeated, tag = "1")]
1723 pub results: ::prost::alloc::vec::Vec<TraceItemStatsResult>,
1724 #[prost(message, optional, tag = "2")]
1725 pub page_token: ::core::option::Option<PageToken>,
1726 #[prost(message, optional, tag = "3")]
1727 pub meta: ::core::option::Option<ResponseMeta>,
1728}
1729#[derive(Clone, PartialEq, ::prost::Message)]
1735pub struct TraceItemTableRequest {
1736 #[prost(message, optional, tag = "1")]
1737 pub meta: ::core::option::Option<RequestMeta>,
1738 #[prost(message, repeated, tag = "2")]
1740 pub columns: ::prost::alloc::vec::Vec<Column>,
1741 #[prost(message, optional, tag = "3")]
1743 pub filter: ::core::option::Option<TraceItemFilter>,
1744 #[prost(message, repeated, tag = "4")]
1745 pub order_by: ::prost::alloc::vec::Vec<trace_item_table_request::OrderBy>,
1746 #[prost(message, repeated, tag = "5")]
1747 pub group_by: ::prost::alloc::vec::Vec<AttributeKey>,
1748 #[prost(uint32, tag = "6")]
1749 pub limit: u32,
1750 #[prost(message, optional, tag = "7")]
1752 pub page_token: ::core::option::Option<PageToken>,
1753 #[prost(message, repeated, tag = "8")]
1754 pub virtual_column_contexts: ::prost::alloc::vec::Vec<VirtualColumnContext>,
1755 #[prost(message, optional, tag = "9")]
1757 pub aggregation_filter: ::core::option::Option<AggregationFilter>,
1758 #[prost(message, repeated, tag = "10")]
1763 pub trace_filters: ::prost::alloc::vec::Vec<TraceItemFilterWithType>,
1764}
1765pub mod trace_item_table_request {
1767 #[derive(Clone, PartialEq, ::prost::Message)]
1768 pub struct OrderBy {
1769 #[prost(message, optional, tag = "1")]
1770 pub column: ::core::option::Option<super::Column>,
1771 #[prost(bool, tag = "2")]
1772 pub descending: bool,
1773 }
1774}
1775#[derive(Clone, PartialEq, ::prost::Message)]
1776pub struct AggregationAndFilter {
1777 #[prost(message, repeated, tag = "1")]
1778 pub filters: ::prost::alloc::vec::Vec<AggregationFilter>,
1779}
1780#[derive(Clone, PartialEq, ::prost::Message)]
1781pub struct AggregationOrFilter {
1782 #[prost(message, repeated, tag = "1")]
1783 pub filters: ::prost::alloc::vec::Vec<AggregationFilter>,
1784}
1785#[derive(Clone, PartialEq, ::prost::Message)]
1786pub struct AggregationComparisonFilter {
1787 #[deprecated]
1789 #[prost(message, optional, tag = "1")]
1790 pub column: ::core::option::Option<Column>,
1791 #[prost(enumeration = "aggregation_comparison_filter::Op", tag = "2")]
1792 pub op: i32,
1793 #[deprecated]
1795 #[prost(message, optional, tag = "3")]
1796 pub value: ::core::option::Option<AttributeValue>,
1797 #[prost(double, tag = "5")]
1798 pub val: f64,
1799 #[prost(message, optional, tag = "4")]
1800 pub aggregation: ::core::option::Option<AttributeAggregation>,
1801 #[prost(message, optional, tag = "6")]
1802 pub conditional_aggregation: ::core::option::Option<AttributeConditionalAggregation>,
1803 #[prost(message, optional, tag = "7")]
1804 pub formula: ::core::option::Option<column::BinaryFormula>,
1805}
1806pub mod aggregation_comparison_filter {
1808 #[derive(
1809 Clone,
1810 Copy,
1811 Debug,
1812 PartialEq,
1813 Eq,
1814 Hash,
1815 PartialOrd,
1816 Ord,
1817 ::prost::Enumeration
1818 )]
1819 #[repr(i32)]
1820 pub enum Op {
1821 Unspecified = 0,
1822 LessThan = 1,
1823 GreaterThan = 2,
1824 LessThanOrEquals = 3,
1825 GreaterThanOrEquals = 4,
1826 Equals = 5,
1827 NotEquals = 6,
1828 }
1829 impl Op {
1830 pub fn as_str_name(&self) -> &'static str {
1835 match self {
1836 Op::Unspecified => "OP_UNSPECIFIED",
1837 Op::LessThan => "OP_LESS_THAN",
1838 Op::GreaterThan => "OP_GREATER_THAN",
1839 Op::LessThanOrEquals => "OP_LESS_THAN_OR_EQUALS",
1840 Op::GreaterThanOrEquals => "OP_GREATER_THAN_OR_EQUALS",
1841 Op::Equals => "OP_EQUALS",
1842 Op::NotEquals => "OP_NOT_EQUALS",
1843 }
1844 }
1845 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1847 match value {
1848 "OP_UNSPECIFIED" => Some(Self::Unspecified),
1849 "OP_LESS_THAN" => Some(Self::LessThan),
1850 "OP_GREATER_THAN" => Some(Self::GreaterThan),
1851 "OP_LESS_THAN_OR_EQUALS" => Some(Self::LessThanOrEquals),
1852 "OP_GREATER_THAN_OR_EQUALS" => Some(Self::GreaterThanOrEquals),
1853 "OP_EQUALS" => Some(Self::Equals),
1854 "OP_NOT_EQUALS" => Some(Self::NotEquals),
1855 _ => None,
1856 }
1857 }
1858 }
1859}
1860#[derive(Clone, PartialEq, ::prost::Message)]
1861pub struct AggregationFilter {
1862 #[prost(oneof = "aggregation_filter::Value", tags = "1, 2, 3")]
1863 pub value: ::core::option::Option<aggregation_filter::Value>,
1864}
1865pub mod aggregation_filter {
1867 #[derive(Clone, PartialEq, ::prost::Oneof)]
1868 pub enum Value {
1869 #[prost(message, tag = "1")]
1870 AndFilter(super::AggregationAndFilter),
1871 #[prost(message, tag = "2")]
1872 OrFilter(super::AggregationOrFilter),
1873 #[prost(message, tag = "3")]
1874 ComparisonFilter(super::AggregationComparisonFilter),
1875 }
1876}
1877#[derive(Clone, PartialEq, ::prost::Message)]
1878pub struct Column {
1879 #[prost(string, tag = "3")]
1880 pub label: ::prost::alloc::string::String,
1881 #[prost(oneof = "column::Column", tags = "1, 2, 5, 4, 6")]
1882 pub column: ::core::option::Option<column::Column>,
1883}
1884pub mod column {
1886 #[derive(Clone, PartialEq, ::prost::Message)]
1887 pub struct BinaryFormula {
1888 #[prost(enumeration = "binary_formula::Op", tag = "1")]
1889 pub op: i32,
1890 #[prost(message, optional, boxed, tag = "2")]
1891 pub left: ::core::option::Option<::prost::alloc::boxed::Box<super::Column>>,
1892 #[prost(message, optional, boxed, tag = "3")]
1893 pub right: ::core::option::Option<::prost::alloc::boxed::Box<super::Column>>,
1894 #[prost(oneof = "binary_formula::DefaultValue", tags = "4, 5")]
1897 pub default_value: ::core::option::Option<binary_formula::DefaultValue>,
1898 }
1899 pub mod binary_formula {
1901 #[derive(
1902 Clone,
1903 Copy,
1904 Debug,
1905 PartialEq,
1906 Eq,
1907 Hash,
1908 PartialOrd,
1909 Ord,
1910 ::prost::Enumeration
1911 )]
1912 #[repr(i32)]
1913 pub enum Op {
1914 Unspecified = 0,
1915 Divide = 1,
1916 Multiply = 2,
1917 Add = 3,
1918 Subtract = 4,
1919 }
1920 impl Op {
1921 pub fn as_str_name(&self) -> &'static str {
1926 match self {
1927 Op::Unspecified => "OP_UNSPECIFIED",
1928 Op::Divide => "OP_DIVIDE",
1929 Op::Multiply => "OP_MULTIPLY",
1930 Op::Add => "OP_ADD",
1931 Op::Subtract => "OP_SUBTRACT",
1932 }
1933 }
1934 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1936 match value {
1937 "OP_UNSPECIFIED" => Some(Self::Unspecified),
1938 "OP_DIVIDE" => Some(Self::Divide),
1939 "OP_MULTIPLY" => Some(Self::Multiply),
1940 "OP_ADD" => Some(Self::Add),
1941 "OP_SUBTRACT" => Some(Self::Subtract),
1942 _ => None,
1943 }
1944 }
1945 }
1946 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
1949 pub enum DefaultValue {
1950 #[prost(double, tag = "4")]
1951 DefaultValueDouble(f64),
1952 #[prost(int64, tag = "5")]
1953 DefaultValueInt64(i64),
1954 }
1955 }
1956 #[derive(Clone, PartialEq, ::prost::Oneof)]
1957 pub enum Column {
1958 #[prost(message, tag = "1")]
1959 Key(super::AttributeKey),
1960 #[prost(message, tag = "2")]
1961 Aggregation(super::AttributeAggregation),
1962 #[prost(message, tag = "5")]
1963 ConditionalAggregation(super::AttributeConditionalAggregation),
1964 #[prost(message, tag = "4")]
1965 Formula(::prost::alloc::boxed::Box<BinaryFormula>),
1966 #[prost(message, tag = "6")]
1967 Literal(super::Literal),
1968 }
1969}
1970#[derive(Clone, PartialEq, ::prost::Message)]
1971pub struct TraceItemColumnValues {
1972 #[prost(string, tag = "1")]
1973 pub attribute_name: ::prost::alloc::string::String,
1974 #[prost(message, repeated, tag = "2")]
1975 pub results: ::prost::alloc::vec::Vec<AttributeValue>,
1976 #[prost(enumeration = "Reliability", repeated, tag = "3")]
1978 pub reliabilities: ::prost::alloc::vec::Vec<i32>,
1979}
1980#[derive(Clone, PartialEq, ::prost::Message)]
1983pub struct TraceItemTableResponse {
1984 #[prost(message, repeated, tag = "1")]
1986 pub column_values: ::prost::alloc::vec::Vec<TraceItemColumnValues>,
1987 #[prost(message, optional, tag = "2")]
1989 pub page_token: ::core::option::Option<PageToken>,
1990 #[prost(message, optional, tag = "3")]
1991 pub meta: ::core::option::Option<ResponseMeta>,
1992}
1993#[derive(Clone, PartialEq, ::prost::Message)]
1994pub struct CreateTraceItemTableSubscriptionRequest {
1995 #[prost(message, optional, tag = "1")]
1996 pub table_request: ::core::option::Option<TraceItemTableRequest>,
1997 #[prost(uint64, tag = "2")]
1998 pub project_id: u64,
1999 #[prost(uint32, tag = "3")]
2000 pub time_window: u32,
2001 #[prost(uint32, tag = "4")]
2002 pub resolution: u32,
2003}
2004#[derive(Clone, PartialEq, ::prost::Message)]
2005pub struct CreateTraceItemTableSubscriptionResponse {
2006 #[prost(string, tag = "1")]
2007 pub subscription_id: ::prost::alloc::string::String,
2008}
2009#[derive(Clone, PartialEq, ::prost::Message)]
2010pub struct AnyValue {
2011 #[prost(oneof = "any_value::Value", tags = "1, 2, 3, 4, 5, 6, 7")]
2012 pub value: ::core::option::Option<any_value::Value>,
2013}
2014pub mod any_value {
2016 #[derive(Clone, PartialEq, ::prost::Oneof)]
2017 pub enum Value {
2018 #[prost(string, tag = "1")]
2019 StringValue(::prost::alloc::string::String),
2020 #[prost(bool, tag = "2")]
2021 BoolValue(bool),
2022 #[prost(int64, tag = "3")]
2023 IntValue(i64),
2024 #[prost(double, tag = "4")]
2025 DoubleValue(f64),
2026 #[prost(message, tag = "5")]
2027 ArrayValue(super::ArrayValue),
2028 #[prost(message, tag = "6")]
2029 KvlistValue(super::KeyValueList),
2030 #[prost(bytes, tag = "7")]
2031 BytesValue(::prost::alloc::vec::Vec<u8>),
2032 }
2033}
2034#[derive(Clone, PartialEq, ::prost::Message)]
2035pub struct ArrayValue {
2036 #[prost(message, repeated, tag = "1")]
2037 pub values: ::prost::alloc::vec::Vec<AnyValue>,
2038}
2039#[derive(Clone, PartialEq, ::prost::Message)]
2040pub struct KeyValueList {
2041 #[prost(message, repeated, tag = "1")]
2042 pub values: ::prost::alloc::vec::Vec<KeyValue>,
2043}
2044#[derive(Clone, PartialEq, ::prost::Message)]
2045pub struct KeyValue {
2046 #[prost(string, tag = "1")]
2047 pub key: ::prost::alloc::string::String,
2048 #[prost(message, optional, tag = "2")]
2049 pub value: ::core::option::Option<AnyValue>,
2050}
2051#[derive(Clone, PartialEq, ::prost::Message)]
2052pub struct TraceItem {
2053 #[prost(uint64, tag = "1")]
2054 pub organization_id: u64,
2055 #[prost(uint64, tag = "2")]
2056 pub project_id: u64,
2057 #[prost(string, tag = "3")]
2058 pub trace_id: ::prost::alloc::string::String,
2059 #[prost(bytes = "vec", tag = "4")]
2061 pub item_id: ::prost::alloc::vec::Vec<u8>,
2062 #[prost(enumeration = "TraceItemType", tag = "5")]
2063 pub item_type: i32,
2064 #[prost(message, optional, tag = "6")]
2065 pub timestamp: ::core::option::Option<::prost_types::Timestamp>,
2066 #[prost(map = "string, message", tag = "7")]
2067 pub attributes: ::std::collections::HashMap<
2068 ::prost::alloc::string::String,
2069 AnyValue,
2070 >,
2071 #[prost(double, tag = "8")]
2072 pub client_sample_rate: f64,
2073 #[prost(double, tag = "9")]
2074 pub server_sample_rate: f64,
2075 #[prost(uint32, tag = "100")]
2077 pub retention_days: u32,
2078 #[prost(message, optional, tag = "101")]
2079 pub received: ::core::option::Option<::prost_types::Timestamp>,
2080 #[prost(uint32, tag = "102")]
2081 pub downsampled_retention_days: u32,
2082}
2083#[derive(Clone, PartialEq, ::prost::Message)]
2084pub struct ExportTraceItemsRequest {
2085 #[prost(message, optional, tag = "1")]
2086 pub meta: ::core::option::Option<RequestMeta>,
2087 #[prost(message, optional, tag = "2")]
2088 pub page_token: ::core::option::Option<PageToken>,
2089 #[prost(uint32, tag = "3")]
2090 pub limit: u32,
2091}
2092#[derive(Clone, PartialEq, ::prost::Message)]
2093pub struct ExportTraceItemsResponse {
2094 #[prost(message, repeated, tag = "1")]
2095 pub trace_items: ::prost::alloc::vec::Vec<TraceItem>,
2096 #[prost(message, optional, tag = "2")]
2097 pub page_token: ::core::option::Option<PageToken>,
2098}
2099#[derive(Clone, PartialEq, ::prost::Message)]
2100pub struct Error {
2101 #[prost(int32, tag = "1")]
2103 pub code: i32,
2104 #[prost(string, tag = "2")]
2106 pub message: ::prost::alloc::string::String,
2107 #[prost(message, repeated, tag = "3")]
2109 pub details: ::prost::alloc::vec::Vec<::prost_types::Any>,
2110}