#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct AttributeKey {
#[prost(enumeration = "attribute_key::Type", tag = "1")]
pub r#type: i32,
#[prost(string, tag = "2")]
pub name: ::prost::alloc::string::String,
}
pub mod attribute_key {
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub enum Type {
Unspecified = 0,
String = 1,
Boolean = 2,
#[deprecated]
Float = 3,
Int = 4,
Double = 5,
Array = 6,
}
impl Type {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "TYPE_UNSPECIFIED",
Self::String => "TYPE_STRING",
Self::Boolean => "TYPE_BOOLEAN",
#[allow(deprecated)]
Self::Float => "TYPE_FLOAT",
Self::Int => "TYPE_INT",
Self::Double => "TYPE_DOUBLE",
Self::Array => "TYPE_ARRAY",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"TYPE_UNSPECIFIED" => Some(Self::Unspecified),
"TYPE_STRING" => Some(Self::String),
"TYPE_BOOLEAN" => Some(Self::Boolean),
"TYPE_FLOAT" => Some(#[allow(deprecated)] Self::Float),
"TYPE_INT" => Some(Self::Int),
"TYPE_DOUBLE" => Some(Self::Double),
"TYPE_ARRAY" => Some(Self::Array),
_ => None,
}
}
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AttributeKeyExpression {
#[prost(oneof = "attribute_key_expression::Expression", tags = "1, 2")]
pub expression: ::core::option::Option<attribute_key_expression::Expression>,
}
pub mod attribute_key_expression {
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Formula {
#[prost(enumeration = "Op", tag = "1")]
pub op: i32,
#[prost(message, optional, boxed, tag = "2")]
pub left: ::core::option::Option<
::prost::alloc::boxed::Box<super::AttributeKeyExpression>,
>,
#[prost(message, optional, boxed, tag = "3")]
pub right: ::core::option::Option<
::prost::alloc::boxed::Box<super::AttributeKeyExpression>,
>,
}
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub enum Op {
Unspecified = 0,
Add = 1,
Sub = 2,
Mult = 3,
Div = 4,
}
impl Op {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "OP_UNSPECIFIED",
Self::Add => "OP_ADD",
Self::Sub => "OP_SUB",
Self::Mult => "OP_MULT",
Self::Div => "OP_DIV",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"OP_UNSPECIFIED" => Some(Self::Unspecified),
"OP_ADD" => Some(Self::Add),
"OP_SUB" => Some(Self::Sub),
"OP_MULT" => Some(Self::Mult),
"OP_DIV" => Some(Self::Div),
_ => None,
}
}
}
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Expression {
#[prost(message, tag = "1")]
Key(super::AttributeKey),
#[prost(message, tag = "2")]
Formula(::prost::alloc::boxed::Box<Formula>),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct VirtualColumnContext {
#[prost(string, tag = "1")]
pub from_column_name: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub to_column_name: ::prost::alloc::string::String,
#[prost(map = "string, string", tag = "3")]
pub value_map: ::std::collections::HashMap<
::prost::alloc::string::String,
::prost::alloc::string::String,
>,
#[prost(string, tag = "4")]
pub default_value: ::prost::alloc::string::String,
#[prost(enumeration = "attribute_key::Type", tag = "5")]
pub from_column_type: i32,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct StrArray {
#[prost(string, repeated, tag = "1")]
pub values: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct IntArray {
#[prost(int64, repeated, tag = "1")]
pub values: ::prost::alloc::vec::Vec<i64>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FloatArray {
#[prost(float, repeated, tag = "1")]
pub values: ::prost::alloc::vec::Vec<f32>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DoubleArray {
#[prost(double, repeated, tag = "1")]
pub values: ::prost::alloc::vec::Vec<f64>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Array {
#[prost(message, repeated, tag = "1")]
pub values: ::prost::alloc::vec::Vec<AttributeValue>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AttributeValue {
#[prost(bool, tag = "11")]
pub is_null: bool,
#[prost(
oneof = "attribute_value::Value",
tags = "1, 2, 4, 9, 12, 3, 8, 10, 7, 6, 5"
)]
pub value: ::core::option::Option<attribute_value::Value>,
}
pub mod attribute_value {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Value {
#[prost(bool, tag = "1")]
ValBool(bool),
#[prost(string, tag = "2")]
ValStr(::prost::alloc::string::String),
#[prost(int64, tag = "4")]
ValInt(i64),
#[prost(double, tag = "9")]
ValDouble(f64),
#[prost(message, tag = "12")]
ValArray(super::Array),
#[deprecated]
#[prost(float, tag = "3")]
ValFloat(f32),
#[deprecated]
#[prost(message, tag = "8")]
ValFloatArray(super::FloatArray),
#[deprecated]
#[prost(message, tag = "10")]
ValDoubleArray(super::DoubleArray),
#[deprecated]
#[prost(message, tag = "7")]
ValIntArray(super::IntArray),
#[deprecated]
#[prost(message, tag = "6")]
ValStrArray(super::StrArray),
#[deprecated]
#[prost(bool, tag = "5")]
ValNull(bool),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AttributeAggregation {
#[prost(enumeration = "Function", tag = "1")]
pub aggregate: i32,
#[prost(message, optional, tag = "2")]
pub key: ::core::option::Option<AttributeKey>,
#[prost(string, tag = "3")]
pub label: ::prost::alloc::string::String,
#[prost(enumeration = "ExtrapolationMode", tag = "4")]
pub extrapolation_mode: i32,
#[prost(oneof = "attribute_aggregation::DefaultValue", tags = "5, 6")]
pub default_value: ::core::option::Option<attribute_aggregation::DefaultValue>,
}
pub mod attribute_aggregation {
#[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
pub enum DefaultValue {
#[prost(double, tag = "5")]
DefaultValueDouble(f64),
#[prost(int64, tag = "6")]
DefaultValueInt64(i64),
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Function {
Unspecified = 0,
Sum = 1,
#[deprecated]
Average = 2,
Count = 3,
P50 = 4,
P75 = 12,
P90 = 5,
P95 = 6,
P99 = 7,
Avg = 8,
Max = 9,
Min = 10,
Uniq = 11,
Any = 13,
}
impl Function {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "FUNCTION_UNSPECIFIED",
Self::Sum => "FUNCTION_SUM",
#[allow(deprecated)]
Self::Average => "FUNCTION_AVERAGE",
Self::Count => "FUNCTION_COUNT",
Self::P50 => "FUNCTION_P50",
Self::P75 => "FUNCTION_P75",
Self::P90 => "FUNCTION_P90",
Self::P95 => "FUNCTION_P95",
Self::P99 => "FUNCTION_P99",
Self::Avg => "FUNCTION_AVG",
Self::Max => "FUNCTION_MAX",
Self::Min => "FUNCTION_MIN",
Self::Uniq => "FUNCTION_UNIQ",
Self::Any => "FUNCTION_ANY",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"FUNCTION_UNSPECIFIED" => Some(Self::Unspecified),
"FUNCTION_SUM" => Some(Self::Sum),
"FUNCTION_AVERAGE" => Some(#[allow(deprecated)] Self::Average),
"FUNCTION_COUNT" => Some(Self::Count),
"FUNCTION_P50" => Some(Self::P50),
"FUNCTION_P75" => Some(Self::P75),
"FUNCTION_P90" => Some(Self::P90),
"FUNCTION_P95" => Some(Self::P95),
"FUNCTION_P99" => Some(Self::P99),
"FUNCTION_AVG" => Some(Self::Avg),
"FUNCTION_MAX" => Some(Self::Max),
"FUNCTION_MIN" => Some(Self::Min),
"FUNCTION_UNIQ" => Some(Self::Uniq),
"FUNCTION_ANY" => Some(Self::Any),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum ExtrapolationMode {
Unspecified = 0,
None = 1,
SampleWeighted = 2,
ClientOnly = 3,
ServerOnly = 4,
}
impl ExtrapolationMode {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "EXTRAPOLATION_MODE_UNSPECIFIED",
Self::None => "EXTRAPOLATION_MODE_NONE",
Self::SampleWeighted => "EXTRAPOLATION_MODE_SAMPLE_WEIGHTED",
Self::ClientOnly => "EXTRAPOLATION_MODE_CLIENT_ONLY",
Self::ServerOnly => "EXTRAPOLATION_MODE_SERVER_ONLY",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"EXTRAPOLATION_MODE_UNSPECIFIED" => Some(Self::Unspecified),
"EXTRAPOLATION_MODE_NONE" => Some(Self::None),
"EXTRAPOLATION_MODE_SAMPLE_WEIGHTED" => Some(Self::SampleWeighted),
"EXTRAPOLATION_MODE_CLIENT_ONLY" => Some(Self::ClientOnly),
"EXTRAPOLATION_MODE_SERVER_ONLY" => Some(Self::ServerOnly),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Reliability {
Unspecified = 0,
Low = 1,
High = 2,
}
impl Reliability {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "RELIABILITY_UNSPECIFIED",
Self::Low => "RELIABILITY_LOW",
Self::High => "RELIABILITY_HIGH",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"RELIABILITY_UNSPECIFIED" => Some(Self::Unspecified),
"RELIABILITY_LOW" => Some(Self::Low),
"RELIABILITY_HIGH" => Some(Self::High),
_ => None,
}
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AndFilter {
#[prost(message, repeated, tag = "1")]
pub filters: ::prost::alloc::vec::Vec<TraceItemFilter>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OrFilter {
#[prost(message, repeated, tag = "1")]
pub filters: ::prost::alloc::vec::Vec<TraceItemFilter>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NotFilter {
#[prost(message, repeated, tag = "1")]
pub filters: ::prost::alloc::vec::Vec<TraceItemFilter>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ComparisonFilter {
#[prost(message, optional, tag = "1")]
pub key: ::core::option::Option<AttributeKey>,
#[prost(enumeration = "comparison_filter::Op", tag = "2")]
pub op: i32,
#[prost(message, optional, tag = "3")]
pub value: ::core::option::Option<AttributeValue>,
#[prost(bool, tag = "4")]
pub ignore_case: bool,
}
pub mod comparison_filter {
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub enum Op {
Unspecified = 0,
LessThan = 1,
GreaterThan = 2,
LessThanOrEquals = 3,
GreaterThanOrEquals = 4,
Equals = 5,
NotEquals = 6,
Like = 7,
NotLike = 8,
In = 9,
NotIn = 10,
}
impl Op {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "OP_UNSPECIFIED",
Self::LessThan => "OP_LESS_THAN",
Self::GreaterThan => "OP_GREATER_THAN",
Self::LessThanOrEquals => "OP_LESS_THAN_OR_EQUALS",
Self::GreaterThanOrEquals => "OP_GREATER_THAN_OR_EQUALS",
Self::Equals => "OP_EQUALS",
Self::NotEquals => "OP_NOT_EQUALS",
Self::Like => "OP_LIKE",
Self::NotLike => "OP_NOT_LIKE",
Self::In => "OP_IN",
Self::NotIn => "OP_NOT_IN",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"OP_UNSPECIFIED" => Some(Self::Unspecified),
"OP_LESS_THAN" => Some(Self::LessThan),
"OP_GREATER_THAN" => Some(Self::GreaterThan),
"OP_LESS_THAN_OR_EQUALS" => Some(Self::LessThanOrEquals),
"OP_GREATER_THAN_OR_EQUALS" => Some(Self::GreaterThanOrEquals),
"OP_EQUALS" => Some(Self::Equals),
"OP_NOT_EQUALS" => Some(Self::NotEquals),
"OP_LIKE" => Some(Self::Like),
"OP_NOT_LIKE" => Some(Self::NotLike),
"OP_IN" => Some(Self::In),
"OP_NOT_IN" => Some(Self::NotIn),
_ => None,
}
}
}
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ExistsFilter {
#[prost(message, optional, tag = "1")]
pub key: ::core::option::Option<AttributeKey>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AnyAttributeFilter {
#[prost(enumeration = "any_attribute_filter::Op", tag = "1")]
pub op: i32,
#[prost(message, optional, tag = "2")]
pub value: ::core::option::Option<AttributeValue>,
#[prost(bool, tag = "3")]
pub ignore_case: bool,
#[prost(enumeration = "attribute_key::Type", repeated, tag = "4")]
pub attribute_types: ::prost::alloc::vec::Vec<i32>,
}
pub mod any_attribute_filter {
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub enum Op {
Unspecified = 0,
Equals = 1,
NotEquals = 2,
Like = 3,
NotLike = 4,
In = 5,
NotIn = 6,
}
impl Op {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "OP_UNSPECIFIED",
Self::Equals => "OP_EQUALS",
Self::NotEquals => "OP_NOT_EQUALS",
Self::Like => "OP_LIKE",
Self::NotLike => "OP_NOT_LIKE",
Self::In => "OP_IN",
Self::NotIn => "OP_NOT_IN",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"OP_UNSPECIFIED" => Some(Self::Unspecified),
"OP_EQUALS" => Some(Self::Equals),
"OP_NOT_EQUALS" => Some(Self::NotEquals),
"OP_LIKE" => Some(Self::Like),
"OP_NOT_LIKE" => Some(Self::NotLike),
"OP_IN" => Some(Self::In),
"OP_NOT_IN" => Some(Self::NotIn),
_ => None,
}
}
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TraceItemFilter {
#[prost(oneof = "trace_item_filter::Value", tags = "1, 2, 3, 4, 5, 6")]
pub value: ::core::option::Option<trace_item_filter::Value>,
}
pub mod trace_item_filter {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Value {
#[prost(message, tag = "1")]
AndFilter(super::AndFilter),
#[prost(message, tag = "2")]
OrFilter(super::OrFilter),
#[prost(message, tag = "3")]
NotFilter(super::NotFilter),
#[prost(message, tag = "4")]
ComparisonFilter(super::ComparisonFilter),
#[prost(message, tag = "5")]
ExistsFilter(super::ExistsFilter),
#[prost(message, tag = "6")]
AnyAttributeFilter(super::AnyAttributeFilter),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AttributeConditionalAggregation {
#[prost(enumeration = "Function", tag = "1")]
pub aggregate: i32,
#[prost(message, optional, tag = "2")]
pub key: ::core::option::Option<AttributeKey>,
#[prost(message, optional, tag = "6")]
pub expression: ::core::option::Option<AttributeKeyExpression>,
#[prost(string, tag = "3")]
pub label: ::prost::alloc::string::String,
#[prost(enumeration = "ExtrapolationMode", tag = "4")]
pub extrapolation_mode: i32,
#[prost(message, optional, tag = "5")]
pub filter: ::core::option::Option<TraceItemFilter>,
#[prost(oneof = "attribute_conditional_aggregation::DefaultValue", tags = "7, 8")]
pub default_value: ::core::option::Option<
attribute_conditional_aggregation::DefaultValue,
>,
}
pub mod attribute_conditional_aggregation {
#[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
pub enum DefaultValue {
#[prost(double, tag = "7")]
DefaultValueDouble(f64),
#[prost(int64, tag = "8")]
DefaultValueInt64(i64),
}
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct DownsampledStorageConfig {
#[prost(enumeration = "downsampled_storage_config::Mode", tag = "1")]
pub mode: i32,
}
pub mod downsampled_storage_config {
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub enum Mode {
Unspecified = 0,
Preflight = 1,
BestEffort = 2,
Normal = 3,
HighestAccuracy = 4,
HighestAccuracyFlextime = 5,
LowPriority = 6,
}
impl Mode {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "MODE_UNSPECIFIED",
Self::Preflight => "MODE_PREFLIGHT",
Self::BestEffort => "MODE_BEST_EFFORT",
Self::Normal => "MODE_NORMAL",
Self::HighestAccuracy => "MODE_HIGHEST_ACCURACY",
Self::HighestAccuracyFlextime => "MODE_HIGHEST_ACCURACY_FLEXTIME",
Self::LowPriority => "MODE_LOW_PRIORITY",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"MODE_UNSPECIFIED" => Some(Self::Unspecified),
"MODE_PREFLIGHT" => Some(Self::Preflight),
"MODE_BEST_EFFORT" => Some(Self::BestEffort),
"MODE_NORMAL" => Some(Self::Normal),
"MODE_HIGHEST_ACCURACY" => Some(Self::HighestAccuracy),
"MODE_HIGHEST_ACCURACY_FLEXTIME" => Some(Self::HighestAccuracyFlextime),
"MODE_LOW_PRIORITY" => Some(Self::LowPriority),
_ => None,
}
}
}
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct DownsampledStorageMeta {
#[prost(enumeration = "downsampled_storage_meta::SelectedTier", tag = "1")]
pub tier: i32,
#[prost(uint64, tag = "2")]
pub estimated_num_rows: u64,
#[prost(bool, tag = "3")]
pub can_go_to_higher_accuracy_tier: bool,
}
pub mod downsampled_storage_meta {
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub enum SelectedTier {
Unspecified = 0,
SelectedTier1 = 1,
SelectedTier8 = 2,
SelectedTier64 = 3,
SelectedTier512 = 4,
}
impl SelectedTier {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "SELECTED_TIER_UNSPECIFIED",
Self::SelectedTier1 => "SELECTED_TIER_1",
Self::SelectedTier8 => "SELECTED_TIER_8",
Self::SelectedTier64 => "SELECTED_TIER_64",
Self::SelectedTier512 => "SELECTED_TIER_512",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"SELECTED_TIER_UNSPECIFIED" => Some(Self::Unspecified),
"SELECTED_TIER_1" => Some(Self::SelectedTier1),
"SELECTED_TIER_8" => Some(Self::SelectedTier8),
"SELECTED_TIER_64" => Some(Self::SelectedTier64),
"SELECTED_TIER_512" => Some(Self::SelectedTier512),
_ => None,
}
}
}
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct Literal {
#[prost(oneof = "literal::Value", tags = "1")]
pub value: ::core::option::Option<literal::Value>,
}
pub mod literal {
#[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
pub enum Value {
#[prost(double, tag = "1")]
ValDouble(f64),
}
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct RequestMeta {
#[prost(uint64, tag = "1")]
pub organization_id: u64,
#[prost(string, tag = "2")]
pub cogs_category: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub referrer: ::prost::alloc::string::String,
#[prost(uint64, repeated, tag = "4")]
pub project_ids: ::prost::alloc::vec::Vec<u64>,
#[prost(message, optional, tag = "5")]
pub start_timestamp: ::core::option::Option<::prost_types::Timestamp>,
#[prost(message, optional, tag = "6")]
pub end_timestamp: ::core::option::Option<::prost_types::Timestamp>,
#[deprecated]
#[prost(enumeration = "TraceItemName", tag = "7")]
pub trace_item_name: i32,
#[prost(enumeration = "TraceItemType", tag = "8")]
pub trace_item_type: i32,
#[prost(bool, tag = "10")]
pub debug: bool,
#[prost(string, tag = "11")]
pub request_id: ::prost::alloc::string::String,
#[prost(message, optional, tag = "12")]
pub downsampled_storage_config: ::core::option::Option<DownsampledStorageConfig>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ResponseMeta {
#[prost(string, tag = "1")]
pub request_id: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "2")]
pub query_info: ::prost::alloc::vec::Vec<QueryInfo>,
#[prost(message, optional, tag = "3")]
pub downsampled_storage_meta: ::core::option::Option<DownsampledStorageMeta>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TraceItemFilterWithType {
#[prost(enumeration = "TraceItemType", tag = "1")]
pub item_type: i32,
#[prost(message, optional, tag = "2")]
pub filter: ::core::option::Option<TraceItemFilter>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PageToken {
#[prost(oneof = "page_token::Value", tags = "1, 2, 3")]
pub value: ::core::option::Option<page_token::Value>,
}
pub mod page_token {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Value {
#[prost(uint64, tag = "1")]
Offset(u64),
#[prost(message, tag = "2")]
FilterOffset(super::TraceItemFilter),
#[prost(bool, tag = "3")]
EndPagination(bool),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QueryStats {
#[prost(int64, tag = "1")]
pub rows_read: i64,
#[prost(int64, tag = "2")]
pub columns_read: i64,
#[prost(int32, tag = "4")]
pub blocks: i32,
#[prost(int64, tag = "5")]
pub progress_bytes: i64,
#[prost(int32, tag = "8")]
pub max_threads: i32,
#[prost(message, optional, tag = "11")]
pub timing_marks: ::core::option::Option<TimingMarks>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct QueryMetadata {
#[prost(string, tag = "1")]
pub sql: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub status: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub clickhouse_table: ::prost::alloc::string::String,
#[prost(bool, tag = "4")]
pub r#final: bool,
#[prost(string, tag = "6")]
pub query_id: ::prost::alloc::string::String,
#[prost(bool, tag = "7")]
pub consistent: bool,
#[prost(bool, tag = "9")]
pub cache_hit: bool,
#[prost(string, tag = "10")]
pub cluster_name: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TimingMarks {
#[prost(int64, tag = "1")]
pub duration_ms: i64,
#[prost(map = "string, int64", tag = "2")]
pub marks_ms: ::std::collections::HashMap<::prost::alloc::string::String, i64>,
#[prost(map = "string, string", tag = "3")]
pub tags: ::std::collections::HashMap<
::prost::alloc::string::String,
::prost::alloc::string::String,
>,
#[prost(int64, tag = "4")]
pub timestamp: i64,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QueryInfo {
#[prost(message, optional, tag = "1")]
pub stats: ::core::option::Option<QueryStats>,
#[prost(message, optional, tag = "2")]
pub metadata: ::core::option::Option<QueryMetadata>,
#[prost(string, tag = "3")]
pub trace_logs: ::prost::alloc::string::String,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum TraceItemName {
Unspecified = 0,
EapSpans = 1,
EapErrors = 2,
}
impl TraceItemName {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "TRACE_ITEM_NAME_UNSPECIFIED",
Self::EapSpans => "TRACE_ITEM_NAME_EAP_SPANS",
Self::EapErrors => "TRACE_ITEM_NAME_EAP_ERRORS",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"TRACE_ITEM_NAME_UNSPECIFIED" => Some(Self::Unspecified),
"TRACE_ITEM_NAME_EAP_SPANS" => Some(Self::EapSpans),
"TRACE_ITEM_NAME_EAP_ERRORS" => Some(Self::EapErrors),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum TraceItemType {
Unspecified = 0,
Span = 1,
Error = 2,
Log = 3,
UptimeCheck = 4,
UptimeResult = 5,
Replay = 6,
Occurrence = 7,
Metric = 8,
ProfileFunction = 9,
Attachment = 10,
Preprod = 11,
UserSession = 12,
ProcessingError = 13,
}
impl TraceItemType {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "TRACE_ITEM_TYPE_UNSPECIFIED",
Self::Span => "TRACE_ITEM_TYPE_SPAN",
Self::Error => "TRACE_ITEM_TYPE_ERROR",
Self::Log => "TRACE_ITEM_TYPE_LOG",
Self::UptimeCheck => "TRACE_ITEM_TYPE_UPTIME_CHECK",
Self::UptimeResult => "TRACE_ITEM_TYPE_UPTIME_RESULT",
Self::Replay => "TRACE_ITEM_TYPE_REPLAY",
Self::Occurrence => "TRACE_ITEM_TYPE_OCCURRENCE",
Self::Metric => "TRACE_ITEM_TYPE_METRIC",
Self::ProfileFunction => "TRACE_ITEM_TYPE_PROFILE_FUNCTION",
Self::Attachment => "TRACE_ITEM_TYPE_ATTACHMENT",
Self::Preprod => "TRACE_ITEM_TYPE_PREPROD",
Self::UserSession => "TRACE_ITEM_TYPE_USER_SESSION",
Self::ProcessingError => "TRACE_ITEM_TYPE_PROCESSING_ERROR",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"TRACE_ITEM_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
"TRACE_ITEM_TYPE_SPAN" => Some(Self::Span),
"TRACE_ITEM_TYPE_ERROR" => Some(Self::Error),
"TRACE_ITEM_TYPE_LOG" => Some(Self::Log),
"TRACE_ITEM_TYPE_UPTIME_CHECK" => Some(Self::UptimeCheck),
"TRACE_ITEM_TYPE_UPTIME_RESULT" => Some(Self::UptimeResult),
"TRACE_ITEM_TYPE_REPLAY" => Some(Self::Replay),
"TRACE_ITEM_TYPE_OCCURRENCE" => Some(Self::Occurrence),
"TRACE_ITEM_TYPE_METRIC" => Some(Self::Metric),
"TRACE_ITEM_TYPE_PROFILE_FUNCTION" => Some(Self::ProfileFunction),
"TRACE_ITEM_TYPE_ATTACHMENT" => Some(Self::Attachment),
"TRACE_ITEM_TYPE_PREPROD" => Some(Self::Preprod),
"TRACE_ITEM_TYPE_USER_SESSION" => Some(Self::UserSession),
"TRACE_ITEM_TYPE_PROCESSING_ERROR" => Some(Self::ProcessingError),
_ => None,
}
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TimeSeriesRequest {
#[prost(message, optional, tag = "1")]
pub meta: ::core::option::Option<RequestMeta>,
#[prost(message, optional, tag = "2")]
pub filter: ::core::option::Option<TraceItemFilter>,
#[deprecated]
#[prost(message, repeated, tag = "3")]
pub aggregations: ::prost::alloc::vec::Vec<AttributeAggregation>,
#[prost(message, repeated, tag = "6")]
pub expressions: ::prost::alloc::vec::Vec<Expression>,
#[prost(uint64, tag = "4")]
pub granularity_secs: u64,
#[prost(message, repeated, tag = "5")]
pub group_by: ::prost::alloc::vec::Vec<AttributeKey>,
#[prost(message, repeated, tag = "7")]
pub trace_filters: ::prost::alloc::vec::Vec<TraceItemFilterWithType>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Expression {
#[prost(string, tag = "3")]
pub label: ::prost::alloc::string::String,
#[prost(oneof = "expression::Expression", tags = "1, 2, 4, 5")]
pub expression: ::core::option::Option<expression::Expression>,
}
pub mod expression {
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BinaryFormula {
#[prost(enumeration = "binary_formula::Op", tag = "1")]
pub op: i32,
#[prost(message, optional, boxed, tag = "2")]
pub left: ::core::option::Option<::prost::alloc::boxed::Box<super::Expression>>,
#[prost(message, optional, boxed, tag = "3")]
pub right: ::core::option::Option<::prost::alloc::boxed::Box<super::Expression>>,
#[prost(oneof = "binary_formula::DefaultValue", tags = "4, 5")]
pub default_value: ::core::option::Option<binary_formula::DefaultValue>,
}
pub mod binary_formula {
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub enum Op {
Unspecified = 0,
Divide = 1,
Multiply = 2,
Add = 3,
Subtract = 4,
}
impl Op {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "OP_UNSPECIFIED",
Self::Divide => "OP_DIVIDE",
Self::Multiply => "OP_MULTIPLY",
Self::Add => "OP_ADD",
Self::Subtract => "OP_SUBTRACT",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"OP_UNSPECIFIED" => Some(Self::Unspecified),
"OP_DIVIDE" => Some(Self::Divide),
"OP_MULTIPLY" => Some(Self::Multiply),
"OP_ADD" => Some(Self::Add),
"OP_SUBTRACT" => Some(Self::Subtract),
_ => None,
}
}
}
#[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
pub enum DefaultValue {
#[prost(double, tag = "4")]
DefaultValueDouble(f64),
#[prost(int64, tag = "5")]
DefaultValueInt64(i64),
}
}
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Expression {
#[deprecated]
#[prost(message, tag = "1")]
Aggregation(super::AttributeAggregation),
#[prost(message, tag = "2")]
Formula(::prost::alloc::boxed::Box<BinaryFormula>),
#[prost(message, tag = "4")]
ConditionalAggregation(super::AttributeConditionalAggregation),
#[prost(message, tag = "5")]
Literal(super::Literal),
}
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct DataPoint {
#[prost(float, tag = "1")]
pub data: f32,
#[prost(bool, tag = "2")]
pub data_present: bool,
#[prost(float, tag = "3")]
pub avg_sampling_rate: f32,
#[deprecated]
#[prost(bool, tag = "4")]
pub is_reliable: bool,
#[prost(enumeration = "Reliability", tag = "5")]
pub reliability: i32,
#[prost(int64, tag = "6")]
pub sample_count: i64,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TimeSeries {
#[prost(string, tag = "1")]
pub label: ::prost::alloc::string::String,
#[prost(map = "string, string", tag = "2")]
pub group_by_attributes: ::std::collections::HashMap<
::prost::alloc::string::String,
::prost::alloc::string::String,
>,
#[prost(message, repeated, tag = "3")]
pub buckets: ::prost::alloc::vec::Vec<::prost_types::Timestamp>,
#[prost(message, repeated, tag = "4")]
pub data_points: ::prost::alloc::vec::Vec<DataPoint>,
#[prost(uint64, tag = "5")]
pub num_events: u64,
#[deprecated]
#[prost(float, tag = "6")]
pub avg_sampling_rate: f32,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TimeSeriesResponse {
#[prost(message, repeated, tag = "1")]
pub result_timeseries: ::prost::alloc::vec::Vec<TimeSeries>,
#[prost(message, optional, tag = "5")]
pub meta: ::core::option::Option<ResponseMeta>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateSubscriptionRequest {
#[prost(message, optional, tag = "1")]
pub time_series_request: ::core::option::Option<TimeSeriesRequest>,
#[prost(uint32, tag = "2")]
pub time_window_secs: u32,
#[prost(uint32, tag = "3")]
pub resolution_secs: u32,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CreateSubscriptionResponse {
#[prost(string, tag = "1")]
pub subscription_id: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeleteTraceItemsRequest {
#[prost(message, optional, tag = "1")]
pub meta: ::core::option::Option<RequestMeta>,
#[prost(string, repeated, tag = "2")]
pub trace_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(message, repeated, tag = "3")]
pub filters: ::prost::alloc::vec::Vec<TraceItemFilterWithType>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeleteTraceItemsResponse {
#[prost(message, optional, tag = "1")]
pub meta: ::core::option::Option<ResponseMeta>,
#[prost(uint32, tag = "2")]
pub matching_items_count: u32,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TracePageToken {
#[prost(oneof = "trace_page_token::Value", tags = "1, 2, 3")]
pub value: ::core::option::Option<trace_page_token::Value>,
}
pub mod trace_page_token {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Value {
#[prost(uint64, tag = "1")]
Offset(u64),
#[prost(message, tag = "2")]
EventFilter(super::EventFilter),
#[prost(message, tag = "3")]
TraceFilter(super::TraceFilter),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FindTracesRequest {
#[prost(message, optional, tag = "1")]
pub meta: ::core::option::Option<RequestMeta>,
#[prost(message, optional, tag = "2")]
pub filter: ::core::option::Option<TraceFilter>,
#[prost(message, optional, tag = "3")]
pub page_token: ::core::option::Option<TracePageToken>,
#[prost(enumeration = "TraceOrderBy", tag = "4")]
pub order_by: i32,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TraceResponse {
#[prost(string, tag = "1")]
pub trace_id: ::prost::alloc::string::String,
#[prost(message, optional, tag = "5")]
pub start_timestamp: ::core::option::Option<::prost_types::Timestamp>,
#[prost(message, optional, tag = "6")]
pub end_timestamp: ::core::option::Option<::prost_types::Timestamp>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FindTracesResponse {
#[prost(message, repeated, tag = "1")]
pub traces: ::prost::alloc::vec::Vec<TraceResponse>,
#[prost(message, optional, tag = "2")]
pub page_token: ::core::option::Option<TracePageToken>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EventFilter {
#[prost(enumeration = "TraceItemName", tag = "1")]
pub trace_item_name: i32,
#[prost(message, optional, tag = "2")]
pub filter: ::core::option::Option<TraceItemFilter>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AndTraceFilter {
#[prost(message, repeated, tag = "1")]
pub filters: ::prost::alloc::vec::Vec<TraceFilter>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OrTraceFilter {
#[prost(message, repeated, tag = "1")]
pub filters: ::prost::alloc::vec::Vec<TraceFilter>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NotTraceFilter {
#[prost(message, repeated, tag = "1")]
pub filters: ::prost::alloc::vec::Vec<TraceFilter>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TraceFilter {
#[prost(oneof = "trace_filter::Filter", tags = "1, 2, 3, 4")]
pub filter: ::core::option::Option<trace_filter::Filter>,
}
pub mod trace_filter {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Filter {
#[prost(message, tag = "1")]
AndFilter(super::AndTraceFilter),
#[prost(message, tag = "2")]
OrFilter(super::OrTraceFilter),
#[prost(message, tag = "3")]
NotFilter(super::NotTraceFilter),
#[prost(message, tag = "4")]
EventFilter(super::EventFilter),
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum TraceOrderBy {
Unspecified = 0,
EndTime = 1,
TraceDuration = 2,
}
impl TraceOrderBy {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "TRACE_ORDER_BY_UNSPECIFIED",
Self::EndTime => "TRACE_ORDER_BY_END_TIME",
Self::TraceDuration => "TRACE_ORDER_BY_TRACE_DURATION",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"TRACE_ORDER_BY_UNSPECIFIED" => Some(Self::Unspecified),
"TRACE_ORDER_BY_END_TIME" => Some(Self::EndTime),
"TRACE_ORDER_BY_TRACE_DURATION" => Some(Self::TraceDuration),
_ => None,
}
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetTraceRequest {
#[prost(message, optional, tag = "1")]
pub meta: ::core::option::Option<RequestMeta>,
#[prost(string, tag = "2")]
pub trace_id: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "3")]
pub items: ::prost::alloc::vec::Vec<get_trace_request::TraceItem>,
#[prost(message, optional, tag = "4")]
pub page_token: ::core::option::Option<PageToken>,
#[prost(uint32, tag = "5")]
pub limit: u32,
}
pub mod get_trace_request {
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TraceItem {
#[deprecated]
#[prost(enumeration = "super::TraceItemName", tag = "1")]
pub r#type: i32,
#[prost(message, repeated, tag = "2")]
pub attributes: ::prost::alloc::vec::Vec<super::AttributeKey>,
#[prost(enumeration = "super::TraceItemType", tag = "3")]
pub item_type: i32,
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetTraceResponse {
#[prost(string, tag = "1")]
pub trace_id: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub meta: ::core::option::Option<ResponseMeta>,
#[prost(message, repeated, tag = "3")]
pub item_groups: ::prost::alloc::vec::Vec<get_trace_response::ItemGroup>,
#[prost(message, optional, tag = "4")]
pub page_token: ::core::option::Option<PageToken>,
}
pub mod get_trace_response {
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Item {
#[prost(string, tag = "1")]
pub id: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub timestamp: ::core::option::Option<::prost_types::Timestamp>,
#[prost(message, repeated, tag = "3")]
pub attributes: ::prost::alloc::vec::Vec<item::Attribute>,
}
pub mod item {
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Attribute {
#[prost(message, optional, tag = "1")]
pub key: ::core::option::Option<super::super::AttributeKey>,
#[prost(message, optional, tag = "2")]
pub value: ::core::option::Option<super::super::AttributeValue>,
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ItemGroup {
#[deprecated]
#[prost(enumeration = "super::TraceItemName", tag = "1")]
pub r#type: i32,
#[prost(message, repeated, tag = "2")]
pub items: ::prost::alloc::vec::Vec<Item>,
#[prost(enumeration = "super::TraceItemType", tag = "3")]
pub item_type: i32,
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TraceAttribute {
#[prost(enumeration = "trace_attribute::Key", tag = "1")]
pub key: i32,
#[prost(message, optional, tag = "2")]
pub value: ::core::option::Option<AttributeValue>,
#[prost(enumeration = "attribute_key::Type", tag = "3")]
pub r#type: i32,
}
pub mod trace_attribute {
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub enum Key {
Unspecified = 0,
TraceId = 1,
StartTimestamp = 2,
RootSpanName = 3,
TotalItemCount = 4,
FilteredItemCount = 5,
RootSpanDurationMs = 6,
RootSpanProjectId = 7,
EarliestSpanName = 8,
EarliestFrontendSpan = 9,
EndTimestamp = 10,
EarliestSpanProjectId = 11,
EarliestSpanDurationMs = 12,
EarliestFrontendSpanProjectId = 13,
EarliestFrontendSpanDurationMs = 14,
}
impl Key {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "KEY_UNSPECIFIED",
Self::TraceId => "KEY_TRACE_ID",
Self::StartTimestamp => "KEY_START_TIMESTAMP",
Self::RootSpanName => "KEY_ROOT_SPAN_NAME",
Self::TotalItemCount => "KEY_TOTAL_ITEM_COUNT",
Self::FilteredItemCount => "KEY_FILTERED_ITEM_COUNT",
Self::RootSpanDurationMs => "KEY_ROOT_SPAN_DURATION_MS",
Self::RootSpanProjectId => "KEY_ROOT_SPAN_PROJECT_ID",
Self::EarliestSpanName => "KEY_EARLIEST_SPAN_NAME",
Self::EarliestFrontendSpan => "KEY_EARLIEST_FRONTEND_SPAN",
Self::EndTimestamp => "KEY_END_TIMESTAMP",
Self::EarliestSpanProjectId => "KEY_EARLIEST_SPAN_PROJECT_ID",
Self::EarliestSpanDurationMs => "KEY_EARLIEST_SPAN_DURATION_MS",
Self::EarliestFrontendSpanProjectId => {
"KEY_EARLIEST_FRONTEND_SPAN_PROJECT_ID"
}
Self::EarliestFrontendSpanDurationMs => {
"KEY_EARLIEST_FRONTEND_SPAN_DURATION_MS"
}
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"KEY_UNSPECIFIED" => Some(Self::Unspecified),
"KEY_TRACE_ID" => Some(Self::TraceId),
"KEY_START_TIMESTAMP" => Some(Self::StartTimestamp),
"KEY_ROOT_SPAN_NAME" => Some(Self::RootSpanName),
"KEY_TOTAL_ITEM_COUNT" => Some(Self::TotalItemCount),
"KEY_FILTERED_ITEM_COUNT" => Some(Self::FilteredItemCount),
"KEY_ROOT_SPAN_DURATION_MS" => Some(Self::RootSpanDurationMs),
"KEY_ROOT_SPAN_PROJECT_ID" => Some(Self::RootSpanProjectId),
"KEY_EARLIEST_SPAN_NAME" => Some(Self::EarliestSpanName),
"KEY_EARLIEST_FRONTEND_SPAN" => Some(Self::EarliestFrontendSpan),
"KEY_END_TIMESTAMP" => Some(Self::EndTimestamp),
"KEY_EARLIEST_SPAN_PROJECT_ID" => Some(Self::EarliestSpanProjectId),
"KEY_EARLIEST_SPAN_DURATION_MS" => Some(Self::EarliestSpanDurationMs),
"KEY_EARLIEST_FRONTEND_SPAN_PROJECT_ID" => {
Some(Self::EarliestFrontendSpanProjectId)
}
"KEY_EARLIEST_FRONTEND_SPAN_DURATION_MS" => {
Some(Self::EarliestFrontendSpanDurationMs)
}
_ => None,
}
}
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetTracesRequest {
#[prost(message, optional, tag = "1")]
pub meta: ::core::option::Option<RequestMeta>,
#[prost(message, optional, tag = "2")]
pub page_token: ::core::option::Option<PageToken>,
#[prost(uint32, tag = "3")]
pub limit: u32,
#[prost(message, repeated, tag = "4")]
pub filters: ::prost::alloc::vec::Vec<get_traces_request::TraceFilter>,
#[prost(message, repeated, tag = "5")]
pub order_by: ::prost::alloc::vec::Vec<get_traces_request::OrderBy>,
#[prost(message, repeated, tag = "6")]
pub attributes: ::prost::alloc::vec::Vec<TraceAttribute>,
}
pub mod get_traces_request {
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct OrderBy {
#[prost(enumeration = "super::trace_attribute::Key", tag = "1")]
pub key: i32,
#[prost(bool, tag = "2")]
pub descending: bool,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TraceFilter {
#[deprecated]
#[prost(enumeration = "super::TraceItemName", tag = "1")]
pub item_name: i32,
#[prost(message, optional, tag = "2")]
pub filter: ::core::option::Option<super::TraceItemFilter>,
#[prost(enumeration = "super::TraceItemType", tag = "3")]
pub item_type: i32,
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetTracesResponse {
#[prost(message, optional, tag = "1")]
pub page_token: ::core::option::Option<PageToken>,
#[prost(message, optional, tag = "2")]
pub meta: ::core::option::Option<ResponseMeta>,
#[prost(message, repeated, tag = "3")]
pub traces: ::prost::alloc::vec::Vec<get_traces_response::Trace>,
}
pub mod get_traces_response {
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Trace {
#[prost(message, repeated, tag = "1")]
pub attributes: ::prost::alloc::vec::Vec<super::TraceAttribute>,
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TraceItemAttributeNamesRequest {
#[prost(message, optional, tag = "1")]
pub meta: ::core::option::Option<RequestMeta>,
#[prost(uint32, tag = "2")]
pub limit: u32,
#[deprecated]
#[prost(uint32, tag = "3")]
pub offset: u32,
#[prost(enumeration = "attribute_key::Type", tag = "5")]
pub r#type: i32,
#[prost(string, tag = "6")]
pub value_substring_match: ::prost::alloc::string::String,
#[prost(message, optional, tag = "7")]
pub page_token: ::core::option::Option<PageToken>,
#[prost(message, optional, tag = "8")]
pub intersecting_attributes_filter: ::core::option::Option<TraceItemFilter>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TraceItemAttributeNamesResponse {
#[prost(message, repeated, tag = "1")]
pub attributes: ::prost::alloc::vec::Vec<
trace_item_attribute_names_response::Attribute,
>,
#[prost(message, optional, tag = "2")]
pub page_token: ::core::option::Option<PageToken>,
#[prost(message, optional, tag = "3")]
pub meta: ::core::option::Option<ResponseMeta>,
}
pub mod trace_item_attribute_names_response {
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct Attribute {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(enumeration = "super::attribute_key::Type", tag = "2")]
pub r#type: i32,
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TraceItemAttributeValuesRequest {
#[prost(message, optional, tag = "1")]
pub meta: ::core::option::Option<RequestMeta>,
#[prost(message, optional, tag = "2")]
pub key: ::core::option::Option<AttributeKey>,
#[deprecated]
#[prost(string, tag = "3")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub value_substring_match: ::prost::alloc::string::String,
#[prost(uint32, tag = "5")]
pub limit: u32,
#[prost(message, optional, tag = "6")]
pub page_token: ::core::option::Option<PageToken>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TraceItemAttributeValuesResponse {
#[prost(string, repeated, tag = "1")]
pub values: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(int64, repeated, tag = "3")]
pub counts: ::prost::alloc::vec::Vec<i64>,
#[prost(message, optional, tag = "6")]
pub page_token: ::core::option::Option<PageToken>,
#[prost(message, optional, tag = "7")]
pub meta: ::core::option::Option<ResponseMeta>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TraceItemDetailsRequest {
#[prost(message, optional, tag = "1")]
pub meta: ::core::option::Option<RequestMeta>,
#[prost(string, tag = "2")]
pub item_id: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub trace_id: ::prost::alloc::string::String,
#[prost(message, optional, tag = "3")]
pub filter: ::core::option::Option<TraceItemFilter>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TraceItemDetailsAttribute {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub value: ::core::option::Option<AttributeValue>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TraceItemDetailsResponse {
#[prost(string, tag = "1")]
pub item_id: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub timestamp: ::core::option::Option<::prost_types::Timestamp>,
#[prost(message, repeated, tag = "3")]
pub attributes: ::prost::alloc::vec::Vec<TraceItemDetailsAttribute>,
#[prost(message, optional, tag = "4")]
pub meta: ::core::option::Option<ResponseMeta>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AttributeDistributionsRequest {
#[prost(uint32, tag = "1")]
pub max_buckets: u32,
#[prost(uint32, tag = "2")]
pub max_attributes: u32,
#[prost(message, repeated, tag = "3")]
pub attributes: ::prost::alloc::vec::Vec<AttributeKey>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct HeatmapRequest {
#[prost(message, optional, tag = "1")]
pub x_attribute: ::core::option::Option<AttributeKey>,
#[prost(message, optional, tag = "2")]
pub y_attribute: ::core::option::Option<AttributeKey>,
#[prost(uint32, optional, tag = "3")]
pub num_y_buckets: ::core::option::Option<u32>,
#[prost(uint32, optional, tag = "4")]
pub num_x_buckets: ::core::option::Option<u32>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StatsType {
#[prost(oneof = "stats_type::Type", tags = "1, 2")]
pub r#type: ::core::option::Option<stats_type::Type>,
}
pub mod stats_type {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Type {
#[prost(message, tag = "1")]
AttributeDistributions(super::AttributeDistributionsRequest),
#[prost(message, tag = "2")]
Heatmap(super::HeatmapRequest),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TraceItemStatsRequest {
#[prost(message, optional, tag = "1")]
pub meta: ::core::option::Option<RequestMeta>,
#[prost(message, optional, tag = "2")]
pub filter: ::core::option::Option<TraceItemFilter>,
#[prost(message, repeated, tag = "3")]
pub stats_types: ::prost::alloc::vec::Vec<StatsType>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AttributeDistribution {
#[prost(string, tag = "1")]
pub attribute_name: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "2")]
pub buckets: ::prost::alloc::vec::Vec<attribute_distribution::Bucket>,
}
pub mod attribute_distribution {
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Bucket {
#[prost(string, tag = "1")]
pub label: ::prost::alloc::string::String,
#[prost(float, tag = "2")]
pub value: f32,
#[prost(message, optional, tag = "3")]
pub last_seen: ::core::option::Option<::prost_types::Timestamp>,
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AttributeDistributions {
#[prost(message, repeated, tag = "1")]
pub attributes: ::prost::alloc::vec::Vec<AttributeDistribution>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MatrixColumn {
#[prost(message, optional, tag = "1")]
pub x_label: ::core::option::Option<AttributeValue>,
#[prost(float, repeated, tag = "2")]
pub values: ::prost::alloc::vec::Vec<f32>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Heatmap {
#[prost(message, optional, tag = "1")]
pub x_attribute: ::core::option::Option<AttributeKey>,
#[prost(message, optional, tag = "2")]
pub y_attribute: ::core::option::Option<AttributeKey>,
#[prost(message, repeated, tag = "3")]
pub y_buckets: ::prost::alloc::vec::Vec<AttributeValue>,
#[prost(message, repeated, tag = "4")]
pub data: ::prost::alloc::vec::Vec<MatrixColumn>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TraceItemStatsResult {
#[prost(oneof = "trace_item_stats_result::Result", tags = "1, 2")]
pub result: ::core::option::Option<trace_item_stats_result::Result>,
}
pub mod trace_item_stats_result {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Result {
#[prost(message, tag = "1")]
AttributeDistributions(super::AttributeDistributions),
#[prost(message, tag = "2")]
Heatmap(super::Heatmap),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TraceItemStatsResponse {
#[prost(message, repeated, tag = "1")]
pub results: ::prost::alloc::vec::Vec<TraceItemStatsResult>,
#[prost(message, optional, tag = "2")]
pub page_token: ::core::option::Option<PageToken>,
#[prost(message, optional, tag = "3")]
pub meta: ::core::option::Option<ResponseMeta>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TraceItemTableRequest {
#[prost(message, optional, tag = "1")]
pub meta: ::core::option::Option<RequestMeta>,
#[prost(message, repeated, tag = "2")]
pub columns: ::prost::alloc::vec::Vec<Column>,
#[prost(message, optional, tag = "3")]
pub filter: ::core::option::Option<TraceItemFilter>,
#[prost(message, repeated, tag = "4")]
pub order_by: ::prost::alloc::vec::Vec<trace_item_table_request::OrderBy>,
#[prost(message, repeated, tag = "5")]
pub group_by: ::prost::alloc::vec::Vec<AttributeKey>,
#[prost(uint32, tag = "6")]
pub limit: u32,
#[prost(message, optional, tag = "7")]
pub page_token: ::core::option::Option<PageToken>,
#[prost(message, repeated, tag = "8")]
pub virtual_column_contexts: ::prost::alloc::vec::Vec<VirtualColumnContext>,
#[prost(message, optional, tag = "9")]
pub aggregation_filter: ::core::option::Option<AggregationFilter>,
#[prost(message, repeated, tag = "10")]
pub trace_filters: ::prost::alloc::vec::Vec<TraceItemFilterWithType>,
}
pub mod trace_item_table_request {
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OrderBy {
#[prost(message, optional, tag = "1")]
pub column: ::core::option::Option<super::Column>,
#[prost(bool, tag = "2")]
pub descending: bool,
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AggregationAndFilter {
#[prost(message, repeated, tag = "1")]
pub filters: ::prost::alloc::vec::Vec<AggregationFilter>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AggregationOrFilter {
#[prost(message, repeated, tag = "1")]
pub filters: ::prost::alloc::vec::Vec<AggregationFilter>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AggregationComparisonFilter {
#[deprecated]
#[prost(message, optional, tag = "1")]
pub column: ::core::option::Option<Column>,
#[prost(enumeration = "aggregation_comparison_filter::Op", tag = "2")]
pub op: i32,
#[deprecated]
#[prost(message, optional, tag = "3")]
pub value: ::core::option::Option<AttributeValue>,
#[prost(double, tag = "5")]
pub val: f64,
#[prost(message, optional, tag = "4")]
pub aggregation: ::core::option::Option<AttributeAggregation>,
#[prost(message, optional, tag = "6")]
pub conditional_aggregation: ::core::option::Option<AttributeConditionalAggregation>,
#[prost(message, optional, tag = "7")]
pub formula: ::core::option::Option<column::BinaryFormula>,
}
pub mod aggregation_comparison_filter {
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub enum Op {
Unspecified = 0,
LessThan = 1,
GreaterThan = 2,
LessThanOrEquals = 3,
GreaterThanOrEquals = 4,
Equals = 5,
NotEquals = 6,
}
impl Op {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "OP_UNSPECIFIED",
Self::LessThan => "OP_LESS_THAN",
Self::GreaterThan => "OP_GREATER_THAN",
Self::LessThanOrEquals => "OP_LESS_THAN_OR_EQUALS",
Self::GreaterThanOrEquals => "OP_GREATER_THAN_OR_EQUALS",
Self::Equals => "OP_EQUALS",
Self::NotEquals => "OP_NOT_EQUALS",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"OP_UNSPECIFIED" => Some(Self::Unspecified),
"OP_LESS_THAN" => Some(Self::LessThan),
"OP_GREATER_THAN" => Some(Self::GreaterThan),
"OP_LESS_THAN_OR_EQUALS" => Some(Self::LessThanOrEquals),
"OP_GREATER_THAN_OR_EQUALS" => Some(Self::GreaterThanOrEquals),
"OP_EQUALS" => Some(Self::Equals),
"OP_NOT_EQUALS" => Some(Self::NotEquals),
_ => None,
}
}
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AggregationFilter {
#[prost(oneof = "aggregation_filter::Value", tags = "1, 2, 3")]
pub value: ::core::option::Option<aggregation_filter::Value>,
}
pub mod aggregation_filter {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Value {
#[prost(message, tag = "1")]
AndFilter(super::AggregationAndFilter),
#[prost(message, tag = "2")]
OrFilter(super::AggregationOrFilter),
#[prost(message, tag = "3")]
ComparisonFilter(super::AggregationComparisonFilter),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Column {
#[prost(string, tag = "3")]
pub label: ::prost::alloc::string::String,
#[prost(oneof = "column::Column", tags = "1, 2, 5, 4, 6, 7")]
pub column: ::core::option::Option<column::Column>,
}
pub mod column {
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BinaryFormula {
#[prost(enumeration = "binary_formula::Op", tag = "1")]
pub op: i32,
#[prost(message, optional, boxed, tag = "2")]
pub left: ::core::option::Option<::prost::alloc::boxed::Box<super::Column>>,
#[prost(message, optional, boxed, tag = "3")]
pub right: ::core::option::Option<::prost::alloc::boxed::Box<super::Column>>,
#[prost(oneof = "binary_formula::DefaultValue", tags = "4, 5")]
pub default_value: ::core::option::Option<binary_formula::DefaultValue>,
}
pub mod binary_formula {
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub enum Op {
Unspecified = 0,
Divide = 1,
Multiply = 2,
Add = 3,
Subtract = 4,
}
impl Op {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "OP_UNSPECIFIED",
Self::Divide => "OP_DIVIDE",
Self::Multiply => "OP_MULTIPLY",
Self::Add => "OP_ADD",
Self::Subtract => "OP_SUBTRACT",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"OP_UNSPECIFIED" => Some(Self::Unspecified),
"OP_DIVIDE" => Some(Self::Divide),
"OP_MULTIPLY" => Some(Self::Multiply),
"OP_ADD" => Some(Self::Add),
"OP_SUBTRACT" => Some(Self::Subtract),
_ => None,
}
}
}
#[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
pub enum DefaultValue {
#[prost(double, tag = "4")]
DefaultValueDouble(f64),
#[prost(int64, tag = "5")]
DefaultValueInt64(i64),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FormulaCondition {
#[prost(message, optional, boxed, tag = "1")]
pub left: ::core::option::Option<::prost::alloc::boxed::Box<super::Column>>,
#[prost(enumeration = "formula_condition::Op", tag = "2")]
pub op: i32,
#[prost(message, optional, boxed, tag = "3")]
pub right: ::core::option::Option<::prost::alloc::boxed::Box<super::Column>>,
}
pub mod formula_condition {
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub enum Op {
Unspecified = 0,
LessThan = 1,
GreaterThan = 2,
LessThanOrEquals = 3,
GreaterThanOrEquals = 4,
Equals = 5,
NotEquals = 6,
}
impl Op {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "OP_UNSPECIFIED",
Self::LessThan => "OP_LESS_THAN",
Self::GreaterThan => "OP_GREATER_THAN",
Self::LessThanOrEquals => "OP_LESS_THAN_OR_EQUALS",
Self::GreaterThanOrEquals => "OP_GREATER_THAN_OR_EQUALS",
Self::Equals => "OP_EQUALS",
Self::NotEquals => "OP_NOT_EQUALS",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"OP_UNSPECIFIED" => Some(Self::Unspecified),
"OP_LESS_THAN" => Some(Self::LessThan),
"OP_GREATER_THAN" => Some(Self::GreaterThan),
"OP_LESS_THAN_OR_EQUALS" => Some(Self::LessThanOrEquals),
"OP_GREATER_THAN_OR_EQUALS" => Some(Self::GreaterThanOrEquals),
"OP_EQUALS" => Some(Self::Equals),
"OP_NOT_EQUALS" => Some(Self::NotEquals),
_ => None,
}
}
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConditionalFormula {
#[prost(message, optional, boxed, tag = "1")]
pub condition: ::core::option::Option<
::prost::alloc::boxed::Box<FormulaCondition>,
>,
#[prost(message, optional, boxed, tag = "2")]
pub r#match: ::core::option::Option<::prost::alloc::boxed::Box<super::Column>>,
#[prost(message, optional, boxed, tag = "3")]
pub default: ::core::option::Option<::prost::alloc::boxed::Box<super::Column>>,
}
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Column {
#[prost(message, tag = "1")]
Key(super::AttributeKey),
#[prost(message, tag = "2")]
Aggregation(super::AttributeAggregation),
#[prost(message, tag = "5")]
ConditionalAggregation(super::AttributeConditionalAggregation),
#[prost(message, tag = "4")]
Formula(::prost::alloc::boxed::Box<BinaryFormula>),
#[prost(message, tag = "6")]
Literal(super::Literal),
#[prost(message, tag = "7")]
ConditionalFormula(::prost::alloc::boxed::Box<ConditionalFormula>),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TraceItemColumnValues {
#[prost(string, tag = "1")]
pub attribute_name: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "2")]
pub results: ::prost::alloc::vec::Vec<AttributeValue>,
#[prost(enumeration = "Reliability", repeated, tag = "3")]
pub reliabilities: ::prost::alloc::vec::Vec<i32>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TraceItemTableResponse {
#[prost(message, repeated, tag = "1")]
pub column_values: ::prost::alloc::vec::Vec<TraceItemColumnValues>,
#[prost(message, optional, tag = "2")]
pub page_token: ::core::option::Option<PageToken>,
#[prost(message, optional, tag = "3")]
pub meta: ::core::option::Option<ResponseMeta>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateTraceItemTableSubscriptionRequest {
#[prost(message, optional, tag = "1")]
pub table_request: ::core::option::Option<TraceItemTableRequest>,
#[prost(uint64, tag = "2")]
pub project_id: u64,
#[prost(uint32, tag = "3")]
pub time_window: u32,
#[prost(uint32, tag = "4")]
pub resolution: u32,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CreateTraceItemTableSubscriptionResponse {
#[prost(string, tag = "1")]
pub subscription_id: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AnyValue {
#[prost(oneof = "any_value::Value", tags = "1, 2, 3, 4, 5, 6, 7")]
pub value: ::core::option::Option<any_value::Value>,
}
pub mod any_value {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Value {
#[prost(string, tag = "1")]
StringValue(::prost::alloc::string::String),
#[prost(bool, tag = "2")]
BoolValue(bool),
#[prost(int64, tag = "3")]
IntValue(i64),
#[prost(double, tag = "4")]
DoubleValue(f64),
#[prost(message, tag = "5")]
ArrayValue(super::ArrayValue),
#[prost(message, tag = "6")]
KvlistValue(super::KeyValueList),
#[prost(bytes, tag = "7")]
BytesValue(::prost::alloc::vec::Vec<u8>),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ArrayValue {
#[prost(message, repeated, tag = "1")]
pub values: ::prost::alloc::vec::Vec<AnyValue>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct KeyValueList {
#[prost(message, repeated, tag = "1")]
pub values: ::prost::alloc::vec::Vec<KeyValue>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct KeyValue {
#[prost(string, tag = "1")]
pub key: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub value: ::core::option::Option<AnyValue>,
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CategoryCount {
#[prost(uint32, tag = "1")]
pub data_category: u32,
#[prost(uint64, tag = "2")]
pub quantity: u64,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Outcomes {
#[prost(message, repeated, tag = "1")]
pub category_count: ::prost::alloc::vec::Vec<CategoryCount>,
#[prost(uint64, tag = "2")]
pub key_id: u64,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TraceItem {
#[prost(uint64, tag = "1")]
pub organization_id: u64,
#[prost(uint64, tag = "2")]
pub project_id: u64,
#[prost(string, tag = "3")]
pub trace_id: ::prost::alloc::string::String,
#[prost(bytes = "vec", tag = "4")]
pub item_id: ::prost::alloc::vec::Vec<u8>,
#[prost(enumeration = "TraceItemType", tag = "5")]
pub item_type: i32,
#[prost(message, optional, tag = "6")]
pub timestamp: ::core::option::Option<::prost_types::Timestamp>,
#[prost(map = "string, message", tag = "7")]
pub attributes: ::std::collections::HashMap<
::prost::alloc::string::String,
AnyValue,
>,
#[prost(double, tag = "8")]
pub client_sample_rate: f64,
#[prost(double, tag = "9")]
pub server_sample_rate: f64,
#[prost(uint32, tag = "100")]
pub retention_days: u32,
#[prost(message, optional, tag = "101")]
pub received: ::core::option::Option<::prost_types::Timestamp>,
#[prost(uint32, tag = "102")]
pub downsampled_retention_days: u32,
#[prost(message, optional, tag = "110")]
pub outcomes: ::core::option::Option<Outcomes>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExportTraceItemsRequest {
#[prost(message, optional, tag = "1")]
pub meta: ::core::option::Option<RequestMeta>,
#[prost(message, optional, tag = "2")]
pub page_token: ::core::option::Option<PageToken>,
#[prost(uint32, tag = "3")]
pub limit: u32,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExportTraceItemsResponse {
#[prost(message, repeated, tag = "1")]
pub trace_items: ::prost::alloc::vec::Vec<TraceItem>,
#[prost(message, optional, tag = "2")]
pub page_token: ::core::option::Option<PageToken>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Error {
#[prost(int32, tag = "1")]
pub code: i32,
#[prost(string, tag = "2")]
pub message: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "3")]
pub details: ::prost::alloc::vec::Vec<::prost_types::Any>,
}