google_cloud_rust_raw/api/
config_change.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/config_change.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 ConfigChange {
28    // message fields
29    pub element: ::std::string::String,
30    pub old_value: ::std::string::String,
31    pub new_value: ::std::string::String,
32    pub change_type: ChangeType,
33    pub advices: ::protobuf::RepeatedField<Advice>,
34    // special fields
35    pub unknown_fields: ::protobuf::UnknownFields,
36    pub cached_size: ::protobuf::CachedSize,
37}
38
39impl<'a> ::std::default::Default for &'a ConfigChange {
40    fn default() -> &'a ConfigChange {
41        <ConfigChange as ::protobuf::Message>::default_instance()
42    }
43}
44
45impl ConfigChange {
46    pub fn new() -> ConfigChange {
47        ::std::default::Default::default()
48    }
49
50    // string element = 1;
51
52
53    pub fn get_element(&self) -> &str {
54        &self.element
55    }
56    pub fn clear_element(&mut self) {
57        self.element.clear();
58    }
59
60    // Param is passed by value, moved
61    pub fn set_element(&mut self, v: ::std::string::String) {
62        self.element = v;
63    }
64
65    // Mutable pointer to the field.
66    // If field is not initialized, it is initialized with default value first.
67    pub fn mut_element(&mut self) -> &mut ::std::string::String {
68        &mut self.element
69    }
70
71    // Take field
72    pub fn take_element(&mut self) -> ::std::string::String {
73        ::std::mem::replace(&mut self.element, ::std::string::String::new())
74    }
75
76    // string old_value = 2;
77
78
79    pub fn get_old_value(&self) -> &str {
80        &self.old_value
81    }
82    pub fn clear_old_value(&mut self) {
83        self.old_value.clear();
84    }
85
86    // Param is passed by value, moved
87    pub fn set_old_value(&mut self, v: ::std::string::String) {
88        self.old_value = v;
89    }
90
91    // Mutable pointer to the field.
92    // If field is not initialized, it is initialized with default value first.
93    pub fn mut_old_value(&mut self) -> &mut ::std::string::String {
94        &mut self.old_value
95    }
96
97    // Take field
98    pub fn take_old_value(&mut self) -> ::std::string::String {
99        ::std::mem::replace(&mut self.old_value, ::std::string::String::new())
100    }
101
102    // string new_value = 3;
103
104
105    pub fn get_new_value(&self) -> &str {
106        &self.new_value
107    }
108    pub fn clear_new_value(&mut self) {
109        self.new_value.clear();
110    }
111
112    // Param is passed by value, moved
113    pub fn set_new_value(&mut self, v: ::std::string::String) {
114        self.new_value = v;
115    }
116
117    // Mutable pointer to the field.
118    // If field is not initialized, it is initialized with default value first.
119    pub fn mut_new_value(&mut self) -> &mut ::std::string::String {
120        &mut self.new_value
121    }
122
123    // Take field
124    pub fn take_new_value(&mut self) -> ::std::string::String {
125        ::std::mem::replace(&mut self.new_value, ::std::string::String::new())
126    }
127
128    // .google.api.ChangeType change_type = 4;
129
130
131    pub fn get_change_type(&self) -> ChangeType {
132        self.change_type
133    }
134    pub fn clear_change_type(&mut self) {
135        self.change_type = ChangeType::CHANGE_TYPE_UNSPECIFIED;
136    }
137
138    // Param is passed by value, moved
139    pub fn set_change_type(&mut self, v: ChangeType) {
140        self.change_type = v;
141    }
142
143    // repeated .google.api.Advice advices = 5;
144
145
146    pub fn get_advices(&self) -> &[Advice] {
147        &self.advices
148    }
149    pub fn clear_advices(&mut self) {
150        self.advices.clear();
151    }
152
153    // Param is passed by value, moved
154    pub fn set_advices(&mut self, v: ::protobuf::RepeatedField<Advice>) {
155        self.advices = v;
156    }
157
158    // Mutable pointer to the field.
159    pub fn mut_advices(&mut self) -> &mut ::protobuf::RepeatedField<Advice> {
160        &mut self.advices
161    }
162
163    // Take field
164    pub fn take_advices(&mut self) -> ::protobuf::RepeatedField<Advice> {
165        ::std::mem::replace(&mut self.advices, ::protobuf::RepeatedField::new())
166    }
167}
168
169impl ::protobuf::Message for ConfigChange {
170    fn is_initialized(&self) -> bool {
171        for v in &self.advices {
172            if !v.is_initialized() {
173                return false;
174            }
175        };
176        true
177    }
178
179    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
180        while !is.eof()? {
181            let (field_number, wire_type) = is.read_tag_unpack()?;
182            match field_number {
183                1 => {
184                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.element)?;
185                },
186                2 => {
187                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.old_value)?;
188                },
189                3 => {
190                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.new_value)?;
191                },
192                4 => {
193                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.change_type, 4, &mut self.unknown_fields)?
194                },
195                5 => {
196                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.advices)?;
197                },
198                _ => {
199                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
200                },
201            };
202        }
203        ::std::result::Result::Ok(())
204    }
205
206    // Compute sizes of nested messages
207    #[allow(unused_variables)]
208    fn compute_size(&self) -> u32 {
209        let mut my_size = 0;
210        if !self.element.is_empty() {
211            my_size += ::protobuf::rt::string_size(1, &self.element);
212        }
213        if !self.old_value.is_empty() {
214            my_size += ::protobuf::rt::string_size(2, &self.old_value);
215        }
216        if !self.new_value.is_empty() {
217            my_size += ::protobuf::rt::string_size(3, &self.new_value);
218        }
219        if self.change_type != ChangeType::CHANGE_TYPE_UNSPECIFIED {
220            my_size += ::protobuf::rt::enum_size(4, self.change_type);
221        }
222        for value in &self.advices {
223            let len = value.compute_size();
224            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
225        };
226        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
227        self.cached_size.set(my_size);
228        my_size
229    }
230
231    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
232        if !self.element.is_empty() {
233            os.write_string(1, &self.element)?;
234        }
235        if !self.old_value.is_empty() {
236            os.write_string(2, &self.old_value)?;
237        }
238        if !self.new_value.is_empty() {
239            os.write_string(3, &self.new_value)?;
240        }
241        if self.change_type != ChangeType::CHANGE_TYPE_UNSPECIFIED {
242            os.write_enum(4, ::protobuf::ProtobufEnum::value(&self.change_type))?;
243        }
244        for v in &self.advices {
245            os.write_tag(5, ::protobuf::wire_format::WireTypeLengthDelimited)?;
246            os.write_raw_varint32(v.get_cached_size())?;
247            v.write_to_with_cached_sizes(os)?;
248        };
249        os.write_unknown_fields(self.get_unknown_fields())?;
250        ::std::result::Result::Ok(())
251    }
252
253    fn get_cached_size(&self) -> u32 {
254        self.cached_size.get()
255    }
256
257    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
258        &self.unknown_fields
259    }
260
261    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
262        &mut self.unknown_fields
263    }
264
265    fn as_any(&self) -> &dyn (::std::any::Any) {
266        self as &dyn (::std::any::Any)
267    }
268    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
269        self as &mut dyn (::std::any::Any)
270    }
271    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
272        self
273    }
274
275    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
276        Self::descriptor_static()
277    }
278
279    fn new() -> ConfigChange {
280        ConfigChange::new()
281    }
282
283    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
284        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
285        descriptor.get(|| {
286            let mut fields = ::std::vec::Vec::new();
287            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
288                "element",
289                |m: &ConfigChange| { &m.element },
290                |m: &mut ConfigChange| { &mut m.element },
291            ));
292            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
293                "old_value",
294                |m: &ConfigChange| { &m.old_value },
295                |m: &mut ConfigChange| { &mut m.old_value },
296            ));
297            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
298                "new_value",
299                |m: &ConfigChange| { &m.new_value },
300                |m: &mut ConfigChange| { &mut m.new_value },
301            ));
302            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<ChangeType>>(
303                "change_type",
304                |m: &ConfigChange| { &m.change_type },
305                |m: &mut ConfigChange| { &mut m.change_type },
306            ));
307            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<Advice>>(
308                "advices",
309                |m: &ConfigChange| { &m.advices },
310                |m: &mut ConfigChange| { &mut m.advices },
311            ));
312            ::protobuf::reflect::MessageDescriptor::new_pb_name::<ConfigChange>(
313                "ConfigChange",
314                fields,
315                file_descriptor_proto()
316            )
317        })
318    }
319
320    fn default_instance() -> &'static ConfigChange {
321        static instance: ::protobuf::rt::LazyV2<ConfigChange> = ::protobuf::rt::LazyV2::INIT;
322        instance.get(ConfigChange::new)
323    }
324}
325
326impl ::protobuf::Clear for ConfigChange {
327    fn clear(&mut self) {
328        self.element.clear();
329        self.old_value.clear();
330        self.new_value.clear();
331        self.change_type = ChangeType::CHANGE_TYPE_UNSPECIFIED;
332        self.advices.clear();
333        self.unknown_fields.clear();
334    }
335}
336
337impl ::std::fmt::Debug for ConfigChange {
338    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
339        ::protobuf::text_format::fmt(self, f)
340    }
341}
342
343impl ::protobuf::reflect::ProtobufValue for ConfigChange {
344    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
345        ::protobuf::reflect::ReflectValueRef::Message(self)
346    }
347}
348
349#[derive(PartialEq,Clone,Default)]
350pub struct Advice {
351    // message fields
352    pub description: ::std::string::String,
353    // special fields
354    pub unknown_fields: ::protobuf::UnknownFields,
355    pub cached_size: ::protobuf::CachedSize,
356}
357
358impl<'a> ::std::default::Default for &'a Advice {
359    fn default() -> &'a Advice {
360        <Advice as ::protobuf::Message>::default_instance()
361    }
362}
363
364impl Advice {
365    pub fn new() -> Advice {
366        ::std::default::Default::default()
367    }
368
369    // string description = 2;
370
371
372    pub fn get_description(&self) -> &str {
373        &self.description
374    }
375    pub fn clear_description(&mut self) {
376        self.description.clear();
377    }
378
379    // Param is passed by value, moved
380    pub fn set_description(&mut self, v: ::std::string::String) {
381        self.description = v;
382    }
383
384    // Mutable pointer to the field.
385    // If field is not initialized, it is initialized with default value first.
386    pub fn mut_description(&mut self) -> &mut ::std::string::String {
387        &mut self.description
388    }
389
390    // Take field
391    pub fn take_description(&mut self) -> ::std::string::String {
392        ::std::mem::replace(&mut self.description, ::std::string::String::new())
393    }
394}
395
396impl ::protobuf::Message for Advice {
397    fn is_initialized(&self) -> bool {
398        true
399    }
400
401    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
402        while !is.eof()? {
403            let (field_number, wire_type) = is.read_tag_unpack()?;
404            match field_number {
405                2 => {
406                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.description)?;
407                },
408                _ => {
409                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
410                },
411            };
412        }
413        ::std::result::Result::Ok(())
414    }
415
416    // Compute sizes of nested messages
417    #[allow(unused_variables)]
418    fn compute_size(&self) -> u32 {
419        let mut my_size = 0;
420        if !self.description.is_empty() {
421            my_size += ::protobuf::rt::string_size(2, &self.description);
422        }
423        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
424        self.cached_size.set(my_size);
425        my_size
426    }
427
428    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
429        if !self.description.is_empty() {
430            os.write_string(2, &self.description)?;
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() -> Advice {
463        Advice::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_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
471                "description",
472                |m: &Advice| { &m.description },
473                |m: &mut Advice| { &mut m.description },
474            ));
475            ::protobuf::reflect::MessageDescriptor::new_pb_name::<Advice>(
476                "Advice",
477                fields,
478                file_descriptor_proto()
479            )
480        })
481    }
482
483    fn default_instance() -> &'static Advice {
484        static instance: ::protobuf::rt::LazyV2<Advice> = ::protobuf::rt::LazyV2::INIT;
485        instance.get(Advice::new)
486    }
487}
488
489impl ::protobuf::Clear for Advice {
490    fn clear(&mut self) {
491        self.description.clear();
492        self.unknown_fields.clear();
493    }
494}
495
496impl ::std::fmt::Debug for Advice {
497    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
498        ::protobuf::text_format::fmt(self, f)
499    }
500}
501
502impl ::protobuf::reflect::ProtobufValue for Advice {
503    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
504        ::protobuf::reflect::ReflectValueRef::Message(self)
505    }
506}
507
508#[derive(Clone,PartialEq,Eq,Debug,Hash)]
509pub enum ChangeType {
510    CHANGE_TYPE_UNSPECIFIED = 0,
511    ADDED = 1,
512    REMOVED = 2,
513    MODIFIED = 3,
514}
515
516impl ::protobuf::ProtobufEnum for ChangeType {
517    fn value(&self) -> i32 {
518        *self as i32
519    }
520
521    fn from_i32(value: i32) -> ::std::option::Option<ChangeType> {
522        match value {
523            0 => ::std::option::Option::Some(ChangeType::CHANGE_TYPE_UNSPECIFIED),
524            1 => ::std::option::Option::Some(ChangeType::ADDED),
525            2 => ::std::option::Option::Some(ChangeType::REMOVED),
526            3 => ::std::option::Option::Some(ChangeType::MODIFIED),
527            _ => ::std::option::Option::None
528        }
529    }
530
531    fn values() -> &'static [Self] {
532        static values: &'static [ChangeType] = &[
533            ChangeType::CHANGE_TYPE_UNSPECIFIED,
534            ChangeType::ADDED,
535            ChangeType::REMOVED,
536            ChangeType::MODIFIED,
537        ];
538        values
539    }
540
541    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
542        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
543        descriptor.get(|| {
544            ::protobuf::reflect::EnumDescriptor::new_pb_name::<ChangeType>("ChangeType", file_descriptor_proto())
545        })
546    }
547}
548
549impl ::std::marker::Copy for ChangeType {
550}
551
552impl ::std::default::Default for ChangeType {
553    fn default() -> Self {
554        ChangeType::CHANGE_TYPE_UNSPECIFIED
555    }
556}
557
558impl ::protobuf::reflect::ProtobufValue for ChangeType {
559    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
560        ::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
561    }
562}
563
564static file_descriptor_proto_data: &'static [u8] = b"\
565    \n\x1egoogle/api/config_change.proto\x12\ngoogle.api\"\xc9\x01\n\x0cConf\
566    igChange\x12\x18\n\x07element\x18\x01\x20\x01(\tR\x07element\x12\x1b\n\t\
567    old_value\x18\x02\x20\x01(\tR\x08oldValue\x12\x1b\n\tnew_value\x18\x03\
568    \x20\x01(\tR\x08newValue\x127\n\x0bchange_type\x18\x04\x20\x01(\x0e2\x16\
569    .google.api.ChangeTypeR\nchangeType\x12,\n\x07advices\x18\x05\x20\x03(\
570    \x0b2\x12.google.api.AdviceR\x07advices\"*\n\x06Advice\x12\x20\n\x0bdesc\
571    ription\x18\x02\x20\x01(\tR\x0bdescription*O\n\nChangeType\x12\x1b\n\x17\
572    CHANGE_TYPE_UNSPECIFIED\x10\0\x12\t\n\x05ADDED\x10\x01\x12\x0b\n\x07REMO\
573    VED\x10\x02\x12\x0c\n\x08MODIFIED\x10\x03Bq\n\x0ecom.google.apiB\x11Conf\
574    igChangeProtoP\x01ZCgoogle.golang.org/genproto/googleapis/api/configchan\
575    ge;configchange\xa2\x02\x04GAPIJ\xe5\x18\n\x06\x12\x04\x0e\0S\x01\n\xbc\
576    \x04\n\x01\x0c\x12\x03\x0e\0\x122\xb1\x04\x20Copyright\x202023\x20Google\
577    \x20LLC\n\n\x20Licensed\x20under\x20the\x20Apache\x20License,\x20Version\
578    \x202.0\x20(the\x20\"License\");\n\x20you\x20may\x20not\x20use\x20this\
579    \x20file\x20except\x20in\x20compliance\x20with\x20the\x20License.\n\x20Y\
580    ou\x20may\x20obtain\x20a\x20copy\x20of\x20the\x20License\x20at\n\n\x20\
581    \x20\x20\x20\x20http://www.apache.org/licenses/LICENSE-2.0\n\n\x20Unless\
582    \x20required\x20by\x20applicable\x20law\x20or\x20agreed\x20to\x20in\x20w\
583    riting,\x20software\n\x20distributed\x20under\x20the\x20License\x20is\
584    \x20distributed\x20on\x20an\x20\"AS\x20IS\"\x20BASIS,\n\x20WITHOUT\x20WA\
585    RRANTIES\x20OR\x20CONDITIONS\x20OF\x20ANY\x20KIND,\x20either\x20express\
586    \x20or\x20implied.\n\x20See\x20the\x20License\x20for\x20the\x20specific\
587    \x20language\x20governing\x20permissions\x20and\n\x20limitations\x20unde\
588    r\x20the\x20License.\n\n\x08\n\x01\x02\x12\x03\x10\0\x13\n\x08\n\x01\x08\
589    \x12\x03\x12\0Z\n\t\n\x02\x08\x0b\x12\x03\x12\0Z\n\x08\n\x01\x08\x12\x03\
590    \x13\0\"\n\t\n\x02\x08\n\x12\x03\x13\0\"\n\x08\n\x01\x08\x12\x03\x14\02\
591    \n\t\n\x02\x08\x08\x12\x03\x14\02\n\x08\n\x01\x08\x12\x03\x15\0'\n\t\n\
592    \x02\x08\x01\x12\x03\x15\0'\n\x08\n\x01\x08\x12\x03\x16\0\"\n\t\n\x02\
593    \x08$\x12\x03\x16\0\"\n\x8e\x02\n\x02\x04\0\x12\x04\x1e\08\x01\x1a\x81\
594    \x02\x20Output\x20generated\x20from\x20semantically\x20comparing\x20two\
595    \x20versions\x20of\x20a\x20service\n\x20configuration.\n\n\x20Includes\
596    \x20detailed\x20information\x20about\x20a\x20field\x20that\x20have\x20ch\
597    anged\x20with\n\x20applicable\x20advice\x20about\x20potential\x20consequ\
598    ences\x20for\x20the\x20change,\x20such\x20as\n\x20backwards-incompatibil\
599    ity.\n\n\n\n\x03\x04\0\x01\x12\x03\x1e\x08\x14\n\xff\x03\n\x04\x04\0\x02\
600    \0\x12\x03(\x02\x15\x1a\xf1\x03\x20Object\x20hierarchy\x20path\x20to\x20\
601    the\x20change,\x20with\x20levels\x20separated\x20by\x20a\x20'.'\n\x20cha\
602    racter.\x20For\x20repeated\x20fields,\x20an\x20applicable\x20unique\x20i\
603    dentifier\x20field\x20is\n\x20used\x20for\x20the\x20index\x20(usually\
604    \x20selector,\x20name,\x20or\x20id).\x20For\x20maps,\x20the\x20term\n\
605    \x20'key'\x20is\x20used.\x20If\x20the\x20field\x20has\x20no\x20unique\
606    \x20identifier,\x20the\x20numeric\x20index\n\x20is\x20used.\n\x20Example\
607    s:\n\x20-\x20visibility.rules[selector==\"google.LibraryService.ListBook\
608    s\"].restriction\n\x20-\x20quota.metric_rules[selector==\"google\"].metr\
609    ic_costs[key==\"reads\"].value\n\x20-\x20logging.producer_destinations[0\
610    ]\n\n\x0c\n\x05\x04\0\x02\0\x05\x12\x03(\x02\x08\n\x0c\n\x05\x04\0\x02\0\
611    \x01\x12\x03(\t\x10\n\x0c\n\x05\x04\0\x02\0\x03\x12\x03(\x13\x14\n\x97\
612    \x01\n\x04\x04\0\x02\x01\x12\x03,\x02\x17\x1a\x89\x01\x20Value\x20of\x20\
613    the\x20changed\x20object\x20in\x20the\x20old\x20Service\x20configuration\
614    ,\n\x20in\x20JSON\x20format.\x20This\x20field\x20will\x20not\x20be\x20po\
615    pulated\x20if\x20ChangeType\x20==\x20ADDED.\n\n\x0c\n\x05\x04\0\x02\x01\
616    \x05\x12\x03,\x02\x08\n\x0c\n\x05\x04\0\x02\x01\x01\x12\x03,\t\x12\n\x0c\
617    \n\x05\x04\0\x02\x01\x03\x12\x03,\x15\x16\n\x99\x01\n\x04\x04\0\x02\x02\
618    \x12\x030\x02\x17\x1a\x8b\x01\x20Value\x20of\x20the\x20changed\x20object\
619    \x20in\x20the\x20new\x20Service\x20configuration,\n\x20in\x20JSON\x20for\
620    mat.\x20This\x20field\x20will\x20not\x20be\x20populated\x20if\x20ChangeT\
621    ype\x20==\x20REMOVED.\n\n\x0c\n\x05\x04\0\x02\x02\x05\x12\x030\x02\x08\n\
622    \x0c\n\x05\x04\0\x02\x02\x01\x12\x030\t\x12\n\x0c\n\x05\x04\0\x02\x02\
623    \x03\x12\x030\x15\x16\nL\n\x04\x04\0\x02\x03\x12\x033\x02\x1d\x1a?\x20Th\
624    e\x20type\x20for\x20this\x20change,\x20either\x20ADDED,\x20REMOVED,\x20o\
625    r\x20MODIFIED.\n\n\x0c\n\x05\x04\0\x02\x03\x06\x12\x033\x02\x0c\n\x0c\n\
626    \x05\x04\0\x02\x03\x01\x12\x033\r\x18\n\x0c\n\x05\x04\0\x02\x03\x03\x12\
627    \x033\x1b\x1c\ny\n\x04\x04\0\x02\x04\x12\x037\x02\x1e\x1al\x20Collection\
628    \x20of\x20advice\x20provided\x20for\x20this\x20change,\x20useful\x20for\
629    \x20determining\x20the\n\x20possible\x20impact\x20of\x20this\x20change.\
630    \n\n\x0c\n\x05\x04\0\x02\x04\x04\x12\x037\x02\n\n\x0c\n\x05\x04\0\x02\
631    \x04\x06\x12\x037\x0b\x11\n\x0c\n\x05\x04\0\x02\x04\x01\x12\x037\x12\x19\
632    \n\x0c\n\x05\x04\0\x02\x04\x03\x12\x037\x1c\x1d\n\x8b\x01\n\x02\x04\x01\
633    \x12\x04<\0@\x01\x1a\x7f\x20Generated\x20advice\x20about\x20this\x20chan\
634    ge,\x20used\x20for\x20providing\x20more\n\x20information\x20about\x20how\
635    \x20a\x20change\x20will\x20affect\x20the\x20existing\x20service.\n\n\n\n\
636    \x03\x04\x01\x01\x12\x03<\x08\x0e\n\x82\x01\n\x04\x04\x01\x02\0\x12\x03?\
637    \x02\x19\x1au\x20Useful\x20description\x20for\x20why\x20this\x20advice\
638    \x20was\x20applied\x20and\x20what\x20actions\x20should\n\x20be\x20taken\
639    \x20to\x20mitigate\x20any\x20implied\x20risks.\n\n\x0c\n\x05\x04\x01\x02\
640    \0\x05\x12\x03?\x02\x08\n\x0c\n\x05\x04\x01\x02\0\x01\x12\x03?\t\x14\n\
641    \x0c\n\x05\x04\x01\x02\0\x03\x12\x03?\x17\x18\nb\n\x02\x05\0\x12\x04D\0S\
642    \x01\x1aV\x20Classifies\x20set\x20of\x20possible\x20modifications\x20to\
643    \x20an\x20object\x20in\x20the\x20service\n\x20configuration.\n\n\n\n\x03\
644    \x05\0\x01\x12\x03D\x05\x0f\n%\n\x04\x05\0\x02\0\x12\x03F\x02\x1e\x1a\
645    \x18\x20No\x20value\x20was\x20provided.\n\n\x0c\n\x05\x05\0\x02\0\x01\
646    \x12\x03F\x02\x19\n\x0c\n\x05\x05\0\x02\0\x02\x12\x03F\x1c\x1d\ny\n\x04\
647    \x05\0\x02\x01\x12\x03J\x02\x0c\x1al\x20The\x20changed\x20object\x20exis\
648    ts\x20in\x20the\x20'new'\x20service\x20configuration,\x20but\x20not\n\
649    \x20in\x20the\x20'old'\x20service\x20configuration.\n\n\x0c\n\x05\x05\0\
650    \x02\x01\x01\x12\x03J\x02\x07\n\x0c\n\x05\x05\0\x02\x01\x02\x12\x03J\n\
651    \x0b\ny\n\x04\x05\0\x02\x02\x12\x03N\x02\x0e\x1al\x20The\x20changed\x20o\
652    bject\x20exists\x20in\x20the\x20'old'\x20service\x20configuration,\x20bu\
653    t\x20not\n\x20in\x20the\x20'new'\x20service\x20configuration.\n\n\x0c\n\
654    \x05\x05\0\x02\x02\x01\x12\x03N\x02\t\n\x0c\n\x05\x05\0\x02\x02\x02\x12\
655    \x03N\x0c\r\ne\n\x04\x05\0\x02\x03\x12\x03R\x02\x0f\x1aX\x20The\x20chang\
656    ed\x20object\x20exists\x20in\x20both\x20service\x20configurations,\x20bu\
657    t\x20its\x20value\n\x20is\x20different.\n\n\x0c\n\x05\x05\0\x02\x03\x01\
658    \x12\x03R\x02\n\n\x0c\n\x05\x05\0\x02\x03\x02\x12\x03R\r\x0eb\x06proto3\
659";
660
661static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;
662
663fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
664    ::protobuf::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
665}
666
667pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
668    file_descriptor_proto_lazy.get(|| {
669        parse_descriptor_proto()
670    })
671}