1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
// This file is @generated by prost-build.
/// Represents any type of attribute value. AnyValue may contain a
/// primitive value such as a string or integer or it may contain an arbitrary nested
/// object containing arrays, key-value lists and primitives.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AnyValue {
/// The value is one of the listed fields. It is valid for all values to be unspecified
/// in which case this AnyValue is considered to be "empty".
#[prost(oneof = "any_value::Value", tags = "1, 2, 3, 4, 5, 6, 7, 8")]
pub value: ::core::option::Option<any_value::Value>,
}
/// Nested message and enum types in `AnyValue`.
pub mod any_value {
/// The value is one of the listed fields. It is valid for all values to be unspecified
/// in which case this AnyValue is considered to be "empty".
#[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>),
/// Reference to the string value in ProfilesDictionary.string_table.
///
/// Note: This is currently used exclusively in the Profiling signal.
/// Implementers of OTLP receivers for signals other than Profiling should
/// treat the presence of this value as a non-fatal issue.
/// Log an error or warning indicating an unexpected field intended for the
/// Profiling signal and process the data as if this value were absent or
/// empty, ignoring its semantic content for the non-Profiling signal.
///
/// Status: \[Alpha\]
#[prost(int32, tag = "8")]
StringValueStrindex(i32),
}
}
impl ::prost::Name for AnyValue {
const NAME: &'static str = "AnyValue";
const PACKAGE: &'static str = "opentelemetry.proto.common.v1";
fn full_name() -> ::prost::alloc::string::String {
"opentelemetry.proto.common.v1.AnyValue".into()
}
fn type_url() -> ::prost::alloc::string::String {
"type.googleapis.com/opentelemetry.proto.common.v1.AnyValue".into()
}
}
/// ArrayValue is a list of AnyValue messages. We need ArrayValue as a message
/// since oneof in AnyValue does not allow repeated fields.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ArrayValue {
/// Array of values. The array may be empty (contain 0 elements).
#[prost(message, repeated, tag = "1")]
pub values: ::prost::alloc::vec::Vec<AnyValue>,
}
impl ::prost::Name for ArrayValue {
const NAME: &'static str = "ArrayValue";
const PACKAGE: &'static str = "opentelemetry.proto.common.v1";
fn full_name() -> ::prost::alloc::string::String {
"opentelemetry.proto.common.v1.ArrayValue".into()
}
fn type_url() -> ::prost::alloc::string::String {
"type.googleapis.com/opentelemetry.proto.common.v1.ArrayValue".into()
}
}
/// KeyValueList is a list of KeyValue messages. We need KeyValueList as a message
/// since `oneof` in AnyValue does not allow repeated fields. Everywhere else where we need
/// a list of KeyValue messages (e.g. in Span) we use `repeated KeyValue` directly to
/// avoid unnecessary extra wrapping (which slows down the protocol). The 2 approaches
/// are semantically equivalent.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct KeyValueList {
/// A collection of key/value pairs of key-value pairs. The list may be empty (may
/// contain 0 elements).
///
/// The keys MUST be unique (it is not allowed to have more than one
/// value with the same key).
/// The behavior of software that receives duplicated keys can be unpredictable.
#[prost(message, repeated, tag = "1")]
pub values: ::prost::alloc::vec::Vec<KeyValue>,
}
impl ::prost::Name for KeyValueList {
const NAME: &'static str = "KeyValueList";
const PACKAGE: &'static str = "opentelemetry.proto.common.v1";
fn full_name() -> ::prost::alloc::string::String {
"opentelemetry.proto.common.v1.KeyValueList".into()
}
fn type_url() -> ::prost::alloc::string::String {
"type.googleapis.com/opentelemetry.proto.common.v1.KeyValueList".into()
}
}
/// Represents a key-value pair that is used to store Span attributes, Link
/// attributes, etc.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct KeyValue {
/// The key name of the pair.
/// key_strindex MUST NOT be set if key is used.
#[prost(string, tag = "1")]
pub key: ::prost::alloc::string::String,
/// The value of the pair.
#[prost(message, optional, tag = "2")]
pub value: ::core::option::Option<AnyValue>,
/// Reference to the string key in ProfilesDictionary.string_table.
/// key MUST NOT be set if key_strindex is used.
///
/// Note: This is currently used exclusively in the Profiling signal.
/// Implementers of OTLP receivers for signals other than Profiling should
/// treat the presence of this key as a non-fatal issue.
/// Log an error or warning indicating an unexpected field intended for the
/// Profiling signal and process the data as if this value were absent or
/// empty, ignoring its semantic content for the non-Profiling signal.
///
/// Status: \[Alpha\]
#[prost(int32, tag = "3")]
pub key_strindex: i32,
}
impl ::prost::Name for KeyValue {
const NAME: &'static str = "KeyValue";
const PACKAGE: &'static str = "opentelemetry.proto.common.v1";
fn full_name() -> ::prost::alloc::string::String {
"opentelemetry.proto.common.v1.KeyValue".into()
}
fn type_url() -> ::prost::alloc::string::String {
"type.googleapis.com/opentelemetry.proto.common.v1.KeyValue".into()
}
}
/// InstrumentationScope is a message representing the instrumentation scope information
/// such as the fully qualified name and version.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct InstrumentationScope {
/// A name denoting the Instrumentation scope.
/// An empty instrumentation scope name means the name is unknown.
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
/// Defines the version of the instrumentation scope.
/// An empty instrumentation scope version means the version is unknown.
#[prost(string, tag = "2")]
pub version: ::prost::alloc::string::String,
/// Additional attributes that describe the scope. \[Optional\].
/// Attribute keys MUST be unique (it is not allowed to have more than one
/// attribute with the same key).
/// The behavior of software that receives duplicated keys can be unpredictable.
#[prost(message, repeated, tag = "3")]
pub attributes: ::prost::alloc::vec::Vec<KeyValue>,
/// The number of attributes that were discarded. Attributes
/// can be discarded because their keys are too long or because there are too many
/// attributes. If this value is 0, then no attributes were dropped.
#[prost(uint32, tag = "4")]
pub dropped_attributes_count: u32,
}
impl ::prost::Name for InstrumentationScope {
const NAME: &'static str = "InstrumentationScope";
const PACKAGE: &'static str = "opentelemetry.proto.common.v1";
fn full_name() -> ::prost::alloc::string::String {
"opentelemetry.proto.common.v1.InstrumentationScope".into()
}
fn type_url() -> ::prost::alloc::string::String {
"type.googleapis.com/opentelemetry.proto.common.v1.InstrumentationScope".into()
}
}
/// A reference to an Entity.
/// Entity represents an object of interest associated with produced telemetry: e.g spans, metrics, profiles, or logs.
///
/// Status: \[Development\]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EntityRef {
/// The Schema URL, if known. This is the identifier of the Schema that the entity data
/// is recorded in. To learn more about Schema URL see
/// <https://opentelemetry.io/docs/specs/otel/schemas/#schema-url>
///
/// This schema_url applies to the data in this message and to the Resource attributes
/// referenced by id_keys and description_keys.
/// TODO: discuss if we are happy with this somewhat complicated definition of what
/// the schema_url applies to.
///
/// This field obsoletes the schema_url field in ResourceMetrics/ResourceSpans/ResourceLogs.
#[prost(string, tag = "1")]
pub schema_url: ::prost::alloc::string::String,
/// Defines the type of the entity. MUST not change during the lifetime of the entity.
/// For example: "service" or "host". This field is required and MUST not be empty
/// for valid entities.
#[prost(string, tag = "2")]
pub r#type: ::prost::alloc::string::String,
/// Attribute Keys that identify the entity.
/// MUST not change during the lifetime of the entity. The Id must contain at least one attribute.
/// These keys MUST exist in the containing {message}.attributes.
#[prost(string, repeated, tag = "3")]
pub id_keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
/// Descriptive (non-identifying) attribute keys of the entity.
/// MAY change over the lifetime of the entity. MAY be empty.
/// These attribute keys are not part of entity's identity.
/// These keys MUST exist in the containing {message}.attributes.
#[prost(string, repeated, tag = "4")]
pub description_keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
impl ::prost::Name for EntityRef {
const NAME: &'static str = "EntityRef";
const PACKAGE: &'static str = "opentelemetry.proto.common.v1";
fn full_name() -> ::prost::alloc::string::String {
"opentelemetry.proto.common.v1.EntityRef".into()
}
fn type_url() -> ::prost::alloc::string::String {
"type.googleapis.com/opentelemetry.proto.common.v1.EntityRef".into()
}
}