Skip to main content

perfetto_protos/
perfetto.protos.rs

1// This file is @generated by prost-build.
2#[derive(Clone, PartialEq, ::prost::Message)]
3pub struct ObservableEvents {
4    #[prost(message, repeated, tag = "1")]
5    pub instance_state_changes: ::prost::alloc::vec::Vec<
6        observable_events::DataSourceInstanceStateChange,
7    >,
8    #[prost(bool, optional, tag = "2")]
9    pub all_data_sources_started: ::core::option::Option<bool>,
10    #[prost(message, optional, tag = "3")]
11    pub clone_trigger_hit: ::core::option::Option<observable_events::CloneTriggerHit>,
12}
13/// Nested message and enum types in `ObservableEvents`.
14pub mod observable_events {
15    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
16    pub struct DataSourceInstanceStateChange {
17        #[prost(string, optional, tag = "1")]
18        pub producer_name: ::core::option::Option<::prost::alloc::string::String>,
19        #[prost(string, optional, tag = "2")]
20        pub data_source_name: ::core::option::Option<::prost::alloc::string::String>,
21        #[prost(enumeration = "DataSourceInstanceState", optional, tag = "3")]
22        pub state: ::core::option::Option<i32>,
23    }
24    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
25    pub struct CloneTriggerHit {
26        /// The TracingSessionID of the original tracing session which had a
27        /// CLONE_SNAPSHOT trigger defined. This is necessary just because the
28        /// consumer has no idea of what is the TSID of its own tracing session and
29        /// there is no other good way to plumb it.
30        #[prost(int64, optional, tag = "1")]
31        pub tracing_session_id: ::core::option::Option<i64>,
32        /// The name of the CLONE_SNAPSHOT trigger which was hit.
33        #[prost(string, optional, tag = "2")]
34        pub trigger_name: ::core::option::Option<::prost::alloc::string::String>,
35        /// The name of the producer that sent the CLONE_SNAPSHOT trigger.
36        #[prost(string, optional, tag = "3")]
37        pub producer_name: ::core::option::Option<::prost::alloc::string::String>,
38        /// The uid of the producer that sent the CLONE_SNAPSHOT trigger.
39        #[prost(uint32, optional, tag = "4")]
40        pub producer_uid: ::core::option::Option<u32>,
41        /// The timestamp of the CLONE_SNAPSHOT trigger which was hit.
42        #[prost(uint64, optional, tag = "5")]
43        pub boot_time_ns: ::core::option::Option<u64>,
44        /// The configured delay of the CLONE_SNAPSHOT trigger which was hit. For
45        /// informational purposes only.
46        #[prost(uint64, optional, tag = "6")]
47        pub trigger_delay_ms: ::core::option::Option<u64>,
48    }
49    #[derive(
50        Clone,
51        Copy,
52        Debug,
53        PartialEq,
54        Eq,
55        Hash,
56        PartialOrd,
57        Ord,
58        ::prost::Enumeration
59    )]
60    #[repr(i32)]
61    pub enum Type {
62        Unspecified = 0,
63        /// State changes of data source instances associated with the consumer's
64        /// session. Note that not all data sources may support these notifications.
65        /// See |will_notify_on_start/stop| in DataSourceDescriptor.
66        DataSourcesInstances = 1,
67        /// State change triggered when all data sources are in the STARTED state.
68        /// For data sources that registered with |will_notify_on_start| this happens
69        /// only after the data source has acked the start. This allows the consumer
70        /// to synchronize with the data sources and to perform actions (e.g. start a
71        /// test binary) only after trace recording is actually started.
72        /// Introduced in Android 11 (R).
73        AllDataSourcesStarted = 2,
74        /// When a tracing session has one or more triggers of type CLONE_SNAPSHOT
75        /// and a matching trigger is hit, the service will send this notification to
76        /// the consumer after |stop_delay_ms|.
77        CloneTriggerHit = 4,
78    }
79    impl Type {
80        /// String value of the enum field names used in the ProtoBuf definition.
81        ///
82        /// The values are not transformed in any way and thus are considered stable
83        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
84        pub fn as_str_name(&self) -> &'static str {
85            match self {
86                Self::Unspecified => "TYPE_UNSPECIFIED",
87                Self::DataSourcesInstances => "TYPE_DATA_SOURCES_INSTANCES",
88                Self::AllDataSourcesStarted => "TYPE_ALL_DATA_SOURCES_STARTED",
89                Self::CloneTriggerHit => "TYPE_CLONE_TRIGGER_HIT",
90            }
91        }
92        /// Creates an enum from field names used in the ProtoBuf definition.
93        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
94            match value {
95                "TYPE_UNSPECIFIED" => Some(Self::Unspecified),
96                "TYPE_DATA_SOURCES_INSTANCES" => Some(Self::DataSourcesInstances),
97                "TYPE_ALL_DATA_SOURCES_STARTED" => Some(Self::AllDataSourcesStarted),
98                "TYPE_CLONE_TRIGGER_HIT" => Some(Self::CloneTriggerHit),
99                _ => None,
100            }
101        }
102    }
103    #[derive(
104        Clone,
105        Copy,
106        Debug,
107        PartialEq,
108        Eq,
109        Hash,
110        PartialOrd,
111        Ord,
112        ::prost::Enumeration
113    )]
114    #[repr(i32)]
115    pub enum DataSourceInstanceState {
116        /// A data source is created in stopped state.
117        Stopped = 1,
118        Started = 2,
119    }
120    impl DataSourceInstanceState {
121        /// String value of the enum field names used in the ProtoBuf definition.
122        ///
123        /// The values are not transformed in any way and thus are considered stable
124        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
125        pub fn as_str_name(&self) -> &'static str {
126            match self {
127                Self::Stopped => "DATA_SOURCE_INSTANCE_STATE_STOPPED",
128                Self::Started => "DATA_SOURCE_INSTANCE_STATE_STARTED",
129            }
130        }
131        /// Creates an enum from field names used in the ProtoBuf definition.
132        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
133            match value {
134                "DATA_SOURCE_INSTANCE_STATE_STOPPED" => Some(Self::Stopped),
135                "DATA_SOURCE_INSTANCE_STATE_STARTED" => Some(Self::Started),
136                _ => None,
137            }
138        }
139    }
140}
141#[derive(Clone, PartialEq, ::prost::Message)]
142pub struct FtraceDescriptor {
143    /// Report the available atrace categories.
144    ///
145    /// Used by Traceur via `perfetto --query`.
146    #[prost(message, repeated, tag = "1")]
147    pub atrace_categories: ::prost::alloc::vec::Vec<ftrace_descriptor::AtraceCategory>,
148}
149/// Nested message and enum types in `FtraceDescriptor`.
150pub mod ftrace_descriptor {
151    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
152    pub struct AtraceCategory {
153        #[prost(string, optional, tag = "1")]
154        pub name: ::core::option::Option<::prost::alloc::string::String>,
155        #[prost(string, optional, tag = "2")]
156        pub description: ::core::option::Option<::prost::alloc::string::String>,
157    }
158}
159/// Description of GPU counters.
160/// This message is sent by a GPU counter producer to specify the counters
161/// available in the hardware.
162#[derive(Clone, PartialEq, ::prost::Message)]
163pub struct GpuCounterDescriptor {
164    #[prost(message, repeated, tag = "1")]
165    pub specs: ::prost::alloc::vec::Vec<gpu_counter_descriptor::GpuCounterSpec>,
166    #[prost(message, repeated, tag = "2")]
167    pub blocks: ::prost::alloc::vec::Vec<gpu_counter_descriptor::GpuCounterBlock>,
168    #[prost(message, repeated, tag = "6")]
169    pub counter_groups: ::prost::alloc::vec::Vec<
170        gpu_counter_descriptor::GpuCounterGroupSpec,
171    >,
172    /// optional.  Minimum sampling period supported by the producer in
173    /// nanoseconds.
174    #[prost(uint64, optional, tag = "3")]
175    pub min_sampling_period_ns: ::core::option::Option<u64>,
176    /// optional.  Maximum sampling period supported by the producer in
177    /// nanoseconds.
178    #[prost(uint64, optional, tag = "4")]
179    pub max_sampling_period_ns: ::core::option::Option<u64>,
180    /// optional.  The producer supports counter sampling by instrumenting the
181    /// command buffer.
182    #[prost(bool, optional, tag = "5")]
183    pub supports_instrumented_sampling: ::core::option::Option<bool>,
184    /// optional.  The producer supports selecting counters by name via
185    /// GpuCounterConfig.counter_names. Not all producers support this; Android
186    /// GPU producers typically do not.
187    #[prost(bool, optional, tag = "7")]
188    pub supports_counter_names: ::core::option::Option<bool>,
189    /// optional.  The producer supports glob patterns in
190    /// GpuCounterConfig.counter_names for matching multiple counters by name.
191    #[prost(bool, optional, tag = "8")]
192    pub supports_counter_name_globs: ::core::option::Option<bool>,
193}
194/// Nested message and enum types in `GpuCounterDescriptor`.
195pub mod gpu_counter_descriptor {
196    #[derive(Clone, PartialEq, ::prost::Message)]
197    pub struct GpuCounterSpec {
198        #[prost(uint32, optional, tag = "1")]
199        pub counter_id: ::core::option::Option<u32>,
200        #[prost(string, optional, tag = "2")]
201        pub name: ::core::option::Option<::prost::alloc::string::String>,
202        #[prost(string, optional, tag = "3")]
203        pub description: ::core::option::Option<::prost::alloc::string::String>,
204        #[prost(enumeration = "MeasureUnit", repeated, packed = "false", tag = "7")]
205        pub numerator_units: ::prost::alloc::vec::Vec<i32>,
206        #[prost(enumeration = "MeasureUnit", repeated, packed = "false", tag = "8")]
207        pub denominator_units: ::prost::alloc::vec::Vec<i32>,
208        #[prost(bool, optional, tag = "9")]
209        pub select_by_default: ::core::option::Option<bool>,
210        #[prost(enumeration = "GpuCounterGroup", repeated, packed = "false", tag = "10")]
211        pub groups: ::prost::alloc::vec::Vec<i32>,
212        #[prost(enumeration = "gpu_counter_spec::ValueDirection", optional, tag = "11")]
213        pub value_direction: ::core::option::Option<i32>,
214        #[prost(oneof = "gpu_counter_spec::PeakValue", tags = "5, 6")]
215        pub peak_value: ::core::option::Option<gpu_counter_spec::PeakValue>,
216    }
217    /// Nested message and enum types in `GpuCounterSpec`.
218    pub mod gpu_counter_spec {
219        /// Direction of the time interval that each emitted sample applies to.
220        /// A GPU counter is sampled at discrete timestamps, but its value really
221        /// represents a measurement over some interval around that timestamp
222        /// (e.g. average GPU utilization over the sampling window). This field
223        /// tells trace processor on which side of the timestamp that interval
224        /// lies, which controls where the value is drawn in the UI.
225        ///
226        /// Example: samples at t=10, 20, 30 with values 5, 7, 0.
227        ///    BACKWARDS_LOOKING: 5 covers (-inf, 10], 7 covers (10, 20], 0 covers
228        ///      (20, 30]; the UI draws 7 between t=10 and t=20.
229        ///    FORWARDS_LOOKING:  5 covers [10, 20), 7 covers [20, 30), 0 covers
230        ///      [30, +inf); the UI draws 5 between t=10 and t=20.
231        #[derive(
232            Clone,
233            Copy,
234            Debug,
235            PartialEq,
236            Eq,
237            Hash,
238            PartialOrd,
239            Ord,
240            ::prost::Enumeration
241        )]
242        #[repr(i32)]
243        pub enum ValueDirection {
244            /// Treated as BACKWARDS_LOOKING (the historical default).
245            Unspecified = 0,
246            /// The value applies to the interval ending at this event's timestamp.
247            /// This is the convention used by AGI and most existing GPU producers,
248            /// where a sample reports what happened during the window leading up
249            /// to the timestamp.
250            BackwardsLooking = 1,
251            /// The value applies to the interval starting at this event's
252            /// timestamp, matching standard Perfetto counters. Producers that emit
253            /// explicit zero samples to denote "no activity from here on" should
254            /// use this so the zero is not back-propagated over earlier non-zero
255            /// samples (<https://github.com/google/perfetto/issues/5683>).
256            ForwardsLooking = 2,
257        }
258        impl ValueDirection {
259            /// String value of the enum field names used in the ProtoBuf definition.
260            ///
261            /// The values are not transformed in any way and thus are considered stable
262            /// (if the ProtoBuf definition does not change) and safe for programmatic use.
263            pub fn as_str_name(&self) -> &'static str {
264                match self {
265                    Self::Unspecified => "VALUE_DIRECTION_UNSPECIFIED",
266                    Self::BackwardsLooking => "VALUE_DIRECTION_BACKWARDS_LOOKING",
267                    Self::ForwardsLooking => "VALUE_DIRECTION_FORWARDS_LOOKING",
268                }
269            }
270            /// Creates an enum from field names used in the ProtoBuf definition.
271            pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
272                match value {
273                    "VALUE_DIRECTION_UNSPECIFIED" => Some(Self::Unspecified),
274                    "VALUE_DIRECTION_BACKWARDS_LOOKING" => Some(Self::BackwardsLooking),
275                    "VALUE_DIRECTION_FORWARDS_LOOKING" => Some(Self::ForwardsLooking),
276                    _ => None,
277                }
278            }
279        }
280        #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
281        pub enum PeakValue {
282            #[prost(int64, tag = "5")]
283            IntPeakValue(i64),
284            #[prost(double, tag = "6")]
285            DoublePeakValue(f64),
286        }
287    }
288    /// Allow producer to group counters into block to represent counter islands.
289    /// A capacity may be specified to indicate the number of counters that can be
290    /// enable simultaneously in that block.
291    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
292    pub struct GpuCounterBlock {
293        /// required. Unique ID for the counter group.
294        #[prost(uint32, optional, tag = "1")]
295        pub block_id: ::core::option::Option<u32>,
296        /// optional. Number of counters supported by the block. No limit if unset.
297        #[prost(uint32, optional, tag = "2")]
298        pub block_capacity: ::core::option::Option<u32>,
299        /// optional. Name of block.
300        #[prost(string, optional, tag = "3")]
301        pub name: ::core::option::Option<::prost::alloc::string::String>,
302        /// optional. Description for the block.
303        #[prost(string, optional, tag = "4")]
304        pub description: ::core::option::Option<::prost::alloc::string::String>,
305        /// list of counters that are part of the block.
306        #[prost(uint32, repeated, packed = "false", tag = "5")]
307        pub counter_ids: ::prost::alloc::vec::Vec<u32>,
308    }
309    /// Allow producer to define custom counter groups. Unlike the fixed
310    /// GpuCounterGroup enum (which provides broad categories), these groups
311    /// let the producer define hardware-specific groupings that the UI uses
312    /// to organize counter tracks. Can also be used to provide display names
313    /// and descriptions for the fixed GpuCounterGroup enum values by setting
314    /// group_id to the enum value.
315    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
316    pub struct GpuCounterGroupSpec {
317        /// required. Unique ID for this group within the descriptor.
318        #[prost(uint32, optional, tag = "1")]
319        pub group_id: ::core::option::Option<u32>,
320        /// optional. Display name for the group.
321        #[prost(string, optional, tag = "2")]
322        pub name: ::core::option::Option<::prost::alloc::string::String>,
323        /// optional. Description of the group.
324        #[prost(string, optional, tag = "3")]
325        pub description: ::core::option::Option<::prost::alloc::string::String>,
326        /// Counters that belong directly to this group (by counter_id).
327        #[prost(uint32, repeated, packed = "false", tag = "4")]
328        pub counter_ids: ::prost::alloc::vec::Vec<u32>,
329    }
330    /// Logical groups for a counter.  This is used in the UI to present the
331    /// related counters together.
332    #[derive(
333        Clone,
334        Copy,
335        Debug,
336        PartialEq,
337        Eq,
338        Hash,
339        PartialOrd,
340        Ord,
341        ::prost::Enumeration
342    )]
343    #[repr(i32)]
344    pub enum GpuCounterGroup {
345        Unclassified = 0,
346        System = 1,
347        Vertices = 2,
348        Fragments = 3,
349        Primitives = 4,
350        /// Includes counters relating to caching and bandwidth.
351        Memory = 5,
352        Compute = 6,
353        RayTracing = 7,
354    }
355    impl GpuCounterGroup {
356        /// String value of the enum field names used in the ProtoBuf definition.
357        ///
358        /// The values are not transformed in any way and thus are considered stable
359        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
360        pub fn as_str_name(&self) -> &'static str {
361            match self {
362                Self::Unclassified => "UNCLASSIFIED",
363                Self::System => "SYSTEM",
364                Self::Vertices => "VERTICES",
365                Self::Fragments => "FRAGMENTS",
366                Self::Primitives => "PRIMITIVES",
367                Self::Memory => "MEMORY",
368                Self::Compute => "COMPUTE",
369                Self::RayTracing => "RAY_TRACING",
370            }
371        }
372        /// Creates an enum from field names used in the ProtoBuf definition.
373        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
374            match value {
375                "UNCLASSIFIED" => Some(Self::Unclassified),
376                "SYSTEM" => Some(Self::System),
377                "VERTICES" => Some(Self::Vertices),
378                "FRAGMENTS" => Some(Self::Fragments),
379                "PRIMITIVES" => Some(Self::Primitives),
380                "MEMORY" => Some(Self::Memory),
381                "COMPUTE" => Some(Self::Compute),
382                "RAY_TRACING" => Some(Self::RayTracing),
383                _ => None,
384            }
385        }
386    }
387    /// next id: 41
388    #[derive(
389        Clone,
390        Copy,
391        Debug,
392        PartialEq,
393        Eq,
394        Hash,
395        PartialOrd,
396        Ord,
397        ::prost::Enumeration
398    )]
399    #[repr(i32)]
400    pub enum MeasureUnit {
401        None = 0,
402        Bit = 1,
403        Kilobit = 2,
404        Megabit = 3,
405        Gigabit = 4,
406        Terabit = 5,
407        Petabit = 6,
408        Byte = 7,
409        Kilobyte = 8,
410        Megabyte = 9,
411        Gigabyte = 10,
412        Terabyte = 11,
413        Petabyte = 12,
414        Hertz = 13,
415        Kilohertz = 14,
416        Megahertz = 15,
417        Gigahertz = 16,
418        Terahertz = 17,
419        Petahertz = 18,
420        Nanosecond = 19,
421        Microsecond = 20,
422        Millisecond = 21,
423        Second = 22,
424        Minute = 23,
425        Hour = 24,
426        Vertex = 25,
427        Pixel = 26,
428        Triangle = 27,
429        Primitive = 38,
430        Fragment = 39,
431        Milliwatt = 28,
432        Watt = 29,
433        Kilowatt = 30,
434        Joule = 31,
435        Volt = 32,
436        Ampere = 33,
437        Celsius = 34,
438        Fahrenheit = 35,
439        Kelvin = 36,
440        /// Values should be out of 100.
441        Percent = 37,
442        Instruction = 40,
443    }
444    impl MeasureUnit {
445        /// String value of the enum field names used in the ProtoBuf definition.
446        ///
447        /// The values are not transformed in any way and thus are considered stable
448        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
449        pub fn as_str_name(&self) -> &'static str {
450            match self {
451                Self::None => "NONE",
452                Self::Bit => "BIT",
453                Self::Kilobit => "KILOBIT",
454                Self::Megabit => "MEGABIT",
455                Self::Gigabit => "GIGABIT",
456                Self::Terabit => "TERABIT",
457                Self::Petabit => "PETABIT",
458                Self::Byte => "BYTE",
459                Self::Kilobyte => "KILOBYTE",
460                Self::Megabyte => "MEGABYTE",
461                Self::Gigabyte => "GIGABYTE",
462                Self::Terabyte => "TERABYTE",
463                Self::Petabyte => "PETABYTE",
464                Self::Hertz => "HERTZ",
465                Self::Kilohertz => "KILOHERTZ",
466                Self::Megahertz => "MEGAHERTZ",
467                Self::Gigahertz => "GIGAHERTZ",
468                Self::Terahertz => "TERAHERTZ",
469                Self::Petahertz => "PETAHERTZ",
470                Self::Nanosecond => "NANOSECOND",
471                Self::Microsecond => "MICROSECOND",
472                Self::Millisecond => "MILLISECOND",
473                Self::Second => "SECOND",
474                Self::Minute => "MINUTE",
475                Self::Hour => "HOUR",
476                Self::Vertex => "VERTEX",
477                Self::Pixel => "PIXEL",
478                Self::Triangle => "TRIANGLE",
479                Self::Primitive => "PRIMITIVE",
480                Self::Fragment => "FRAGMENT",
481                Self::Milliwatt => "MILLIWATT",
482                Self::Watt => "WATT",
483                Self::Kilowatt => "KILOWATT",
484                Self::Joule => "JOULE",
485                Self::Volt => "VOLT",
486                Self::Ampere => "AMPERE",
487                Self::Celsius => "CELSIUS",
488                Self::Fahrenheit => "FAHRENHEIT",
489                Self::Kelvin => "KELVIN",
490                Self::Percent => "PERCENT",
491                Self::Instruction => "INSTRUCTION",
492            }
493        }
494        /// Creates an enum from field names used in the ProtoBuf definition.
495        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
496            match value {
497                "NONE" => Some(Self::None),
498                "BIT" => Some(Self::Bit),
499                "KILOBIT" => Some(Self::Kilobit),
500                "MEGABIT" => Some(Self::Megabit),
501                "GIGABIT" => Some(Self::Gigabit),
502                "TERABIT" => Some(Self::Terabit),
503                "PETABIT" => Some(Self::Petabit),
504                "BYTE" => Some(Self::Byte),
505                "KILOBYTE" => Some(Self::Kilobyte),
506                "MEGABYTE" => Some(Self::Megabyte),
507                "GIGABYTE" => Some(Self::Gigabyte),
508                "TERABYTE" => Some(Self::Terabyte),
509                "PETABYTE" => Some(Self::Petabyte),
510                "HERTZ" => Some(Self::Hertz),
511                "KILOHERTZ" => Some(Self::Kilohertz),
512                "MEGAHERTZ" => Some(Self::Megahertz),
513                "GIGAHERTZ" => Some(Self::Gigahertz),
514                "TERAHERTZ" => Some(Self::Terahertz),
515                "PETAHERTZ" => Some(Self::Petahertz),
516                "NANOSECOND" => Some(Self::Nanosecond),
517                "MICROSECOND" => Some(Self::Microsecond),
518                "MILLISECOND" => Some(Self::Millisecond),
519                "SECOND" => Some(Self::Second),
520                "MINUTE" => Some(Self::Minute),
521                "HOUR" => Some(Self::Hour),
522                "VERTEX" => Some(Self::Vertex),
523                "PIXEL" => Some(Self::Pixel),
524                "TRIANGLE" => Some(Self::Triangle),
525                "PRIMITIVE" => Some(Self::Primitive),
526                "FRAGMENT" => Some(Self::Fragment),
527                "MILLIWATT" => Some(Self::Milliwatt),
528                "WATT" => Some(Self::Watt),
529                "KILOWATT" => Some(Self::Kilowatt),
530                "JOULE" => Some(Self::Joule),
531                "VOLT" => Some(Self::Volt),
532                "AMPERE" => Some(Self::Ampere),
533                "CELSIUS" => Some(Self::Celsius),
534                "FAHRENHEIT" => Some(Self::Fahrenheit),
535                "KELVIN" => Some(Self::Kelvin),
536                "PERCENT" => Some(Self::Percent),
537                "INSTRUCTION" => Some(Self::Instruction),
538                _ => None,
539            }
540        }
541    }
542}
543#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
544pub struct TrackEventCategory {
545    #[prost(string, optional, tag = "1")]
546    pub name: ::core::option::Option<::prost::alloc::string::String>,
547    #[prost(string, optional, tag = "2")]
548    pub description: ::core::option::Option<::prost::alloc::string::String>,
549    #[prost(string, repeated, tag = "3")]
550    pub tags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
551}
552#[derive(Clone, PartialEq, ::prost::Message)]
553pub struct TrackEventDescriptor {
554    #[prost(message, repeated, tag = "1")]
555    pub available_categories: ::prost::alloc::vec::Vec<TrackEventCategory>,
556}
557#[derive(Clone, PartialEq, ::prost::Message)]
558pub struct VmProgram {
559    #[prost(uint32, optional, tag = "1")]
560    pub version: ::core::option::Option<u32>,
561    #[prost(message, repeated, tag = "2")]
562    pub instructions: ::prost::alloc::vec::Vec<VmInstruction>,
563}
564#[derive(Clone, PartialEq, ::prost::Message)]
565pub struct VmInstruction {
566    #[prost(enumeration = "vm_instruction::AbortLevel", optional, tag = "6")]
567    pub abort_level: ::core::option::Option<i32>,
568    /// Sub-instructions executed if the current instruction succeeds
569    #[prost(message, repeated, tag = "7")]
570    pub nested_instructions: ::prost::alloc::vec::Vec<VmInstruction>,
571    #[prost(oneof = "vm_instruction::Operation", tags = "1, 2, 3, 4, 5")]
572    pub operation: ::core::option::Option<vm_instruction::Operation>,
573}
574/// Nested message and enum types in `VmInstruction`.
575pub mod vm_instruction {
576    #[derive(
577        Clone,
578        Copy,
579        Debug,
580        PartialEq,
581        Eq,
582        Hash,
583        PartialOrd,
584        Ord,
585        ::prost::Enumeration
586    )]
587    #[repr(i32)]
588    pub enum AbortLevel {
589        /// Skip current instruction but execute following ones
590        SkipCurrentInstruction = 1,
591        /// Skip current instruction as well as following ones (default)
592        SkipCurrentInstructionAndBreakOuter = 2,
593        /// Abort whole program
594        Abort = 3,
595    }
596    impl AbortLevel {
597        /// String value of the enum field names used in the ProtoBuf definition.
598        ///
599        /// The values are not transformed in any way and thus are considered stable
600        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
601        pub fn as_str_name(&self) -> &'static str {
602            match self {
603                Self::SkipCurrentInstruction => "SKIP_CURRENT_INSTRUCTION",
604                Self::SkipCurrentInstructionAndBreakOuter => {
605                    "SKIP_CURRENT_INSTRUCTION_AND_BREAK_OUTER"
606                }
607                Self::Abort => "ABORT",
608            }
609        }
610        /// Creates an enum from field names used in the ProtoBuf definition.
611        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
612            match value {
613                "SKIP_CURRENT_INSTRUCTION" => Some(Self::SkipCurrentInstruction),
614                "SKIP_CURRENT_INSTRUCTION_AND_BREAK_OUTER" => {
615                    Some(Self::SkipCurrentInstructionAndBreakOuter)
616                }
617                "ABORT" => Some(Self::Abort),
618                _ => None,
619            }
620        }
621    }
622    #[derive(Clone, PartialEq, ::prost::Oneof)]
623    pub enum Operation {
624        #[prost(message, tag = "1")]
625        Select(super::VmOpSelect),
626        #[prost(message, tag = "2")]
627        RegLoad(super::VmOpRegLoad),
628        #[prost(message, tag = "3")]
629        Merge(super::VmOpMerge),
630        #[prost(message, tag = "4")]
631        Set(super::VmOpSet),
632        #[prost(message, tag = "5")]
633        Del(super::VmOpDel),
634    }
635}
636#[derive(Clone, PartialEq, ::prost::Message)]
637pub struct VmOpSelect {
638    /// Enum SRC|DST|BOTH. Default=SRC.
639    #[prost(enumeration = "VmCursorEnum", optional, tag = "1")]
640    pub cursor: ::core::option::Option<i32>,
641    #[prost(message, repeated, tag = "2")]
642    pub relative_path: ::prost::alloc::vec::Vec<vm_op_select::PathComponent>,
643    /// Creates the submessage if doesn't exist in the DST cursor
644    /// (think of mkdir -p). Only valid when cursor=DST|BOTH.
645    #[prost(bool, optional, tag = "3")]
646    pub create_if_not_exist: ::core::option::Option<bool>,
647}
648/// Nested message and enum types in `VmOpSelect`.
649pub mod vm_op_select {
650    /// A path component is either: (1) a field id to descend into (common case);
651    /// (2) an array index (for repeated fields); (3) a map lookup operation (for
652    /// repeated fields, where we snoop a sub-field as a map key)
653    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
654    pub struct PathComponent {
655        /// Only valid when using field_id. This makes select have foreach
656        /// semantics. This means that the body of nested_instructions is
657        /// executed several times, once per each repeated submessage.
658        #[prost(bool, optional, tag = "5")]
659        pub is_repeated: ::core::option::Option<bool>,
660        /// Only valid when using map_key_field_id. This defines which
661        /// register (R1..R32) should be used to match the key of the dict
662        /// in a map lookup operation.
663        /// In other words:
664        /// foreach msg in repeated message {
665        ///    if msg\[map_key_field_id\] == R\[register_to_match\] {
666        ///       break;  // Lookup succeeded, PathComponent resolves here.
667        ///    }
668        /// }
669        #[prost(uint32, optional, tag = "6")]
670        pub register_to_match: ::core::option::Option<u32>,
671        /// Only valid when using field_id and is_repeated=true. When iterating
672        /// over repeated fields, stores the current iteration index into the
673        /// the register R1..R32 defined below. This can be used to do complex
674        /// operations like "find the entry in the array that has width==100,
675        /// remember its offset in the SRC array and overwrite the matching
676        /// i-th element in the DST array. We will probably never implement
677        /// this but it's here for completeness.
678        #[prost(uint32, optional, tag = "7")]
679        pub store_foreach_index_into_register: ::core::option::Option<u32>,
680        #[prost(oneof = "path_component::Field", tags = "1, 2, 3")]
681        pub field: ::core::option::Option<path_component::Field>,
682    }
683    /// Nested message and enum types in `PathComponent`.
684    pub mod path_component {
685        #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
686        pub enum Field {
687            #[prost(uint32, tag = "1")]
688            FieldId(u32),
689            #[prost(uint32, tag = "2")]
690            ArrayIndex(u32),
691            /// The ID of the field in the repeated submessage that we
692            /// use as a key (e.g. LayerState.layer_id). When setting this
693            /// register_to_match must also be set, to tell what's the
694            /// expected value of the key we are looking up.
695            #[prost(uint32, tag = "3")]
696            MapKeyFieldId(u32),
697        }
698    }
699}
700#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
701pub struct VmOpRegLoad {
702    /// SRC(default) | DST.
703    #[prost(enumeration = "VmCursorEnum", optional, tag = "1")]
704    pub cursor: ::core::option::Option<i32>,
705    /// 1=R1, 2=R2... 32=R32
706    #[prost(uint32, optional, tag = "2")]
707    pub dst_register: ::core::option::Option<u32>,
708}
709/// Merges SRC into DST. Both need to point to a message (not a field).
710#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
711pub struct VmOpMerge {
712    /// When true, the merge operation will skip any field that is already
713    /// resolved as a message node in the destination tree.
714    ///
715    /// This is used to support merging of nested messages. Because ProtoVM
716    /// does not know the schema, a standard MERGE cannot distinguish
717    /// between a string and a message on the wire and it would overwrite
718    /// the entire blob, destroying granular updates.
719    ///
720    /// By setting this to true, a program can be implemented to do a
721    /// bottom-up, multi-step merge by traversing into and merging
722    /// the deepest submessages first, then moving up to the parent
723    /// message and merging it with skip_submessages = true.
724    #[prost(bool, optional, tag = "1")]
725    pub skip_submessages: ::core::option::Option<bool>,
726    /// When true, the merge operation will remove the dst field if the src field
727    /// is empty.
728    ///
729    /// This can be used to replicate the removal of a subobject within the
730    /// producer's state. E.g.
731    /// This event on the producer side: mProducerState.mSubobject = nullptr
732    /// can be represented by this patch: { producer_state { subobject {} }}
733    #[prost(bool, optional, tag = "2")]
734    pub del_if_src_empty: ::core::option::Option<bool>,
735}
736/// Copies SRC into DST. If a message, replaces the DST node, discarding any
737/// pre-existing field.
738#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
739pub struct VmOpSet {}
740/// Delete the field or message pointed by DST.
741#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
742pub struct VmOpDel {}
743#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
744#[repr(i32)]
745pub enum VmCursorEnum {
746    VmCursorUnspecified = 0,
747    VmCursorSrc = 1,
748    VmCursorDst = 2,
749    VmCursorBoth = 3,
750}
751impl VmCursorEnum {
752    /// String value of the enum field names used in the ProtoBuf definition.
753    ///
754    /// The values are not transformed in any way and thus are considered stable
755    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
756    pub fn as_str_name(&self) -> &'static str {
757        match self {
758            Self::VmCursorUnspecified => "VM_CURSOR_UNSPECIFIED",
759            Self::VmCursorSrc => "VM_CURSOR_SRC",
760            Self::VmCursorDst => "VM_CURSOR_DST",
761            Self::VmCursorBoth => "VM_CURSOR_BOTH",
762        }
763    }
764    /// Creates an enum from field names used in the ProtoBuf definition.
765    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
766        match value {
767            "VM_CURSOR_UNSPECIFIED" => Some(Self::VmCursorUnspecified),
768            "VM_CURSOR_SRC" => Some(Self::VmCursorSrc),
769            "VM_CURSOR_DST" => Some(Self::VmCursorDst),
770            "VM_CURSOR_BOTH" => Some(Self::VmCursorBoth),
771            _ => None,
772        }
773    }
774}
775/// This message is sent from Producer(s) to the tracing Service when registering
776/// to advertise their capabilities. It describes the structure of tracing
777/// protos that will be produced by the data source and the supported filters.
778#[derive(Clone, PartialEq, ::prost::Message)]
779pub struct DataSourceDescriptor {
780    /// e.g., "linux.ftrace", "chromium.tracing"
781    #[prost(string, optional, tag = "1")]
782    pub name: ::core::option::Option<::prost::alloc::string::String>,
783    /// When non-zero, this is a unique ID within the scope of the Producer for
784    /// this data source (it is NOT globally unique). This is useful to
785    /// differentiate between data sources with matching names when calling
786    /// UpdateDataSource(). This field has been introduced in November 2021
787    /// (v22, Android T) and is not supported on older versions.
788    #[prost(uint64, optional, tag = "7")]
789    pub id: ::core::option::Option<u64>,
790    /// When true the data source is expected to ack the stop request through the
791    /// NotifyDataSourceStopped() IPC. This field has been introduced after
792    /// Android P in Jul 2018 and is not supported on older versions.
793    #[prost(bool, optional, tag = "2")]
794    pub will_notify_on_stop: ::core::option::Option<bool>,
795    /// When true the data source is expected to ack the start request through the
796    /// NotifyDataSourceStarted() IPC. This field has been introduced after
797    /// Android P in March 2019 and is not supported on older versions.
798    #[prost(bool, optional, tag = "3")]
799    pub will_notify_on_start: ::core::option::Option<bool>,
800    /// If true, opt into receiving the ClearIncrementalState() IPC. This should be
801    /// set if the data source writes packets that refer to previous trace
802    /// contents, and knows how to stop referring to the already-emitted data.
803    #[prost(bool, optional, tag = "4")]
804    pub handles_incremental_state_clear: ::core::option::Option<bool>,
805    /// If true, indicates that the data source does nothing upon Flush. This
806    /// allows the service to reduce the flush-related IPC traffic and better deal
807    /// with frozen producers (see go/perfetto-frozen). This is usually the case
808    /// for data sources like 'track_event' that don't have access to the various
809    /// thread task runners to post a flush task and rely purely on server-side
810    /// scraping.
811    /// Introduced in v39 / Android V.
812    #[prost(bool, optional, tag = "9")]
813    pub no_flush: ::core::option::Option<bool>,
814    /// If present, the tracing service executes this program within a ProtoVM to
815    /// process overwritten packets (patches). The service computes a hash of the
816    /// program to detect and disambiguate between different versions; if multiple
817    /// versions (from different producers) are specified for the same data source,
818    /// the service instantiates a dedicated ProtoVM for each.
819    #[prost(message, optional, tag = "10")]
820    pub protovm_program: ::core::option::Option<VmProgram>,
821    /// Optional specification about available GPU counters.
822    #[prost(message, optional, tag = "5")]
823    pub gpu_counter_descriptor: ::core::option::Option<GpuCounterDescriptor>,
824    #[prost(message, optional, tag = "6")]
825    pub track_event_descriptor: ::core::option::Option<TrackEventDescriptor>,
826    #[prost(message, optional, tag = "8")]
827    pub ftrace_descriptor: ::core::option::Option<FtraceDescriptor>,
828}
829/// Reports the state of the tracing service. Used to gather details about the
830/// data sources connected.
831/// See ConsumerPort::QueryServiceState().
832#[derive(Clone, PartialEq, ::prost::Message)]
833pub struct TracingServiceState {
834    /// Lists all the producers connected.
835    #[prost(message, repeated, tag = "1")]
836    pub producers: ::prost::alloc::vec::Vec<tracing_service_state::Producer>,
837    /// Lists the data sources available.
838    #[prost(message, repeated, tag = "2")]
839    pub data_sources: ::prost::alloc::vec::Vec<tracing_service_state::DataSource>,
840    /// Lists the tracing sessions active AND owned by a consumer that has the same
841    /// UID of the caller (or all of them if the caller is root).
842    /// Introduced in v24 / Android T.
843    #[prost(message, repeated, tag = "6")]
844    pub tracing_sessions: ::prost::alloc::vec::Vec<
845        tracing_service_state::TracingSession,
846    >,
847    /// This is always set to true from v24 and beyond. This flag is only used to
848    /// tell the difference between: (1) talking to a recent service which happens
849    /// to have no tracing session active; (2) talking to an older version of the
850    /// service which will never report any tracing session.
851    #[prost(bool, optional, tag = "7")]
852    pub supports_tracing_sessions: ::core::option::Option<bool>,
853    /// Total number of tracing sessions.
854    #[prost(int32, optional, tag = "3")]
855    pub num_sessions: ::core::option::Option<i32>,
856    /// Number of tracing sessions in the started state. Always <= num_sessions.
857    #[prost(int32, optional, tag = "4")]
858    pub num_sessions_started: ::core::option::Option<i32>,
859    /// The version of traced (the same returned by `traced --version`).
860    /// This is a human readable string with and its format varies depending on
861    /// the build system and the repo (standalone vs AOSP).
862    /// This is intended for human debugging only.
863    #[prost(string, optional, tag = "5")]
864    pub tracing_service_version: ::core::option::Option<::prost::alloc::string::String>,
865}
866/// Nested message and enum types in `TracingServiceState`.
867pub mod tracing_service_state {
868    /// Describes a producer process.
869    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
870    pub struct Producer {
871        /// Unique ID of the producer (monotonic counter).
872        #[prost(int32, optional, tag = "1")]
873        pub id: ::core::option::Option<i32>,
874        /// Typically matches the process name.
875        #[prost(string, optional, tag = "2")]
876        pub name: ::core::option::Option<::prost::alloc::string::String>,
877        /// Unix pid of the remote process. Supported only on Linux-based systems.
878        /// Introduced in v24 / Android T.
879        #[prost(int32, optional, tag = "5")]
880        pub pid: ::core::option::Option<i32>,
881        /// Unix uid of the remote process.
882        #[prost(int32, optional, tag = "3")]
883        pub uid: ::core::option::Option<i32>,
884        /// The version of the client library used by the producer.
885        /// This is a human readable string with and its format varies depending on
886        /// the build system and the repo (standalone vs AOSP).
887        /// This is intended for human debugging only.
888        #[prost(string, optional, tag = "4")]
889        pub sdk_version: ::core::option::Option<::prost::alloc::string::String>,
890        /// Returns true if the process appears to be frozen (Android only).
891        /// Introduced in Perfetto V49 / Android 24Q4.
892        #[prost(bool, optional, tag = "6")]
893        pub frozen: ::core::option::Option<bool>,
894        /// Identifies the machine this producer is connected from in multi-machine
895        /// tracing setups (e.g. when going through traced_relay). Unset (or zero)
896        /// means the producer is connected from the local/host machine where the
897        /// tracing service is running.
898        /// Introduced in Perfetto V56 / Android 26Q3.
899        #[prost(uint32, optional, tag = "7")]
900        pub machine_id: ::core::option::Option<u32>,
901        /// Human-readable name of the machine, as advertised by the relay (usually
902        /// the value of PERFETTO_MACHINE_NAME on the remote, falling back to the
903        /// remote's `uname -s`). Only set when machine_id is non-zero.
904        /// Introduced in Perfetto V56 / Android 26Q3.
905        #[prost(string, optional, tag = "8")]
906        pub machine_name: ::core::option::Option<::prost::alloc::string::String>,
907    }
908    /// Describes a data source registered by a producer. Data sources are listed
909    /// regardless of the fact that they are being used or not.
910    #[derive(Clone, PartialEq, ::prost::Message)]
911    pub struct DataSource {
912        /// Descriptor passed by the data source when calling RegisterDataSource().
913        #[prost(message, optional, tag = "1")]
914        pub ds_descriptor: ::core::option::Option<super::DataSourceDescriptor>,
915        /// ID of the producer, as per Producer.id.
916        #[prost(int32, optional, tag = "2")]
917        pub producer_id: ::core::option::Option<i32>,
918    }
919    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
920    pub struct TracingSession {
921        /// The TracingSessionID.
922        #[prost(uint64, optional, tag = "1")]
923        pub id: ::core::option::Option<u64>,
924        /// The Unix uid of the consumer that started the session.
925        /// This is meaningful only if the caller is root. In all other cases only
926        /// tracing sessions that match the caller UID will be displayed.
927        #[prost(int32, optional, tag = "2")]
928        pub consumer_uid: ::core::option::Option<i32>,
929        /// Internal state of the tracing session.
930        /// These strings are FYI only and subjected to change.
931        #[prost(string, optional, tag = "3")]
932        pub state: ::core::option::Option<::prost::alloc::string::String>,
933        /// The unique_session_name as set in the trace config (might be empty).
934        #[prost(string, optional, tag = "4")]
935        pub unique_session_name: ::core::option::Option<::prost::alloc::string::String>,
936        /// The number and size of each buffer.
937        #[prost(uint32, repeated, packed = "false", tag = "5")]
938        pub buffer_size_kb: ::prost::alloc::vec::Vec<u32>,
939        /// Duration, as specified in the TraceConfig.duration_ms.
940        #[prost(uint32, optional, tag = "6")]
941        pub duration_ms: ::core::option::Option<u32>,
942        /// Number of data sources involved in the session.
943        #[prost(uint32, optional, tag = "7")]
944        pub num_data_sources: ::core::option::Option<u32>,
945        /// Time when the session was started, in the CLOCK_REALTIME domain.
946        /// Available only on Linux-based systems.
947        #[prost(int64, optional, tag = "8")]
948        pub start_realtime_ns: ::core::option::Option<i64>,
949        /// The bugreport_score, as set in TraceConfig.bugreport_score.
950        #[prost(int32, optional, tag = "9")]
951        pub bugreport_score: ::core::option::Option<i32>,
952        /// As per TraceConfig.bugreport_filename.
953        #[prost(string, optional, tag = "10")]
954        pub bugreport_filename: ::core::option::Option<::prost::alloc::string::String>,
955        /// If true, the session is in the STARTED state. If false the session is in
956        /// any other state (see `state` field).
957        #[prost(bool, optional, tag = "11")]
958        pub is_started: ::core::option::Option<bool>,
959    }
960}
961#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
962pub struct TracingServiceCapabilities {
963    /// Whether the service supports QueryCapabilities() at all or not.
964    /// This is only used at the C++ level to distinguish the case of talking to
965    /// an older version of the service that doesn't support QueryCapabilities().
966    /// In that case the IPC layer will just reject the unknown call, and the
967    /// consumer_ipc_client_impl.cc will return an empty message where this field
968    /// is false. In all other cases, this is always set to true.
969    #[prost(bool, optional, tag = "1")]
970    pub has_query_capabilities: ::core::option::Option<bool>,
971    /// The set of known events that can be passed to ConsumerPort.ObserveEvents().
972    #[prost(
973        enumeration = "observable_events::Type",
974        repeated,
975        packed = "false",
976        tag = "2"
977    )]
978    pub observable_events: ::prost::alloc::vec::Vec<i32>,
979    /// Whether the service supports TraceConfig.output_path (for asking traced to
980    /// create the output file instead of passing a file descriptor).
981    #[prost(bool, optional, tag = "3")]
982    pub has_trace_config_output_path: ::core::option::Option<bool>,
983    /// Whether the service supports CloneSession and CLONE_SNAPSHOT triggers.
984    #[prost(bool, optional, tag = "4")]
985    pub has_clone_session: ::core::option::Option<bool>,
986}
987/// Statistics for the internals of the tracing service.
988///
989/// Next id: 19.
990#[derive(Clone, PartialEq, ::prost::Message)]
991pub struct TraceStats {
992    /// Stats for the TraceBuffer(s) of the current trace session.
993    #[prost(message, repeated, tag = "1")]
994    pub buffer_stats: ::prost::alloc::vec::Vec<trace_stats::BufferStats>,
995    /// The thresholds of each the `writer_stats` histogram buckets. This is
996    /// emitted only once as all WriterStats share the same bucket layout.
997    /// This field has the same cardinality of the
998    /// `writer_stats.chunk_payload_histogram_{counts,sum}` - 1.
999    /// (The -1 is because the last overflow bucket is not reported in the _def).
1000    /// An array of values \[10, 100, 1000\] in the _def array means that there are
1001    /// four buckets (3 + the implicit overflow bucket):
1002    /// \[0\]: x <= 10; \[1\]: 100 < x <= 1000; \[2\]: 1000 < x <= 1000; \[3\]: x > 1000.
1003    #[prost(int64, repeated, packed = "false", tag = "17")]
1004    pub chunk_payload_histogram_def: ::prost::alloc::vec::Vec<i64>,
1005    #[prost(message, repeated, tag = "18")]
1006    pub writer_stats: ::prost::alloc::vec::Vec<trace_stats::WriterStats>,
1007    /// Num. producers connected (whether they are involved in the current tracing
1008    /// session or not).
1009    #[prost(uint32, optional, tag = "2")]
1010    pub producers_connected: ::core::option::Option<u32>,
1011    /// Num. producers ever seen for all trace sessions since startup (it's a good
1012    /// proxy for inferring num. producers crashed / killed).
1013    #[prost(uint64, optional, tag = "3")]
1014    pub producers_seen: ::core::option::Option<u64>,
1015    /// Num. data sources registered for all trace sessions.
1016    #[prost(uint32, optional, tag = "4")]
1017    pub data_sources_registered: ::core::option::Option<u32>,
1018    /// Num. data sources ever seen for all trace sessions since startup.
1019    #[prost(uint64, optional, tag = "5")]
1020    pub data_sources_seen: ::core::option::Option<u64>,
1021    /// Num. concurrently active tracing sessions.
1022    #[prost(uint32, optional, tag = "6")]
1023    pub tracing_sessions: ::core::option::Option<u32>,
1024    /// Num. buffers for all tracing session (not just the current one). This will
1025    /// be >= buffer_stats.size(), because the latter is only about the current
1026    /// session.
1027    #[prost(uint32, optional, tag = "7")]
1028    pub total_buffers: ::core::option::Option<u32>,
1029    /// Num. chunks that were discarded by the service before attempting to commit
1030    /// them to a buffer, e.g. because the producer specified an invalid buffer ID.
1031    #[prost(uint64, optional, tag = "8")]
1032    pub chunks_discarded: ::core::option::Option<u64>,
1033    /// Num. patches that were discarded by the service before attempting to apply
1034    /// them to a buffer, e.g. because the producer specified an invalid buffer ID.
1035    #[prost(uint64, optional, tag = "9")]
1036    pub patches_discarded: ::core::option::Option<u64>,
1037    /// Packets that failed validation of the TrustedPacket. If this is > 0, there
1038    /// is a bug in the producer.
1039    #[prost(uint64, optional, tag = "10")]
1040    pub invalid_packets: ::core::option::Option<u64>,
1041    #[prost(message, optional, tag = "11")]
1042    pub filter_stats: ::core::option::Option<trace_stats::FilterStats>,
1043    /// Count of Flush() requests (either from the Consumer, or self-induced
1044    /// periodic flushes). The final Flush() is also included in the count.
1045    #[prost(uint64, optional, tag = "12")]
1046    pub flushes_requested: ::core::option::Option<u64>,
1047    /// The count of the Flush() requests that were completed successfully.
1048    /// In a well behaving trace this should always be == `flush_requests`.
1049    #[prost(uint64, optional, tag = "13")]
1050    pub flushes_succeeded: ::core::option::Option<u64>,
1051    /// The count of the Flush() requests that failed (in most timed out).
1052    /// In a well behaving trace this should always be == 0.
1053    #[prost(uint64, optional, tag = "14")]
1054    pub flushes_failed: ::core::option::Option<u64>,
1055    #[prost(enumeration = "trace_stats::FinalFlushOutcome", optional, tag = "15")]
1056    pub final_flush_outcome: ::core::option::Option<i32>,
1057}
1058/// Nested message and enum types in `TraceStats`.
1059pub mod trace_stats {
1060    /// From TraceBuffer::Stats.
1061    ///
1062    /// Next id: 22.
1063    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1064    pub struct BufferStats {
1065        /// Size of the circular buffer in bytes.
1066        #[prost(uint64, optional, tag = "12")]
1067        pub buffer_size: ::core::option::Option<u64>,
1068        /// Num. bytes written into the circular buffer, including chunk headers.
1069        #[prost(uint64, optional, tag = "1")]
1070        pub bytes_written: ::core::option::Option<u64>,
1071        /// Num. bytes overwritten before they have been read (i.e. loss of data).
1072        #[prost(uint64, optional, tag = "13")]
1073        pub bytes_overwritten: ::core::option::Option<u64>,
1074        /// Total size of chunks that were fully read from the circular buffer by the
1075        /// consumer. This may not be equal to |bytes_written| either in the middle
1076        /// of tracing, or if |chunks_overwritten| is non-zero. Note that this is the
1077        /// size of the chunks read from the buffer, including chunk headers, which
1078        /// will be different from the total size of packets returned to the
1079        /// consumer.
1080        ///
1081        /// The current utilization of the trace buffer (mid-tracing) can be obtained
1082        /// by subtracting |bytes_read| and |bytes_overwritten| from |bytes_written|,
1083        /// adding the difference of |padding_bytes_written| and
1084        /// |padding_bytes_cleared|, and comparing this sum to the |buffer_size|.
1085        /// Note that this represents the total size of buffered data in the buffer,
1086        /// yet this data may be spread non-contiguously through the buffer and may
1087        /// be overridden before the utilization reaches 100%.
1088        #[prost(uint64, optional, tag = "14")]
1089        pub bytes_read: ::core::option::Option<u64>,
1090        /// Num. bytes that were allocated as padding between chunks in the circular
1091        /// buffer.
1092        #[prost(uint64, optional, tag = "15")]
1093        pub padding_bytes_written: ::core::option::Option<u64>,
1094        /// Num. of padding bytes that were removed from the circular buffer when
1095        /// they were overwritten.
1096        ///
1097        /// The difference between |padding_bytes_written| and
1098        /// |padding_bytes_cleared| denotes the total size of padding currently
1099        /// present in the buffer.
1100        #[prost(uint64, optional, tag = "16")]
1101        pub padding_bytes_cleared: ::core::option::Option<u64>,
1102        /// Num. chunks (!= packets) written into the buffer.
1103        #[prost(uint64, optional, tag = "2")]
1104        pub chunks_written: ::core::option::Option<u64>,
1105        /// Num. chunks (!= packets) rewritten into the buffer. This means we rewrote
1106        /// the same chunk with additional packets appended to the end.
1107        #[prost(uint64, optional, tag = "10")]
1108        pub chunks_rewritten: ::core::option::Option<u64>,
1109        /// Num. chunks overwritten before they have been read (i.e. loss of data).
1110        #[prost(uint64, optional, tag = "3")]
1111        pub chunks_overwritten: ::core::option::Option<u64>,
1112        /// Num. chunks discarded (i.e. loss of data). Can be > 0 only when a buffer
1113        /// is configured with FillPolicy == DISCARD.
1114        #[prost(uint64, optional, tag = "18")]
1115        pub chunks_discarded: ::core::option::Option<u64>,
1116        /// Num. chunks (!= packets) that were fully read from the circular buffer by
1117        /// the consumer. This may not be equal to |chunks_written| either in the
1118        /// middle of tracing, or if |chunks_overwritten| is non-zero.
1119        #[prost(uint64, optional, tag = "17")]
1120        pub chunks_read: ::core::option::Option<u64>,
1121        /// Num. chunks that were committed out of order.
1122        #[prost(uint64, optional, tag = "11")]
1123        pub chunks_committed_out_of_order: ::core::option::Option<u64>,
1124        /// Num. times the ring buffer wrapped around.
1125        #[prost(uint64, optional, tag = "4")]
1126        pub write_wrap_count: ::core::option::Option<u64>,
1127        /// Num. out-of-band (OOB) patches that succeeded.
1128        #[prost(uint64, optional, tag = "5")]
1129        pub patches_succeeded: ::core::option::Option<u64>,
1130        /// Num. OOB patches that failed (e.g., the chunk to patch was gone).
1131        #[prost(uint64, optional, tag = "6")]
1132        pub patches_failed: ::core::option::Option<u64>,
1133        /// Num. readaheads (for large multi-chunk packet reads) that ended up in a
1134        /// successful packet read.
1135        #[prost(uint64, optional, tag = "7")]
1136        pub readaheads_succeeded: ::core::option::Option<u64>,
1137        /// Num. readaheads aborted because of missing chunks in the sequence stream.
1138        /// Note that a small number > 0 is totally expected: occasionally, when
1139        /// issuing a read, the very last packet in a sequence might be incomplete
1140        /// (because the producer is still writing it while we read). The read will
1141        /// stop at that point, for that sequence, increasing this counter.
1142        #[prost(uint64, optional, tag = "8")]
1143        pub readaheads_failed: ::core::option::Option<u64>,
1144        /// Num. of violations of the SharedMemoryABI found while writing or reading
1145        /// the buffer. This is an indication of either a bug in the producer(s) or
1146        /// malicious producer(s).
1147        #[prost(uint64, optional, tag = "9")]
1148        pub abi_violations: ::core::option::Option<u64>,
1149        /// Num. of times the service detected packet loss on a trace writer
1150        /// sequence. This is usually caused by exhaustion of available chunks in the
1151        /// writer process's SMB. Note that this relies on the client's TraceWriter
1152        /// indicating this loss to the service -- packets lost for other reasons are
1153        /// not reflected in this stat.
1154        #[prost(uint64, optional, tag = "19")]
1155        pub trace_writer_packet_loss: ::core::option::Option<u64>,
1156    }
1157    /// Per TraceWriter stat. Each {producer, trace writer} tuple is publicly
1158    /// visible as a unique sequence ID in the trace.
1159    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1160    pub struct WriterStats {
1161        /// This matches the TracePacket.trusted_packet_sequence_id and is used to
1162        /// correlate the stats with the actual packet types.
1163        #[prost(uint64, optional, tag = "1")]
1164        pub sequence_id: ::core::option::Option<u64>,
1165        /// The buffer index (0..N, as defined in the TraceConfig).
1166        #[prost(uint32, optional, tag = "4")]
1167        pub buffer: ::core::option::Option<u32>,
1168        /// These two arrays have the same cardinality and match the cardinality of
1169        /// chunk_payload_histogram_def + 1 (for the overflow bucket, see below).
1170        /// `sum` contains the SUM(entries) and `counts` contains the COUNT(entries)
1171        /// for each bucket.
1172        #[prost(uint64, repeated, tag = "2")]
1173        pub chunk_payload_histogram_counts: ::prost::alloc::vec::Vec<u64>,
1174        #[prost(int64, repeated, tag = "3")]
1175        pub chunk_payload_histogram_sum: ::prost::alloc::vec::Vec<i64>,
1176    }
1177    /// This is set only when the TraceConfig specifies a TraceFilter.
1178    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1179    pub struct FilterStats {
1180        #[prost(uint64, optional, tag = "1")]
1181        pub input_packets: ::core::option::Option<u64>,
1182        #[prost(uint64, optional, tag = "2")]
1183        pub input_bytes: ::core::option::Option<u64>,
1184        #[prost(uint64, optional, tag = "3")]
1185        pub output_bytes: ::core::option::Option<u64>,
1186        #[prost(uint64, optional, tag = "4")]
1187        pub errors: ::core::option::Option<u64>,
1188        #[prost(uint64, optional, tag = "5")]
1189        pub time_taken_ns: ::core::option::Option<u64>,
1190        /// The number of bytes discarded by the filter (i.e. output - input).
1191        /// The array has one entry for each buffer defined in the config (unless no
1192        /// packets for that buffer were seen and hence filtered).
1193        /// Note: the SUM(bytes_discarded_per_buffer) will be <= but not == the total
1194        /// (output_bytes - input_bytes) because the filter might also discard
1195        /// server-generated synthetic packets, that have no buffer index.
1196        #[prost(uint64, repeated, packed = "false", tag = "20")]
1197        pub bytes_discarded_per_buffer: ::prost::alloc::vec::Vec<u64>,
1198    }
1199    #[derive(
1200        Clone,
1201        Copy,
1202        Debug,
1203        PartialEq,
1204        Eq,
1205        Hash,
1206        PartialOrd,
1207        Ord,
1208        ::prost::Enumeration
1209    )]
1210    #[repr(i32)]
1211    pub enum FinalFlushOutcome {
1212        FinalFlushUnspecified = 0,
1213        FinalFlushSucceeded = 1,
1214        FinalFlushFailed = 2,
1215    }
1216    impl FinalFlushOutcome {
1217        /// String value of the enum field names used in the ProtoBuf definition.
1218        ///
1219        /// The values are not transformed in any way and thus are considered stable
1220        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1221        pub fn as_str_name(&self) -> &'static str {
1222            match self {
1223                Self::FinalFlushUnspecified => "FINAL_FLUSH_UNSPECIFIED",
1224                Self::FinalFlushSucceeded => "FINAL_FLUSH_SUCCEEDED",
1225                Self::FinalFlushFailed => "FINAL_FLUSH_FAILED",
1226            }
1227        }
1228        /// Creates an enum from field names used in the ProtoBuf definition.
1229        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1230            match value {
1231                "FINAL_FLUSH_UNSPECIFIED" => Some(Self::FinalFlushUnspecified),
1232                "FINAL_FLUSH_SUCCEEDED" => Some(Self::FinalFlushSucceeded),
1233                "FINAL_FLUSH_FAILED" => Some(Self::FinalFlushFailed),
1234                _ => None,
1235            }
1236        }
1237    }
1238}
1239/// Builtin clock domains used in Perfetto traces.
1240///
1241/// The default trace time clock is BUILTIN_CLOCK_TRACE_FILE: a synthetic clock
1242/// representing the trace file's own timeline. Each trace file gets its own
1243/// instance (scoped by trace file index).
1244///
1245/// For backwards compatibility, Perfetto proto traces register BOOTTIME as a
1246/// fallback: if the first timestamp conversion uses a clock other than the
1247/// trace file clock and no explicit clock snapshot data exists, the trace time
1248/// is switched to BOOTTIME. This fallback does not fire for modern traces that
1249/// include ClockSnapshots or that only use the trace file clock directly.
1250///
1251/// The `primary_trace_clock` field in ClockSnapshot can definitively override
1252/// the trace time clock regardless of the above.
1253#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1254#[repr(i32)]
1255pub enum BuiltinClock {
1256    Unknown = 0,
1257    /// Corresponds to CLOCK_REALTIME. See clock_gettime(2).
1258    Realtime = 1,
1259    /// Corresponds to CLOCK_REALTIME_COARSE. See clock_gettime(2).
1260    RealtimeCoarse = 2,
1261    /// Corresponds to CLOCK_MONOTONIC. See clock_gettime(2).
1262    Monotonic = 3,
1263    /// Corresponds to CLOCK_MONOTONIC_COARSE. See clock_gettime(2).
1264    MonotonicCoarse = 4,
1265    /// Corresponds to CLOCK_MONOTONIC_RAW. See clock_gettime(2).
1266    MonotonicRaw = 5,
1267    /// Corresponds to CLOCK_BOOTTIME. See clock_gettime(2).
1268    /// For proto traces, this is used as a backwards-compatible fallback trace
1269    /// time clock when no explicit clock snapshots are present.
1270    Boottime = 6,
1271    /// TSC (Time Stamp Counter). Architecture-specific high-resolution counter.
1272    Tsc = 9,
1273    /// Corresponds to the perf event clock (PERF_CLOCK).
1274    Perf = 10,
1275    /// A synthetic clock representing the trace file's own timeline. Each trace
1276    /// file gets its own instance (scoped by trace file index). This is the
1277    /// default trace time clock before any clock snapshot or format-specific
1278    /// override takes effect.
1279    TraceFile = 11,
1280    MaxId = 63,
1281}
1282impl BuiltinClock {
1283    /// String value of the enum field names used in the ProtoBuf definition.
1284    ///
1285    /// The values are not transformed in any way and thus are considered stable
1286    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1287    pub fn as_str_name(&self) -> &'static str {
1288        match self {
1289            Self::Unknown => "BUILTIN_CLOCK_UNKNOWN",
1290            Self::Realtime => "BUILTIN_CLOCK_REALTIME",
1291            Self::RealtimeCoarse => "BUILTIN_CLOCK_REALTIME_COARSE",
1292            Self::Monotonic => "BUILTIN_CLOCK_MONOTONIC",
1293            Self::MonotonicCoarse => "BUILTIN_CLOCK_MONOTONIC_COARSE",
1294            Self::MonotonicRaw => "BUILTIN_CLOCK_MONOTONIC_RAW",
1295            Self::Boottime => "BUILTIN_CLOCK_BOOTTIME",
1296            Self::Tsc => "BUILTIN_CLOCK_TSC",
1297            Self::Perf => "BUILTIN_CLOCK_PERF",
1298            Self::TraceFile => "BUILTIN_CLOCK_TRACE_FILE",
1299            Self::MaxId => "BUILTIN_CLOCK_MAX_ID",
1300        }
1301    }
1302    /// Creates an enum from field names used in the ProtoBuf definition.
1303    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1304        match value {
1305            "BUILTIN_CLOCK_UNKNOWN" => Some(Self::Unknown),
1306            "BUILTIN_CLOCK_REALTIME" => Some(Self::Realtime),
1307            "BUILTIN_CLOCK_REALTIME_COARSE" => Some(Self::RealtimeCoarse),
1308            "BUILTIN_CLOCK_MONOTONIC" => Some(Self::Monotonic),
1309            "BUILTIN_CLOCK_MONOTONIC_COARSE" => Some(Self::MonotonicCoarse),
1310            "BUILTIN_CLOCK_MONOTONIC_RAW" => Some(Self::MonotonicRaw),
1311            "BUILTIN_CLOCK_BOOTTIME" => Some(Self::Boottime),
1312            "BUILTIN_CLOCK_TSC" => Some(Self::Tsc),
1313            "BUILTIN_CLOCK_PERF" => Some(Self::Perf),
1314            "BUILTIN_CLOCK_TRACE_FILE" => Some(Self::TraceFile),
1315            "BUILTIN_CLOCK_MAX_ID" => Some(Self::MaxId),
1316            _ => None,
1317        }
1318    }
1319}
1320/// Semantic types for string fields. This tells the filter what kind of
1321/// data the field contains, so it can apply the right filtering rules.
1322/// See /rfcs/0011-subset-string-filter-rules.md for design details.
1323/// Introduced in: Perfetto v54.
1324#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1325#[repr(i32)]
1326pub enum SemanticType {
1327    Unspecified = 0,
1328    Atrace = 1,
1329    Job = 2,
1330    Wakelock = 3,
1331}
1332impl SemanticType {
1333    /// String value of the enum field names used in the ProtoBuf definition.
1334    ///
1335    /// The values are not transformed in any way and thus are considered stable
1336    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1337    pub fn as_str_name(&self) -> &'static str {
1338        match self {
1339            Self::Unspecified => "SEMANTIC_TYPE_UNSPECIFIED",
1340            Self::Atrace => "SEMANTIC_TYPE_ATRACE",
1341            Self::Job => "SEMANTIC_TYPE_JOB",
1342            Self::Wakelock => "SEMANTIC_TYPE_WAKELOCK",
1343        }
1344    }
1345    /// Creates an enum from field names used in the ProtoBuf definition.
1346    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1347        match value {
1348            "SEMANTIC_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1349            "SEMANTIC_TYPE_ATRACE" => Some(Self::Atrace),
1350            "SEMANTIC_TYPE_JOB" => Some(Self::Job),
1351            "SEMANTIC_TYPE_WAKELOCK" => Some(Self::Wakelock),
1352            _ => None,
1353        }
1354    }
1355}
1356#[derive(Clone, PartialEq, ::prost::Message)]
1357pub struct TraceAttributes {
1358    #[prost(message, repeated, tag = "1")]
1359    pub attribute: ::prost::alloc::vec::Vec<trace_attributes::Attribute>,
1360}
1361/// Nested message and enum types in `TraceAttributes`.
1362pub mod trace_attributes {
1363    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1364    pub struct Attribute {
1365        /// The key
1366        #[prost(string, optional, tag = "1")]
1367        pub key: ::core::option::Option<::prost::alloc::string::String>,
1368        /// The value
1369        #[prost(oneof = "attribute::Value", tags = "2, 3")]
1370        pub value: ::core::option::Option<attribute::Value>,
1371    }
1372    /// Nested message and enum types in `Attribute`.
1373    pub mod attribute {
1374        /// The value
1375        #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
1376        pub enum Value {
1377            #[prost(int64, tag = "2")]
1378            LongValue(i64),
1379            #[prost(string, tag = "3")]
1380            StringValue(::prost::alloc::string::String),
1381        }
1382    }
1383}
1384/// Options for the android.aflags data source.
1385/// This data source captures snapshots of Android aconfig flags.
1386/// See <https://source.android.com/docs/setup/build/feature-flagging/declare-flag>
1387/// for more information on aconfig flags.
1388#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1389pub struct AndroidAflagsConfig {
1390    /// Frequency of polling. If absent or 0, the state will be recorded once,
1391    /// at the start of the trace.
1392    ///
1393    /// It is recommended to either leave this absent or set it to a large
1394    /// value as each invocation of the `aflags` tool can be time consuming
1395    /// (approx. 350ms) and also triggers an expensive flush. This is required to
1396    /// be > 1000ms if set, to avoid excessive CPU usage.
1397    #[prost(uint32, optional, tag = "1")]
1398    pub poll_ms: ::core::option::Option<u32>,
1399}
1400/// Data source that lists game modes and game interventions of games
1401/// on an Android device.
1402#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1403pub struct AndroidGameInterventionListConfig {
1404    /// If not empty, emit info about only the following list of package names
1405    /// (exact match, no regex). Otherwise, emit info about all packages.
1406    #[prost(string, repeated, tag = "1")]
1407    pub package_name_filter: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1408}
1409/// Custom configuration for the "android.input.inputevent" data source.
1410///
1411/// NOTE: Input traces can only be taken on debuggable (userdebug/eng) builds!
1412///
1413/// Next ID: 6
1414#[derive(Clone, PartialEq, ::prost::Message)]
1415pub struct AndroidInputEventConfig {
1416    /// The tracing mode to use. If unspecified, it will default to
1417    /// TRACE_MODE_USE_RULES.
1418    #[prost(enumeration = "android_input_event_config::TraceMode", optional, tag = "1")]
1419    pub mode: ::core::option::Option<i32>,
1420    /// The list of rules to use to determine the trace level of events.
1421    /// Each event will be traced using the TraceLevel of the first rule that it
1422    /// triggers from this list. The rules are evaluated in the order in which they
1423    /// are specified. If an event does not match any of the rules,
1424    /// TRACE_LEVEL_NONE will be used by default.
1425    #[prost(message, repeated, tag = "2")]
1426    pub rules: ::prost::alloc::vec::Vec<android_input_event_config::TraceRule>,
1427    /// Trace input events processed by the system as they are being dispatched
1428    /// to application windows. All trace rules will apply.
1429    ///    - If this flag is used without enabling trace_dispatcher_window_dispatch,
1430    ///    it will
1431    ///      trace InputDispatcher's inbound events (which does not include events
1432    ///      synthesized within InputDispatcher) that match the rules.
1433    ///    - If used with trace_dispatcher_window_dispatch, all inbound and outbound
1434    ///    events
1435    ///      matching the rules, including all events synthesized within
1436    ///      InputDispatcher, will be traced.
1437    #[prost(bool, optional, tag = "3")]
1438    pub trace_dispatcher_input_events: ::core::option::Option<bool>,
1439    /// Trace details about which windows the system is sending each input event
1440    /// to. All trace rules will apply.
1441    #[prost(bool, optional, tag = "4")]
1442    pub trace_dispatcher_window_dispatch: ::core::option::Option<bool>,
1443    /// Trace evdev events received from the kernel, including device additions and
1444    /// removals.
1445    #[prost(bool, optional, tag = "5")]
1446    pub trace_evdev_events: ::core::option::Option<bool>,
1447}
1448/// Nested message and enum types in `AndroidInputEventConfig`.
1449pub mod android_input_event_config {
1450    /// A rule that specifies the TraceLevel for an event based on matching
1451    /// conditions. All matchers in the rule are optional. To trigger this rule, an
1452    /// event must match all of its specified matchers (i.e. the matchers function
1453    /// like a series of conditions connected by a logical 'AND' operator). A rule
1454    /// with no specified matchers will match all events. Next ID: 6
1455    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1456    pub struct TraceRule {
1457        /// The trace level to be used for events that trigger this rule.
1458        /// If unspecified, TRACE_LEVEL_NONE will be used by default.
1459        #[prost(enumeration = "TraceLevel", optional, tag = "1")]
1460        pub trace_level: ::core::option::Option<i32>,
1461        /// Package matchers
1462        ///
1463        /// Respectively matches if all or any of the target apps for this event are
1464        /// contained in the specified list of package names.
1465        ///
1466        /// Intended usage:
1467        ///    - Use match_all_packages to selectively allow tracing for the listed
1468        ///    packages.
1469        ///    - Use match_any_packages to selectively deny tracing for certain
1470        ///    packages.
1471        ///
1472        /// WARNING: Great care must be taken when designing rules for field tracing!
1473        ///           This is because each event is almost always sent to more than
1474        ///           one app.
1475        ///               For example, when allowing tracing for a package that has a
1476        ///               spy window
1477        ///           over the display (e.g. SystemUI) using match_any_packages,
1478        ///           essentially all input will be recorded on that display. This is
1479        ///           because the events will be sent to the spy as well as the
1480        ///           foreground app, and regardless of what the foreground app is,
1481        ///           the event will end up being traced.
1482        ///               Alternatively, when attempting to block tracing for specific
1483        ///               packages using
1484        ///           match_all_packages, no events will likely be blocked. This is
1485        ///           because the event will also be sent to other apps (such as, but
1486        ///           not limited to, ones with spy windows), so the matcher will not
1487        ///           match unless all other targets are also listed under the
1488        ///           match_all_packages list.
1489        #[prost(string, repeated, tag = "2")]
1490        pub match_all_packages: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1491        #[prost(string, repeated, tag = "3")]
1492        pub match_any_packages: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1493        /// Matches if the event is secure, which means that at least one of the
1494        /// targets of this event is using the window flag FLAG_SECURE.
1495        #[prost(bool, optional, tag = "4")]
1496        pub match_secure: ::core::option::Option<bool>,
1497        /// Matches if there was an active IME connection while this event was being
1498        /// processed.
1499        #[prost(bool, optional, tag = "5")]
1500        pub match_ime_connection_active: ::core::option::Option<bool>,
1501    }
1502    /// Trace modes are tracing presets that are included in the system.
1503    #[derive(
1504        Clone,
1505        Copy,
1506        Debug,
1507        PartialEq,
1508        Eq,
1509        Hash,
1510        PartialOrd,
1511        Ord,
1512        ::prost::Enumeration
1513    )]
1514    #[repr(i32)]
1515    pub enum TraceMode {
1516        /// Preset mode for maximal tracing.
1517        /// WARNING: This will bypass all privacy measures on debuggable builds, and
1518        /// will record all
1519        ///           input events processed by the system, regardless of the context
1520        ///           in which they were processed. It should only be used for tracing
1521        ///           on a local device or for tests. It should NEVER be used for
1522        ///           field tracing.
1523        TraceAll = 0,
1524        /// Use the tracing rules defined in this config to specify what events to
1525        /// trace.
1526        UseRules = 1,
1527    }
1528    impl TraceMode {
1529        /// String value of the enum field names used in the ProtoBuf definition.
1530        ///
1531        /// The values are not transformed in any way and thus are considered stable
1532        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1533        pub fn as_str_name(&self) -> &'static str {
1534            match self {
1535                Self::TraceAll => "TRACE_MODE_TRACE_ALL",
1536                Self::UseRules => "TRACE_MODE_USE_RULES",
1537            }
1538        }
1539        /// Creates an enum from field names used in the ProtoBuf definition.
1540        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1541            match value {
1542                "TRACE_MODE_TRACE_ALL" => Some(Self::TraceAll),
1543                "TRACE_MODE_USE_RULES" => Some(Self::UseRules),
1544                _ => None,
1545            }
1546        }
1547    }
1548    /// The level of tracing that should be applied to an event.
1549    #[derive(
1550        Clone,
1551        Copy,
1552        Debug,
1553        PartialEq,
1554        Eq,
1555        Hash,
1556        PartialOrd,
1557        Ord,
1558        ::prost::Enumeration
1559    )]
1560    #[repr(i32)]
1561    pub enum TraceLevel {
1562        /// Do not trace the input event.
1563        None = 0,
1564        /// Trace the event as a redacted event, where certain sensitive fields are
1565        /// omitted from the trace, including the coordinates of pointer events and
1566        /// the key/scan codes of key events.
1567        Redacted = 1,
1568        /// Trace the complete event.
1569        Complete = 2,
1570    }
1571    impl TraceLevel {
1572        /// String value of the enum field names used in the ProtoBuf definition.
1573        ///
1574        /// The values are not transformed in any way and thus are considered stable
1575        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1576        pub fn as_str_name(&self) -> &'static str {
1577            match self {
1578                Self::None => "TRACE_LEVEL_NONE",
1579                Self::Redacted => "TRACE_LEVEL_REDACTED",
1580                Self::Complete => "TRACE_LEVEL_COMPLETE",
1581            }
1582        }
1583        /// Creates an enum from field names used in the ProtoBuf definition.
1584        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1585            match value {
1586                "TRACE_LEVEL_NONE" => Some(Self::None),
1587                "TRACE_LEVEL_REDACTED" => Some(Self::Redacted),
1588                "TRACE_LEVEL_COMPLETE" => Some(Self::Complete),
1589                _ => None,
1590            }
1591        }
1592    }
1593}
1594/// Values from NDK's android/log.h.
1595#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1596#[repr(i32)]
1597pub enum AndroidLogId {
1598    /// MAIN.
1599    LidDefault = 0,
1600    LidRadio = 1,
1601    LidEvents = 2,
1602    LidSystem = 3,
1603    LidCrash = 4,
1604    LidStats = 5,
1605    LidSecurity = 6,
1606    LidKernel = 7,
1607}
1608impl AndroidLogId {
1609    /// String value of the enum field names used in the ProtoBuf definition.
1610    ///
1611    /// The values are not transformed in any way and thus are considered stable
1612    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1613    pub fn as_str_name(&self) -> &'static str {
1614        match self {
1615            Self::LidDefault => "LID_DEFAULT",
1616            Self::LidRadio => "LID_RADIO",
1617            Self::LidEvents => "LID_EVENTS",
1618            Self::LidSystem => "LID_SYSTEM",
1619            Self::LidCrash => "LID_CRASH",
1620            Self::LidStats => "LID_STATS",
1621            Self::LidSecurity => "LID_SECURITY",
1622            Self::LidKernel => "LID_KERNEL",
1623        }
1624    }
1625    /// Creates an enum from field names used in the ProtoBuf definition.
1626    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1627        match value {
1628            "LID_DEFAULT" => Some(Self::LidDefault),
1629            "LID_RADIO" => Some(Self::LidRadio),
1630            "LID_EVENTS" => Some(Self::LidEvents),
1631            "LID_SYSTEM" => Some(Self::LidSystem),
1632            "LID_CRASH" => Some(Self::LidCrash),
1633            "LID_STATS" => Some(Self::LidStats),
1634            "LID_SECURITY" => Some(Self::LidSecurity),
1635            "LID_KERNEL" => Some(Self::LidKernel),
1636            _ => None,
1637        }
1638    }
1639}
1640#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1641#[repr(i32)]
1642pub enum AndroidLogPriority {
1643    PrioUnspecified = 0,
1644    /// _DEFAULT, but should never be seen in logs.
1645    PrioUnused = 1,
1646    PrioVerbose = 2,
1647    PrioDebug = 3,
1648    PrioInfo = 4,
1649    PrioWarn = 5,
1650    PrioError = 6,
1651    PrioFatal = 7,
1652}
1653impl AndroidLogPriority {
1654    /// String value of the enum field names used in the ProtoBuf definition.
1655    ///
1656    /// The values are not transformed in any way and thus are considered stable
1657    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1658    pub fn as_str_name(&self) -> &'static str {
1659        match self {
1660            Self::PrioUnspecified => "PRIO_UNSPECIFIED",
1661            Self::PrioUnused => "PRIO_UNUSED",
1662            Self::PrioVerbose => "PRIO_VERBOSE",
1663            Self::PrioDebug => "PRIO_DEBUG",
1664            Self::PrioInfo => "PRIO_INFO",
1665            Self::PrioWarn => "PRIO_WARN",
1666            Self::PrioError => "PRIO_ERROR",
1667            Self::PrioFatal => "PRIO_FATAL",
1668        }
1669    }
1670    /// Creates an enum from field names used in the ProtoBuf definition.
1671    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1672        match value {
1673            "PRIO_UNSPECIFIED" => Some(Self::PrioUnspecified),
1674            "PRIO_UNUSED" => Some(Self::PrioUnused),
1675            "PRIO_VERBOSE" => Some(Self::PrioVerbose),
1676            "PRIO_DEBUG" => Some(Self::PrioDebug),
1677            "PRIO_INFO" => Some(Self::PrioInfo),
1678            "PRIO_WARN" => Some(Self::PrioWarn),
1679            "PRIO_ERROR" => Some(Self::PrioError),
1680            "PRIO_FATAL" => Some(Self::PrioFatal),
1681            _ => None,
1682        }
1683    }
1684}
1685#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1686pub struct AndroidLogConfig {
1687    #[prost(enumeration = "AndroidLogId", repeated, packed = "false", tag = "1")]
1688    pub log_ids: ::prost::alloc::vec::Vec<i32>,
1689    /// If set ignores all log messages whose prio is < the given value.
1690    #[prost(enumeration = "AndroidLogPriority", optional, tag = "3")]
1691    pub min_prio: ::core::option::Option<i32>,
1692    /// If non-empty ignores all log messages whose tag doesn't match one of the
1693    /// specified values.
1694    #[prost(string, repeated, tag = "4")]
1695    pub filter_tags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1696    /// If true, includes the contents of the logcat buffers that were already
1697    /// present before the data source started. By default (false), only new
1698    /// log entries produced after the data source starts are recorded.
1699    /// Can be useful for boot traces or situations where logs from before
1700    /// traced started are important.
1701    #[prost(bool, optional, tag = "5")]
1702    pub preserve_log_buffer: ::core::option::Option<bool>,
1703}
1704/// Data source that polls for display state. This should only be used for
1705/// backward-compatibility; AndroidSystemPropertyConfig should be preferred.
1706#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1707pub struct AndroidPolledStateConfig {
1708    /// Frequency of polling. If absent the state will be recorded once, at the
1709    /// start of the trace.
1710    /// This is required to be > 100ms to avoid excessive CPU usage.
1711    #[prost(uint32, optional, tag = "1")]
1712    pub poll_ms: ::core::option::Option<u32>,
1713}
1714/// Data source that polls for system properties.
1715#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1716pub struct AndroidSystemPropertyConfig {
1717    /// Frequency of polling. If absent the state will be recorded once, at the
1718    /// start of the trace.
1719    /// This is required to be > 100ms to avoid excessive CPU usage.
1720    #[prost(uint32, optional, tag = "1")]
1721    pub poll_ms: ::core::option::Option<u32>,
1722    /// Properties to poll. All property names must start with "debug.tracing.".
1723    #[prost(string, repeated, tag = "2")]
1724    pub property_name: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1725}
1726/// Data source that controls the system properties used to guard initialization
1727/// of track_event producers (i.e. Skia) in apps using HWUI, and certain
1728/// processes like SurfaceFlinger.
1729///
1730/// This data source only tells Skia to initialized the Perfetto SDK and start
1731/// routing data to the Track Event system instead of ATrace. For those events
1732/// to actually show up in a trace, the track_event data source must be used as
1733/// well. The Perfetto SDK cannot be de-initialized, so some long-lived apps and
1734/// processes may need to be restarted for Skia to revert to using ATrace if
1735/// Track Events are no longer desired.
1736///
1737/// In addition to switching Skia to use Perfetto's track_event data source,
1738/// this "guard" also controls Skia's "broad tracing", which removes Skia's
1739/// internal tracing constraints and allows the track_event config to specify
1740/// which categories should be traced. Filtering to the "skia.always" category
1741/// *tag* in a track_event config can be used to re-enable the standard
1742/// constraints typically used with ATrace.
1743///
1744/// Data source name: android.sdk_sysprop_guard
1745/// Introduced in Android 14 (U) QPR1.
1746/// Next id: 4
1747#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1748pub struct AndroidSdkSyspropGuardConfig {
1749    /// If true, configures SurfaceFlinger to initialize Skia's Perfetto
1750    /// integration with the track_event data source in RenderEngine.
1751    /// If false or omitted, the simpler ATrace fallback is used.
1752    ///
1753    /// NOTE: once enabled, Skia will only revert to ATrace if SurfaceFlinger is
1754    /// restarted.
1755    ///
1756    /// Specifically this sets the following system properties:
1757    ///    - debug.tracing.ctl.renderengine.skia_tracing_enabled
1758    ///    - debug.tracing.ctl.renderengine.skia_use_perfetto_track_events
1759    ///
1760    /// Does not affect actual track_event data *collection*, which must be
1761    /// configured separately.
1762    #[prost(bool, optional, tag = "1")]
1763    pub surfaceflinger_skia_track_events: ::core::option::Option<bool>,
1764    /// If true, configures HWUI apps to initialize Skia's Perfetto integration
1765    /// with the track_event data source. hwui_package_name_filter
1766    /// can be used to control which apps are affected.
1767    /// If false or omitted, the simpler ATrace fallback is used.
1768    ///
1769    /// NOTE: once enabled, Skia will only revert to ATrace if the app is
1770    /// restarted.
1771    ///
1772    /// ATTENTION: affects ALL HWUI APPS if hwui_package_name_filter is not set!
1773    /// If filtering is NOT set, this controls these GLOBAL system properties:
1774    ///    - debug.tracing.ctl.hwui.skia_tracing_enabled
1775    ///    - debug.tracing.ctl.hwui.skia_use_perfetto_track_events
1776    /// If filtering IS set, this controls these APP-SPECIFIC system properties,
1777    /// for each package listed in the filter:
1778    ///    - debug.tracing.ctl.hwui.skia_tracing_enabled.<package.name>
1779    ///    - debug.tracing.ctl.hwui.skia_use_perfetto_track_events.<package.name>
1780    ///
1781    /// Does not affect actual track_event data *collection*, which must be
1782    /// configured separately.
1783    #[prost(bool, optional, tag = "2")]
1784    pub hwui_skia_track_events: ::core::option::Option<bool>,
1785    /// If non-empty, hwui_skia_track_events applies to only the packages listed.
1786    /// Otherwise, hwui_skia_track_events applies globally to all HWUI apps.
1787    #[prost(string, repeated, tag = "3")]
1788    pub hwui_package_name_filter: ::prost::alloc::vec::Vec<
1789        ::prost::alloc::string::String,
1790    >,
1791}
1792/// Configuration for the android.app_wakelocks data source.
1793#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1794pub struct AppWakelocksConfig {
1795    /// Specifies the delay (in milliseconds) after which the data source will
1796    /// attempt to write events. Writing less frequently reduces the trace size by
1797    /// making better use of the packed arrays and reducing the total number of
1798    /// TracePackets needed (which each have dozens of bytes of overhead). The
1799    /// suggested delay is 5000ms.
1800    #[prost(int32, optional, tag = "1")]
1801    pub write_delay_ms: ::core::option::Option<i32>,
1802    /// When set, wakelocks held for less than this amount of time are filtered
1803    /// from the resulting trace. Note: duration is computed by matching wakelocks
1804    /// with identical attributes, not by tracking the underlying objects. The
1805    /// threshold should be < the trace's flush_period_ms.
1806    #[prost(int32, optional, tag = "2")]
1807    pub filter_duration_below_ms: ::core::option::Option<i32>,
1808    /// When true, the owner_pid is dropped from the resulting output, reducing the
1809    /// size of the interning tables.
1810    #[prost(bool, optional, tag = "3")]
1811    pub drop_owner_pid: ::core::option::Option<bool>,
1812}
1813/// Data source that records CPU per UID data.
1814#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1815pub struct CpuPerUidConfig {
1816    /// Record at this frequency.
1817    #[prost(uint32, optional, tag = "1")]
1818    pub poll_ms: ::core::option::Option<u32>,
1819}
1820/// Custom configuration for the "android.inputmethod" data source.
1821#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1822pub struct InputMethodConfig {
1823    /// If true, enables tracing in the clients.
1824    #[prost(bool, optional, tag = "1")]
1825    pub client: ::core::option::Option<bool>,
1826    /// If true, enables tracing in InputMethodService.
1827    #[prost(bool, optional, tag = "2")]
1828    pub service: ::core::option::Option<bool>,
1829    /// If true, enables tracing in InputMethodManagerService.
1830    #[prost(bool, optional, tag = "3")]
1831    pub manager_service: ::core::option::Option<bool>,
1832}
1833/// Data source that records kernel (and native) wakelock data.
1834#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1835pub struct KernelWakelocksConfig {
1836    /// Record at this frequency.
1837    #[prost(uint32, optional, tag = "1")]
1838    pub poll_ms: ::core::option::Option<u32>,
1839}
1840/// Network tracing data source that records details on all packets sent or
1841/// received by the network.
1842#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1843pub struct NetworkPacketTraceConfig {
1844    /// Polling frequency in milliseconds. Network tracing writes to a fixed size
1845    /// ring buffer. The polling interval should be such that the ring buffer is
1846    /// unlikely to fill in that interval (or that filling is an acceptable risk).
1847    /// The minimum polling rate is 100ms (values below this are ignored).
1848    /// Introduced in Android 14 (U).
1849    #[prost(uint32, optional, tag = "1")]
1850    pub poll_ms: ::core::option::Option<u32>,
1851    /// The aggregation_threshold is the number of packets at which an event will
1852    /// switch from per-packet details to aggregate details. For example, a value
1853    /// of 50 means that if a particular event (grouped by the unique combinations
1854    /// of metadata fields: {interface, direction, uid, etc}) has fewer than 50
1855    /// packets, the exact timestamp and length are recorded for each packet. If
1856    /// there were 50 or more packets in an event, it would only record the total
1857    /// duration, packets, and length. A value of zero or unspecified will always
1858    /// / record per-packet details. A value of 1 always records aggregate details.
1859    #[prost(uint32, optional, tag = "2")]
1860    pub aggregation_threshold: ::core::option::Option<u32>,
1861    /// Specifies the maximum number of packet contexts to intern at a time. This
1862    /// prevents the interning table from growing too large and controls whether
1863    /// interning is enabled or disabled (a value of zero disables interning and
1864    /// is the default). When a data sources interning table reaches this amount,
1865    /// packet contexts will be inlined into NetworkPacketEvents.
1866    #[prost(uint32, optional, tag = "3")]
1867    pub intern_limit: ::core::option::Option<u32>,
1868    /// The following fields specify whether certain fields should be dropped from
1869    /// the output. Dropping fields improves normalization results, reduces the
1870    /// size of the interning table, and slightly reduces event size.
1871    #[prost(bool, optional, tag = "4")]
1872    pub drop_local_port: ::core::option::Option<bool>,
1873    #[prost(bool, optional, tag = "5")]
1874    pub drop_remote_port: ::core::option::Option<bool>,
1875    #[prost(bool, optional, tag = "6")]
1876    pub drop_tcp_flags: ::core::option::Option<bool>,
1877}
1878/// Data source that lists details (such as version code) about packages on an
1879/// Android device.
1880#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1881pub struct PackagesListConfig {
1882    /// If not empty, emit info about only the following list of package names
1883    /// (exact match, no regex). Can be combined with
1884    /// |package_name_regex_filter|: a package is included if it matches either
1885    /// filter. If both filters are empty, emit info about all packages.
1886    #[prost(string, repeated, tag = "1")]
1887    pub package_name_filter: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1888    /// If not empty, emit info about only the packages whose names match any of
1889    /// the following regexes (full match, not partial). Can be combined with
1890    /// |package_name_filter|: a package is included if it matches either filter.
1891    /// If both filters are empty, emit info about all packages.
1892    /// This field was introduced in Android 26Q2 (Perfetto v55).
1893    #[prost(string, repeated, tag = "3")]
1894    pub package_name_regex_filter: ::prost::alloc::vec::Vec<
1895        ::prost::alloc::string::String,
1896    >,
1897    /// If present and non-zero, the data source will periodically poll for CPU
1898    /// use by packages and only emit results for those that it sees. If absent,
1899    /// the data source will emit results for all packages at startup. The package
1900    /// name filters apply either way.
1901    #[prost(uint32, optional, tag = "2")]
1902    pub only_write_on_cpu_use_every_ms: ::core::option::Option<u32>,
1903}
1904/// Data source that records events from the modem.
1905#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1906pub struct PixelModemConfig {
1907    #[prost(enumeration = "pixel_modem_config::EventGroup", optional, tag = "1")]
1908    pub event_group: ::core::option::Option<i32>,
1909    /// If set, record only events with these hashes.
1910    #[prost(int64, repeated, packed = "false", tag = "2")]
1911    pub pigweed_hash_allow_list: ::prost::alloc::vec::Vec<i64>,
1912    /// If set and allow_list is not set, deny events with these hashes.
1913    #[prost(int64, repeated, packed = "false", tag = "3")]
1914    pub pigweed_hash_deny_list: ::prost::alloc::vec::Vec<i64>,
1915}
1916/// Nested message and enum types in `PixelModemConfig`.
1917pub mod pixel_modem_config {
1918    /// Event group to record, as defined by the modem.
1919    #[derive(
1920        Clone,
1921        Copy,
1922        Debug,
1923        PartialEq,
1924        Eq,
1925        Hash,
1926        PartialOrd,
1927        Ord,
1928        ::prost::Enumeration
1929    )]
1930    #[repr(i32)]
1931    pub enum EventGroup {
1932        Unknown = 0,
1933        /// Events suitable for low bandwidth tracing only.
1934        LowBandwidth = 1,
1935        /// Events suitable for high and low bandwidth tracing.
1936        HighAndLowBandwidth = 2,
1937    }
1938    impl EventGroup {
1939        /// String value of the enum field names used in the ProtoBuf definition.
1940        ///
1941        /// The values are not transformed in any way and thus are considered stable
1942        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1943        pub fn as_str_name(&self) -> &'static str {
1944            match self {
1945                Self::Unknown => "EVENT_GROUP_UNKNOWN",
1946                Self::LowBandwidth => "EVENT_GROUP_LOW_BANDWIDTH",
1947                Self::HighAndLowBandwidth => "EVENT_GROUP_HIGH_AND_LOW_BANDWIDTH",
1948            }
1949        }
1950        /// Creates an enum from field names used in the ProtoBuf definition.
1951        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1952            match value {
1953                "EVENT_GROUP_UNKNOWN" => Some(Self::Unknown),
1954                "EVENT_GROUP_LOW_BANDWIDTH" => Some(Self::LowBandwidth),
1955                "EVENT_GROUP_HIGH_AND_LOW_BANDWIDTH" => Some(Self::HighAndLowBandwidth),
1956                _ => None,
1957            }
1958        }
1959    }
1960}
1961/// Custom configuration for the "android.protolog" data source.
1962/// ProtoLog is a logging mechanism that is intented to be more efficient than
1963/// logcat. This configures what logs to capture in the tracing instance.
1964#[derive(Clone, PartialEq, ::prost::Message)]
1965pub struct ProtoLogConfig {
1966    /// Specified the configurations for each of the logging groups. If none is
1967    /// specified for a group the defaults will be used.
1968    #[prost(message, repeated, tag = "1")]
1969    pub group_overrides: ::prost::alloc::vec::Vec<ProtoLogGroup>,
1970    /// Specified what tracing mode to use for the tracing instance.
1971    #[prost(enumeration = "proto_log_config::TracingMode", optional, tag = "2")]
1972    pub tracing_mode: ::core::option::Option<i32>,
1973    /// If set, any message with log level higher than this level (inclusive) will
1974    /// be traced. Group overrides take precedence over this value.
1975    #[prost(enumeration = "ProtoLogLevel", optional, tag = "3")]
1976    pub default_log_from_level: ::core::option::Option<i32>,
1977}
1978/// Nested message and enum types in `ProtoLogConfig`.
1979pub mod proto_log_config {
1980    #[derive(
1981        Clone,
1982        Copy,
1983        Debug,
1984        PartialEq,
1985        Eq,
1986        Hash,
1987        PartialOrd,
1988        Ord,
1989        ::prost::Enumeration
1990    )]
1991    #[repr(i32)]
1992    pub enum TracingMode {
1993        /// When using the DEFAULT tracing mode, only log groups and levels specified
1994        /// in the group_overrides are traced.
1995        Default = 0,
1996        /// When using the ENABLE_ALL tracing mode, all log groups and levels are
1997        /// traced, unless specified in the group_overrides.
1998        EnableAll = 1,
1999    }
2000    impl TracingMode {
2001        /// String value of the enum field names used in the ProtoBuf definition.
2002        ///
2003        /// The values are not transformed in any way and thus are considered stable
2004        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2005        pub fn as_str_name(&self) -> &'static str {
2006            match self {
2007                Self::Default => "DEFAULT",
2008                Self::EnableAll => "ENABLE_ALL",
2009            }
2010        }
2011        /// Creates an enum from field names used in the ProtoBuf definition.
2012        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2013            match value {
2014                "DEFAULT" => Some(Self::Default),
2015                "ENABLE_ALL" => Some(Self::EnableAll),
2016                _ => None,
2017            }
2018        }
2019    }
2020}
2021#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2022pub struct ProtoLogGroup {
2023    /// The ProtoLog group name this configuration entry applies to.
2024    #[prost(string, optional, tag = "1")]
2025    pub group_name: ::core::option::Option<::prost::alloc::string::String>,
2026    /// Specify the level from which to start capturing protologs.
2027    /// e.g. if ProtoLogLevel.WARN is specified only warning, errors and fatal log
2028    /// message will be traced.
2029    #[prost(enumeration = "ProtoLogLevel", optional, tag = "2")]
2030    pub log_from: ::core::option::Option<i32>,
2031    /// When set to true we will collect the stacktrace for each protolog message
2032    /// in this group that we are tracing.
2033    #[prost(bool, optional, tag = "3")]
2034    pub collect_stacktrace: ::core::option::Option<bool>,
2035}
2036#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2037#[repr(i32)]
2038pub enum ProtoLogLevel {
2039    ProtologLevelUndefined = 0,
2040    ProtologLevelDebug = 1,
2041    ProtologLevelVerbose = 2,
2042    ProtologLevelInfo = 3,
2043    ProtologLevelWarn = 4,
2044    ProtologLevelError = 5,
2045    ProtologLevelWtf = 6,
2046}
2047impl ProtoLogLevel {
2048    /// String value of the enum field names used in the ProtoBuf definition.
2049    ///
2050    /// The values are not transformed in any way and thus are considered stable
2051    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2052    pub fn as_str_name(&self) -> &'static str {
2053        match self {
2054            Self::ProtologLevelUndefined => "PROTOLOG_LEVEL_UNDEFINED",
2055            Self::ProtologLevelDebug => "PROTOLOG_LEVEL_DEBUG",
2056            Self::ProtologLevelVerbose => "PROTOLOG_LEVEL_VERBOSE",
2057            Self::ProtologLevelInfo => "PROTOLOG_LEVEL_INFO",
2058            Self::ProtologLevelWarn => "PROTOLOG_LEVEL_WARN",
2059            Self::ProtologLevelError => "PROTOLOG_LEVEL_ERROR",
2060            Self::ProtologLevelWtf => "PROTOLOG_LEVEL_WTF",
2061        }
2062    }
2063    /// Creates an enum from field names used in the ProtoBuf definition.
2064    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2065        match value {
2066            "PROTOLOG_LEVEL_UNDEFINED" => Some(Self::ProtologLevelUndefined),
2067            "PROTOLOG_LEVEL_DEBUG" => Some(Self::ProtologLevelDebug),
2068            "PROTOLOG_LEVEL_VERBOSE" => Some(Self::ProtologLevelVerbose),
2069            "PROTOLOG_LEVEL_INFO" => Some(Self::ProtologLevelInfo),
2070            "PROTOLOG_LEVEL_WARN" => Some(Self::ProtologLevelWarn),
2071            "PROTOLOG_LEVEL_ERROR" => Some(Self::ProtologLevelError),
2072            "PROTOLOG_LEVEL_WTF" => Some(Self::ProtologLevelWtf),
2073            _ => None,
2074        }
2075    }
2076}
2077/// Config for the "android.display.video" data source. Unset/0 fields use
2078/// the producer's default.
2079#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2080pub struct DisplayVideoConfig {
2081    /// Scale applied to each display's resolution before capture (0.25 =
2082    /// quarter size).
2083    #[prost(float, optional, tag = "1")]
2084    pub scale: ::core::option::Option<f32>,
2085    #[prost(enumeration = "display_video_config::Format", optional, tag = "2")]
2086    pub format: ::core::option::Option<i32>,
2087    /// Keyframe interval in seconds. Smaller = snappier seeking, larger trace.
2088    #[prost(uint32, optional, tag = "3")]
2089    pub key_frame_interval_secs: ::core::option::Option<u32>,
2090    /// Per-display cap on emitted bytes. On reaching it the stream is torn
2091    /// down with a VideoFrameError (SIZE_CAP_HIT).
2092    #[prost(uint64, optional, tag = "4")]
2093    pub max_stream_size_bytes: ::core::option::Option<u64>,
2094    /// Target video encoder bitrate in bits per second. Controls quality vs
2095    /// trace size at a fixed resolution (unlike `scale`, which changes the
2096    /// resolution). Unset lets the producer pick a default from the (scaled)
2097    /// resolution and frame rate. Maps to MediaFormat.KEY_BIT_RATE.
2098    #[prost(uint32, optional, tag = "5")]
2099    pub bitrate_bps: ::core::option::Option<u32>,
2100}
2101/// Nested message and enum types in `DisplayVideoConfig`.
2102pub mod display_video_config {
2103    #[derive(
2104        Clone,
2105        Copy,
2106        Debug,
2107        PartialEq,
2108        Eq,
2109        Hash,
2110        PartialOrd,
2111        Ord,
2112        ::prost::Enumeration
2113    )]
2114    #[repr(i32)]
2115    pub enum Format {
2116        /// Default (H.264).
2117        Unspecified = 0,
2118        H264 = 1,
2119        Hevc = 2,
2120    }
2121    impl Format {
2122        /// String value of the enum field names used in the ProtoBuf definition.
2123        ///
2124        /// The values are not transformed in any way and thus are considered stable
2125        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2126        pub fn as_str_name(&self) -> &'static str {
2127            match self {
2128                Self::Unspecified => "FORMAT_UNSPECIFIED",
2129                Self::H264 => "FORMAT_H264",
2130                Self::Hevc => "FORMAT_HEVC",
2131            }
2132        }
2133        /// Creates an enum from field names used in the ProtoBuf definition.
2134        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2135            match value {
2136                "FORMAT_UNSPECIFIED" => Some(Self::Unspecified),
2137                "FORMAT_H264" => Some(Self::H264),
2138                "FORMAT_HEVC" => Some(Self::Hevc),
2139                _ => None,
2140            }
2141        }
2142    }
2143}
2144/// Custom configuration for the "android.surfaceflinger.layers" data source.
2145#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2146pub struct SurfaceFlingerLayersConfig {
2147    #[prost(enumeration = "surface_flinger_layers_config::Mode", optional, tag = "1")]
2148    pub mode: ::core::option::Option<i32>,
2149    #[prost(
2150        enumeration = "surface_flinger_layers_config::TraceFlag",
2151        repeated,
2152        packed = "false",
2153        tag = "2"
2154    )]
2155    pub trace_flags: ::prost::alloc::vec::Vec<i32>,
2156}
2157/// Nested message and enum types in `SurfaceFlingerLayersConfig`.
2158pub mod surface_flinger_layers_config {
2159    #[derive(
2160        Clone,
2161        Copy,
2162        Debug,
2163        PartialEq,
2164        Eq,
2165        Hash,
2166        PartialOrd,
2167        Ord,
2168        ::prost::Enumeration
2169    )]
2170    #[repr(i32)]
2171    pub enum Mode {
2172        Unspecified = 0,
2173        /// Trace layers snapshots. A snapshot is taken every time a layers change
2174        /// occurs.
2175        Active = 1,
2176        /// Generate layers snapshots from the transactions kept in the
2177        /// SurfaceFlinger's internal ring buffer.
2178        /// The layers snapshots generation occurs when this data source is flushed.
2179        Generated = 2,
2180        /// Trace a single layers snapshot.
2181        Dump = 3,
2182        /// Default mode (applied by SurfaceFlinger if no mode is specified).
2183        /// Same as MODE_GENERATED, but triggers the layers snapshots generation only
2184        /// when a bugreport is taken.
2185        GeneratedBugreportOnly = 4,
2186        /// Layer snapshots are generated by ProtoVM from layer patches
2187        Protovm = 5,
2188    }
2189    impl Mode {
2190        /// String value of the enum field names used in the ProtoBuf definition.
2191        ///
2192        /// The values are not transformed in any way and thus are considered stable
2193        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2194        pub fn as_str_name(&self) -> &'static str {
2195            match self {
2196                Self::Unspecified => "MODE_UNSPECIFIED",
2197                Self::Active => "MODE_ACTIVE",
2198                Self::Generated => "MODE_GENERATED",
2199                Self::Dump => "MODE_DUMP",
2200                Self::GeneratedBugreportOnly => "MODE_GENERATED_BUGREPORT_ONLY",
2201                Self::Protovm => "MODE_PROTOVM",
2202            }
2203        }
2204        /// Creates an enum from field names used in the ProtoBuf definition.
2205        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2206            match value {
2207                "MODE_UNSPECIFIED" => Some(Self::Unspecified),
2208                "MODE_ACTIVE" => Some(Self::Active),
2209                "MODE_GENERATED" => Some(Self::Generated),
2210                "MODE_DUMP" => Some(Self::Dump),
2211                "MODE_GENERATED_BUGREPORT_ONLY" => Some(Self::GeneratedBugreportOnly),
2212                "MODE_PROTOVM" => Some(Self::Protovm),
2213                _ => None,
2214            }
2215        }
2216    }
2217    #[derive(
2218        Clone,
2219        Copy,
2220        Debug,
2221        PartialEq,
2222        Eq,
2223        Hash,
2224        PartialOrd,
2225        Ord,
2226        ::prost::Enumeration
2227    )]
2228    #[repr(i32)]
2229    pub enum TraceFlag {
2230        Unspecified = 0,
2231        Input = 2,
2232        Composition = 4,
2233        Extra = 8,
2234        Hwc = 16,
2235        Buffers = 32,
2236        VirtualDisplays = 64,
2237        /// INPUT | COMPOSITION | EXTRA
2238        All = 14,
2239    }
2240    impl TraceFlag {
2241        /// String value of the enum field names used in the ProtoBuf definition.
2242        ///
2243        /// The values are not transformed in any way and thus are considered stable
2244        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2245        pub fn as_str_name(&self) -> &'static str {
2246            match self {
2247                Self::Unspecified => "TRACE_FLAG_UNSPECIFIED",
2248                Self::Input => "TRACE_FLAG_INPUT",
2249                Self::Composition => "TRACE_FLAG_COMPOSITION",
2250                Self::Extra => "TRACE_FLAG_EXTRA",
2251                Self::Hwc => "TRACE_FLAG_HWC",
2252                Self::Buffers => "TRACE_FLAG_BUFFERS",
2253                Self::VirtualDisplays => "TRACE_FLAG_VIRTUAL_DISPLAYS",
2254                Self::All => "TRACE_FLAG_ALL",
2255            }
2256        }
2257        /// Creates an enum from field names used in the ProtoBuf definition.
2258        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2259            match value {
2260                "TRACE_FLAG_UNSPECIFIED" => Some(Self::Unspecified),
2261                "TRACE_FLAG_INPUT" => Some(Self::Input),
2262                "TRACE_FLAG_COMPOSITION" => Some(Self::Composition),
2263                "TRACE_FLAG_EXTRA" => Some(Self::Extra),
2264                "TRACE_FLAG_HWC" => Some(Self::Hwc),
2265                "TRACE_FLAG_BUFFERS" => Some(Self::Buffers),
2266                "TRACE_FLAG_VIRTUAL_DISPLAYS" => Some(Self::VirtualDisplays),
2267                "TRACE_FLAG_ALL" => Some(Self::All),
2268                _ => None,
2269            }
2270        }
2271    }
2272}
2273/// Custom configuration for the "android.surfaceflinger.transactions" data
2274/// source.
2275#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2276pub struct SurfaceFlingerTransactionsConfig {
2277    #[prost(
2278        enumeration = "surface_flinger_transactions_config::Mode",
2279        optional,
2280        tag = "1"
2281    )]
2282    pub mode: ::core::option::Option<i32>,
2283}
2284/// Nested message and enum types in `SurfaceFlingerTransactionsConfig`.
2285pub mod surface_flinger_transactions_config {
2286    #[derive(
2287        Clone,
2288        Copy,
2289        Debug,
2290        PartialEq,
2291        Eq,
2292        Hash,
2293        PartialOrd,
2294        Ord,
2295        ::prost::Enumeration
2296    )]
2297    #[repr(i32)]
2298    pub enum Mode {
2299        Unspecified = 0,
2300        /// Default mode (applied by SurfaceFlinger if no mode is specified).
2301        /// SurfaceFlinger writes its internal ring buffer of transactions every time
2302        /// the data source is flushed. The ring buffer contains the SurfaceFlinger's
2303        /// initial state and the latest transactions.
2304        Continuous = 1,
2305        /// SurfaceFlinger writes the initial state and then each incoming
2306        /// transaction until the data source is stopped.
2307        Active = 2,
2308    }
2309    impl Mode {
2310        /// String value of the enum field names used in the ProtoBuf definition.
2311        ///
2312        /// The values are not transformed in any way and thus are considered stable
2313        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2314        pub fn as_str_name(&self) -> &'static str {
2315            match self {
2316                Self::Unspecified => "MODE_UNSPECIFIED",
2317                Self::Continuous => "MODE_CONTINUOUS",
2318                Self::Active => "MODE_ACTIVE",
2319            }
2320        }
2321        /// Creates an enum from field names used in the ProtoBuf definition.
2322        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2323            match value {
2324                "MODE_UNSPECIFIED" => Some(Self::Unspecified),
2325                "MODE_CONTINUOUS" => Some(Self::Continuous),
2326                "MODE_ACTIVE" => Some(Self::Active),
2327                _ => None,
2328            }
2329        }
2330    }
2331}
2332/// Data source that lists details (such as version code) about users on an
2333/// Android device.
2334#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2335pub struct AndroidUserListConfig {
2336    /// An allowlist of user type strings, used to control the granularity of
2337    /// user type information emitted in the trace. Exact, case-sensitive string
2338    /// matching is used.
2339    ///
2340    /// Any user type read from the device that is NOT present in the
2341    /// effective allowlist will have its type reported as
2342    /// "android.os.usertype.FILTERED".
2343    ///
2344    /// The effective allowlist is determined as follows:
2345    ///
2346    /// 1. If this 'user_type_filter' field is provided and non-empty:
2347    ///     This list itself is the effective allowlist.
2348    ///     Example TraceConfig:
2349    ///     --------------------
2350    ///     data_sources {
2351    ///         config {
2352    ///             name: "android.user_list"
2353    ///             target_buffer: 0
2354    ///             user_list_config {
2355    ///               # Only report these specific types, others become FILTERED.
2356    ///               user_type_filter: "android.os.usertype.full.SYSTEM"
2357    ///               user_type_filter: "android.os.usertype.system.HEADLESS"
2358    ///             }
2359    ///         }
2360    ///     }
2361    ///
2362    ///
2363    /// Note: This field does not support regular expressions.
2364    #[prost(string, repeated, tag = "1")]
2365    pub user_type_filter: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2366}
2367/// Custom configuration for the "android.windowmanager" data source.
2368#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2369pub struct WindowManagerConfig {
2370    #[prost(enumeration = "window_manager_config::LogFrequency", optional, tag = "1")]
2371    pub log_frequency: ::core::option::Option<i32>,
2372    #[prost(enumeration = "window_manager_config::LogLevel", optional, tag = "2")]
2373    pub log_level: ::core::option::Option<i32>,
2374    #[prost(enumeration = "window_manager_config::LogMode", optional, tag = "3")]
2375    pub log_mode: ::core::option::Option<i32>,
2376}
2377/// Nested message and enum types in `WindowManagerConfig`.
2378pub mod window_manager_config {
2379    #[derive(
2380        Clone,
2381        Copy,
2382        Debug,
2383        PartialEq,
2384        Eq,
2385        Hash,
2386        PartialOrd,
2387        Ord,
2388        ::prost::Enumeration
2389    )]
2390    #[repr(i32)]
2391    pub enum LogFrequency {
2392        Unspecified = 0,
2393        /// Trace state snapshots when a frame is committed.
2394        Frame = 1,
2395        /// Trace state snapshots every time a transaction is committed.
2396        Transaction = 2,
2397        /// Trace single state snapshots when the data source is started.
2398        SingleDump = 3,
2399    }
2400    impl LogFrequency {
2401        /// String value of the enum field names used in the ProtoBuf definition.
2402        ///
2403        /// The values are not transformed in any way and thus are considered stable
2404        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2405        pub fn as_str_name(&self) -> &'static str {
2406            match self {
2407                Self::Unspecified => "LOG_FREQUENCY_UNSPECIFIED",
2408                Self::Frame => "LOG_FREQUENCY_FRAME",
2409                Self::Transaction => "LOG_FREQUENCY_TRANSACTION",
2410                Self::SingleDump => "LOG_FREQUENCY_SINGLE_DUMP",
2411            }
2412        }
2413        /// Creates an enum from field names used in the ProtoBuf definition.
2414        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2415            match value {
2416                "LOG_FREQUENCY_UNSPECIFIED" => Some(Self::Unspecified),
2417                "LOG_FREQUENCY_FRAME" => Some(Self::Frame),
2418                "LOG_FREQUENCY_TRANSACTION" => Some(Self::Transaction),
2419                "LOG_FREQUENCY_SINGLE_DUMP" => Some(Self::SingleDump),
2420                _ => None,
2421            }
2422        }
2423    }
2424    #[derive(
2425        Clone,
2426        Copy,
2427        Debug,
2428        PartialEq,
2429        Eq,
2430        Hash,
2431        PartialOrd,
2432        Ord,
2433        ::prost::Enumeration
2434    )]
2435    #[repr(i32)]
2436    pub enum LogLevel {
2437        Unspecified = 0,
2438        /// Logs all elements with maximum amount of information.
2439        Verbose = 1,
2440        /// Logs all elements but doesn't write all configuration data.
2441        Debug = 2,
2442        /// Logs only visible elements, with the minimum amount of performance
2443        /// overhead
2444        Critical = 3,
2445    }
2446    impl LogLevel {
2447        /// String value of the enum field names used in the ProtoBuf definition.
2448        ///
2449        /// The values are not transformed in any way and thus are considered stable
2450        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2451        pub fn as_str_name(&self) -> &'static str {
2452            match self {
2453                Self::Unspecified => "LOG_LEVEL_UNSPECIFIED",
2454                Self::Verbose => "LOG_LEVEL_VERBOSE",
2455                Self::Debug => "LOG_LEVEL_DEBUG",
2456                Self::Critical => "LOG_LEVEL_CRITICAL",
2457            }
2458        }
2459        /// Creates an enum from field names used in the ProtoBuf definition.
2460        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2461            match value {
2462                "LOG_LEVEL_UNSPECIFIED" => Some(Self::Unspecified),
2463                "LOG_LEVEL_VERBOSE" => Some(Self::Verbose),
2464                "LOG_LEVEL_DEBUG" => Some(Self::Debug),
2465                "LOG_LEVEL_CRITICAL" => Some(Self::Critical),
2466                _ => None,
2467            }
2468        }
2469    }
2470    #[derive(
2471        Clone,
2472        Copy,
2473        Debug,
2474        PartialEq,
2475        Eq,
2476        Hash,
2477        PartialOrd,
2478        Ord,
2479        ::prost::Enumeration
2480    )]
2481    #[repr(i32)]
2482    pub enum LogMode {
2483        Unspecified = 0,
2484        /// Always logs a full state dump of the window hierarchy.
2485        FullState = 1,
2486        /// Logs a full state dump of the window hierarchy only when tracing starts.
2487        /// The following trace packets are lightweight patches containing only the
2488        /// last changes.
2489        Incremental = 2,
2490    }
2491    impl LogMode {
2492        /// String value of the enum field names used in the ProtoBuf definition.
2493        ///
2494        /// The values are not transformed in any way and thus are considered stable
2495        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2496        pub fn as_str_name(&self) -> &'static str {
2497            match self {
2498                Self::Unspecified => "LOG_MODE_UNSPECIFIED",
2499                Self::FullState => "LOG_MODE_FULL_STATE",
2500                Self::Incremental => "LOG_MODE_INCREMENTAL",
2501            }
2502        }
2503        /// Creates an enum from field names used in the ProtoBuf definition.
2504        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2505            match value {
2506                "LOG_MODE_UNSPECIFIED" => Some(Self::Unspecified),
2507                "LOG_MODE_FULL_STATE" => Some(Self::FullState),
2508                "LOG_MODE_INCREMENTAL" => Some(Self::Incremental),
2509                _ => None,
2510            }
2511        }
2512    }
2513}
2514#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2515pub struct ChromeConfig {
2516    #[prost(string, optional, tag = "1")]
2517    pub trace_config: ::core::option::Option<::prost::alloc::string::String>,
2518    /// When enabled, the data source should only fill in fields in the output that
2519    /// are not potentially privacy sensitive.
2520    #[prost(bool, optional, tag = "2")]
2521    pub privacy_filtering_enabled: ::core::option::Option<bool>,
2522    /// Instead of emitting binary protobuf, convert the trace data to the legacy
2523    /// JSON format. Note that the trace data will still be returned as a series of
2524    /// TracePackets, but the embedded data will be JSON instead of serialized
2525    /// protobuf.
2526    #[prost(bool, optional, tag = "3")]
2527    pub convert_to_legacy_json: ::core::option::Option<bool>,
2528    #[prost(enumeration = "chrome_config::ClientPriority", optional, tag = "4")]
2529    pub client_priority: ::core::option::Option<i32>,
2530    /// Applicable only when using legacy JSON format.
2531    /// If |json_agent_label_filter| is not empty, only data pertaining to
2532    /// the specified tracing agent label (e.g. "traceEvents") will be returned.
2533    #[prost(string, optional, tag = "5")]
2534    pub json_agent_label_filter: ::core::option::Option<::prost::alloc::string::String>,
2535    ///   When enabled, event names should not contain package names.
2536    #[prost(bool, optional, tag = "6")]
2537    pub event_package_name_filter_enabled: ::core::option::Option<bool>,
2538}
2539/// Nested message and enum types in `ChromeConfig`.
2540pub mod chrome_config {
2541    /// Priority of the tracing session client. A higher priority session may
2542    /// preempt a lower priority one in configurations where concurrent sessions
2543    /// aren't supported.
2544    #[derive(
2545        Clone,
2546        Copy,
2547        Debug,
2548        PartialEq,
2549        Eq,
2550        Hash,
2551        PartialOrd,
2552        Ord,
2553        ::prost::Enumeration
2554    )]
2555    #[repr(i32)]
2556    pub enum ClientPriority {
2557        Unknown = 0,
2558        Background = 1,
2559        UserInitiated = 2,
2560    }
2561    impl ClientPriority {
2562        /// String value of the enum field names used in the ProtoBuf definition.
2563        ///
2564        /// The values are not transformed in any way and thus are considered stable
2565        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2566        pub fn as_str_name(&self) -> &'static str {
2567            match self {
2568                Self::Unknown => "UNKNOWN",
2569                Self::Background => "BACKGROUND",
2570                Self::UserInitiated => "USER_INITIATED",
2571            }
2572        }
2573        /// Creates an enum from field names used in the ProtoBuf definition.
2574        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2575            match value {
2576                "UNKNOWN" => Some(Self::Unknown),
2577                "BACKGROUND" => Some(Self::Background),
2578                "USER_INITIATED" => Some(Self::UserInitiated),
2579                _ => None,
2580            }
2581        }
2582    }
2583}
2584#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2585pub struct V8Config {
2586    /// Whether to log the actual content of scripts (e.g. content of the JS file
2587    /// that was compiled to generate code).
2588    /// ATTENTION: This could considerably increase the size of the resuling trace
2589    ///             file.
2590    #[prost(bool, optional, tag = "1")]
2591    pub log_script_sources: ::core::option::Option<bool>,
2592    /// Whether to log the generated code for jitted functions (machine code or
2593    /// bytecode).
2594    /// ATTENTION: This could considerably increase the size of the resuling trace
2595    ///             file.
2596    #[prost(bool, optional, tag = "2")]
2597    pub log_instructions: ::core::option::Option<bool>,
2598}
2599/// Proto definition based on the struct _EVENT_TRACE_PROPERTIES definition
2600/// See: <https://learn.microsoft.com/en-us/windows/win32/api/evntrace/>
2601/// ns-evntrace-event_trace_properties
2602#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2603pub struct EtwConfig {
2604    /// The kernel_flags determines the flags that will be used by the etw tracing
2605    /// session. These kernel flags have been built to expose the useful events
2606    /// captured from the kernel mode only.
2607    #[deprecated]
2608    #[prost(
2609        enumeration = "etw_config::KernelFlag",
2610        repeated,
2611        packed = "false",
2612        tag = "1"
2613    )]
2614    pub kernel_flags: ::prost::alloc::vec::Vec<i32>,
2615    /// Provides events relating to the scheduler.
2616    #[prost(string, repeated, tag = "2")]
2617    pub scheduler_provider_events: ::prost::alloc::vec::Vec<
2618        ::prost::alloc::string::String,
2619    >,
2620    /// Provides events relating to the memory manager.
2621    #[prost(string, repeated, tag = "3")]
2622    pub memory_provider_events: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2623    /// Provides events relating to file I/O.
2624    #[deprecated]
2625    #[prost(string, repeated, tag = "4")]
2626    pub file_provider_events: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2627    /// Events for which stacks should be collected.
2628    #[prost(string, repeated, tag = "5")]
2629    pub stack_sampling_events: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2630    /// Provides events relating to disk I/O.
2631    #[deprecated]
2632    #[prost(string, repeated, tag = "6")]
2633    pub disk_provider_events: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2634    /// Provides events relating to multiple kinds of IO including disk, cache, and
2635    /// network.
2636    #[prost(string, repeated, tag = "7")]
2637    pub system_io_provider_events: ::prost::alloc::vec::Vec<
2638        ::prost::alloc::string::String,
2639    >,
2640}
2641/// Nested message and enum types in `EtwConfig`.
2642pub mod etw_config {
2643    /// The KernelFlag represent list of kernel flags that we are intrested in.
2644    /// To get a more extensive list run 'xperf -providers k'.
2645    #[derive(
2646        Clone,
2647        Copy,
2648        Debug,
2649        PartialEq,
2650        Eq,
2651        Hash,
2652        PartialOrd,
2653        Ord,
2654        ::prost::Enumeration
2655    )]
2656    #[repr(i32)]
2657    pub enum KernelFlag {
2658        Cswitch = 0,
2659        Dispatcher = 1,
2660    }
2661    impl KernelFlag {
2662        /// String value of the enum field names used in the ProtoBuf definition.
2663        ///
2664        /// The values are not transformed in any way and thus are considered stable
2665        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2666        pub fn as_str_name(&self) -> &'static str {
2667            match self {
2668                Self::Cswitch => "CSWITCH",
2669                Self::Dispatcher => "DISPATCHER",
2670            }
2671        }
2672        /// Creates an enum from field names used in the ProtoBuf definition.
2673        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2674            match value {
2675                "CSWITCH" => Some(Self::Cswitch),
2676                "DISPATCHER" => Some(Self::Dispatcher),
2677                _ => None,
2678            }
2679        }
2680    }
2681}
2682#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2683pub struct ChromiumSystemMetricsConfig {
2684    /// Samples counters every X ms.
2685    #[prost(uint32, optional, tag = "1")]
2686    pub sampling_interval_ms: ::core::option::Option<u32>,
2687}
2688/// Next id: 38
2689#[derive(Clone, PartialEq, ::prost::Message)]
2690pub struct FtraceConfig {
2691    /// Ftrace events to record, example: "sched/sched_switch".
2692    #[prost(string, repeated, tag = "1")]
2693    pub ftrace_events: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2694    /// Android-specific event categories:
2695    #[prost(string, repeated, tag = "2")]
2696    pub atrace_categories: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2697    #[prost(string, repeated, tag = "3")]
2698    pub atrace_apps: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2699    /// Some processes can emit data through atrace or through the perfetto SDK via
2700    /// the "track_event" data source. For these categories, the SDK will be
2701    /// preferred, if possible, for this config.
2702    #[prost(string, repeated, tag = "28")]
2703    pub atrace_categories_prefer_sdk: ::prost::alloc::vec::Vec<
2704        ::prost::alloc::string::String,
2705    >,
2706    /// If true, do *not* add in extra ftrace events when |atrace_categories| are
2707    /// set. This skips the legacy "atrace" behaviour of adding hardcoded ftrace
2708    /// events for convenience (and the vendor-specific events on top).
2709    /// Introduced in: perfetto v52.
2710    #[prost(bool, optional, tag = "34")]
2711    pub atrace_userspace_only: ::core::option::Option<bool>,
2712    /// Size of each per-cpu kernel ftrace ring buffer.
2713    /// Not guaranteed if there are multiple concurrent tracing sessions, as the
2714    /// buffers cannot be resized without pausing recording in the kernel.
2715    #[prost(uint32, optional, tag = "10")]
2716    pub buffer_size_kb: ::core::option::Option<u32>,
2717    /// If true, |buffer_size_kb| is interpreted as a lower bound, allowing the
2718    /// implementation to choose a bigger buffer size.
2719    ///
2720    /// Most configs for perfetto v43+ should simply leave both fields unset.
2721    ///
2722    /// If you need a config compatible with a range of perfetto builds and you
2723    /// used to set a non-default buffer_size_kb, consider setting both fields.
2724    /// Example:
2725    ///    buffer_size_kb: 4096
2726    ///    buffer_size_lower_bound: true
2727    /// On older builds, the per-cpu buffers will be exactly 4 MB.
2728    /// On v43+, buffers will be at least 4 MB.
2729    /// In both cases, neither is guaranteed if there are other concurrent
2730    /// perfetto ftrace sessions, as the buffers cannot be resized without pausing
2731    /// the recording in the kernel.
2732    /// Introduced in: perfetto v43.
2733    #[prost(bool, optional, tag = "27")]
2734    pub buffer_size_lower_bound: ::core::option::Option<bool>,
2735    /// If set, specifies how often the tracing daemon reads from the kernel ring
2736    /// buffer. Not guaranteed if there are multiple concurrent tracing sessions.
2737    /// Leave unset unless you're fine-tuning a local config.
2738    #[prost(uint32, optional, tag = "11")]
2739    pub drain_period_ms: ::core::option::Option<u32>,
2740    /// If set, the tracing daemon will read kernel ring buffers as soon as
2741    /// they're filled past this percentage of occupancy. In other words, a value
2742    /// of 50 means that a read pass is triggered as soon as any per-cpu buffer is
2743    /// half-full. Not guaranteed if there are multiple concurrent tracing
2744    /// sessions.
2745    /// Currently does nothing on Linux kernels below v6.9.
2746    /// Introduced in: perfetto v48.
2747    #[prost(uint32, optional, tag = "29")]
2748    pub drain_buffer_percent: ::core::option::Option<u32>,
2749    #[prost(message, optional, tag = "12")]
2750    pub compact_sched: ::core::option::Option<ftrace_config::CompactSchedConfig>,
2751    #[prost(message, optional, tag = "22")]
2752    pub print_filter: ::core::option::Option<ftrace_config::PrintFilter>,
2753    /// Enables symbol name resolution against /proc/kallsyms.
2754    /// It requires that either traced_probes is running as root or that
2755    /// kptr_restrict has been manually lowered.
2756    /// It does not disclose KASLR, symbol addresses are mangled.
2757    #[prost(bool, optional, tag = "13")]
2758    pub symbolize_ksyms: ::core::option::Option<bool>,
2759    #[prost(enumeration = "ftrace_config::KsymsMemPolicy", optional, tag = "17")]
2760    pub ksyms_mem_policy: ::core::option::Option<i32>,
2761    /// When this boolean is true AND the ftrace_events contains "kmem/rss_stat",
2762    /// this option causes traced_probes to enable the "kmem/rss_stat_throttled"
2763    /// event instead if present, and fall back to "kmem/rss_stat" if not present.
2764    /// The historical context for this is the following:
2765    /// - Up to Android S (12), the rss_stat was internally throttled in its
2766    ///    kernel implementation.
2767    /// - A change introduced in the kernels after S has introduced a new
2768    ///    "rss_stat_throttled" making the original "rss_stat" event unthrottled
2769    ///    (hence very spammy).
2770    /// - Not all Android T/13 devices will receive a new kernel though, hence we
2771    ///    need to deal with both cases.
2772    /// For more context: go/rss-stat-throttled.
2773    #[prost(bool, optional, tag = "15")]
2774    pub throttle_rss_stat: ::core::option::Option<bool>,
2775    /// If true, use self-describing proto messages when writing events not known
2776    /// at compile time (aka generic events). Each event bundle will have a set of
2777    /// serialised proto descriptors for events within that bundle.
2778    ///
2779    /// Default if unset:
2780    /// * v53+: true
2781    /// * before v53: false
2782    ///
2783    /// Added in: perfetto v50.
2784    #[prost(bool, optional, tag = "32")]
2785    pub denser_generic_event_encoding: ::core::option::Option<bool>,
2786    /// If true, avoid enabling events that aren't statically known by
2787    /// traced_probes. Otherwise, the default is to emit such events as
2788    /// GenericFtraceEvent protos.
2789    /// Prefer to keep this flag at its default. This was added for Android
2790    /// tracing, where atrace categories and/or atrace HAL requested events can
2791    /// expand to events that aren't of interest to the tracing user.
2792    /// Introduced in: Android T.
2793    #[prost(bool, optional, tag = "16")]
2794    pub disable_generic_events: ::core::option::Option<bool>,
2795    /// The subset of syscalls to record. To record all syscalls, leave this unset
2796    /// and add "ftrace_events: raw_syscalls/sys_{enter,exit}" to the config.
2797    /// * before perfetto v43, requires the config to also enable
2798    ///    raw_syscalls/sys_{enter,exit}.
2799    /// * perfetto v43+ does the right thing if you set only this field.
2800    /// Example: \["sys_read", "sys_open"\].
2801    /// Introduced in: Android U.
2802    #[prost(string, repeated, tag = "18")]
2803    pub syscall_events: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2804    /// If true, enable the "function_graph" kernel tracer that emits events
2805    /// whenever a kernel function is entered and exited
2806    /// (funcgraph_entry/funcgraph_exit).
2807    /// Notes on use:
2808    /// * Requires |symbolize_ksyms| for function name resolution.
2809    /// * Use |function_filters| or |function_graph_roots| to constrain the traced
2810    ///    set of functions, otherwise the event bandwidth will be too high for
2811    ///    practical use.
2812    /// * The data source might be rejected if there is already a concurrent
2813    ///    ftrace data source that does not use function graph itself, as we do not
2814    ///    support switching kernel tracers mid-trace.
2815    /// * Requires a kernel compiled with CONFIG_FUNCTION_GRAPH_TRACER. This is
2816    ///    enabled if "cat /sys/kernel/tracing/available_tracers" includes
2817    ///    "function_graph".
2818    /// Android:
2819    /// * Available only on debuggable builds.
2820    /// * Introduced in: Android U.
2821    #[prost(bool, optional, tag = "19")]
2822    pub enable_function_graph: ::core::option::Option<bool>,
2823    /// Constrains the set of functions traced when |enable_function_graph| is
2824    /// true. Supports globs, e.g. "sched*". You can specify multiple filters,
2825    /// in which case all matching functions will be traced. See kernel
2826    /// documentation on ftrace "set_ftrace_filter" file for more details.
2827    /// Android:
2828    /// * Available only on debuggable builds.
2829    /// * Introduced in: Android U.
2830    #[prost(string, repeated, tag = "20")]
2831    pub function_filters: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2832    /// If |enable_function_graph| is true, trace this set of functions *and* all
2833    /// of its callees. Supports globs. Can be set together with
2834    /// |function_filters|, in which case only callees matching the filter will be
2835    /// traced. If setting both, you most likely want all roots to also be
2836    /// included in |function_filters|.
2837    /// Android:
2838    /// * Available only on debuggable builds.
2839    /// * Introduced in: Android U.
2840    #[prost(string, repeated, tag = "21")]
2841    pub function_graph_roots: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2842    /// If |enable_function_graph| is true, only trace the specified
2843    /// number of calls down the stack. Sets the max_graph_depth value
2844    /// in sys/kernel/tracing/
2845    ///
2846    /// Only respected for the first tracing session that enables
2847    /// function_graph tracing.
2848    ///
2849    /// Introduced in: perfetto v51.
2850    /// Supported on: Android 25Q3+.
2851    #[prost(uint32, optional, tag = "33")]
2852    pub function_graph_max_depth: ::core::option::Option<u32>,
2853    /// Ftrace events to record, specific for kprobes and kretprobes
2854    #[prost(message, repeated, tag = "30")]
2855    pub kprobe_events: ::prost::alloc::vec::Vec<ftrace_config::KprobeEvent>,
2856    /// If true, does not clear kernel ftrace buffers when starting the trace.
2857    /// This makes sense only if this is the first ftrace data source instance
2858    /// created after the daemon has been started. Can be useful for gathering boot
2859    /// traces, if ftrace has been separately configured (e.g. via kernel
2860    /// commandline).
2861    /// NB: when configuring the pre-perfetto ftrace, prefer to set
2862    /// "/sys/kernel/tracing/trace_clock" to "boot" if your trace will contain
2863    /// anything besides ftrace. Otherwise timestamps might be skewed.
2864    #[prost(bool, optional, tag = "23")]
2865    pub preserve_ftrace_buffer: ::core::option::Option<bool>,
2866    /// If true, overrides the default timestamp clock and uses a raw hardware
2867    /// based monotonic clock for getting timestamps.
2868    /// * Introduced in: Android U.
2869    #[prost(bool, optional, tag = "24")]
2870    pub use_monotonic_raw_clock: ::core::option::Option<bool>,
2871    /// If |instance_name| is not empty, then attempt to use that tracefs instance
2872    /// for event recording. Normally, this means
2873    /// `/sys/kernel/tracing/instances/$instance_name`.
2874    ///
2875    /// Names "hyp" and "hypervisor" are reserved.
2876    ///
2877    /// The instance must already exist, the tracing daemon *will not* create it
2878    /// for you as it typically doesn't have such permissions.
2879    /// Only a subset of features is guaranteed to work with non-default instances,
2880    /// at the time of writing:
2881    ///   * ftrace_events
2882    ///   * buffer_size_kb
2883    #[prost(string, optional, tag = "25")]
2884    pub instance_name: ::core::option::Option<::prost::alloc::string::String>,
2885    /// For perfetto developer use. If true and on a debuggable android build,
2886    /// serialise raw tracing pages that the implementation cannot parse.
2887    #[prost(bool, optional, tag = "31")]
2888    pub debug_ftrace_abi: ::core::option::Option<bool>,
2889    /// Filter ftrace events by Thread ID (TID).
2890    /// This writes the TIDs to `/sys/kernel/tracing/set_event_pid`.
2891    ///
2892    /// Note: this is an exclusive feature, see:
2893    /// <https://perfetto.dev/docs/learning-more/android#exclusive-tracing-sessions.>
2894    ///
2895    /// Introduced in: perfetto v52.
2896    /// Supported on: Android 25Q3+.
2897    #[prost(uint32, repeated, packed = "false", tag = "35")]
2898    pub tids_to_trace: ::prost::alloc::vec::Vec<u32>,
2899    #[prost(message, repeated, tag = "36")]
2900    pub tracefs_options: ::prost::alloc::vec::Vec<ftrace_config::TracefsOption>,
2901    /// This mask restricts tracing to a specific set of CPUs using a
2902    /// comma-separated hex mask. Each hex number (up to 8 digits) represents a
2903    /// 32-bit chunk of the CPU mask.
2904    ///
2905    /// The chunks are ordered from high CPUs to low CPUs (left to right):
2906    ///    - Rightmost chunk: CPUs 0-31
2907    ///    - 2nd chunk from right: CPUs 32-63
2908    ///    - ...and so on.
2909    ///
2910    /// Example (assuming NR_CPUS=128, requiring 4 chunks):
2911    /// The full mask would be in the format: "chunk3,chunk2,chunk1,chunk0"
2912    /// where chunk3 maps to CPUs 96-127, chunk2 to 64-95, chunk1 to 32-63, and
2913    /// chunk0 to 0-31.
2914    ///    - "ffffffff,0,0,0": Enables CPUs 96-127 only.
2915    ///    - "f,ff": Enables CPUs 0-7 (from "ff") and CPUs 32-35 (from "f").
2916    ///
2917    /// Note: This is an exclusive feature, see:
2918    /// <https://perfetto.dev/docs/learning-more/android#exclusive-tracing-sessions.>
2919    ///
2920    /// Introduced in: perfetto v52.
2921    /// Supported on: Android 25Q3+.
2922    #[prost(string, optional, tag = "37")]
2923    pub tracing_cpumask: ::core::option::Option<::prost::alloc::string::String>,
2924    /// No-op in perfetto v28+. Name preserved because of existing references in
2925    /// textproto configs.
2926    #[deprecated]
2927    #[prost(bool, optional, tag = "14")]
2928    pub initialize_ksyms_synchronously_for_testing: ::core::option::Option<bool>,
2929}
2930/// Nested message and enum types in `FtraceConfig`.
2931pub mod ftrace_config {
2932    /// Configuration for compact encoding of scheduler events. When enabled (and
2933    /// recording the relevant ftrace events), specific high-volume events are
2934    /// encoded in a denser format than normal.
2935    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2936    pub struct CompactSchedConfig {
2937        /// If true, and sched_switch or sched_waking ftrace events are enabled,
2938        /// record those events in the compact format.
2939        ///
2940        /// If the field is unset, the default is:
2941        /// * perfetto v42.0+: enabled
2942        /// * before: disabled
2943        #[prost(bool, optional, tag = "1")]
2944        pub enabled: ::core::option::Option<bool>,
2945    }
2946    /// Optional filter for "ftrace/print" events.
2947    ///
2948    /// The filter consists of multiple rules. As soon as a rule matches (the rules
2949    /// are processed in order), its `allow` field will be used as the outcome: if
2950    /// `allow` is true, the event will be included in the trace, otherwise it will
2951    /// be discarded. If an event does not match any rule, it will be allowed by
2952    /// default (a rule with an empty prefix and allow=false, disallows everything
2953    /// by default).
2954    #[derive(Clone, PartialEq, ::prost::Message)]
2955    pub struct PrintFilter {
2956        #[prost(message, repeated, tag = "1")]
2957        pub rules: ::prost::alloc::vec::Vec<print_filter::Rule>,
2958    }
2959    /// Nested message and enum types in `PrintFilter`.
2960    pub mod print_filter {
2961        #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2962        pub struct Rule {
2963            #[prost(bool, optional, tag = "2")]
2964            pub allow: ::core::option::Option<bool>,
2965            #[prost(oneof = "rule::Match", tags = "1, 3")]
2966            pub r#match: ::core::option::Option<rule::Match>,
2967        }
2968        /// Nested message and enum types in `Rule`.
2969        pub mod rule {
2970            /// Matches an atrace message of the form:
2971            /// <type>|pid|<prefix>...
2972            #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2973            pub struct AtraceMessage {
2974                #[prost(string, optional, tag = "1")]
2975                pub r#type: ::core::option::Option<::prost::alloc::string::String>,
2976                #[prost(string, optional, tag = "2")]
2977                pub prefix: ::core::option::Option<::prost::alloc::string::String>,
2978            }
2979            #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
2980            pub enum Match {
2981                /// This rule matches if `prefix` matches exactly with the beginning of
2982                /// the "ftrace/print" "buf" field.
2983                #[prost(string, tag = "1")]
2984                Prefix(::prost::alloc::string::String),
2985                /// This rule matches if the "buf" field contains an atrace-style print
2986                /// message as specified in `atrace_msg`.
2987                #[prost(message, tag = "3")]
2988                AtraceMsg(AtraceMessage),
2989            }
2990        }
2991    }
2992    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2993    pub struct KprobeEvent {
2994        /// Kernel function name to attach to, for example "fuse_file_write_iter"
2995        #[prost(string, optional, tag = "1")]
2996        pub probe: ::core::option::Option<::prost::alloc::string::String>,
2997        #[prost(enumeration = "kprobe_event::KprobeType", optional, tag = "2")]
2998        pub r#type: ::core::option::Option<i32>,
2999    }
3000    /// Nested message and enum types in `KprobeEvent`.
3001    pub mod kprobe_event {
3002        #[derive(
3003            Clone,
3004            Copy,
3005            Debug,
3006            PartialEq,
3007            Eq,
3008            Hash,
3009            PartialOrd,
3010            Ord,
3011            ::prost::Enumeration
3012        )]
3013        #[repr(i32)]
3014        pub enum KprobeType {
3015            Unknown = 0,
3016            Kprobe = 1,
3017            Kretprobe = 2,
3018            Both = 3,
3019        }
3020        impl KprobeType {
3021            /// String value of the enum field names used in the ProtoBuf definition.
3022            ///
3023            /// The values are not transformed in any way and thus are considered stable
3024            /// (if the ProtoBuf definition does not change) and safe for programmatic use.
3025            pub fn as_str_name(&self) -> &'static str {
3026                match self {
3027                    Self::Unknown => "KPROBE_TYPE_UNKNOWN",
3028                    Self::Kprobe => "KPROBE_TYPE_KPROBE",
3029                    Self::Kretprobe => "KPROBE_TYPE_KRETPROBE",
3030                    Self::Both => "KPROBE_TYPE_BOTH",
3031                }
3032            }
3033            /// Creates an enum from field names used in the ProtoBuf definition.
3034            pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3035                match value {
3036                    "KPROBE_TYPE_UNKNOWN" => Some(Self::Unknown),
3037                    "KPROBE_TYPE_KPROBE" => Some(Self::Kprobe),
3038                    "KPROBE_TYPE_KRETPROBE" => Some(Self::Kretprobe),
3039                    "KPROBE_TYPE_BOTH" => Some(Self::Both),
3040                    _ => None,
3041                }
3042            }
3043        }
3044    }
3045    /// Tracefs options to set directly in the tracefs instance. This is a very
3046    /// niche feature since almost all of the options deal with formatting textual
3047    /// output (the /trace file), which perfetto doesn't use.
3048    ///
3049    /// The options with a known use-case:
3050    /// * event-fork: when using `tids_to_trace` above, the kernel will
3051    ///    automatically add newly spawned descendant threads to the set of TIDs.
3052    ///
3053    /// Full list of options is available at
3054    /// <https://docs.kernel.org/trace/ftrace.html#trace-options.>
3055    ///
3056    /// Note: this is an exclusive feature, see:
3057    /// <https://perfetto.dev/docs/learning-more/android#exclusive-tracing-sessions.>
3058    ///
3059    /// Introduced in: perfetto v52.
3060    /// Supported on: Android 25Q3+.
3061    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3062    pub struct TracefsOption {
3063        /// The name of the tracefs option as found in tracefs/trace_options (without
3064        /// the "no" prefix).
3065        #[prost(string, optional, tag = "1")]
3066        pub name: ::core::option::Option<::prost::alloc::string::String>,
3067        #[prost(enumeration = "tracefs_option::State", optional, tag = "2")]
3068        pub state: ::core::option::Option<i32>,
3069    }
3070    /// Nested message and enum types in `TracefsOption`.
3071    pub mod tracefs_option {
3072        #[derive(
3073            Clone,
3074            Copy,
3075            Debug,
3076            PartialEq,
3077            Eq,
3078            Hash,
3079            PartialOrd,
3080            Ord,
3081            ::prost::Enumeration
3082        )]
3083        #[repr(i32)]
3084        pub enum State {
3085            Unknown = 0,
3086            Enabled = 1,
3087            Disabled = 2,
3088        }
3089        impl State {
3090            /// String value of the enum field names used in the ProtoBuf definition.
3091            ///
3092            /// The values are not transformed in any way and thus are considered stable
3093            /// (if the ProtoBuf definition does not change) and safe for programmatic use.
3094            pub fn as_str_name(&self) -> &'static str {
3095                match self {
3096                    Self::Unknown => "STATE_UNKNOWN",
3097                    Self::Enabled => "STATE_ENABLED",
3098                    Self::Disabled => "STATE_DISABLED",
3099                }
3100            }
3101            /// Creates an enum from field names used in the ProtoBuf definition.
3102            pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3103                match value {
3104                    "STATE_UNKNOWN" => Some(Self::Unknown),
3105                    "STATE_ENABLED" => Some(Self::Enabled),
3106                    "STATE_DISABLED" => Some(Self::Disabled),
3107                    _ => None,
3108                }
3109            }
3110        }
3111    }
3112    /// When symbolize_ksyms=true, determines whether the traced_probes daemon
3113    /// should keep the symbol map in memory (and reuse it for future tracing
3114    /// sessions) or clear it (saving memory) and re-create it on each tracing
3115    /// session (wasting cpu and wall time).
3116    /// The tradeoff is roughly:
3117    ///   KSYMS_RETAIN: pay a fixed ~1.2 MB cost after the first trace.
3118    ///   KSYMS_CLEANUP_ON_STOP: pay a ~300-500ms cost when starting each trace.
3119    /// Default behavior: KSYMS_CLEANUP_ON_STOP.
3120    #[derive(
3121        Clone,
3122        Copy,
3123        Debug,
3124        PartialEq,
3125        Eq,
3126        Hash,
3127        PartialOrd,
3128        Ord,
3129        ::prost::Enumeration
3130    )]
3131    #[repr(i32)]
3132    pub enum KsymsMemPolicy {
3133        KsymsUnspecified = 0,
3134        KsymsCleanupOnStop = 1,
3135        KsymsRetain = 2,
3136    }
3137    impl KsymsMemPolicy {
3138        /// String value of the enum field names used in the ProtoBuf definition.
3139        ///
3140        /// The values are not transformed in any way and thus are considered stable
3141        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
3142        pub fn as_str_name(&self) -> &'static str {
3143            match self {
3144                Self::KsymsUnspecified => "KSYMS_UNSPECIFIED",
3145                Self::KsymsCleanupOnStop => "KSYMS_CLEANUP_ON_STOP",
3146                Self::KsymsRetain => "KSYMS_RETAIN",
3147            }
3148        }
3149        /// Creates an enum from field names used in the ProtoBuf definition.
3150        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3151            match value {
3152                "KSYMS_UNSPECIFIED" => Some(Self::KsymsUnspecified),
3153                "KSYMS_CLEANUP_ON_STOP" => Some(Self::KsymsCleanupOnStop),
3154                "KSYMS_RETAIN" => Some(Self::KsymsRetain),
3155                _ => None,
3156            }
3157        }
3158    }
3159}
3160#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3161pub struct FrozenFtraceConfig {
3162    /// The instance name which stores the previous boot ftrace data. Required.
3163    #[prost(string, optional, tag = "1")]
3164    pub instance_name: ::core::option::Option<::prost::alloc::string::String>,
3165}
3166#[derive(Clone, PartialEq, ::prost::Message)]
3167pub struct GpuCounterConfig {
3168    /// Desired sampling interval for counters.
3169    #[prost(uint64, optional, tag = "1")]
3170    pub counter_period_ns: ::core::option::Option<u64>,
3171    /// List of counter IDs to be sampled.
3172    #[prost(uint32, repeated, packed = "false", tag = "2")]
3173    pub counter_ids: ::prost::alloc::vec::Vec<u32>,
3174    /// List of counter names to be sampled. Requires producer support; check
3175    /// GpuCounterDescriptor.supports_counter_names in the data source descriptor.
3176    /// Glob patterns may be used to match multiple counters by name; check
3177    /// GpuCounterDescriptor.supports_counter_name_globs for support.
3178    #[prost(string, repeated, tag = "6")]
3179    pub counter_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3180    /// Fix gpu clock rate during trace session.
3181    #[prost(bool, optional, tag = "4")]
3182    pub fix_gpu_clock: ::core::option::Option<bool>,
3183    /// Sample counters by instrumenting command buffers.
3184    #[prost(oneof = "gpu_counter_config::InstrumentedSamplingMode", tags = "3, 5")]
3185    pub instrumented_sampling_mode: ::core::option::Option<
3186        gpu_counter_config::InstrumentedSamplingMode,
3187    >,
3188}
3189/// Nested message and enum types in `GpuCounterConfig`.
3190pub mod gpu_counter_config {
3191    /// Configuration for sampling counters by instrumenting command buffers.
3192    ///
3193    /// When instrumented_sampling_config is used (instead of the
3194    /// instrumented_sampling bool), the following steps determine whether
3195    /// instrumented counters are enabled for a given GPU activity:
3196    ///
3197    /// 1. Activity name filtering: If activity_name_filters is non-empty, the
3198    ///     activity must match at least one filter. If empty, all activities
3199    ///     pass this step.
3200    /// 2. TX range filtering: If activity_tx_include_globs is non-empty, the
3201    ///     activity must fall within a matching TX range. Activities in TX
3202    ///     ranges matching activity_tx_exclude_globs are excluded (excludes
3203    ///     take precedence over includes). If both are empty, all activities
3204    ///     pass this step.
3205    /// 3. Range-based sampling: If activity_ranges is non-empty, only
3206    ///     activities within the specified skip/count ranges are instrumented.
3207    ///     If empty, all activities that passed the previous steps are
3208    ///     instrumented.
3209    #[derive(Clone, PartialEq, ::prost::Message)]
3210    pub struct InstrumentedSamplingConfig {
3211        /// GPU activity name filters. An activity matches if it matches any filter.
3212        #[prost(message, repeated, tag = "3")]
3213        pub activity_name_filters: ::prost::alloc::vec::Vec<
3214            instrumented_sampling_config::ActivityNameFilter,
3215        >,
3216        /// Glob patterns to use for including GPU activities in TX ranges. TX
3217        /// ranges are in-process annotations that mark different sections of GPU
3218        /// work (e.g. NVTX ranges for CUDA). TX ranges can be nested, and an
3219        /// activity is included if any range in its nesting hierarchy matches.
3220        /// Only activities that fall within a matching TX range will be
3221        /// instrumented.
3222        #[prost(string, repeated, tag = "6")]
3223        pub activity_tx_include_globs: ::prost::alloc::vec::Vec<
3224            ::prost::alloc::string::String,
3225        >,
3226        /// Glob patterns to use for excluding GPU activities from TX ranges.
3227        /// TX ranges can be nested, and an activity is excluded if any range
3228        /// in its nesting hierarchy matches. Excludes take precedence over
3229        /// includes.
3230        #[prost(string, repeated, tag = "7")]
3231        pub activity_tx_exclude_globs: ::prost::alloc::vec::Vec<
3232            ::prost::alloc::string::String,
3233        >,
3234        /// Ranges of GPU activities to instrument. Applied after activity name
3235        /// and TX range filters. If empty, all activities that passed the
3236        /// previous filters are instrumented.
3237        #[prost(message, repeated, tag = "5")]
3238        pub activity_ranges: ::prost::alloc::vec::Vec<
3239            instrumented_sampling_config::ActivityRange,
3240        >,
3241    }
3242    /// Nested message and enum types in `InstrumentedSamplingConfig`.
3243    pub mod instrumented_sampling_config {
3244        /// Filters GPU activities by name. Each filter specifies a glob pattern
3245        /// and the basis for matching (mangled or demangled kernel name).
3246        #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3247        pub struct ActivityNameFilter {
3248            /// required. Glob pattern to use for GPU activity name filtering.
3249            #[prost(string, optional, tag = "1")]
3250            pub name_glob: ::core::option::Option<::prost::alloc::string::String>,
3251            /// Basis for name filtering. Defaults to MANGLED_KERNEL_NAME if not
3252            /// specified.
3253            #[prost(enumeration = "activity_name_filter::NameBase", optional, tag = "2")]
3254            pub name_base: ::core::option::Option<i32>,
3255        }
3256        /// Nested message and enum types in `ActivityNameFilter`.
3257        pub mod activity_name_filter {
3258            #[derive(
3259                Clone,
3260                Copy,
3261                Debug,
3262                PartialEq,
3263                Eq,
3264                Hash,
3265                PartialOrd,
3266                Ord,
3267                ::prost::Enumeration
3268            )]
3269            #[repr(i32)]
3270            pub enum NameBase {
3271                /// Match against the mangled (compiler-encoded) kernel name.
3272                /// Example: for a kernel whose demangled name is
3273                /// "matmul(float*,int,int)", the mangled name might be
3274                /// "_Z6matmulPfii". The glob pattern is matched against this
3275                /// mangled form.
3276                MangledKernelName = 0,
3277                /// Match against the fully demangled kernel name, including
3278                /// parameters, templates, and qualifiers.
3279                /// Example: "matmul(float*,int,int)". The glob pattern is
3280                /// matched against this full demangled form.
3281                DemangledKernelName = 1,
3282                /// Match against only the function name portion of the
3283                /// demangled kernel name, without parameters, templates,
3284                /// return types, or namespaces.
3285                /// Example: "matmul". The glob pattern is matched against
3286                /// just the bare function name.
3287                FunctionName = 2,
3288            }
3289            impl NameBase {
3290                /// String value of the enum field names used in the ProtoBuf definition.
3291                ///
3292                /// The values are not transformed in any way and thus are considered stable
3293                /// (if the ProtoBuf definition does not change) and safe for programmatic use.
3294                pub fn as_str_name(&self) -> &'static str {
3295                    match self {
3296                        Self::MangledKernelName => "MANGLED_KERNEL_NAME",
3297                        Self::DemangledKernelName => "DEMANGLED_KERNEL_NAME",
3298                        Self::FunctionName => "FUNCTION_NAME",
3299                    }
3300                }
3301                /// Creates an enum from field names used in the ProtoBuf definition.
3302                pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3303                    match value {
3304                        "MANGLED_KERNEL_NAME" => Some(Self::MangledKernelName),
3305                        "DEMANGLED_KERNEL_NAME" => Some(Self::DemangledKernelName),
3306                        "FUNCTION_NAME" => Some(Self::FunctionName),
3307                        _ => None,
3308                    }
3309                }
3310            }
3311        }
3312        /// Defines a range of GPU activities to instrument.
3313        #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3314        pub struct ActivityRange {
3315            /// Number of GPU activities to skip before starting to instrument
3316            /// command buffers. Defaults to 0 if not specified.
3317            #[prost(uint32, optional, tag = "1")]
3318            pub skip: ::core::option::Option<u32>,
3319            /// Limit for the number of GPU activities to sample counters for by
3320            /// instrumenting command buffers. Defaults to UINT32_MAX (all
3321            /// remaining activities) if not specified.
3322            #[prost(uint32, optional, tag = "2")]
3323            pub count: ::core::option::Option<u32>,
3324        }
3325    }
3326    /// Sample counters by instrumenting command buffers.
3327    #[derive(Clone, PartialEq, ::prost::Oneof)]
3328    pub enum InstrumentedSamplingMode {
3329        #[prost(bool, tag = "3")]
3330        InstrumentedSampling(bool),
3331        #[prost(message, tag = "5")]
3332        InstrumentedSamplingConfig(InstrumentedSamplingConfig),
3333    }
3334}
3335#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3336pub struct VulkanMemoryConfig {
3337    /// Tracking driver memory usage events
3338    #[prost(bool, optional, tag = "1")]
3339    pub track_driver_memory_usage: ::core::option::Option<bool>,
3340    /// Tracking device memory usage events
3341    #[prost(bool, optional, tag = "2")]
3342    pub track_device_memory_usage: ::core::option::Option<bool>,
3343}
3344#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3345pub struct GpuRenderStagesConfig {
3346    /// Enable to separate the color and depth/stencil load and store stages
3347    /// into a separate stages. If disabled, the depth/stencil load and store
3348    /// stages will be combined.  Disabled by default. This option has no effect if
3349    /// Low Overhead mode is enabled.
3350    #[prost(bool, optional, tag = "1")]
3351    pub full_loadstore: ::core::option::Option<bool>,
3352    /// Use the low overhead mode for traces. In this mode render stages are
3353    /// combined into a single workload stage. This provides less granular data but
3354    /// induces minimal GPU overhead. Disabled by default.
3355    #[prost(bool, optional, tag = "2")]
3356    pub low_overhead: ::core::option::Option<bool>,
3357    /// Trace metrics to capture for each render stage
3358    #[prost(string, repeated, tag = "3")]
3359    pub trace_metrics: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3360}
3361/// WARNING: unmaintained and deprecated. Likely won't work at all on modern
3362/// systems.
3363#[derive(Clone, PartialEq, ::prost::Message)]
3364pub struct InodeFileConfig {
3365    /// How long to pause between batches.
3366    #[prost(uint32, optional, tag = "1")]
3367    pub scan_interval_ms: ::core::option::Option<u32>,
3368    /// How long to wait before the first scan in order to accumulate inodes.
3369    #[prost(uint32, optional, tag = "2")]
3370    pub scan_delay_ms: ::core::option::Option<u32>,
3371    /// How many inodes to scan in one batch.
3372    #[prost(uint32, optional, tag = "3")]
3373    pub scan_batch_size: ::core::option::Option<u32>,
3374    /// Do not scan for inodes not found in the static map.
3375    #[prost(bool, optional, tag = "4")]
3376    pub do_not_scan: ::core::option::Option<bool>,
3377    /// If non-empty, only scan inodes corresponding to block devices named in
3378    /// this list.
3379    #[prost(string, repeated, tag = "5")]
3380    pub scan_mount_points: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3381    /// When encountering an inode belonging to a block device corresponding
3382    /// to one of the mount points in this map, scan its scan_roots instead.
3383    #[prost(message, repeated, tag = "6")]
3384    pub mount_point_mapping: ::prost::alloc::vec::Vec<
3385        inode_file_config::MountPointMappingEntry,
3386    >,
3387}
3388/// Nested message and enum types in `InodeFileConfig`.
3389pub mod inode_file_config {
3390    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3391    pub struct MountPointMappingEntry {
3392        #[prost(string, optional, tag = "1")]
3393        pub mountpoint: ::core::option::Option<::prost::alloc::string::String>,
3394        #[prost(string, repeated, tag = "2")]
3395        pub scan_roots: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3396    }
3397}
3398#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3399pub struct ConsoleConfig {
3400    #[prost(enumeration = "console_config::Output", optional, tag = "1")]
3401    pub output: ::core::option::Option<i32>,
3402    #[prost(bool, optional, tag = "2")]
3403    pub enable_colors: ::core::option::Option<bool>,
3404}
3405/// Nested message and enum types in `ConsoleConfig`.
3406pub mod console_config {
3407    #[derive(
3408        Clone,
3409        Copy,
3410        Debug,
3411        PartialEq,
3412        Eq,
3413        Hash,
3414        PartialOrd,
3415        Ord,
3416        ::prost::Enumeration
3417    )]
3418    #[repr(i32)]
3419    pub enum Output {
3420        Unspecified = 0,
3421        Stdout = 1,
3422        Stderr = 2,
3423    }
3424    impl Output {
3425        /// String value of the enum field names used in the ProtoBuf definition.
3426        ///
3427        /// The values are not transformed in any way and thus are considered stable
3428        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
3429        pub fn as_str_name(&self) -> &'static str {
3430            match self {
3431                Self::Unspecified => "OUTPUT_UNSPECIFIED",
3432                Self::Stdout => "OUTPUT_STDOUT",
3433                Self::Stderr => "OUTPUT_STDERR",
3434            }
3435        }
3436        /// Creates an enum from field names used in the ProtoBuf definition.
3437        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3438            match value {
3439                "OUTPUT_UNSPECIFIED" => Some(Self::Unspecified),
3440                "OUTPUT_STDOUT" => Some(Self::Stdout),
3441                "OUTPUT_STDERR" => Some(Self::Stderr),
3442                _ => None,
3443            }
3444        }
3445    }
3446}
3447/// Configuration for trace packet interception. Used for diverting trace data to
3448/// non-Perfetto sources (e.g., logging to the console, ETW) when using the
3449/// Perfetto SDK.
3450#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3451pub struct InterceptorConfig {
3452    /// Matches the name given to RegisterInterceptor().
3453    #[prost(string, optional, tag = "1")]
3454    pub name: ::core::option::Option<::prost::alloc::string::String>,
3455    #[prost(message, optional, tag = "100")]
3456    pub console_config: ::core::option::Option<ConsoleConfig>,
3457}
3458#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3459pub struct AndroidPowerConfig {
3460    #[prost(uint32, optional, tag = "1")]
3461    pub battery_poll_ms: ::core::option::Option<u32>,
3462    #[prost(
3463        enumeration = "android_power_config::BatteryCounters",
3464        repeated,
3465        packed = "false",
3466        tag = "2"
3467    )]
3468    pub battery_counters: ::prost::alloc::vec::Vec<i32>,
3469    /// Where available enables per-power-rail measurements.
3470    #[prost(bool, optional, tag = "3")]
3471    pub collect_power_rails: ::core::option::Option<bool>,
3472    /// Provides a breakdown of energy estimation for various subsystem (e.g. GPU).
3473    /// Available from Android S.
3474    #[prost(bool, optional, tag = "4")]
3475    pub collect_energy_estimation_breakdown: ::core::option::Option<bool>,
3476    /// Provides a breakdown of time in state for various subsystems.
3477    /// Available from Android U.
3478    #[prost(bool, optional, tag = "5")]
3479    pub collect_entity_state_residency: ::core::option::Option<bool>,
3480}
3481/// Nested message and enum types in `AndroidPowerConfig`.
3482pub mod android_power_config {
3483    #[derive(
3484        Clone,
3485        Copy,
3486        Debug,
3487        PartialEq,
3488        Eq,
3489        Hash,
3490        PartialOrd,
3491        Ord,
3492        ::prost::Enumeration
3493    )]
3494    #[repr(i32)]
3495    pub enum BatteryCounters {
3496        BatteryCounterUnspecified = 0,
3497        /// Coulomb counter.
3498        BatteryCounterCharge = 1,
3499        /// Charge (%).
3500        BatteryCounterCapacityPercent = 2,
3501        /// Instantaneous current.
3502        BatteryCounterCurrent = 3,
3503        /// Avg current.
3504        BatteryCounterCurrentAvg = 4,
3505        /// Instantaneous voltage.
3506        BatteryCounterVoltage = 5,
3507    }
3508    impl BatteryCounters {
3509        /// String value of the enum field names used in the ProtoBuf definition.
3510        ///
3511        /// The values are not transformed in any way and thus are considered stable
3512        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
3513        pub fn as_str_name(&self) -> &'static str {
3514            match self {
3515                Self::BatteryCounterUnspecified => "BATTERY_COUNTER_UNSPECIFIED",
3516                Self::BatteryCounterCharge => "BATTERY_COUNTER_CHARGE",
3517                Self::BatteryCounterCapacityPercent => "BATTERY_COUNTER_CAPACITY_PERCENT",
3518                Self::BatteryCounterCurrent => "BATTERY_COUNTER_CURRENT",
3519                Self::BatteryCounterCurrentAvg => "BATTERY_COUNTER_CURRENT_AVG",
3520                Self::BatteryCounterVoltage => "BATTERY_COUNTER_VOLTAGE",
3521            }
3522        }
3523        /// Creates an enum from field names used in the ProtoBuf definition.
3524        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3525            match value {
3526                "BATTERY_COUNTER_UNSPECIFIED" => Some(Self::BatteryCounterUnspecified),
3527                "BATTERY_COUNTER_CHARGE" => Some(Self::BatteryCounterCharge),
3528                "BATTERY_COUNTER_CAPACITY_PERCENT" => {
3529                    Some(Self::BatteryCounterCapacityPercent)
3530                }
3531                "BATTERY_COUNTER_CURRENT" => Some(Self::BatteryCounterCurrent),
3532                "BATTERY_COUNTER_CURRENT_AVG" => Some(Self::BatteryCounterCurrentAvg),
3533                "BATTERY_COUNTER_VOLTAGE" => Some(Self::BatteryCounterVoltage),
3534                _ => None,
3535            }
3536        }
3537    }
3538}
3539#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3540pub struct ProtoVmConfig {
3541    #[prost(uint32, optional, tag = "1")]
3542    pub memory_limit_kb: ::core::option::Option<u32>,
3543}
3544/// This enum is obtained by post-processing
3545/// AOSP/frameworks/proto_logging/stats/atoms.proto through
3546/// AOSP/external/perfetto/tools/update-statsd-descriptor, which extracts one
3547/// enum value for each proto field defined in the upstream atoms.proto.
3548#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3549#[repr(i32)]
3550pub enum AtomId {
3551    AtomUnspecified = 0,
3552    AtomBleScanStateChanged = 2,
3553    AtomProcessStateChanged = 3,
3554    AtomBleScanResultReceived = 4,
3555    AtomSensorStateChanged = 5,
3556    AtomGpsScanStateChanged = 6,
3557    AtomSyncStateChanged = 7,
3558    AtomScheduledJobStateChanged = 8,
3559    AtomScreenBrightnessChanged = 9,
3560    AtomWakelockStateChanged = 10,
3561    AtomLongPartialWakelockStateChanged = 11,
3562    AtomMobileRadioPowerStateChanged = 12,
3563    AtomWifiRadioPowerStateChanged = 13,
3564    AtomActivityManagerSleepStateChanged = 14,
3565    AtomMemoryFactorStateChanged = 15,
3566    AtomExcessiveCpuUsageReported = 16,
3567    AtomCachedKillReported = 17,
3568    AtomProcessMemoryStatReported = 18,
3569    AtomLauncherEvent = 19,
3570    AtomBatterySaverModeStateChanged = 20,
3571    AtomDeviceIdleModeStateChanged = 21,
3572    AtomDeviceIdlingModeStateChanged = 22,
3573    AtomAudioStateChanged = 23,
3574    AtomMediaCodecStateChanged = 24,
3575    AtomCameraStateChanged = 25,
3576    AtomFlashlightStateChanged = 26,
3577    AtomUidProcessStateChanged = 27,
3578    AtomProcessLifeCycleStateChanged = 28,
3579    AtomScreenStateChanged = 29,
3580    AtomBatteryLevelChanged = 30,
3581    AtomChargingStateChanged = 31,
3582    AtomPluggedStateChanged = 32,
3583    AtomInteractiveStateChanged = 33,
3584    AtomTouchEventReported = 34,
3585    AtomWakeupAlarmOccurred = 35,
3586    AtomKernelWakeupReported = 36,
3587    AtomWifiLockStateChanged = 37,
3588    AtomWifiSignalStrengthChanged = 38,
3589    AtomWifiScanStateChanged = 39,
3590    AtomPhoneSignalStrengthChanged = 40,
3591    AtomSettingChanged = 41,
3592    AtomActivityForegroundStateChanged = 42,
3593    AtomIsolatedUidChanged = 43,
3594    AtomPacketWakeupOccurred = 44,
3595    AtomWallClockTimeShifted = 45,
3596    AtomAnomalyDetected = 46,
3597    AtomAppBreadcrumbReported = 47,
3598    AtomAppStartOccurred = 48,
3599    AtomAppStartCanceled = 49,
3600    AtomAppStartFullyDrawn = 50,
3601    AtomLmkKillOccurred = 51,
3602    AtomPictureInPictureStateChanged = 52,
3603    AtomWifiMulticastLockStateChanged = 53,
3604    AtomAppStartMemoryStateCaptured = 55,
3605    AtomShutdownSequenceReported = 56,
3606    AtomBootSequenceReported = 57,
3607    AtomOverlayStateChanged = 59,
3608    AtomForegroundServiceStateChanged = 60,
3609    AtomCallStateChanged = 61,
3610    AtomKeyguardStateChanged = 62,
3611    AtomKeyguardBouncerStateChanged = 63,
3612    AtomKeyguardBouncerPasswordEntered = 64,
3613    AtomAppDied = 65,
3614    AtomResourceConfigurationChanged = 66,
3615    AtomBluetoothEnabledStateChanged = 67,
3616    AtomBluetoothConnectionStateChanged = 68,
3617    AtomGpsSignalQualityChanged = 69,
3618    AtomUsbConnectorStateChanged = 70,
3619    AtomSpeakerImpedanceReported = 71,
3620    AtomHardwareFailed = 72,
3621    AtomPhysicalDropDetected = 73,
3622    AtomChargeCyclesReported = 74,
3623    AtomMobileConnectionStateChanged = 75,
3624    AtomMobileRadioTechnologyChanged = 76,
3625    AtomUsbDeviceAttached = 77,
3626    AtomAppCrashOccurred = 78,
3627    AtomAnrOccurred = 79,
3628    AtomWtfOccurred = 80,
3629    AtomLowMemReported = 81,
3630    AtomGenericAtom = 82,
3631    AtomVibratorStateChanged = 84,
3632    AtomDeferredJobStatsReported = 85,
3633    AtomThermalThrottling = 86,
3634    AtomBiometricAcquired = 87,
3635    AtomBiometricAuthenticated = 88,
3636    AtomBiometricErrorOccurred = 89,
3637    AtomUiEventReported = 90,
3638    AtomBatteryHealthSnapshot = 91,
3639    AtomSlowIo = 92,
3640    AtomBatteryCausedShutdown = 93,
3641    AtomPhoneServiceStateChanged = 94,
3642    AtomPhoneStateChanged = 95,
3643    AtomUserRestrictionChanged = 96,
3644    AtomSettingsUiChanged = 97,
3645    AtomConnectivityStateChanged = 98,
3646    AtomServiceStateChanged = 99,
3647    AtomServiceLaunchReported = 100,
3648    AtomFlagFlipUpdateOccurred = 101,
3649    AtomBinaryPushStateChanged = 102,
3650    AtomDevicePolicyEvent = 103,
3651    AtomDocsUiFileOpCanceled = 104,
3652    AtomDocsUiFileOpCopyMoveModeReported = 105,
3653    AtomDocsUiFileOpFailure = 106,
3654    AtomDocsUiProviderFileOp = 107,
3655    AtomDocsUiInvalidScopedAccessRequest = 108,
3656    AtomDocsUiLaunchReported = 109,
3657    AtomDocsUiRootVisited = 110,
3658    AtomDocsUiStartupMs = 111,
3659    AtomDocsUiUserActionReported = 112,
3660    AtomWifiEnabledStateChanged = 113,
3661    AtomWifiRunningStateChanged = 114,
3662    AtomAppCompacted = 115,
3663    AtomNetworkDnsEventReported = 116,
3664    AtomDocsUiPickerLaunchedFromReported = 117,
3665    AtomDocsUiPickResultReported = 118,
3666    AtomDocsUiSearchModeReported = 119,
3667    AtomDocsUiSearchTypeReported = 120,
3668    AtomDataStallEvent = 121,
3669    AtomRescuePartyResetReported = 122,
3670    AtomSignedConfigReported = 123,
3671    AtomGnssNiEventReported = 124,
3672    AtomBluetoothLinkLayerConnectionEvent = 125,
3673    AtomBluetoothAclConnectionStateChanged = 126,
3674    AtomBluetoothScoConnectionStateChanged = 127,
3675    AtomAppDowngraded = 128,
3676    AtomAppOptimizedAfterDowngraded = 129,
3677    AtomLowStorageStateChanged = 130,
3678    AtomGnssNfwNotificationReported = 131,
3679    AtomGnssConfigurationReported = 132,
3680    AtomUsbPortOverheatEventReported = 133,
3681    AtomNfcErrorOccurred = 134,
3682    AtomNfcStateChanged = 135,
3683    AtomNfcBeamOccurred = 136,
3684    AtomNfcCardemulationOccurred = 137,
3685    AtomNfcTagOccurred = 138,
3686    AtomNfcHceTransactionOccurred = 139,
3687    AtomSeStateChanged = 140,
3688    AtomSeOmapiReported = 141,
3689    AtomBroadcastDispatchLatencyReported = 142,
3690    AtomAttentionManagerServiceResultReported = 143,
3691    AtomAdbConnectionChanged = 144,
3692    AtomSpeechDspStatReported = 145,
3693    AtomUsbContaminantReported = 146,
3694    AtomWatchdogRollbackOccurred = 147,
3695    AtomBiometricSystemHealthIssueDetected = 148,
3696    AtomBubbleUiChanged = 149,
3697    AtomScheduledJobConstraintChanged = 150,
3698    AtomBluetoothActiveDeviceChanged = 151,
3699    AtomBluetoothA2dpPlaybackStateChanged = 152,
3700    AtomBluetoothA2dpCodecConfigChanged = 153,
3701    AtomBluetoothA2dpCodecCapabilityChanged = 154,
3702    AtomBluetoothA2dpAudioUnderrunReported = 155,
3703    AtomBluetoothA2dpAudioOverrunReported = 156,
3704    AtomBluetoothDeviceRssiReported = 157,
3705    AtomBluetoothDeviceFailedContactCounterReported = 158,
3706    AtomBluetoothDeviceTxPowerLevelReported = 159,
3707    AtomBluetoothHciTimeoutReported = 160,
3708    AtomBluetoothQualityReportReported = 161,
3709    AtomBluetoothDeviceInfoReported = 162,
3710    AtomBluetoothRemoteVersionInfoReported = 163,
3711    AtomBluetoothSdpAttributeReported = 164,
3712    AtomBluetoothBondStateChanged = 165,
3713    AtomBluetoothClassicPairingEventReported = 166,
3714    AtomBluetoothSmpPairingEventReported = 167,
3715    AtomScreenTimeoutExtensionReported = 168,
3716    AtomProcessStartTime = 169,
3717    AtomPermissionGrantRequestResultReported = 170,
3718    AtomBluetoothSocketConnectionStateChanged = 171,
3719    AtomDeviceIdentifierAccessDenied = 172,
3720    AtomBubbleDeveloperErrorReported = 173,
3721    AtomAssistGestureStageReported = 174,
3722    AtomAssistGestureFeedbackReported = 175,
3723    AtomAssistGestureProgressReported = 176,
3724    AtomTouchGestureClassified = 177,
3725    AtomHiddenApiUsed = 178,
3726    AtomStyleUiChanged = 179,
3727    AtomPrivacyIndicatorsInteracted = 180,
3728    AtomAppInstallOnExternalStorageReported = 181,
3729    AtomNetworkStackReported = 182,
3730    AtomAppMovedStorageReported = 183,
3731    AtomBiometricEnrolled = 184,
3732    AtomSystemServerWatchdogOccurred = 185,
3733    AtomTombStoneOccurred = 186,
3734    AtomBluetoothClassOfDeviceReported = 187,
3735    AtomIntelligenceEventReported = 188,
3736    AtomThermalThrottlingSeverityStateChanged = 189,
3737    AtomRoleRequestResultReported = 190,
3738    AtomMediametricsAudiopolicyReported = 191,
3739    AtomMediametricsAudiorecordReported = 192,
3740    AtomMediametricsAudiothreadReported = 193,
3741    AtomMediametricsAudiotrackReported = 194,
3742    AtomMediametricsCodecReported = 195,
3743    AtomMediametricsDrmWidevineReported = 196,
3744    AtomMediametricsExtractorReported = 197,
3745    AtomMediametricsMediadrmReported = 198,
3746    AtomMediametricsNuplayerReported = 199,
3747    AtomMediametricsRecorderReported = 200,
3748    AtomMediametricsDrmmanagerReported = 201,
3749    AtomCarPowerStateChanged = 203,
3750    AtomGarageModeInfo = 204,
3751    AtomTestAtomReported = 205,
3752    AtomContentCaptureCallerMismatchReported = 206,
3753    AtomContentCaptureServiceEvents = 207,
3754    AtomContentCaptureSessionEvents = 208,
3755    AtomContentCaptureFlushed = 209,
3756    AtomLocationManagerApiUsageReported = 210,
3757    AtomReviewPermissionsFragmentResultReported = 211,
3758    AtomRuntimePermissionsUpgradeResult = 212,
3759    AtomGrantPermissionsActivityButtonActions = 213,
3760    AtomLocationAccessCheckNotificationAction = 214,
3761    AtomAppPermissionFragmentActionReported = 215,
3762    AtomAppPermissionFragmentViewed = 216,
3763    AtomAppPermissionsFragmentViewed = 217,
3764    AtomPermissionAppsFragmentViewed = 218,
3765    AtomTextSelectionEvent = 219,
3766    AtomTextLinkifyEvent = 220,
3767    AtomConversationActionsEvent = 221,
3768    AtomLanguageDetectionEvent = 222,
3769    AtomExclusionRectStateChanged = 223,
3770    AtomBackGestureReportedReported = 224,
3771    AtomUpdateEngineUpdateAttemptReported = 225,
3772    AtomUpdateEngineSuccessfulUpdateReported = 226,
3773    AtomCameraActionEvent = 227,
3774    AtomAppCompatibilityChangeReported = 228,
3775    AtomPerfettoUploaded = 229,
3776    AtomVmsClientConnectionStateChanged = 230,
3777    AtomMediaProviderScanOccurred = 233,
3778    AtomMediaContentDeleted = 234,
3779    AtomMediaProviderPermissionRequested = 235,
3780    AtomMediaProviderSchemaChanged = 236,
3781    AtomMediaProviderIdleMaintenanceFinished = 237,
3782    AtomRebootEscrowRecoveryReported = 238,
3783    AtomBootTimeEventDurationReported = 239,
3784    AtomBootTimeEventElapsedTimeReported = 240,
3785    AtomBootTimeEventUtcTimeReported = 241,
3786    AtomBootTimeEventErrorCodeReported = 242,
3787    AtomUserspaceRebootReported = 243,
3788    AtomNotificationReported = 244,
3789    AtomNotificationPanelReported = 245,
3790    AtomNotificationChannelModified = 246,
3791    AtomIntegrityCheckResultReported = 247,
3792    AtomIntegrityRulesPushed = 248,
3793    AtomCbMessageReported = 249,
3794    AtomCbMessageError = 250,
3795    AtomWifiHealthStatReported = 251,
3796    AtomWifiFailureStatReported = 252,
3797    AtomWifiConnectionResultReported = 253,
3798    AtomAppFreezeChanged = 254,
3799    AtomSnapshotMergeReported = 255,
3800    AtomForegroundServiceAppOpSessionEnded = 256,
3801    AtomDisplayJankReported = 257,
3802    AtomAppStandbyBucketChanged = 258,
3803    AtomSharesheetStarted = 259,
3804    AtomRankingSelected = 260,
3805    AtomTvsettingsUiInteracted = 261,
3806    AtomLauncherSnapshot = 262,
3807    AtomPackageInstallerV2Reported = 263,
3808    AtomUserLifecycleJourneyReported = 264,
3809    AtomUserLifecycleEventOccurred = 265,
3810    AtomAccessibilityShortcutReported = 266,
3811    AtomAccessibilityServiceReported = 267,
3812    AtomDocsUiDragAndDropReported = 268,
3813    AtomAppUsageEventOccurred = 269,
3814    AtomAutoRevokeNotificationClicked = 270,
3815    AtomAutoRevokeFragmentAppViewed = 271,
3816    AtomAutoRevokedAppInteraction = 272,
3817    AtomAppPermissionGroupsFragmentAutoRevokeAction = 273,
3818    AtomEvsUsageStatsReported = 274,
3819    AtomAudioPowerUsageDataReported = 275,
3820    AtomTvTunerStateChanged = 276,
3821    AtomMediaoutputOpSwitchReported = 277,
3822    AtomCbMessageFiltered = 278,
3823    AtomTvTunerDvrStatus = 279,
3824    AtomTvCasSessionOpenStatus = 280,
3825    AtomAssistantInvocationReported = 281,
3826    AtomDisplayWakeReported = 282,
3827    AtomCarUserHalModifyUserRequestReported = 283,
3828    AtomCarUserHalModifyUserResponseReported = 284,
3829    AtomCarUserHalPostSwitchResponseReported = 285,
3830    AtomCarUserHalInitialUserInfoRequestReported = 286,
3831    AtomCarUserHalInitialUserInfoResponseReported = 287,
3832    AtomCarUserHalUserAssociationRequestReported = 288,
3833    AtomCarUserHalSetUserAssociationResponseReported = 289,
3834    AtomNetworkIpProvisioningReported = 290,
3835    AtomNetworkDhcpRenewReported = 291,
3836    AtomNetworkValidationReported = 292,
3837    AtomNetworkStackQuirkReported = 293,
3838    AtomMediametricsAudiorecorddeviceusageReported = 294,
3839    AtomMediametricsAudiothreaddeviceusageReported = 295,
3840    AtomMediametricsAudiotrackdeviceusageReported = 296,
3841    AtomMediametricsAudiodeviceconnectionReported = 297,
3842    AtomBlobCommitted = 298,
3843    AtomBlobLeased = 299,
3844    AtomBlobOpened = 300,
3845    AtomContactsProviderStatusReported = 301,
3846    AtomKeystoreKeyEventReported = 302,
3847    AtomNetworkTetheringReported = 303,
3848    AtomImeTouchReported = 304,
3849    AtomUiInteractionFrameInfoReported = 305,
3850    AtomUiActionLatencyReported = 306,
3851    AtomWifiDisconnectReported = 307,
3852    AtomWifiConnectionStateChanged = 308,
3853    AtomHdmiCecActiveSourceChanged = 309,
3854    AtomHdmiCecMessageReported = 310,
3855    AtomAirplaneMode = 311,
3856    AtomModemRestart = 312,
3857    AtomCarrierIdMismatchReported = 313,
3858    AtomCarrierIdTableUpdated = 314,
3859    AtomDataStallRecoveryReported = 315,
3860    AtomMediametricsMediaparserReported = 316,
3861    AtomTlsHandshakeReported = 317,
3862    AtomTextClassifierApiUsageReported = 318,
3863    AtomCarWatchdogKillStatsReported = 319,
3864    AtomMediametricsPlaybackReported = 320,
3865    AtomMediaNetworkInfoChanged = 321,
3866    AtomMediaPlaybackStateChanged = 322,
3867    AtomMediaPlaybackErrorReported = 323,
3868    AtomMediaPlaybackTrackChanged = 324,
3869    AtomWifiScanReported = 325,
3870    AtomWifiPnoScanReported = 326,
3871    AtomTifTuneChanged = 327,
3872    AtomAutoRotateReported = 328,
3873    AtomPerfettoTrigger = 329,
3874    AtomTranscodingData = 330,
3875    AtomImsServiceEntitlementUpdated = 331,
3876    AtomDeviceRotated = 333,
3877    AtomSimSpecificSettingsRestored = 334,
3878    AtomTextClassifierDownloadReported = 335,
3879    AtomPinStorageEvent = 336,
3880    AtomFaceDownReported = 337,
3881    AtomBluetoothHalCrashReasonReported = 338,
3882    AtomRebootEscrowPreparationReported = 339,
3883    AtomRebootEscrowLskfCaptureReported = 340,
3884    AtomRebootEscrowRebootReported = 341,
3885    AtomBinderLatencyReported = 342,
3886    AtomMediametricsAaudiostreamReported = 343,
3887    AtomMediaTranscodingSessionEnded = 344,
3888    AtomMagnificationUsageReported = 345,
3889    AtomMagnificationModeWithImeOnReported = 346,
3890    AtomAppSearchCallStatsReported = 347,
3891    AtomAppSearchPutDocumentStatsReported = 348,
3892    AtomDeviceControlChanged = 349,
3893    AtomDeviceStateChanged = 350,
3894    AtomInputdeviceRegistered = 351,
3895    AtomSmartspaceCardReported = 352,
3896    AtomAuthPromptAuthenticateInvoked = 353,
3897    AtomAuthManagerCanAuthenticateInvoked = 354,
3898    AtomAuthEnrollActionInvoked = 355,
3899    AtomAuthDeprecatedApiUsed = 356,
3900    AtomUnattendedRebootOccurred = 357,
3901    AtomLongRebootBlockingReported = 358,
3902    AtomLocationTimeZoneProviderStateChanged = 359,
3903    AtomFdtrackEventOccurred = 364,
3904    AtomTimeoutAutoExtendedReported = 365,
3905    AtomAlarmBatchDelivered = 367,
3906    AtomAlarmScheduled = 368,
3907    AtomCarWatchdogIoOveruseStatsReported = 369,
3908    AtomUserLevelHibernationStateChanged = 370,
3909    AtomAppSearchInitializeStatsReported = 371,
3910    AtomAppSearchQueryStatsReported = 372,
3911    AtomAppProcessDied = 373,
3912    AtomNetworkIpReachabilityMonitorReported = 374,
3913    AtomSlowInputEventReported = 375,
3914    AtomAnrOccurredProcessingStarted = 376,
3915    AtomAppSearchRemoveStatsReported = 377,
3916    AtomMediaCodecReported = 378,
3917    AtomPermissionUsageFragmentInteraction = 379,
3918    AtomPermissionDetailsInteraction = 380,
3919    AtomPrivacySensorToggleInteraction = 381,
3920    AtomPrivacyToggleDialogInteraction = 382,
3921    AtomAppSearchOptimizeStatsReported = 383,
3922    AtomNonA11yToolServiceWarningReport = 384,
3923    AtomAppCompatStateChanged = 386,
3924    AtomSizeCompatRestartButtonEventReported = 387,
3925    AtomSplitscreenUiChanged = 388,
3926    AtomNetworkDnsHandshakeReported = 389,
3927    AtomBluetoothCodePathCounter = 390,
3928    AtomBluetoothLeBatchScanReportDelay = 392,
3929    AtomAccessibilityFloatingMenuUiChanged = 393,
3930    AtomNeuralnetworksCompilationCompleted = 394,
3931    AtomNeuralnetworksExecutionCompleted = 395,
3932    AtomNeuralnetworksCompilationFailed = 396,
3933    AtomNeuralnetworksExecutionFailed = 397,
3934    AtomContextHubBooted = 398,
3935    AtomContextHubRestarted = 399,
3936    AtomContextHubLoadedNanoappSnapshotReported = 400,
3937    AtomChreCodeDownloadTransacted = 401,
3938    AtomUwbSessionInited = 402,
3939    AtomUwbSessionClosed = 403,
3940    AtomUwbFirstRangingReceived = 404,
3941    AtomUwbRangingMeasurementReceived = 405,
3942    AtomTextClassifierDownloadWorkScheduled = 406,
3943    AtomTextClassifierDownloadWorkCompleted = 407,
3944    AtomClipboardCleared = 408,
3945    AtomVmCreationRequested = 409,
3946    AtomNearbyDeviceScanStateChanged = 410,
3947    AtomApplicationLocalesChanged = 412,
3948    AtomMediametricsAudiotrackstatusReported = 413,
3949    AtomFoldStateDurationReported = 414,
3950    AtomLocationTimeZoneProviderControllerStateChanged = 415,
3951    AtomDisplayHbmStateChanged = 416,
3952    AtomDisplayHbmBrightnessChanged = 417,
3953    AtomPersistentUriPermissionsFlushed = 418,
3954    AtomEarlyBootCompOsArtifactsCheckReported = 419,
3955    AtomVbmetaDigestReported = 420,
3956    AtomApexInfoGathered = 421,
3957    AtomPvmInfoGathered = 422,
3958    AtomWearSettingsUiInteracted = 423,
3959    AtomTracingServiceReportEvent = 424,
3960    AtomMediametricsAudiorecordstatusReported = 425,
3961    AtomLauncherLatency = 426,
3962    AtomDropboxEntryDropped = 427,
3963    AtomWifiP2pConnectionReported = 428,
3964    AtomGameStateChanged = 429,
3965    AtomHotwordDetectorCreateRequested = 430,
3966    AtomHotwordDetectionServiceInitResultReported = 431,
3967    AtomHotwordDetectionServiceRestarted = 432,
3968    AtomHotwordDetectorKeyphraseTriggered = 433,
3969    AtomHotwordDetectorEvents = 434,
3970    AtomBootCompletedBroadcastCompletionLatencyReported = 437,
3971    AtomContactsIndexerUpdateStatsReported = 440,
3972    AtomAppBackgroundRestrictionsInfo = 441,
3973    AtomMmsSmsProviderGetThreadIdFailed = 442,
3974    AtomMmsSmsDatabaseHelperOnUpgradeFailed = 443,
3975    AtomPermissionReminderNotificationInteracted = 444,
3976    AtomRecentPermissionDecisionsInteracted = 445,
3977    AtomGnssPsdsDownloadReported = 446,
3978    AtomLeAudioConnectionSessionReported = 447,
3979    AtomLeAudioBroadcastSessionReported = 448,
3980    AtomDreamUiEventReported = 449,
3981    AtomTaskManagerEventReported = 450,
3982    AtomCdmAssociationAction = 451,
3983    AtomMagnificationTripleTapAndHoldActivatedSessionReported = 452,
3984    AtomMagnificationFollowTypingFocusActivatedSessionReported = 453,
3985    AtomAccessibilityTextReadingOptionsChanged = 454,
3986    AtomWifiSetupFailureCrashReported = 455,
3987    AtomUwbDeviceErrorReported = 456,
3988    AtomIsolatedCompilationScheduled = 457,
3989    AtomIsolatedCompilationEnded = 458,
3990    AtomOnsOpportunisticEsimProvisioningComplete = 459,
3991    AtomSystemServerPreWatchdogOccurred = 460,
3992    AtomTelephonyAnomalyDetected = 461,
3993    AtomLetterboxPositionChanged = 462,
3994    AtomRemoteKeyProvisioningAttempt = 463,
3995    AtomRemoteKeyProvisioningNetworkInfo = 464,
3996    AtomRemoteKeyProvisioningTiming = 465,
3997    AtomMediaoutputOpInteractionReport = 466,
3998    AtomSyncExemptionOccurred = 468,
3999    AtomAutofillPresentationEventReported = 469,
4000    AtomDockStateChanged = 470,
4001    AtomSafetySourceStateCollected = 471,
4002    AtomSafetyCenterSystemEventReported = 472,
4003    AtomSafetyCenterInteractionReported = 473,
4004    AtomSettingsProviderSettingChanged = 474,
4005    AtomBroadcastDeliveryEventReported = 475,
4006    AtomServiceRequestEventReported = 476,
4007    AtomProviderAcquisitionEventReported = 477,
4008    AtomBluetoothDeviceNameReported = 478,
4009    AtomCbConfigUpdated = 479,
4010    AtomCbModuleErrorReported = 480,
4011    AtomCbServiceFeatureChanged = 481,
4012    AtomCbReceiverFeatureChanged = 482,
4013    AtomPrivacySignalNotificationInteraction = 484,
4014    AtomPrivacySignalIssueCardInteraction = 485,
4015    AtomPrivacySignalsJobFailure = 486,
4016    AtomVibrationReported = 487,
4017    AtomUwbRangingStart = 489,
4018    AtomAppCompactedV2 = 491,
4019    AtomDisplayBrightnessChanged = 494,
4020    AtomActivityActionBlocked = 495,
4021    AtomNetworkDnsServerSupportReported = 504,
4022    AtomVmBooted = 505,
4023    AtomVmExited = 506,
4024    AtomAmbientBrightnessStatsReported = 507,
4025    AtomMediametricsSpatializercapabilitiesReported = 508,
4026    AtomMediametricsSpatializerdeviceenabledReported = 509,
4027    AtomMediametricsHeadtrackerdeviceenabledReported = 510,
4028    AtomMediametricsHeadtrackerdevicesupportedReported = 511,
4029    AtomHearingAidInfoReported = 513,
4030    AtomDeviceWideJobConstraintChanged = 514,
4031    AtomAmbientModeChanged = 515,
4032    AtomAnrLatencyReported = 516,
4033    AtomResourceApiInfo = 517,
4034    AtomSystemDefaultNetworkChanged = 518,
4035    AtomIwlanSetupDataCallResultReported = 519,
4036    AtomIwlanPdnDisconnectedReasonReported = 520,
4037    AtomAirplaneModeSessionReported = 521,
4038    AtomVmCpuStatusReported = 522,
4039    AtomVmMemStatusReported = 523,
4040    AtomPackageInstallationSessionReported = 524,
4041    AtomDefaultNetworkRematchInfo = 525,
4042    AtomNetworkSelectionPerformance = 526,
4043    AtomNetworkNsdReported = 527,
4044    AtomBluetoothDisconnectionReasonReported = 529,
4045    AtomBluetoothLocalVersionsReported = 530,
4046    AtomBluetoothRemoteSupportedFeaturesReported = 531,
4047    AtomBluetoothLocalSupportedFeaturesReported = 532,
4048    AtomBluetoothGattAppInfo = 533,
4049    AtomBrightnessConfigurationUpdated = 534,
4050    AtomWearMediaOutputSwitcherLaunched = 538,
4051    AtomWearMediaOutputSwitcherFinished = 539,
4052    AtomWearMediaOutputSwitcherConnectionReported = 540,
4053    AtomWearMediaOutputSwitcherDeviceScanTriggered = 541,
4054    AtomWearMediaOutputSwitcherFirstDeviceScanLatency = 542,
4055    AtomWearMediaOutputSwitcherConnectDeviceLatency = 543,
4056    AtomPackageManagerSnapshotReported = 544,
4057    AtomPackageManagerAppsFilterCacheBuildReported = 545,
4058    AtomPackageManagerAppsFilterCacheUpdateReported = 546,
4059    AtomLauncherImpressionEvent = 547,
4060    AtomWearMediaOutputSwitcherAllDevicesScanLatency = 549,
4061    AtomWsWatchFaceEdited = 551,
4062    AtomWsWatchFaceFavoriteActionReported = 552,
4063    AtomWsWatchFaceSetActionReported = 553,
4064    AtomPackageUninstallationReported = 554,
4065    AtomGameModeChanged = 555,
4066    AtomGameModeConfigurationChanged = 556,
4067    AtomBedtimeModeStateChanged = 557,
4068    AtomNetworkSliceSessionEnded = 558,
4069    AtomNetworkSliceDailyDataUsageReported = 559,
4070    AtomNfcTagTypeOccurred = 560,
4071    AtomNfcAidConflictOccurred = 561,
4072    AtomNfcReaderConflictOccurred = 562,
4073    AtomWsTileListChanged = 563,
4074    AtomGetTypeAccessedWithoutPermission = 564,
4075    AtomMobileBundledAppInfoGathered = 566,
4076    AtomWsWatchFaceComplicationSetChanged = 567,
4077    AtomMediaDrmCreated = 568,
4078    AtomMediaDrmErrored = 569,
4079    AtomMediaDrmSessionOpened = 570,
4080    AtomMediaDrmSessionClosed = 571,
4081    AtomUserSelectedResolution = 572,
4082    AtomUnsafeIntentEventReported = 573,
4083    AtomPerformanceHintSessionReported = 574,
4084    AtomMediametricsMidiDeviceCloseReported = 576,
4085    AtomBiometricTouchReported = 577,
4086    AtomHotwordAudioEgressEventReported = 578,
4087    AtomLocationEnabledStateChanged = 580,
4088    AtomImeRequestFinished = 581,
4089    AtomUsbComplianceWarningsReported = 582,
4090    AtomAppSupportedLocalesChanged = 583,
4091    AtomMediaProviderVolumeRecoveryReported = 586,
4092    AtomBiometricPropertiesCollected = 587,
4093    AtomKernelWakeupAttributed = 588,
4094    AtomScreenStateChangedV2 = 589,
4095    AtomWsBackupActionReported = 590,
4096    AtomWsRestoreActionReported = 591,
4097    AtomDeviceLogAccessEventReported = 592,
4098    AtomMediaSessionUpdated = 594,
4099    AtomWearOobeStateChanged = 595,
4100    AtomWsNotificationUpdated = 596,
4101    AtomNetworkValidationFailureStatsDailyReported = 601,
4102    AtomWsComplicationTapped = 602,
4103    AtomWsNotificationBlocking = 780,
4104    AtomWsNotificationBridgemodeUpdated = 822,
4105    AtomWsNotificationDismissalActioned = 823,
4106    AtomWsNotificationActioned = 824,
4107    AtomWsNotificationLatency = 880,
4108    AtomWifiBytesTransfer = 10000,
4109    AtomWifiBytesTransferByFgBg = 10001,
4110    AtomMobileBytesTransfer = 10002,
4111    AtomMobileBytesTransferByFgBg = 10003,
4112    AtomBluetoothBytesTransfer = 10006,
4113    AtomKernelWakelock = 10004,
4114    AtomSubsystemSleepState = 10005,
4115    AtomCpuTimePerUid = 10009,
4116    AtomCpuTimePerUidFreq = 10010,
4117    AtomWifiActivityInfo = 10011,
4118    AtomModemActivityInfo = 10012,
4119    AtomBluetoothActivityInfo = 10007,
4120    AtomProcessMemoryState = 10013,
4121    AtomSystemElapsedRealtime = 10014,
4122    AtomSystemUptime = 10015,
4123    AtomCpuActiveTime = 10016,
4124    AtomCpuClusterTime = 10017,
4125    AtomDiskSpace = 10018,
4126    AtomRemainingBatteryCapacity = 10019,
4127    AtomFullBatteryCapacity = 10020,
4128    AtomTemperature = 10021,
4129    AtomBinderCalls = 10022,
4130    AtomBinderCallsExceptions = 10023,
4131    AtomLooperStats = 10024,
4132    AtomDiskStats = 10025,
4133    AtomDirectoryUsage = 10026,
4134    AtomAppSize = 10027,
4135    AtomCategorySize = 10028,
4136    AtomProcStats = 10029,
4137    AtomBatteryVoltage = 10030,
4138    AtomNumFingerprintsEnrolled = 10031,
4139    AtomDiskIo = 10032,
4140    AtomPowerProfile = 10033,
4141    AtomProcStatsPkgProc = 10034,
4142    AtomProcessCpuTime = 10035,
4143    AtomCpuTimePerThreadFreq = 10037,
4144    AtomOnDevicePowerMeasurement = 10038,
4145    AtomDeviceCalculatedPowerUse = 10039,
4146    AtomProcessMemoryHighWaterMark = 10042,
4147    AtomBatteryLevel = 10043,
4148    AtomBuildInformation = 10044,
4149    AtomBatteryCycleCount = 10045,
4150    AtomDebugElapsedClock = 10046,
4151    AtomDebugFailingElapsedClock = 10047,
4152    AtomNumFacesEnrolled = 10048,
4153    AtomRoleHolder = 10049,
4154    AtomDangerousPermissionState = 10050,
4155    AtomTrainInfo = 10051,
4156    AtomTimeZoneDataInfo = 10052,
4157    AtomExternalStorageInfo = 10053,
4158    AtomGpuStatsGlobalInfo = 10054,
4159    AtomGpuStatsAppInfo = 10055,
4160    AtomSystemIonHeapSize = 10056,
4161    AtomAppsOnExternalStorageInfo = 10057,
4162    AtomFaceSettings = 10058,
4163    AtomCoolingDevice = 10059,
4164    AtomAppOps = 10060,
4165    AtomProcessSystemIonHeapSize = 10061,
4166    AtomSurfaceflingerStatsGlobalInfo = 10062,
4167    AtomSurfaceflingerStatsLayerInfo = 10063,
4168    AtomProcessMemorySnapshot = 10064,
4169    AtomVmsClientStats = 10065,
4170    AtomNotificationRemoteViews = 10066,
4171    AtomDangerousPermissionStateSampled = 10067,
4172    AtomGraphicsStats = 10068,
4173    AtomRuntimeAppOpAccess = 10069,
4174    AtomIonHeapSize = 10070,
4175    AtomPackageNotificationPreferences = 10071,
4176    AtomPackageNotificationChannelPreferences = 10072,
4177    AtomPackageNotificationChannelGroupPreferences = 10073,
4178    AtomGnssStats = 10074,
4179    AtomAttributedAppOps = 10075,
4180    AtomVoiceCallSession = 10076,
4181    AtomVoiceCallRatUsage = 10077,
4182    AtomSimSlotState = 10078,
4183    AtomSupportedRadioAccessFamily = 10079,
4184    AtomSettingSnapshot = 10080,
4185    AtomBlobInfo = 10081,
4186    AtomDataUsageBytesTransfer = 10082,
4187    AtomBytesTransferByTagAndMetered = 10083,
4188    AtomDndModeRule = 10084,
4189    AtomGeneralExternalStorageAccessStats = 10085,
4190    AtomIncomingSms = 10086,
4191    AtomOutgoingSms = 10087,
4192    AtomCarrierIdTableVersion = 10088,
4193    AtomDataCallSession = 10089,
4194    AtomCellularServiceState = 10090,
4195    AtomCellularDataServiceSwitch = 10091,
4196    AtomSystemMemory = 10092,
4197    AtomImsRegistrationTermination = 10093,
4198    AtomImsRegistrationStats = 10094,
4199    AtomCpuTimePerClusterFreq = 10095,
4200    AtomCpuCyclesPerUidCluster = 10096,
4201    AtomDeviceRotatedData = 10097,
4202    AtomCpuCyclesPerThreadGroupCluster = 10098,
4203    AtomMediaDrmActivityInfo = 10099,
4204    AtomOemManagedBytesTransfer = 10100,
4205    AtomGnssPowerStats = 10101,
4206    AtomTimeZoneDetectorState = 10102,
4207    AtomKeystore2StorageStats = 10103,
4208    AtomRkpPoolStats = 10104,
4209    AtomProcessDmabufMemory = 10105,
4210    AtomPendingAlarmInfo = 10106,
4211    AtomUserLevelHibernatedApps = 10107,
4212    AtomLauncherLayoutSnapshot = 10108,
4213    AtomGlobalHibernatedApps = 10109,
4214    AtomInputEventLatencySketch = 10110,
4215    AtomBatteryUsageStatsBeforeReset = 10111,
4216    AtomBatteryUsageStatsSinceReset = 10112,
4217    AtomBatteryUsageStatsSinceResetUsingPowerProfileModel = 10113,
4218    AtomInstalledIncrementalPackage = 10114,
4219    AtomTelephonyNetworkRequests = 10115,
4220    AtomAppSearchStorageInfo = 10116,
4221    AtomVmstat = 10117,
4222    AtomKeystore2KeyCreationWithGeneralInfo = 10118,
4223    AtomKeystore2KeyCreationWithAuthInfo = 10119,
4224    AtomKeystore2KeyCreationWithPurposeAndModesInfo = 10120,
4225    AtomKeystore2AtomWithOverflow = 10121,
4226    AtomKeystore2KeyOperationWithPurposeAndModesInfo = 10122,
4227    AtomKeystore2KeyOperationWithGeneralInfo = 10123,
4228    AtomRkpErrorStats = 10124,
4229    AtomKeystore2CrashStats = 10125,
4230    AtomVendorApexInfo = 10126,
4231    AtomAccessibilityShortcutStats = 10127,
4232    AtomAccessibilityFloatingMenuStats = 10128,
4233    AtomDataUsageBytesTransferV2 = 10129,
4234    AtomMediaCapabilities = 10130,
4235    AtomCarWatchdogSystemIoUsageSummary = 10131,
4236    AtomCarWatchdogUidIoUsageSummary = 10132,
4237    AtomImsRegistrationFeatureTagStats = 10133,
4238    AtomRcsClientProvisioningStats = 10134,
4239    AtomRcsAcsProvisioningStats = 10135,
4240    AtomSipDelegateStats = 10136,
4241    AtomSipTransportFeatureTagStats = 10137,
4242    AtomSipMessageResponse = 10138,
4243    AtomSipTransportSession = 10139,
4244    AtomImsDedicatedBearerListenerEvent = 10140,
4245    AtomImsDedicatedBearerEvent = 10141,
4246    AtomImsRegistrationServiceDescStats = 10142,
4247    AtomUceEventStats = 10143,
4248    AtomPresenceNotifyEvent = 10144,
4249    AtomGbaEvent = 10145,
4250    AtomPerSimStatus = 10146,
4251    AtomGpuWorkPerUid = 10147,
4252    AtomPersistentUriPermissionsAmountPerPackage = 10148,
4253    AtomSignedPartitionInfo = 10149,
4254    AtomPinnedFileSizesPerPackage = 10150,
4255    AtomPendingIntentsPerPackage = 10151,
4256    AtomUserInfo = 10152,
4257    AtomTelephonyNetworkRequestsV2 = 10153,
4258    AtomDeviceTelephonyProperties = 10154,
4259    AtomRemoteKeyProvisioningErrorCounts = 10155,
4260    AtomSafetyState = 10156,
4261    AtomIncomingMms = 10157,
4262    AtomOutgoingMms = 10158,
4263    AtomMultiUserInfo = 10160,
4264    AtomNetworkBpfMapInfo = 10161,
4265    AtomOutgoingShortCodeSms = 10162,
4266    AtomConnectivityStateSample = 10163,
4267    AtomNetworkSelectionRematchReasonsInfo = 10164,
4268    AtomGameModeInfo = 10165,
4269    AtomGameModeConfiguration = 10166,
4270    AtomGameModeListener = 10167,
4271    AtomNetworkSliceRequestCount = 10168,
4272    AtomWsTileSnapshot = 10169,
4273    AtomWsActiveWatchFaceComplicationSetSnapshot = 10170,
4274    AtomProcessState = 10171,
4275    AtomProcessAssociation = 10172,
4276    AtomAdpfSystemComponentInfo = 10173,
4277    AtomNotificationMemoryUse = 10174,
4278    AtomHdrCapabilities = 10175,
4279    AtomWsFavouriteWatchFaceListSnapshot = 10176,
4280    AtomWifiAwareNdpReported = 638,
4281    AtomWifiAwareAttachReported = 639,
4282    AtomWifiSelfRecoveryTriggered = 661,
4283    AtomSoftApStarted = 680,
4284    AtomSoftApStopped = 681,
4285    AtomWifiLockReleased = 687,
4286    AtomWifiLockDeactivated = 688,
4287    AtomWifiConfigSaved = 689,
4288    AtomWifiAwareResourceUsingChanged = 690,
4289    AtomWifiAwareHalApiCalled = 691,
4290    AtomWifiLocalOnlyRequestReceived = 692,
4291    AtomWifiLocalOnlyRequestScanTriggered = 693,
4292    AtomWifiThreadTaskExecuted = 694,
4293    AtomWifiStateChanged = 700,
4294    AtomPnoScanStarted = 719,
4295    AtomPnoScanStopped = 720,
4296    AtomWifiIsUnusableReported = 722,
4297    AtomWifiApCapabilitiesReported = 723,
4298    AtomSoftApStateChanged = 805,
4299    AtomScorerPredictionResultReported = 884,
4300    AtomWifiAwareCapabilities = 10190,
4301    AtomWifiModuleInfo = 10193,
4302    AtomWifiSettingInfo = 10194,
4303    AtomWifiComplexSettingInfo = 10195,
4304    AtomWifiConfiguredNetworkInfo = 10198,
4305    AtomWearPowerMenuOpened = 731,
4306    AtomWearAssistantOpened = 755,
4307    AtomFirstOverlayStateChanged = 917,
4308    AtomWsWearTimeSession = 610,
4309    AtomWsIncomingCallActionReported = 626,
4310    AtomWsCallDisconnectionReported = 627,
4311    AtomWsCallDurationReported = 628,
4312    AtomWsCallUserExperienceLatencyReported = 629,
4313    AtomWsCallInteractionReported = 630,
4314    AtomWsOnBodyStateChanged = 787,
4315    AtomWsWatchFaceRestrictedComplicationsImpacted = 802,
4316    AtomWsWatchFaceDefaultRestrictedComplicationsRemoved = 803,
4317    AtomWsComplicationsImpactedNotificationEventReported = 804,
4318    AtomWsRemoteEventUsageReported = 920,
4319    AtomWsNotificationManagedDismissalSync = 941,
4320    AtomWsBugreportEventReported = 964,
4321    AtomWsStandaloneModeSnapshot = 10197,
4322    AtomWsFavoriteWatchFaceSnapshot = 10206,
4323    AtomWsPhotosWatchFaceFeatureSnapshot = 10225,
4324    AtomWsWatchFaceCustomizationSnapshot = 10227,
4325    AtomWearAdaptiveSuspendStatsReported = 619,
4326    AtomWearPowerAnomalyServiceOperationalStatsReported = 620,
4327    AtomWearPowerAnomalyServiceEventStatsReported = 621,
4328    AtomWearTimeSyncRequested = 911,
4329    AtomWearTimeUpdateStarted = 912,
4330    AtomWearTimeSyncAttemptCompleted = 913,
4331    AtomWearTimeChanged = 914,
4332    AtomWearSetupWizardDeviceStatusReported = 953,
4333    AtomWearSetupWizardPairingCompleted = 954,
4334    AtomWearSetupWizardConnectionEstablished = 955,
4335    AtomWearSetupWizardCheckinCompleted = 956,
4336    AtomWearSetupWizardCompanionTimeReported = 957,
4337    AtomWearSetupWizardStatusReported = 958,
4338    AtomWearSetupWizardHeartbeatReported = 959,
4339    AtomWearSetupWizardFrpTriggered = 960,
4340    AtomWearSetupWizardSystemUpdateTriggered = 961,
4341    AtomWearSetupWizardPhoneSwitchTriggered = 962,
4342    AtomRendererInitialized = 736,
4343    AtomSchemaVersionReceived = 737,
4344    AtomLayoutInspected = 741,
4345    AtomLayoutExpressionInspected = 742,
4346    AtomLayoutAnimationsInspected = 743,
4347    AtomMaterialComponentsInspected = 744,
4348    AtomTileRequested = 745,
4349    AtomStateResponseReceived = 746,
4350    AtomTileResponseReceived = 747,
4351    AtomInflationFinished = 748,
4352    AtomInflationFailed = 749,
4353    AtomIgnoredInflationFailuresReported = 750,
4354    AtomDrawableRendered = 751,
4355    AtomWearModeStateChanged = 715,
4356    AtomMediaActionReported = 608,
4357    AtomMediaControlsLaunched = 609,
4358    AtomMediaSessionStateChanged = 677,
4359    AtomMediaControlApiUsageReported = 966,
4360    AtomMediaSubscriptionChanged = 990,
4361    AtomWearMediaOutputSwitcherDeviceScanApiLatency = 757,
4362    AtomWearMediaOutputSwitcherSassDeviceUnavailable = 758,
4363    AtomWearMediaOutputSwitcherFastpairApiTimeout = 759,
4364    AtomMediatorUpdated = 721,
4365    AtomSysproxyBluetoothBytesTransfer = 10196,
4366    AtomSysproxyConnectionUpdated = 786,
4367    AtomWearCompanionConnectionState = 921,
4368    AtomSysproxyServiceStateUpdated = 949,
4369    AtomUwbActivityInfo = 10188,
4370    AtomTestUprobestatsAtomReported = 915,
4371    AtomTvLowPowerStandbyPolicy = 679,
4372    AtomExternalTvInputEvent = 717,
4373    AtomBootIntegrityInfoReported = 775,
4374    AtomThreadnetworkTelemetryDataReported = 738,
4375    AtomThreadnetworkTopoEntryRepeated = 739,
4376    AtomThreadnetworkDeviceInfoReported = 740,
4377    AtomCellularRadioPowerStateChanged = 713,
4378    AtomEmergencyNumbersInfo = 10180,
4379    AtomDataNetworkValidation = 10207,
4380    AtomDataRatStateChanged = 854,
4381    AtomConnectedChannelChanged = 882,
4382    AtomCellularIdentifierDisclosed = 800,
4383    AtomSatelliteController = 10182,
4384    AtomSatelliteSession = 10183,
4385    AtomSatelliteIncomingDatagram = 10184,
4386    AtomSatelliteOutgoingDatagram = 10185,
4387    AtomSatelliteProvision = 10186,
4388    AtomSatelliteSosMessageRecommender = 10187,
4389    AtomCarrierRoamingSatelliteSession = 10211,
4390    AtomCarrierRoamingSatelliteControllerStats = 10212,
4391    AtomControllerStatsPerPackage = 10213,
4392    AtomSatelliteEntitlement = 10214,
4393    AtomSatelliteConfigUpdater = 10215,
4394    AtomSatelliteAccessController = 10219,
4395    AtomQualifiedRatListChanged = 634,
4396    AtomQnsImsCallDropStats = 635,
4397    AtomQnsFallbackRestrictionChanged = 636,
4398    AtomQnsRatPreferenceMismatchInfo = 10177,
4399    AtomQnsHandoverTimeMillis = 10178,
4400    AtomQnsHandoverPingpong = 10179,
4401    AtomIwlanUnderlyingNetworkValidationResultReported = 923,
4402    AtomEmergencyNumberDialed = 637,
4403    AtomCallStats = 10221,
4404    AtomCallAudioRouteStats = 10222,
4405    AtomTelecomApiStats = 10223,
4406    AtomTelecomErrorStats = 10224,
4407    AtomLockscreenShortcutSelected = 611,
4408    AtomLockscreenShortcutTriggered = 612,
4409    AtomLauncherImpressionEventV2 = 716,
4410    AtomDisplaySwitchLatencyTracked = 753,
4411    AtomNotificationListenerService = 829,
4412    AtomNavHandleTouchPoints = 869,
4413    AtomCommunalHubWidgetEventReported = 908,
4414    AtomPeripheralTutorialLaunched = 942,
4415    AtomContextualEducationTriggered = 971,
4416    AtomCommunalHubSnapshot = 10226,
4417    AtomTestExtensionAtomReported = 660,
4418    AtomTestRestrictedAtomReported = 672,
4419    AtomStatsSocketLossReported = 752,
4420    AtomSettingsSpaReported = 622,
4421    AtomSelinuxAuditLog = 799,
4422    AtomSandboxApiCalled = 488,
4423    AtomSandboxActivityEventOccurred = 735,
4424    AtomSdkSandboxRestrictedAccessInSession = 796,
4425    AtomSandboxSdkStorage = 10159,
4426    AtomRkpdPoolStats = 664,
4427    AtomRkpdClientOperation = 665,
4428    AtomRangingSessionConfigured = 993,
4429    AtomRangingSessionStarted = 994,
4430    AtomRangingSessionClosed = 995,
4431    AtomRangingTechnologyStarted = 996,
4432    AtomRangingTechnologyStopped = 997,
4433    AtomMediaProviderDatabaseRollbackReported = 784,
4434    AtomBackupSetupStatusReported = 785,
4435    AtomScreenOffReported = 776,
4436    AtomScreenTimeoutOverrideReported = 836,
4437    AtomScreenInteractiveSessionReported = 837,
4438    AtomScreenDimReported = 867,
4439    AtomAtom9999 = 9999,
4440    AtomAtom99999 = 99999,
4441    AtomPhotopickerSessionInfoReported = 886,
4442    AtomPhotopickerApiInfoReported = 887,
4443    AtomPhotopickerUiEventLogged = 888,
4444    AtomPhotopickerMediaItemStatusReported = 889,
4445    AtomPhotopickerPreviewInfoLogged = 890,
4446    AtomPhotopickerMenuInteractionLogged = 891,
4447    AtomPhotopickerBannerInteractionLogged = 892,
4448    AtomPhotopickerMediaLibraryInfoLogged = 893,
4449    AtomPhotopickerPageInfoLogged = 894,
4450    AtomPhotopickerMediaGridSyncInfoReported = 895,
4451    AtomPhotopickerAlbumSyncInfoReported = 896,
4452    AtomPhotopickerSearchInfoReported = 897,
4453    AtomSearchDataExtractionDetailsReported = 898,
4454    AtomEmbeddedPhotopickerInfoReported = 899,
4455    AtomPermissionRationaleDialogViewed = 645,
4456    AtomPermissionRationaleDialogActionReported = 646,
4457    AtomAppDataSharingUpdatesNotificationInteraction = 647,
4458    AtomAppDataSharingUpdatesFragmentViewed = 648,
4459    AtomAppDataSharingUpdatesFragmentActionReported = 649,
4460    AtomEnhancedConfirmationDialogResultReported = 827,
4461    AtomEnhancedConfirmationRestrictionCleared = 828,
4462    AtomPressureStallInformation = 10229,
4463    AtomPdfLoadReported = 859,
4464    AtomPdfApiUsageReported = 860,
4465    AtomPdfSearchReported = 861,
4466    AtomComponentStateChangedReported = 863,
4467    AtomOndevicepersonalizationApiCalled = 711,
4468    AtomOndevicepersonalizationTraceEvent = 952,
4469    AtomNfcObserveModeStateChanged = 855,
4470    AtomNfcFieldChanged = 856,
4471    AtomNfcPollingLoopNotificationReported = 857,
4472    AtomNfcProprietaryCapabilitiesReported = 858,
4473    AtomNfcExitFrameTableChanged = 1036,
4474    AtomNfcAutoTransactReported = 1038,
4475    AtomMicroxrDeviceBootCompleteReported = 901,
4476    AtomMteState = 10181,
4477    AtomZramMaintenanceExecuted = 1015,
4478    AtomZramSetupExecuted = 1029,
4479    AtomZramMmStatMmd = 10232,
4480    AtomZramBdStatMmd = 10233,
4481    AtomMediaEditingEndedReported = 798,
4482    AtomMediaCodecReclaimRequestCompleted = 600,
4483    AtomMediaCodecStarted = 641,
4484    AtomMediaCodecStopped = 642,
4485    AtomMediaCodecRendered = 684,
4486    AtomEmergencyStateChanged = 633,
4487    AtomChreSignificantMotionStateChanged = 868,
4488    AtomPopulationDensityProviderLoadingReported = 1002,
4489    AtomDensityBasedCoarseLocationsUsageReported = 1003,
4490    AtomDensityBasedCoarseLocationsProviderQueryReported = 1004,
4491    AtomKernelOomKillOccurred = 754,
4492    AtomKeyboardConfigured = 682,
4493    AtomKeyboardSystemsEventReported = 683,
4494    AtomInputdeviceUsageReported = 686,
4495    AtomInputEventLatencyReported = 932,
4496    AtomTouchpadUsage = 10191,
4497    AtomIkeSessionTerminated = 678,
4498    AtomIkeLivenessCheckSessionValidated = 760,
4499    AtomNegotiatedSecurityAssociation = 821,
4500    AtomHotwordEgressSizeAtomReported = 761,
4501    AtomHealthConnectUiImpression = 623,
4502    AtomHealthConnectUiInteraction = 624,
4503    AtomHealthConnectAppOpenedReported = 625,
4504    AtomHealthConnectApiCalled = 616,
4505    AtomHealthConnectUsageStats = 617,
4506    AtomHealthConnectStorageStats = 618,
4507    AtomHealthConnectApiInvoked = 643,
4508    AtomExerciseRouteApiCalled = 654,
4509    AtomHealthConnectExportInvoked = 907,
4510    AtomHealthConnectImportInvoked = 918,
4511    AtomHealthConnectExportImportStatsReported = 919,
4512    AtomHealthConnectPermissionStats = 963,
4513    AtomHealthConnectPhrApiInvoked = 980,
4514    AtomHealthConnectPhrUsageStats = 981,
4515    AtomHealthConnectPhrStorageStats = 984,
4516    AtomHealthConnectRestrictedEcosystemStats = 985,
4517    AtomHealthConnectEcosystemStats = 986,
4518    AtomHdmiEarcStatusReported = 701,
4519    AtomHdmiSoundbarModeStatusReported = 724,
4520    AtomHdmiPowerStateChangeOnActiveSourceLostToggled = 991,
4521    AtomBatteryHealth = 10220,
4522    AtomBiometricUnenrolled = 944,
4523    AtomBiometricEnumerated = 945,
4524    AtomApplicationGrammaticalInflectionChanged = 584,
4525    AtomSystemGrammaticalInflectionChanged = 816,
4526    AtomFullScreenIntentLaunched = 631,
4527    AtomBalAllowed = 632,
4528    AtomInTaskActivityStarted = 685,
4529    AtomDeviceOrientationChanged = 906,
4530    AtomCachedAppsHighWatermark = 10189,
4531    AtomStylusPredictionMetricsReported = 718,
4532    AtomUserRiskEventReported = 725,
4533    AtomMediaProjectionStateChanged = 729,
4534    AtomMediaProjectionTargetChanged = 730,
4535    AtomExcessiveBinderProxyCountReported = 853,
4536    AtomProxyBytesTransferByFgBg = 10200,
4537    AtomMobileBytesTransferByProcState = 10204,
4538    AtomBiometricFrrNotification = 817,
4539    AtomSensitiveContentMediaProjectionSession = 830,
4540    AtomSensitiveNotificationAppProtectionSession = 831,
4541    AtomSensitiveNotificationAppProtectionApplied = 832,
4542    AtomSensitiveNotificationRedaction = 833,
4543    AtomSensitiveContentAppProtection = 835,
4544    AtomAppRestrictionStateChanged = 866,
4545    AtomBatteryUsageStatsPerUid = 10209,
4546    AtomPostgcMemorySnapshot = 924,
4547    AtomPowerSaveTempAllowlistChanged = 926,
4548    AtomAppOpAccessTracked = 931,
4549    AtomContentOrFileUriEventReported = 933,
4550    AtomDeviceIdleTempAllowlistUpdated = 940,
4551    AtomAppOpNoteOpOrCheckOpBinderApiCalled = 943,
4552    AtomFrameworkWakelockInfo = 10230,
4553    AtomJankFrameCountByWidgetReported = 950,
4554    AtomIntentCreatorTokenAdded = 978,
4555    AtomNotificationChannelClassification = 983,
4556    AtomCameraStatusForCompatibilityChanged = 999,
4557    AtomFederatedComputeApiCalled = 712,
4558    AtomFederatedComputeTrainingEventReported = 771,
4559    AtomExampleIteratorNextLatencyReported = 838,
4560    AtomFederatedComputeTraceEventReported = 992,
4561    AtomExpressEventReported = 528,
4562    AtomExpressHistogramSampleReported = 593,
4563    AtomExpressUidEventReported = 644,
4564    AtomExpressUidHistogramSampleReported = 658,
4565    AtomDreamSettingChanged = 705,
4566    AtomDreamSettingSnapshot = 10192,
4567    AtomDndStateChanged = 657,
4568    AtomExternalDisplayStateChanged = 806,
4569    AtomDisplayModeDirectorVoteChanged = 792,
4570    AtomDevicePolicyManagementMode = 10216,
4571    AtomDevicePolicyState = 10217,
4572    AtomDeviceLockCheckInRequestReported = 726,
4573    AtomDeviceLockProvisioningCompleteReported = 727,
4574    AtomDeviceLockKioskAppRequestReported = 728,
4575    AtomDeviceLockCheckInRetryReported = 789,
4576    AtomDeviceLockProvisionFailureReported = 790,
4577    AtomDeviceLockLockUnlockDeviceFailureReported = 791,
4578    AtomDesktopModeUiChanged = 818,
4579    AtomDesktopModeSessionTaskUpdate = 819,
4580    AtomDesktopModeTaskSizeUpdated = 935,
4581    AtomCronetEngineCreated = 703,
4582    AtomCronetTrafficReported = 704,
4583    AtomCronetEngineBuilderInitialized = 762,
4584    AtomCronetHttpFlagsInitialized = 763,
4585    AtomCronetInitialized = 764,
4586    AtomCredentialManagerApiCalled = 585,
4587    AtomCredentialManagerInitPhaseReported = 651,
4588    AtomCredentialManagerCandidatePhaseReported = 652,
4589    AtomCredentialManagerFinalPhaseReported = 653,
4590    AtomCredentialManagerTotalReported = 667,
4591    AtomCredentialManagerFinalnouidReported = 668,
4592    AtomCredentialManagerGetReported = 669,
4593    AtomCredentialManagerAuthClickReported = 670,
4594    AtomCredentialManagerApiv2Called = 671,
4595    AtomCpuPolicy = 10199,
4596    AtomVpnConnectionStateChanged = 850,
4597    AtomVpnConnectionReported = 851,
4598    AtomIpClientRaInfoReported = 778,
4599    AtomApfSessionInfoReported = 777,
4600    AtomCoreNetworkingTerribleErrorOccurred = 979,
4601    AtomNetworkStatsRecorderFileOperated = 783,
4602    AtomDailyKeepaliveInfoReported = 650,
4603    AtomNetworkRequestStateChanged = 779,
4604    AtomTetheringActiveSessionsReported = 925,
4605    AtomCertificateTransparencyLogListUpdateStateChanged = 972,
4606    AtomHardwareRendererEvent = 946,
4607    AtomTextureViewEvent = 947,
4608    AtomSurfaceControlEvent = 948,
4609    AtomImageDecoded = 977,
4610    AtomCertificateTransparencyLogListStateChanged = 934,
4611    AtomConscryptServiceUsed = 965,
4612    AtomCertificateTransparencyVerificationReported = 989,
4613    AtomCameraFeatureCombinationQueryEvent = 900,
4614    AtomBroadcastSent = 922,
4615    AtomBluetoothHashedDeviceNameReported = 613,
4616    AtomBluetoothL2capCocClientConnection = 614,
4617    AtomBluetoothL2capCocServerConnection = 615,
4618    AtomBluetoothLeSessionConnected = 656,
4619    AtomRestrictedBluetoothDeviceNameReported = 666,
4620    AtomBluetoothProfileConnectionAttempted = 696,
4621    AtomBluetoothContentProfileErrorReported = 781,
4622    AtomBluetoothRfcommConnectionAttempted = 782,
4623    AtomRemoteDeviceInformationWithMetricId = 862,
4624    AtomLeAppScanStateChanged = 870,
4625    AtomLeRadioScanStopped = 871,
4626    AtomLeScanResultReceived = 872,
4627    AtomLeScanAbused = 873,
4628    AtomLeAdvStateChanged = 874,
4629    AtomLeAdvErrorReported = 875,
4630    AtomA2dpSessionReported = 904,
4631    AtomBluetoothCrossLayerEventReported = 916,
4632    AtomBroadcastAudioSessionReported = 927,
4633    AtomBroadcastAudioSyncReported = 928,
4634    AtomBluetoothRfcommConnectionReportedAtClose = 982,
4635    AtomBluetoothLeConnection = 988,
4636    AtomHearingDeviceActiveEventReported = 1021,
4637    AtomBackportedFixStatusReported = 987,
4638    AtomPluginInitialized = 655,
4639    AtomCarSystemUiDataSubscriptionEventReported = 974,
4640    AtomCarSettingsDataSubscriptionEventReported = 975,
4641    AtomCarQcLibEventReported = 976,
4642    AtomCarWakeupFromSuspendReported = 852,
4643    AtomCarRecentsEventReported = 770,
4644    AtomCarCalmModeEventReported = 797,
4645    AtomAutofillUiEventReported = 603,
4646    AtomAutofillFillRequestReported = 604,
4647    AtomAutofillFillResponseReported = 605,
4648    AtomAutofillSaveEventReported = 606,
4649    AtomAutofillSessionCommitted = 607,
4650    AtomAutofillFieldClassificationEventReported = 659,
4651    AtomOdrefreshReported = 366,
4652    AtomOdsignReported = 548,
4653    AtomBackgroundDexoptJobEnded = 467,
4654    AtomPrerebootDexoptJobEnded = 883,
4655    AtomArtDatumReported = 332,
4656    AtomArtDeviceDatumReported = 550,
4657    AtomArtDatumDeltaReported = 565,
4658    AtomArtDex2oatReported = 929,
4659    AtomArtDeviceStatus = 10205,
4660    AtomAppSearchSetSchemaStatsReported = 385,
4661    AtomAppSearchSchemaMigrationStatsReported = 579,
4662    AtomAppSearchUsageSearchIntentStatsReported = 825,
4663    AtomAppSearchUsageSearchIntentRawQueryStatsReported = 826,
4664    AtomAppSearchAppsIndexerStatsReported = 909,
4665    AtomAppFunctionsRequestReported = 998,
4666    AtomApexInstallationRequested = 732,
4667    AtomApexInstallationStaged = 733,
4668    AtomApexInstallationEnded = 734,
4669    AtomAiWallpapersButtonPressed = 706,
4670    AtomAiWallpapersTemplateSelected = 707,
4671    AtomAiWallpapersTermSelected = 708,
4672    AtomAiWallpapersWallpaperSet = 709,
4673    AtomAiWallpapersSessionSummary = 710,
4674    AtomJsscriptengineLatencyReported = 483,
4675    AtomAdServicesApiCalled = 435,
4676    AtomAdServicesMesurementReportsUploaded = 436,
4677    AtomMobileDataDownloadFileGroupStatusReported = 490,
4678    AtomMobileDataDownloadDownloadResultReported = 502,
4679    AtomAdServicesSettingsUsageReported = 493,
4680    AtomBackgroundFetchProcessReported = 496,
4681    AtomUpdateCustomAudienceProcessReported = 497,
4682    AtomRunAdBiddingProcessReported = 498,
4683    AtomRunAdScoringProcessReported = 499,
4684    AtomRunAdSelectionProcessReported = 500,
4685    AtomRunAdBiddingPerCaProcessReported = 501,
4686    AtomMobileDataDownloadFileGroupStorageStatsReported = 503,
4687    AtomAdServicesMeasurementRegistrations = 512,
4688    AtomAdServicesGetTopicsReported = 535,
4689    AtomAdServicesEpochComputationGetTopTopicsReported = 536,
4690    AtomAdServicesEpochComputationClassifierReported = 537,
4691    AtomAdServicesBackCompatGetTopicsReported = 598,
4692    AtomAdServicesBackCompatEpochComputationClassifierReported = 599,
4693    AtomAdServicesMeasurementDebugKeys = 640,
4694    AtomAdServicesErrorReported = 662,
4695    AtomAdServicesBackgroundJobsExecutionReported = 663,
4696    AtomAdServicesMeasurementDelayedSourceRegistration = 673,
4697    AtomAdServicesMeasurementAttribution = 674,
4698    AtomAdServicesMeasurementJobs = 675,
4699    AtomAdServicesMeasurementWipeout = 676,
4700    AtomAdServicesMeasurementAdIdMatchForDebugKeys = 695,
4701    AtomAdServicesEnrollmentDataStored = 697,
4702    AtomAdServicesEnrollmentFileDownloaded = 698,
4703    AtomAdServicesEnrollmentMatched = 699,
4704    AtomAdServicesConsentMigrated = 702,
4705    AtomAdServicesEnrollmentFailed = 714,
4706    AtomAdServicesMeasurementClickVerification = 756,
4707    AtomAdServicesEncryptionKeyFetched = 765,
4708    AtomAdServicesEncryptionKeyDbTransactionEnded = 766,
4709    AtomDestinationRegisteredBeacons = 767,
4710    AtomReportInteractionApiCalled = 768,
4711    AtomInteractionReportingTableCleared = 769,
4712    AtomAppManifestConfigHelperCalled = 788,
4713    AtomAdFilteringProcessJoinCaReported = 793,
4714    AtomAdFilteringProcessAdSelectionReported = 794,
4715    AtomAdCounterHistogramUpdaterReported = 795,
4716    AtomSignatureVerification = 807,
4717    AtomKAnonImmediateSignJoinStatusReported = 808,
4718    AtomKAnonBackgroundJobStatusReported = 809,
4719    AtomKAnonInitializeStatusReported = 810,
4720    AtomKAnonSignStatusReported = 811,
4721    AtomKAnonJoinStatusReported = 812,
4722    AtomKAnonKeyAttestationStatusReported = 813,
4723    AtomGetAdSelectionDataApiCalled = 814,
4724    AtomGetAdSelectionDataBuyerInputGenerated = 815,
4725    AtomBackgroundJobSchedulingReported = 834,
4726    AtomTopicsEncryptionEpochComputationReported = 840,
4727    AtomTopicsEncryptionGetTopicsReported = 841,
4728    AtomAdservicesShellCommandCalled = 842,
4729    AtomUpdateSignalsApiCalled = 843,
4730    AtomEncodingJobRun = 844,
4731    AtomEncodingJsFetch = 845,
4732    AtomEncodingJsExecution = 846,
4733    AtomPersistAdSelectionResultCalled = 847,
4734    AtomServerAuctionKeyFetchCalled = 848,
4735    AtomServerAuctionBackgroundKeyFetchEnabled = 849,
4736    AtomAdServicesMeasurementProcessOdpRegistration = 864,
4737    AtomAdServicesMeasurementNotifyRegistrationToOdp = 865,
4738    AtomSelectAdsFromOutcomesApiCalled = 876,
4739    AtomReportImpressionApiCalled = 877,
4740    AtomAdServicesEnrollmentTransactionStats = 885,
4741    AtomAdServicesCobaltLoggerEventReported = 902,
4742    AtomAdServicesCobaltPeriodicJobEventReported = 903,
4743    AtomUpdateSignalsProcessReported = 905,
4744    AtomTopicsScheduleEpochJobSettingReported = 930,
4745    AtomScheduledCustomAudienceUpdateScheduleAttempted = 967,
4746    AtomScheduledCustomAudienceUpdatePerformed = 968,
4747    AtomScheduledCustomAudienceUpdatePerformedAttemptedFailureReported = 969,
4748    AtomScheduledCustomAudienceUpdateBackgroundJobRan = 970,
4749    AtomThermalStatusCalled = 772,
4750    AtomThermalHeadroomCalled = 773,
4751    AtomThermalHeadroomThresholdsCalled = 774,
4752    AtomAdpfHintSessionTidCleanup = 839,
4753    AtomThermalHeadroomThresholds = 10201,
4754    AtomAdpfSessionSnapshot = 10218,
4755    AtomAdaptiveAuthUnlockAfterLockReported = 820,
4756    AtomAccountManagerEvent = 951,
4757    AtomAccessibilityCheckResultReported = 910,
4758}
4759impl AtomId {
4760    /// String value of the enum field names used in the ProtoBuf definition.
4761    ///
4762    /// The values are not transformed in any way and thus are considered stable
4763    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4764    pub fn as_str_name(&self) -> &'static str {
4765        match self {
4766            Self::AtomUnspecified => "ATOM_UNSPECIFIED",
4767            Self::AtomBleScanStateChanged => "ATOM_BLE_SCAN_STATE_CHANGED",
4768            Self::AtomProcessStateChanged => "ATOM_PROCESS_STATE_CHANGED",
4769            Self::AtomBleScanResultReceived => "ATOM_BLE_SCAN_RESULT_RECEIVED",
4770            Self::AtomSensorStateChanged => "ATOM_SENSOR_STATE_CHANGED",
4771            Self::AtomGpsScanStateChanged => "ATOM_GPS_SCAN_STATE_CHANGED",
4772            Self::AtomSyncStateChanged => "ATOM_SYNC_STATE_CHANGED",
4773            Self::AtomScheduledJobStateChanged => "ATOM_SCHEDULED_JOB_STATE_CHANGED",
4774            Self::AtomScreenBrightnessChanged => "ATOM_SCREEN_BRIGHTNESS_CHANGED",
4775            Self::AtomWakelockStateChanged => "ATOM_WAKELOCK_STATE_CHANGED",
4776            Self::AtomLongPartialWakelockStateChanged => {
4777                "ATOM_LONG_PARTIAL_WAKELOCK_STATE_CHANGED"
4778            }
4779            Self::AtomMobileRadioPowerStateChanged => {
4780                "ATOM_MOBILE_RADIO_POWER_STATE_CHANGED"
4781            }
4782            Self::AtomWifiRadioPowerStateChanged => "ATOM_WIFI_RADIO_POWER_STATE_CHANGED",
4783            Self::AtomActivityManagerSleepStateChanged => {
4784                "ATOM_ACTIVITY_MANAGER_SLEEP_STATE_CHANGED"
4785            }
4786            Self::AtomMemoryFactorStateChanged => "ATOM_MEMORY_FACTOR_STATE_CHANGED",
4787            Self::AtomExcessiveCpuUsageReported => "ATOM_EXCESSIVE_CPU_USAGE_REPORTED",
4788            Self::AtomCachedKillReported => "ATOM_CACHED_KILL_REPORTED",
4789            Self::AtomProcessMemoryStatReported => "ATOM_PROCESS_MEMORY_STAT_REPORTED",
4790            Self::AtomLauncherEvent => "ATOM_LAUNCHER_EVENT",
4791            Self::AtomBatterySaverModeStateChanged => {
4792                "ATOM_BATTERY_SAVER_MODE_STATE_CHANGED"
4793            }
4794            Self::AtomDeviceIdleModeStateChanged => "ATOM_DEVICE_IDLE_MODE_STATE_CHANGED",
4795            Self::AtomDeviceIdlingModeStateChanged => {
4796                "ATOM_DEVICE_IDLING_MODE_STATE_CHANGED"
4797            }
4798            Self::AtomAudioStateChanged => "ATOM_AUDIO_STATE_CHANGED",
4799            Self::AtomMediaCodecStateChanged => "ATOM_MEDIA_CODEC_STATE_CHANGED",
4800            Self::AtomCameraStateChanged => "ATOM_CAMERA_STATE_CHANGED",
4801            Self::AtomFlashlightStateChanged => "ATOM_FLASHLIGHT_STATE_CHANGED",
4802            Self::AtomUidProcessStateChanged => "ATOM_UID_PROCESS_STATE_CHANGED",
4803            Self::AtomProcessLifeCycleStateChanged => {
4804                "ATOM_PROCESS_LIFE_CYCLE_STATE_CHANGED"
4805            }
4806            Self::AtomScreenStateChanged => "ATOM_SCREEN_STATE_CHANGED",
4807            Self::AtomBatteryLevelChanged => "ATOM_BATTERY_LEVEL_CHANGED",
4808            Self::AtomChargingStateChanged => "ATOM_CHARGING_STATE_CHANGED",
4809            Self::AtomPluggedStateChanged => "ATOM_PLUGGED_STATE_CHANGED",
4810            Self::AtomInteractiveStateChanged => "ATOM_INTERACTIVE_STATE_CHANGED",
4811            Self::AtomTouchEventReported => "ATOM_TOUCH_EVENT_REPORTED",
4812            Self::AtomWakeupAlarmOccurred => "ATOM_WAKEUP_ALARM_OCCURRED",
4813            Self::AtomKernelWakeupReported => "ATOM_KERNEL_WAKEUP_REPORTED",
4814            Self::AtomWifiLockStateChanged => "ATOM_WIFI_LOCK_STATE_CHANGED",
4815            Self::AtomWifiSignalStrengthChanged => "ATOM_WIFI_SIGNAL_STRENGTH_CHANGED",
4816            Self::AtomWifiScanStateChanged => "ATOM_WIFI_SCAN_STATE_CHANGED",
4817            Self::AtomPhoneSignalStrengthChanged => "ATOM_PHONE_SIGNAL_STRENGTH_CHANGED",
4818            Self::AtomSettingChanged => "ATOM_SETTING_CHANGED",
4819            Self::AtomActivityForegroundStateChanged => {
4820                "ATOM_ACTIVITY_FOREGROUND_STATE_CHANGED"
4821            }
4822            Self::AtomIsolatedUidChanged => "ATOM_ISOLATED_UID_CHANGED",
4823            Self::AtomPacketWakeupOccurred => "ATOM_PACKET_WAKEUP_OCCURRED",
4824            Self::AtomWallClockTimeShifted => "ATOM_WALL_CLOCK_TIME_SHIFTED",
4825            Self::AtomAnomalyDetected => "ATOM_ANOMALY_DETECTED",
4826            Self::AtomAppBreadcrumbReported => "ATOM_APP_BREADCRUMB_REPORTED",
4827            Self::AtomAppStartOccurred => "ATOM_APP_START_OCCURRED",
4828            Self::AtomAppStartCanceled => "ATOM_APP_START_CANCELED",
4829            Self::AtomAppStartFullyDrawn => "ATOM_APP_START_FULLY_DRAWN",
4830            Self::AtomLmkKillOccurred => "ATOM_LMK_KILL_OCCURRED",
4831            Self::AtomPictureInPictureStateChanged => {
4832                "ATOM_PICTURE_IN_PICTURE_STATE_CHANGED"
4833            }
4834            Self::AtomWifiMulticastLockStateChanged => {
4835                "ATOM_WIFI_MULTICAST_LOCK_STATE_CHANGED"
4836            }
4837            Self::AtomAppStartMemoryStateCaptured => {
4838                "ATOM_APP_START_MEMORY_STATE_CAPTURED"
4839            }
4840            Self::AtomShutdownSequenceReported => "ATOM_SHUTDOWN_SEQUENCE_REPORTED",
4841            Self::AtomBootSequenceReported => "ATOM_BOOT_SEQUENCE_REPORTED",
4842            Self::AtomOverlayStateChanged => "ATOM_OVERLAY_STATE_CHANGED",
4843            Self::AtomForegroundServiceStateChanged => {
4844                "ATOM_FOREGROUND_SERVICE_STATE_CHANGED"
4845            }
4846            Self::AtomCallStateChanged => "ATOM_CALL_STATE_CHANGED",
4847            Self::AtomKeyguardStateChanged => "ATOM_KEYGUARD_STATE_CHANGED",
4848            Self::AtomKeyguardBouncerStateChanged => {
4849                "ATOM_KEYGUARD_BOUNCER_STATE_CHANGED"
4850            }
4851            Self::AtomKeyguardBouncerPasswordEntered => {
4852                "ATOM_KEYGUARD_BOUNCER_PASSWORD_ENTERED"
4853            }
4854            Self::AtomAppDied => "ATOM_APP_DIED",
4855            Self::AtomResourceConfigurationChanged => {
4856                "ATOM_RESOURCE_CONFIGURATION_CHANGED"
4857            }
4858            Self::AtomBluetoothEnabledStateChanged => {
4859                "ATOM_BLUETOOTH_ENABLED_STATE_CHANGED"
4860            }
4861            Self::AtomBluetoothConnectionStateChanged => {
4862                "ATOM_BLUETOOTH_CONNECTION_STATE_CHANGED"
4863            }
4864            Self::AtomGpsSignalQualityChanged => "ATOM_GPS_SIGNAL_QUALITY_CHANGED",
4865            Self::AtomUsbConnectorStateChanged => "ATOM_USB_CONNECTOR_STATE_CHANGED",
4866            Self::AtomSpeakerImpedanceReported => "ATOM_SPEAKER_IMPEDANCE_REPORTED",
4867            Self::AtomHardwareFailed => "ATOM_HARDWARE_FAILED",
4868            Self::AtomPhysicalDropDetected => "ATOM_PHYSICAL_DROP_DETECTED",
4869            Self::AtomChargeCyclesReported => "ATOM_CHARGE_CYCLES_REPORTED",
4870            Self::AtomMobileConnectionStateChanged => {
4871                "ATOM_MOBILE_CONNECTION_STATE_CHANGED"
4872            }
4873            Self::AtomMobileRadioTechnologyChanged => {
4874                "ATOM_MOBILE_RADIO_TECHNOLOGY_CHANGED"
4875            }
4876            Self::AtomUsbDeviceAttached => "ATOM_USB_DEVICE_ATTACHED",
4877            Self::AtomAppCrashOccurred => "ATOM_APP_CRASH_OCCURRED",
4878            Self::AtomAnrOccurred => "ATOM_ANR_OCCURRED",
4879            Self::AtomWtfOccurred => "ATOM_WTF_OCCURRED",
4880            Self::AtomLowMemReported => "ATOM_LOW_MEM_REPORTED",
4881            Self::AtomGenericAtom => "ATOM_GENERIC_ATOM",
4882            Self::AtomVibratorStateChanged => "ATOM_VIBRATOR_STATE_CHANGED",
4883            Self::AtomDeferredJobStatsReported => "ATOM_DEFERRED_JOB_STATS_REPORTED",
4884            Self::AtomThermalThrottling => "ATOM_THERMAL_THROTTLING",
4885            Self::AtomBiometricAcquired => "ATOM_BIOMETRIC_ACQUIRED",
4886            Self::AtomBiometricAuthenticated => "ATOM_BIOMETRIC_AUTHENTICATED",
4887            Self::AtomBiometricErrorOccurred => "ATOM_BIOMETRIC_ERROR_OCCURRED",
4888            Self::AtomUiEventReported => "ATOM_UI_EVENT_REPORTED",
4889            Self::AtomBatteryHealthSnapshot => "ATOM_BATTERY_HEALTH_SNAPSHOT",
4890            Self::AtomSlowIo => "ATOM_SLOW_IO",
4891            Self::AtomBatteryCausedShutdown => "ATOM_BATTERY_CAUSED_SHUTDOWN",
4892            Self::AtomPhoneServiceStateChanged => "ATOM_PHONE_SERVICE_STATE_CHANGED",
4893            Self::AtomPhoneStateChanged => "ATOM_PHONE_STATE_CHANGED",
4894            Self::AtomUserRestrictionChanged => "ATOM_USER_RESTRICTION_CHANGED",
4895            Self::AtomSettingsUiChanged => "ATOM_SETTINGS_UI_CHANGED",
4896            Self::AtomConnectivityStateChanged => "ATOM_CONNECTIVITY_STATE_CHANGED",
4897            Self::AtomServiceStateChanged => "ATOM_SERVICE_STATE_CHANGED",
4898            Self::AtomServiceLaunchReported => "ATOM_SERVICE_LAUNCH_REPORTED",
4899            Self::AtomFlagFlipUpdateOccurred => "ATOM_FLAG_FLIP_UPDATE_OCCURRED",
4900            Self::AtomBinaryPushStateChanged => "ATOM_BINARY_PUSH_STATE_CHANGED",
4901            Self::AtomDevicePolicyEvent => "ATOM_DEVICE_POLICY_EVENT",
4902            Self::AtomDocsUiFileOpCanceled => "ATOM_DOCS_UI_FILE_OP_CANCELED",
4903            Self::AtomDocsUiFileOpCopyMoveModeReported => {
4904                "ATOM_DOCS_UI_FILE_OP_COPY_MOVE_MODE_REPORTED"
4905            }
4906            Self::AtomDocsUiFileOpFailure => "ATOM_DOCS_UI_FILE_OP_FAILURE",
4907            Self::AtomDocsUiProviderFileOp => "ATOM_DOCS_UI_PROVIDER_FILE_OP",
4908            Self::AtomDocsUiInvalidScopedAccessRequest => {
4909                "ATOM_DOCS_UI_INVALID_SCOPED_ACCESS_REQUEST"
4910            }
4911            Self::AtomDocsUiLaunchReported => "ATOM_DOCS_UI_LAUNCH_REPORTED",
4912            Self::AtomDocsUiRootVisited => "ATOM_DOCS_UI_ROOT_VISITED",
4913            Self::AtomDocsUiStartupMs => "ATOM_DOCS_UI_STARTUP_MS",
4914            Self::AtomDocsUiUserActionReported => "ATOM_DOCS_UI_USER_ACTION_REPORTED",
4915            Self::AtomWifiEnabledStateChanged => "ATOM_WIFI_ENABLED_STATE_CHANGED",
4916            Self::AtomWifiRunningStateChanged => "ATOM_WIFI_RUNNING_STATE_CHANGED",
4917            Self::AtomAppCompacted => "ATOM_APP_COMPACTED",
4918            Self::AtomNetworkDnsEventReported => "ATOM_NETWORK_DNS_EVENT_REPORTED",
4919            Self::AtomDocsUiPickerLaunchedFromReported => {
4920                "ATOM_DOCS_UI_PICKER_LAUNCHED_FROM_REPORTED"
4921            }
4922            Self::AtomDocsUiPickResultReported => "ATOM_DOCS_UI_PICK_RESULT_REPORTED",
4923            Self::AtomDocsUiSearchModeReported => "ATOM_DOCS_UI_SEARCH_MODE_REPORTED",
4924            Self::AtomDocsUiSearchTypeReported => "ATOM_DOCS_UI_SEARCH_TYPE_REPORTED",
4925            Self::AtomDataStallEvent => "ATOM_DATA_STALL_EVENT",
4926            Self::AtomRescuePartyResetReported => "ATOM_RESCUE_PARTY_RESET_REPORTED",
4927            Self::AtomSignedConfigReported => "ATOM_SIGNED_CONFIG_REPORTED",
4928            Self::AtomGnssNiEventReported => "ATOM_GNSS_NI_EVENT_REPORTED",
4929            Self::AtomBluetoothLinkLayerConnectionEvent => {
4930                "ATOM_BLUETOOTH_LINK_LAYER_CONNECTION_EVENT"
4931            }
4932            Self::AtomBluetoothAclConnectionStateChanged => {
4933                "ATOM_BLUETOOTH_ACL_CONNECTION_STATE_CHANGED"
4934            }
4935            Self::AtomBluetoothScoConnectionStateChanged => {
4936                "ATOM_BLUETOOTH_SCO_CONNECTION_STATE_CHANGED"
4937            }
4938            Self::AtomAppDowngraded => "ATOM_APP_DOWNGRADED",
4939            Self::AtomAppOptimizedAfterDowngraded => {
4940                "ATOM_APP_OPTIMIZED_AFTER_DOWNGRADED"
4941            }
4942            Self::AtomLowStorageStateChanged => "ATOM_LOW_STORAGE_STATE_CHANGED",
4943            Self::AtomGnssNfwNotificationReported => {
4944                "ATOM_GNSS_NFW_NOTIFICATION_REPORTED"
4945            }
4946            Self::AtomGnssConfigurationReported => "ATOM_GNSS_CONFIGURATION_REPORTED",
4947            Self::AtomUsbPortOverheatEventReported => {
4948                "ATOM_USB_PORT_OVERHEAT_EVENT_REPORTED"
4949            }
4950            Self::AtomNfcErrorOccurred => "ATOM_NFC_ERROR_OCCURRED",
4951            Self::AtomNfcStateChanged => "ATOM_NFC_STATE_CHANGED",
4952            Self::AtomNfcBeamOccurred => "ATOM_NFC_BEAM_OCCURRED",
4953            Self::AtomNfcCardemulationOccurred => "ATOM_NFC_CARDEMULATION_OCCURRED",
4954            Self::AtomNfcTagOccurred => "ATOM_NFC_TAG_OCCURRED",
4955            Self::AtomNfcHceTransactionOccurred => "ATOM_NFC_HCE_TRANSACTION_OCCURRED",
4956            Self::AtomSeStateChanged => "ATOM_SE_STATE_CHANGED",
4957            Self::AtomSeOmapiReported => "ATOM_SE_OMAPI_REPORTED",
4958            Self::AtomBroadcastDispatchLatencyReported => {
4959                "ATOM_BROADCAST_DISPATCH_LATENCY_REPORTED"
4960            }
4961            Self::AtomAttentionManagerServiceResultReported => {
4962                "ATOM_ATTENTION_MANAGER_SERVICE_RESULT_REPORTED"
4963            }
4964            Self::AtomAdbConnectionChanged => "ATOM_ADB_CONNECTION_CHANGED",
4965            Self::AtomSpeechDspStatReported => "ATOM_SPEECH_DSP_STAT_REPORTED",
4966            Self::AtomUsbContaminantReported => "ATOM_USB_CONTAMINANT_REPORTED",
4967            Self::AtomWatchdogRollbackOccurred => "ATOM_WATCHDOG_ROLLBACK_OCCURRED",
4968            Self::AtomBiometricSystemHealthIssueDetected => {
4969                "ATOM_BIOMETRIC_SYSTEM_HEALTH_ISSUE_DETECTED"
4970            }
4971            Self::AtomBubbleUiChanged => "ATOM_BUBBLE_UI_CHANGED",
4972            Self::AtomScheduledJobConstraintChanged => {
4973                "ATOM_SCHEDULED_JOB_CONSTRAINT_CHANGED"
4974            }
4975            Self::AtomBluetoothActiveDeviceChanged => {
4976                "ATOM_BLUETOOTH_ACTIVE_DEVICE_CHANGED"
4977            }
4978            Self::AtomBluetoothA2dpPlaybackStateChanged => {
4979                "ATOM_BLUETOOTH_A2DP_PLAYBACK_STATE_CHANGED"
4980            }
4981            Self::AtomBluetoothA2dpCodecConfigChanged => {
4982                "ATOM_BLUETOOTH_A2DP_CODEC_CONFIG_CHANGED"
4983            }
4984            Self::AtomBluetoothA2dpCodecCapabilityChanged => {
4985                "ATOM_BLUETOOTH_A2DP_CODEC_CAPABILITY_CHANGED"
4986            }
4987            Self::AtomBluetoothA2dpAudioUnderrunReported => {
4988                "ATOM_BLUETOOTH_A2DP_AUDIO_UNDERRUN_REPORTED"
4989            }
4990            Self::AtomBluetoothA2dpAudioOverrunReported => {
4991                "ATOM_BLUETOOTH_A2DP_AUDIO_OVERRUN_REPORTED"
4992            }
4993            Self::AtomBluetoothDeviceRssiReported => {
4994                "ATOM_BLUETOOTH_DEVICE_RSSI_REPORTED"
4995            }
4996            Self::AtomBluetoothDeviceFailedContactCounterReported => {
4997                "ATOM_BLUETOOTH_DEVICE_FAILED_CONTACT_COUNTER_REPORTED"
4998            }
4999            Self::AtomBluetoothDeviceTxPowerLevelReported => {
5000                "ATOM_BLUETOOTH_DEVICE_TX_POWER_LEVEL_REPORTED"
5001            }
5002            Self::AtomBluetoothHciTimeoutReported => {
5003                "ATOM_BLUETOOTH_HCI_TIMEOUT_REPORTED"
5004            }
5005            Self::AtomBluetoothQualityReportReported => {
5006                "ATOM_BLUETOOTH_QUALITY_REPORT_REPORTED"
5007            }
5008            Self::AtomBluetoothDeviceInfoReported => {
5009                "ATOM_BLUETOOTH_DEVICE_INFO_REPORTED"
5010            }
5011            Self::AtomBluetoothRemoteVersionInfoReported => {
5012                "ATOM_BLUETOOTH_REMOTE_VERSION_INFO_REPORTED"
5013            }
5014            Self::AtomBluetoothSdpAttributeReported => {
5015                "ATOM_BLUETOOTH_SDP_ATTRIBUTE_REPORTED"
5016            }
5017            Self::AtomBluetoothBondStateChanged => "ATOM_BLUETOOTH_BOND_STATE_CHANGED",
5018            Self::AtomBluetoothClassicPairingEventReported => {
5019                "ATOM_BLUETOOTH_CLASSIC_PAIRING_EVENT_REPORTED"
5020            }
5021            Self::AtomBluetoothSmpPairingEventReported => {
5022                "ATOM_BLUETOOTH_SMP_PAIRING_EVENT_REPORTED"
5023            }
5024            Self::AtomScreenTimeoutExtensionReported => {
5025                "ATOM_SCREEN_TIMEOUT_EXTENSION_REPORTED"
5026            }
5027            Self::AtomProcessStartTime => "ATOM_PROCESS_START_TIME",
5028            Self::AtomPermissionGrantRequestResultReported => {
5029                "ATOM_PERMISSION_GRANT_REQUEST_RESULT_REPORTED"
5030            }
5031            Self::AtomBluetoothSocketConnectionStateChanged => {
5032                "ATOM_BLUETOOTH_SOCKET_CONNECTION_STATE_CHANGED"
5033            }
5034            Self::AtomDeviceIdentifierAccessDenied => {
5035                "ATOM_DEVICE_IDENTIFIER_ACCESS_DENIED"
5036            }
5037            Self::AtomBubbleDeveloperErrorReported => {
5038                "ATOM_BUBBLE_DEVELOPER_ERROR_REPORTED"
5039            }
5040            Self::AtomAssistGestureStageReported => "ATOM_ASSIST_GESTURE_STAGE_REPORTED",
5041            Self::AtomAssistGestureFeedbackReported => {
5042                "ATOM_ASSIST_GESTURE_FEEDBACK_REPORTED"
5043            }
5044            Self::AtomAssistGestureProgressReported => {
5045                "ATOM_ASSIST_GESTURE_PROGRESS_REPORTED"
5046            }
5047            Self::AtomTouchGestureClassified => "ATOM_TOUCH_GESTURE_CLASSIFIED",
5048            Self::AtomHiddenApiUsed => "ATOM_HIDDEN_API_USED",
5049            Self::AtomStyleUiChanged => "ATOM_STYLE_UI_CHANGED",
5050            Self::AtomPrivacyIndicatorsInteracted => "ATOM_PRIVACY_INDICATORS_INTERACTED",
5051            Self::AtomAppInstallOnExternalStorageReported => {
5052                "ATOM_APP_INSTALL_ON_EXTERNAL_STORAGE_REPORTED"
5053            }
5054            Self::AtomNetworkStackReported => "ATOM_NETWORK_STACK_REPORTED",
5055            Self::AtomAppMovedStorageReported => "ATOM_APP_MOVED_STORAGE_REPORTED",
5056            Self::AtomBiometricEnrolled => "ATOM_BIOMETRIC_ENROLLED",
5057            Self::AtomSystemServerWatchdogOccurred => {
5058                "ATOM_SYSTEM_SERVER_WATCHDOG_OCCURRED"
5059            }
5060            Self::AtomTombStoneOccurred => "ATOM_TOMB_STONE_OCCURRED",
5061            Self::AtomBluetoothClassOfDeviceReported => {
5062                "ATOM_BLUETOOTH_CLASS_OF_DEVICE_REPORTED"
5063            }
5064            Self::AtomIntelligenceEventReported => "ATOM_INTELLIGENCE_EVENT_REPORTED",
5065            Self::AtomThermalThrottlingSeverityStateChanged => {
5066                "ATOM_THERMAL_THROTTLING_SEVERITY_STATE_CHANGED"
5067            }
5068            Self::AtomRoleRequestResultReported => "ATOM_ROLE_REQUEST_RESULT_REPORTED",
5069            Self::AtomMediametricsAudiopolicyReported => {
5070                "ATOM_MEDIAMETRICS_AUDIOPOLICY_REPORTED"
5071            }
5072            Self::AtomMediametricsAudiorecordReported => {
5073                "ATOM_MEDIAMETRICS_AUDIORECORD_REPORTED"
5074            }
5075            Self::AtomMediametricsAudiothreadReported => {
5076                "ATOM_MEDIAMETRICS_AUDIOTHREAD_REPORTED"
5077            }
5078            Self::AtomMediametricsAudiotrackReported => {
5079                "ATOM_MEDIAMETRICS_AUDIOTRACK_REPORTED"
5080            }
5081            Self::AtomMediametricsCodecReported => "ATOM_MEDIAMETRICS_CODEC_REPORTED",
5082            Self::AtomMediametricsDrmWidevineReported => {
5083                "ATOM_MEDIAMETRICS_DRM_WIDEVINE_REPORTED"
5084            }
5085            Self::AtomMediametricsExtractorReported => {
5086                "ATOM_MEDIAMETRICS_EXTRACTOR_REPORTED"
5087            }
5088            Self::AtomMediametricsMediadrmReported => {
5089                "ATOM_MEDIAMETRICS_MEDIADRM_REPORTED"
5090            }
5091            Self::AtomMediametricsNuplayerReported => {
5092                "ATOM_MEDIAMETRICS_NUPLAYER_REPORTED"
5093            }
5094            Self::AtomMediametricsRecorderReported => {
5095                "ATOM_MEDIAMETRICS_RECORDER_REPORTED"
5096            }
5097            Self::AtomMediametricsDrmmanagerReported => {
5098                "ATOM_MEDIAMETRICS_DRMMANAGER_REPORTED"
5099            }
5100            Self::AtomCarPowerStateChanged => "ATOM_CAR_POWER_STATE_CHANGED",
5101            Self::AtomGarageModeInfo => "ATOM_GARAGE_MODE_INFO",
5102            Self::AtomTestAtomReported => "ATOM_TEST_ATOM_REPORTED",
5103            Self::AtomContentCaptureCallerMismatchReported => {
5104                "ATOM_CONTENT_CAPTURE_CALLER_MISMATCH_REPORTED"
5105            }
5106            Self::AtomContentCaptureServiceEvents => {
5107                "ATOM_CONTENT_CAPTURE_SERVICE_EVENTS"
5108            }
5109            Self::AtomContentCaptureSessionEvents => {
5110                "ATOM_CONTENT_CAPTURE_SESSION_EVENTS"
5111            }
5112            Self::AtomContentCaptureFlushed => "ATOM_CONTENT_CAPTURE_FLUSHED",
5113            Self::AtomLocationManagerApiUsageReported => {
5114                "ATOM_LOCATION_MANAGER_API_USAGE_REPORTED"
5115            }
5116            Self::AtomReviewPermissionsFragmentResultReported => {
5117                "ATOM_REVIEW_PERMISSIONS_FRAGMENT_RESULT_REPORTED"
5118            }
5119            Self::AtomRuntimePermissionsUpgradeResult => {
5120                "ATOM_RUNTIME_PERMISSIONS_UPGRADE_RESULT"
5121            }
5122            Self::AtomGrantPermissionsActivityButtonActions => {
5123                "ATOM_GRANT_PERMISSIONS_ACTIVITY_BUTTON_ACTIONS"
5124            }
5125            Self::AtomLocationAccessCheckNotificationAction => {
5126                "ATOM_LOCATION_ACCESS_CHECK_NOTIFICATION_ACTION"
5127            }
5128            Self::AtomAppPermissionFragmentActionReported => {
5129                "ATOM_APP_PERMISSION_FRAGMENT_ACTION_REPORTED"
5130            }
5131            Self::AtomAppPermissionFragmentViewed => {
5132                "ATOM_APP_PERMISSION_FRAGMENT_VIEWED"
5133            }
5134            Self::AtomAppPermissionsFragmentViewed => {
5135                "ATOM_APP_PERMISSIONS_FRAGMENT_VIEWED"
5136            }
5137            Self::AtomPermissionAppsFragmentViewed => {
5138                "ATOM_PERMISSION_APPS_FRAGMENT_VIEWED"
5139            }
5140            Self::AtomTextSelectionEvent => "ATOM_TEXT_SELECTION_EVENT",
5141            Self::AtomTextLinkifyEvent => "ATOM_TEXT_LINKIFY_EVENT",
5142            Self::AtomConversationActionsEvent => "ATOM_CONVERSATION_ACTIONS_EVENT",
5143            Self::AtomLanguageDetectionEvent => "ATOM_LANGUAGE_DETECTION_EVENT",
5144            Self::AtomExclusionRectStateChanged => "ATOM_EXCLUSION_RECT_STATE_CHANGED",
5145            Self::AtomBackGestureReportedReported => {
5146                "ATOM_BACK_GESTURE_REPORTED_REPORTED"
5147            }
5148            Self::AtomUpdateEngineUpdateAttemptReported => {
5149                "ATOM_UPDATE_ENGINE_UPDATE_ATTEMPT_REPORTED"
5150            }
5151            Self::AtomUpdateEngineSuccessfulUpdateReported => {
5152                "ATOM_UPDATE_ENGINE_SUCCESSFUL_UPDATE_REPORTED"
5153            }
5154            Self::AtomCameraActionEvent => "ATOM_CAMERA_ACTION_EVENT",
5155            Self::AtomAppCompatibilityChangeReported => {
5156                "ATOM_APP_COMPATIBILITY_CHANGE_REPORTED"
5157            }
5158            Self::AtomPerfettoUploaded => "ATOM_PERFETTO_UPLOADED",
5159            Self::AtomVmsClientConnectionStateChanged => {
5160                "ATOM_VMS_CLIENT_CONNECTION_STATE_CHANGED"
5161            }
5162            Self::AtomMediaProviderScanOccurred => "ATOM_MEDIA_PROVIDER_SCAN_OCCURRED",
5163            Self::AtomMediaContentDeleted => "ATOM_MEDIA_CONTENT_DELETED",
5164            Self::AtomMediaProviderPermissionRequested => {
5165                "ATOM_MEDIA_PROVIDER_PERMISSION_REQUESTED"
5166            }
5167            Self::AtomMediaProviderSchemaChanged => "ATOM_MEDIA_PROVIDER_SCHEMA_CHANGED",
5168            Self::AtomMediaProviderIdleMaintenanceFinished => {
5169                "ATOM_MEDIA_PROVIDER_IDLE_MAINTENANCE_FINISHED"
5170            }
5171            Self::AtomRebootEscrowRecoveryReported => {
5172                "ATOM_REBOOT_ESCROW_RECOVERY_REPORTED"
5173            }
5174            Self::AtomBootTimeEventDurationReported => {
5175                "ATOM_BOOT_TIME_EVENT_DURATION_REPORTED"
5176            }
5177            Self::AtomBootTimeEventElapsedTimeReported => {
5178                "ATOM_BOOT_TIME_EVENT_ELAPSED_TIME_REPORTED"
5179            }
5180            Self::AtomBootTimeEventUtcTimeReported => {
5181                "ATOM_BOOT_TIME_EVENT_UTC_TIME_REPORTED"
5182            }
5183            Self::AtomBootTimeEventErrorCodeReported => {
5184                "ATOM_BOOT_TIME_EVENT_ERROR_CODE_REPORTED"
5185            }
5186            Self::AtomUserspaceRebootReported => "ATOM_USERSPACE_REBOOT_REPORTED",
5187            Self::AtomNotificationReported => "ATOM_NOTIFICATION_REPORTED",
5188            Self::AtomNotificationPanelReported => "ATOM_NOTIFICATION_PANEL_REPORTED",
5189            Self::AtomNotificationChannelModified => "ATOM_NOTIFICATION_CHANNEL_MODIFIED",
5190            Self::AtomIntegrityCheckResultReported => {
5191                "ATOM_INTEGRITY_CHECK_RESULT_REPORTED"
5192            }
5193            Self::AtomIntegrityRulesPushed => "ATOM_INTEGRITY_RULES_PUSHED",
5194            Self::AtomCbMessageReported => "ATOM_CB_MESSAGE_REPORTED",
5195            Self::AtomCbMessageError => "ATOM_CB_MESSAGE_ERROR",
5196            Self::AtomWifiHealthStatReported => "ATOM_WIFI_HEALTH_STAT_REPORTED",
5197            Self::AtomWifiFailureStatReported => "ATOM_WIFI_FAILURE_STAT_REPORTED",
5198            Self::AtomWifiConnectionResultReported => {
5199                "ATOM_WIFI_CONNECTION_RESULT_REPORTED"
5200            }
5201            Self::AtomAppFreezeChanged => "ATOM_APP_FREEZE_CHANGED",
5202            Self::AtomSnapshotMergeReported => "ATOM_SNAPSHOT_MERGE_REPORTED",
5203            Self::AtomForegroundServiceAppOpSessionEnded => {
5204                "ATOM_FOREGROUND_SERVICE_APP_OP_SESSION_ENDED"
5205            }
5206            Self::AtomDisplayJankReported => "ATOM_DISPLAY_JANK_REPORTED",
5207            Self::AtomAppStandbyBucketChanged => "ATOM_APP_STANDBY_BUCKET_CHANGED",
5208            Self::AtomSharesheetStarted => "ATOM_SHARESHEET_STARTED",
5209            Self::AtomRankingSelected => "ATOM_RANKING_SELECTED",
5210            Self::AtomTvsettingsUiInteracted => "ATOM_TVSETTINGS_UI_INTERACTED",
5211            Self::AtomLauncherSnapshot => "ATOM_LAUNCHER_SNAPSHOT",
5212            Self::AtomPackageInstallerV2Reported => "ATOM_PACKAGE_INSTALLER_V2_REPORTED",
5213            Self::AtomUserLifecycleJourneyReported => {
5214                "ATOM_USER_LIFECYCLE_JOURNEY_REPORTED"
5215            }
5216            Self::AtomUserLifecycleEventOccurred => "ATOM_USER_LIFECYCLE_EVENT_OCCURRED",
5217            Self::AtomAccessibilityShortcutReported => {
5218                "ATOM_ACCESSIBILITY_SHORTCUT_REPORTED"
5219            }
5220            Self::AtomAccessibilityServiceReported => {
5221                "ATOM_ACCESSIBILITY_SERVICE_REPORTED"
5222            }
5223            Self::AtomDocsUiDragAndDropReported => "ATOM_DOCS_UI_DRAG_AND_DROP_REPORTED",
5224            Self::AtomAppUsageEventOccurred => "ATOM_APP_USAGE_EVENT_OCCURRED",
5225            Self::AtomAutoRevokeNotificationClicked => {
5226                "ATOM_AUTO_REVOKE_NOTIFICATION_CLICKED"
5227            }
5228            Self::AtomAutoRevokeFragmentAppViewed => {
5229                "ATOM_AUTO_REVOKE_FRAGMENT_APP_VIEWED"
5230            }
5231            Self::AtomAutoRevokedAppInteraction => "ATOM_AUTO_REVOKED_APP_INTERACTION",
5232            Self::AtomAppPermissionGroupsFragmentAutoRevokeAction => {
5233                "ATOM_APP_PERMISSION_GROUPS_FRAGMENT_AUTO_REVOKE_ACTION"
5234            }
5235            Self::AtomEvsUsageStatsReported => "ATOM_EVS_USAGE_STATS_REPORTED",
5236            Self::AtomAudioPowerUsageDataReported => {
5237                "ATOM_AUDIO_POWER_USAGE_DATA_REPORTED"
5238            }
5239            Self::AtomTvTunerStateChanged => "ATOM_TV_TUNER_STATE_CHANGED",
5240            Self::AtomMediaoutputOpSwitchReported => {
5241                "ATOM_MEDIAOUTPUT_OP_SWITCH_REPORTED"
5242            }
5243            Self::AtomCbMessageFiltered => "ATOM_CB_MESSAGE_FILTERED",
5244            Self::AtomTvTunerDvrStatus => "ATOM_TV_TUNER_DVR_STATUS",
5245            Self::AtomTvCasSessionOpenStatus => "ATOM_TV_CAS_SESSION_OPEN_STATUS",
5246            Self::AtomAssistantInvocationReported => "ATOM_ASSISTANT_INVOCATION_REPORTED",
5247            Self::AtomDisplayWakeReported => "ATOM_DISPLAY_WAKE_REPORTED",
5248            Self::AtomCarUserHalModifyUserRequestReported => {
5249                "ATOM_CAR_USER_HAL_MODIFY_USER_REQUEST_REPORTED"
5250            }
5251            Self::AtomCarUserHalModifyUserResponseReported => {
5252                "ATOM_CAR_USER_HAL_MODIFY_USER_RESPONSE_REPORTED"
5253            }
5254            Self::AtomCarUserHalPostSwitchResponseReported => {
5255                "ATOM_CAR_USER_HAL_POST_SWITCH_RESPONSE_REPORTED"
5256            }
5257            Self::AtomCarUserHalInitialUserInfoRequestReported => {
5258                "ATOM_CAR_USER_HAL_INITIAL_USER_INFO_REQUEST_REPORTED"
5259            }
5260            Self::AtomCarUserHalInitialUserInfoResponseReported => {
5261                "ATOM_CAR_USER_HAL_INITIAL_USER_INFO_RESPONSE_REPORTED"
5262            }
5263            Self::AtomCarUserHalUserAssociationRequestReported => {
5264                "ATOM_CAR_USER_HAL_USER_ASSOCIATION_REQUEST_REPORTED"
5265            }
5266            Self::AtomCarUserHalSetUserAssociationResponseReported => {
5267                "ATOM_CAR_USER_HAL_SET_USER_ASSOCIATION_RESPONSE_REPORTED"
5268            }
5269            Self::AtomNetworkIpProvisioningReported => {
5270                "ATOM_NETWORK_IP_PROVISIONING_REPORTED"
5271            }
5272            Self::AtomNetworkDhcpRenewReported => "ATOM_NETWORK_DHCP_RENEW_REPORTED",
5273            Self::AtomNetworkValidationReported => "ATOM_NETWORK_VALIDATION_REPORTED",
5274            Self::AtomNetworkStackQuirkReported => "ATOM_NETWORK_STACK_QUIRK_REPORTED",
5275            Self::AtomMediametricsAudiorecorddeviceusageReported => {
5276                "ATOM_MEDIAMETRICS_AUDIORECORDDEVICEUSAGE_REPORTED"
5277            }
5278            Self::AtomMediametricsAudiothreaddeviceusageReported => {
5279                "ATOM_MEDIAMETRICS_AUDIOTHREADDEVICEUSAGE_REPORTED"
5280            }
5281            Self::AtomMediametricsAudiotrackdeviceusageReported => {
5282                "ATOM_MEDIAMETRICS_AUDIOTRACKDEVICEUSAGE_REPORTED"
5283            }
5284            Self::AtomMediametricsAudiodeviceconnectionReported => {
5285                "ATOM_MEDIAMETRICS_AUDIODEVICECONNECTION_REPORTED"
5286            }
5287            Self::AtomBlobCommitted => "ATOM_BLOB_COMMITTED",
5288            Self::AtomBlobLeased => "ATOM_BLOB_LEASED",
5289            Self::AtomBlobOpened => "ATOM_BLOB_OPENED",
5290            Self::AtomContactsProviderStatusReported => {
5291                "ATOM_CONTACTS_PROVIDER_STATUS_REPORTED"
5292            }
5293            Self::AtomKeystoreKeyEventReported => "ATOM_KEYSTORE_KEY_EVENT_REPORTED",
5294            Self::AtomNetworkTetheringReported => "ATOM_NETWORK_TETHERING_REPORTED",
5295            Self::AtomImeTouchReported => "ATOM_IME_TOUCH_REPORTED",
5296            Self::AtomUiInteractionFrameInfoReported => {
5297                "ATOM_UI_INTERACTION_FRAME_INFO_REPORTED"
5298            }
5299            Self::AtomUiActionLatencyReported => "ATOM_UI_ACTION_LATENCY_REPORTED",
5300            Self::AtomWifiDisconnectReported => "ATOM_WIFI_DISCONNECT_REPORTED",
5301            Self::AtomWifiConnectionStateChanged => "ATOM_WIFI_CONNECTION_STATE_CHANGED",
5302            Self::AtomHdmiCecActiveSourceChanged => "ATOM_HDMI_CEC_ACTIVE_SOURCE_CHANGED",
5303            Self::AtomHdmiCecMessageReported => "ATOM_HDMI_CEC_MESSAGE_REPORTED",
5304            Self::AtomAirplaneMode => "ATOM_AIRPLANE_MODE",
5305            Self::AtomModemRestart => "ATOM_MODEM_RESTART",
5306            Self::AtomCarrierIdMismatchReported => "ATOM_CARRIER_ID_MISMATCH_REPORTED",
5307            Self::AtomCarrierIdTableUpdated => "ATOM_CARRIER_ID_TABLE_UPDATED",
5308            Self::AtomDataStallRecoveryReported => "ATOM_DATA_STALL_RECOVERY_REPORTED",
5309            Self::AtomMediametricsMediaparserReported => {
5310                "ATOM_MEDIAMETRICS_MEDIAPARSER_REPORTED"
5311            }
5312            Self::AtomTlsHandshakeReported => "ATOM_TLS_HANDSHAKE_REPORTED",
5313            Self::AtomTextClassifierApiUsageReported => {
5314                "ATOM_TEXT_CLASSIFIER_API_USAGE_REPORTED"
5315            }
5316            Self::AtomCarWatchdogKillStatsReported => {
5317                "ATOM_CAR_WATCHDOG_KILL_STATS_REPORTED"
5318            }
5319            Self::AtomMediametricsPlaybackReported => {
5320                "ATOM_MEDIAMETRICS_PLAYBACK_REPORTED"
5321            }
5322            Self::AtomMediaNetworkInfoChanged => "ATOM_MEDIA_NETWORK_INFO_CHANGED",
5323            Self::AtomMediaPlaybackStateChanged => "ATOM_MEDIA_PLAYBACK_STATE_CHANGED",
5324            Self::AtomMediaPlaybackErrorReported => "ATOM_MEDIA_PLAYBACK_ERROR_REPORTED",
5325            Self::AtomMediaPlaybackTrackChanged => "ATOM_MEDIA_PLAYBACK_TRACK_CHANGED",
5326            Self::AtomWifiScanReported => "ATOM_WIFI_SCAN_REPORTED",
5327            Self::AtomWifiPnoScanReported => "ATOM_WIFI_PNO_SCAN_REPORTED",
5328            Self::AtomTifTuneChanged => "ATOM_TIF_TUNE_CHANGED",
5329            Self::AtomAutoRotateReported => "ATOM_AUTO_ROTATE_REPORTED",
5330            Self::AtomPerfettoTrigger => "ATOM_PERFETTO_TRIGGER",
5331            Self::AtomTranscodingData => "ATOM_TRANSCODING_DATA",
5332            Self::AtomImsServiceEntitlementUpdated => {
5333                "ATOM_IMS_SERVICE_ENTITLEMENT_UPDATED"
5334            }
5335            Self::AtomDeviceRotated => "ATOM_DEVICE_ROTATED",
5336            Self::AtomSimSpecificSettingsRestored => {
5337                "ATOM_SIM_SPECIFIC_SETTINGS_RESTORED"
5338            }
5339            Self::AtomTextClassifierDownloadReported => {
5340                "ATOM_TEXT_CLASSIFIER_DOWNLOAD_REPORTED"
5341            }
5342            Self::AtomPinStorageEvent => "ATOM_PIN_STORAGE_EVENT",
5343            Self::AtomFaceDownReported => "ATOM_FACE_DOWN_REPORTED",
5344            Self::AtomBluetoothHalCrashReasonReported => {
5345                "ATOM_BLUETOOTH_HAL_CRASH_REASON_REPORTED"
5346            }
5347            Self::AtomRebootEscrowPreparationReported => {
5348                "ATOM_REBOOT_ESCROW_PREPARATION_REPORTED"
5349            }
5350            Self::AtomRebootEscrowLskfCaptureReported => {
5351                "ATOM_REBOOT_ESCROW_LSKF_CAPTURE_REPORTED"
5352            }
5353            Self::AtomRebootEscrowRebootReported => "ATOM_REBOOT_ESCROW_REBOOT_REPORTED",
5354            Self::AtomBinderLatencyReported => "ATOM_BINDER_LATENCY_REPORTED",
5355            Self::AtomMediametricsAaudiostreamReported => {
5356                "ATOM_MEDIAMETRICS_AAUDIOSTREAM_REPORTED"
5357            }
5358            Self::AtomMediaTranscodingSessionEnded => {
5359                "ATOM_MEDIA_TRANSCODING_SESSION_ENDED"
5360            }
5361            Self::AtomMagnificationUsageReported => "ATOM_MAGNIFICATION_USAGE_REPORTED",
5362            Self::AtomMagnificationModeWithImeOnReported => {
5363                "ATOM_MAGNIFICATION_MODE_WITH_IME_ON_REPORTED"
5364            }
5365            Self::AtomAppSearchCallStatsReported => "ATOM_APP_SEARCH_CALL_STATS_REPORTED",
5366            Self::AtomAppSearchPutDocumentStatsReported => {
5367                "ATOM_APP_SEARCH_PUT_DOCUMENT_STATS_REPORTED"
5368            }
5369            Self::AtomDeviceControlChanged => "ATOM_DEVICE_CONTROL_CHANGED",
5370            Self::AtomDeviceStateChanged => "ATOM_DEVICE_STATE_CHANGED",
5371            Self::AtomInputdeviceRegistered => "ATOM_INPUTDEVICE_REGISTERED",
5372            Self::AtomSmartspaceCardReported => "ATOM_SMARTSPACE_CARD_REPORTED",
5373            Self::AtomAuthPromptAuthenticateInvoked => {
5374                "ATOM_AUTH_PROMPT_AUTHENTICATE_INVOKED"
5375            }
5376            Self::AtomAuthManagerCanAuthenticateInvoked => {
5377                "ATOM_AUTH_MANAGER_CAN_AUTHENTICATE_INVOKED"
5378            }
5379            Self::AtomAuthEnrollActionInvoked => "ATOM_AUTH_ENROLL_ACTION_INVOKED",
5380            Self::AtomAuthDeprecatedApiUsed => "ATOM_AUTH_DEPRECATED_API_USED",
5381            Self::AtomUnattendedRebootOccurred => "ATOM_UNATTENDED_REBOOT_OCCURRED",
5382            Self::AtomLongRebootBlockingReported => "ATOM_LONG_REBOOT_BLOCKING_REPORTED",
5383            Self::AtomLocationTimeZoneProviderStateChanged => {
5384                "ATOM_LOCATION_TIME_ZONE_PROVIDER_STATE_CHANGED"
5385            }
5386            Self::AtomFdtrackEventOccurred => "ATOM_FDTRACK_EVENT_OCCURRED",
5387            Self::AtomTimeoutAutoExtendedReported => {
5388                "ATOM_TIMEOUT_AUTO_EXTENDED_REPORTED"
5389            }
5390            Self::AtomAlarmBatchDelivered => "ATOM_ALARM_BATCH_DELIVERED",
5391            Self::AtomAlarmScheduled => "ATOM_ALARM_SCHEDULED",
5392            Self::AtomCarWatchdogIoOveruseStatsReported => {
5393                "ATOM_CAR_WATCHDOG_IO_OVERUSE_STATS_REPORTED"
5394            }
5395            Self::AtomUserLevelHibernationStateChanged => {
5396                "ATOM_USER_LEVEL_HIBERNATION_STATE_CHANGED"
5397            }
5398            Self::AtomAppSearchInitializeStatsReported => {
5399                "ATOM_APP_SEARCH_INITIALIZE_STATS_REPORTED"
5400            }
5401            Self::AtomAppSearchQueryStatsReported => {
5402                "ATOM_APP_SEARCH_QUERY_STATS_REPORTED"
5403            }
5404            Self::AtomAppProcessDied => "ATOM_APP_PROCESS_DIED",
5405            Self::AtomNetworkIpReachabilityMonitorReported => {
5406                "ATOM_NETWORK_IP_REACHABILITY_MONITOR_REPORTED"
5407            }
5408            Self::AtomSlowInputEventReported => "ATOM_SLOW_INPUT_EVENT_REPORTED",
5409            Self::AtomAnrOccurredProcessingStarted => {
5410                "ATOM_ANR_OCCURRED_PROCESSING_STARTED"
5411            }
5412            Self::AtomAppSearchRemoveStatsReported => {
5413                "ATOM_APP_SEARCH_REMOVE_STATS_REPORTED"
5414            }
5415            Self::AtomMediaCodecReported => "ATOM_MEDIA_CODEC_REPORTED",
5416            Self::AtomPermissionUsageFragmentInteraction => {
5417                "ATOM_PERMISSION_USAGE_FRAGMENT_INTERACTION"
5418            }
5419            Self::AtomPermissionDetailsInteraction => {
5420                "ATOM_PERMISSION_DETAILS_INTERACTION"
5421            }
5422            Self::AtomPrivacySensorToggleInteraction => {
5423                "ATOM_PRIVACY_SENSOR_TOGGLE_INTERACTION"
5424            }
5425            Self::AtomPrivacyToggleDialogInteraction => {
5426                "ATOM_PRIVACY_TOGGLE_DIALOG_INTERACTION"
5427            }
5428            Self::AtomAppSearchOptimizeStatsReported => {
5429                "ATOM_APP_SEARCH_OPTIMIZE_STATS_REPORTED"
5430            }
5431            Self::AtomNonA11yToolServiceWarningReport => {
5432                "ATOM_NON_A11Y_TOOL_SERVICE_WARNING_REPORT"
5433            }
5434            Self::AtomAppCompatStateChanged => "ATOM_APP_COMPAT_STATE_CHANGED",
5435            Self::AtomSizeCompatRestartButtonEventReported => {
5436                "ATOM_SIZE_COMPAT_RESTART_BUTTON_EVENT_REPORTED"
5437            }
5438            Self::AtomSplitscreenUiChanged => "ATOM_SPLITSCREEN_UI_CHANGED",
5439            Self::AtomNetworkDnsHandshakeReported => {
5440                "ATOM_NETWORK_DNS_HANDSHAKE_REPORTED"
5441            }
5442            Self::AtomBluetoothCodePathCounter => "ATOM_BLUETOOTH_CODE_PATH_COUNTER",
5443            Self::AtomBluetoothLeBatchScanReportDelay => {
5444                "ATOM_BLUETOOTH_LE_BATCH_SCAN_REPORT_DELAY"
5445            }
5446            Self::AtomAccessibilityFloatingMenuUiChanged => {
5447                "ATOM_ACCESSIBILITY_FLOATING_MENU_UI_CHANGED"
5448            }
5449            Self::AtomNeuralnetworksCompilationCompleted => {
5450                "ATOM_NEURALNETWORKS_COMPILATION_COMPLETED"
5451            }
5452            Self::AtomNeuralnetworksExecutionCompleted => {
5453                "ATOM_NEURALNETWORKS_EXECUTION_COMPLETED"
5454            }
5455            Self::AtomNeuralnetworksCompilationFailed => {
5456                "ATOM_NEURALNETWORKS_COMPILATION_FAILED"
5457            }
5458            Self::AtomNeuralnetworksExecutionFailed => {
5459                "ATOM_NEURALNETWORKS_EXECUTION_FAILED"
5460            }
5461            Self::AtomContextHubBooted => "ATOM_CONTEXT_HUB_BOOTED",
5462            Self::AtomContextHubRestarted => "ATOM_CONTEXT_HUB_RESTARTED",
5463            Self::AtomContextHubLoadedNanoappSnapshotReported => {
5464                "ATOM_CONTEXT_HUB_LOADED_NANOAPP_SNAPSHOT_REPORTED"
5465            }
5466            Self::AtomChreCodeDownloadTransacted => "ATOM_CHRE_CODE_DOWNLOAD_TRANSACTED",
5467            Self::AtomUwbSessionInited => "ATOM_UWB_SESSION_INITED",
5468            Self::AtomUwbSessionClosed => "ATOM_UWB_SESSION_CLOSED",
5469            Self::AtomUwbFirstRangingReceived => "ATOM_UWB_FIRST_RANGING_RECEIVED",
5470            Self::AtomUwbRangingMeasurementReceived => {
5471                "ATOM_UWB_RANGING_MEASUREMENT_RECEIVED"
5472            }
5473            Self::AtomTextClassifierDownloadWorkScheduled => {
5474                "ATOM_TEXT_CLASSIFIER_DOWNLOAD_WORK_SCHEDULED"
5475            }
5476            Self::AtomTextClassifierDownloadWorkCompleted => {
5477                "ATOM_TEXT_CLASSIFIER_DOWNLOAD_WORK_COMPLETED"
5478            }
5479            Self::AtomClipboardCleared => "ATOM_CLIPBOARD_CLEARED",
5480            Self::AtomVmCreationRequested => "ATOM_VM_CREATION_REQUESTED",
5481            Self::AtomNearbyDeviceScanStateChanged => {
5482                "ATOM_NEARBY_DEVICE_SCAN_STATE_CHANGED"
5483            }
5484            Self::AtomApplicationLocalesChanged => "ATOM_APPLICATION_LOCALES_CHANGED",
5485            Self::AtomMediametricsAudiotrackstatusReported => {
5486                "ATOM_MEDIAMETRICS_AUDIOTRACKSTATUS_REPORTED"
5487            }
5488            Self::AtomFoldStateDurationReported => "ATOM_FOLD_STATE_DURATION_REPORTED",
5489            Self::AtomLocationTimeZoneProviderControllerStateChanged => {
5490                "ATOM_LOCATION_TIME_ZONE_PROVIDER_CONTROLLER_STATE_CHANGED"
5491            }
5492            Self::AtomDisplayHbmStateChanged => "ATOM_DISPLAY_HBM_STATE_CHANGED",
5493            Self::AtomDisplayHbmBrightnessChanged => {
5494                "ATOM_DISPLAY_HBM_BRIGHTNESS_CHANGED"
5495            }
5496            Self::AtomPersistentUriPermissionsFlushed => {
5497                "ATOM_PERSISTENT_URI_PERMISSIONS_FLUSHED"
5498            }
5499            Self::AtomEarlyBootCompOsArtifactsCheckReported => {
5500                "ATOM_EARLY_BOOT_COMP_OS_ARTIFACTS_CHECK_REPORTED"
5501            }
5502            Self::AtomVbmetaDigestReported => "ATOM_VBMETA_DIGEST_REPORTED",
5503            Self::AtomApexInfoGathered => "ATOM_APEX_INFO_GATHERED",
5504            Self::AtomPvmInfoGathered => "ATOM_PVM_INFO_GATHERED",
5505            Self::AtomWearSettingsUiInteracted => "ATOM_WEAR_SETTINGS_UI_INTERACTED",
5506            Self::AtomTracingServiceReportEvent => "ATOM_TRACING_SERVICE_REPORT_EVENT",
5507            Self::AtomMediametricsAudiorecordstatusReported => {
5508                "ATOM_MEDIAMETRICS_AUDIORECORDSTATUS_REPORTED"
5509            }
5510            Self::AtomLauncherLatency => "ATOM_LAUNCHER_LATENCY",
5511            Self::AtomDropboxEntryDropped => "ATOM_DROPBOX_ENTRY_DROPPED",
5512            Self::AtomWifiP2pConnectionReported => "ATOM_WIFI_P2P_CONNECTION_REPORTED",
5513            Self::AtomGameStateChanged => "ATOM_GAME_STATE_CHANGED",
5514            Self::AtomHotwordDetectorCreateRequested => {
5515                "ATOM_HOTWORD_DETECTOR_CREATE_REQUESTED"
5516            }
5517            Self::AtomHotwordDetectionServiceInitResultReported => {
5518                "ATOM_HOTWORD_DETECTION_SERVICE_INIT_RESULT_REPORTED"
5519            }
5520            Self::AtomHotwordDetectionServiceRestarted => {
5521                "ATOM_HOTWORD_DETECTION_SERVICE_RESTARTED"
5522            }
5523            Self::AtomHotwordDetectorKeyphraseTriggered => {
5524                "ATOM_HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED"
5525            }
5526            Self::AtomHotwordDetectorEvents => "ATOM_HOTWORD_DETECTOR_EVENTS",
5527            Self::AtomBootCompletedBroadcastCompletionLatencyReported => {
5528                "ATOM_BOOT_COMPLETED_BROADCAST_COMPLETION_LATENCY_REPORTED"
5529            }
5530            Self::AtomContactsIndexerUpdateStatsReported => {
5531                "ATOM_CONTACTS_INDEXER_UPDATE_STATS_REPORTED"
5532            }
5533            Self::AtomAppBackgroundRestrictionsInfo => {
5534                "ATOM_APP_BACKGROUND_RESTRICTIONS_INFO"
5535            }
5536            Self::AtomMmsSmsProviderGetThreadIdFailed => {
5537                "ATOM_MMS_SMS_PROVIDER_GET_THREAD_ID_FAILED"
5538            }
5539            Self::AtomMmsSmsDatabaseHelperOnUpgradeFailed => {
5540                "ATOM_MMS_SMS_DATABASE_HELPER_ON_UPGRADE_FAILED"
5541            }
5542            Self::AtomPermissionReminderNotificationInteracted => {
5543                "ATOM_PERMISSION_REMINDER_NOTIFICATION_INTERACTED"
5544            }
5545            Self::AtomRecentPermissionDecisionsInteracted => {
5546                "ATOM_RECENT_PERMISSION_DECISIONS_INTERACTED"
5547            }
5548            Self::AtomGnssPsdsDownloadReported => "ATOM_GNSS_PSDS_DOWNLOAD_REPORTED",
5549            Self::AtomLeAudioConnectionSessionReported => {
5550                "ATOM_LE_AUDIO_CONNECTION_SESSION_REPORTED"
5551            }
5552            Self::AtomLeAudioBroadcastSessionReported => {
5553                "ATOM_LE_AUDIO_BROADCAST_SESSION_REPORTED"
5554            }
5555            Self::AtomDreamUiEventReported => "ATOM_DREAM_UI_EVENT_REPORTED",
5556            Self::AtomTaskManagerEventReported => "ATOM_TASK_MANAGER_EVENT_REPORTED",
5557            Self::AtomCdmAssociationAction => "ATOM_CDM_ASSOCIATION_ACTION",
5558            Self::AtomMagnificationTripleTapAndHoldActivatedSessionReported => {
5559                "ATOM_MAGNIFICATION_TRIPLE_TAP_AND_HOLD_ACTIVATED_SESSION_REPORTED"
5560            }
5561            Self::AtomMagnificationFollowTypingFocusActivatedSessionReported => {
5562                "ATOM_MAGNIFICATION_FOLLOW_TYPING_FOCUS_ACTIVATED_SESSION_REPORTED"
5563            }
5564            Self::AtomAccessibilityTextReadingOptionsChanged => {
5565                "ATOM_ACCESSIBILITY_TEXT_READING_OPTIONS_CHANGED"
5566            }
5567            Self::AtomWifiSetupFailureCrashReported => {
5568                "ATOM_WIFI_SETUP_FAILURE_CRASH_REPORTED"
5569            }
5570            Self::AtomUwbDeviceErrorReported => "ATOM_UWB_DEVICE_ERROR_REPORTED",
5571            Self::AtomIsolatedCompilationScheduled => {
5572                "ATOM_ISOLATED_COMPILATION_SCHEDULED"
5573            }
5574            Self::AtomIsolatedCompilationEnded => "ATOM_ISOLATED_COMPILATION_ENDED",
5575            Self::AtomOnsOpportunisticEsimProvisioningComplete => {
5576                "ATOM_ONS_OPPORTUNISTIC_ESIM_PROVISIONING_COMPLETE"
5577            }
5578            Self::AtomSystemServerPreWatchdogOccurred => {
5579                "ATOM_SYSTEM_SERVER_PRE_WATCHDOG_OCCURRED"
5580            }
5581            Self::AtomTelephonyAnomalyDetected => "ATOM_TELEPHONY_ANOMALY_DETECTED",
5582            Self::AtomLetterboxPositionChanged => "ATOM_LETTERBOX_POSITION_CHANGED",
5583            Self::AtomRemoteKeyProvisioningAttempt => {
5584                "ATOM_REMOTE_KEY_PROVISIONING_ATTEMPT"
5585            }
5586            Self::AtomRemoteKeyProvisioningNetworkInfo => {
5587                "ATOM_REMOTE_KEY_PROVISIONING_NETWORK_INFO"
5588            }
5589            Self::AtomRemoteKeyProvisioningTiming => {
5590                "ATOM_REMOTE_KEY_PROVISIONING_TIMING"
5591            }
5592            Self::AtomMediaoutputOpInteractionReport => {
5593                "ATOM_MEDIAOUTPUT_OP_INTERACTION_REPORT"
5594            }
5595            Self::AtomSyncExemptionOccurred => "ATOM_SYNC_EXEMPTION_OCCURRED",
5596            Self::AtomAutofillPresentationEventReported => {
5597                "ATOM_AUTOFILL_PRESENTATION_EVENT_REPORTED"
5598            }
5599            Self::AtomDockStateChanged => "ATOM_DOCK_STATE_CHANGED",
5600            Self::AtomSafetySourceStateCollected => "ATOM_SAFETY_SOURCE_STATE_COLLECTED",
5601            Self::AtomSafetyCenterSystemEventReported => {
5602                "ATOM_SAFETY_CENTER_SYSTEM_EVENT_REPORTED"
5603            }
5604            Self::AtomSafetyCenterInteractionReported => {
5605                "ATOM_SAFETY_CENTER_INTERACTION_REPORTED"
5606            }
5607            Self::AtomSettingsProviderSettingChanged => {
5608                "ATOM_SETTINGS_PROVIDER_SETTING_CHANGED"
5609            }
5610            Self::AtomBroadcastDeliveryEventReported => {
5611                "ATOM_BROADCAST_DELIVERY_EVENT_REPORTED"
5612            }
5613            Self::AtomServiceRequestEventReported => {
5614                "ATOM_SERVICE_REQUEST_EVENT_REPORTED"
5615            }
5616            Self::AtomProviderAcquisitionEventReported => {
5617                "ATOM_PROVIDER_ACQUISITION_EVENT_REPORTED"
5618            }
5619            Self::AtomBluetoothDeviceNameReported => {
5620                "ATOM_BLUETOOTH_DEVICE_NAME_REPORTED"
5621            }
5622            Self::AtomCbConfigUpdated => "ATOM_CB_CONFIG_UPDATED",
5623            Self::AtomCbModuleErrorReported => "ATOM_CB_MODULE_ERROR_REPORTED",
5624            Self::AtomCbServiceFeatureChanged => "ATOM_CB_SERVICE_FEATURE_CHANGED",
5625            Self::AtomCbReceiverFeatureChanged => "ATOM_CB_RECEIVER_FEATURE_CHANGED",
5626            Self::AtomPrivacySignalNotificationInteraction => {
5627                "ATOM_PRIVACY_SIGNAL_NOTIFICATION_INTERACTION"
5628            }
5629            Self::AtomPrivacySignalIssueCardInteraction => {
5630                "ATOM_PRIVACY_SIGNAL_ISSUE_CARD_INTERACTION"
5631            }
5632            Self::AtomPrivacySignalsJobFailure => "ATOM_PRIVACY_SIGNALS_JOB_FAILURE",
5633            Self::AtomVibrationReported => "ATOM_VIBRATION_REPORTED",
5634            Self::AtomUwbRangingStart => "ATOM_UWB_RANGING_START",
5635            Self::AtomAppCompactedV2 => "ATOM_APP_COMPACTED_V2",
5636            Self::AtomDisplayBrightnessChanged => "ATOM_DISPLAY_BRIGHTNESS_CHANGED",
5637            Self::AtomActivityActionBlocked => "ATOM_ACTIVITY_ACTION_BLOCKED",
5638            Self::AtomNetworkDnsServerSupportReported => {
5639                "ATOM_NETWORK_DNS_SERVER_SUPPORT_REPORTED"
5640            }
5641            Self::AtomVmBooted => "ATOM_VM_BOOTED",
5642            Self::AtomVmExited => "ATOM_VM_EXITED",
5643            Self::AtomAmbientBrightnessStatsReported => {
5644                "ATOM_AMBIENT_BRIGHTNESS_STATS_REPORTED"
5645            }
5646            Self::AtomMediametricsSpatializercapabilitiesReported => {
5647                "ATOM_MEDIAMETRICS_SPATIALIZERCAPABILITIES_REPORTED"
5648            }
5649            Self::AtomMediametricsSpatializerdeviceenabledReported => {
5650                "ATOM_MEDIAMETRICS_SPATIALIZERDEVICEENABLED_REPORTED"
5651            }
5652            Self::AtomMediametricsHeadtrackerdeviceenabledReported => {
5653                "ATOM_MEDIAMETRICS_HEADTRACKERDEVICEENABLED_REPORTED"
5654            }
5655            Self::AtomMediametricsHeadtrackerdevicesupportedReported => {
5656                "ATOM_MEDIAMETRICS_HEADTRACKERDEVICESUPPORTED_REPORTED"
5657            }
5658            Self::AtomHearingAidInfoReported => "ATOM_HEARING_AID_INFO_REPORTED",
5659            Self::AtomDeviceWideJobConstraintChanged => {
5660                "ATOM_DEVICE_WIDE_JOB_CONSTRAINT_CHANGED"
5661            }
5662            Self::AtomAmbientModeChanged => "ATOM_AMBIENT_MODE_CHANGED",
5663            Self::AtomAnrLatencyReported => "ATOM_ANR_LATENCY_REPORTED",
5664            Self::AtomResourceApiInfo => "ATOM_RESOURCE_API_INFO",
5665            Self::AtomSystemDefaultNetworkChanged => {
5666                "ATOM_SYSTEM_DEFAULT_NETWORK_CHANGED"
5667            }
5668            Self::AtomIwlanSetupDataCallResultReported => {
5669                "ATOM_IWLAN_SETUP_DATA_CALL_RESULT_REPORTED"
5670            }
5671            Self::AtomIwlanPdnDisconnectedReasonReported => {
5672                "ATOM_IWLAN_PDN_DISCONNECTED_REASON_REPORTED"
5673            }
5674            Self::AtomAirplaneModeSessionReported => {
5675                "ATOM_AIRPLANE_MODE_SESSION_REPORTED"
5676            }
5677            Self::AtomVmCpuStatusReported => "ATOM_VM_CPU_STATUS_REPORTED",
5678            Self::AtomVmMemStatusReported => "ATOM_VM_MEM_STATUS_REPORTED",
5679            Self::AtomPackageInstallationSessionReported => {
5680                "ATOM_PACKAGE_INSTALLATION_SESSION_REPORTED"
5681            }
5682            Self::AtomDefaultNetworkRematchInfo => "ATOM_DEFAULT_NETWORK_REMATCH_INFO",
5683            Self::AtomNetworkSelectionPerformance => "ATOM_NETWORK_SELECTION_PERFORMANCE",
5684            Self::AtomNetworkNsdReported => "ATOM_NETWORK_NSD_REPORTED",
5685            Self::AtomBluetoothDisconnectionReasonReported => {
5686                "ATOM_BLUETOOTH_DISCONNECTION_REASON_REPORTED"
5687            }
5688            Self::AtomBluetoothLocalVersionsReported => {
5689                "ATOM_BLUETOOTH_LOCAL_VERSIONS_REPORTED"
5690            }
5691            Self::AtomBluetoothRemoteSupportedFeaturesReported => {
5692                "ATOM_BLUETOOTH_REMOTE_SUPPORTED_FEATURES_REPORTED"
5693            }
5694            Self::AtomBluetoothLocalSupportedFeaturesReported => {
5695                "ATOM_BLUETOOTH_LOCAL_SUPPORTED_FEATURES_REPORTED"
5696            }
5697            Self::AtomBluetoothGattAppInfo => "ATOM_BLUETOOTH_GATT_APP_INFO",
5698            Self::AtomBrightnessConfigurationUpdated => {
5699                "ATOM_BRIGHTNESS_CONFIGURATION_UPDATED"
5700            }
5701            Self::AtomWearMediaOutputSwitcherLaunched => {
5702                "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_LAUNCHED"
5703            }
5704            Self::AtomWearMediaOutputSwitcherFinished => {
5705                "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_FINISHED"
5706            }
5707            Self::AtomWearMediaOutputSwitcherConnectionReported => {
5708                "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_CONNECTION_REPORTED"
5709            }
5710            Self::AtomWearMediaOutputSwitcherDeviceScanTriggered => {
5711                "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_DEVICE_SCAN_TRIGGERED"
5712            }
5713            Self::AtomWearMediaOutputSwitcherFirstDeviceScanLatency => {
5714                "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_FIRST_DEVICE_SCAN_LATENCY"
5715            }
5716            Self::AtomWearMediaOutputSwitcherConnectDeviceLatency => {
5717                "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_CONNECT_DEVICE_LATENCY"
5718            }
5719            Self::AtomPackageManagerSnapshotReported => {
5720                "ATOM_PACKAGE_MANAGER_SNAPSHOT_REPORTED"
5721            }
5722            Self::AtomPackageManagerAppsFilterCacheBuildReported => {
5723                "ATOM_PACKAGE_MANAGER_APPS_FILTER_CACHE_BUILD_REPORTED"
5724            }
5725            Self::AtomPackageManagerAppsFilterCacheUpdateReported => {
5726                "ATOM_PACKAGE_MANAGER_APPS_FILTER_CACHE_UPDATE_REPORTED"
5727            }
5728            Self::AtomLauncherImpressionEvent => "ATOM_LAUNCHER_IMPRESSION_EVENT",
5729            Self::AtomWearMediaOutputSwitcherAllDevicesScanLatency => {
5730                "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_ALL_DEVICES_SCAN_LATENCY"
5731            }
5732            Self::AtomWsWatchFaceEdited => "ATOM_WS_WATCH_FACE_EDITED",
5733            Self::AtomWsWatchFaceFavoriteActionReported => {
5734                "ATOM_WS_WATCH_FACE_FAVORITE_ACTION_REPORTED"
5735            }
5736            Self::AtomWsWatchFaceSetActionReported => {
5737                "ATOM_WS_WATCH_FACE_SET_ACTION_REPORTED"
5738            }
5739            Self::AtomPackageUninstallationReported => {
5740                "ATOM_PACKAGE_UNINSTALLATION_REPORTED"
5741            }
5742            Self::AtomGameModeChanged => "ATOM_GAME_MODE_CHANGED",
5743            Self::AtomGameModeConfigurationChanged => {
5744                "ATOM_GAME_MODE_CONFIGURATION_CHANGED"
5745            }
5746            Self::AtomBedtimeModeStateChanged => "ATOM_BEDTIME_MODE_STATE_CHANGED",
5747            Self::AtomNetworkSliceSessionEnded => "ATOM_NETWORK_SLICE_SESSION_ENDED",
5748            Self::AtomNetworkSliceDailyDataUsageReported => {
5749                "ATOM_NETWORK_SLICE_DAILY_DATA_USAGE_REPORTED"
5750            }
5751            Self::AtomNfcTagTypeOccurred => "ATOM_NFC_TAG_TYPE_OCCURRED",
5752            Self::AtomNfcAidConflictOccurred => "ATOM_NFC_AID_CONFLICT_OCCURRED",
5753            Self::AtomNfcReaderConflictOccurred => "ATOM_NFC_READER_CONFLICT_OCCURRED",
5754            Self::AtomWsTileListChanged => "ATOM_WS_TILE_LIST_CHANGED",
5755            Self::AtomGetTypeAccessedWithoutPermission => {
5756                "ATOM_GET_TYPE_ACCESSED_WITHOUT_PERMISSION"
5757            }
5758            Self::AtomMobileBundledAppInfoGathered => {
5759                "ATOM_MOBILE_BUNDLED_APP_INFO_GATHERED"
5760            }
5761            Self::AtomWsWatchFaceComplicationSetChanged => {
5762                "ATOM_WS_WATCH_FACE_COMPLICATION_SET_CHANGED"
5763            }
5764            Self::AtomMediaDrmCreated => "ATOM_MEDIA_DRM_CREATED",
5765            Self::AtomMediaDrmErrored => "ATOM_MEDIA_DRM_ERRORED",
5766            Self::AtomMediaDrmSessionOpened => "ATOM_MEDIA_DRM_SESSION_OPENED",
5767            Self::AtomMediaDrmSessionClosed => "ATOM_MEDIA_DRM_SESSION_CLOSED",
5768            Self::AtomUserSelectedResolution => "ATOM_USER_SELECTED_RESOLUTION",
5769            Self::AtomUnsafeIntentEventReported => "ATOM_UNSAFE_INTENT_EVENT_REPORTED",
5770            Self::AtomPerformanceHintSessionReported => {
5771                "ATOM_PERFORMANCE_HINT_SESSION_REPORTED"
5772            }
5773            Self::AtomMediametricsMidiDeviceCloseReported => {
5774                "ATOM_MEDIAMETRICS_MIDI_DEVICE_CLOSE_REPORTED"
5775            }
5776            Self::AtomBiometricTouchReported => "ATOM_BIOMETRIC_TOUCH_REPORTED",
5777            Self::AtomHotwordAudioEgressEventReported => {
5778                "ATOM_HOTWORD_AUDIO_EGRESS_EVENT_REPORTED"
5779            }
5780            Self::AtomLocationEnabledStateChanged => {
5781                "ATOM_LOCATION_ENABLED_STATE_CHANGED"
5782            }
5783            Self::AtomImeRequestFinished => "ATOM_IME_REQUEST_FINISHED",
5784            Self::AtomUsbComplianceWarningsReported => {
5785                "ATOM_USB_COMPLIANCE_WARNINGS_REPORTED"
5786            }
5787            Self::AtomAppSupportedLocalesChanged => "ATOM_APP_SUPPORTED_LOCALES_CHANGED",
5788            Self::AtomMediaProviderVolumeRecoveryReported => {
5789                "ATOM_MEDIA_PROVIDER_VOLUME_RECOVERY_REPORTED"
5790            }
5791            Self::AtomBiometricPropertiesCollected => {
5792                "ATOM_BIOMETRIC_PROPERTIES_COLLECTED"
5793            }
5794            Self::AtomKernelWakeupAttributed => "ATOM_KERNEL_WAKEUP_ATTRIBUTED",
5795            Self::AtomScreenStateChangedV2 => "ATOM_SCREEN_STATE_CHANGED_V2",
5796            Self::AtomWsBackupActionReported => "ATOM_WS_BACKUP_ACTION_REPORTED",
5797            Self::AtomWsRestoreActionReported => "ATOM_WS_RESTORE_ACTION_REPORTED",
5798            Self::AtomDeviceLogAccessEventReported => {
5799                "ATOM_DEVICE_LOG_ACCESS_EVENT_REPORTED"
5800            }
5801            Self::AtomMediaSessionUpdated => "ATOM_MEDIA_SESSION_UPDATED",
5802            Self::AtomWearOobeStateChanged => "ATOM_WEAR_OOBE_STATE_CHANGED",
5803            Self::AtomWsNotificationUpdated => "ATOM_WS_NOTIFICATION_UPDATED",
5804            Self::AtomNetworkValidationFailureStatsDailyReported => {
5805                "ATOM_NETWORK_VALIDATION_FAILURE_STATS_DAILY_REPORTED"
5806            }
5807            Self::AtomWsComplicationTapped => "ATOM_WS_COMPLICATION_TAPPED",
5808            Self::AtomWsNotificationBlocking => "ATOM_WS_NOTIFICATION_BLOCKING",
5809            Self::AtomWsNotificationBridgemodeUpdated => {
5810                "ATOM_WS_NOTIFICATION_BRIDGEMODE_UPDATED"
5811            }
5812            Self::AtomWsNotificationDismissalActioned => {
5813                "ATOM_WS_NOTIFICATION_DISMISSAL_ACTIONED"
5814            }
5815            Self::AtomWsNotificationActioned => "ATOM_WS_NOTIFICATION_ACTIONED",
5816            Self::AtomWsNotificationLatency => "ATOM_WS_NOTIFICATION_LATENCY",
5817            Self::AtomWifiBytesTransfer => "ATOM_WIFI_BYTES_TRANSFER",
5818            Self::AtomWifiBytesTransferByFgBg => "ATOM_WIFI_BYTES_TRANSFER_BY_FG_BG",
5819            Self::AtomMobileBytesTransfer => "ATOM_MOBILE_BYTES_TRANSFER",
5820            Self::AtomMobileBytesTransferByFgBg => "ATOM_MOBILE_BYTES_TRANSFER_BY_FG_BG",
5821            Self::AtomBluetoothBytesTransfer => "ATOM_BLUETOOTH_BYTES_TRANSFER",
5822            Self::AtomKernelWakelock => "ATOM_KERNEL_WAKELOCK",
5823            Self::AtomSubsystemSleepState => "ATOM_SUBSYSTEM_SLEEP_STATE",
5824            Self::AtomCpuTimePerUid => "ATOM_CPU_TIME_PER_UID",
5825            Self::AtomCpuTimePerUidFreq => "ATOM_CPU_TIME_PER_UID_FREQ",
5826            Self::AtomWifiActivityInfo => "ATOM_WIFI_ACTIVITY_INFO",
5827            Self::AtomModemActivityInfo => "ATOM_MODEM_ACTIVITY_INFO",
5828            Self::AtomBluetoothActivityInfo => "ATOM_BLUETOOTH_ACTIVITY_INFO",
5829            Self::AtomProcessMemoryState => "ATOM_PROCESS_MEMORY_STATE",
5830            Self::AtomSystemElapsedRealtime => "ATOM_SYSTEM_ELAPSED_REALTIME",
5831            Self::AtomSystemUptime => "ATOM_SYSTEM_UPTIME",
5832            Self::AtomCpuActiveTime => "ATOM_CPU_ACTIVE_TIME",
5833            Self::AtomCpuClusterTime => "ATOM_CPU_CLUSTER_TIME",
5834            Self::AtomDiskSpace => "ATOM_DISK_SPACE",
5835            Self::AtomRemainingBatteryCapacity => "ATOM_REMAINING_BATTERY_CAPACITY",
5836            Self::AtomFullBatteryCapacity => "ATOM_FULL_BATTERY_CAPACITY",
5837            Self::AtomTemperature => "ATOM_TEMPERATURE",
5838            Self::AtomBinderCalls => "ATOM_BINDER_CALLS",
5839            Self::AtomBinderCallsExceptions => "ATOM_BINDER_CALLS_EXCEPTIONS",
5840            Self::AtomLooperStats => "ATOM_LOOPER_STATS",
5841            Self::AtomDiskStats => "ATOM_DISK_STATS",
5842            Self::AtomDirectoryUsage => "ATOM_DIRECTORY_USAGE",
5843            Self::AtomAppSize => "ATOM_APP_SIZE",
5844            Self::AtomCategorySize => "ATOM_CATEGORY_SIZE",
5845            Self::AtomProcStats => "ATOM_PROC_STATS",
5846            Self::AtomBatteryVoltage => "ATOM_BATTERY_VOLTAGE",
5847            Self::AtomNumFingerprintsEnrolled => "ATOM_NUM_FINGERPRINTS_ENROLLED",
5848            Self::AtomDiskIo => "ATOM_DISK_IO",
5849            Self::AtomPowerProfile => "ATOM_POWER_PROFILE",
5850            Self::AtomProcStatsPkgProc => "ATOM_PROC_STATS_PKG_PROC",
5851            Self::AtomProcessCpuTime => "ATOM_PROCESS_CPU_TIME",
5852            Self::AtomCpuTimePerThreadFreq => "ATOM_CPU_TIME_PER_THREAD_FREQ",
5853            Self::AtomOnDevicePowerMeasurement => "ATOM_ON_DEVICE_POWER_MEASUREMENT",
5854            Self::AtomDeviceCalculatedPowerUse => "ATOM_DEVICE_CALCULATED_POWER_USE",
5855            Self::AtomProcessMemoryHighWaterMark => "ATOM_PROCESS_MEMORY_HIGH_WATER_MARK",
5856            Self::AtomBatteryLevel => "ATOM_BATTERY_LEVEL",
5857            Self::AtomBuildInformation => "ATOM_BUILD_INFORMATION",
5858            Self::AtomBatteryCycleCount => "ATOM_BATTERY_CYCLE_COUNT",
5859            Self::AtomDebugElapsedClock => "ATOM_DEBUG_ELAPSED_CLOCK",
5860            Self::AtomDebugFailingElapsedClock => "ATOM_DEBUG_FAILING_ELAPSED_CLOCK",
5861            Self::AtomNumFacesEnrolled => "ATOM_NUM_FACES_ENROLLED",
5862            Self::AtomRoleHolder => "ATOM_ROLE_HOLDER",
5863            Self::AtomDangerousPermissionState => "ATOM_DANGEROUS_PERMISSION_STATE",
5864            Self::AtomTrainInfo => "ATOM_TRAIN_INFO",
5865            Self::AtomTimeZoneDataInfo => "ATOM_TIME_ZONE_DATA_INFO",
5866            Self::AtomExternalStorageInfo => "ATOM_EXTERNAL_STORAGE_INFO",
5867            Self::AtomGpuStatsGlobalInfo => "ATOM_GPU_STATS_GLOBAL_INFO",
5868            Self::AtomGpuStatsAppInfo => "ATOM_GPU_STATS_APP_INFO",
5869            Self::AtomSystemIonHeapSize => "ATOM_SYSTEM_ION_HEAP_SIZE",
5870            Self::AtomAppsOnExternalStorageInfo => "ATOM_APPS_ON_EXTERNAL_STORAGE_INFO",
5871            Self::AtomFaceSettings => "ATOM_FACE_SETTINGS",
5872            Self::AtomCoolingDevice => "ATOM_COOLING_DEVICE",
5873            Self::AtomAppOps => "ATOM_APP_OPS",
5874            Self::AtomProcessSystemIonHeapSize => "ATOM_PROCESS_SYSTEM_ION_HEAP_SIZE",
5875            Self::AtomSurfaceflingerStatsGlobalInfo => {
5876                "ATOM_SURFACEFLINGER_STATS_GLOBAL_INFO"
5877            }
5878            Self::AtomSurfaceflingerStatsLayerInfo => {
5879                "ATOM_SURFACEFLINGER_STATS_LAYER_INFO"
5880            }
5881            Self::AtomProcessMemorySnapshot => "ATOM_PROCESS_MEMORY_SNAPSHOT",
5882            Self::AtomVmsClientStats => "ATOM_VMS_CLIENT_STATS",
5883            Self::AtomNotificationRemoteViews => "ATOM_NOTIFICATION_REMOTE_VIEWS",
5884            Self::AtomDangerousPermissionStateSampled => {
5885                "ATOM_DANGEROUS_PERMISSION_STATE_SAMPLED"
5886            }
5887            Self::AtomGraphicsStats => "ATOM_GRAPHICS_STATS",
5888            Self::AtomRuntimeAppOpAccess => "ATOM_RUNTIME_APP_OP_ACCESS",
5889            Self::AtomIonHeapSize => "ATOM_ION_HEAP_SIZE",
5890            Self::AtomPackageNotificationPreferences => {
5891                "ATOM_PACKAGE_NOTIFICATION_PREFERENCES"
5892            }
5893            Self::AtomPackageNotificationChannelPreferences => {
5894                "ATOM_PACKAGE_NOTIFICATION_CHANNEL_PREFERENCES"
5895            }
5896            Self::AtomPackageNotificationChannelGroupPreferences => {
5897                "ATOM_PACKAGE_NOTIFICATION_CHANNEL_GROUP_PREFERENCES"
5898            }
5899            Self::AtomGnssStats => "ATOM_GNSS_STATS",
5900            Self::AtomAttributedAppOps => "ATOM_ATTRIBUTED_APP_OPS",
5901            Self::AtomVoiceCallSession => "ATOM_VOICE_CALL_SESSION",
5902            Self::AtomVoiceCallRatUsage => "ATOM_VOICE_CALL_RAT_USAGE",
5903            Self::AtomSimSlotState => "ATOM_SIM_SLOT_STATE",
5904            Self::AtomSupportedRadioAccessFamily => "ATOM_SUPPORTED_RADIO_ACCESS_FAMILY",
5905            Self::AtomSettingSnapshot => "ATOM_SETTING_SNAPSHOT",
5906            Self::AtomBlobInfo => "ATOM_BLOB_INFO",
5907            Self::AtomDataUsageBytesTransfer => "ATOM_DATA_USAGE_BYTES_TRANSFER",
5908            Self::AtomBytesTransferByTagAndMetered => {
5909                "ATOM_BYTES_TRANSFER_BY_TAG_AND_METERED"
5910            }
5911            Self::AtomDndModeRule => "ATOM_DND_MODE_RULE",
5912            Self::AtomGeneralExternalStorageAccessStats => {
5913                "ATOM_GENERAL_EXTERNAL_STORAGE_ACCESS_STATS"
5914            }
5915            Self::AtomIncomingSms => "ATOM_INCOMING_SMS",
5916            Self::AtomOutgoingSms => "ATOM_OUTGOING_SMS",
5917            Self::AtomCarrierIdTableVersion => "ATOM_CARRIER_ID_TABLE_VERSION",
5918            Self::AtomDataCallSession => "ATOM_DATA_CALL_SESSION",
5919            Self::AtomCellularServiceState => "ATOM_CELLULAR_SERVICE_STATE",
5920            Self::AtomCellularDataServiceSwitch => "ATOM_CELLULAR_DATA_SERVICE_SWITCH",
5921            Self::AtomSystemMemory => "ATOM_SYSTEM_MEMORY",
5922            Self::AtomImsRegistrationTermination => "ATOM_IMS_REGISTRATION_TERMINATION",
5923            Self::AtomImsRegistrationStats => "ATOM_IMS_REGISTRATION_STATS",
5924            Self::AtomCpuTimePerClusterFreq => "ATOM_CPU_TIME_PER_CLUSTER_FREQ",
5925            Self::AtomCpuCyclesPerUidCluster => "ATOM_CPU_CYCLES_PER_UID_CLUSTER",
5926            Self::AtomDeviceRotatedData => "ATOM_DEVICE_ROTATED_DATA",
5927            Self::AtomCpuCyclesPerThreadGroupCluster => {
5928                "ATOM_CPU_CYCLES_PER_THREAD_GROUP_CLUSTER"
5929            }
5930            Self::AtomMediaDrmActivityInfo => "ATOM_MEDIA_DRM_ACTIVITY_INFO",
5931            Self::AtomOemManagedBytesTransfer => "ATOM_OEM_MANAGED_BYTES_TRANSFER",
5932            Self::AtomGnssPowerStats => "ATOM_GNSS_POWER_STATS",
5933            Self::AtomTimeZoneDetectorState => "ATOM_TIME_ZONE_DETECTOR_STATE",
5934            Self::AtomKeystore2StorageStats => "ATOM_KEYSTORE2_STORAGE_STATS",
5935            Self::AtomRkpPoolStats => "ATOM_RKP_POOL_STATS",
5936            Self::AtomProcessDmabufMemory => "ATOM_PROCESS_DMABUF_MEMORY",
5937            Self::AtomPendingAlarmInfo => "ATOM_PENDING_ALARM_INFO",
5938            Self::AtomUserLevelHibernatedApps => "ATOM_USER_LEVEL_HIBERNATED_APPS",
5939            Self::AtomLauncherLayoutSnapshot => "ATOM_LAUNCHER_LAYOUT_SNAPSHOT",
5940            Self::AtomGlobalHibernatedApps => "ATOM_GLOBAL_HIBERNATED_APPS",
5941            Self::AtomInputEventLatencySketch => "ATOM_INPUT_EVENT_LATENCY_SKETCH",
5942            Self::AtomBatteryUsageStatsBeforeReset => {
5943                "ATOM_BATTERY_USAGE_STATS_BEFORE_RESET"
5944            }
5945            Self::AtomBatteryUsageStatsSinceReset => {
5946                "ATOM_BATTERY_USAGE_STATS_SINCE_RESET"
5947            }
5948            Self::AtomBatteryUsageStatsSinceResetUsingPowerProfileModel => {
5949                "ATOM_BATTERY_USAGE_STATS_SINCE_RESET_USING_POWER_PROFILE_MODEL"
5950            }
5951            Self::AtomInstalledIncrementalPackage => "ATOM_INSTALLED_INCREMENTAL_PACKAGE",
5952            Self::AtomTelephonyNetworkRequests => "ATOM_TELEPHONY_NETWORK_REQUESTS",
5953            Self::AtomAppSearchStorageInfo => "ATOM_APP_SEARCH_STORAGE_INFO",
5954            Self::AtomVmstat => "ATOM_VMSTAT",
5955            Self::AtomKeystore2KeyCreationWithGeneralInfo => {
5956                "ATOM_KEYSTORE2_KEY_CREATION_WITH_GENERAL_INFO"
5957            }
5958            Self::AtomKeystore2KeyCreationWithAuthInfo => {
5959                "ATOM_KEYSTORE2_KEY_CREATION_WITH_AUTH_INFO"
5960            }
5961            Self::AtomKeystore2KeyCreationWithPurposeAndModesInfo => {
5962                "ATOM_KEYSTORE2_KEY_CREATION_WITH_PURPOSE_AND_MODES_INFO"
5963            }
5964            Self::AtomKeystore2AtomWithOverflow => "ATOM_KEYSTORE2_ATOM_WITH_OVERFLOW",
5965            Self::AtomKeystore2KeyOperationWithPurposeAndModesInfo => {
5966                "ATOM_KEYSTORE2_KEY_OPERATION_WITH_PURPOSE_AND_MODES_INFO"
5967            }
5968            Self::AtomKeystore2KeyOperationWithGeneralInfo => {
5969                "ATOM_KEYSTORE2_KEY_OPERATION_WITH_GENERAL_INFO"
5970            }
5971            Self::AtomRkpErrorStats => "ATOM_RKP_ERROR_STATS",
5972            Self::AtomKeystore2CrashStats => "ATOM_KEYSTORE2_CRASH_STATS",
5973            Self::AtomVendorApexInfo => "ATOM_VENDOR_APEX_INFO",
5974            Self::AtomAccessibilityShortcutStats => "ATOM_ACCESSIBILITY_SHORTCUT_STATS",
5975            Self::AtomAccessibilityFloatingMenuStats => {
5976                "ATOM_ACCESSIBILITY_FLOATING_MENU_STATS"
5977            }
5978            Self::AtomDataUsageBytesTransferV2 => "ATOM_DATA_USAGE_BYTES_TRANSFER_V2",
5979            Self::AtomMediaCapabilities => "ATOM_MEDIA_CAPABILITIES",
5980            Self::AtomCarWatchdogSystemIoUsageSummary => {
5981                "ATOM_CAR_WATCHDOG_SYSTEM_IO_USAGE_SUMMARY"
5982            }
5983            Self::AtomCarWatchdogUidIoUsageSummary => {
5984                "ATOM_CAR_WATCHDOG_UID_IO_USAGE_SUMMARY"
5985            }
5986            Self::AtomImsRegistrationFeatureTagStats => {
5987                "ATOM_IMS_REGISTRATION_FEATURE_TAG_STATS"
5988            }
5989            Self::AtomRcsClientProvisioningStats => "ATOM_RCS_CLIENT_PROVISIONING_STATS",
5990            Self::AtomRcsAcsProvisioningStats => "ATOM_RCS_ACS_PROVISIONING_STATS",
5991            Self::AtomSipDelegateStats => "ATOM_SIP_DELEGATE_STATS",
5992            Self::AtomSipTransportFeatureTagStats => {
5993                "ATOM_SIP_TRANSPORT_FEATURE_TAG_STATS"
5994            }
5995            Self::AtomSipMessageResponse => "ATOM_SIP_MESSAGE_RESPONSE",
5996            Self::AtomSipTransportSession => "ATOM_SIP_TRANSPORT_SESSION",
5997            Self::AtomImsDedicatedBearerListenerEvent => {
5998                "ATOM_IMS_DEDICATED_BEARER_LISTENER_EVENT"
5999            }
6000            Self::AtomImsDedicatedBearerEvent => "ATOM_IMS_DEDICATED_BEARER_EVENT",
6001            Self::AtomImsRegistrationServiceDescStats => {
6002                "ATOM_IMS_REGISTRATION_SERVICE_DESC_STATS"
6003            }
6004            Self::AtomUceEventStats => "ATOM_UCE_EVENT_STATS",
6005            Self::AtomPresenceNotifyEvent => "ATOM_PRESENCE_NOTIFY_EVENT",
6006            Self::AtomGbaEvent => "ATOM_GBA_EVENT",
6007            Self::AtomPerSimStatus => "ATOM_PER_SIM_STATUS",
6008            Self::AtomGpuWorkPerUid => "ATOM_GPU_WORK_PER_UID",
6009            Self::AtomPersistentUriPermissionsAmountPerPackage => {
6010                "ATOM_PERSISTENT_URI_PERMISSIONS_AMOUNT_PER_PACKAGE"
6011            }
6012            Self::AtomSignedPartitionInfo => "ATOM_SIGNED_PARTITION_INFO",
6013            Self::AtomPinnedFileSizesPerPackage => "ATOM_PINNED_FILE_SIZES_PER_PACKAGE",
6014            Self::AtomPendingIntentsPerPackage => "ATOM_PENDING_INTENTS_PER_PACKAGE",
6015            Self::AtomUserInfo => "ATOM_USER_INFO",
6016            Self::AtomTelephonyNetworkRequestsV2 => "ATOM_TELEPHONY_NETWORK_REQUESTS_V2",
6017            Self::AtomDeviceTelephonyProperties => "ATOM_DEVICE_TELEPHONY_PROPERTIES",
6018            Self::AtomRemoteKeyProvisioningErrorCounts => {
6019                "ATOM_REMOTE_KEY_PROVISIONING_ERROR_COUNTS"
6020            }
6021            Self::AtomSafetyState => "ATOM_SAFETY_STATE",
6022            Self::AtomIncomingMms => "ATOM_INCOMING_MMS",
6023            Self::AtomOutgoingMms => "ATOM_OUTGOING_MMS",
6024            Self::AtomMultiUserInfo => "ATOM_MULTI_USER_INFO",
6025            Self::AtomNetworkBpfMapInfo => "ATOM_NETWORK_BPF_MAP_INFO",
6026            Self::AtomOutgoingShortCodeSms => "ATOM_OUTGOING_SHORT_CODE_SMS",
6027            Self::AtomConnectivityStateSample => "ATOM_CONNECTIVITY_STATE_SAMPLE",
6028            Self::AtomNetworkSelectionRematchReasonsInfo => {
6029                "ATOM_NETWORK_SELECTION_REMATCH_REASONS_INFO"
6030            }
6031            Self::AtomGameModeInfo => "ATOM_GAME_MODE_INFO",
6032            Self::AtomGameModeConfiguration => "ATOM_GAME_MODE_CONFIGURATION",
6033            Self::AtomGameModeListener => "ATOM_GAME_MODE_LISTENER",
6034            Self::AtomNetworkSliceRequestCount => "ATOM_NETWORK_SLICE_REQUEST_COUNT",
6035            Self::AtomWsTileSnapshot => "ATOM_WS_TILE_SNAPSHOT",
6036            Self::AtomWsActiveWatchFaceComplicationSetSnapshot => {
6037                "ATOM_WS_ACTIVE_WATCH_FACE_COMPLICATION_SET_SNAPSHOT"
6038            }
6039            Self::AtomProcessState => "ATOM_PROCESS_STATE",
6040            Self::AtomProcessAssociation => "ATOM_PROCESS_ASSOCIATION",
6041            Self::AtomAdpfSystemComponentInfo => "ATOM_ADPF_SYSTEM_COMPONENT_INFO",
6042            Self::AtomNotificationMemoryUse => "ATOM_NOTIFICATION_MEMORY_USE",
6043            Self::AtomHdrCapabilities => "ATOM_HDR_CAPABILITIES",
6044            Self::AtomWsFavouriteWatchFaceListSnapshot => {
6045                "ATOM_WS_FAVOURITE_WATCH_FACE_LIST_SNAPSHOT"
6046            }
6047            Self::AtomWifiAwareNdpReported => "ATOM_WIFI_AWARE_NDP_REPORTED",
6048            Self::AtomWifiAwareAttachReported => "ATOM_WIFI_AWARE_ATTACH_REPORTED",
6049            Self::AtomWifiSelfRecoveryTriggered => "ATOM_WIFI_SELF_RECOVERY_TRIGGERED",
6050            Self::AtomSoftApStarted => "ATOM_SOFT_AP_STARTED",
6051            Self::AtomSoftApStopped => "ATOM_SOFT_AP_STOPPED",
6052            Self::AtomWifiLockReleased => "ATOM_WIFI_LOCK_RELEASED",
6053            Self::AtomWifiLockDeactivated => "ATOM_WIFI_LOCK_DEACTIVATED",
6054            Self::AtomWifiConfigSaved => "ATOM_WIFI_CONFIG_SAVED",
6055            Self::AtomWifiAwareResourceUsingChanged => {
6056                "ATOM_WIFI_AWARE_RESOURCE_USING_CHANGED"
6057            }
6058            Self::AtomWifiAwareHalApiCalled => "ATOM_WIFI_AWARE_HAL_API_CALLED",
6059            Self::AtomWifiLocalOnlyRequestReceived => {
6060                "ATOM_WIFI_LOCAL_ONLY_REQUEST_RECEIVED"
6061            }
6062            Self::AtomWifiLocalOnlyRequestScanTriggered => {
6063                "ATOM_WIFI_LOCAL_ONLY_REQUEST_SCAN_TRIGGERED"
6064            }
6065            Self::AtomWifiThreadTaskExecuted => "ATOM_WIFI_THREAD_TASK_EXECUTED",
6066            Self::AtomWifiStateChanged => "ATOM_WIFI_STATE_CHANGED",
6067            Self::AtomPnoScanStarted => "ATOM_PNO_SCAN_STARTED",
6068            Self::AtomPnoScanStopped => "ATOM_PNO_SCAN_STOPPED",
6069            Self::AtomWifiIsUnusableReported => "ATOM_WIFI_IS_UNUSABLE_REPORTED",
6070            Self::AtomWifiApCapabilitiesReported => "ATOM_WIFI_AP_CAPABILITIES_REPORTED",
6071            Self::AtomSoftApStateChanged => "ATOM_SOFT_AP_STATE_CHANGED",
6072            Self::AtomScorerPredictionResultReported => {
6073                "ATOM_SCORER_PREDICTION_RESULT_REPORTED"
6074            }
6075            Self::AtomWifiAwareCapabilities => "ATOM_WIFI_AWARE_CAPABILITIES",
6076            Self::AtomWifiModuleInfo => "ATOM_WIFI_MODULE_INFO",
6077            Self::AtomWifiSettingInfo => "ATOM_WIFI_SETTING_INFO",
6078            Self::AtomWifiComplexSettingInfo => "ATOM_WIFI_COMPLEX_SETTING_INFO",
6079            Self::AtomWifiConfiguredNetworkInfo => "ATOM_WIFI_CONFIGURED_NETWORK_INFO",
6080            Self::AtomWearPowerMenuOpened => "ATOM_WEAR_POWER_MENU_OPENED",
6081            Self::AtomWearAssistantOpened => "ATOM_WEAR_ASSISTANT_OPENED",
6082            Self::AtomFirstOverlayStateChanged => "ATOM_FIRST_OVERLAY_STATE_CHANGED",
6083            Self::AtomWsWearTimeSession => "ATOM_WS_WEAR_TIME_SESSION",
6084            Self::AtomWsIncomingCallActionReported => {
6085                "ATOM_WS_INCOMING_CALL_ACTION_REPORTED"
6086            }
6087            Self::AtomWsCallDisconnectionReported => {
6088                "ATOM_WS_CALL_DISCONNECTION_REPORTED"
6089            }
6090            Self::AtomWsCallDurationReported => "ATOM_WS_CALL_DURATION_REPORTED",
6091            Self::AtomWsCallUserExperienceLatencyReported => {
6092                "ATOM_WS_CALL_USER_EXPERIENCE_LATENCY_REPORTED"
6093            }
6094            Self::AtomWsCallInteractionReported => "ATOM_WS_CALL_INTERACTION_REPORTED",
6095            Self::AtomWsOnBodyStateChanged => "ATOM_WS_ON_BODY_STATE_CHANGED",
6096            Self::AtomWsWatchFaceRestrictedComplicationsImpacted => {
6097                "ATOM_WS_WATCH_FACE_RESTRICTED_COMPLICATIONS_IMPACTED"
6098            }
6099            Self::AtomWsWatchFaceDefaultRestrictedComplicationsRemoved => {
6100                "ATOM_WS_WATCH_FACE_DEFAULT_RESTRICTED_COMPLICATIONS_REMOVED"
6101            }
6102            Self::AtomWsComplicationsImpactedNotificationEventReported => {
6103                "ATOM_WS_COMPLICATIONS_IMPACTED_NOTIFICATION_EVENT_REPORTED"
6104            }
6105            Self::AtomWsRemoteEventUsageReported => "ATOM_WS_REMOTE_EVENT_USAGE_REPORTED",
6106            Self::AtomWsNotificationManagedDismissalSync => {
6107                "ATOM_WS_NOTIFICATION_MANAGED_DISMISSAL_SYNC"
6108            }
6109            Self::AtomWsBugreportEventReported => "ATOM_WS_BUGREPORT_EVENT_REPORTED",
6110            Self::AtomWsStandaloneModeSnapshot => "ATOM_WS_STANDALONE_MODE_SNAPSHOT",
6111            Self::AtomWsFavoriteWatchFaceSnapshot => {
6112                "ATOM_WS_FAVORITE_WATCH_FACE_SNAPSHOT"
6113            }
6114            Self::AtomWsPhotosWatchFaceFeatureSnapshot => {
6115                "ATOM_WS_PHOTOS_WATCH_FACE_FEATURE_SNAPSHOT"
6116            }
6117            Self::AtomWsWatchFaceCustomizationSnapshot => {
6118                "ATOM_WS_WATCH_FACE_CUSTOMIZATION_SNAPSHOT"
6119            }
6120            Self::AtomWearAdaptiveSuspendStatsReported => {
6121                "ATOM_WEAR_ADAPTIVE_SUSPEND_STATS_REPORTED"
6122            }
6123            Self::AtomWearPowerAnomalyServiceOperationalStatsReported => {
6124                "ATOM_WEAR_POWER_ANOMALY_SERVICE_OPERATIONAL_STATS_REPORTED"
6125            }
6126            Self::AtomWearPowerAnomalyServiceEventStatsReported => {
6127                "ATOM_WEAR_POWER_ANOMALY_SERVICE_EVENT_STATS_REPORTED"
6128            }
6129            Self::AtomWearTimeSyncRequested => "ATOM_WEAR_TIME_SYNC_REQUESTED",
6130            Self::AtomWearTimeUpdateStarted => "ATOM_WEAR_TIME_UPDATE_STARTED",
6131            Self::AtomWearTimeSyncAttemptCompleted => {
6132                "ATOM_WEAR_TIME_SYNC_ATTEMPT_COMPLETED"
6133            }
6134            Self::AtomWearTimeChanged => "ATOM_WEAR_TIME_CHANGED",
6135            Self::AtomWearSetupWizardDeviceStatusReported => {
6136                "ATOM_WEAR_SETUP_WIZARD_DEVICE_STATUS_REPORTED"
6137            }
6138            Self::AtomWearSetupWizardPairingCompleted => {
6139                "ATOM_WEAR_SETUP_WIZARD_PAIRING_COMPLETED"
6140            }
6141            Self::AtomWearSetupWizardConnectionEstablished => {
6142                "ATOM_WEAR_SETUP_WIZARD_CONNECTION_ESTABLISHED"
6143            }
6144            Self::AtomWearSetupWizardCheckinCompleted => {
6145                "ATOM_WEAR_SETUP_WIZARD_CHECKIN_COMPLETED"
6146            }
6147            Self::AtomWearSetupWizardCompanionTimeReported => {
6148                "ATOM_WEAR_SETUP_WIZARD_COMPANION_TIME_REPORTED"
6149            }
6150            Self::AtomWearSetupWizardStatusReported => {
6151                "ATOM_WEAR_SETUP_WIZARD_STATUS_REPORTED"
6152            }
6153            Self::AtomWearSetupWizardHeartbeatReported => {
6154                "ATOM_WEAR_SETUP_WIZARD_HEARTBEAT_REPORTED"
6155            }
6156            Self::AtomWearSetupWizardFrpTriggered => {
6157                "ATOM_WEAR_SETUP_WIZARD_FRP_TRIGGERED"
6158            }
6159            Self::AtomWearSetupWizardSystemUpdateTriggered => {
6160                "ATOM_WEAR_SETUP_WIZARD_SYSTEM_UPDATE_TRIGGERED"
6161            }
6162            Self::AtomWearSetupWizardPhoneSwitchTriggered => {
6163                "ATOM_WEAR_SETUP_WIZARD_PHONE_SWITCH_TRIGGERED"
6164            }
6165            Self::AtomRendererInitialized => "ATOM_RENDERER_INITIALIZED",
6166            Self::AtomSchemaVersionReceived => "ATOM_SCHEMA_VERSION_RECEIVED",
6167            Self::AtomLayoutInspected => "ATOM_LAYOUT_INSPECTED",
6168            Self::AtomLayoutExpressionInspected => "ATOM_LAYOUT_EXPRESSION_INSPECTED",
6169            Self::AtomLayoutAnimationsInspected => "ATOM_LAYOUT_ANIMATIONS_INSPECTED",
6170            Self::AtomMaterialComponentsInspected => "ATOM_MATERIAL_COMPONENTS_INSPECTED",
6171            Self::AtomTileRequested => "ATOM_TILE_REQUESTED",
6172            Self::AtomStateResponseReceived => "ATOM_STATE_RESPONSE_RECEIVED",
6173            Self::AtomTileResponseReceived => "ATOM_TILE_RESPONSE_RECEIVED",
6174            Self::AtomInflationFinished => "ATOM_INFLATION_FINISHED",
6175            Self::AtomInflationFailed => "ATOM_INFLATION_FAILED",
6176            Self::AtomIgnoredInflationFailuresReported => {
6177                "ATOM_IGNORED_INFLATION_FAILURES_REPORTED"
6178            }
6179            Self::AtomDrawableRendered => "ATOM_DRAWABLE_RENDERED",
6180            Self::AtomWearModeStateChanged => "ATOM_WEAR_MODE_STATE_CHANGED",
6181            Self::AtomMediaActionReported => "ATOM_MEDIA_ACTION_REPORTED",
6182            Self::AtomMediaControlsLaunched => "ATOM_MEDIA_CONTROLS_LAUNCHED",
6183            Self::AtomMediaSessionStateChanged => "ATOM_MEDIA_SESSION_STATE_CHANGED",
6184            Self::AtomMediaControlApiUsageReported => {
6185                "ATOM_MEDIA_CONTROL_API_USAGE_REPORTED"
6186            }
6187            Self::AtomMediaSubscriptionChanged => "ATOM_MEDIA_SUBSCRIPTION_CHANGED",
6188            Self::AtomWearMediaOutputSwitcherDeviceScanApiLatency => {
6189                "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_DEVICE_SCAN_API_LATENCY"
6190            }
6191            Self::AtomWearMediaOutputSwitcherSassDeviceUnavailable => {
6192                "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_SASS_DEVICE_UNAVAILABLE"
6193            }
6194            Self::AtomWearMediaOutputSwitcherFastpairApiTimeout => {
6195                "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_FASTPAIR_API_TIMEOUT"
6196            }
6197            Self::AtomMediatorUpdated => "ATOM_MEDIATOR_UPDATED",
6198            Self::AtomSysproxyBluetoothBytesTransfer => {
6199                "ATOM_SYSPROXY_BLUETOOTH_BYTES_TRANSFER"
6200            }
6201            Self::AtomSysproxyConnectionUpdated => "ATOM_SYSPROXY_CONNECTION_UPDATED",
6202            Self::AtomWearCompanionConnectionState => {
6203                "ATOM_WEAR_COMPANION_CONNECTION_STATE"
6204            }
6205            Self::AtomSysproxyServiceStateUpdated => {
6206                "ATOM_SYSPROXY_SERVICE_STATE_UPDATED"
6207            }
6208            Self::AtomUwbActivityInfo => "ATOM_UWB_ACTIVITY_INFO",
6209            Self::AtomTestUprobestatsAtomReported => {
6210                "ATOM_TEST_UPROBESTATS_ATOM_REPORTED"
6211            }
6212            Self::AtomTvLowPowerStandbyPolicy => "ATOM_TV_LOW_POWER_STANDBY_POLICY",
6213            Self::AtomExternalTvInputEvent => "ATOM_EXTERNAL_TV_INPUT_EVENT",
6214            Self::AtomBootIntegrityInfoReported => "ATOM_BOOT_INTEGRITY_INFO_REPORTED",
6215            Self::AtomThreadnetworkTelemetryDataReported => {
6216                "ATOM_THREADNETWORK_TELEMETRY_DATA_REPORTED"
6217            }
6218            Self::AtomThreadnetworkTopoEntryRepeated => {
6219                "ATOM_THREADNETWORK_TOPO_ENTRY_REPEATED"
6220            }
6221            Self::AtomThreadnetworkDeviceInfoReported => {
6222                "ATOM_THREADNETWORK_DEVICE_INFO_REPORTED"
6223            }
6224            Self::AtomCellularRadioPowerStateChanged => {
6225                "ATOM_CELLULAR_RADIO_POWER_STATE_CHANGED"
6226            }
6227            Self::AtomEmergencyNumbersInfo => "ATOM_EMERGENCY_NUMBERS_INFO",
6228            Self::AtomDataNetworkValidation => "ATOM_DATA_NETWORK_VALIDATION",
6229            Self::AtomDataRatStateChanged => "ATOM_DATA_RAT_STATE_CHANGED",
6230            Self::AtomConnectedChannelChanged => "ATOM_CONNECTED_CHANNEL_CHANGED",
6231            Self::AtomCellularIdentifierDisclosed => "ATOM_CELLULAR_IDENTIFIER_DISCLOSED",
6232            Self::AtomSatelliteController => "ATOM_SATELLITE_CONTROLLER",
6233            Self::AtomSatelliteSession => "ATOM_SATELLITE_SESSION",
6234            Self::AtomSatelliteIncomingDatagram => "ATOM_SATELLITE_INCOMING_DATAGRAM",
6235            Self::AtomSatelliteOutgoingDatagram => "ATOM_SATELLITE_OUTGOING_DATAGRAM",
6236            Self::AtomSatelliteProvision => "ATOM_SATELLITE_PROVISION",
6237            Self::AtomSatelliteSosMessageRecommender => {
6238                "ATOM_SATELLITE_SOS_MESSAGE_RECOMMENDER"
6239            }
6240            Self::AtomCarrierRoamingSatelliteSession => {
6241                "ATOM_CARRIER_ROAMING_SATELLITE_SESSION"
6242            }
6243            Self::AtomCarrierRoamingSatelliteControllerStats => {
6244                "ATOM_CARRIER_ROAMING_SATELLITE_CONTROLLER_STATS"
6245            }
6246            Self::AtomControllerStatsPerPackage => "ATOM_CONTROLLER_STATS_PER_PACKAGE",
6247            Self::AtomSatelliteEntitlement => "ATOM_SATELLITE_ENTITLEMENT",
6248            Self::AtomSatelliteConfigUpdater => "ATOM_SATELLITE_CONFIG_UPDATER",
6249            Self::AtomSatelliteAccessController => "ATOM_SATELLITE_ACCESS_CONTROLLER",
6250            Self::AtomQualifiedRatListChanged => "ATOM_QUALIFIED_RAT_LIST_CHANGED",
6251            Self::AtomQnsImsCallDropStats => "ATOM_QNS_IMS_CALL_DROP_STATS",
6252            Self::AtomQnsFallbackRestrictionChanged => {
6253                "ATOM_QNS_FALLBACK_RESTRICTION_CHANGED"
6254            }
6255            Self::AtomQnsRatPreferenceMismatchInfo => {
6256                "ATOM_QNS_RAT_PREFERENCE_MISMATCH_INFO"
6257            }
6258            Self::AtomQnsHandoverTimeMillis => "ATOM_QNS_HANDOVER_TIME_MILLIS",
6259            Self::AtomQnsHandoverPingpong => "ATOM_QNS_HANDOVER_PINGPONG",
6260            Self::AtomIwlanUnderlyingNetworkValidationResultReported => {
6261                "ATOM_IWLAN_UNDERLYING_NETWORK_VALIDATION_RESULT_REPORTED"
6262            }
6263            Self::AtomEmergencyNumberDialed => "ATOM_EMERGENCY_NUMBER_DIALED",
6264            Self::AtomCallStats => "ATOM_CALL_STATS",
6265            Self::AtomCallAudioRouteStats => "ATOM_CALL_AUDIO_ROUTE_STATS",
6266            Self::AtomTelecomApiStats => "ATOM_TELECOM_API_STATS",
6267            Self::AtomTelecomErrorStats => "ATOM_TELECOM_ERROR_STATS",
6268            Self::AtomLockscreenShortcutSelected => "ATOM_LOCKSCREEN_SHORTCUT_SELECTED",
6269            Self::AtomLockscreenShortcutTriggered => "ATOM_LOCKSCREEN_SHORTCUT_TRIGGERED",
6270            Self::AtomLauncherImpressionEventV2 => "ATOM_LAUNCHER_IMPRESSION_EVENT_V2",
6271            Self::AtomDisplaySwitchLatencyTracked => {
6272                "ATOM_DISPLAY_SWITCH_LATENCY_TRACKED"
6273            }
6274            Self::AtomNotificationListenerService => "ATOM_NOTIFICATION_LISTENER_SERVICE",
6275            Self::AtomNavHandleTouchPoints => "ATOM_NAV_HANDLE_TOUCH_POINTS",
6276            Self::AtomCommunalHubWidgetEventReported => {
6277                "ATOM_COMMUNAL_HUB_WIDGET_EVENT_REPORTED"
6278            }
6279            Self::AtomPeripheralTutorialLaunched => "ATOM_PERIPHERAL_TUTORIAL_LAUNCHED",
6280            Self::AtomContextualEducationTriggered => {
6281                "ATOM_CONTEXTUAL_EDUCATION_TRIGGERED"
6282            }
6283            Self::AtomCommunalHubSnapshot => "ATOM_COMMUNAL_HUB_SNAPSHOT",
6284            Self::AtomTestExtensionAtomReported => "ATOM_TEST_EXTENSION_ATOM_REPORTED",
6285            Self::AtomTestRestrictedAtomReported => "ATOM_TEST_RESTRICTED_ATOM_REPORTED",
6286            Self::AtomStatsSocketLossReported => "ATOM_STATS_SOCKET_LOSS_REPORTED",
6287            Self::AtomSettingsSpaReported => "ATOM_SETTINGS_SPA_REPORTED",
6288            Self::AtomSelinuxAuditLog => "ATOM_SELINUX_AUDIT_LOG",
6289            Self::AtomSandboxApiCalled => "ATOM_SANDBOX_API_CALLED",
6290            Self::AtomSandboxActivityEventOccurred => {
6291                "ATOM_SANDBOX_ACTIVITY_EVENT_OCCURRED"
6292            }
6293            Self::AtomSdkSandboxRestrictedAccessInSession => {
6294                "ATOM_SDK_SANDBOX_RESTRICTED_ACCESS_IN_SESSION"
6295            }
6296            Self::AtomSandboxSdkStorage => "ATOM_SANDBOX_SDK_STORAGE",
6297            Self::AtomRkpdPoolStats => "ATOM_RKPD_POOL_STATS",
6298            Self::AtomRkpdClientOperation => "ATOM_RKPD_CLIENT_OPERATION",
6299            Self::AtomRangingSessionConfigured => "ATOM_RANGING_SESSION_CONFIGURED",
6300            Self::AtomRangingSessionStarted => "ATOM_RANGING_SESSION_STARTED",
6301            Self::AtomRangingSessionClosed => "ATOM_RANGING_SESSION_CLOSED",
6302            Self::AtomRangingTechnologyStarted => "ATOM_RANGING_TECHNOLOGY_STARTED",
6303            Self::AtomRangingTechnologyStopped => "ATOM_RANGING_TECHNOLOGY_STOPPED",
6304            Self::AtomMediaProviderDatabaseRollbackReported => {
6305                "ATOM_MEDIA_PROVIDER_DATABASE_ROLLBACK_REPORTED"
6306            }
6307            Self::AtomBackupSetupStatusReported => "ATOM_BACKUP_SETUP_STATUS_REPORTED",
6308            Self::AtomScreenOffReported => "ATOM_SCREEN_OFF_REPORTED",
6309            Self::AtomScreenTimeoutOverrideReported => {
6310                "ATOM_SCREEN_TIMEOUT_OVERRIDE_REPORTED"
6311            }
6312            Self::AtomScreenInteractiveSessionReported => {
6313                "ATOM_SCREEN_INTERACTIVE_SESSION_REPORTED"
6314            }
6315            Self::AtomScreenDimReported => "ATOM_SCREEN_DIM_REPORTED",
6316            Self::AtomAtom9999 => "ATOM_ATOM_9999",
6317            Self::AtomAtom99999 => "ATOM_ATOM_99999",
6318            Self::AtomPhotopickerSessionInfoReported => {
6319                "ATOM_PHOTOPICKER_SESSION_INFO_REPORTED"
6320            }
6321            Self::AtomPhotopickerApiInfoReported => "ATOM_PHOTOPICKER_API_INFO_REPORTED",
6322            Self::AtomPhotopickerUiEventLogged => "ATOM_PHOTOPICKER_UI_EVENT_LOGGED",
6323            Self::AtomPhotopickerMediaItemStatusReported => {
6324                "ATOM_PHOTOPICKER_MEDIA_ITEM_STATUS_REPORTED"
6325            }
6326            Self::AtomPhotopickerPreviewInfoLogged => {
6327                "ATOM_PHOTOPICKER_PREVIEW_INFO_LOGGED"
6328            }
6329            Self::AtomPhotopickerMenuInteractionLogged => {
6330                "ATOM_PHOTOPICKER_MENU_INTERACTION_LOGGED"
6331            }
6332            Self::AtomPhotopickerBannerInteractionLogged => {
6333                "ATOM_PHOTOPICKER_BANNER_INTERACTION_LOGGED"
6334            }
6335            Self::AtomPhotopickerMediaLibraryInfoLogged => {
6336                "ATOM_PHOTOPICKER_MEDIA_LIBRARY_INFO_LOGGED"
6337            }
6338            Self::AtomPhotopickerPageInfoLogged => "ATOM_PHOTOPICKER_PAGE_INFO_LOGGED",
6339            Self::AtomPhotopickerMediaGridSyncInfoReported => {
6340                "ATOM_PHOTOPICKER_MEDIA_GRID_SYNC_INFO_REPORTED"
6341            }
6342            Self::AtomPhotopickerAlbumSyncInfoReported => {
6343                "ATOM_PHOTOPICKER_ALBUM_SYNC_INFO_REPORTED"
6344            }
6345            Self::AtomPhotopickerSearchInfoReported => {
6346                "ATOM_PHOTOPICKER_SEARCH_INFO_REPORTED"
6347            }
6348            Self::AtomSearchDataExtractionDetailsReported => {
6349                "ATOM_SEARCH_DATA_EXTRACTION_DETAILS_REPORTED"
6350            }
6351            Self::AtomEmbeddedPhotopickerInfoReported => {
6352                "ATOM_EMBEDDED_PHOTOPICKER_INFO_REPORTED"
6353            }
6354            Self::AtomPermissionRationaleDialogViewed => {
6355                "ATOM_PERMISSION_RATIONALE_DIALOG_VIEWED"
6356            }
6357            Self::AtomPermissionRationaleDialogActionReported => {
6358                "ATOM_PERMISSION_RATIONALE_DIALOG_ACTION_REPORTED"
6359            }
6360            Self::AtomAppDataSharingUpdatesNotificationInteraction => {
6361                "ATOM_APP_DATA_SHARING_UPDATES_NOTIFICATION_INTERACTION"
6362            }
6363            Self::AtomAppDataSharingUpdatesFragmentViewed => {
6364                "ATOM_APP_DATA_SHARING_UPDATES_FRAGMENT_VIEWED"
6365            }
6366            Self::AtomAppDataSharingUpdatesFragmentActionReported => {
6367                "ATOM_APP_DATA_SHARING_UPDATES_FRAGMENT_ACTION_REPORTED"
6368            }
6369            Self::AtomEnhancedConfirmationDialogResultReported => {
6370                "ATOM_ENHANCED_CONFIRMATION_DIALOG_RESULT_REPORTED"
6371            }
6372            Self::AtomEnhancedConfirmationRestrictionCleared => {
6373                "ATOM_ENHANCED_CONFIRMATION_RESTRICTION_CLEARED"
6374            }
6375            Self::AtomPressureStallInformation => "ATOM_PRESSURE_STALL_INFORMATION",
6376            Self::AtomPdfLoadReported => "ATOM_PDF_LOAD_REPORTED",
6377            Self::AtomPdfApiUsageReported => "ATOM_PDF_API_USAGE_REPORTED",
6378            Self::AtomPdfSearchReported => "ATOM_PDF_SEARCH_REPORTED",
6379            Self::AtomComponentStateChangedReported => {
6380                "ATOM_COMPONENT_STATE_CHANGED_REPORTED"
6381            }
6382            Self::AtomOndevicepersonalizationApiCalled => {
6383                "ATOM_ONDEVICEPERSONALIZATION_API_CALLED"
6384            }
6385            Self::AtomOndevicepersonalizationTraceEvent => {
6386                "ATOM_ONDEVICEPERSONALIZATION_TRACE_EVENT"
6387            }
6388            Self::AtomNfcObserveModeStateChanged => "ATOM_NFC_OBSERVE_MODE_STATE_CHANGED",
6389            Self::AtomNfcFieldChanged => "ATOM_NFC_FIELD_CHANGED",
6390            Self::AtomNfcPollingLoopNotificationReported => {
6391                "ATOM_NFC_POLLING_LOOP_NOTIFICATION_REPORTED"
6392            }
6393            Self::AtomNfcProprietaryCapabilitiesReported => {
6394                "ATOM_NFC_PROPRIETARY_CAPABILITIES_REPORTED"
6395            }
6396            Self::AtomNfcExitFrameTableChanged => "ATOM_NFC_EXIT_FRAME_TABLE_CHANGED",
6397            Self::AtomNfcAutoTransactReported => "ATOM_NFC_AUTO_TRANSACT_REPORTED",
6398            Self::AtomMicroxrDeviceBootCompleteReported => {
6399                "ATOM_MICROXR_DEVICE_BOOT_COMPLETE_REPORTED"
6400            }
6401            Self::AtomMteState => "ATOM_MTE_STATE",
6402            Self::AtomZramMaintenanceExecuted => "ATOM_ZRAM_MAINTENANCE_EXECUTED",
6403            Self::AtomZramSetupExecuted => "ATOM_ZRAM_SETUP_EXECUTED",
6404            Self::AtomZramMmStatMmd => "ATOM_ZRAM_MM_STAT_MMD",
6405            Self::AtomZramBdStatMmd => "ATOM_ZRAM_BD_STAT_MMD",
6406            Self::AtomMediaEditingEndedReported => "ATOM_MEDIA_EDITING_ENDED_REPORTED",
6407            Self::AtomMediaCodecReclaimRequestCompleted => {
6408                "ATOM_MEDIA_CODEC_RECLAIM_REQUEST_COMPLETED"
6409            }
6410            Self::AtomMediaCodecStarted => "ATOM_MEDIA_CODEC_STARTED",
6411            Self::AtomMediaCodecStopped => "ATOM_MEDIA_CODEC_STOPPED",
6412            Self::AtomMediaCodecRendered => "ATOM_MEDIA_CODEC_RENDERED",
6413            Self::AtomEmergencyStateChanged => "ATOM_EMERGENCY_STATE_CHANGED",
6414            Self::AtomChreSignificantMotionStateChanged => {
6415                "ATOM_CHRE_SIGNIFICANT_MOTION_STATE_CHANGED"
6416            }
6417            Self::AtomPopulationDensityProviderLoadingReported => {
6418                "ATOM_POPULATION_DENSITY_PROVIDER_LOADING_REPORTED"
6419            }
6420            Self::AtomDensityBasedCoarseLocationsUsageReported => {
6421                "ATOM_DENSITY_BASED_COARSE_LOCATIONS_USAGE_REPORTED"
6422            }
6423            Self::AtomDensityBasedCoarseLocationsProviderQueryReported => {
6424                "ATOM_DENSITY_BASED_COARSE_LOCATIONS_PROVIDER_QUERY_REPORTED"
6425            }
6426            Self::AtomKernelOomKillOccurred => "ATOM_KERNEL_OOM_KILL_OCCURRED",
6427            Self::AtomKeyboardConfigured => "ATOM_KEYBOARD_CONFIGURED",
6428            Self::AtomKeyboardSystemsEventReported => {
6429                "ATOM_KEYBOARD_SYSTEMS_EVENT_REPORTED"
6430            }
6431            Self::AtomInputdeviceUsageReported => "ATOM_INPUTDEVICE_USAGE_REPORTED",
6432            Self::AtomInputEventLatencyReported => "ATOM_INPUT_EVENT_LATENCY_REPORTED",
6433            Self::AtomTouchpadUsage => "ATOM_TOUCHPAD_USAGE",
6434            Self::AtomIkeSessionTerminated => "ATOM_IKE_SESSION_TERMINATED",
6435            Self::AtomIkeLivenessCheckSessionValidated => {
6436                "ATOM_IKE_LIVENESS_CHECK_SESSION_VALIDATED"
6437            }
6438            Self::AtomNegotiatedSecurityAssociation => {
6439                "ATOM_NEGOTIATED_SECURITY_ASSOCIATION"
6440            }
6441            Self::AtomHotwordEgressSizeAtomReported => {
6442                "ATOM_HOTWORD_EGRESS_SIZE_ATOM_REPORTED"
6443            }
6444            Self::AtomHealthConnectUiImpression => "ATOM_HEALTH_CONNECT_UI_IMPRESSION",
6445            Self::AtomHealthConnectUiInteraction => "ATOM_HEALTH_CONNECT_UI_INTERACTION",
6446            Self::AtomHealthConnectAppOpenedReported => {
6447                "ATOM_HEALTH_CONNECT_APP_OPENED_REPORTED"
6448            }
6449            Self::AtomHealthConnectApiCalled => "ATOM_HEALTH_CONNECT_API_CALLED",
6450            Self::AtomHealthConnectUsageStats => "ATOM_HEALTH_CONNECT_USAGE_STATS",
6451            Self::AtomHealthConnectStorageStats => "ATOM_HEALTH_CONNECT_STORAGE_STATS",
6452            Self::AtomHealthConnectApiInvoked => "ATOM_HEALTH_CONNECT_API_INVOKED",
6453            Self::AtomExerciseRouteApiCalled => "ATOM_EXERCISE_ROUTE_API_CALLED",
6454            Self::AtomHealthConnectExportInvoked => "ATOM_HEALTH_CONNECT_EXPORT_INVOKED",
6455            Self::AtomHealthConnectImportInvoked => "ATOM_HEALTH_CONNECT_IMPORT_INVOKED",
6456            Self::AtomHealthConnectExportImportStatsReported => {
6457                "ATOM_HEALTH_CONNECT_EXPORT_IMPORT_STATS_REPORTED"
6458            }
6459            Self::AtomHealthConnectPermissionStats => {
6460                "ATOM_HEALTH_CONNECT_PERMISSION_STATS"
6461            }
6462            Self::AtomHealthConnectPhrApiInvoked => "ATOM_HEALTH_CONNECT_PHR_API_INVOKED",
6463            Self::AtomHealthConnectPhrUsageStats => "ATOM_HEALTH_CONNECT_PHR_USAGE_STATS",
6464            Self::AtomHealthConnectPhrStorageStats => {
6465                "ATOM_HEALTH_CONNECT_PHR_STORAGE_STATS"
6466            }
6467            Self::AtomHealthConnectRestrictedEcosystemStats => {
6468                "ATOM_HEALTH_CONNECT_RESTRICTED_ECOSYSTEM_STATS"
6469            }
6470            Self::AtomHealthConnectEcosystemStats => {
6471                "ATOM_HEALTH_CONNECT_ECOSYSTEM_STATS"
6472            }
6473            Self::AtomHdmiEarcStatusReported => "ATOM_HDMI_EARC_STATUS_REPORTED",
6474            Self::AtomHdmiSoundbarModeStatusReported => {
6475                "ATOM_HDMI_SOUNDBAR_MODE_STATUS_REPORTED"
6476            }
6477            Self::AtomHdmiPowerStateChangeOnActiveSourceLostToggled => {
6478                "ATOM_HDMI_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST_TOGGLED"
6479            }
6480            Self::AtomBatteryHealth => "ATOM_BATTERY_HEALTH",
6481            Self::AtomBiometricUnenrolled => "ATOM_BIOMETRIC_UNENROLLED",
6482            Self::AtomBiometricEnumerated => "ATOM_BIOMETRIC_ENUMERATED",
6483            Self::AtomApplicationGrammaticalInflectionChanged => {
6484                "ATOM_APPLICATION_GRAMMATICAL_INFLECTION_CHANGED"
6485            }
6486            Self::AtomSystemGrammaticalInflectionChanged => {
6487                "ATOM_SYSTEM_GRAMMATICAL_INFLECTION_CHANGED"
6488            }
6489            Self::AtomFullScreenIntentLaunched => "ATOM_FULL_SCREEN_INTENT_LAUNCHED",
6490            Self::AtomBalAllowed => "ATOM_BAL_ALLOWED",
6491            Self::AtomInTaskActivityStarted => "ATOM_IN_TASK_ACTIVITY_STARTED",
6492            Self::AtomDeviceOrientationChanged => "ATOM_DEVICE_ORIENTATION_CHANGED",
6493            Self::AtomCachedAppsHighWatermark => "ATOM_CACHED_APPS_HIGH_WATERMARK",
6494            Self::AtomStylusPredictionMetricsReported => {
6495                "ATOM_STYLUS_PREDICTION_METRICS_REPORTED"
6496            }
6497            Self::AtomUserRiskEventReported => "ATOM_USER_RISK_EVENT_REPORTED",
6498            Self::AtomMediaProjectionStateChanged => {
6499                "ATOM_MEDIA_PROJECTION_STATE_CHANGED"
6500            }
6501            Self::AtomMediaProjectionTargetChanged => {
6502                "ATOM_MEDIA_PROJECTION_TARGET_CHANGED"
6503            }
6504            Self::AtomExcessiveBinderProxyCountReported => {
6505                "ATOM_EXCESSIVE_BINDER_PROXY_COUNT_REPORTED"
6506            }
6507            Self::AtomProxyBytesTransferByFgBg => "ATOM_PROXY_BYTES_TRANSFER_BY_FG_BG",
6508            Self::AtomMobileBytesTransferByProcState => {
6509                "ATOM_MOBILE_BYTES_TRANSFER_BY_PROC_STATE"
6510            }
6511            Self::AtomBiometricFrrNotification => "ATOM_BIOMETRIC_FRR_NOTIFICATION",
6512            Self::AtomSensitiveContentMediaProjectionSession => {
6513                "ATOM_SENSITIVE_CONTENT_MEDIA_PROJECTION_SESSION"
6514            }
6515            Self::AtomSensitiveNotificationAppProtectionSession => {
6516                "ATOM_SENSITIVE_NOTIFICATION_APP_PROTECTION_SESSION"
6517            }
6518            Self::AtomSensitiveNotificationAppProtectionApplied => {
6519                "ATOM_SENSITIVE_NOTIFICATION_APP_PROTECTION_APPLIED"
6520            }
6521            Self::AtomSensitiveNotificationRedaction => {
6522                "ATOM_SENSITIVE_NOTIFICATION_REDACTION"
6523            }
6524            Self::AtomSensitiveContentAppProtection => {
6525                "ATOM_SENSITIVE_CONTENT_APP_PROTECTION"
6526            }
6527            Self::AtomAppRestrictionStateChanged => "ATOM_APP_RESTRICTION_STATE_CHANGED",
6528            Self::AtomBatteryUsageStatsPerUid => "ATOM_BATTERY_USAGE_STATS_PER_UID",
6529            Self::AtomPostgcMemorySnapshot => "ATOM_POSTGC_MEMORY_SNAPSHOT",
6530            Self::AtomPowerSaveTempAllowlistChanged => {
6531                "ATOM_POWER_SAVE_TEMP_ALLOWLIST_CHANGED"
6532            }
6533            Self::AtomAppOpAccessTracked => "ATOM_APP_OP_ACCESS_TRACKED",
6534            Self::AtomContentOrFileUriEventReported => {
6535                "ATOM_CONTENT_OR_FILE_URI_EVENT_REPORTED"
6536            }
6537            Self::AtomDeviceIdleTempAllowlistUpdated => {
6538                "ATOM_DEVICE_IDLE_TEMP_ALLOWLIST_UPDATED"
6539            }
6540            Self::AtomAppOpNoteOpOrCheckOpBinderApiCalled => {
6541                "ATOM_APP_OP_NOTE_OP_OR_CHECK_OP_BINDER_API_CALLED"
6542            }
6543            Self::AtomFrameworkWakelockInfo => "ATOM_FRAMEWORK_WAKELOCK_INFO",
6544            Self::AtomJankFrameCountByWidgetReported => {
6545                "ATOM_JANK_FRAME_COUNT_BY_WIDGET_REPORTED"
6546            }
6547            Self::AtomIntentCreatorTokenAdded => "ATOM_INTENT_CREATOR_TOKEN_ADDED",
6548            Self::AtomNotificationChannelClassification => {
6549                "ATOM_NOTIFICATION_CHANNEL_CLASSIFICATION"
6550            }
6551            Self::AtomCameraStatusForCompatibilityChanged => {
6552                "ATOM_CAMERA_STATUS_FOR_COMPATIBILITY_CHANGED"
6553            }
6554            Self::AtomFederatedComputeApiCalled => "ATOM_FEDERATED_COMPUTE_API_CALLED",
6555            Self::AtomFederatedComputeTrainingEventReported => {
6556                "ATOM_FEDERATED_COMPUTE_TRAINING_EVENT_REPORTED"
6557            }
6558            Self::AtomExampleIteratorNextLatencyReported => {
6559                "ATOM_EXAMPLE_ITERATOR_NEXT_LATENCY_REPORTED"
6560            }
6561            Self::AtomFederatedComputeTraceEventReported => {
6562                "ATOM_FEDERATED_COMPUTE_TRACE_EVENT_REPORTED"
6563            }
6564            Self::AtomExpressEventReported => "ATOM_EXPRESS_EVENT_REPORTED",
6565            Self::AtomExpressHistogramSampleReported => {
6566                "ATOM_EXPRESS_HISTOGRAM_SAMPLE_REPORTED"
6567            }
6568            Self::AtomExpressUidEventReported => "ATOM_EXPRESS_UID_EVENT_REPORTED",
6569            Self::AtomExpressUidHistogramSampleReported => {
6570                "ATOM_EXPRESS_UID_HISTOGRAM_SAMPLE_REPORTED"
6571            }
6572            Self::AtomDreamSettingChanged => "ATOM_DREAM_SETTING_CHANGED",
6573            Self::AtomDreamSettingSnapshot => "ATOM_DREAM_SETTING_SNAPSHOT",
6574            Self::AtomDndStateChanged => "ATOM_DND_STATE_CHANGED",
6575            Self::AtomExternalDisplayStateChanged => {
6576                "ATOM_EXTERNAL_DISPLAY_STATE_CHANGED"
6577            }
6578            Self::AtomDisplayModeDirectorVoteChanged => {
6579                "ATOM_DISPLAY_MODE_DIRECTOR_VOTE_CHANGED"
6580            }
6581            Self::AtomDevicePolicyManagementMode => "ATOM_DEVICE_POLICY_MANAGEMENT_MODE",
6582            Self::AtomDevicePolicyState => "ATOM_DEVICE_POLICY_STATE",
6583            Self::AtomDeviceLockCheckInRequestReported => {
6584                "ATOM_DEVICE_LOCK_CHECK_IN_REQUEST_REPORTED"
6585            }
6586            Self::AtomDeviceLockProvisioningCompleteReported => {
6587                "ATOM_DEVICE_LOCK_PROVISIONING_COMPLETE_REPORTED"
6588            }
6589            Self::AtomDeviceLockKioskAppRequestReported => {
6590                "ATOM_DEVICE_LOCK_KIOSK_APP_REQUEST_REPORTED"
6591            }
6592            Self::AtomDeviceLockCheckInRetryReported => {
6593                "ATOM_DEVICE_LOCK_CHECK_IN_RETRY_REPORTED"
6594            }
6595            Self::AtomDeviceLockProvisionFailureReported => {
6596                "ATOM_DEVICE_LOCK_PROVISION_FAILURE_REPORTED"
6597            }
6598            Self::AtomDeviceLockLockUnlockDeviceFailureReported => {
6599                "ATOM_DEVICE_LOCK_LOCK_UNLOCK_DEVICE_FAILURE_REPORTED"
6600            }
6601            Self::AtomDesktopModeUiChanged => "ATOM_DESKTOP_MODE_UI_CHANGED",
6602            Self::AtomDesktopModeSessionTaskUpdate => {
6603                "ATOM_DESKTOP_MODE_SESSION_TASK_UPDATE"
6604            }
6605            Self::AtomDesktopModeTaskSizeUpdated => "ATOM_DESKTOP_MODE_TASK_SIZE_UPDATED",
6606            Self::AtomCronetEngineCreated => "ATOM_CRONET_ENGINE_CREATED",
6607            Self::AtomCronetTrafficReported => "ATOM_CRONET_TRAFFIC_REPORTED",
6608            Self::AtomCronetEngineBuilderInitialized => {
6609                "ATOM_CRONET_ENGINE_BUILDER_INITIALIZED"
6610            }
6611            Self::AtomCronetHttpFlagsInitialized => "ATOM_CRONET_HTTP_FLAGS_INITIALIZED",
6612            Self::AtomCronetInitialized => "ATOM_CRONET_INITIALIZED",
6613            Self::AtomCredentialManagerApiCalled => "ATOM_CREDENTIAL_MANAGER_API_CALLED",
6614            Self::AtomCredentialManagerInitPhaseReported => {
6615                "ATOM_CREDENTIAL_MANAGER_INIT_PHASE_REPORTED"
6616            }
6617            Self::AtomCredentialManagerCandidatePhaseReported => {
6618                "ATOM_CREDENTIAL_MANAGER_CANDIDATE_PHASE_REPORTED"
6619            }
6620            Self::AtomCredentialManagerFinalPhaseReported => {
6621                "ATOM_CREDENTIAL_MANAGER_FINAL_PHASE_REPORTED"
6622            }
6623            Self::AtomCredentialManagerTotalReported => {
6624                "ATOM_CREDENTIAL_MANAGER_TOTAL_REPORTED"
6625            }
6626            Self::AtomCredentialManagerFinalnouidReported => {
6627                "ATOM_CREDENTIAL_MANAGER_FINALNOUID_REPORTED"
6628            }
6629            Self::AtomCredentialManagerGetReported => {
6630                "ATOM_CREDENTIAL_MANAGER_GET_REPORTED"
6631            }
6632            Self::AtomCredentialManagerAuthClickReported => {
6633                "ATOM_CREDENTIAL_MANAGER_AUTH_CLICK_REPORTED"
6634            }
6635            Self::AtomCredentialManagerApiv2Called => {
6636                "ATOM_CREDENTIAL_MANAGER_APIV2_CALLED"
6637            }
6638            Self::AtomCpuPolicy => "ATOM_CPU_POLICY",
6639            Self::AtomVpnConnectionStateChanged => "ATOM_VPN_CONNECTION_STATE_CHANGED",
6640            Self::AtomVpnConnectionReported => "ATOM_VPN_CONNECTION_REPORTED",
6641            Self::AtomIpClientRaInfoReported => "ATOM_IP_CLIENT_RA_INFO_REPORTED",
6642            Self::AtomApfSessionInfoReported => "ATOM_APF_SESSION_INFO_REPORTED",
6643            Self::AtomCoreNetworkingTerribleErrorOccurred => {
6644                "ATOM_CORE_NETWORKING_TERRIBLE_ERROR_OCCURRED"
6645            }
6646            Self::AtomNetworkStatsRecorderFileOperated => {
6647                "ATOM_NETWORK_STATS_RECORDER_FILE_OPERATED"
6648            }
6649            Self::AtomDailyKeepaliveInfoReported => "ATOM_DAILY_KEEPALIVE_INFO_REPORTED",
6650            Self::AtomNetworkRequestStateChanged => "ATOM_NETWORK_REQUEST_STATE_CHANGED",
6651            Self::AtomTetheringActiveSessionsReported => {
6652                "ATOM_TETHERING_ACTIVE_SESSIONS_REPORTED"
6653            }
6654            Self::AtomCertificateTransparencyLogListUpdateStateChanged => {
6655                "ATOM_CERTIFICATE_TRANSPARENCY_LOG_LIST_UPDATE_STATE_CHANGED"
6656            }
6657            Self::AtomHardwareRendererEvent => "ATOM_HARDWARE_RENDERER_EVENT",
6658            Self::AtomTextureViewEvent => "ATOM_TEXTURE_VIEW_EVENT",
6659            Self::AtomSurfaceControlEvent => "ATOM_SURFACE_CONTROL_EVENT",
6660            Self::AtomImageDecoded => "ATOM_IMAGE_DECODED",
6661            Self::AtomCertificateTransparencyLogListStateChanged => {
6662                "ATOM_CERTIFICATE_TRANSPARENCY_LOG_LIST_STATE_CHANGED"
6663            }
6664            Self::AtomConscryptServiceUsed => "ATOM_CONSCRYPT_SERVICE_USED",
6665            Self::AtomCertificateTransparencyVerificationReported => {
6666                "ATOM_CERTIFICATE_TRANSPARENCY_VERIFICATION_REPORTED"
6667            }
6668            Self::AtomCameraFeatureCombinationQueryEvent => {
6669                "ATOM_CAMERA_FEATURE_COMBINATION_QUERY_EVENT"
6670            }
6671            Self::AtomBroadcastSent => "ATOM_BROADCAST_SENT",
6672            Self::AtomBluetoothHashedDeviceNameReported => {
6673                "ATOM_BLUETOOTH_HASHED_DEVICE_NAME_REPORTED"
6674            }
6675            Self::AtomBluetoothL2capCocClientConnection => {
6676                "ATOM_BLUETOOTH_L2CAP_COC_CLIENT_CONNECTION"
6677            }
6678            Self::AtomBluetoothL2capCocServerConnection => {
6679                "ATOM_BLUETOOTH_L2CAP_COC_SERVER_CONNECTION"
6680            }
6681            Self::AtomBluetoothLeSessionConnected => {
6682                "ATOM_BLUETOOTH_LE_SESSION_CONNECTED"
6683            }
6684            Self::AtomRestrictedBluetoothDeviceNameReported => {
6685                "ATOM_RESTRICTED_BLUETOOTH_DEVICE_NAME_REPORTED"
6686            }
6687            Self::AtomBluetoothProfileConnectionAttempted => {
6688                "ATOM_BLUETOOTH_PROFILE_CONNECTION_ATTEMPTED"
6689            }
6690            Self::AtomBluetoothContentProfileErrorReported => {
6691                "ATOM_BLUETOOTH_CONTENT_PROFILE_ERROR_REPORTED"
6692            }
6693            Self::AtomBluetoothRfcommConnectionAttempted => {
6694                "ATOM_BLUETOOTH_RFCOMM_CONNECTION_ATTEMPTED"
6695            }
6696            Self::AtomRemoteDeviceInformationWithMetricId => {
6697                "ATOM_REMOTE_DEVICE_INFORMATION_WITH_METRIC_ID"
6698            }
6699            Self::AtomLeAppScanStateChanged => "ATOM_LE_APP_SCAN_STATE_CHANGED",
6700            Self::AtomLeRadioScanStopped => "ATOM_LE_RADIO_SCAN_STOPPED",
6701            Self::AtomLeScanResultReceived => "ATOM_LE_SCAN_RESULT_RECEIVED",
6702            Self::AtomLeScanAbused => "ATOM_LE_SCAN_ABUSED",
6703            Self::AtomLeAdvStateChanged => "ATOM_LE_ADV_STATE_CHANGED",
6704            Self::AtomLeAdvErrorReported => "ATOM_LE_ADV_ERROR_REPORTED",
6705            Self::AtomA2dpSessionReported => "ATOM_A2DP_SESSION_REPORTED",
6706            Self::AtomBluetoothCrossLayerEventReported => {
6707                "ATOM_BLUETOOTH_CROSS_LAYER_EVENT_REPORTED"
6708            }
6709            Self::AtomBroadcastAudioSessionReported => {
6710                "ATOM_BROADCAST_AUDIO_SESSION_REPORTED"
6711            }
6712            Self::AtomBroadcastAudioSyncReported => "ATOM_BROADCAST_AUDIO_SYNC_REPORTED",
6713            Self::AtomBluetoothRfcommConnectionReportedAtClose => {
6714                "ATOM_BLUETOOTH_RFCOMM_CONNECTION_REPORTED_AT_CLOSE"
6715            }
6716            Self::AtomBluetoothLeConnection => "ATOM_BLUETOOTH_LE_CONNECTION",
6717            Self::AtomHearingDeviceActiveEventReported => {
6718                "ATOM_HEARING_DEVICE_ACTIVE_EVENT_REPORTED"
6719            }
6720            Self::AtomBackportedFixStatusReported => {
6721                "ATOM_BACKPORTED_FIX_STATUS_REPORTED"
6722            }
6723            Self::AtomPluginInitialized => "ATOM_PLUGIN_INITIALIZED",
6724            Self::AtomCarSystemUiDataSubscriptionEventReported => {
6725                "ATOM_CAR_SYSTEM_UI_DATA_SUBSCRIPTION_EVENT_REPORTED"
6726            }
6727            Self::AtomCarSettingsDataSubscriptionEventReported => {
6728                "ATOM_CAR_SETTINGS_DATA_SUBSCRIPTION_EVENT_REPORTED"
6729            }
6730            Self::AtomCarQcLibEventReported => "ATOM_CAR_QC_LIB_EVENT_REPORTED",
6731            Self::AtomCarWakeupFromSuspendReported => {
6732                "ATOM_CAR_WAKEUP_FROM_SUSPEND_REPORTED"
6733            }
6734            Self::AtomCarRecentsEventReported => "ATOM_CAR_RECENTS_EVENT_REPORTED",
6735            Self::AtomCarCalmModeEventReported => "ATOM_CAR_CALM_MODE_EVENT_REPORTED",
6736            Self::AtomAutofillUiEventReported => "ATOM_AUTOFILL_UI_EVENT_REPORTED",
6737            Self::AtomAutofillFillRequestReported => {
6738                "ATOM_AUTOFILL_FILL_REQUEST_REPORTED"
6739            }
6740            Self::AtomAutofillFillResponseReported => {
6741                "ATOM_AUTOFILL_FILL_RESPONSE_REPORTED"
6742            }
6743            Self::AtomAutofillSaveEventReported => "ATOM_AUTOFILL_SAVE_EVENT_REPORTED",
6744            Self::AtomAutofillSessionCommitted => "ATOM_AUTOFILL_SESSION_COMMITTED",
6745            Self::AtomAutofillFieldClassificationEventReported => {
6746                "ATOM_AUTOFILL_FIELD_CLASSIFICATION_EVENT_REPORTED"
6747            }
6748            Self::AtomOdrefreshReported => "ATOM_ODREFRESH_REPORTED",
6749            Self::AtomOdsignReported => "ATOM_ODSIGN_REPORTED",
6750            Self::AtomBackgroundDexoptJobEnded => "ATOM_BACKGROUND_DEXOPT_JOB_ENDED",
6751            Self::AtomPrerebootDexoptJobEnded => "ATOM_PREREBOOT_DEXOPT_JOB_ENDED",
6752            Self::AtomArtDatumReported => "ATOM_ART_DATUM_REPORTED",
6753            Self::AtomArtDeviceDatumReported => "ATOM_ART_DEVICE_DATUM_REPORTED",
6754            Self::AtomArtDatumDeltaReported => "ATOM_ART_DATUM_DELTA_REPORTED",
6755            Self::AtomArtDex2oatReported => "ATOM_ART_DEX2OAT_REPORTED",
6756            Self::AtomArtDeviceStatus => "ATOM_ART_DEVICE_STATUS",
6757            Self::AtomAppSearchSetSchemaStatsReported => {
6758                "ATOM_APP_SEARCH_SET_SCHEMA_STATS_REPORTED"
6759            }
6760            Self::AtomAppSearchSchemaMigrationStatsReported => {
6761                "ATOM_APP_SEARCH_SCHEMA_MIGRATION_STATS_REPORTED"
6762            }
6763            Self::AtomAppSearchUsageSearchIntentStatsReported => {
6764                "ATOM_APP_SEARCH_USAGE_SEARCH_INTENT_STATS_REPORTED"
6765            }
6766            Self::AtomAppSearchUsageSearchIntentRawQueryStatsReported => {
6767                "ATOM_APP_SEARCH_USAGE_SEARCH_INTENT_RAW_QUERY_STATS_REPORTED"
6768            }
6769            Self::AtomAppSearchAppsIndexerStatsReported => {
6770                "ATOM_APP_SEARCH_APPS_INDEXER_STATS_REPORTED"
6771            }
6772            Self::AtomAppFunctionsRequestReported => {
6773                "ATOM_APP_FUNCTIONS_REQUEST_REPORTED"
6774            }
6775            Self::AtomApexInstallationRequested => "ATOM_APEX_INSTALLATION_REQUESTED",
6776            Self::AtomApexInstallationStaged => "ATOM_APEX_INSTALLATION_STAGED",
6777            Self::AtomApexInstallationEnded => "ATOM_APEX_INSTALLATION_ENDED",
6778            Self::AtomAiWallpapersButtonPressed => "ATOM_AI_WALLPAPERS_BUTTON_PRESSED",
6779            Self::AtomAiWallpapersTemplateSelected => {
6780                "ATOM_AI_WALLPAPERS_TEMPLATE_SELECTED"
6781            }
6782            Self::AtomAiWallpapersTermSelected => "ATOM_AI_WALLPAPERS_TERM_SELECTED",
6783            Self::AtomAiWallpapersWallpaperSet => "ATOM_AI_WALLPAPERS_WALLPAPER_SET",
6784            Self::AtomAiWallpapersSessionSummary => "ATOM_AI_WALLPAPERS_SESSION_SUMMARY",
6785            Self::AtomJsscriptengineLatencyReported => {
6786                "ATOM_JSSCRIPTENGINE_LATENCY_REPORTED"
6787            }
6788            Self::AtomAdServicesApiCalled => "ATOM_AD_SERVICES_API_CALLED",
6789            Self::AtomAdServicesMesurementReportsUploaded => {
6790                "ATOM_AD_SERVICES_MESUREMENT_REPORTS_UPLOADED"
6791            }
6792            Self::AtomMobileDataDownloadFileGroupStatusReported => {
6793                "ATOM_MOBILE_DATA_DOWNLOAD_FILE_GROUP_STATUS_REPORTED"
6794            }
6795            Self::AtomMobileDataDownloadDownloadResultReported => {
6796                "ATOM_MOBILE_DATA_DOWNLOAD_DOWNLOAD_RESULT_REPORTED"
6797            }
6798            Self::AtomAdServicesSettingsUsageReported => {
6799                "ATOM_AD_SERVICES_SETTINGS_USAGE_REPORTED"
6800            }
6801            Self::AtomBackgroundFetchProcessReported => {
6802                "ATOM_BACKGROUND_FETCH_PROCESS_REPORTED"
6803            }
6804            Self::AtomUpdateCustomAudienceProcessReported => {
6805                "ATOM_UPDATE_CUSTOM_AUDIENCE_PROCESS_REPORTED"
6806            }
6807            Self::AtomRunAdBiddingProcessReported => {
6808                "ATOM_RUN_AD_BIDDING_PROCESS_REPORTED"
6809            }
6810            Self::AtomRunAdScoringProcessReported => {
6811                "ATOM_RUN_AD_SCORING_PROCESS_REPORTED"
6812            }
6813            Self::AtomRunAdSelectionProcessReported => {
6814                "ATOM_RUN_AD_SELECTION_PROCESS_REPORTED"
6815            }
6816            Self::AtomRunAdBiddingPerCaProcessReported => {
6817                "ATOM_RUN_AD_BIDDING_PER_CA_PROCESS_REPORTED"
6818            }
6819            Self::AtomMobileDataDownloadFileGroupStorageStatsReported => {
6820                "ATOM_MOBILE_DATA_DOWNLOAD_FILE_GROUP_STORAGE_STATS_REPORTED"
6821            }
6822            Self::AtomAdServicesMeasurementRegistrations => {
6823                "ATOM_AD_SERVICES_MEASUREMENT_REGISTRATIONS"
6824            }
6825            Self::AtomAdServicesGetTopicsReported => {
6826                "ATOM_AD_SERVICES_GET_TOPICS_REPORTED"
6827            }
6828            Self::AtomAdServicesEpochComputationGetTopTopicsReported => {
6829                "ATOM_AD_SERVICES_EPOCH_COMPUTATION_GET_TOP_TOPICS_REPORTED"
6830            }
6831            Self::AtomAdServicesEpochComputationClassifierReported => {
6832                "ATOM_AD_SERVICES_EPOCH_COMPUTATION_CLASSIFIER_REPORTED"
6833            }
6834            Self::AtomAdServicesBackCompatGetTopicsReported => {
6835                "ATOM_AD_SERVICES_BACK_COMPAT_GET_TOPICS_REPORTED"
6836            }
6837            Self::AtomAdServicesBackCompatEpochComputationClassifierReported => {
6838                "ATOM_AD_SERVICES_BACK_COMPAT_EPOCH_COMPUTATION_CLASSIFIER_REPORTED"
6839            }
6840            Self::AtomAdServicesMeasurementDebugKeys => {
6841                "ATOM_AD_SERVICES_MEASUREMENT_DEBUG_KEYS"
6842            }
6843            Self::AtomAdServicesErrorReported => "ATOM_AD_SERVICES_ERROR_REPORTED",
6844            Self::AtomAdServicesBackgroundJobsExecutionReported => {
6845                "ATOM_AD_SERVICES_BACKGROUND_JOBS_EXECUTION_REPORTED"
6846            }
6847            Self::AtomAdServicesMeasurementDelayedSourceRegistration => {
6848                "ATOM_AD_SERVICES_MEASUREMENT_DELAYED_SOURCE_REGISTRATION"
6849            }
6850            Self::AtomAdServicesMeasurementAttribution => {
6851                "ATOM_AD_SERVICES_MEASUREMENT_ATTRIBUTION"
6852            }
6853            Self::AtomAdServicesMeasurementJobs => "ATOM_AD_SERVICES_MEASUREMENT_JOBS",
6854            Self::AtomAdServicesMeasurementWipeout => {
6855                "ATOM_AD_SERVICES_MEASUREMENT_WIPEOUT"
6856            }
6857            Self::AtomAdServicesMeasurementAdIdMatchForDebugKeys => {
6858                "ATOM_AD_SERVICES_MEASUREMENT_AD_ID_MATCH_FOR_DEBUG_KEYS"
6859            }
6860            Self::AtomAdServicesEnrollmentDataStored => {
6861                "ATOM_AD_SERVICES_ENROLLMENT_DATA_STORED"
6862            }
6863            Self::AtomAdServicesEnrollmentFileDownloaded => {
6864                "ATOM_AD_SERVICES_ENROLLMENT_FILE_DOWNLOADED"
6865            }
6866            Self::AtomAdServicesEnrollmentMatched => {
6867                "ATOM_AD_SERVICES_ENROLLMENT_MATCHED"
6868            }
6869            Self::AtomAdServicesConsentMigrated => "ATOM_AD_SERVICES_CONSENT_MIGRATED",
6870            Self::AtomAdServicesEnrollmentFailed => "ATOM_AD_SERVICES_ENROLLMENT_FAILED",
6871            Self::AtomAdServicesMeasurementClickVerification => {
6872                "ATOM_AD_SERVICES_MEASUREMENT_CLICK_VERIFICATION"
6873            }
6874            Self::AtomAdServicesEncryptionKeyFetched => {
6875                "ATOM_AD_SERVICES_ENCRYPTION_KEY_FETCHED"
6876            }
6877            Self::AtomAdServicesEncryptionKeyDbTransactionEnded => {
6878                "ATOM_AD_SERVICES_ENCRYPTION_KEY_DB_TRANSACTION_ENDED"
6879            }
6880            Self::AtomDestinationRegisteredBeacons => {
6881                "ATOM_DESTINATION_REGISTERED_BEACONS"
6882            }
6883            Self::AtomReportInteractionApiCalled => "ATOM_REPORT_INTERACTION_API_CALLED",
6884            Self::AtomInteractionReportingTableCleared => {
6885                "ATOM_INTERACTION_REPORTING_TABLE_CLEARED"
6886            }
6887            Self::AtomAppManifestConfigHelperCalled => {
6888                "ATOM_APP_MANIFEST_CONFIG_HELPER_CALLED"
6889            }
6890            Self::AtomAdFilteringProcessJoinCaReported => {
6891                "ATOM_AD_FILTERING_PROCESS_JOIN_CA_REPORTED"
6892            }
6893            Self::AtomAdFilteringProcessAdSelectionReported => {
6894                "ATOM_AD_FILTERING_PROCESS_AD_SELECTION_REPORTED"
6895            }
6896            Self::AtomAdCounterHistogramUpdaterReported => {
6897                "ATOM_AD_COUNTER_HISTOGRAM_UPDATER_REPORTED"
6898            }
6899            Self::AtomSignatureVerification => "ATOM_SIGNATURE_VERIFICATION",
6900            Self::AtomKAnonImmediateSignJoinStatusReported => {
6901                "ATOM_K_ANON_IMMEDIATE_SIGN_JOIN_STATUS_REPORTED"
6902            }
6903            Self::AtomKAnonBackgroundJobStatusReported => {
6904                "ATOM_K_ANON_BACKGROUND_JOB_STATUS_REPORTED"
6905            }
6906            Self::AtomKAnonInitializeStatusReported => {
6907                "ATOM_K_ANON_INITIALIZE_STATUS_REPORTED"
6908            }
6909            Self::AtomKAnonSignStatusReported => "ATOM_K_ANON_SIGN_STATUS_REPORTED",
6910            Self::AtomKAnonJoinStatusReported => "ATOM_K_ANON_JOIN_STATUS_REPORTED",
6911            Self::AtomKAnonKeyAttestationStatusReported => {
6912                "ATOM_K_ANON_KEY_ATTESTATION_STATUS_REPORTED"
6913            }
6914            Self::AtomGetAdSelectionDataApiCalled => {
6915                "ATOM_GET_AD_SELECTION_DATA_API_CALLED"
6916            }
6917            Self::AtomGetAdSelectionDataBuyerInputGenerated => {
6918                "ATOM_GET_AD_SELECTION_DATA_BUYER_INPUT_GENERATED"
6919            }
6920            Self::AtomBackgroundJobSchedulingReported => {
6921                "ATOM_BACKGROUND_JOB_SCHEDULING_REPORTED"
6922            }
6923            Self::AtomTopicsEncryptionEpochComputationReported => {
6924                "ATOM_TOPICS_ENCRYPTION_EPOCH_COMPUTATION_REPORTED"
6925            }
6926            Self::AtomTopicsEncryptionGetTopicsReported => {
6927                "ATOM_TOPICS_ENCRYPTION_GET_TOPICS_REPORTED"
6928            }
6929            Self::AtomAdservicesShellCommandCalled => {
6930                "ATOM_ADSERVICES_SHELL_COMMAND_CALLED"
6931            }
6932            Self::AtomUpdateSignalsApiCalled => "ATOM_UPDATE_SIGNALS_API_CALLED",
6933            Self::AtomEncodingJobRun => "ATOM_ENCODING_JOB_RUN",
6934            Self::AtomEncodingJsFetch => "ATOM_ENCODING_JS_FETCH",
6935            Self::AtomEncodingJsExecution => "ATOM_ENCODING_JS_EXECUTION",
6936            Self::AtomPersistAdSelectionResultCalled => {
6937                "ATOM_PERSIST_AD_SELECTION_RESULT_CALLED"
6938            }
6939            Self::AtomServerAuctionKeyFetchCalled => {
6940                "ATOM_SERVER_AUCTION_KEY_FETCH_CALLED"
6941            }
6942            Self::AtomServerAuctionBackgroundKeyFetchEnabled => {
6943                "ATOM_SERVER_AUCTION_BACKGROUND_KEY_FETCH_ENABLED"
6944            }
6945            Self::AtomAdServicesMeasurementProcessOdpRegistration => {
6946                "ATOM_AD_SERVICES_MEASUREMENT_PROCESS_ODP_REGISTRATION"
6947            }
6948            Self::AtomAdServicesMeasurementNotifyRegistrationToOdp => {
6949                "ATOM_AD_SERVICES_MEASUREMENT_NOTIFY_REGISTRATION_TO_ODP"
6950            }
6951            Self::AtomSelectAdsFromOutcomesApiCalled => {
6952                "ATOM_SELECT_ADS_FROM_OUTCOMES_API_CALLED"
6953            }
6954            Self::AtomReportImpressionApiCalled => "ATOM_REPORT_IMPRESSION_API_CALLED",
6955            Self::AtomAdServicesEnrollmentTransactionStats => {
6956                "ATOM_AD_SERVICES_ENROLLMENT_TRANSACTION_STATS"
6957            }
6958            Self::AtomAdServicesCobaltLoggerEventReported => {
6959                "ATOM_AD_SERVICES_COBALT_LOGGER_EVENT_REPORTED"
6960            }
6961            Self::AtomAdServicesCobaltPeriodicJobEventReported => {
6962                "ATOM_AD_SERVICES_COBALT_PERIODIC_JOB_EVENT_REPORTED"
6963            }
6964            Self::AtomUpdateSignalsProcessReported => {
6965                "ATOM_UPDATE_SIGNALS_PROCESS_REPORTED"
6966            }
6967            Self::AtomTopicsScheduleEpochJobSettingReported => {
6968                "ATOM_TOPICS_SCHEDULE_EPOCH_JOB_SETTING_REPORTED"
6969            }
6970            Self::AtomScheduledCustomAudienceUpdateScheduleAttempted => {
6971                "ATOM_SCHEDULED_CUSTOM_AUDIENCE_UPDATE_SCHEDULE_ATTEMPTED"
6972            }
6973            Self::AtomScheduledCustomAudienceUpdatePerformed => {
6974                "ATOM_SCHEDULED_CUSTOM_AUDIENCE_UPDATE_PERFORMED"
6975            }
6976            Self::AtomScheduledCustomAudienceUpdatePerformedAttemptedFailureReported => {
6977                "ATOM_SCHEDULED_CUSTOM_AUDIENCE_UPDATE_PERFORMED_ATTEMPTED_FAILURE_REPORTED"
6978            }
6979            Self::AtomScheduledCustomAudienceUpdateBackgroundJobRan => {
6980                "ATOM_SCHEDULED_CUSTOM_AUDIENCE_UPDATE_BACKGROUND_JOB_RAN"
6981            }
6982            Self::AtomThermalStatusCalled => "ATOM_THERMAL_STATUS_CALLED",
6983            Self::AtomThermalHeadroomCalled => "ATOM_THERMAL_HEADROOM_CALLED",
6984            Self::AtomThermalHeadroomThresholdsCalled => {
6985                "ATOM_THERMAL_HEADROOM_THRESHOLDS_CALLED"
6986            }
6987            Self::AtomAdpfHintSessionTidCleanup => "ATOM_ADPF_HINT_SESSION_TID_CLEANUP",
6988            Self::AtomThermalHeadroomThresholds => "ATOM_THERMAL_HEADROOM_THRESHOLDS",
6989            Self::AtomAdpfSessionSnapshot => "ATOM_ADPF_SESSION_SNAPSHOT",
6990            Self::AtomAdaptiveAuthUnlockAfterLockReported => {
6991                "ATOM_ADAPTIVE_AUTH_UNLOCK_AFTER_LOCK_REPORTED"
6992            }
6993            Self::AtomAccountManagerEvent => "ATOM_ACCOUNT_MANAGER_EVENT",
6994            Self::AtomAccessibilityCheckResultReported => {
6995                "ATOM_ACCESSIBILITY_CHECK_RESULT_REPORTED"
6996            }
6997        }
6998    }
6999    /// Creates an enum from field names used in the ProtoBuf definition.
7000    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7001        match value {
7002            "ATOM_UNSPECIFIED" => Some(Self::AtomUnspecified),
7003            "ATOM_BLE_SCAN_STATE_CHANGED" => Some(Self::AtomBleScanStateChanged),
7004            "ATOM_PROCESS_STATE_CHANGED" => Some(Self::AtomProcessStateChanged),
7005            "ATOM_BLE_SCAN_RESULT_RECEIVED" => Some(Self::AtomBleScanResultReceived),
7006            "ATOM_SENSOR_STATE_CHANGED" => Some(Self::AtomSensorStateChanged),
7007            "ATOM_GPS_SCAN_STATE_CHANGED" => Some(Self::AtomGpsScanStateChanged),
7008            "ATOM_SYNC_STATE_CHANGED" => Some(Self::AtomSyncStateChanged),
7009            "ATOM_SCHEDULED_JOB_STATE_CHANGED" => {
7010                Some(Self::AtomScheduledJobStateChanged)
7011            }
7012            "ATOM_SCREEN_BRIGHTNESS_CHANGED" => Some(Self::AtomScreenBrightnessChanged),
7013            "ATOM_WAKELOCK_STATE_CHANGED" => Some(Self::AtomWakelockStateChanged),
7014            "ATOM_LONG_PARTIAL_WAKELOCK_STATE_CHANGED" => {
7015                Some(Self::AtomLongPartialWakelockStateChanged)
7016            }
7017            "ATOM_MOBILE_RADIO_POWER_STATE_CHANGED" => {
7018                Some(Self::AtomMobileRadioPowerStateChanged)
7019            }
7020            "ATOM_WIFI_RADIO_POWER_STATE_CHANGED" => {
7021                Some(Self::AtomWifiRadioPowerStateChanged)
7022            }
7023            "ATOM_ACTIVITY_MANAGER_SLEEP_STATE_CHANGED" => {
7024                Some(Self::AtomActivityManagerSleepStateChanged)
7025            }
7026            "ATOM_MEMORY_FACTOR_STATE_CHANGED" => {
7027                Some(Self::AtomMemoryFactorStateChanged)
7028            }
7029            "ATOM_EXCESSIVE_CPU_USAGE_REPORTED" => {
7030                Some(Self::AtomExcessiveCpuUsageReported)
7031            }
7032            "ATOM_CACHED_KILL_REPORTED" => Some(Self::AtomCachedKillReported),
7033            "ATOM_PROCESS_MEMORY_STAT_REPORTED" => {
7034                Some(Self::AtomProcessMemoryStatReported)
7035            }
7036            "ATOM_LAUNCHER_EVENT" => Some(Self::AtomLauncherEvent),
7037            "ATOM_BATTERY_SAVER_MODE_STATE_CHANGED" => {
7038                Some(Self::AtomBatterySaverModeStateChanged)
7039            }
7040            "ATOM_DEVICE_IDLE_MODE_STATE_CHANGED" => {
7041                Some(Self::AtomDeviceIdleModeStateChanged)
7042            }
7043            "ATOM_DEVICE_IDLING_MODE_STATE_CHANGED" => {
7044                Some(Self::AtomDeviceIdlingModeStateChanged)
7045            }
7046            "ATOM_AUDIO_STATE_CHANGED" => Some(Self::AtomAudioStateChanged),
7047            "ATOM_MEDIA_CODEC_STATE_CHANGED" => Some(Self::AtomMediaCodecStateChanged),
7048            "ATOM_CAMERA_STATE_CHANGED" => Some(Self::AtomCameraStateChanged),
7049            "ATOM_FLASHLIGHT_STATE_CHANGED" => Some(Self::AtomFlashlightStateChanged),
7050            "ATOM_UID_PROCESS_STATE_CHANGED" => Some(Self::AtomUidProcessStateChanged),
7051            "ATOM_PROCESS_LIFE_CYCLE_STATE_CHANGED" => {
7052                Some(Self::AtomProcessLifeCycleStateChanged)
7053            }
7054            "ATOM_SCREEN_STATE_CHANGED" => Some(Self::AtomScreenStateChanged),
7055            "ATOM_BATTERY_LEVEL_CHANGED" => Some(Self::AtomBatteryLevelChanged),
7056            "ATOM_CHARGING_STATE_CHANGED" => Some(Self::AtomChargingStateChanged),
7057            "ATOM_PLUGGED_STATE_CHANGED" => Some(Self::AtomPluggedStateChanged),
7058            "ATOM_INTERACTIVE_STATE_CHANGED" => Some(Self::AtomInteractiveStateChanged),
7059            "ATOM_TOUCH_EVENT_REPORTED" => Some(Self::AtomTouchEventReported),
7060            "ATOM_WAKEUP_ALARM_OCCURRED" => Some(Self::AtomWakeupAlarmOccurred),
7061            "ATOM_KERNEL_WAKEUP_REPORTED" => Some(Self::AtomKernelWakeupReported),
7062            "ATOM_WIFI_LOCK_STATE_CHANGED" => Some(Self::AtomWifiLockStateChanged),
7063            "ATOM_WIFI_SIGNAL_STRENGTH_CHANGED" => {
7064                Some(Self::AtomWifiSignalStrengthChanged)
7065            }
7066            "ATOM_WIFI_SCAN_STATE_CHANGED" => Some(Self::AtomWifiScanStateChanged),
7067            "ATOM_PHONE_SIGNAL_STRENGTH_CHANGED" => {
7068                Some(Self::AtomPhoneSignalStrengthChanged)
7069            }
7070            "ATOM_SETTING_CHANGED" => Some(Self::AtomSettingChanged),
7071            "ATOM_ACTIVITY_FOREGROUND_STATE_CHANGED" => {
7072                Some(Self::AtomActivityForegroundStateChanged)
7073            }
7074            "ATOM_ISOLATED_UID_CHANGED" => Some(Self::AtomIsolatedUidChanged),
7075            "ATOM_PACKET_WAKEUP_OCCURRED" => Some(Self::AtomPacketWakeupOccurred),
7076            "ATOM_WALL_CLOCK_TIME_SHIFTED" => Some(Self::AtomWallClockTimeShifted),
7077            "ATOM_ANOMALY_DETECTED" => Some(Self::AtomAnomalyDetected),
7078            "ATOM_APP_BREADCRUMB_REPORTED" => Some(Self::AtomAppBreadcrumbReported),
7079            "ATOM_APP_START_OCCURRED" => Some(Self::AtomAppStartOccurred),
7080            "ATOM_APP_START_CANCELED" => Some(Self::AtomAppStartCanceled),
7081            "ATOM_APP_START_FULLY_DRAWN" => Some(Self::AtomAppStartFullyDrawn),
7082            "ATOM_LMK_KILL_OCCURRED" => Some(Self::AtomLmkKillOccurred),
7083            "ATOM_PICTURE_IN_PICTURE_STATE_CHANGED" => {
7084                Some(Self::AtomPictureInPictureStateChanged)
7085            }
7086            "ATOM_WIFI_MULTICAST_LOCK_STATE_CHANGED" => {
7087                Some(Self::AtomWifiMulticastLockStateChanged)
7088            }
7089            "ATOM_APP_START_MEMORY_STATE_CAPTURED" => {
7090                Some(Self::AtomAppStartMemoryStateCaptured)
7091            }
7092            "ATOM_SHUTDOWN_SEQUENCE_REPORTED" => Some(Self::AtomShutdownSequenceReported),
7093            "ATOM_BOOT_SEQUENCE_REPORTED" => Some(Self::AtomBootSequenceReported),
7094            "ATOM_OVERLAY_STATE_CHANGED" => Some(Self::AtomOverlayStateChanged),
7095            "ATOM_FOREGROUND_SERVICE_STATE_CHANGED" => {
7096                Some(Self::AtomForegroundServiceStateChanged)
7097            }
7098            "ATOM_CALL_STATE_CHANGED" => Some(Self::AtomCallStateChanged),
7099            "ATOM_KEYGUARD_STATE_CHANGED" => Some(Self::AtomKeyguardStateChanged),
7100            "ATOM_KEYGUARD_BOUNCER_STATE_CHANGED" => {
7101                Some(Self::AtomKeyguardBouncerStateChanged)
7102            }
7103            "ATOM_KEYGUARD_BOUNCER_PASSWORD_ENTERED" => {
7104                Some(Self::AtomKeyguardBouncerPasswordEntered)
7105            }
7106            "ATOM_APP_DIED" => Some(Self::AtomAppDied),
7107            "ATOM_RESOURCE_CONFIGURATION_CHANGED" => {
7108                Some(Self::AtomResourceConfigurationChanged)
7109            }
7110            "ATOM_BLUETOOTH_ENABLED_STATE_CHANGED" => {
7111                Some(Self::AtomBluetoothEnabledStateChanged)
7112            }
7113            "ATOM_BLUETOOTH_CONNECTION_STATE_CHANGED" => {
7114                Some(Self::AtomBluetoothConnectionStateChanged)
7115            }
7116            "ATOM_GPS_SIGNAL_QUALITY_CHANGED" => Some(Self::AtomGpsSignalQualityChanged),
7117            "ATOM_USB_CONNECTOR_STATE_CHANGED" => {
7118                Some(Self::AtomUsbConnectorStateChanged)
7119            }
7120            "ATOM_SPEAKER_IMPEDANCE_REPORTED" => Some(Self::AtomSpeakerImpedanceReported),
7121            "ATOM_HARDWARE_FAILED" => Some(Self::AtomHardwareFailed),
7122            "ATOM_PHYSICAL_DROP_DETECTED" => Some(Self::AtomPhysicalDropDetected),
7123            "ATOM_CHARGE_CYCLES_REPORTED" => Some(Self::AtomChargeCyclesReported),
7124            "ATOM_MOBILE_CONNECTION_STATE_CHANGED" => {
7125                Some(Self::AtomMobileConnectionStateChanged)
7126            }
7127            "ATOM_MOBILE_RADIO_TECHNOLOGY_CHANGED" => {
7128                Some(Self::AtomMobileRadioTechnologyChanged)
7129            }
7130            "ATOM_USB_DEVICE_ATTACHED" => Some(Self::AtomUsbDeviceAttached),
7131            "ATOM_APP_CRASH_OCCURRED" => Some(Self::AtomAppCrashOccurred),
7132            "ATOM_ANR_OCCURRED" => Some(Self::AtomAnrOccurred),
7133            "ATOM_WTF_OCCURRED" => Some(Self::AtomWtfOccurred),
7134            "ATOM_LOW_MEM_REPORTED" => Some(Self::AtomLowMemReported),
7135            "ATOM_GENERIC_ATOM" => Some(Self::AtomGenericAtom),
7136            "ATOM_VIBRATOR_STATE_CHANGED" => Some(Self::AtomVibratorStateChanged),
7137            "ATOM_DEFERRED_JOB_STATS_REPORTED" => {
7138                Some(Self::AtomDeferredJobStatsReported)
7139            }
7140            "ATOM_THERMAL_THROTTLING" => Some(Self::AtomThermalThrottling),
7141            "ATOM_BIOMETRIC_ACQUIRED" => Some(Self::AtomBiometricAcquired),
7142            "ATOM_BIOMETRIC_AUTHENTICATED" => Some(Self::AtomBiometricAuthenticated),
7143            "ATOM_BIOMETRIC_ERROR_OCCURRED" => Some(Self::AtomBiometricErrorOccurred),
7144            "ATOM_UI_EVENT_REPORTED" => Some(Self::AtomUiEventReported),
7145            "ATOM_BATTERY_HEALTH_SNAPSHOT" => Some(Self::AtomBatteryHealthSnapshot),
7146            "ATOM_SLOW_IO" => Some(Self::AtomSlowIo),
7147            "ATOM_BATTERY_CAUSED_SHUTDOWN" => Some(Self::AtomBatteryCausedShutdown),
7148            "ATOM_PHONE_SERVICE_STATE_CHANGED" => {
7149                Some(Self::AtomPhoneServiceStateChanged)
7150            }
7151            "ATOM_PHONE_STATE_CHANGED" => Some(Self::AtomPhoneStateChanged),
7152            "ATOM_USER_RESTRICTION_CHANGED" => Some(Self::AtomUserRestrictionChanged),
7153            "ATOM_SETTINGS_UI_CHANGED" => Some(Self::AtomSettingsUiChanged),
7154            "ATOM_CONNECTIVITY_STATE_CHANGED" => Some(Self::AtomConnectivityStateChanged),
7155            "ATOM_SERVICE_STATE_CHANGED" => Some(Self::AtomServiceStateChanged),
7156            "ATOM_SERVICE_LAUNCH_REPORTED" => Some(Self::AtomServiceLaunchReported),
7157            "ATOM_FLAG_FLIP_UPDATE_OCCURRED" => Some(Self::AtomFlagFlipUpdateOccurred),
7158            "ATOM_BINARY_PUSH_STATE_CHANGED" => Some(Self::AtomBinaryPushStateChanged),
7159            "ATOM_DEVICE_POLICY_EVENT" => Some(Self::AtomDevicePolicyEvent),
7160            "ATOM_DOCS_UI_FILE_OP_CANCELED" => Some(Self::AtomDocsUiFileOpCanceled),
7161            "ATOM_DOCS_UI_FILE_OP_COPY_MOVE_MODE_REPORTED" => {
7162                Some(Self::AtomDocsUiFileOpCopyMoveModeReported)
7163            }
7164            "ATOM_DOCS_UI_FILE_OP_FAILURE" => Some(Self::AtomDocsUiFileOpFailure),
7165            "ATOM_DOCS_UI_PROVIDER_FILE_OP" => Some(Self::AtomDocsUiProviderFileOp),
7166            "ATOM_DOCS_UI_INVALID_SCOPED_ACCESS_REQUEST" => {
7167                Some(Self::AtomDocsUiInvalidScopedAccessRequest)
7168            }
7169            "ATOM_DOCS_UI_LAUNCH_REPORTED" => Some(Self::AtomDocsUiLaunchReported),
7170            "ATOM_DOCS_UI_ROOT_VISITED" => Some(Self::AtomDocsUiRootVisited),
7171            "ATOM_DOCS_UI_STARTUP_MS" => Some(Self::AtomDocsUiStartupMs),
7172            "ATOM_DOCS_UI_USER_ACTION_REPORTED" => {
7173                Some(Self::AtomDocsUiUserActionReported)
7174            }
7175            "ATOM_WIFI_ENABLED_STATE_CHANGED" => Some(Self::AtomWifiEnabledStateChanged),
7176            "ATOM_WIFI_RUNNING_STATE_CHANGED" => Some(Self::AtomWifiRunningStateChanged),
7177            "ATOM_APP_COMPACTED" => Some(Self::AtomAppCompacted),
7178            "ATOM_NETWORK_DNS_EVENT_REPORTED" => Some(Self::AtomNetworkDnsEventReported),
7179            "ATOM_DOCS_UI_PICKER_LAUNCHED_FROM_REPORTED" => {
7180                Some(Self::AtomDocsUiPickerLaunchedFromReported)
7181            }
7182            "ATOM_DOCS_UI_PICK_RESULT_REPORTED" => {
7183                Some(Self::AtomDocsUiPickResultReported)
7184            }
7185            "ATOM_DOCS_UI_SEARCH_MODE_REPORTED" => {
7186                Some(Self::AtomDocsUiSearchModeReported)
7187            }
7188            "ATOM_DOCS_UI_SEARCH_TYPE_REPORTED" => {
7189                Some(Self::AtomDocsUiSearchTypeReported)
7190            }
7191            "ATOM_DATA_STALL_EVENT" => Some(Self::AtomDataStallEvent),
7192            "ATOM_RESCUE_PARTY_RESET_REPORTED" => {
7193                Some(Self::AtomRescuePartyResetReported)
7194            }
7195            "ATOM_SIGNED_CONFIG_REPORTED" => Some(Self::AtomSignedConfigReported),
7196            "ATOM_GNSS_NI_EVENT_REPORTED" => Some(Self::AtomGnssNiEventReported),
7197            "ATOM_BLUETOOTH_LINK_LAYER_CONNECTION_EVENT" => {
7198                Some(Self::AtomBluetoothLinkLayerConnectionEvent)
7199            }
7200            "ATOM_BLUETOOTH_ACL_CONNECTION_STATE_CHANGED" => {
7201                Some(Self::AtomBluetoothAclConnectionStateChanged)
7202            }
7203            "ATOM_BLUETOOTH_SCO_CONNECTION_STATE_CHANGED" => {
7204                Some(Self::AtomBluetoothScoConnectionStateChanged)
7205            }
7206            "ATOM_APP_DOWNGRADED" => Some(Self::AtomAppDowngraded),
7207            "ATOM_APP_OPTIMIZED_AFTER_DOWNGRADED" => {
7208                Some(Self::AtomAppOptimizedAfterDowngraded)
7209            }
7210            "ATOM_LOW_STORAGE_STATE_CHANGED" => Some(Self::AtomLowStorageStateChanged),
7211            "ATOM_GNSS_NFW_NOTIFICATION_REPORTED" => {
7212                Some(Self::AtomGnssNfwNotificationReported)
7213            }
7214            "ATOM_GNSS_CONFIGURATION_REPORTED" => {
7215                Some(Self::AtomGnssConfigurationReported)
7216            }
7217            "ATOM_USB_PORT_OVERHEAT_EVENT_REPORTED" => {
7218                Some(Self::AtomUsbPortOverheatEventReported)
7219            }
7220            "ATOM_NFC_ERROR_OCCURRED" => Some(Self::AtomNfcErrorOccurred),
7221            "ATOM_NFC_STATE_CHANGED" => Some(Self::AtomNfcStateChanged),
7222            "ATOM_NFC_BEAM_OCCURRED" => Some(Self::AtomNfcBeamOccurred),
7223            "ATOM_NFC_CARDEMULATION_OCCURRED" => Some(Self::AtomNfcCardemulationOccurred),
7224            "ATOM_NFC_TAG_OCCURRED" => Some(Self::AtomNfcTagOccurred),
7225            "ATOM_NFC_HCE_TRANSACTION_OCCURRED" => {
7226                Some(Self::AtomNfcHceTransactionOccurred)
7227            }
7228            "ATOM_SE_STATE_CHANGED" => Some(Self::AtomSeStateChanged),
7229            "ATOM_SE_OMAPI_REPORTED" => Some(Self::AtomSeOmapiReported),
7230            "ATOM_BROADCAST_DISPATCH_LATENCY_REPORTED" => {
7231                Some(Self::AtomBroadcastDispatchLatencyReported)
7232            }
7233            "ATOM_ATTENTION_MANAGER_SERVICE_RESULT_REPORTED" => {
7234                Some(Self::AtomAttentionManagerServiceResultReported)
7235            }
7236            "ATOM_ADB_CONNECTION_CHANGED" => Some(Self::AtomAdbConnectionChanged),
7237            "ATOM_SPEECH_DSP_STAT_REPORTED" => Some(Self::AtomSpeechDspStatReported),
7238            "ATOM_USB_CONTAMINANT_REPORTED" => Some(Self::AtomUsbContaminantReported),
7239            "ATOM_WATCHDOG_ROLLBACK_OCCURRED" => Some(Self::AtomWatchdogRollbackOccurred),
7240            "ATOM_BIOMETRIC_SYSTEM_HEALTH_ISSUE_DETECTED" => {
7241                Some(Self::AtomBiometricSystemHealthIssueDetected)
7242            }
7243            "ATOM_BUBBLE_UI_CHANGED" => Some(Self::AtomBubbleUiChanged),
7244            "ATOM_SCHEDULED_JOB_CONSTRAINT_CHANGED" => {
7245                Some(Self::AtomScheduledJobConstraintChanged)
7246            }
7247            "ATOM_BLUETOOTH_ACTIVE_DEVICE_CHANGED" => {
7248                Some(Self::AtomBluetoothActiveDeviceChanged)
7249            }
7250            "ATOM_BLUETOOTH_A2DP_PLAYBACK_STATE_CHANGED" => {
7251                Some(Self::AtomBluetoothA2dpPlaybackStateChanged)
7252            }
7253            "ATOM_BLUETOOTH_A2DP_CODEC_CONFIG_CHANGED" => {
7254                Some(Self::AtomBluetoothA2dpCodecConfigChanged)
7255            }
7256            "ATOM_BLUETOOTH_A2DP_CODEC_CAPABILITY_CHANGED" => {
7257                Some(Self::AtomBluetoothA2dpCodecCapabilityChanged)
7258            }
7259            "ATOM_BLUETOOTH_A2DP_AUDIO_UNDERRUN_REPORTED" => {
7260                Some(Self::AtomBluetoothA2dpAudioUnderrunReported)
7261            }
7262            "ATOM_BLUETOOTH_A2DP_AUDIO_OVERRUN_REPORTED" => {
7263                Some(Self::AtomBluetoothA2dpAudioOverrunReported)
7264            }
7265            "ATOM_BLUETOOTH_DEVICE_RSSI_REPORTED" => {
7266                Some(Self::AtomBluetoothDeviceRssiReported)
7267            }
7268            "ATOM_BLUETOOTH_DEVICE_FAILED_CONTACT_COUNTER_REPORTED" => {
7269                Some(Self::AtomBluetoothDeviceFailedContactCounterReported)
7270            }
7271            "ATOM_BLUETOOTH_DEVICE_TX_POWER_LEVEL_REPORTED" => {
7272                Some(Self::AtomBluetoothDeviceTxPowerLevelReported)
7273            }
7274            "ATOM_BLUETOOTH_HCI_TIMEOUT_REPORTED" => {
7275                Some(Self::AtomBluetoothHciTimeoutReported)
7276            }
7277            "ATOM_BLUETOOTH_QUALITY_REPORT_REPORTED" => {
7278                Some(Self::AtomBluetoothQualityReportReported)
7279            }
7280            "ATOM_BLUETOOTH_DEVICE_INFO_REPORTED" => {
7281                Some(Self::AtomBluetoothDeviceInfoReported)
7282            }
7283            "ATOM_BLUETOOTH_REMOTE_VERSION_INFO_REPORTED" => {
7284                Some(Self::AtomBluetoothRemoteVersionInfoReported)
7285            }
7286            "ATOM_BLUETOOTH_SDP_ATTRIBUTE_REPORTED" => {
7287                Some(Self::AtomBluetoothSdpAttributeReported)
7288            }
7289            "ATOM_BLUETOOTH_BOND_STATE_CHANGED" => {
7290                Some(Self::AtomBluetoothBondStateChanged)
7291            }
7292            "ATOM_BLUETOOTH_CLASSIC_PAIRING_EVENT_REPORTED" => {
7293                Some(Self::AtomBluetoothClassicPairingEventReported)
7294            }
7295            "ATOM_BLUETOOTH_SMP_PAIRING_EVENT_REPORTED" => {
7296                Some(Self::AtomBluetoothSmpPairingEventReported)
7297            }
7298            "ATOM_SCREEN_TIMEOUT_EXTENSION_REPORTED" => {
7299                Some(Self::AtomScreenTimeoutExtensionReported)
7300            }
7301            "ATOM_PROCESS_START_TIME" => Some(Self::AtomProcessStartTime),
7302            "ATOM_PERMISSION_GRANT_REQUEST_RESULT_REPORTED" => {
7303                Some(Self::AtomPermissionGrantRequestResultReported)
7304            }
7305            "ATOM_BLUETOOTH_SOCKET_CONNECTION_STATE_CHANGED" => {
7306                Some(Self::AtomBluetoothSocketConnectionStateChanged)
7307            }
7308            "ATOM_DEVICE_IDENTIFIER_ACCESS_DENIED" => {
7309                Some(Self::AtomDeviceIdentifierAccessDenied)
7310            }
7311            "ATOM_BUBBLE_DEVELOPER_ERROR_REPORTED" => {
7312                Some(Self::AtomBubbleDeveloperErrorReported)
7313            }
7314            "ATOM_ASSIST_GESTURE_STAGE_REPORTED" => {
7315                Some(Self::AtomAssistGestureStageReported)
7316            }
7317            "ATOM_ASSIST_GESTURE_FEEDBACK_REPORTED" => {
7318                Some(Self::AtomAssistGestureFeedbackReported)
7319            }
7320            "ATOM_ASSIST_GESTURE_PROGRESS_REPORTED" => {
7321                Some(Self::AtomAssistGestureProgressReported)
7322            }
7323            "ATOM_TOUCH_GESTURE_CLASSIFIED" => Some(Self::AtomTouchGestureClassified),
7324            "ATOM_HIDDEN_API_USED" => Some(Self::AtomHiddenApiUsed),
7325            "ATOM_STYLE_UI_CHANGED" => Some(Self::AtomStyleUiChanged),
7326            "ATOM_PRIVACY_INDICATORS_INTERACTED" => {
7327                Some(Self::AtomPrivacyIndicatorsInteracted)
7328            }
7329            "ATOM_APP_INSTALL_ON_EXTERNAL_STORAGE_REPORTED" => {
7330                Some(Self::AtomAppInstallOnExternalStorageReported)
7331            }
7332            "ATOM_NETWORK_STACK_REPORTED" => Some(Self::AtomNetworkStackReported),
7333            "ATOM_APP_MOVED_STORAGE_REPORTED" => Some(Self::AtomAppMovedStorageReported),
7334            "ATOM_BIOMETRIC_ENROLLED" => Some(Self::AtomBiometricEnrolled),
7335            "ATOM_SYSTEM_SERVER_WATCHDOG_OCCURRED" => {
7336                Some(Self::AtomSystemServerWatchdogOccurred)
7337            }
7338            "ATOM_TOMB_STONE_OCCURRED" => Some(Self::AtomTombStoneOccurred),
7339            "ATOM_BLUETOOTH_CLASS_OF_DEVICE_REPORTED" => {
7340                Some(Self::AtomBluetoothClassOfDeviceReported)
7341            }
7342            "ATOM_INTELLIGENCE_EVENT_REPORTED" => {
7343                Some(Self::AtomIntelligenceEventReported)
7344            }
7345            "ATOM_THERMAL_THROTTLING_SEVERITY_STATE_CHANGED" => {
7346                Some(Self::AtomThermalThrottlingSeverityStateChanged)
7347            }
7348            "ATOM_ROLE_REQUEST_RESULT_REPORTED" => {
7349                Some(Self::AtomRoleRequestResultReported)
7350            }
7351            "ATOM_MEDIAMETRICS_AUDIOPOLICY_REPORTED" => {
7352                Some(Self::AtomMediametricsAudiopolicyReported)
7353            }
7354            "ATOM_MEDIAMETRICS_AUDIORECORD_REPORTED" => {
7355                Some(Self::AtomMediametricsAudiorecordReported)
7356            }
7357            "ATOM_MEDIAMETRICS_AUDIOTHREAD_REPORTED" => {
7358                Some(Self::AtomMediametricsAudiothreadReported)
7359            }
7360            "ATOM_MEDIAMETRICS_AUDIOTRACK_REPORTED" => {
7361                Some(Self::AtomMediametricsAudiotrackReported)
7362            }
7363            "ATOM_MEDIAMETRICS_CODEC_REPORTED" => {
7364                Some(Self::AtomMediametricsCodecReported)
7365            }
7366            "ATOM_MEDIAMETRICS_DRM_WIDEVINE_REPORTED" => {
7367                Some(Self::AtomMediametricsDrmWidevineReported)
7368            }
7369            "ATOM_MEDIAMETRICS_EXTRACTOR_REPORTED" => {
7370                Some(Self::AtomMediametricsExtractorReported)
7371            }
7372            "ATOM_MEDIAMETRICS_MEDIADRM_REPORTED" => {
7373                Some(Self::AtomMediametricsMediadrmReported)
7374            }
7375            "ATOM_MEDIAMETRICS_NUPLAYER_REPORTED" => {
7376                Some(Self::AtomMediametricsNuplayerReported)
7377            }
7378            "ATOM_MEDIAMETRICS_RECORDER_REPORTED" => {
7379                Some(Self::AtomMediametricsRecorderReported)
7380            }
7381            "ATOM_MEDIAMETRICS_DRMMANAGER_REPORTED" => {
7382                Some(Self::AtomMediametricsDrmmanagerReported)
7383            }
7384            "ATOM_CAR_POWER_STATE_CHANGED" => Some(Self::AtomCarPowerStateChanged),
7385            "ATOM_GARAGE_MODE_INFO" => Some(Self::AtomGarageModeInfo),
7386            "ATOM_TEST_ATOM_REPORTED" => Some(Self::AtomTestAtomReported),
7387            "ATOM_CONTENT_CAPTURE_CALLER_MISMATCH_REPORTED" => {
7388                Some(Self::AtomContentCaptureCallerMismatchReported)
7389            }
7390            "ATOM_CONTENT_CAPTURE_SERVICE_EVENTS" => {
7391                Some(Self::AtomContentCaptureServiceEvents)
7392            }
7393            "ATOM_CONTENT_CAPTURE_SESSION_EVENTS" => {
7394                Some(Self::AtomContentCaptureSessionEvents)
7395            }
7396            "ATOM_CONTENT_CAPTURE_FLUSHED" => Some(Self::AtomContentCaptureFlushed),
7397            "ATOM_LOCATION_MANAGER_API_USAGE_REPORTED" => {
7398                Some(Self::AtomLocationManagerApiUsageReported)
7399            }
7400            "ATOM_REVIEW_PERMISSIONS_FRAGMENT_RESULT_REPORTED" => {
7401                Some(Self::AtomReviewPermissionsFragmentResultReported)
7402            }
7403            "ATOM_RUNTIME_PERMISSIONS_UPGRADE_RESULT" => {
7404                Some(Self::AtomRuntimePermissionsUpgradeResult)
7405            }
7406            "ATOM_GRANT_PERMISSIONS_ACTIVITY_BUTTON_ACTIONS" => {
7407                Some(Self::AtomGrantPermissionsActivityButtonActions)
7408            }
7409            "ATOM_LOCATION_ACCESS_CHECK_NOTIFICATION_ACTION" => {
7410                Some(Self::AtomLocationAccessCheckNotificationAction)
7411            }
7412            "ATOM_APP_PERMISSION_FRAGMENT_ACTION_REPORTED" => {
7413                Some(Self::AtomAppPermissionFragmentActionReported)
7414            }
7415            "ATOM_APP_PERMISSION_FRAGMENT_VIEWED" => {
7416                Some(Self::AtomAppPermissionFragmentViewed)
7417            }
7418            "ATOM_APP_PERMISSIONS_FRAGMENT_VIEWED" => {
7419                Some(Self::AtomAppPermissionsFragmentViewed)
7420            }
7421            "ATOM_PERMISSION_APPS_FRAGMENT_VIEWED" => {
7422                Some(Self::AtomPermissionAppsFragmentViewed)
7423            }
7424            "ATOM_TEXT_SELECTION_EVENT" => Some(Self::AtomTextSelectionEvent),
7425            "ATOM_TEXT_LINKIFY_EVENT" => Some(Self::AtomTextLinkifyEvent),
7426            "ATOM_CONVERSATION_ACTIONS_EVENT" => Some(Self::AtomConversationActionsEvent),
7427            "ATOM_LANGUAGE_DETECTION_EVENT" => Some(Self::AtomLanguageDetectionEvent),
7428            "ATOM_EXCLUSION_RECT_STATE_CHANGED" => {
7429                Some(Self::AtomExclusionRectStateChanged)
7430            }
7431            "ATOM_BACK_GESTURE_REPORTED_REPORTED" => {
7432                Some(Self::AtomBackGestureReportedReported)
7433            }
7434            "ATOM_UPDATE_ENGINE_UPDATE_ATTEMPT_REPORTED" => {
7435                Some(Self::AtomUpdateEngineUpdateAttemptReported)
7436            }
7437            "ATOM_UPDATE_ENGINE_SUCCESSFUL_UPDATE_REPORTED" => {
7438                Some(Self::AtomUpdateEngineSuccessfulUpdateReported)
7439            }
7440            "ATOM_CAMERA_ACTION_EVENT" => Some(Self::AtomCameraActionEvent),
7441            "ATOM_APP_COMPATIBILITY_CHANGE_REPORTED" => {
7442                Some(Self::AtomAppCompatibilityChangeReported)
7443            }
7444            "ATOM_PERFETTO_UPLOADED" => Some(Self::AtomPerfettoUploaded),
7445            "ATOM_VMS_CLIENT_CONNECTION_STATE_CHANGED" => {
7446                Some(Self::AtomVmsClientConnectionStateChanged)
7447            }
7448            "ATOM_MEDIA_PROVIDER_SCAN_OCCURRED" => {
7449                Some(Self::AtomMediaProviderScanOccurred)
7450            }
7451            "ATOM_MEDIA_CONTENT_DELETED" => Some(Self::AtomMediaContentDeleted),
7452            "ATOM_MEDIA_PROVIDER_PERMISSION_REQUESTED" => {
7453                Some(Self::AtomMediaProviderPermissionRequested)
7454            }
7455            "ATOM_MEDIA_PROVIDER_SCHEMA_CHANGED" => {
7456                Some(Self::AtomMediaProviderSchemaChanged)
7457            }
7458            "ATOM_MEDIA_PROVIDER_IDLE_MAINTENANCE_FINISHED" => {
7459                Some(Self::AtomMediaProviderIdleMaintenanceFinished)
7460            }
7461            "ATOM_REBOOT_ESCROW_RECOVERY_REPORTED" => {
7462                Some(Self::AtomRebootEscrowRecoveryReported)
7463            }
7464            "ATOM_BOOT_TIME_EVENT_DURATION_REPORTED" => {
7465                Some(Self::AtomBootTimeEventDurationReported)
7466            }
7467            "ATOM_BOOT_TIME_EVENT_ELAPSED_TIME_REPORTED" => {
7468                Some(Self::AtomBootTimeEventElapsedTimeReported)
7469            }
7470            "ATOM_BOOT_TIME_EVENT_UTC_TIME_REPORTED" => {
7471                Some(Self::AtomBootTimeEventUtcTimeReported)
7472            }
7473            "ATOM_BOOT_TIME_EVENT_ERROR_CODE_REPORTED" => {
7474                Some(Self::AtomBootTimeEventErrorCodeReported)
7475            }
7476            "ATOM_USERSPACE_REBOOT_REPORTED" => Some(Self::AtomUserspaceRebootReported),
7477            "ATOM_NOTIFICATION_REPORTED" => Some(Self::AtomNotificationReported),
7478            "ATOM_NOTIFICATION_PANEL_REPORTED" => {
7479                Some(Self::AtomNotificationPanelReported)
7480            }
7481            "ATOM_NOTIFICATION_CHANNEL_MODIFIED" => {
7482                Some(Self::AtomNotificationChannelModified)
7483            }
7484            "ATOM_INTEGRITY_CHECK_RESULT_REPORTED" => {
7485                Some(Self::AtomIntegrityCheckResultReported)
7486            }
7487            "ATOM_INTEGRITY_RULES_PUSHED" => Some(Self::AtomIntegrityRulesPushed),
7488            "ATOM_CB_MESSAGE_REPORTED" => Some(Self::AtomCbMessageReported),
7489            "ATOM_CB_MESSAGE_ERROR" => Some(Self::AtomCbMessageError),
7490            "ATOM_WIFI_HEALTH_STAT_REPORTED" => Some(Self::AtomWifiHealthStatReported),
7491            "ATOM_WIFI_FAILURE_STAT_REPORTED" => Some(Self::AtomWifiFailureStatReported),
7492            "ATOM_WIFI_CONNECTION_RESULT_REPORTED" => {
7493                Some(Self::AtomWifiConnectionResultReported)
7494            }
7495            "ATOM_APP_FREEZE_CHANGED" => Some(Self::AtomAppFreezeChanged),
7496            "ATOM_SNAPSHOT_MERGE_REPORTED" => Some(Self::AtomSnapshotMergeReported),
7497            "ATOM_FOREGROUND_SERVICE_APP_OP_SESSION_ENDED" => {
7498                Some(Self::AtomForegroundServiceAppOpSessionEnded)
7499            }
7500            "ATOM_DISPLAY_JANK_REPORTED" => Some(Self::AtomDisplayJankReported),
7501            "ATOM_APP_STANDBY_BUCKET_CHANGED" => Some(Self::AtomAppStandbyBucketChanged),
7502            "ATOM_SHARESHEET_STARTED" => Some(Self::AtomSharesheetStarted),
7503            "ATOM_RANKING_SELECTED" => Some(Self::AtomRankingSelected),
7504            "ATOM_TVSETTINGS_UI_INTERACTED" => Some(Self::AtomTvsettingsUiInteracted),
7505            "ATOM_LAUNCHER_SNAPSHOT" => Some(Self::AtomLauncherSnapshot),
7506            "ATOM_PACKAGE_INSTALLER_V2_REPORTED" => {
7507                Some(Self::AtomPackageInstallerV2Reported)
7508            }
7509            "ATOM_USER_LIFECYCLE_JOURNEY_REPORTED" => {
7510                Some(Self::AtomUserLifecycleJourneyReported)
7511            }
7512            "ATOM_USER_LIFECYCLE_EVENT_OCCURRED" => {
7513                Some(Self::AtomUserLifecycleEventOccurred)
7514            }
7515            "ATOM_ACCESSIBILITY_SHORTCUT_REPORTED" => {
7516                Some(Self::AtomAccessibilityShortcutReported)
7517            }
7518            "ATOM_ACCESSIBILITY_SERVICE_REPORTED" => {
7519                Some(Self::AtomAccessibilityServiceReported)
7520            }
7521            "ATOM_DOCS_UI_DRAG_AND_DROP_REPORTED" => {
7522                Some(Self::AtomDocsUiDragAndDropReported)
7523            }
7524            "ATOM_APP_USAGE_EVENT_OCCURRED" => Some(Self::AtomAppUsageEventOccurred),
7525            "ATOM_AUTO_REVOKE_NOTIFICATION_CLICKED" => {
7526                Some(Self::AtomAutoRevokeNotificationClicked)
7527            }
7528            "ATOM_AUTO_REVOKE_FRAGMENT_APP_VIEWED" => {
7529                Some(Self::AtomAutoRevokeFragmentAppViewed)
7530            }
7531            "ATOM_AUTO_REVOKED_APP_INTERACTION" => {
7532                Some(Self::AtomAutoRevokedAppInteraction)
7533            }
7534            "ATOM_APP_PERMISSION_GROUPS_FRAGMENT_AUTO_REVOKE_ACTION" => {
7535                Some(Self::AtomAppPermissionGroupsFragmentAutoRevokeAction)
7536            }
7537            "ATOM_EVS_USAGE_STATS_REPORTED" => Some(Self::AtomEvsUsageStatsReported),
7538            "ATOM_AUDIO_POWER_USAGE_DATA_REPORTED" => {
7539                Some(Self::AtomAudioPowerUsageDataReported)
7540            }
7541            "ATOM_TV_TUNER_STATE_CHANGED" => Some(Self::AtomTvTunerStateChanged),
7542            "ATOM_MEDIAOUTPUT_OP_SWITCH_REPORTED" => {
7543                Some(Self::AtomMediaoutputOpSwitchReported)
7544            }
7545            "ATOM_CB_MESSAGE_FILTERED" => Some(Self::AtomCbMessageFiltered),
7546            "ATOM_TV_TUNER_DVR_STATUS" => Some(Self::AtomTvTunerDvrStatus),
7547            "ATOM_TV_CAS_SESSION_OPEN_STATUS" => Some(Self::AtomTvCasSessionOpenStatus),
7548            "ATOM_ASSISTANT_INVOCATION_REPORTED" => {
7549                Some(Self::AtomAssistantInvocationReported)
7550            }
7551            "ATOM_DISPLAY_WAKE_REPORTED" => Some(Self::AtomDisplayWakeReported),
7552            "ATOM_CAR_USER_HAL_MODIFY_USER_REQUEST_REPORTED" => {
7553                Some(Self::AtomCarUserHalModifyUserRequestReported)
7554            }
7555            "ATOM_CAR_USER_HAL_MODIFY_USER_RESPONSE_REPORTED" => {
7556                Some(Self::AtomCarUserHalModifyUserResponseReported)
7557            }
7558            "ATOM_CAR_USER_HAL_POST_SWITCH_RESPONSE_REPORTED" => {
7559                Some(Self::AtomCarUserHalPostSwitchResponseReported)
7560            }
7561            "ATOM_CAR_USER_HAL_INITIAL_USER_INFO_REQUEST_REPORTED" => {
7562                Some(Self::AtomCarUserHalInitialUserInfoRequestReported)
7563            }
7564            "ATOM_CAR_USER_HAL_INITIAL_USER_INFO_RESPONSE_REPORTED" => {
7565                Some(Self::AtomCarUserHalInitialUserInfoResponseReported)
7566            }
7567            "ATOM_CAR_USER_HAL_USER_ASSOCIATION_REQUEST_REPORTED" => {
7568                Some(Self::AtomCarUserHalUserAssociationRequestReported)
7569            }
7570            "ATOM_CAR_USER_HAL_SET_USER_ASSOCIATION_RESPONSE_REPORTED" => {
7571                Some(Self::AtomCarUserHalSetUserAssociationResponseReported)
7572            }
7573            "ATOM_NETWORK_IP_PROVISIONING_REPORTED" => {
7574                Some(Self::AtomNetworkIpProvisioningReported)
7575            }
7576            "ATOM_NETWORK_DHCP_RENEW_REPORTED" => {
7577                Some(Self::AtomNetworkDhcpRenewReported)
7578            }
7579            "ATOM_NETWORK_VALIDATION_REPORTED" => {
7580                Some(Self::AtomNetworkValidationReported)
7581            }
7582            "ATOM_NETWORK_STACK_QUIRK_REPORTED" => {
7583                Some(Self::AtomNetworkStackQuirkReported)
7584            }
7585            "ATOM_MEDIAMETRICS_AUDIORECORDDEVICEUSAGE_REPORTED" => {
7586                Some(Self::AtomMediametricsAudiorecorddeviceusageReported)
7587            }
7588            "ATOM_MEDIAMETRICS_AUDIOTHREADDEVICEUSAGE_REPORTED" => {
7589                Some(Self::AtomMediametricsAudiothreaddeviceusageReported)
7590            }
7591            "ATOM_MEDIAMETRICS_AUDIOTRACKDEVICEUSAGE_REPORTED" => {
7592                Some(Self::AtomMediametricsAudiotrackdeviceusageReported)
7593            }
7594            "ATOM_MEDIAMETRICS_AUDIODEVICECONNECTION_REPORTED" => {
7595                Some(Self::AtomMediametricsAudiodeviceconnectionReported)
7596            }
7597            "ATOM_BLOB_COMMITTED" => Some(Self::AtomBlobCommitted),
7598            "ATOM_BLOB_LEASED" => Some(Self::AtomBlobLeased),
7599            "ATOM_BLOB_OPENED" => Some(Self::AtomBlobOpened),
7600            "ATOM_CONTACTS_PROVIDER_STATUS_REPORTED" => {
7601                Some(Self::AtomContactsProviderStatusReported)
7602            }
7603            "ATOM_KEYSTORE_KEY_EVENT_REPORTED" => {
7604                Some(Self::AtomKeystoreKeyEventReported)
7605            }
7606            "ATOM_NETWORK_TETHERING_REPORTED" => Some(Self::AtomNetworkTetheringReported),
7607            "ATOM_IME_TOUCH_REPORTED" => Some(Self::AtomImeTouchReported),
7608            "ATOM_UI_INTERACTION_FRAME_INFO_REPORTED" => {
7609                Some(Self::AtomUiInteractionFrameInfoReported)
7610            }
7611            "ATOM_UI_ACTION_LATENCY_REPORTED" => Some(Self::AtomUiActionLatencyReported),
7612            "ATOM_WIFI_DISCONNECT_REPORTED" => Some(Self::AtomWifiDisconnectReported),
7613            "ATOM_WIFI_CONNECTION_STATE_CHANGED" => {
7614                Some(Self::AtomWifiConnectionStateChanged)
7615            }
7616            "ATOM_HDMI_CEC_ACTIVE_SOURCE_CHANGED" => {
7617                Some(Self::AtomHdmiCecActiveSourceChanged)
7618            }
7619            "ATOM_HDMI_CEC_MESSAGE_REPORTED" => Some(Self::AtomHdmiCecMessageReported),
7620            "ATOM_AIRPLANE_MODE" => Some(Self::AtomAirplaneMode),
7621            "ATOM_MODEM_RESTART" => Some(Self::AtomModemRestart),
7622            "ATOM_CARRIER_ID_MISMATCH_REPORTED" => {
7623                Some(Self::AtomCarrierIdMismatchReported)
7624            }
7625            "ATOM_CARRIER_ID_TABLE_UPDATED" => Some(Self::AtomCarrierIdTableUpdated),
7626            "ATOM_DATA_STALL_RECOVERY_REPORTED" => {
7627                Some(Self::AtomDataStallRecoveryReported)
7628            }
7629            "ATOM_MEDIAMETRICS_MEDIAPARSER_REPORTED" => {
7630                Some(Self::AtomMediametricsMediaparserReported)
7631            }
7632            "ATOM_TLS_HANDSHAKE_REPORTED" => Some(Self::AtomTlsHandshakeReported),
7633            "ATOM_TEXT_CLASSIFIER_API_USAGE_REPORTED" => {
7634                Some(Self::AtomTextClassifierApiUsageReported)
7635            }
7636            "ATOM_CAR_WATCHDOG_KILL_STATS_REPORTED" => {
7637                Some(Self::AtomCarWatchdogKillStatsReported)
7638            }
7639            "ATOM_MEDIAMETRICS_PLAYBACK_REPORTED" => {
7640                Some(Self::AtomMediametricsPlaybackReported)
7641            }
7642            "ATOM_MEDIA_NETWORK_INFO_CHANGED" => Some(Self::AtomMediaNetworkInfoChanged),
7643            "ATOM_MEDIA_PLAYBACK_STATE_CHANGED" => {
7644                Some(Self::AtomMediaPlaybackStateChanged)
7645            }
7646            "ATOM_MEDIA_PLAYBACK_ERROR_REPORTED" => {
7647                Some(Self::AtomMediaPlaybackErrorReported)
7648            }
7649            "ATOM_MEDIA_PLAYBACK_TRACK_CHANGED" => {
7650                Some(Self::AtomMediaPlaybackTrackChanged)
7651            }
7652            "ATOM_WIFI_SCAN_REPORTED" => Some(Self::AtomWifiScanReported),
7653            "ATOM_WIFI_PNO_SCAN_REPORTED" => Some(Self::AtomWifiPnoScanReported),
7654            "ATOM_TIF_TUNE_CHANGED" => Some(Self::AtomTifTuneChanged),
7655            "ATOM_AUTO_ROTATE_REPORTED" => Some(Self::AtomAutoRotateReported),
7656            "ATOM_PERFETTO_TRIGGER" => Some(Self::AtomPerfettoTrigger),
7657            "ATOM_TRANSCODING_DATA" => Some(Self::AtomTranscodingData),
7658            "ATOM_IMS_SERVICE_ENTITLEMENT_UPDATED" => {
7659                Some(Self::AtomImsServiceEntitlementUpdated)
7660            }
7661            "ATOM_DEVICE_ROTATED" => Some(Self::AtomDeviceRotated),
7662            "ATOM_SIM_SPECIFIC_SETTINGS_RESTORED" => {
7663                Some(Self::AtomSimSpecificSettingsRestored)
7664            }
7665            "ATOM_TEXT_CLASSIFIER_DOWNLOAD_REPORTED" => {
7666                Some(Self::AtomTextClassifierDownloadReported)
7667            }
7668            "ATOM_PIN_STORAGE_EVENT" => Some(Self::AtomPinStorageEvent),
7669            "ATOM_FACE_DOWN_REPORTED" => Some(Self::AtomFaceDownReported),
7670            "ATOM_BLUETOOTH_HAL_CRASH_REASON_REPORTED" => {
7671                Some(Self::AtomBluetoothHalCrashReasonReported)
7672            }
7673            "ATOM_REBOOT_ESCROW_PREPARATION_REPORTED" => {
7674                Some(Self::AtomRebootEscrowPreparationReported)
7675            }
7676            "ATOM_REBOOT_ESCROW_LSKF_CAPTURE_REPORTED" => {
7677                Some(Self::AtomRebootEscrowLskfCaptureReported)
7678            }
7679            "ATOM_REBOOT_ESCROW_REBOOT_REPORTED" => {
7680                Some(Self::AtomRebootEscrowRebootReported)
7681            }
7682            "ATOM_BINDER_LATENCY_REPORTED" => Some(Self::AtomBinderLatencyReported),
7683            "ATOM_MEDIAMETRICS_AAUDIOSTREAM_REPORTED" => {
7684                Some(Self::AtomMediametricsAaudiostreamReported)
7685            }
7686            "ATOM_MEDIA_TRANSCODING_SESSION_ENDED" => {
7687                Some(Self::AtomMediaTranscodingSessionEnded)
7688            }
7689            "ATOM_MAGNIFICATION_USAGE_REPORTED" => {
7690                Some(Self::AtomMagnificationUsageReported)
7691            }
7692            "ATOM_MAGNIFICATION_MODE_WITH_IME_ON_REPORTED" => {
7693                Some(Self::AtomMagnificationModeWithImeOnReported)
7694            }
7695            "ATOM_APP_SEARCH_CALL_STATS_REPORTED" => {
7696                Some(Self::AtomAppSearchCallStatsReported)
7697            }
7698            "ATOM_APP_SEARCH_PUT_DOCUMENT_STATS_REPORTED" => {
7699                Some(Self::AtomAppSearchPutDocumentStatsReported)
7700            }
7701            "ATOM_DEVICE_CONTROL_CHANGED" => Some(Self::AtomDeviceControlChanged),
7702            "ATOM_DEVICE_STATE_CHANGED" => Some(Self::AtomDeviceStateChanged),
7703            "ATOM_INPUTDEVICE_REGISTERED" => Some(Self::AtomInputdeviceRegistered),
7704            "ATOM_SMARTSPACE_CARD_REPORTED" => Some(Self::AtomSmartspaceCardReported),
7705            "ATOM_AUTH_PROMPT_AUTHENTICATE_INVOKED" => {
7706                Some(Self::AtomAuthPromptAuthenticateInvoked)
7707            }
7708            "ATOM_AUTH_MANAGER_CAN_AUTHENTICATE_INVOKED" => {
7709                Some(Self::AtomAuthManagerCanAuthenticateInvoked)
7710            }
7711            "ATOM_AUTH_ENROLL_ACTION_INVOKED" => Some(Self::AtomAuthEnrollActionInvoked),
7712            "ATOM_AUTH_DEPRECATED_API_USED" => Some(Self::AtomAuthDeprecatedApiUsed),
7713            "ATOM_UNATTENDED_REBOOT_OCCURRED" => Some(Self::AtomUnattendedRebootOccurred),
7714            "ATOM_LONG_REBOOT_BLOCKING_REPORTED" => {
7715                Some(Self::AtomLongRebootBlockingReported)
7716            }
7717            "ATOM_LOCATION_TIME_ZONE_PROVIDER_STATE_CHANGED" => {
7718                Some(Self::AtomLocationTimeZoneProviderStateChanged)
7719            }
7720            "ATOM_FDTRACK_EVENT_OCCURRED" => Some(Self::AtomFdtrackEventOccurred),
7721            "ATOM_TIMEOUT_AUTO_EXTENDED_REPORTED" => {
7722                Some(Self::AtomTimeoutAutoExtendedReported)
7723            }
7724            "ATOM_ALARM_BATCH_DELIVERED" => Some(Self::AtomAlarmBatchDelivered),
7725            "ATOM_ALARM_SCHEDULED" => Some(Self::AtomAlarmScheduled),
7726            "ATOM_CAR_WATCHDOG_IO_OVERUSE_STATS_REPORTED" => {
7727                Some(Self::AtomCarWatchdogIoOveruseStatsReported)
7728            }
7729            "ATOM_USER_LEVEL_HIBERNATION_STATE_CHANGED" => {
7730                Some(Self::AtomUserLevelHibernationStateChanged)
7731            }
7732            "ATOM_APP_SEARCH_INITIALIZE_STATS_REPORTED" => {
7733                Some(Self::AtomAppSearchInitializeStatsReported)
7734            }
7735            "ATOM_APP_SEARCH_QUERY_STATS_REPORTED" => {
7736                Some(Self::AtomAppSearchQueryStatsReported)
7737            }
7738            "ATOM_APP_PROCESS_DIED" => Some(Self::AtomAppProcessDied),
7739            "ATOM_NETWORK_IP_REACHABILITY_MONITOR_REPORTED" => {
7740                Some(Self::AtomNetworkIpReachabilityMonitorReported)
7741            }
7742            "ATOM_SLOW_INPUT_EVENT_REPORTED" => Some(Self::AtomSlowInputEventReported),
7743            "ATOM_ANR_OCCURRED_PROCESSING_STARTED" => {
7744                Some(Self::AtomAnrOccurredProcessingStarted)
7745            }
7746            "ATOM_APP_SEARCH_REMOVE_STATS_REPORTED" => {
7747                Some(Self::AtomAppSearchRemoveStatsReported)
7748            }
7749            "ATOM_MEDIA_CODEC_REPORTED" => Some(Self::AtomMediaCodecReported),
7750            "ATOM_PERMISSION_USAGE_FRAGMENT_INTERACTION" => {
7751                Some(Self::AtomPermissionUsageFragmentInteraction)
7752            }
7753            "ATOM_PERMISSION_DETAILS_INTERACTION" => {
7754                Some(Self::AtomPermissionDetailsInteraction)
7755            }
7756            "ATOM_PRIVACY_SENSOR_TOGGLE_INTERACTION" => {
7757                Some(Self::AtomPrivacySensorToggleInteraction)
7758            }
7759            "ATOM_PRIVACY_TOGGLE_DIALOG_INTERACTION" => {
7760                Some(Self::AtomPrivacyToggleDialogInteraction)
7761            }
7762            "ATOM_APP_SEARCH_OPTIMIZE_STATS_REPORTED" => {
7763                Some(Self::AtomAppSearchOptimizeStatsReported)
7764            }
7765            "ATOM_NON_A11Y_TOOL_SERVICE_WARNING_REPORT" => {
7766                Some(Self::AtomNonA11yToolServiceWarningReport)
7767            }
7768            "ATOM_APP_COMPAT_STATE_CHANGED" => Some(Self::AtomAppCompatStateChanged),
7769            "ATOM_SIZE_COMPAT_RESTART_BUTTON_EVENT_REPORTED" => {
7770                Some(Self::AtomSizeCompatRestartButtonEventReported)
7771            }
7772            "ATOM_SPLITSCREEN_UI_CHANGED" => Some(Self::AtomSplitscreenUiChanged),
7773            "ATOM_NETWORK_DNS_HANDSHAKE_REPORTED" => {
7774                Some(Self::AtomNetworkDnsHandshakeReported)
7775            }
7776            "ATOM_BLUETOOTH_CODE_PATH_COUNTER" => {
7777                Some(Self::AtomBluetoothCodePathCounter)
7778            }
7779            "ATOM_BLUETOOTH_LE_BATCH_SCAN_REPORT_DELAY" => {
7780                Some(Self::AtomBluetoothLeBatchScanReportDelay)
7781            }
7782            "ATOM_ACCESSIBILITY_FLOATING_MENU_UI_CHANGED" => {
7783                Some(Self::AtomAccessibilityFloatingMenuUiChanged)
7784            }
7785            "ATOM_NEURALNETWORKS_COMPILATION_COMPLETED" => {
7786                Some(Self::AtomNeuralnetworksCompilationCompleted)
7787            }
7788            "ATOM_NEURALNETWORKS_EXECUTION_COMPLETED" => {
7789                Some(Self::AtomNeuralnetworksExecutionCompleted)
7790            }
7791            "ATOM_NEURALNETWORKS_COMPILATION_FAILED" => {
7792                Some(Self::AtomNeuralnetworksCompilationFailed)
7793            }
7794            "ATOM_NEURALNETWORKS_EXECUTION_FAILED" => {
7795                Some(Self::AtomNeuralnetworksExecutionFailed)
7796            }
7797            "ATOM_CONTEXT_HUB_BOOTED" => Some(Self::AtomContextHubBooted),
7798            "ATOM_CONTEXT_HUB_RESTARTED" => Some(Self::AtomContextHubRestarted),
7799            "ATOM_CONTEXT_HUB_LOADED_NANOAPP_SNAPSHOT_REPORTED" => {
7800                Some(Self::AtomContextHubLoadedNanoappSnapshotReported)
7801            }
7802            "ATOM_CHRE_CODE_DOWNLOAD_TRANSACTED" => {
7803                Some(Self::AtomChreCodeDownloadTransacted)
7804            }
7805            "ATOM_UWB_SESSION_INITED" => Some(Self::AtomUwbSessionInited),
7806            "ATOM_UWB_SESSION_CLOSED" => Some(Self::AtomUwbSessionClosed),
7807            "ATOM_UWB_FIRST_RANGING_RECEIVED" => Some(Self::AtomUwbFirstRangingReceived),
7808            "ATOM_UWB_RANGING_MEASUREMENT_RECEIVED" => {
7809                Some(Self::AtomUwbRangingMeasurementReceived)
7810            }
7811            "ATOM_TEXT_CLASSIFIER_DOWNLOAD_WORK_SCHEDULED" => {
7812                Some(Self::AtomTextClassifierDownloadWorkScheduled)
7813            }
7814            "ATOM_TEXT_CLASSIFIER_DOWNLOAD_WORK_COMPLETED" => {
7815                Some(Self::AtomTextClassifierDownloadWorkCompleted)
7816            }
7817            "ATOM_CLIPBOARD_CLEARED" => Some(Self::AtomClipboardCleared),
7818            "ATOM_VM_CREATION_REQUESTED" => Some(Self::AtomVmCreationRequested),
7819            "ATOM_NEARBY_DEVICE_SCAN_STATE_CHANGED" => {
7820                Some(Self::AtomNearbyDeviceScanStateChanged)
7821            }
7822            "ATOM_APPLICATION_LOCALES_CHANGED" => {
7823                Some(Self::AtomApplicationLocalesChanged)
7824            }
7825            "ATOM_MEDIAMETRICS_AUDIOTRACKSTATUS_REPORTED" => {
7826                Some(Self::AtomMediametricsAudiotrackstatusReported)
7827            }
7828            "ATOM_FOLD_STATE_DURATION_REPORTED" => {
7829                Some(Self::AtomFoldStateDurationReported)
7830            }
7831            "ATOM_LOCATION_TIME_ZONE_PROVIDER_CONTROLLER_STATE_CHANGED" => {
7832                Some(Self::AtomLocationTimeZoneProviderControllerStateChanged)
7833            }
7834            "ATOM_DISPLAY_HBM_STATE_CHANGED" => Some(Self::AtomDisplayHbmStateChanged),
7835            "ATOM_DISPLAY_HBM_BRIGHTNESS_CHANGED" => {
7836                Some(Self::AtomDisplayHbmBrightnessChanged)
7837            }
7838            "ATOM_PERSISTENT_URI_PERMISSIONS_FLUSHED" => {
7839                Some(Self::AtomPersistentUriPermissionsFlushed)
7840            }
7841            "ATOM_EARLY_BOOT_COMP_OS_ARTIFACTS_CHECK_REPORTED" => {
7842                Some(Self::AtomEarlyBootCompOsArtifactsCheckReported)
7843            }
7844            "ATOM_VBMETA_DIGEST_REPORTED" => Some(Self::AtomVbmetaDigestReported),
7845            "ATOM_APEX_INFO_GATHERED" => Some(Self::AtomApexInfoGathered),
7846            "ATOM_PVM_INFO_GATHERED" => Some(Self::AtomPvmInfoGathered),
7847            "ATOM_WEAR_SETTINGS_UI_INTERACTED" => {
7848                Some(Self::AtomWearSettingsUiInteracted)
7849            }
7850            "ATOM_TRACING_SERVICE_REPORT_EVENT" => {
7851                Some(Self::AtomTracingServiceReportEvent)
7852            }
7853            "ATOM_MEDIAMETRICS_AUDIORECORDSTATUS_REPORTED" => {
7854                Some(Self::AtomMediametricsAudiorecordstatusReported)
7855            }
7856            "ATOM_LAUNCHER_LATENCY" => Some(Self::AtomLauncherLatency),
7857            "ATOM_DROPBOX_ENTRY_DROPPED" => Some(Self::AtomDropboxEntryDropped),
7858            "ATOM_WIFI_P2P_CONNECTION_REPORTED" => {
7859                Some(Self::AtomWifiP2pConnectionReported)
7860            }
7861            "ATOM_GAME_STATE_CHANGED" => Some(Self::AtomGameStateChanged),
7862            "ATOM_HOTWORD_DETECTOR_CREATE_REQUESTED" => {
7863                Some(Self::AtomHotwordDetectorCreateRequested)
7864            }
7865            "ATOM_HOTWORD_DETECTION_SERVICE_INIT_RESULT_REPORTED" => {
7866                Some(Self::AtomHotwordDetectionServiceInitResultReported)
7867            }
7868            "ATOM_HOTWORD_DETECTION_SERVICE_RESTARTED" => {
7869                Some(Self::AtomHotwordDetectionServiceRestarted)
7870            }
7871            "ATOM_HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED" => {
7872                Some(Self::AtomHotwordDetectorKeyphraseTriggered)
7873            }
7874            "ATOM_HOTWORD_DETECTOR_EVENTS" => Some(Self::AtomHotwordDetectorEvents),
7875            "ATOM_BOOT_COMPLETED_BROADCAST_COMPLETION_LATENCY_REPORTED" => {
7876                Some(Self::AtomBootCompletedBroadcastCompletionLatencyReported)
7877            }
7878            "ATOM_CONTACTS_INDEXER_UPDATE_STATS_REPORTED" => {
7879                Some(Self::AtomContactsIndexerUpdateStatsReported)
7880            }
7881            "ATOM_APP_BACKGROUND_RESTRICTIONS_INFO" => {
7882                Some(Self::AtomAppBackgroundRestrictionsInfo)
7883            }
7884            "ATOM_MMS_SMS_PROVIDER_GET_THREAD_ID_FAILED" => {
7885                Some(Self::AtomMmsSmsProviderGetThreadIdFailed)
7886            }
7887            "ATOM_MMS_SMS_DATABASE_HELPER_ON_UPGRADE_FAILED" => {
7888                Some(Self::AtomMmsSmsDatabaseHelperOnUpgradeFailed)
7889            }
7890            "ATOM_PERMISSION_REMINDER_NOTIFICATION_INTERACTED" => {
7891                Some(Self::AtomPermissionReminderNotificationInteracted)
7892            }
7893            "ATOM_RECENT_PERMISSION_DECISIONS_INTERACTED" => {
7894                Some(Self::AtomRecentPermissionDecisionsInteracted)
7895            }
7896            "ATOM_GNSS_PSDS_DOWNLOAD_REPORTED" => {
7897                Some(Self::AtomGnssPsdsDownloadReported)
7898            }
7899            "ATOM_LE_AUDIO_CONNECTION_SESSION_REPORTED" => {
7900                Some(Self::AtomLeAudioConnectionSessionReported)
7901            }
7902            "ATOM_LE_AUDIO_BROADCAST_SESSION_REPORTED" => {
7903                Some(Self::AtomLeAudioBroadcastSessionReported)
7904            }
7905            "ATOM_DREAM_UI_EVENT_REPORTED" => Some(Self::AtomDreamUiEventReported),
7906            "ATOM_TASK_MANAGER_EVENT_REPORTED" => {
7907                Some(Self::AtomTaskManagerEventReported)
7908            }
7909            "ATOM_CDM_ASSOCIATION_ACTION" => Some(Self::AtomCdmAssociationAction),
7910            "ATOM_MAGNIFICATION_TRIPLE_TAP_AND_HOLD_ACTIVATED_SESSION_REPORTED" => {
7911                Some(Self::AtomMagnificationTripleTapAndHoldActivatedSessionReported)
7912            }
7913            "ATOM_MAGNIFICATION_FOLLOW_TYPING_FOCUS_ACTIVATED_SESSION_REPORTED" => {
7914                Some(Self::AtomMagnificationFollowTypingFocusActivatedSessionReported)
7915            }
7916            "ATOM_ACCESSIBILITY_TEXT_READING_OPTIONS_CHANGED" => {
7917                Some(Self::AtomAccessibilityTextReadingOptionsChanged)
7918            }
7919            "ATOM_WIFI_SETUP_FAILURE_CRASH_REPORTED" => {
7920                Some(Self::AtomWifiSetupFailureCrashReported)
7921            }
7922            "ATOM_UWB_DEVICE_ERROR_REPORTED" => Some(Self::AtomUwbDeviceErrorReported),
7923            "ATOM_ISOLATED_COMPILATION_SCHEDULED" => {
7924                Some(Self::AtomIsolatedCompilationScheduled)
7925            }
7926            "ATOM_ISOLATED_COMPILATION_ENDED" => Some(Self::AtomIsolatedCompilationEnded),
7927            "ATOM_ONS_OPPORTUNISTIC_ESIM_PROVISIONING_COMPLETE" => {
7928                Some(Self::AtomOnsOpportunisticEsimProvisioningComplete)
7929            }
7930            "ATOM_SYSTEM_SERVER_PRE_WATCHDOG_OCCURRED" => {
7931                Some(Self::AtomSystemServerPreWatchdogOccurred)
7932            }
7933            "ATOM_TELEPHONY_ANOMALY_DETECTED" => Some(Self::AtomTelephonyAnomalyDetected),
7934            "ATOM_LETTERBOX_POSITION_CHANGED" => Some(Self::AtomLetterboxPositionChanged),
7935            "ATOM_REMOTE_KEY_PROVISIONING_ATTEMPT" => {
7936                Some(Self::AtomRemoteKeyProvisioningAttempt)
7937            }
7938            "ATOM_REMOTE_KEY_PROVISIONING_NETWORK_INFO" => {
7939                Some(Self::AtomRemoteKeyProvisioningNetworkInfo)
7940            }
7941            "ATOM_REMOTE_KEY_PROVISIONING_TIMING" => {
7942                Some(Self::AtomRemoteKeyProvisioningTiming)
7943            }
7944            "ATOM_MEDIAOUTPUT_OP_INTERACTION_REPORT" => {
7945                Some(Self::AtomMediaoutputOpInteractionReport)
7946            }
7947            "ATOM_SYNC_EXEMPTION_OCCURRED" => Some(Self::AtomSyncExemptionOccurred),
7948            "ATOM_AUTOFILL_PRESENTATION_EVENT_REPORTED" => {
7949                Some(Self::AtomAutofillPresentationEventReported)
7950            }
7951            "ATOM_DOCK_STATE_CHANGED" => Some(Self::AtomDockStateChanged),
7952            "ATOM_SAFETY_SOURCE_STATE_COLLECTED" => {
7953                Some(Self::AtomSafetySourceStateCollected)
7954            }
7955            "ATOM_SAFETY_CENTER_SYSTEM_EVENT_REPORTED" => {
7956                Some(Self::AtomSafetyCenterSystemEventReported)
7957            }
7958            "ATOM_SAFETY_CENTER_INTERACTION_REPORTED" => {
7959                Some(Self::AtomSafetyCenterInteractionReported)
7960            }
7961            "ATOM_SETTINGS_PROVIDER_SETTING_CHANGED" => {
7962                Some(Self::AtomSettingsProviderSettingChanged)
7963            }
7964            "ATOM_BROADCAST_DELIVERY_EVENT_REPORTED" => {
7965                Some(Self::AtomBroadcastDeliveryEventReported)
7966            }
7967            "ATOM_SERVICE_REQUEST_EVENT_REPORTED" => {
7968                Some(Self::AtomServiceRequestEventReported)
7969            }
7970            "ATOM_PROVIDER_ACQUISITION_EVENT_REPORTED" => {
7971                Some(Self::AtomProviderAcquisitionEventReported)
7972            }
7973            "ATOM_BLUETOOTH_DEVICE_NAME_REPORTED" => {
7974                Some(Self::AtomBluetoothDeviceNameReported)
7975            }
7976            "ATOM_CB_CONFIG_UPDATED" => Some(Self::AtomCbConfigUpdated),
7977            "ATOM_CB_MODULE_ERROR_REPORTED" => Some(Self::AtomCbModuleErrorReported),
7978            "ATOM_CB_SERVICE_FEATURE_CHANGED" => Some(Self::AtomCbServiceFeatureChanged),
7979            "ATOM_CB_RECEIVER_FEATURE_CHANGED" => {
7980                Some(Self::AtomCbReceiverFeatureChanged)
7981            }
7982            "ATOM_PRIVACY_SIGNAL_NOTIFICATION_INTERACTION" => {
7983                Some(Self::AtomPrivacySignalNotificationInteraction)
7984            }
7985            "ATOM_PRIVACY_SIGNAL_ISSUE_CARD_INTERACTION" => {
7986                Some(Self::AtomPrivacySignalIssueCardInteraction)
7987            }
7988            "ATOM_PRIVACY_SIGNALS_JOB_FAILURE" => {
7989                Some(Self::AtomPrivacySignalsJobFailure)
7990            }
7991            "ATOM_VIBRATION_REPORTED" => Some(Self::AtomVibrationReported),
7992            "ATOM_UWB_RANGING_START" => Some(Self::AtomUwbRangingStart),
7993            "ATOM_APP_COMPACTED_V2" => Some(Self::AtomAppCompactedV2),
7994            "ATOM_DISPLAY_BRIGHTNESS_CHANGED" => Some(Self::AtomDisplayBrightnessChanged),
7995            "ATOM_ACTIVITY_ACTION_BLOCKED" => Some(Self::AtomActivityActionBlocked),
7996            "ATOM_NETWORK_DNS_SERVER_SUPPORT_REPORTED" => {
7997                Some(Self::AtomNetworkDnsServerSupportReported)
7998            }
7999            "ATOM_VM_BOOTED" => Some(Self::AtomVmBooted),
8000            "ATOM_VM_EXITED" => Some(Self::AtomVmExited),
8001            "ATOM_AMBIENT_BRIGHTNESS_STATS_REPORTED" => {
8002                Some(Self::AtomAmbientBrightnessStatsReported)
8003            }
8004            "ATOM_MEDIAMETRICS_SPATIALIZERCAPABILITIES_REPORTED" => {
8005                Some(Self::AtomMediametricsSpatializercapabilitiesReported)
8006            }
8007            "ATOM_MEDIAMETRICS_SPATIALIZERDEVICEENABLED_REPORTED" => {
8008                Some(Self::AtomMediametricsSpatializerdeviceenabledReported)
8009            }
8010            "ATOM_MEDIAMETRICS_HEADTRACKERDEVICEENABLED_REPORTED" => {
8011                Some(Self::AtomMediametricsHeadtrackerdeviceenabledReported)
8012            }
8013            "ATOM_MEDIAMETRICS_HEADTRACKERDEVICESUPPORTED_REPORTED" => {
8014                Some(Self::AtomMediametricsHeadtrackerdevicesupportedReported)
8015            }
8016            "ATOM_HEARING_AID_INFO_REPORTED" => Some(Self::AtomHearingAidInfoReported),
8017            "ATOM_DEVICE_WIDE_JOB_CONSTRAINT_CHANGED" => {
8018                Some(Self::AtomDeviceWideJobConstraintChanged)
8019            }
8020            "ATOM_AMBIENT_MODE_CHANGED" => Some(Self::AtomAmbientModeChanged),
8021            "ATOM_ANR_LATENCY_REPORTED" => Some(Self::AtomAnrLatencyReported),
8022            "ATOM_RESOURCE_API_INFO" => Some(Self::AtomResourceApiInfo),
8023            "ATOM_SYSTEM_DEFAULT_NETWORK_CHANGED" => {
8024                Some(Self::AtomSystemDefaultNetworkChanged)
8025            }
8026            "ATOM_IWLAN_SETUP_DATA_CALL_RESULT_REPORTED" => {
8027                Some(Self::AtomIwlanSetupDataCallResultReported)
8028            }
8029            "ATOM_IWLAN_PDN_DISCONNECTED_REASON_REPORTED" => {
8030                Some(Self::AtomIwlanPdnDisconnectedReasonReported)
8031            }
8032            "ATOM_AIRPLANE_MODE_SESSION_REPORTED" => {
8033                Some(Self::AtomAirplaneModeSessionReported)
8034            }
8035            "ATOM_VM_CPU_STATUS_REPORTED" => Some(Self::AtomVmCpuStatusReported),
8036            "ATOM_VM_MEM_STATUS_REPORTED" => Some(Self::AtomVmMemStatusReported),
8037            "ATOM_PACKAGE_INSTALLATION_SESSION_REPORTED" => {
8038                Some(Self::AtomPackageInstallationSessionReported)
8039            }
8040            "ATOM_DEFAULT_NETWORK_REMATCH_INFO" => {
8041                Some(Self::AtomDefaultNetworkRematchInfo)
8042            }
8043            "ATOM_NETWORK_SELECTION_PERFORMANCE" => {
8044                Some(Self::AtomNetworkSelectionPerformance)
8045            }
8046            "ATOM_NETWORK_NSD_REPORTED" => Some(Self::AtomNetworkNsdReported),
8047            "ATOM_BLUETOOTH_DISCONNECTION_REASON_REPORTED" => {
8048                Some(Self::AtomBluetoothDisconnectionReasonReported)
8049            }
8050            "ATOM_BLUETOOTH_LOCAL_VERSIONS_REPORTED" => {
8051                Some(Self::AtomBluetoothLocalVersionsReported)
8052            }
8053            "ATOM_BLUETOOTH_REMOTE_SUPPORTED_FEATURES_REPORTED" => {
8054                Some(Self::AtomBluetoothRemoteSupportedFeaturesReported)
8055            }
8056            "ATOM_BLUETOOTH_LOCAL_SUPPORTED_FEATURES_REPORTED" => {
8057                Some(Self::AtomBluetoothLocalSupportedFeaturesReported)
8058            }
8059            "ATOM_BLUETOOTH_GATT_APP_INFO" => Some(Self::AtomBluetoothGattAppInfo),
8060            "ATOM_BRIGHTNESS_CONFIGURATION_UPDATED" => {
8061                Some(Self::AtomBrightnessConfigurationUpdated)
8062            }
8063            "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_LAUNCHED" => {
8064                Some(Self::AtomWearMediaOutputSwitcherLaunched)
8065            }
8066            "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_FINISHED" => {
8067                Some(Self::AtomWearMediaOutputSwitcherFinished)
8068            }
8069            "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_CONNECTION_REPORTED" => {
8070                Some(Self::AtomWearMediaOutputSwitcherConnectionReported)
8071            }
8072            "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_DEVICE_SCAN_TRIGGERED" => {
8073                Some(Self::AtomWearMediaOutputSwitcherDeviceScanTriggered)
8074            }
8075            "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_FIRST_DEVICE_SCAN_LATENCY" => {
8076                Some(Self::AtomWearMediaOutputSwitcherFirstDeviceScanLatency)
8077            }
8078            "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_CONNECT_DEVICE_LATENCY" => {
8079                Some(Self::AtomWearMediaOutputSwitcherConnectDeviceLatency)
8080            }
8081            "ATOM_PACKAGE_MANAGER_SNAPSHOT_REPORTED" => {
8082                Some(Self::AtomPackageManagerSnapshotReported)
8083            }
8084            "ATOM_PACKAGE_MANAGER_APPS_FILTER_CACHE_BUILD_REPORTED" => {
8085                Some(Self::AtomPackageManagerAppsFilterCacheBuildReported)
8086            }
8087            "ATOM_PACKAGE_MANAGER_APPS_FILTER_CACHE_UPDATE_REPORTED" => {
8088                Some(Self::AtomPackageManagerAppsFilterCacheUpdateReported)
8089            }
8090            "ATOM_LAUNCHER_IMPRESSION_EVENT" => Some(Self::AtomLauncherImpressionEvent),
8091            "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_ALL_DEVICES_SCAN_LATENCY" => {
8092                Some(Self::AtomWearMediaOutputSwitcherAllDevicesScanLatency)
8093            }
8094            "ATOM_WS_WATCH_FACE_EDITED" => Some(Self::AtomWsWatchFaceEdited),
8095            "ATOM_WS_WATCH_FACE_FAVORITE_ACTION_REPORTED" => {
8096                Some(Self::AtomWsWatchFaceFavoriteActionReported)
8097            }
8098            "ATOM_WS_WATCH_FACE_SET_ACTION_REPORTED" => {
8099                Some(Self::AtomWsWatchFaceSetActionReported)
8100            }
8101            "ATOM_PACKAGE_UNINSTALLATION_REPORTED" => {
8102                Some(Self::AtomPackageUninstallationReported)
8103            }
8104            "ATOM_GAME_MODE_CHANGED" => Some(Self::AtomGameModeChanged),
8105            "ATOM_GAME_MODE_CONFIGURATION_CHANGED" => {
8106                Some(Self::AtomGameModeConfigurationChanged)
8107            }
8108            "ATOM_BEDTIME_MODE_STATE_CHANGED" => Some(Self::AtomBedtimeModeStateChanged),
8109            "ATOM_NETWORK_SLICE_SESSION_ENDED" => {
8110                Some(Self::AtomNetworkSliceSessionEnded)
8111            }
8112            "ATOM_NETWORK_SLICE_DAILY_DATA_USAGE_REPORTED" => {
8113                Some(Self::AtomNetworkSliceDailyDataUsageReported)
8114            }
8115            "ATOM_NFC_TAG_TYPE_OCCURRED" => Some(Self::AtomNfcTagTypeOccurred),
8116            "ATOM_NFC_AID_CONFLICT_OCCURRED" => Some(Self::AtomNfcAidConflictOccurred),
8117            "ATOM_NFC_READER_CONFLICT_OCCURRED" => {
8118                Some(Self::AtomNfcReaderConflictOccurred)
8119            }
8120            "ATOM_WS_TILE_LIST_CHANGED" => Some(Self::AtomWsTileListChanged),
8121            "ATOM_GET_TYPE_ACCESSED_WITHOUT_PERMISSION" => {
8122                Some(Self::AtomGetTypeAccessedWithoutPermission)
8123            }
8124            "ATOM_MOBILE_BUNDLED_APP_INFO_GATHERED" => {
8125                Some(Self::AtomMobileBundledAppInfoGathered)
8126            }
8127            "ATOM_WS_WATCH_FACE_COMPLICATION_SET_CHANGED" => {
8128                Some(Self::AtomWsWatchFaceComplicationSetChanged)
8129            }
8130            "ATOM_MEDIA_DRM_CREATED" => Some(Self::AtomMediaDrmCreated),
8131            "ATOM_MEDIA_DRM_ERRORED" => Some(Self::AtomMediaDrmErrored),
8132            "ATOM_MEDIA_DRM_SESSION_OPENED" => Some(Self::AtomMediaDrmSessionOpened),
8133            "ATOM_MEDIA_DRM_SESSION_CLOSED" => Some(Self::AtomMediaDrmSessionClosed),
8134            "ATOM_USER_SELECTED_RESOLUTION" => Some(Self::AtomUserSelectedResolution),
8135            "ATOM_UNSAFE_INTENT_EVENT_REPORTED" => {
8136                Some(Self::AtomUnsafeIntentEventReported)
8137            }
8138            "ATOM_PERFORMANCE_HINT_SESSION_REPORTED" => {
8139                Some(Self::AtomPerformanceHintSessionReported)
8140            }
8141            "ATOM_MEDIAMETRICS_MIDI_DEVICE_CLOSE_REPORTED" => {
8142                Some(Self::AtomMediametricsMidiDeviceCloseReported)
8143            }
8144            "ATOM_BIOMETRIC_TOUCH_REPORTED" => Some(Self::AtomBiometricTouchReported),
8145            "ATOM_HOTWORD_AUDIO_EGRESS_EVENT_REPORTED" => {
8146                Some(Self::AtomHotwordAudioEgressEventReported)
8147            }
8148            "ATOM_LOCATION_ENABLED_STATE_CHANGED" => {
8149                Some(Self::AtomLocationEnabledStateChanged)
8150            }
8151            "ATOM_IME_REQUEST_FINISHED" => Some(Self::AtomImeRequestFinished),
8152            "ATOM_USB_COMPLIANCE_WARNINGS_REPORTED" => {
8153                Some(Self::AtomUsbComplianceWarningsReported)
8154            }
8155            "ATOM_APP_SUPPORTED_LOCALES_CHANGED" => {
8156                Some(Self::AtomAppSupportedLocalesChanged)
8157            }
8158            "ATOM_MEDIA_PROVIDER_VOLUME_RECOVERY_REPORTED" => {
8159                Some(Self::AtomMediaProviderVolumeRecoveryReported)
8160            }
8161            "ATOM_BIOMETRIC_PROPERTIES_COLLECTED" => {
8162                Some(Self::AtomBiometricPropertiesCollected)
8163            }
8164            "ATOM_KERNEL_WAKEUP_ATTRIBUTED" => Some(Self::AtomKernelWakeupAttributed),
8165            "ATOM_SCREEN_STATE_CHANGED_V2" => Some(Self::AtomScreenStateChangedV2),
8166            "ATOM_WS_BACKUP_ACTION_REPORTED" => Some(Self::AtomWsBackupActionReported),
8167            "ATOM_WS_RESTORE_ACTION_REPORTED" => Some(Self::AtomWsRestoreActionReported),
8168            "ATOM_DEVICE_LOG_ACCESS_EVENT_REPORTED" => {
8169                Some(Self::AtomDeviceLogAccessEventReported)
8170            }
8171            "ATOM_MEDIA_SESSION_UPDATED" => Some(Self::AtomMediaSessionUpdated),
8172            "ATOM_WEAR_OOBE_STATE_CHANGED" => Some(Self::AtomWearOobeStateChanged),
8173            "ATOM_WS_NOTIFICATION_UPDATED" => Some(Self::AtomWsNotificationUpdated),
8174            "ATOM_NETWORK_VALIDATION_FAILURE_STATS_DAILY_REPORTED" => {
8175                Some(Self::AtomNetworkValidationFailureStatsDailyReported)
8176            }
8177            "ATOM_WS_COMPLICATION_TAPPED" => Some(Self::AtomWsComplicationTapped),
8178            "ATOM_WS_NOTIFICATION_BLOCKING" => Some(Self::AtomWsNotificationBlocking),
8179            "ATOM_WS_NOTIFICATION_BRIDGEMODE_UPDATED" => {
8180                Some(Self::AtomWsNotificationBridgemodeUpdated)
8181            }
8182            "ATOM_WS_NOTIFICATION_DISMISSAL_ACTIONED" => {
8183                Some(Self::AtomWsNotificationDismissalActioned)
8184            }
8185            "ATOM_WS_NOTIFICATION_ACTIONED" => Some(Self::AtomWsNotificationActioned),
8186            "ATOM_WS_NOTIFICATION_LATENCY" => Some(Self::AtomWsNotificationLatency),
8187            "ATOM_WIFI_BYTES_TRANSFER" => Some(Self::AtomWifiBytesTransfer),
8188            "ATOM_WIFI_BYTES_TRANSFER_BY_FG_BG" => {
8189                Some(Self::AtomWifiBytesTransferByFgBg)
8190            }
8191            "ATOM_MOBILE_BYTES_TRANSFER" => Some(Self::AtomMobileBytesTransfer),
8192            "ATOM_MOBILE_BYTES_TRANSFER_BY_FG_BG" => {
8193                Some(Self::AtomMobileBytesTransferByFgBg)
8194            }
8195            "ATOM_BLUETOOTH_BYTES_TRANSFER" => Some(Self::AtomBluetoothBytesTransfer),
8196            "ATOM_KERNEL_WAKELOCK" => Some(Self::AtomKernelWakelock),
8197            "ATOM_SUBSYSTEM_SLEEP_STATE" => Some(Self::AtomSubsystemSleepState),
8198            "ATOM_CPU_TIME_PER_UID" => Some(Self::AtomCpuTimePerUid),
8199            "ATOM_CPU_TIME_PER_UID_FREQ" => Some(Self::AtomCpuTimePerUidFreq),
8200            "ATOM_WIFI_ACTIVITY_INFO" => Some(Self::AtomWifiActivityInfo),
8201            "ATOM_MODEM_ACTIVITY_INFO" => Some(Self::AtomModemActivityInfo),
8202            "ATOM_BLUETOOTH_ACTIVITY_INFO" => Some(Self::AtomBluetoothActivityInfo),
8203            "ATOM_PROCESS_MEMORY_STATE" => Some(Self::AtomProcessMemoryState),
8204            "ATOM_SYSTEM_ELAPSED_REALTIME" => Some(Self::AtomSystemElapsedRealtime),
8205            "ATOM_SYSTEM_UPTIME" => Some(Self::AtomSystemUptime),
8206            "ATOM_CPU_ACTIVE_TIME" => Some(Self::AtomCpuActiveTime),
8207            "ATOM_CPU_CLUSTER_TIME" => Some(Self::AtomCpuClusterTime),
8208            "ATOM_DISK_SPACE" => Some(Self::AtomDiskSpace),
8209            "ATOM_REMAINING_BATTERY_CAPACITY" => Some(Self::AtomRemainingBatteryCapacity),
8210            "ATOM_FULL_BATTERY_CAPACITY" => Some(Self::AtomFullBatteryCapacity),
8211            "ATOM_TEMPERATURE" => Some(Self::AtomTemperature),
8212            "ATOM_BINDER_CALLS" => Some(Self::AtomBinderCalls),
8213            "ATOM_BINDER_CALLS_EXCEPTIONS" => Some(Self::AtomBinderCallsExceptions),
8214            "ATOM_LOOPER_STATS" => Some(Self::AtomLooperStats),
8215            "ATOM_DISK_STATS" => Some(Self::AtomDiskStats),
8216            "ATOM_DIRECTORY_USAGE" => Some(Self::AtomDirectoryUsage),
8217            "ATOM_APP_SIZE" => Some(Self::AtomAppSize),
8218            "ATOM_CATEGORY_SIZE" => Some(Self::AtomCategorySize),
8219            "ATOM_PROC_STATS" => Some(Self::AtomProcStats),
8220            "ATOM_BATTERY_VOLTAGE" => Some(Self::AtomBatteryVoltage),
8221            "ATOM_NUM_FINGERPRINTS_ENROLLED" => Some(Self::AtomNumFingerprintsEnrolled),
8222            "ATOM_DISK_IO" => Some(Self::AtomDiskIo),
8223            "ATOM_POWER_PROFILE" => Some(Self::AtomPowerProfile),
8224            "ATOM_PROC_STATS_PKG_PROC" => Some(Self::AtomProcStatsPkgProc),
8225            "ATOM_PROCESS_CPU_TIME" => Some(Self::AtomProcessCpuTime),
8226            "ATOM_CPU_TIME_PER_THREAD_FREQ" => Some(Self::AtomCpuTimePerThreadFreq),
8227            "ATOM_ON_DEVICE_POWER_MEASUREMENT" => {
8228                Some(Self::AtomOnDevicePowerMeasurement)
8229            }
8230            "ATOM_DEVICE_CALCULATED_POWER_USE" => {
8231                Some(Self::AtomDeviceCalculatedPowerUse)
8232            }
8233            "ATOM_PROCESS_MEMORY_HIGH_WATER_MARK" => {
8234                Some(Self::AtomProcessMemoryHighWaterMark)
8235            }
8236            "ATOM_BATTERY_LEVEL" => Some(Self::AtomBatteryLevel),
8237            "ATOM_BUILD_INFORMATION" => Some(Self::AtomBuildInformation),
8238            "ATOM_BATTERY_CYCLE_COUNT" => Some(Self::AtomBatteryCycleCount),
8239            "ATOM_DEBUG_ELAPSED_CLOCK" => Some(Self::AtomDebugElapsedClock),
8240            "ATOM_DEBUG_FAILING_ELAPSED_CLOCK" => {
8241                Some(Self::AtomDebugFailingElapsedClock)
8242            }
8243            "ATOM_NUM_FACES_ENROLLED" => Some(Self::AtomNumFacesEnrolled),
8244            "ATOM_ROLE_HOLDER" => Some(Self::AtomRoleHolder),
8245            "ATOM_DANGEROUS_PERMISSION_STATE" => Some(Self::AtomDangerousPermissionState),
8246            "ATOM_TRAIN_INFO" => Some(Self::AtomTrainInfo),
8247            "ATOM_TIME_ZONE_DATA_INFO" => Some(Self::AtomTimeZoneDataInfo),
8248            "ATOM_EXTERNAL_STORAGE_INFO" => Some(Self::AtomExternalStorageInfo),
8249            "ATOM_GPU_STATS_GLOBAL_INFO" => Some(Self::AtomGpuStatsGlobalInfo),
8250            "ATOM_GPU_STATS_APP_INFO" => Some(Self::AtomGpuStatsAppInfo),
8251            "ATOM_SYSTEM_ION_HEAP_SIZE" => Some(Self::AtomSystemIonHeapSize),
8252            "ATOM_APPS_ON_EXTERNAL_STORAGE_INFO" => {
8253                Some(Self::AtomAppsOnExternalStorageInfo)
8254            }
8255            "ATOM_FACE_SETTINGS" => Some(Self::AtomFaceSettings),
8256            "ATOM_COOLING_DEVICE" => Some(Self::AtomCoolingDevice),
8257            "ATOM_APP_OPS" => Some(Self::AtomAppOps),
8258            "ATOM_PROCESS_SYSTEM_ION_HEAP_SIZE" => {
8259                Some(Self::AtomProcessSystemIonHeapSize)
8260            }
8261            "ATOM_SURFACEFLINGER_STATS_GLOBAL_INFO" => {
8262                Some(Self::AtomSurfaceflingerStatsGlobalInfo)
8263            }
8264            "ATOM_SURFACEFLINGER_STATS_LAYER_INFO" => {
8265                Some(Self::AtomSurfaceflingerStatsLayerInfo)
8266            }
8267            "ATOM_PROCESS_MEMORY_SNAPSHOT" => Some(Self::AtomProcessMemorySnapshot),
8268            "ATOM_VMS_CLIENT_STATS" => Some(Self::AtomVmsClientStats),
8269            "ATOM_NOTIFICATION_REMOTE_VIEWS" => Some(Self::AtomNotificationRemoteViews),
8270            "ATOM_DANGEROUS_PERMISSION_STATE_SAMPLED" => {
8271                Some(Self::AtomDangerousPermissionStateSampled)
8272            }
8273            "ATOM_GRAPHICS_STATS" => Some(Self::AtomGraphicsStats),
8274            "ATOM_RUNTIME_APP_OP_ACCESS" => Some(Self::AtomRuntimeAppOpAccess),
8275            "ATOM_ION_HEAP_SIZE" => Some(Self::AtomIonHeapSize),
8276            "ATOM_PACKAGE_NOTIFICATION_PREFERENCES" => {
8277                Some(Self::AtomPackageNotificationPreferences)
8278            }
8279            "ATOM_PACKAGE_NOTIFICATION_CHANNEL_PREFERENCES" => {
8280                Some(Self::AtomPackageNotificationChannelPreferences)
8281            }
8282            "ATOM_PACKAGE_NOTIFICATION_CHANNEL_GROUP_PREFERENCES" => {
8283                Some(Self::AtomPackageNotificationChannelGroupPreferences)
8284            }
8285            "ATOM_GNSS_STATS" => Some(Self::AtomGnssStats),
8286            "ATOM_ATTRIBUTED_APP_OPS" => Some(Self::AtomAttributedAppOps),
8287            "ATOM_VOICE_CALL_SESSION" => Some(Self::AtomVoiceCallSession),
8288            "ATOM_VOICE_CALL_RAT_USAGE" => Some(Self::AtomVoiceCallRatUsage),
8289            "ATOM_SIM_SLOT_STATE" => Some(Self::AtomSimSlotState),
8290            "ATOM_SUPPORTED_RADIO_ACCESS_FAMILY" => {
8291                Some(Self::AtomSupportedRadioAccessFamily)
8292            }
8293            "ATOM_SETTING_SNAPSHOT" => Some(Self::AtomSettingSnapshot),
8294            "ATOM_BLOB_INFO" => Some(Self::AtomBlobInfo),
8295            "ATOM_DATA_USAGE_BYTES_TRANSFER" => Some(Self::AtomDataUsageBytesTransfer),
8296            "ATOM_BYTES_TRANSFER_BY_TAG_AND_METERED" => {
8297                Some(Self::AtomBytesTransferByTagAndMetered)
8298            }
8299            "ATOM_DND_MODE_RULE" => Some(Self::AtomDndModeRule),
8300            "ATOM_GENERAL_EXTERNAL_STORAGE_ACCESS_STATS" => {
8301                Some(Self::AtomGeneralExternalStorageAccessStats)
8302            }
8303            "ATOM_INCOMING_SMS" => Some(Self::AtomIncomingSms),
8304            "ATOM_OUTGOING_SMS" => Some(Self::AtomOutgoingSms),
8305            "ATOM_CARRIER_ID_TABLE_VERSION" => Some(Self::AtomCarrierIdTableVersion),
8306            "ATOM_DATA_CALL_SESSION" => Some(Self::AtomDataCallSession),
8307            "ATOM_CELLULAR_SERVICE_STATE" => Some(Self::AtomCellularServiceState),
8308            "ATOM_CELLULAR_DATA_SERVICE_SWITCH" => {
8309                Some(Self::AtomCellularDataServiceSwitch)
8310            }
8311            "ATOM_SYSTEM_MEMORY" => Some(Self::AtomSystemMemory),
8312            "ATOM_IMS_REGISTRATION_TERMINATION" => {
8313                Some(Self::AtomImsRegistrationTermination)
8314            }
8315            "ATOM_IMS_REGISTRATION_STATS" => Some(Self::AtomImsRegistrationStats),
8316            "ATOM_CPU_TIME_PER_CLUSTER_FREQ" => Some(Self::AtomCpuTimePerClusterFreq),
8317            "ATOM_CPU_CYCLES_PER_UID_CLUSTER" => Some(Self::AtomCpuCyclesPerUidCluster),
8318            "ATOM_DEVICE_ROTATED_DATA" => Some(Self::AtomDeviceRotatedData),
8319            "ATOM_CPU_CYCLES_PER_THREAD_GROUP_CLUSTER" => {
8320                Some(Self::AtomCpuCyclesPerThreadGroupCluster)
8321            }
8322            "ATOM_MEDIA_DRM_ACTIVITY_INFO" => Some(Self::AtomMediaDrmActivityInfo),
8323            "ATOM_OEM_MANAGED_BYTES_TRANSFER" => Some(Self::AtomOemManagedBytesTransfer),
8324            "ATOM_GNSS_POWER_STATS" => Some(Self::AtomGnssPowerStats),
8325            "ATOM_TIME_ZONE_DETECTOR_STATE" => Some(Self::AtomTimeZoneDetectorState),
8326            "ATOM_KEYSTORE2_STORAGE_STATS" => Some(Self::AtomKeystore2StorageStats),
8327            "ATOM_RKP_POOL_STATS" => Some(Self::AtomRkpPoolStats),
8328            "ATOM_PROCESS_DMABUF_MEMORY" => Some(Self::AtomProcessDmabufMemory),
8329            "ATOM_PENDING_ALARM_INFO" => Some(Self::AtomPendingAlarmInfo),
8330            "ATOM_USER_LEVEL_HIBERNATED_APPS" => Some(Self::AtomUserLevelHibernatedApps),
8331            "ATOM_LAUNCHER_LAYOUT_SNAPSHOT" => Some(Self::AtomLauncherLayoutSnapshot),
8332            "ATOM_GLOBAL_HIBERNATED_APPS" => Some(Self::AtomGlobalHibernatedApps),
8333            "ATOM_INPUT_EVENT_LATENCY_SKETCH" => Some(Self::AtomInputEventLatencySketch),
8334            "ATOM_BATTERY_USAGE_STATS_BEFORE_RESET" => {
8335                Some(Self::AtomBatteryUsageStatsBeforeReset)
8336            }
8337            "ATOM_BATTERY_USAGE_STATS_SINCE_RESET" => {
8338                Some(Self::AtomBatteryUsageStatsSinceReset)
8339            }
8340            "ATOM_BATTERY_USAGE_STATS_SINCE_RESET_USING_POWER_PROFILE_MODEL" => {
8341                Some(Self::AtomBatteryUsageStatsSinceResetUsingPowerProfileModel)
8342            }
8343            "ATOM_INSTALLED_INCREMENTAL_PACKAGE" => {
8344                Some(Self::AtomInstalledIncrementalPackage)
8345            }
8346            "ATOM_TELEPHONY_NETWORK_REQUESTS" => Some(Self::AtomTelephonyNetworkRequests),
8347            "ATOM_APP_SEARCH_STORAGE_INFO" => Some(Self::AtomAppSearchStorageInfo),
8348            "ATOM_VMSTAT" => Some(Self::AtomVmstat),
8349            "ATOM_KEYSTORE2_KEY_CREATION_WITH_GENERAL_INFO" => {
8350                Some(Self::AtomKeystore2KeyCreationWithGeneralInfo)
8351            }
8352            "ATOM_KEYSTORE2_KEY_CREATION_WITH_AUTH_INFO" => {
8353                Some(Self::AtomKeystore2KeyCreationWithAuthInfo)
8354            }
8355            "ATOM_KEYSTORE2_KEY_CREATION_WITH_PURPOSE_AND_MODES_INFO" => {
8356                Some(Self::AtomKeystore2KeyCreationWithPurposeAndModesInfo)
8357            }
8358            "ATOM_KEYSTORE2_ATOM_WITH_OVERFLOW" => {
8359                Some(Self::AtomKeystore2AtomWithOverflow)
8360            }
8361            "ATOM_KEYSTORE2_KEY_OPERATION_WITH_PURPOSE_AND_MODES_INFO" => {
8362                Some(Self::AtomKeystore2KeyOperationWithPurposeAndModesInfo)
8363            }
8364            "ATOM_KEYSTORE2_KEY_OPERATION_WITH_GENERAL_INFO" => {
8365                Some(Self::AtomKeystore2KeyOperationWithGeneralInfo)
8366            }
8367            "ATOM_RKP_ERROR_STATS" => Some(Self::AtomRkpErrorStats),
8368            "ATOM_KEYSTORE2_CRASH_STATS" => Some(Self::AtomKeystore2CrashStats),
8369            "ATOM_VENDOR_APEX_INFO" => Some(Self::AtomVendorApexInfo),
8370            "ATOM_ACCESSIBILITY_SHORTCUT_STATS" => {
8371                Some(Self::AtomAccessibilityShortcutStats)
8372            }
8373            "ATOM_ACCESSIBILITY_FLOATING_MENU_STATS" => {
8374                Some(Self::AtomAccessibilityFloatingMenuStats)
8375            }
8376            "ATOM_DATA_USAGE_BYTES_TRANSFER_V2" => {
8377                Some(Self::AtomDataUsageBytesTransferV2)
8378            }
8379            "ATOM_MEDIA_CAPABILITIES" => Some(Self::AtomMediaCapabilities),
8380            "ATOM_CAR_WATCHDOG_SYSTEM_IO_USAGE_SUMMARY" => {
8381                Some(Self::AtomCarWatchdogSystemIoUsageSummary)
8382            }
8383            "ATOM_CAR_WATCHDOG_UID_IO_USAGE_SUMMARY" => {
8384                Some(Self::AtomCarWatchdogUidIoUsageSummary)
8385            }
8386            "ATOM_IMS_REGISTRATION_FEATURE_TAG_STATS" => {
8387                Some(Self::AtomImsRegistrationFeatureTagStats)
8388            }
8389            "ATOM_RCS_CLIENT_PROVISIONING_STATS" => {
8390                Some(Self::AtomRcsClientProvisioningStats)
8391            }
8392            "ATOM_RCS_ACS_PROVISIONING_STATS" => Some(Self::AtomRcsAcsProvisioningStats),
8393            "ATOM_SIP_DELEGATE_STATS" => Some(Self::AtomSipDelegateStats),
8394            "ATOM_SIP_TRANSPORT_FEATURE_TAG_STATS" => {
8395                Some(Self::AtomSipTransportFeatureTagStats)
8396            }
8397            "ATOM_SIP_MESSAGE_RESPONSE" => Some(Self::AtomSipMessageResponse),
8398            "ATOM_SIP_TRANSPORT_SESSION" => Some(Self::AtomSipTransportSession),
8399            "ATOM_IMS_DEDICATED_BEARER_LISTENER_EVENT" => {
8400                Some(Self::AtomImsDedicatedBearerListenerEvent)
8401            }
8402            "ATOM_IMS_DEDICATED_BEARER_EVENT" => Some(Self::AtomImsDedicatedBearerEvent),
8403            "ATOM_IMS_REGISTRATION_SERVICE_DESC_STATS" => {
8404                Some(Self::AtomImsRegistrationServiceDescStats)
8405            }
8406            "ATOM_UCE_EVENT_STATS" => Some(Self::AtomUceEventStats),
8407            "ATOM_PRESENCE_NOTIFY_EVENT" => Some(Self::AtomPresenceNotifyEvent),
8408            "ATOM_GBA_EVENT" => Some(Self::AtomGbaEvent),
8409            "ATOM_PER_SIM_STATUS" => Some(Self::AtomPerSimStatus),
8410            "ATOM_GPU_WORK_PER_UID" => Some(Self::AtomGpuWorkPerUid),
8411            "ATOM_PERSISTENT_URI_PERMISSIONS_AMOUNT_PER_PACKAGE" => {
8412                Some(Self::AtomPersistentUriPermissionsAmountPerPackage)
8413            }
8414            "ATOM_SIGNED_PARTITION_INFO" => Some(Self::AtomSignedPartitionInfo),
8415            "ATOM_PINNED_FILE_SIZES_PER_PACKAGE" => {
8416                Some(Self::AtomPinnedFileSizesPerPackage)
8417            }
8418            "ATOM_PENDING_INTENTS_PER_PACKAGE" => {
8419                Some(Self::AtomPendingIntentsPerPackage)
8420            }
8421            "ATOM_USER_INFO" => Some(Self::AtomUserInfo),
8422            "ATOM_TELEPHONY_NETWORK_REQUESTS_V2" => {
8423                Some(Self::AtomTelephonyNetworkRequestsV2)
8424            }
8425            "ATOM_DEVICE_TELEPHONY_PROPERTIES" => {
8426                Some(Self::AtomDeviceTelephonyProperties)
8427            }
8428            "ATOM_REMOTE_KEY_PROVISIONING_ERROR_COUNTS" => {
8429                Some(Self::AtomRemoteKeyProvisioningErrorCounts)
8430            }
8431            "ATOM_SAFETY_STATE" => Some(Self::AtomSafetyState),
8432            "ATOM_INCOMING_MMS" => Some(Self::AtomIncomingMms),
8433            "ATOM_OUTGOING_MMS" => Some(Self::AtomOutgoingMms),
8434            "ATOM_MULTI_USER_INFO" => Some(Self::AtomMultiUserInfo),
8435            "ATOM_NETWORK_BPF_MAP_INFO" => Some(Self::AtomNetworkBpfMapInfo),
8436            "ATOM_OUTGOING_SHORT_CODE_SMS" => Some(Self::AtomOutgoingShortCodeSms),
8437            "ATOM_CONNECTIVITY_STATE_SAMPLE" => Some(Self::AtomConnectivityStateSample),
8438            "ATOM_NETWORK_SELECTION_REMATCH_REASONS_INFO" => {
8439                Some(Self::AtomNetworkSelectionRematchReasonsInfo)
8440            }
8441            "ATOM_GAME_MODE_INFO" => Some(Self::AtomGameModeInfo),
8442            "ATOM_GAME_MODE_CONFIGURATION" => Some(Self::AtomGameModeConfiguration),
8443            "ATOM_GAME_MODE_LISTENER" => Some(Self::AtomGameModeListener),
8444            "ATOM_NETWORK_SLICE_REQUEST_COUNT" => {
8445                Some(Self::AtomNetworkSliceRequestCount)
8446            }
8447            "ATOM_WS_TILE_SNAPSHOT" => Some(Self::AtomWsTileSnapshot),
8448            "ATOM_WS_ACTIVE_WATCH_FACE_COMPLICATION_SET_SNAPSHOT" => {
8449                Some(Self::AtomWsActiveWatchFaceComplicationSetSnapshot)
8450            }
8451            "ATOM_PROCESS_STATE" => Some(Self::AtomProcessState),
8452            "ATOM_PROCESS_ASSOCIATION" => Some(Self::AtomProcessAssociation),
8453            "ATOM_ADPF_SYSTEM_COMPONENT_INFO" => Some(Self::AtomAdpfSystemComponentInfo),
8454            "ATOM_NOTIFICATION_MEMORY_USE" => Some(Self::AtomNotificationMemoryUse),
8455            "ATOM_HDR_CAPABILITIES" => Some(Self::AtomHdrCapabilities),
8456            "ATOM_WS_FAVOURITE_WATCH_FACE_LIST_SNAPSHOT" => {
8457                Some(Self::AtomWsFavouriteWatchFaceListSnapshot)
8458            }
8459            "ATOM_WIFI_AWARE_NDP_REPORTED" => Some(Self::AtomWifiAwareNdpReported),
8460            "ATOM_WIFI_AWARE_ATTACH_REPORTED" => Some(Self::AtomWifiAwareAttachReported),
8461            "ATOM_WIFI_SELF_RECOVERY_TRIGGERED" => {
8462                Some(Self::AtomWifiSelfRecoveryTriggered)
8463            }
8464            "ATOM_SOFT_AP_STARTED" => Some(Self::AtomSoftApStarted),
8465            "ATOM_SOFT_AP_STOPPED" => Some(Self::AtomSoftApStopped),
8466            "ATOM_WIFI_LOCK_RELEASED" => Some(Self::AtomWifiLockReleased),
8467            "ATOM_WIFI_LOCK_DEACTIVATED" => Some(Self::AtomWifiLockDeactivated),
8468            "ATOM_WIFI_CONFIG_SAVED" => Some(Self::AtomWifiConfigSaved),
8469            "ATOM_WIFI_AWARE_RESOURCE_USING_CHANGED" => {
8470                Some(Self::AtomWifiAwareResourceUsingChanged)
8471            }
8472            "ATOM_WIFI_AWARE_HAL_API_CALLED" => Some(Self::AtomWifiAwareHalApiCalled),
8473            "ATOM_WIFI_LOCAL_ONLY_REQUEST_RECEIVED" => {
8474                Some(Self::AtomWifiLocalOnlyRequestReceived)
8475            }
8476            "ATOM_WIFI_LOCAL_ONLY_REQUEST_SCAN_TRIGGERED" => {
8477                Some(Self::AtomWifiLocalOnlyRequestScanTriggered)
8478            }
8479            "ATOM_WIFI_THREAD_TASK_EXECUTED" => Some(Self::AtomWifiThreadTaskExecuted),
8480            "ATOM_WIFI_STATE_CHANGED" => Some(Self::AtomWifiStateChanged),
8481            "ATOM_PNO_SCAN_STARTED" => Some(Self::AtomPnoScanStarted),
8482            "ATOM_PNO_SCAN_STOPPED" => Some(Self::AtomPnoScanStopped),
8483            "ATOM_WIFI_IS_UNUSABLE_REPORTED" => Some(Self::AtomWifiIsUnusableReported),
8484            "ATOM_WIFI_AP_CAPABILITIES_REPORTED" => {
8485                Some(Self::AtomWifiApCapabilitiesReported)
8486            }
8487            "ATOM_SOFT_AP_STATE_CHANGED" => Some(Self::AtomSoftApStateChanged),
8488            "ATOM_SCORER_PREDICTION_RESULT_REPORTED" => {
8489                Some(Self::AtomScorerPredictionResultReported)
8490            }
8491            "ATOM_WIFI_AWARE_CAPABILITIES" => Some(Self::AtomWifiAwareCapabilities),
8492            "ATOM_WIFI_MODULE_INFO" => Some(Self::AtomWifiModuleInfo),
8493            "ATOM_WIFI_SETTING_INFO" => Some(Self::AtomWifiSettingInfo),
8494            "ATOM_WIFI_COMPLEX_SETTING_INFO" => Some(Self::AtomWifiComplexSettingInfo),
8495            "ATOM_WIFI_CONFIGURED_NETWORK_INFO" => {
8496                Some(Self::AtomWifiConfiguredNetworkInfo)
8497            }
8498            "ATOM_WEAR_POWER_MENU_OPENED" => Some(Self::AtomWearPowerMenuOpened),
8499            "ATOM_WEAR_ASSISTANT_OPENED" => Some(Self::AtomWearAssistantOpened),
8500            "ATOM_FIRST_OVERLAY_STATE_CHANGED" => {
8501                Some(Self::AtomFirstOverlayStateChanged)
8502            }
8503            "ATOM_WS_WEAR_TIME_SESSION" => Some(Self::AtomWsWearTimeSession),
8504            "ATOM_WS_INCOMING_CALL_ACTION_REPORTED" => {
8505                Some(Self::AtomWsIncomingCallActionReported)
8506            }
8507            "ATOM_WS_CALL_DISCONNECTION_REPORTED" => {
8508                Some(Self::AtomWsCallDisconnectionReported)
8509            }
8510            "ATOM_WS_CALL_DURATION_REPORTED" => Some(Self::AtomWsCallDurationReported),
8511            "ATOM_WS_CALL_USER_EXPERIENCE_LATENCY_REPORTED" => {
8512                Some(Self::AtomWsCallUserExperienceLatencyReported)
8513            }
8514            "ATOM_WS_CALL_INTERACTION_REPORTED" => {
8515                Some(Self::AtomWsCallInteractionReported)
8516            }
8517            "ATOM_WS_ON_BODY_STATE_CHANGED" => Some(Self::AtomWsOnBodyStateChanged),
8518            "ATOM_WS_WATCH_FACE_RESTRICTED_COMPLICATIONS_IMPACTED" => {
8519                Some(Self::AtomWsWatchFaceRestrictedComplicationsImpacted)
8520            }
8521            "ATOM_WS_WATCH_FACE_DEFAULT_RESTRICTED_COMPLICATIONS_REMOVED" => {
8522                Some(Self::AtomWsWatchFaceDefaultRestrictedComplicationsRemoved)
8523            }
8524            "ATOM_WS_COMPLICATIONS_IMPACTED_NOTIFICATION_EVENT_REPORTED" => {
8525                Some(Self::AtomWsComplicationsImpactedNotificationEventReported)
8526            }
8527            "ATOM_WS_REMOTE_EVENT_USAGE_REPORTED" => {
8528                Some(Self::AtomWsRemoteEventUsageReported)
8529            }
8530            "ATOM_WS_NOTIFICATION_MANAGED_DISMISSAL_SYNC" => {
8531                Some(Self::AtomWsNotificationManagedDismissalSync)
8532            }
8533            "ATOM_WS_BUGREPORT_EVENT_REPORTED" => {
8534                Some(Self::AtomWsBugreportEventReported)
8535            }
8536            "ATOM_WS_STANDALONE_MODE_SNAPSHOT" => {
8537                Some(Self::AtomWsStandaloneModeSnapshot)
8538            }
8539            "ATOM_WS_FAVORITE_WATCH_FACE_SNAPSHOT" => {
8540                Some(Self::AtomWsFavoriteWatchFaceSnapshot)
8541            }
8542            "ATOM_WS_PHOTOS_WATCH_FACE_FEATURE_SNAPSHOT" => {
8543                Some(Self::AtomWsPhotosWatchFaceFeatureSnapshot)
8544            }
8545            "ATOM_WS_WATCH_FACE_CUSTOMIZATION_SNAPSHOT" => {
8546                Some(Self::AtomWsWatchFaceCustomizationSnapshot)
8547            }
8548            "ATOM_WEAR_ADAPTIVE_SUSPEND_STATS_REPORTED" => {
8549                Some(Self::AtomWearAdaptiveSuspendStatsReported)
8550            }
8551            "ATOM_WEAR_POWER_ANOMALY_SERVICE_OPERATIONAL_STATS_REPORTED" => {
8552                Some(Self::AtomWearPowerAnomalyServiceOperationalStatsReported)
8553            }
8554            "ATOM_WEAR_POWER_ANOMALY_SERVICE_EVENT_STATS_REPORTED" => {
8555                Some(Self::AtomWearPowerAnomalyServiceEventStatsReported)
8556            }
8557            "ATOM_WEAR_TIME_SYNC_REQUESTED" => Some(Self::AtomWearTimeSyncRequested),
8558            "ATOM_WEAR_TIME_UPDATE_STARTED" => Some(Self::AtomWearTimeUpdateStarted),
8559            "ATOM_WEAR_TIME_SYNC_ATTEMPT_COMPLETED" => {
8560                Some(Self::AtomWearTimeSyncAttemptCompleted)
8561            }
8562            "ATOM_WEAR_TIME_CHANGED" => Some(Self::AtomWearTimeChanged),
8563            "ATOM_WEAR_SETUP_WIZARD_DEVICE_STATUS_REPORTED" => {
8564                Some(Self::AtomWearSetupWizardDeviceStatusReported)
8565            }
8566            "ATOM_WEAR_SETUP_WIZARD_PAIRING_COMPLETED" => {
8567                Some(Self::AtomWearSetupWizardPairingCompleted)
8568            }
8569            "ATOM_WEAR_SETUP_WIZARD_CONNECTION_ESTABLISHED" => {
8570                Some(Self::AtomWearSetupWizardConnectionEstablished)
8571            }
8572            "ATOM_WEAR_SETUP_WIZARD_CHECKIN_COMPLETED" => {
8573                Some(Self::AtomWearSetupWizardCheckinCompleted)
8574            }
8575            "ATOM_WEAR_SETUP_WIZARD_COMPANION_TIME_REPORTED" => {
8576                Some(Self::AtomWearSetupWizardCompanionTimeReported)
8577            }
8578            "ATOM_WEAR_SETUP_WIZARD_STATUS_REPORTED" => {
8579                Some(Self::AtomWearSetupWizardStatusReported)
8580            }
8581            "ATOM_WEAR_SETUP_WIZARD_HEARTBEAT_REPORTED" => {
8582                Some(Self::AtomWearSetupWizardHeartbeatReported)
8583            }
8584            "ATOM_WEAR_SETUP_WIZARD_FRP_TRIGGERED" => {
8585                Some(Self::AtomWearSetupWizardFrpTriggered)
8586            }
8587            "ATOM_WEAR_SETUP_WIZARD_SYSTEM_UPDATE_TRIGGERED" => {
8588                Some(Self::AtomWearSetupWizardSystemUpdateTriggered)
8589            }
8590            "ATOM_WEAR_SETUP_WIZARD_PHONE_SWITCH_TRIGGERED" => {
8591                Some(Self::AtomWearSetupWizardPhoneSwitchTriggered)
8592            }
8593            "ATOM_RENDERER_INITIALIZED" => Some(Self::AtomRendererInitialized),
8594            "ATOM_SCHEMA_VERSION_RECEIVED" => Some(Self::AtomSchemaVersionReceived),
8595            "ATOM_LAYOUT_INSPECTED" => Some(Self::AtomLayoutInspected),
8596            "ATOM_LAYOUT_EXPRESSION_INSPECTED" => {
8597                Some(Self::AtomLayoutExpressionInspected)
8598            }
8599            "ATOM_LAYOUT_ANIMATIONS_INSPECTED" => {
8600                Some(Self::AtomLayoutAnimationsInspected)
8601            }
8602            "ATOM_MATERIAL_COMPONENTS_INSPECTED" => {
8603                Some(Self::AtomMaterialComponentsInspected)
8604            }
8605            "ATOM_TILE_REQUESTED" => Some(Self::AtomTileRequested),
8606            "ATOM_STATE_RESPONSE_RECEIVED" => Some(Self::AtomStateResponseReceived),
8607            "ATOM_TILE_RESPONSE_RECEIVED" => Some(Self::AtomTileResponseReceived),
8608            "ATOM_INFLATION_FINISHED" => Some(Self::AtomInflationFinished),
8609            "ATOM_INFLATION_FAILED" => Some(Self::AtomInflationFailed),
8610            "ATOM_IGNORED_INFLATION_FAILURES_REPORTED" => {
8611                Some(Self::AtomIgnoredInflationFailuresReported)
8612            }
8613            "ATOM_DRAWABLE_RENDERED" => Some(Self::AtomDrawableRendered),
8614            "ATOM_WEAR_MODE_STATE_CHANGED" => Some(Self::AtomWearModeStateChanged),
8615            "ATOM_MEDIA_ACTION_REPORTED" => Some(Self::AtomMediaActionReported),
8616            "ATOM_MEDIA_CONTROLS_LAUNCHED" => Some(Self::AtomMediaControlsLaunched),
8617            "ATOM_MEDIA_SESSION_STATE_CHANGED" => {
8618                Some(Self::AtomMediaSessionStateChanged)
8619            }
8620            "ATOM_MEDIA_CONTROL_API_USAGE_REPORTED" => {
8621                Some(Self::AtomMediaControlApiUsageReported)
8622            }
8623            "ATOM_MEDIA_SUBSCRIPTION_CHANGED" => Some(Self::AtomMediaSubscriptionChanged),
8624            "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_DEVICE_SCAN_API_LATENCY" => {
8625                Some(Self::AtomWearMediaOutputSwitcherDeviceScanApiLatency)
8626            }
8627            "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_SASS_DEVICE_UNAVAILABLE" => {
8628                Some(Self::AtomWearMediaOutputSwitcherSassDeviceUnavailable)
8629            }
8630            "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_FASTPAIR_API_TIMEOUT" => {
8631                Some(Self::AtomWearMediaOutputSwitcherFastpairApiTimeout)
8632            }
8633            "ATOM_MEDIATOR_UPDATED" => Some(Self::AtomMediatorUpdated),
8634            "ATOM_SYSPROXY_BLUETOOTH_BYTES_TRANSFER" => {
8635                Some(Self::AtomSysproxyBluetoothBytesTransfer)
8636            }
8637            "ATOM_SYSPROXY_CONNECTION_UPDATED" => {
8638                Some(Self::AtomSysproxyConnectionUpdated)
8639            }
8640            "ATOM_WEAR_COMPANION_CONNECTION_STATE" => {
8641                Some(Self::AtomWearCompanionConnectionState)
8642            }
8643            "ATOM_SYSPROXY_SERVICE_STATE_UPDATED" => {
8644                Some(Self::AtomSysproxyServiceStateUpdated)
8645            }
8646            "ATOM_UWB_ACTIVITY_INFO" => Some(Self::AtomUwbActivityInfo),
8647            "ATOM_TEST_UPROBESTATS_ATOM_REPORTED" => {
8648                Some(Self::AtomTestUprobestatsAtomReported)
8649            }
8650            "ATOM_TV_LOW_POWER_STANDBY_POLICY" => Some(Self::AtomTvLowPowerStandbyPolicy),
8651            "ATOM_EXTERNAL_TV_INPUT_EVENT" => Some(Self::AtomExternalTvInputEvent),
8652            "ATOM_BOOT_INTEGRITY_INFO_REPORTED" => {
8653                Some(Self::AtomBootIntegrityInfoReported)
8654            }
8655            "ATOM_THREADNETWORK_TELEMETRY_DATA_REPORTED" => {
8656                Some(Self::AtomThreadnetworkTelemetryDataReported)
8657            }
8658            "ATOM_THREADNETWORK_TOPO_ENTRY_REPEATED" => {
8659                Some(Self::AtomThreadnetworkTopoEntryRepeated)
8660            }
8661            "ATOM_THREADNETWORK_DEVICE_INFO_REPORTED" => {
8662                Some(Self::AtomThreadnetworkDeviceInfoReported)
8663            }
8664            "ATOM_CELLULAR_RADIO_POWER_STATE_CHANGED" => {
8665                Some(Self::AtomCellularRadioPowerStateChanged)
8666            }
8667            "ATOM_EMERGENCY_NUMBERS_INFO" => Some(Self::AtomEmergencyNumbersInfo),
8668            "ATOM_DATA_NETWORK_VALIDATION" => Some(Self::AtomDataNetworkValidation),
8669            "ATOM_DATA_RAT_STATE_CHANGED" => Some(Self::AtomDataRatStateChanged),
8670            "ATOM_CONNECTED_CHANNEL_CHANGED" => Some(Self::AtomConnectedChannelChanged),
8671            "ATOM_CELLULAR_IDENTIFIER_DISCLOSED" => {
8672                Some(Self::AtomCellularIdentifierDisclosed)
8673            }
8674            "ATOM_SATELLITE_CONTROLLER" => Some(Self::AtomSatelliteController),
8675            "ATOM_SATELLITE_SESSION" => Some(Self::AtomSatelliteSession),
8676            "ATOM_SATELLITE_INCOMING_DATAGRAM" => {
8677                Some(Self::AtomSatelliteIncomingDatagram)
8678            }
8679            "ATOM_SATELLITE_OUTGOING_DATAGRAM" => {
8680                Some(Self::AtomSatelliteOutgoingDatagram)
8681            }
8682            "ATOM_SATELLITE_PROVISION" => Some(Self::AtomSatelliteProvision),
8683            "ATOM_SATELLITE_SOS_MESSAGE_RECOMMENDER" => {
8684                Some(Self::AtomSatelliteSosMessageRecommender)
8685            }
8686            "ATOM_CARRIER_ROAMING_SATELLITE_SESSION" => {
8687                Some(Self::AtomCarrierRoamingSatelliteSession)
8688            }
8689            "ATOM_CARRIER_ROAMING_SATELLITE_CONTROLLER_STATS" => {
8690                Some(Self::AtomCarrierRoamingSatelliteControllerStats)
8691            }
8692            "ATOM_CONTROLLER_STATS_PER_PACKAGE" => {
8693                Some(Self::AtomControllerStatsPerPackage)
8694            }
8695            "ATOM_SATELLITE_ENTITLEMENT" => Some(Self::AtomSatelliteEntitlement),
8696            "ATOM_SATELLITE_CONFIG_UPDATER" => Some(Self::AtomSatelliteConfigUpdater),
8697            "ATOM_SATELLITE_ACCESS_CONTROLLER" => {
8698                Some(Self::AtomSatelliteAccessController)
8699            }
8700            "ATOM_QUALIFIED_RAT_LIST_CHANGED" => Some(Self::AtomQualifiedRatListChanged),
8701            "ATOM_QNS_IMS_CALL_DROP_STATS" => Some(Self::AtomQnsImsCallDropStats),
8702            "ATOM_QNS_FALLBACK_RESTRICTION_CHANGED" => {
8703                Some(Self::AtomQnsFallbackRestrictionChanged)
8704            }
8705            "ATOM_QNS_RAT_PREFERENCE_MISMATCH_INFO" => {
8706                Some(Self::AtomQnsRatPreferenceMismatchInfo)
8707            }
8708            "ATOM_QNS_HANDOVER_TIME_MILLIS" => Some(Self::AtomQnsHandoverTimeMillis),
8709            "ATOM_QNS_HANDOVER_PINGPONG" => Some(Self::AtomQnsHandoverPingpong),
8710            "ATOM_IWLAN_UNDERLYING_NETWORK_VALIDATION_RESULT_REPORTED" => {
8711                Some(Self::AtomIwlanUnderlyingNetworkValidationResultReported)
8712            }
8713            "ATOM_EMERGENCY_NUMBER_DIALED" => Some(Self::AtomEmergencyNumberDialed),
8714            "ATOM_CALL_STATS" => Some(Self::AtomCallStats),
8715            "ATOM_CALL_AUDIO_ROUTE_STATS" => Some(Self::AtomCallAudioRouteStats),
8716            "ATOM_TELECOM_API_STATS" => Some(Self::AtomTelecomApiStats),
8717            "ATOM_TELECOM_ERROR_STATS" => Some(Self::AtomTelecomErrorStats),
8718            "ATOM_LOCKSCREEN_SHORTCUT_SELECTED" => {
8719                Some(Self::AtomLockscreenShortcutSelected)
8720            }
8721            "ATOM_LOCKSCREEN_SHORTCUT_TRIGGERED" => {
8722                Some(Self::AtomLockscreenShortcutTriggered)
8723            }
8724            "ATOM_LAUNCHER_IMPRESSION_EVENT_V2" => {
8725                Some(Self::AtomLauncherImpressionEventV2)
8726            }
8727            "ATOM_DISPLAY_SWITCH_LATENCY_TRACKED" => {
8728                Some(Self::AtomDisplaySwitchLatencyTracked)
8729            }
8730            "ATOM_NOTIFICATION_LISTENER_SERVICE" => {
8731                Some(Self::AtomNotificationListenerService)
8732            }
8733            "ATOM_NAV_HANDLE_TOUCH_POINTS" => Some(Self::AtomNavHandleTouchPoints),
8734            "ATOM_COMMUNAL_HUB_WIDGET_EVENT_REPORTED" => {
8735                Some(Self::AtomCommunalHubWidgetEventReported)
8736            }
8737            "ATOM_PERIPHERAL_TUTORIAL_LAUNCHED" => {
8738                Some(Self::AtomPeripheralTutorialLaunched)
8739            }
8740            "ATOM_CONTEXTUAL_EDUCATION_TRIGGERED" => {
8741                Some(Self::AtomContextualEducationTriggered)
8742            }
8743            "ATOM_COMMUNAL_HUB_SNAPSHOT" => Some(Self::AtomCommunalHubSnapshot),
8744            "ATOM_TEST_EXTENSION_ATOM_REPORTED" => {
8745                Some(Self::AtomTestExtensionAtomReported)
8746            }
8747            "ATOM_TEST_RESTRICTED_ATOM_REPORTED" => {
8748                Some(Self::AtomTestRestrictedAtomReported)
8749            }
8750            "ATOM_STATS_SOCKET_LOSS_REPORTED" => Some(Self::AtomStatsSocketLossReported),
8751            "ATOM_SETTINGS_SPA_REPORTED" => Some(Self::AtomSettingsSpaReported),
8752            "ATOM_SELINUX_AUDIT_LOG" => Some(Self::AtomSelinuxAuditLog),
8753            "ATOM_SANDBOX_API_CALLED" => Some(Self::AtomSandboxApiCalled),
8754            "ATOM_SANDBOX_ACTIVITY_EVENT_OCCURRED" => {
8755                Some(Self::AtomSandboxActivityEventOccurred)
8756            }
8757            "ATOM_SDK_SANDBOX_RESTRICTED_ACCESS_IN_SESSION" => {
8758                Some(Self::AtomSdkSandboxRestrictedAccessInSession)
8759            }
8760            "ATOM_SANDBOX_SDK_STORAGE" => Some(Self::AtomSandboxSdkStorage),
8761            "ATOM_RKPD_POOL_STATS" => Some(Self::AtomRkpdPoolStats),
8762            "ATOM_RKPD_CLIENT_OPERATION" => Some(Self::AtomRkpdClientOperation),
8763            "ATOM_RANGING_SESSION_CONFIGURED" => Some(Self::AtomRangingSessionConfigured),
8764            "ATOM_RANGING_SESSION_STARTED" => Some(Self::AtomRangingSessionStarted),
8765            "ATOM_RANGING_SESSION_CLOSED" => Some(Self::AtomRangingSessionClosed),
8766            "ATOM_RANGING_TECHNOLOGY_STARTED" => Some(Self::AtomRangingTechnologyStarted),
8767            "ATOM_RANGING_TECHNOLOGY_STOPPED" => Some(Self::AtomRangingTechnologyStopped),
8768            "ATOM_MEDIA_PROVIDER_DATABASE_ROLLBACK_REPORTED" => {
8769                Some(Self::AtomMediaProviderDatabaseRollbackReported)
8770            }
8771            "ATOM_BACKUP_SETUP_STATUS_REPORTED" => {
8772                Some(Self::AtomBackupSetupStatusReported)
8773            }
8774            "ATOM_SCREEN_OFF_REPORTED" => Some(Self::AtomScreenOffReported),
8775            "ATOM_SCREEN_TIMEOUT_OVERRIDE_REPORTED" => {
8776                Some(Self::AtomScreenTimeoutOverrideReported)
8777            }
8778            "ATOM_SCREEN_INTERACTIVE_SESSION_REPORTED" => {
8779                Some(Self::AtomScreenInteractiveSessionReported)
8780            }
8781            "ATOM_SCREEN_DIM_REPORTED" => Some(Self::AtomScreenDimReported),
8782            "ATOM_ATOM_9999" => Some(Self::AtomAtom9999),
8783            "ATOM_ATOM_99999" => Some(Self::AtomAtom99999),
8784            "ATOM_PHOTOPICKER_SESSION_INFO_REPORTED" => {
8785                Some(Self::AtomPhotopickerSessionInfoReported)
8786            }
8787            "ATOM_PHOTOPICKER_API_INFO_REPORTED" => {
8788                Some(Self::AtomPhotopickerApiInfoReported)
8789            }
8790            "ATOM_PHOTOPICKER_UI_EVENT_LOGGED" => {
8791                Some(Self::AtomPhotopickerUiEventLogged)
8792            }
8793            "ATOM_PHOTOPICKER_MEDIA_ITEM_STATUS_REPORTED" => {
8794                Some(Self::AtomPhotopickerMediaItemStatusReported)
8795            }
8796            "ATOM_PHOTOPICKER_PREVIEW_INFO_LOGGED" => {
8797                Some(Self::AtomPhotopickerPreviewInfoLogged)
8798            }
8799            "ATOM_PHOTOPICKER_MENU_INTERACTION_LOGGED" => {
8800                Some(Self::AtomPhotopickerMenuInteractionLogged)
8801            }
8802            "ATOM_PHOTOPICKER_BANNER_INTERACTION_LOGGED" => {
8803                Some(Self::AtomPhotopickerBannerInteractionLogged)
8804            }
8805            "ATOM_PHOTOPICKER_MEDIA_LIBRARY_INFO_LOGGED" => {
8806                Some(Self::AtomPhotopickerMediaLibraryInfoLogged)
8807            }
8808            "ATOM_PHOTOPICKER_PAGE_INFO_LOGGED" => {
8809                Some(Self::AtomPhotopickerPageInfoLogged)
8810            }
8811            "ATOM_PHOTOPICKER_MEDIA_GRID_SYNC_INFO_REPORTED" => {
8812                Some(Self::AtomPhotopickerMediaGridSyncInfoReported)
8813            }
8814            "ATOM_PHOTOPICKER_ALBUM_SYNC_INFO_REPORTED" => {
8815                Some(Self::AtomPhotopickerAlbumSyncInfoReported)
8816            }
8817            "ATOM_PHOTOPICKER_SEARCH_INFO_REPORTED" => {
8818                Some(Self::AtomPhotopickerSearchInfoReported)
8819            }
8820            "ATOM_SEARCH_DATA_EXTRACTION_DETAILS_REPORTED" => {
8821                Some(Self::AtomSearchDataExtractionDetailsReported)
8822            }
8823            "ATOM_EMBEDDED_PHOTOPICKER_INFO_REPORTED" => {
8824                Some(Self::AtomEmbeddedPhotopickerInfoReported)
8825            }
8826            "ATOM_PERMISSION_RATIONALE_DIALOG_VIEWED" => {
8827                Some(Self::AtomPermissionRationaleDialogViewed)
8828            }
8829            "ATOM_PERMISSION_RATIONALE_DIALOG_ACTION_REPORTED" => {
8830                Some(Self::AtomPermissionRationaleDialogActionReported)
8831            }
8832            "ATOM_APP_DATA_SHARING_UPDATES_NOTIFICATION_INTERACTION" => {
8833                Some(Self::AtomAppDataSharingUpdatesNotificationInteraction)
8834            }
8835            "ATOM_APP_DATA_SHARING_UPDATES_FRAGMENT_VIEWED" => {
8836                Some(Self::AtomAppDataSharingUpdatesFragmentViewed)
8837            }
8838            "ATOM_APP_DATA_SHARING_UPDATES_FRAGMENT_ACTION_REPORTED" => {
8839                Some(Self::AtomAppDataSharingUpdatesFragmentActionReported)
8840            }
8841            "ATOM_ENHANCED_CONFIRMATION_DIALOG_RESULT_REPORTED" => {
8842                Some(Self::AtomEnhancedConfirmationDialogResultReported)
8843            }
8844            "ATOM_ENHANCED_CONFIRMATION_RESTRICTION_CLEARED" => {
8845                Some(Self::AtomEnhancedConfirmationRestrictionCleared)
8846            }
8847            "ATOM_PRESSURE_STALL_INFORMATION" => Some(Self::AtomPressureStallInformation),
8848            "ATOM_PDF_LOAD_REPORTED" => Some(Self::AtomPdfLoadReported),
8849            "ATOM_PDF_API_USAGE_REPORTED" => Some(Self::AtomPdfApiUsageReported),
8850            "ATOM_PDF_SEARCH_REPORTED" => Some(Self::AtomPdfSearchReported),
8851            "ATOM_COMPONENT_STATE_CHANGED_REPORTED" => {
8852                Some(Self::AtomComponentStateChangedReported)
8853            }
8854            "ATOM_ONDEVICEPERSONALIZATION_API_CALLED" => {
8855                Some(Self::AtomOndevicepersonalizationApiCalled)
8856            }
8857            "ATOM_ONDEVICEPERSONALIZATION_TRACE_EVENT" => {
8858                Some(Self::AtomOndevicepersonalizationTraceEvent)
8859            }
8860            "ATOM_NFC_OBSERVE_MODE_STATE_CHANGED" => {
8861                Some(Self::AtomNfcObserveModeStateChanged)
8862            }
8863            "ATOM_NFC_FIELD_CHANGED" => Some(Self::AtomNfcFieldChanged),
8864            "ATOM_NFC_POLLING_LOOP_NOTIFICATION_REPORTED" => {
8865                Some(Self::AtomNfcPollingLoopNotificationReported)
8866            }
8867            "ATOM_NFC_PROPRIETARY_CAPABILITIES_REPORTED" => {
8868                Some(Self::AtomNfcProprietaryCapabilitiesReported)
8869            }
8870            "ATOM_NFC_EXIT_FRAME_TABLE_CHANGED" => {
8871                Some(Self::AtomNfcExitFrameTableChanged)
8872            }
8873            "ATOM_NFC_AUTO_TRANSACT_REPORTED" => Some(Self::AtomNfcAutoTransactReported),
8874            "ATOM_MICROXR_DEVICE_BOOT_COMPLETE_REPORTED" => {
8875                Some(Self::AtomMicroxrDeviceBootCompleteReported)
8876            }
8877            "ATOM_MTE_STATE" => Some(Self::AtomMteState),
8878            "ATOM_ZRAM_MAINTENANCE_EXECUTED" => Some(Self::AtomZramMaintenanceExecuted),
8879            "ATOM_ZRAM_SETUP_EXECUTED" => Some(Self::AtomZramSetupExecuted),
8880            "ATOM_ZRAM_MM_STAT_MMD" => Some(Self::AtomZramMmStatMmd),
8881            "ATOM_ZRAM_BD_STAT_MMD" => Some(Self::AtomZramBdStatMmd),
8882            "ATOM_MEDIA_EDITING_ENDED_REPORTED" => {
8883                Some(Self::AtomMediaEditingEndedReported)
8884            }
8885            "ATOM_MEDIA_CODEC_RECLAIM_REQUEST_COMPLETED" => {
8886                Some(Self::AtomMediaCodecReclaimRequestCompleted)
8887            }
8888            "ATOM_MEDIA_CODEC_STARTED" => Some(Self::AtomMediaCodecStarted),
8889            "ATOM_MEDIA_CODEC_STOPPED" => Some(Self::AtomMediaCodecStopped),
8890            "ATOM_MEDIA_CODEC_RENDERED" => Some(Self::AtomMediaCodecRendered),
8891            "ATOM_EMERGENCY_STATE_CHANGED" => Some(Self::AtomEmergencyStateChanged),
8892            "ATOM_CHRE_SIGNIFICANT_MOTION_STATE_CHANGED" => {
8893                Some(Self::AtomChreSignificantMotionStateChanged)
8894            }
8895            "ATOM_POPULATION_DENSITY_PROVIDER_LOADING_REPORTED" => {
8896                Some(Self::AtomPopulationDensityProviderLoadingReported)
8897            }
8898            "ATOM_DENSITY_BASED_COARSE_LOCATIONS_USAGE_REPORTED" => {
8899                Some(Self::AtomDensityBasedCoarseLocationsUsageReported)
8900            }
8901            "ATOM_DENSITY_BASED_COARSE_LOCATIONS_PROVIDER_QUERY_REPORTED" => {
8902                Some(Self::AtomDensityBasedCoarseLocationsProviderQueryReported)
8903            }
8904            "ATOM_KERNEL_OOM_KILL_OCCURRED" => Some(Self::AtomKernelOomKillOccurred),
8905            "ATOM_KEYBOARD_CONFIGURED" => Some(Self::AtomKeyboardConfigured),
8906            "ATOM_KEYBOARD_SYSTEMS_EVENT_REPORTED" => {
8907                Some(Self::AtomKeyboardSystemsEventReported)
8908            }
8909            "ATOM_INPUTDEVICE_USAGE_REPORTED" => Some(Self::AtomInputdeviceUsageReported),
8910            "ATOM_INPUT_EVENT_LATENCY_REPORTED" => {
8911                Some(Self::AtomInputEventLatencyReported)
8912            }
8913            "ATOM_TOUCHPAD_USAGE" => Some(Self::AtomTouchpadUsage),
8914            "ATOM_IKE_SESSION_TERMINATED" => Some(Self::AtomIkeSessionTerminated),
8915            "ATOM_IKE_LIVENESS_CHECK_SESSION_VALIDATED" => {
8916                Some(Self::AtomIkeLivenessCheckSessionValidated)
8917            }
8918            "ATOM_NEGOTIATED_SECURITY_ASSOCIATION" => {
8919                Some(Self::AtomNegotiatedSecurityAssociation)
8920            }
8921            "ATOM_HOTWORD_EGRESS_SIZE_ATOM_REPORTED" => {
8922                Some(Self::AtomHotwordEgressSizeAtomReported)
8923            }
8924            "ATOM_HEALTH_CONNECT_UI_IMPRESSION" => {
8925                Some(Self::AtomHealthConnectUiImpression)
8926            }
8927            "ATOM_HEALTH_CONNECT_UI_INTERACTION" => {
8928                Some(Self::AtomHealthConnectUiInteraction)
8929            }
8930            "ATOM_HEALTH_CONNECT_APP_OPENED_REPORTED" => {
8931                Some(Self::AtomHealthConnectAppOpenedReported)
8932            }
8933            "ATOM_HEALTH_CONNECT_API_CALLED" => Some(Self::AtomHealthConnectApiCalled),
8934            "ATOM_HEALTH_CONNECT_USAGE_STATS" => Some(Self::AtomHealthConnectUsageStats),
8935            "ATOM_HEALTH_CONNECT_STORAGE_STATS" => {
8936                Some(Self::AtomHealthConnectStorageStats)
8937            }
8938            "ATOM_HEALTH_CONNECT_API_INVOKED" => Some(Self::AtomHealthConnectApiInvoked),
8939            "ATOM_EXERCISE_ROUTE_API_CALLED" => Some(Self::AtomExerciseRouteApiCalled),
8940            "ATOM_HEALTH_CONNECT_EXPORT_INVOKED" => {
8941                Some(Self::AtomHealthConnectExportInvoked)
8942            }
8943            "ATOM_HEALTH_CONNECT_IMPORT_INVOKED" => {
8944                Some(Self::AtomHealthConnectImportInvoked)
8945            }
8946            "ATOM_HEALTH_CONNECT_EXPORT_IMPORT_STATS_REPORTED" => {
8947                Some(Self::AtomHealthConnectExportImportStatsReported)
8948            }
8949            "ATOM_HEALTH_CONNECT_PERMISSION_STATS" => {
8950                Some(Self::AtomHealthConnectPermissionStats)
8951            }
8952            "ATOM_HEALTH_CONNECT_PHR_API_INVOKED" => {
8953                Some(Self::AtomHealthConnectPhrApiInvoked)
8954            }
8955            "ATOM_HEALTH_CONNECT_PHR_USAGE_STATS" => {
8956                Some(Self::AtomHealthConnectPhrUsageStats)
8957            }
8958            "ATOM_HEALTH_CONNECT_PHR_STORAGE_STATS" => {
8959                Some(Self::AtomHealthConnectPhrStorageStats)
8960            }
8961            "ATOM_HEALTH_CONNECT_RESTRICTED_ECOSYSTEM_STATS" => {
8962                Some(Self::AtomHealthConnectRestrictedEcosystemStats)
8963            }
8964            "ATOM_HEALTH_CONNECT_ECOSYSTEM_STATS" => {
8965                Some(Self::AtomHealthConnectEcosystemStats)
8966            }
8967            "ATOM_HDMI_EARC_STATUS_REPORTED" => Some(Self::AtomHdmiEarcStatusReported),
8968            "ATOM_HDMI_SOUNDBAR_MODE_STATUS_REPORTED" => {
8969                Some(Self::AtomHdmiSoundbarModeStatusReported)
8970            }
8971            "ATOM_HDMI_POWER_STATE_CHANGE_ON_ACTIVE_SOURCE_LOST_TOGGLED" => {
8972                Some(Self::AtomHdmiPowerStateChangeOnActiveSourceLostToggled)
8973            }
8974            "ATOM_BATTERY_HEALTH" => Some(Self::AtomBatteryHealth),
8975            "ATOM_BIOMETRIC_UNENROLLED" => Some(Self::AtomBiometricUnenrolled),
8976            "ATOM_BIOMETRIC_ENUMERATED" => Some(Self::AtomBiometricEnumerated),
8977            "ATOM_APPLICATION_GRAMMATICAL_INFLECTION_CHANGED" => {
8978                Some(Self::AtomApplicationGrammaticalInflectionChanged)
8979            }
8980            "ATOM_SYSTEM_GRAMMATICAL_INFLECTION_CHANGED" => {
8981                Some(Self::AtomSystemGrammaticalInflectionChanged)
8982            }
8983            "ATOM_FULL_SCREEN_INTENT_LAUNCHED" => {
8984                Some(Self::AtomFullScreenIntentLaunched)
8985            }
8986            "ATOM_BAL_ALLOWED" => Some(Self::AtomBalAllowed),
8987            "ATOM_IN_TASK_ACTIVITY_STARTED" => Some(Self::AtomInTaskActivityStarted),
8988            "ATOM_DEVICE_ORIENTATION_CHANGED" => Some(Self::AtomDeviceOrientationChanged),
8989            "ATOM_CACHED_APPS_HIGH_WATERMARK" => Some(Self::AtomCachedAppsHighWatermark),
8990            "ATOM_STYLUS_PREDICTION_METRICS_REPORTED" => {
8991                Some(Self::AtomStylusPredictionMetricsReported)
8992            }
8993            "ATOM_USER_RISK_EVENT_REPORTED" => Some(Self::AtomUserRiskEventReported),
8994            "ATOM_MEDIA_PROJECTION_STATE_CHANGED" => {
8995                Some(Self::AtomMediaProjectionStateChanged)
8996            }
8997            "ATOM_MEDIA_PROJECTION_TARGET_CHANGED" => {
8998                Some(Self::AtomMediaProjectionTargetChanged)
8999            }
9000            "ATOM_EXCESSIVE_BINDER_PROXY_COUNT_REPORTED" => {
9001                Some(Self::AtomExcessiveBinderProxyCountReported)
9002            }
9003            "ATOM_PROXY_BYTES_TRANSFER_BY_FG_BG" => {
9004                Some(Self::AtomProxyBytesTransferByFgBg)
9005            }
9006            "ATOM_MOBILE_BYTES_TRANSFER_BY_PROC_STATE" => {
9007                Some(Self::AtomMobileBytesTransferByProcState)
9008            }
9009            "ATOM_BIOMETRIC_FRR_NOTIFICATION" => Some(Self::AtomBiometricFrrNotification),
9010            "ATOM_SENSITIVE_CONTENT_MEDIA_PROJECTION_SESSION" => {
9011                Some(Self::AtomSensitiveContentMediaProjectionSession)
9012            }
9013            "ATOM_SENSITIVE_NOTIFICATION_APP_PROTECTION_SESSION" => {
9014                Some(Self::AtomSensitiveNotificationAppProtectionSession)
9015            }
9016            "ATOM_SENSITIVE_NOTIFICATION_APP_PROTECTION_APPLIED" => {
9017                Some(Self::AtomSensitiveNotificationAppProtectionApplied)
9018            }
9019            "ATOM_SENSITIVE_NOTIFICATION_REDACTION" => {
9020                Some(Self::AtomSensitiveNotificationRedaction)
9021            }
9022            "ATOM_SENSITIVE_CONTENT_APP_PROTECTION" => {
9023                Some(Self::AtomSensitiveContentAppProtection)
9024            }
9025            "ATOM_APP_RESTRICTION_STATE_CHANGED" => {
9026                Some(Self::AtomAppRestrictionStateChanged)
9027            }
9028            "ATOM_BATTERY_USAGE_STATS_PER_UID" => Some(Self::AtomBatteryUsageStatsPerUid),
9029            "ATOM_POSTGC_MEMORY_SNAPSHOT" => Some(Self::AtomPostgcMemorySnapshot),
9030            "ATOM_POWER_SAVE_TEMP_ALLOWLIST_CHANGED" => {
9031                Some(Self::AtomPowerSaveTempAllowlistChanged)
9032            }
9033            "ATOM_APP_OP_ACCESS_TRACKED" => Some(Self::AtomAppOpAccessTracked),
9034            "ATOM_CONTENT_OR_FILE_URI_EVENT_REPORTED" => {
9035                Some(Self::AtomContentOrFileUriEventReported)
9036            }
9037            "ATOM_DEVICE_IDLE_TEMP_ALLOWLIST_UPDATED" => {
9038                Some(Self::AtomDeviceIdleTempAllowlistUpdated)
9039            }
9040            "ATOM_APP_OP_NOTE_OP_OR_CHECK_OP_BINDER_API_CALLED" => {
9041                Some(Self::AtomAppOpNoteOpOrCheckOpBinderApiCalled)
9042            }
9043            "ATOM_FRAMEWORK_WAKELOCK_INFO" => Some(Self::AtomFrameworkWakelockInfo),
9044            "ATOM_JANK_FRAME_COUNT_BY_WIDGET_REPORTED" => {
9045                Some(Self::AtomJankFrameCountByWidgetReported)
9046            }
9047            "ATOM_INTENT_CREATOR_TOKEN_ADDED" => Some(Self::AtomIntentCreatorTokenAdded),
9048            "ATOM_NOTIFICATION_CHANNEL_CLASSIFICATION" => {
9049                Some(Self::AtomNotificationChannelClassification)
9050            }
9051            "ATOM_CAMERA_STATUS_FOR_COMPATIBILITY_CHANGED" => {
9052                Some(Self::AtomCameraStatusForCompatibilityChanged)
9053            }
9054            "ATOM_FEDERATED_COMPUTE_API_CALLED" => {
9055                Some(Self::AtomFederatedComputeApiCalled)
9056            }
9057            "ATOM_FEDERATED_COMPUTE_TRAINING_EVENT_REPORTED" => {
9058                Some(Self::AtomFederatedComputeTrainingEventReported)
9059            }
9060            "ATOM_EXAMPLE_ITERATOR_NEXT_LATENCY_REPORTED" => {
9061                Some(Self::AtomExampleIteratorNextLatencyReported)
9062            }
9063            "ATOM_FEDERATED_COMPUTE_TRACE_EVENT_REPORTED" => {
9064                Some(Self::AtomFederatedComputeTraceEventReported)
9065            }
9066            "ATOM_EXPRESS_EVENT_REPORTED" => Some(Self::AtomExpressEventReported),
9067            "ATOM_EXPRESS_HISTOGRAM_SAMPLE_REPORTED" => {
9068                Some(Self::AtomExpressHistogramSampleReported)
9069            }
9070            "ATOM_EXPRESS_UID_EVENT_REPORTED" => Some(Self::AtomExpressUidEventReported),
9071            "ATOM_EXPRESS_UID_HISTOGRAM_SAMPLE_REPORTED" => {
9072                Some(Self::AtomExpressUidHistogramSampleReported)
9073            }
9074            "ATOM_DREAM_SETTING_CHANGED" => Some(Self::AtomDreamSettingChanged),
9075            "ATOM_DREAM_SETTING_SNAPSHOT" => Some(Self::AtomDreamSettingSnapshot),
9076            "ATOM_DND_STATE_CHANGED" => Some(Self::AtomDndStateChanged),
9077            "ATOM_EXTERNAL_DISPLAY_STATE_CHANGED" => {
9078                Some(Self::AtomExternalDisplayStateChanged)
9079            }
9080            "ATOM_DISPLAY_MODE_DIRECTOR_VOTE_CHANGED" => {
9081                Some(Self::AtomDisplayModeDirectorVoteChanged)
9082            }
9083            "ATOM_DEVICE_POLICY_MANAGEMENT_MODE" => {
9084                Some(Self::AtomDevicePolicyManagementMode)
9085            }
9086            "ATOM_DEVICE_POLICY_STATE" => Some(Self::AtomDevicePolicyState),
9087            "ATOM_DEVICE_LOCK_CHECK_IN_REQUEST_REPORTED" => {
9088                Some(Self::AtomDeviceLockCheckInRequestReported)
9089            }
9090            "ATOM_DEVICE_LOCK_PROVISIONING_COMPLETE_REPORTED" => {
9091                Some(Self::AtomDeviceLockProvisioningCompleteReported)
9092            }
9093            "ATOM_DEVICE_LOCK_KIOSK_APP_REQUEST_REPORTED" => {
9094                Some(Self::AtomDeviceLockKioskAppRequestReported)
9095            }
9096            "ATOM_DEVICE_LOCK_CHECK_IN_RETRY_REPORTED" => {
9097                Some(Self::AtomDeviceLockCheckInRetryReported)
9098            }
9099            "ATOM_DEVICE_LOCK_PROVISION_FAILURE_REPORTED" => {
9100                Some(Self::AtomDeviceLockProvisionFailureReported)
9101            }
9102            "ATOM_DEVICE_LOCK_LOCK_UNLOCK_DEVICE_FAILURE_REPORTED" => {
9103                Some(Self::AtomDeviceLockLockUnlockDeviceFailureReported)
9104            }
9105            "ATOM_DESKTOP_MODE_UI_CHANGED" => Some(Self::AtomDesktopModeUiChanged),
9106            "ATOM_DESKTOP_MODE_SESSION_TASK_UPDATE" => {
9107                Some(Self::AtomDesktopModeSessionTaskUpdate)
9108            }
9109            "ATOM_DESKTOP_MODE_TASK_SIZE_UPDATED" => {
9110                Some(Self::AtomDesktopModeTaskSizeUpdated)
9111            }
9112            "ATOM_CRONET_ENGINE_CREATED" => Some(Self::AtomCronetEngineCreated),
9113            "ATOM_CRONET_TRAFFIC_REPORTED" => Some(Self::AtomCronetTrafficReported),
9114            "ATOM_CRONET_ENGINE_BUILDER_INITIALIZED" => {
9115                Some(Self::AtomCronetEngineBuilderInitialized)
9116            }
9117            "ATOM_CRONET_HTTP_FLAGS_INITIALIZED" => {
9118                Some(Self::AtomCronetHttpFlagsInitialized)
9119            }
9120            "ATOM_CRONET_INITIALIZED" => Some(Self::AtomCronetInitialized),
9121            "ATOM_CREDENTIAL_MANAGER_API_CALLED" => {
9122                Some(Self::AtomCredentialManagerApiCalled)
9123            }
9124            "ATOM_CREDENTIAL_MANAGER_INIT_PHASE_REPORTED" => {
9125                Some(Self::AtomCredentialManagerInitPhaseReported)
9126            }
9127            "ATOM_CREDENTIAL_MANAGER_CANDIDATE_PHASE_REPORTED" => {
9128                Some(Self::AtomCredentialManagerCandidatePhaseReported)
9129            }
9130            "ATOM_CREDENTIAL_MANAGER_FINAL_PHASE_REPORTED" => {
9131                Some(Self::AtomCredentialManagerFinalPhaseReported)
9132            }
9133            "ATOM_CREDENTIAL_MANAGER_TOTAL_REPORTED" => {
9134                Some(Self::AtomCredentialManagerTotalReported)
9135            }
9136            "ATOM_CREDENTIAL_MANAGER_FINALNOUID_REPORTED" => {
9137                Some(Self::AtomCredentialManagerFinalnouidReported)
9138            }
9139            "ATOM_CREDENTIAL_MANAGER_GET_REPORTED" => {
9140                Some(Self::AtomCredentialManagerGetReported)
9141            }
9142            "ATOM_CREDENTIAL_MANAGER_AUTH_CLICK_REPORTED" => {
9143                Some(Self::AtomCredentialManagerAuthClickReported)
9144            }
9145            "ATOM_CREDENTIAL_MANAGER_APIV2_CALLED" => {
9146                Some(Self::AtomCredentialManagerApiv2Called)
9147            }
9148            "ATOM_CPU_POLICY" => Some(Self::AtomCpuPolicy),
9149            "ATOM_VPN_CONNECTION_STATE_CHANGED" => {
9150                Some(Self::AtomVpnConnectionStateChanged)
9151            }
9152            "ATOM_VPN_CONNECTION_REPORTED" => Some(Self::AtomVpnConnectionReported),
9153            "ATOM_IP_CLIENT_RA_INFO_REPORTED" => Some(Self::AtomIpClientRaInfoReported),
9154            "ATOM_APF_SESSION_INFO_REPORTED" => Some(Self::AtomApfSessionInfoReported),
9155            "ATOM_CORE_NETWORKING_TERRIBLE_ERROR_OCCURRED" => {
9156                Some(Self::AtomCoreNetworkingTerribleErrorOccurred)
9157            }
9158            "ATOM_NETWORK_STATS_RECORDER_FILE_OPERATED" => {
9159                Some(Self::AtomNetworkStatsRecorderFileOperated)
9160            }
9161            "ATOM_DAILY_KEEPALIVE_INFO_REPORTED" => {
9162                Some(Self::AtomDailyKeepaliveInfoReported)
9163            }
9164            "ATOM_NETWORK_REQUEST_STATE_CHANGED" => {
9165                Some(Self::AtomNetworkRequestStateChanged)
9166            }
9167            "ATOM_TETHERING_ACTIVE_SESSIONS_REPORTED" => {
9168                Some(Self::AtomTetheringActiveSessionsReported)
9169            }
9170            "ATOM_CERTIFICATE_TRANSPARENCY_LOG_LIST_UPDATE_STATE_CHANGED" => {
9171                Some(Self::AtomCertificateTransparencyLogListUpdateStateChanged)
9172            }
9173            "ATOM_HARDWARE_RENDERER_EVENT" => Some(Self::AtomHardwareRendererEvent),
9174            "ATOM_TEXTURE_VIEW_EVENT" => Some(Self::AtomTextureViewEvent),
9175            "ATOM_SURFACE_CONTROL_EVENT" => Some(Self::AtomSurfaceControlEvent),
9176            "ATOM_IMAGE_DECODED" => Some(Self::AtomImageDecoded),
9177            "ATOM_CERTIFICATE_TRANSPARENCY_LOG_LIST_STATE_CHANGED" => {
9178                Some(Self::AtomCertificateTransparencyLogListStateChanged)
9179            }
9180            "ATOM_CONSCRYPT_SERVICE_USED" => Some(Self::AtomConscryptServiceUsed),
9181            "ATOM_CERTIFICATE_TRANSPARENCY_VERIFICATION_REPORTED" => {
9182                Some(Self::AtomCertificateTransparencyVerificationReported)
9183            }
9184            "ATOM_CAMERA_FEATURE_COMBINATION_QUERY_EVENT" => {
9185                Some(Self::AtomCameraFeatureCombinationQueryEvent)
9186            }
9187            "ATOM_BROADCAST_SENT" => Some(Self::AtomBroadcastSent),
9188            "ATOM_BLUETOOTH_HASHED_DEVICE_NAME_REPORTED" => {
9189                Some(Self::AtomBluetoothHashedDeviceNameReported)
9190            }
9191            "ATOM_BLUETOOTH_L2CAP_COC_CLIENT_CONNECTION" => {
9192                Some(Self::AtomBluetoothL2capCocClientConnection)
9193            }
9194            "ATOM_BLUETOOTH_L2CAP_COC_SERVER_CONNECTION" => {
9195                Some(Self::AtomBluetoothL2capCocServerConnection)
9196            }
9197            "ATOM_BLUETOOTH_LE_SESSION_CONNECTED" => {
9198                Some(Self::AtomBluetoothLeSessionConnected)
9199            }
9200            "ATOM_RESTRICTED_BLUETOOTH_DEVICE_NAME_REPORTED" => {
9201                Some(Self::AtomRestrictedBluetoothDeviceNameReported)
9202            }
9203            "ATOM_BLUETOOTH_PROFILE_CONNECTION_ATTEMPTED" => {
9204                Some(Self::AtomBluetoothProfileConnectionAttempted)
9205            }
9206            "ATOM_BLUETOOTH_CONTENT_PROFILE_ERROR_REPORTED" => {
9207                Some(Self::AtomBluetoothContentProfileErrorReported)
9208            }
9209            "ATOM_BLUETOOTH_RFCOMM_CONNECTION_ATTEMPTED" => {
9210                Some(Self::AtomBluetoothRfcommConnectionAttempted)
9211            }
9212            "ATOM_REMOTE_DEVICE_INFORMATION_WITH_METRIC_ID" => {
9213                Some(Self::AtomRemoteDeviceInformationWithMetricId)
9214            }
9215            "ATOM_LE_APP_SCAN_STATE_CHANGED" => Some(Self::AtomLeAppScanStateChanged),
9216            "ATOM_LE_RADIO_SCAN_STOPPED" => Some(Self::AtomLeRadioScanStopped),
9217            "ATOM_LE_SCAN_RESULT_RECEIVED" => Some(Self::AtomLeScanResultReceived),
9218            "ATOM_LE_SCAN_ABUSED" => Some(Self::AtomLeScanAbused),
9219            "ATOM_LE_ADV_STATE_CHANGED" => Some(Self::AtomLeAdvStateChanged),
9220            "ATOM_LE_ADV_ERROR_REPORTED" => Some(Self::AtomLeAdvErrorReported),
9221            "ATOM_A2DP_SESSION_REPORTED" => Some(Self::AtomA2dpSessionReported),
9222            "ATOM_BLUETOOTH_CROSS_LAYER_EVENT_REPORTED" => {
9223                Some(Self::AtomBluetoothCrossLayerEventReported)
9224            }
9225            "ATOM_BROADCAST_AUDIO_SESSION_REPORTED" => {
9226                Some(Self::AtomBroadcastAudioSessionReported)
9227            }
9228            "ATOM_BROADCAST_AUDIO_SYNC_REPORTED" => {
9229                Some(Self::AtomBroadcastAudioSyncReported)
9230            }
9231            "ATOM_BLUETOOTH_RFCOMM_CONNECTION_REPORTED_AT_CLOSE" => {
9232                Some(Self::AtomBluetoothRfcommConnectionReportedAtClose)
9233            }
9234            "ATOM_BLUETOOTH_LE_CONNECTION" => Some(Self::AtomBluetoothLeConnection),
9235            "ATOM_HEARING_DEVICE_ACTIVE_EVENT_REPORTED" => {
9236                Some(Self::AtomHearingDeviceActiveEventReported)
9237            }
9238            "ATOM_BACKPORTED_FIX_STATUS_REPORTED" => {
9239                Some(Self::AtomBackportedFixStatusReported)
9240            }
9241            "ATOM_PLUGIN_INITIALIZED" => Some(Self::AtomPluginInitialized),
9242            "ATOM_CAR_SYSTEM_UI_DATA_SUBSCRIPTION_EVENT_REPORTED" => {
9243                Some(Self::AtomCarSystemUiDataSubscriptionEventReported)
9244            }
9245            "ATOM_CAR_SETTINGS_DATA_SUBSCRIPTION_EVENT_REPORTED" => {
9246                Some(Self::AtomCarSettingsDataSubscriptionEventReported)
9247            }
9248            "ATOM_CAR_QC_LIB_EVENT_REPORTED" => Some(Self::AtomCarQcLibEventReported),
9249            "ATOM_CAR_WAKEUP_FROM_SUSPEND_REPORTED" => {
9250                Some(Self::AtomCarWakeupFromSuspendReported)
9251            }
9252            "ATOM_CAR_RECENTS_EVENT_REPORTED" => Some(Self::AtomCarRecentsEventReported),
9253            "ATOM_CAR_CALM_MODE_EVENT_REPORTED" => {
9254                Some(Self::AtomCarCalmModeEventReported)
9255            }
9256            "ATOM_AUTOFILL_UI_EVENT_REPORTED" => Some(Self::AtomAutofillUiEventReported),
9257            "ATOM_AUTOFILL_FILL_REQUEST_REPORTED" => {
9258                Some(Self::AtomAutofillFillRequestReported)
9259            }
9260            "ATOM_AUTOFILL_FILL_RESPONSE_REPORTED" => {
9261                Some(Self::AtomAutofillFillResponseReported)
9262            }
9263            "ATOM_AUTOFILL_SAVE_EVENT_REPORTED" => {
9264                Some(Self::AtomAutofillSaveEventReported)
9265            }
9266            "ATOM_AUTOFILL_SESSION_COMMITTED" => Some(Self::AtomAutofillSessionCommitted),
9267            "ATOM_AUTOFILL_FIELD_CLASSIFICATION_EVENT_REPORTED" => {
9268                Some(Self::AtomAutofillFieldClassificationEventReported)
9269            }
9270            "ATOM_ODREFRESH_REPORTED" => Some(Self::AtomOdrefreshReported),
9271            "ATOM_ODSIGN_REPORTED" => Some(Self::AtomOdsignReported),
9272            "ATOM_BACKGROUND_DEXOPT_JOB_ENDED" => {
9273                Some(Self::AtomBackgroundDexoptJobEnded)
9274            }
9275            "ATOM_PREREBOOT_DEXOPT_JOB_ENDED" => Some(Self::AtomPrerebootDexoptJobEnded),
9276            "ATOM_ART_DATUM_REPORTED" => Some(Self::AtomArtDatumReported),
9277            "ATOM_ART_DEVICE_DATUM_REPORTED" => Some(Self::AtomArtDeviceDatumReported),
9278            "ATOM_ART_DATUM_DELTA_REPORTED" => Some(Self::AtomArtDatumDeltaReported),
9279            "ATOM_ART_DEX2OAT_REPORTED" => Some(Self::AtomArtDex2oatReported),
9280            "ATOM_ART_DEVICE_STATUS" => Some(Self::AtomArtDeviceStatus),
9281            "ATOM_APP_SEARCH_SET_SCHEMA_STATS_REPORTED" => {
9282                Some(Self::AtomAppSearchSetSchemaStatsReported)
9283            }
9284            "ATOM_APP_SEARCH_SCHEMA_MIGRATION_STATS_REPORTED" => {
9285                Some(Self::AtomAppSearchSchemaMigrationStatsReported)
9286            }
9287            "ATOM_APP_SEARCH_USAGE_SEARCH_INTENT_STATS_REPORTED" => {
9288                Some(Self::AtomAppSearchUsageSearchIntentStatsReported)
9289            }
9290            "ATOM_APP_SEARCH_USAGE_SEARCH_INTENT_RAW_QUERY_STATS_REPORTED" => {
9291                Some(Self::AtomAppSearchUsageSearchIntentRawQueryStatsReported)
9292            }
9293            "ATOM_APP_SEARCH_APPS_INDEXER_STATS_REPORTED" => {
9294                Some(Self::AtomAppSearchAppsIndexerStatsReported)
9295            }
9296            "ATOM_APP_FUNCTIONS_REQUEST_REPORTED" => {
9297                Some(Self::AtomAppFunctionsRequestReported)
9298            }
9299            "ATOM_APEX_INSTALLATION_REQUESTED" => {
9300                Some(Self::AtomApexInstallationRequested)
9301            }
9302            "ATOM_APEX_INSTALLATION_STAGED" => Some(Self::AtomApexInstallationStaged),
9303            "ATOM_APEX_INSTALLATION_ENDED" => Some(Self::AtomApexInstallationEnded),
9304            "ATOM_AI_WALLPAPERS_BUTTON_PRESSED" => {
9305                Some(Self::AtomAiWallpapersButtonPressed)
9306            }
9307            "ATOM_AI_WALLPAPERS_TEMPLATE_SELECTED" => {
9308                Some(Self::AtomAiWallpapersTemplateSelected)
9309            }
9310            "ATOM_AI_WALLPAPERS_TERM_SELECTED" => {
9311                Some(Self::AtomAiWallpapersTermSelected)
9312            }
9313            "ATOM_AI_WALLPAPERS_WALLPAPER_SET" => {
9314                Some(Self::AtomAiWallpapersWallpaperSet)
9315            }
9316            "ATOM_AI_WALLPAPERS_SESSION_SUMMARY" => {
9317                Some(Self::AtomAiWallpapersSessionSummary)
9318            }
9319            "ATOM_JSSCRIPTENGINE_LATENCY_REPORTED" => {
9320                Some(Self::AtomJsscriptengineLatencyReported)
9321            }
9322            "ATOM_AD_SERVICES_API_CALLED" => Some(Self::AtomAdServicesApiCalled),
9323            "ATOM_AD_SERVICES_MESUREMENT_REPORTS_UPLOADED" => {
9324                Some(Self::AtomAdServicesMesurementReportsUploaded)
9325            }
9326            "ATOM_MOBILE_DATA_DOWNLOAD_FILE_GROUP_STATUS_REPORTED" => {
9327                Some(Self::AtomMobileDataDownloadFileGroupStatusReported)
9328            }
9329            "ATOM_MOBILE_DATA_DOWNLOAD_DOWNLOAD_RESULT_REPORTED" => {
9330                Some(Self::AtomMobileDataDownloadDownloadResultReported)
9331            }
9332            "ATOM_AD_SERVICES_SETTINGS_USAGE_REPORTED" => {
9333                Some(Self::AtomAdServicesSettingsUsageReported)
9334            }
9335            "ATOM_BACKGROUND_FETCH_PROCESS_REPORTED" => {
9336                Some(Self::AtomBackgroundFetchProcessReported)
9337            }
9338            "ATOM_UPDATE_CUSTOM_AUDIENCE_PROCESS_REPORTED" => {
9339                Some(Self::AtomUpdateCustomAudienceProcessReported)
9340            }
9341            "ATOM_RUN_AD_BIDDING_PROCESS_REPORTED" => {
9342                Some(Self::AtomRunAdBiddingProcessReported)
9343            }
9344            "ATOM_RUN_AD_SCORING_PROCESS_REPORTED" => {
9345                Some(Self::AtomRunAdScoringProcessReported)
9346            }
9347            "ATOM_RUN_AD_SELECTION_PROCESS_REPORTED" => {
9348                Some(Self::AtomRunAdSelectionProcessReported)
9349            }
9350            "ATOM_RUN_AD_BIDDING_PER_CA_PROCESS_REPORTED" => {
9351                Some(Self::AtomRunAdBiddingPerCaProcessReported)
9352            }
9353            "ATOM_MOBILE_DATA_DOWNLOAD_FILE_GROUP_STORAGE_STATS_REPORTED" => {
9354                Some(Self::AtomMobileDataDownloadFileGroupStorageStatsReported)
9355            }
9356            "ATOM_AD_SERVICES_MEASUREMENT_REGISTRATIONS" => {
9357                Some(Self::AtomAdServicesMeasurementRegistrations)
9358            }
9359            "ATOM_AD_SERVICES_GET_TOPICS_REPORTED" => {
9360                Some(Self::AtomAdServicesGetTopicsReported)
9361            }
9362            "ATOM_AD_SERVICES_EPOCH_COMPUTATION_GET_TOP_TOPICS_REPORTED" => {
9363                Some(Self::AtomAdServicesEpochComputationGetTopTopicsReported)
9364            }
9365            "ATOM_AD_SERVICES_EPOCH_COMPUTATION_CLASSIFIER_REPORTED" => {
9366                Some(Self::AtomAdServicesEpochComputationClassifierReported)
9367            }
9368            "ATOM_AD_SERVICES_BACK_COMPAT_GET_TOPICS_REPORTED" => {
9369                Some(Self::AtomAdServicesBackCompatGetTopicsReported)
9370            }
9371            "ATOM_AD_SERVICES_BACK_COMPAT_EPOCH_COMPUTATION_CLASSIFIER_REPORTED" => {
9372                Some(Self::AtomAdServicesBackCompatEpochComputationClassifierReported)
9373            }
9374            "ATOM_AD_SERVICES_MEASUREMENT_DEBUG_KEYS" => {
9375                Some(Self::AtomAdServicesMeasurementDebugKeys)
9376            }
9377            "ATOM_AD_SERVICES_ERROR_REPORTED" => Some(Self::AtomAdServicesErrorReported),
9378            "ATOM_AD_SERVICES_BACKGROUND_JOBS_EXECUTION_REPORTED" => {
9379                Some(Self::AtomAdServicesBackgroundJobsExecutionReported)
9380            }
9381            "ATOM_AD_SERVICES_MEASUREMENT_DELAYED_SOURCE_REGISTRATION" => {
9382                Some(Self::AtomAdServicesMeasurementDelayedSourceRegistration)
9383            }
9384            "ATOM_AD_SERVICES_MEASUREMENT_ATTRIBUTION" => {
9385                Some(Self::AtomAdServicesMeasurementAttribution)
9386            }
9387            "ATOM_AD_SERVICES_MEASUREMENT_JOBS" => {
9388                Some(Self::AtomAdServicesMeasurementJobs)
9389            }
9390            "ATOM_AD_SERVICES_MEASUREMENT_WIPEOUT" => {
9391                Some(Self::AtomAdServicesMeasurementWipeout)
9392            }
9393            "ATOM_AD_SERVICES_MEASUREMENT_AD_ID_MATCH_FOR_DEBUG_KEYS" => {
9394                Some(Self::AtomAdServicesMeasurementAdIdMatchForDebugKeys)
9395            }
9396            "ATOM_AD_SERVICES_ENROLLMENT_DATA_STORED" => {
9397                Some(Self::AtomAdServicesEnrollmentDataStored)
9398            }
9399            "ATOM_AD_SERVICES_ENROLLMENT_FILE_DOWNLOADED" => {
9400                Some(Self::AtomAdServicesEnrollmentFileDownloaded)
9401            }
9402            "ATOM_AD_SERVICES_ENROLLMENT_MATCHED" => {
9403                Some(Self::AtomAdServicesEnrollmentMatched)
9404            }
9405            "ATOM_AD_SERVICES_CONSENT_MIGRATED" => {
9406                Some(Self::AtomAdServicesConsentMigrated)
9407            }
9408            "ATOM_AD_SERVICES_ENROLLMENT_FAILED" => {
9409                Some(Self::AtomAdServicesEnrollmentFailed)
9410            }
9411            "ATOM_AD_SERVICES_MEASUREMENT_CLICK_VERIFICATION" => {
9412                Some(Self::AtomAdServicesMeasurementClickVerification)
9413            }
9414            "ATOM_AD_SERVICES_ENCRYPTION_KEY_FETCHED" => {
9415                Some(Self::AtomAdServicesEncryptionKeyFetched)
9416            }
9417            "ATOM_AD_SERVICES_ENCRYPTION_KEY_DB_TRANSACTION_ENDED" => {
9418                Some(Self::AtomAdServicesEncryptionKeyDbTransactionEnded)
9419            }
9420            "ATOM_DESTINATION_REGISTERED_BEACONS" => {
9421                Some(Self::AtomDestinationRegisteredBeacons)
9422            }
9423            "ATOM_REPORT_INTERACTION_API_CALLED" => {
9424                Some(Self::AtomReportInteractionApiCalled)
9425            }
9426            "ATOM_INTERACTION_REPORTING_TABLE_CLEARED" => {
9427                Some(Self::AtomInteractionReportingTableCleared)
9428            }
9429            "ATOM_APP_MANIFEST_CONFIG_HELPER_CALLED" => {
9430                Some(Self::AtomAppManifestConfigHelperCalled)
9431            }
9432            "ATOM_AD_FILTERING_PROCESS_JOIN_CA_REPORTED" => {
9433                Some(Self::AtomAdFilteringProcessJoinCaReported)
9434            }
9435            "ATOM_AD_FILTERING_PROCESS_AD_SELECTION_REPORTED" => {
9436                Some(Self::AtomAdFilteringProcessAdSelectionReported)
9437            }
9438            "ATOM_AD_COUNTER_HISTOGRAM_UPDATER_REPORTED" => {
9439                Some(Self::AtomAdCounterHistogramUpdaterReported)
9440            }
9441            "ATOM_SIGNATURE_VERIFICATION" => Some(Self::AtomSignatureVerification),
9442            "ATOM_K_ANON_IMMEDIATE_SIGN_JOIN_STATUS_REPORTED" => {
9443                Some(Self::AtomKAnonImmediateSignJoinStatusReported)
9444            }
9445            "ATOM_K_ANON_BACKGROUND_JOB_STATUS_REPORTED" => {
9446                Some(Self::AtomKAnonBackgroundJobStatusReported)
9447            }
9448            "ATOM_K_ANON_INITIALIZE_STATUS_REPORTED" => {
9449                Some(Self::AtomKAnonInitializeStatusReported)
9450            }
9451            "ATOM_K_ANON_SIGN_STATUS_REPORTED" => Some(Self::AtomKAnonSignStatusReported),
9452            "ATOM_K_ANON_JOIN_STATUS_REPORTED" => Some(Self::AtomKAnonJoinStatusReported),
9453            "ATOM_K_ANON_KEY_ATTESTATION_STATUS_REPORTED" => {
9454                Some(Self::AtomKAnonKeyAttestationStatusReported)
9455            }
9456            "ATOM_GET_AD_SELECTION_DATA_API_CALLED" => {
9457                Some(Self::AtomGetAdSelectionDataApiCalled)
9458            }
9459            "ATOM_GET_AD_SELECTION_DATA_BUYER_INPUT_GENERATED" => {
9460                Some(Self::AtomGetAdSelectionDataBuyerInputGenerated)
9461            }
9462            "ATOM_BACKGROUND_JOB_SCHEDULING_REPORTED" => {
9463                Some(Self::AtomBackgroundJobSchedulingReported)
9464            }
9465            "ATOM_TOPICS_ENCRYPTION_EPOCH_COMPUTATION_REPORTED" => {
9466                Some(Self::AtomTopicsEncryptionEpochComputationReported)
9467            }
9468            "ATOM_TOPICS_ENCRYPTION_GET_TOPICS_REPORTED" => {
9469                Some(Self::AtomTopicsEncryptionGetTopicsReported)
9470            }
9471            "ATOM_ADSERVICES_SHELL_COMMAND_CALLED" => {
9472                Some(Self::AtomAdservicesShellCommandCalled)
9473            }
9474            "ATOM_UPDATE_SIGNALS_API_CALLED" => Some(Self::AtomUpdateSignalsApiCalled),
9475            "ATOM_ENCODING_JOB_RUN" => Some(Self::AtomEncodingJobRun),
9476            "ATOM_ENCODING_JS_FETCH" => Some(Self::AtomEncodingJsFetch),
9477            "ATOM_ENCODING_JS_EXECUTION" => Some(Self::AtomEncodingJsExecution),
9478            "ATOM_PERSIST_AD_SELECTION_RESULT_CALLED" => {
9479                Some(Self::AtomPersistAdSelectionResultCalled)
9480            }
9481            "ATOM_SERVER_AUCTION_KEY_FETCH_CALLED" => {
9482                Some(Self::AtomServerAuctionKeyFetchCalled)
9483            }
9484            "ATOM_SERVER_AUCTION_BACKGROUND_KEY_FETCH_ENABLED" => {
9485                Some(Self::AtomServerAuctionBackgroundKeyFetchEnabled)
9486            }
9487            "ATOM_AD_SERVICES_MEASUREMENT_PROCESS_ODP_REGISTRATION" => {
9488                Some(Self::AtomAdServicesMeasurementProcessOdpRegistration)
9489            }
9490            "ATOM_AD_SERVICES_MEASUREMENT_NOTIFY_REGISTRATION_TO_ODP" => {
9491                Some(Self::AtomAdServicesMeasurementNotifyRegistrationToOdp)
9492            }
9493            "ATOM_SELECT_ADS_FROM_OUTCOMES_API_CALLED" => {
9494                Some(Self::AtomSelectAdsFromOutcomesApiCalled)
9495            }
9496            "ATOM_REPORT_IMPRESSION_API_CALLED" => {
9497                Some(Self::AtomReportImpressionApiCalled)
9498            }
9499            "ATOM_AD_SERVICES_ENROLLMENT_TRANSACTION_STATS" => {
9500                Some(Self::AtomAdServicesEnrollmentTransactionStats)
9501            }
9502            "ATOM_AD_SERVICES_COBALT_LOGGER_EVENT_REPORTED" => {
9503                Some(Self::AtomAdServicesCobaltLoggerEventReported)
9504            }
9505            "ATOM_AD_SERVICES_COBALT_PERIODIC_JOB_EVENT_REPORTED" => {
9506                Some(Self::AtomAdServicesCobaltPeriodicJobEventReported)
9507            }
9508            "ATOM_UPDATE_SIGNALS_PROCESS_REPORTED" => {
9509                Some(Self::AtomUpdateSignalsProcessReported)
9510            }
9511            "ATOM_TOPICS_SCHEDULE_EPOCH_JOB_SETTING_REPORTED" => {
9512                Some(Self::AtomTopicsScheduleEpochJobSettingReported)
9513            }
9514            "ATOM_SCHEDULED_CUSTOM_AUDIENCE_UPDATE_SCHEDULE_ATTEMPTED" => {
9515                Some(Self::AtomScheduledCustomAudienceUpdateScheduleAttempted)
9516            }
9517            "ATOM_SCHEDULED_CUSTOM_AUDIENCE_UPDATE_PERFORMED" => {
9518                Some(Self::AtomScheduledCustomAudienceUpdatePerformed)
9519            }
9520            "ATOM_SCHEDULED_CUSTOM_AUDIENCE_UPDATE_PERFORMED_ATTEMPTED_FAILURE_REPORTED" => {
9521                Some(
9522                    Self::AtomScheduledCustomAudienceUpdatePerformedAttemptedFailureReported,
9523                )
9524            }
9525            "ATOM_SCHEDULED_CUSTOM_AUDIENCE_UPDATE_BACKGROUND_JOB_RAN" => {
9526                Some(Self::AtomScheduledCustomAudienceUpdateBackgroundJobRan)
9527            }
9528            "ATOM_THERMAL_STATUS_CALLED" => Some(Self::AtomThermalStatusCalled),
9529            "ATOM_THERMAL_HEADROOM_CALLED" => Some(Self::AtomThermalHeadroomCalled),
9530            "ATOM_THERMAL_HEADROOM_THRESHOLDS_CALLED" => {
9531                Some(Self::AtomThermalHeadroomThresholdsCalled)
9532            }
9533            "ATOM_ADPF_HINT_SESSION_TID_CLEANUP" => {
9534                Some(Self::AtomAdpfHintSessionTidCleanup)
9535            }
9536            "ATOM_THERMAL_HEADROOM_THRESHOLDS" => {
9537                Some(Self::AtomThermalHeadroomThresholds)
9538            }
9539            "ATOM_ADPF_SESSION_SNAPSHOT" => Some(Self::AtomAdpfSessionSnapshot),
9540            "ATOM_ADAPTIVE_AUTH_UNLOCK_AFTER_LOCK_REPORTED" => {
9541                Some(Self::AtomAdaptiveAuthUnlockAfterLockReported)
9542            }
9543            "ATOM_ACCOUNT_MANAGER_EVENT" => Some(Self::AtomAccountManagerEvent),
9544            "ATOM_ACCESSIBILITY_CHECK_RESULT_REPORTED" => {
9545                Some(Self::AtomAccessibilityCheckResultReported)
9546            }
9547            _ => None,
9548        }
9549    }
9550}
9551/// This file is named 'statsd_tracing_config.proto' rather than
9552/// 'statsd_config.proto' (which would be more consistent with the other
9553/// config protos) so it doesn't show up and confuse folks looking for
9554/// the existing statsd_config.proto for configuring statsd itself.
9555/// Same for the config proto itself.
9556#[derive(Clone, PartialEq, ::prost::Message)]
9557pub struct StatsdTracingConfig {
9558    /// This is for the common case of the atom id being known in the enum AtomId.
9559    #[prost(enumeration = "AtomId", repeated, packed = "false", tag = "1")]
9560    pub push_atom_id: ::prost::alloc::vec::Vec<i32>,
9561    /// Escape hatch for Atom IDs that are not yet in the AtomId enum
9562    /// (e.g. non-upstream atoms that don't exist in AOSP).
9563    #[prost(int32, repeated, packed = "false", tag = "2")]
9564    pub raw_push_atom_id: ::prost::alloc::vec::Vec<i32>,
9565    #[prost(message, repeated, tag = "3")]
9566    pub pull_config: ::prost::alloc::vec::Vec<StatsdPullAtomConfig>,
9567}
9568#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
9569pub struct StatsdPullAtomConfig {
9570    #[prost(enumeration = "AtomId", repeated, packed = "false", tag = "1")]
9571    pub pull_atom_id: ::prost::alloc::vec::Vec<i32>,
9572    #[prost(int32, repeated, packed = "false", tag = "2")]
9573    pub raw_pull_atom_id: ::prost::alloc::vec::Vec<i32>,
9574    #[prost(int32, optional, tag = "3")]
9575    pub pull_frequency_ms: ::core::option::Option<i32>,
9576    #[prost(string, repeated, tag = "4")]
9577    pub packages: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
9578}
9579/// Configuration that allows to boost the priority of the 'traced' or
9580/// 'traced_probs' processes, by changing the scheduler configuration.
9581/// Only supported on Linux and Android the boosted process must have
9582/// 'CAP_SYS_NICE' capability.
9583#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
9584pub struct PriorityBoostConfig {
9585    #[prost(enumeration = "priority_boost_config::BoostPolicy", optional, tag = "1")]
9586    pub policy: ::core::option::Option<i32>,
9587    #[prost(uint32, optional, tag = "2")]
9588    pub priority: ::core::option::Option<u32>,
9589}
9590/// Nested message and enum types in `PriorityBoostConfig`.
9591pub mod priority_boost_config {
9592    #[derive(
9593        Clone,
9594        Copy,
9595        Debug,
9596        PartialEq,
9597        Eq,
9598        Hash,
9599        PartialOrd,
9600        Ord,
9601        ::prost::Enumeration
9602    )]
9603    #[repr(i32)]
9604    pub enum BoostPolicy {
9605        PolicyUnspecified = 0,
9606        /// The default policy (e.g., CFS on Linux). Priority range: \[0; 20\]
9607        /// priority is interpreted as -(nice), i.e., 1 is slightly higher prio
9608        /// than default 0, 20 is the highest priority.
9609        /// Note: this is the opposite semantic of the cmdline nice, and is done for
9610        /// consistency with POLICY_SCHED_FIFO, so higher number == higher prio.
9611        PolicySchedOther = 1,
9612        /// The Real-time policy, Priority range: \[1; 99\]
9613        PolicySchedFifo = 2,
9614    }
9615    impl BoostPolicy {
9616        /// String value of the enum field names used in the ProtoBuf definition.
9617        ///
9618        /// The values are not transformed in any way and thus are considered stable
9619        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
9620        pub fn as_str_name(&self) -> &'static str {
9621            match self {
9622                Self::PolicyUnspecified => "POLICY_UNSPECIFIED",
9623                Self::PolicySchedOther => "POLICY_SCHED_OTHER",
9624                Self::PolicySchedFifo => "POLICY_SCHED_FIFO",
9625            }
9626        }
9627        /// Creates an enum from field names used in the ProtoBuf definition.
9628        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
9629            match value {
9630                "POLICY_UNSPECIFIED" => Some(Self::PolicyUnspecified),
9631                "POLICY_SCHED_OTHER" => Some(Self::PolicySchedOther),
9632                "POLICY_SCHED_FIFO" => Some(Self::PolicySchedFifo),
9633                _ => None,
9634            }
9635        }
9636    }
9637}
9638/// Config for polling process-related information from /proc/pid/status and
9639/// related files on Linux.
9640///
9641/// Data source name: "linux.process_stats".
9642#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
9643pub struct ProcessStatsConfig {
9644    #[prost(
9645        enumeration = "process_stats_config::Quirks",
9646        repeated,
9647        packed = "false",
9648        tag = "1"
9649    )]
9650    pub quirks: ::prost::alloc::vec::Vec<i32>,
9651    /// If enabled all processes will be scanned and dumped when the trace starts.
9652    #[prost(bool, optional, tag = "2")]
9653    pub scan_all_processes_on_start: ::core::option::Option<bool>,
9654    /// If enabled thread names are also recoded (this is redundant if sched_switch
9655    /// is enabled).
9656    #[prost(bool, optional, tag = "3")]
9657    pub record_thread_names: ::core::option::Option<bool>,
9658    /// If > 0 samples counters (see process_stats.proto) from
9659    /// /proc/pid/status and oom_score_adj every X ms.
9660    /// This is required to be > 100ms to avoid excessive CPU usage.
9661    #[prost(uint32, optional, tag = "4")]
9662    pub proc_stats_poll_ms: ::core::option::Option<u32>,
9663    /// Explicit caching period during which the polling won't re-emit identical
9664    /// counter values. This is required to be either = 0 or a multiple of
9665    /// |proc_stats_poll_ms| (default: |proc_stats_poll_ms|). Non-multiples will be
9666    /// rounded down to the nearest multiple.
9667    #[prost(uint32, optional, tag = "6")]
9668    pub proc_stats_cache_ttl_ms: ::core::option::Option<u32>,
9669    /// If true and |proc_stats_poll_ms| is set, sample memory stats from
9670    /// /proc/pid/smaps_rollup.
9671    ///
9672    /// Android: does NOT work with the system daemons by default, as it requires
9673    /// running the recording process (traced_probes or tracebox) as root. It is
9674    /// possible to avoid the root requirement, but the exact steps depend on the
9675    /// Linux distibution. The proc file requires passing a PTRACE_MODE_READ
9676    /// check, and might be further covered by the procfs "hidepid" mount option.
9677    #[prost(bool, optional, tag = "10")]
9678    pub scan_smaps_rollup: ::core::option::Option<bool>,
9679    /// If true: process descriptions will include process age (starttime in
9680    /// /proc/pid/stat).
9681    /// Introduced in: perfetto v44.
9682    #[prost(bool, optional, tag = "11")]
9683    pub record_process_age: ::core::option::Option<bool>,
9684    /// If true and |proc_stats_poll_ms| is set, process stats will include time
9685    /// spent running in user/kernel mode (utime/stime in /proc/pid/stat).
9686    /// Introduced in: perfetto v44.
9687    #[prost(bool, optional, tag = "12")]
9688    pub record_process_runtime: ::core::option::Option<bool>,
9689    /// If true obtain per-process dmabuf resident set size from
9690    /// /proc/pid/dmabuf_rss.
9691    /// This feature is not in upstream linux, and is available only on some
9692    /// Android kernels.
9693    #[prost(bool, optional, tag = "13")]
9694    pub record_process_dmabuf_rss: ::core::option::Option<bool>,
9695    /// WARNING: unmaintained and deprecated. If true this will resolve file
9696    /// descriptors for each process so these can be mapped to their actual device
9697    /// or file. Requires raw_syscalls/sys_{enter,exit} ftrace events to be enabled
9698    /// or new fds opened after initially scanning a process will not be
9699    /// recognized.
9700    #[prost(bool, optional, tag = "9")]
9701    pub resolve_process_fds: ::core::option::Option<bool>,
9702    /// If true, do *not* write a ProcessTree::Thread message for the main thread
9703    /// of a process. This was the default behaviour before perfetto v58.
9704    ///
9705    /// Added in perfetto v58.
9706    #[prost(bool, optional, tag = "14")]
9707    pub skip_main_thread_message: ::core::option::Option<bool>,
9708}
9709/// Nested message and enum types in `ProcessStatsConfig`.
9710pub mod process_stats_config {
9711    #[derive(
9712        Clone,
9713        Copy,
9714        Debug,
9715        PartialEq,
9716        Eq,
9717        Hash,
9718        PartialOrd,
9719        Ord,
9720        ::prost::Enumeration
9721    )]
9722    #[repr(i32)]
9723    pub enum Quirks {
9724        Unspecified = 0,
9725        /// This has been deprecated and ignored as per 2018-05-01. Full scan at
9726        /// startup is now disabled by default and can be re-enabled using the
9727        /// |scan_all_processes_on_start| arg.
9728        #[deprecated]
9729        DisableInitialDump = 1,
9730        /// If set, disables the special interaction with "linux.ftrace" data source,
9731        /// where the process stats rescrapes any thread id seen in the ftrace
9732        /// stream.
9733        DisableOnDemand = 2,
9734    }
9735    impl Quirks {
9736        /// String value of the enum field names used in the ProtoBuf definition.
9737        ///
9738        /// The values are not transformed in any way and thus are considered stable
9739        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
9740        pub fn as_str_name(&self) -> &'static str {
9741            match self {
9742                Self::Unspecified => "QUIRKS_UNSPECIFIED",
9743                #[allow(deprecated)]
9744                Self::DisableInitialDump => "DISABLE_INITIAL_DUMP",
9745                Self::DisableOnDemand => "DISABLE_ON_DEMAND",
9746            }
9747        }
9748        /// Creates an enum from field names used in the ProtoBuf definition.
9749        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
9750            match value {
9751                "QUIRKS_UNSPECIFIED" => Some(Self::Unspecified),
9752                "DISABLE_INITIAL_DUMP" => {
9753                    Some(#[allow(deprecated)] Self::DisableInitialDump)
9754                }
9755                "DISABLE_ON_DEMAND" => Some(Self::DisableOnDemand),
9756                _ => None,
9757            }
9758        }
9759    }
9760}
9761/// Configuration for go/heapprofd.
9762/// Next id: 28
9763#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
9764pub struct HeapprofdConfig {
9765    /// Sampling rate for all heaps not specified via heap_sampling_intervals.
9766    ///
9767    /// These are:
9768    /// * All heaps if heap_sampling_intervals is empty.
9769    /// * Those profiled due to all_heaps and not named in heaps if
9770    ///    heap_sampling_intervals is not empty.
9771    /// * The implicit libc.malloc heap if heaps is empty.
9772    ///
9773    /// Set to 1 for perfect accuracy.
9774    /// Otherwise, sample every sample_interval_bytes on average.
9775    ///
9776    /// See
9777    /// <https://perfetto.dev/docs/data-sources/native-heap-profiler#sampling-interval>
9778    /// for more details.
9779    ///
9780    /// BUGS
9781    /// Before Android 12, setting this to 0 would crash the target process.
9782    ///
9783    /// N.B. This must be explicitly set to a non-zero value for all heaps (with
9784    /// this field or with heap_sampling_intervals), otherwise the producer will
9785    /// not start.
9786    #[prost(uint64, optional, tag = "1")]
9787    pub sampling_interval_bytes: ::core::option::Option<u64>,
9788    /// If less than the given numbers of bytes are left free in the shared
9789    /// memory buffer, increase sampling interval by a factor of two.
9790    /// Adaptive sampling is disabled when set to 0.
9791    #[prost(uint64, optional, tag = "24")]
9792    pub adaptive_sampling_shmem_threshold: ::core::option::Option<u64>,
9793    /// Stop doubling the sampling_interval once the sampling interval has reached
9794    /// this value.
9795    #[prost(uint64, optional, tag = "25")]
9796    pub adaptive_sampling_max_sampling_interval_bytes: ::core::option::Option<u64>,
9797    /// Names of process cmdlines to profile. The semantics before perfetto v57 are
9798    /// as the following section (A), and on newer versions are both (A) and (B):
9799    ///
9800    /// (A) E.g. surfaceflinger, com.android.phone
9801    /// This input is normalized in the following way: if it contains slashes,
9802    /// everything up to the last slash is discarded. If it contains "@",
9803    /// everything after the first @ is discared.
9804    /// E.g. /system/bin/surfaceflinger@1.0 normalizes to surfaceflinger.
9805    /// This transformation is also applied to the processes' command lines when
9806    /// matching.
9807    ///
9808    /// (B) Perfetto v57+: a pattern may also contain a wildcard ('*'), in which
9809    /// case it is matched against running processes' command lines using glob
9810    /// semantics. If the pattern starts with '/' it is matched against the full
9811    /// argv0 (e.g. "/system/bin/*"), otherwise it is matched against the binary
9812    /// name part of argv0 (e.g. "system_*"). Wildcard patterns are *not*
9813    /// normalized as described above.
9814    /// Wildcard patterns are supported only for profiling already-running
9815    /// processes. A config must set no_startup=true if using wildcards, or it will
9816    /// be rejected.
9817    #[prost(string, repeated, tag = "2")]
9818    pub process_cmdline: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
9819    /// For watermark based triggering or local debugging.
9820    #[prost(uint64, repeated, packed = "false", tag = "4")]
9821    pub pid: ::prost::alloc::vec::Vec<u64>,
9822    /// Only profile target if it was installed by one of the packages given.
9823    /// Special values are:
9824    /// * @system: installed on the system partition
9825    /// * @product: installed on the product partition
9826    /// * @null: sideloaded
9827    /// Supported on Android 12+.
9828    #[prost(string, repeated, tag = "26")]
9829    pub target_installed_by: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
9830    /// Which heaps to sample, e.g. "libc.malloc". If left empty, only samples
9831    /// "malloc".
9832    ///
9833    /// Introduced in Android 12.
9834    #[prost(string, repeated, tag = "20")]
9835    pub heaps: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
9836    /// Which heaps not to sample, e.g. "libc.malloc". This is useful when used in
9837    /// combination with all_heaps;
9838    ///
9839    /// Introduced in Android 12.
9840    #[prost(string, repeated, tag = "27")]
9841    pub exclude_heaps: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
9842    #[prost(bool, optional, tag = "23")]
9843    pub stream_allocations: ::core::option::Option<bool>,
9844    /// If given, needs to be the same length as heaps and gives the sampling
9845    /// interval for the respective entry in heaps.
9846    ///
9847    /// Otherwise, sampling_interval_bytes is used.
9848    ///
9849    /// It is recommended to set sampling_interval_bytes to a reasonable default
9850    /// value when using this, as a value of 0 for sampling_interval_bytes will
9851    /// crash the target process before Android 12.
9852    ///
9853    /// Introduced in Android 12.
9854    ///
9855    /// All values must be non-zero or the producer will not start.
9856    #[prost(uint64, repeated, packed = "false", tag = "22")]
9857    pub heap_sampling_intervals: ::prost::alloc::vec::Vec<u64>,
9858    /// Sample all heaps registered by target process. Introduced in Android 12.
9859    #[prost(bool, optional, tag = "21")]
9860    pub all_heaps: ::core::option::Option<bool>,
9861    /// Profile all processes eligible for profiling on the system.
9862    /// See
9863    /// <https://perfetto.dev/docs/data-sources/native-heap-profiler#heapprofd-targets>
9864    /// for which processes are eligible.
9865    ///
9866    /// On unmodified userdebug builds, this will lead to system crashes. Zygote
9867    /// will crash when trying to launch a new process as it will have an
9868    /// unexpected open socket to heapprofd.
9869    ///
9870    /// heapprofd will likely be overloaded by the amount of data for low
9871    /// sampling intervals.
9872    #[prost(bool, optional, tag = "5")]
9873    pub all: ::core::option::Option<bool>,
9874    /// Do not profile processes whose anon RSS + swap < given value.
9875    /// Introduced in Android 11.
9876    #[prost(uint32, optional, tag = "15")]
9877    pub min_anonymous_memory_kb: ::core::option::Option<u32>,
9878    /// Stop profile if heapprofd memory usage goes beyond the given value.
9879    /// Introduced in Android 11.
9880    #[prost(uint32, optional, tag = "16")]
9881    pub max_heapprofd_memory_kb: ::core::option::Option<u32>,
9882    /// Stop profile if heapprofd CPU time since start of this data-source
9883    /// goes beyond given value.
9884    /// Introduced in Android 11.
9885    #[prost(uint64, optional, tag = "17")]
9886    pub max_heapprofd_cpu_secs: ::core::option::Option<u64>,
9887    /// Do not emit function names for mappings starting with this prefix.
9888    /// E.g. /system to not emit symbols for any system libraries.
9889    #[prost(string, repeated, tag = "7")]
9890    pub skip_symbol_prefix: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
9891    /// Dump at a predefined interval.
9892    #[prost(message, optional, tag = "6")]
9893    pub continuous_dump_config: ::core::option::Option<
9894        heapprofd_config::ContinuousDumpConfig,
9895    >,
9896    /// Size of the shared memory buffer between the profiled processes and
9897    /// heapprofd. Defaults to 8 MiB. If larger than 500 MiB, truncated to 500
9898    /// MiB.
9899    ///
9900    /// Needs to be:
9901    /// * at least 8192,
9902    /// * a power of two,
9903    /// * a multiple of 4096.
9904    #[prost(uint64, optional, tag = "8")]
9905    pub shmem_size_bytes: ::core::option::Option<u64>,
9906    /// When the shmem buffer is full, block the client instead of ending the
9907    /// trace. Use with caution as this will significantly slow down the target
9908    /// process.
9909    #[prost(bool, optional, tag = "9")]
9910    pub block_client: ::core::option::Option<bool>,
9911    /// If set, stop the trace session after blocking the client for this
9912    /// timeout. Needs to be larger than 100 us, otherwise no retries are done.
9913    /// Introduced in Android 11.
9914    #[prost(uint32, optional, tag = "14")]
9915    pub block_client_timeout_us: ::core::option::Option<u32>,
9916    /// Do not profile processes from startup, only match already running
9917    /// processes.
9918    ///
9919    /// Can not be set at the same time as no_running.
9920    /// Introduced in Android 11.
9921    #[prost(bool, optional, tag = "10")]
9922    pub no_startup: ::core::option::Option<bool>,
9923    /// Do not profile running processes. Only match processes on startup.
9924    ///
9925    /// Can not be set at the same time as no_startup.
9926    /// Introduced in Android 11.
9927    #[prost(bool, optional, tag = "11")]
9928    pub no_running: ::core::option::Option<bool>,
9929    /// Cause heapprofd to emit a single dump at the end, showing the memory usage
9930    /// at the point in time when the sampled heap usage of the process was at its
9931    /// maximum. This causes ProfilePacket.HeapSample.self_max to be set, and
9932    /// self_allocated and self_freed to not be set.
9933    /// Introduced in Android 11.
9934    #[prost(bool, optional, tag = "13")]
9935    pub dump_at_max: ::core::option::Option<bool>,
9936    /// Escape hatch if the session is being torn down because of a forked child
9937    /// that shares memory space, but is not correctly identified as a vforked
9938    /// child.
9939    /// Introduced in Android 11.
9940    #[prost(bool, optional, tag = "18")]
9941    pub disable_fork_teardown: ::core::option::Option<bool>,
9942    /// We try to automatically detect when a target applicatation vforks but then
9943    /// does a memory allocation (or free). This auto-detection can be disabled
9944    /// with this.
9945    /// Introduced in Android 11.
9946    #[prost(bool, optional, tag = "19")]
9947    pub disable_vfork_detection: ::core::option::Option<bool>,
9948}
9949/// Nested message and enum types in `HeapprofdConfig`.
9950pub mod heapprofd_config {
9951    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
9952    pub struct ContinuousDumpConfig {
9953        /// ms to wait before first dump.
9954        #[prost(uint32, optional, tag = "5")]
9955        pub dump_phase_ms: ::core::option::Option<u32>,
9956        /// ms to wait between following dumps.
9957        #[prost(uint32, optional, tag = "6")]
9958        pub dump_interval_ms: ::core::option::Option<u32>,
9959    }
9960}
9961/// Config for collecting /proc/pid/smaps.
9962#[derive(Clone, PartialEq, ::prost::Message)]
9963pub struct SmapsConfig {
9964    /// Set of fields to collect.
9965    /// If unset, defaults to: size, rss, anonymous, swap.
9966    #[prost(
9967        enumeration = "smaps_config::VmaField",
9968        repeated,
9969        packed = "false",
9970        tag = "1"
9971    )]
9972    pub vma_fields: ::prost::alloc::vec::Vec<i32>,
9973    /// If false, mappings are aggregated by their path name.
9974    /// If true, each mapping is serialised separately.
9975    #[prost(bool, optional, tag = "2")]
9976    pub unaggregated: ::core::option::Option<bool>,
9977    /// Optional ordered list of redaction rules for the name of the mapping.
9978    /// Note that all mappings will still be emitted, these rules only affect the
9979    /// emitted name.
9980    /// If unset, all names are written as is.
9981    /// If set, the first matching rule decides on the action.
9982    /// If no rules match, the name is written as is.
9983    #[prost(message, repeated, tag = "3")]
9984    pub name_redaction_rules: ::prost::alloc::vec::Vec<RedactionRule>,
9985}
9986/// Nested message and enum types in `SmapsConfig`.
9987pub mod smaps_config {
9988    #[derive(
9989        Clone,
9990        Copy,
9991        Debug,
9992        PartialEq,
9993        Eq,
9994        Hash,
9995        PartialOrd,
9996        Ord,
9997        ::prost::Enumeration
9998    )]
9999    #[repr(i32)]
10000    pub enum VmaField {
10001        Unknown = 0,
10002        Size = 1,
10003        Rss = 2,
10004        Anonymous = 3,
10005        Swap = 4,
10006        SharedClean = 5,
10007        SharedDirty = 6,
10008        PrivateClean = 7,
10009        PrivateDirty = 8,
10010        Locked = 9,
10011        Pss = 10,
10012        PssDirty = 11,
10013        SwapPss = 12,
10014    }
10015    impl VmaField {
10016        /// String value of the enum field names used in the ProtoBuf definition.
10017        ///
10018        /// The values are not transformed in any way and thus are considered stable
10019        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
10020        pub fn as_str_name(&self) -> &'static str {
10021            match self {
10022                Self::Unknown => "VMA_FIELD_UNKNOWN",
10023                Self::Size => "VMA_FIELD_SIZE",
10024                Self::Rss => "VMA_FIELD_RSS",
10025                Self::Anonymous => "VMA_FIELD_ANONYMOUS",
10026                Self::Swap => "VMA_FIELD_SWAP",
10027                Self::SharedClean => "VMA_FIELD_SHARED_CLEAN",
10028                Self::SharedDirty => "VMA_FIELD_SHARED_DIRTY",
10029                Self::PrivateClean => "VMA_FIELD_PRIVATE_CLEAN",
10030                Self::PrivateDirty => "VMA_FIELD_PRIVATE_DIRTY",
10031                Self::Locked => "VMA_FIELD_LOCKED",
10032                Self::Pss => "VMA_FIELD_PSS",
10033                Self::PssDirty => "VMA_FIELD_PSS_DIRTY",
10034                Self::SwapPss => "VMA_FIELD_SWAP_PSS",
10035            }
10036        }
10037        /// Creates an enum from field names used in the ProtoBuf definition.
10038        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
10039            match value {
10040                "VMA_FIELD_UNKNOWN" => Some(Self::Unknown),
10041                "VMA_FIELD_SIZE" => Some(Self::Size),
10042                "VMA_FIELD_RSS" => Some(Self::Rss),
10043                "VMA_FIELD_ANONYMOUS" => Some(Self::Anonymous),
10044                "VMA_FIELD_SWAP" => Some(Self::Swap),
10045                "VMA_FIELD_SHARED_CLEAN" => Some(Self::SharedClean),
10046                "VMA_FIELD_SHARED_DIRTY" => Some(Self::SharedDirty),
10047                "VMA_FIELD_PRIVATE_CLEAN" => Some(Self::PrivateClean),
10048                "VMA_FIELD_PRIVATE_DIRTY" => Some(Self::PrivateDirty),
10049                "VMA_FIELD_LOCKED" => Some(Self::Locked),
10050                "VMA_FIELD_PSS" => Some(Self::Pss),
10051                "VMA_FIELD_PSS_DIRTY" => Some(Self::PssDirty),
10052                "VMA_FIELD_SWAP_PSS" => Some(Self::SwapPss),
10053                _ => None,
10054            }
10055        }
10056    }
10057}
10058#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
10059pub struct RedactionRule {
10060    /// The pattern to match against.
10061    #[prost(string, optional, tag = "1")]
10062    pub pattern: ::core::option::Option<::prost::alloc::string::String>,
10063    #[prost(enumeration = "redaction_rule::MatchMode", optional, tag = "2")]
10064    pub match_mode: ::core::option::Option<i32>,
10065    /// If the pattern matches, keep the entire name. In other words, do not
10066    /// redact. This option exists since the rules are evaluated in order, so a
10067    /// more specific allow rule with keep_full can match before a more general
10068    /// deny rule. This option is mutually exclusive with |keep_file_extension| and
10069    /// |keep_path_elements|.
10070    #[prost(bool, optional, tag = "3")]
10071    pub keep_full: ::core::option::Option<bool>,
10072    /// If the pattern matches, replace the name with this string (defaulting to
10073    /// <pf_redacted> if unset). The final emitted name might be further augmented
10074    /// by the options below keeping parts of the original name.
10075    #[prost(string, optional, tag = "4")]
10076    pub replacement_name: ::core::option::Option<::prost::alloc::string::String>,
10077    /// If the pattern matches, keep the file extension, if any.
10078    /// Can be combined with |keep_path_elements|.
10079    #[prost(bool, optional, tag = "5")]
10080    pub keep_file_extension: ::core::option::Option<bool>,
10081    /// If the pattern matches, keep the first N path elements (as separated by
10082    /// '/'). If the name is not a path, this option does nothing. Can be combined
10083    /// with |keep_file_extension|.
10084    #[prost(uint32, optional, tag = "6")]
10085    pub keep_path_elements: ::core::option::Option<u32>,
10086}
10087/// Nested message and enum types in `RedactionRule`.
10088pub mod redaction_rule {
10089    /// How to match |pattern| against the name of the mapping.
10090    /// Note for future extensions: unrecognised enums are treated as always
10091    /// matching.
10092    #[derive(
10093        Clone,
10094        Copy,
10095        Debug,
10096        PartialEq,
10097        Eq,
10098        Hash,
10099        PartialOrd,
10100        Ord,
10101        ::prost::Enumeration
10102    )]
10103    #[repr(i32)]
10104    pub enum MatchMode {
10105        Unknown = 0,
10106        /// The pattern matches if it is a prefix of the mapping name.
10107        Prefix = 1,
10108        /// The pattern is matched against the mapping name as a pathname glob
10109        /// (see "man 7 glob" and FNM_PATHNAME in "man 3 fnmatch").
10110        /// The key distinction is that path separators in the name are *not* matched
10111        /// against wildcards. So a pattern of the form "/usr/*/llvm" would match
10112        /// "/usr/lib/llvm" but not "/usr/lib/nested/llvm".
10113        /// Note: any "(deleted)" suffix is excluded before matching.
10114        GlobPath = 2,
10115        /// The pattern is matched against the mapping name without special-casing
10116        /// path separators. So a pattern of the form "/usr/*/llvm" would match
10117        /// both "/usr/lib/llvm" and "/usr/lib/nested/llvm".
10118        /// Note: any "(deleted)" suffix is excluded before matching.
10119        GlobString = 3,
10120    }
10121    impl MatchMode {
10122        /// String value of the enum field names used in the ProtoBuf definition.
10123        ///
10124        /// The values are not transformed in any way and thus are considered stable
10125        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
10126        pub fn as_str_name(&self) -> &'static str {
10127            match self {
10128                Self::Unknown => "MATCH_MODE_UNKNOWN",
10129                Self::Prefix => "MATCH_MODE_PREFIX",
10130                Self::GlobPath => "MATCH_MODE_GLOB_PATH",
10131                Self::GlobString => "MATCH_MODE_GLOB_STRING",
10132            }
10133        }
10134        /// Creates an enum from field names used in the ProtoBuf definition.
10135        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
10136            match value {
10137                "MATCH_MODE_UNKNOWN" => Some(Self::Unknown),
10138                "MATCH_MODE_PREFIX" => Some(Self::Prefix),
10139                "MATCH_MODE_GLOB_PATH" => Some(Self::GlobPath),
10140                "MATCH_MODE_GLOB_STRING" => Some(Self::GlobString),
10141                _ => None,
10142            }
10143        }
10144    }
10145}
10146/// Configuration for managed app heap graph snapshots.
10147#[derive(Clone, PartialEq, ::prost::Message)]
10148pub struct JavaHprofConfig {
10149    /// Command line allowlist, matched against the /proc/<pid>/cmdline (not the
10150    /// comm string). The semantics of this field were changed since its original
10151    /// introduction.
10152    ///
10153    /// On Android T+ (13+), this field can specify a single wildcard (*), and
10154    /// the profiler will attempt to match it in two possible ways:
10155    /// * if the pattern starts with a '/', then it is matched against the first
10156    ///    segment of the cmdline (i.e. argv0). For example "/bin/e*" would match
10157    ///    "/bin/echo".
10158    /// * otherwise the pattern is matched against the part of argv0
10159    ///    corresponding to the binary name (this is unrelated to /proc/pid/exe).
10160    ///    For example "echo" would match "/bin/echo".
10161    ///
10162    /// On Android S (12) and below, both this pattern and /proc/pid/cmdline get
10163    /// normalized prior to an exact string comparison. Normalization is as
10164    /// follows: (1) trim everything beyond the first null or "@" byte; (2) if
10165    /// the string contains forward slashes, trim everything up to and including
10166    /// the last one.
10167    ///
10168    /// Implementation note: in either case, at most 511 characters of cmdline
10169    /// are considered.
10170    #[prost(string, repeated, tag = "1")]
10171    pub process_cmdline: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
10172    /// For watermark based triggering or local debugging.
10173    #[prost(uint64, repeated, packed = "false", tag = "2")]
10174    pub pid: ::prost::alloc::vec::Vec<u64>,
10175    /// Only profile target if it was installed by one of the packages given.
10176    /// Special values are:
10177    /// * @system: installed on the system partition
10178    /// * @product: installed on the product partition
10179    /// * @null: sideloaded
10180    /// Supported on Android 12+.
10181    #[prost(string, repeated, tag = "7")]
10182    pub target_installed_by: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
10183    /// Dump at a predefined interval.
10184    #[prost(message, optional, tag = "3")]
10185    pub continuous_dump_config: ::core::option::Option<
10186        java_hprof_config::ContinuousDumpConfig,
10187    >,
10188    /// Do not profile processes whose anon RSS + swap < given value.
10189    #[prost(uint32, optional, tag = "4")]
10190    pub min_anonymous_memory_kb: ::core::option::Option<u32>,
10191    /// Do not profile processes whose Java heap size < given value.
10192    #[prost(uint32, optional, tag = "9")]
10193    pub min_java_heap_size_kb: ::core::option::Option<u32>,
10194    /// Include the process' /proc/self/smaps.
10195    /// This only shows maps that:
10196    /// * start with /system
10197    /// * start with /vendor
10198    /// * start with /data/app
10199    /// * contain "extracted in memory from Y", where Y matches any of the above
10200    ///
10201    /// Superseded by |smaps_config| in perfetto v58+.
10202    #[prost(bool, optional, tag = "5")]
10203    pub dump_smaps: ::core::option::Option<bool>,
10204    /// If set, include /proc/self/smaps memory mappings.
10205    ///
10206    /// Added in perfetto v58.
10207    #[prost(message, optional, tag = "8")]
10208    pub smaps_config: ::core::option::Option<SmapsConfig>,
10209    /// Exclude objects of the following types from the profile. This can be
10210    /// useful if lots of uninteresting objects, e.g. "sun.misc.Cleaner".
10211    #[prost(string, repeated, tag = "6")]
10212    pub ignored_types: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
10213    /// Dump the callsite of the thread triggering the OutOfMemoryError.
10214    /// Only applicable to OutOfMemoryError heap dumps
10215    #[prost(bool, optional, tag = "10")]
10216    pub dump_oome_callstack: ::core::option::Option<bool>,
10217}
10218/// Nested message and enum types in `JavaHprofConfig`.
10219pub mod java_hprof_config {
10220    /// If dump_interval_ms != 0, the following configuration is used.
10221    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
10222    pub struct ContinuousDumpConfig {
10223        /// ms to wait before first continuous dump.
10224        /// A dump is always created at the beginning of the trace.
10225        #[prost(uint32, optional, tag = "1")]
10226        pub dump_phase_ms: ::core::option::Option<u32>,
10227        /// ms to wait between following dumps.
10228        #[prost(uint32, optional, tag = "2")]
10229        pub dump_interval_ms: ::core::option::Option<u32>,
10230        /// If true, scans all the processes to find `process_cmdline` and filter by
10231        /// `min_anonymous_memory_kb` only at data source start. Default on Android
10232        /// S-.
10233        ///
10234        /// If false, rescans all the processes to find on every dump. Default on
10235        /// Android T+.
10236        #[prost(bool, optional, tag = "3")]
10237        pub scan_pids_only_on_start: ::core::option::Option<bool>,
10238    }
10239}
10240#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
10241pub struct PerfEvents {}
10242/// Nested message and enum types in `PerfEvents`.
10243pub mod perf_events {
10244    /// The primary event to count. If recording multiple events, this
10245    /// counter is the "group leader".
10246    /// Commented from the perspective of its use in |PerfEventConfig|.
10247    /// Next id: 13
10248    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
10249    pub struct Timebase {
10250        /// Optional modifiers for the event. Modelled after the perftool's
10251        /// <https://man7.org/linux/man-pages/man1/perf-list.1.html#EVENT_MODIFIERS>
10252        /// Currently supported: count scoping such as :u, :k, :uk, ...
10253        /// Modifiers can differ between the timebase and followers.
10254        #[prost(enumeration = "EventModifier", repeated, packed = "false", tag = "12")]
10255        pub modifiers: ::prost::alloc::vec::Vec<i32>,
10256        /// If set, samples will be timestamped with the given clock.
10257        /// If unset, the clock is chosen by the implementation.
10258        /// For software events, prefer PERF_CLOCK_BOOTTIME. However it cannot be
10259        /// used for hardware events (due to interrupt safety), for which the
10260        /// recommendation is to use one of the monotonic clocks.
10261        #[prost(enumeration = "PerfClock", optional, tag = "11")]
10262        pub timestamp_clock: ::core::option::Option<i32>,
10263        /// Optional arbitrary name for the event, to identify it in the parsed
10264        /// trace. Does *not* affect the profiling itself. If unset, the trace
10265        /// parser will choose a suitable name.
10266        #[prost(string, optional, tag = "10")]
10267        pub name: ::core::option::Option<::prost::alloc::string::String>,
10268        /// How often to snapshot the counter, along with any follower events and
10269        /// any additional sampled data such as callstacks.
10270        ///
10271        /// This choice also controls how the readings are taken:
10272        /// * With |frequency| or |period|, samples are taken by the kernel
10273        ///    into a ring buffer. Analogous to `perf record`.
10274        /// * With |poll_period_ms|, the userspace periodically snapshots
10275        ///    the counters using the read syscall. Analogous to `perf stat -I`.
10276        /// Prefer the sampling options unless you're recording PMUs whose
10277        /// perf drivers only support the reading mode.
10278        ///
10279        /// If unset, an implementation-defined sampling default is used.
10280        #[prost(oneof = "timebase::Interval", tags = "2, 1, 6")]
10281        pub interval: ::core::option::Option<timebase::Interval>,
10282        /// Counting event to use as the timebase.
10283        /// If unset, implies the CPU timer (SW_CPU_CLOCK) as the event,
10284        /// which is what you usually want.
10285        #[prost(oneof = "timebase::Event", tags = "4, 3, 5")]
10286        pub event: ::core::option::Option<timebase::Event>,
10287    }
10288    /// Nested message and enum types in `Timebase`.
10289    pub mod timebase {
10290        /// How often to snapshot the counter, along with any follower events and
10291        /// any additional sampled data such as callstacks.
10292        ///
10293        /// This choice also controls how the readings are taken:
10294        /// * With |frequency| or |period|, samples are taken by the kernel
10295        ///    into a ring buffer. Analogous to `perf record`.
10296        /// * With |poll_period_ms|, the userspace periodically snapshots
10297        ///    the counters using the read syscall. Analogous to `perf stat -I`.
10298        /// Prefer the sampling options unless you're recording PMUs whose
10299        /// perf drivers only support the reading mode.
10300        ///
10301        /// If unset, an implementation-defined sampling default is used.
10302        #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
10303        pub enum Interval {
10304            /// Per-cpu sampling frequency in Hz, as requested from the kernel. Not the
10305            /// same as 1/period.
10306            /// Details: the actual sampling will still be based on a period, but the
10307            /// kernel will dynamically adjust it based on the observed event rate, to
10308            /// approximate this frequency. Works best with steady-rate events like
10309            /// timers.
10310            /// Not guaranteed to be honored as the kernel can throttle the sampling
10311            /// rate if it's too high.
10312            #[prost(uint64, tag = "2")]
10313            Frequency(u64),
10314            /// Per-cpu sampling will occur every |period| counts of |event|.
10315            /// Prefer |frequency| by default, as it's easier to oversample with a
10316            /// fixed period.
10317            /// Not guaranteed to be honored as the kernel can throttle the sampling
10318            /// rate if it's too high.
10319            #[prost(uint64, tag = "1")]
10320            Period(u64),
10321            /// Per-cpu values are read by the userspace every interval. If using this
10322            /// mode, only follower events are supported. Options such as
10323            /// |PerfEventConfig.CallstackSampling| are incompatible.
10324            /// The period can't be guaranteed to be exact since the readings are taken
10325            /// by userspace.
10326            #[prost(uint32, tag = "6")]
10327            PollPeriodMs(u32),
10328        }
10329        /// Counting event to use as the timebase.
10330        /// If unset, implies the CPU timer (SW_CPU_CLOCK) as the event,
10331        /// which is what you usually want.
10332        #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
10333        pub enum Event {
10334            #[prost(enumeration = "super::Counter", tag = "4")]
10335            Counter(i32),
10336            #[prost(message, tag = "3")]
10337            Tracepoint(super::Tracepoint),
10338            #[prost(message, tag = "5")]
10339            RawEvent(super::RawEvent),
10340        }
10341    }
10342    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
10343    pub struct Tracepoint {
10344        /// Group and name for the tracepoint, acceptable forms:
10345        /// * "sched/sched_switch"
10346        /// * "sched:sched_switch"
10347        #[prost(string, optional, tag = "1")]
10348        pub name: ::core::option::Option<::prost::alloc::string::String>,
10349        /// Optional field-level filter for the tracepoint. Only events matching this
10350        /// filter will be counted (and therefore contribute to the sampling period).
10351        /// Example: "prev_pid >= 42 && next_pid == 0".
10352        /// For full syntax, see kernel documentation on "Event filtering":
10353        /// <https://www.kernel.org/doc/Documentation/trace/events.txt>
10354        #[prost(string, optional, tag = "2")]
10355        pub filter: ::core::option::Option<::prost::alloc::string::String>,
10356    }
10357    /// Syscall-level description of the event, propagated to the perf_event_attr
10358    /// struct. Primarily for local use-cases, since the event availability and
10359    /// encoding is hardware-specific.
10360    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
10361    pub struct RawEvent {
10362        /// Either |type| or |pmu_name| can be set.
10363        #[prost(uint32, optional, tag = "1")]
10364        pub r#type: ::core::option::Option<u32>,
10365        #[prost(uint64, optional, tag = "2")]
10366        pub config: ::core::option::Option<u64>,
10367        #[prost(uint64, optional, tag = "3")]
10368        pub config1: ::core::option::Option<u64>,
10369        #[prost(uint64, optional, tag = "4")]
10370        pub config2: ::core::option::Option<u64>,
10371        /// The name of a dynamic PMU under /sys/bus/event_source/devices
10372        /// (e.g. "armv8_pmuv3").
10373        /// If set, leave |type| unset.
10374        /// Android: the relevant sysfs paths are not allowlisted by default, so
10375        /// this option will require a rooted device with selinux disabled.
10376        #[prost(string, optional, tag = "5")]
10377        pub pmu_name: ::core::option::Option<::prost::alloc::string::String>,
10378    }
10379    /// Builtin counter names from the uapi header. Commented with their perf tool
10380    /// aliases.
10381    /// TODO(rsavitski): consider generating enums for cache events (should be
10382    /// finite), and generally make this list as extensive as possible. Excluding
10383    /// things like dynamic PMUs since those don't fit into a static enum.
10384    /// Next id: 21
10385    #[derive(
10386        Clone,
10387        Copy,
10388        Debug,
10389        PartialEq,
10390        Eq,
10391        Hash,
10392        PartialOrd,
10393        Ord,
10394        ::prost::Enumeration
10395    )]
10396    #[repr(i32)]
10397    pub enum Counter {
10398        UnknownCounter = 0,
10399        /// cpu-clock
10400        SwCpuClock = 1,
10401        /// page-faults, faults
10402        SwPageFaults = 2,
10403        /// task-clock
10404        SwTaskClock = 3,
10405        /// context-switches, cs
10406        SwContextSwitches = 4,
10407        /// cpu-migrations, migrations
10408        SwCpuMigrations = 5,
10409        /// minor-faults
10410        SwPageFaultsMin = 6,
10411        /// major-faults
10412        SwPageFaultsMaj = 7,
10413        /// alignment-faults
10414        SwAlignmentFaults = 8,
10415        /// emulation-faults
10416        SwEmulationFaults = 9,
10417        /// dummy
10418        SwDummy = 20,
10419        /// cpu-cycles, cycles
10420        HwCpuCycles = 10,
10421        /// instructions
10422        HwInstructions = 11,
10423        /// cache-references
10424        HwCacheReferences = 12,
10425        /// cache-misses
10426        HwCacheMisses = 13,
10427        /// branch-instructions, branches
10428        HwBranchInstructions = 14,
10429        /// branch-misses
10430        HwBranchMisses = 15,
10431        /// bus-cycles
10432        HwBusCycles = 16,
10433        /// stalled-cycles-frontend, idle-cycles-frontend
10434        HwStalledCyclesFrontend = 17,
10435        /// stalled-cycles-backend, idle-cycles-backend
10436        HwStalledCyclesBackend = 18,
10437        /// ref-cycles
10438        HwRefCpuCycles = 19,
10439    }
10440    impl Counter {
10441        /// String value of the enum field names used in the ProtoBuf definition.
10442        ///
10443        /// The values are not transformed in any way and thus are considered stable
10444        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
10445        pub fn as_str_name(&self) -> &'static str {
10446            match self {
10447                Self::UnknownCounter => "UNKNOWN_COUNTER",
10448                Self::SwCpuClock => "SW_CPU_CLOCK",
10449                Self::SwPageFaults => "SW_PAGE_FAULTS",
10450                Self::SwTaskClock => "SW_TASK_CLOCK",
10451                Self::SwContextSwitches => "SW_CONTEXT_SWITCHES",
10452                Self::SwCpuMigrations => "SW_CPU_MIGRATIONS",
10453                Self::SwPageFaultsMin => "SW_PAGE_FAULTS_MIN",
10454                Self::SwPageFaultsMaj => "SW_PAGE_FAULTS_MAJ",
10455                Self::SwAlignmentFaults => "SW_ALIGNMENT_FAULTS",
10456                Self::SwEmulationFaults => "SW_EMULATION_FAULTS",
10457                Self::SwDummy => "SW_DUMMY",
10458                Self::HwCpuCycles => "HW_CPU_CYCLES",
10459                Self::HwInstructions => "HW_INSTRUCTIONS",
10460                Self::HwCacheReferences => "HW_CACHE_REFERENCES",
10461                Self::HwCacheMisses => "HW_CACHE_MISSES",
10462                Self::HwBranchInstructions => "HW_BRANCH_INSTRUCTIONS",
10463                Self::HwBranchMisses => "HW_BRANCH_MISSES",
10464                Self::HwBusCycles => "HW_BUS_CYCLES",
10465                Self::HwStalledCyclesFrontend => "HW_STALLED_CYCLES_FRONTEND",
10466                Self::HwStalledCyclesBackend => "HW_STALLED_CYCLES_BACKEND",
10467                Self::HwRefCpuCycles => "HW_REF_CPU_CYCLES",
10468            }
10469        }
10470        /// Creates an enum from field names used in the ProtoBuf definition.
10471        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
10472            match value {
10473                "UNKNOWN_COUNTER" => Some(Self::UnknownCounter),
10474                "SW_CPU_CLOCK" => Some(Self::SwCpuClock),
10475                "SW_PAGE_FAULTS" => Some(Self::SwPageFaults),
10476                "SW_TASK_CLOCK" => Some(Self::SwTaskClock),
10477                "SW_CONTEXT_SWITCHES" => Some(Self::SwContextSwitches),
10478                "SW_CPU_MIGRATIONS" => Some(Self::SwCpuMigrations),
10479                "SW_PAGE_FAULTS_MIN" => Some(Self::SwPageFaultsMin),
10480                "SW_PAGE_FAULTS_MAJ" => Some(Self::SwPageFaultsMaj),
10481                "SW_ALIGNMENT_FAULTS" => Some(Self::SwAlignmentFaults),
10482                "SW_EMULATION_FAULTS" => Some(Self::SwEmulationFaults),
10483                "SW_DUMMY" => Some(Self::SwDummy),
10484                "HW_CPU_CYCLES" => Some(Self::HwCpuCycles),
10485                "HW_INSTRUCTIONS" => Some(Self::HwInstructions),
10486                "HW_CACHE_REFERENCES" => Some(Self::HwCacheReferences),
10487                "HW_CACHE_MISSES" => Some(Self::HwCacheMisses),
10488                "HW_BRANCH_INSTRUCTIONS" => Some(Self::HwBranchInstructions),
10489                "HW_BRANCH_MISSES" => Some(Self::HwBranchMisses),
10490                "HW_BUS_CYCLES" => Some(Self::HwBusCycles),
10491                "HW_STALLED_CYCLES_FRONTEND" => Some(Self::HwStalledCyclesFrontend),
10492                "HW_STALLED_CYCLES_BACKEND" => Some(Self::HwStalledCyclesBackend),
10493                "HW_REF_CPU_CYCLES" => Some(Self::HwRefCpuCycles),
10494                _ => None,
10495            }
10496        }
10497    }
10498    /// Subset of clocks that is supported by perf timestamping.
10499    /// CLOCK_TAI is excluded since it's not expected to be used in practice, but
10500    /// would require additions to the trace clock synchronisation logic.
10501    #[derive(
10502        Clone,
10503        Copy,
10504        Debug,
10505        PartialEq,
10506        Eq,
10507        Hash,
10508        PartialOrd,
10509        Ord,
10510        ::prost::Enumeration
10511    )]
10512    #[repr(i32)]
10513    pub enum PerfClock {
10514        UnknownPerfClock = 0,
10515        Realtime = 1,
10516        Monotonic = 2,
10517        MonotonicRaw = 3,
10518        Boottime = 4,
10519    }
10520    impl PerfClock {
10521        /// String value of the enum field names used in the ProtoBuf definition.
10522        ///
10523        /// The values are not transformed in any way and thus are considered stable
10524        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
10525        pub fn as_str_name(&self) -> &'static str {
10526            match self {
10527                Self::UnknownPerfClock => "UNKNOWN_PERF_CLOCK",
10528                Self::Realtime => "PERF_CLOCK_REALTIME",
10529                Self::Monotonic => "PERF_CLOCK_MONOTONIC",
10530                Self::MonotonicRaw => "PERF_CLOCK_MONOTONIC_RAW",
10531                Self::Boottime => "PERF_CLOCK_BOOTTIME",
10532            }
10533        }
10534        /// Creates an enum from field names used in the ProtoBuf definition.
10535        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
10536            match value {
10537                "UNKNOWN_PERF_CLOCK" => Some(Self::UnknownPerfClock),
10538                "PERF_CLOCK_REALTIME" => Some(Self::Realtime),
10539                "PERF_CLOCK_MONOTONIC" => Some(Self::Monotonic),
10540                "PERF_CLOCK_MONOTONIC_RAW" => Some(Self::MonotonicRaw),
10541                "PERF_CLOCK_BOOTTIME" => Some(Self::Boottime),
10542                _ => None,
10543            }
10544        }
10545    }
10546    #[derive(
10547        Clone,
10548        Copy,
10549        Debug,
10550        PartialEq,
10551        Eq,
10552        Hash,
10553        PartialOrd,
10554        Ord,
10555        ::prost::Enumeration
10556    )]
10557    #[repr(i32)]
10558    pub enum EventModifier {
10559        UnknownEventModifier = 0,
10560        /// count only while in userspace
10561        CountUserspace = 1,
10562        /// count only while in kernel
10563        CountKernel = 2,
10564        /// count only while in hypervisor
10565        CountHypervisor = 3,
10566    }
10567    impl EventModifier {
10568        /// String value of the enum field names used in the ProtoBuf definition.
10569        ///
10570        /// The values are not transformed in any way and thus are considered stable
10571        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
10572        pub fn as_str_name(&self) -> &'static str {
10573            match self {
10574                Self::UnknownEventModifier => "UNKNOWN_EVENT_MODIFIER",
10575                Self::CountUserspace => "EVENT_MODIFIER_COUNT_USERSPACE",
10576                Self::CountKernel => "EVENT_MODIFIER_COUNT_KERNEL",
10577                Self::CountHypervisor => "EVENT_MODIFIER_COUNT_HYPERVISOR",
10578            }
10579        }
10580        /// Creates an enum from field names used in the ProtoBuf definition.
10581        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
10582            match value {
10583                "UNKNOWN_EVENT_MODIFIER" => Some(Self::UnknownEventModifier),
10584                "EVENT_MODIFIER_COUNT_USERSPACE" => Some(Self::CountUserspace),
10585                "EVENT_MODIFIER_COUNT_KERNEL" => Some(Self::CountKernel),
10586                "EVENT_MODIFIER_COUNT_HYPERVISOR" => Some(Self::CountHypervisor),
10587                _ => None,
10588            }
10589        }
10590    }
10591}
10592/// Additional events associated with a leader.
10593/// See <https://man7.org/linux/man-pages/man1/perf-list.1.html#LEADER_SAMPLING>
10594#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
10595pub struct FollowerEvent {
10596    /// Modifiers can differ between the timebase and followers.
10597    #[prost(
10598        enumeration = "perf_events::EventModifier",
10599        repeated,
10600        packed = "false",
10601        tag = "5"
10602    )]
10603    pub modifiers: ::prost::alloc::vec::Vec<i32>,
10604    /// Optional arbitrary name for the event, to identify it in the parsed
10605    /// trace. Does *not* affect the profiling itself. If unset, the trace
10606    /// parser will choose a suitable name.
10607    #[prost(string, optional, tag = "4")]
10608    pub name: ::core::option::Option<::prost::alloc::string::String>,
10609    #[prost(oneof = "follower_event::Event", tags = "1, 2, 3")]
10610    pub event: ::core::option::Option<follower_event::Event>,
10611}
10612/// Nested message and enum types in `FollowerEvent`.
10613pub mod follower_event {
10614    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
10615    pub enum Event {
10616        #[prost(enumeration = "super::perf_events::Counter", tag = "1")]
10617        Counter(i32),
10618        #[prost(message, tag = "2")]
10619        Tracepoint(super::perf_events::Tracepoint),
10620        #[prost(message, tag = "3")]
10621        RawEvent(super::perf_events::RawEvent),
10622    }
10623}
10624/// Configuration for the traced_perf profiler.
10625///
10626/// Example config for basic cpu profiling:
10627///    perf_event_config {
10628///      timebase {
10629///        frequency: 80
10630///      }
10631///      callstack_sampling {
10632///        scope {
10633///          target_cmdline: "surfaceflinger"
10634///          target_cmdline: "system_server"
10635///        }
10636///        kernel_frames: true
10637///      }
10638///    }
10639///
10640/// Next id: 23
10641#[derive(Clone, PartialEq, ::prost::Message)]
10642pub struct PerfEventConfig {
10643    /// What event to sample on, and how often.
10644    /// Defined in common/perf_events.proto.
10645    #[prost(message, optional, tag = "15")]
10646    pub timebase: ::core::option::Option<perf_events::Timebase>,
10647    /// Other events associated with the leader described in the timebase.
10648    #[prost(message, repeated, tag = "19")]
10649    pub followers: ::prost::alloc::vec::Vec<FollowerEvent>,
10650    /// If set, the profiler will sample userspace processes' callstacks at the
10651    /// interval specified by the |timebase|.
10652    /// If unset, the profiler will record only the event counts.
10653    #[prost(message, optional, tag = "16")]
10654    pub callstack_sampling: ::core::option::Option<perf_event_config::CallstackSampling>,
10655    /// List of cpu indices for counting. If empty, the default is all cpus.
10656    ///
10657    /// Note: this is not inside |callstack_sampling.scope| as it also applies to
10658    /// counter-only traces. A future change will likely reorganise the options,
10659    /// but this field will continue to be supported.
10660    ///
10661    /// Available since: perfetto v50.
10662    #[prost(uint32, repeated, packed = "false", tag = "20")]
10663    pub target_cpu: ::prost::alloc::vec::Vec<u32>,
10664    /// Allow failure of perf_event_open
10665    #[prost(bool, optional, tag = "21")]
10666    pub ignore_open_failure: ::core::option::Option<bool>,
10667    /// If not empty, consider only CPUs whose CPUID matches one of these values.
10668    #[prost(string, repeated, tag = "22")]
10669    pub cpuid: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
10670    /// How often the per-cpu ring buffers are read by the producer.
10671    /// If unset, an implementation-defined default is used.
10672    #[prost(uint32, optional, tag = "8")]
10673    pub ring_buffer_read_period_ms: ::core::option::Option<u32>,
10674    /// Size (in 4k pages) of each per-cpu ring buffer that is filled by the
10675    /// kernel. If set, must be a power of two.
10676    /// If unset, an implementation-defined default is used.
10677    #[prost(uint32, optional, tag = "3")]
10678    pub ring_buffer_pages: ::core::option::Option<u32>,
10679    /// Drop samples if the heap memory held by the samples in the unwinder queue
10680    /// is above the given limit. This counts the memory across all concurrent data
10681    /// sources (not just this one's), and there is no fairness guarantee - the
10682    /// whole quota might be used up by a concurrent source.
10683    #[prost(uint64, optional, tag = "17")]
10684    pub max_enqueued_footprint_kb: ::core::option::Option<u64>,
10685    /// Stop the data source if traced_perf's combined {RssAnon + Swap} memory
10686    /// footprint exceeds this value.
10687    #[prost(uint32, optional, tag = "13")]
10688    pub max_daemon_memory_kb: ::core::option::Option<u32>,
10689    /// Timeout for the remote /proc/<pid>/{maps,mem} file descriptors for a
10690    /// sampled process. This is primarily for Android, where this lookup is
10691    /// asynchronous. As long as the producer is waiting, the associated samples
10692    /// will be kept enqueued (putting pressure on the capacity of the shared
10693    /// unwinding queue). Once a lookup for a process expires, all associated
10694    /// samples are discarded. However, if the lookup still succeeds after the
10695    /// timeout, future samples will be handled normally.
10696    /// If unset, an implementation-defined default is used.
10697    #[prost(uint32, optional, tag = "9")]
10698    pub remote_descriptor_timeout_ms: ::core::option::Option<u32>,
10699    /// Optional period for clearing state cached by the userspace unwinder. This
10700    /// is a heavy operation that is only necessary for traces that target a wide
10701    /// set of processes, and require the memory footprint to be reset
10702    /// periodically. To effectively disable the cache clearing, set to a value
10703    /// greater than your trace duration.
10704    ///
10705    /// Relevant only if |callstack_sampling.user_frames| is set to UNWIND_DWARF.
10706    ///
10707    /// If zero or unset:
10708    /// * before perfetto v52: no cache clearing.
10709    /// * perfetto v52+: implementation chooses an infrequent default.
10710    #[prost(uint32, optional, tag = "10")]
10711    pub unwind_state_clear_period_ms: ::core::option::Option<u32>,
10712    /// If set, only profile target if it was installed by a package with one of
10713    /// these names. Special values:
10714    /// * "@system": installed on the system partition
10715    /// * "@product": installed on the product partition
10716    /// * "@null": sideloaded
10717    /// Supported on Android 12+.
10718    #[prost(string, repeated, tag = "18")]
10719    pub target_installed_by: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
10720    /// Note: legacy configs had to set |all_cpus| to true to pass parsing.
10721    /// We rely on this to detect such configs.
10722    #[prost(bool, optional, tag = "1")]
10723    pub all_cpus: ::core::option::Option<bool>,
10724    #[prost(uint32, optional, tag = "2")]
10725    pub sampling_frequency: ::core::option::Option<u32>,
10726    #[prost(bool, optional, tag = "12")]
10727    pub kernel_frames: ::core::option::Option<bool>,
10728    #[prost(int32, repeated, packed = "false", tag = "4")]
10729    pub target_pid: ::prost::alloc::vec::Vec<i32>,
10730    #[prost(string, repeated, tag = "5")]
10731    pub target_cmdline: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
10732    #[prost(int32, repeated, packed = "false", tag = "6")]
10733    pub exclude_pid: ::prost::alloc::vec::Vec<i32>,
10734    #[prost(string, repeated, tag = "7")]
10735    pub exclude_cmdline: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
10736    #[prost(uint32, optional, tag = "11")]
10737    pub additional_cmdline_count: ::core::option::Option<u32>,
10738}
10739/// Nested message and enum types in `PerfEventConfig`.
10740pub mod perf_event_config {
10741    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
10742    pub struct CallstackSampling {
10743        /// Defines a set of processes for which samples are retained/skipped. If
10744        /// unset, all samples are kept, but beware that it will be very heavy on the
10745        /// stack unwinder, which might start dropping samples due to overload.
10746        #[prost(message, optional, tag = "1")]
10747        pub scope: ::core::option::Option<Scope>,
10748        /// If true, callstacks will include the kernel-space frames. Such frames can
10749        /// be identified by a magical "kernel" string as their mapping name.
10750        /// Requires traced_perf to be running as root, or kptr_restrict to have been
10751        /// manually unrestricted. On Android, the platform should do the right thing
10752        /// on debug builds.
10753        /// This does *not* disclose KASLR, as only the function names are emitted.
10754        #[prost(bool, optional, tag = "2")]
10755        pub kernel_frames: ::core::option::Option<bool>,
10756        /// Whether to record and unwind userspace callstacks. If unset, defaults to
10757        /// including userspace (UNWIND_DWARF) both for backwards compatibility and
10758        /// as the most common default (this defaulting is only applicable if the
10759        /// outer CallstackSampling message is explicitly set).
10760        #[prost(enumeration = "UnwindMode", optional, tag = "3")]
10761        pub user_frames: ::core::option::Option<i32>,
10762    }
10763    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
10764    pub struct Scope {
10765        /// Process ID (TGID) allowlist. If this list is not empty, only matching
10766        /// samples will be retained. If multiple allow/deny-lists are
10767        /// specified by the config, then all of them are evaluated for each sampled
10768        /// process.
10769        #[prost(int32, repeated, packed = "false", tag = "1")]
10770        pub target_pid: ::prost::alloc::vec::Vec<i32>,
10771        /// Command line allowlist, matched against the /proc/<pid>/cmdline (not the
10772        /// comm string). The semantics of this field were changed since its original
10773        /// introduction.
10774        ///
10775        /// On Android T+ (13+), this field can specify a single wildcard (*), and
10776        /// the profiler will attempt to match it in two possible ways:
10777        /// * if the pattern starts with a '/', then it is matched against the first
10778        ///    segment of the cmdline (i.e. argv0). For example "/bin/e*" would match
10779        ///    "/bin/echo".
10780        /// * otherwise the pattern is matched against the part of argv0
10781        ///    corresponding to the binary name (this is unrelated to /proc/pid/exe).
10782        ///    For example "echo" would match "/bin/echo".
10783        ///
10784        /// On Android S (12) and below, both this pattern and /proc/pid/cmdline get
10785        /// normalized prior to an exact string comparison. Normalization is as
10786        /// follows: (1) trim everything beyond the first null or "@" byte; (2) if
10787        /// the string contains forward slashes, trim everything up to and including
10788        /// the last one.
10789        ///
10790        /// Implementation note: in either case, at most 511 characters of cmdline
10791        /// are considered.
10792        #[prost(string, repeated, tag = "2")]
10793        pub target_cmdline: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
10794        /// List of excluded pids.
10795        #[prost(int32, repeated, packed = "false", tag = "3")]
10796        pub exclude_pid: ::prost::alloc::vec::Vec<i32>,
10797        /// List of excluded cmdlines. See description of |target_cmdline| for how
10798        /// this is handled.
10799        #[prost(string, repeated, tag = "4")]
10800        pub exclude_cmdline: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
10801        /// Number of additional command lines to sample. Only those which are
10802        /// neither explicitly included nor excluded will be considered. Processes
10803        /// are accepted on a first come, first served basis.
10804        #[prost(uint32, optional, tag = "5")]
10805        pub additional_cmdline_count: ::core::option::Option<u32>,
10806        /// If set to N, all encountered processes will be put into one of the N
10807        /// possible bins, and only one randomly-chosen bin will be selected for
10808        /// unwinding. The binning is simply "pid % N", under the assumption that
10809        /// low-order bits of pids are roughly uniformly distributed. Other explicit
10810        /// inclusions/exclusions in this |Scope| message are still respected.
10811        ///
10812        /// The profiler will report the chosen shard in PerfSampleDefaults, and the
10813        /// values will be queryable in trace processor under the "stats" table as
10814        /// "perf_process_shard_count" and "perf_chosen_process_shard".
10815        ///
10816        /// NB: all data sources in a config that set |process_shard_count| must set
10817        /// it to the same value. The profiler will choose one bin for all those data
10818        /// sources.
10819        #[prost(uint32, optional, tag = "6")]
10820        pub process_shard_count: ::core::option::Option<u32>,
10821    }
10822    /// Userspace unwinding mode.
10823    #[derive(
10824        Clone,
10825        Copy,
10826        Debug,
10827        PartialEq,
10828        Eq,
10829        Hash,
10830        PartialOrd,
10831        Ord,
10832        ::prost::Enumeration
10833    )]
10834    #[repr(i32)]
10835    pub enum UnwindMode {
10836        UnwindUnknown = 0,
10837        /// Do not unwind userspace:
10838        UnwindSkip = 1,
10839        /// Use libunwindstack (default):
10840        UnwindDwarf = 2,
10841        /// Use userspace frame pointer unwinder:
10842        UnwindFramePointer = 3,
10843        /// Ask the kernel to unwind the userspace stack via frame pointers, using
10844        /// PERF_SAMPLE_CALLCHAIN. The user stack bytes are not copied into the
10845        /// sample, which avoids the per-sample copy cost and the depth limit
10846        /// imposed by PERF_SAMPLE_STACK_USER. Requires that the userspace code
10847        /// (including system libraries) is built with frame pointers - the kernel
10848        /// walks the chain and returns instruction addresses, which still need to
10849        /// be symbolized offline using the recorded process mappings.
10850        UnwindKernelFramePointer = 4,
10851    }
10852    impl UnwindMode {
10853        /// String value of the enum field names used in the ProtoBuf definition.
10854        ///
10855        /// The values are not transformed in any way and thus are considered stable
10856        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
10857        pub fn as_str_name(&self) -> &'static str {
10858            match self {
10859                Self::UnwindUnknown => "UNWIND_UNKNOWN",
10860                Self::UnwindSkip => "UNWIND_SKIP",
10861                Self::UnwindDwarf => "UNWIND_DWARF",
10862                Self::UnwindFramePointer => "UNWIND_FRAME_POINTER",
10863                Self::UnwindKernelFramePointer => "UNWIND_KERNEL_FRAME_POINTER",
10864            }
10865        }
10866        /// Creates an enum from field names used in the ProtoBuf definition.
10867        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
10868            match value {
10869                "UNWIND_UNKNOWN" => Some(Self::UnwindUnknown),
10870                "UNWIND_SKIP" => Some(Self::UnwindSkip),
10871                "UNWIND_DWARF" => Some(Self::UnwindDwarf),
10872                "UNWIND_FRAME_POINTER" => Some(Self::UnwindFramePointer),
10873                "UNWIND_KERNEL_FRAME_POINTER" => Some(Self::UnwindKernelFramePointer),
10874                _ => None,
10875            }
10876        }
10877    }
10878}
10879/// Counter definitions for Linux's /proc/meminfo.
10880#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
10881#[repr(i32)]
10882pub enum MeminfoCounters {
10883    MeminfoUnspecified = 0,
10884    MeminfoMemTotal = 1,
10885    MeminfoMemFree = 2,
10886    MeminfoMemAvailable = 3,
10887    MeminfoBuffers = 4,
10888    MeminfoCached = 5,
10889    MeminfoSwapCached = 6,
10890    MeminfoActive = 7,
10891    MeminfoInactive = 8,
10892    MeminfoActiveAnon = 9,
10893    MeminfoInactiveAnon = 10,
10894    MeminfoActiveFile = 11,
10895    MeminfoInactiveFile = 12,
10896    MeminfoUnevictable = 13,
10897    MeminfoMlocked = 14,
10898    MeminfoSwapTotal = 15,
10899    MeminfoSwapFree = 16,
10900    MeminfoDirty = 17,
10901    MeminfoWriteback = 18,
10902    MeminfoAnonPages = 19,
10903    MeminfoMapped = 20,
10904    MeminfoShmem = 21,
10905    MeminfoSlab = 22,
10906    MeminfoSlabReclaimable = 23,
10907    MeminfoSlabUnreclaimable = 24,
10908    MeminfoKernelStack = 25,
10909    MeminfoPageTables = 26,
10910    MeminfoCommitLimit = 27,
10911    MeminfoCommitedAs = 28,
10912    MeminfoVmallocTotal = 29,
10913    MeminfoVmallocUsed = 30,
10914    MeminfoVmallocChunk = 31,
10915    MeminfoCmaTotal = 32,
10916    MeminfoCmaFree = 33,
10917    MeminfoGpu = 34,
10918    MeminfoZram = 35,
10919    MeminfoMisc = 36,
10920    MeminfoIonHeap = 37,
10921    MeminfoIonHeapPool = 38,
10922}
10923impl MeminfoCounters {
10924    /// String value of the enum field names used in the ProtoBuf definition.
10925    ///
10926    /// The values are not transformed in any way and thus are considered stable
10927    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
10928    pub fn as_str_name(&self) -> &'static str {
10929        match self {
10930            Self::MeminfoUnspecified => "MEMINFO_UNSPECIFIED",
10931            Self::MeminfoMemTotal => "MEMINFO_MEM_TOTAL",
10932            Self::MeminfoMemFree => "MEMINFO_MEM_FREE",
10933            Self::MeminfoMemAvailable => "MEMINFO_MEM_AVAILABLE",
10934            Self::MeminfoBuffers => "MEMINFO_BUFFERS",
10935            Self::MeminfoCached => "MEMINFO_CACHED",
10936            Self::MeminfoSwapCached => "MEMINFO_SWAP_CACHED",
10937            Self::MeminfoActive => "MEMINFO_ACTIVE",
10938            Self::MeminfoInactive => "MEMINFO_INACTIVE",
10939            Self::MeminfoActiveAnon => "MEMINFO_ACTIVE_ANON",
10940            Self::MeminfoInactiveAnon => "MEMINFO_INACTIVE_ANON",
10941            Self::MeminfoActiveFile => "MEMINFO_ACTIVE_FILE",
10942            Self::MeminfoInactiveFile => "MEMINFO_INACTIVE_FILE",
10943            Self::MeminfoUnevictable => "MEMINFO_UNEVICTABLE",
10944            Self::MeminfoMlocked => "MEMINFO_MLOCKED",
10945            Self::MeminfoSwapTotal => "MEMINFO_SWAP_TOTAL",
10946            Self::MeminfoSwapFree => "MEMINFO_SWAP_FREE",
10947            Self::MeminfoDirty => "MEMINFO_DIRTY",
10948            Self::MeminfoWriteback => "MEMINFO_WRITEBACK",
10949            Self::MeminfoAnonPages => "MEMINFO_ANON_PAGES",
10950            Self::MeminfoMapped => "MEMINFO_MAPPED",
10951            Self::MeminfoShmem => "MEMINFO_SHMEM",
10952            Self::MeminfoSlab => "MEMINFO_SLAB",
10953            Self::MeminfoSlabReclaimable => "MEMINFO_SLAB_RECLAIMABLE",
10954            Self::MeminfoSlabUnreclaimable => "MEMINFO_SLAB_UNRECLAIMABLE",
10955            Self::MeminfoKernelStack => "MEMINFO_KERNEL_STACK",
10956            Self::MeminfoPageTables => "MEMINFO_PAGE_TABLES",
10957            Self::MeminfoCommitLimit => "MEMINFO_COMMIT_LIMIT",
10958            Self::MeminfoCommitedAs => "MEMINFO_COMMITED_AS",
10959            Self::MeminfoVmallocTotal => "MEMINFO_VMALLOC_TOTAL",
10960            Self::MeminfoVmallocUsed => "MEMINFO_VMALLOC_USED",
10961            Self::MeminfoVmallocChunk => "MEMINFO_VMALLOC_CHUNK",
10962            Self::MeminfoCmaTotal => "MEMINFO_CMA_TOTAL",
10963            Self::MeminfoCmaFree => "MEMINFO_CMA_FREE",
10964            Self::MeminfoGpu => "MEMINFO_GPU",
10965            Self::MeminfoZram => "MEMINFO_ZRAM",
10966            Self::MeminfoMisc => "MEMINFO_MISC",
10967            Self::MeminfoIonHeap => "MEMINFO_ION_HEAP",
10968            Self::MeminfoIonHeapPool => "MEMINFO_ION_HEAP_POOL",
10969        }
10970    }
10971    /// Creates an enum from field names used in the ProtoBuf definition.
10972    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
10973        match value {
10974            "MEMINFO_UNSPECIFIED" => Some(Self::MeminfoUnspecified),
10975            "MEMINFO_MEM_TOTAL" => Some(Self::MeminfoMemTotal),
10976            "MEMINFO_MEM_FREE" => Some(Self::MeminfoMemFree),
10977            "MEMINFO_MEM_AVAILABLE" => Some(Self::MeminfoMemAvailable),
10978            "MEMINFO_BUFFERS" => Some(Self::MeminfoBuffers),
10979            "MEMINFO_CACHED" => Some(Self::MeminfoCached),
10980            "MEMINFO_SWAP_CACHED" => Some(Self::MeminfoSwapCached),
10981            "MEMINFO_ACTIVE" => Some(Self::MeminfoActive),
10982            "MEMINFO_INACTIVE" => Some(Self::MeminfoInactive),
10983            "MEMINFO_ACTIVE_ANON" => Some(Self::MeminfoActiveAnon),
10984            "MEMINFO_INACTIVE_ANON" => Some(Self::MeminfoInactiveAnon),
10985            "MEMINFO_ACTIVE_FILE" => Some(Self::MeminfoActiveFile),
10986            "MEMINFO_INACTIVE_FILE" => Some(Self::MeminfoInactiveFile),
10987            "MEMINFO_UNEVICTABLE" => Some(Self::MeminfoUnevictable),
10988            "MEMINFO_MLOCKED" => Some(Self::MeminfoMlocked),
10989            "MEMINFO_SWAP_TOTAL" => Some(Self::MeminfoSwapTotal),
10990            "MEMINFO_SWAP_FREE" => Some(Self::MeminfoSwapFree),
10991            "MEMINFO_DIRTY" => Some(Self::MeminfoDirty),
10992            "MEMINFO_WRITEBACK" => Some(Self::MeminfoWriteback),
10993            "MEMINFO_ANON_PAGES" => Some(Self::MeminfoAnonPages),
10994            "MEMINFO_MAPPED" => Some(Self::MeminfoMapped),
10995            "MEMINFO_SHMEM" => Some(Self::MeminfoShmem),
10996            "MEMINFO_SLAB" => Some(Self::MeminfoSlab),
10997            "MEMINFO_SLAB_RECLAIMABLE" => Some(Self::MeminfoSlabReclaimable),
10998            "MEMINFO_SLAB_UNRECLAIMABLE" => Some(Self::MeminfoSlabUnreclaimable),
10999            "MEMINFO_KERNEL_STACK" => Some(Self::MeminfoKernelStack),
11000            "MEMINFO_PAGE_TABLES" => Some(Self::MeminfoPageTables),
11001            "MEMINFO_COMMIT_LIMIT" => Some(Self::MeminfoCommitLimit),
11002            "MEMINFO_COMMITED_AS" => Some(Self::MeminfoCommitedAs),
11003            "MEMINFO_VMALLOC_TOTAL" => Some(Self::MeminfoVmallocTotal),
11004            "MEMINFO_VMALLOC_USED" => Some(Self::MeminfoVmallocUsed),
11005            "MEMINFO_VMALLOC_CHUNK" => Some(Self::MeminfoVmallocChunk),
11006            "MEMINFO_CMA_TOTAL" => Some(Self::MeminfoCmaTotal),
11007            "MEMINFO_CMA_FREE" => Some(Self::MeminfoCmaFree),
11008            "MEMINFO_GPU" => Some(Self::MeminfoGpu),
11009            "MEMINFO_ZRAM" => Some(Self::MeminfoZram),
11010            "MEMINFO_MISC" => Some(Self::MeminfoMisc),
11011            "MEMINFO_ION_HEAP" => Some(Self::MeminfoIonHeap),
11012            "MEMINFO_ION_HEAP_POOL" => Some(Self::MeminfoIonHeapPool),
11013            _ => None,
11014        }
11015    }
11016}
11017/// Counter definitions for Linux's /proc/vmstat.
11018#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
11019#[repr(i32)]
11020pub enum VmstatCounters {
11021    VmstatUnspecified = 0,
11022    VmstatNrFreePages = 1,
11023    VmstatNrAllocBatch = 2,
11024    VmstatNrInactiveAnon = 3,
11025    VmstatNrActiveAnon = 4,
11026    VmstatNrInactiveFile = 5,
11027    VmstatNrActiveFile = 6,
11028    VmstatNrUnevictable = 7,
11029    VmstatNrMlock = 8,
11030    VmstatNrAnonPages = 9,
11031    VmstatNrMapped = 10,
11032    VmstatNrFilePages = 11,
11033    VmstatNrDirty = 12,
11034    VmstatNrWriteback = 13,
11035    VmstatNrSlabReclaimable = 14,
11036    VmstatNrSlabUnreclaimable = 15,
11037    VmstatNrPageTablePages = 16,
11038    VmstatNrKernelStack = 17,
11039    VmstatNrOverhead = 18,
11040    VmstatNrUnstable = 19,
11041    VmstatNrBounce = 20,
11042    VmstatNrVmscanWrite = 21,
11043    VmstatNrVmscanImmediateReclaim = 22,
11044    VmstatNrWritebackTemp = 23,
11045    VmstatNrIsolatedAnon = 24,
11046    VmstatNrIsolatedFile = 25,
11047    VmstatNrShmem = 26,
11048    VmstatNrDirtied = 27,
11049    VmstatNrWritten = 28,
11050    VmstatNrPagesScanned = 29,
11051    VmstatWorkingsetRefault = 30,
11052    VmstatWorkingsetActivate = 31,
11053    VmstatWorkingsetNodereclaim = 32,
11054    VmstatNrAnonTransparentHugepages = 33,
11055    VmstatNrFreeCma = 34,
11056    VmstatNrSwapcache = 35,
11057    VmstatNrDirtyThreshold = 36,
11058    VmstatNrDirtyBackgroundThreshold = 37,
11059    VmstatPgpgin = 38,
11060    VmstatPgpgout = 39,
11061    VmstatPgpgoutclean = 40,
11062    VmstatPswpin = 41,
11063    VmstatPswpout = 42,
11064    VmstatPgallocDma = 43,
11065    VmstatPgallocNormal = 44,
11066    VmstatPgallocMovable = 45,
11067    VmstatPgfree = 46,
11068    VmstatPgactivate = 47,
11069    VmstatPgdeactivate = 48,
11070    VmstatPgfault = 49,
11071    VmstatPgmajfault = 50,
11072    VmstatPgrefillDma = 51,
11073    VmstatPgrefillNormal = 52,
11074    VmstatPgrefillMovable = 53,
11075    VmstatPgstealKswapdDma = 54,
11076    VmstatPgstealKswapdNormal = 55,
11077    VmstatPgstealKswapdMovable = 56,
11078    VmstatPgstealDirectDma = 57,
11079    VmstatPgstealDirectNormal = 58,
11080    VmstatPgstealDirectMovable = 59,
11081    VmstatPgscanKswapdDma = 60,
11082    VmstatPgscanKswapdNormal = 61,
11083    VmstatPgscanKswapdMovable = 62,
11084    VmstatPgscanDirectDma = 63,
11085    VmstatPgscanDirectNormal = 64,
11086    VmstatPgscanDirectMovable = 65,
11087    VmstatPgscanDirectThrottle = 66,
11088    VmstatPginodesteal = 67,
11089    VmstatSlabsScanned = 68,
11090    VmstatKswapdInodesteal = 69,
11091    VmstatKswapdLowWmarkHitQuickly = 70,
11092    VmstatKswapdHighWmarkHitQuickly = 71,
11093    VmstatPageoutrun = 72,
11094    VmstatAllocstall = 73,
11095    VmstatPgrotated = 74,
11096    VmstatDropPagecache = 75,
11097    VmstatDropSlab = 76,
11098    VmstatPgmigrateSuccess = 77,
11099    VmstatPgmigrateFail = 78,
11100    VmstatCompactMigrateScanned = 79,
11101    VmstatCompactFreeScanned = 80,
11102    VmstatCompactIsolated = 81,
11103    VmstatCompactStall = 82,
11104    VmstatCompactFail = 83,
11105    VmstatCompactSuccess = 84,
11106    VmstatCompactDaemonWake = 85,
11107    VmstatUnevictablePgsCulled = 86,
11108    VmstatUnevictablePgsScanned = 87,
11109    VmstatUnevictablePgsRescued = 88,
11110    VmstatUnevictablePgsMlocked = 89,
11111    VmstatUnevictablePgsMunlocked = 90,
11112    VmstatUnevictablePgsCleared = 91,
11113    VmstatUnevictablePgsStranded = 92,
11114    VmstatNrZspages = 93,
11115    VmstatNrIonHeap = 94,
11116    VmstatNrGpuHeap = 95,
11117    VmstatAllocstallDma = 96,
11118    VmstatAllocstallMovable = 97,
11119    VmstatAllocstallNormal = 98,
11120    VmstatCompactDaemonFreeScanned = 99,
11121    VmstatCompactDaemonMigrateScanned = 100,
11122    VmstatNrFastrpc = 101,
11123    VmstatNrIndirectlyReclaimable = 102,
11124    VmstatNrIonHeapPool = 103,
11125    VmstatNrKernelMiscReclaimable = 104,
11126    VmstatNrShadowCallStackBytes = 105,
11127    VmstatNrShmemHugepages = 106,
11128    VmstatNrShmemPmdmapped = 107,
11129    VmstatNrUnreclaimablePages = 108,
11130    VmstatNrZoneActiveAnon = 109,
11131    VmstatNrZoneActiveFile = 110,
11132    VmstatNrZoneInactiveAnon = 111,
11133    VmstatNrZoneInactiveFile = 112,
11134    VmstatNrZoneUnevictable = 113,
11135    VmstatNrZoneWritePending = 114,
11136    VmstatOomKill = 115,
11137    VmstatPglazyfree = 116,
11138    VmstatPglazyfreed = 117,
11139    VmstatPgrefill = 118,
11140    VmstatPgscanDirect = 119,
11141    VmstatPgscanKswapd = 120,
11142    VmstatPgskipDma = 121,
11143    VmstatPgskipMovable = 122,
11144    VmstatPgskipNormal = 123,
11145    VmstatPgstealDirect = 124,
11146    VmstatPgstealKswapd = 125,
11147    VmstatSwapRa = 126,
11148    VmstatSwapRaHit = 127,
11149    VmstatWorkingsetRestore = 128,
11150    VmstatAllocstallDevice = 129,
11151    VmstatAllocstallDma32 = 130,
11152    VmstatBalloonDeflate = 131,
11153    VmstatBalloonInflate = 132,
11154    VmstatBalloonMigrate = 133,
11155    VmstatCmaAllocFail = 134,
11156    VmstatCmaAllocSuccess = 135,
11157    VmstatNrFileHugepages = 136,
11158    VmstatNrFilePmdmapped = 137,
11159    VmstatNrFollPinAcquired = 138,
11160    VmstatNrFollPinReleased = 139,
11161    VmstatNrSecPageTablePages = 140,
11162    VmstatNrShadowCallStack = 141,
11163    VmstatNrSwapcached = 142,
11164    VmstatNrThrottledWritten = 143,
11165    VmstatPgallocDevice = 144,
11166    VmstatPgallocDma32 = 145,
11167    VmstatPgdemoteDirect = 146,
11168    VmstatPgdemoteKswapd = 147,
11169    VmstatPgreuse = 148,
11170    VmstatPgscanAnon = 149,
11171    VmstatPgscanFile = 150,
11172    VmstatPgskipDevice = 151,
11173    VmstatPgskipDma32 = 152,
11174    VmstatPgstealAnon = 153,
11175    VmstatPgstealFile = 154,
11176    VmstatThpCollapseAlloc = 155,
11177    VmstatThpCollapseAllocFailed = 156,
11178    VmstatThpDeferredSplitPage = 157,
11179    VmstatThpFaultAlloc = 158,
11180    VmstatThpFaultFallback = 159,
11181    VmstatThpFaultFallbackCharge = 160,
11182    VmstatThpFileAlloc = 161,
11183    VmstatThpFileFallback = 162,
11184    VmstatThpFileFallbackCharge = 163,
11185    VmstatThpFileMapped = 164,
11186    VmstatThpMigrationFail = 165,
11187    VmstatThpMigrationSplit = 166,
11188    VmstatThpMigrationSuccess = 167,
11189    VmstatThpScanExceedNonePte = 168,
11190    VmstatThpScanExceedSharePte = 169,
11191    VmstatThpScanExceedSwapPte = 170,
11192    VmstatThpSplitPage = 171,
11193    VmstatThpSplitPageFailed = 172,
11194    VmstatThpSplitPmd = 173,
11195    VmstatThpSwpout = 174,
11196    VmstatThpSwpoutFallback = 175,
11197    VmstatThpZeroPageAlloc = 176,
11198    VmstatThpZeroPageAllocFailed = 177,
11199    VmstatVmaLockAbort = 178,
11200    VmstatVmaLockMiss = 179,
11201    VmstatVmaLockRetry = 180,
11202    VmstatVmaLockSuccess = 181,
11203    VmstatWorkingsetActivateAnon = 182,
11204    VmstatWorkingsetActivateFile = 183,
11205    VmstatWorkingsetNodes = 184,
11206    VmstatWorkingsetRefaultAnon = 185,
11207    VmstatWorkingsetRefaultFile = 186,
11208    VmstatWorkingsetRestoreAnon = 187,
11209    VmstatWorkingsetRestoreFile = 188,
11210}
11211impl VmstatCounters {
11212    /// String value of the enum field names used in the ProtoBuf definition.
11213    ///
11214    /// The values are not transformed in any way and thus are considered stable
11215    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
11216    pub fn as_str_name(&self) -> &'static str {
11217        match self {
11218            Self::VmstatUnspecified => "VMSTAT_UNSPECIFIED",
11219            Self::VmstatNrFreePages => "VMSTAT_NR_FREE_PAGES",
11220            Self::VmstatNrAllocBatch => "VMSTAT_NR_ALLOC_BATCH",
11221            Self::VmstatNrInactiveAnon => "VMSTAT_NR_INACTIVE_ANON",
11222            Self::VmstatNrActiveAnon => "VMSTAT_NR_ACTIVE_ANON",
11223            Self::VmstatNrInactiveFile => "VMSTAT_NR_INACTIVE_FILE",
11224            Self::VmstatNrActiveFile => "VMSTAT_NR_ACTIVE_FILE",
11225            Self::VmstatNrUnevictable => "VMSTAT_NR_UNEVICTABLE",
11226            Self::VmstatNrMlock => "VMSTAT_NR_MLOCK",
11227            Self::VmstatNrAnonPages => "VMSTAT_NR_ANON_PAGES",
11228            Self::VmstatNrMapped => "VMSTAT_NR_MAPPED",
11229            Self::VmstatNrFilePages => "VMSTAT_NR_FILE_PAGES",
11230            Self::VmstatNrDirty => "VMSTAT_NR_DIRTY",
11231            Self::VmstatNrWriteback => "VMSTAT_NR_WRITEBACK",
11232            Self::VmstatNrSlabReclaimable => "VMSTAT_NR_SLAB_RECLAIMABLE",
11233            Self::VmstatNrSlabUnreclaimable => "VMSTAT_NR_SLAB_UNRECLAIMABLE",
11234            Self::VmstatNrPageTablePages => "VMSTAT_NR_PAGE_TABLE_PAGES",
11235            Self::VmstatNrKernelStack => "VMSTAT_NR_KERNEL_STACK",
11236            Self::VmstatNrOverhead => "VMSTAT_NR_OVERHEAD",
11237            Self::VmstatNrUnstable => "VMSTAT_NR_UNSTABLE",
11238            Self::VmstatNrBounce => "VMSTAT_NR_BOUNCE",
11239            Self::VmstatNrVmscanWrite => "VMSTAT_NR_VMSCAN_WRITE",
11240            Self::VmstatNrVmscanImmediateReclaim => "VMSTAT_NR_VMSCAN_IMMEDIATE_RECLAIM",
11241            Self::VmstatNrWritebackTemp => "VMSTAT_NR_WRITEBACK_TEMP",
11242            Self::VmstatNrIsolatedAnon => "VMSTAT_NR_ISOLATED_ANON",
11243            Self::VmstatNrIsolatedFile => "VMSTAT_NR_ISOLATED_FILE",
11244            Self::VmstatNrShmem => "VMSTAT_NR_SHMEM",
11245            Self::VmstatNrDirtied => "VMSTAT_NR_DIRTIED",
11246            Self::VmstatNrWritten => "VMSTAT_NR_WRITTEN",
11247            Self::VmstatNrPagesScanned => "VMSTAT_NR_PAGES_SCANNED",
11248            Self::VmstatWorkingsetRefault => "VMSTAT_WORKINGSET_REFAULT",
11249            Self::VmstatWorkingsetActivate => "VMSTAT_WORKINGSET_ACTIVATE",
11250            Self::VmstatWorkingsetNodereclaim => "VMSTAT_WORKINGSET_NODERECLAIM",
11251            Self::VmstatNrAnonTransparentHugepages => {
11252                "VMSTAT_NR_ANON_TRANSPARENT_HUGEPAGES"
11253            }
11254            Self::VmstatNrFreeCma => "VMSTAT_NR_FREE_CMA",
11255            Self::VmstatNrSwapcache => "VMSTAT_NR_SWAPCACHE",
11256            Self::VmstatNrDirtyThreshold => "VMSTAT_NR_DIRTY_THRESHOLD",
11257            Self::VmstatNrDirtyBackgroundThreshold => {
11258                "VMSTAT_NR_DIRTY_BACKGROUND_THRESHOLD"
11259            }
11260            Self::VmstatPgpgin => "VMSTAT_PGPGIN",
11261            Self::VmstatPgpgout => "VMSTAT_PGPGOUT",
11262            Self::VmstatPgpgoutclean => "VMSTAT_PGPGOUTCLEAN",
11263            Self::VmstatPswpin => "VMSTAT_PSWPIN",
11264            Self::VmstatPswpout => "VMSTAT_PSWPOUT",
11265            Self::VmstatPgallocDma => "VMSTAT_PGALLOC_DMA",
11266            Self::VmstatPgallocNormal => "VMSTAT_PGALLOC_NORMAL",
11267            Self::VmstatPgallocMovable => "VMSTAT_PGALLOC_MOVABLE",
11268            Self::VmstatPgfree => "VMSTAT_PGFREE",
11269            Self::VmstatPgactivate => "VMSTAT_PGACTIVATE",
11270            Self::VmstatPgdeactivate => "VMSTAT_PGDEACTIVATE",
11271            Self::VmstatPgfault => "VMSTAT_PGFAULT",
11272            Self::VmstatPgmajfault => "VMSTAT_PGMAJFAULT",
11273            Self::VmstatPgrefillDma => "VMSTAT_PGREFILL_DMA",
11274            Self::VmstatPgrefillNormal => "VMSTAT_PGREFILL_NORMAL",
11275            Self::VmstatPgrefillMovable => "VMSTAT_PGREFILL_MOVABLE",
11276            Self::VmstatPgstealKswapdDma => "VMSTAT_PGSTEAL_KSWAPD_DMA",
11277            Self::VmstatPgstealKswapdNormal => "VMSTAT_PGSTEAL_KSWAPD_NORMAL",
11278            Self::VmstatPgstealKswapdMovable => "VMSTAT_PGSTEAL_KSWAPD_MOVABLE",
11279            Self::VmstatPgstealDirectDma => "VMSTAT_PGSTEAL_DIRECT_DMA",
11280            Self::VmstatPgstealDirectNormal => "VMSTAT_PGSTEAL_DIRECT_NORMAL",
11281            Self::VmstatPgstealDirectMovable => "VMSTAT_PGSTEAL_DIRECT_MOVABLE",
11282            Self::VmstatPgscanKswapdDma => "VMSTAT_PGSCAN_KSWAPD_DMA",
11283            Self::VmstatPgscanKswapdNormal => "VMSTAT_PGSCAN_KSWAPD_NORMAL",
11284            Self::VmstatPgscanKswapdMovable => "VMSTAT_PGSCAN_KSWAPD_MOVABLE",
11285            Self::VmstatPgscanDirectDma => "VMSTAT_PGSCAN_DIRECT_DMA",
11286            Self::VmstatPgscanDirectNormal => "VMSTAT_PGSCAN_DIRECT_NORMAL",
11287            Self::VmstatPgscanDirectMovable => "VMSTAT_PGSCAN_DIRECT_MOVABLE",
11288            Self::VmstatPgscanDirectThrottle => "VMSTAT_PGSCAN_DIRECT_THROTTLE",
11289            Self::VmstatPginodesteal => "VMSTAT_PGINODESTEAL",
11290            Self::VmstatSlabsScanned => "VMSTAT_SLABS_SCANNED",
11291            Self::VmstatKswapdInodesteal => "VMSTAT_KSWAPD_INODESTEAL",
11292            Self::VmstatKswapdLowWmarkHitQuickly => "VMSTAT_KSWAPD_LOW_WMARK_HIT_QUICKLY",
11293            Self::VmstatKswapdHighWmarkHitQuickly => {
11294                "VMSTAT_KSWAPD_HIGH_WMARK_HIT_QUICKLY"
11295            }
11296            Self::VmstatPageoutrun => "VMSTAT_PAGEOUTRUN",
11297            Self::VmstatAllocstall => "VMSTAT_ALLOCSTALL",
11298            Self::VmstatPgrotated => "VMSTAT_PGROTATED",
11299            Self::VmstatDropPagecache => "VMSTAT_DROP_PAGECACHE",
11300            Self::VmstatDropSlab => "VMSTAT_DROP_SLAB",
11301            Self::VmstatPgmigrateSuccess => "VMSTAT_PGMIGRATE_SUCCESS",
11302            Self::VmstatPgmigrateFail => "VMSTAT_PGMIGRATE_FAIL",
11303            Self::VmstatCompactMigrateScanned => "VMSTAT_COMPACT_MIGRATE_SCANNED",
11304            Self::VmstatCompactFreeScanned => "VMSTAT_COMPACT_FREE_SCANNED",
11305            Self::VmstatCompactIsolated => "VMSTAT_COMPACT_ISOLATED",
11306            Self::VmstatCompactStall => "VMSTAT_COMPACT_STALL",
11307            Self::VmstatCompactFail => "VMSTAT_COMPACT_FAIL",
11308            Self::VmstatCompactSuccess => "VMSTAT_COMPACT_SUCCESS",
11309            Self::VmstatCompactDaemonWake => "VMSTAT_COMPACT_DAEMON_WAKE",
11310            Self::VmstatUnevictablePgsCulled => "VMSTAT_UNEVICTABLE_PGS_CULLED",
11311            Self::VmstatUnevictablePgsScanned => "VMSTAT_UNEVICTABLE_PGS_SCANNED",
11312            Self::VmstatUnevictablePgsRescued => "VMSTAT_UNEVICTABLE_PGS_RESCUED",
11313            Self::VmstatUnevictablePgsMlocked => "VMSTAT_UNEVICTABLE_PGS_MLOCKED",
11314            Self::VmstatUnevictablePgsMunlocked => "VMSTAT_UNEVICTABLE_PGS_MUNLOCKED",
11315            Self::VmstatUnevictablePgsCleared => "VMSTAT_UNEVICTABLE_PGS_CLEARED",
11316            Self::VmstatUnevictablePgsStranded => "VMSTAT_UNEVICTABLE_PGS_STRANDED",
11317            Self::VmstatNrZspages => "VMSTAT_NR_ZSPAGES",
11318            Self::VmstatNrIonHeap => "VMSTAT_NR_ION_HEAP",
11319            Self::VmstatNrGpuHeap => "VMSTAT_NR_GPU_HEAP",
11320            Self::VmstatAllocstallDma => "VMSTAT_ALLOCSTALL_DMA",
11321            Self::VmstatAllocstallMovable => "VMSTAT_ALLOCSTALL_MOVABLE",
11322            Self::VmstatAllocstallNormal => "VMSTAT_ALLOCSTALL_NORMAL",
11323            Self::VmstatCompactDaemonFreeScanned => "VMSTAT_COMPACT_DAEMON_FREE_SCANNED",
11324            Self::VmstatCompactDaemonMigrateScanned => {
11325                "VMSTAT_COMPACT_DAEMON_MIGRATE_SCANNED"
11326            }
11327            Self::VmstatNrFastrpc => "VMSTAT_NR_FASTRPC",
11328            Self::VmstatNrIndirectlyReclaimable => "VMSTAT_NR_INDIRECTLY_RECLAIMABLE",
11329            Self::VmstatNrIonHeapPool => "VMSTAT_NR_ION_HEAP_POOL",
11330            Self::VmstatNrKernelMiscReclaimable => "VMSTAT_NR_KERNEL_MISC_RECLAIMABLE",
11331            Self::VmstatNrShadowCallStackBytes => "VMSTAT_NR_SHADOW_CALL_STACK_BYTES",
11332            Self::VmstatNrShmemHugepages => "VMSTAT_NR_SHMEM_HUGEPAGES",
11333            Self::VmstatNrShmemPmdmapped => "VMSTAT_NR_SHMEM_PMDMAPPED",
11334            Self::VmstatNrUnreclaimablePages => "VMSTAT_NR_UNRECLAIMABLE_PAGES",
11335            Self::VmstatNrZoneActiveAnon => "VMSTAT_NR_ZONE_ACTIVE_ANON",
11336            Self::VmstatNrZoneActiveFile => "VMSTAT_NR_ZONE_ACTIVE_FILE",
11337            Self::VmstatNrZoneInactiveAnon => "VMSTAT_NR_ZONE_INACTIVE_ANON",
11338            Self::VmstatNrZoneInactiveFile => "VMSTAT_NR_ZONE_INACTIVE_FILE",
11339            Self::VmstatNrZoneUnevictable => "VMSTAT_NR_ZONE_UNEVICTABLE",
11340            Self::VmstatNrZoneWritePending => "VMSTAT_NR_ZONE_WRITE_PENDING",
11341            Self::VmstatOomKill => "VMSTAT_OOM_KILL",
11342            Self::VmstatPglazyfree => "VMSTAT_PGLAZYFREE",
11343            Self::VmstatPglazyfreed => "VMSTAT_PGLAZYFREED",
11344            Self::VmstatPgrefill => "VMSTAT_PGREFILL",
11345            Self::VmstatPgscanDirect => "VMSTAT_PGSCAN_DIRECT",
11346            Self::VmstatPgscanKswapd => "VMSTAT_PGSCAN_KSWAPD",
11347            Self::VmstatPgskipDma => "VMSTAT_PGSKIP_DMA",
11348            Self::VmstatPgskipMovable => "VMSTAT_PGSKIP_MOVABLE",
11349            Self::VmstatPgskipNormal => "VMSTAT_PGSKIP_NORMAL",
11350            Self::VmstatPgstealDirect => "VMSTAT_PGSTEAL_DIRECT",
11351            Self::VmstatPgstealKswapd => "VMSTAT_PGSTEAL_KSWAPD",
11352            Self::VmstatSwapRa => "VMSTAT_SWAP_RA",
11353            Self::VmstatSwapRaHit => "VMSTAT_SWAP_RA_HIT",
11354            Self::VmstatWorkingsetRestore => "VMSTAT_WORKINGSET_RESTORE",
11355            Self::VmstatAllocstallDevice => "VMSTAT_ALLOCSTALL_DEVICE",
11356            Self::VmstatAllocstallDma32 => "VMSTAT_ALLOCSTALL_DMA32",
11357            Self::VmstatBalloonDeflate => "VMSTAT_BALLOON_DEFLATE",
11358            Self::VmstatBalloonInflate => "VMSTAT_BALLOON_INFLATE",
11359            Self::VmstatBalloonMigrate => "VMSTAT_BALLOON_MIGRATE",
11360            Self::VmstatCmaAllocFail => "VMSTAT_CMA_ALLOC_FAIL",
11361            Self::VmstatCmaAllocSuccess => "VMSTAT_CMA_ALLOC_SUCCESS",
11362            Self::VmstatNrFileHugepages => "VMSTAT_NR_FILE_HUGEPAGES",
11363            Self::VmstatNrFilePmdmapped => "VMSTAT_NR_FILE_PMDMAPPED",
11364            Self::VmstatNrFollPinAcquired => "VMSTAT_NR_FOLL_PIN_ACQUIRED",
11365            Self::VmstatNrFollPinReleased => "VMSTAT_NR_FOLL_PIN_RELEASED",
11366            Self::VmstatNrSecPageTablePages => "VMSTAT_NR_SEC_PAGE_TABLE_PAGES",
11367            Self::VmstatNrShadowCallStack => "VMSTAT_NR_SHADOW_CALL_STACK",
11368            Self::VmstatNrSwapcached => "VMSTAT_NR_SWAPCACHED",
11369            Self::VmstatNrThrottledWritten => "VMSTAT_NR_THROTTLED_WRITTEN",
11370            Self::VmstatPgallocDevice => "VMSTAT_PGALLOC_DEVICE",
11371            Self::VmstatPgallocDma32 => "VMSTAT_PGALLOC_DMA32",
11372            Self::VmstatPgdemoteDirect => "VMSTAT_PGDEMOTE_DIRECT",
11373            Self::VmstatPgdemoteKswapd => "VMSTAT_PGDEMOTE_KSWAPD",
11374            Self::VmstatPgreuse => "VMSTAT_PGREUSE",
11375            Self::VmstatPgscanAnon => "VMSTAT_PGSCAN_ANON",
11376            Self::VmstatPgscanFile => "VMSTAT_PGSCAN_FILE",
11377            Self::VmstatPgskipDevice => "VMSTAT_PGSKIP_DEVICE",
11378            Self::VmstatPgskipDma32 => "VMSTAT_PGSKIP_DMA32",
11379            Self::VmstatPgstealAnon => "VMSTAT_PGSTEAL_ANON",
11380            Self::VmstatPgstealFile => "VMSTAT_PGSTEAL_FILE",
11381            Self::VmstatThpCollapseAlloc => "VMSTAT_THP_COLLAPSE_ALLOC",
11382            Self::VmstatThpCollapseAllocFailed => "VMSTAT_THP_COLLAPSE_ALLOC_FAILED",
11383            Self::VmstatThpDeferredSplitPage => "VMSTAT_THP_DEFERRED_SPLIT_PAGE",
11384            Self::VmstatThpFaultAlloc => "VMSTAT_THP_FAULT_ALLOC",
11385            Self::VmstatThpFaultFallback => "VMSTAT_THP_FAULT_FALLBACK",
11386            Self::VmstatThpFaultFallbackCharge => "VMSTAT_THP_FAULT_FALLBACK_CHARGE",
11387            Self::VmstatThpFileAlloc => "VMSTAT_THP_FILE_ALLOC",
11388            Self::VmstatThpFileFallback => "VMSTAT_THP_FILE_FALLBACK",
11389            Self::VmstatThpFileFallbackCharge => "VMSTAT_THP_FILE_FALLBACK_CHARGE",
11390            Self::VmstatThpFileMapped => "VMSTAT_THP_FILE_MAPPED",
11391            Self::VmstatThpMigrationFail => "VMSTAT_THP_MIGRATION_FAIL",
11392            Self::VmstatThpMigrationSplit => "VMSTAT_THP_MIGRATION_SPLIT",
11393            Self::VmstatThpMigrationSuccess => "VMSTAT_THP_MIGRATION_SUCCESS",
11394            Self::VmstatThpScanExceedNonePte => "VMSTAT_THP_SCAN_EXCEED_NONE_PTE",
11395            Self::VmstatThpScanExceedSharePte => "VMSTAT_THP_SCAN_EXCEED_SHARE_PTE",
11396            Self::VmstatThpScanExceedSwapPte => "VMSTAT_THP_SCAN_EXCEED_SWAP_PTE",
11397            Self::VmstatThpSplitPage => "VMSTAT_THP_SPLIT_PAGE",
11398            Self::VmstatThpSplitPageFailed => "VMSTAT_THP_SPLIT_PAGE_FAILED",
11399            Self::VmstatThpSplitPmd => "VMSTAT_THP_SPLIT_PMD",
11400            Self::VmstatThpSwpout => "VMSTAT_THP_SWPOUT",
11401            Self::VmstatThpSwpoutFallback => "VMSTAT_THP_SWPOUT_FALLBACK",
11402            Self::VmstatThpZeroPageAlloc => "VMSTAT_THP_ZERO_PAGE_ALLOC",
11403            Self::VmstatThpZeroPageAllocFailed => "VMSTAT_THP_ZERO_PAGE_ALLOC_FAILED",
11404            Self::VmstatVmaLockAbort => "VMSTAT_VMA_LOCK_ABORT",
11405            Self::VmstatVmaLockMiss => "VMSTAT_VMA_LOCK_MISS",
11406            Self::VmstatVmaLockRetry => "VMSTAT_VMA_LOCK_RETRY",
11407            Self::VmstatVmaLockSuccess => "VMSTAT_VMA_LOCK_SUCCESS",
11408            Self::VmstatWorkingsetActivateAnon => "VMSTAT_WORKINGSET_ACTIVATE_ANON",
11409            Self::VmstatWorkingsetActivateFile => "VMSTAT_WORKINGSET_ACTIVATE_FILE",
11410            Self::VmstatWorkingsetNodes => "VMSTAT_WORKINGSET_NODES",
11411            Self::VmstatWorkingsetRefaultAnon => "VMSTAT_WORKINGSET_REFAULT_ANON",
11412            Self::VmstatWorkingsetRefaultFile => "VMSTAT_WORKINGSET_REFAULT_FILE",
11413            Self::VmstatWorkingsetRestoreAnon => "VMSTAT_WORKINGSET_RESTORE_ANON",
11414            Self::VmstatWorkingsetRestoreFile => "VMSTAT_WORKINGSET_RESTORE_FILE",
11415        }
11416    }
11417    /// Creates an enum from field names used in the ProtoBuf definition.
11418    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
11419        match value {
11420            "VMSTAT_UNSPECIFIED" => Some(Self::VmstatUnspecified),
11421            "VMSTAT_NR_FREE_PAGES" => Some(Self::VmstatNrFreePages),
11422            "VMSTAT_NR_ALLOC_BATCH" => Some(Self::VmstatNrAllocBatch),
11423            "VMSTAT_NR_INACTIVE_ANON" => Some(Self::VmstatNrInactiveAnon),
11424            "VMSTAT_NR_ACTIVE_ANON" => Some(Self::VmstatNrActiveAnon),
11425            "VMSTAT_NR_INACTIVE_FILE" => Some(Self::VmstatNrInactiveFile),
11426            "VMSTAT_NR_ACTIVE_FILE" => Some(Self::VmstatNrActiveFile),
11427            "VMSTAT_NR_UNEVICTABLE" => Some(Self::VmstatNrUnevictable),
11428            "VMSTAT_NR_MLOCK" => Some(Self::VmstatNrMlock),
11429            "VMSTAT_NR_ANON_PAGES" => Some(Self::VmstatNrAnonPages),
11430            "VMSTAT_NR_MAPPED" => Some(Self::VmstatNrMapped),
11431            "VMSTAT_NR_FILE_PAGES" => Some(Self::VmstatNrFilePages),
11432            "VMSTAT_NR_DIRTY" => Some(Self::VmstatNrDirty),
11433            "VMSTAT_NR_WRITEBACK" => Some(Self::VmstatNrWriteback),
11434            "VMSTAT_NR_SLAB_RECLAIMABLE" => Some(Self::VmstatNrSlabReclaimable),
11435            "VMSTAT_NR_SLAB_UNRECLAIMABLE" => Some(Self::VmstatNrSlabUnreclaimable),
11436            "VMSTAT_NR_PAGE_TABLE_PAGES" => Some(Self::VmstatNrPageTablePages),
11437            "VMSTAT_NR_KERNEL_STACK" => Some(Self::VmstatNrKernelStack),
11438            "VMSTAT_NR_OVERHEAD" => Some(Self::VmstatNrOverhead),
11439            "VMSTAT_NR_UNSTABLE" => Some(Self::VmstatNrUnstable),
11440            "VMSTAT_NR_BOUNCE" => Some(Self::VmstatNrBounce),
11441            "VMSTAT_NR_VMSCAN_WRITE" => Some(Self::VmstatNrVmscanWrite),
11442            "VMSTAT_NR_VMSCAN_IMMEDIATE_RECLAIM" => {
11443                Some(Self::VmstatNrVmscanImmediateReclaim)
11444            }
11445            "VMSTAT_NR_WRITEBACK_TEMP" => Some(Self::VmstatNrWritebackTemp),
11446            "VMSTAT_NR_ISOLATED_ANON" => Some(Self::VmstatNrIsolatedAnon),
11447            "VMSTAT_NR_ISOLATED_FILE" => Some(Self::VmstatNrIsolatedFile),
11448            "VMSTAT_NR_SHMEM" => Some(Self::VmstatNrShmem),
11449            "VMSTAT_NR_DIRTIED" => Some(Self::VmstatNrDirtied),
11450            "VMSTAT_NR_WRITTEN" => Some(Self::VmstatNrWritten),
11451            "VMSTAT_NR_PAGES_SCANNED" => Some(Self::VmstatNrPagesScanned),
11452            "VMSTAT_WORKINGSET_REFAULT" => Some(Self::VmstatWorkingsetRefault),
11453            "VMSTAT_WORKINGSET_ACTIVATE" => Some(Self::VmstatWorkingsetActivate),
11454            "VMSTAT_WORKINGSET_NODERECLAIM" => Some(Self::VmstatWorkingsetNodereclaim),
11455            "VMSTAT_NR_ANON_TRANSPARENT_HUGEPAGES" => {
11456                Some(Self::VmstatNrAnonTransparentHugepages)
11457            }
11458            "VMSTAT_NR_FREE_CMA" => Some(Self::VmstatNrFreeCma),
11459            "VMSTAT_NR_SWAPCACHE" => Some(Self::VmstatNrSwapcache),
11460            "VMSTAT_NR_DIRTY_THRESHOLD" => Some(Self::VmstatNrDirtyThreshold),
11461            "VMSTAT_NR_DIRTY_BACKGROUND_THRESHOLD" => {
11462                Some(Self::VmstatNrDirtyBackgroundThreshold)
11463            }
11464            "VMSTAT_PGPGIN" => Some(Self::VmstatPgpgin),
11465            "VMSTAT_PGPGOUT" => Some(Self::VmstatPgpgout),
11466            "VMSTAT_PGPGOUTCLEAN" => Some(Self::VmstatPgpgoutclean),
11467            "VMSTAT_PSWPIN" => Some(Self::VmstatPswpin),
11468            "VMSTAT_PSWPOUT" => Some(Self::VmstatPswpout),
11469            "VMSTAT_PGALLOC_DMA" => Some(Self::VmstatPgallocDma),
11470            "VMSTAT_PGALLOC_NORMAL" => Some(Self::VmstatPgallocNormal),
11471            "VMSTAT_PGALLOC_MOVABLE" => Some(Self::VmstatPgallocMovable),
11472            "VMSTAT_PGFREE" => Some(Self::VmstatPgfree),
11473            "VMSTAT_PGACTIVATE" => Some(Self::VmstatPgactivate),
11474            "VMSTAT_PGDEACTIVATE" => Some(Self::VmstatPgdeactivate),
11475            "VMSTAT_PGFAULT" => Some(Self::VmstatPgfault),
11476            "VMSTAT_PGMAJFAULT" => Some(Self::VmstatPgmajfault),
11477            "VMSTAT_PGREFILL_DMA" => Some(Self::VmstatPgrefillDma),
11478            "VMSTAT_PGREFILL_NORMAL" => Some(Self::VmstatPgrefillNormal),
11479            "VMSTAT_PGREFILL_MOVABLE" => Some(Self::VmstatPgrefillMovable),
11480            "VMSTAT_PGSTEAL_KSWAPD_DMA" => Some(Self::VmstatPgstealKswapdDma),
11481            "VMSTAT_PGSTEAL_KSWAPD_NORMAL" => Some(Self::VmstatPgstealKswapdNormal),
11482            "VMSTAT_PGSTEAL_KSWAPD_MOVABLE" => Some(Self::VmstatPgstealKswapdMovable),
11483            "VMSTAT_PGSTEAL_DIRECT_DMA" => Some(Self::VmstatPgstealDirectDma),
11484            "VMSTAT_PGSTEAL_DIRECT_NORMAL" => Some(Self::VmstatPgstealDirectNormal),
11485            "VMSTAT_PGSTEAL_DIRECT_MOVABLE" => Some(Self::VmstatPgstealDirectMovable),
11486            "VMSTAT_PGSCAN_KSWAPD_DMA" => Some(Self::VmstatPgscanKswapdDma),
11487            "VMSTAT_PGSCAN_KSWAPD_NORMAL" => Some(Self::VmstatPgscanKswapdNormal),
11488            "VMSTAT_PGSCAN_KSWAPD_MOVABLE" => Some(Self::VmstatPgscanKswapdMovable),
11489            "VMSTAT_PGSCAN_DIRECT_DMA" => Some(Self::VmstatPgscanDirectDma),
11490            "VMSTAT_PGSCAN_DIRECT_NORMAL" => Some(Self::VmstatPgscanDirectNormal),
11491            "VMSTAT_PGSCAN_DIRECT_MOVABLE" => Some(Self::VmstatPgscanDirectMovable),
11492            "VMSTAT_PGSCAN_DIRECT_THROTTLE" => Some(Self::VmstatPgscanDirectThrottle),
11493            "VMSTAT_PGINODESTEAL" => Some(Self::VmstatPginodesteal),
11494            "VMSTAT_SLABS_SCANNED" => Some(Self::VmstatSlabsScanned),
11495            "VMSTAT_KSWAPD_INODESTEAL" => Some(Self::VmstatKswapdInodesteal),
11496            "VMSTAT_KSWAPD_LOW_WMARK_HIT_QUICKLY" => {
11497                Some(Self::VmstatKswapdLowWmarkHitQuickly)
11498            }
11499            "VMSTAT_KSWAPD_HIGH_WMARK_HIT_QUICKLY" => {
11500                Some(Self::VmstatKswapdHighWmarkHitQuickly)
11501            }
11502            "VMSTAT_PAGEOUTRUN" => Some(Self::VmstatPageoutrun),
11503            "VMSTAT_ALLOCSTALL" => Some(Self::VmstatAllocstall),
11504            "VMSTAT_PGROTATED" => Some(Self::VmstatPgrotated),
11505            "VMSTAT_DROP_PAGECACHE" => Some(Self::VmstatDropPagecache),
11506            "VMSTAT_DROP_SLAB" => Some(Self::VmstatDropSlab),
11507            "VMSTAT_PGMIGRATE_SUCCESS" => Some(Self::VmstatPgmigrateSuccess),
11508            "VMSTAT_PGMIGRATE_FAIL" => Some(Self::VmstatPgmigrateFail),
11509            "VMSTAT_COMPACT_MIGRATE_SCANNED" => Some(Self::VmstatCompactMigrateScanned),
11510            "VMSTAT_COMPACT_FREE_SCANNED" => Some(Self::VmstatCompactFreeScanned),
11511            "VMSTAT_COMPACT_ISOLATED" => Some(Self::VmstatCompactIsolated),
11512            "VMSTAT_COMPACT_STALL" => Some(Self::VmstatCompactStall),
11513            "VMSTAT_COMPACT_FAIL" => Some(Self::VmstatCompactFail),
11514            "VMSTAT_COMPACT_SUCCESS" => Some(Self::VmstatCompactSuccess),
11515            "VMSTAT_COMPACT_DAEMON_WAKE" => Some(Self::VmstatCompactDaemonWake),
11516            "VMSTAT_UNEVICTABLE_PGS_CULLED" => Some(Self::VmstatUnevictablePgsCulled),
11517            "VMSTAT_UNEVICTABLE_PGS_SCANNED" => Some(Self::VmstatUnevictablePgsScanned),
11518            "VMSTAT_UNEVICTABLE_PGS_RESCUED" => Some(Self::VmstatUnevictablePgsRescued),
11519            "VMSTAT_UNEVICTABLE_PGS_MLOCKED" => Some(Self::VmstatUnevictablePgsMlocked),
11520            "VMSTAT_UNEVICTABLE_PGS_MUNLOCKED" => {
11521                Some(Self::VmstatUnevictablePgsMunlocked)
11522            }
11523            "VMSTAT_UNEVICTABLE_PGS_CLEARED" => Some(Self::VmstatUnevictablePgsCleared),
11524            "VMSTAT_UNEVICTABLE_PGS_STRANDED" => Some(Self::VmstatUnevictablePgsStranded),
11525            "VMSTAT_NR_ZSPAGES" => Some(Self::VmstatNrZspages),
11526            "VMSTAT_NR_ION_HEAP" => Some(Self::VmstatNrIonHeap),
11527            "VMSTAT_NR_GPU_HEAP" => Some(Self::VmstatNrGpuHeap),
11528            "VMSTAT_ALLOCSTALL_DMA" => Some(Self::VmstatAllocstallDma),
11529            "VMSTAT_ALLOCSTALL_MOVABLE" => Some(Self::VmstatAllocstallMovable),
11530            "VMSTAT_ALLOCSTALL_NORMAL" => Some(Self::VmstatAllocstallNormal),
11531            "VMSTAT_COMPACT_DAEMON_FREE_SCANNED" => {
11532                Some(Self::VmstatCompactDaemonFreeScanned)
11533            }
11534            "VMSTAT_COMPACT_DAEMON_MIGRATE_SCANNED" => {
11535                Some(Self::VmstatCompactDaemonMigrateScanned)
11536            }
11537            "VMSTAT_NR_FASTRPC" => Some(Self::VmstatNrFastrpc),
11538            "VMSTAT_NR_INDIRECTLY_RECLAIMABLE" => {
11539                Some(Self::VmstatNrIndirectlyReclaimable)
11540            }
11541            "VMSTAT_NR_ION_HEAP_POOL" => Some(Self::VmstatNrIonHeapPool),
11542            "VMSTAT_NR_KERNEL_MISC_RECLAIMABLE" => {
11543                Some(Self::VmstatNrKernelMiscReclaimable)
11544            }
11545            "VMSTAT_NR_SHADOW_CALL_STACK_BYTES" => {
11546                Some(Self::VmstatNrShadowCallStackBytes)
11547            }
11548            "VMSTAT_NR_SHMEM_HUGEPAGES" => Some(Self::VmstatNrShmemHugepages),
11549            "VMSTAT_NR_SHMEM_PMDMAPPED" => Some(Self::VmstatNrShmemPmdmapped),
11550            "VMSTAT_NR_UNRECLAIMABLE_PAGES" => Some(Self::VmstatNrUnreclaimablePages),
11551            "VMSTAT_NR_ZONE_ACTIVE_ANON" => Some(Self::VmstatNrZoneActiveAnon),
11552            "VMSTAT_NR_ZONE_ACTIVE_FILE" => Some(Self::VmstatNrZoneActiveFile),
11553            "VMSTAT_NR_ZONE_INACTIVE_ANON" => Some(Self::VmstatNrZoneInactiveAnon),
11554            "VMSTAT_NR_ZONE_INACTIVE_FILE" => Some(Self::VmstatNrZoneInactiveFile),
11555            "VMSTAT_NR_ZONE_UNEVICTABLE" => Some(Self::VmstatNrZoneUnevictable),
11556            "VMSTAT_NR_ZONE_WRITE_PENDING" => Some(Self::VmstatNrZoneWritePending),
11557            "VMSTAT_OOM_KILL" => Some(Self::VmstatOomKill),
11558            "VMSTAT_PGLAZYFREE" => Some(Self::VmstatPglazyfree),
11559            "VMSTAT_PGLAZYFREED" => Some(Self::VmstatPglazyfreed),
11560            "VMSTAT_PGREFILL" => Some(Self::VmstatPgrefill),
11561            "VMSTAT_PGSCAN_DIRECT" => Some(Self::VmstatPgscanDirect),
11562            "VMSTAT_PGSCAN_KSWAPD" => Some(Self::VmstatPgscanKswapd),
11563            "VMSTAT_PGSKIP_DMA" => Some(Self::VmstatPgskipDma),
11564            "VMSTAT_PGSKIP_MOVABLE" => Some(Self::VmstatPgskipMovable),
11565            "VMSTAT_PGSKIP_NORMAL" => Some(Self::VmstatPgskipNormal),
11566            "VMSTAT_PGSTEAL_DIRECT" => Some(Self::VmstatPgstealDirect),
11567            "VMSTAT_PGSTEAL_KSWAPD" => Some(Self::VmstatPgstealKswapd),
11568            "VMSTAT_SWAP_RA" => Some(Self::VmstatSwapRa),
11569            "VMSTAT_SWAP_RA_HIT" => Some(Self::VmstatSwapRaHit),
11570            "VMSTAT_WORKINGSET_RESTORE" => Some(Self::VmstatWorkingsetRestore),
11571            "VMSTAT_ALLOCSTALL_DEVICE" => Some(Self::VmstatAllocstallDevice),
11572            "VMSTAT_ALLOCSTALL_DMA32" => Some(Self::VmstatAllocstallDma32),
11573            "VMSTAT_BALLOON_DEFLATE" => Some(Self::VmstatBalloonDeflate),
11574            "VMSTAT_BALLOON_INFLATE" => Some(Self::VmstatBalloonInflate),
11575            "VMSTAT_BALLOON_MIGRATE" => Some(Self::VmstatBalloonMigrate),
11576            "VMSTAT_CMA_ALLOC_FAIL" => Some(Self::VmstatCmaAllocFail),
11577            "VMSTAT_CMA_ALLOC_SUCCESS" => Some(Self::VmstatCmaAllocSuccess),
11578            "VMSTAT_NR_FILE_HUGEPAGES" => Some(Self::VmstatNrFileHugepages),
11579            "VMSTAT_NR_FILE_PMDMAPPED" => Some(Self::VmstatNrFilePmdmapped),
11580            "VMSTAT_NR_FOLL_PIN_ACQUIRED" => Some(Self::VmstatNrFollPinAcquired),
11581            "VMSTAT_NR_FOLL_PIN_RELEASED" => Some(Self::VmstatNrFollPinReleased),
11582            "VMSTAT_NR_SEC_PAGE_TABLE_PAGES" => Some(Self::VmstatNrSecPageTablePages),
11583            "VMSTAT_NR_SHADOW_CALL_STACK" => Some(Self::VmstatNrShadowCallStack),
11584            "VMSTAT_NR_SWAPCACHED" => Some(Self::VmstatNrSwapcached),
11585            "VMSTAT_NR_THROTTLED_WRITTEN" => Some(Self::VmstatNrThrottledWritten),
11586            "VMSTAT_PGALLOC_DEVICE" => Some(Self::VmstatPgallocDevice),
11587            "VMSTAT_PGALLOC_DMA32" => Some(Self::VmstatPgallocDma32),
11588            "VMSTAT_PGDEMOTE_DIRECT" => Some(Self::VmstatPgdemoteDirect),
11589            "VMSTAT_PGDEMOTE_KSWAPD" => Some(Self::VmstatPgdemoteKswapd),
11590            "VMSTAT_PGREUSE" => Some(Self::VmstatPgreuse),
11591            "VMSTAT_PGSCAN_ANON" => Some(Self::VmstatPgscanAnon),
11592            "VMSTAT_PGSCAN_FILE" => Some(Self::VmstatPgscanFile),
11593            "VMSTAT_PGSKIP_DEVICE" => Some(Self::VmstatPgskipDevice),
11594            "VMSTAT_PGSKIP_DMA32" => Some(Self::VmstatPgskipDma32),
11595            "VMSTAT_PGSTEAL_ANON" => Some(Self::VmstatPgstealAnon),
11596            "VMSTAT_PGSTEAL_FILE" => Some(Self::VmstatPgstealFile),
11597            "VMSTAT_THP_COLLAPSE_ALLOC" => Some(Self::VmstatThpCollapseAlloc),
11598            "VMSTAT_THP_COLLAPSE_ALLOC_FAILED" => {
11599                Some(Self::VmstatThpCollapseAllocFailed)
11600            }
11601            "VMSTAT_THP_DEFERRED_SPLIT_PAGE" => Some(Self::VmstatThpDeferredSplitPage),
11602            "VMSTAT_THP_FAULT_ALLOC" => Some(Self::VmstatThpFaultAlloc),
11603            "VMSTAT_THP_FAULT_FALLBACK" => Some(Self::VmstatThpFaultFallback),
11604            "VMSTAT_THP_FAULT_FALLBACK_CHARGE" => {
11605                Some(Self::VmstatThpFaultFallbackCharge)
11606            }
11607            "VMSTAT_THP_FILE_ALLOC" => Some(Self::VmstatThpFileAlloc),
11608            "VMSTAT_THP_FILE_FALLBACK" => Some(Self::VmstatThpFileFallback),
11609            "VMSTAT_THP_FILE_FALLBACK_CHARGE" => Some(Self::VmstatThpFileFallbackCharge),
11610            "VMSTAT_THP_FILE_MAPPED" => Some(Self::VmstatThpFileMapped),
11611            "VMSTAT_THP_MIGRATION_FAIL" => Some(Self::VmstatThpMigrationFail),
11612            "VMSTAT_THP_MIGRATION_SPLIT" => Some(Self::VmstatThpMigrationSplit),
11613            "VMSTAT_THP_MIGRATION_SUCCESS" => Some(Self::VmstatThpMigrationSuccess),
11614            "VMSTAT_THP_SCAN_EXCEED_NONE_PTE" => Some(Self::VmstatThpScanExceedNonePte),
11615            "VMSTAT_THP_SCAN_EXCEED_SHARE_PTE" => Some(Self::VmstatThpScanExceedSharePte),
11616            "VMSTAT_THP_SCAN_EXCEED_SWAP_PTE" => Some(Self::VmstatThpScanExceedSwapPte),
11617            "VMSTAT_THP_SPLIT_PAGE" => Some(Self::VmstatThpSplitPage),
11618            "VMSTAT_THP_SPLIT_PAGE_FAILED" => Some(Self::VmstatThpSplitPageFailed),
11619            "VMSTAT_THP_SPLIT_PMD" => Some(Self::VmstatThpSplitPmd),
11620            "VMSTAT_THP_SWPOUT" => Some(Self::VmstatThpSwpout),
11621            "VMSTAT_THP_SWPOUT_FALLBACK" => Some(Self::VmstatThpSwpoutFallback),
11622            "VMSTAT_THP_ZERO_PAGE_ALLOC" => Some(Self::VmstatThpZeroPageAlloc),
11623            "VMSTAT_THP_ZERO_PAGE_ALLOC_FAILED" => {
11624                Some(Self::VmstatThpZeroPageAllocFailed)
11625            }
11626            "VMSTAT_VMA_LOCK_ABORT" => Some(Self::VmstatVmaLockAbort),
11627            "VMSTAT_VMA_LOCK_MISS" => Some(Self::VmstatVmaLockMiss),
11628            "VMSTAT_VMA_LOCK_RETRY" => Some(Self::VmstatVmaLockRetry),
11629            "VMSTAT_VMA_LOCK_SUCCESS" => Some(Self::VmstatVmaLockSuccess),
11630            "VMSTAT_WORKINGSET_ACTIVATE_ANON" => Some(Self::VmstatWorkingsetActivateAnon),
11631            "VMSTAT_WORKINGSET_ACTIVATE_FILE" => Some(Self::VmstatWorkingsetActivateFile),
11632            "VMSTAT_WORKINGSET_NODES" => Some(Self::VmstatWorkingsetNodes),
11633            "VMSTAT_WORKINGSET_REFAULT_ANON" => Some(Self::VmstatWorkingsetRefaultAnon),
11634            "VMSTAT_WORKINGSET_REFAULT_FILE" => Some(Self::VmstatWorkingsetRefaultFile),
11635            "VMSTAT_WORKINGSET_RESTORE_ANON" => Some(Self::VmstatWorkingsetRestoreAnon),
11636            "VMSTAT_WORKINGSET_RESTORE_FILE" => Some(Self::VmstatWorkingsetRestoreFile),
11637            _ => None,
11638        }
11639    }
11640}
11641/// This file defines the configuration for the Linux /proc poller data source,
11642/// which injects counters in the trace.
11643/// Counters that are needed in the trace must be explicitly listed in the
11644/// *_counters fields. This is to avoid spamming the trace with all counters
11645/// at all times.
11646/// The sampling rate is configurable. All polling rates (*_period_ms) need
11647/// to be integer multiples of each other.
11648/// OK:     \[10ms, 10ms, 10ms\],  \[10ms, 20ms, 10ms\],  \[10ms, 20ms, 60ms\]
11649/// Not OK: \[10ms, 10ms, 11ms\],  \[10ms, 15ms, 20ms\]
11650#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
11651pub struct SysStatsConfig {
11652    /// Polls /proc/meminfo every X ms, if non-zero.
11653    /// This is required to be > 10ms to avoid excessive CPU usage.
11654    /// Cost: 0.3 ms \[read\] + 0.07 ms \[parse + trace injection\]
11655    #[prost(uint32, optional, tag = "1")]
11656    pub meminfo_period_ms: ::core::option::Option<u32>,
11657    /// If empty all known counters are reported. Otherwise, only the counters
11658    /// specified below are reported.
11659    #[prost(enumeration = "MeminfoCounters", repeated, packed = "false", tag = "2")]
11660    pub meminfo_counters: ::prost::alloc::vec::Vec<i32>,
11661    /// Polls /proc/vmstat every X ms, if non-zero.
11662    /// This is required to be > 10ms to avoid excessive CPU usage.
11663    /// Cost: 0.2 ms \[read\] + 0.3 ms \[parse + trace injection\]
11664    #[prost(uint32, optional, tag = "3")]
11665    pub vmstat_period_ms: ::core::option::Option<u32>,
11666    #[prost(enumeration = "VmstatCounters", repeated, packed = "false", tag = "4")]
11667    pub vmstat_counters: ::prost::alloc::vec::Vec<i32>,
11668    /// Pols /proc/stat every X ms, if non-zero.
11669    /// This is required to be > 10ms to avoid excessive CPU usage.
11670    /// Cost: 4.1 ms \[read\] + 1.9 ms \[parse + trace injection\]
11671    #[prost(uint32, optional, tag = "5")]
11672    pub stat_period_ms: ::core::option::Option<u32>,
11673    #[prost(
11674        enumeration = "sys_stats_config::StatCounters",
11675        repeated,
11676        packed = "false",
11677        tag = "6"
11678    )]
11679    pub stat_counters: ::prost::alloc::vec::Vec<i32>,
11680    /// Polls /sys/devfreq/*/curfreq every X ms, if non-zero.
11681    /// This is required to be > 10ms to avoid excessive CPU usage.
11682    /// This option can be used to record unchanging values.
11683    /// Updates from frequency changes can come from ftrace/set_clock_rate.
11684    #[prost(uint32, optional, tag = "7")]
11685    pub devfreq_period_ms: ::core::option::Option<u32>,
11686    /// Polls /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq every X ms.
11687    /// This is required to be > 10ms to avoid excessive CPU usage.
11688    #[prost(uint32, optional, tag = "8")]
11689    pub cpufreq_period_ms: ::core::option::Option<u32>,
11690    /// Polls /proc/buddyinfo every X ms, if non-zero.
11691    /// This is required to be > 10ms to avoid excessive CPU usage.
11692    #[prost(uint32, optional, tag = "9")]
11693    pub buddyinfo_period_ms: ::core::option::Option<u32>,
11694    /// Polls /proc/diskstats every X ms, if non-zero.
11695    /// This is required to be > 10ms to avoid excessive CPU usage.
11696    #[prost(uint32, optional, tag = "10")]
11697    pub diskstat_period_ms: ::core::option::Option<u32>,
11698    /// Polls /proc/pressure/* every X ms, if non-zero.
11699    /// This is required to be > 10ms to avoid excessive CPU usage.
11700    #[prost(uint32, optional, tag = "11")]
11701    pub psi_period_ms: ::core::option::Option<u32>,
11702    /// Polls /sys/class/thermal/* every X ms, if non-zero.
11703    /// This is required to be > 10ms to avoid excessive CPU usage.
11704    #[prost(uint32, optional, tag = "12")]
11705    pub thermal_period_ms: ::core::option::Option<u32>,
11706    /// Polls /sys/devices/system/cpu/cpu*/cpuidle/state* every X ms, if non-zero.
11707    /// This is required to be > 10ms to avoid excessive CPU usage.
11708    #[prost(uint32, optional, tag = "13")]
11709    pub cpuidle_period_ms: ::core::option::Option<u32>,
11710    /// Polls device-specific GPU frequency info every X ms, if non-zero.
11711    /// This is required to be > 10ms to avoid excessive CPU usage.
11712    #[prost(uint32, optional, tag = "14")]
11713    pub gpufreq_period_ms: ::core::option::Option<u32>,
11714    /// Polls /proc/slabinfo every X ms, if non-zero.
11715    /// This is required to be > 10ms to avoid excessive CPU usage.
11716    #[prost(uint32, optional, tag = "15")]
11717    pub slab_period_ms: ::core::option::Option<u32>,
11718}
11719/// Nested message and enum types in `SysStatsConfig`.
11720pub mod sys_stats_config {
11721    #[derive(
11722        Clone,
11723        Copy,
11724        Debug,
11725        PartialEq,
11726        Eq,
11727        Hash,
11728        PartialOrd,
11729        Ord,
11730        ::prost::Enumeration
11731    )]
11732    #[repr(i32)]
11733    pub enum StatCounters {
11734        StatUnspecified = 0,
11735        StatCpuTimes = 1,
11736        StatIrqCounts = 2,
11737        StatSoftirqCounts = 3,
11738        StatForkCount = 4,
11739    }
11740    impl StatCounters {
11741        /// String value of the enum field names used in the ProtoBuf definition.
11742        ///
11743        /// The values are not transformed in any way and thus are considered stable
11744        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
11745        pub fn as_str_name(&self) -> &'static str {
11746            match self {
11747                Self::StatUnspecified => "STAT_UNSPECIFIED",
11748                Self::StatCpuTimes => "STAT_CPU_TIMES",
11749                Self::StatIrqCounts => "STAT_IRQ_COUNTS",
11750                Self::StatSoftirqCounts => "STAT_SOFTIRQ_COUNTS",
11751                Self::StatForkCount => "STAT_FORK_COUNT",
11752            }
11753        }
11754        /// Creates an enum from field names used in the ProtoBuf definition.
11755        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
11756            match value {
11757                "STAT_UNSPECIFIED" => Some(Self::StatUnspecified),
11758                "STAT_CPU_TIMES" => Some(Self::StatCpuTimes),
11759                "STAT_IRQ_COUNTS" => Some(Self::StatIrqCounts),
11760                "STAT_SOFTIRQ_COUNTS" => Some(Self::StatSoftirqCounts),
11761                "STAT_FORK_COUNT" => Some(Self::StatForkCount),
11762                _ => None,
11763            }
11764        }
11765    }
11766}
11767/// The configuration for a fake producer used in tests.
11768#[derive(Clone, PartialEq, ::prost::Message)]
11769pub struct TestConfig {
11770    /// The number of messages the fake producer should send.
11771    #[prost(uint32, optional, tag = "1")]
11772    pub message_count: ::core::option::Option<u32>,
11773    /// The maximum number of messages which should be sent each second.
11774    /// The actual obserced speed may be lower if the producer is unable to
11775    /// work fast enough.
11776    /// If this is zero or unset, the producer will send as fast as possible.
11777    #[prost(uint32, optional, tag = "2")]
11778    pub max_messages_per_second: ::core::option::Option<u32>,
11779    /// The seed value for a simple multiplicative congruential pseudo-random
11780    /// number sequence.
11781    #[prost(uint32, optional, tag = "3")]
11782    pub seed: ::core::option::Option<u32>,
11783    /// The size of each message in bytes. Should be greater than or equal 5 to
11784    /// account for the number of bytes needed to encode the random number and a
11785    /// null byte for the string.
11786    #[prost(uint32, optional, tag = "4")]
11787    pub message_size: ::core::option::Option<u32>,
11788    /// Whether the producer should send a event batch when the data source is
11789    /// is initially registered.
11790    #[prost(bool, optional, tag = "5")]
11791    pub send_batch_on_register: ::core::option::Option<bool>,
11792    #[prost(message, optional, tag = "6")]
11793    pub dummy_fields: ::core::option::Option<test_config::DummyFields>,
11794}
11795/// Nested message and enum types in `TestConfig`.
11796pub mod test_config {
11797    #[derive(Clone, PartialEq, ::prost::Message)]
11798    pub struct DummyFields {
11799        #[prost(uint32, optional, tag = "1")]
11800        pub field_uint32: ::core::option::Option<u32>,
11801        #[prost(int32, optional, tag = "2")]
11802        pub field_int32: ::core::option::Option<i32>,
11803        #[prost(uint64, optional, tag = "3")]
11804        pub field_uint64: ::core::option::Option<u64>,
11805        #[prost(int64, optional, tag = "4")]
11806        pub field_int64: ::core::option::Option<i64>,
11807        #[prost(fixed64, optional, tag = "5")]
11808        pub field_fixed64: ::core::option::Option<u64>,
11809        #[prost(sfixed64, optional, tag = "6")]
11810        pub field_sfixed64: ::core::option::Option<i64>,
11811        #[prost(fixed32, optional, tag = "7")]
11812        pub field_fixed32: ::core::option::Option<u32>,
11813        #[prost(sfixed32, optional, tag = "8")]
11814        pub field_sfixed32: ::core::option::Option<i32>,
11815        #[prost(double, optional, tag = "9")]
11816        pub field_double: ::core::option::Option<f64>,
11817        #[prost(float, optional, tag = "10")]
11818        pub field_float: ::core::option::Option<f32>,
11819        #[prost(sint64, optional, tag = "11")]
11820        pub field_sint64: ::core::option::Option<i64>,
11821        #[prost(sint32, optional, tag = "12")]
11822        pub field_sint32: ::core::option::Option<i32>,
11823        #[prost(string, optional, tag = "13")]
11824        pub field_string: ::core::option::Option<::prost::alloc::string::String>,
11825        #[prost(bytes = "vec", optional, tag = "14")]
11826        pub field_bytes: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
11827    }
11828}
11829/// The following fields define the set of enabled trace categories. Each list
11830/// item is a glob.
11831///
11832/// To determine if category is enabled, it is checked against the filters in
11833/// the following order:
11834///
11835///    1. Exact matches in enabled categories.
11836///    2. Exact matches in enabled tags.
11837///    3. Exact matches in disabled categories.
11838///    4. Exact matches in disabled tags.
11839///    5. Pattern matches in enabled categories.
11840///    6. Pattern matches in enabled tags.
11841///    7. Pattern matches in disabled categories.
11842///    8. Pattern matches in disabled tags.
11843///
11844/// If none of the steps produced a match:
11845///   - In the C++ SDK (`perfetto::Category`), categories are enabled by
11846///   default.
11847///   - In the C SDK (`PerfettoTeCategory`), categories are disabled by default.
11848///
11849/// Examples:
11850///
11851///   - To enable all non-slow/debug categories:
11852///
11853///        enabled_categories: "*"
11854///
11855///   - To enable specific categories:
11856///
11857///        disabled_categories: "*"
11858///        enabled_categories: "my_category"
11859///        enabled_categories: "my_category2"
11860///
11861///   - To enable only categories with a specific tag:
11862///
11863///        disabled_tags: "*"
11864///        enabled_tags: "my_tag"
11865///
11866#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
11867pub struct TrackEventConfig {
11868    /// Default: \[\]
11869    #[prost(string, repeated, tag = "1")]
11870    pub disabled_categories: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
11871    /// Default: \[\]
11872    #[prost(string, repeated, tag = "2")]
11873    pub enabled_categories: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
11874    /// Default: \["slow", "debug"\]
11875    #[prost(string, repeated, tag = "3")]
11876    pub disabled_tags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
11877    /// Default: \[\]
11878    #[prost(string, repeated, tag = "4")]
11879    pub enabled_tags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
11880    /// Default: false (i.e. enabled by default)
11881    #[prost(bool, optional, tag = "5")]
11882    pub disable_incremental_timestamps: ::core::option::Option<bool>,
11883    /// Allows to specify a custom unit different than the default (ns).
11884    /// Also affects thread timestamps if enable_thread_time_sampling = true.
11885    /// A multiplier of 1000 means that a timestamp = 3 should be interpreted as
11886    /// 3000 ns = 3 us.
11887    /// Default: 1 (if unset, it should be read as 1).
11888    #[prost(uint64, optional, tag = "6")]
11889    pub timestamp_unit_multiplier: ::core::option::Option<u64>,
11890    /// Default: false (i.e. debug_annotations is NOT filtered out by default)
11891    /// When true, any debug annotations provided as arguments to the
11892    /// TRACE_EVENT macros are not written into the trace. Typed arguments will
11893    /// still be emitted even if set to true.
11894    #[prost(bool, optional, tag = "7")]
11895    pub filter_debug_annotations: ::core::option::Option<bool>,
11896    /// Default: false (i.e. disabled)
11897    /// When true, the SDK samples and emits the current thread time counter value
11898    /// for each event on the current thread's track. This value represents the
11899    /// total CPU time consumed by that thread since its creation.
11900    /// Learn more: "CLOCK_THREAD_CPUTIME_ID" flag at
11901    /// <https://man7.org/linux/man-pages/man3/clock_gettime.3.html>
11902    #[prost(bool, optional, tag = "8")]
11903    pub enable_thread_time_sampling: ::core::option::Option<bool>,
11904    /// When enable_thread_time_sampling is true, and this is specified, thread
11905    /// time is sampled only if the elapsed wall time >
11906    /// `thread_time_subsampling_ns`. Otherwise, thread time is considered nil.
11907    /// Effectively, this means thread time will have a leeway of
11908    /// `thread_time_subsampling_ns` and won't be emitted for shorter events.
11909    #[prost(uint64, optional, tag = "10")]
11910    pub thread_time_subsampling_ns: ::core::option::Option<u64>,
11911    /// Default: false (i.e. dynamic event names are NOT filtered out by default)
11912    /// When true, event_names wrapped in perfetto::DynamicString will be filtered
11913    /// out.
11914    #[prost(bool, optional, tag = "9")]
11915    pub filter_dynamic_event_names: ::core::option::Option<bool>,
11916}
11917/// This data-source does a one-off recording of system information when
11918/// the trace starts.
11919/// Currently this includes:
11920/// - Values of
11921/// /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_frequencies This
11922/// datasource has no configuration options at present.
11923#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
11924pub struct SystemInfoConfig {
11925    /// If true, records hardware interrupt ID-to-name mappings from
11926    /// /proc/interrupts.
11927    #[prost(bool, optional, tag = "1")]
11928    pub irq_names: ::core::option::Option<bool>,
11929}
11930#[derive(Clone, PartialEq, ::prost::Message)]
11931pub struct ChromiumHistogramSamplesConfig {
11932    /// List of histograms to record. If no histogram is specified, all histograms
11933    /// are recorded.
11934    #[prost(message, repeated, tag = "1")]
11935    pub histograms: ::prost::alloc::vec::Vec<
11936        chromium_histogram_samples_config::HistogramSample,
11937    >,
11938    /// Default: false (i.e. histogram names are NOT filtered out by default)
11939    /// When true, histogram_name will be filtered out.
11940    #[prost(bool, optional, tag = "2")]
11941    pub filter_histogram_names: ::core::option::Option<bool>,
11942}
11943/// Nested message and enum types in `ChromiumHistogramSamplesConfig`.
11944pub mod chromium_histogram_samples_config {
11945    /// Records when a value within the specified bounds \[min_value, max_value\] is
11946    /// emitted into a Chrome histogram.
11947    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
11948    pub struct HistogramSample {
11949        #[prost(string, optional, tag = "1")]
11950        pub histogram_name: ::core::option::Option<::prost::alloc::string::String>,
11951        #[prost(int64, optional, tag = "2")]
11952        pub min_value: ::core::option::Option<i64>,
11953        #[prost(int64, optional, tag = "3")]
11954        pub max_value: ::core::option::Option<i64>,
11955    }
11956}
11957/// Configuration for the "linux.systemd_journald" data source.
11958/// Next field id: 4
11959#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
11960pub struct SystemdJournaldConfig {
11961    /// Minimum syslog priority level to capture (inclusive).
11962    /// 0=EMERG, 1=ALERT, 2=CRIT, 3=ERR, 4=WARNING, 5=NOTICE, 6=INFO, 7=DEBUG.
11963    /// Default (0 / unset): capture all priorities (equivalent to 7).
11964    #[prost(uint32, optional, tag = "1")]
11965    pub min_prio: ::core::option::Option<u32>,
11966    /// If non-empty, only capture journal entries whose SYSLOG_IDENTIFIER
11967    /// matches one of these strings.
11968    #[prost(string, repeated, tag = "2")]
11969    pub filter_identifiers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
11970    /// If non-empty, only capture journal entries from these systemd unit names.
11971    #[prost(string, repeated, tag = "3")]
11972    pub filter_units: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
11973}
11974/// QnxConfig is used with trace_qnx_probes build from
11975/// <https://github.com/qnx-ports/perfetto>
11976#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
11977pub struct QnxConfig {
11978    /// The number of buffers that tracelog will init for the QNX trace.
11979    #[prost(uint32, optional, tag = "1")]
11980    pub qnx_kernel_buffers: ::core::option::Option<u32>,
11981    /// The number of kernel buffers that tracelog will init for the QNX trace.
11982    #[prost(uint32, optional, tag = "2")]
11983    pub qnx_kernel_kbuffers: ::core::option::Option<u32>,
11984    /// Flag indicating whether the QNX kernel tracing should produce wide
11985    /// events which contain additional data or fast events which are most
11986    /// concise. In fast mode we lose the priority information
11987    #[prost(bool, optional, tag = "3")]
11988    pub qnx_kernel_wide_events: ::core::option::Option<bool>,
11989    /// The number of pages initialized by default the parser's page cache.
11990    #[prost(uint32, optional, tag = "4")]
11991    pub qnx_cache_pages: ::core::option::Option<u32>,
11992    /// The max pages the page cache should allocate (must be at least as big)
11993    /// as the qnx_cache_pages value. Using -1 will allow the cache to grow
11994    /// unbounded. The cache will prefer to re-use existing pages so growth will
11995    /// only happen when needed (when parser is not keeping up).
11996    #[prost(int32, optional, tag = "5")]
11997    pub qnx_cache_max_pages: ::core::option::Option<i32>,
11998    /// The initial size of the the buffer used to hold the trace header values
11999    /// this dynamic buffer will grow as needed but reallocs can be avoided by
12000    /// selecting an initial size large enough to hold all the initial header
12001    /// data.
12002    #[prost(uint32, optional, tag = "6")]
12003    pub qnx_trace_buffer_init_bytes: ::core::option::Option<u32>,
12004}
12005/// The configuration that is passed to each data source when starting tracing.
12006/// Next id: 143
12007#[derive(Clone, PartialEq, ::prost::Message)]
12008pub struct DataSourceConfig {
12009    /// Data source unique name, e.g., "linux.ftrace". This must match
12010    /// the name passed by the data source when it registers (see
12011    /// RegisterDataSource()).
12012    #[prost(string, optional, tag = "1")]
12013    pub name: ::core::option::Option<::prost::alloc::string::String>,
12014    /// The index of the logging buffer where TracePacket(s) will be stored.
12015    /// This field is quite subtle as it has a double semantic:
12016    /// 1) When the config is passed, this field is a 0-based index relative to the
12017    ///     buffer array in the TraceConfig and defines the mapping between data
12018    ///     sources and config. From v54 this is optional because the user can
12019    ///     instead use target_buffer_name.
12020    /// 2) When the TracingService issues a SetupDataSource/StartDataSource to the
12021    ///     producer, it overwrites this field with the global buffer index (which
12022    ///     depends on other tracing sessions active). This tells the producer which
12023    ///     buffer id should be passed to CreateTraceWriter. In this case, the trace
12024    ///     service always sets the resolved global id, even when using
12025    ///     `target_buffer_name`.
12026    /// In hindsight we should have used two different fields given even in v0 they
12027    /// had a different semantic. But now it's too late as this would be a major
12028    /// protocol breaking change.
12029    #[prost(uint32, optional, tag = "2")]
12030    pub target_buffer: ::core::option::Option<u32>,
12031    /// Alternative to |target_buffer|. References a buffer by name (as specified
12032    /// in TraceConfig.BufferConfig.name) rather than by index. This is more
12033    /// readable and less error-prone than using buffer indices.
12034    /// If both |target_buffer| and |target_buffer_name| are specified, they must
12035    /// refer to the same buffer, otherwise the service will reject the config.
12036    /// Using both fields allows configs to work with both old and new versions
12037    /// of the tracing service. Introduced in v54.
12038    #[prost(string, optional, tag = "11")]
12039    pub target_buffer_name: ::core::option::Option<::prost::alloc::string::String>,
12040    /// Set by the service to indicate the duration of the trace.
12041    /// DO NOT SET in consumer as this will be overridden by the service.
12042    #[prost(uint32, optional, tag = "3")]
12043    pub trace_duration_ms: ::core::option::Option<u32>,
12044    /// If true, |trace_duration_ms| should count also time in suspend. This
12045    /// is propagated from TraceConfig.prefer_suspend_clock_for_duration.
12046    #[prost(bool, optional, tag = "122")]
12047    pub prefer_suspend_clock_for_duration: ::core::option::Option<bool>,
12048    /// Set by the service to indicate how long it waits after StopDataSource.
12049    /// DO NOT SET in consumer as this will be overridden by the service.
12050    #[prost(uint32, optional, tag = "7")]
12051    pub stop_timeout_ms: ::core::option::Option<u32>,
12052    /// Set by the service to indicate whether this tracing session has extra
12053    /// guardrails.
12054    /// DO NOT SET in consumer as this will be overridden by the service.
12055    #[prost(bool, optional, tag = "6")]
12056    pub enable_extra_guardrails: ::core::option::Option<bool>,
12057    /// Set by the service to indicate which user initiated this trace.
12058    /// DO NOT SET in consumer as this will be overridden by the service.
12059    #[prost(enumeration = "data_source_config::SessionInitiator", optional, tag = "8")]
12060    pub session_initiator: ::core::option::Option<i32>,
12061    /// Set by the service to indicate which tracing session the data source
12062    /// belongs to. The intended use case for this is checking if two data sources,
12063    /// one of which produces metadata for the other one, belong to the same trace
12064    /// session and hence should be linked together.
12065    /// This field was introduced in Aug 2018 after Android P.
12066    /// DO NOT SET in consumer as this will be overridden by the service.
12067    #[prost(uint64, optional, tag = "4")]
12068    pub tracing_session_id: ::core::option::Option<u64>,
12069    /// How to behave when the producer runs out of space in the shared memory
12070    /// buffer. This is only honored by some data sources (in the SDK, the data
12071    /// sources registered with a configurable buffer exhausted policy).
12072    #[prost(
12073        enumeration = "data_source_config::BufferExhaustedPolicy",
12074        optional,
12075        tag = "9"
12076    )]
12077    pub buffer_exhausted_policy: ::core::option::Option<i32>,
12078    #[prost(message, optional, tag = "10")]
12079    pub priority_boost: ::core::option::Option<PriorityBoostConfig>,
12080    /// TODO(primiano): today when we enable a protovm_config, we actually accept
12081    /// that if N producers advertise M different versions of the same program we
12082    /// will create M instances of that program.
12083    /// To overcome this, we could move the program to the TraceConfig. But doing
12084    /// so would bloat the trace config size too big and create problems to statsd.
12085    /// Once the config store (b/482305876) exists we should move protovm programs
12086    /// onto that.
12087    #[prost(message, optional, tag = "12")]
12088    pub protovm_config: ::core::option::Option<ProtoVmConfig>,
12089    /// Data source name: linux.ftrace
12090    #[prost(message, optional, tag = "100")]
12091    pub ftrace_config: ::core::option::Option<FtraceConfig>,
12092    /// Data source name: linux.inode_file_map
12093    #[prost(message, optional, tag = "102")]
12094    pub inode_file_config: ::core::option::Option<InodeFileConfig>,
12095    /// Data source name: linux.process_stats
12096    #[prost(message, optional, tag = "103")]
12097    pub process_stats_config: ::core::option::Option<ProcessStatsConfig>,
12098    /// Data source name: linux.sys_stats
12099    #[prost(message, optional, tag = "104")]
12100    pub sys_stats_config: ::core::option::Option<SysStatsConfig>,
12101    /// Data source name: android.heapprofd
12102    /// Introduced in Android 10.
12103    #[prost(message, optional, tag = "105")]
12104    pub heapprofd_config: ::core::option::Option<HeapprofdConfig>,
12105    /// Data source name: android.java_hprof
12106    /// Introduced in Android 11.
12107    #[prost(message, optional, tag = "110")]
12108    pub java_hprof_config: ::core::option::Option<JavaHprofConfig>,
12109    /// Data source name: android.power
12110    #[prost(message, optional, tag = "106")]
12111    pub android_power_config: ::core::option::Option<AndroidPowerConfig>,
12112    /// Data source name: android.log
12113    #[prost(message, optional, tag = "107")]
12114    pub android_log_config: ::core::option::Option<AndroidLogConfig>,
12115    /// Data source name: gpu.counters
12116    #[prost(message, optional, tag = "108")]
12117    pub gpu_counter_config: ::core::option::Option<GpuCounterConfig>,
12118    /// Data source name: android.game_interventions
12119    #[prost(message, optional, tag = "116")]
12120    pub android_game_intervention_list_config: ::core::option::Option<
12121        AndroidGameInterventionListConfig,
12122    >,
12123    /// Data source name: android.packages_list
12124    #[prost(message, optional, tag = "109")]
12125    pub packages_list_config: ::core::option::Option<PackagesListConfig>,
12126    /// Data source name: linux.perf
12127    #[prost(message, optional, tag = "111")]
12128    pub perf_event_config: ::core::option::Option<PerfEventConfig>,
12129    /// Data source name: vulkan.memory_tracker
12130    #[prost(message, optional, tag = "112")]
12131    pub vulkan_memory_config: ::core::option::Option<VulkanMemoryConfig>,
12132    /// Data source name: track_event
12133    #[prost(message, optional, tag = "113")]
12134    pub track_event_config: ::core::option::Option<TrackEventConfig>,
12135    /// Data source name: android.polled_state
12136    #[prost(message, optional, tag = "114")]
12137    pub android_polled_state_config: ::core::option::Option<AndroidPolledStateConfig>,
12138    /// Data source name: android.system_property
12139    #[prost(message, optional, tag = "118")]
12140    pub android_system_property_config: ::core::option::Option<
12141        AndroidSystemPropertyConfig,
12142    >,
12143    /// Data source name: android.statsd
12144    #[prost(message, optional, tag = "117")]
12145    pub statsd_tracing_config: ::core::option::Option<StatsdTracingConfig>,
12146    /// Data source name: linux.system_info
12147    #[prost(message, optional, tag = "119")]
12148    pub system_info_config: ::core::option::Option<SystemInfoConfig>,
12149    /// Data source name: linux.frozen_ftrace
12150    #[prost(message, optional, tag = "136")]
12151    pub frozen_ftrace_config: ::core::option::Option<FrozenFtraceConfig>,
12152    /// Chrome is special as it doesn't use the perfetto IPC layer. We want to
12153    /// avoid proto serialization and de-serialization there because that would
12154    /// just add extra hops on top of the Mojo ser/des. Instead we auto-generate a
12155    /// C++ class for it so it can pass around plain C++ objets.
12156    #[prost(message, optional, tag = "101")]
12157    pub chrome_config: ::core::option::Option<ChromeConfig>,
12158    /// Data source name: code.v8.dev
12159    #[prost(message, optional, tag = "127")]
12160    pub v8_config: ::core::option::Option<V8Config>,
12161    /// If an interceptor is specified here, packets for this data source will be
12162    /// rerouted to the interceptor instead of the main trace buffer. This can be
12163    /// used, for example, to write trace data into ETW or for logging trace points
12164    /// to the console.
12165    ///
12166    /// Note that interceptors are only supported by data sources registered
12167    /// through the Perfetto SDK API. Data sources that don't use that API (e.g.,
12168    /// traced_probes) may not support interception.
12169    #[prost(message, optional, tag = "115")]
12170    pub interceptor_config: ::core::option::Option<InterceptorConfig>,
12171    /// Data source name: android.network_packets.
12172    /// Introduced in Android 14 (U).
12173    #[prost(message, optional, tag = "120")]
12174    pub network_packet_trace_config: ::core::option::Option<NetworkPacketTraceConfig>,
12175    /// Data source name: android.surfaceflinger.layers
12176    #[prost(message, optional, tag = "121")]
12177    pub surfaceflinger_layers_config: ::core::option::Option<SurfaceFlingerLayersConfig>,
12178    /// Data source name: android.surfaceflinger.transactions
12179    #[prost(message, optional, tag = "123")]
12180    pub surfaceflinger_transactions_config: ::core::option::Option<
12181        SurfaceFlingerTransactionsConfig,
12182    >,
12183    /// Data source name: android.sdk_sysprop_guard
12184    /// Introduced in Android 14 (U) QPR1.
12185    #[prost(message, optional, tag = "124")]
12186    pub android_sdk_sysprop_guard_config: ::core::option::Option<
12187        AndroidSdkSyspropGuardConfig,
12188    >,
12189    /// Data source name: windows.etw
12190    #[prost(message, optional, tag = "125")]
12191    pub etw_config: ::core::option::Option<EtwConfig>,
12192    /// Data source name: android.protolog
12193    #[prost(message, optional, tag = "126")]
12194    pub protolog_config: ::core::option::Option<ProtoLogConfig>,
12195    /// Data source name: android.input.inputevent
12196    #[prost(message, optional, tag = "128")]
12197    pub android_input_event_config: ::core::option::Option<AndroidInputEventConfig>,
12198    /// Data source name: android.pixel.modem
12199    #[prost(message, optional, tag = "129")]
12200    pub pixel_modem_config: ::core::option::Option<PixelModemConfig>,
12201    /// Data source name: android.windowmanager
12202    #[prost(message, optional, tag = "130")]
12203    pub windowmanager_config: ::core::option::Option<WindowManagerConfig>,
12204    /// Data source name: org.chromium.system_metrics
12205    #[prost(message, optional, tag = "131")]
12206    pub chromium_system_metrics: ::core::option::Option<ChromiumSystemMetricsConfig>,
12207    /// Data source name: android.kernel_wakelocks
12208    #[prost(message, optional, tag = "132")]
12209    pub kernel_wakelocks_config: ::core::option::Option<KernelWakelocksConfig>,
12210    /// Data source name: gpu.renderstages
12211    #[prost(message, optional, tag = "133")]
12212    pub gpu_renderstages_config: ::core::option::Option<GpuRenderStagesConfig>,
12213    /// Data source name: org.chromium.histogram_samples
12214    #[prost(message, optional, tag = "134")]
12215    pub chromium_histogram_samples: ::core::option::Option<
12216        ChromiumHistogramSamplesConfig,
12217    >,
12218    /// Data source name: android.app_wakelocks
12219    #[prost(message, optional, tag = "135")]
12220    pub app_wakelocks_config: ::core::option::Option<AppWakelocksConfig>,
12221    /// Data source name: android.cpu_per_uid
12222    #[prost(message, optional, tag = "137")]
12223    pub cpu_per_uid_config: ::core::option::Option<CpuPerUidConfig>,
12224    /// Data source name: android.user_list
12225    #[prost(message, optional, tag = "138")]
12226    pub user_list_config: ::core::option::Option<AndroidUserListConfig>,
12227    /// Data source name: android.inputmethod
12228    #[prost(message, optional, tag = "139")]
12229    pub inputmethod_config: ::core::option::Option<InputMethodConfig>,
12230    /// Data source name: android.aflags
12231    #[prost(message, optional, tag = "140")]
12232    pub android_aflags_config: ::core::option::Option<AndroidAflagsConfig>,
12233    /// Data source name: linux.systemd_journald
12234    #[prost(message, optional, tag = "141")]
12235    pub journald_config: ::core::option::Option<SystemdJournaldConfig>,
12236    /// Data source name: android.display.video
12237    #[prost(message, optional, tag = "142")]
12238    pub display_video_config: ::core::option::Option<DisplayVideoConfig>,
12239    /// Data source name: qnx.kernel
12240    #[prost(message, optional, tag = "150")]
12241    pub qnx_config: ::core::option::Option<QnxConfig>,
12242    /// This is a fallback mechanism to send a free-form text config to the
12243    /// producer. In theory this should never be needed. All the code that
12244    /// is part of the platform (i.e. traced service) is supposed to *not* truncate
12245    /// the trace config proto and propagate unknown fields. However, if anything
12246    /// in the pipeline (client or backend) ends up breaking this forward compat
12247    /// plan, this field will become the escape hatch to allow future data sources
12248    /// to get some meaningful configuration.
12249    #[prost(string, optional, tag = "1000")]
12250    pub legacy_config: ::core::option::Option<::prost::alloc::string::String>,
12251    /// This field is only used for testing.
12252    #[prost(message, optional, tag = "1001")]
12253    pub for_testing: ::core::option::Option<TestConfig>,
12254}
12255/// Nested message and enum types in `DataSourceConfig`.
12256pub mod data_source_config {
12257    #[derive(
12258        Clone,
12259        Copy,
12260        Debug,
12261        PartialEq,
12262        Eq,
12263        Hash,
12264        PartialOrd,
12265        Ord,
12266        ::prost::Enumeration
12267    )]
12268    #[repr(i32)]
12269    pub enum SessionInitiator {
12270        Unspecified = 0,
12271        /// This trace was initiated from a trusted system app has DUMP and
12272        /// USAGE_STATS permission. This system app is expected to not expose the
12273        /// trace to the user of the device.
12274        /// This is determined by checking the UID initiating the trace.
12275        TrustedSystem = 1,
12276    }
12277    impl SessionInitiator {
12278        /// String value of the enum field names used in the ProtoBuf definition.
12279        ///
12280        /// The values are not transformed in any way and thus are considered stable
12281        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
12282        pub fn as_str_name(&self) -> &'static str {
12283            match self {
12284                Self::Unspecified => "SESSION_INITIATOR_UNSPECIFIED",
12285                Self::TrustedSystem => "SESSION_INITIATOR_TRUSTED_SYSTEM",
12286            }
12287        }
12288        /// Creates an enum from field names used in the ProtoBuf definition.
12289        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
12290            match value {
12291                "SESSION_INITIATOR_UNSPECIFIED" => Some(Self::Unspecified),
12292                "SESSION_INITIATOR_TRUSTED_SYSTEM" => Some(Self::TrustedSystem),
12293                _ => None,
12294            }
12295        }
12296    }
12297    #[derive(
12298        Clone,
12299        Copy,
12300        Debug,
12301        PartialEq,
12302        Eq,
12303        Hash,
12304        PartialOrd,
12305        Ord,
12306        ::prost::Enumeration
12307    )]
12308    #[repr(i32)]
12309    pub enum BufferExhaustedPolicy {
12310        /// The data source will use its default buffer exhausted policy, specified
12311        /// by the code when the data source is registered.
12312        BufferExhaustedUnspecified = 0,
12313        /// The data source will drop packets when there's no space in the shared
12314        /// memory buffer.
12315        BufferExhaustedDrop = 1,
12316        /// The data source will wait when there's no space in the shared memory
12317        /// buffer. If there's still not space, after a few seconds, the whole
12318        /// producer process will be aborted.
12319        BufferExhaustedStallThenAbort = 2,
12320        /// The data source will wait when there's no space in the shared memory
12321        /// buffer.  If there's still not space, after a few seconds, the data source
12322        /// will drop packets.
12323        BufferExhaustedStallThenDrop = 3,
12324    }
12325    impl BufferExhaustedPolicy {
12326        /// String value of the enum field names used in the ProtoBuf definition.
12327        ///
12328        /// The values are not transformed in any way and thus are considered stable
12329        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
12330        pub fn as_str_name(&self) -> &'static str {
12331            match self {
12332                Self::BufferExhaustedUnspecified => "BUFFER_EXHAUSTED_UNSPECIFIED",
12333                Self::BufferExhaustedDrop => "BUFFER_EXHAUSTED_DROP",
12334                Self::BufferExhaustedStallThenAbort => {
12335                    "BUFFER_EXHAUSTED_STALL_THEN_ABORT"
12336                }
12337                Self::BufferExhaustedStallThenDrop => "BUFFER_EXHAUSTED_STALL_THEN_DROP",
12338            }
12339        }
12340        /// Creates an enum from field names used in the ProtoBuf definition.
12341        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
12342            match value {
12343                "BUFFER_EXHAUSTED_UNSPECIFIED" => Some(Self::BufferExhaustedUnspecified),
12344                "BUFFER_EXHAUSTED_DROP" => Some(Self::BufferExhaustedDrop),
12345                "BUFFER_EXHAUSTED_STALL_THEN_ABORT" => {
12346                    Some(Self::BufferExhaustedStallThenAbort)
12347                }
12348                "BUFFER_EXHAUSTED_STALL_THEN_DROP" => {
12349                    Some(Self::BufferExhaustedStallThenDrop)
12350                }
12351                _ => None,
12352            }
12353        }
12354    }
12355}
12356/// The overall config that is used when starting a new tracing session through
12357/// ProducerPort::StartTracing().
12358/// It contains the general config for the logging buffer(s) and the configs for
12359/// all the data source being enabled.
12360///
12361/// Next id: 49.
12362#[derive(Clone, PartialEq, ::prost::Message)]
12363pub struct TraceConfig {
12364    #[prost(message, repeated, tag = "1")]
12365    pub buffers: ::prost::alloc::vec::Vec<trace_config::BufferConfig>,
12366    #[prost(message, repeated, tag = "2")]
12367    pub data_sources: ::prost::alloc::vec::Vec<trace_config::DataSource>,
12368    #[prost(message, optional, tag = "20")]
12369    pub builtin_data_sources: ::core::option::Option<trace_config::BuiltinDataSource>,
12370    /// If specified, the trace will be stopped |duration_ms| after starting.
12371    /// This does *not* count the time the system is suspended, so we will run
12372    /// for duration_ms of system activity, not wall time.
12373    ///
12374    /// However in case of traces with triggers, see
12375    /// TriggerConfig.trigger_timeout_ms instead.
12376    #[prost(uint32, optional, tag = "3")]
12377    pub duration_ms: ::core::option::Option<u32>,
12378    /// If true, tries to use CLOCK_BOOTTIME for duration_ms rather than
12379    /// CLOCK_MONOTONIC (which doesn't count time in suspend). Supported only on
12380    /// Linux/Android, no-op on other platforms. This is used when dealing with
12381    /// long (e.g. 24h) traces, where suspend can inflate them to weeks of
12382    /// wall-time, making them more likely to hit device reboots (and hence loss).
12383    /// This option also changes consistently the semantic of
12384    /// TriggerConfig.stop_delay_ms.
12385    #[prost(bool, optional, tag = "36")]
12386    pub prefer_suspend_clock_for_duration: ::core::option::Option<bool>,
12387    /// This is set when --dropbox is passed to the Perfetto command line client
12388    /// and enables guardrails that limit resource usage for traces requested
12389    /// by statsd.
12390    #[prost(bool, optional, tag = "4")]
12391    pub enable_extra_guardrails: ::core::option::Option<bool>,
12392    /// Reject producers that are not running under the same UID as the tracing
12393    /// service.
12394    #[prost(enumeration = "trace_config::LockdownModeOperation", optional, tag = "5")]
12395    pub lockdown_mode: ::core::option::Option<i32>,
12396    #[prost(message, repeated, tag = "6")]
12397    pub producers: ::prost::alloc::vec::Vec<trace_config::ProducerConfig>,
12398    /// Statsd-specific metadata.
12399    #[prost(message, optional, tag = "7")]
12400    pub statsd_metadata: ::core::option::Option<trace_config::StatsdMetadata>,
12401    /// When true && |output_path| is empty, the EnableTracing() request must
12402    /// provide a file descriptor. The service will then periodically read packets
12403    /// out of the trace buffer and store it into the passed file.
12404    /// If |output_path| is not empty no fd should be passed, the service
12405    /// will create a new file and write into that (see comment below).
12406    #[prost(bool, optional, tag = "8")]
12407    pub write_into_file: ::core::option::Option<bool>,
12408    /// This must point to a non-existing file. If the file exists the service
12409    /// will NOT overwrite and will fail instead as a security precaution.
12410    /// On Android, when this is used with the system traced, the path must be
12411    /// within /data/misc/perfetto-traces/ or the trace will fail.
12412    /// This option has been introduced in Android R. Before R write_into_file
12413    /// can be used only with the "pass a file descriptor over IPC" mode.
12414    #[prost(string, optional, tag = "29")]
12415    pub output_path: ::core::option::Option<::prost::alloc::string::String>,
12416    /// Optional. If non-zero tunes the write period. A min value of 100ms is
12417    /// enforced (i.e. smaller values are ignored).
12418    #[prost(uint32, optional, tag = "9")]
12419    pub file_write_period_ms: ::core::option::Option<u32>,
12420    /// Optional. When non zero the periodic write stops once at most X bytes
12421    /// have been written into the file. Tracing is disabled when this limit is
12422    /// reached, even if |duration_ms| has not been reached yet.
12423    #[prost(uint64, optional, tag = "10")]
12424    pub max_file_size_bytes: ::core::option::Option<u64>,
12425    #[prost(message, optional, tag = "11")]
12426    pub guardrail_overrides: ::core::option::Option<trace_config::GuardrailOverrides>,
12427    /// When true, data sources are not started until an explicit call to
12428    /// StartTracing() on the consumer port. This is to support early
12429    /// initialization and fast trace triggering. This can be used only when the
12430    /// Consumer explicitly triggers the StartTracing() method.
12431    /// This should not be used in a remote trace config via statsd, doing so will
12432    /// result in a hung trace session.
12433    #[prost(bool, optional, tag = "12")]
12434    pub deferred_start: ::core::option::Option<bool>,
12435    /// When set, it periodically issues a Flush() to all data source, forcing them
12436    /// to commit their data into the tracing service. This can be used for
12437    /// quasi-real-time streaming mode and to guarantee some partial ordering of
12438    /// events in the trace in windows of X ms.
12439    ///
12440    /// Warning: Perfetto automatically handles periodic flushing so in most
12441    /// scenarios setting this field is not needed. High frequency flushing can
12442    /// significantly impact performance.
12443    #[prost(uint32, optional, tag = "13")]
12444    pub flush_period_ms: ::core::option::Option<u32>,
12445    /// Wait for this long for producers to acknowledge flush requests.
12446    /// Default 5s.
12447    #[prost(uint32, optional, tag = "14")]
12448    pub flush_timeout_ms: ::core::option::Option<u32>,
12449    /// Wait for this long for producers to acknowledge stop requests.
12450    /// Default 5s.
12451    #[prost(uint32, optional, tag = "23")]
12452    pub data_source_stop_timeout_ms: ::core::option::Option<u32>,
12453    /// Android-only. If set, sends an intent to the Traceur system app when the
12454    /// trace ends to notify it about the trace readiness.
12455    #[prost(bool, optional, tag = "16")]
12456    pub notify_traceur: ::core::option::Option<bool>,
12457    /// This field was introduced in Android S.
12458    /// Android-only. If set to a value > 0, marks the trace session as a candidate
12459    /// for being attached to a bugreport. This field effectively acts as a z-index
12460    /// for bugreports. When Android's dumpstate runs perfetto
12461    /// --save-for-bugreport, traced will pick the tracing session with the highest
12462    /// score (score <= 0 is ignored) and:
12463    /// On Android S, T:  will steal its contents, save the trace into
12464    ///      a known path and stop prematurely.
12465    /// On Android U+: will create a read-only snapshot and save that into a known
12466    ///      path, without stoppin the original tracing session.
12467    /// When this field is set the tracing session becomes eligible to be cloned
12468    /// by other UIDs.
12469    #[prost(int32, optional, tag = "30")]
12470    pub bugreport_score: ::core::option::Option<i32>,
12471    /// When set, defines name of the file that will be saved under
12472    /// /data/misc/perfetto-traces/bugreport/ when using --save-all-for-bugreport.
12473    /// If omitted, traces will be named systrace.pftrace, systrace_1.pftrace, etc,
12474    /// starting from the highest `bugreport_score`.
12475    /// Introduced in v42 / Android V.
12476    #[prost(string, optional, tag = "38")]
12477    pub bugreport_filename: ::core::option::Option<::prost::alloc::string::String>,
12478    #[prost(message, optional, tag = "17")]
12479    pub trigger_config: ::core::option::Option<trace_config::TriggerConfig>,
12480    /// When this is non-empty the perfetto command line tool will ignore the rest
12481    /// of this TraceConfig and instead connect to the perfetto service as a
12482    /// producer and send these triggers, potentially stopping or starting traces
12483    /// that were previous configured to use a TriggerConfig.
12484    #[prost(string, repeated, tag = "18")]
12485    pub activate_triggers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
12486    #[prost(message, optional, tag = "21")]
12487    pub incremental_state_config: ::core::option::Option<
12488        trace_config::IncrementalStateConfig,
12489    >,
12490    /// No longer needed as we unconditionally allow tracing on user builds.
12491    #[deprecated]
12492    #[prost(bool, optional, tag = "19")]
12493    pub allow_user_build_tracing: ::core::option::Option<bool>,
12494    /// If set the tracing service will ensure there is at most one tracing session
12495    /// with this key.
12496    #[prost(string, optional, tag = "22")]
12497    pub unique_session_name: ::core::option::Option<::prost::alloc::string::String>,
12498    #[deprecated]
12499    #[prost(enumeration = "trace_config::CompressionType", optional, tag = "24")]
12500    pub compression_type: ::core::option::Option<i32>,
12501    #[prost(message, optional, tag = "47")]
12502    pub compression: ::core::option::Option<trace_config::CompressionConfig>,
12503    #[prost(message, optional, tag = "25")]
12504    pub incident_report_config: ::core::option::Option<
12505        trace_config::IncidentReportConfig,
12506    >,
12507    /// Android-only. Not for general use. If specified, sets the logging to statsd
12508    /// of guardrails and checkpoints in the tracing service. perfetto_cmd sets
12509    /// this to enabled (if not explicitly set in the config) when specifying
12510    /// --upload.
12511    #[prost(enumeration = "trace_config::StatsdLogging", optional, tag = "31")]
12512    pub statsd_logging: ::core::option::Option<i32>,
12513    /// An identifier clients can use to tie this trace to other logging.
12514    /// DEPRECATED as per v32. See TracePacket.trace_uuid for the authoritative
12515    /// Trace UUID. If this field is set, the tracing service will respect the
12516    /// requested UUID (i.e. TracePacket.trace_uuid == this field) but only if
12517    /// gap-less snapshotting is not used.
12518    #[deprecated]
12519    #[prost(int64, optional, tag = "27")]
12520    pub trace_uuid_msb: ::core::option::Option<i64>,
12521    #[deprecated]
12522    #[prost(int64, optional, tag = "28")]
12523    pub trace_uuid_lsb: ::core::option::Option<i64>,
12524    #[prost(message, optional, tag = "33")]
12525    pub trace_filter: ::core::option::Option<trace_config::TraceFilter>,
12526    #[prost(message, optional, tag = "34")]
12527    pub android_report_config: ::core::option::Option<trace_config::AndroidReportConfig>,
12528    #[prost(message, optional, tag = "35")]
12529    pub cmd_trace_start_delay: ::core::option::Option<trace_config::CmdTraceStartDelay>,
12530    #[prost(message, repeated, tag = "39")]
12531    pub session_semaphores: ::prost::alloc::vec::Vec<trace_config::SessionSemaphore>,
12532    /// Priority boost to be applied to the traced process, when the session is
12533    /// running.
12534    #[prost(message, optional, tag = "40")]
12535    pub priority_boost: ::core::option::Option<PriorityBoostConfig>,
12536    /// When set to a value > 0, this tracing session will be started in
12537    /// "exclusive mode". This has the following semantics:
12538    /// - It can only be set by shell or root users.
12539    /// - A new exclusive session will only be started if its priority is strictly
12540    ///    higher than any other active tracing session.
12541    /// - If a new exclusive session is started, all other existing tracing
12542    ///    sessions (exclusive or not) are aborted.
12543    /// - While an exclusive session is active, any new non-exclusive session (or
12544    ///    any exclusive session with a lower or equal priority) will be rejected.
12545    ///
12546    /// Introduced in: perfetto v52.
12547    /// Supported on: Android 25Q3+.
12548    #[prost(uint32, optional, tag = "41")]
12549    pub exclusive_prio: ::core::option::Option<u32>,
12550    /// Configures how the service should handle flushing data from producers
12551    /// before periodically writing the trace into the output file.
12552    /// Only applicable when |write_into_file| is true.
12553    ///
12554    /// By default, if |write_into_file| is set, the service periodically issues
12555    /// a Flush() to all data sources before writing buffers into the file.
12556    /// This ensures the file always contains the latest available data.
12557    ///
12558    /// Introduced in: perfetto v54.
12559    /// Supported on: Android 26Q1+.
12560    #[prost(enumeration = "trace_config::WriteFlushMode", optional, tag = "44")]
12561    pub write_flush_mode: ::core::option::Option<i32>,
12562    /// Whether to sync the output file to storage after each periodic write pass.
12563    /// Only applicable when |write_into_file| is true.
12564    ///
12565    /// By default, no fflush is invoked. FFLUSH_ENABLED must be set to explicitly
12566    /// sync to storage on every write.
12567    ///
12568    /// Introduced in: perfetto v54.
12569    /// Supported on: Android 26Q1+.
12570    #[prost(enumeration = "trace_config::FFlushMode", optional, tag = "45")]
12571    pub fflush_post_write: ::core::option::Option<i32>,
12572    /// When true, data sources in remote producers (machines connected via
12573    /// traced_relay) will be matched by default. When false (the default), data
12574    /// sources only match the host machine. In either case, an explicit
12575    /// |DataSource.machine_name_filter| takes priority.
12576    ///
12577    /// NB: perfetto versions before v54 do not have this option and match across
12578    /// machines by default. To be compatible across this version boundary, either
12579    /// set this field to true, or set an explicit machine_name_filter on all data
12580    /// sources.
12581    ///
12582    /// Introduced in: perfetto v54.
12583    #[prost(bool, optional, tag = "43")]
12584    pub trace_all_machines: ::core::option::Option<bool>,
12585    /// Trace attributes: arbitrary key/value pairs describing the trace, saved
12586    /// into it and surfaced by trace_processor in the `metadata` table (see
12587    /// common/trace_attributes.proto). Typically set via
12588    /// `perfetto --add-attribute key=value`.
12589    ///
12590    /// Introduced in: perfetto v58.
12591    #[prost(message, optional, tag = "48")]
12592    pub trace_attributes: ::core::option::Option<TraceAttributes>,
12593}
12594/// Nested message and enum types in `TraceConfig`.
12595pub mod trace_config {
12596    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
12597    pub struct BufferConfig {
12598        #[prost(uint32, optional, tag = "1")]
12599        pub size_kb: ::core::option::Option<u32>,
12600        #[prost(enumeration = "buffer_config::FillPolicy", optional, tag = "4")]
12601        pub fill_policy: ::core::option::Option<i32>,
12602        /// When true the buffer is moved (rather than copied) onto the cloned
12603        /// session, and an empty buffer of the same size is allocated in the source
12604        /// tracing session. This feature will likely get deprecated in the future.
12605        /// It been introduced mainly to support the surfaceflinger snapshot dump
12606        /// for bugreports, where SF can dumps O(400MB) into the bugreport trace. In
12607        /// that case we don't want to retain another in-memory copy of the buffer.
12608        #[prost(bool, optional, tag = "5")]
12609        pub transfer_on_clone: ::core::option::Option<bool>,
12610        /// Used in conjunction with transfer_on_clone. When true the buffer is
12611        /// cleared before issuing the Flush(reason=kTraceClone). This is to ensure
12612        /// that if the data source took too long to write the data in a previous
12613        /// clone-related flush, we don't end up with a mixture of leftovers from
12614        /// the previous write and new data.
12615        #[prost(bool, optional, tag = "6")]
12616        pub clear_before_clone: ::core::option::Option<bool>,
12617        /// Optional name for this buffer. If set, data sources can reference this
12618        /// buffer by name using |target_buffer_name| in DataSourceConfig instead of
12619        /// using the buffer index. Buffer names must be unique within a tracing
12620        /// session. This provides a more human-readable and less error-prone way to
12621        /// configure which buffer a data source writes to.
12622        #[prost(string, optional, tag = "7")]
12623        pub name: ::core::option::Option<::prost::alloc::string::String>,
12624        #[prost(enumeration = "buffer_config::ExperimentalMode", optional, tag = "8")]
12625        pub experimental_mode: ::core::option::Option<i32>,
12626    }
12627    /// Nested message and enum types in `BufferConfig`.
12628    pub mod buffer_config {
12629        #[derive(
12630            Clone,
12631            Copy,
12632            Debug,
12633            PartialEq,
12634            Eq,
12635            Hash,
12636            PartialOrd,
12637            Ord,
12638            ::prost::Enumeration
12639        )]
12640        #[repr(i32)]
12641        pub enum FillPolicy {
12642            Unspecified = 0,
12643            /// Default behavior. The buffer operates as a conventional ring buffer.
12644            /// If the writer is faster than the reader (or if the reader reads only
12645            /// after tracing is stopped) newly written packets will overwrite old
12646            /// packets.
12647            RingBuffer = 1,
12648            /// Behaves like RING_BUFFER as long as there is space in the buffer or
12649            /// the reader catches up with the writer. As soon as the writer hits
12650            /// an unread chunk, it stops accepting new data in the buffer.
12651            Discard = 2,
12652        }
12653        impl FillPolicy {
12654            /// String value of the enum field names used in the ProtoBuf definition.
12655            ///
12656            /// The values are not transformed in any way and thus are considered stable
12657            /// (if the ProtoBuf definition does not change) and safe for programmatic use.
12658            pub fn as_str_name(&self) -> &'static str {
12659                match self {
12660                    Self::Unspecified => "UNSPECIFIED",
12661                    Self::RingBuffer => "RING_BUFFER",
12662                    Self::Discard => "DISCARD",
12663                }
12664            }
12665            /// Creates an enum from field names used in the ProtoBuf definition.
12666            pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
12667                match value {
12668                    "UNSPECIFIED" => Some(Self::Unspecified),
12669                    "RING_BUFFER" => Some(Self::RingBuffer),
12670                    "DISCARD" => Some(Self::Discard),
12671                    _ => None,
12672                }
12673            }
12674        }
12675        /// When true, uses the experimental TraceBufferV2 implementation for this
12676        /// buffer. This is for testing purposes only and may be removed in future
12677        /// versions.
12678        #[derive(
12679            Clone,
12680            Copy,
12681            Debug,
12682            PartialEq,
12683            Eq,
12684            Hash,
12685            PartialOrd,
12686            Ord,
12687            ::prost::Enumeration
12688        )]
12689        #[repr(i32)]
12690        pub enum ExperimentalMode {
12691            /// Use the default V1 implementation.
12692            ModeUnspecified = 0,
12693            /// Use TraceBufferV2.
12694            TraceBufferV2 = 1,
12695        }
12696        impl ExperimentalMode {
12697            /// String value of the enum field names used in the ProtoBuf definition.
12698            ///
12699            /// The values are not transformed in any way and thus are considered stable
12700            /// (if the ProtoBuf definition does not change) and safe for programmatic use.
12701            pub fn as_str_name(&self) -> &'static str {
12702                match self {
12703                    Self::ModeUnspecified => "MODE_UNSPECIFIED",
12704                    Self::TraceBufferV2 => "TRACE_BUFFER_V2",
12705                }
12706            }
12707            /// Creates an enum from field names used in the ProtoBuf definition.
12708            pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
12709                match value {
12710                    "MODE_UNSPECIFIED" => Some(Self::ModeUnspecified),
12711                    "TRACE_BUFFER_V2" => Some(Self::TraceBufferV2),
12712                    _ => None,
12713                }
12714            }
12715        }
12716    }
12717    #[derive(Clone, PartialEq, ::prost::Message)]
12718    pub struct DataSource {
12719        /// Filters and data-source specific config. It contains also the unique name
12720        /// of the data source, the one passed in the  DataSourceDescriptor when they
12721        /// register on the service.
12722        #[prost(message, optional, tag = "1")]
12723        pub config: ::core::option::Option<super::DataSourceConfig>,
12724        /// Optional. If multiple producers (~processes) expose the same data source
12725        /// and either |producer_name_filter| or |producer_name_regex_filter| is set,
12726        /// the data source is enabled only for producers whose names match any of
12727        /// the filters.
12728        /// |producer_name_filter| has to be an exact match, while
12729        /// |producer_name_regex_filter| is a regular expression.
12730        /// This allows to enable a data source only for specific processes.
12731        /// The "repeated" fields have OR semantics: specifying a filter ["foo",
12732        /// "bar"] will enable data sources on both "foo" and "bar" (if they exist).
12733        #[prost(string, repeated, tag = "2")]
12734        pub producer_name_filter: ::prost::alloc::vec::Vec<
12735            ::prost::alloc::string::String,
12736        >,
12737        #[prost(string, repeated, tag = "3")]
12738        pub producer_name_regex_filter: ::prost::alloc::vec::Vec<
12739            ::prost::alloc::string::String,
12740        >,
12741        /// Filter by machine names. The name of a machine is determined by the
12742        /// PERFETTO_MACHINE_NAME env variable. In Android systems, if the env
12743        /// variable is not set then the
12744        /// persist.traced_relay.machine_name system property is used. If the
12745        /// sysprop isn't set or not in an Android system, then the machine name by
12746        /// default is set to the utsname sysname (e.g. Linux), which can be obtained
12747        /// via the 'uname -s' command. As a convenience, one can use "host" to refer
12748        /// to the host machine, which is the machine running traced.
12749        #[prost(string, repeated, tag = "4")]
12750        pub machine_name_filter: ::prost::alloc::vec::Vec<
12751            ::prost::alloc::string::String,
12752        >,
12753    }
12754    /// Config for disabling builtin data sources in the tracing service.
12755    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
12756    pub struct BuiltinDataSource {
12757        /// Disable emitting clock timestamps into the trace.
12758        #[prost(bool, optional, tag = "1")]
12759        pub disable_clock_snapshotting: ::core::option::Option<bool>,
12760        /// Disable echoing the original trace config in the trace.
12761        #[prost(bool, optional, tag = "2")]
12762        pub disable_trace_config: ::core::option::Option<bool>,
12763        /// Disable emitting system info (build fingerprint, cpuinfo, etc).
12764        #[prost(bool, optional, tag = "3")]
12765        pub disable_system_info: ::core::option::Option<bool>,
12766        /// Disable emitting events for data-source state changes (e.g. the marker
12767        /// for all data sources having ACKed the start of the trace).
12768        #[prost(bool, optional, tag = "4")]
12769        pub disable_service_events: ::core::option::Option<bool>,
12770        /// The authoritative clock domain for the trace. Defaults to BOOTTIME. See
12771        /// also ClockSnapshot's primary_trace_clock. The configured value is written
12772        /// into the trace as part of the ClockSnapshots emitted by the service.
12773        /// Trace processor will attempt to translate packet/event timestamps from
12774        /// various data sources (and their chosen clock domains) to this domain
12775        /// during import. Added in Android R.
12776        #[prost(enumeration = "super::BuiltinClock", optional, tag = "5")]
12777        pub primary_trace_clock: ::core::option::Option<i32>,
12778        /// Time interval in between snapshotting of sync markers, clock snapshots,
12779        /// stats, and other periodic service-emitted events. Note that the service
12780        /// only keeps track of the first and the most recent snapshot until
12781        /// ReadBuffers() is called.
12782        #[prost(uint32, optional, tag = "6")]
12783        pub snapshot_interval_ms: ::core::option::Option<u32>,
12784        /// Hints to the service that a suspend-aware (i.e. counting time in suspend)
12785        /// clock should be used for periodic snapshots of service-emitted events.
12786        /// This means, if a snapshot *should* have happened during suspend, it will
12787        /// happen immediately after the device resumes.
12788        ///
12789        /// Choosing a clock like this is done on best-effort basis; not all
12790        /// platforms (e.g. Windows) expose a clock which can be used for periodic
12791        /// tasks counting suspend. If such a clock is not available, the service
12792        /// falls back to the best-available alternative.
12793        ///
12794        /// Introduced in Android S.
12795        /// TODO(lalitm): deprecate this in T and make this the default if nothing
12796        /// crashes in S.
12797        #[prost(bool, optional, tag = "7")]
12798        pub prefer_suspend_clock_for_snapshot: ::core::option::Option<bool>,
12799        /// Disables the reporting of per-trace-writer histograms in TraceStats.
12800        #[prost(bool, optional, tag = "8")]
12801        pub disable_chunk_usage_histograms: ::core::option::Option<bool>,
12802        /// Disable emitting extension descriptors into the trace.
12803        #[prost(bool, optional, tag = "9")]
12804        pub disable_extension_descriptors: ::core::option::Option<bool>,
12805        /// Emit state changes of other tracing sessions running concurrently
12806        /// with this one (see ConcurrentSessionEvent).
12807        ///
12808        /// Introduced in v58 / Android 26Q3+.
12809        #[prost(bool, optional, tag = "10")]
12810        pub enable_concurrent_session_events: ::core::option::Option<bool>,
12811    }
12812    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
12813    pub struct ProducerConfig {
12814        /// Identifies the producer for which this config is for.
12815        #[prost(string, optional, tag = "1")]
12816        pub producer_name: ::core::option::Option<::prost::alloc::string::String>,
12817        /// Specifies the preferred size of the shared memory buffer. If the size is
12818        /// larger than the max size, the max will be used. If it is smaller than
12819        /// the page size or doesn't fit pages evenly into it, it will fall back to
12820        /// the size specified by the producer or finally the default shared memory
12821        /// size.
12822        #[prost(uint32, optional, tag = "2")]
12823        pub shm_size_kb: ::core::option::Option<u32>,
12824        /// Specifies the preferred size of each page in the shared memory buffer.
12825        /// Must be an integer multiple of 4K.
12826        #[prost(uint32, optional, tag = "3")]
12827        pub page_size_kb: ::core::option::Option<u32>,
12828    }
12829    /// Contains statsd-specific metadata about an alert associated with the trace.
12830    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
12831    pub struct StatsdMetadata {
12832        /// The identifier of the alert which triggered this trace.
12833        #[prost(int64, optional, tag = "1")]
12834        pub triggering_alert_id: ::core::option::Option<i64>,
12835        /// The uid which registered the triggering configuration with statsd.
12836        #[prost(int32, optional, tag = "2")]
12837        pub triggering_config_uid: ::core::option::Option<i32>,
12838        /// The identifier of the config which triggered the alert.
12839        #[prost(int64, optional, tag = "3")]
12840        pub triggering_config_id: ::core::option::Option<i64>,
12841        /// The identifier of the subscription which triggered this trace.
12842        #[prost(int64, optional, tag = "4")]
12843        pub triggering_subscription_id: ::core::option::Option<i64>,
12844    }
12845    /// Contains flags which override the default values of the guardrails inside
12846    /// Perfetto.
12847    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
12848    pub struct GuardrailOverrides {
12849        /// Override the default limit (in bytes) for uploading data to server within
12850        /// a 24 hour period.
12851        /// On R-, this override only affected userdebug builds. Since S, it also
12852        /// affects user builds.
12853        /// In 24Q3+ (V+), this override is a noop because upload guardrail logic
12854        /// was removed from Perfetto.
12855        #[deprecated]
12856        #[prost(uint64, optional, tag = "1")]
12857        pub max_upload_per_day_bytes: ::core::option::Option<u64>,
12858        /// Overrides the guardrail for maximum trace buffer size.
12859        /// Available on U+
12860        #[prost(uint32, optional, tag = "2")]
12861        pub max_tracing_buffer_size_kb: ::core::option::Option<u32>,
12862    }
12863    /// Triggers allow producers to start or stop the tracing session when an event
12864    /// occurs.
12865    ///
12866    /// For example if we are tracing probabilistically, most traces will be
12867    /// uninteresting. Triggers allow us to keep only the interesting ones such as
12868    /// those traces during which the device temperature reached a certain
12869    /// threshold. In this case the producer can activate a trigger to keep
12870    /// (STOP_TRACING) the trace, otherwise it can also begin a trace
12871    /// (START_TRACING) because it knows something is about to happen.
12872    #[derive(Clone, PartialEq, ::prost::Message)]
12873    pub struct TriggerConfig {
12874        #[prost(enumeration = "trigger_config::TriggerMode", optional, tag = "1")]
12875        pub trigger_mode: ::core::option::Option<i32>,
12876        /// This flag is really a workaround for b/274931668. This is needed only
12877        /// when deploying configs to different versions of the tracing service.
12878        /// When this is set to true this has the same effect of setting trigger_mode
12879        /// to CLONE_SNAPSHOT on newer versions of the service. This boolean has been
12880        /// introduced to allow to have configs that use CLONE_SNAPSHOT on newer
12881        /// versions of Android and fall back to STOP_TRACING on older versions where
12882        /// CLONE_SNAPSHOT did not exist.
12883        /// When using this flag, trigger_mode must be set to STOP_TRACING.
12884        #[prost(bool, optional, tag = "5")]
12885        pub use_clone_snapshot_if_available: ::core::option::Option<bool>,
12886        /// A list of triggers which are related to this configuration. If ANY
12887        /// trigger is seen then an action will be performed based on |trigger_mode|.
12888        #[prost(message, repeated, tag = "2")]
12889        pub triggers: ::prost::alloc::vec::Vec<trigger_config::Trigger>,
12890        /// Required and must be positive if a TriggerConfig is specified. This is
12891        /// how long this TraceConfig should wait for a trigger to arrive. After this
12892        /// period of time if no trigger is seen the TracingSession will be cleaned
12893        /// up.
12894        #[prost(uint32, optional, tag = "3")]
12895        pub trigger_timeout_ms: ::core::option::Option<u32>,
12896    }
12897    /// Nested message and enum types in `TriggerConfig`.
12898    pub mod trigger_config {
12899        #[derive(Clone, PartialEq, ::prost::Message)]
12900        pub struct Trigger {
12901            /// The producer must specify this name to activate the trigger.
12902            #[prost(string, optional, tag = "1")]
12903            pub name: ::core::option::Option<::prost::alloc::string::String>,
12904            /// An std::regex that will match the producer that can activate this
12905            /// trigger. This is optional. If unset any producers can activate this
12906            /// trigger.
12907            #[prost(string, optional, tag = "2")]
12908            pub producer_name_regex: ::core::option::Option<
12909                ::prost::alloc::string::String,
12910            >,
12911            /// After a trigger is received either in START_TRACING or STOP_TRACING
12912            /// mode then the trace will end |stop_delay_ms| after triggering.
12913            /// In CLONE_SNAPSHOT mode, this is the delay between the trigger and the
12914            /// snapshot.
12915            /// If |prefer_suspend_clock_for_duration| is set, the duration will be
12916            /// based on wall-clock, counting also time in suspend.
12917            #[prost(uint32, optional, tag = "3")]
12918            pub stop_delay_ms: ::core::option::Option<u32>,
12919            /// Limits the number of traces this trigger can start/stop in a rolling
12920            /// 24 hour window. If this field is unset or zero, no limit is applied and
12921            /// activiation of this trigger *always* starts/stops the trace.
12922            #[prost(uint32, optional, tag = "4")]
12923            pub max_per_24_h: ::core::option::Option<u32>,
12924            /// A value between 0 and 1 which encodes the probability of skipping a
12925            /// trigger with this name. This is useful for reducing the probability
12926            /// of high-frequency triggers from dominating trace finaization. If this
12927            /// field is unset or zero, the trigger will *never* be skipped. If this
12928            /// field is greater than or equal to 1, this trigger will *always* be
12929            /// skipped i.e. it will be as if this trigger was never included in the
12930            /// first place.
12931            /// This probability check is applied *before* any other limits. For
12932            /// example, if |max_per_24_h| is also set, first we will check if the
12933            /// probability bar is met and only then will we check the |max_per_24_h|
12934            /// limit.
12935            #[prost(double, optional, tag = "5")]
12936            pub skip_probability: ::core::option::Option<f64>,
12937        }
12938        #[derive(
12939            Clone,
12940            Copy,
12941            Debug,
12942            PartialEq,
12943            Eq,
12944            Hash,
12945            PartialOrd,
12946            Ord,
12947            ::prost::Enumeration
12948        )]
12949        #[repr(i32)]
12950        pub enum TriggerMode {
12951            Unspecified = 0,
12952            /// When this mode is chosen, data sources are not started until one of the
12953            /// |triggers| are received. This supports early initialization and fast
12954            /// starting of the tracing system. On triggering, the session will then
12955            /// record for |stop_delay_ms|. However if no trigger is seen
12956            /// after |trigger_timeout_ms| the session will be stopped and no data will
12957            /// be returned.
12958            StartTracing = 1,
12959            /// When this mode is chosen, the session will be started via the normal
12960            /// EnableTracing() & StartTracing(). If no trigger is ever seen
12961            /// the session will be stopped after |trigger_timeout_ms| and no data will
12962            /// be returned. However if triggered the trace will stop after
12963            /// |stop_delay_ms| and any data in the buffer will be returned to the
12964            /// consumer.
12965            StopTracing = 2,
12966            /// When this mode is chosen, this causes a snapshot of the current tracing
12967            /// session to be created after |stop_delay_ms| while the current tracing
12968            /// session continues undisturbed (% an extra flush). This mode can be
12969            /// used only when the tracing session is handled by the "perfetto" cmdline
12970            /// client (which is true in 90% of cases). Part of the business logic
12971            /// necessary for this behavior, and ensuing file handling, lives in
12972            /// perfetto_cmd.cc . On other consumers, this causes only a notification
12973            /// of the trigger through a CloneTriggerHit ObservableEvent. The custom
12974            /// consumer is supposed to call CloneSession() itself after the event.
12975            /// Use use_clone_snapshot_if_available=true when targeting older versions
12976            /// of perfetto.
12977            CloneSnapshot = 4,
12978        }
12979        impl TriggerMode {
12980            /// String value of the enum field names used in the ProtoBuf definition.
12981            ///
12982            /// The values are not transformed in any way and thus are considered stable
12983            /// (if the ProtoBuf definition does not change) and safe for programmatic use.
12984            pub fn as_str_name(&self) -> &'static str {
12985                match self {
12986                    Self::Unspecified => "UNSPECIFIED",
12987                    Self::StartTracing => "START_TRACING",
12988                    Self::StopTracing => "STOP_TRACING",
12989                    Self::CloneSnapshot => "CLONE_SNAPSHOT",
12990                }
12991            }
12992            /// Creates an enum from field names used in the ProtoBuf definition.
12993            pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
12994                match value {
12995                    "UNSPECIFIED" => Some(Self::Unspecified),
12996                    "START_TRACING" => Some(Self::StartTracing),
12997                    "STOP_TRACING" => Some(Self::StopTracing),
12998                    "CLONE_SNAPSHOT" => Some(Self::CloneSnapshot),
12999                    _ => None,
13000                }
13001            }
13002        }
13003    }
13004    /// Configuration for trace contents that reference earlier trace data. For
13005    /// example, a data source might intern strings, and emit packets containing
13006    /// {interned id : string} pairs. Future packets from that data source can then
13007    /// use the interned ids instead of duplicating the raw string contents. The
13008    /// trace parser will then need to use that interning table to fully interpret
13009    /// the rest of the trace.
13010    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
13011    pub struct IncrementalStateConfig {
13012        /// If nonzero, notify eligible data sources to clear their incremental state
13013        /// periodically, with the given period. The notification is sent only to
13014        /// data sources that have |handles_incremental_state_clear| set in their
13015        /// DataSourceDescriptor. The notification requests that the data source
13016        /// stops referring to past trace contents. This is particularly useful when
13017        /// tracing in ring buffer mode, where it is not exceptional to overwrite old
13018        /// trace data.
13019        ///
13020        /// Warning: this time-based global clearing is likely to be removed in the
13021        /// future, to be replaced with a smarter way of sending the notifications
13022        /// only when necessary.
13023        #[prost(uint32, optional, tag = "1")]
13024        pub clear_period_ms: ::core::option::Option<u32>,
13025    }
13026    /// Selects and configures the compression codec, superseding
13027    /// |compression_type|. The codec is chosen by which sub-message is set; when
13028    /// several are set the service picks the highest-numbered one it supports and
13029    /// ignores codecs it doesn't know, so a single config can target old and new
13030    /// services. Falls back to |compression_type| (deflate-only), if given.
13031    ///
13032    /// Introduced in: perfetto v58.
13033    /// Supported on: Android 26Q3+.
13034    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
13035    pub struct CompressionConfig {
13036        /// If a config sets more than one of these, the service picks the one with
13037        /// the highest field number (see the rule above): e.g. with deflate (1) and
13038        /// zstd (2) both set, zstd wins.
13039        #[prost(message, optional, tag = "1")]
13040        pub deflate: ::core::option::Option<compression_config::Deflate>,
13041        #[prost(message, optional, tag = "2")]
13042        pub zstd: ::core::option::Option<compression_config::Zstd>,
13043    }
13044    /// Nested message and enum types in `CompressionConfig`.
13045    pub mod compression_config {
13046        /// Deflate (zlib), equivalent to the legacy `COMPRESSION_TYPE_DEFLATE`.
13047        #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
13048        pub struct Deflate {}
13049        #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
13050        pub struct Zstd {
13051            /// Compression level, 1 (fast) to 22 (smallest); 0/unset uses zstd's
13052            /// default (3). Levels above the max are clamped; negatives are valid
13053            /// faster, lower-ratio modes.
13054            #[prost(int32, optional, tag = "1")]
13055            pub level: ::core::option::Option<i32>,
13056        }
13057    }
13058    /// Android-only. Not for general use. If set, saves the trace into an
13059    /// incident. This field is read by perfetto_cmd, rather than the tracing
13060    /// service. This field must be set when passing the --upload flag to
13061    /// perfetto_cmd.
13062    ///
13063    /// In this message, either:
13064    ///   * all of |destination_package|, |destination_class| and |privacy_level|
13065    ///     must be set.
13066    ///   * |skip_incidentd| must be explicitly set to true.
13067    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
13068    pub struct IncidentReportConfig {
13069        #[prost(string, optional, tag = "1")]
13070        pub destination_package: ::core::option::Option<::prost::alloc::string::String>,
13071        #[prost(string, optional, tag = "2")]
13072        pub destination_class: ::core::option::Option<::prost::alloc::string::String>,
13073        /// Level of filtering in the requested incident. See |Destination| in
13074        /// frameworks/base/core/proto/android/privacy.proto.
13075        #[prost(int32, optional, tag = "3")]
13076        pub privacy_level: ::core::option::Option<i32>,
13077        /// If true, then skips saving the trace to incidentd.
13078        ///
13079        /// This flag is useful in testing (e.g. Perfetto-statsd integration tests)
13080        /// or when we explicitly don't want traces to go to incidentd even when they
13081        /// usually would (e.g. configs deployed using statsd but only used for
13082        /// inclusion in bugreports using |bugreport_score|).
13083        ///
13084        /// The motivation for having this flag, instead of just not setting
13085        /// |incident_report_config|, is prevent accidents where
13086        /// |incident_report_config| is omitted by mistake.
13087        #[prost(bool, optional, tag = "5")]
13088        pub skip_incidentd: ::core::option::Option<bool>,
13089        /// If true, do not write the trace into dropbox (i.e. incident only).
13090        /// Otherwise, write to both dropbox and incident.
13091        /// TODO(lalitm): remove this field as we no longer use Dropbox.
13092        #[deprecated]
13093        #[prost(bool, optional, tag = "4")]
13094        pub skip_dropbox: ::core::option::Option<bool>,
13095    }
13096    /// When set applies a post-filter to the trace contents using the filter
13097    /// provided. The filter is applied at ReadBuffers() time and works both in the
13098    /// case of IPC readback and write_into_file. This filter can be generated
13099    /// using `tools/proto_filter -s schema.proto -F filter_out.bytes` or
13100    /// `-T filter_out.escaped_string` (for .pbtx). See go/trace-filtering for
13101    /// design.
13102    ///
13103    /// Introduced in Android S, but it was broken (b/195065199). Reintroduced in
13104    /// Android T with a different field number. Updated in Android U with a new
13105    /// bytecode version which supports string filtering.
13106    ///
13107    /// =========================
13108    /// Filter bytecode.
13109    /// =========================
13110    #[derive(Clone, PartialEq, ::prost::Message)]
13111    pub struct TraceFilter {
13112        /// The bytecode as implemented in Android T.
13113        #[prost(bytes = "vec", optional, tag = "1")]
13114        pub bytecode: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
13115        /// The bytecode as implemented in Android U. Adds support for string
13116        /// filtering.
13117        #[prost(bytes = "vec", optional, tag = "2")]
13118        pub bytecode_v2: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
13119        #[prost(message, optional, tag = "3")]
13120        pub string_filter_chain: ::core::option::Option<trace_filter::StringFilterChain>,
13121        /// Bytecode overlay for Perfetto v54+. This overlay is applied on top of
13122        /// bytecode_v2 to upgrade specific simple fields to new values. Old Perfetto
13123        /// versions ignore this field; new versions apply it.
13124        ///
13125        /// The motivation for this is that adding new opcodes in a backwards
13126        /// compatible way while also minimizing config size is hard. Instead, the
13127        /// overlay mechanism allows us to "patch" specific fields in the original
13128        /// bytecode_v2 with new semantics.
13129        ///
13130        /// See RFC 0011-subset-string-filter-rules.md for more info.
13131        ///
13132        /// Note:
13133        /// Unlike bytecode_v2 (which uses implicit message indices via EndOfMessage
13134        /// markers), this overlay uses a triplet format with explicit indices:
13135        ///    \[msg_index, field_id << 3 | opcode, argument\] ... \[checksum\]
13136        /// Each entry is exactly 3 varints. The argument is 0 when not needed.
13137        /// Entries must be sorted by (msg_index, field_id).
13138        ///
13139        /// The parser processes bytecode_v2 and this overlay simultaneously:
13140        ///   - any field not mentioned in the overlay is parsed as usual
13141        ///   - any field in the overlay but *not* in the bytecode_v2 is added
13142        ///     with its overlay value
13143        ///   - any field in both the overlay and bytecode_v2 takes the value in the
13144        ///     overlay, the bytecode_v2 value is ignored.
13145        ///
13146        /// Note: despite the name, this was broken in v54 (the overlay was not
13147        /// passed through to the bytecode parser). Only works in v55+.
13148        #[prost(bytes = "vec", optional, tag = "4")]
13149        pub bytecode_overlay_v54: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
13150        /// String filter chain for Perfetto v54+. Rules in this chain either
13151        /// overwrite rules in string_filter_chain (if the name matches) or are
13152        /// appended (if the name doesn't match). This allows modifying existing
13153        /// rules (e.g., changing policy) without duplicating the entire chain.
13154        /// Rules without a name are always appended.
13155        /// See /rfcs/0011-subset-string-filter-rules.md for design details.
13156        /// Introduced in: Perfetto v54.
13157        #[prost(message, optional, tag = "5")]
13158        pub string_filter_chain_v54: ::core::option::Option<
13159            trace_filter::StringFilterChain,
13160        >,
13161    }
13162    /// Nested message and enum types in `TraceFilter`.
13163    pub mod trace_filter {
13164        /// A rule specifies how strings should be filtered.
13165        #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
13166        pub struct StringFilterRule {
13167            /// The policy (i.e. algorithm) dictating how strings matching this rule
13168            /// should be handled.
13169            #[prost(enumeration = "StringFilterPolicy", optional, tag = "1")]
13170            pub policy: ::core::option::Option<i32>,
13171            /// The regex pattern used to match against each string.
13172            #[prost(string, optional, tag = "2")]
13173            pub regex_pattern: ::core::option::Option<::prost::alloc::string::String>,
13174            /// The string which should appear after the tgid in atrace tracepoint
13175            /// strings.
13176            #[prost(string, optional, tag = "3")]
13177            pub atrace_payload_starts_with: ::core::option::Option<
13178                ::prost::alloc::string::String,
13179            >,
13180            /// Optional name for the rule. When merging chains (e.g. via
13181            /// string_filter_chain_v54), rules with matching names in the newer chain
13182            /// will overwrite rules in the base chain. Rules without a name (empty or
13183            /// unset) are always treated as distinct and will be appended.
13184            /// See /rfcs/0011-subset-string-filter-rules.md for design details.
13185            /// Introduced in: Perfetto v54.
13186            #[prost(string, optional, tag = "4")]
13187            pub name: ::core::option::Option<::prost::alloc::string::String>,
13188            /// The semantic types this rule applies to.
13189            ///
13190            /// SEMANTIC_TYPE_UNSPECIFIED (0) is treated as its own distinct category:
13191            /// - If empty, the rule applies only to fields with UNSPECIFIED type.
13192            /// - If non-empty, the rule applies only to fields whose semantic type
13193            ///    is explicitly listed. To match UNSPECIFIED fields, you must include
13194            ///    SEMANTIC_TYPE_UNSPECIFIED in the list.
13195            ///
13196            /// Examples:
13197            ///    semantic_type: \[\]           -> matches only UNSPECIFIED fields
13198            ///    semantic_type: \[ATRACE\]     -> matches only ATRACE fields
13199            ///    semantic_type: \[UNSPECIFIED, ATRACE\] -> matches both
13200            ///
13201            /// See /rfcs/0011-subset-string-filter-rules.md for design details.
13202            /// Introduced in: Perfetto v54.
13203            #[prost(
13204                enumeration = "super::super::SemanticType",
13205                repeated,
13206                packed = "false",
13207                tag = "5"
13208            )]
13209            pub semantic_type: ::prost::alloc::vec::Vec<i32>,
13210        }
13211        /// A chain is a list of rules which string will be sequentially checked
13212        /// against.
13213        #[derive(Clone, PartialEq, ::prost::Message)]
13214        pub struct StringFilterChain {
13215            #[prost(message, repeated, tag = "1")]
13216            pub rules: ::prost::alloc::vec::Vec<StringFilterRule>,
13217        }
13218        /// A policy specifies which algorithm should be used for filtering the
13219        /// string.
13220        #[derive(
13221            Clone,
13222            Copy,
13223            Debug,
13224            PartialEq,
13225            Eq,
13226            Hash,
13227            PartialOrd,
13228            Ord,
13229            ::prost::Enumeration
13230        )]
13231        #[repr(i32)]
13232        pub enum StringFilterPolicy {
13233            SfpUnspecified = 0,
13234            /// Tries to match the string field against |regex_pattern|. If it
13235            /// matches, all matching groups are "redacted" (i.e. replaced with a
13236            /// constant string) and filtering is terminated (i.e. no further rules are
13237            /// checked). If it doesn't match, the string is left unchanged and the
13238            /// next rule in chain is considered.
13239            SfpMatchRedactGroups = 1,
13240            /// Like |SFP_MATCH_REDACT_GROUPS| but tries to do some pre-work before
13241            /// checking the regex. Specifically, it tries to parse the string field as
13242            /// an atrace tracepoint and checks if the post-tgid field starts with
13243            /// |atrace_post_tgid_starts_with|. The regex matching is only performed if
13244            /// this check succeeds.
13245            SfpAtraceMatchRedactGroups = 2,
13246            /// Tries to match the string field against |regex_pattern|. If it
13247            /// matches, filtering is terminated (i.e. no further rules are checked).
13248            /// If it doesn't match, the string is left unchanged and the next rule in
13249            /// chain is considered.
13250            SfpMatchBreak = 3,
13251            /// Like |SFP_MATCH_BREAK| but tries to do some pre-work before checking
13252            /// the regex. Specifically, it tries to parse the string field as an
13253            /// atrace tracepoint and checks if the post-tgid field starts with
13254            /// |atrace_post_tgid_starts_with|. The regex matching is only performed if
13255            /// this check succeeds.
13256            SfpAtraceMatchBreak = 4,
13257            /// Tries to repeatedly search (i.e. find substrings of) the string field
13258            /// with |regex_pattern|. For each match, redacts any matching groups (i.e.
13259            /// replaced with a constant string). Once there are no further matches,
13260            /// filtering is terminated (i.e. no further rules are checked).
13261            ///
13262            /// Note that this is policy is a "search" policy not a "match" policy
13263            /// unlike the above policies:
13264            ///   * Match policies require matching the full string i.e. there is an
13265            ///     implicit leading `^` and trailing `$`.
13266            ///   * Search policies perform repeated partial matching of the string
13267            ///     e.g.
13268            ///       - String: `foo=aaa,bar=123,foo=bbb,baz=456`
13269            ///       - Pattern: `foo=(\d+)`
13270            ///       - Output: `foo=P6O,bar=123,foo=P6O,baz=456`
13271            ///     where P6O is the redaction string
13272            ///
13273            /// All of this is only performed after some pre-work where we try to parse
13274            /// the string field as an atrace tracepoint and check if the post-tgid
13275            /// field starts with |atrace_post_tgid_starts_with|.
13276            ///
13277            /// If there are no partial matches, the string is left unchanged and the
13278            /// next rule in chain is considered.
13279            SfpAtraceRepeatedSearchRedactGroups = 5,
13280        }
13281        impl StringFilterPolicy {
13282            /// String value of the enum field names used in the ProtoBuf definition.
13283            ///
13284            /// The values are not transformed in any way and thus are considered stable
13285            /// (if the ProtoBuf definition does not change) and safe for programmatic use.
13286            pub fn as_str_name(&self) -> &'static str {
13287                match self {
13288                    Self::SfpUnspecified => "SFP_UNSPECIFIED",
13289                    Self::SfpMatchRedactGroups => "SFP_MATCH_REDACT_GROUPS",
13290                    Self::SfpAtraceMatchRedactGroups => "SFP_ATRACE_MATCH_REDACT_GROUPS",
13291                    Self::SfpMatchBreak => "SFP_MATCH_BREAK",
13292                    Self::SfpAtraceMatchBreak => "SFP_ATRACE_MATCH_BREAK",
13293                    Self::SfpAtraceRepeatedSearchRedactGroups => {
13294                        "SFP_ATRACE_REPEATED_SEARCH_REDACT_GROUPS"
13295                    }
13296                }
13297            }
13298            /// Creates an enum from field names used in the ProtoBuf definition.
13299            pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
13300                match value {
13301                    "SFP_UNSPECIFIED" => Some(Self::SfpUnspecified),
13302                    "SFP_MATCH_REDACT_GROUPS" => Some(Self::SfpMatchRedactGroups),
13303                    "SFP_ATRACE_MATCH_REDACT_GROUPS" => {
13304                        Some(Self::SfpAtraceMatchRedactGroups)
13305                    }
13306                    "SFP_MATCH_BREAK" => Some(Self::SfpMatchBreak),
13307                    "SFP_ATRACE_MATCH_BREAK" => Some(Self::SfpAtraceMatchBreak),
13308                    "SFP_ATRACE_REPEATED_SEARCH_REDACT_GROUPS" => {
13309                        Some(Self::SfpAtraceRepeatedSearchRedactGroups)
13310                    }
13311                    _ => None,
13312                }
13313            }
13314        }
13315    }
13316    /// Android-only. Not for general use. If set, reports the trace to the
13317    /// Android framework. This field is read by perfetto_cmd, rather than the
13318    /// tracing service. This field must be set when passing the --upload flag to
13319    /// perfetto_cmd.
13320    ///
13321    /// In this message, either:
13322    ///   * |reporter_service_package| and |reporter_service_class| must be set.
13323    ///   * |skip_reporting| must be explicitly set to true.
13324    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
13325    pub struct AndroidReportConfig {
13326        #[prost(string, optional, tag = "1")]
13327        pub reporter_service_package: ::core::option::Option<
13328            ::prost::alloc::string::String,
13329        >,
13330        #[prost(string, optional, tag = "2")]
13331        pub reporter_service_class: ::core::option::Option<
13332            ::prost::alloc::string::String,
13333        >,
13334        /// If true, then skips reporting the trace to Android framework.
13335        ///
13336        /// This flag is useful in testing (e.g. Perfetto-statsd integration tests)
13337        /// or when we explicitly don't want to report traces to the framework even
13338        /// when they usually would (e.g. configs deployed using statsd but only
13339        /// used for inclusion in bugreports using |bugreport_score|).
13340        ///
13341        /// The motivation for having this flag, instead of just not setting
13342        /// |framework_report_config|, is prevent accidents where
13343        /// |framework_report_config| is omitted by mistake.
13344        #[prost(bool, optional, tag = "3")]
13345        pub skip_report: ::core::option::Option<bool>,
13346        /// If true, will direct the Android framework to read the data in trace
13347        /// file and pass it to the reporter class over a pipe instead of passing
13348        /// the file descriptor directly.
13349        ///
13350        /// This flag is needed because the Android test framework does not
13351        /// currently support priv-app helper apps (in terms of SELinux) and we
13352        /// really don't want to add an allow rule for untrusted_app to receive
13353        /// trace fds.
13354        ///
13355        /// Because of this, we instead will direct the framework to create a new
13356        /// pipe and pass this to the reporter process instead. As the pipe is
13357        /// created by the framework, we won't have any problems with SELinux
13358        /// (system_server is already allowed to pass pipe fds, even
13359        /// to untrusted apps).
13360        ///
13361        /// As the name suggests this option *MUST* only be used for testing.
13362        /// Note that the framework will reject (and drop) files which are too
13363        /// large both for simplicity and to be minimize the amount of data we
13364        /// pass to a non-priv app (note that the framework will still check
13365        /// manifest permissions even though SELinux permissions are worked around).
13366        #[prost(bool, optional, tag = "4")]
13367        pub use_pipe_in_framework_for_testing: ::core::option::Option<bool>,
13368    }
13369    /// If set, delays the start of tracing by a random duration. The duration is
13370    /// chosen from a uniform distribution between the specified minimum and
13371    /// maximum.
13372    /// Note: this delay is implemented by perfetto_cmd *not* by traced so will
13373    /// not work if you communicate with traced directly over the consumer API.
13374    /// Introduced in Android T.
13375    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
13376    pub struct CmdTraceStartDelay {
13377        #[prost(uint32, optional, tag = "1")]
13378        pub min_delay_ms: ::core::option::Option<u32>,
13379        #[prost(uint32, optional, tag = "2")]
13380        pub max_delay_ms: ::core::option::Option<u32>,
13381    }
13382    /// When non-empty, ensures that for a each semaphore named `name at most
13383    /// `max_other_session_count`` *other* sessions (whose value is taken of the
13384    /// minimum of all values specified by this config or any already-running
13385    /// session) can be be running.
13386    ///
13387    /// If a semaphore "acquisition" fails, EnableTracing will return an error
13388    /// and the tracing session will not be started (or elgible to start in
13389    /// the case of deferred sessions).
13390    ///
13391    /// This is easiest to explain with an example. Suppose the tracing service has
13392    /// the following active tracing sessions:
13393    ///    S1 = [{name=foo, max_other_session_count=2},
13394    ///          {name=bar, max_other_session_count=0}]
13395    ///    S2 = [{name=foo, max_other_session_count=1},
13396    ///          {name=baz, max_other_session_count=1}]
13397    ///
13398    /// Then, for a new session, the following would be the expected behaviour of
13399    /// EnableSession given the state of `session_semaphores`.
13400    ///    Q: session_semaphores = \[\]
13401    ///    A: Allowed because it does not specify any semaphores. Will be allowed
13402    ///       no matter the state of any other tracing session.
13403    ///    Q: session_semaphores = \[{name=baz, max_other_session_count=1}\]
13404    ///    A: Allowed because both S2 and this config specify
13405    ///       max_other_session_count=1 for baz.
13406    ///    Q: session_semaphores = \[{name=foo, max_other_session_count=3}\]
13407    ///    A: Denied because S2 specified max_other_session_count=1 for foo and S1
13408    ///       takes that slot.
13409    ///    Q: session_semaphores = \[{name=bar, max_other_session_count=0}\]
13410    ///    A: Denied because S1 takes the the slot specified by both S1 and
13411    ///       this config.
13412    ///
13413    /// Introduced in 24Q3 (Android V).
13414    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
13415    pub struct SessionSemaphore {
13416        /// The name of the semaphore. Acts as a unique identifier across all
13417        /// tracing sessions (including the one being started).
13418        #[prost(string, optional, tag = "1")]
13419        pub name: ::core::option::Option<::prost::alloc::string::String>,
13420        /// The maximum number of *other* sesssions which specify the same semaphore
13421        /// which can be active. The minimum of this value across all tracing
13422        /// sessions and the value specified by the config is used when deciding
13423        /// whether the tracing session can be started.
13424        #[prost(uint64, optional, tag = "2")]
13425        pub max_other_session_count: ::core::option::Option<u64>,
13426    }
13427    #[derive(
13428        Clone,
13429        Copy,
13430        Debug,
13431        PartialEq,
13432        Eq,
13433        Hash,
13434        PartialOrd,
13435        Ord,
13436        ::prost::Enumeration
13437    )]
13438    #[repr(i32)]
13439    pub enum LockdownModeOperation {
13440        LockdownUnchanged = 0,
13441        LockdownClear = 1,
13442        LockdownSet = 2,
13443    }
13444    impl LockdownModeOperation {
13445        /// String value of the enum field names used in the ProtoBuf definition.
13446        ///
13447        /// The values are not transformed in any way and thus are considered stable
13448        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
13449        pub fn as_str_name(&self) -> &'static str {
13450            match self {
13451                Self::LockdownUnchanged => "LOCKDOWN_UNCHANGED",
13452                Self::LockdownClear => "LOCKDOWN_CLEAR",
13453                Self::LockdownSet => "LOCKDOWN_SET",
13454            }
13455        }
13456        /// Creates an enum from field names used in the ProtoBuf definition.
13457        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
13458            match value {
13459                "LOCKDOWN_UNCHANGED" => Some(Self::LockdownUnchanged),
13460                "LOCKDOWN_CLEAR" => Some(Self::LockdownClear),
13461                "LOCKDOWN_SET" => Some(Self::LockdownSet),
13462                _ => None,
13463            }
13464        }
13465    }
13466    /// Deprecated: use |compression| (CompressionConfig) instead. Legacy selector
13467    /// that only ever selects deflate. Kept for backwards compatibility with
13468    /// Perfetto <= v57, whose services predate |compression|. Best effort.
13469    #[derive(
13470        Clone,
13471        Copy,
13472        Debug,
13473        PartialEq,
13474        Eq,
13475        Hash,
13476        PartialOrd,
13477        Ord,
13478        ::prost::Enumeration
13479    )]
13480    #[repr(i32)]
13481    pub enum CompressionType {
13482        Unspecified = 0,
13483        Deflate = 1,
13484    }
13485    impl CompressionType {
13486        /// String value of the enum field names used in the ProtoBuf definition.
13487        ///
13488        /// The values are not transformed in any way and thus are considered stable
13489        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
13490        pub fn as_str_name(&self) -> &'static str {
13491            match self {
13492                Self::Unspecified => "COMPRESSION_TYPE_UNSPECIFIED",
13493                Self::Deflate => "COMPRESSION_TYPE_DEFLATE",
13494            }
13495        }
13496        /// Creates an enum from field names used in the ProtoBuf definition.
13497        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
13498            match value {
13499                "COMPRESSION_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
13500                "COMPRESSION_TYPE_DEFLATE" => Some(Self::Deflate),
13501                _ => None,
13502            }
13503        }
13504    }
13505    #[derive(
13506        Clone,
13507        Copy,
13508        Debug,
13509        PartialEq,
13510        Eq,
13511        Hash,
13512        PartialOrd,
13513        Ord,
13514        ::prost::Enumeration
13515    )]
13516    #[repr(i32)]
13517    pub enum StatsdLogging {
13518        Unspecified = 0,
13519        Enabled = 1,
13520        Disabled = 2,
13521    }
13522    impl StatsdLogging {
13523        /// String value of the enum field names used in the ProtoBuf definition.
13524        ///
13525        /// The values are not transformed in any way and thus are considered stable
13526        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
13527        pub fn as_str_name(&self) -> &'static str {
13528            match self {
13529                Self::Unspecified => "STATSD_LOGGING_UNSPECIFIED",
13530                Self::Enabled => "STATSD_LOGGING_ENABLED",
13531                Self::Disabled => "STATSD_LOGGING_DISABLED",
13532            }
13533        }
13534        /// Creates an enum from field names used in the ProtoBuf definition.
13535        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
13536            match value {
13537                "STATSD_LOGGING_UNSPECIFIED" => Some(Self::Unspecified),
13538                "STATSD_LOGGING_ENABLED" => Some(Self::Enabled),
13539                "STATSD_LOGGING_DISABLED" => Some(Self::Disabled),
13540                _ => None,
13541            }
13542        }
13543    }
13544    #[derive(
13545        Clone,
13546        Copy,
13547        Debug,
13548        PartialEq,
13549        Eq,
13550        Hash,
13551        PartialOrd,
13552        Ord,
13553        ::prost::Enumeration
13554    )]
13555    #[repr(i32)]
13556    pub enum WriteFlushMode {
13557        /// Same as WRITE_FLUSH_AUTO.
13558        WriteFlushUnspecified = 0,
13559        /// Default mode. The service automatically determines the flush frequency
13560        /// to balance performance and data freshness:
13561        /// 1) If file_write_period_ms <= 5s (kDefaultWriteIntoFilePeriodMs):
13562        ///     Flushes are NOT issued on every write. Instead, a periodic flush is
13563        ///     issued every 5s.
13564        /// 2) If file_write_period_ms > 5s:
13565        ///     A flush is issued before every periodic write into the file.
13566        WriteFlushAuto = 1,
13567        /// Do not flush buffers before periodic writes into the file.
13568        /// Use this mode if you want to minimize the performance impact of flushes
13569        /// and can tolerate potentially missing the most recent data in the trace
13570        /// file until the end of the session or an explicit flush.
13571        /// When this mode is selected, |flush_period_ms| is respected.
13572        WriteFlushDisabled = 2,
13573        /// Issue a flush before every periodic write into the file.
13574        /// This ensures that each write into the file contains the most up-to-date
13575        /// data from all data sources, but may have a higher performance overhead.
13576        WriteFlushEnabled = 3,
13577    }
13578    impl WriteFlushMode {
13579        /// String value of the enum field names used in the ProtoBuf definition.
13580        ///
13581        /// The values are not transformed in any way and thus are considered stable
13582        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
13583        pub fn as_str_name(&self) -> &'static str {
13584            match self {
13585                Self::WriteFlushUnspecified => "WRITE_FLUSH_UNSPECIFIED",
13586                Self::WriteFlushAuto => "WRITE_FLUSH_AUTO",
13587                Self::WriteFlushDisabled => "WRITE_FLUSH_DISABLED",
13588                Self::WriteFlushEnabled => "WRITE_FLUSH_ENABLED",
13589            }
13590        }
13591        /// Creates an enum from field names used in the ProtoBuf definition.
13592        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
13593            match value {
13594                "WRITE_FLUSH_UNSPECIFIED" => Some(Self::WriteFlushUnspecified),
13595                "WRITE_FLUSH_AUTO" => Some(Self::WriteFlushAuto),
13596                "WRITE_FLUSH_DISABLED" => Some(Self::WriteFlushDisabled),
13597                "WRITE_FLUSH_ENABLED" => Some(Self::WriteFlushEnabled),
13598                _ => None,
13599            }
13600        }
13601    }
13602    #[derive(
13603        Clone,
13604        Copy,
13605        Debug,
13606        PartialEq,
13607        Eq,
13608        Hash,
13609        PartialOrd,
13610        Ord,
13611        ::prost::Enumeration
13612    )]
13613    #[repr(i32)]
13614    pub enum FFlushMode {
13615        /// Default: same as FFLUSH_DISABLED.
13616        FflushUnspecified = 0,
13617        /// Do not explicitly sync the file to storage after each write pass.
13618        FflushDisabled = 1,
13619        /// Explicitly sync the file to storage (via fdatasync) after each periodic
13620        /// write pass. Increases data durability at the cost of higher disk I/O
13621        /// overhead.
13622        FflushEnabled = 2,
13623    }
13624    impl FFlushMode {
13625        /// String value of the enum field names used in the ProtoBuf definition.
13626        ///
13627        /// The values are not transformed in any way and thus are considered stable
13628        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
13629        pub fn as_str_name(&self) -> &'static str {
13630            match self {
13631                Self::FflushUnspecified => "FFLUSH_UNSPECIFIED",
13632                Self::FflushDisabled => "FFLUSH_DISABLED",
13633                Self::FflushEnabled => "FFLUSH_ENABLED",
13634            }
13635        }
13636        /// Creates an enum from field names used in the ProtoBuf definition.
13637        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
13638            match value {
13639                "FFLUSH_UNSPECIFIED" => Some(Self::FflushUnspecified),
13640                "FFLUSH_DISABLED" => Some(Self::FflushDisabled),
13641                "FFLUSH_ENABLED" => Some(Self::FflushEnabled),
13642                _ => None,
13643            }
13644        }
13645    }
13646}
13647/// Arguments for rpc EnableTracing().
13648#[derive(Clone, PartialEq, ::prost::Message)]
13649pub struct EnableTracingRequest {
13650    #[prost(message, optional, tag = "1")]
13651    pub trace_config: ::core::option::Option<TraceConfig>,
13652    /// Introduced in Android Q. This is used for re-attaching to the end-of-trace
13653    /// EnableTracingResponse notification after a Detach+Attach request.
13654    /// When this flag is set the |trace_config| is ignored and no method is called
13655    /// on the tracing service.
13656    #[prost(bool, optional, tag = "2")]
13657    pub attach_notification_only: ::core::option::Option<bool>,
13658}
13659#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
13660pub struct EnableTracingResponse {
13661    /// If present and non-empty tracing was disabled because of an error.
13662    /// Introduced in Android S.
13663    #[prost(string, optional, tag = "3")]
13664    pub error: ::core::option::Option<::prost::alloc::string::String>,
13665    #[prost(oneof = "enable_tracing_response::State", tags = "1")]
13666    pub state: ::core::option::Option<enable_tracing_response::State>,
13667}
13668/// Nested message and enum types in `EnableTracingResponse`.
13669pub mod enable_tracing_response {
13670    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
13671    pub enum State {
13672        #[prost(bool, tag = "1")]
13673        Disabled(bool),
13674    }
13675}
13676/// Arguments for rpc StartTracing().
13677#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
13678pub struct StartTracingRequest {}
13679#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
13680pub struct StartTracingResponse {}
13681/// Arguments for rpc ChangeTraceConfig().
13682#[derive(Clone, PartialEq, ::prost::Message)]
13683pub struct ChangeTraceConfigRequest {
13684    #[prost(message, optional, tag = "1")]
13685    pub trace_config: ::core::option::Option<TraceConfig>,
13686}
13687#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
13688pub struct ChangeTraceConfigResponse {}
13689/// Arguments for rpc DisableTracing().
13690///
13691/// TODO: not supported yet, selectively disable only some data sources.
13692/// repeated string data_source_name;
13693#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
13694pub struct DisableTracingRequest {}
13695#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
13696pub struct DisableTracingResponse {}
13697/// Arguments for rpc ReadBuffers().
13698///
13699/// The |id|s of the buffer, as passed to CreateBuffers().
13700/// TODO: repeated uint32 buffer_ids = 1;
13701#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
13702pub struct ReadBuffersRequest {}
13703/// TODO: uint32 buffer_id = 1;
13704#[derive(Clone, PartialEq, ::prost::Message)]
13705pub struct ReadBuffersResponse {
13706    #[prost(message, repeated, tag = "2")]
13707    pub slices: ::prost::alloc::vec::Vec<read_buffers_response::Slice>,
13708}
13709/// Nested message and enum types in `ReadBuffersResponse`.
13710pub mod read_buffers_response {
13711    /// Each streaming reply returns one or more slices for one or more trace
13712    /// packets, or even just a portion of it (if it's too big to fit within one
13713    /// IPC). The returned slices are ordered and contiguous: packets' slices are
13714    /// not interleaved and slices are sent only once all slices for a packet are
13715    /// available (i.e. the consumer will never see any gap).
13716    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
13717    pub struct Slice {
13718        #[prost(bytes = "vec", optional, tag = "1")]
13719        pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
13720        /// When true, this is the last slice for the packet. A ReadBufferResponse
13721        /// might have no slices marked as |last_slice_for_packet|==true, in the case
13722        /// of a very large packet that gets chunked into several IPCs (in which case
13723        /// only the last IPC for the packet will have this flag set).
13724        #[prost(bool, optional, tag = "2")]
13725        pub last_slice_for_packet: ::core::option::Option<bool>,
13726    }
13727}
13728/// Arguments for rpc FreeBuffers().
13729#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
13730pub struct FreeBuffersRequest {
13731    /// The |id|s of the buffer, as passed to CreateBuffers().
13732    #[prost(uint32, repeated, packed = "false", tag = "1")]
13733    pub buffer_ids: ::prost::alloc::vec::Vec<u32>,
13734}
13735#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
13736pub struct FreeBuffersResponse {}
13737/// Arguments for rpc Flush().
13738#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
13739pub struct FlushRequest {
13740    #[prost(uint32, optional, tag = "1")]
13741    pub timeout_ms: ::core::option::Option<u32>,
13742    /// More details such as flush reason and originator. Introduced in v38 / V.
13743    /// See FlushFlags in include/perfetto/ext/tracing/core/flush_flags.h.
13744    #[prost(uint64, optional, tag = "2")]
13745    pub flags: ::core::option::Option<u64>,
13746}
13747#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
13748pub struct FlushResponse {}
13749/// Arguments for rpc Detach
13750#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
13751pub struct DetachRequest {
13752    #[prost(string, optional, tag = "1")]
13753    pub key: ::core::option::Option<::prost::alloc::string::String>,
13754}
13755#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
13756pub struct DetachResponse {}
13757/// Arguments for rpc Attach.
13758#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
13759pub struct AttachRequest {
13760    #[prost(string, optional, tag = "1")]
13761    pub key: ::core::option::Option<::prost::alloc::string::String>,
13762}
13763#[derive(Clone, PartialEq, ::prost::Message)]
13764pub struct AttachResponse {
13765    #[prost(message, optional, tag = "1")]
13766    pub trace_config: ::core::option::Option<TraceConfig>,
13767}
13768#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
13769pub struct GetTraceStatsRequest {}
13770#[derive(Clone, PartialEq, ::prost::Message)]
13771pub struct GetTraceStatsResponse {
13772    #[prost(message, optional, tag = "1")]
13773    pub trace_stats: ::core::option::Option<TraceStats>,
13774}
13775/// To stop observing events of a certain type, send a request with the remaining
13776/// types. To stop observing completely, send an empty request.
13777#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
13778pub struct ObserveEventsRequest {
13779    #[prost(
13780        enumeration = "observable_events::Type",
13781        repeated,
13782        packed = "false",
13783        tag = "1"
13784    )]
13785    pub events_to_observe: ::prost::alloc::vec::Vec<i32>,
13786}
13787#[derive(Clone, PartialEq, ::prost::Message)]
13788pub struct ObserveEventsResponse {
13789    #[prost(message, optional, tag = "1")]
13790    pub events: ::core::option::Option<ObservableEvents>,
13791}
13792/// Arguments for rpc QueryServiceState.
13793#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
13794pub struct QueryServiceStateRequest {
13795    /// If set, only the TracingServiceState.tracing_sessions is filled. Producers
13796    /// and data sources are omitted.
13797    #[prost(bool, optional, tag = "1")]
13798    pub sessions_only: ::core::option::Option<bool>,
13799}
13800#[derive(Clone, PartialEq, ::prost::Message)]
13801pub struct QueryServiceStateResponse {
13802    /// In order to avoid hitting IPC message size limitations, the service will
13803    /// return >1 replies for each query, chunking the TracingServiceState. The
13804    /// receiver is expected to merge replies together and parse that when the
13805    /// last reply is received (i.e. when IPC's |has_more| == false).
13806    #[prost(message, optional, tag = "1")]
13807    pub service_state: ::core::option::Option<TracingServiceState>,
13808}
13809/// Arguments for rpc QueryCapabilities.
13810#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
13811pub struct QueryCapabilitiesRequest {}
13812#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
13813pub struct QueryCapabilitiesResponse {
13814    #[prost(message, optional, tag = "1")]
13815    pub capabilities: ::core::option::Option<TracingServiceCapabilities>,
13816}
13817/// Arguments for rpc SaveTraceForBugreport.
13818#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
13819pub struct SaveTraceForBugreportRequest {}
13820/// This response is sent only after the trace was saved into file (if succeeded)
13821/// or something failed.
13822#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
13823pub struct SaveTraceForBugreportResponse {
13824    /// If true, an eligible the trace was saved into a known location (on Android
13825    /// /data/misc/perfetto-traces, see GetBugreportTracePath()).
13826    /// If false no trace with bugreport_score > 0 was found or an error occurred.
13827    /// see |msg| in that case for details about the failure.
13828    #[prost(bool, optional, tag = "1")]
13829    pub success: ::core::option::Option<bool>,
13830    #[prost(string, optional, tag = "2")]
13831    pub msg: ::core::option::Option<::prost::alloc::string::String>,
13832}
13833/// Arguments for rpc CloneSession.
13834#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
13835pub struct CloneSessionRequest {
13836    /// If set, the trace filter will not have effect on the cloned session.
13837    /// Used for bugreports.
13838    #[prost(bool, optional, tag = "2")]
13839    pub skip_trace_filter: ::core::option::Option<bool>,
13840    /// If set, affects the generation of the FlushFlags::CloneTarget to be set
13841    /// to kBugreport when requesting the flush to the producers.
13842    #[prost(bool, optional, tag = "3")]
13843    pub for_bugreport: ::core::option::Option<bool>,
13844    /// If set, this is stored in the trace as name of the trigger that caused the
13845    /// clone.
13846    #[prost(string, optional, tag = "5")]
13847    pub clone_trigger_name: ::core::option::Option<::prost::alloc::string::String>,
13848    /// If set, this is stored in the trace as name of the producer that triggered
13849    /// the clone.
13850    #[prost(string, optional, tag = "6")]
13851    pub clone_trigger_producer_name: ::core::option::Option<
13852        ::prost::alloc::string::String,
13853    >,
13854    /// If set, this is stored in the trace as uid of the producer that triggered
13855    /// the clone.
13856    #[prost(int32, optional, tag = "7")]
13857    pub clone_trigger_trusted_producer_uid: ::core::option::Option<i32>,
13858    /// If set, this is stored in the trace as timestamp of the trigger that caused
13859    /// the clone.
13860    #[prost(uint64, optional, tag = "8")]
13861    pub clone_trigger_boot_time_ns: ::core::option::Option<u64>,
13862    /// If set, this is stored in the trace as the configured delay of the trigger
13863    /// that caused the clone.
13864    ///
13865    /// Consumer may also send a file descriptor with this rpc message. If the
13866    /// descriptor is valid, and the session that should be cloned is
13867    /// 'write_into_file' session, traced writes the cloned session content to that
13868    /// file descriptor, instead of writing it in the cloned session buffers.
13869    #[prost(uint64, optional, tag = "9")]
13870    pub clone_trigger_delay_ms: ::core::option::Option<u64>,
13871    #[prost(oneof = "clone_session_request::Selector", tags = "1, 4")]
13872    pub selector: ::core::option::Option<clone_session_request::Selector>,
13873}
13874/// Nested message and enum types in `CloneSessionRequest`.
13875pub mod clone_session_request {
13876    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
13877    pub enum Selector {
13878        /// The session ID to clone. If session_id == kBugreportSessionId (0xff...ff)
13879        /// the session with the highest bugreport score is cloned (if any exists).
13880        #[prost(uint64, tag = "1")]
13881        SessionId(u64),
13882        /// The unique_session_name of the tracing session to clone. Tracing sessions
13883        /// that are clones of other tracing sessions are ignored.
13884        #[prost(string, tag = "4")]
13885        UniqueSessionName(::prost::alloc::string::String),
13886    }
13887}
13888#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
13889pub struct CloneSessionResponse {
13890    /// If true, the clone was successful. If false it failed and |error| contains
13891    /// the details about the failure.
13892    #[prost(bool, optional, tag = "1")]
13893    pub success: ::core::option::Option<bool>,
13894    #[prost(string, optional, tag = "2")]
13895    pub error: ::core::option::Option<::prost::alloc::string::String>,
13896    /// The UUID of the cloned session.
13897    #[prost(int64, optional, tag = "3")]
13898    pub uuid_msb: ::core::option::Option<i64>,
13899    #[prost(int64, optional, tag = "4")]
13900    pub uuid_lsb: ::core::option::Option<i64>,
13901    /// TracingService sets this when the cloned session was write_into_file=true.
13902    /// The consumer cannot know upfront if a session is WIF or not.
13903    /// Introduced in v53.
13904    #[prost(bool, optional, tag = "5")]
13905    pub was_write_into_file: ::core::option::Option<bool>,
13906}
13907#[derive(Clone, PartialEq, ::prost::Message)]
13908pub struct CommitDataRequest {
13909    #[prost(message, repeated, tag = "1")]
13910    pub chunks_to_move: ::prost::alloc::vec::Vec<commit_data_request::ChunksToMove>,
13911    #[prost(message, repeated, tag = "2")]
13912    pub chunks_to_patch: ::prost::alloc::vec::Vec<commit_data_request::ChunkToPatch>,
13913    /// Optional. If this commit is made in response to a Flush(id) request coming
13914    /// from the service, copy back the id of the request so the service can tell
13915    /// when the flush happened.
13916    #[prost(uint64, optional, tag = "3")]
13917    pub flush_request_id: ::core::option::Option<u64>,
13918}
13919/// Nested message and enum types in `CommitDataRequest`.
13920pub mod commit_data_request {
13921    /// When |chunks_to_move| is present, the producer is requesting the service to
13922    /// move the given chunks form the share memory buffer into the central
13923    /// trace buffer(s).
13924    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
13925    pub struct ChunksToMove {
13926        /// The 0-based index of the page in the Shared Memory Buffer.
13927        #[prost(uint32, optional, tag = "1")]
13928        pub page: ::core::option::Option<u32>,
13929        /// The 0-based chunk index \[0..13\] within the page.
13930        #[prost(uint32, optional, tag = "2")]
13931        pub chunk: ::core::option::Option<u32>,
13932        /// The target buffer it should be moved onto. The service will check that
13933        /// the producer is allowed to write into that buffer before the move.
13934        #[prost(uint32, optional, tag = "3")]
13935        pub target_buffer: ::core::option::Option<u32>,
13936        /// Sending the chunk data over the wire. Used for transports that don't
13937        /// support shared memory (e.g. vsock or TCP sockets). In the default case
13938        /// (tracing protocol over a Unix socket), this field is not used and tracing
13939        /// data is stored in the shmem buffer and referenced by the fields above.
13940        /// See |use_shemem_emulation| in the codebase for reference.
13941        #[prost(bytes = "vec", optional, tag = "4")]
13942        pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
13943        /// Set to true when scraping data in shmem emulation (aka commits-over-ipc)
13944        /// AND the chunk was still in kChunkBeingWritten. This is necessary because
13945        /// in emulation mode, the service cannot tell whether this is a complete
13946        /// chunk coming from a regular TraceWriter commit, or a scraped one.
13947        /// This field is only set when `data` is present. It is never set (and is
13948        /// ignored by the service) for the regular case of doing commits over
13949        /// shmem. Introduced in Perfetto v54.
13950        /// See /rfcs/0010-smb-scraping-remote-producers.md .
13951        #[prost(bool, optional, tag = "5")]
13952        pub chunk_incomplete: ::core::option::Option<bool>,
13953    }
13954    /// Used to patch chunks that have already been sent to the service. The chunk
13955    /// might not be in the shared memory buffer anymore as it could have been
13956    /// moved by the service in response to a prior CommitDataRequest.
13957    /// It is perfectly valid to patch a chunk that is being notified in the same
13958    /// message (a chunk can show up both in the |changed_pages| and |patches|
13959    /// field within the same CommitDataRequest message).
13960    /// In other words, |chunks_to_patch| is always processed after
13961    /// |chunks_to_move|.
13962    #[derive(Clone, PartialEq, ::prost::Message)]
13963    pub struct ChunkToPatch {
13964        #[prost(uint32, optional, tag = "1")]
13965        pub target_buffer: ::core::option::Option<u32>,
13966        /// {WriterID, ChunkID} uniquely identify a chunk for the current producer.
13967        #[prost(uint32, optional, tag = "2")]
13968        pub writer_id: ::core::option::Option<u32>,
13969        #[prost(uint32, optional, tag = "3")]
13970        pub chunk_id: ::core::option::Option<u32>,
13971        /// List of patches to apply to the given chunk.
13972        #[prost(message, repeated, tag = "4")]
13973        pub patches: ::prost::alloc::vec::Vec<chunk_to_patch::Patch>,
13974        /// When true more patches will follow in future requests and the chunk
13975        /// should be still considered as patch-pending. When false the chunk becomes
13976        /// eligible for reading.
13977        #[prost(bool, optional, tag = "5")]
13978        pub has_more_patches: ::core::option::Option<bool>,
13979    }
13980    /// Nested message and enum types in `ChunkToPatch`.
13981    pub mod chunk_to_patch {
13982        #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
13983        pub struct Patch {
13984            /// Offset in bytes from the start of the chunk payload. e.g., offset == 0
13985            /// corresponds to the first byte of the first packet (or fragment) in the
13986            /// chunk.
13987            #[prost(uint32, optional, tag = "1")]
13988            pub offset: ::core::option::Option<u32>,
13989            /// Bytes to patch at the given offset.
13990            #[prost(bytes = "vec", optional, tag = "2")]
13991            pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
13992        }
13993    }
13994}
13995/// Arguments for rpc InitializeConnection().
13996#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
13997pub struct InitializeConnectionRequest {
13998    /// Optional. Provides a hint to the tracing service about the suggested size
13999    /// of the shared memory buffer pages. The service is not required to respect
14000    /// this if it has already another value in the configuration or if the hint
14001    /// is unreasonably large. Must be an integer multiple of 4096. See tradeoff
14002    /// considerations in shared_memory_abi.h.
14003    #[prost(uint32, optional, tag = "1")]
14004    pub shared_memory_page_size_hint_bytes: ::core::option::Option<u32>,
14005    /// Optional. Provides a hint to the tracing service about the suggested size
14006    /// of the shared memory buffer. The service is not required to respect this
14007    /// and might return a smaller buffer.
14008    #[prost(uint32, optional, tag = "2")]
14009    pub shared_memory_size_hint_bytes: ::core::option::Option<u32>,
14010    /// Required to match the producer config set by the service to the correct
14011    /// producer.
14012    #[prost(string, optional, tag = "3")]
14013    pub producer_name: ::core::option::Option<::prost::alloc::string::String>,
14014    /// If provided, overrides the service's SMB scraping setting for the producer.
14015    #[prost(
14016        enumeration = "initialize_connection_request::ProducerSmbScrapingMode",
14017        optional,
14018        tag = "4"
14019    )]
14020    pub smb_scraping_mode: ::core::option::Option<i32>,
14021    /// Since Android R, this request can also transport an FD for the producer's
14022    /// shared memory buffer, if allocated by the producer (e.g. for startup
14023    /// tracing). In this case, |shared_memory_page_size_hint_bytes| is a required
14024    /// field, and describes the SMB's page size. Note that the service may not
14025    /// accept this SMB (e.g. because it is too old or its size / page size are
14026    /// invalid) and instead allocate a new SMB which is provided in the
14027    /// SetupTracing response. See TracingService::ConnectProducer() and
14028    /// |using_shmem_provided_by_producer| in InitializeConnectionResponse.
14029    #[prost(bool, optional, tag = "6")]
14030    pub producer_provided_shmem: ::core::option::Option<bool>,
14031    /// The version of the client library used by the producer.
14032    /// This is a human readable string with and its format varies depending on
14033    /// the build system that is used to build the code and the repo (standalone
14034    /// vs AOSP). This is intended for human debugging only.
14035    #[prost(string, optional, tag = "8")]
14036    pub sdk_version: ::core::option::Option<::prost::alloc::string::String>,
14037    /// On Windows, when producer_provided_shmem = true, the client creates a named
14038    /// SHM region and passes the name (an unguessable token) back to the service.
14039    /// Introduced in v13.
14040    #[prost(string, optional, tag = "7")]
14041    pub shm_key_windows: ::core::option::Option<::prost::alloc::string::String>,
14042}
14043/// Nested message and enum types in `InitializeConnectionRequest`.
14044pub mod initialize_connection_request {
14045    #[derive(
14046        Clone,
14047        Copy,
14048        Debug,
14049        PartialEq,
14050        Eq,
14051        Hash,
14052        PartialOrd,
14053        Ord,
14054        ::prost::Enumeration
14055    )]
14056    #[repr(i32)]
14057    pub enum ProducerSmbScrapingMode {
14058        /// Use the service's default setting for SMB scraping.
14059        SmbScrapingUnspecified = 0,
14060        /// Enable scraping of uncommitted chunks from the producer's shared memory
14061        /// buffer.
14062        SmbScrapingEnabled = 1,
14063        /// Disable scraping of uncommitted chunks from the producer's shared memory
14064        /// buffer.
14065        SmbScrapingDisabled = 2,
14066    }
14067    impl ProducerSmbScrapingMode {
14068        /// String value of the enum field names used in the ProtoBuf definition.
14069        ///
14070        /// The values are not transformed in any way and thus are considered stable
14071        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
14072        pub fn as_str_name(&self) -> &'static str {
14073            match self {
14074                Self::SmbScrapingUnspecified => "SMB_SCRAPING_UNSPECIFIED",
14075                Self::SmbScrapingEnabled => "SMB_SCRAPING_ENABLED",
14076                Self::SmbScrapingDisabled => "SMB_SCRAPING_DISABLED",
14077            }
14078        }
14079        /// Creates an enum from field names used in the ProtoBuf definition.
14080        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
14081            match value {
14082                "SMB_SCRAPING_UNSPECIFIED" => Some(Self::SmbScrapingUnspecified),
14083                "SMB_SCRAPING_ENABLED" => Some(Self::SmbScrapingEnabled),
14084                "SMB_SCRAPING_DISABLED" => Some(Self::SmbScrapingDisabled),
14085                _ => None,
14086            }
14087        }
14088    }
14089}
14090#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14091pub struct InitializeConnectionResponse {
14092    /// Indicates whether the service accepted the SMB provided by the producer in
14093    /// InitializeConnectionRequest (if any). If false, the shared memory buffer FD
14094    /// will provided by the service via the SetupTracing async command.
14095    #[prost(bool, optional, tag = "1")]
14096    pub using_shmem_provided_by_producer: ::core::option::Option<bool>,
14097    /// Indicates to the producer that the service allows direct SMB patching of
14098    /// chunks that have not yet been committed to it.
14099    /// This field has been introduced in Android S.
14100    #[prost(bool, optional, tag = "2")]
14101    pub direct_smb_patching_supported: ::core::option::Option<bool>,
14102    /// Indicates whether the service would like to use SMB emulation for the
14103    /// connection, and request the client to send chunk data over the socket e.g.
14104    /// for remote connection from a VM guest.
14105    #[prost(bool, optional, tag = "3")]
14106    pub use_shmem_emulation: ::core::option::Option<bool>,
14107}
14108#[derive(Clone, PartialEq, ::prost::Message)]
14109pub struct RegisterDataSourceRequest {
14110    #[prost(message, optional, tag = "1")]
14111    pub data_source_descriptor: ::core::option::Option<DataSourceDescriptor>,
14112}
14113#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
14114pub struct RegisterDataSourceResponse {
14115    /// Only set in case of errors, when |data_source_id| == 0.
14116    #[prost(string, optional, tag = "1")]
14117    pub error: ::core::option::Option<::prost::alloc::string::String>,
14118}
14119#[derive(Clone, PartialEq, ::prost::Message)]
14120pub struct UpdateDataSourceRequest {
14121    /// The new data_source_descriptor.{id, name} must match {id, name} of a
14122    /// data source previously registered via RegisterDataSource().
14123    #[prost(message, optional, tag = "1")]
14124    pub data_source_descriptor: ::core::option::Option<DataSourceDescriptor>,
14125}
14126#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14127pub struct UpdateDataSourceResponse {}
14128#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
14129pub struct UnregisterDataSourceRequest {
14130    /// The name of the data source to unregister, as previously passed in
14131    /// |RegisterDataSourceRequest.name|.
14132    #[prost(string, optional, tag = "1")]
14133    pub data_source_name: ::core::option::Option<::prost::alloc::string::String>,
14134}
14135#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14136pub struct UnregisterDataSourceResponse {}
14137#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14138pub struct RegisterTraceWriterRequest {
14139    /// The ID of a producer's trace writer.
14140    #[prost(uint32, optional, tag = "1")]
14141    pub trace_writer_id: ::core::option::Option<u32>,
14142    /// The ID of the target buffer that the trace writer commits its chunks to.
14143    #[prost(uint32, optional, tag = "2")]
14144    pub target_buffer: ::core::option::Option<u32>,
14145}
14146#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14147pub struct RegisterTraceWriterResponse {}
14148#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14149pub struct UnregisterTraceWriterRequest {
14150    /// The ID of a producer's trace writer.
14151    #[prost(uint32, optional, tag = "1")]
14152    pub trace_writer_id: ::core::option::Option<u32>,
14153}
14154#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14155pub struct UnregisterTraceWriterResponse {}
14156#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14157pub struct CommitDataResponse {}
14158#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14159pub struct NotifyDataSourceStartedRequest {
14160    /// ID of the data source that has successfully started.
14161    #[prost(uint64, optional, tag = "1")]
14162    pub data_source_id: ::core::option::Option<u64>,
14163}
14164#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14165pub struct NotifyDataSourceStartedResponse {}
14166#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14167pub struct NotifyDataSourceStoppedRequest {
14168    /// ID of the data source that has successfully stopped.
14169    #[prost(uint64, optional, tag = "1")]
14170    pub data_source_id: ::core::option::Option<u64>,
14171}
14172#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14173pub struct NotifyDataSourceStoppedResponse {}
14174#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
14175pub struct ActivateTriggersRequest {
14176    #[prost(string, repeated, tag = "1")]
14177    pub trigger_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
14178}
14179#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14180pub struct ActivateTriggersResponse {}
14181#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14182pub struct GetAsyncCommandRequest {}
14183#[derive(Clone, PartialEq, ::prost::Message)]
14184pub struct GetAsyncCommandResponse {
14185    /// Next id: 8.
14186    #[prost(oneof = "get_async_command_response::Cmd", tags = "3, 6, 1, 2, 5, 7")]
14187    pub cmd: ::core::option::Option<get_async_command_response::Cmd>,
14188}
14189/// Nested message and enum types in `GetAsyncCommandResponse`.
14190pub mod get_async_command_response {
14191    /// Called after SetupTracing and before StartDataSource.
14192    /// This message was introduced in Android Q.
14193    #[derive(Clone, PartialEq, ::prost::Message)]
14194    pub struct SetupDataSource {
14195        #[prost(uint64, optional, tag = "1")]
14196        pub new_instance_id: ::core::option::Option<u64>,
14197        #[prost(message, optional, tag = "2")]
14198        pub config: ::core::option::Option<super::DataSourceConfig>,
14199    }
14200    #[derive(Clone, PartialEq, ::prost::Message)]
14201    pub struct StartDataSource {
14202        #[prost(uint64, optional, tag = "1")]
14203        pub new_instance_id: ::core::option::Option<u64>,
14204        /// For backwards compat reasons (with Android P), the config passed here
14205        /// is identical to the one passed to SetupDataSource.config.
14206        #[prost(message, optional, tag = "2")]
14207        pub config: ::core::option::Option<super::DataSourceConfig>,
14208    }
14209    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14210    pub struct StopDataSource {
14211        #[prost(uint64, optional, tag = "1")]
14212        pub instance_id: ::core::option::Option<u64>,
14213    }
14214    /// On Android/Linux/Mac this message also transports the file descriptor for
14215    /// the shared memory buffer (not a proto field).
14216    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
14217    pub struct SetupTracing {
14218        #[prost(uint32, optional, tag = "1")]
14219        pub shared_buffer_page_size_kb: ::core::option::Option<u32>,
14220        /// On Windows, instead, we pass the name (an unguessable token) of a shared
14221        /// memory region that can be attached by the other process by name.
14222        /// Introduced in v13.
14223        #[prost(string, optional, tag = "2")]
14224        pub shm_key_windows: ::core::option::Option<::prost::alloc::string::String>,
14225    }
14226    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
14227    pub struct Flush {
14228        /// The instance id (i.e. StartDataSource.new_instance_id) of the data
14229        /// sources to flush.
14230        #[prost(uint64, repeated, packed = "false", tag = "1")]
14231        pub data_source_ids: ::prost::alloc::vec::Vec<u64>,
14232        /// A monotonic counter generated by the service. The producer is simply
14233        /// expected to copy this value back into the CommitDataRequest, so the
14234        /// service can tell when the data for this flush has been committed.
14235        #[prost(uint64, optional, tag = "2")]
14236        pub request_id: ::core::option::Option<u64>,
14237        /// More details such as flush reason and originator. Introduced in v38 / V.
14238        /// See FlushFlags in include/perfetto/ext/tracing/core/flush_flags.h.
14239        #[prost(uint64, optional, tag = "3")]
14240        pub flags: ::core::option::Option<u64>,
14241    }
14242    /// Instructs the given data sources to stop referring to any trace contents
14243    /// emitted so far. Sent only to active data sources that set
14244    /// |handles_incremental_state_clear| in their DataSourceDescriptor.
14245    ///
14246    /// Added to perfetto tree in May 2019.
14247    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
14248    pub struct ClearIncrementalState {
14249        /// The instance id (i.e. StartDataSource.new_instance_id) of the data
14250        /// sources that should clear their incremental state.
14251        #[prost(uint64, repeated, packed = "false", tag = "1")]
14252        pub data_source_ids: ::prost::alloc::vec::Vec<u64>,
14253    }
14254    /// Next id: 8.
14255    #[derive(Clone, PartialEq, ::prost::Oneof)]
14256    pub enum Cmd {
14257        #[prost(message, tag = "3")]
14258        SetupTracing(SetupTracing),
14259        #[prost(message, tag = "6")]
14260        SetupDataSource(SetupDataSource),
14261        #[prost(message, tag = "1")]
14262        StartDataSource(StartDataSource),
14263        #[prost(message, tag = "2")]
14264        StopDataSource(StopDataSource),
14265        /// id == 4 was teardown_tracing, never implemented.
14266        #[prost(message, tag = "5")]
14267        Flush(Flush),
14268        #[prost(message, tag = "7")]
14269        ClearIncrementalState(ClearIncrementalState),
14270    }
14271}
14272/// Arguments for rpc Sync().
14273#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14274pub struct SyncRequest {}
14275#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14276pub struct SyncResponse {}
14277#[derive(Clone, PartialEq, ::prost::Message)]
14278pub struct IpcFrame {
14279    /// The client is expected to send requests with monotonically increasing
14280    /// request_id. The host will match the request_id sent from the client.
14281    /// In the case of a Streaming response (has_more = true) the host will send
14282    /// several InvokeMethodReply with the same request_id.
14283    #[prost(uint64, optional, tag = "2")]
14284    pub request_id: ::core::option::Option<u64>,
14285    /// Used only in unittests to generate a parsable message of arbitrary size.
14286    #[prost(bytes = "vec", repeated, tag = "1")]
14287    pub data_for_testing: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
14288    #[prost(oneof = "ipc_frame::Msg", tags = "3, 4, 5, 6, 7, 8")]
14289    pub msg: ::core::option::Option<ipc_frame::Msg>,
14290}
14291/// Nested message and enum types in `IPCFrame`.
14292pub mod ipc_frame {
14293    /// Client -> Host.
14294    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
14295    pub struct BindService {
14296        #[prost(string, optional, tag = "1")]
14297        pub service_name: ::core::option::Option<::prost::alloc::string::String>,
14298    }
14299    /// Host -> Client.
14300    #[derive(Clone, PartialEq, ::prost::Message)]
14301    pub struct BindServiceReply {
14302        #[prost(bool, optional, tag = "1")]
14303        pub success: ::core::option::Option<bool>,
14304        #[prost(uint32, optional, tag = "2")]
14305        pub service_id: ::core::option::Option<u32>,
14306        #[prost(message, repeated, tag = "3")]
14307        pub methods: ::prost::alloc::vec::Vec<bind_service_reply::MethodInfo>,
14308    }
14309    /// Nested message and enum types in `BindServiceReply`.
14310    pub mod bind_service_reply {
14311        #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
14312        pub struct MethodInfo {
14313            #[prost(uint32, optional, tag = "1")]
14314            pub id: ::core::option::Option<u32>,
14315            #[prost(string, optional, tag = "2")]
14316            pub name: ::core::option::Option<::prost::alloc::string::String>,
14317        }
14318    }
14319    /// Client -> Host.
14320    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
14321    pub struct InvokeMethod {
14322        /// BindServiceReply.id.
14323        #[prost(uint32, optional, tag = "1")]
14324        pub service_id: ::core::option::Option<u32>,
14325        /// BindServiceReply.method.id.
14326        #[prost(uint32, optional, tag = "2")]
14327        pub method_id: ::core::option::Option<u32>,
14328        /// Proto-encoded request argument.
14329        #[prost(bytes = "vec", optional, tag = "3")]
14330        pub args_proto: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
14331        /// When true the client specifies that a reply is not needed. The use case
14332        /// is a method with an empty, where the client doesn't care about the
14333        /// success/failure of the method invocation and rather prefers avoiding the
14334        /// IPC roundtrip + context switch associated with the reply.
14335        #[prost(bool, optional, tag = "4")]
14336        pub drop_reply: ::core::option::Option<bool>,
14337    }
14338    /// Host -> Client.
14339    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
14340    pub struct InvokeMethodReply {
14341        #[prost(bool, optional, tag = "1")]
14342        pub success: ::core::option::Option<bool>,
14343        /// only for streaming RPCs.
14344        #[prost(bool, optional, tag = "2")]
14345        pub has_more: ::core::option::Option<bool>,
14346        /// proto-encoded response value.
14347        #[prost(bytes = "vec", optional, tag = "3")]
14348        pub reply_proto: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
14349    }
14350    /// Host -> Client.
14351    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
14352    pub struct RequestError {
14353        #[prost(string, optional, tag = "1")]
14354        pub error: ::core::option::Option<::prost::alloc::string::String>,
14355    }
14356    /// Client (relay service) -> Host. This is generated by the relay service to
14357    /// fill the producer identity in the guest. This message is sent to the host
14358    /// service *before* any IPCFrame is from a local producer is relayed. This is
14359    /// accepted only on AF_VSOCK and AF_INET sockets, where we cannot validate the
14360    /// endpoont of the connection. for AF_UNIX sockets, this is ignored and traced
14361    /// uses instead the SO_PEERCRED.
14362    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
14363    pub struct SetPeerIdentity {
14364        /// The UID and PID of the producer process.
14365        #[prost(int32, optional, tag = "1")]
14366        pub pid: ::core::option::Option<i32>,
14367        #[prost(int32, optional, tag = "2")]
14368        pub uid: ::core::option::Option<i32>,
14369        /// The hint for the tracing service to infer the machine ID. This field
14370        /// should satisfy the requriement that different machines should have
14371        /// different values. In practice, this filed contains the Linux kernel
14372        /// boot_id, or a hash of kernel bootup timestamp and uname(2) if boot_id
14373        /// isn't available.
14374        #[prost(string, optional, tag = "3")]
14375        pub machine_id_hint: ::core::option::Option<::prost::alloc::string::String>,
14376        /// Human-readable name associated to the producer's machine. Provides the
14377        /// tracing service a new dimension to filter data sources on. Given the
14378        /// perfetto machine name is provided by users, there is no expectation of
14379        /// uniqueness across machines in a tracing session.
14380        #[prost(string, optional, tag = "4")]
14381        pub machine_name: ::core::option::Option<::prost::alloc::string::String>,
14382    }
14383    #[derive(Clone, PartialEq, ::prost::Oneof)]
14384    pub enum Msg {
14385        #[prost(message, tag = "3")]
14386        MsgBindService(BindService),
14387        #[prost(message, tag = "4")]
14388        MsgBindServiceReply(BindServiceReply),
14389        #[prost(message, tag = "5")]
14390        MsgInvokeMethod(InvokeMethod),
14391        #[prost(message, tag = "6")]
14392        MsgInvokeMethodReply(InvokeMethodReply),
14393        #[prost(message, tag = "7")]
14394        MsgRequestError(RequestError),
14395        #[prost(message, tag = "8")]
14396        SetPeerIdentity(SetPeerIdentity),
14397    }
14398}