google_cloud_rust_raw/api/servicemanagement/v1/
resources.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/servicemanagement/v1/resources.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 ManagedService {
28    // message fields
29    pub service_name: ::std::string::String,
30    pub producer_project_id: ::std::string::String,
31    // special fields
32    pub unknown_fields: ::protobuf::UnknownFields,
33    pub cached_size: ::protobuf::CachedSize,
34}
35
36impl<'a> ::std::default::Default for &'a ManagedService {
37    fn default() -> &'a ManagedService {
38        <ManagedService as ::protobuf::Message>::default_instance()
39    }
40}
41
42impl ManagedService {
43    pub fn new() -> ManagedService {
44        ::std::default::Default::default()
45    }
46
47    // string service_name = 2;
48
49
50    pub fn get_service_name(&self) -> &str {
51        &self.service_name
52    }
53    pub fn clear_service_name(&mut self) {
54        self.service_name.clear();
55    }
56
57    // Param is passed by value, moved
58    pub fn set_service_name(&mut self, v: ::std::string::String) {
59        self.service_name = v;
60    }
61
62    // Mutable pointer to the field.
63    // If field is not initialized, it is initialized with default value first.
64    pub fn mut_service_name(&mut self) -> &mut ::std::string::String {
65        &mut self.service_name
66    }
67
68    // Take field
69    pub fn take_service_name(&mut self) -> ::std::string::String {
70        ::std::mem::replace(&mut self.service_name, ::std::string::String::new())
71    }
72
73    // string producer_project_id = 3;
74
75
76    pub fn get_producer_project_id(&self) -> &str {
77        &self.producer_project_id
78    }
79    pub fn clear_producer_project_id(&mut self) {
80        self.producer_project_id.clear();
81    }
82
83    // Param is passed by value, moved
84    pub fn set_producer_project_id(&mut self, v: ::std::string::String) {
85        self.producer_project_id = v;
86    }
87
88    // Mutable pointer to the field.
89    // If field is not initialized, it is initialized with default value first.
90    pub fn mut_producer_project_id(&mut self) -> &mut ::std::string::String {
91        &mut self.producer_project_id
92    }
93
94    // Take field
95    pub fn take_producer_project_id(&mut self) -> ::std::string::String {
96        ::std::mem::replace(&mut self.producer_project_id, ::std::string::String::new())
97    }
98}
99
100impl ::protobuf::Message for ManagedService {
101    fn is_initialized(&self) -> bool {
102        true
103    }
104
105    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
106        while !is.eof()? {
107            let (field_number, wire_type) = is.read_tag_unpack()?;
108            match field_number {
109                2 => {
110                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.service_name)?;
111                },
112                3 => {
113                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.producer_project_id)?;
114                },
115                _ => {
116                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
117                },
118            };
119        }
120        ::std::result::Result::Ok(())
121    }
122
123    // Compute sizes of nested messages
124    #[allow(unused_variables)]
125    fn compute_size(&self) -> u32 {
126        let mut my_size = 0;
127        if !self.service_name.is_empty() {
128            my_size += ::protobuf::rt::string_size(2, &self.service_name);
129        }
130        if !self.producer_project_id.is_empty() {
131            my_size += ::protobuf::rt::string_size(3, &self.producer_project_id);
132        }
133        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
134        self.cached_size.set(my_size);
135        my_size
136    }
137
138    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
139        if !self.service_name.is_empty() {
140            os.write_string(2, &self.service_name)?;
141        }
142        if !self.producer_project_id.is_empty() {
143            os.write_string(3, &self.producer_project_id)?;
144        }
145        os.write_unknown_fields(self.get_unknown_fields())?;
146        ::std::result::Result::Ok(())
147    }
148
149    fn get_cached_size(&self) -> u32 {
150        self.cached_size.get()
151    }
152
153    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
154        &self.unknown_fields
155    }
156
157    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
158        &mut self.unknown_fields
159    }
160
161    fn as_any(&self) -> &dyn (::std::any::Any) {
162        self as &dyn (::std::any::Any)
163    }
164    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
165        self as &mut dyn (::std::any::Any)
166    }
167    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
168        self
169    }
170
171    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
172        Self::descriptor_static()
173    }
174
175    fn new() -> ManagedService {
176        ManagedService::new()
177    }
178
179    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
180        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
181        descriptor.get(|| {
182            let mut fields = ::std::vec::Vec::new();
183            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
184                "service_name",
185                |m: &ManagedService| { &m.service_name },
186                |m: &mut ManagedService| { &mut m.service_name },
187            ));
188            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
189                "producer_project_id",
190                |m: &ManagedService| { &m.producer_project_id },
191                |m: &mut ManagedService| { &mut m.producer_project_id },
192            ));
193            ::protobuf::reflect::MessageDescriptor::new_pb_name::<ManagedService>(
194                "ManagedService",
195                fields,
196                file_descriptor_proto()
197            )
198        })
199    }
200
201    fn default_instance() -> &'static ManagedService {
202        static instance: ::protobuf::rt::LazyV2<ManagedService> = ::protobuf::rt::LazyV2::INIT;
203        instance.get(ManagedService::new)
204    }
205}
206
207impl ::protobuf::Clear for ManagedService {
208    fn clear(&mut self) {
209        self.service_name.clear();
210        self.producer_project_id.clear();
211        self.unknown_fields.clear();
212    }
213}
214
215impl ::std::fmt::Debug for ManagedService {
216    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
217        ::protobuf::text_format::fmt(self, f)
218    }
219}
220
221impl ::protobuf::reflect::ProtobufValue for ManagedService {
222    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
223        ::protobuf::reflect::ReflectValueRef::Message(self)
224    }
225}
226
227#[derive(PartialEq,Clone,Default)]
228pub struct OperationMetadata {
229    // message fields
230    pub resource_names: ::protobuf::RepeatedField<::std::string::String>,
231    pub steps: ::protobuf::RepeatedField<OperationMetadata_Step>,
232    pub progress_percentage: i32,
233    pub start_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
234    // special fields
235    pub unknown_fields: ::protobuf::UnknownFields,
236    pub cached_size: ::protobuf::CachedSize,
237}
238
239impl<'a> ::std::default::Default for &'a OperationMetadata {
240    fn default() -> &'a OperationMetadata {
241        <OperationMetadata as ::protobuf::Message>::default_instance()
242    }
243}
244
245impl OperationMetadata {
246    pub fn new() -> OperationMetadata {
247        ::std::default::Default::default()
248    }
249
250    // repeated string resource_names = 1;
251
252
253    pub fn get_resource_names(&self) -> &[::std::string::String] {
254        &self.resource_names
255    }
256    pub fn clear_resource_names(&mut self) {
257        self.resource_names.clear();
258    }
259
260    // Param is passed by value, moved
261    pub fn set_resource_names(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
262        self.resource_names = v;
263    }
264
265    // Mutable pointer to the field.
266    pub fn mut_resource_names(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
267        &mut self.resource_names
268    }
269
270    // Take field
271    pub fn take_resource_names(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
272        ::std::mem::replace(&mut self.resource_names, ::protobuf::RepeatedField::new())
273    }
274
275    // repeated .google.api.servicemanagement.v1.OperationMetadata.Step steps = 2;
276
277
278    pub fn get_steps(&self) -> &[OperationMetadata_Step] {
279        &self.steps
280    }
281    pub fn clear_steps(&mut self) {
282        self.steps.clear();
283    }
284
285    // Param is passed by value, moved
286    pub fn set_steps(&mut self, v: ::protobuf::RepeatedField<OperationMetadata_Step>) {
287        self.steps = v;
288    }
289
290    // Mutable pointer to the field.
291    pub fn mut_steps(&mut self) -> &mut ::protobuf::RepeatedField<OperationMetadata_Step> {
292        &mut self.steps
293    }
294
295    // Take field
296    pub fn take_steps(&mut self) -> ::protobuf::RepeatedField<OperationMetadata_Step> {
297        ::std::mem::replace(&mut self.steps, ::protobuf::RepeatedField::new())
298    }
299
300    // int32 progress_percentage = 3;
301
302
303    pub fn get_progress_percentage(&self) -> i32 {
304        self.progress_percentage
305    }
306    pub fn clear_progress_percentage(&mut self) {
307        self.progress_percentage = 0;
308    }
309
310    // Param is passed by value, moved
311    pub fn set_progress_percentage(&mut self, v: i32) {
312        self.progress_percentage = v;
313    }
314
315    // .google.protobuf.Timestamp start_time = 4;
316
317
318    pub fn get_start_time(&self) -> &::protobuf::well_known_types::Timestamp {
319        self.start_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
320    }
321    pub fn clear_start_time(&mut self) {
322        self.start_time.clear();
323    }
324
325    pub fn has_start_time(&self) -> bool {
326        self.start_time.is_some()
327    }
328
329    // Param is passed by value, moved
330    pub fn set_start_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
331        self.start_time = ::protobuf::SingularPtrField::some(v);
332    }
333
334    // Mutable pointer to the field.
335    // If field is not initialized, it is initialized with default value first.
336    pub fn mut_start_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
337        if self.start_time.is_none() {
338            self.start_time.set_default();
339        }
340        self.start_time.as_mut().unwrap()
341    }
342
343    // Take field
344    pub fn take_start_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
345        self.start_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
346    }
347}
348
349impl ::protobuf::Message for OperationMetadata {
350    fn is_initialized(&self) -> bool {
351        for v in &self.steps {
352            if !v.is_initialized() {
353                return false;
354            }
355        };
356        for v in &self.start_time {
357            if !v.is_initialized() {
358                return false;
359            }
360        };
361        true
362    }
363
364    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
365        while !is.eof()? {
366            let (field_number, wire_type) = is.read_tag_unpack()?;
367            match field_number {
368                1 => {
369                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.resource_names)?;
370                },
371                2 => {
372                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.steps)?;
373                },
374                3 => {
375                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
376                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
377                    }
378                    let tmp = is.read_int32()?;
379                    self.progress_percentage = tmp;
380                },
381                4 => {
382                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.start_time)?;
383                },
384                _ => {
385                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
386                },
387            };
388        }
389        ::std::result::Result::Ok(())
390    }
391
392    // Compute sizes of nested messages
393    #[allow(unused_variables)]
394    fn compute_size(&self) -> u32 {
395        let mut my_size = 0;
396        for value in &self.resource_names {
397            my_size += ::protobuf::rt::string_size(1, &value);
398        };
399        for value in &self.steps {
400            let len = value.compute_size();
401            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
402        };
403        if self.progress_percentage != 0 {
404            my_size += ::protobuf::rt::value_size(3, self.progress_percentage, ::protobuf::wire_format::WireTypeVarint);
405        }
406        if let Some(ref v) = self.start_time.as_ref() {
407            let len = v.compute_size();
408            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
409        }
410        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
411        self.cached_size.set(my_size);
412        my_size
413    }
414
415    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
416        for v in &self.resource_names {
417            os.write_string(1, &v)?;
418        };
419        for v in &self.steps {
420            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
421            os.write_raw_varint32(v.get_cached_size())?;
422            v.write_to_with_cached_sizes(os)?;
423        };
424        if self.progress_percentage != 0 {
425            os.write_int32(3, self.progress_percentage)?;
426        }
427        if let Some(ref v) = self.start_time.as_ref() {
428            os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
429            os.write_raw_varint32(v.get_cached_size())?;
430            v.write_to_with_cached_sizes(os)?;
431        }
432        os.write_unknown_fields(self.get_unknown_fields())?;
433        ::std::result::Result::Ok(())
434    }
435
436    fn get_cached_size(&self) -> u32 {
437        self.cached_size.get()
438    }
439
440    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
441        &self.unknown_fields
442    }
443
444    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
445        &mut self.unknown_fields
446    }
447
448    fn as_any(&self) -> &dyn (::std::any::Any) {
449        self as &dyn (::std::any::Any)
450    }
451    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
452        self as &mut dyn (::std::any::Any)
453    }
454    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
455        self
456    }
457
458    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
459        Self::descriptor_static()
460    }
461
462    fn new() -> OperationMetadata {
463        OperationMetadata::new()
464    }
465
466    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
467        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
468        descriptor.get(|| {
469            let mut fields = ::std::vec::Vec::new();
470            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
471                "resource_names",
472                |m: &OperationMetadata| { &m.resource_names },
473                |m: &mut OperationMetadata| { &mut m.resource_names },
474            ));
475            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<OperationMetadata_Step>>(
476                "steps",
477                |m: &OperationMetadata| { &m.steps },
478                |m: &mut OperationMetadata| { &mut m.steps },
479            ));
480            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
481                "progress_percentage",
482                |m: &OperationMetadata| { &m.progress_percentage },
483                |m: &mut OperationMetadata| { &mut m.progress_percentage },
484            ));
485            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
486                "start_time",
487                |m: &OperationMetadata| { &m.start_time },
488                |m: &mut OperationMetadata| { &mut m.start_time },
489            ));
490            ::protobuf::reflect::MessageDescriptor::new_pb_name::<OperationMetadata>(
491                "OperationMetadata",
492                fields,
493                file_descriptor_proto()
494            )
495        })
496    }
497
498    fn default_instance() -> &'static OperationMetadata {
499        static instance: ::protobuf::rt::LazyV2<OperationMetadata> = ::protobuf::rt::LazyV2::INIT;
500        instance.get(OperationMetadata::new)
501    }
502}
503
504impl ::protobuf::Clear for OperationMetadata {
505    fn clear(&mut self) {
506        self.resource_names.clear();
507        self.steps.clear();
508        self.progress_percentage = 0;
509        self.start_time.clear();
510        self.unknown_fields.clear();
511    }
512}
513
514impl ::std::fmt::Debug for OperationMetadata {
515    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
516        ::protobuf::text_format::fmt(self, f)
517    }
518}
519
520impl ::protobuf::reflect::ProtobufValue for OperationMetadata {
521    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
522        ::protobuf::reflect::ReflectValueRef::Message(self)
523    }
524}
525
526#[derive(PartialEq,Clone,Default)]
527pub struct OperationMetadata_Step {
528    // message fields
529    pub description: ::std::string::String,
530    pub status: OperationMetadata_Status,
531    // special fields
532    pub unknown_fields: ::protobuf::UnknownFields,
533    pub cached_size: ::protobuf::CachedSize,
534}
535
536impl<'a> ::std::default::Default for &'a OperationMetadata_Step {
537    fn default() -> &'a OperationMetadata_Step {
538        <OperationMetadata_Step as ::protobuf::Message>::default_instance()
539    }
540}
541
542impl OperationMetadata_Step {
543    pub fn new() -> OperationMetadata_Step {
544        ::std::default::Default::default()
545    }
546
547    // string description = 2;
548
549
550    pub fn get_description(&self) -> &str {
551        &self.description
552    }
553    pub fn clear_description(&mut self) {
554        self.description.clear();
555    }
556
557    // Param is passed by value, moved
558    pub fn set_description(&mut self, v: ::std::string::String) {
559        self.description = v;
560    }
561
562    // Mutable pointer to the field.
563    // If field is not initialized, it is initialized with default value first.
564    pub fn mut_description(&mut self) -> &mut ::std::string::String {
565        &mut self.description
566    }
567
568    // Take field
569    pub fn take_description(&mut self) -> ::std::string::String {
570        ::std::mem::replace(&mut self.description, ::std::string::String::new())
571    }
572
573    // .google.api.servicemanagement.v1.OperationMetadata.Status status = 4;
574
575
576    pub fn get_status(&self) -> OperationMetadata_Status {
577        self.status
578    }
579    pub fn clear_status(&mut self) {
580        self.status = OperationMetadata_Status::STATUS_UNSPECIFIED;
581    }
582
583    // Param is passed by value, moved
584    pub fn set_status(&mut self, v: OperationMetadata_Status) {
585        self.status = v;
586    }
587}
588
589impl ::protobuf::Message for OperationMetadata_Step {
590    fn is_initialized(&self) -> bool {
591        true
592    }
593
594    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
595        while !is.eof()? {
596            let (field_number, wire_type) = is.read_tag_unpack()?;
597            match field_number {
598                2 => {
599                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.description)?;
600                },
601                4 => {
602                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.status, 4, &mut self.unknown_fields)?
603                },
604                _ => {
605                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
606                },
607            };
608        }
609        ::std::result::Result::Ok(())
610    }
611
612    // Compute sizes of nested messages
613    #[allow(unused_variables)]
614    fn compute_size(&self) -> u32 {
615        let mut my_size = 0;
616        if !self.description.is_empty() {
617            my_size += ::protobuf::rt::string_size(2, &self.description);
618        }
619        if self.status != OperationMetadata_Status::STATUS_UNSPECIFIED {
620            my_size += ::protobuf::rt::enum_size(4, self.status);
621        }
622        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
623        self.cached_size.set(my_size);
624        my_size
625    }
626
627    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
628        if !self.description.is_empty() {
629            os.write_string(2, &self.description)?;
630        }
631        if self.status != OperationMetadata_Status::STATUS_UNSPECIFIED {
632            os.write_enum(4, ::protobuf::ProtobufEnum::value(&self.status))?;
633        }
634        os.write_unknown_fields(self.get_unknown_fields())?;
635        ::std::result::Result::Ok(())
636    }
637
638    fn get_cached_size(&self) -> u32 {
639        self.cached_size.get()
640    }
641
642    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
643        &self.unknown_fields
644    }
645
646    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
647        &mut self.unknown_fields
648    }
649
650    fn as_any(&self) -> &dyn (::std::any::Any) {
651        self as &dyn (::std::any::Any)
652    }
653    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
654        self as &mut dyn (::std::any::Any)
655    }
656    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
657        self
658    }
659
660    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
661        Self::descriptor_static()
662    }
663
664    fn new() -> OperationMetadata_Step {
665        OperationMetadata_Step::new()
666    }
667
668    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
669        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
670        descriptor.get(|| {
671            let mut fields = ::std::vec::Vec::new();
672            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
673                "description",
674                |m: &OperationMetadata_Step| { &m.description },
675                |m: &mut OperationMetadata_Step| { &mut m.description },
676            ));
677            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<OperationMetadata_Status>>(
678                "status",
679                |m: &OperationMetadata_Step| { &m.status },
680                |m: &mut OperationMetadata_Step| { &mut m.status },
681            ));
682            ::protobuf::reflect::MessageDescriptor::new_pb_name::<OperationMetadata_Step>(
683                "OperationMetadata.Step",
684                fields,
685                file_descriptor_proto()
686            )
687        })
688    }
689
690    fn default_instance() -> &'static OperationMetadata_Step {
691        static instance: ::protobuf::rt::LazyV2<OperationMetadata_Step> = ::protobuf::rt::LazyV2::INIT;
692        instance.get(OperationMetadata_Step::new)
693    }
694}
695
696impl ::protobuf::Clear for OperationMetadata_Step {
697    fn clear(&mut self) {
698        self.description.clear();
699        self.status = OperationMetadata_Status::STATUS_UNSPECIFIED;
700        self.unknown_fields.clear();
701    }
702}
703
704impl ::std::fmt::Debug for OperationMetadata_Step {
705    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
706        ::protobuf::text_format::fmt(self, f)
707    }
708}
709
710impl ::protobuf::reflect::ProtobufValue for OperationMetadata_Step {
711    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
712        ::protobuf::reflect::ReflectValueRef::Message(self)
713    }
714}
715
716#[derive(Clone,PartialEq,Eq,Debug,Hash)]
717pub enum OperationMetadata_Status {
718    STATUS_UNSPECIFIED = 0,
719    DONE = 1,
720    NOT_STARTED = 2,
721    IN_PROGRESS = 3,
722    FAILED = 4,
723    CANCELLED = 5,
724}
725
726impl ::protobuf::ProtobufEnum for OperationMetadata_Status {
727    fn value(&self) -> i32 {
728        *self as i32
729    }
730
731    fn from_i32(value: i32) -> ::std::option::Option<OperationMetadata_Status> {
732        match value {
733            0 => ::std::option::Option::Some(OperationMetadata_Status::STATUS_UNSPECIFIED),
734            1 => ::std::option::Option::Some(OperationMetadata_Status::DONE),
735            2 => ::std::option::Option::Some(OperationMetadata_Status::NOT_STARTED),
736            3 => ::std::option::Option::Some(OperationMetadata_Status::IN_PROGRESS),
737            4 => ::std::option::Option::Some(OperationMetadata_Status::FAILED),
738            5 => ::std::option::Option::Some(OperationMetadata_Status::CANCELLED),
739            _ => ::std::option::Option::None
740        }
741    }
742
743    fn values() -> &'static [Self] {
744        static values: &'static [OperationMetadata_Status] = &[
745            OperationMetadata_Status::STATUS_UNSPECIFIED,
746            OperationMetadata_Status::DONE,
747            OperationMetadata_Status::NOT_STARTED,
748            OperationMetadata_Status::IN_PROGRESS,
749            OperationMetadata_Status::FAILED,
750            OperationMetadata_Status::CANCELLED,
751        ];
752        values
753    }
754
755    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
756        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
757        descriptor.get(|| {
758            ::protobuf::reflect::EnumDescriptor::new_pb_name::<OperationMetadata_Status>("OperationMetadata.Status", file_descriptor_proto())
759        })
760    }
761}
762
763impl ::std::marker::Copy for OperationMetadata_Status {
764}
765
766impl ::std::default::Default for OperationMetadata_Status {
767    fn default() -> Self {
768        OperationMetadata_Status::STATUS_UNSPECIFIED
769    }
770}
771
772impl ::protobuf::reflect::ProtobufValue for OperationMetadata_Status {
773    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
774        ::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
775    }
776}
777
778#[derive(PartialEq,Clone,Default)]
779pub struct Diagnostic {
780    // message fields
781    pub location: ::std::string::String,
782    pub kind: Diagnostic_Kind,
783    pub message: ::std::string::String,
784    // special fields
785    pub unknown_fields: ::protobuf::UnknownFields,
786    pub cached_size: ::protobuf::CachedSize,
787}
788
789impl<'a> ::std::default::Default for &'a Diagnostic {
790    fn default() -> &'a Diagnostic {
791        <Diagnostic as ::protobuf::Message>::default_instance()
792    }
793}
794
795impl Diagnostic {
796    pub fn new() -> Diagnostic {
797        ::std::default::Default::default()
798    }
799
800    // string location = 1;
801
802
803    pub fn get_location(&self) -> &str {
804        &self.location
805    }
806    pub fn clear_location(&mut self) {
807        self.location.clear();
808    }
809
810    // Param is passed by value, moved
811    pub fn set_location(&mut self, v: ::std::string::String) {
812        self.location = v;
813    }
814
815    // Mutable pointer to the field.
816    // If field is not initialized, it is initialized with default value first.
817    pub fn mut_location(&mut self) -> &mut ::std::string::String {
818        &mut self.location
819    }
820
821    // Take field
822    pub fn take_location(&mut self) -> ::std::string::String {
823        ::std::mem::replace(&mut self.location, ::std::string::String::new())
824    }
825
826    // .google.api.servicemanagement.v1.Diagnostic.Kind kind = 2;
827
828
829    pub fn get_kind(&self) -> Diagnostic_Kind {
830        self.kind
831    }
832    pub fn clear_kind(&mut self) {
833        self.kind = Diagnostic_Kind::WARNING;
834    }
835
836    // Param is passed by value, moved
837    pub fn set_kind(&mut self, v: Diagnostic_Kind) {
838        self.kind = v;
839    }
840
841    // string message = 3;
842
843
844    pub fn get_message(&self) -> &str {
845        &self.message
846    }
847    pub fn clear_message(&mut self) {
848        self.message.clear();
849    }
850
851    // Param is passed by value, moved
852    pub fn set_message(&mut self, v: ::std::string::String) {
853        self.message = v;
854    }
855
856    // Mutable pointer to the field.
857    // If field is not initialized, it is initialized with default value first.
858    pub fn mut_message(&mut self) -> &mut ::std::string::String {
859        &mut self.message
860    }
861
862    // Take field
863    pub fn take_message(&mut self) -> ::std::string::String {
864        ::std::mem::replace(&mut self.message, ::std::string::String::new())
865    }
866}
867
868impl ::protobuf::Message for Diagnostic {
869    fn is_initialized(&self) -> bool {
870        true
871    }
872
873    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
874        while !is.eof()? {
875            let (field_number, wire_type) = is.read_tag_unpack()?;
876            match field_number {
877                1 => {
878                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.location)?;
879                },
880                2 => {
881                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.kind, 2, &mut self.unknown_fields)?
882                },
883                3 => {
884                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.message)?;
885                },
886                _ => {
887                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
888                },
889            };
890        }
891        ::std::result::Result::Ok(())
892    }
893
894    // Compute sizes of nested messages
895    #[allow(unused_variables)]
896    fn compute_size(&self) -> u32 {
897        let mut my_size = 0;
898        if !self.location.is_empty() {
899            my_size += ::protobuf::rt::string_size(1, &self.location);
900        }
901        if self.kind != Diagnostic_Kind::WARNING {
902            my_size += ::protobuf::rt::enum_size(2, self.kind);
903        }
904        if !self.message.is_empty() {
905            my_size += ::protobuf::rt::string_size(3, &self.message);
906        }
907        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
908        self.cached_size.set(my_size);
909        my_size
910    }
911
912    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
913        if !self.location.is_empty() {
914            os.write_string(1, &self.location)?;
915        }
916        if self.kind != Diagnostic_Kind::WARNING {
917            os.write_enum(2, ::protobuf::ProtobufEnum::value(&self.kind))?;
918        }
919        if !self.message.is_empty() {
920            os.write_string(3, &self.message)?;
921        }
922        os.write_unknown_fields(self.get_unknown_fields())?;
923        ::std::result::Result::Ok(())
924    }
925
926    fn get_cached_size(&self) -> u32 {
927        self.cached_size.get()
928    }
929
930    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
931        &self.unknown_fields
932    }
933
934    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
935        &mut self.unknown_fields
936    }
937
938    fn as_any(&self) -> &dyn (::std::any::Any) {
939        self as &dyn (::std::any::Any)
940    }
941    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
942        self as &mut dyn (::std::any::Any)
943    }
944    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
945        self
946    }
947
948    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
949        Self::descriptor_static()
950    }
951
952    fn new() -> Diagnostic {
953        Diagnostic::new()
954    }
955
956    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
957        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
958        descriptor.get(|| {
959            let mut fields = ::std::vec::Vec::new();
960            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
961                "location",
962                |m: &Diagnostic| { &m.location },
963                |m: &mut Diagnostic| { &mut m.location },
964            ));
965            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<Diagnostic_Kind>>(
966                "kind",
967                |m: &Diagnostic| { &m.kind },
968                |m: &mut Diagnostic| { &mut m.kind },
969            ));
970            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
971                "message",
972                |m: &Diagnostic| { &m.message },
973                |m: &mut Diagnostic| { &mut m.message },
974            ));
975            ::protobuf::reflect::MessageDescriptor::new_pb_name::<Diagnostic>(
976                "Diagnostic",
977                fields,
978                file_descriptor_proto()
979            )
980        })
981    }
982
983    fn default_instance() -> &'static Diagnostic {
984        static instance: ::protobuf::rt::LazyV2<Diagnostic> = ::protobuf::rt::LazyV2::INIT;
985        instance.get(Diagnostic::new)
986    }
987}
988
989impl ::protobuf::Clear for Diagnostic {
990    fn clear(&mut self) {
991        self.location.clear();
992        self.kind = Diagnostic_Kind::WARNING;
993        self.message.clear();
994        self.unknown_fields.clear();
995    }
996}
997
998impl ::std::fmt::Debug for Diagnostic {
999    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1000        ::protobuf::text_format::fmt(self, f)
1001    }
1002}
1003
1004impl ::protobuf::reflect::ProtobufValue for Diagnostic {
1005    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1006        ::protobuf::reflect::ReflectValueRef::Message(self)
1007    }
1008}
1009
1010#[derive(Clone,PartialEq,Eq,Debug,Hash)]
1011pub enum Diagnostic_Kind {
1012    WARNING = 0,
1013    ERROR = 1,
1014}
1015
1016impl ::protobuf::ProtobufEnum for Diagnostic_Kind {
1017    fn value(&self) -> i32 {
1018        *self as i32
1019    }
1020
1021    fn from_i32(value: i32) -> ::std::option::Option<Diagnostic_Kind> {
1022        match value {
1023            0 => ::std::option::Option::Some(Diagnostic_Kind::WARNING),
1024            1 => ::std::option::Option::Some(Diagnostic_Kind::ERROR),
1025            _ => ::std::option::Option::None
1026        }
1027    }
1028
1029    fn values() -> &'static [Self] {
1030        static values: &'static [Diagnostic_Kind] = &[
1031            Diagnostic_Kind::WARNING,
1032            Diagnostic_Kind::ERROR,
1033        ];
1034        values
1035    }
1036
1037    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
1038        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
1039        descriptor.get(|| {
1040            ::protobuf::reflect::EnumDescriptor::new_pb_name::<Diagnostic_Kind>("Diagnostic.Kind", file_descriptor_proto())
1041        })
1042    }
1043}
1044
1045impl ::std::marker::Copy for Diagnostic_Kind {
1046}
1047
1048impl ::std::default::Default for Diagnostic_Kind {
1049    fn default() -> Self {
1050        Diagnostic_Kind::WARNING
1051    }
1052}
1053
1054impl ::protobuf::reflect::ProtobufValue for Diagnostic_Kind {
1055    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1056        ::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
1057    }
1058}
1059
1060#[derive(PartialEq,Clone,Default)]
1061pub struct ConfigSource {
1062    // message fields
1063    pub id: ::std::string::String,
1064    pub files: ::protobuf::RepeatedField<ConfigFile>,
1065    // special fields
1066    pub unknown_fields: ::protobuf::UnknownFields,
1067    pub cached_size: ::protobuf::CachedSize,
1068}
1069
1070impl<'a> ::std::default::Default for &'a ConfigSource {
1071    fn default() -> &'a ConfigSource {
1072        <ConfigSource as ::protobuf::Message>::default_instance()
1073    }
1074}
1075
1076impl ConfigSource {
1077    pub fn new() -> ConfigSource {
1078        ::std::default::Default::default()
1079    }
1080
1081    // string id = 5;
1082
1083
1084    pub fn get_id(&self) -> &str {
1085        &self.id
1086    }
1087    pub fn clear_id(&mut self) {
1088        self.id.clear();
1089    }
1090
1091    // Param is passed by value, moved
1092    pub fn set_id(&mut self, v: ::std::string::String) {
1093        self.id = v;
1094    }
1095
1096    // Mutable pointer to the field.
1097    // If field is not initialized, it is initialized with default value first.
1098    pub fn mut_id(&mut self) -> &mut ::std::string::String {
1099        &mut self.id
1100    }
1101
1102    // Take field
1103    pub fn take_id(&mut self) -> ::std::string::String {
1104        ::std::mem::replace(&mut self.id, ::std::string::String::new())
1105    }
1106
1107    // repeated .google.api.servicemanagement.v1.ConfigFile files = 2;
1108
1109
1110    pub fn get_files(&self) -> &[ConfigFile] {
1111        &self.files
1112    }
1113    pub fn clear_files(&mut self) {
1114        self.files.clear();
1115    }
1116
1117    // Param is passed by value, moved
1118    pub fn set_files(&mut self, v: ::protobuf::RepeatedField<ConfigFile>) {
1119        self.files = v;
1120    }
1121
1122    // Mutable pointer to the field.
1123    pub fn mut_files(&mut self) -> &mut ::protobuf::RepeatedField<ConfigFile> {
1124        &mut self.files
1125    }
1126
1127    // Take field
1128    pub fn take_files(&mut self) -> ::protobuf::RepeatedField<ConfigFile> {
1129        ::std::mem::replace(&mut self.files, ::protobuf::RepeatedField::new())
1130    }
1131}
1132
1133impl ::protobuf::Message for ConfigSource {
1134    fn is_initialized(&self) -> bool {
1135        for v in &self.files {
1136            if !v.is_initialized() {
1137                return false;
1138            }
1139        };
1140        true
1141    }
1142
1143    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1144        while !is.eof()? {
1145            let (field_number, wire_type) = is.read_tag_unpack()?;
1146            match field_number {
1147                5 => {
1148                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.id)?;
1149                },
1150                2 => {
1151                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.files)?;
1152                },
1153                _ => {
1154                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1155                },
1156            };
1157        }
1158        ::std::result::Result::Ok(())
1159    }
1160
1161    // Compute sizes of nested messages
1162    #[allow(unused_variables)]
1163    fn compute_size(&self) -> u32 {
1164        let mut my_size = 0;
1165        if !self.id.is_empty() {
1166            my_size += ::protobuf::rt::string_size(5, &self.id);
1167        }
1168        for value in &self.files {
1169            let len = value.compute_size();
1170            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1171        };
1172        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1173        self.cached_size.set(my_size);
1174        my_size
1175    }
1176
1177    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1178        if !self.id.is_empty() {
1179            os.write_string(5, &self.id)?;
1180        }
1181        for v in &self.files {
1182            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1183            os.write_raw_varint32(v.get_cached_size())?;
1184            v.write_to_with_cached_sizes(os)?;
1185        };
1186        os.write_unknown_fields(self.get_unknown_fields())?;
1187        ::std::result::Result::Ok(())
1188    }
1189
1190    fn get_cached_size(&self) -> u32 {
1191        self.cached_size.get()
1192    }
1193
1194    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1195        &self.unknown_fields
1196    }
1197
1198    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1199        &mut self.unknown_fields
1200    }
1201
1202    fn as_any(&self) -> &dyn (::std::any::Any) {
1203        self as &dyn (::std::any::Any)
1204    }
1205    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1206        self as &mut dyn (::std::any::Any)
1207    }
1208    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1209        self
1210    }
1211
1212    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1213        Self::descriptor_static()
1214    }
1215
1216    fn new() -> ConfigSource {
1217        ConfigSource::new()
1218    }
1219
1220    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1221        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1222        descriptor.get(|| {
1223            let mut fields = ::std::vec::Vec::new();
1224            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1225                "id",
1226                |m: &ConfigSource| { &m.id },
1227                |m: &mut ConfigSource| { &mut m.id },
1228            ));
1229            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<ConfigFile>>(
1230                "files",
1231                |m: &ConfigSource| { &m.files },
1232                |m: &mut ConfigSource| { &mut m.files },
1233            ));
1234            ::protobuf::reflect::MessageDescriptor::new_pb_name::<ConfigSource>(
1235                "ConfigSource",
1236                fields,
1237                file_descriptor_proto()
1238            )
1239        })
1240    }
1241
1242    fn default_instance() -> &'static ConfigSource {
1243        static instance: ::protobuf::rt::LazyV2<ConfigSource> = ::protobuf::rt::LazyV2::INIT;
1244        instance.get(ConfigSource::new)
1245    }
1246}
1247
1248impl ::protobuf::Clear for ConfigSource {
1249    fn clear(&mut self) {
1250        self.id.clear();
1251        self.files.clear();
1252        self.unknown_fields.clear();
1253    }
1254}
1255
1256impl ::std::fmt::Debug for ConfigSource {
1257    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1258        ::protobuf::text_format::fmt(self, f)
1259    }
1260}
1261
1262impl ::protobuf::reflect::ProtobufValue for ConfigSource {
1263    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1264        ::protobuf::reflect::ReflectValueRef::Message(self)
1265    }
1266}
1267
1268#[derive(PartialEq,Clone,Default)]
1269pub struct ConfigFile {
1270    // message fields
1271    pub file_path: ::std::string::String,
1272    pub file_contents: ::std::vec::Vec<u8>,
1273    pub file_type: ConfigFile_FileType,
1274    // special fields
1275    pub unknown_fields: ::protobuf::UnknownFields,
1276    pub cached_size: ::protobuf::CachedSize,
1277}
1278
1279impl<'a> ::std::default::Default for &'a ConfigFile {
1280    fn default() -> &'a ConfigFile {
1281        <ConfigFile as ::protobuf::Message>::default_instance()
1282    }
1283}
1284
1285impl ConfigFile {
1286    pub fn new() -> ConfigFile {
1287        ::std::default::Default::default()
1288    }
1289
1290    // string file_path = 1;
1291
1292
1293    pub fn get_file_path(&self) -> &str {
1294        &self.file_path
1295    }
1296    pub fn clear_file_path(&mut self) {
1297        self.file_path.clear();
1298    }
1299
1300    // Param is passed by value, moved
1301    pub fn set_file_path(&mut self, v: ::std::string::String) {
1302        self.file_path = v;
1303    }
1304
1305    // Mutable pointer to the field.
1306    // If field is not initialized, it is initialized with default value first.
1307    pub fn mut_file_path(&mut self) -> &mut ::std::string::String {
1308        &mut self.file_path
1309    }
1310
1311    // Take field
1312    pub fn take_file_path(&mut self) -> ::std::string::String {
1313        ::std::mem::replace(&mut self.file_path, ::std::string::String::new())
1314    }
1315
1316    // bytes file_contents = 3;
1317
1318
1319    pub fn get_file_contents(&self) -> &[u8] {
1320        &self.file_contents
1321    }
1322    pub fn clear_file_contents(&mut self) {
1323        self.file_contents.clear();
1324    }
1325
1326    // Param is passed by value, moved
1327    pub fn set_file_contents(&mut self, v: ::std::vec::Vec<u8>) {
1328        self.file_contents = v;
1329    }
1330
1331    // Mutable pointer to the field.
1332    // If field is not initialized, it is initialized with default value first.
1333    pub fn mut_file_contents(&mut self) -> &mut ::std::vec::Vec<u8> {
1334        &mut self.file_contents
1335    }
1336
1337    // Take field
1338    pub fn take_file_contents(&mut self) -> ::std::vec::Vec<u8> {
1339        ::std::mem::replace(&mut self.file_contents, ::std::vec::Vec::new())
1340    }
1341
1342    // .google.api.servicemanagement.v1.ConfigFile.FileType file_type = 4;
1343
1344
1345    pub fn get_file_type(&self) -> ConfigFile_FileType {
1346        self.file_type
1347    }
1348    pub fn clear_file_type(&mut self) {
1349        self.file_type = ConfigFile_FileType::FILE_TYPE_UNSPECIFIED;
1350    }
1351
1352    // Param is passed by value, moved
1353    pub fn set_file_type(&mut self, v: ConfigFile_FileType) {
1354        self.file_type = v;
1355    }
1356}
1357
1358impl ::protobuf::Message for ConfigFile {
1359    fn is_initialized(&self) -> bool {
1360        true
1361    }
1362
1363    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1364        while !is.eof()? {
1365            let (field_number, wire_type) = is.read_tag_unpack()?;
1366            match field_number {
1367                1 => {
1368                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.file_path)?;
1369                },
1370                3 => {
1371                    ::protobuf::rt::read_singular_proto3_bytes_into(wire_type, is, &mut self.file_contents)?;
1372                },
1373                4 => {
1374                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.file_type, 4, &mut self.unknown_fields)?
1375                },
1376                _ => {
1377                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1378                },
1379            };
1380        }
1381        ::std::result::Result::Ok(())
1382    }
1383
1384    // Compute sizes of nested messages
1385    #[allow(unused_variables)]
1386    fn compute_size(&self) -> u32 {
1387        let mut my_size = 0;
1388        if !self.file_path.is_empty() {
1389            my_size += ::protobuf::rt::string_size(1, &self.file_path);
1390        }
1391        if !self.file_contents.is_empty() {
1392            my_size += ::protobuf::rt::bytes_size(3, &self.file_contents);
1393        }
1394        if self.file_type != ConfigFile_FileType::FILE_TYPE_UNSPECIFIED {
1395            my_size += ::protobuf::rt::enum_size(4, self.file_type);
1396        }
1397        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1398        self.cached_size.set(my_size);
1399        my_size
1400    }
1401
1402    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1403        if !self.file_path.is_empty() {
1404            os.write_string(1, &self.file_path)?;
1405        }
1406        if !self.file_contents.is_empty() {
1407            os.write_bytes(3, &self.file_contents)?;
1408        }
1409        if self.file_type != ConfigFile_FileType::FILE_TYPE_UNSPECIFIED {
1410            os.write_enum(4, ::protobuf::ProtobufEnum::value(&self.file_type))?;
1411        }
1412        os.write_unknown_fields(self.get_unknown_fields())?;
1413        ::std::result::Result::Ok(())
1414    }
1415
1416    fn get_cached_size(&self) -> u32 {
1417        self.cached_size.get()
1418    }
1419
1420    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1421        &self.unknown_fields
1422    }
1423
1424    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1425        &mut self.unknown_fields
1426    }
1427
1428    fn as_any(&self) -> &dyn (::std::any::Any) {
1429        self as &dyn (::std::any::Any)
1430    }
1431    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1432        self as &mut dyn (::std::any::Any)
1433    }
1434    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1435        self
1436    }
1437
1438    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1439        Self::descriptor_static()
1440    }
1441
1442    fn new() -> ConfigFile {
1443        ConfigFile::new()
1444    }
1445
1446    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1447        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1448        descriptor.get(|| {
1449            let mut fields = ::std::vec::Vec::new();
1450            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1451                "file_path",
1452                |m: &ConfigFile| { &m.file_path },
1453                |m: &mut ConfigFile| { &mut m.file_path },
1454            ));
1455            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBytes>(
1456                "file_contents",
1457                |m: &ConfigFile| { &m.file_contents },
1458                |m: &mut ConfigFile| { &mut m.file_contents },
1459            ));
1460            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<ConfigFile_FileType>>(
1461                "file_type",
1462                |m: &ConfigFile| { &m.file_type },
1463                |m: &mut ConfigFile| { &mut m.file_type },
1464            ));
1465            ::protobuf::reflect::MessageDescriptor::new_pb_name::<ConfigFile>(
1466                "ConfigFile",
1467                fields,
1468                file_descriptor_proto()
1469            )
1470        })
1471    }
1472
1473    fn default_instance() -> &'static ConfigFile {
1474        static instance: ::protobuf::rt::LazyV2<ConfigFile> = ::protobuf::rt::LazyV2::INIT;
1475        instance.get(ConfigFile::new)
1476    }
1477}
1478
1479impl ::protobuf::Clear for ConfigFile {
1480    fn clear(&mut self) {
1481        self.file_path.clear();
1482        self.file_contents.clear();
1483        self.file_type = ConfigFile_FileType::FILE_TYPE_UNSPECIFIED;
1484        self.unknown_fields.clear();
1485    }
1486}
1487
1488impl ::std::fmt::Debug for ConfigFile {
1489    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1490        ::protobuf::text_format::fmt(self, f)
1491    }
1492}
1493
1494impl ::protobuf::reflect::ProtobufValue for ConfigFile {
1495    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1496        ::protobuf::reflect::ReflectValueRef::Message(self)
1497    }
1498}
1499
1500#[derive(Clone,PartialEq,Eq,Debug,Hash)]
1501pub enum ConfigFile_FileType {
1502    FILE_TYPE_UNSPECIFIED = 0,
1503    SERVICE_CONFIG_YAML = 1,
1504    OPEN_API_JSON = 2,
1505    OPEN_API_YAML = 3,
1506    FILE_DESCRIPTOR_SET_PROTO = 4,
1507    PROTO_FILE = 6,
1508}
1509
1510impl ::protobuf::ProtobufEnum for ConfigFile_FileType {
1511    fn value(&self) -> i32 {
1512        *self as i32
1513    }
1514
1515    fn from_i32(value: i32) -> ::std::option::Option<ConfigFile_FileType> {
1516        match value {
1517            0 => ::std::option::Option::Some(ConfigFile_FileType::FILE_TYPE_UNSPECIFIED),
1518            1 => ::std::option::Option::Some(ConfigFile_FileType::SERVICE_CONFIG_YAML),
1519            2 => ::std::option::Option::Some(ConfigFile_FileType::OPEN_API_JSON),
1520            3 => ::std::option::Option::Some(ConfigFile_FileType::OPEN_API_YAML),
1521            4 => ::std::option::Option::Some(ConfigFile_FileType::FILE_DESCRIPTOR_SET_PROTO),
1522            6 => ::std::option::Option::Some(ConfigFile_FileType::PROTO_FILE),
1523            _ => ::std::option::Option::None
1524        }
1525    }
1526
1527    fn values() -> &'static [Self] {
1528        static values: &'static [ConfigFile_FileType] = &[
1529            ConfigFile_FileType::FILE_TYPE_UNSPECIFIED,
1530            ConfigFile_FileType::SERVICE_CONFIG_YAML,
1531            ConfigFile_FileType::OPEN_API_JSON,
1532            ConfigFile_FileType::OPEN_API_YAML,
1533            ConfigFile_FileType::FILE_DESCRIPTOR_SET_PROTO,
1534            ConfigFile_FileType::PROTO_FILE,
1535        ];
1536        values
1537    }
1538
1539    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
1540        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
1541        descriptor.get(|| {
1542            ::protobuf::reflect::EnumDescriptor::new_pb_name::<ConfigFile_FileType>("ConfigFile.FileType", file_descriptor_proto())
1543        })
1544    }
1545}
1546
1547impl ::std::marker::Copy for ConfigFile_FileType {
1548}
1549
1550impl ::std::default::Default for ConfigFile_FileType {
1551    fn default() -> Self {
1552        ConfigFile_FileType::FILE_TYPE_UNSPECIFIED
1553    }
1554}
1555
1556impl ::protobuf::reflect::ProtobufValue for ConfigFile_FileType {
1557    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1558        ::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
1559    }
1560}
1561
1562#[derive(PartialEq,Clone,Default)]
1563pub struct ConfigRef {
1564    // message fields
1565    pub name: ::std::string::String,
1566    // special fields
1567    pub unknown_fields: ::protobuf::UnknownFields,
1568    pub cached_size: ::protobuf::CachedSize,
1569}
1570
1571impl<'a> ::std::default::Default for &'a ConfigRef {
1572    fn default() -> &'a ConfigRef {
1573        <ConfigRef as ::protobuf::Message>::default_instance()
1574    }
1575}
1576
1577impl ConfigRef {
1578    pub fn new() -> ConfigRef {
1579        ::std::default::Default::default()
1580    }
1581
1582    // string name = 1;
1583
1584
1585    pub fn get_name(&self) -> &str {
1586        &self.name
1587    }
1588    pub fn clear_name(&mut self) {
1589        self.name.clear();
1590    }
1591
1592    // Param is passed by value, moved
1593    pub fn set_name(&mut self, v: ::std::string::String) {
1594        self.name = v;
1595    }
1596
1597    // Mutable pointer to the field.
1598    // If field is not initialized, it is initialized with default value first.
1599    pub fn mut_name(&mut self) -> &mut ::std::string::String {
1600        &mut self.name
1601    }
1602
1603    // Take field
1604    pub fn take_name(&mut self) -> ::std::string::String {
1605        ::std::mem::replace(&mut self.name, ::std::string::String::new())
1606    }
1607}
1608
1609impl ::protobuf::Message for ConfigRef {
1610    fn is_initialized(&self) -> bool {
1611        true
1612    }
1613
1614    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1615        while !is.eof()? {
1616            let (field_number, wire_type) = is.read_tag_unpack()?;
1617            match field_number {
1618                1 => {
1619                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
1620                },
1621                _ => {
1622                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1623                },
1624            };
1625        }
1626        ::std::result::Result::Ok(())
1627    }
1628
1629    // Compute sizes of nested messages
1630    #[allow(unused_variables)]
1631    fn compute_size(&self) -> u32 {
1632        let mut my_size = 0;
1633        if !self.name.is_empty() {
1634            my_size += ::protobuf::rt::string_size(1, &self.name);
1635        }
1636        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1637        self.cached_size.set(my_size);
1638        my_size
1639    }
1640
1641    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1642        if !self.name.is_empty() {
1643            os.write_string(1, &self.name)?;
1644        }
1645        os.write_unknown_fields(self.get_unknown_fields())?;
1646        ::std::result::Result::Ok(())
1647    }
1648
1649    fn get_cached_size(&self) -> u32 {
1650        self.cached_size.get()
1651    }
1652
1653    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1654        &self.unknown_fields
1655    }
1656
1657    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1658        &mut self.unknown_fields
1659    }
1660
1661    fn as_any(&self) -> &dyn (::std::any::Any) {
1662        self as &dyn (::std::any::Any)
1663    }
1664    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1665        self as &mut dyn (::std::any::Any)
1666    }
1667    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1668        self
1669    }
1670
1671    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1672        Self::descriptor_static()
1673    }
1674
1675    fn new() -> ConfigRef {
1676        ConfigRef::new()
1677    }
1678
1679    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1680        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1681        descriptor.get(|| {
1682            let mut fields = ::std::vec::Vec::new();
1683            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1684                "name",
1685                |m: &ConfigRef| { &m.name },
1686                |m: &mut ConfigRef| { &mut m.name },
1687            ));
1688            ::protobuf::reflect::MessageDescriptor::new_pb_name::<ConfigRef>(
1689                "ConfigRef",
1690                fields,
1691                file_descriptor_proto()
1692            )
1693        })
1694    }
1695
1696    fn default_instance() -> &'static ConfigRef {
1697        static instance: ::protobuf::rt::LazyV2<ConfigRef> = ::protobuf::rt::LazyV2::INIT;
1698        instance.get(ConfigRef::new)
1699    }
1700}
1701
1702impl ::protobuf::Clear for ConfigRef {
1703    fn clear(&mut self) {
1704        self.name.clear();
1705        self.unknown_fields.clear();
1706    }
1707}
1708
1709impl ::std::fmt::Debug for ConfigRef {
1710    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1711        ::protobuf::text_format::fmt(self, f)
1712    }
1713}
1714
1715impl ::protobuf::reflect::ProtobufValue for ConfigRef {
1716    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1717        ::protobuf::reflect::ReflectValueRef::Message(self)
1718    }
1719}
1720
1721#[derive(PartialEq,Clone,Default)]
1722pub struct ChangeReport {
1723    // message fields
1724    pub config_changes: ::protobuf::RepeatedField<super::config_change::ConfigChange>,
1725    // special fields
1726    pub unknown_fields: ::protobuf::UnknownFields,
1727    pub cached_size: ::protobuf::CachedSize,
1728}
1729
1730impl<'a> ::std::default::Default for &'a ChangeReport {
1731    fn default() -> &'a ChangeReport {
1732        <ChangeReport as ::protobuf::Message>::default_instance()
1733    }
1734}
1735
1736impl ChangeReport {
1737    pub fn new() -> ChangeReport {
1738        ::std::default::Default::default()
1739    }
1740
1741    // repeated .google.api.ConfigChange config_changes = 1;
1742
1743
1744    pub fn get_config_changes(&self) -> &[super::config_change::ConfigChange] {
1745        &self.config_changes
1746    }
1747    pub fn clear_config_changes(&mut self) {
1748        self.config_changes.clear();
1749    }
1750
1751    // Param is passed by value, moved
1752    pub fn set_config_changes(&mut self, v: ::protobuf::RepeatedField<super::config_change::ConfigChange>) {
1753        self.config_changes = v;
1754    }
1755
1756    // Mutable pointer to the field.
1757    pub fn mut_config_changes(&mut self) -> &mut ::protobuf::RepeatedField<super::config_change::ConfigChange> {
1758        &mut self.config_changes
1759    }
1760
1761    // Take field
1762    pub fn take_config_changes(&mut self) -> ::protobuf::RepeatedField<super::config_change::ConfigChange> {
1763        ::std::mem::replace(&mut self.config_changes, ::protobuf::RepeatedField::new())
1764    }
1765}
1766
1767impl ::protobuf::Message for ChangeReport {
1768    fn is_initialized(&self) -> bool {
1769        for v in &self.config_changes {
1770            if !v.is_initialized() {
1771                return false;
1772            }
1773        };
1774        true
1775    }
1776
1777    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1778        while !is.eof()? {
1779            let (field_number, wire_type) = is.read_tag_unpack()?;
1780            match field_number {
1781                1 => {
1782                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.config_changes)?;
1783                },
1784                _ => {
1785                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1786                },
1787            };
1788        }
1789        ::std::result::Result::Ok(())
1790    }
1791
1792    // Compute sizes of nested messages
1793    #[allow(unused_variables)]
1794    fn compute_size(&self) -> u32 {
1795        let mut my_size = 0;
1796        for value in &self.config_changes {
1797            let len = value.compute_size();
1798            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1799        };
1800        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1801        self.cached_size.set(my_size);
1802        my_size
1803    }
1804
1805    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1806        for v in &self.config_changes {
1807            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1808            os.write_raw_varint32(v.get_cached_size())?;
1809            v.write_to_with_cached_sizes(os)?;
1810        };
1811        os.write_unknown_fields(self.get_unknown_fields())?;
1812        ::std::result::Result::Ok(())
1813    }
1814
1815    fn get_cached_size(&self) -> u32 {
1816        self.cached_size.get()
1817    }
1818
1819    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1820        &self.unknown_fields
1821    }
1822
1823    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1824        &mut self.unknown_fields
1825    }
1826
1827    fn as_any(&self) -> &dyn (::std::any::Any) {
1828        self as &dyn (::std::any::Any)
1829    }
1830    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1831        self as &mut dyn (::std::any::Any)
1832    }
1833    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1834        self
1835    }
1836
1837    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1838        Self::descriptor_static()
1839    }
1840
1841    fn new() -> ChangeReport {
1842        ChangeReport::new()
1843    }
1844
1845    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1846        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1847        descriptor.get(|| {
1848            let mut fields = ::std::vec::Vec::new();
1849            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::config_change::ConfigChange>>(
1850                "config_changes",
1851                |m: &ChangeReport| { &m.config_changes },
1852                |m: &mut ChangeReport| { &mut m.config_changes },
1853            ));
1854            ::protobuf::reflect::MessageDescriptor::new_pb_name::<ChangeReport>(
1855                "ChangeReport",
1856                fields,
1857                file_descriptor_proto()
1858            )
1859        })
1860    }
1861
1862    fn default_instance() -> &'static ChangeReport {
1863        static instance: ::protobuf::rt::LazyV2<ChangeReport> = ::protobuf::rt::LazyV2::INIT;
1864        instance.get(ChangeReport::new)
1865    }
1866}
1867
1868impl ::protobuf::Clear for ChangeReport {
1869    fn clear(&mut self) {
1870        self.config_changes.clear();
1871        self.unknown_fields.clear();
1872    }
1873}
1874
1875impl ::std::fmt::Debug for ChangeReport {
1876    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1877        ::protobuf::text_format::fmt(self, f)
1878    }
1879}
1880
1881impl ::protobuf::reflect::ProtobufValue for ChangeReport {
1882    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1883        ::protobuf::reflect::ReflectValueRef::Message(self)
1884    }
1885}
1886
1887#[derive(PartialEq,Clone,Default)]
1888pub struct Rollout {
1889    // message fields
1890    pub rollout_id: ::std::string::String,
1891    pub create_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
1892    pub created_by: ::std::string::String,
1893    pub status: Rollout_RolloutStatus,
1894    pub service_name: ::std::string::String,
1895    // message oneof groups
1896    pub strategy: ::std::option::Option<Rollout_oneof_strategy>,
1897    // special fields
1898    pub unknown_fields: ::protobuf::UnknownFields,
1899    pub cached_size: ::protobuf::CachedSize,
1900}
1901
1902impl<'a> ::std::default::Default for &'a Rollout {
1903    fn default() -> &'a Rollout {
1904        <Rollout as ::protobuf::Message>::default_instance()
1905    }
1906}
1907
1908#[derive(Clone,PartialEq,Debug)]
1909pub enum Rollout_oneof_strategy {
1910    traffic_percent_strategy(Rollout_TrafficPercentStrategy),
1911    delete_service_strategy(Rollout_DeleteServiceStrategy),
1912}
1913
1914impl Rollout {
1915    pub fn new() -> Rollout {
1916        ::std::default::Default::default()
1917    }
1918
1919    // string rollout_id = 1;
1920
1921
1922    pub fn get_rollout_id(&self) -> &str {
1923        &self.rollout_id
1924    }
1925    pub fn clear_rollout_id(&mut self) {
1926        self.rollout_id.clear();
1927    }
1928
1929    // Param is passed by value, moved
1930    pub fn set_rollout_id(&mut self, v: ::std::string::String) {
1931        self.rollout_id = v;
1932    }
1933
1934    // Mutable pointer to the field.
1935    // If field is not initialized, it is initialized with default value first.
1936    pub fn mut_rollout_id(&mut self) -> &mut ::std::string::String {
1937        &mut self.rollout_id
1938    }
1939
1940    // Take field
1941    pub fn take_rollout_id(&mut self) -> ::std::string::String {
1942        ::std::mem::replace(&mut self.rollout_id, ::std::string::String::new())
1943    }
1944
1945    // .google.protobuf.Timestamp create_time = 2;
1946
1947
1948    pub fn get_create_time(&self) -> &::protobuf::well_known_types::Timestamp {
1949        self.create_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
1950    }
1951    pub fn clear_create_time(&mut self) {
1952        self.create_time.clear();
1953    }
1954
1955    pub fn has_create_time(&self) -> bool {
1956        self.create_time.is_some()
1957    }
1958
1959    // Param is passed by value, moved
1960    pub fn set_create_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
1961        self.create_time = ::protobuf::SingularPtrField::some(v);
1962    }
1963
1964    // Mutable pointer to the field.
1965    // If field is not initialized, it is initialized with default value first.
1966    pub fn mut_create_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
1967        if self.create_time.is_none() {
1968            self.create_time.set_default();
1969        }
1970        self.create_time.as_mut().unwrap()
1971    }
1972
1973    // Take field
1974    pub fn take_create_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
1975        self.create_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
1976    }
1977
1978    // string created_by = 3;
1979
1980
1981    pub fn get_created_by(&self) -> &str {
1982        &self.created_by
1983    }
1984    pub fn clear_created_by(&mut self) {
1985        self.created_by.clear();
1986    }
1987
1988    // Param is passed by value, moved
1989    pub fn set_created_by(&mut self, v: ::std::string::String) {
1990        self.created_by = v;
1991    }
1992
1993    // Mutable pointer to the field.
1994    // If field is not initialized, it is initialized with default value first.
1995    pub fn mut_created_by(&mut self) -> &mut ::std::string::String {
1996        &mut self.created_by
1997    }
1998
1999    // Take field
2000    pub fn take_created_by(&mut self) -> ::std::string::String {
2001        ::std::mem::replace(&mut self.created_by, ::std::string::String::new())
2002    }
2003
2004    // .google.api.servicemanagement.v1.Rollout.RolloutStatus status = 4;
2005
2006
2007    pub fn get_status(&self) -> Rollout_RolloutStatus {
2008        self.status
2009    }
2010    pub fn clear_status(&mut self) {
2011        self.status = Rollout_RolloutStatus::ROLLOUT_STATUS_UNSPECIFIED;
2012    }
2013
2014    // Param is passed by value, moved
2015    pub fn set_status(&mut self, v: Rollout_RolloutStatus) {
2016        self.status = v;
2017    }
2018
2019    // .google.api.servicemanagement.v1.Rollout.TrafficPercentStrategy traffic_percent_strategy = 5;
2020
2021
2022    pub fn get_traffic_percent_strategy(&self) -> &Rollout_TrafficPercentStrategy {
2023        match self.strategy {
2024            ::std::option::Option::Some(Rollout_oneof_strategy::traffic_percent_strategy(ref v)) => v,
2025            _ => <Rollout_TrafficPercentStrategy as ::protobuf::Message>::default_instance(),
2026        }
2027    }
2028    pub fn clear_traffic_percent_strategy(&mut self) {
2029        self.strategy = ::std::option::Option::None;
2030    }
2031
2032    pub fn has_traffic_percent_strategy(&self) -> bool {
2033        match self.strategy {
2034            ::std::option::Option::Some(Rollout_oneof_strategy::traffic_percent_strategy(..)) => true,
2035            _ => false,
2036        }
2037    }
2038
2039    // Param is passed by value, moved
2040    pub fn set_traffic_percent_strategy(&mut self, v: Rollout_TrafficPercentStrategy) {
2041        self.strategy = ::std::option::Option::Some(Rollout_oneof_strategy::traffic_percent_strategy(v))
2042    }
2043
2044    // Mutable pointer to the field.
2045    pub fn mut_traffic_percent_strategy(&mut self) -> &mut Rollout_TrafficPercentStrategy {
2046        if let ::std::option::Option::Some(Rollout_oneof_strategy::traffic_percent_strategy(_)) = self.strategy {
2047        } else {
2048            self.strategy = ::std::option::Option::Some(Rollout_oneof_strategy::traffic_percent_strategy(Rollout_TrafficPercentStrategy::new()));
2049        }
2050        match self.strategy {
2051            ::std::option::Option::Some(Rollout_oneof_strategy::traffic_percent_strategy(ref mut v)) => v,
2052            _ => panic!(),
2053        }
2054    }
2055
2056    // Take field
2057    pub fn take_traffic_percent_strategy(&mut self) -> Rollout_TrafficPercentStrategy {
2058        if self.has_traffic_percent_strategy() {
2059            match self.strategy.take() {
2060                ::std::option::Option::Some(Rollout_oneof_strategy::traffic_percent_strategy(v)) => v,
2061                _ => panic!(),
2062            }
2063        } else {
2064            Rollout_TrafficPercentStrategy::new()
2065        }
2066    }
2067
2068    // .google.api.servicemanagement.v1.Rollout.DeleteServiceStrategy delete_service_strategy = 200;
2069
2070
2071    pub fn get_delete_service_strategy(&self) -> &Rollout_DeleteServiceStrategy {
2072        match self.strategy {
2073            ::std::option::Option::Some(Rollout_oneof_strategy::delete_service_strategy(ref v)) => v,
2074            _ => <Rollout_DeleteServiceStrategy as ::protobuf::Message>::default_instance(),
2075        }
2076    }
2077    pub fn clear_delete_service_strategy(&mut self) {
2078        self.strategy = ::std::option::Option::None;
2079    }
2080
2081    pub fn has_delete_service_strategy(&self) -> bool {
2082        match self.strategy {
2083            ::std::option::Option::Some(Rollout_oneof_strategy::delete_service_strategy(..)) => true,
2084            _ => false,
2085        }
2086    }
2087
2088    // Param is passed by value, moved
2089    pub fn set_delete_service_strategy(&mut self, v: Rollout_DeleteServiceStrategy) {
2090        self.strategy = ::std::option::Option::Some(Rollout_oneof_strategy::delete_service_strategy(v))
2091    }
2092
2093    // Mutable pointer to the field.
2094    pub fn mut_delete_service_strategy(&mut self) -> &mut Rollout_DeleteServiceStrategy {
2095        if let ::std::option::Option::Some(Rollout_oneof_strategy::delete_service_strategy(_)) = self.strategy {
2096        } else {
2097            self.strategy = ::std::option::Option::Some(Rollout_oneof_strategy::delete_service_strategy(Rollout_DeleteServiceStrategy::new()));
2098        }
2099        match self.strategy {
2100            ::std::option::Option::Some(Rollout_oneof_strategy::delete_service_strategy(ref mut v)) => v,
2101            _ => panic!(),
2102        }
2103    }
2104
2105    // Take field
2106    pub fn take_delete_service_strategy(&mut self) -> Rollout_DeleteServiceStrategy {
2107        if self.has_delete_service_strategy() {
2108            match self.strategy.take() {
2109                ::std::option::Option::Some(Rollout_oneof_strategy::delete_service_strategy(v)) => v,
2110                _ => panic!(),
2111            }
2112        } else {
2113            Rollout_DeleteServiceStrategy::new()
2114        }
2115    }
2116
2117    // string service_name = 8;
2118
2119
2120    pub fn get_service_name(&self) -> &str {
2121        &self.service_name
2122    }
2123    pub fn clear_service_name(&mut self) {
2124        self.service_name.clear();
2125    }
2126
2127    // Param is passed by value, moved
2128    pub fn set_service_name(&mut self, v: ::std::string::String) {
2129        self.service_name = v;
2130    }
2131
2132    // Mutable pointer to the field.
2133    // If field is not initialized, it is initialized with default value first.
2134    pub fn mut_service_name(&mut self) -> &mut ::std::string::String {
2135        &mut self.service_name
2136    }
2137
2138    // Take field
2139    pub fn take_service_name(&mut self) -> ::std::string::String {
2140        ::std::mem::replace(&mut self.service_name, ::std::string::String::new())
2141    }
2142}
2143
2144impl ::protobuf::Message for Rollout {
2145    fn is_initialized(&self) -> bool {
2146        for v in &self.create_time {
2147            if !v.is_initialized() {
2148                return false;
2149            }
2150        };
2151        if let Some(Rollout_oneof_strategy::traffic_percent_strategy(ref v)) = self.strategy {
2152            if !v.is_initialized() {
2153                return false;
2154            }
2155        }
2156        if let Some(Rollout_oneof_strategy::delete_service_strategy(ref v)) = self.strategy {
2157            if !v.is_initialized() {
2158                return false;
2159            }
2160        }
2161        true
2162    }
2163
2164    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2165        while !is.eof()? {
2166            let (field_number, wire_type) = is.read_tag_unpack()?;
2167            match field_number {
2168                1 => {
2169                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.rollout_id)?;
2170                },
2171                2 => {
2172                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.create_time)?;
2173                },
2174                3 => {
2175                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.created_by)?;
2176                },
2177                4 => {
2178                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.status, 4, &mut self.unknown_fields)?
2179                },
2180                5 => {
2181                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
2182                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
2183                    }
2184                    self.strategy = ::std::option::Option::Some(Rollout_oneof_strategy::traffic_percent_strategy(is.read_message()?));
2185                },
2186                200 => {
2187                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
2188                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
2189                    }
2190                    self.strategy = ::std::option::Option::Some(Rollout_oneof_strategy::delete_service_strategy(is.read_message()?));
2191                },
2192                8 => {
2193                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.service_name)?;
2194                },
2195                _ => {
2196                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
2197                },
2198            };
2199        }
2200        ::std::result::Result::Ok(())
2201    }
2202
2203    // Compute sizes of nested messages
2204    #[allow(unused_variables)]
2205    fn compute_size(&self) -> u32 {
2206        let mut my_size = 0;
2207        if !self.rollout_id.is_empty() {
2208            my_size += ::protobuf::rt::string_size(1, &self.rollout_id);
2209        }
2210        if let Some(ref v) = self.create_time.as_ref() {
2211            let len = v.compute_size();
2212            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
2213        }
2214        if !self.created_by.is_empty() {
2215            my_size += ::protobuf::rt::string_size(3, &self.created_by);
2216        }
2217        if self.status != Rollout_RolloutStatus::ROLLOUT_STATUS_UNSPECIFIED {
2218            my_size += ::protobuf::rt::enum_size(4, self.status);
2219        }
2220        if !self.service_name.is_empty() {
2221            my_size += ::protobuf::rt::string_size(8, &self.service_name);
2222        }
2223        if let ::std::option::Option::Some(ref v) = self.strategy {
2224            match v {
2225                &Rollout_oneof_strategy::traffic_percent_strategy(ref v) => {
2226                    let len = v.compute_size();
2227                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
2228                },
2229                &Rollout_oneof_strategy::delete_service_strategy(ref v) => {
2230                    let len = v.compute_size();
2231                    my_size += 2 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
2232                },
2233            };
2234        }
2235        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
2236        self.cached_size.set(my_size);
2237        my_size
2238    }
2239
2240    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2241        if !self.rollout_id.is_empty() {
2242            os.write_string(1, &self.rollout_id)?;
2243        }
2244        if let Some(ref v) = self.create_time.as_ref() {
2245            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
2246            os.write_raw_varint32(v.get_cached_size())?;
2247            v.write_to_with_cached_sizes(os)?;
2248        }
2249        if !self.created_by.is_empty() {
2250            os.write_string(3, &self.created_by)?;
2251        }
2252        if self.status != Rollout_RolloutStatus::ROLLOUT_STATUS_UNSPECIFIED {
2253            os.write_enum(4, ::protobuf::ProtobufEnum::value(&self.status))?;
2254        }
2255        if !self.service_name.is_empty() {
2256            os.write_string(8, &self.service_name)?;
2257        }
2258        if let ::std::option::Option::Some(ref v) = self.strategy {
2259            match v {
2260                &Rollout_oneof_strategy::traffic_percent_strategy(ref v) => {
2261                    os.write_tag(5, ::protobuf::wire_format::WireTypeLengthDelimited)?;
2262                    os.write_raw_varint32(v.get_cached_size())?;
2263                    v.write_to_with_cached_sizes(os)?;
2264                },
2265                &Rollout_oneof_strategy::delete_service_strategy(ref v) => {
2266                    os.write_tag(200, ::protobuf::wire_format::WireTypeLengthDelimited)?;
2267                    os.write_raw_varint32(v.get_cached_size())?;
2268                    v.write_to_with_cached_sizes(os)?;
2269                },
2270            };
2271        }
2272        os.write_unknown_fields(self.get_unknown_fields())?;
2273        ::std::result::Result::Ok(())
2274    }
2275
2276    fn get_cached_size(&self) -> u32 {
2277        self.cached_size.get()
2278    }
2279
2280    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
2281        &self.unknown_fields
2282    }
2283
2284    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
2285        &mut self.unknown_fields
2286    }
2287
2288    fn as_any(&self) -> &dyn (::std::any::Any) {
2289        self as &dyn (::std::any::Any)
2290    }
2291    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
2292        self as &mut dyn (::std::any::Any)
2293    }
2294    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
2295        self
2296    }
2297
2298    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
2299        Self::descriptor_static()
2300    }
2301
2302    fn new() -> Rollout {
2303        Rollout::new()
2304    }
2305
2306    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
2307        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
2308        descriptor.get(|| {
2309            let mut fields = ::std::vec::Vec::new();
2310            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2311                "rollout_id",
2312                |m: &Rollout| { &m.rollout_id },
2313                |m: &mut Rollout| { &mut m.rollout_id },
2314            ));
2315            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
2316                "create_time",
2317                |m: &Rollout| { &m.create_time },
2318                |m: &mut Rollout| { &mut m.create_time },
2319            ));
2320            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2321                "created_by",
2322                |m: &Rollout| { &m.created_by },
2323                |m: &mut Rollout| { &mut m.created_by },
2324            ));
2325            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<Rollout_RolloutStatus>>(
2326                "status",
2327                |m: &Rollout| { &m.status },
2328                |m: &mut Rollout| { &mut m.status },
2329            ));
2330            fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, Rollout_TrafficPercentStrategy>(
2331                "traffic_percent_strategy",
2332                Rollout::has_traffic_percent_strategy,
2333                Rollout::get_traffic_percent_strategy,
2334            ));
2335            fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, Rollout_DeleteServiceStrategy>(
2336                "delete_service_strategy",
2337                Rollout::has_delete_service_strategy,
2338                Rollout::get_delete_service_strategy,
2339            ));
2340            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2341                "service_name",
2342                |m: &Rollout| { &m.service_name },
2343                |m: &mut Rollout| { &mut m.service_name },
2344            ));
2345            ::protobuf::reflect::MessageDescriptor::new_pb_name::<Rollout>(
2346                "Rollout",
2347                fields,
2348                file_descriptor_proto()
2349            )
2350        })
2351    }
2352
2353    fn default_instance() -> &'static Rollout {
2354        static instance: ::protobuf::rt::LazyV2<Rollout> = ::protobuf::rt::LazyV2::INIT;
2355        instance.get(Rollout::new)
2356    }
2357}
2358
2359impl ::protobuf::Clear for Rollout {
2360    fn clear(&mut self) {
2361        self.rollout_id.clear();
2362        self.create_time.clear();
2363        self.created_by.clear();
2364        self.status = Rollout_RolloutStatus::ROLLOUT_STATUS_UNSPECIFIED;
2365        self.strategy = ::std::option::Option::None;
2366        self.strategy = ::std::option::Option::None;
2367        self.service_name.clear();
2368        self.unknown_fields.clear();
2369    }
2370}
2371
2372impl ::std::fmt::Debug for Rollout {
2373    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2374        ::protobuf::text_format::fmt(self, f)
2375    }
2376}
2377
2378impl ::protobuf::reflect::ProtobufValue for Rollout {
2379    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2380        ::protobuf::reflect::ReflectValueRef::Message(self)
2381    }
2382}
2383
2384#[derive(PartialEq,Clone,Default)]
2385pub struct Rollout_TrafficPercentStrategy {
2386    // message fields
2387    pub percentages: ::std::collections::HashMap<::std::string::String, f64>,
2388    // special fields
2389    pub unknown_fields: ::protobuf::UnknownFields,
2390    pub cached_size: ::protobuf::CachedSize,
2391}
2392
2393impl<'a> ::std::default::Default for &'a Rollout_TrafficPercentStrategy {
2394    fn default() -> &'a Rollout_TrafficPercentStrategy {
2395        <Rollout_TrafficPercentStrategy as ::protobuf::Message>::default_instance()
2396    }
2397}
2398
2399impl Rollout_TrafficPercentStrategy {
2400    pub fn new() -> Rollout_TrafficPercentStrategy {
2401        ::std::default::Default::default()
2402    }
2403
2404    // repeated .google.api.servicemanagement.v1.Rollout.TrafficPercentStrategy.PercentagesEntry percentages = 1;
2405
2406
2407    pub fn get_percentages(&self) -> &::std::collections::HashMap<::std::string::String, f64> {
2408        &self.percentages
2409    }
2410    pub fn clear_percentages(&mut self) {
2411        self.percentages.clear();
2412    }
2413
2414    // Param is passed by value, moved
2415    pub fn set_percentages(&mut self, v: ::std::collections::HashMap<::std::string::String, f64>) {
2416        self.percentages = v;
2417    }
2418
2419    // Mutable pointer to the field.
2420    pub fn mut_percentages(&mut self) -> &mut ::std::collections::HashMap<::std::string::String, f64> {
2421        &mut self.percentages
2422    }
2423
2424    // Take field
2425    pub fn take_percentages(&mut self) -> ::std::collections::HashMap<::std::string::String, f64> {
2426        ::std::mem::replace(&mut self.percentages, ::std::collections::HashMap::new())
2427    }
2428}
2429
2430impl ::protobuf::Message for Rollout_TrafficPercentStrategy {
2431    fn is_initialized(&self) -> bool {
2432        true
2433    }
2434
2435    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2436        while !is.eof()? {
2437            let (field_number, wire_type) = is.read_tag_unpack()?;
2438            match field_number {
2439                1 => {
2440                    ::protobuf::rt::read_map_into::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeDouble>(wire_type, is, &mut self.percentages)?;
2441                },
2442                _ => {
2443                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
2444                },
2445            };
2446        }
2447        ::std::result::Result::Ok(())
2448    }
2449
2450    // Compute sizes of nested messages
2451    #[allow(unused_variables)]
2452    fn compute_size(&self) -> u32 {
2453        let mut my_size = 0;
2454        my_size += ::protobuf::rt::compute_map_size::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeDouble>(1, &self.percentages);
2455        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
2456        self.cached_size.set(my_size);
2457        my_size
2458    }
2459
2460    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2461        ::protobuf::rt::write_map_with_cached_sizes::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeDouble>(1, &self.percentages, os)?;
2462        os.write_unknown_fields(self.get_unknown_fields())?;
2463        ::std::result::Result::Ok(())
2464    }
2465
2466    fn get_cached_size(&self) -> u32 {
2467        self.cached_size.get()
2468    }
2469
2470    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
2471        &self.unknown_fields
2472    }
2473
2474    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
2475        &mut self.unknown_fields
2476    }
2477
2478    fn as_any(&self) -> &dyn (::std::any::Any) {
2479        self as &dyn (::std::any::Any)
2480    }
2481    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
2482        self as &mut dyn (::std::any::Any)
2483    }
2484    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
2485        self
2486    }
2487
2488    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
2489        Self::descriptor_static()
2490    }
2491
2492    fn new() -> Rollout_TrafficPercentStrategy {
2493        Rollout_TrafficPercentStrategy::new()
2494    }
2495
2496    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
2497        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
2498        descriptor.get(|| {
2499            let mut fields = ::std::vec::Vec::new();
2500            fields.push(::protobuf::reflect::accessor::make_map_accessor::<_, ::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeDouble>(
2501                "percentages",
2502                |m: &Rollout_TrafficPercentStrategy| { &m.percentages },
2503                |m: &mut Rollout_TrafficPercentStrategy| { &mut m.percentages },
2504            ));
2505            ::protobuf::reflect::MessageDescriptor::new_pb_name::<Rollout_TrafficPercentStrategy>(
2506                "Rollout.TrafficPercentStrategy",
2507                fields,
2508                file_descriptor_proto()
2509            )
2510        })
2511    }
2512
2513    fn default_instance() -> &'static Rollout_TrafficPercentStrategy {
2514        static instance: ::protobuf::rt::LazyV2<Rollout_TrafficPercentStrategy> = ::protobuf::rt::LazyV2::INIT;
2515        instance.get(Rollout_TrafficPercentStrategy::new)
2516    }
2517}
2518
2519impl ::protobuf::Clear for Rollout_TrafficPercentStrategy {
2520    fn clear(&mut self) {
2521        self.percentages.clear();
2522        self.unknown_fields.clear();
2523    }
2524}
2525
2526impl ::std::fmt::Debug for Rollout_TrafficPercentStrategy {
2527    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2528        ::protobuf::text_format::fmt(self, f)
2529    }
2530}
2531
2532impl ::protobuf::reflect::ProtobufValue for Rollout_TrafficPercentStrategy {
2533    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2534        ::protobuf::reflect::ReflectValueRef::Message(self)
2535    }
2536}
2537
2538#[derive(PartialEq,Clone,Default)]
2539pub struct Rollout_DeleteServiceStrategy {
2540    // special fields
2541    pub unknown_fields: ::protobuf::UnknownFields,
2542    pub cached_size: ::protobuf::CachedSize,
2543}
2544
2545impl<'a> ::std::default::Default for &'a Rollout_DeleteServiceStrategy {
2546    fn default() -> &'a Rollout_DeleteServiceStrategy {
2547        <Rollout_DeleteServiceStrategy as ::protobuf::Message>::default_instance()
2548    }
2549}
2550
2551impl Rollout_DeleteServiceStrategy {
2552    pub fn new() -> Rollout_DeleteServiceStrategy {
2553        ::std::default::Default::default()
2554    }
2555}
2556
2557impl ::protobuf::Message for Rollout_DeleteServiceStrategy {
2558    fn is_initialized(&self) -> bool {
2559        true
2560    }
2561
2562    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2563        while !is.eof()? {
2564            let (field_number, wire_type) = is.read_tag_unpack()?;
2565            match field_number {
2566                _ => {
2567                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
2568                },
2569            };
2570        }
2571        ::std::result::Result::Ok(())
2572    }
2573
2574    // Compute sizes of nested messages
2575    #[allow(unused_variables)]
2576    fn compute_size(&self) -> u32 {
2577        let mut my_size = 0;
2578        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
2579        self.cached_size.set(my_size);
2580        my_size
2581    }
2582
2583    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2584        os.write_unknown_fields(self.get_unknown_fields())?;
2585        ::std::result::Result::Ok(())
2586    }
2587
2588    fn get_cached_size(&self) -> u32 {
2589        self.cached_size.get()
2590    }
2591
2592    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
2593        &self.unknown_fields
2594    }
2595
2596    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
2597        &mut self.unknown_fields
2598    }
2599
2600    fn as_any(&self) -> &dyn (::std::any::Any) {
2601        self as &dyn (::std::any::Any)
2602    }
2603    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
2604        self as &mut dyn (::std::any::Any)
2605    }
2606    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
2607        self
2608    }
2609
2610    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
2611        Self::descriptor_static()
2612    }
2613
2614    fn new() -> Rollout_DeleteServiceStrategy {
2615        Rollout_DeleteServiceStrategy::new()
2616    }
2617
2618    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
2619        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
2620        descriptor.get(|| {
2621            let fields = ::std::vec::Vec::new();
2622            ::protobuf::reflect::MessageDescriptor::new_pb_name::<Rollout_DeleteServiceStrategy>(
2623                "Rollout.DeleteServiceStrategy",
2624                fields,
2625                file_descriptor_proto()
2626            )
2627        })
2628    }
2629
2630    fn default_instance() -> &'static Rollout_DeleteServiceStrategy {
2631        static instance: ::protobuf::rt::LazyV2<Rollout_DeleteServiceStrategy> = ::protobuf::rt::LazyV2::INIT;
2632        instance.get(Rollout_DeleteServiceStrategy::new)
2633    }
2634}
2635
2636impl ::protobuf::Clear for Rollout_DeleteServiceStrategy {
2637    fn clear(&mut self) {
2638        self.unknown_fields.clear();
2639    }
2640}
2641
2642impl ::std::fmt::Debug for Rollout_DeleteServiceStrategy {
2643    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2644        ::protobuf::text_format::fmt(self, f)
2645    }
2646}
2647
2648impl ::protobuf::reflect::ProtobufValue for Rollout_DeleteServiceStrategy {
2649    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2650        ::protobuf::reflect::ReflectValueRef::Message(self)
2651    }
2652}
2653
2654#[derive(Clone,PartialEq,Eq,Debug,Hash)]
2655pub enum Rollout_RolloutStatus {
2656    ROLLOUT_STATUS_UNSPECIFIED = 0,
2657    IN_PROGRESS = 1,
2658    SUCCESS = 2,
2659    CANCELLED = 3,
2660    FAILED = 4,
2661    PENDING = 5,
2662    FAILED_ROLLED_BACK = 6,
2663}
2664
2665impl ::protobuf::ProtobufEnum for Rollout_RolloutStatus {
2666    fn value(&self) -> i32 {
2667        *self as i32
2668    }
2669
2670    fn from_i32(value: i32) -> ::std::option::Option<Rollout_RolloutStatus> {
2671        match value {
2672            0 => ::std::option::Option::Some(Rollout_RolloutStatus::ROLLOUT_STATUS_UNSPECIFIED),
2673            1 => ::std::option::Option::Some(Rollout_RolloutStatus::IN_PROGRESS),
2674            2 => ::std::option::Option::Some(Rollout_RolloutStatus::SUCCESS),
2675            3 => ::std::option::Option::Some(Rollout_RolloutStatus::CANCELLED),
2676            4 => ::std::option::Option::Some(Rollout_RolloutStatus::FAILED),
2677            5 => ::std::option::Option::Some(Rollout_RolloutStatus::PENDING),
2678            6 => ::std::option::Option::Some(Rollout_RolloutStatus::FAILED_ROLLED_BACK),
2679            _ => ::std::option::Option::None
2680        }
2681    }
2682
2683    fn values() -> &'static [Self] {
2684        static values: &'static [Rollout_RolloutStatus] = &[
2685            Rollout_RolloutStatus::ROLLOUT_STATUS_UNSPECIFIED,
2686            Rollout_RolloutStatus::IN_PROGRESS,
2687            Rollout_RolloutStatus::SUCCESS,
2688            Rollout_RolloutStatus::CANCELLED,
2689            Rollout_RolloutStatus::FAILED,
2690            Rollout_RolloutStatus::PENDING,
2691            Rollout_RolloutStatus::FAILED_ROLLED_BACK,
2692        ];
2693        values
2694    }
2695
2696    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
2697        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
2698        descriptor.get(|| {
2699            ::protobuf::reflect::EnumDescriptor::new_pb_name::<Rollout_RolloutStatus>("Rollout.RolloutStatus", file_descriptor_proto())
2700        })
2701    }
2702}
2703
2704impl ::std::marker::Copy for Rollout_RolloutStatus {
2705}
2706
2707impl ::std::default::Default for Rollout_RolloutStatus {
2708    fn default() -> Self {
2709        Rollout_RolloutStatus::ROLLOUT_STATUS_UNSPECIFIED
2710    }
2711}
2712
2713impl ::protobuf::reflect::ProtobufValue for Rollout_RolloutStatus {
2714    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2715        ::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
2716    }
2717}
2718
2719static file_descriptor_proto_data: &'static [u8] = b"\
2720    \n/google/api/servicemanagement/v1/resources.proto\x12\x1fgoogle.api.ser\
2721    vicemanagement.v1\x1a\x1egoogle/api/config_change.proto\x1a\x1fgoogle/ap\
2722    i/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"c\n\x0eMa\
2723    nagedService\x12!\n\x0cservice_name\x18\x02\x20\x01(\tR\x0bserviceName\
2724    \x12.\n\x13producer_project_id\x18\x03\x20\x01(\tR\x11producerProjectId\
2725    \"\xdb\x03\n\x11OperationMetadata\x12%\n\x0eresource_names\x18\x01\x20\
2726    \x03(\tR\rresourceNames\x12M\n\x05steps\x18\x02\x20\x03(\x0b27.google.ap\
2727    i.servicemanagement.v1.OperationMetadata.StepR\x05steps\x12/\n\x13progre\
2728    ss_percentage\x18\x03\x20\x01(\x05R\x12progressPercentage\x129\n\nstart_\
2729    time\x18\x04\x20\x01(\x0b2\x1a.google.protobuf.TimestampR\tstartTime\x1a\
2730    {\n\x04Step\x12\x20\n\x0bdescription\x18\x02\x20\x01(\tR\x0bdescription\
2731    \x12Q\n\x06status\x18\x04\x20\x01(\x0e29.google.api.servicemanagement.v1\
2732    .OperationMetadata.StatusR\x06status\"g\n\x06Status\x12\x16\n\x12STATUS_\
2733    UNSPECIFIED\x10\0\x12\x08\n\x04DONE\x10\x01\x12\x0f\n\x0bNOT_STARTED\x10\
2734    \x02\x12\x0f\n\x0bIN_PROGRESS\x10\x03\x12\n\n\x06FAILED\x10\x04\x12\r\n\
2735    \tCANCELLED\x10\x05\"\xa8\x01\n\nDiagnostic\x12\x1a\n\x08location\x18\
2736    \x01\x20\x01(\tR\x08location\x12D\n\x04kind\x18\x02\x20\x01(\x0e20.googl\
2737    e.api.servicemanagement.v1.Diagnostic.KindR\x04kind\x12\x18\n\x07message\
2738    \x18\x03\x20\x01(\tR\x07message\"\x1e\n\x04Kind\x12\x0b\n\x07WARNING\x10\
2739    \0\x12\t\n\x05ERROR\x10\x01\"a\n\x0cConfigSource\x12\x0e\n\x02id\x18\x05\
2740    \x20\x01(\tR\x02id\x12A\n\x05files\x18\x02\x20\x03(\x0b2+.google.api.ser\
2741    vicemanagement.v1.ConfigFileR\x05files\"\xb7\x02\n\nConfigFile\x12\x1b\n\
2742    \tfile_path\x18\x01\x20\x01(\tR\x08filePath\x12#\n\rfile_contents\x18\
2743    \x03\x20\x01(\x0cR\x0cfileContents\x12Q\n\tfile_type\x18\x04\x20\x01(\
2744    \x0e24.google.api.servicemanagement.v1.ConfigFile.FileTypeR\x08fileType\
2745    \"\x93\x01\n\x08FileType\x12\x19\n\x15FILE_TYPE_UNSPECIFIED\x10\0\x12\
2746    \x17\n\x13SERVICE_CONFIG_YAML\x10\x01\x12\x11\n\rOPEN_API_JSON\x10\x02\
2747    \x12\x11\n\rOPEN_API_YAML\x10\x03\x12\x1d\n\x19FILE_DESCRIPTOR_SET_PROTO\
2748    \x10\x04\x12\x0e\n\nPROTO_FILE\x10\x06\"\x1f\n\tConfigRef\x12\x12\n\x04n\
2749    ame\x18\x01\x20\x01(\tR\x04name\"O\n\x0cChangeReport\x12?\n\x0econfig_ch\
2750    anges\x18\x01\x20\x03(\x0b2\x18.google.api.ConfigChangeR\rconfigChanges\
2751    \"\xf8\x06\n\x07Rollout\x12\"\n\nrollout_id\x18\x01\x20\x01(\tR\trollout\
2752    IdB\x03\xe0A\x01\x12;\n\x0bcreate_time\x18\x02\x20\x01(\x0b2\x1a.google.\
2753    protobuf.TimestampR\ncreateTime\x12\x1d\n\ncreated_by\x18\x03\x20\x01(\t\
2754    R\tcreatedBy\x12N\n\x06status\x18\x04\x20\x01(\x0e26.google.api.servicem\
2755    anagement.v1.Rollout.RolloutStatusR\x06status\x12{\n\x18traffic_percent_\
2756    strategy\x18\x05\x20\x01(\x0b2?.google.api.servicemanagement.v1.Rollout.\
2757    TrafficPercentStrategyH\0R\x16trafficPercentStrategy\x12y\n\x17delete_se\
2758    rvice_strategy\x18\xc8\x01\x20\x01(\x0b2>.google.api.servicemanagement.v\
2759    1.Rollout.DeleteServiceStrategyH\0R\x15deleteServiceStrategy\x12!\n\x0cs\
2760    ervice_name\x18\x08\x20\x01(\tR\x0bserviceName\x1a\xcc\x01\n\x16TrafficP\
2761    ercentStrategy\x12r\n\x0bpercentages\x18\x01\x20\x03(\x0b2P.google.api.s\
2762    ervicemanagement.v1.Rollout.TrafficPercentStrategy.PercentagesEntryR\x0b\
2763    percentages\x1a>\n\x10PercentagesEntry\x12\x10\n\x03key\x18\x01\x20\x01(\
2764    \tR\x03key\x12\x14\n\x05value\x18\x02\x20\x01(\x01R\x05value:\x028\x01\
2765    \x1a\x17\n\x15DeleteServiceStrategy\"\x8d\x01\n\rRolloutStatus\x12\x1e\n\
2766    \x1aROLLOUT_STATUS_UNSPECIFIED\x10\0\x12\x0f\n\x0bIN_PROGRESS\x10\x01\
2767    \x12\x0b\n\x07SUCCESS\x10\x02\x12\r\n\tCANCELLED\x10\x03\x12\n\n\x06FAIL\
2768    ED\x10\x04\x12\x0b\n\x07PENDING\x10\x05\x12\x16\n\x12FAILED_ROLLED_BACK\
2769    \x10\x06B\n\n\x08strategyB\x82\x02\n#com.google.api.servicemanagement.v1\
2770    B\x0eResourcesProtoP\x01ZScloud.google.com/go/servicemanagement/apiv1/se\
2771    rvicemanagementpb;servicemanagementpb\xa2\x02\x04GASM\xaa\x02!Google.Clo\
2772    ud.ServiceManagement.V1\xca\x02!Google\\Cloud\\ServiceManagement\\V1\xea\
2773    \x02$Google::Cloud::ServiceManagement::V1J\x86P\n\x07\x12\x05\x0e\0\xa6\
2774    \x02\x01\n\xbc\x04\n\x01\x0c\x12\x03\x0e\0\x122\xb1\x04\x20Copyright\x20\
2775    2023\x20Google\x20LLC\n\n\x20Licensed\x20under\x20the\x20Apache\x20Licen\
2776    se,\x20Version\x202.0\x20(the\x20\"License\");\n\x20you\x20may\x20not\
2777    \x20use\x20this\x20file\x20except\x20in\x20compliance\x20with\x20the\x20\
2778    License.\n\x20You\x20may\x20obtain\x20a\x20copy\x20of\x20the\x20License\
2779    \x20at\n\n\x20\x20\x20\x20\x20http://www.apache.org/licenses/LICENSE-2.0\
2780    \n\n\x20Unless\x20required\x20by\x20applicable\x20law\x20or\x20agreed\
2781    \x20to\x20in\x20writing,\x20software\n\x20distributed\x20under\x20the\
2782    \x20License\x20is\x20distributed\x20on\x20an\x20\"AS\x20IS\"\x20BASIS,\n\
2783    \x20WITHOUT\x20WARRANTIES\x20OR\x20CONDITIONS\x20OF\x20ANY\x20KIND,\x20e\
2784    ither\x20express\x20or\x20implied.\n\x20See\x20the\x20License\x20for\x20\
2785    the\x20specific\x20language\x20governing\x20permissions\x20and\n\x20limi\
2786    tations\x20under\x20the\x20License.\n\n\x08\n\x01\x02\x12\x03\x10\0(\n\t\
2787    \n\x02\x03\0\x12\x03\x12\0(\n\t\n\x02\x03\x01\x12\x03\x13\0)\n\t\n\x02\
2788    \x03\x02\x12\x03\x14\0)\n\x08\n\x01\x08\x12\x03\x16\0>\n\t\n\x02\x08%\
2789    \x12\x03\x16\0>\n\x08\n\x01\x08\x12\x03\x17\0j\n\t\n\x02\x08\x0b\x12\x03\
2790    \x17\0j\n\x08\n\x01\x08\x12\x03\x18\0\"\n\t\n\x02\x08\n\x12\x03\x18\0\"\
2791    \n\x08\n\x01\x08\x12\x03\x19\0/\n\t\n\x02\x08\x08\x12\x03\x19\0/\n\x08\n\
2792    \x01\x08\x12\x03\x1a\0<\n\t\n\x02\x08\x01\x12\x03\x1a\0<\n\x08\n\x01\x08\
2793    \x12\x03\x1b\0\"\n\t\n\x02\x08$\x12\x03\x1b\0\"\n\x08\n\x01\x08\x12\x03\
2794    \x1c\0>\n\t\n\x02\x08)\x12\x03\x1c\0>\n\x08\n\x01\x08\x12\x03\x1d\0=\n\t\
2795    \n\x02\x08-\x12\x03\x1d\0=\na\n\x02\x04\0\x12\x04!\0)\x01\x1aU\x20The\
2796    \x20full\x20representation\x20of\x20a\x20Service\x20that\x20is\x20manage\
2797    d\x20by\n\x20Google\x20Service\x20Management.\n\n\n\n\x03\x04\0\x01\x12\
2798    \x03!\x08\x16\n\x95\x01\n\x04\x04\0\x02\0\x12\x03%\x02\x1a\x1a\x87\x01\
2799    \x20The\x20name\x20of\x20the\x20service.\x20See\x20the\n\x20[overview](h\
2800    ttps://cloud.google.com/service-infrastructure/docs/overview)\n\x20for\
2801    \x20naming\x20requirements.\n\n\x0c\n\x05\x04\0\x02\0\x05\x12\x03%\x02\
2802    \x08\n\x0c\n\x05\x04\0\x02\0\x01\x12\x03%\t\x15\n\x0c\n\x05\x04\0\x02\0\
2803    \x03\x12\x03%\x18\x19\nE\n\x04\x04\0\x02\x01\x12\x03(\x02!\x1a8\x20ID\
2804    \x20of\x20the\x20project\x20that\x20produces\x20and\x20owns\x20this\x20s\
2805    ervice.\n\n\x0c\n\x05\x04\0\x02\x01\x05\x12\x03(\x02\x08\n\x0c\n\x05\x04\
2806    \0\x02\x01\x01\x12\x03(\t\x1c\n\x0c\n\x05\x04\0\x02\x01\x03\x12\x03(\x1f\
2807    \x20\nM\n\x02\x04\x01\x12\x04,\0X\x01\x1aA\x20The\x20metadata\x20associa\
2808    ted\x20with\x20a\x20long\x20running\x20operation\x20resource.\n\n\n\n\
2809    \x03\x04\x01\x01\x12\x03,\x08\x19\n<\n\x04\x04\x01\x03\0\x12\x04.\x024\
2810    \x03\x1a.\x20Represents\x20the\x20status\x20of\x20one\x20operation\x20st\
2811    ep.\n\n\x0c\n\x05\x04\x01\x03\0\x01\x12\x03.\n\x0e\n3\n\x06\x04\x01\x03\
2812    \0\x02\0\x12\x030\x04\x1b\x1a$\x20The\x20short\x20description\x20of\x20t\
2813    he\x20step.\n\n\x0e\n\x07\x04\x01\x03\0\x02\0\x05\x12\x030\x04\n\n\x0e\n\
2814    \x07\x04\x01\x03\0\x02\0\x01\x12\x030\x0b\x16\n\x0e\n\x07\x04\x01\x03\0\
2815    \x02\0\x03\x12\x030\x19\x1a\n!\n\x06\x04\x01\x03\0\x02\x01\x12\x033\x04\
2816    \x16\x1a\x12\x20The\x20status\x20code.\n\n\x0e\n\x07\x04\x01\x03\0\x02\
2817    \x01\x06\x12\x033\x04\n\n\x0e\n\x07\x04\x01\x03\0\x02\x01\x01\x12\x033\
2818    \x0b\x11\n\x0e\n\x07\x04\x01\x03\0\x02\x01\x03\x12\x033\x14\x15\nQ\n\x04\
2819    \x04\x01\x04\0\x12\x047\x02J\x03\x1aC\x20Code\x20describes\x20the\x20sta\
2820    tus\x20of\x20the\x20operation\x20(or\x20one\x20of\x20its\x20steps).\n\n\
2821    \x0c\n\x05\x04\x01\x04\0\x01\x12\x037\x07\r\n!\n\x06\x04\x01\x04\0\x02\0\
2822    \x12\x039\x04\x1b\x1a\x12\x20Unspecifed\x20code.\n\n\x0e\n\x07\x04\x01\
2823    \x04\0\x02\0\x01\x12\x039\x04\x16\n\x0e\n\x07\x04\x01\x04\0\x02\0\x02\
2824    \x12\x039\x19\x1a\nD\n\x06\x04\x01\x04\0\x02\x01\x12\x03<\x04\r\x1a5\x20\
2825    The\x20operation\x20or\x20step\x20has\x20completed\x20without\x20errors.\
2826    \n\n\x0e\n\x07\x04\x01\x04\0\x02\x01\x01\x12\x03<\x04\x08\n\x0e\n\x07\
2827    \x04\x01\x04\0\x02\x01\x02\x12\x03<\x0b\x0c\n;\n\x06\x04\x01\x04\0\x02\
2828    \x02\x12\x03?\x04\x14\x1a,\x20The\x20operation\x20or\x20step\x20has\x20n\
2829    ot\x20started\x20yet.\n\n\x0e\n\x07\x04\x01\x04\0\x02\x02\x01\x12\x03?\
2830    \x04\x0f\n\x0e\n\x07\x04\x01\x04\0\x02\x02\x02\x12\x03?\x12\x13\n6\n\x06\
2831    \x04\x01\x04\0\x02\x03\x12\x03B\x04\x14\x1a'\x20The\x20operation\x20or\
2832    \x20step\x20is\x20in\x20progress.\n\n\x0e\n\x07\x04\x01\x04\0\x02\x03\
2833    \x01\x12\x03B\x04\x0f\n\x0e\n\x07\x04\x01\x04\0\x02\x03\x02\x12\x03B\x12\
2834    \x13\n\x8c\x01\n\x06\x04\x01\x04\0\x02\x04\x12\x03F\x04\x0f\x1a}\x20The\
2835    \x20operation\x20or\x20step\x20has\x20completed\x20with\x20errors.\x20If\
2836    \x20the\x20operation\x20is\n\x20rollbackable,\x20the\x20rollback\x20comp\
2837    leted\x20with\x20errors\x20too.\n\n\x0e\n\x07\x04\x01\x04\0\x02\x04\x01\
2838    \x12\x03F\x04\n\n\x0e\n\x07\x04\x01\x04\0\x02\x04\x02\x12\x03F\r\x0e\nG\
2839    \n\x06\x04\x01\x04\0\x02\x05\x12\x03I\x04\x12\x1a8\x20The\x20operation\
2840    \x20or\x20step\x20has\x20completed\x20with\x20cancellation.\n\n\x0e\n\
2841    \x07\x04\x01\x04\0\x02\x05\x01\x12\x03I\x04\r\n\x0e\n\x07\x04\x01\x04\0\
2842    \x02\x05\x02\x12\x03I\x10\x11\n_\n\x04\x04\x01\x02\0\x12\x03N\x02%\x1aR\
2843    \x20The\x20full\x20name\x20of\x20the\x20resources\x20that\x20this\x20ope\
2844    ration\x20is\x20directly\n\x20associated\x20with.\n\n\x0c\n\x05\x04\x01\
2845    \x02\0\x04\x12\x03N\x02\n\n\x0c\n\x05\x04\x01\x02\0\x05\x12\x03N\x0b\x11\
2846    \n\x0c\n\x05\x04\x01\x02\0\x01\x12\x03N\x12\x20\n\x0c\n\x05\x04\x01\x02\
2847    \0\x03\x12\x03N#$\nT\n\x04\x04\x01\x02\x01\x12\x03Q\x02\x1a\x1aG\x20Deta\
2848    iled\x20status\x20information\x20for\x20each\x20step.\x20The\x20order\
2849    \x20is\x20undetermined.\n\n\x0c\n\x05\x04\x01\x02\x01\x04\x12\x03Q\x02\n\
2850    \n\x0c\n\x05\x04\x01\x02\x01\x06\x12\x03Q\x0b\x0f\n\x0c\n\x05\x04\x01\
2851    \x02\x01\x01\x12\x03Q\x10\x15\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03Q\
2852    \x18\x19\nQ\n\x04\x04\x01\x02\x02\x12\x03T\x02\x20\x1aD\x20Percentage\
2853    \x20of\x20completion\x20of\x20this\x20operation,\x20ranging\x20from\x200\
2854    \x20to\x20100.\n\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\x03T\x02\x07\n\x0c\
2855    \n\x05\x04\x01\x02\x02\x01\x12\x03T\x08\x1b\n\x0c\n\x05\x04\x01\x02\x02\
2856    \x03\x12\x03T\x1e\x1f\n/\n\x04\x04\x01\x02\x03\x12\x03W\x02+\x1a\"\x20Th\
2857    e\x20start\x20time\x20of\x20the\x20operation.\n\n\x0c\n\x05\x04\x01\x02\
2858    \x03\x06\x12\x03W\x02\x1b\n\x0c\n\x05\x04\x01\x02\x03\x01\x12\x03W\x1c&\
2859    \n\x0c\n\x05\x04\x01\x02\x03\x03\x12\x03W)*\n@\n\x02\x04\x02\x12\x04[\0m\
2860    \x01\x1a4\x20Represents\x20a\x20diagnostic\x20message\x20(error\x20or\
2861    \x20warning)\n\n\n\n\x03\x04\x02\x01\x12\x03[\x08\x12\n<\n\x04\x04\x02\
2862    \x04\0\x12\x04]\x02c\x03\x1a.\x20The\x20kind\x20of\x20diagnostic\x20info\
2863    rmation\x20possible.\n\n\x0c\n\x05\x04\x02\x04\0\x01\x12\x03]\x07\x0b\n$\
2864    \n\x06\x04\x02\x04\0\x02\0\x12\x03_\x04\x10\x1a\x15\x20Warnings\x20and\
2865    \x20errors\n\n\x0e\n\x07\x04\x02\x04\0\x02\0\x01\x12\x03_\x04\x0b\n\x0e\
2866    \n\x07\x04\x02\x04\0\x02\0\x02\x12\x03_\x0e\x0f\n\x1c\n\x06\x04\x02\x04\
2867    \0\x02\x01\x12\x03b\x04\x0e\x1a\r\x20Only\x20errors\n\n\x0e\n\x07\x04\
2868    \x02\x04\0\x02\x01\x01\x12\x03b\x04\t\n\x0e\n\x07\x04\x02\x04\0\x02\x01\
2869    \x02\x12\x03b\x0c\r\nA\n\x04\x04\x02\x02\0\x12\x03f\x02\x16\x1a4\x20File\
2870    \x20name\x20and\x20line\x20number\x20of\x20the\x20error\x20or\x20warning\
2871    .\n\n\x0c\n\x05\x04\x02\x02\0\x05\x12\x03f\x02\x08\n\x0c\n\x05\x04\x02\
2872    \x02\0\x01\x12\x03f\t\x11\n\x0c\n\x05\x04\x02\x02\0\x03\x12\x03f\x14\x15\
2873    \n;\n\x04\x04\x02\x02\x01\x12\x03i\x02\x10\x1a.\x20The\x20kind\x20of\x20\
2874    diagnostic\x20information\x20provided.\n\n\x0c\n\x05\x04\x02\x02\x01\x06\
2875    \x12\x03i\x02\x06\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x03i\x07\x0b\n\x0c\
2876    \n\x05\x04\x02\x02\x01\x03\x12\x03i\x0e\x0f\n7\n\x04\x04\x02\x02\x02\x12\
2877    \x03l\x02\x15\x1a*\x20Message\x20describing\x20the\x20error\x20or\x20war\
2878    ning.\n\n\x0c\n\x05\x04\x02\x02\x02\x05\x12\x03l\x02\x08\n\x0c\n\x05\x04\
2879    \x02\x02\x02\x01\x12\x03l\t\x10\n\x0c\n\x05\x04\x02\x02\x02\x03\x12\x03l\
2880    \x13\x14\n|\n\x02\x04\x03\x12\x04q\0z\x01\x1ap\x20Represents\x20a\x20sou\
2881    rce\x20file\x20which\x20is\x20used\x20to\x20generate\x20the\x20service\
2882    \x20configuration\n\x20defined\x20by\x20`google.api.Service`.\n\n\n\n\
2883    \x03\x04\x03\x01\x12\x03q\x08\x14\n\xb6\x01\n\x04\x04\x03\x02\0\x12\x03u\
2884    \x02\x10\x1a\xa8\x01\x20A\x20unique\x20ID\x20for\x20a\x20specific\x20ins\
2885    tance\x20of\x20this\x20message,\x20typically\x20assigned\n\x20by\x20the\
2886    \x20client\x20for\x20tracking\x20purpose.\x20If\x20empty,\x20the\x20serv\
2887    er\x20may\x20choose\x20to\n\x20generate\x20one\x20instead.\n\n\x0c\n\x05\
2888    \x04\x03\x02\0\x05\x12\x03u\x02\x08\n\x0c\n\x05\x04\x03\x02\0\x01\x12\
2889    \x03u\t\x0b\n\x0c\n\x05\x04\x03\x02\0\x03\x12\x03u\x0e\x0f\n{\n\x04\x04\
2890    \x03\x02\x01\x12\x03y\x02\x20\x1an\x20Set\x20of\x20source\x20configurati\
2891    on\x20files\x20that\x20are\x20used\x20to\x20generate\x20a\x20service\n\
2892    \x20configuration\x20(`google.api.Service`).\n\n\x0c\n\x05\x04\x03\x02\
2893    \x01\x04\x12\x03y\x02\n\n\x0c\n\x05\x04\x03\x02\x01\x06\x12\x03y\x0b\x15\
2894    \n\x0c\n\x05\x04\x03\x02\x01\x01\x12\x03y\x16\x1b\n\x0c\n\x05\x04\x03\
2895    \x02\x01\x03\x12\x03y\x1e\x1f\nC\n\x02\x04\x04\x12\x05}\0\xa4\x01\x01\
2896    \x1a6\x20Generic\x20specification\x20of\x20a\x20source\x20configuration\
2897    \x20file\n\n\n\n\x03\x04\x04\x01\x12\x03}\x08\x12\n\r\n\x04\x04\x04\x04\
2898    \0\x12\x05~\x02\x9a\x01\x03\n\x0c\n\x05\x04\x04\x04\0\x01\x12\x03~\x07\
2899    \x0f\n$\n\x06\x04\x04\x04\0\x02\0\x12\x04\x80\x01\x04\x1e\x1a\x14\x20Unk\
2900    nown\x20file\x20type.\n\n\x0f\n\x07\x04\x04\x04\0\x02\0\x01\x12\x04\x80\
2901    \x01\x04\x19\n\x0f\n\x07\x04\x04\x04\0\x02\0\x02\x12\x04\x80\x01\x1c\x1d\
2902    \n0\n\x06\x04\x04\x04\0\x02\x01\x12\x04\x83\x01\x04\x1c\x1a\x20\x20YAML-\
2903    specification\x20of\x20service.\n\n\x0f\n\x07\x04\x04\x04\0\x02\x01\x01\
2904    \x12\x04\x83\x01\x04\x17\n\x0f\n\x07\x04\x04\x04\0\x02\x01\x02\x12\x04\
2905    \x83\x01\x1a\x1b\n<\n\x06\x04\x04\x04\0\x02\x02\x12\x04\x86\x01\x04\x16\
2906    \x1a,\x20OpenAPI\x20specification,\x20serialized\x20in\x20JSON.\n\n\x0f\
2907    \n\x07\x04\x04\x04\0\x02\x02\x01\x12\x04\x86\x01\x04\x11\n\x0f\n\x07\x04\
2908    \x04\x04\0\x02\x02\x02\x12\x04\x86\x01\x14\x15\n<\n\x06\x04\x04\x04\0\
2909    \x02\x03\x12\x04\x89\x01\x04\x16\x1a,\x20OpenAPI\x20specification,\x20se\
2910    rialized\x20in\x20YAML.\n\n\x0f\n\x07\x04\x04\x04\0\x02\x03\x01\x12\x04\
2911    \x89\x01\x04\x11\n\x0f\n\x07\x04\x04\x04\0\x02\x03\x02\x12\x04\x89\x01\
2912    \x14\x15\n\xaa\x02\n\x06\x04\x04\x04\0\x02\x04\x12\x04\x92\x01\x04\"\x1a\
2913    \x99\x02\x20FileDescriptorSet,\x20generated\x20by\x20protoc.\n\n\x20To\
2914    \x20generate,\x20use\x20protoc\x20with\x20imports\x20and\x20source\x20in\
2915    fo\x20included.\n\x20For\x20an\x20example\x20test.proto\x20file,\x20the\
2916    \x20following\x20command\x20would\x20put\x20the\x20value\n\x20in\x20a\
2917    \x20new\x20file\x20named\x20out.pb.\n\n\x20$protoc\x20--include_imports\
2918    \x20--include_source_info\x20test.proto\x20-o\x20out.pb\n\n\x0f\n\x07\
2919    \x04\x04\x04\0\x02\x04\x01\x12\x04\x92\x01\x04\x1d\n\x0f\n\x07\x04\x04\
2920    \x04\0\x02\x04\x02\x12\x04\x92\x01\x20!\n\xd3\x02\n\x06\x04\x04\x04\0\
2921    \x02\x05\x12\x04\x99\x01\x04\x13\x1a\xc2\x02\x20Uncompiled\x20Proto\x20f\
2922    ile.\x20Used\x20for\x20storage\x20and\x20display\x20purposes\x20only,\n\
2923    \x20currently\x20server-side\x20compilation\x20is\x20not\x20supported.\
2924    \x20Should\x20match\x20the\n\x20inputs\x20to\x20'protoc'\x20command\x20u\
2925    sed\x20to\x20generated\x20FILE_DESCRIPTOR_SET_PROTO.\x20A\n\x20file\x20o\
2926    f\x20this\x20type\x20can\x20only\x20be\x20included\x20if\x20at\x20least\
2927    \x20one\x20file\x20of\x20type\n\x20FILE_DESCRIPTOR_SET_PROTO\x20is\x20in\
2928    cluded.\n\n\x0f\n\x07\x04\x04\x04\0\x02\x05\x01\x12\x04\x99\x01\x04\x0e\
2929    \n\x0f\n\x07\x04\x04\x04\0\x02\x05\x02\x12\x04\x99\x01\x11\x12\nP\n\x04\
2930    \x04\x04\x02\0\x12\x04\x9d\x01\x02\x17\x1aB\x20The\x20file\x20name\x20of\
2931    \x20the\x20configuration\x20file\x20(full\x20or\x20relative\x20path).\n\
2932    \n\r\n\x05\x04\x04\x02\0\x05\x12\x04\x9d\x01\x02\x08\n\r\n\x05\x04\x04\
2933    \x02\0\x01\x12\x04\x9d\x01\t\x12\n\r\n\x05\x04\x04\x02\0\x03\x12\x04\x9d\
2934    \x01\x15\x16\n3\n\x04\x04\x04\x02\x01\x12\x04\xa0\x01\x02\x1a\x1a%\x20Th\
2935    e\x20bytes\x20that\x20constitute\x20the\x20file.\n\n\r\n\x05\x04\x04\x02\
2936    \x01\x05\x12\x04\xa0\x01\x02\x07\n\r\n\x05\x04\x04\x02\x01\x01\x12\x04\
2937    \xa0\x01\x08\x15\n\r\n\x05\x04\x04\x02\x01\x03\x12\x04\xa0\x01\x18\x19\n\
2938    ?\n\x04\x04\x04\x02\x02\x12\x04\xa3\x01\x02\x19\x1a1\x20The\x20type\x20o\
2939    f\x20configuration\x20file\x20this\x20represents.\n\n\r\n\x05\x04\x04\
2940    \x02\x02\x06\x12\x04\xa3\x01\x02\n\n\r\n\x05\x04\x04\x02\x02\x01\x12\x04\
2941    \xa3\x01\x0b\x14\n\r\n\x05\x04\x04\x02\x02\x03\x12\x04\xa3\x01\x17\x18\n\
2942    H\n\x02\x04\x05\x12\x06\xa7\x01\0\xab\x01\x01\x1a:\x20Represents\x20a\
2943    \x20service\x20configuration\x20with\x20its\x20name\x20and\x20id.\n\n\
2944    \x0b\n\x03\x04\x05\x01\x12\x04\xa7\x01\x08\x11\n\x85\x01\n\x04\x04\x05\
2945    \x02\0\x12\x04\xaa\x01\x02\x12\x1aw\x20Resource\x20name\x20of\x20a\x20se\
2946    rvice\x20config.\x20It\x20must\x20have\x20the\x20following\n\x20format:\
2947    \x20\"services/{service\x20name}/configs/{config\x20id}\".\n\n\r\n\x05\
2948    \x04\x05\x02\0\x05\x12\x04\xaa\x01\x02\x08\n\r\n\x05\x04\x05\x02\0\x01\
2949    \x12\x04\xaa\x01\t\r\n\r\n\x05\x04\x05\x02\0\x03\x12\x04\xaa\x01\x10\x11\
2950    \n\xb5\x01\n\x02\x04\x06\x12\x06\xb1\x01\0\xb8\x01\x01\x1a\xa6\x01\x20Ch\
2951    ange\x20report\x20associated\x20with\x20a\x20particular\x20service\x20co\
2952    nfiguration.\n\n\x20It\x20contains\x20a\x20list\x20of\x20ConfigChanges\
2953    \x20based\x20on\x20the\x20comparison\x20between\n\x20two\x20service\x20c\
2954    onfigurations.\n\n\x0b\n\x03\x04\x06\x01\x12\x04\xb1\x01\x08\x14\n\xae\
2955    \x02\n\x04\x04\x06\x02\0\x12\x04\xb7\x01\x026\x1a\x9f\x02\x20List\x20of\
2956    \x20changes\x20between\x20two\x20service\x20configurations.\n\x20The\x20\
2957    changes\x20will\x20be\x20alphabetically\x20sorted\x20based\x20on\x20the\
2958    \x20identifier\n\x20of\x20each\x20change.\n\x20A\x20ConfigChange\x20iden\
2959    tifier\x20is\x20a\x20dot\x20separated\x20path\x20to\x20the\x20configurat\
2960    ion.\n\x20Example:\x20visibility.rules[selector='LibraryService.CreateBo\
2961    ok'].restriction\n\n\r\n\x05\x04\x06\x02\0\x04\x12\x04\xb7\x01\x02\n\n\r\
2962    \n\x05\x04\x06\x02\0\x06\x12\x04\xb7\x01\x0b\"\n\r\n\x05\x04\x06\x02\0\
2963    \x01\x12\x04\xb7\x01#1\n\r\n\x05\x04\x06\x02\0\x03\x12\x04\xb7\x0145\n\
2964    \xeb\x01\n\x02\x04\x07\x12\x06\xbd\x01\0\xa6\x02\x01\x1a\xdc\x01\x20A\
2965    \x20rollout\x20resource\x20that\x20defines\x20how\x20service\x20configur\
2966    ation\x20versions\x20are\x20pushed\n\x20to\x20control\x20plane\x20system\
2967    s.\x20Typically,\x20you\x20create\x20a\x20new\x20version\x20of\x20the\n\
2968    \x20service\x20config,\x20and\x20then\x20create\x20a\x20Rollout\x20to\
2969    \x20push\x20the\x20service\x20config.\n\n\x0b\n\x03\x04\x07\x01\x12\x04\
2970    \xbd\x01\x08\x0f\n\xbd\x06\n\x04\x04\x07\x03\0\x12\x06\xdc\x01\x02\xe1\
2971    \x01\x03\x1a\xac\x06\x20Strategy\x20that\x20specifies\x20how\x20clients\
2972    \x20of\x20Google\x20Service\x20Controller\x20want\x20to\n\x20send\x20tra\
2973    ffic\x20to\x20use\x20different\x20config\x20versions.\x20This\x20is\x20g\
2974    enerally\n\x20used\x20by\x20API\x20proxy\x20to\x20split\x20traffic\x20ba\
2975    sed\x20on\x20your\x20configured\x20percentage\x20for\n\x20each\x20config\
2976    \x20version.\n\n\x20One\x20example\x20of\x20how\x20to\x20gradually\x20ro\
2977    llout\x20a\x20new\x20service\x20configuration\x20using\n\x20this\n\x20st\
2978    rategy:\n\x20Day\x201\n\n\x20\x20\x20\x20\x20Rollout\x20{\n\x20\x20\x20\
2979    \x20\x20\x20\x20id:\x20\"example.googleapis.com/rollout_20160206\"\n\x20\
2980    \x20\x20\x20\x20\x20\x20traffic_percent_strategy\x20{\n\x20\x20\x20\x20\
2981    \x20\x20\x20\x20\x20percentages:\x20{\n\x20\x20\x20\x20\x20\x20\x20\x20\
2982    \x20\x20\x20\"example.googleapis.com/20160201\":\x2070.00\n\x20\x20\x20\
2983    \x20\x20\x20\x20\x20\x20\x20\x20\"example.googleapis.com/20160206\":\x20\
2984    30.00\n\x20\x20\x20\x20\x20\x20\x20\x20\x20}\n\x20\x20\x20\x20\x20\x20\
2985    \x20}\n\x20\x20\x20\x20\x20}\n\n\x20Day\x202\n\n\x20\x20\x20\x20\x20Roll\
2986    out\x20{\n\x20\x20\x20\x20\x20\x20\x20id:\x20\"example.googleapis.com/ro\
2987    llout_20160207\"\n\x20\x20\x20\x20\x20\x20\x20traffic_percent_strategy:\
2988    \x20{\n\x20\x20\x20\x20\x20\x20\x20\x20\x20percentages:\x20{\n\x20\x20\
2989    \x20\x20\x20\x20\x20\x20\x20\x20\x20\"example.googleapis.com/20160206\":\
2990    \x20100.00\n\x20\x20\x20\x20\x20\x20\x20\x20\x20}\n\x20\x20\x20\x20\x20\
2991    \x20\x20}\n\x20\x20\x20\x20\x20}\n\n\r\n\x05\x04\x07\x03\0\x01\x12\x04\
2992    \xdc\x01\n\x20\n\xe3\x01\n\x06\x04\x07\x03\0\x02\0\x12\x04\xe0\x01\x04(\
2993    \x1a\xd2\x01\x20Maps\x20service\x20configuration\x20IDs\x20to\x20their\
2994    \x20corresponding\x20traffic\x20percentage.\n\x20Key\x20is\x20the\x20ser\
2995    vice\x20configuration\x20ID,\x20Value\x20is\x20the\x20traffic\x20percent\
2996    age\n\x20which\x20must\x20be\x20greater\x20than\x200.0\x20and\x20the\x20\
2997    sum\x20must\x20equal\x20to\x20100.0.\n\n\x0f\n\x07\x04\x07\x03\0\x02\0\
2998    \x06\x12\x04\xe0\x01\x04\x17\n\x0f\n\x07\x04\x07\x03\0\x02\0\x01\x12\x04\
2999    \xe0\x01\x18#\n\x0f\n\x07\x04\x07\x03\0\x02\0\x03\x12\x04\xe0\x01&'\n\
3000    \x92\x01\n\x04\x04\x07\x03\x01\x12\x04\xe5\x01\x02\"\x1a\x83\x01\x20Stra\
3001    tegy\x20used\x20to\x20delete\x20a\x20service.\x20This\x20strategy\x20is\
3002    \x20a\x20placeholder\x20only\n\x20used\x20by\x20the\x20system\x20generat\
3003    ed\x20rollout\x20to\x20delete\x20a\x20service.\n\n\r\n\x05\x04\x07\x03\
3004    \x01\x01\x12\x04\xe5\x01\n\x1f\n&\n\x04\x04\x07\x04\0\x12\x06\xe8\x01\
3005    \x02\xff\x01\x03\x1a\x16\x20Status\x20of\x20a\x20Rollout.\n\n\r\n\x05\
3006    \x04\x07\x04\0\x01\x12\x04\xe8\x01\x07\x14\n&\n\x06\x04\x07\x04\0\x02\0\
3007    \x12\x04\xea\x01\x04#\x1a\x16\x20No\x20status\x20specified.\n\n\x0f\n\
3008    \x07\x04\x07\x04\0\x02\0\x01\x12\x04\xea\x01\x04\x1e\n\x0f\n\x07\x04\x07\
3009    \x04\0\x02\0\x02\x12\x04\xea\x01!\"\n-\n\x06\x04\x07\x04\0\x02\x01\x12\
3010    \x04\xed\x01\x04\x14\x1a\x1d\x20The\x20Rollout\x20is\x20in\x20progress.\
3011    \n\n\x0f\n\x07\x04\x07\x04\0\x02\x01\x01\x12\x04\xed\x01\x04\x0f\n\x0f\n\
3012    \x07\x04\x07\x04\0\x02\x01\x02\x12\x04\xed\x01\x12\x13\n9\n\x06\x04\x07\
3013    \x04\0\x02\x02\x12\x04\xf0\x01\x04\x10\x1a)\x20The\x20Rollout\x20has\x20\
3014    completed\x20successfully.\n\n\x0f\n\x07\x04\x07\x04\0\x02\x02\x01\x12\
3015    \x04\xf0\x01\x04\x0b\n\x0f\n\x07\x04\x07\x04\0\x02\x02\x02\x12\x04\xf0\
3016    \x01\x0e\x0f\n\x94\x01\n\x06\x04\x07\x04\0\x02\x03\x12\x04\xf4\x01\x04\
3017    \x12\x1a\x83\x01\x20The\x20Rollout\x20has\x20been\x20cancelled.\x20This\
3018    \x20can\x20happen\x20if\x20you\x20have\x20overlapping\n\x20Rollout\x20pu\
3019    shes,\x20and\x20the\x20previous\x20ones\x20will\x20be\x20cancelled.\n\n\
3020    \x0f\n\x07\x04\x07\x04\0\x02\x03\x01\x12\x04\xf4\x01\x04\r\n\x0f\n\x07\
3021    \x04\x07\x04\0\x02\x03\x02\x12\x04\xf4\x01\x10\x11\nQ\n\x06\x04\x07\x04\
3022    \0\x02\x04\x12\x04\xf7\x01\x04\x0f\x1aA\x20The\x20Rollout\x20has\x20fail\
3023    ed\x20and\x20the\x20rollback\x20attempt\x20has\x20failed\x20too.\n\n\x0f\
3024    \n\x07\x04\x07\x04\0\x02\x04\x01\x12\x04\xf7\x01\x04\n\n\x0f\n\x07\x04\
3025    \x07\x04\0\x02\x04\x02\x12\x04\xf7\x01\r\x0e\nO\n\x06\x04\x07\x04\0\x02\
3026    \x05\x12\x04\xfa\x01\x04\x10\x1a?\x20The\x20Rollout\x20has\x20not\x20sta\
3027    rted\x20yet\x20and\x20is\x20pending\x20for\x20execution.\n\n\x0f\n\x07\
3028    \x04\x07\x04\0\x02\x05\x01\x12\x04\xfa\x01\x04\x0b\n\x0f\n\x07\x04\x07\
3029    \x04\0\x02\x05\x02\x12\x04\xfa\x01\x0e\x0f\n]\n\x06\x04\x07\x04\0\x02\
3030    \x06\x12\x04\xfe\x01\x04\x1b\x1aM\x20The\x20Rollout\x20has\x20failed\x20\
3031    and\x20rolled\x20back\x20to\x20the\x20previous\x20successful\n\x20Rollou\
3032    t.\n\n\x0f\n\x07\x04\x07\x04\0\x02\x06\x01\x12\x04\xfe\x01\x04\x16\n\x0f\
3033    \n\x07\x04\x07\x04\0\x02\x06\x02\x12\x04\xfe\x01\x19\x1a\n\xff\x03\n\x04\
3034    \x04\x07\x02\0\x12\x04\x8a\x02\x02A\x1a\xf0\x03\x20Optional.\x20Unique\
3035    \x20identifier\x20of\x20this\x20Rollout.\x20Must\x20be\x20no\x20longer\
3036    \x20than\x2063\n\x20characters\x20and\x20only\x20lower\x20case\x20letter\
3037    s,\x20digits,\x20'.',\x20'_'\x20and\x20'-'\x20are\n\x20allowed.\n\n\x20I\
3038    f\x20not\x20specified\x20by\x20client,\x20the\x20server\x20will\x20gener\
3039    ate\x20one.\x20The\x20generated\x20id\n\x20will\x20have\x20the\x20form\
3040    \x20of\x20<date><revision\x20number>,\x20where\x20\"date\"\x20is\x20the\
3041    \x20create\n\x20date\x20in\x20ISO\x208601\x20format.\x20\x20\"revision\
3042    \x20number\"\x20is\x20a\x20monotonically\x20increasing\n\x20positive\x20\
3043    number\x20that\x20is\x20reset\x20every\x20day\x20for\x20each\x20service.\
3044    \n\x20An\x20example\x20of\x20the\x20generated\x20rollout_id\x20is\x20'20\
3045    16-02-16r1'\n\n\r\n\x05\x04\x07\x02\0\x05\x12\x04\x8a\x02\x02\x08\n\r\n\
3046    \x05\x04\x07\x02\0\x01\x12\x04\x8a\x02\t\x13\n\r\n\x05\x04\x07\x02\0\x03\
3047    \x12\x04\x8a\x02\x16\x17\n\r\n\x05\x04\x07\x02\0\x08\x12\x04\x8a\x02\x18\
3048    @\n\x10\n\x08\x04\x07\x02\0\x08\x9c\x08\0\x12\x04\x8a\x02\x19?\n7\n\x04\
3049    \x04\x07\x02\x01\x12\x04\x8d\x02\x02,\x1a)\x20Creation\x20time\x20of\x20\
3050    the\x20rollout.\x20Readonly.\n\n\r\n\x05\x04\x07\x02\x01\x06\x12\x04\x8d\
3051    \x02\x02\x1b\n\r\n\x05\x04\x07\x02\x01\x01\x12\x04\x8d\x02\x1c'\n\r\n\
3052    \x05\x04\x07\x02\x01\x03\x12\x04\x8d\x02*+\n;\n\x04\x04\x07\x02\x02\x12\
3053    \x04\x90\x02\x02\x18\x1a-\x20The\x20user\x20who\x20created\x20the\x20Rol\
3054    lout.\x20Readonly.\n\n\r\n\x05\x04\x07\x02\x02\x05\x12\x04\x90\x02\x02\
3055    \x08\n\r\n\x05\x04\x07\x02\x02\x01\x12\x04\x90\x02\t\x13\n\r\n\x05\x04\
3056    \x07\x02\x02\x03\x12\x04\x90\x02\x16\x17\n\xa6\x01\n\x04\x04\x07\x02\x03\
3057    \x12\x04\x95\x02\x02\x1b\x1a\x97\x01\x20The\x20status\x20of\x20this\x20r\
3058    ollout.\x20Readonly.\x20In\x20case\x20of\x20a\x20failed\x20rollout,\n\
3059    \x20the\x20system\x20will\x20automatically\x20rollback\x20to\x20the\x20c\
3060    urrent\x20Rollout\n\x20version.\x20Readonly.\n\n\r\n\x05\x04\x07\x02\x03\
3061    \x06\x12\x04\x95\x02\x02\x0f\n\r\n\x05\x04\x07\x02\x03\x01\x12\x04\x95\
3062    \x02\x10\x16\n\r\n\x05\x04\x07\x02\x03\x03\x12\x04\x95\x02\x19\x1a\n\x8b\
3063    \x01\n\x04\x04\x07\x08\0\x12\x06\x9a\x02\x02\xa2\x02\x03\x1a{\x20Strateg\
3064    y\x20that\x20defines\x20which\x20versions\x20of\x20service\x20configurat\
3065    ions\x20should\x20be\n\x20pushed\n\x20and\x20how\x20they\x20should\x20be\
3066    \x20used\x20at\x20runtime.\n\n\r\n\x05\x04\x07\x08\0\x01\x12\x04\x9a\x02\
3067    \x08\x10\nc\n\x04\x04\x07\x02\x04\x12\x04\x9d\x02\x048\x1aU\x20Google\
3068    \x20Service\x20Control\x20selects\x20service\x20configurations\x20based\
3069    \x20on\n\x20traffic\x20percentage.\n\n\r\n\x05\x04\x07\x02\x04\x06\x12\
3070    \x04\x9d\x02\x04\x1a\n\r\n\x05\x04\x07\x02\x04\x01\x12\x04\x9d\x02\x1b3\
3071    \n\r\n\x05\x04\x07\x02\x04\x03\x12\x04\x9d\x0267\n_\n\x04\x04\x07\x02\
3072    \x05\x12\x04\xa1\x02\x048\x1aQ\x20The\x20strategy\x20associated\x20with\
3073    \x20a\x20rollout\x20to\x20delete\x20a\x20`ManagedService`.\n\x20Readonly\
3074    .\n\n\r\n\x05\x04\x07\x02\x05\x06\x12\x04\xa1\x02\x04\x19\n\r\n\x05\x04\
3075    \x07\x02\x05\x01\x12\x04\xa1\x02\x1a1\n\r\n\x05\x04\x07\x02\x05\x03\x12\
3076    \x04\xa1\x0247\nE\n\x04\x04\x07\x02\x06\x12\x04\xa5\x02\x02\x1a\x1a7\x20\
3077    The\x20name\x20of\x20the\x20service\x20associated\x20with\x20this\x20Rol\
3078    lout.\n\n\r\n\x05\x04\x07\x02\x06\x05\x12\x04\xa5\x02\x02\x08\n\r\n\x05\
3079    \x04\x07\x02\x06\x01\x12\x04\xa5\x02\t\x15\n\r\n\x05\x04\x07\x02\x06\x03\
3080    \x12\x04\xa5\x02\x18\x19b\x06proto3\
3081";
3082
3083static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;
3084
3085fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
3086    ::protobuf::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
3087}
3088
3089pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
3090    file_descriptor_proto_lazy.get(|| {
3091        parse_descriptor_proto()
3092    })
3093}