google_cloud_rust_raw/api/
context.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/context.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 Context {
28    // message fields
29    pub rules: ::protobuf::RepeatedField<ContextRule>,
30    // special fields
31    pub unknown_fields: ::protobuf::UnknownFields,
32    pub cached_size: ::protobuf::CachedSize,
33}
34
35impl<'a> ::std::default::Default for &'a Context {
36    fn default() -> &'a Context {
37        <Context as ::protobuf::Message>::default_instance()
38    }
39}
40
41impl Context {
42    pub fn new() -> Context {
43        ::std::default::Default::default()
44    }
45
46    // repeated .google.api.ContextRule rules = 1;
47
48
49    pub fn get_rules(&self) -> &[ContextRule] {
50        &self.rules
51    }
52    pub fn clear_rules(&mut self) {
53        self.rules.clear();
54    }
55
56    // Param is passed by value, moved
57    pub fn set_rules(&mut self, v: ::protobuf::RepeatedField<ContextRule>) {
58        self.rules = v;
59    }
60
61    // Mutable pointer to the field.
62    pub fn mut_rules(&mut self) -> &mut ::protobuf::RepeatedField<ContextRule> {
63        &mut self.rules
64    }
65
66    // Take field
67    pub fn take_rules(&mut self) -> ::protobuf::RepeatedField<ContextRule> {
68        ::std::mem::replace(&mut self.rules, ::protobuf::RepeatedField::new())
69    }
70}
71
72impl ::protobuf::Message for Context {
73    fn is_initialized(&self) -> bool {
74        for v in &self.rules {
75            if !v.is_initialized() {
76                return false;
77            }
78        };
79        true
80    }
81
82    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
83        while !is.eof()? {
84            let (field_number, wire_type) = is.read_tag_unpack()?;
85            match field_number {
86                1 => {
87                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.rules)?;
88                },
89                _ => {
90                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
91                },
92            };
93        }
94        ::std::result::Result::Ok(())
95    }
96
97    // Compute sizes of nested messages
98    #[allow(unused_variables)]
99    fn compute_size(&self) -> u32 {
100        let mut my_size = 0;
101        for value in &self.rules {
102            let len = value.compute_size();
103            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
104        };
105        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
106        self.cached_size.set(my_size);
107        my_size
108    }
109
110    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
111        for v in &self.rules {
112            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
113            os.write_raw_varint32(v.get_cached_size())?;
114            v.write_to_with_cached_sizes(os)?;
115        };
116        os.write_unknown_fields(self.get_unknown_fields())?;
117        ::std::result::Result::Ok(())
118    }
119
120    fn get_cached_size(&self) -> u32 {
121        self.cached_size.get()
122    }
123
124    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
125        &self.unknown_fields
126    }
127
128    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
129        &mut self.unknown_fields
130    }
131
132    fn as_any(&self) -> &dyn (::std::any::Any) {
133        self as &dyn (::std::any::Any)
134    }
135    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
136        self as &mut dyn (::std::any::Any)
137    }
138    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
139        self
140    }
141
142    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
143        Self::descriptor_static()
144    }
145
146    fn new() -> Context {
147        Context::new()
148    }
149
150    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
151        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
152        descriptor.get(|| {
153            let mut fields = ::std::vec::Vec::new();
154            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<ContextRule>>(
155                "rules",
156                |m: &Context| { &m.rules },
157                |m: &mut Context| { &mut m.rules },
158            ));
159            ::protobuf::reflect::MessageDescriptor::new_pb_name::<Context>(
160                "Context",
161                fields,
162                file_descriptor_proto()
163            )
164        })
165    }
166
167    fn default_instance() -> &'static Context {
168        static instance: ::protobuf::rt::LazyV2<Context> = ::protobuf::rt::LazyV2::INIT;
169        instance.get(Context::new)
170    }
171}
172
173impl ::protobuf::Clear for Context {
174    fn clear(&mut self) {
175        self.rules.clear();
176        self.unknown_fields.clear();
177    }
178}
179
180impl ::std::fmt::Debug for Context {
181    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
182        ::protobuf::text_format::fmt(self, f)
183    }
184}
185
186impl ::protobuf::reflect::ProtobufValue for Context {
187    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
188        ::protobuf::reflect::ReflectValueRef::Message(self)
189    }
190}
191
192#[derive(PartialEq,Clone,Default)]
193pub struct ContextRule {
194    // message fields
195    pub selector: ::std::string::String,
196    pub requested: ::protobuf::RepeatedField<::std::string::String>,
197    pub provided: ::protobuf::RepeatedField<::std::string::String>,
198    pub allowed_request_extensions: ::protobuf::RepeatedField<::std::string::String>,
199    pub allowed_response_extensions: ::protobuf::RepeatedField<::std::string::String>,
200    // special fields
201    pub unknown_fields: ::protobuf::UnknownFields,
202    pub cached_size: ::protobuf::CachedSize,
203}
204
205impl<'a> ::std::default::Default for &'a ContextRule {
206    fn default() -> &'a ContextRule {
207        <ContextRule as ::protobuf::Message>::default_instance()
208    }
209}
210
211impl ContextRule {
212    pub fn new() -> ContextRule {
213        ::std::default::Default::default()
214    }
215
216    // string selector = 1;
217
218
219    pub fn get_selector(&self) -> &str {
220        &self.selector
221    }
222    pub fn clear_selector(&mut self) {
223        self.selector.clear();
224    }
225
226    // Param is passed by value, moved
227    pub fn set_selector(&mut self, v: ::std::string::String) {
228        self.selector = v;
229    }
230
231    // Mutable pointer to the field.
232    // If field is not initialized, it is initialized with default value first.
233    pub fn mut_selector(&mut self) -> &mut ::std::string::String {
234        &mut self.selector
235    }
236
237    // Take field
238    pub fn take_selector(&mut self) -> ::std::string::String {
239        ::std::mem::replace(&mut self.selector, ::std::string::String::new())
240    }
241
242    // repeated string requested = 2;
243
244
245    pub fn get_requested(&self) -> &[::std::string::String] {
246        &self.requested
247    }
248    pub fn clear_requested(&mut self) {
249        self.requested.clear();
250    }
251
252    // Param is passed by value, moved
253    pub fn set_requested(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
254        self.requested = v;
255    }
256
257    // Mutable pointer to the field.
258    pub fn mut_requested(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
259        &mut self.requested
260    }
261
262    // Take field
263    pub fn take_requested(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
264        ::std::mem::replace(&mut self.requested, ::protobuf::RepeatedField::new())
265    }
266
267    // repeated string provided = 3;
268
269
270    pub fn get_provided(&self) -> &[::std::string::String] {
271        &self.provided
272    }
273    pub fn clear_provided(&mut self) {
274        self.provided.clear();
275    }
276
277    // Param is passed by value, moved
278    pub fn set_provided(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
279        self.provided = v;
280    }
281
282    // Mutable pointer to the field.
283    pub fn mut_provided(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
284        &mut self.provided
285    }
286
287    // Take field
288    pub fn take_provided(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
289        ::std::mem::replace(&mut self.provided, ::protobuf::RepeatedField::new())
290    }
291
292    // repeated string allowed_request_extensions = 4;
293
294
295    pub fn get_allowed_request_extensions(&self) -> &[::std::string::String] {
296        &self.allowed_request_extensions
297    }
298    pub fn clear_allowed_request_extensions(&mut self) {
299        self.allowed_request_extensions.clear();
300    }
301
302    // Param is passed by value, moved
303    pub fn set_allowed_request_extensions(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
304        self.allowed_request_extensions = v;
305    }
306
307    // Mutable pointer to the field.
308    pub fn mut_allowed_request_extensions(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
309        &mut self.allowed_request_extensions
310    }
311
312    // Take field
313    pub fn take_allowed_request_extensions(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
314        ::std::mem::replace(&mut self.allowed_request_extensions, ::protobuf::RepeatedField::new())
315    }
316
317    // repeated string allowed_response_extensions = 5;
318
319
320    pub fn get_allowed_response_extensions(&self) -> &[::std::string::String] {
321        &self.allowed_response_extensions
322    }
323    pub fn clear_allowed_response_extensions(&mut self) {
324        self.allowed_response_extensions.clear();
325    }
326
327    // Param is passed by value, moved
328    pub fn set_allowed_response_extensions(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
329        self.allowed_response_extensions = v;
330    }
331
332    // Mutable pointer to the field.
333    pub fn mut_allowed_response_extensions(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
334        &mut self.allowed_response_extensions
335    }
336
337    // Take field
338    pub fn take_allowed_response_extensions(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
339        ::std::mem::replace(&mut self.allowed_response_extensions, ::protobuf::RepeatedField::new())
340    }
341}
342
343impl ::protobuf::Message for ContextRule {
344    fn is_initialized(&self) -> bool {
345        true
346    }
347
348    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
349        while !is.eof()? {
350            let (field_number, wire_type) = is.read_tag_unpack()?;
351            match field_number {
352                1 => {
353                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.selector)?;
354                },
355                2 => {
356                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.requested)?;
357                },
358                3 => {
359                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.provided)?;
360                },
361                4 => {
362                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.allowed_request_extensions)?;
363                },
364                5 => {
365                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.allowed_response_extensions)?;
366                },
367                _ => {
368                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
369                },
370            };
371        }
372        ::std::result::Result::Ok(())
373    }
374
375    // Compute sizes of nested messages
376    #[allow(unused_variables)]
377    fn compute_size(&self) -> u32 {
378        let mut my_size = 0;
379        if !self.selector.is_empty() {
380            my_size += ::protobuf::rt::string_size(1, &self.selector);
381        }
382        for value in &self.requested {
383            my_size += ::protobuf::rt::string_size(2, &value);
384        };
385        for value in &self.provided {
386            my_size += ::protobuf::rt::string_size(3, &value);
387        };
388        for value in &self.allowed_request_extensions {
389            my_size += ::protobuf::rt::string_size(4, &value);
390        };
391        for value in &self.allowed_response_extensions {
392            my_size += ::protobuf::rt::string_size(5, &value);
393        };
394        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
395        self.cached_size.set(my_size);
396        my_size
397    }
398
399    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
400        if !self.selector.is_empty() {
401            os.write_string(1, &self.selector)?;
402        }
403        for v in &self.requested {
404            os.write_string(2, &v)?;
405        };
406        for v in &self.provided {
407            os.write_string(3, &v)?;
408        };
409        for v in &self.allowed_request_extensions {
410            os.write_string(4, &v)?;
411        };
412        for v in &self.allowed_response_extensions {
413            os.write_string(5, &v)?;
414        };
415        os.write_unknown_fields(self.get_unknown_fields())?;
416        ::std::result::Result::Ok(())
417    }
418
419    fn get_cached_size(&self) -> u32 {
420        self.cached_size.get()
421    }
422
423    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
424        &self.unknown_fields
425    }
426
427    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
428        &mut self.unknown_fields
429    }
430
431    fn as_any(&self) -> &dyn (::std::any::Any) {
432        self as &dyn (::std::any::Any)
433    }
434    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
435        self as &mut dyn (::std::any::Any)
436    }
437    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
438        self
439    }
440
441    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
442        Self::descriptor_static()
443    }
444
445    fn new() -> ContextRule {
446        ContextRule::new()
447    }
448
449    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
450        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
451        descriptor.get(|| {
452            let mut fields = ::std::vec::Vec::new();
453            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
454                "selector",
455                |m: &ContextRule| { &m.selector },
456                |m: &mut ContextRule| { &mut m.selector },
457            ));
458            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
459                "requested",
460                |m: &ContextRule| { &m.requested },
461                |m: &mut ContextRule| { &mut m.requested },
462            ));
463            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
464                "provided",
465                |m: &ContextRule| { &m.provided },
466                |m: &mut ContextRule| { &mut m.provided },
467            ));
468            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
469                "allowed_request_extensions",
470                |m: &ContextRule| { &m.allowed_request_extensions },
471                |m: &mut ContextRule| { &mut m.allowed_request_extensions },
472            ));
473            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
474                "allowed_response_extensions",
475                |m: &ContextRule| { &m.allowed_response_extensions },
476                |m: &mut ContextRule| { &mut m.allowed_response_extensions },
477            ));
478            ::protobuf::reflect::MessageDescriptor::new_pb_name::<ContextRule>(
479                "ContextRule",
480                fields,
481                file_descriptor_proto()
482            )
483        })
484    }
485
486    fn default_instance() -> &'static ContextRule {
487        static instance: ::protobuf::rt::LazyV2<ContextRule> = ::protobuf::rt::LazyV2::INIT;
488        instance.get(ContextRule::new)
489    }
490}
491
492impl ::protobuf::Clear for ContextRule {
493    fn clear(&mut self) {
494        self.selector.clear();
495        self.requested.clear();
496        self.provided.clear();
497        self.allowed_request_extensions.clear();
498        self.allowed_response_extensions.clear();
499        self.unknown_fields.clear();
500    }
501}
502
503impl ::std::fmt::Debug for ContextRule {
504    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
505        ::protobuf::text_format::fmt(self, f)
506    }
507}
508
509impl ::protobuf::reflect::ProtobufValue for ContextRule {
510    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
511        ::protobuf::reflect::ReflectValueRef::Message(self)
512    }
513}
514
515static file_descriptor_proto_data: &'static [u8] = b"\
516    \n\x18google/api/context.proto\x12\ngoogle.api\"8\n\x07Context\x12-\n\
517    \x05rules\x18\x01\x20\x03(\x0b2\x17.google.api.ContextRuleR\x05rules\"\
518    \xe1\x01\n\x0bContextRule\x12\x1a\n\x08selector\x18\x01\x20\x01(\tR\x08s\
519    elector\x12\x1c\n\trequested\x18\x02\x20\x03(\tR\trequested\x12\x1a\n\
520    \x08provided\x18\x03\x20\x03(\tR\x08provided\x12<\n\x1aallowed_request_e\
521    xtensions\x18\x04\x20\x03(\tR\x18allowedRequestExtensions\x12>\n\x1ballo\
522    wed_response_extensions\x18\x05\x20\x03(\tR\x19allowedResponseExtensions\
523    Bn\n\x0ecom.google.apiB\x0cContextProtoP\x01ZEgoogle.golang.org/genproto\
524    /googleapis/api/serviceconfig;serviceconfig\xa2\x02\x04GAPIJ\x8c\x17\n\
525    \x06\x12\x04\x0e\0Y\x01\n\xbc\x04\n\x01\x0c\x12\x03\x0e\0\x122\xb1\x04\
526    \x20Copyright\x202023\x20Google\x20LLC\n\n\x20Licensed\x20under\x20the\
527    \x20Apache\x20License,\x20Version\x202.0\x20(the\x20\"License\");\n\x20y\
528    ou\x20may\x20not\x20use\x20this\x20file\x20except\x20in\x20compliance\
529    \x20with\x20the\x20License.\n\x20You\x20may\x20obtain\x20a\x20copy\x20of\
530    \x20the\x20License\x20at\n\n\x20\x20\x20\x20\x20http://www.apache.org/li\
531    censes/LICENSE-2.0\n\n\x20Unless\x20required\x20by\x20applicable\x20law\
532    \x20or\x20agreed\x20to\x20in\x20writing,\x20software\n\x20distributed\
533    \x20under\x20the\x20License\x20is\x20distributed\x20on\x20an\x20\"AS\x20\
534    IS\"\x20BASIS,\n\x20WITHOUT\x20WARRANTIES\x20OR\x20CONDITIONS\x20OF\x20A\
535    NY\x20KIND,\x20either\x20express\x20or\x20implied.\n\x20See\x20the\x20Li\
536    cense\x20for\x20the\x20specific\x20language\x20governing\x20permissions\
537    \x20and\n\x20limitations\x20under\x20the\x20License.\n\n\x08\n\x01\x02\
538    \x12\x03\x10\0\x13\n\x08\n\x01\x08\x12\x03\x12\0\\\n\t\n\x02\x08\x0b\x12\
539    \x03\x12\0\\\n\x08\n\x01\x08\x12\x03\x13\0\"\n\t\n\x02\x08\n\x12\x03\x13\
540    \0\"\n\x08\n\x01\x08\x12\x03\x14\0-\n\t\n\x02\x08\x08\x12\x03\x14\0-\n\
541    \x08\n\x01\x08\x12\x03\x15\0'\n\t\n\x02\x08\x01\x12\x03\x15\0'\n\x08\n\
542    \x01\x08\x12\x03\x16\0\"\n\t\n\x02\x08$\x12\x03\x16\0\"\n\xdf\x08\n\x02\
543    \x04\0\x12\x04<\0A\x01\x1a\xd2\x08\x20`Context`\x20defines\x20which\x20c\
544    ontexts\x20an\x20API\x20requests.\n\n\x20Example:\n\n\x20\x20\x20\x20\
545    \x20context:\n\x20\x20\x20\x20\x20\x20\x20rules:\n\x20\x20\x20\x20\x20\
546    \x20\x20-\x20selector:\x20\"*\"\n\x20\x20\x20\x20\x20\x20\x20\x20\x20req\
547    uested:\n\x20\x20\x20\x20\x20\x20\x20\x20\x20-\x20google.rpc.context.Pro\
548    jectContext\n\x20\x20\x20\x20\x20\x20\x20\x20\x20-\x20google.rpc.context\
549    .OriginContext\n\n\x20The\x20above\x20specifies\x20that\x20all\x20method\
550    s\x20in\x20the\x20API\x20request\n\x20`google.rpc.context.ProjectContext\
551    `\x20and\n\x20`google.rpc.context.OriginContext`.\n\n\x20Available\x20co\
552    ntext\x20types\x20are\x20defined\x20in\x20package\n\x20`google.rpc.conte\
553    xt`.\n\n\x20This\x20also\x20provides\x20mechanism\x20to\x20allowlist\x20\
554    any\x20protobuf\x20message\x20extension\x20that\n\x20can\x20be\x20sent\
555    \x20in\x20grpc\x20metadata\x20using\x20\xe2\x80\x9cx-goog-ext-<extension\
556    _id>-bin\xe2\x80\x9d\x20and\n\x20\xe2\x80\x9cx-goog-ext-<extension_id>-j\
557    spb\xe2\x80\x9d\x20format.\x20For\x20example,\x20list\x20any\x20service\
558    \n\x20specific\x20protobuf\x20types\x20that\x20can\x20appear\x20in\x20gr\
559    pc\x20metadata\x20as\x20follows\x20in\x20your\n\x20yaml\x20file:\n\n\x20\
560    Example:\n\n\x20\x20\x20\x20\x20context:\n\x20\x20\x20\x20\x20\x20\x20ru\
561    les:\n\x20\x20\x20\x20\x20\x20\x20\x20-\x20selector:\x20\"google.example\
562    .library.v1.LibraryService.CreateBook\"\n\x20\x20\x20\x20\x20\x20\x20\
563    \x20\x20\x20allowed_request_extensions:\n\x20\x20\x20\x20\x20\x20\x20\
564    \x20\x20\x20-\x20google.foo.v1.NewExtension\n\x20\x20\x20\x20\x20\x20\
565    \x20\x20\x20\x20allowed_response_extensions:\n\x20\x20\x20\x20\x20\x20\
566    \x20\x20\x20\x20-\x20google.foo.v1.NewExtension\n\n\x20You\x20can\x20als\
567    o\x20specify\x20extension\x20ID\x20instead\x20of\x20fully\x20qualified\
568    \x20extension\x20name\n\x20here.\n\n\n\n\x03\x04\0\x01\x12\x03<\x08\x0f\
569    \n\x9b\x01\n\x04\x04\0\x02\0\x12\x03@\x02!\x1a\x8d\x01\x20A\x20list\x20o\
570    f\x20RPC\x20context\x20rules\x20that\x20apply\x20to\x20individual\x20API\
571    \x20methods.\n\n\x20**NOTE:**\x20All\x20service\x20configuration\x20rule\
572    s\x20follow\x20\"last\x20one\x20wins\"\x20order.\n\n\x0c\n\x05\x04\0\x02\
573    \0\x04\x12\x03@\x02\n\n\x0c\n\x05\x04\0\x02\0\x06\x12\x03@\x0b\x16\n\x0c\
574    \n\x05\x04\0\x02\0\x01\x12\x03@\x17\x1c\n\x0c\n\x05\x04\0\x02\0\x03\x12\
575    \x03@\x1f\x20\nc\n\x02\x04\x01\x12\x04E\0Y\x01\x1aW\x20A\x20context\x20r\
576    ule\x20provides\x20information\x20about\x20the\x20context\x20for\x20an\
577    \x20individual\x20API\n\x20element.\n\n\n\n\x03\x04\x01\x01\x12\x03E\x08\
578    \x13\n\x91\x01\n\x04\x04\x01\x02\0\x12\x03J\x02\x16\x1a\x83\x01\x20Selec\
579    ts\x20the\x20methods\x20to\x20which\x20this\x20rule\x20applies.\n\n\x20R\
580    efer\x20to\x20[selector][google.api.DocumentationRule.selector]\x20for\
581    \x20syntax\n\x20details.\n\n\x0c\n\x05\x04\x01\x02\0\x05\x12\x03J\x02\
582    \x08\n\x0c\n\x05\x04\x01\x02\0\x01\x12\x03J\t\x11\n\x0c\n\x05\x04\x01\
583    \x02\0\x03\x12\x03J\x14\x15\n?\n\x04\x04\x01\x02\x01\x12\x03M\x02\x20\
584    \x1a2\x20A\x20list\x20of\x20full\x20type\x20names\x20of\x20requested\x20\
585    contexts.\n\n\x0c\n\x05\x04\x01\x02\x01\x04\x12\x03M\x02\n\n\x0c\n\x05\
586    \x04\x01\x02\x01\x05\x12\x03M\x0b\x11\n\x0c\n\x05\x04\x01\x02\x01\x01\
587    \x12\x03M\x12\x1b\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03M\x1e\x1f\n>\n\
588    \x04\x04\x01\x02\x02\x12\x03P\x02\x1f\x1a1\x20A\x20list\x20of\x20full\
589    \x20type\x20names\x20of\x20provided\x20contexts.\n\n\x0c\n\x05\x04\x01\
590    \x02\x02\x04\x12\x03P\x02\n\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\x03P\x0b\
591    \x11\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\x03P\x12\x1a\n\x0c\n\x05\x04\
592    \x01\x02\x02\x03\x12\x03P\x1d\x1e\n}\n\x04\x04\x01\x02\x03\x12\x03T\x021\
593    \x1ap\x20A\x20list\x20of\x20full\x20type\x20names\x20or\x20extension\x20\
594    IDs\x20of\x20extensions\x20allowed\x20in\x20grpc\n\x20side\x20channel\
595    \x20from\x20client\x20to\x20backend.\n\n\x0c\n\x05\x04\x01\x02\x03\x04\
596    \x12\x03T\x02\n\n\x0c\n\x05\x04\x01\x02\x03\x05\x12\x03T\x0b\x11\n\x0c\n\
597    \x05\x04\x01\x02\x03\x01\x12\x03T\x12,\n\x0c\n\x05\x04\x01\x02\x03\x03\
598    \x12\x03T/0\n}\n\x04\x04\x01\x02\x04\x12\x03X\x022\x1ap\x20A\x20list\x20\
599    of\x20full\x20type\x20names\x20or\x20extension\x20IDs\x20of\x20extension\
600    s\x20allowed\x20in\x20grpc\n\x20side\x20channel\x20from\x20backend\x20to\
601    \x20client.\n\n\x0c\n\x05\x04\x01\x02\x04\x04\x12\x03X\x02\n\n\x0c\n\x05\
602    \x04\x01\x02\x04\x05\x12\x03X\x0b\x11\n\x0c\n\x05\x04\x01\x02\x04\x01\
603    \x12\x03X\x12-\n\x0c\n\x05\x04\x01\x02\x04\x03\x12\x03X01b\x06proto3\
604";
605
606static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;
607
608fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
609    ::protobuf::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
610}
611
612pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
613    file_descriptor_proto_lazy.get(|| {
614        parse_descriptor_proto()
615    })
616}