google_cloud_rust_raw/api/
monitored_resource.rs

1// This file is generated by rust-protobuf 2.28.0. Do not edit
2// @generated
3
4// https://github.com/rust-lang/rust-clippy/issues/702
5#![allow(unknown_lints)]
6#![allow(clippy::all)]
7
8#![allow(unused_attributes)]
9#![cfg_attr(rustfmt, rustfmt::skip)]
10
11#![allow(box_pointers)]
12#![allow(dead_code)]
13#![allow(missing_docs)]
14#![allow(non_camel_case_types)]
15#![allow(non_snake_case)]
16#![allow(non_upper_case_globals)]
17#![allow(trivial_casts)]
18#![allow(unused_imports)]
19#![allow(unused_results)]
20//! Generated file from `google/api/monitored_resource.proto`
21
22/// Generated files are compatible only with the same version
23/// of protobuf runtime.
24// const _PROTOBUF_VERSION_CHECK: () = ::protobuf::VERSION_2_28_0;
25
26#[derive(PartialEq,Clone,Default)]
27pub struct MonitoredResourceDescriptor {
28    // message fields
29    pub name: ::std::string::String,
30    pub field_type: ::std::string::String,
31    pub display_name: ::std::string::String,
32    pub description: ::std::string::String,
33    pub labels: ::protobuf::RepeatedField<super::label::LabelDescriptor>,
34    pub launch_stage: super::launch_stage::LaunchStage,
35    // special fields
36    pub unknown_fields: ::protobuf::UnknownFields,
37    pub cached_size: ::protobuf::CachedSize,
38}
39
40impl<'a> ::std::default::Default for &'a MonitoredResourceDescriptor {
41    fn default() -> &'a MonitoredResourceDescriptor {
42        <MonitoredResourceDescriptor as ::protobuf::Message>::default_instance()
43    }
44}
45
46impl MonitoredResourceDescriptor {
47    pub fn new() -> MonitoredResourceDescriptor {
48        ::std::default::Default::default()
49    }
50
51    // string name = 5;
52
53
54    pub fn get_name(&self) -> &str {
55        &self.name
56    }
57    pub fn clear_name(&mut self) {
58        self.name.clear();
59    }
60
61    // Param is passed by value, moved
62    pub fn set_name(&mut self, v: ::std::string::String) {
63        self.name = v;
64    }
65
66    // Mutable pointer to the field.
67    // If field is not initialized, it is initialized with default value first.
68    pub fn mut_name(&mut self) -> &mut ::std::string::String {
69        &mut self.name
70    }
71
72    // Take field
73    pub fn take_name(&mut self) -> ::std::string::String {
74        ::std::mem::replace(&mut self.name, ::std::string::String::new())
75    }
76
77    // string type = 1;
78
79
80    pub fn get_field_type(&self) -> &str {
81        &self.field_type
82    }
83    pub fn clear_field_type(&mut self) {
84        self.field_type.clear();
85    }
86
87    // Param is passed by value, moved
88    pub fn set_field_type(&mut self, v: ::std::string::String) {
89        self.field_type = v;
90    }
91
92    // Mutable pointer to the field.
93    // If field is not initialized, it is initialized with default value first.
94    pub fn mut_field_type(&mut self) -> &mut ::std::string::String {
95        &mut self.field_type
96    }
97
98    // Take field
99    pub fn take_field_type(&mut self) -> ::std::string::String {
100        ::std::mem::replace(&mut self.field_type, ::std::string::String::new())
101    }
102
103    // string display_name = 2;
104
105
106    pub fn get_display_name(&self) -> &str {
107        &self.display_name
108    }
109    pub fn clear_display_name(&mut self) {
110        self.display_name.clear();
111    }
112
113    // Param is passed by value, moved
114    pub fn set_display_name(&mut self, v: ::std::string::String) {
115        self.display_name = v;
116    }
117
118    // Mutable pointer to the field.
119    // If field is not initialized, it is initialized with default value first.
120    pub fn mut_display_name(&mut self) -> &mut ::std::string::String {
121        &mut self.display_name
122    }
123
124    // Take field
125    pub fn take_display_name(&mut self) -> ::std::string::String {
126        ::std::mem::replace(&mut self.display_name, ::std::string::String::new())
127    }
128
129    // string description = 3;
130
131
132    pub fn get_description(&self) -> &str {
133        &self.description
134    }
135    pub fn clear_description(&mut self) {
136        self.description.clear();
137    }
138
139    // Param is passed by value, moved
140    pub fn set_description(&mut self, v: ::std::string::String) {
141        self.description = v;
142    }
143
144    // Mutable pointer to the field.
145    // If field is not initialized, it is initialized with default value first.
146    pub fn mut_description(&mut self) -> &mut ::std::string::String {
147        &mut self.description
148    }
149
150    // Take field
151    pub fn take_description(&mut self) -> ::std::string::String {
152        ::std::mem::replace(&mut self.description, ::std::string::String::new())
153    }
154
155    // repeated .google.api.LabelDescriptor labels = 4;
156
157
158    pub fn get_labels(&self) -> &[super::label::LabelDescriptor] {
159        &self.labels
160    }
161    pub fn clear_labels(&mut self) {
162        self.labels.clear();
163    }
164
165    // Param is passed by value, moved
166    pub fn set_labels(&mut self, v: ::protobuf::RepeatedField<super::label::LabelDescriptor>) {
167        self.labels = v;
168    }
169
170    // Mutable pointer to the field.
171    pub fn mut_labels(&mut self) -> &mut ::protobuf::RepeatedField<super::label::LabelDescriptor> {
172        &mut self.labels
173    }
174
175    // Take field
176    pub fn take_labels(&mut self) -> ::protobuf::RepeatedField<super::label::LabelDescriptor> {
177        ::std::mem::replace(&mut self.labels, ::protobuf::RepeatedField::new())
178    }
179
180    // .google.api.LaunchStage launch_stage = 7;
181
182
183    pub fn get_launch_stage(&self) -> super::launch_stage::LaunchStage {
184        self.launch_stage
185    }
186    pub fn clear_launch_stage(&mut self) {
187        self.launch_stage = super::launch_stage::LaunchStage::LAUNCH_STAGE_UNSPECIFIED;
188    }
189
190    // Param is passed by value, moved
191    pub fn set_launch_stage(&mut self, v: super::launch_stage::LaunchStage) {
192        self.launch_stage = v;
193    }
194}
195
196impl ::protobuf::Message for MonitoredResourceDescriptor {
197    fn is_initialized(&self) -> bool {
198        for v in &self.labels {
199            if !v.is_initialized() {
200                return false;
201            }
202        };
203        true
204    }
205
206    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
207        while !is.eof()? {
208            let (field_number, wire_type) = is.read_tag_unpack()?;
209            match field_number {
210                5 => {
211                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
212                },
213                1 => {
214                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.field_type)?;
215                },
216                2 => {
217                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.display_name)?;
218                },
219                3 => {
220                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.description)?;
221                },
222                4 => {
223                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.labels)?;
224                },
225                7 => {
226                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.launch_stage, 7, &mut self.unknown_fields)?
227                },
228                _ => {
229                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
230                },
231            };
232        }
233        ::std::result::Result::Ok(())
234    }
235
236    // Compute sizes of nested messages
237    #[allow(unused_variables)]
238    fn compute_size(&self) -> u32 {
239        let mut my_size = 0;
240        if !self.name.is_empty() {
241            my_size += ::protobuf::rt::string_size(5, &self.name);
242        }
243        if !self.field_type.is_empty() {
244            my_size += ::protobuf::rt::string_size(1, &self.field_type);
245        }
246        if !self.display_name.is_empty() {
247            my_size += ::protobuf::rt::string_size(2, &self.display_name);
248        }
249        if !self.description.is_empty() {
250            my_size += ::protobuf::rt::string_size(3, &self.description);
251        }
252        for value in &self.labels {
253            let len = value.compute_size();
254            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
255        };
256        if self.launch_stage != super::launch_stage::LaunchStage::LAUNCH_STAGE_UNSPECIFIED {
257            my_size += ::protobuf::rt::enum_size(7, self.launch_stage);
258        }
259        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
260        self.cached_size.set(my_size);
261        my_size
262    }
263
264    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
265        if !self.name.is_empty() {
266            os.write_string(5, &self.name)?;
267        }
268        if !self.field_type.is_empty() {
269            os.write_string(1, &self.field_type)?;
270        }
271        if !self.display_name.is_empty() {
272            os.write_string(2, &self.display_name)?;
273        }
274        if !self.description.is_empty() {
275            os.write_string(3, &self.description)?;
276        }
277        for v in &self.labels {
278            os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
279            os.write_raw_varint32(v.get_cached_size())?;
280            v.write_to_with_cached_sizes(os)?;
281        };
282        if self.launch_stage != super::launch_stage::LaunchStage::LAUNCH_STAGE_UNSPECIFIED {
283            os.write_enum(7, ::protobuf::ProtobufEnum::value(&self.launch_stage))?;
284        }
285        os.write_unknown_fields(self.get_unknown_fields())?;
286        ::std::result::Result::Ok(())
287    }
288
289    fn get_cached_size(&self) -> u32 {
290        self.cached_size.get()
291    }
292
293    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
294        &self.unknown_fields
295    }
296
297    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
298        &mut self.unknown_fields
299    }
300
301    fn as_any(&self) -> &dyn (::std::any::Any) {
302        self as &dyn (::std::any::Any)
303    }
304    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
305        self as &mut dyn (::std::any::Any)
306    }
307    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
308        self
309    }
310
311    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
312        Self::descriptor_static()
313    }
314
315    fn new() -> MonitoredResourceDescriptor {
316        MonitoredResourceDescriptor::new()
317    }
318
319    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
320        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
321        descriptor.get(|| {
322            let mut fields = ::std::vec::Vec::new();
323            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
324                "name",
325                |m: &MonitoredResourceDescriptor| { &m.name },
326                |m: &mut MonitoredResourceDescriptor| { &mut m.name },
327            ));
328            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
329                "type",
330                |m: &MonitoredResourceDescriptor| { &m.field_type },
331                |m: &mut MonitoredResourceDescriptor| { &mut m.field_type },
332            ));
333            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
334                "display_name",
335                |m: &MonitoredResourceDescriptor| { &m.display_name },
336                |m: &mut MonitoredResourceDescriptor| { &mut m.display_name },
337            ));
338            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
339                "description",
340                |m: &MonitoredResourceDescriptor| { &m.description },
341                |m: &mut MonitoredResourceDescriptor| { &mut m.description },
342            ));
343            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::label::LabelDescriptor>>(
344                "labels",
345                |m: &MonitoredResourceDescriptor| { &m.labels },
346                |m: &mut MonitoredResourceDescriptor| { &mut m.labels },
347            ));
348            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<super::launch_stage::LaunchStage>>(
349                "launch_stage",
350                |m: &MonitoredResourceDescriptor| { &m.launch_stage },
351                |m: &mut MonitoredResourceDescriptor| { &mut m.launch_stage },
352            ));
353            ::protobuf::reflect::MessageDescriptor::new_pb_name::<MonitoredResourceDescriptor>(
354                "MonitoredResourceDescriptor",
355                fields,
356                file_descriptor_proto()
357            )
358        })
359    }
360
361    fn default_instance() -> &'static MonitoredResourceDescriptor {
362        static instance: ::protobuf::rt::LazyV2<MonitoredResourceDescriptor> = ::protobuf::rt::LazyV2::INIT;
363        instance.get(MonitoredResourceDescriptor::new)
364    }
365}
366
367impl ::protobuf::Clear for MonitoredResourceDescriptor {
368    fn clear(&mut self) {
369        self.name.clear();
370        self.field_type.clear();
371        self.display_name.clear();
372        self.description.clear();
373        self.labels.clear();
374        self.launch_stage = super::launch_stage::LaunchStage::LAUNCH_STAGE_UNSPECIFIED;
375        self.unknown_fields.clear();
376    }
377}
378
379impl ::std::fmt::Debug for MonitoredResourceDescriptor {
380    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
381        ::protobuf::text_format::fmt(self, f)
382    }
383}
384
385impl ::protobuf::reflect::ProtobufValue for MonitoredResourceDescriptor {
386    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
387        ::protobuf::reflect::ReflectValueRef::Message(self)
388    }
389}
390
391#[derive(PartialEq,Clone,Default)]
392pub struct MonitoredResource {
393    // message fields
394    pub field_type: ::std::string::String,
395    pub labels: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
396    // special fields
397    pub unknown_fields: ::protobuf::UnknownFields,
398    pub cached_size: ::protobuf::CachedSize,
399}
400
401impl<'a> ::std::default::Default for &'a MonitoredResource {
402    fn default() -> &'a MonitoredResource {
403        <MonitoredResource as ::protobuf::Message>::default_instance()
404    }
405}
406
407impl MonitoredResource {
408    pub fn new() -> MonitoredResource {
409        ::std::default::Default::default()
410    }
411
412    // string type = 1;
413
414
415    pub fn get_field_type(&self) -> &str {
416        &self.field_type
417    }
418    pub fn clear_field_type(&mut self) {
419        self.field_type.clear();
420    }
421
422    // Param is passed by value, moved
423    pub fn set_field_type(&mut self, v: ::std::string::String) {
424        self.field_type = v;
425    }
426
427    // Mutable pointer to the field.
428    // If field is not initialized, it is initialized with default value first.
429    pub fn mut_field_type(&mut self) -> &mut ::std::string::String {
430        &mut self.field_type
431    }
432
433    // Take field
434    pub fn take_field_type(&mut self) -> ::std::string::String {
435        ::std::mem::replace(&mut self.field_type, ::std::string::String::new())
436    }
437
438    // repeated .google.api.MonitoredResource.LabelsEntry labels = 2;
439
440
441    pub fn get_labels(&self) -> &::std::collections::HashMap<::std::string::String, ::std::string::String> {
442        &self.labels
443    }
444    pub fn clear_labels(&mut self) {
445        self.labels.clear();
446    }
447
448    // Param is passed by value, moved
449    pub fn set_labels(&mut self, v: ::std::collections::HashMap<::std::string::String, ::std::string::String>) {
450        self.labels = v;
451    }
452
453    // Mutable pointer to the field.
454    pub fn mut_labels(&mut self) -> &mut ::std::collections::HashMap<::std::string::String, ::std::string::String> {
455        &mut self.labels
456    }
457
458    // Take field
459    pub fn take_labels(&mut self) -> ::std::collections::HashMap<::std::string::String, ::std::string::String> {
460        ::std::mem::replace(&mut self.labels, ::std::collections::HashMap::new())
461    }
462}
463
464impl ::protobuf::Message for MonitoredResource {
465    fn is_initialized(&self) -> bool {
466        true
467    }
468
469    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
470        while !is.eof()? {
471            let (field_number, wire_type) = is.read_tag_unpack()?;
472            match field_number {
473                1 => {
474                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.field_type)?;
475                },
476                2 => {
477                    ::protobuf::rt::read_map_into::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeString>(wire_type, is, &mut self.labels)?;
478                },
479                _ => {
480                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
481                },
482            };
483        }
484        ::std::result::Result::Ok(())
485    }
486
487    // Compute sizes of nested messages
488    #[allow(unused_variables)]
489    fn compute_size(&self) -> u32 {
490        let mut my_size = 0;
491        if !self.field_type.is_empty() {
492            my_size += ::protobuf::rt::string_size(1, &self.field_type);
493        }
494        my_size += ::protobuf::rt::compute_map_size::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeString>(2, &self.labels);
495        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
496        self.cached_size.set(my_size);
497        my_size
498    }
499
500    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
501        if !self.field_type.is_empty() {
502            os.write_string(1, &self.field_type)?;
503        }
504        ::protobuf::rt::write_map_with_cached_sizes::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeString>(2, &self.labels, os)?;
505        os.write_unknown_fields(self.get_unknown_fields())?;
506        ::std::result::Result::Ok(())
507    }
508
509    fn get_cached_size(&self) -> u32 {
510        self.cached_size.get()
511    }
512
513    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
514        &self.unknown_fields
515    }
516
517    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
518        &mut self.unknown_fields
519    }
520
521    fn as_any(&self) -> &dyn (::std::any::Any) {
522        self as &dyn (::std::any::Any)
523    }
524    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
525        self as &mut dyn (::std::any::Any)
526    }
527    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
528        self
529    }
530
531    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
532        Self::descriptor_static()
533    }
534
535    fn new() -> MonitoredResource {
536        MonitoredResource::new()
537    }
538
539    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
540        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
541        descriptor.get(|| {
542            let mut fields = ::std::vec::Vec::new();
543            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
544                "type",
545                |m: &MonitoredResource| { &m.field_type },
546                |m: &mut MonitoredResource| { &mut m.field_type },
547            ));
548            fields.push(::protobuf::reflect::accessor::make_map_accessor::<_, ::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeString>(
549                "labels",
550                |m: &MonitoredResource| { &m.labels },
551                |m: &mut MonitoredResource| { &mut m.labels },
552            ));
553            ::protobuf::reflect::MessageDescriptor::new_pb_name::<MonitoredResource>(
554                "MonitoredResource",
555                fields,
556                file_descriptor_proto()
557            )
558        })
559    }
560
561    fn default_instance() -> &'static MonitoredResource {
562        static instance: ::protobuf::rt::LazyV2<MonitoredResource> = ::protobuf::rt::LazyV2::INIT;
563        instance.get(MonitoredResource::new)
564    }
565}
566
567impl ::protobuf::Clear for MonitoredResource {
568    fn clear(&mut self) {
569        self.field_type.clear();
570        self.labels.clear();
571        self.unknown_fields.clear();
572    }
573}
574
575impl ::std::fmt::Debug for MonitoredResource {
576    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
577        ::protobuf::text_format::fmt(self, f)
578    }
579}
580
581impl ::protobuf::reflect::ProtobufValue for MonitoredResource {
582    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
583        ::protobuf::reflect::ReflectValueRef::Message(self)
584    }
585}
586
587#[derive(PartialEq,Clone,Default)]
588pub struct MonitoredResourceMetadata {
589    // message fields
590    pub system_labels: ::protobuf::SingularPtrField<::protobuf::well_known_types::Struct>,
591    pub user_labels: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
592    // special fields
593    pub unknown_fields: ::protobuf::UnknownFields,
594    pub cached_size: ::protobuf::CachedSize,
595}
596
597impl<'a> ::std::default::Default for &'a MonitoredResourceMetadata {
598    fn default() -> &'a MonitoredResourceMetadata {
599        <MonitoredResourceMetadata as ::protobuf::Message>::default_instance()
600    }
601}
602
603impl MonitoredResourceMetadata {
604    pub fn new() -> MonitoredResourceMetadata {
605        ::std::default::Default::default()
606    }
607
608    // .google.protobuf.Struct system_labels = 1;
609
610
611    pub fn get_system_labels(&self) -> &::protobuf::well_known_types::Struct {
612        self.system_labels.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Struct as ::protobuf::Message>::default_instance())
613    }
614    pub fn clear_system_labels(&mut self) {
615        self.system_labels.clear();
616    }
617
618    pub fn has_system_labels(&self) -> bool {
619        self.system_labels.is_some()
620    }
621
622    // Param is passed by value, moved
623    pub fn set_system_labels(&mut self, v: ::protobuf::well_known_types::Struct) {
624        self.system_labels = ::protobuf::SingularPtrField::some(v);
625    }
626
627    // Mutable pointer to the field.
628    // If field is not initialized, it is initialized with default value first.
629    pub fn mut_system_labels(&mut self) -> &mut ::protobuf::well_known_types::Struct {
630        if self.system_labels.is_none() {
631            self.system_labels.set_default();
632        }
633        self.system_labels.as_mut().unwrap()
634    }
635
636    // Take field
637    pub fn take_system_labels(&mut self) -> ::protobuf::well_known_types::Struct {
638        self.system_labels.take().unwrap_or_else(|| ::protobuf::well_known_types::Struct::new())
639    }
640
641    // repeated .google.api.MonitoredResourceMetadata.UserLabelsEntry user_labels = 2;
642
643
644    pub fn get_user_labels(&self) -> &::std::collections::HashMap<::std::string::String, ::std::string::String> {
645        &self.user_labels
646    }
647    pub fn clear_user_labels(&mut self) {
648        self.user_labels.clear();
649    }
650
651    // Param is passed by value, moved
652    pub fn set_user_labels(&mut self, v: ::std::collections::HashMap<::std::string::String, ::std::string::String>) {
653        self.user_labels = v;
654    }
655
656    // Mutable pointer to the field.
657    pub fn mut_user_labels(&mut self) -> &mut ::std::collections::HashMap<::std::string::String, ::std::string::String> {
658        &mut self.user_labels
659    }
660
661    // Take field
662    pub fn take_user_labels(&mut self) -> ::std::collections::HashMap<::std::string::String, ::std::string::String> {
663        ::std::mem::replace(&mut self.user_labels, ::std::collections::HashMap::new())
664    }
665}
666
667impl ::protobuf::Message for MonitoredResourceMetadata {
668    fn is_initialized(&self) -> bool {
669        for v in &self.system_labels {
670            if !v.is_initialized() {
671                return false;
672            }
673        };
674        true
675    }
676
677    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
678        while !is.eof()? {
679            let (field_number, wire_type) = is.read_tag_unpack()?;
680            match field_number {
681                1 => {
682                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.system_labels)?;
683                },
684                2 => {
685                    ::protobuf::rt::read_map_into::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeString>(wire_type, is, &mut self.user_labels)?;
686                },
687                _ => {
688                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
689                },
690            };
691        }
692        ::std::result::Result::Ok(())
693    }
694
695    // Compute sizes of nested messages
696    #[allow(unused_variables)]
697    fn compute_size(&self) -> u32 {
698        let mut my_size = 0;
699        if let Some(ref v) = self.system_labels.as_ref() {
700            let len = v.compute_size();
701            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
702        }
703        my_size += ::protobuf::rt::compute_map_size::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeString>(2, &self.user_labels);
704        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
705        self.cached_size.set(my_size);
706        my_size
707    }
708
709    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
710        if let Some(ref v) = self.system_labels.as_ref() {
711            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
712            os.write_raw_varint32(v.get_cached_size())?;
713            v.write_to_with_cached_sizes(os)?;
714        }
715        ::protobuf::rt::write_map_with_cached_sizes::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeString>(2, &self.user_labels, os)?;
716        os.write_unknown_fields(self.get_unknown_fields())?;
717        ::std::result::Result::Ok(())
718    }
719
720    fn get_cached_size(&self) -> u32 {
721        self.cached_size.get()
722    }
723
724    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
725        &self.unknown_fields
726    }
727
728    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
729        &mut self.unknown_fields
730    }
731
732    fn as_any(&self) -> &dyn (::std::any::Any) {
733        self as &dyn (::std::any::Any)
734    }
735    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
736        self as &mut dyn (::std::any::Any)
737    }
738    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
739        self
740    }
741
742    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
743        Self::descriptor_static()
744    }
745
746    fn new() -> MonitoredResourceMetadata {
747        MonitoredResourceMetadata::new()
748    }
749
750    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
751        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
752        descriptor.get(|| {
753            let mut fields = ::std::vec::Vec::new();
754            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Struct>>(
755                "system_labels",
756                |m: &MonitoredResourceMetadata| { &m.system_labels },
757                |m: &mut MonitoredResourceMetadata| { &mut m.system_labels },
758            ));
759            fields.push(::protobuf::reflect::accessor::make_map_accessor::<_, ::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeString>(
760                "user_labels",
761                |m: &MonitoredResourceMetadata| { &m.user_labels },
762                |m: &mut MonitoredResourceMetadata| { &mut m.user_labels },
763            ));
764            ::protobuf::reflect::MessageDescriptor::new_pb_name::<MonitoredResourceMetadata>(
765                "MonitoredResourceMetadata",
766                fields,
767                file_descriptor_proto()
768            )
769        })
770    }
771
772    fn default_instance() -> &'static MonitoredResourceMetadata {
773        static instance: ::protobuf::rt::LazyV2<MonitoredResourceMetadata> = ::protobuf::rt::LazyV2::INIT;
774        instance.get(MonitoredResourceMetadata::new)
775    }
776}
777
778impl ::protobuf::Clear for MonitoredResourceMetadata {
779    fn clear(&mut self) {
780        self.system_labels.clear();
781        self.user_labels.clear();
782        self.unknown_fields.clear();
783    }
784}
785
786impl ::std::fmt::Debug for MonitoredResourceMetadata {
787    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
788        ::protobuf::text_format::fmt(self, f)
789    }
790}
791
792impl ::protobuf::reflect::ProtobufValue for MonitoredResourceMetadata {
793    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
794        ::protobuf::reflect::ReflectValueRef::Message(self)
795    }
796}
797
798static file_descriptor_proto_data: &'static [u8] = b"\
799    \n#google/api/monitored_resource.proto\x12\ngoogle.api\x1a\x16google/api\
800    /label.proto\x1a\x1dgoogle/api/launch_stage.proto\x1a\x1cgoogle/protobuf\
801    /struct.proto\"\xfb\x01\n\x1bMonitoredResourceDescriptor\x12\x12\n\x04na\
802    me\x18\x05\x20\x01(\tR\x04name\x12\x12\n\x04type\x18\x01\x20\x01(\tR\x04\
803    type\x12!\n\x0cdisplay_name\x18\x02\x20\x01(\tR\x0bdisplayName\x12\x20\n\
804    \x0bdescription\x18\x03\x20\x01(\tR\x0bdescription\x123\n\x06labels\x18\
805    \x04\x20\x03(\x0b2\x1b.google.api.LabelDescriptorR\x06labels\x12:\n\x0cl\
806    aunch_stage\x18\x07\x20\x01(\x0e2\x17.google.api.LaunchStageR\x0blaunchS\
807    tage\"\xa5\x01\n\x11MonitoredResource\x12\x12\n\x04type\x18\x01\x20\x01(\
808    \tR\x04type\x12A\n\x06labels\x18\x02\x20\x03(\x0b2).google.api.Monitored\
809    Resource.LabelsEntryR\x06labels\x1a9\n\x0bLabelsEntry\x12\x10\n\x03key\
810    \x18\x01\x20\x01(\tR\x03key\x12\x14\n\x05value\x18\x02\x20\x01(\tR\x05va\
811    lue:\x028\x01\"\xf0\x01\n\x19MonitoredResourceMetadata\x12<\n\rsystem_la\
812    bels\x18\x01\x20\x01(\x0b2\x17.google.protobuf.StructR\x0csystemLabels\
813    \x12V\n\x0buser_labels\x18\x02\x20\x03(\x0b25.google.api.MonitoredResour\
814    ceMetadata.UserLabelsEntryR\nuserLabels\x1a=\n\x0fUserLabelsEntry\x12\
815    \x10\n\x03key\x18\x01\x20\x01(\tR\x03key\x12\x14\n\x05value\x18\x02\x20\
816    \x01(\tR\x05value:\x028\x01By\n\x0ecom.google.apiB\x16MonitoredResourceP\
817    rotoP\x01ZCgoogle.golang.org/genproto/googleapis/api/monitoredres;monito\
818    redres\xf8\x01\x01\xa2\x02\x04GAPIJ\xac,\n\x07\x12\x05\x0e\0\x81\x01\x01\
819    \n\xbc\x04\n\x01\x0c\x12\x03\x0e\0\x122\xb1\x04\x20Copyright\x202023\x20\
820    Google\x20LLC\n\n\x20Licensed\x20under\x20the\x20Apache\x20License,\x20V\
821    ersion\x202.0\x20(the\x20\"License\");\n\x20you\x20may\x20not\x20use\x20\
822    this\x20file\x20except\x20in\x20compliance\x20with\x20the\x20License.\n\
823    \x20You\x20may\x20obtain\x20a\x20copy\x20of\x20the\x20License\x20at\n\n\
824    \x20\x20\x20\x20\x20http://www.apache.org/licenses/LICENSE-2.0\n\n\x20Un\
825    less\x20required\x20by\x20applicable\x20law\x20or\x20agreed\x20to\x20in\
826    \x20writing,\x20software\n\x20distributed\x20under\x20the\x20License\x20\
827    is\x20distributed\x20on\x20an\x20\"AS\x20IS\"\x20BASIS,\n\x20WITHOUT\x20\
828    WARRANTIES\x20OR\x20CONDITIONS\x20OF\x20ANY\x20KIND,\x20either\x20expres\
829    s\x20or\x20implied.\n\x20See\x20the\x20License\x20for\x20the\x20specific\
830    \x20language\x20governing\x20permissions\x20and\n\x20limitations\x20unde\
831    r\x20the\x20License.\n\n\x08\n\x01\x02\x12\x03\x10\0\x13\n\t\n\x02\x03\0\
832    \x12\x03\x12\0\x20\n\t\n\x02\x03\x01\x12\x03\x13\0'\n\t\n\x02\x03\x02\
833    \x12\x03\x14\0&\n\x08\n\x01\x08\x12\x03\x16\0\x1f\n\t\n\x02\x08\x1f\x12\
834    \x03\x16\0\x1f\n\x08\n\x01\x08\x12\x03\x17\0Z\n\t\n\x02\x08\x0b\x12\x03\
835    \x17\0Z\n\x08\n\x01\x08\x12\x03\x18\0\"\n\t\n\x02\x08\n\x12\x03\x18\0\"\
836    \n\x08\n\x01\x08\x12\x03\x19\07\n\t\n\x02\x08\x08\x12\x03\x19\07\n\x08\n\
837    \x01\x08\x12\x03\x1a\0'\n\t\n\x02\x08\x01\x12\x03\x1a\0'\n\x08\n\x01\x08\
838    \x12\x03\x1b\0\"\n\t\n\x02\x08$\x12\x03\x1b\0\"\n\xa4\x04\n\x02\x04\0\
839    \x12\x04(\0J\x01\x1a\x97\x04\x20An\x20object\x20that\x20describes\x20the\
840    \x20schema\x20of\x20a\n\x20[MonitoredResource][google.api.MonitoredResou\
841    rce]\x20object\x20using\x20a\x20type\x20name\n\x20and\x20a\x20set\x20of\
842    \x20labels.\x20\x20For\x20example,\x20the\x20monitored\x20resource\x20de\
843    scriptor\x20for\n\x20Google\x20Compute\x20Engine\x20VM\x20instances\x20h\
844    as\x20a\x20type\x20of\n\x20`\"gce_instance\"`\x20and\x20specifies\x20the\
845    \x20use\x20of\x20the\x20labels\x20`\"instance_id\"`\x20and\n\x20`\"zone\
846    \"`\x20to\x20identify\x20particular\x20VM\x20instances.\n\n\x20Different\
847    \x20APIs\x20can\x20support\x20different\x20monitored\x20resource\x20type\
848    s.\x20APIs\x20generally\n\x20provide\x20a\x20`list`\x20method\x20that\
849    \x20returns\x20the\x20monitored\x20resource\x20descriptors\x20used\n\x20\
850    by\x20the\x20API.\n\n\n\n\n\x03\x04\0\x01\x12\x03(\x08#\n\xa1\x03\n\x04\
851    \x04\0\x02\0\x12\x03/\x02\x12\x1a\x93\x03\x20Optional.\x20The\x20resourc\
852    e\x20name\x20of\x20the\x20monitored\x20resource\x20descriptor:\n\x20`\"p\
853    rojects/{project_id}/monitoredResourceDescriptors/{type}\"`\x20where\n\
854    \x20{type}\x20is\x20the\x20value\x20of\x20the\x20`type`\x20field\x20in\
855    \x20this\x20object\x20and\n\x20{project_id}\x20is\x20a\x20project\x20ID\
856    \x20that\x20provides\x20API-specific\x20context\x20for\n\x20accessing\
857    \x20the\x20type.\x20\x20APIs\x20that\x20do\x20not\x20use\x20project\x20i\
858    nformation\x20can\x20use\x20the\n\x20resource\x20name\x20format\x20`\"mo\
859    nitoredResourceDescriptors/{type}\"`.\n\n\x0c\n\x05\x04\0\x02\0\x05\x12\
860    \x03/\x02\x08\n\x0c\n\x05\x04\0\x02\0\x01\x12\x03/\t\r\n\x0c\n\x05\x04\0\
861    \x02\0\x03\x12\x03/\x10\x11\n\xd5\x02\n\x04\x04\0\x02\x01\x12\x037\x02\
862    \x12\x1a\xc7\x02\x20Required.\x20The\x20monitored\x20resource\x20type.\
863    \x20For\x20example,\x20the\x20type\n\x20`\"cloudsql_database\"`\x20repre\
864    sents\x20databases\x20in\x20Google\x20Cloud\x20SQL.\n\x20\x20For\x20a\
865    \x20list\x20of\x20types,\x20see\x20[Monitoring\x20resource\n\x20\x20type\
866    s](https://cloud.google.com/monitoring/api/resources)\n\x20and\x20[Loggi\
867    ng\x20resource\n\x20types](https://cloud.google.com/logging/docs/api/v2/\
868    resource-list).\n\n\x0c\n\x05\x04\0\x02\x01\x05\x12\x037\x02\x08\n\x0c\n\
869    \x05\x04\0\x02\x01\x01\x12\x037\t\r\n\x0c\n\x05\x04\0\x02\x01\x03\x12\
870    \x037\x10\x11\n\xf5\x01\n\x04\x04\0\x02\x02\x12\x03=\x02\x1a\x1a\xe7\x01\
871    \x20Optional.\x20A\x20concise\x20name\x20for\x20the\x20monitored\x20reso\
872    urce\x20type\x20that\x20might\x20be\n\x20displayed\x20in\x20user\x20inte\
873    rfaces.\x20It\x20should\x20be\x20a\x20Title\x20Cased\x20Noun\x20Phrase,\
874    \n\x20without\x20any\x20article\x20or\x20other\x20determiners.\x20For\
875    \x20example,\n\x20`\"Google\x20Cloud\x20SQL\x20Database\"`.\n\n\x0c\n\
876    \x05\x04\0\x02\x02\x05\x12\x03=\x02\x08\n\x0c\n\x05\x04\0\x02\x02\x01\
877    \x12\x03=\t\x15\n\x0c\n\x05\x04\0\x02\x02\x03\x12\x03=\x18\x19\nt\n\x04\
878    \x04\0\x02\x03\x12\x03A\x02\x19\x1ag\x20Optional.\x20A\x20detailed\x20de\
879    scription\x20of\x20the\x20monitored\x20resource\x20type\x20that\x20might\
880    \n\x20be\x20used\x20in\x20documentation.\n\n\x0c\n\x05\x04\0\x02\x03\x05\
881    \x12\x03A\x02\x08\n\x0c\n\x05\x04\0\x02\x03\x01\x12\x03A\t\x14\n\x0c\n\
882    \x05\x04\0\x02\x03\x03\x12\x03A\x17\x18\n\xe1\x01\n\x04\x04\0\x02\x04\
883    \x12\x03F\x02&\x1a\xd3\x01\x20Required.\x20A\x20set\x20of\x20labels\x20u\
884    sed\x20to\x20describe\x20instances\x20of\x20this\x20monitored\n\x20resou\
885    rce\x20type.\x20For\x20example,\x20an\x20individual\x20Google\x20Cloud\
886    \x20SQL\x20database\x20is\n\x20identified\x20by\x20values\x20for\x20the\
887    \x20labels\x20`\"database_id\"`\x20and\x20`\"zone\"`.\n\n\x0c\n\x05\x04\
888    \0\x02\x04\x04\x12\x03F\x02\n\n\x0c\n\x05\x04\0\x02\x04\x06\x12\x03F\x0b\
889    \x1a\n\x0c\n\x05\x04\0\x02\x04\x01\x12\x03F\x1b!\n\x0c\n\x05\x04\0\x02\
890    \x04\x03\x12\x03F$%\nO\n\x04\x04\0\x02\x05\x12\x03I\x02\x1f\x1aB\x20Opti\
891    onal.\x20The\x20launch\x20stage\x20of\x20the\x20monitored\x20resource\
892    \x20definition.\n\n\x0c\n\x05\x04\0\x02\x05\x06\x12\x03I\x02\r\n\x0c\n\
893    \x05\x04\0\x02\x05\x01\x12\x03I\x0e\x1a\n\x0c\n\x05\x04\0\x02\x05\x03\
894    \x12\x03I\x1d\x1e\n\x8c\x07\n\x02\x04\x01\x12\x04\\\0j\x01\x1a\xff\x06\
895    \x20An\x20object\x20representing\x20a\x20resource\x20that\x20can\x20be\
896    \x20used\x20for\x20monitoring,\x20logging,\n\x20billing,\x20or\x20other\
897    \x20purposes.\x20Examples\x20include\x20virtual\x20machine\x20instances,\
898    \n\x20databases,\x20and\x20storage\x20devices\x20such\x20as\x20disks.\
899    \x20The\x20`type`\x20field\x20identifies\x20a\n\x20[MonitoredResourceDes\
900    criptor][google.api.MonitoredResourceDescriptor]\x20object\n\x20that\x20\
901    describes\x20the\x20resource's\x20schema.\x20Information\x20in\x20the\
902    \x20`labels`\x20field\n\x20identifies\x20the\x20actual\x20resource\x20an\
903    d\x20its\x20attributes\x20according\x20to\x20the\x20schema.\n\x20For\x20\
904    example,\x20a\x20particular\x20Compute\x20Engine\x20VM\x20instance\x20co\
905    uld\x20be\x20represented\x20by\n\x20the\x20following\x20object,\x20becau\
906    se\x20the\n\x20[MonitoredResourceDescriptor][google.api.MonitoredResourc\
907    eDescriptor]\x20for\n\x20`\"gce_instance\"`\x20has\x20labels\n\x20`\"pro\
908    ject_id\"`,\x20`\"instance_id\"`\x20and\x20`\"zone\"`:\n\n\x20\x20\x20\
909    \x20\x20{\x20\"type\":\x20\"gce_instance\",\n\x20\x20\x20\x20\x20\x20\
910    \x20\"labels\":\x20{\x20\"project_id\":\x20\"my-project\",\n\x20\x20\x20\
911    \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\"instan\
912    ce_id\":\x20\"12345678901234\",\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\
913    \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\"zone\":\x20\"us-central1-a\"\
914    \x20}}\n\n\n\n\x03\x04\x01\x01\x12\x03\\\x08\x19\n\x8a\x03\n\x04\x04\x01\
915    \x02\0\x12\x03d\x02\x12\x1a\xfc\x02\x20Required.\x20The\x20monitored\x20\
916    resource\x20type.\x20This\x20field\x20must\x20match\n\x20the\x20`type`\
917    \x20field\x20of\x20a\n\x20[MonitoredResourceDescriptor][google.api.Monit\
918    oredResourceDescriptor]\n\x20object.\x20For\x20example,\x20the\x20type\
919    \x20of\x20a\x20Compute\x20Engine\x20VM\x20instance\x20is\n\x20`gce_insta\
920    nce`.\x20Some\x20descriptors\x20include\x20the\x20service\x20name\x20in\
921    \x20the\x20type;\x20for\n\x20example,\x20the\x20type\x20of\x20a\x20Datas\
922    tream\x20stream\x20is\n\x20`datastream.googleapis.com/Stream`.\n\n\x0c\n\
923    \x05\x04\x01\x02\0\x05\x12\x03d\x02\x08\n\x0c\n\x05\x04\x01\x02\0\x01\
924    \x12\x03d\t\r\n\x0c\n\x05\x04\x01\x02\0\x03\x12\x03d\x10\x11\n\xd7\x01\n\
925    \x04\x04\x01\x02\x01\x12\x03i\x02!\x1a\xc9\x01\x20Required.\x20Values\
926    \x20for\x20all\x20of\x20the\x20labels\x20listed\x20in\x20the\x20associat\
927    ed\x20monitored\n\x20resource\x20descriptor.\x20For\x20example,\x20Compu\
928    te\x20Engine\x20VM\x20instances\x20use\x20the\n\x20labels\x20`\"project_\
929    id\"`,\x20`\"instance_id\"`,\x20and\x20`\"zone\"`.\n\n\x0c\n\x05\x04\x01\
930    \x02\x01\x06\x12\x03i\x02\x15\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03i\
931    \x16\x1c\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03i\x1f\x20\n\xba\x03\n\
932    \x02\x04\x02\x12\x05r\0\x81\x01\x01\x1a\xac\x03\x20Auxiliary\x20metadata\
933    \x20for\x20a\x20[MonitoredResource][google.api.MonitoredResource]\n\x20o\
934    bject.\x20[MonitoredResource][google.api.MonitoredResource]\x20objects\
935    \x20contain\x20the\n\x20minimum\x20set\x20of\x20information\x20to\x20uni\
936    quely\x20identify\x20a\x20monitored\x20resource\n\x20instance.\x20There\
937    \x20is\x20some\x20other\x20useful\x20auxiliary\x20metadata.\x20Monitorin\
938    g\x20and\n\x20Logging\x20use\x20an\x20ingestion\x20pipeline\x20to\x20ext\
939    ract\x20metadata\x20for\x20cloud\x20resources\x20of\n\x20all\x20types,\
940    \x20and\x20store\x20the\x20metadata\x20in\x20this\x20message.\n\n\n\n\
941    \x03\x04\x02\x01\x12\x03r\x08!\n\xa1\x03\n\x04\x04\x02\x02\0\x12\x03}\
942    \x02+\x1a\x93\x03\x20Output\x20only.\x20Values\x20for\x20predefined\x20s\
943    ystem\x20metadata\x20labels.\n\x20System\x20labels\x20are\x20a\x20kind\
944    \x20of\x20metadata\x20extracted\x20by\x20Google,\x20including\n\x20\"mac\
945    hine_image\",\x20\"vpc\",\x20\"subnet_id\",\n\x20\"security_group\",\x20\
946    \"name\",\x20etc.\n\x20System\x20label\x20values\x20can\x20be\x20only\
947    \x20strings,\x20Boolean\x20values,\x20or\x20a\x20list\x20of\n\x20strings\
948    .\x20For\x20example:\n\n\x20\x20\x20\x20\x20{\x20\"name\":\x20\"my-test-\
949    instance\",\n\x20\x20\x20\x20\x20\x20\x20\"security_group\":\x20[\"a\",\
950    \x20\"b\",\x20\"c\"],\n\x20\x20\x20\x20\x20\x20\x20\"spot_instance\":\
951    \x20false\x20}\n\n\x0c\n\x05\x04\x02\x02\0\x06\x12\x03}\x02\x18\n\x0c\n\
952    \x05\x04\x02\x02\0\x01\x12\x03}\x19&\n\x0c\n\x05\x04\x02\x02\0\x03\x12\
953    \x03})*\nC\n\x04\x04\x02\x02\x01\x12\x04\x80\x01\x02&\x1a5\x20Output\x20\
954    only.\x20A\x20map\x20of\x20user-defined\x20metadata\x20labels.\n\n\r\n\
955    \x05\x04\x02\x02\x01\x06\x12\x04\x80\x01\x02\x15\n\r\n\x05\x04\x02\x02\
956    \x01\x01\x12\x04\x80\x01\x16!\n\r\n\x05\x04\x02\x02\x01\x03\x12\x04\x80\
957    \x01$%b\x06proto3\
958";
959
960static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;
961
962fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
963    ::protobuf::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
964}
965
966pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
967    file_descriptor_proto_lazy.get(|| {
968        parse_descriptor_proto()
969    })
970}