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