cx_api/generated/
com.coralogixapis.dashboards.v1.ast.annotations.rs

1// This file is @generated by prost-build.
2#[derive(serde::Serialize, serde::Deserialize)]
3#[serde(rename_all = "snake_case")]
4#[derive(Clone, PartialEq, ::prost::Message)]
5pub struct Annotation {
6    /// Annotation unique identifier
7    #[prost(message, optional, tag = "1")]
8    pub id: ::core::option::Option<::prost::alloc::string::String>,
9    #[prost(message, optional, tag = "2")]
10    pub name: ::core::option::Option<::prost::alloc::string::String>,
11    #[prost(message, optional, tag = "5")]
12    pub description: ::core::option::Option<::prost::alloc::string::String>,
13    #[prost(message, optional, tag = "3")]
14    pub enabled: ::core::option::Option<bool>,
15    #[prost(message, optional, tag = "4")]
16    pub source: ::core::option::Option<annotation::Source>,
17    #[prost(message, optional, tag = "6")]
18    pub scope: ::core::option::Option<annotation::WidgetScope>,
19    #[prost(enumeration = "annotation::AnnotationColor", tag = "7")]
20    pub color: i32,
21}
22/// Nested message and enum types in `Annotation`.
23pub mod annotation {
24    #[derive(serde::Serialize, serde::Deserialize)]
25    #[serde(rename_all = "snake_case")]
26    #[derive(Clone, PartialEq, ::prost::Message)]
27    pub struct Source {
28        #[prost(oneof = "source::Value", tags = "1, 2, 3, 4, 5, 6")]
29        pub value: ::core::option::Option<source::Value>,
30    }
31    /// Nested message and enum types in `Source`.
32    pub mod source {
33        #[derive(serde::Serialize, serde::Deserialize)]
34        #[serde(rename_all = "snake_case")]
35        #[derive(Clone, PartialEq, ::prost::Oneof)]
36        pub enum Value {
37            #[prost(message, tag = "1")]
38            Metrics(super::MetricsSource),
39            #[prost(message, tag = "2")]
40            Logs(super::LogsSource),
41            #[prost(message, tag = "3")]
42            Spans(super::SpansSource),
43            #[prost(message, tag = "4")]
44            Dataprime(super::DataprimeSource),
45            #[prost(message, tag = "5")]
46            Manual(super::ManualSource),
47            #[prost(message, tag = "6")]
48            EventRecurrence(super::EventRecurrenceSource),
49        }
50    }
51    #[derive(serde::Serialize, serde::Deserialize)]
52    #[serde(rename_all = "snake_case")]
53    #[derive(Clone, PartialEq, ::prost::Message)]
54    pub struct MetricsSource {
55        #[prost(message, optional, tag = "1")]
56        pub promql_query: ::core::option::Option<
57            super::super::super::common::PromQlQuery,
58        >,
59        #[prost(message, optional, tag = "2")]
60        pub strategy: ::core::option::Option<metrics_source::Strategy>,
61        #[prost(message, optional, tag = "3")]
62        pub message_template: ::core::option::Option<::prost::alloc::string::String>,
63        #[prost(message, repeated, tag = "4")]
64        pub labels: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
65        #[prost(enumeration = "AnnotationOrientation", tag = "5")]
66        pub orientation: i32,
67    }
68    /// Nested message and enum types in `MetricsSource`.
69    pub mod metrics_source {
70        /// A strategy for turning metrics data into annotations
71        #[derive(serde::Serialize, serde::Deserialize)]
72        #[serde(rename_all = "snake_case")]
73        #[derive(Clone, Copy, PartialEq, ::prost::Message)]
74        pub struct Strategy {
75            #[prost(oneof = "strategy::Value", tags = "1")]
76            pub value: ::core::option::Option<strategy::Value>,
77        }
78        /// Nested message and enum types in `Strategy`.
79        pub mod strategy {
80            #[derive(serde::Serialize, serde::Deserialize)]
81            #[serde(rename_all = "snake_case")]
82            #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
83            pub enum Value {
84                /// Take the first data point and use its value as annotation timestamp (instead of pointing to its own timestamp)
85                #[prost(message, tag = "1")]
86                StartTimeMetric(super::StartTimeMetric),
87            }
88        }
89        #[derive(serde::Serialize, serde::Deserialize)]
90        #[serde(rename_all = "snake_case")]
91        #[derive(Clone, Copy, PartialEq, ::prost::Message)]
92        pub struct StartTimeMetric {}
93    }
94    #[derive(serde::Serialize, serde::Deserialize)]
95    #[serde(rename_all = "snake_case")]
96    #[derive(Clone, PartialEq, ::prost::Message)]
97    pub struct LogsSource {
98        #[prost(message, optional, tag = "1")]
99        pub lucene_query: ::core::option::Option<
100            super::super::super::common::LuceneQuery,
101        >,
102        #[prost(message, optional, tag = "2")]
103        pub strategy: ::core::option::Option<logs_source::Strategy>,
104        #[prost(message, optional, tag = "3")]
105        pub message_template: ::core::option::Option<::prost::alloc::string::String>,
106        #[prost(message, repeated, tag = "4")]
107        pub label_fields: ::prost::alloc::vec::Vec<
108            super::super::super::common::ObservationField,
109        >,
110        #[prost(enumeration = "super::super::super::common::DataModeType", tag = "5")]
111        pub data_mode_type: i32,
112    }
113    /// Nested message and enum types in `LogsSource`.
114    pub mod logs_source {
115        #[derive(serde::Serialize, serde::Deserialize)]
116        #[serde(rename_all = "snake_case")]
117        #[derive(Clone, PartialEq, ::prost::Message)]
118        pub struct Strategy {
119            #[prost(oneof = "strategy::Value", tags = "1, 2, 3")]
120            pub value: ::core::option::Option<strategy::Value>,
121        }
122        /// Nested message and enum types in `Strategy`.
123        pub mod strategy {
124            #[derive(serde::Serialize, serde::Deserialize)]
125            #[serde(rename_all = "snake_case")]
126            #[derive(Clone, PartialEq, ::prost::Message)]
127            pub struct Instant {
128                #[prost(message, optional, tag = "1")]
129                pub timestamp_field: ::core::option::Option<
130                    super::super::super::super::super::common::ObservationField,
131                >,
132            }
133            #[derive(serde::Serialize, serde::Deserialize)]
134            #[serde(rename_all = "snake_case")]
135            #[derive(Clone, PartialEq, ::prost::Message)]
136            pub struct Range {
137                #[prost(message, optional, tag = "1")]
138                pub start_timestamp_field: ::core::option::Option<
139                    super::super::super::super::super::common::ObservationField,
140                >,
141                #[prost(message, optional, tag = "2")]
142                pub end_timestamp_field: ::core::option::Option<
143                    super::super::super::super::super::common::ObservationField,
144                >,
145            }
146            #[derive(serde::Serialize, serde::Deserialize)]
147            #[serde(rename_all = "snake_case")]
148            #[derive(Clone, PartialEq, ::prost::Message)]
149            pub struct Duration {
150                #[prost(message, optional, tag = "1")]
151                pub start_timestamp_field: ::core::option::Option<
152                    super::super::super::super::super::common::ObservationField,
153                >,
154                #[prost(message, optional, tag = "2")]
155                pub duration_field: ::core::option::Option<
156                    super::super::super::super::super::common::ObservationField,
157                >,
158            }
159            #[derive(serde::Serialize, serde::Deserialize)]
160            #[serde(rename_all = "snake_case")]
161            #[derive(Clone, PartialEq, ::prost::Oneof)]
162            pub enum Value {
163                #[prost(message, tag = "1")]
164                Instant(Instant),
165                #[prost(message, tag = "2")]
166                Range(Range),
167                #[prost(message, tag = "3")]
168                Duration(Duration),
169            }
170        }
171    }
172    #[derive(serde::Serialize, serde::Deserialize)]
173    #[serde(rename_all = "snake_case")]
174    #[derive(Clone, PartialEq, ::prost::Message)]
175    pub struct SpansSource {
176        #[prost(message, optional, tag = "1")]
177        pub lucene_query: ::core::option::Option<
178            super::super::super::common::LuceneQuery,
179        >,
180        #[prost(message, optional, tag = "2")]
181        pub strategy: ::core::option::Option<spans_source::Strategy>,
182        #[prost(message, optional, tag = "3")]
183        pub message_template: ::core::option::Option<::prost::alloc::string::String>,
184        #[prost(message, repeated, tag = "4")]
185        pub label_fields: ::prost::alloc::vec::Vec<
186            super::super::super::common::ObservationField,
187        >,
188        #[prost(enumeration = "super::super::super::common::DataModeType", tag = "5")]
189        pub data_mode_type: i32,
190    }
191    /// Nested message and enum types in `SpansSource`.
192    pub mod spans_source {
193        #[derive(serde::Serialize, serde::Deserialize)]
194        #[serde(rename_all = "snake_case")]
195        #[derive(Clone, PartialEq, ::prost::Message)]
196        pub struct Strategy {
197            #[prost(oneof = "strategy::Value", tags = "1, 2, 3")]
198            pub value: ::core::option::Option<strategy::Value>,
199        }
200        /// Nested message and enum types in `Strategy`.
201        pub mod strategy {
202            #[derive(serde::Serialize, serde::Deserialize)]
203            #[serde(rename_all = "snake_case")]
204            #[derive(Clone, PartialEq, ::prost::Message)]
205            pub struct Instant {
206                #[prost(message, optional, tag = "1")]
207                pub timestamp_field: ::core::option::Option<
208                    super::super::super::super::super::common::ObservationField,
209                >,
210            }
211            #[derive(serde::Serialize, serde::Deserialize)]
212            #[serde(rename_all = "snake_case")]
213            #[derive(Clone, PartialEq, ::prost::Message)]
214            pub struct Range {
215                #[prost(message, optional, tag = "1")]
216                pub start_timestamp_field: ::core::option::Option<
217                    super::super::super::super::super::common::ObservationField,
218                >,
219                #[prost(message, optional, tag = "2")]
220                pub end_timestamp_field: ::core::option::Option<
221                    super::super::super::super::super::common::ObservationField,
222                >,
223            }
224            #[derive(serde::Serialize, serde::Deserialize)]
225            #[serde(rename_all = "snake_case")]
226            #[derive(Clone, PartialEq, ::prost::Message)]
227            pub struct Duration {
228                #[prost(message, optional, tag = "1")]
229                pub start_timestamp_field: ::core::option::Option<
230                    super::super::super::super::super::common::ObservationField,
231                >,
232                #[prost(message, optional, tag = "2")]
233                pub duration_field: ::core::option::Option<
234                    super::super::super::super::super::common::ObservationField,
235                >,
236            }
237            #[derive(serde::Serialize, serde::Deserialize)]
238            #[serde(rename_all = "snake_case")]
239            #[derive(Clone, PartialEq, ::prost::Oneof)]
240            pub enum Value {
241                #[prost(message, tag = "1")]
242                Instant(Instant),
243                #[prost(message, tag = "2")]
244                Range(Range),
245                #[prost(message, tag = "3")]
246                Duration(Duration),
247            }
248        }
249    }
250    #[derive(serde::Serialize, serde::Deserialize)]
251    #[serde(rename_all = "snake_case")]
252    #[derive(Clone, PartialEq, ::prost::Message)]
253    pub struct DataprimeSource {
254        #[prost(message, optional, tag = "1")]
255        pub query: ::core::option::Option<super::super::super::common::DataprimeQuery>,
256        #[prost(message, optional, tag = "2")]
257        pub strategy: ::core::option::Option<dataprime_source::Strategy>,
258        #[prost(message, optional, tag = "3")]
259        pub message_template: ::core::option::Option<::prost::alloc::string::String>,
260        #[prost(enumeration = "super::super::super::common::DataModeType", tag = "4")]
261        pub data_mode_type: i32,
262        #[prost(message, repeated, tag = "5")]
263        pub label_fields: ::prost::alloc::vec::Vec<
264            super::super::super::common::ObservationField,
265        >,
266        #[prost(enumeration = "AnnotationOrientation", tag = "6")]
267        pub orientation: i32,
268    }
269    /// Nested message and enum types in `DataprimeSource`.
270    pub mod dataprime_source {
271        #[derive(serde::Serialize, serde::Deserialize)]
272        #[serde(rename_all = "snake_case")]
273        #[derive(Clone, PartialEq, ::prost::Message)]
274        pub struct Strategy {
275            #[prost(oneof = "strategy::Value", tags = "1, 2, 3")]
276            pub value: ::core::option::Option<strategy::Value>,
277        }
278        /// Nested message and enum types in `Strategy`.
279        pub mod strategy {
280            #[derive(serde::Serialize, serde::Deserialize)]
281            #[serde(rename_all = "snake_case")]
282            #[derive(Clone, PartialEq, ::prost::Message)]
283            pub struct Instant {
284                #[prost(message, optional, tag = "1")]
285                pub timestamp_field: ::core::option::Option<
286                    super::super::super::super::super::common::ObservationField,
287                >,
288            }
289            #[derive(serde::Serialize, serde::Deserialize)]
290            #[serde(rename_all = "snake_case")]
291            #[derive(Clone, PartialEq, ::prost::Message)]
292            pub struct Range {
293                #[prost(message, optional, tag = "1")]
294                pub start_timestamp_field: ::core::option::Option<
295                    super::super::super::super::super::common::ObservationField,
296                >,
297                #[prost(message, optional, tag = "2")]
298                pub end_timestamp_field: ::core::option::Option<
299                    super::super::super::super::super::common::ObservationField,
300                >,
301            }
302            #[derive(serde::Serialize, serde::Deserialize)]
303            #[serde(rename_all = "snake_case")]
304            #[derive(Clone, PartialEq, ::prost::Message)]
305            pub struct Duration {
306                #[prost(message, optional, tag = "1")]
307                pub start_timestamp_field: ::core::option::Option<
308                    super::super::super::super::super::common::ObservationField,
309                >,
310                #[prost(message, optional, tag = "2")]
311                pub duration_field: ::core::option::Option<
312                    super::super::super::super::super::common::ObservationField,
313                >,
314            }
315            #[derive(serde::Serialize, serde::Deserialize)]
316            #[serde(rename_all = "snake_case")]
317            #[derive(Clone, PartialEq, ::prost::Oneof)]
318            pub enum Value {
319                #[prost(message, tag = "1")]
320                Instant(Instant),
321                #[prost(message, tag = "2")]
322                Range(Range),
323                #[prost(message, tag = "3")]
324                Duration(Duration),
325            }
326        }
327    }
328    #[derive(serde::Serialize, serde::Deserialize)]
329    #[serde(rename_all = "snake_case")]
330    #[derive(Clone, PartialEq, ::prost::Message)]
331    pub struct ManualSource {
332        #[prost(message, optional, tag = "1")]
333        pub strategy: ::core::option::Option<manual_source::Strategy>,
334        #[prost(message, optional, tag = "3")]
335        pub message_template: ::core::option::Option<::prost::alloc::string::String>,
336        #[prost(enumeration = "AnnotationOrientation", tag = "4")]
337        pub orientation: i32,
338    }
339    /// Nested message and enum types in `ManualSource`.
340    pub mod manual_source {
341        #[derive(serde::Serialize, serde::Deserialize)]
342        #[serde(rename_all = "snake_case")]
343        #[derive(Clone, PartialEq, ::prost::Message)]
344        pub struct Strategy {
345            #[prost(oneof = "strategy::Value", tags = "1, 2")]
346            pub value: ::core::option::Option<strategy::Value>,
347        }
348        /// Nested message and enum types in `Strategy`.
349        pub mod strategy {
350            #[derive(serde::Serialize, serde::Deserialize)]
351            #[serde(rename_all = "snake_case")]
352            #[derive(Clone, PartialEq, ::prost::Message)]
353            pub struct Instant {
354                #[prost(
355                    enumeration = "super::super::super::super::widgets::common::Unit",
356                    tag = "1"
357                )]
358                pub unit: i32,
359                #[prost(message, optional, tag = "2")]
360                pub value: ::core::option::Option<f64>,
361                #[prost(message, optional, tag = "3")]
362                pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
363            }
364            #[derive(serde::Serialize, serde::Deserialize)]
365            #[serde(rename_all = "snake_case")]
366            #[derive(Clone, PartialEq, ::prost::Message)]
367            pub struct Range {
368                #[prost(
369                    enumeration = "super::super::super::super::widgets::common::Unit",
370                    tag = "1"
371                )]
372                pub unit: i32,
373                #[prost(message, optional, tag = "2")]
374                pub start_value: ::core::option::Option<f64>,
375                #[prost(message, optional, tag = "3")]
376                pub end_value: ::core::option::Option<f64>,
377                #[prost(message, optional, tag = "4")]
378                pub custom_unit: ::core::option::Option<::prost::alloc::string::String>,
379            }
380            #[derive(serde::Serialize, serde::Deserialize)]
381            #[serde(rename_all = "snake_case")]
382            #[derive(Clone, PartialEq, ::prost::Oneof)]
383            pub enum Value {
384                #[prost(message, tag = "1")]
385                Instant(Instant),
386                #[prost(message, tag = "2")]
387                Range(Range),
388            }
389        }
390    }
391    #[derive(serde::Serialize, serde::Deserialize)]
392    #[serde(rename_all = "snake_case")]
393    #[derive(Clone, PartialEq, ::prost::Message)]
394    pub struct EventRecurrenceSource {
395        #[prost(message, optional, tag = "1")]
396        pub recurrence: ::core::option::Option<event_recurrence_source::Recurrence>,
397        #[prost(message, optional, tag = "2")]
398        pub strategy: ::core::option::Option<event_recurrence_source::Strategy>,
399        #[prost(message, optional, tag = "3")]
400        pub message_template: ::core::option::Option<::prost::alloc::string::String>,
401    }
402    /// Nested message and enum types in `EventRecurrenceSource`.
403    pub mod event_recurrence_source {
404        #[derive(serde::Serialize, serde::Deserialize)]
405        #[serde(rename_all = "snake_case")]
406        #[derive(Clone, PartialEq, ::prost::Message)]
407        pub struct Recurrence {
408            #[prost(oneof = "recurrence::FrequencyType", tags = "1")]
409            pub frequency_type: ::core::option::Option<recurrence::FrequencyType>,
410        }
411        /// Nested message and enum types in `Recurrence`.
412        pub mod recurrence {
413            #[derive(serde::Serialize, serde::Deserialize)]
414            #[serde(rename_all = "snake_case")]
415            #[derive(Clone, PartialEq, ::prost::Oneof)]
416            pub enum FrequencyType {
417                #[prost(message, tag = "1")]
418                Weekly(super::WeeklyRecurrence),
419            }
420        }
421        #[derive(serde::Serialize, serde::Deserialize)]
422        #[serde(rename_all = "snake_case")]
423        #[derive(Clone, PartialEq, ::prost::Message)]
424        pub struct WeeklyRecurrence {
425            #[prost(enumeration = "Weekday", repeated, tag = "1")]
426            pub days_of_week: ::prost::alloc::vec::Vec<i32>,
427        }
428        #[derive(serde::Serialize, serde::Deserialize)]
429        #[serde(rename_all = "snake_case")]
430        #[derive(Clone, Copy, PartialEq, ::prost::Message)]
431        pub struct Strategy {
432            #[prost(oneof = "strategy::Value", tags = "1, 2")]
433            pub value: ::core::option::Option<strategy::Value>,
434        }
435        /// Nested message and enum types in `Strategy`.
436        pub mod strategy {
437            #[derive(serde::Serialize, serde::Deserialize)]
438            #[serde(rename_all = "snake_case")]
439            #[derive(Clone, Copy, PartialEq, ::prost::Message)]
440            pub struct Instant {
441                #[prost(message, optional, tag = "1")]
442                pub start_time_hour: ::core::option::Option<i32>,
443            }
444            #[derive(serde::Serialize, serde::Deserialize)]
445            #[serde(rename_all = "snake_case")]
446            #[derive(Clone, Copy, PartialEq, ::prost::Message)]
447            pub struct Duration {
448                #[prost(message, optional, tag = "1")]
449                pub start_time_hour: ::core::option::Option<i32>,
450                #[prost(message, optional, tag = "2")]
451                pub duration: ::core::option::Option<::prost_wkt_types::Duration>,
452            }
453            #[derive(serde::Serialize, serde::Deserialize)]
454            #[serde(rename_all = "snake_case")]
455            #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
456            pub enum Value {
457                #[prost(message, tag = "1")]
458                Instant(Instant),
459                #[prost(message, tag = "2")]
460                Duration(Duration),
461            }
462        }
463        #[derive(serde::Serialize, serde::Deserialize)]
464        #[serde(rename_all = "snake_case")]
465        #[derive(
466            Clone,
467            Copy,
468            Debug,
469            PartialEq,
470            Eq,
471            Hash,
472            PartialOrd,
473            Ord,
474            ::prost::Enumeration
475        )]
476        #[repr(i32)]
477        pub enum Weekday {
478            Unspecified = 0,
479            Monday = 1,
480            Tuesday = 2,
481            Wednesday = 3,
482            Thursday = 4,
483            Friday = 5,
484            Saturday = 6,
485            Sunday = 7,
486        }
487        impl Weekday {
488            /// String value of the enum field names used in the ProtoBuf definition.
489            ///
490            /// The values are not transformed in any way and thus are considered stable
491            /// (if the ProtoBuf definition does not change) and safe for programmatic use.
492            pub fn as_str_name(&self) -> &'static str {
493                match self {
494                    Self::Unspecified => "WEEKDAY_UNSPECIFIED",
495                    Self::Monday => "WEEKDAY_MONDAY",
496                    Self::Tuesday => "WEEKDAY_TUESDAY",
497                    Self::Wednesday => "WEEKDAY_WEDNESDAY",
498                    Self::Thursday => "WEEKDAY_THURSDAY",
499                    Self::Friday => "WEEKDAY_FRIDAY",
500                    Self::Saturday => "WEEKDAY_SATURDAY",
501                    Self::Sunday => "WEEKDAY_SUNDAY",
502                }
503            }
504            /// Creates an enum from field names used in the ProtoBuf definition.
505            pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
506                match value {
507                    "WEEKDAY_UNSPECIFIED" => Some(Self::Unspecified),
508                    "WEEKDAY_MONDAY" => Some(Self::Monday),
509                    "WEEKDAY_TUESDAY" => Some(Self::Tuesday),
510                    "WEEKDAY_WEDNESDAY" => Some(Self::Wednesday),
511                    "WEEKDAY_THURSDAY" => Some(Self::Thursday),
512                    "WEEKDAY_FRIDAY" => Some(Self::Friday),
513                    "WEEKDAY_SATURDAY" => Some(Self::Saturday),
514                    "WEEKDAY_SUNDAY" => Some(Self::Sunday),
515                    _ => None,
516                }
517            }
518        }
519    }
520    #[derive(serde::Serialize, serde::Deserialize)]
521    #[serde(rename_all = "snake_case")]
522    #[derive(Clone, PartialEq, ::prost::Message)]
523    pub struct WidgetScope {
524        #[prost(oneof = "widget_scope::Value", tags = "1, 2")]
525        pub value: ::core::option::Option<widget_scope::Value>,
526    }
527    /// Nested message and enum types in `WidgetScope`.
528    pub mod widget_scope {
529        #[derive(serde::Serialize, serde::Deserialize)]
530        #[serde(rename_all = "snake_case")]
531        #[derive(Clone, Copy, PartialEq, ::prost::Message)]
532        pub struct AllWidgets {}
533        #[derive(serde::Serialize, serde::Deserialize)]
534        #[serde(rename_all = "snake_case")]
535        #[derive(Clone, PartialEq, ::prost::Message)]
536        pub struct SpecificWidgets {
537            #[prost(message, repeated, tag = "1")]
538            pub widget_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
539        }
540        #[derive(serde::Serialize, serde::Deserialize)]
541        #[serde(rename_all = "snake_case")]
542        #[derive(Clone, PartialEq, ::prost::Oneof)]
543        pub enum Value {
544            #[prost(message, tag = "1")]
545            AllWidgets(AllWidgets),
546            #[prost(message, tag = "2")]
547            SpecificWidgets(SpecificWidgets),
548        }
549    }
550    #[derive(serde::Serialize, serde::Deserialize)]
551    #[serde(rename_all = "snake_case")]
552    #[derive(
553        Clone,
554        Copy,
555        Debug,
556        PartialEq,
557        Eq,
558        Hash,
559        PartialOrd,
560        Ord,
561        ::prost::Enumeration
562    )]
563    #[repr(i32)]
564    pub enum AnnotationOrientation {
565        VerticalUnspecified = 0,
566        Horizontal = 1,
567    }
568    impl AnnotationOrientation {
569        /// String value of the enum field names used in the ProtoBuf definition.
570        ///
571        /// The values are not transformed in any way and thus are considered stable
572        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
573        pub fn as_str_name(&self) -> &'static str {
574            match self {
575                Self::VerticalUnspecified => {
576                    "ANNOTATION_ORIENTATION_VERTICAL_UNSPECIFIED"
577                }
578                Self::Horizontal => "ANNOTATION_ORIENTATION_HORIZONTAL",
579            }
580        }
581        /// Creates an enum from field names used in the ProtoBuf definition.
582        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
583            match value {
584                "ANNOTATION_ORIENTATION_VERTICAL_UNSPECIFIED" => {
585                    Some(Self::VerticalUnspecified)
586                }
587                "ANNOTATION_ORIENTATION_HORIZONTAL" => Some(Self::Horizontal),
588                _ => None,
589            }
590        }
591    }
592    #[derive(serde::Serialize, serde::Deserialize)]
593    #[serde(rename_all = "snake_case")]
594    #[derive(
595        Clone,
596        Copy,
597        Debug,
598        PartialEq,
599        Eq,
600        Hash,
601        PartialOrd,
602        Ord,
603        ::prost::Enumeration
604    )]
605    #[repr(i32)]
606    pub enum AnnotationColor {
607        Unspecified = 0,
608        Default = 1,
609        Green = 2,
610        Cyan = 3,
611        Blue = 4,
612        Purple = 5,
613        Magenta = 6,
614        Red = 7,
615        Orange = 8,
616        Yellow = 9,
617    }
618    impl AnnotationColor {
619        /// String value of the enum field names used in the ProtoBuf definition.
620        ///
621        /// The values are not transformed in any way and thus are considered stable
622        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
623        pub fn as_str_name(&self) -> &'static str {
624            match self {
625                Self::Unspecified => "ANNOTATION_COLOR_UNSPECIFIED",
626                Self::Default => "ANNOTATION_COLOR_DEFAULT",
627                Self::Green => "ANNOTATION_COLOR_GREEN",
628                Self::Cyan => "ANNOTATION_COLOR_CYAN",
629                Self::Blue => "ANNOTATION_COLOR_BLUE",
630                Self::Purple => "ANNOTATION_COLOR_PURPLE",
631                Self::Magenta => "ANNOTATION_COLOR_MAGENTA",
632                Self::Red => "ANNOTATION_COLOR_RED",
633                Self::Orange => "ANNOTATION_COLOR_ORANGE",
634                Self::Yellow => "ANNOTATION_COLOR_YELLOW",
635            }
636        }
637        /// Creates an enum from field names used in the ProtoBuf definition.
638        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
639            match value {
640                "ANNOTATION_COLOR_UNSPECIFIED" => Some(Self::Unspecified),
641                "ANNOTATION_COLOR_DEFAULT" => Some(Self::Default),
642                "ANNOTATION_COLOR_GREEN" => Some(Self::Green),
643                "ANNOTATION_COLOR_CYAN" => Some(Self::Cyan),
644                "ANNOTATION_COLOR_BLUE" => Some(Self::Blue),
645                "ANNOTATION_COLOR_PURPLE" => Some(Self::Purple),
646                "ANNOTATION_COLOR_MAGENTA" => Some(Self::Magenta),
647                "ANNOTATION_COLOR_RED" => Some(Self::Red),
648                "ANNOTATION_COLOR_ORANGE" => Some(Self::Orange),
649                "ANNOTATION_COLOR_YELLOW" => Some(Self::Yellow),
650                _ => None,
651            }
652        }
653    }
654}