google_cloud_rust_raw/api/
auth.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/auth.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 Authentication {
28    // message fields
29    pub rules: ::protobuf::RepeatedField<AuthenticationRule>,
30    pub providers: ::protobuf::RepeatedField<AuthProvider>,
31    // special fields
32    pub unknown_fields: ::protobuf::UnknownFields,
33    pub cached_size: ::protobuf::CachedSize,
34}
35
36impl<'a> ::std::default::Default for &'a Authentication {
37    fn default() -> &'a Authentication {
38        <Authentication as ::protobuf::Message>::default_instance()
39    }
40}
41
42impl Authentication {
43    pub fn new() -> Authentication {
44        ::std::default::Default::default()
45    }
46
47    // repeated .google.api.AuthenticationRule rules = 3;
48
49
50    pub fn get_rules(&self) -> &[AuthenticationRule] {
51        &self.rules
52    }
53    pub fn clear_rules(&mut self) {
54        self.rules.clear();
55    }
56
57    // Param is passed by value, moved
58    pub fn set_rules(&mut self, v: ::protobuf::RepeatedField<AuthenticationRule>) {
59        self.rules = v;
60    }
61
62    // Mutable pointer to the field.
63    pub fn mut_rules(&mut self) -> &mut ::protobuf::RepeatedField<AuthenticationRule> {
64        &mut self.rules
65    }
66
67    // Take field
68    pub fn take_rules(&mut self) -> ::protobuf::RepeatedField<AuthenticationRule> {
69        ::std::mem::replace(&mut self.rules, ::protobuf::RepeatedField::new())
70    }
71
72    // repeated .google.api.AuthProvider providers = 4;
73
74
75    pub fn get_providers(&self) -> &[AuthProvider] {
76        &self.providers
77    }
78    pub fn clear_providers(&mut self) {
79        self.providers.clear();
80    }
81
82    // Param is passed by value, moved
83    pub fn set_providers(&mut self, v: ::protobuf::RepeatedField<AuthProvider>) {
84        self.providers = v;
85    }
86
87    // Mutable pointer to the field.
88    pub fn mut_providers(&mut self) -> &mut ::protobuf::RepeatedField<AuthProvider> {
89        &mut self.providers
90    }
91
92    // Take field
93    pub fn take_providers(&mut self) -> ::protobuf::RepeatedField<AuthProvider> {
94        ::std::mem::replace(&mut self.providers, ::protobuf::RepeatedField::new())
95    }
96}
97
98impl ::protobuf::Message for Authentication {
99    fn is_initialized(&self) -> bool {
100        for v in &self.rules {
101            if !v.is_initialized() {
102                return false;
103            }
104        };
105        for v in &self.providers {
106            if !v.is_initialized() {
107                return false;
108            }
109        };
110        true
111    }
112
113    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
114        while !is.eof()? {
115            let (field_number, wire_type) = is.read_tag_unpack()?;
116            match field_number {
117                3 => {
118                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.rules)?;
119                },
120                4 => {
121                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.providers)?;
122                },
123                _ => {
124                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
125                },
126            };
127        }
128        ::std::result::Result::Ok(())
129    }
130
131    // Compute sizes of nested messages
132    #[allow(unused_variables)]
133    fn compute_size(&self) -> u32 {
134        let mut my_size = 0;
135        for value in &self.rules {
136            let len = value.compute_size();
137            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
138        };
139        for value in &self.providers {
140            let len = value.compute_size();
141            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
142        };
143        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
144        self.cached_size.set(my_size);
145        my_size
146    }
147
148    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
149        for v in &self.rules {
150            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
151            os.write_raw_varint32(v.get_cached_size())?;
152            v.write_to_with_cached_sizes(os)?;
153        };
154        for v in &self.providers {
155            os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
156            os.write_raw_varint32(v.get_cached_size())?;
157            v.write_to_with_cached_sizes(os)?;
158        };
159        os.write_unknown_fields(self.get_unknown_fields())?;
160        ::std::result::Result::Ok(())
161    }
162
163    fn get_cached_size(&self) -> u32 {
164        self.cached_size.get()
165    }
166
167    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
168        &self.unknown_fields
169    }
170
171    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
172        &mut self.unknown_fields
173    }
174
175    fn as_any(&self) -> &dyn (::std::any::Any) {
176        self as &dyn (::std::any::Any)
177    }
178    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
179        self as &mut dyn (::std::any::Any)
180    }
181    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
182        self
183    }
184
185    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
186        Self::descriptor_static()
187    }
188
189    fn new() -> Authentication {
190        Authentication::new()
191    }
192
193    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
194        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
195        descriptor.get(|| {
196            let mut fields = ::std::vec::Vec::new();
197            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<AuthenticationRule>>(
198                "rules",
199                |m: &Authentication| { &m.rules },
200                |m: &mut Authentication| { &mut m.rules },
201            ));
202            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<AuthProvider>>(
203                "providers",
204                |m: &Authentication| { &m.providers },
205                |m: &mut Authentication| { &mut m.providers },
206            ));
207            ::protobuf::reflect::MessageDescriptor::new_pb_name::<Authentication>(
208                "Authentication",
209                fields,
210                file_descriptor_proto()
211            )
212        })
213    }
214
215    fn default_instance() -> &'static Authentication {
216        static instance: ::protobuf::rt::LazyV2<Authentication> = ::protobuf::rt::LazyV2::INIT;
217        instance.get(Authentication::new)
218    }
219}
220
221impl ::protobuf::Clear for Authentication {
222    fn clear(&mut self) {
223        self.rules.clear();
224        self.providers.clear();
225        self.unknown_fields.clear();
226    }
227}
228
229impl ::std::fmt::Debug for Authentication {
230    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
231        ::protobuf::text_format::fmt(self, f)
232    }
233}
234
235impl ::protobuf::reflect::ProtobufValue for Authentication {
236    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
237        ::protobuf::reflect::ReflectValueRef::Message(self)
238    }
239}
240
241#[derive(PartialEq,Clone,Default)]
242pub struct AuthenticationRule {
243    // message fields
244    pub selector: ::std::string::String,
245    pub oauth: ::protobuf::SingularPtrField<OAuthRequirements>,
246    pub allow_without_credential: bool,
247    pub requirements: ::protobuf::RepeatedField<AuthRequirement>,
248    // special fields
249    pub unknown_fields: ::protobuf::UnknownFields,
250    pub cached_size: ::protobuf::CachedSize,
251}
252
253impl<'a> ::std::default::Default for &'a AuthenticationRule {
254    fn default() -> &'a AuthenticationRule {
255        <AuthenticationRule as ::protobuf::Message>::default_instance()
256    }
257}
258
259impl AuthenticationRule {
260    pub fn new() -> AuthenticationRule {
261        ::std::default::Default::default()
262    }
263
264    // string selector = 1;
265
266
267    pub fn get_selector(&self) -> &str {
268        &self.selector
269    }
270    pub fn clear_selector(&mut self) {
271        self.selector.clear();
272    }
273
274    // Param is passed by value, moved
275    pub fn set_selector(&mut self, v: ::std::string::String) {
276        self.selector = v;
277    }
278
279    // Mutable pointer to the field.
280    // If field is not initialized, it is initialized with default value first.
281    pub fn mut_selector(&mut self) -> &mut ::std::string::String {
282        &mut self.selector
283    }
284
285    // Take field
286    pub fn take_selector(&mut self) -> ::std::string::String {
287        ::std::mem::replace(&mut self.selector, ::std::string::String::new())
288    }
289
290    // .google.api.OAuthRequirements oauth = 2;
291
292
293    pub fn get_oauth(&self) -> &OAuthRequirements {
294        self.oauth.as_ref().unwrap_or_else(|| <OAuthRequirements as ::protobuf::Message>::default_instance())
295    }
296    pub fn clear_oauth(&mut self) {
297        self.oauth.clear();
298    }
299
300    pub fn has_oauth(&self) -> bool {
301        self.oauth.is_some()
302    }
303
304    // Param is passed by value, moved
305    pub fn set_oauth(&mut self, v: OAuthRequirements) {
306        self.oauth = ::protobuf::SingularPtrField::some(v);
307    }
308
309    // Mutable pointer to the field.
310    // If field is not initialized, it is initialized with default value first.
311    pub fn mut_oauth(&mut self) -> &mut OAuthRequirements {
312        if self.oauth.is_none() {
313            self.oauth.set_default();
314        }
315        self.oauth.as_mut().unwrap()
316    }
317
318    // Take field
319    pub fn take_oauth(&mut self) -> OAuthRequirements {
320        self.oauth.take().unwrap_or_else(|| OAuthRequirements::new())
321    }
322
323    // bool allow_without_credential = 5;
324
325
326    pub fn get_allow_without_credential(&self) -> bool {
327        self.allow_without_credential
328    }
329    pub fn clear_allow_without_credential(&mut self) {
330        self.allow_without_credential = false;
331    }
332
333    // Param is passed by value, moved
334    pub fn set_allow_without_credential(&mut self, v: bool) {
335        self.allow_without_credential = v;
336    }
337
338    // repeated .google.api.AuthRequirement requirements = 7;
339
340
341    pub fn get_requirements(&self) -> &[AuthRequirement] {
342        &self.requirements
343    }
344    pub fn clear_requirements(&mut self) {
345        self.requirements.clear();
346    }
347
348    // Param is passed by value, moved
349    pub fn set_requirements(&mut self, v: ::protobuf::RepeatedField<AuthRequirement>) {
350        self.requirements = v;
351    }
352
353    // Mutable pointer to the field.
354    pub fn mut_requirements(&mut self) -> &mut ::protobuf::RepeatedField<AuthRequirement> {
355        &mut self.requirements
356    }
357
358    // Take field
359    pub fn take_requirements(&mut self) -> ::protobuf::RepeatedField<AuthRequirement> {
360        ::std::mem::replace(&mut self.requirements, ::protobuf::RepeatedField::new())
361    }
362}
363
364impl ::protobuf::Message for AuthenticationRule {
365    fn is_initialized(&self) -> bool {
366        for v in &self.oauth {
367            if !v.is_initialized() {
368                return false;
369            }
370        };
371        for v in &self.requirements {
372            if !v.is_initialized() {
373                return false;
374            }
375        };
376        true
377    }
378
379    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
380        while !is.eof()? {
381            let (field_number, wire_type) = is.read_tag_unpack()?;
382            match field_number {
383                1 => {
384                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.selector)?;
385                },
386                2 => {
387                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.oauth)?;
388                },
389                5 => {
390                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
391                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
392                    }
393                    let tmp = is.read_bool()?;
394                    self.allow_without_credential = tmp;
395                },
396                7 => {
397                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.requirements)?;
398                },
399                _ => {
400                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
401                },
402            };
403        }
404        ::std::result::Result::Ok(())
405    }
406
407    // Compute sizes of nested messages
408    #[allow(unused_variables)]
409    fn compute_size(&self) -> u32 {
410        let mut my_size = 0;
411        if !self.selector.is_empty() {
412            my_size += ::protobuf::rt::string_size(1, &self.selector);
413        }
414        if let Some(ref v) = self.oauth.as_ref() {
415            let len = v.compute_size();
416            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
417        }
418        if self.allow_without_credential != false {
419            my_size += 2;
420        }
421        for value in &self.requirements {
422            let len = value.compute_size();
423            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
424        };
425        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
426        self.cached_size.set(my_size);
427        my_size
428    }
429
430    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
431        if !self.selector.is_empty() {
432            os.write_string(1, &self.selector)?;
433        }
434        if let Some(ref v) = self.oauth.as_ref() {
435            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
436            os.write_raw_varint32(v.get_cached_size())?;
437            v.write_to_with_cached_sizes(os)?;
438        }
439        if self.allow_without_credential != false {
440            os.write_bool(5, self.allow_without_credential)?;
441        }
442        for v in &self.requirements {
443            os.write_tag(7, ::protobuf::wire_format::WireTypeLengthDelimited)?;
444            os.write_raw_varint32(v.get_cached_size())?;
445            v.write_to_with_cached_sizes(os)?;
446        };
447        os.write_unknown_fields(self.get_unknown_fields())?;
448        ::std::result::Result::Ok(())
449    }
450
451    fn get_cached_size(&self) -> u32 {
452        self.cached_size.get()
453    }
454
455    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
456        &self.unknown_fields
457    }
458
459    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
460        &mut self.unknown_fields
461    }
462
463    fn as_any(&self) -> &dyn (::std::any::Any) {
464        self as &dyn (::std::any::Any)
465    }
466    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
467        self as &mut dyn (::std::any::Any)
468    }
469    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
470        self
471    }
472
473    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
474        Self::descriptor_static()
475    }
476
477    fn new() -> AuthenticationRule {
478        AuthenticationRule::new()
479    }
480
481    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
482        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
483        descriptor.get(|| {
484            let mut fields = ::std::vec::Vec::new();
485            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
486                "selector",
487                |m: &AuthenticationRule| { &m.selector },
488                |m: &mut AuthenticationRule| { &mut m.selector },
489            ));
490            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<OAuthRequirements>>(
491                "oauth",
492                |m: &AuthenticationRule| { &m.oauth },
493                |m: &mut AuthenticationRule| { &mut m.oauth },
494            ));
495            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
496                "allow_without_credential",
497                |m: &AuthenticationRule| { &m.allow_without_credential },
498                |m: &mut AuthenticationRule| { &mut m.allow_without_credential },
499            ));
500            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<AuthRequirement>>(
501                "requirements",
502                |m: &AuthenticationRule| { &m.requirements },
503                |m: &mut AuthenticationRule| { &mut m.requirements },
504            ));
505            ::protobuf::reflect::MessageDescriptor::new_pb_name::<AuthenticationRule>(
506                "AuthenticationRule",
507                fields,
508                file_descriptor_proto()
509            )
510        })
511    }
512
513    fn default_instance() -> &'static AuthenticationRule {
514        static instance: ::protobuf::rt::LazyV2<AuthenticationRule> = ::protobuf::rt::LazyV2::INIT;
515        instance.get(AuthenticationRule::new)
516    }
517}
518
519impl ::protobuf::Clear for AuthenticationRule {
520    fn clear(&mut self) {
521        self.selector.clear();
522        self.oauth.clear();
523        self.allow_without_credential = false;
524        self.requirements.clear();
525        self.unknown_fields.clear();
526    }
527}
528
529impl ::std::fmt::Debug for AuthenticationRule {
530    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
531        ::protobuf::text_format::fmt(self, f)
532    }
533}
534
535impl ::protobuf::reflect::ProtobufValue for AuthenticationRule {
536    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
537        ::protobuf::reflect::ReflectValueRef::Message(self)
538    }
539}
540
541#[derive(PartialEq,Clone,Default)]
542pub struct JwtLocation {
543    // message fields
544    pub value_prefix: ::std::string::String,
545    // message oneof groups
546    pub field_in: ::std::option::Option<JwtLocation_oneof_in>,
547    // special fields
548    pub unknown_fields: ::protobuf::UnknownFields,
549    pub cached_size: ::protobuf::CachedSize,
550}
551
552impl<'a> ::std::default::Default for &'a JwtLocation {
553    fn default() -> &'a JwtLocation {
554        <JwtLocation as ::protobuf::Message>::default_instance()
555    }
556}
557
558#[derive(Clone,PartialEq,Debug)]
559pub enum JwtLocation_oneof_in {
560    header(::std::string::String),
561    query(::std::string::String),
562    cookie(::std::string::String),
563}
564
565impl JwtLocation {
566    pub fn new() -> JwtLocation {
567        ::std::default::Default::default()
568    }
569
570    // string header = 1;
571
572
573    pub fn get_header(&self) -> &str {
574        match self.field_in {
575            ::std::option::Option::Some(JwtLocation_oneof_in::header(ref v)) => v,
576            _ => "",
577        }
578    }
579    pub fn clear_header(&mut self) {
580        self.field_in = ::std::option::Option::None;
581    }
582
583    pub fn has_header(&self) -> bool {
584        match self.field_in {
585            ::std::option::Option::Some(JwtLocation_oneof_in::header(..)) => true,
586            _ => false,
587        }
588    }
589
590    // Param is passed by value, moved
591    pub fn set_header(&mut self, v: ::std::string::String) {
592        self.field_in = ::std::option::Option::Some(JwtLocation_oneof_in::header(v))
593    }
594
595    // Mutable pointer to the field.
596    pub fn mut_header(&mut self) -> &mut ::std::string::String {
597        if let ::std::option::Option::Some(JwtLocation_oneof_in::header(_)) = self.field_in {
598        } else {
599            self.field_in = ::std::option::Option::Some(JwtLocation_oneof_in::header(::std::string::String::new()));
600        }
601        match self.field_in {
602            ::std::option::Option::Some(JwtLocation_oneof_in::header(ref mut v)) => v,
603            _ => panic!(),
604        }
605    }
606
607    // Take field
608    pub fn take_header(&mut self) -> ::std::string::String {
609        if self.has_header() {
610            match self.field_in.take() {
611                ::std::option::Option::Some(JwtLocation_oneof_in::header(v)) => v,
612                _ => panic!(),
613            }
614        } else {
615            ::std::string::String::new()
616        }
617    }
618
619    // string query = 2;
620
621
622    pub fn get_query(&self) -> &str {
623        match self.field_in {
624            ::std::option::Option::Some(JwtLocation_oneof_in::query(ref v)) => v,
625            _ => "",
626        }
627    }
628    pub fn clear_query(&mut self) {
629        self.field_in = ::std::option::Option::None;
630    }
631
632    pub fn has_query(&self) -> bool {
633        match self.field_in {
634            ::std::option::Option::Some(JwtLocation_oneof_in::query(..)) => true,
635            _ => false,
636        }
637    }
638
639    // Param is passed by value, moved
640    pub fn set_query(&mut self, v: ::std::string::String) {
641        self.field_in = ::std::option::Option::Some(JwtLocation_oneof_in::query(v))
642    }
643
644    // Mutable pointer to the field.
645    pub fn mut_query(&mut self) -> &mut ::std::string::String {
646        if let ::std::option::Option::Some(JwtLocation_oneof_in::query(_)) = self.field_in {
647        } else {
648            self.field_in = ::std::option::Option::Some(JwtLocation_oneof_in::query(::std::string::String::new()));
649        }
650        match self.field_in {
651            ::std::option::Option::Some(JwtLocation_oneof_in::query(ref mut v)) => v,
652            _ => panic!(),
653        }
654    }
655
656    // Take field
657    pub fn take_query(&mut self) -> ::std::string::String {
658        if self.has_query() {
659            match self.field_in.take() {
660                ::std::option::Option::Some(JwtLocation_oneof_in::query(v)) => v,
661                _ => panic!(),
662            }
663        } else {
664            ::std::string::String::new()
665        }
666    }
667
668    // string cookie = 4;
669
670
671    pub fn get_cookie(&self) -> &str {
672        match self.field_in {
673            ::std::option::Option::Some(JwtLocation_oneof_in::cookie(ref v)) => v,
674            _ => "",
675        }
676    }
677    pub fn clear_cookie(&mut self) {
678        self.field_in = ::std::option::Option::None;
679    }
680
681    pub fn has_cookie(&self) -> bool {
682        match self.field_in {
683            ::std::option::Option::Some(JwtLocation_oneof_in::cookie(..)) => true,
684            _ => false,
685        }
686    }
687
688    // Param is passed by value, moved
689    pub fn set_cookie(&mut self, v: ::std::string::String) {
690        self.field_in = ::std::option::Option::Some(JwtLocation_oneof_in::cookie(v))
691    }
692
693    // Mutable pointer to the field.
694    pub fn mut_cookie(&mut self) -> &mut ::std::string::String {
695        if let ::std::option::Option::Some(JwtLocation_oneof_in::cookie(_)) = self.field_in {
696        } else {
697            self.field_in = ::std::option::Option::Some(JwtLocation_oneof_in::cookie(::std::string::String::new()));
698        }
699        match self.field_in {
700            ::std::option::Option::Some(JwtLocation_oneof_in::cookie(ref mut v)) => v,
701            _ => panic!(),
702        }
703    }
704
705    // Take field
706    pub fn take_cookie(&mut self) -> ::std::string::String {
707        if self.has_cookie() {
708            match self.field_in.take() {
709                ::std::option::Option::Some(JwtLocation_oneof_in::cookie(v)) => v,
710                _ => panic!(),
711            }
712        } else {
713            ::std::string::String::new()
714        }
715    }
716
717    // string value_prefix = 3;
718
719
720    pub fn get_value_prefix(&self) -> &str {
721        &self.value_prefix
722    }
723    pub fn clear_value_prefix(&mut self) {
724        self.value_prefix.clear();
725    }
726
727    // Param is passed by value, moved
728    pub fn set_value_prefix(&mut self, v: ::std::string::String) {
729        self.value_prefix = v;
730    }
731
732    // Mutable pointer to the field.
733    // If field is not initialized, it is initialized with default value first.
734    pub fn mut_value_prefix(&mut self) -> &mut ::std::string::String {
735        &mut self.value_prefix
736    }
737
738    // Take field
739    pub fn take_value_prefix(&mut self) -> ::std::string::String {
740        ::std::mem::replace(&mut self.value_prefix, ::std::string::String::new())
741    }
742}
743
744impl ::protobuf::Message for JwtLocation {
745    fn is_initialized(&self) -> bool {
746        true
747    }
748
749    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
750        while !is.eof()? {
751            let (field_number, wire_type) = is.read_tag_unpack()?;
752            match field_number {
753                1 => {
754                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
755                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
756                    }
757                    self.field_in = ::std::option::Option::Some(JwtLocation_oneof_in::header(is.read_string()?));
758                },
759                2 => {
760                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
761                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
762                    }
763                    self.field_in = ::std::option::Option::Some(JwtLocation_oneof_in::query(is.read_string()?));
764                },
765                4 => {
766                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
767                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
768                    }
769                    self.field_in = ::std::option::Option::Some(JwtLocation_oneof_in::cookie(is.read_string()?));
770                },
771                3 => {
772                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.value_prefix)?;
773                },
774                _ => {
775                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
776                },
777            };
778        }
779        ::std::result::Result::Ok(())
780    }
781
782    // Compute sizes of nested messages
783    #[allow(unused_variables)]
784    fn compute_size(&self) -> u32 {
785        let mut my_size = 0;
786        if !self.value_prefix.is_empty() {
787            my_size += ::protobuf::rt::string_size(3, &self.value_prefix);
788        }
789        if let ::std::option::Option::Some(ref v) = self.field_in {
790            match v {
791                &JwtLocation_oneof_in::header(ref v) => {
792                    my_size += ::protobuf::rt::string_size(1, &v);
793                },
794                &JwtLocation_oneof_in::query(ref v) => {
795                    my_size += ::protobuf::rt::string_size(2, &v);
796                },
797                &JwtLocation_oneof_in::cookie(ref v) => {
798                    my_size += ::protobuf::rt::string_size(4, &v);
799                },
800            };
801        }
802        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
803        self.cached_size.set(my_size);
804        my_size
805    }
806
807    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
808        if !self.value_prefix.is_empty() {
809            os.write_string(3, &self.value_prefix)?;
810        }
811        if let ::std::option::Option::Some(ref v) = self.field_in {
812            match v {
813                &JwtLocation_oneof_in::header(ref v) => {
814                    os.write_string(1, v)?;
815                },
816                &JwtLocation_oneof_in::query(ref v) => {
817                    os.write_string(2, v)?;
818                },
819                &JwtLocation_oneof_in::cookie(ref v) => {
820                    os.write_string(4, v)?;
821                },
822            };
823        }
824        os.write_unknown_fields(self.get_unknown_fields())?;
825        ::std::result::Result::Ok(())
826    }
827
828    fn get_cached_size(&self) -> u32 {
829        self.cached_size.get()
830    }
831
832    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
833        &self.unknown_fields
834    }
835
836    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
837        &mut self.unknown_fields
838    }
839
840    fn as_any(&self) -> &dyn (::std::any::Any) {
841        self as &dyn (::std::any::Any)
842    }
843    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
844        self as &mut dyn (::std::any::Any)
845    }
846    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
847        self
848    }
849
850    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
851        Self::descriptor_static()
852    }
853
854    fn new() -> JwtLocation {
855        JwtLocation::new()
856    }
857
858    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
859        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
860        descriptor.get(|| {
861            let mut fields = ::std::vec::Vec::new();
862            fields.push(::protobuf::reflect::accessor::make_singular_string_accessor::<_>(
863                "header",
864                JwtLocation::has_header,
865                JwtLocation::get_header,
866            ));
867            fields.push(::protobuf::reflect::accessor::make_singular_string_accessor::<_>(
868                "query",
869                JwtLocation::has_query,
870                JwtLocation::get_query,
871            ));
872            fields.push(::protobuf::reflect::accessor::make_singular_string_accessor::<_>(
873                "cookie",
874                JwtLocation::has_cookie,
875                JwtLocation::get_cookie,
876            ));
877            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
878                "value_prefix",
879                |m: &JwtLocation| { &m.value_prefix },
880                |m: &mut JwtLocation| { &mut m.value_prefix },
881            ));
882            ::protobuf::reflect::MessageDescriptor::new_pb_name::<JwtLocation>(
883                "JwtLocation",
884                fields,
885                file_descriptor_proto()
886            )
887        })
888    }
889
890    fn default_instance() -> &'static JwtLocation {
891        static instance: ::protobuf::rt::LazyV2<JwtLocation> = ::protobuf::rt::LazyV2::INIT;
892        instance.get(JwtLocation::new)
893    }
894}
895
896impl ::protobuf::Clear for JwtLocation {
897    fn clear(&mut self) {
898        self.field_in = ::std::option::Option::None;
899        self.field_in = ::std::option::Option::None;
900        self.field_in = ::std::option::Option::None;
901        self.value_prefix.clear();
902        self.unknown_fields.clear();
903    }
904}
905
906impl ::std::fmt::Debug for JwtLocation {
907    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
908        ::protobuf::text_format::fmt(self, f)
909    }
910}
911
912impl ::protobuf::reflect::ProtobufValue for JwtLocation {
913    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
914        ::protobuf::reflect::ReflectValueRef::Message(self)
915    }
916}
917
918#[derive(PartialEq,Clone,Default)]
919pub struct AuthProvider {
920    // message fields
921    pub id: ::std::string::String,
922    pub issuer: ::std::string::String,
923    pub jwks_uri: ::std::string::String,
924    pub audiences: ::std::string::String,
925    pub authorization_url: ::std::string::String,
926    pub jwt_locations: ::protobuf::RepeatedField<JwtLocation>,
927    // special fields
928    pub unknown_fields: ::protobuf::UnknownFields,
929    pub cached_size: ::protobuf::CachedSize,
930}
931
932impl<'a> ::std::default::Default for &'a AuthProvider {
933    fn default() -> &'a AuthProvider {
934        <AuthProvider as ::protobuf::Message>::default_instance()
935    }
936}
937
938impl AuthProvider {
939    pub fn new() -> AuthProvider {
940        ::std::default::Default::default()
941    }
942
943    // string id = 1;
944
945
946    pub fn get_id(&self) -> &str {
947        &self.id
948    }
949    pub fn clear_id(&mut self) {
950        self.id.clear();
951    }
952
953    // Param is passed by value, moved
954    pub fn set_id(&mut self, v: ::std::string::String) {
955        self.id = v;
956    }
957
958    // Mutable pointer to the field.
959    // If field is not initialized, it is initialized with default value first.
960    pub fn mut_id(&mut self) -> &mut ::std::string::String {
961        &mut self.id
962    }
963
964    // Take field
965    pub fn take_id(&mut self) -> ::std::string::String {
966        ::std::mem::replace(&mut self.id, ::std::string::String::new())
967    }
968
969    // string issuer = 2;
970
971
972    pub fn get_issuer(&self) -> &str {
973        &self.issuer
974    }
975    pub fn clear_issuer(&mut self) {
976        self.issuer.clear();
977    }
978
979    // Param is passed by value, moved
980    pub fn set_issuer(&mut self, v: ::std::string::String) {
981        self.issuer = v;
982    }
983
984    // Mutable pointer to the field.
985    // If field is not initialized, it is initialized with default value first.
986    pub fn mut_issuer(&mut self) -> &mut ::std::string::String {
987        &mut self.issuer
988    }
989
990    // Take field
991    pub fn take_issuer(&mut self) -> ::std::string::String {
992        ::std::mem::replace(&mut self.issuer, ::std::string::String::new())
993    }
994
995    // string jwks_uri = 3;
996
997
998    pub fn get_jwks_uri(&self) -> &str {
999        &self.jwks_uri
1000    }
1001    pub fn clear_jwks_uri(&mut self) {
1002        self.jwks_uri.clear();
1003    }
1004
1005    // Param is passed by value, moved
1006    pub fn set_jwks_uri(&mut self, v: ::std::string::String) {
1007        self.jwks_uri = v;
1008    }
1009
1010    // Mutable pointer to the field.
1011    // If field is not initialized, it is initialized with default value first.
1012    pub fn mut_jwks_uri(&mut self) -> &mut ::std::string::String {
1013        &mut self.jwks_uri
1014    }
1015
1016    // Take field
1017    pub fn take_jwks_uri(&mut self) -> ::std::string::String {
1018        ::std::mem::replace(&mut self.jwks_uri, ::std::string::String::new())
1019    }
1020
1021    // string audiences = 4;
1022
1023
1024    pub fn get_audiences(&self) -> &str {
1025        &self.audiences
1026    }
1027    pub fn clear_audiences(&mut self) {
1028        self.audiences.clear();
1029    }
1030
1031    // Param is passed by value, moved
1032    pub fn set_audiences(&mut self, v: ::std::string::String) {
1033        self.audiences = v;
1034    }
1035
1036    // Mutable pointer to the field.
1037    // If field is not initialized, it is initialized with default value first.
1038    pub fn mut_audiences(&mut self) -> &mut ::std::string::String {
1039        &mut self.audiences
1040    }
1041
1042    // Take field
1043    pub fn take_audiences(&mut self) -> ::std::string::String {
1044        ::std::mem::replace(&mut self.audiences, ::std::string::String::new())
1045    }
1046
1047    // string authorization_url = 5;
1048
1049
1050    pub fn get_authorization_url(&self) -> &str {
1051        &self.authorization_url
1052    }
1053    pub fn clear_authorization_url(&mut self) {
1054        self.authorization_url.clear();
1055    }
1056
1057    // Param is passed by value, moved
1058    pub fn set_authorization_url(&mut self, v: ::std::string::String) {
1059        self.authorization_url = v;
1060    }
1061
1062    // Mutable pointer to the field.
1063    // If field is not initialized, it is initialized with default value first.
1064    pub fn mut_authorization_url(&mut self) -> &mut ::std::string::String {
1065        &mut self.authorization_url
1066    }
1067
1068    // Take field
1069    pub fn take_authorization_url(&mut self) -> ::std::string::String {
1070        ::std::mem::replace(&mut self.authorization_url, ::std::string::String::new())
1071    }
1072
1073    // repeated .google.api.JwtLocation jwt_locations = 6;
1074
1075
1076    pub fn get_jwt_locations(&self) -> &[JwtLocation] {
1077        &self.jwt_locations
1078    }
1079    pub fn clear_jwt_locations(&mut self) {
1080        self.jwt_locations.clear();
1081    }
1082
1083    // Param is passed by value, moved
1084    pub fn set_jwt_locations(&mut self, v: ::protobuf::RepeatedField<JwtLocation>) {
1085        self.jwt_locations = v;
1086    }
1087
1088    // Mutable pointer to the field.
1089    pub fn mut_jwt_locations(&mut self) -> &mut ::protobuf::RepeatedField<JwtLocation> {
1090        &mut self.jwt_locations
1091    }
1092
1093    // Take field
1094    pub fn take_jwt_locations(&mut self) -> ::protobuf::RepeatedField<JwtLocation> {
1095        ::std::mem::replace(&mut self.jwt_locations, ::protobuf::RepeatedField::new())
1096    }
1097}
1098
1099impl ::protobuf::Message for AuthProvider {
1100    fn is_initialized(&self) -> bool {
1101        for v in &self.jwt_locations {
1102            if !v.is_initialized() {
1103                return false;
1104            }
1105        };
1106        true
1107    }
1108
1109    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1110        while !is.eof()? {
1111            let (field_number, wire_type) = is.read_tag_unpack()?;
1112            match field_number {
1113                1 => {
1114                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.id)?;
1115                },
1116                2 => {
1117                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.issuer)?;
1118                },
1119                3 => {
1120                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.jwks_uri)?;
1121                },
1122                4 => {
1123                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.audiences)?;
1124                },
1125                5 => {
1126                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.authorization_url)?;
1127                },
1128                6 => {
1129                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.jwt_locations)?;
1130                },
1131                _ => {
1132                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1133                },
1134            };
1135        }
1136        ::std::result::Result::Ok(())
1137    }
1138
1139    // Compute sizes of nested messages
1140    #[allow(unused_variables)]
1141    fn compute_size(&self) -> u32 {
1142        let mut my_size = 0;
1143        if !self.id.is_empty() {
1144            my_size += ::protobuf::rt::string_size(1, &self.id);
1145        }
1146        if !self.issuer.is_empty() {
1147            my_size += ::protobuf::rt::string_size(2, &self.issuer);
1148        }
1149        if !self.jwks_uri.is_empty() {
1150            my_size += ::protobuf::rt::string_size(3, &self.jwks_uri);
1151        }
1152        if !self.audiences.is_empty() {
1153            my_size += ::protobuf::rt::string_size(4, &self.audiences);
1154        }
1155        if !self.authorization_url.is_empty() {
1156            my_size += ::protobuf::rt::string_size(5, &self.authorization_url);
1157        }
1158        for value in &self.jwt_locations {
1159            let len = value.compute_size();
1160            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1161        };
1162        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1163        self.cached_size.set(my_size);
1164        my_size
1165    }
1166
1167    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1168        if !self.id.is_empty() {
1169            os.write_string(1, &self.id)?;
1170        }
1171        if !self.issuer.is_empty() {
1172            os.write_string(2, &self.issuer)?;
1173        }
1174        if !self.jwks_uri.is_empty() {
1175            os.write_string(3, &self.jwks_uri)?;
1176        }
1177        if !self.audiences.is_empty() {
1178            os.write_string(4, &self.audiences)?;
1179        }
1180        if !self.authorization_url.is_empty() {
1181            os.write_string(5, &self.authorization_url)?;
1182        }
1183        for v in &self.jwt_locations {
1184            os.write_tag(6, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1185            os.write_raw_varint32(v.get_cached_size())?;
1186            v.write_to_with_cached_sizes(os)?;
1187        };
1188        os.write_unknown_fields(self.get_unknown_fields())?;
1189        ::std::result::Result::Ok(())
1190    }
1191
1192    fn get_cached_size(&self) -> u32 {
1193        self.cached_size.get()
1194    }
1195
1196    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1197        &self.unknown_fields
1198    }
1199
1200    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1201        &mut self.unknown_fields
1202    }
1203
1204    fn as_any(&self) -> &dyn (::std::any::Any) {
1205        self as &dyn (::std::any::Any)
1206    }
1207    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1208        self as &mut dyn (::std::any::Any)
1209    }
1210    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1211        self
1212    }
1213
1214    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1215        Self::descriptor_static()
1216    }
1217
1218    fn new() -> AuthProvider {
1219        AuthProvider::new()
1220    }
1221
1222    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1223        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1224        descriptor.get(|| {
1225            let mut fields = ::std::vec::Vec::new();
1226            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1227                "id",
1228                |m: &AuthProvider| { &m.id },
1229                |m: &mut AuthProvider| { &mut m.id },
1230            ));
1231            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1232                "issuer",
1233                |m: &AuthProvider| { &m.issuer },
1234                |m: &mut AuthProvider| { &mut m.issuer },
1235            ));
1236            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1237                "jwks_uri",
1238                |m: &AuthProvider| { &m.jwks_uri },
1239                |m: &mut AuthProvider| { &mut m.jwks_uri },
1240            ));
1241            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1242                "audiences",
1243                |m: &AuthProvider| { &m.audiences },
1244                |m: &mut AuthProvider| { &mut m.audiences },
1245            ));
1246            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1247                "authorization_url",
1248                |m: &AuthProvider| { &m.authorization_url },
1249                |m: &mut AuthProvider| { &mut m.authorization_url },
1250            ));
1251            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<JwtLocation>>(
1252                "jwt_locations",
1253                |m: &AuthProvider| { &m.jwt_locations },
1254                |m: &mut AuthProvider| { &mut m.jwt_locations },
1255            ));
1256            ::protobuf::reflect::MessageDescriptor::new_pb_name::<AuthProvider>(
1257                "AuthProvider",
1258                fields,
1259                file_descriptor_proto()
1260            )
1261        })
1262    }
1263
1264    fn default_instance() -> &'static AuthProvider {
1265        static instance: ::protobuf::rt::LazyV2<AuthProvider> = ::protobuf::rt::LazyV2::INIT;
1266        instance.get(AuthProvider::new)
1267    }
1268}
1269
1270impl ::protobuf::Clear for AuthProvider {
1271    fn clear(&mut self) {
1272        self.id.clear();
1273        self.issuer.clear();
1274        self.jwks_uri.clear();
1275        self.audiences.clear();
1276        self.authorization_url.clear();
1277        self.jwt_locations.clear();
1278        self.unknown_fields.clear();
1279    }
1280}
1281
1282impl ::std::fmt::Debug for AuthProvider {
1283    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1284        ::protobuf::text_format::fmt(self, f)
1285    }
1286}
1287
1288impl ::protobuf::reflect::ProtobufValue for AuthProvider {
1289    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1290        ::protobuf::reflect::ReflectValueRef::Message(self)
1291    }
1292}
1293
1294#[derive(PartialEq,Clone,Default)]
1295pub struct OAuthRequirements {
1296    // message fields
1297    pub canonical_scopes: ::std::string::String,
1298    // special fields
1299    pub unknown_fields: ::protobuf::UnknownFields,
1300    pub cached_size: ::protobuf::CachedSize,
1301}
1302
1303impl<'a> ::std::default::Default for &'a OAuthRequirements {
1304    fn default() -> &'a OAuthRequirements {
1305        <OAuthRequirements as ::protobuf::Message>::default_instance()
1306    }
1307}
1308
1309impl OAuthRequirements {
1310    pub fn new() -> OAuthRequirements {
1311        ::std::default::Default::default()
1312    }
1313
1314    // string canonical_scopes = 1;
1315
1316
1317    pub fn get_canonical_scopes(&self) -> &str {
1318        &self.canonical_scopes
1319    }
1320    pub fn clear_canonical_scopes(&mut self) {
1321        self.canonical_scopes.clear();
1322    }
1323
1324    // Param is passed by value, moved
1325    pub fn set_canonical_scopes(&mut self, v: ::std::string::String) {
1326        self.canonical_scopes = v;
1327    }
1328
1329    // Mutable pointer to the field.
1330    // If field is not initialized, it is initialized with default value first.
1331    pub fn mut_canonical_scopes(&mut self) -> &mut ::std::string::String {
1332        &mut self.canonical_scopes
1333    }
1334
1335    // Take field
1336    pub fn take_canonical_scopes(&mut self) -> ::std::string::String {
1337        ::std::mem::replace(&mut self.canonical_scopes, ::std::string::String::new())
1338    }
1339}
1340
1341impl ::protobuf::Message for OAuthRequirements {
1342    fn is_initialized(&self) -> bool {
1343        true
1344    }
1345
1346    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1347        while !is.eof()? {
1348            let (field_number, wire_type) = is.read_tag_unpack()?;
1349            match field_number {
1350                1 => {
1351                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.canonical_scopes)?;
1352                },
1353                _ => {
1354                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1355                },
1356            };
1357        }
1358        ::std::result::Result::Ok(())
1359    }
1360
1361    // Compute sizes of nested messages
1362    #[allow(unused_variables)]
1363    fn compute_size(&self) -> u32 {
1364        let mut my_size = 0;
1365        if !self.canonical_scopes.is_empty() {
1366            my_size += ::protobuf::rt::string_size(1, &self.canonical_scopes);
1367        }
1368        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1369        self.cached_size.set(my_size);
1370        my_size
1371    }
1372
1373    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1374        if !self.canonical_scopes.is_empty() {
1375            os.write_string(1, &self.canonical_scopes)?;
1376        }
1377        os.write_unknown_fields(self.get_unknown_fields())?;
1378        ::std::result::Result::Ok(())
1379    }
1380
1381    fn get_cached_size(&self) -> u32 {
1382        self.cached_size.get()
1383    }
1384
1385    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1386        &self.unknown_fields
1387    }
1388
1389    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1390        &mut self.unknown_fields
1391    }
1392
1393    fn as_any(&self) -> &dyn (::std::any::Any) {
1394        self as &dyn (::std::any::Any)
1395    }
1396    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1397        self as &mut dyn (::std::any::Any)
1398    }
1399    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1400        self
1401    }
1402
1403    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1404        Self::descriptor_static()
1405    }
1406
1407    fn new() -> OAuthRequirements {
1408        OAuthRequirements::new()
1409    }
1410
1411    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1412        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1413        descriptor.get(|| {
1414            let mut fields = ::std::vec::Vec::new();
1415            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1416                "canonical_scopes",
1417                |m: &OAuthRequirements| { &m.canonical_scopes },
1418                |m: &mut OAuthRequirements| { &mut m.canonical_scopes },
1419            ));
1420            ::protobuf::reflect::MessageDescriptor::new_pb_name::<OAuthRequirements>(
1421                "OAuthRequirements",
1422                fields,
1423                file_descriptor_proto()
1424            )
1425        })
1426    }
1427
1428    fn default_instance() -> &'static OAuthRequirements {
1429        static instance: ::protobuf::rt::LazyV2<OAuthRequirements> = ::protobuf::rt::LazyV2::INIT;
1430        instance.get(OAuthRequirements::new)
1431    }
1432}
1433
1434impl ::protobuf::Clear for OAuthRequirements {
1435    fn clear(&mut self) {
1436        self.canonical_scopes.clear();
1437        self.unknown_fields.clear();
1438    }
1439}
1440
1441impl ::std::fmt::Debug for OAuthRequirements {
1442    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1443        ::protobuf::text_format::fmt(self, f)
1444    }
1445}
1446
1447impl ::protobuf::reflect::ProtobufValue for OAuthRequirements {
1448    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1449        ::protobuf::reflect::ReflectValueRef::Message(self)
1450    }
1451}
1452
1453#[derive(PartialEq,Clone,Default)]
1454pub struct AuthRequirement {
1455    // message fields
1456    pub provider_id: ::std::string::String,
1457    pub audiences: ::std::string::String,
1458    // special fields
1459    pub unknown_fields: ::protobuf::UnknownFields,
1460    pub cached_size: ::protobuf::CachedSize,
1461}
1462
1463impl<'a> ::std::default::Default for &'a AuthRequirement {
1464    fn default() -> &'a AuthRequirement {
1465        <AuthRequirement as ::protobuf::Message>::default_instance()
1466    }
1467}
1468
1469impl AuthRequirement {
1470    pub fn new() -> AuthRequirement {
1471        ::std::default::Default::default()
1472    }
1473
1474    // string provider_id = 1;
1475
1476
1477    pub fn get_provider_id(&self) -> &str {
1478        &self.provider_id
1479    }
1480    pub fn clear_provider_id(&mut self) {
1481        self.provider_id.clear();
1482    }
1483
1484    // Param is passed by value, moved
1485    pub fn set_provider_id(&mut self, v: ::std::string::String) {
1486        self.provider_id = v;
1487    }
1488
1489    // Mutable pointer to the field.
1490    // If field is not initialized, it is initialized with default value first.
1491    pub fn mut_provider_id(&mut self) -> &mut ::std::string::String {
1492        &mut self.provider_id
1493    }
1494
1495    // Take field
1496    pub fn take_provider_id(&mut self) -> ::std::string::String {
1497        ::std::mem::replace(&mut self.provider_id, ::std::string::String::new())
1498    }
1499
1500    // string audiences = 2;
1501
1502
1503    pub fn get_audiences(&self) -> &str {
1504        &self.audiences
1505    }
1506    pub fn clear_audiences(&mut self) {
1507        self.audiences.clear();
1508    }
1509
1510    // Param is passed by value, moved
1511    pub fn set_audiences(&mut self, v: ::std::string::String) {
1512        self.audiences = v;
1513    }
1514
1515    // Mutable pointer to the field.
1516    // If field is not initialized, it is initialized with default value first.
1517    pub fn mut_audiences(&mut self) -> &mut ::std::string::String {
1518        &mut self.audiences
1519    }
1520
1521    // Take field
1522    pub fn take_audiences(&mut self) -> ::std::string::String {
1523        ::std::mem::replace(&mut self.audiences, ::std::string::String::new())
1524    }
1525}
1526
1527impl ::protobuf::Message for AuthRequirement {
1528    fn is_initialized(&self) -> bool {
1529        true
1530    }
1531
1532    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1533        while !is.eof()? {
1534            let (field_number, wire_type) = is.read_tag_unpack()?;
1535            match field_number {
1536                1 => {
1537                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.provider_id)?;
1538                },
1539                2 => {
1540                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.audiences)?;
1541                },
1542                _ => {
1543                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1544                },
1545            };
1546        }
1547        ::std::result::Result::Ok(())
1548    }
1549
1550    // Compute sizes of nested messages
1551    #[allow(unused_variables)]
1552    fn compute_size(&self) -> u32 {
1553        let mut my_size = 0;
1554        if !self.provider_id.is_empty() {
1555            my_size += ::protobuf::rt::string_size(1, &self.provider_id);
1556        }
1557        if !self.audiences.is_empty() {
1558            my_size += ::protobuf::rt::string_size(2, &self.audiences);
1559        }
1560        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1561        self.cached_size.set(my_size);
1562        my_size
1563    }
1564
1565    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1566        if !self.provider_id.is_empty() {
1567            os.write_string(1, &self.provider_id)?;
1568        }
1569        if !self.audiences.is_empty() {
1570            os.write_string(2, &self.audiences)?;
1571        }
1572        os.write_unknown_fields(self.get_unknown_fields())?;
1573        ::std::result::Result::Ok(())
1574    }
1575
1576    fn get_cached_size(&self) -> u32 {
1577        self.cached_size.get()
1578    }
1579
1580    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1581        &self.unknown_fields
1582    }
1583
1584    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1585        &mut self.unknown_fields
1586    }
1587
1588    fn as_any(&self) -> &dyn (::std::any::Any) {
1589        self as &dyn (::std::any::Any)
1590    }
1591    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1592        self as &mut dyn (::std::any::Any)
1593    }
1594    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1595        self
1596    }
1597
1598    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1599        Self::descriptor_static()
1600    }
1601
1602    fn new() -> AuthRequirement {
1603        AuthRequirement::new()
1604    }
1605
1606    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1607        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1608        descriptor.get(|| {
1609            let mut fields = ::std::vec::Vec::new();
1610            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1611                "provider_id",
1612                |m: &AuthRequirement| { &m.provider_id },
1613                |m: &mut AuthRequirement| { &mut m.provider_id },
1614            ));
1615            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1616                "audiences",
1617                |m: &AuthRequirement| { &m.audiences },
1618                |m: &mut AuthRequirement| { &mut m.audiences },
1619            ));
1620            ::protobuf::reflect::MessageDescriptor::new_pb_name::<AuthRequirement>(
1621                "AuthRequirement",
1622                fields,
1623                file_descriptor_proto()
1624            )
1625        })
1626    }
1627
1628    fn default_instance() -> &'static AuthRequirement {
1629        static instance: ::protobuf::rt::LazyV2<AuthRequirement> = ::protobuf::rt::LazyV2::INIT;
1630        instance.get(AuthRequirement::new)
1631    }
1632}
1633
1634impl ::protobuf::Clear for AuthRequirement {
1635    fn clear(&mut self) {
1636        self.provider_id.clear();
1637        self.audiences.clear();
1638        self.unknown_fields.clear();
1639    }
1640}
1641
1642impl ::std::fmt::Debug for AuthRequirement {
1643    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1644        ::protobuf::text_format::fmt(self, f)
1645    }
1646}
1647
1648impl ::protobuf::reflect::ProtobufValue for AuthRequirement {
1649    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1650        ::protobuf::reflect::ReflectValueRef::Message(self)
1651    }
1652}
1653
1654static file_descriptor_proto_data: &'static [u8] = b"\
1655    \n\x15google/api/auth.proto\x12\ngoogle.api\"~\n\x0eAuthentication\x124\
1656    \n\x05rules\x18\x03\x20\x03(\x0b2\x1e.google.api.AuthenticationRuleR\x05\
1657    rules\x126\n\tproviders\x18\x04\x20\x03(\x0b2\x18.google.api.AuthProvide\
1658    rR\tproviders\"\xe0\x01\n\x12AuthenticationRule\x12\x1a\n\x08selector\
1659    \x18\x01\x20\x01(\tR\x08selector\x123\n\x05oauth\x18\x02\x20\x01(\x0b2\
1660    \x1d.google.api.OAuthRequirementsR\x05oauth\x128\n\x18allow_without_cred\
1661    ential\x18\x05\x20\x01(\x08R\x16allowWithoutCredential\x12?\n\x0crequire\
1662    ments\x18\x07\x20\x03(\x0b2\x1b.google.api.AuthRequirementR\x0crequireme\
1663    nts\"\x82\x01\n\x0bJwtLocation\x12\x18\n\x06header\x18\x01\x20\x01(\tH\0\
1664    R\x06header\x12\x16\n\x05query\x18\x02\x20\x01(\tH\0R\x05query\x12\x18\n\
1665    \x06cookie\x18\x04\x20\x01(\tH\0R\x06cookie\x12!\n\x0cvalue_prefix\x18\
1666    \x03\x20\x01(\tR\x0bvaluePrefixB\x04\n\x02in\"\xda\x01\n\x0cAuthProvider\
1667    \x12\x0e\n\x02id\x18\x01\x20\x01(\tR\x02id\x12\x16\n\x06issuer\x18\x02\
1668    \x20\x01(\tR\x06issuer\x12\x19\n\x08jwks_uri\x18\x03\x20\x01(\tR\x07jwks\
1669    Uri\x12\x1c\n\taudiences\x18\x04\x20\x01(\tR\taudiences\x12+\n\x11author\
1670    ization_url\x18\x05\x20\x01(\tR\x10authorizationUrl\x12<\n\rjwt_location\
1671    s\x18\x06\x20\x03(\x0b2\x17.google.api.JwtLocationR\x0cjwtLocations\">\n\
1672    \x11OAuthRequirements\x12)\n\x10canonical_scopes\x18\x01\x20\x01(\tR\x0f\
1673    canonicalScopes\"P\n\x0fAuthRequirement\x12\x1f\n\x0bprovider_id\x18\x01\
1674    \x20\x01(\tR\nproviderId\x12\x1c\n\taudiences\x18\x02\x20\x01(\tR\taudie\
1675    ncesBk\n\x0ecom.google.apiB\tAuthProtoP\x01ZEgoogle.golang.org/genproto/\
1676    googleapis/api/serviceconfig;serviceconfig\xa2\x02\x04GAPIJ\xd3G\n\x07\
1677    \x12\x05\x0e\0\xec\x01\x01\n\xbc\x04\n\x01\x0c\x12\x03\x0e\0\x122\xb1\
1678    \x04\x20Copyright\x202023\x20Google\x20LLC\n\n\x20Licensed\x20under\x20t\
1679    he\x20Apache\x20License,\x20Version\x202.0\x20(the\x20\"License\");\n\
1680    \x20you\x20may\x20not\x20use\x20this\x20file\x20except\x20in\x20complian\
1681    ce\x20with\x20the\x20License.\n\x20You\x20may\x20obtain\x20a\x20copy\x20\
1682    of\x20the\x20License\x20at\n\n\x20\x20\x20\x20\x20http://www.apache.org/\
1683    licenses/LICENSE-2.0\n\n\x20Unless\x20required\x20by\x20applicable\x20la\
1684    w\x20or\x20agreed\x20to\x20in\x20writing,\x20software\n\x20distributed\
1685    \x20under\x20the\x20License\x20is\x20distributed\x20on\x20an\x20\"AS\x20\
1686    IS\"\x20BASIS,\n\x20WITHOUT\x20WARRANTIES\x20OR\x20CONDITIONS\x20OF\x20A\
1687    NY\x20KIND,\x20either\x20express\x20or\x20implied.\n\x20See\x20the\x20Li\
1688    cense\x20for\x20the\x20specific\x20language\x20governing\x20permissions\
1689    \x20and\n\x20limitations\x20under\x20the\x20License.\n\n\x08\n\x01\x02\
1690    \x12\x03\x10\0\x13\n\x08\n\x01\x08\x12\x03\x12\0\\\n\t\n\x02\x08\x0b\x12\
1691    \x03\x12\0\\\n\x08\n\x01\x08\x12\x03\x13\0\"\n\t\n\x02\x08\n\x12\x03\x13\
1692    \0\"\n\x08\n\x01\x08\x12\x03\x14\0*\n\t\n\x02\x08\x08\x12\x03\x14\0*\n\
1693    \x08\n\x01\x08\x12\x03\x15\0'\n\t\n\x02\x08\x01\x12\x03\x15\0'\n\x08\n\
1694    \x01\x08\x12\x03\x16\0\"\n\t\n\x02\x08$\x12\x03\x16\0\"\n\xcb\x04\n\x02\
1695    \x04\0\x12\x04*\02\x01\x1a\xbe\x04\x20`Authentication`\x20defines\x20the\
1696    \x20authentication\x20configuration\x20for\x20API\x20methods\n\x20provid\
1697    ed\x20by\x20an\x20API\x20service.\n\n\x20Example:\n\n\x20\x20\x20\x20\
1698    \x20name:\x20calendar.googleapis.com\n\x20\x20\x20\x20\x20authentication\
1699    :\n\x20\x20\x20\x20\x20\x20\x20providers:\n\x20\x20\x20\x20\x20\x20\x20-\
1700    \x20id:\x20google_calendar_auth\n\x20\x20\x20\x20\x20\x20\x20\x20\x20jwk\
1701    s_uri:\x20https://www.googleapis.com/oauth2/v1/certs\n\x20\x20\x20\x20\
1702    \x20\x20\x20\x20\x20issuer:\x20https://securetoken.google.com\n\x20\x20\
1703    \x20\x20\x20\x20\x20rules:\n\x20\x20\x20\x20\x20\x20\x20-\x20selector:\
1704    \x20\"*\"\n\x20\x20\x20\x20\x20\x20\x20\x20\x20requirements:\n\x20\x20\
1705    \x20\x20\x20\x20\x20\x20\x20\x20\x20provider_id:\x20google_calendar_auth\
1706    \n\x20\x20\x20\x20\x20\x20\x20-\x20selector:\x20google.calendar.Delegate\
1707    \n\x20\x20\x20\x20\x20\x20\x20\x20\x20oauth:\n\x20\x20\x20\x20\x20\x20\
1708    \x20\x20\x20\x20\x20canonical_scopes:\x20https://www.googleapis.com/auth\
1709    /calendar.read\n\n\n\n\x03\x04\0\x01\x12\x03*\x08\x16\n\x9e\x01\n\x04\
1710    \x04\0\x02\0\x12\x03.\x02(\x1a\x90\x01\x20A\x20list\x20of\x20authenticat\
1711    ion\x20rules\x20that\x20apply\x20to\x20individual\x20API\x20methods.\n\n\
1712    \x20**NOTE:**\x20All\x20service\x20configuration\x20rules\x20follow\x20\
1713    \"last\x20one\x20wins\"\x20order.\n\n\x0c\n\x05\x04\0\x02\0\x04\x12\x03.\
1714    \x02\n\n\x0c\n\x05\x04\0\x02\0\x06\x12\x03.\x0b\x1d\n\x0c\n\x05\x04\0\
1715    \x02\0\x01\x12\x03.\x1e#\n\x0c\n\x05\x04\0\x02\0\x03\x12\x03.&'\nQ\n\x04\
1716    \x04\0\x02\x01\x12\x031\x02&\x1aD\x20Defines\x20a\x20set\x20of\x20authen\
1717    tication\x20providers\x20that\x20a\x20service\x20supports.\n\n\x0c\n\x05\
1718    \x04\0\x02\x01\x04\x12\x031\x02\n\n\x0c\n\x05\x04\0\x02\x01\x06\x12\x031\
1719    \x0b\x17\n\x0c\n\x05\x04\0\x02\x01\x01\x12\x031\x18!\n\x0c\n\x05\x04\0\
1720    \x02\x01\x03\x12\x031$%\n\xed\x02\n\x02\x04\x01\x12\x04=\0M\x01\x1a\xe0\
1721    \x02\x20Authentication\x20rules\x20for\x20the\x20service.\n\n\x20By\x20d\
1722    efault,\x20if\x20a\x20method\x20has\x20any\x20authentication\x20requirem\
1723    ents,\x20every\x20request\n\x20must\x20include\x20a\x20valid\x20credenti\
1724    al\x20matching\x20one\x20of\x20the\x20requirements.\n\x20It's\x20an\x20e\
1725    rror\x20to\x20include\x20more\x20than\x20one\x20kind\x20of\x20credential\
1726    \x20in\x20a\x20single\n\x20request.\n\n\x20If\x20a\x20method\x20doesn't\
1727    \x20have\x20any\x20auth\x20requirements,\x20request\x20credentials\x20wi\
1728    ll\x20be\n\x20ignored.\n\n\n\n\x03\x04\x01\x01\x12\x03=\x08\x1a\n\x91\
1729    \x01\n\x04\x04\x01\x02\0\x12\x03B\x02\x16\x1a\x83\x01\x20Selects\x20the\
1730    \x20methods\x20to\x20which\x20this\x20rule\x20applies.\n\n\x20Refer\x20t\
1731    o\x20[selector][google.api.DocumentationRule.selector]\x20for\x20syntax\
1732    \n\x20details.\n\n\x0c\n\x05\x04\x01\x02\0\x05\x12\x03B\x02\x08\n\x0c\n\
1733    \x05\x04\x01\x02\0\x01\x12\x03B\t\x11\n\x0c\n\x05\x04\x01\x02\0\x03\x12\
1734    \x03B\x14\x15\n6\n\x04\x04\x01\x02\x01\x12\x03E\x02\x1e\x1a)\x20The\x20r\
1735    equirements\x20for\x20OAuth\x20credentials.\n\n\x0c\n\x05\x04\x01\x02\
1736    \x01\x06\x12\x03E\x02\x13\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03E\x14\
1737    \x19\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03E\x1c\x1d\n\x85\x01\n\x04\
1738    \x04\x01\x02\x02\x12\x03I\x02$\x1ax\x20If\x20true,\x20the\x20service\x20\
1739    accepts\x20API\x20keys\x20without\x20any\x20other\x20credential.\n\x20Th\
1740    is\x20flag\x20only\x20applies\x20to\x20HTTP\x20and\x20gRPC\x20requests.\
1741    \n\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\x03I\x02\x06\n\x0c\n\x05\x04\x01\
1742    \x02\x02\x01\x12\x03I\x07\x1f\n\x0c\n\x05\x04\x01\x02\x02\x03\x12\x03I\"\
1743    #\nD\n\x04\x04\x01\x02\x03\x12\x03L\x02,\x1a7\x20Requirements\x20for\x20\
1744    additional\x20authentication\x20providers.\n\n\x0c\n\x05\x04\x01\x02\x03\
1745    \x04\x12\x03L\x02\n\n\x0c\n\x05\x04\x01\x02\x03\x06\x12\x03L\x0b\x1a\n\
1746    \x0c\n\x05\x04\x01\x02\x03\x01\x12\x03L\x1b'\n\x0c\n\x05\x04\x01\x02\x03\
1747    \x03\x12\x03L*+\nF\n\x02\x04\x02\x12\x04P\0e\x01\x1a:\x20Specifies\x20a\
1748    \x20location\x20to\x20extract\x20JWT\x20from\x20an\x20API\x20request.\n\
1749    \n\n\n\x03\x04\x02\x01\x12\x03P\x08\x13\n\x0c\n\x04\x04\x02\x08\0\x12\
1750    \x04Q\x02Z\x03\n\x0c\n\x05\x04\x02\x08\0\x01\x12\x03Q\x08\n\n?\n\x04\x04\
1751    \x02\x02\0\x12\x03S\x04\x16\x1a2\x20Specifies\x20HTTP\x20header\x20name\
1752    \x20to\x20extract\x20JWT\x20token.\n\n\x0c\n\x05\x04\x02\x02\0\x05\x12\
1753    \x03S\x04\n\n\x0c\n\x05\x04\x02\x02\0\x01\x12\x03S\x0b\x11\n\x0c\n\x05\
1754    \x04\x02\x02\0\x03\x12\x03S\x14\x15\nG\n\x04\x04\x02\x02\x01\x12\x03V\
1755    \x04\x15\x1a:\x20Specifies\x20URL\x20query\x20parameter\x20name\x20to\
1756    \x20extract\x20JWT\x20token.\n\n\x0c\n\x05\x04\x02\x02\x01\x05\x12\x03V\
1757    \x04\n\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x03V\x0b\x10\n\x0c\n\x05\x04\
1758    \x02\x02\x01\x03\x12\x03V\x13\x14\n:\n\x04\x04\x02\x02\x02\x12\x03Y\x04\
1759    \x16\x1a-\x20Specifies\x20cookie\x20name\x20to\x20extract\x20JWT\x20toke\
1760    n.\n\n\x0c\n\x05\x04\x02\x02\x02\x05\x12\x03Y\x04\n\n\x0c\n\x05\x04\x02\
1761    \x02\x02\x01\x12\x03Y\x0b\x11\n\x0c\n\x05\x04\x02\x02\x02\x03\x12\x03Y\
1762    \x14\x15\n\xab\x03\n\x04\x04\x02\x02\x03\x12\x03d\x02\x1a\x1a\x9d\x03\
1763    \x20The\x20value\x20prefix.\x20The\x20value\x20format\x20is\x20\"value_p\
1764    refix{token}\"\n\x20Only\x20applies\x20to\x20\"in\"\x20header\x20type.\
1765    \x20Must\x20be\x20empty\x20for\x20\"in\"\x20query\x20type.\n\x20If\x20no\
1766    t\x20empty,\x20the\x20header\x20value\x20has\x20to\x20match\x20(case\x20\
1767    sensitive)\x20this\x20prefix.\n\x20If\x20not\x20matched,\x20JWT\x20will\
1768    \x20not\x20be\x20extracted.\x20If\x20matched,\x20JWT\x20will\x20be\n\x20\
1769    extracted\x20after\x20the\x20prefix\x20is\x20removed.\n\n\x20For\x20exam\
1770    ple,\x20for\x20\"Authorization:\x20Bearer\x20{JWT}\",\n\x20value_prefix=\
1771    \"Bearer\x20\"\x20with\x20a\x20space\x20at\x20the\x20end.\n\n\x0c\n\x05\
1772    \x04\x02\x02\x03\x05\x12\x03d\x02\x08\n\x0c\n\x05\x04\x02\x02\x03\x01\
1773    \x12\x03d\t\x15\n\x0c\n\x05\x04\x02\x02\x03\x03\x12\x03d\x18\x19\n\xad\
1774    \x01\n\x02\x04\x03\x12\x05j\0\xb1\x01\x01\x1a\x9f\x01\x20Configuration\
1775    \x20for\x20an\x20authentication\x20provider,\x20including\x20support\x20\
1776    for\n\x20[JSON\x20Web\x20Token\n\x20(JWT)](https://tools.ietf.org/html/d\
1777    raft-ietf-oauth-json-web-token-32).\n\n\n\n\x03\x04\x03\x01\x12\x03j\x08\
1778    \x14\n\x92\x01\n\x04\x04\x03\x02\0\x12\x03o\x02\x10\x1a\x84\x01\x20The\
1779    \x20unique\x20identifier\x20of\x20the\x20auth\x20provider.\x20It\x20will\
1780    \x20be\x20referred\x20to\x20by\n\x20`AuthRequirement.provider_id`.\n\n\
1781    \x20Example:\x20\"bookstore_auth\".\n\n\x0c\n\x05\x04\x03\x02\0\x05\x12\
1782    \x03o\x02\x08\n\x0c\n\x05\x04\x03\x02\0\x01\x12\x03o\t\x0b\n\x0c\n\x05\
1783    \x04\x03\x02\0\x03\x12\x03o\x0e\x0f\n\x95\x02\n\x04\x04\x03\x02\x01\x12\
1784    \x03w\x02\x14\x1a\x87\x02\x20Identifies\x20the\x20principal\x20that\x20i\
1785    ssued\x20the\x20JWT.\x20See\n\x20https://tools.ietf.org/html/draft-ietf-\
1786    oauth-json-web-token-32#section-4.1.1\n\x20Usually\x20a\x20URL\x20or\x20\
1787    an\x20email\x20address.\n\n\x20Example:\x20https://securetoken.google.co\
1788    m\n\x20Example:\x201234567-compute@developer.gserviceaccount.com\n\n\x0c\
1789    \n\x05\x04\x03\x02\x01\x05\x12\x03w\x02\x08\n\x0c\n\x05\x04\x03\x02\x01\
1790    \x01\x12\x03w\t\x0f\n\x0c\n\x05\x04\x03\x02\x01\x03\x12\x03w\x12\x13\n\
1791    \xf6\x03\n\x04\x04\x03\x02\x02\x12\x04\x85\x01\x02\x16\x1a\xe7\x03\x20UR\
1792    L\x20of\x20the\x20provider's\x20public\x20key\x20set\x20to\x20validate\
1793    \x20signature\x20of\x20the\x20JWT.\x20See\n\x20[OpenID\n\x20Discovery](h\
1794    ttps://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetada\
1795    ta).\n\x20Optional\x20if\x20the\x20key\x20set\x20document:\n\x20\x20-\
1796    \x20can\x20be\x20retrieved\x20from\n\x20\x20\x20\x20[OpenID\n\x20\x20\
1797    \x20\x20Discovery](https://openid.net/specs/openid-connect-discovery-1_0\
1798    .html)\n\x20\x20\x20\x20of\x20the\x20issuer.\n\x20\x20-\x20can\x20be\x20\
1799    inferred\x20from\x20the\x20email\x20domain\x20of\x20the\x20issuer\x20(e.\
1800    g.\x20a\x20Google\n\x20\x20service\x20account).\n\n\x20Example:\x20https\
1801    ://www.googleapis.com/oauth2/v1/certs\n\n\r\n\x05\x04\x03\x02\x02\x05\
1802    \x12\x04\x85\x01\x02\x08\n\r\n\x05\x04\x03\x02\x02\x01\x12\x04\x85\x01\t\
1803    \x11\n\r\n\x05\x04\x03\x02\x02\x03\x12\x04\x85\x01\x14\x15\n\xee\x05\n\
1804    \x04\x04\x03\x02\x03\x12\x04\x98\x01\x02\x17\x1a\xdf\x05\x20The\x20list\
1805    \x20of\x20JWT\n\x20[audiences](https://tools.ietf.org/html/draft-ietf-oa\
1806    uth-json-web-token-32#section-4.1.3).\n\x20that\x20are\x20allowed\x20to\
1807    \x20access.\x20A\x20JWT\x20containing\x20any\x20of\x20these\x20audiences\
1808    \x20will\n\x20be\x20accepted.\x20When\x20this\x20setting\x20is\x20absent\
1809    ,\x20JWTs\x20with\x20audiences:\n\x20\x20\x20-\x20\"https://[service.nam\
1810    e]/[google.protobuf.Api.name]\"\n\x20\x20\x20-\x20\"https://[service.nam\
1811    e]/\"\n\x20will\x20be\x20accepted.\n\x20For\x20example,\x20if\x20no\x20a\
1812    udiences\x20are\x20in\x20the\x20setting,\x20LibraryService\x20API\x20wil\
1813    l\n\x20accept\x20JWTs\x20with\x20the\x20following\x20audiences:\n\x20\
1814    \x20\x20-\n\x20\x20\x20https://library-example.googleapis.com/google.exa\
1815    mple.library.v1.LibraryService\n\x20\x20\x20-\x20https://library-example\
1816    .googleapis.com/\n\n\x20Example:\n\n\x20\x20\x20\x20\x20audiences:\x20bo\
1817    okstore_android.apps.googleusercontent.com,\n\x20\x20\x20\x20\x20\x20\
1818    \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20bookstore_web.apps.googleusercon\
1819    tent.com\n\n\r\n\x05\x04\x03\x02\x03\x05\x12\x04\x98\x01\x02\x08\n\r\n\
1820    \x05\x04\x03\x02\x03\x01\x12\x04\x98\x01\t\x12\n\r\n\x05\x04\x03\x02\x03\
1821    \x03\x12\x04\x98\x01\x15\x16\n\x99\x01\n\x04\x04\x03\x02\x04\x12\x04\x9c\
1822    \x01\x02\x1f\x1a\x8a\x01\x20Redirect\x20URL\x20if\x20JWT\x20token\x20is\
1823    \x20required\x20but\x20not\x20present\x20or\x20is\x20expired.\n\x20Imple\
1824    ment\x20authorizationUrl\x20of\x20securityDefinitions\x20in\x20OpenAPI\
1825    \x20spec.\n\n\r\n\x05\x04\x03\x02\x04\x05\x12\x04\x9c\x01\x02\x08\n\r\n\
1826    \x05\x04\x03\x02\x04\x01\x12\x04\x9c\x01\t\x1a\n\r\n\x05\x04\x03\x02\x04\
1827    \x03\x12\x04\x9c\x01\x1d\x1e\n\xd3\x05\n\x04\x04\x03\x02\x05\x12\x04\xb0\
1828    \x01\x02)\x1a\xc4\x05\x20Defines\x20the\x20locations\x20to\x20extract\
1829    \x20the\x20JWT.\x20\x20For\x20now\x20it\x20is\x20only\x20used\x20by\x20t\
1830    he\n\x20Cloud\x20Endpoints\x20to\x20store\x20the\x20OpenAPI\x20extension\
1831    \x20[x-google-jwt-locations]\n\x20(https://cloud.google.com/endpoints/do\
1832    cs/openapi/openapi-extensions#x-google-jwt-locations)\n\n\x20JWT\x20loca\
1833    tions\x20can\x20be\x20one\x20of\x20HTTP\x20headers,\x20URL\x20query\x20p\
1834    arameters\x20or\n\x20cookies.\x20The\x20rule\x20is\x20that\x20the\x20fir\
1835    st\x20match\x20wins.\n\n\x20If\x20not\x20specified,\x20\x20default\x20to\
1836    \x20use\x20following\x203\x20locations:\n\x20\x20\x20\x201)\x20Authoriza\
1837    tion:\x20Bearer\n\x20\x20\x20\x202)\x20x-goog-iap-jwt-assertion\n\x20\
1838    \x20\x20\x203)\x20access_token\x20query\x20parameter\n\n\x20Default\x20l\
1839    ocations\x20can\x20be\x20specified\x20as\x20followings:\n\x20\x20\x20\
1840    \x20jwt_locations:\n\x20\x20\x20\x20-\x20header:\x20Authorization\n\x20\
1841    \x20\x20\x20\x20\x20value_prefix:\x20\"Bearer\x20\"\n\x20\x20\x20\x20-\
1842    \x20header:\x20x-goog-iap-jwt-assertion\n\x20\x20\x20\x20-\x20query:\x20\
1843    access_token\n\n\r\n\x05\x04\x03\x02\x05\x04\x12\x04\xb0\x01\x02\n\n\r\n\
1844    \x05\x04\x03\x02\x05\x06\x12\x04\xb0\x01\x0b\x16\n\r\n\x05\x04\x03\x02\
1845    \x05\x01\x12\x04\xb0\x01\x17$\n\r\n\x05\x04\x03\x02\x05\x03\x12\x04\xb0\
1846    \x01'(\n\xe7\x07\n\x02\x04\x04\x12\x06\xc5\x01\0\xce\x01\x01\x1a\xd8\x07\
1847    \x20OAuth\x20scopes\x20are\x20a\x20way\x20to\x20define\x20data\x20and\
1848    \x20permissions\x20on\x20data.\x20For\x20example,\n\x20there\x20are\x20s\
1849    copes\x20defined\x20for\x20\"Read-only\x20access\x20to\x20Google\x20Cale\
1850    ndar\"\x20and\n\x20\"Access\x20to\x20Cloud\x20Platform\".\x20Users\x20ca\
1851    n\x20consent\x20to\x20a\x20scope\x20for\x20an\x20application,\n\x20givin\
1852    g\x20it\x20permission\x20to\x20access\x20that\x20data\x20on\x20their\x20\
1853    behalf.\n\n\x20OAuth\x20scope\x20specifications\x20should\x20be\x20fairl\
1854    y\x20coarse\x20grained;\x20a\x20user\x20will\x20need\n\x20to\x20see\x20a\
1855    nd\x20understand\x20the\x20text\x20description\x20of\x20what\x20your\x20\
1856    scope\x20means.\n\n\x20In\x20most\x20cases:\x20use\x20one\x20or\x20at\
1857    \x20most\x20two\x20OAuth\x20scopes\x20for\x20an\x20entire\x20family\x20o\
1858    f\n\x20products.\x20If\x20your\x20product\x20has\x20multiple\x20APIs,\
1859    \x20you\x20should\x20probably\x20be\x20sharing\n\x20the\x20OAuth\x20scop\
1860    e\x20across\x20all\x20of\x20those\x20APIs.\n\n\x20When\x20you\x20need\
1861    \x20finer\x20grained\x20OAuth\x20consent\x20screens:\x20talk\x20with\x20\
1862    your\x20product\n\x20management\x20about\x20how\x20developers\x20will\
1863    \x20use\x20them\x20in\x20practice.\n\n\x20Please\x20note\x20that\x20even\
1864    \x20though\x20each\x20of\x20the\x20canonical\x20scopes\x20is\x20enough\
1865    \x20for\x20a\n\x20request\x20to\x20be\x20accepted\x20and\x20passed\x20to\
1866    \x20the\x20backend,\x20a\x20request\x20can\x20still\x20fail\n\x20due\x20\
1867    to\x20the\x20backend\x20requiring\x20additional\x20scopes\x20or\x20permi\
1868    ssions.\n\n\x0b\n\x03\x04\x04\x01\x12\x04\xc5\x01\x08\x19\n\xab\x02\n\
1869    \x04\x04\x04\x02\0\x12\x04\xcd\x01\x02\x1e\x1a\x9c\x02\x20The\x20list\
1870    \x20of\x20publicly\x20documented\x20OAuth\x20scopes\x20that\x20are\x20al\
1871    lowed\x20access.\x20An\n\x20OAuth\x20token\x20containing\x20any\x20of\
1872    \x20these\x20scopes\x20will\x20be\x20accepted.\n\n\x20Example:\n\n\x20\
1873    \x20\x20\x20\x20\x20canonical_scopes:\x20https://www.googleapis.com/auth\
1874    /calendar,\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
1875    \x20\x20\x20\x20\x20\x20\x20\x20\x20https://www.googleapis.com/auth/cale\
1876    ndar.read\n\n\r\n\x05\x04\x04\x02\0\x05\x12\x04\xcd\x01\x02\x08\n\r\n\
1877    \x05\x04\x04\x02\0\x01\x12\x04\xcd\x01\t\x19\n\r\n\x05\x04\x04\x02\0\x03\
1878    \x12\x04\xcd\x01\x1c\x1d\n\xaa\x01\n\x02\x04\x05\x12\x06\xd3\x01\0\xec\
1879    \x01\x01\x1a\x9b\x01\x20User-defined\x20authentication\x20requirements,\
1880    \x20including\x20support\x20for\n\x20[JSON\x20Web\x20Token\n\x20(JWT)](h\
1881    ttps://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).\n\n\x0b\
1882    \n\x03\x04\x05\x01\x12\x04\xd3\x01\x08\x17\n{\n\x04\x04\x05\x02\0\x12\
1883    \x04\xd9\x01\x02\x19\x1am\x20[id][google.api.AuthProvider.id]\x20from\
1884    \x20authentication\x20provider.\n\n\x20Example:\n\n\x20\x20\x20\x20\x20p\
1885    rovider_id:\x20bookstore_auth\n\n\r\n\x05\x04\x05\x02\0\x05\x12\x04\xd9\
1886    \x01\x02\x08\n\r\n\x05\x04\x05\x02\0\x01\x12\x04\xd9\x01\t\x14\n\r\n\x05\
1887    \x04\x05\x02\0\x03\x12\x04\xd9\x01\x17\x18\n\xc0\x06\n\x04\x04\x05\x02\
1888    \x01\x12\x04\xeb\x01\x02\x17\x1a\xb1\x06\x20NOTE:\x20This\x20will\x20be\
1889    \x20deprecated\x20soon,\x20once\x20AuthProvider.audiences\x20is\n\x20imp\
1890    lemented\x20and\x20accepted\x20in\x20all\x20the\x20runtime\x20components\
1891    .\n\n\x20The\x20list\x20of\x20JWT\n\x20[audiences](https://tools.ietf.or\
1892    g/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).\n\x20that\x20a\
1893    re\x20allowed\x20to\x20access.\x20A\x20JWT\x20containing\x20any\x20of\
1894    \x20these\x20audiences\x20will\n\x20be\x20accepted.\x20When\x20this\x20s\
1895    etting\x20is\x20absent,\x20only\x20JWTs\x20with\x20audience\n\x20\"https\
1896    ://[Service_name][google.api.Service.name]/[API_name][google.protobuf.Ap\
1897    i.name]\"\n\x20will\x20be\x20accepted.\x20For\x20example,\x20if\x20no\
1898    \x20audiences\x20are\x20in\x20the\x20setting,\n\x20LibraryService\x20API\
1899    \x20will\x20only\x20accept\x20JWTs\x20with\x20the\x20following\x20audien\
1900    ce\n\x20\"https://library-example.googleapis.com/google.example.library.\
1901    v1.LibraryService\".\n\n\x20Example:\n\n\x20\x20\x20\x20\x20audiences:\
1902    \x20bookstore_android.apps.googleusercontent.com,\n\x20\x20\x20\x20\x20\
1903    \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20bookstore_web.apps.googleuse\
1904    rcontent.com\n\n\r\n\x05\x04\x05\x02\x01\x05\x12\x04\xeb\x01\x02\x08\n\r\
1905    \n\x05\x04\x05\x02\x01\x01\x12\x04\xeb\x01\t\x12\n\r\n\x05\x04\x05\x02\
1906    \x01\x03\x12\x04\xeb\x01\x15\x16b\x06proto3\
1907";
1908
1909static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;
1910
1911fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
1912    ::protobuf::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
1913}
1914
1915pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
1916    file_descriptor_proto_lazy.get(|| {
1917        parse_descriptor_proto()
1918    })
1919}