1#![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#[derive(PartialEq,Clone,Default)]
27pub struct AccessLevel {
28 pub name: ::std::string::String,
30 pub title: ::std::string::String,
31 pub description: ::std::string::String,
32 pub create_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
33 pub update_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
34 pub level: ::std::option::Option<AccessLevel_oneof_level>,
36 pub unknown_fields: ::protobuf::UnknownFields,
38 pub cached_size: ::protobuf::CachedSize,
39}
40
41impl<'a> ::std::default::Default for &'a AccessLevel {
42 fn default() -> &'a AccessLevel {
43 <AccessLevel as ::protobuf::Message>::default_instance()
44 }
45}
46
47#[derive(Clone,PartialEq,Debug)]
48pub enum AccessLevel_oneof_level {
49 basic(BasicLevel),
50 custom(CustomLevel),
51}
52
53impl AccessLevel {
54 pub fn new() -> AccessLevel {
55 ::std::default::Default::default()
56 }
57
58 pub fn get_name(&self) -> &str {
62 &self.name
63 }
64 pub fn clear_name(&mut self) {
65 self.name.clear();
66 }
67
68 pub fn set_name(&mut self, v: ::std::string::String) {
70 self.name = v;
71 }
72
73 pub fn mut_name(&mut self) -> &mut ::std::string::String {
76 &mut self.name
77 }
78
79 pub fn take_name(&mut self) -> ::std::string::String {
81 ::std::mem::replace(&mut self.name, ::std::string::String::new())
82 }
83
84 pub fn get_title(&self) -> &str {
88 &self.title
89 }
90 pub fn clear_title(&mut self) {
91 self.title.clear();
92 }
93
94 pub fn set_title(&mut self, v: ::std::string::String) {
96 self.title = v;
97 }
98
99 pub fn mut_title(&mut self) -> &mut ::std::string::String {
102 &mut self.title
103 }
104
105 pub fn take_title(&mut self) -> ::std::string::String {
107 ::std::mem::replace(&mut self.title, ::std::string::String::new())
108 }
109
110 pub fn get_description(&self) -> &str {
114 &self.description
115 }
116 pub fn clear_description(&mut self) {
117 self.description.clear();
118 }
119
120 pub fn set_description(&mut self, v: ::std::string::String) {
122 self.description = v;
123 }
124
125 pub fn mut_description(&mut self) -> &mut ::std::string::String {
128 &mut self.description
129 }
130
131 pub fn take_description(&mut self) -> ::std::string::String {
133 ::std::mem::replace(&mut self.description, ::std::string::String::new())
134 }
135
136 pub fn get_basic(&self) -> &BasicLevel {
140 match self.level {
141 ::std::option::Option::Some(AccessLevel_oneof_level::basic(ref v)) => v,
142 _ => <BasicLevel as ::protobuf::Message>::default_instance(),
143 }
144 }
145 pub fn clear_basic(&mut self) {
146 self.level = ::std::option::Option::None;
147 }
148
149 pub fn has_basic(&self) -> bool {
150 match self.level {
151 ::std::option::Option::Some(AccessLevel_oneof_level::basic(..)) => true,
152 _ => false,
153 }
154 }
155
156 pub fn set_basic(&mut self, v: BasicLevel) {
158 self.level = ::std::option::Option::Some(AccessLevel_oneof_level::basic(v))
159 }
160
161 pub fn mut_basic(&mut self) -> &mut BasicLevel {
163 if let ::std::option::Option::Some(AccessLevel_oneof_level::basic(_)) = self.level {
164 } else {
165 self.level = ::std::option::Option::Some(AccessLevel_oneof_level::basic(BasicLevel::new()));
166 }
167 match self.level {
168 ::std::option::Option::Some(AccessLevel_oneof_level::basic(ref mut v)) => v,
169 _ => panic!(),
170 }
171 }
172
173 pub fn take_basic(&mut self) -> BasicLevel {
175 if self.has_basic() {
176 match self.level.take() {
177 ::std::option::Option::Some(AccessLevel_oneof_level::basic(v)) => v,
178 _ => panic!(),
179 }
180 } else {
181 BasicLevel::new()
182 }
183 }
184
185 pub fn get_custom(&self) -> &CustomLevel {
189 match self.level {
190 ::std::option::Option::Some(AccessLevel_oneof_level::custom(ref v)) => v,
191 _ => <CustomLevel as ::protobuf::Message>::default_instance(),
192 }
193 }
194 pub fn clear_custom(&mut self) {
195 self.level = ::std::option::Option::None;
196 }
197
198 pub fn has_custom(&self) -> bool {
199 match self.level {
200 ::std::option::Option::Some(AccessLevel_oneof_level::custom(..)) => true,
201 _ => false,
202 }
203 }
204
205 pub fn set_custom(&mut self, v: CustomLevel) {
207 self.level = ::std::option::Option::Some(AccessLevel_oneof_level::custom(v))
208 }
209
210 pub fn mut_custom(&mut self) -> &mut CustomLevel {
212 if let ::std::option::Option::Some(AccessLevel_oneof_level::custom(_)) = self.level {
213 } else {
214 self.level = ::std::option::Option::Some(AccessLevel_oneof_level::custom(CustomLevel::new()));
215 }
216 match self.level {
217 ::std::option::Option::Some(AccessLevel_oneof_level::custom(ref mut v)) => v,
218 _ => panic!(),
219 }
220 }
221
222 pub fn take_custom(&mut self) -> CustomLevel {
224 if self.has_custom() {
225 match self.level.take() {
226 ::std::option::Option::Some(AccessLevel_oneof_level::custom(v)) => v,
227 _ => panic!(),
228 }
229 } else {
230 CustomLevel::new()
231 }
232 }
233
234 pub fn get_create_time(&self) -> &::protobuf::well_known_types::Timestamp {
238 self.create_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
239 }
240 pub fn clear_create_time(&mut self) {
241 self.create_time.clear();
242 }
243
244 pub fn has_create_time(&self) -> bool {
245 self.create_time.is_some()
246 }
247
248 pub fn set_create_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
250 self.create_time = ::protobuf::SingularPtrField::some(v);
251 }
252
253 pub fn mut_create_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
256 if self.create_time.is_none() {
257 self.create_time.set_default();
258 }
259 self.create_time.as_mut().unwrap()
260 }
261
262 pub fn take_create_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
264 self.create_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
265 }
266
267 pub fn get_update_time(&self) -> &::protobuf::well_known_types::Timestamp {
271 self.update_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
272 }
273 pub fn clear_update_time(&mut self) {
274 self.update_time.clear();
275 }
276
277 pub fn has_update_time(&self) -> bool {
278 self.update_time.is_some()
279 }
280
281 pub fn set_update_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
283 self.update_time = ::protobuf::SingularPtrField::some(v);
284 }
285
286 pub fn mut_update_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
289 if self.update_time.is_none() {
290 self.update_time.set_default();
291 }
292 self.update_time.as_mut().unwrap()
293 }
294
295 pub fn take_update_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
297 self.update_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
298 }
299}
300
301impl ::protobuf::Message for AccessLevel {
302 fn is_initialized(&self) -> bool {
303 if let Some(AccessLevel_oneof_level::basic(ref v)) = self.level {
304 if !v.is_initialized() {
305 return false;
306 }
307 }
308 if let Some(AccessLevel_oneof_level::custom(ref v)) = self.level {
309 if !v.is_initialized() {
310 return false;
311 }
312 }
313 for v in &self.create_time {
314 if !v.is_initialized() {
315 return false;
316 }
317 };
318 for v in &self.update_time {
319 if !v.is_initialized() {
320 return false;
321 }
322 };
323 true
324 }
325
326 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
327 while !is.eof()? {
328 let (field_number, wire_type) = is.read_tag_unpack()?;
329 match field_number {
330 1 => {
331 ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
332 },
333 2 => {
334 ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.title)?;
335 },
336 3 => {
337 ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.description)?;
338 },
339 4 => {
340 if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
341 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
342 }
343 self.level = ::std::option::Option::Some(AccessLevel_oneof_level::basic(is.read_message()?));
344 },
345 5 => {
346 if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
347 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
348 }
349 self.level = ::std::option::Option::Some(AccessLevel_oneof_level::custom(is.read_message()?));
350 },
351 6 => {
352 ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.create_time)?;
353 },
354 7 => {
355 ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.update_time)?;
356 },
357 _ => {
358 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
359 },
360 };
361 }
362 ::std::result::Result::Ok(())
363 }
364
365 #[allow(unused_variables)]
367 fn compute_size(&self) -> u32 {
368 let mut my_size = 0;
369 if !self.name.is_empty() {
370 my_size += ::protobuf::rt::string_size(1, &self.name);
371 }
372 if !self.title.is_empty() {
373 my_size += ::protobuf::rt::string_size(2, &self.title);
374 }
375 if !self.description.is_empty() {
376 my_size += ::protobuf::rt::string_size(3, &self.description);
377 }
378 if let Some(ref v) = self.create_time.as_ref() {
379 let len = v.compute_size();
380 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
381 }
382 if let Some(ref v) = self.update_time.as_ref() {
383 let len = v.compute_size();
384 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
385 }
386 if let ::std::option::Option::Some(ref v) = self.level {
387 match v {
388 &AccessLevel_oneof_level::basic(ref v) => {
389 let len = v.compute_size();
390 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
391 },
392 &AccessLevel_oneof_level::custom(ref v) => {
393 let len = v.compute_size();
394 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
395 },
396 };
397 }
398 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
399 self.cached_size.set(my_size);
400 my_size
401 }
402
403 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
404 if !self.name.is_empty() {
405 os.write_string(1, &self.name)?;
406 }
407 if !self.title.is_empty() {
408 os.write_string(2, &self.title)?;
409 }
410 if !self.description.is_empty() {
411 os.write_string(3, &self.description)?;
412 }
413 if let Some(ref v) = self.create_time.as_ref() {
414 os.write_tag(6, ::protobuf::wire_format::WireTypeLengthDelimited)?;
415 os.write_raw_varint32(v.get_cached_size())?;
416 v.write_to_with_cached_sizes(os)?;
417 }
418 if let Some(ref v) = self.update_time.as_ref() {
419 os.write_tag(7, ::protobuf::wire_format::WireTypeLengthDelimited)?;
420 os.write_raw_varint32(v.get_cached_size())?;
421 v.write_to_with_cached_sizes(os)?;
422 }
423 if let ::std::option::Option::Some(ref v) = self.level {
424 match v {
425 &AccessLevel_oneof_level::basic(ref v) => {
426 os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
427 os.write_raw_varint32(v.get_cached_size())?;
428 v.write_to_with_cached_sizes(os)?;
429 },
430 &AccessLevel_oneof_level::custom(ref v) => {
431 os.write_tag(5, ::protobuf::wire_format::WireTypeLengthDelimited)?;
432 os.write_raw_varint32(v.get_cached_size())?;
433 v.write_to_with_cached_sizes(os)?;
434 },
435 };
436 }
437 os.write_unknown_fields(self.get_unknown_fields())?;
438 ::std::result::Result::Ok(())
439 }
440
441 fn get_cached_size(&self) -> u32 {
442 self.cached_size.get()
443 }
444
445 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
446 &self.unknown_fields
447 }
448
449 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
450 &mut self.unknown_fields
451 }
452
453 fn as_any(&self) -> &dyn (::std::any::Any) {
454 self as &dyn (::std::any::Any)
455 }
456 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
457 self as &mut dyn (::std::any::Any)
458 }
459 fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
460 self
461 }
462
463 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
464 Self::descriptor_static()
465 }
466
467 fn new() -> AccessLevel {
468 AccessLevel::new()
469 }
470
471 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
472 static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
473 descriptor.get(|| {
474 let mut fields = ::std::vec::Vec::new();
475 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
476 "name",
477 |m: &AccessLevel| { &m.name },
478 |m: &mut AccessLevel| { &mut m.name },
479 ));
480 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
481 "title",
482 |m: &AccessLevel| { &m.title },
483 |m: &mut AccessLevel| { &mut m.title },
484 ));
485 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
486 "description",
487 |m: &AccessLevel| { &m.description },
488 |m: &mut AccessLevel| { &mut m.description },
489 ));
490 fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, BasicLevel>(
491 "basic",
492 AccessLevel::has_basic,
493 AccessLevel::get_basic,
494 ));
495 fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, CustomLevel>(
496 "custom",
497 AccessLevel::has_custom,
498 AccessLevel::get_custom,
499 ));
500 fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
501 "create_time",
502 |m: &AccessLevel| { &m.create_time },
503 |m: &mut AccessLevel| { &mut m.create_time },
504 ));
505 fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
506 "update_time",
507 |m: &AccessLevel| { &m.update_time },
508 |m: &mut AccessLevel| { &mut m.update_time },
509 ));
510 ::protobuf::reflect::MessageDescriptor::new_pb_name::<AccessLevel>(
511 "AccessLevel",
512 fields,
513 file_descriptor_proto()
514 )
515 })
516 }
517
518 fn default_instance() -> &'static AccessLevel {
519 static instance: ::protobuf::rt::LazyV2<AccessLevel> = ::protobuf::rt::LazyV2::INIT;
520 instance.get(AccessLevel::new)
521 }
522}
523
524impl ::protobuf::Clear for AccessLevel {
525 fn clear(&mut self) {
526 self.name.clear();
527 self.title.clear();
528 self.description.clear();
529 self.level = ::std::option::Option::None;
530 self.level = ::std::option::Option::None;
531 self.create_time.clear();
532 self.update_time.clear();
533 self.unknown_fields.clear();
534 }
535}
536
537impl ::std::fmt::Debug for AccessLevel {
538 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
539 ::protobuf::text_format::fmt(self, f)
540 }
541}
542
543impl ::protobuf::reflect::ProtobufValue for AccessLevel {
544 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
545 ::protobuf::reflect::ReflectValueRef::Message(self)
546 }
547}
548
549#[derive(PartialEq,Clone,Default)]
550pub struct BasicLevel {
551 pub conditions: ::protobuf::RepeatedField<Condition>,
553 pub combining_function: BasicLevel_ConditionCombiningFunction,
554 pub unknown_fields: ::protobuf::UnknownFields,
556 pub cached_size: ::protobuf::CachedSize,
557}
558
559impl<'a> ::std::default::Default for &'a BasicLevel {
560 fn default() -> &'a BasicLevel {
561 <BasicLevel as ::protobuf::Message>::default_instance()
562 }
563}
564
565impl BasicLevel {
566 pub fn new() -> BasicLevel {
567 ::std::default::Default::default()
568 }
569
570 pub fn get_conditions(&self) -> &[Condition] {
574 &self.conditions
575 }
576 pub fn clear_conditions(&mut self) {
577 self.conditions.clear();
578 }
579
580 pub fn set_conditions(&mut self, v: ::protobuf::RepeatedField<Condition>) {
582 self.conditions = v;
583 }
584
585 pub fn mut_conditions(&mut self) -> &mut ::protobuf::RepeatedField<Condition> {
587 &mut self.conditions
588 }
589
590 pub fn take_conditions(&mut self) -> ::protobuf::RepeatedField<Condition> {
592 ::std::mem::replace(&mut self.conditions, ::protobuf::RepeatedField::new())
593 }
594
595 pub fn get_combining_function(&self) -> BasicLevel_ConditionCombiningFunction {
599 self.combining_function
600 }
601 pub fn clear_combining_function(&mut self) {
602 self.combining_function = BasicLevel_ConditionCombiningFunction::AND;
603 }
604
605 pub fn set_combining_function(&mut self, v: BasicLevel_ConditionCombiningFunction) {
607 self.combining_function = v;
608 }
609}
610
611impl ::protobuf::Message for BasicLevel {
612 fn is_initialized(&self) -> bool {
613 for v in &self.conditions {
614 if !v.is_initialized() {
615 return false;
616 }
617 };
618 true
619 }
620
621 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
622 while !is.eof()? {
623 let (field_number, wire_type) = is.read_tag_unpack()?;
624 match field_number {
625 1 => {
626 ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.conditions)?;
627 },
628 2 => {
629 ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.combining_function, 2, &mut self.unknown_fields)?
630 },
631 _ => {
632 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
633 },
634 };
635 }
636 ::std::result::Result::Ok(())
637 }
638
639 #[allow(unused_variables)]
641 fn compute_size(&self) -> u32 {
642 let mut my_size = 0;
643 for value in &self.conditions {
644 let len = value.compute_size();
645 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
646 };
647 if self.combining_function != BasicLevel_ConditionCombiningFunction::AND {
648 my_size += ::protobuf::rt::enum_size(2, self.combining_function);
649 }
650 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
651 self.cached_size.set(my_size);
652 my_size
653 }
654
655 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
656 for v in &self.conditions {
657 os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
658 os.write_raw_varint32(v.get_cached_size())?;
659 v.write_to_with_cached_sizes(os)?;
660 };
661 if self.combining_function != BasicLevel_ConditionCombiningFunction::AND {
662 os.write_enum(2, ::protobuf::ProtobufEnum::value(&self.combining_function))?;
663 }
664 os.write_unknown_fields(self.get_unknown_fields())?;
665 ::std::result::Result::Ok(())
666 }
667
668 fn get_cached_size(&self) -> u32 {
669 self.cached_size.get()
670 }
671
672 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
673 &self.unknown_fields
674 }
675
676 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
677 &mut self.unknown_fields
678 }
679
680 fn as_any(&self) -> &dyn (::std::any::Any) {
681 self as &dyn (::std::any::Any)
682 }
683 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
684 self as &mut dyn (::std::any::Any)
685 }
686 fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
687 self
688 }
689
690 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
691 Self::descriptor_static()
692 }
693
694 fn new() -> BasicLevel {
695 BasicLevel::new()
696 }
697
698 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
699 static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
700 descriptor.get(|| {
701 let mut fields = ::std::vec::Vec::new();
702 fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<Condition>>(
703 "conditions",
704 |m: &BasicLevel| { &m.conditions },
705 |m: &mut BasicLevel| { &mut m.conditions },
706 ));
707 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<BasicLevel_ConditionCombiningFunction>>(
708 "combining_function",
709 |m: &BasicLevel| { &m.combining_function },
710 |m: &mut BasicLevel| { &mut m.combining_function },
711 ));
712 ::protobuf::reflect::MessageDescriptor::new_pb_name::<BasicLevel>(
713 "BasicLevel",
714 fields,
715 file_descriptor_proto()
716 )
717 })
718 }
719
720 fn default_instance() -> &'static BasicLevel {
721 static instance: ::protobuf::rt::LazyV2<BasicLevel> = ::protobuf::rt::LazyV2::INIT;
722 instance.get(BasicLevel::new)
723 }
724}
725
726impl ::protobuf::Clear for BasicLevel {
727 fn clear(&mut self) {
728 self.conditions.clear();
729 self.combining_function = BasicLevel_ConditionCombiningFunction::AND;
730 self.unknown_fields.clear();
731 }
732}
733
734impl ::std::fmt::Debug for BasicLevel {
735 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
736 ::protobuf::text_format::fmt(self, f)
737 }
738}
739
740impl ::protobuf::reflect::ProtobufValue for BasicLevel {
741 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
742 ::protobuf::reflect::ReflectValueRef::Message(self)
743 }
744}
745
746#[derive(Clone,PartialEq,Eq,Debug,Hash)]
747pub enum BasicLevel_ConditionCombiningFunction {
748 AND = 0,
749 OR = 1,
750}
751
752impl ::protobuf::ProtobufEnum for BasicLevel_ConditionCombiningFunction {
753 fn value(&self) -> i32 {
754 *self as i32
755 }
756
757 fn from_i32(value: i32) -> ::std::option::Option<BasicLevel_ConditionCombiningFunction> {
758 match value {
759 0 => ::std::option::Option::Some(BasicLevel_ConditionCombiningFunction::AND),
760 1 => ::std::option::Option::Some(BasicLevel_ConditionCombiningFunction::OR),
761 _ => ::std::option::Option::None
762 }
763 }
764
765 fn values() -> &'static [Self] {
766 static values: &'static [BasicLevel_ConditionCombiningFunction] = &[
767 BasicLevel_ConditionCombiningFunction::AND,
768 BasicLevel_ConditionCombiningFunction::OR,
769 ];
770 values
771 }
772
773 fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
774 static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
775 descriptor.get(|| {
776 ::protobuf::reflect::EnumDescriptor::new_pb_name::<BasicLevel_ConditionCombiningFunction>("BasicLevel.ConditionCombiningFunction", file_descriptor_proto())
777 })
778 }
779}
780
781impl ::std::marker::Copy for BasicLevel_ConditionCombiningFunction {
782}
783
784impl ::std::default::Default for BasicLevel_ConditionCombiningFunction {
785 fn default() -> Self {
786 BasicLevel_ConditionCombiningFunction::AND
787 }
788}
789
790impl ::protobuf::reflect::ProtobufValue for BasicLevel_ConditionCombiningFunction {
791 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
792 ::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
793 }
794}
795
796#[derive(PartialEq,Clone,Default)]
797pub struct Condition {
798 pub ip_subnetworks: ::protobuf::RepeatedField<::std::string::String>,
800 pub device_policy: ::protobuf::SingularPtrField<DevicePolicy>,
801 pub required_access_levels: ::protobuf::RepeatedField<::std::string::String>,
802 pub negate: bool,
803 pub members: ::protobuf::RepeatedField<::std::string::String>,
804 pub regions: ::protobuf::RepeatedField<::std::string::String>,
805 pub unknown_fields: ::protobuf::UnknownFields,
807 pub cached_size: ::protobuf::CachedSize,
808}
809
810impl<'a> ::std::default::Default for &'a Condition {
811 fn default() -> &'a Condition {
812 <Condition as ::protobuf::Message>::default_instance()
813 }
814}
815
816impl Condition {
817 pub fn new() -> Condition {
818 ::std::default::Default::default()
819 }
820
821 pub fn get_ip_subnetworks(&self) -> &[::std::string::String] {
825 &self.ip_subnetworks
826 }
827 pub fn clear_ip_subnetworks(&mut self) {
828 self.ip_subnetworks.clear();
829 }
830
831 pub fn set_ip_subnetworks(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
833 self.ip_subnetworks = v;
834 }
835
836 pub fn mut_ip_subnetworks(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
838 &mut self.ip_subnetworks
839 }
840
841 pub fn take_ip_subnetworks(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
843 ::std::mem::replace(&mut self.ip_subnetworks, ::protobuf::RepeatedField::new())
844 }
845
846 pub fn get_device_policy(&self) -> &DevicePolicy {
850 self.device_policy.as_ref().unwrap_or_else(|| <DevicePolicy as ::protobuf::Message>::default_instance())
851 }
852 pub fn clear_device_policy(&mut self) {
853 self.device_policy.clear();
854 }
855
856 pub fn has_device_policy(&self) -> bool {
857 self.device_policy.is_some()
858 }
859
860 pub fn set_device_policy(&mut self, v: DevicePolicy) {
862 self.device_policy = ::protobuf::SingularPtrField::some(v);
863 }
864
865 pub fn mut_device_policy(&mut self) -> &mut DevicePolicy {
868 if self.device_policy.is_none() {
869 self.device_policy.set_default();
870 }
871 self.device_policy.as_mut().unwrap()
872 }
873
874 pub fn take_device_policy(&mut self) -> DevicePolicy {
876 self.device_policy.take().unwrap_or_else(|| DevicePolicy::new())
877 }
878
879 pub fn get_required_access_levels(&self) -> &[::std::string::String] {
883 &self.required_access_levels
884 }
885 pub fn clear_required_access_levels(&mut self) {
886 self.required_access_levels.clear();
887 }
888
889 pub fn set_required_access_levels(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
891 self.required_access_levels = v;
892 }
893
894 pub fn mut_required_access_levels(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
896 &mut self.required_access_levels
897 }
898
899 pub fn take_required_access_levels(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
901 ::std::mem::replace(&mut self.required_access_levels, ::protobuf::RepeatedField::new())
902 }
903
904 pub fn get_negate(&self) -> bool {
908 self.negate
909 }
910 pub fn clear_negate(&mut self) {
911 self.negate = false;
912 }
913
914 pub fn set_negate(&mut self, v: bool) {
916 self.negate = v;
917 }
918
919 pub fn get_members(&self) -> &[::std::string::String] {
923 &self.members
924 }
925 pub fn clear_members(&mut self) {
926 self.members.clear();
927 }
928
929 pub fn set_members(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
931 self.members = v;
932 }
933
934 pub fn mut_members(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
936 &mut self.members
937 }
938
939 pub fn take_members(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
941 ::std::mem::replace(&mut self.members, ::protobuf::RepeatedField::new())
942 }
943
944 pub fn get_regions(&self) -> &[::std::string::String] {
948 &self.regions
949 }
950 pub fn clear_regions(&mut self) {
951 self.regions.clear();
952 }
953
954 pub fn set_regions(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
956 self.regions = v;
957 }
958
959 pub fn mut_regions(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
961 &mut self.regions
962 }
963
964 pub fn take_regions(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
966 ::std::mem::replace(&mut self.regions, ::protobuf::RepeatedField::new())
967 }
968}
969
970impl ::protobuf::Message for Condition {
971 fn is_initialized(&self) -> bool {
972 for v in &self.device_policy {
973 if !v.is_initialized() {
974 return false;
975 }
976 };
977 true
978 }
979
980 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
981 while !is.eof()? {
982 let (field_number, wire_type) = is.read_tag_unpack()?;
983 match field_number {
984 1 => {
985 ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.ip_subnetworks)?;
986 },
987 2 => {
988 ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.device_policy)?;
989 },
990 3 => {
991 ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.required_access_levels)?;
992 },
993 5 => {
994 if wire_type != ::protobuf::wire_format::WireTypeVarint {
995 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
996 }
997 let tmp = is.read_bool()?;
998 self.negate = tmp;
999 },
1000 6 => {
1001 ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.members)?;
1002 },
1003 7 => {
1004 ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.regions)?;
1005 },
1006 _ => {
1007 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1008 },
1009 };
1010 }
1011 ::std::result::Result::Ok(())
1012 }
1013
1014 #[allow(unused_variables)]
1016 fn compute_size(&self) -> u32 {
1017 let mut my_size = 0;
1018 for value in &self.ip_subnetworks {
1019 my_size += ::protobuf::rt::string_size(1, &value);
1020 };
1021 if let Some(ref v) = self.device_policy.as_ref() {
1022 let len = v.compute_size();
1023 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1024 }
1025 for value in &self.required_access_levels {
1026 my_size += ::protobuf::rt::string_size(3, &value);
1027 };
1028 if self.negate != false {
1029 my_size += 2;
1030 }
1031 for value in &self.members {
1032 my_size += ::protobuf::rt::string_size(6, &value);
1033 };
1034 for value in &self.regions {
1035 my_size += ::protobuf::rt::string_size(7, &value);
1036 };
1037 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1038 self.cached_size.set(my_size);
1039 my_size
1040 }
1041
1042 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1043 for v in &self.ip_subnetworks {
1044 os.write_string(1, &v)?;
1045 };
1046 if let Some(ref v) = self.device_policy.as_ref() {
1047 os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1048 os.write_raw_varint32(v.get_cached_size())?;
1049 v.write_to_with_cached_sizes(os)?;
1050 }
1051 for v in &self.required_access_levels {
1052 os.write_string(3, &v)?;
1053 };
1054 if self.negate != false {
1055 os.write_bool(5, self.negate)?;
1056 }
1057 for v in &self.members {
1058 os.write_string(6, &v)?;
1059 };
1060 for v in &self.regions {
1061 os.write_string(7, &v)?;
1062 };
1063 os.write_unknown_fields(self.get_unknown_fields())?;
1064 ::std::result::Result::Ok(())
1065 }
1066
1067 fn get_cached_size(&self) -> u32 {
1068 self.cached_size.get()
1069 }
1070
1071 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1072 &self.unknown_fields
1073 }
1074
1075 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1076 &mut self.unknown_fields
1077 }
1078
1079 fn as_any(&self) -> &dyn (::std::any::Any) {
1080 self as &dyn (::std::any::Any)
1081 }
1082 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1083 self as &mut dyn (::std::any::Any)
1084 }
1085 fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1086 self
1087 }
1088
1089 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1090 Self::descriptor_static()
1091 }
1092
1093 fn new() -> Condition {
1094 Condition::new()
1095 }
1096
1097 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1098 static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1099 descriptor.get(|| {
1100 let mut fields = ::std::vec::Vec::new();
1101 fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1102 "ip_subnetworks",
1103 |m: &Condition| { &m.ip_subnetworks },
1104 |m: &mut Condition| { &mut m.ip_subnetworks },
1105 ));
1106 fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<DevicePolicy>>(
1107 "device_policy",
1108 |m: &Condition| { &m.device_policy },
1109 |m: &mut Condition| { &mut m.device_policy },
1110 ));
1111 fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1112 "required_access_levels",
1113 |m: &Condition| { &m.required_access_levels },
1114 |m: &mut Condition| { &mut m.required_access_levels },
1115 ));
1116 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
1117 "negate",
1118 |m: &Condition| { &m.negate },
1119 |m: &mut Condition| { &mut m.negate },
1120 ));
1121 fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1122 "members",
1123 |m: &Condition| { &m.members },
1124 |m: &mut Condition| { &mut m.members },
1125 ));
1126 fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1127 "regions",
1128 |m: &Condition| { &m.regions },
1129 |m: &mut Condition| { &mut m.regions },
1130 ));
1131 ::protobuf::reflect::MessageDescriptor::new_pb_name::<Condition>(
1132 "Condition",
1133 fields,
1134 file_descriptor_proto()
1135 )
1136 })
1137 }
1138
1139 fn default_instance() -> &'static Condition {
1140 static instance: ::protobuf::rt::LazyV2<Condition> = ::protobuf::rt::LazyV2::INIT;
1141 instance.get(Condition::new)
1142 }
1143}
1144
1145impl ::protobuf::Clear for Condition {
1146 fn clear(&mut self) {
1147 self.ip_subnetworks.clear();
1148 self.device_policy.clear();
1149 self.required_access_levels.clear();
1150 self.negate = false;
1151 self.members.clear();
1152 self.regions.clear();
1153 self.unknown_fields.clear();
1154 }
1155}
1156
1157impl ::std::fmt::Debug for Condition {
1158 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1159 ::protobuf::text_format::fmt(self, f)
1160 }
1161}
1162
1163impl ::protobuf::reflect::ProtobufValue for Condition {
1164 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1165 ::protobuf::reflect::ReflectValueRef::Message(self)
1166 }
1167}
1168
1169#[derive(PartialEq,Clone,Default)]
1170pub struct CustomLevel {
1171 pub expr: ::protobuf::SingularPtrField<super::expr::Expr>,
1173 pub unknown_fields: ::protobuf::UnknownFields,
1175 pub cached_size: ::protobuf::CachedSize,
1176}
1177
1178impl<'a> ::std::default::Default for &'a CustomLevel {
1179 fn default() -> &'a CustomLevel {
1180 <CustomLevel as ::protobuf::Message>::default_instance()
1181 }
1182}
1183
1184impl CustomLevel {
1185 pub fn new() -> CustomLevel {
1186 ::std::default::Default::default()
1187 }
1188
1189 pub fn get_expr(&self) -> &super::expr::Expr {
1193 self.expr.as_ref().unwrap_or_else(|| <super::expr::Expr as ::protobuf::Message>::default_instance())
1194 }
1195 pub fn clear_expr(&mut self) {
1196 self.expr.clear();
1197 }
1198
1199 pub fn has_expr(&self) -> bool {
1200 self.expr.is_some()
1201 }
1202
1203 pub fn set_expr(&mut self, v: super::expr::Expr) {
1205 self.expr = ::protobuf::SingularPtrField::some(v);
1206 }
1207
1208 pub fn mut_expr(&mut self) -> &mut super::expr::Expr {
1211 if self.expr.is_none() {
1212 self.expr.set_default();
1213 }
1214 self.expr.as_mut().unwrap()
1215 }
1216
1217 pub fn take_expr(&mut self) -> super::expr::Expr {
1219 self.expr.take().unwrap_or_else(|| super::expr::Expr::new())
1220 }
1221}
1222
1223impl ::protobuf::Message for CustomLevel {
1224 fn is_initialized(&self) -> bool {
1225 for v in &self.expr {
1226 if !v.is_initialized() {
1227 return false;
1228 }
1229 };
1230 true
1231 }
1232
1233 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1234 while !is.eof()? {
1235 let (field_number, wire_type) = is.read_tag_unpack()?;
1236 match field_number {
1237 1 => {
1238 ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.expr)?;
1239 },
1240 _ => {
1241 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1242 },
1243 };
1244 }
1245 ::std::result::Result::Ok(())
1246 }
1247
1248 #[allow(unused_variables)]
1250 fn compute_size(&self) -> u32 {
1251 let mut my_size = 0;
1252 if let Some(ref v) = self.expr.as_ref() {
1253 let len = v.compute_size();
1254 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1255 }
1256 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1257 self.cached_size.set(my_size);
1258 my_size
1259 }
1260
1261 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1262 if let Some(ref v) = self.expr.as_ref() {
1263 os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1264 os.write_raw_varint32(v.get_cached_size())?;
1265 v.write_to_with_cached_sizes(os)?;
1266 }
1267 os.write_unknown_fields(self.get_unknown_fields())?;
1268 ::std::result::Result::Ok(())
1269 }
1270
1271 fn get_cached_size(&self) -> u32 {
1272 self.cached_size.get()
1273 }
1274
1275 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1276 &self.unknown_fields
1277 }
1278
1279 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1280 &mut self.unknown_fields
1281 }
1282
1283 fn as_any(&self) -> &dyn (::std::any::Any) {
1284 self as &dyn (::std::any::Any)
1285 }
1286 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1287 self as &mut dyn (::std::any::Any)
1288 }
1289 fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1290 self
1291 }
1292
1293 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1294 Self::descriptor_static()
1295 }
1296
1297 fn new() -> CustomLevel {
1298 CustomLevel::new()
1299 }
1300
1301 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1302 static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1303 descriptor.get(|| {
1304 let mut fields = ::std::vec::Vec::new();
1305 fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::expr::Expr>>(
1306 "expr",
1307 |m: &CustomLevel| { &m.expr },
1308 |m: &mut CustomLevel| { &mut m.expr },
1309 ));
1310 ::protobuf::reflect::MessageDescriptor::new_pb_name::<CustomLevel>(
1311 "CustomLevel",
1312 fields,
1313 file_descriptor_proto()
1314 )
1315 })
1316 }
1317
1318 fn default_instance() -> &'static CustomLevel {
1319 static instance: ::protobuf::rt::LazyV2<CustomLevel> = ::protobuf::rt::LazyV2::INIT;
1320 instance.get(CustomLevel::new)
1321 }
1322}
1323
1324impl ::protobuf::Clear for CustomLevel {
1325 fn clear(&mut self) {
1326 self.expr.clear();
1327 self.unknown_fields.clear();
1328 }
1329}
1330
1331impl ::std::fmt::Debug for CustomLevel {
1332 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1333 ::protobuf::text_format::fmt(self, f)
1334 }
1335}
1336
1337impl ::protobuf::reflect::ProtobufValue for CustomLevel {
1338 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1339 ::protobuf::reflect::ReflectValueRef::Message(self)
1340 }
1341}
1342
1343#[derive(PartialEq,Clone,Default)]
1344pub struct DevicePolicy {
1345 pub require_screenlock: bool,
1347 pub allowed_encryption_statuses: ::std::vec::Vec<super::device_resources::DeviceEncryptionStatus>,
1348 pub os_constraints: ::protobuf::RepeatedField<OsConstraint>,
1349 pub allowed_device_management_levels: ::std::vec::Vec<super::device_resources::DeviceManagementLevel>,
1350 pub require_admin_approval: bool,
1351 pub require_corp_owned: bool,
1352 pub unknown_fields: ::protobuf::UnknownFields,
1354 pub cached_size: ::protobuf::CachedSize,
1355}
1356
1357impl<'a> ::std::default::Default for &'a DevicePolicy {
1358 fn default() -> &'a DevicePolicy {
1359 <DevicePolicy as ::protobuf::Message>::default_instance()
1360 }
1361}
1362
1363impl DevicePolicy {
1364 pub fn new() -> DevicePolicy {
1365 ::std::default::Default::default()
1366 }
1367
1368 pub fn get_require_screenlock(&self) -> bool {
1372 self.require_screenlock
1373 }
1374 pub fn clear_require_screenlock(&mut self) {
1375 self.require_screenlock = false;
1376 }
1377
1378 pub fn set_require_screenlock(&mut self, v: bool) {
1380 self.require_screenlock = v;
1381 }
1382
1383 pub fn get_allowed_encryption_statuses(&self) -> &[super::device_resources::DeviceEncryptionStatus] {
1387 &self.allowed_encryption_statuses
1388 }
1389 pub fn clear_allowed_encryption_statuses(&mut self) {
1390 self.allowed_encryption_statuses.clear();
1391 }
1392
1393 pub fn set_allowed_encryption_statuses(&mut self, v: ::std::vec::Vec<super::device_resources::DeviceEncryptionStatus>) {
1395 self.allowed_encryption_statuses = v;
1396 }
1397
1398 pub fn mut_allowed_encryption_statuses(&mut self) -> &mut ::std::vec::Vec<super::device_resources::DeviceEncryptionStatus> {
1400 &mut self.allowed_encryption_statuses
1401 }
1402
1403 pub fn take_allowed_encryption_statuses(&mut self) -> ::std::vec::Vec<super::device_resources::DeviceEncryptionStatus> {
1405 ::std::mem::replace(&mut self.allowed_encryption_statuses, ::std::vec::Vec::new())
1406 }
1407
1408 pub fn get_os_constraints(&self) -> &[OsConstraint] {
1412 &self.os_constraints
1413 }
1414 pub fn clear_os_constraints(&mut self) {
1415 self.os_constraints.clear();
1416 }
1417
1418 pub fn set_os_constraints(&mut self, v: ::protobuf::RepeatedField<OsConstraint>) {
1420 self.os_constraints = v;
1421 }
1422
1423 pub fn mut_os_constraints(&mut self) -> &mut ::protobuf::RepeatedField<OsConstraint> {
1425 &mut self.os_constraints
1426 }
1427
1428 pub fn take_os_constraints(&mut self) -> ::protobuf::RepeatedField<OsConstraint> {
1430 ::std::mem::replace(&mut self.os_constraints, ::protobuf::RepeatedField::new())
1431 }
1432
1433 pub fn get_allowed_device_management_levels(&self) -> &[super::device_resources::DeviceManagementLevel] {
1437 &self.allowed_device_management_levels
1438 }
1439 pub fn clear_allowed_device_management_levels(&mut self) {
1440 self.allowed_device_management_levels.clear();
1441 }
1442
1443 pub fn set_allowed_device_management_levels(&mut self, v: ::std::vec::Vec<super::device_resources::DeviceManagementLevel>) {
1445 self.allowed_device_management_levels = v;
1446 }
1447
1448 pub fn mut_allowed_device_management_levels(&mut self) -> &mut ::std::vec::Vec<super::device_resources::DeviceManagementLevel> {
1450 &mut self.allowed_device_management_levels
1451 }
1452
1453 pub fn take_allowed_device_management_levels(&mut self) -> ::std::vec::Vec<super::device_resources::DeviceManagementLevel> {
1455 ::std::mem::replace(&mut self.allowed_device_management_levels, ::std::vec::Vec::new())
1456 }
1457
1458 pub fn get_require_admin_approval(&self) -> bool {
1462 self.require_admin_approval
1463 }
1464 pub fn clear_require_admin_approval(&mut self) {
1465 self.require_admin_approval = false;
1466 }
1467
1468 pub fn set_require_admin_approval(&mut self, v: bool) {
1470 self.require_admin_approval = v;
1471 }
1472
1473 pub fn get_require_corp_owned(&self) -> bool {
1477 self.require_corp_owned
1478 }
1479 pub fn clear_require_corp_owned(&mut self) {
1480 self.require_corp_owned = false;
1481 }
1482
1483 pub fn set_require_corp_owned(&mut self, v: bool) {
1485 self.require_corp_owned = v;
1486 }
1487}
1488
1489impl ::protobuf::Message for DevicePolicy {
1490 fn is_initialized(&self) -> bool {
1491 for v in &self.os_constraints {
1492 if !v.is_initialized() {
1493 return false;
1494 }
1495 };
1496 true
1497 }
1498
1499 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1500 while !is.eof()? {
1501 let (field_number, wire_type) = is.read_tag_unpack()?;
1502 match field_number {
1503 1 => {
1504 if wire_type != ::protobuf::wire_format::WireTypeVarint {
1505 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1506 }
1507 let tmp = is.read_bool()?;
1508 self.require_screenlock = tmp;
1509 },
1510 2 => {
1511 ::protobuf::rt::read_repeated_enum_with_unknown_fields_into(wire_type, is, &mut self.allowed_encryption_statuses, 2, &mut self.unknown_fields)?
1512 },
1513 3 => {
1514 ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.os_constraints)?;
1515 },
1516 6 => {
1517 ::protobuf::rt::read_repeated_enum_with_unknown_fields_into(wire_type, is, &mut self.allowed_device_management_levels, 6, &mut self.unknown_fields)?
1518 },
1519 7 => {
1520 if wire_type != ::protobuf::wire_format::WireTypeVarint {
1521 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1522 }
1523 let tmp = is.read_bool()?;
1524 self.require_admin_approval = tmp;
1525 },
1526 8 => {
1527 if wire_type != ::protobuf::wire_format::WireTypeVarint {
1528 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1529 }
1530 let tmp = is.read_bool()?;
1531 self.require_corp_owned = tmp;
1532 },
1533 _ => {
1534 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1535 },
1536 };
1537 }
1538 ::std::result::Result::Ok(())
1539 }
1540
1541 #[allow(unused_variables)]
1543 fn compute_size(&self) -> u32 {
1544 let mut my_size = 0;
1545 if self.require_screenlock != false {
1546 my_size += 2;
1547 }
1548 for value in &self.allowed_encryption_statuses {
1549 my_size += ::protobuf::rt::enum_size(2, *value);
1550 };
1551 for value in &self.os_constraints {
1552 let len = value.compute_size();
1553 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1554 };
1555 for value in &self.allowed_device_management_levels {
1556 my_size += ::protobuf::rt::enum_size(6, *value);
1557 };
1558 if self.require_admin_approval != false {
1559 my_size += 2;
1560 }
1561 if self.require_corp_owned != false {
1562 my_size += 2;
1563 }
1564 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1565 self.cached_size.set(my_size);
1566 my_size
1567 }
1568
1569 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1570 if self.require_screenlock != false {
1571 os.write_bool(1, self.require_screenlock)?;
1572 }
1573 for v in &self.allowed_encryption_statuses {
1574 os.write_enum(2, ::protobuf::ProtobufEnum::value(v))?;
1575 };
1576 for v in &self.os_constraints {
1577 os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1578 os.write_raw_varint32(v.get_cached_size())?;
1579 v.write_to_with_cached_sizes(os)?;
1580 };
1581 for v in &self.allowed_device_management_levels {
1582 os.write_enum(6, ::protobuf::ProtobufEnum::value(v))?;
1583 };
1584 if self.require_admin_approval != false {
1585 os.write_bool(7, self.require_admin_approval)?;
1586 }
1587 if self.require_corp_owned != false {
1588 os.write_bool(8, self.require_corp_owned)?;
1589 }
1590 os.write_unknown_fields(self.get_unknown_fields())?;
1591 ::std::result::Result::Ok(())
1592 }
1593
1594 fn get_cached_size(&self) -> u32 {
1595 self.cached_size.get()
1596 }
1597
1598 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1599 &self.unknown_fields
1600 }
1601
1602 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1603 &mut self.unknown_fields
1604 }
1605
1606 fn as_any(&self) -> &dyn (::std::any::Any) {
1607 self as &dyn (::std::any::Any)
1608 }
1609 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1610 self as &mut dyn (::std::any::Any)
1611 }
1612 fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1613 self
1614 }
1615
1616 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1617 Self::descriptor_static()
1618 }
1619
1620 fn new() -> DevicePolicy {
1621 DevicePolicy::new()
1622 }
1623
1624 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1625 static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1626 descriptor.get(|| {
1627 let mut fields = ::std::vec::Vec::new();
1628 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
1629 "require_screenlock",
1630 |m: &DevicePolicy| { &m.require_screenlock },
1631 |m: &mut DevicePolicy| { &mut m.require_screenlock },
1632 ));
1633 fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeEnum<super::device_resources::DeviceEncryptionStatus>>(
1634 "allowed_encryption_statuses",
1635 |m: &DevicePolicy| { &m.allowed_encryption_statuses },
1636 |m: &mut DevicePolicy| { &mut m.allowed_encryption_statuses },
1637 ));
1638 fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<OsConstraint>>(
1639 "os_constraints",
1640 |m: &DevicePolicy| { &m.os_constraints },
1641 |m: &mut DevicePolicy| { &mut m.os_constraints },
1642 ));
1643 fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeEnum<super::device_resources::DeviceManagementLevel>>(
1644 "allowed_device_management_levels",
1645 |m: &DevicePolicy| { &m.allowed_device_management_levels },
1646 |m: &mut DevicePolicy| { &mut m.allowed_device_management_levels },
1647 ));
1648 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
1649 "require_admin_approval",
1650 |m: &DevicePolicy| { &m.require_admin_approval },
1651 |m: &mut DevicePolicy| { &mut m.require_admin_approval },
1652 ));
1653 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
1654 "require_corp_owned",
1655 |m: &DevicePolicy| { &m.require_corp_owned },
1656 |m: &mut DevicePolicy| { &mut m.require_corp_owned },
1657 ));
1658 ::protobuf::reflect::MessageDescriptor::new_pb_name::<DevicePolicy>(
1659 "DevicePolicy",
1660 fields,
1661 file_descriptor_proto()
1662 )
1663 })
1664 }
1665
1666 fn default_instance() -> &'static DevicePolicy {
1667 static instance: ::protobuf::rt::LazyV2<DevicePolicy> = ::protobuf::rt::LazyV2::INIT;
1668 instance.get(DevicePolicy::new)
1669 }
1670}
1671
1672impl ::protobuf::Clear for DevicePolicy {
1673 fn clear(&mut self) {
1674 self.require_screenlock = false;
1675 self.allowed_encryption_statuses.clear();
1676 self.os_constraints.clear();
1677 self.allowed_device_management_levels.clear();
1678 self.require_admin_approval = false;
1679 self.require_corp_owned = false;
1680 self.unknown_fields.clear();
1681 }
1682}
1683
1684impl ::std::fmt::Debug for DevicePolicy {
1685 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1686 ::protobuf::text_format::fmt(self, f)
1687 }
1688}
1689
1690impl ::protobuf::reflect::ProtobufValue for DevicePolicy {
1691 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1692 ::protobuf::reflect::ReflectValueRef::Message(self)
1693 }
1694}
1695
1696#[derive(PartialEq,Clone,Default)]
1697pub struct OsConstraint {
1698 pub os_type: super::device_resources::OsType,
1700 pub minimum_version: ::std::string::String,
1701 pub require_verified_chrome_os: bool,
1702 pub unknown_fields: ::protobuf::UnknownFields,
1704 pub cached_size: ::protobuf::CachedSize,
1705}
1706
1707impl<'a> ::std::default::Default for &'a OsConstraint {
1708 fn default() -> &'a OsConstraint {
1709 <OsConstraint as ::protobuf::Message>::default_instance()
1710 }
1711}
1712
1713impl OsConstraint {
1714 pub fn new() -> OsConstraint {
1715 ::std::default::Default::default()
1716 }
1717
1718 pub fn get_os_type(&self) -> super::device_resources::OsType {
1722 self.os_type
1723 }
1724 pub fn clear_os_type(&mut self) {
1725 self.os_type = super::device_resources::OsType::OS_UNSPECIFIED;
1726 }
1727
1728 pub fn set_os_type(&mut self, v: super::device_resources::OsType) {
1730 self.os_type = v;
1731 }
1732
1733 pub fn get_minimum_version(&self) -> &str {
1737 &self.minimum_version
1738 }
1739 pub fn clear_minimum_version(&mut self) {
1740 self.minimum_version.clear();
1741 }
1742
1743 pub fn set_minimum_version(&mut self, v: ::std::string::String) {
1745 self.minimum_version = v;
1746 }
1747
1748 pub fn mut_minimum_version(&mut self) -> &mut ::std::string::String {
1751 &mut self.minimum_version
1752 }
1753
1754 pub fn take_minimum_version(&mut self) -> ::std::string::String {
1756 ::std::mem::replace(&mut self.minimum_version, ::std::string::String::new())
1757 }
1758
1759 pub fn get_require_verified_chrome_os(&self) -> bool {
1763 self.require_verified_chrome_os
1764 }
1765 pub fn clear_require_verified_chrome_os(&mut self) {
1766 self.require_verified_chrome_os = false;
1767 }
1768
1769 pub fn set_require_verified_chrome_os(&mut self, v: bool) {
1771 self.require_verified_chrome_os = v;
1772 }
1773}
1774
1775impl ::protobuf::Message for OsConstraint {
1776 fn is_initialized(&self) -> bool {
1777 true
1778 }
1779
1780 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1781 while !is.eof()? {
1782 let (field_number, wire_type) = is.read_tag_unpack()?;
1783 match field_number {
1784 1 => {
1785 ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.os_type, 1, &mut self.unknown_fields)?
1786 },
1787 2 => {
1788 ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.minimum_version)?;
1789 },
1790 3 => {
1791 if wire_type != ::protobuf::wire_format::WireTypeVarint {
1792 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1793 }
1794 let tmp = is.read_bool()?;
1795 self.require_verified_chrome_os = tmp;
1796 },
1797 _ => {
1798 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1799 },
1800 };
1801 }
1802 ::std::result::Result::Ok(())
1803 }
1804
1805 #[allow(unused_variables)]
1807 fn compute_size(&self) -> u32 {
1808 let mut my_size = 0;
1809 if self.os_type != super::device_resources::OsType::OS_UNSPECIFIED {
1810 my_size += ::protobuf::rt::enum_size(1, self.os_type);
1811 }
1812 if !self.minimum_version.is_empty() {
1813 my_size += ::protobuf::rt::string_size(2, &self.minimum_version);
1814 }
1815 if self.require_verified_chrome_os != false {
1816 my_size += 2;
1817 }
1818 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1819 self.cached_size.set(my_size);
1820 my_size
1821 }
1822
1823 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1824 if self.os_type != super::device_resources::OsType::OS_UNSPECIFIED {
1825 os.write_enum(1, ::protobuf::ProtobufEnum::value(&self.os_type))?;
1826 }
1827 if !self.minimum_version.is_empty() {
1828 os.write_string(2, &self.minimum_version)?;
1829 }
1830 if self.require_verified_chrome_os != false {
1831 os.write_bool(3, self.require_verified_chrome_os)?;
1832 }
1833 os.write_unknown_fields(self.get_unknown_fields())?;
1834 ::std::result::Result::Ok(())
1835 }
1836
1837 fn get_cached_size(&self) -> u32 {
1838 self.cached_size.get()
1839 }
1840
1841 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1842 &self.unknown_fields
1843 }
1844
1845 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1846 &mut self.unknown_fields
1847 }
1848
1849 fn as_any(&self) -> &dyn (::std::any::Any) {
1850 self as &dyn (::std::any::Any)
1851 }
1852 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1853 self as &mut dyn (::std::any::Any)
1854 }
1855 fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1856 self
1857 }
1858
1859 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1860 Self::descriptor_static()
1861 }
1862
1863 fn new() -> OsConstraint {
1864 OsConstraint::new()
1865 }
1866
1867 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1868 static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1869 descriptor.get(|| {
1870 let mut fields = ::std::vec::Vec::new();
1871 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<super::device_resources::OsType>>(
1872 "os_type",
1873 |m: &OsConstraint| { &m.os_type },
1874 |m: &mut OsConstraint| { &mut m.os_type },
1875 ));
1876 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1877 "minimum_version",
1878 |m: &OsConstraint| { &m.minimum_version },
1879 |m: &mut OsConstraint| { &mut m.minimum_version },
1880 ));
1881 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
1882 "require_verified_chrome_os",
1883 |m: &OsConstraint| { &m.require_verified_chrome_os },
1884 |m: &mut OsConstraint| { &mut m.require_verified_chrome_os },
1885 ));
1886 ::protobuf::reflect::MessageDescriptor::new_pb_name::<OsConstraint>(
1887 "OsConstraint",
1888 fields,
1889 file_descriptor_proto()
1890 )
1891 })
1892 }
1893
1894 fn default_instance() -> &'static OsConstraint {
1895 static instance: ::protobuf::rt::LazyV2<OsConstraint> = ::protobuf::rt::LazyV2::INIT;
1896 instance.get(OsConstraint::new)
1897 }
1898}
1899
1900impl ::protobuf::Clear for OsConstraint {
1901 fn clear(&mut self) {
1902 self.os_type = super::device_resources::OsType::OS_UNSPECIFIED;
1903 self.minimum_version.clear();
1904 self.require_verified_chrome_os = false;
1905 self.unknown_fields.clear();
1906 }
1907}
1908
1909impl ::std::fmt::Debug for OsConstraint {
1910 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1911 ::protobuf::text_format::fmt(self, f)
1912 }
1913}
1914
1915impl ::protobuf::reflect::ProtobufValue for OsConstraint {
1916 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1917 ::protobuf::reflect::ReflectValueRef::Message(self)
1918 }
1919}
1920
1921static file_descriptor_proto_data: &'static [u8] = b"\
1922 \n:google/identity/accesscontextmanager/v1/access_level.proto\x12'google\
1923 .identity.accesscontextmanager.v1\x1a\x19google/api/resource.proto\x1a@g\
1924 oogle/identity/accesscontextmanager/type/device_resources.proto\x1a\x1fg\
1925 oogle/protobuf/timestamp.proto\x1a\x16google/type/expr.proto\"\xeb\x03\n\
1926 \x0bAccessLevel\x12\x12\n\x04name\x18\x01\x20\x01(\tR\x04name\x12\x14\n\
1927 \x05title\x18\x02\x20\x01(\tR\x05title\x12\x20\n\x0bdescription\x18\x03\
1928 \x20\x01(\tR\x0bdescription\x12K\n\x05basic\x18\x04\x20\x01(\x0b23.googl\
1929 e.identity.accesscontextmanager.v1.BasicLevelH\0R\x05basic\x12N\n\x06cus\
1930 tom\x18\x05\x20\x01(\x0b24.google.identity.accesscontextmanager.v1.Custo\
1931 mLevelH\0R\x06custom\x12;\n\x0bcreate_time\x18\x06\x20\x01(\x0b2\x1a.goo\
1932 gle.protobuf.TimestampR\ncreateTime\x12;\n\x0bupdate_time\x18\x07\x20\
1933 \x01(\x0b2\x1a.google.protobuf.TimestampR\nupdateTimeB\x07\n\x05level:p\
1934 \xeaAm\n/accesscontextmanager.googleapis.com/AccessLevel\x12:accessPolic\
1935 ies/{access_policy}/accessLevels/{access_level}\"\x8e\x02\n\nBasicLevel\
1936 \x12R\n\nconditions\x18\x01\x20\x03(\x0b22.google.identity.accesscontext\
1937 manager.v1.ConditionR\nconditions\x12}\n\x12combining_function\x18\x02\
1938 \x20\x01(\x0e2N.google.identity.accesscontextmanager.v1.BasicLevel.Condi\
1939 tionCombiningFunctionR\x11combiningFunction\"-\n\x1aConditionCombiningFu\
1940 nction\x12\x07\n\x03AND\x10\0\x12\x06\n\x02OR\x10\x01\"\x90\x02\n\tCondi\
1941 tion\x12%\n\x0eip_subnetworks\x18\x01\x20\x03(\tR\ripSubnetworks\x12Z\n\
1942 \rdevice_policy\x18\x02\x20\x01(\x0b25.google.identity.accesscontextmana\
1943 ger.v1.DevicePolicyR\x0cdevicePolicy\x124\n\x16required_access_levels\
1944 \x18\x03\x20\x03(\tR\x14requiredAccessLevels\x12\x16\n\x06negate\x18\x05\
1945 \x20\x01(\x08R\x06negate\x12\x18\n\x07members\x18\x06\x20\x03(\tR\x07mem\
1946 bers\x12\x18\n\x07regions\x18\x07\x20\x03(\tR\x07regions\"4\n\x0bCustomL\
1947 evel\x12%\n\x04expr\x18\x01\x20\x01(\x0b2\x11.google.type.ExprR\x04expr\
1948 \"\x8f\x04\n\x0cDevicePolicy\x12-\n\x12require_screenlock\x18\x01\x20\
1949 \x01(\x08R\x11requireScreenlock\x12\x81\x01\n\x1ballowed_encryption_stat\
1950 uses\x18\x02\x20\x03(\x0e2A.google.identity.accesscontextmanager.type.De\
1951 viceEncryptionStatusR\x19allowedEncryptionStatuses\x12\\\n\x0eos_constra\
1952 ints\x18\x03\x20\x03(\x0b25.google.identity.accesscontextmanager.v1.OsCo\
1953 nstraintR\rosConstraints\x12\x89\x01\n\x20allowed_device_management_leve\
1954 ls\x18\x06\x20\x03(\x0e2@.google.identity.accesscontextmanager.type.Devi\
1955 ceManagementLevelR\x1dallowedDeviceManagementLevels\x124\n\x16require_ad\
1956 min_approval\x18\x07\x20\x01(\x08R\x14requireAdminApproval\x12,\n\x12req\
1957 uire_corp_owned\x18\x08\x20\x01(\x08R\x10requireCorpOwned\"\xc0\x01\n\
1958 \x0cOsConstraint\x12J\n\x07os_type\x18\x01\x20\x01(\x0e21.google.identit\
1959 y.accesscontextmanager.type.OsTypeR\x06osType\x12'\n\x0fminimum_version\
1960 \x18\x02\x20\x01(\tR\x0eminimumVersion\x12;\n\x1arequire_verified_chrome\
1961 _os\x18\x03\x20\x01(\x08R\x17requireVerifiedChromeOsB\xa7\x02\n+com.goog\
1962 le.identity.accesscontextmanager.v1B\x10AccessLevelProtoP\x01Z\\cloud.go\
1963 ogle.com/go/accesscontextmanager/apiv1/accesscontextmanagerpb;accesscont\
1964 extmanagerpb\xa2\x02\x04GACM\xaa\x02'Google.Identity.AccessContextManage\
1965 r.V1\xca\x02'Google\\Identity\\AccessContextManager\\V1\xea\x02*Google::\
1966 Identity::AccessContextManager::V1J\xe7>\n\x07\x12\x05\x0e\0\xbf\x01\x01\
1967 \n\xbc\x04\n\x01\x0c\x12\x03\x0e\0\x122\xb1\x04\x20Copyright\x202022\x20\
1968 Google\x20LLC\n\n\x20Licensed\x20under\x20the\x20Apache\x20License,\x20V\
1969 ersion\x202.0\x20(the\x20\"License\");\n\x20you\x20may\x20not\x20use\x20\
1970 this\x20file\x20except\x20in\x20compliance\x20with\x20the\x20License.\n\
1971 \x20You\x20may\x20obtain\x20a\x20copy\x20of\x20the\x20License\x20at\n\n\
1972 \x20\x20\x20\x20\x20http://www.apache.org/licenses/LICENSE-2.0\n\n\x20Un\
1973 less\x20required\x20by\x20applicable\x20law\x20or\x20agreed\x20to\x20in\
1974 \x20writing,\x20software\n\x20distributed\x20under\x20the\x20License\x20\
1975 is\x20distributed\x20on\x20an\x20\"AS\x20IS\"\x20BASIS,\n\x20WITHOUT\x20\
1976 WARRANTIES\x20OR\x20CONDITIONS\x20OF\x20ANY\x20KIND,\x20either\x20expres\
1977 s\x20or\x20implied.\n\x20See\x20the\x20License\x20for\x20the\x20specific\
1978 \x20language\x20governing\x20permissions\x20and\n\x20limitations\x20unde\
1979 r\x20the\x20License.\n\n\x08\n\x01\x02\x12\x03\x10\00\n\t\n\x02\x03\0\
1980 \x12\x03\x12\0#\n\t\n\x02\x03\x01\x12\x03\x13\0J\n\t\n\x02\x03\x02\x12\
1981 \x03\x14\0)\n\t\n\x02\x03\x03\x12\x03\x15\0\x20\n\x08\n\x01\x08\x12\x03\
1982 \x17\0D\n\t\n\x02\x08%\x12\x03\x17\0D\n\x08\n\x01\x08\x12\x03\x18\0s\n\t\
1983 \n\x02\x08\x0b\x12\x03\x18\0s\n\x08\n\x01\x08\x12\x03\x19\0\"\n\t\n\x02\
1984 \x08\n\x12\x03\x19\0\"\n\x08\n\x01\x08\x12\x03\x1a\01\n\t\n\x02\x08\x08\
1985 \x12\x03\x1a\01\n\x08\n\x01\x08\x12\x03\x1b\0D\n\t\n\x02\x08\x01\x12\x03\
1986 \x1b\0D\n\x08\n\x01\x08\x12\x03\x1c\0\"\n\t\n\x02\x08$\x12\x03\x1c\0\"\n\
1987 \x08\n\x01\x08\x12\x03\x1d\0D\n\t\n\x02\x08)\x12\x03\x1d\0D\n\x08\n\x01\
1988 \x08\x12\x03\x1e\0C\n\t\n\x02\x08-\x12\x03\x1e\0C\n\xaf\x01\n\x02\x04\0\
1989 \x12\x04#\0C\x01\x1a\xa2\x01\x20An\x20`AccessLevel`\x20is\x20a\x20label\
1990 \x20that\x20can\x20be\x20applied\x20to\x20requests\x20to\x20Google\x20Cl\
1991 oud\n\x20services,\x20along\x20with\x20a\x20list\x20of\x20requirements\
1992 \x20necessary\x20for\x20the\x20label\x20to\x20be\n\x20applied.\n\n\n\n\
1993 \x03\x04\0\x01\x12\x03#\x08\x13\n\x0b\n\x03\x04\0\x07\x12\x04$\x02'\x04\
1994 \n\r\n\x05\x04\0\x07\x9d\x08\x12\x04$\x02'\x04\n\xa6\x02\n\x04\x04\0\x02\
1995 \0\x12\x03-\x02\x12\x1a\x98\x02\x20Required.\x20Resource\x20name\x20for\
1996 \x20the\x20Access\x20Level.\x20The\x20`short_name`\x20component\n\x20mus\
1997 t\x20begin\x20with\x20a\x20letter\x20and\x20only\x20include\x20alphanume\
1998 ric\x20and\x20'_'.\x20Format:\n\x20`accessPolicies/{access_policy}/acces\
1999 sLevels/{access_level}`.\x20The\x20maximum\n\x20length\x20of\x20the\x20`\
2000 access_level`\x20component\x20is\x2050\x20characters.\n\n\x0c\n\x05\x04\
2001 \0\x02\0\x05\x12\x03-\x02\x08\n\x0c\n\x05\x04\0\x02\0\x01\x12\x03-\t\r\n\
2002 \x0c\n\x05\x04\0\x02\0\x03\x12\x03-\x10\x11\nF\n\x04\x04\0\x02\x01\x12\
2003 \x030\x02\x13\x1a9\x20Human\x20readable\x20title.\x20Must\x20be\x20uniqu\
2004 e\x20within\x20the\x20Policy.\n\n\x0c\n\x05\x04\0\x02\x01\x05\x12\x030\
2005 \x02\x08\n\x0c\n\x05\x04\0\x02\x01\x01\x12\x030\t\x0e\n\x0c\n\x05\x04\0\
2006 \x02\x01\x03\x12\x030\x11\x12\nV\n\x04\x04\0\x02\x02\x12\x033\x02\x19\
2007 \x1aI\x20Description\x20of\x20the\x20`AccessLevel`\x20and\x20its\x20use.\
2008 \x20Does\x20not\x20affect\x20behavior.\n\n\x0c\n\x05\x04\0\x02\x02\x05\
2009 \x12\x033\x02\x08\n\x0c\n\x05\x04\0\x02\x02\x01\x12\x033\t\x14\n\x0c\n\
2010 \x05\x04\0\x02\x02\x03\x12\x033\x17\x18\nT\n\x04\x04\0\x08\0\x12\x046\
2011 \x02<\x03\x1aF\x20Required.\x20Describes\x20the\x20necessary\x20conditio\
2012 ns\x20for\x20the\x20level\x20to\x20apply.\n\n\x0c\n\x05\x04\0\x08\0\x01\
2013 \x12\x036\x08\r\n7\n\x04\x04\0\x02\x03\x12\x038\x04\x19\x1a*\x20A\x20`Ba\
2014 sicLevel`\x20composed\x20of\x20`Conditions`.\n\n\x0c\n\x05\x04\0\x02\x03\
2015 \x06\x12\x038\x04\x0e\n\x0c\n\x05\x04\0\x02\x03\x01\x12\x038\x0f\x14\n\
2016 \x0c\n\x05\x04\0\x02\x03\x03\x12\x038\x17\x18\nI\n\x04\x04\0\x02\x04\x12\
2017 \x03;\x04\x1b\x1a<\x20A\x20`CustomLevel`\x20written\x20in\x20the\x20Comm\
2018 on\x20Expression\x20Language.\n\n\x0c\n\x05\x04\0\x02\x04\x06\x12\x03;\
2019 \x04\x0f\n\x0c\n\x05\x04\0\x02\x04\x01\x12\x03;\x10\x16\n\x0c\n\x05\x04\
2020 \0\x02\x04\x03\x12\x03;\x19\x1a\nF\n\x04\x04\0\x02\x05\x12\x03?\x02,\x1a\
2021 9\x20Output\x20only.\x20Time\x20the\x20`AccessLevel`\x20was\x20created\
2022 \x20in\x20UTC.\n\n\x0c\n\x05\x04\0\x02\x05\x06\x12\x03?\x02\x1b\n\x0c\n\
2023 \x05\x04\0\x02\x05\x01\x12\x03?\x1c'\n\x0c\n\x05\x04\0\x02\x05\x03\x12\
2024 \x03?*+\nF\n\x04\x04\0\x02\x06\x12\x03B\x02,\x1a9\x20Output\x20only.\x20\
2025 Time\x20the\x20`AccessLevel`\x20was\x20updated\x20in\x20UTC.\n\n\x0c\n\
2026 \x05\x04\0\x02\x06\x06\x12\x03B\x02\x1b\n\x0c\n\x05\x04\0\x02\x06\x01\
2027 \x12\x03B\x1c'\n\x0c\n\x05\x04\0\x02\x06\x03\x12\x03B*+\nS\n\x02\x04\x01\
2028 \x12\x04F\0Z\x01\x1aG\x20`BasicLevel`\x20is\x20an\x20`AccessLevel`\x20us\
2029 ing\x20a\x20set\x20of\x20recommended\x20features.\n\n\n\n\x03\x04\x01\
2030 \x01\x12\x03F\x08\x12\n\x88\x01\n\x04\x04\x01\x04\0\x12\x04I\x02O\x03\
2031 \x1az\x20Options\x20for\x20how\x20the\x20`conditions`\x20list\x20should\
2032 \x20be\x20combined\x20to\x20determine\x20if\n\x20this\x20`AccessLevel`\
2033 \x20is\x20applied.\x20Default\x20is\x20AND.\n\n\x0c\n\x05\x04\x01\x04\0\
2034 \x01\x12\x03I\x07!\nO\n\x06\x04\x01\x04\0\x02\0\x12\x03K\x04\x0c\x1a@\
2035 \x20All\x20`Conditions`\x20must\x20be\x20true\x20for\x20the\x20`BasicLev\
2036 el`\x20to\x20be\x20true.\n\n\x0e\n\x07\x04\x01\x04\0\x02\0\x01\x12\x03K\
2037 \x04\x07\n\x0e\n\x07\x04\x01\x04\0\x02\0\x02\x12\x03K\n\x0b\nT\n\x06\x04\
2038 \x01\x04\0\x02\x01\x12\x03N\x04\x0b\x1aE\x20If\x20at\x20least\x20one\x20\
2039 `Condition`\x20is\x20true,\x20then\x20the\x20`BasicLevel`\x20is\x20true.\
2040 \n\n\x0e\n\x07\x04\x01\x04\0\x02\x01\x01\x12\x03N\x04\x06\n\x0e\n\x07\
2041 \x04\x01\x04\0\x02\x01\x02\x12\x03N\t\n\nT\n\x04\x04\x01\x02\0\x12\x03R\
2042 \x02$\x1aG\x20Required.\x20A\x20list\x20of\x20requirements\x20for\x20the\
2043 \x20`AccessLevel`\x20to\x20be\x20granted.\n\n\x0c\n\x05\x04\x01\x02\0\
2044 \x04\x12\x03R\x02\n\n\x0c\n\x05\x04\x01\x02\0\x06\x12\x03R\x0b\x14\n\x0c\
2045 \n\x05\x04\x01\x02\0\x01\x12\x03R\x15\x1f\n\x0c\n\x05\x04\x01\x02\0\x03\
2046 \x12\x03R\"#\n\xe9\x02\n\x04\x04\x01\x02\x01\x12\x03Y\x024\x1a\xdb\x02\
2047 \x20How\x20the\x20`conditions`\x20list\x20should\x20be\x20combined\x20to\
2048 \x20determine\x20if\x20a\x20request\x20is\n\x20granted\x20this\x20`Acces\
2049 sLevel`.\x20If\x20AND\x20is\x20used,\x20each\x20`Condition`\x20in\n\x20`\
2050 conditions`\x20must\x20be\x20satisfied\x20for\x20the\x20`AccessLevel`\
2051 \x20to\x20be\x20applied.\x20If\x20OR\n\x20is\x20used,\x20at\x20least\x20\
2052 one\x20`Condition`\x20in\x20`conditions`\x20must\x20be\x20satisfied\x20f\
2053 or\x20the\n\x20`AccessLevel`\x20to\x20be\x20applied.\x20Default\x20behav\
2054 ior\x20is\x20AND.\n\n\x0c\n\x05\x04\x01\x02\x01\x06\x12\x03Y\x02\x1c\n\
2055 \x0c\n\x05\x04\x01\x02\x01\x01\x12\x03Y\x1d/\n\x0c\n\x05\x04\x01\x02\x01\
2056 \x03\x12\x03Y23\n\x84\x03\n\x02\x04\x02\x12\x05a\0\x87\x01\x01\x1a\xf6\
2057 \x02\x20A\x20condition\x20necessary\x20for\x20an\x20`AccessLevel`\x20to\
2058 \x20be\x20granted.\x20The\x20Condition\x20is\x20an\n\x20AND\x20over\x20i\
2059 ts\x20fields.\x20So\x20a\x20Condition\x20is\x20true\x20if:\x201)\x20the\
2060 \x20request\x20IP\x20is\x20from\x20one\n\x20of\x20the\x20listed\x20subne\
2061 tworks\x20AND\x202)\x20the\x20originating\x20device\x20complies\x20with\
2062 \x20the\n\x20listed\x20device\x20policy\x20AND\x203)\x20all\x20listed\
2063 \x20access\x20levels\x20are\x20granted\x20AND\x204)\x20the\n\x20request\
2064 \x20was\x20sent\x20at\x20a\x20time\x20allowed\x20by\x20the\x20DateTimeRe\
2065 striction.\n\n\n\n\x03\x04\x02\x01\x12\x03a\x08\x11\n\xac\x04\n\x04\x04\
2066 \x02\x02\0\x12\x03j\x02%\x1a\x9e\x04\x20CIDR\x20block\x20IP\x20subnetwor\
2067 k\x20specification.\x20May\x20be\x20IPv4\x20or\x20IPv6.\x20Note\x20that\
2068 \x20for\n\x20a\x20CIDR\x20IP\x20address\x20block,\x20the\x20specified\
2069 \x20IP\x20address\x20portion\x20must\x20be\x20properly\n\x20truncated\
2070 \x20(i.e.\x20all\x20the\x20host\x20bits\x20must\x20be\x20zero)\x20or\x20\
2071 the\x20input\x20is\x20considered\n\x20malformed.\x20For\x20example,\x20\
2072 \"192.0.2.0/24\"\x20is\x20accepted\x20but\x20\"192.0.2.1/24\"\x20is\n\
2073 \x20not.\x20Similarly,\x20for\x20IPv6,\x20\"2001:db8::/32\"\x20is\x20acc\
2074 epted\x20whereas\n\x20\"2001:db8::1/32\"\x20is\x20not.\x20The\x20origina\
2075 ting\x20IP\x20of\x20a\x20request\x20must\x20be\x20in\x20one\x20of\n\x20t\
2076 he\x20listed\x20subnets\x20in\x20order\x20for\x20this\x20Condition\x20to\
2077 \x20be\x20true.\x20If\x20empty,\x20all\x20IP\n\x20addresses\x20are\x20al\
2078 lowed.\n\n\x0c\n\x05\x04\x02\x02\0\x04\x12\x03j\x02\n\n\x0c\n\x05\x04\
2079 \x02\x02\0\x05\x12\x03j\x0b\x11\n\x0c\n\x05\x04\x02\x02\0\x01\x12\x03j\
2080 \x12\x20\n\x0c\n\x05\x04\x02\x02\0\x03\x12\x03j#$\n\x92\x01\n\x04\x04\
2081 \x02\x02\x01\x12\x03n\x02!\x1a\x84\x01\x20Device\x20specific\x20restrict\
2082 ions,\x20all\x20restrictions\x20must\x20hold\x20for\x20the\n\x20Conditio\
2083 n\x20to\x20be\x20true.\x20If\x20not\x20specified,\x20all\x20devices\x20a\
2084 re\x20allowed.\n\n\x0c\n\x05\x04\x02\x02\x01\x06\x12\x03n\x02\x0e\n\x0c\
2085 \n\x05\x04\x02\x02\x01\x01\x12\x03n\x0f\x1c\n\x0c\n\x05\x04\x02\x02\x01\
2086 \x03\x12\x03n\x1f\x20\n\xb0\x02\n\x04\x04\x02\x02\x02\x12\x03u\x02-\x1a\
2087 \xa2\x02\x20A\x20list\x20of\x20other\x20access\x20levels\x20defined\x20i\
2088 n\x20the\x20same\x20`Policy`,\x20referenced\x20by\n\x20resource\x20name.\
2089 \x20Referencing\x20an\x20`AccessLevel`\x20which\x20does\x20not\x20exist\
2090 \x20is\x20an\n\x20error.\x20All\x20access\x20levels\x20listed\x20must\
2091 \x20be\x20granted\x20for\x20the\x20Condition\n\x20to\x20be\x20true.\x20E\
2092 xample:\n\x20\"`accessPolicies/MY_POLICY/accessLevels/LEVEL_NAME\"`\n\n\
2093 \x0c\n\x05\x04\x02\x02\x02\x04\x12\x03u\x02\n\n\x0c\n\x05\x04\x02\x02\
2094 \x02\x05\x12\x03u\x0b\x11\n\x0c\n\x05\x04\x02\x02\x02\x01\x12\x03u\x12(\
2095 \n\x0c\n\x05\x04\x02\x02\x02\x03\x12\x03u+,\n\xca\x01\n\x04\x04\x02\x02\
2096 \x03\x12\x03z\x02\x12\x1a\xbc\x01\x20Whether\x20to\x20negate\x20the\x20C\
2097 ondition.\x20If\x20true,\x20the\x20Condition\x20becomes\x20a\x20NAND\x20\
2098 over\n\x20its\x20non-empty\x20fields,\x20each\x20field\x20must\x20be\x20\
2099 false\x20for\x20the\x20Condition\x20overall\x20to\n\x20be\x20satisfied.\
2100 \x20Defaults\x20to\x20false.\n\n\x0c\n\x05\x04\x02\x02\x03\x05\x12\x03z\
2101 \x02\x06\n\x0c\n\x05\x04\x02\x02\x03\x01\x12\x03z\x07\r\n\x0c\n\x05\x04\
2102 \x02\x02\x03\x03\x12\x03z\x10\x11\n\xe1\x01\n\x04\x04\x02\x02\x04\x12\
2103 \x04\x82\x01\x02\x1e\x1a\xd2\x01\x20The\x20request\x20must\x20be\x20made\
2104 \x20by\x20one\x20of\x20the\x20provided\x20user\x20or\x20service\n\x20acc\
2105 ounts.\x20Groups\x20are\x20not\x20supported.\n\x20Syntax:\n\x20`user:{em\
2106 ailid}`\n\x20`serviceAccount:{emailid}`\n\x20If\x20not\x20specified,\x20\
2107 a\x20request\x20may\x20come\x20from\x20any\x20user.\n\n\r\n\x05\x04\x02\
2108 \x02\x04\x04\x12\x04\x82\x01\x02\n\n\r\n\x05\x04\x02\x02\x04\x05\x12\x04\
2109 \x82\x01\x0b\x11\n\r\n\x05\x04\x02\x02\x04\x01\x12\x04\x82\x01\x12\x19\n\
2110 \r\n\x05\x04\x02\x02\x04\x03\x12\x04\x82\x01\x1c\x1d\n\x7f\n\x04\x04\x02\
2111 \x02\x05\x12\x04\x86\x01\x02\x1e\x1aq\x20The\x20request\x20must\x20origi\
2112 nate\x20from\x20one\x20of\x20the\x20provided\x20countries/regions.\n\x20\
2113 Must\x20be\x20valid\x20ISO\x203166-1\x20alpha-2\x20codes.\n\n\r\n\x05\
2114 \x04\x02\x02\x05\x04\x12\x04\x86\x01\x02\n\n\r\n\x05\x04\x02\x02\x05\x05\
2115 \x12\x04\x86\x01\x0b\x11\n\r\n\x05\x04\x02\x02\x05\x01\x12\x04\x86\x01\
2116 \x12\x19\n\r\n\x05\x04\x02\x02\x05\x03\x12\x04\x86\x01\x1c\x1d\n\xde\x01\
2117 \n\x02\x04\x03\x12\x06\x8c\x01\0\x8f\x01\x01\x1a\xcf\x01\x20`CustomLevel\
2118 `\x20is\x20an\x20`AccessLevel`\x20using\x20the\x20Cloud\x20Common\x20Exp\
2119 ression\x20Language\n\x20to\x20represent\x20the\x20necessary\x20conditio\
2120 ns\x20for\x20the\x20level\x20to\x20apply\x20to\x20a\x20request.\n\x20See\
2121 \x20CEL\x20spec\x20at:\x20https://github.com/google/cel-spec\n\n\x0b\n\
2122 \x03\x04\x03\x01\x12\x04\x8c\x01\x08\x13\nI\n\x04\x04\x03\x02\0\x12\x04\
2123 \x8e\x01\x02\x1c\x1a;\x20Required.\x20A\x20Cloud\x20CEL\x20expression\
2124 \x20evaluating\x20to\x20a\x20boolean.\n\n\r\n\x05\x04\x03\x02\0\x06\x12\
2125 \x04\x8e\x01\x02\x12\n\r\n\x05\x04\x03\x02\0\x01\x12\x04\x8e\x01\x13\x17\
2126 \n\r\n\x05\x04\x03\x02\0\x03\x12\x04\x8e\x01\x1a\x1b\n\xfd\x04\n\x02\x04\
2127 \x04\x12\x06\x9a\x01\0\xae\x01\x01\x1a\xee\x04\x20`DevicePolicy`\x20spec\
2128 ifies\x20device\x20specific\x20restrictions\x20necessary\x20to\x20acquir\
2129 e\x20a\n\x20given\x20access\x20level.\x20A\x20`DevicePolicy`\x20specifie\
2130 s\x20requirements\x20for\x20requests\x20from\n\x20devices\x20to\x20be\
2131 \x20granted\x20access\x20levels,\x20it\x20does\x20not\x20do\x20any\x20en\
2132 forcement\x20on\x20the\n\x20device.\x20`DevicePolicy`\x20acts\x20as\x20a\
2133 n\x20AND\x20over\x20all\x20specified\x20fields,\x20and\x20each\n\x20repe\
2134 ated\x20field\x20is\x20an\x20OR\x20over\x20its\x20elements.\x20Any\x20un\
2135 set\x20fields\x20are\x20ignored.\x20For\n\x20example,\x20if\x20the\x20pr\
2136 oto\x20is\x20{\x20os_type\x20:\x20DESKTOP_WINDOWS,\x20os_type\x20:\n\x20\
2137 DESKTOP_LINUX,\x20encryption_status:\x20ENCRYPTED},\x20then\x20the\x20De\
2138 vicePolicy\x20will\x20be\n\x20true\x20for\x20requests\x20originating\x20\
2139 from\x20encrypted\x20Linux\x20desktops\x20and\x20encrypted\n\x20Windows\
2140 \x20desktops.\n\n\x0b\n\x03\x04\x04\x01\x12\x04\x9a\x01\x08\x14\nl\n\x04\
2141 \x04\x04\x02\0\x12\x04\x9d\x01\x02\x1e\x1a^\x20Whether\x20or\x20not\x20s\
2142 creenlock\x20is\x20required\x20for\x20the\x20DevicePolicy\x20to\x20be\
2143 \x20true.\n\x20Defaults\x20to\x20`false`.\n\n\r\n\x05\x04\x04\x02\0\x05\
2144 \x12\x04\x9d\x01\x02\x06\n\r\n\x05\x04\x04\x02\0\x01\x12\x04\x9d\x01\x07\
2145 \x19\n\r\n\x05\x04\x04\x02\0\x03\x12\x04\x9d\x01\x1c\x1d\nP\n\x04\x04\
2146 \x04\x02\x01\x12\x04\xa0\x01\x02l\x1aB\x20Allowed\x20encryptions\x20stat\
2147 uses,\x20an\x20empty\x20list\x20allows\x20all\x20statuses.\n\n\r\n\x05\
2148 \x04\x04\x02\x01\x04\x12\x04\xa0\x01\x02\n\n\r\n\x05\x04\x04\x02\x01\x06\
2149 \x12\x04\xa0\x01\x0bK\n\r\n\x05\x04\x04\x02\x01\x01\x12\x04\xa0\x01Lg\n\
2150 \r\n\x05\x04\x04\x02\x01\x03\x12\x04\xa0\x01jk\nU\n\x04\x04\x04\x02\x02\
2151 \x12\x04\xa3\x01\x02+\x1aG\x20Allowed\x20OS\x20versions,\x20an\x20empty\
2152 \x20list\x20allows\x20all\x20types\x20and\x20all\x20versions.\n\n\r\n\
2153 \x05\x04\x04\x02\x02\x04\x12\x04\xa3\x01\x02\n\n\r\n\x05\x04\x04\x02\x02\
2154 \x06\x12\x04\xa3\x01\x0b\x17\n\r\n\x05\x04\x04\x02\x02\x01\x12\x04\xa3\
2155 \x01\x18&\n\r\n\x05\x04\x04\x02\x02\x03\x12\x04\xa3\x01)*\n^\n\x04\x04\
2156 \x04\x02\x03\x12\x04\xa7\x01\x02p\x1aP\x20Allowed\x20device\x20managemen\
2157 t\x20levels,\x20an\x20empty\x20list\x20allows\x20all\x20management\n\x20\
2158 levels.\n\n\r\n\x05\x04\x04\x02\x03\x04\x12\x04\xa7\x01\x02\n\n\r\n\x05\
2159 \x04\x04\x02\x03\x06\x12\x04\xa7\x01\x0bJ\n\r\n\x05\x04\x04\x02\x03\x01\
2160 \x12\x04\xa7\x01Kk\n\r\n\x05\x04\x04\x02\x03\x03\x12\x04\xa7\x01no\nN\n\
2161 \x04\x04\x04\x02\x04\x12\x04\xaa\x01\x02\"\x1a@\x20Whether\x20the\x20dev\
2162 ice\x20needs\x20to\x20be\x20approved\x20by\x20the\x20customer\x20admin.\
2163 \n\n\r\n\x05\x04\x04\x02\x04\x05\x12\x04\xaa\x01\x02\x06\n\r\n\x05\x04\
2164 \x04\x02\x04\x01\x12\x04\xaa\x01\x07\x1d\n\r\n\x05\x04\x04\x02\x04\x03\
2165 \x12\x04\xaa\x01\x20!\n:\n\x04\x04\x04\x02\x05\x12\x04\xad\x01\x02\x1e\
2166 \x1a,\x20Whether\x20the\x20device\x20needs\x20to\x20be\x20corp\x20owned.\
2167 \n\n\r\n\x05\x04\x04\x02\x05\x05\x12\x04\xad\x01\x02\x06\n\r\n\x05\x04\
2168 \x04\x02\x05\x01\x12\x04\xad\x01\x07\x19\n\r\n\x05\x04\x04\x02\x05\x03\
2169 \x12\x04\xad\x01\x1c\x1d\nT\n\x02\x04\x05\x12\x06\xb1\x01\0\xbf\x01\x01\
2170 \x1aF\x20A\x20restriction\x20on\x20the\x20OS\x20type\x20and\x20version\
2171 \x20of\x20devices\x20making\x20requests.\n\n\x0b\n\x03\x04\x05\x01\x12\
2172 \x04\xb1\x01\x08\x14\n.\n\x04\x04\x05\x02\0\x12\x04\xb3\x01\x02?\x1a\x20\
2173 \x20Required.\x20The\x20allowed\x20OS\x20type.\n\n\r\n\x05\x04\x05\x02\0\
2174 \x06\x12\x04\xb3\x01\x022\n\r\n\x05\x04\x05\x02\0\x01\x12\x04\xb3\x013:\
2175 \n\r\n\x05\x04\x05\x02\0\x03\x12\x04\xb3\x01=>\n\xb1\x01\n\x04\x04\x05\
2176 \x02\x01\x12\x04\xb8\x01\x02\x1d\x1a\xa2\x01\x20The\x20minimum\x20allowe\
2177 d\x20OS\x20version.\x20If\x20not\x20set,\x20any\x20version\x20of\x20this\
2178 \x20OS\n\x20satisfies\x20the\x20constraint.\x20Format:\x20`\"major.minor\
2179 .patch\"`.\n\x20Examples:\x20`\"10.5.301\"`,\x20`\"9.2.1\"`.\n\n\r\n\x05\
2180 \x04\x05\x02\x01\x05\x12\x04\xb8\x01\x02\x08\n\r\n\x05\x04\x05\x02\x01\
2181 \x01\x12\x04\xb8\x01\t\x18\n\r\n\x05\x04\x05\x02\x01\x03\x12\x04\xb8\x01\
2182 \x1b\x1c\n\x81\x02\n\x04\x04\x05\x02\x02\x12\x04\xbe\x01\x02&\x1a\xf2\
2183 \x01\x20Only\x20allows\x20requests\x20from\x20devices\x20with\x20a\x20ve\
2184 rified\x20Chrome\x20OS.\n\x20Verifications\x20includes\x20requirements\
2185 \x20that\x20the\x20device\x20is\x20enterprise-managed,\n\x20conformant\
2186 \x20to\x20domain\x20policies,\x20and\x20the\x20caller\x20has\x20permissi\
2187 on\x20to\x20call\n\x20the\x20API\x20targeted\x20by\x20the\x20request.\n\
2188 \n\r\n\x05\x04\x05\x02\x02\x05\x12\x04\xbe\x01\x02\x06\n\r\n\x05\x04\x05\
2189 \x02\x02\x01\x12\x04\xbe\x01\x07!\n\r\n\x05\x04\x05\x02\x02\x03\x12\x04\
2190 \xbe\x01$%b\x06proto3\
2191";
2192
2193static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;
2194
2195fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
2196 ::protobuf::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
2197}
2198
2199pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
2200 file_descriptor_proto_lazy.get(|| {
2201 parse_descriptor_proto()
2202 })
2203}