google_cloud_rust_raw/identity/accesscontextmanager/v1/
access_policy.rs1#![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 AccessPolicy {
28 pub name: ::std::string::String,
30 pub parent: ::std::string::String,
31 pub title: ::std::string::String,
32 pub scopes: ::protobuf::RepeatedField<::std::string::String>,
33 pub create_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
34 pub update_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
35 pub etag: ::std::string::String,
36 pub unknown_fields: ::protobuf::UnknownFields,
38 pub cached_size: ::protobuf::CachedSize,
39}
40
41impl<'a> ::std::default::Default for &'a AccessPolicy {
42 fn default() -> &'a AccessPolicy {
43 <AccessPolicy as ::protobuf::Message>::default_instance()
44 }
45}
46
47impl AccessPolicy {
48 pub fn new() -> AccessPolicy {
49 ::std::default::Default::default()
50 }
51
52 pub fn get_name(&self) -> &str {
56 &self.name
57 }
58 pub fn clear_name(&mut self) {
59 self.name.clear();
60 }
61
62 pub fn set_name(&mut self, v: ::std::string::String) {
64 self.name = v;
65 }
66
67 pub fn mut_name(&mut self) -> &mut ::std::string::String {
70 &mut self.name
71 }
72
73 pub fn take_name(&mut self) -> ::std::string::String {
75 ::std::mem::replace(&mut self.name, ::std::string::String::new())
76 }
77
78 pub fn get_parent(&self) -> &str {
82 &self.parent
83 }
84 pub fn clear_parent(&mut self) {
85 self.parent.clear();
86 }
87
88 pub fn set_parent(&mut self, v: ::std::string::String) {
90 self.parent = v;
91 }
92
93 pub fn mut_parent(&mut self) -> &mut ::std::string::String {
96 &mut self.parent
97 }
98
99 pub fn take_parent(&mut self) -> ::std::string::String {
101 ::std::mem::replace(&mut self.parent, ::std::string::String::new())
102 }
103
104 pub fn get_title(&self) -> &str {
108 &self.title
109 }
110 pub fn clear_title(&mut self) {
111 self.title.clear();
112 }
113
114 pub fn set_title(&mut self, v: ::std::string::String) {
116 self.title = v;
117 }
118
119 pub fn mut_title(&mut self) -> &mut ::std::string::String {
122 &mut self.title
123 }
124
125 pub fn take_title(&mut self) -> ::std::string::String {
127 ::std::mem::replace(&mut self.title, ::std::string::String::new())
128 }
129
130 pub fn get_scopes(&self) -> &[::std::string::String] {
134 &self.scopes
135 }
136 pub fn clear_scopes(&mut self) {
137 self.scopes.clear();
138 }
139
140 pub fn set_scopes(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
142 self.scopes = v;
143 }
144
145 pub fn mut_scopes(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
147 &mut self.scopes
148 }
149
150 pub fn take_scopes(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
152 ::std::mem::replace(&mut self.scopes, ::protobuf::RepeatedField::new())
153 }
154
155 pub fn get_create_time(&self) -> &::protobuf::well_known_types::Timestamp {
159 self.create_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
160 }
161 pub fn clear_create_time(&mut self) {
162 self.create_time.clear();
163 }
164
165 pub fn has_create_time(&self) -> bool {
166 self.create_time.is_some()
167 }
168
169 pub fn set_create_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
171 self.create_time = ::protobuf::SingularPtrField::some(v);
172 }
173
174 pub fn mut_create_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
177 if self.create_time.is_none() {
178 self.create_time.set_default();
179 }
180 self.create_time.as_mut().unwrap()
181 }
182
183 pub fn take_create_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
185 self.create_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
186 }
187
188 pub fn get_update_time(&self) -> &::protobuf::well_known_types::Timestamp {
192 self.update_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
193 }
194 pub fn clear_update_time(&mut self) {
195 self.update_time.clear();
196 }
197
198 pub fn has_update_time(&self) -> bool {
199 self.update_time.is_some()
200 }
201
202 pub fn set_update_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
204 self.update_time = ::protobuf::SingularPtrField::some(v);
205 }
206
207 pub fn mut_update_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
210 if self.update_time.is_none() {
211 self.update_time.set_default();
212 }
213 self.update_time.as_mut().unwrap()
214 }
215
216 pub fn take_update_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
218 self.update_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
219 }
220
221 pub fn get_etag(&self) -> &str {
225 &self.etag
226 }
227 pub fn clear_etag(&mut self) {
228 self.etag.clear();
229 }
230
231 pub fn set_etag(&mut self, v: ::std::string::String) {
233 self.etag = v;
234 }
235
236 pub fn mut_etag(&mut self) -> &mut ::std::string::String {
239 &mut self.etag
240 }
241
242 pub fn take_etag(&mut self) -> ::std::string::String {
244 ::std::mem::replace(&mut self.etag, ::std::string::String::new())
245 }
246}
247
248impl ::protobuf::Message for AccessPolicy {
249 fn is_initialized(&self) -> bool {
250 for v in &self.create_time {
251 if !v.is_initialized() {
252 return false;
253 }
254 };
255 for v in &self.update_time {
256 if !v.is_initialized() {
257 return false;
258 }
259 };
260 true
261 }
262
263 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
264 while !is.eof()? {
265 let (field_number, wire_type) = is.read_tag_unpack()?;
266 match field_number {
267 1 => {
268 ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
269 },
270 2 => {
271 ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.parent)?;
272 },
273 3 => {
274 ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.title)?;
275 },
276 7 => {
277 ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.scopes)?;
278 },
279 4 => {
280 ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.create_time)?;
281 },
282 5 => {
283 ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.update_time)?;
284 },
285 6 => {
286 ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.etag)?;
287 },
288 _ => {
289 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
290 },
291 };
292 }
293 ::std::result::Result::Ok(())
294 }
295
296 #[allow(unused_variables)]
298 fn compute_size(&self) -> u32 {
299 let mut my_size = 0;
300 if !self.name.is_empty() {
301 my_size += ::protobuf::rt::string_size(1, &self.name);
302 }
303 if !self.parent.is_empty() {
304 my_size += ::protobuf::rt::string_size(2, &self.parent);
305 }
306 if !self.title.is_empty() {
307 my_size += ::protobuf::rt::string_size(3, &self.title);
308 }
309 for value in &self.scopes {
310 my_size += ::protobuf::rt::string_size(7, &value);
311 };
312 if let Some(ref v) = self.create_time.as_ref() {
313 let len = v.compute_size();
314 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
315 }
316 if let Some(ref v) = self.update_time.as_ref() {
317 let len = v.compute_size();
318 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
319 }
320 if !self.etag.is_empty() {
321 my_size += ::protobuf::rt::string_size(6, &self.etag);
322 }
323 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
324 self.cached_size.set(my_size);
325 my_size
326 }
327
328 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
329 if !self.name.is_empty() {
330 os.write_string(1, &self.name)?;
331 }
332 if !self.parent.is_empty() {
333 os.write_string(2, &self.parent)?;
334 }
335 if !self.title.is_empty() {
336 os.write_string(3, &self.title)?;
337 }
338 for v in &self.scopes {
339 os.write_string(7, &v)?;
340 };
341 if let Some(ref v) = self.create_time.as_ref() {
342 os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
343 os.write_raw_varint32(v.get_cached_size())?;
344 v.write_to_with_cached_sizes(os)?;
345 }
346 if let Some(ref v) = self.update_time.as_ref() {
347 os.write_tag(5, ::protobuf::wire_format::WireTypeLengthDelimited)?;
348 os.write_raw_varint32(v.get_cached_size())?;
349 v.write_to_with_cached_sizes(os)?;
350 }
351 if !self.etag.is_empty() {
352 os.write_string(6, &self.etag)?;
353 }
354 os.write_unknown_fields(self.get_unknown_fields())?;
355 ::std::result::Result::Ok(())
356 }
357
358 fn get_cached_size(&self) -> u32 {
359 self.cached_size.get()
360 }
361
362 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
363 &self.unknown_fields
364 }
365
366 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
367 &mut self.unknown_fields
368 }
369
370 fn as_any(&self) -> &dyn (::std::any::Any) {
371 self as &dyn (::std::any::Any)
372 }
373 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
374 self as &mut dyn (::std::any::Any)
375 }
376 fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
377 self
378 }
379
380 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
381 Self::descriptor_static()
382 }
383
384 fn new() -> AccessPolicy {
385 AccessPolicy::new()
386 }
387
388 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
389 static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
390 descriptor.get(|| {
391 let mut fields = ::std::vec::Vec::new();
392 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
393 "name",
394 |m: &AccessPolicy| { &m.name },
395 |m: &mut AccessPolicy| { &mut m.name },
396 ));
397 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
398 "parent",
399 |m: &AccessPolicy| { &m.parent },
400 |m: &mut AccessPolicy| { &mut m.parent },
401 ));
402 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
403 "title",
404 |m: &AccessPolicy| { &m.title },
405 |m: &mut AccessPolicy| { &mut m.title },
406 ));
407 fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
408 "scopes",
409 |m: &AccessPolicy| { &m.scopes },
410 |m: &mut AccessPolicy| { &mut m.scopes },
411 ));
412 fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
413 "create_time",
414 |m: &AccessPolicy| { &m.create_time },
415 |m: &mut AccessPolicy| { &mut m.create_time },
416 ));
417 fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
418 "update_time",
419 |m: &AccessPolicy| { &m.update_time },
420 |m: &mut AccessPolicy| { &mut m.update_time },
421 ));
422 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
423 "etag",
424 |m: &AccessPolicy| { &m.etag },
425 |m: &mut AccessPolicy| { &mut m.etag },
426 ));
427 ::protobuf::reflect::MessageDescriptor::new_pb_name::<AccessPolicy>(
428 "AccessPolicy",
429 fields,
430 file_descriptor_proto()
431 )
432 })
433 }
434
435 fn default_instance() -> &'static AccessPolicy {
436 static instance: ::protobuf::rt::LazyV2<AccessPolicy> = ::protobuf::rt::LazyV2::INIT;
437 instance.get(AccessPolicy::new)
438 }
439}
440
441impl ::protobuf::Clear for AccessPolicy {
442 fn clear(&mut self) {
443 self.name.clear();
444 self.parent.clear();
445 self.title.clear();
446 self.scopes.clear();
447 self.create_time.clear();
448 self.update_time.clear();
449 self.etag.clear();
450 self.unknown_fields.clear();
451 }
452}
453
454impl ::std::fmt::Debug for AccessPolicy {
455 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
456 ::protobuf::text_format::fmt(self, f)
457 }
458}
459
460impl ::protobuf::reflect::ProtobufValue for AccessPolicy {
461 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
462 ::protobuf::reflect::ReflectValueRef::Message(self)
463 }
464}
465
466static file_descriptor_proto_data: &'static [u8] = b"\
467 \n;google/identity/accesscontextmanager/v1/access_policy.proto\x12'googl\
468 e.identity.accesscontextmanager.v1\x1a\x19google/api/resource.proto\x1a\
469 \x1fgoogle/protobuf/timestamp.proto\"\xcd\x02\n\x0cAccessPolicy\x12\x12\
470 \n\x04name\x18\x01\x20\x01(\tR\x04name\x12\x16\n\x06parent\x18\x02\x20\
471 \x01(\tR\x06parent\x12\x14\n\x05title\x18\x03\x20\x01(\tR\x05title\x12\
472 \x16\n\x06scopes\x18\x07\x20\x03(\tR\x06scopes\x12;\n\x0bcreate_time\x18\
473 \x04\x20\x01(\x0b2\x1a.google.protobuf.TimestampR\ncreateTime\x12;\n\x0b\
474 update_time\x18\x05\x20\x01(\x0b2\x1a.google.protobuf.TimestampR\nupdate\
475 Time\x12\x12\n\x04etag\x18\x06\x20\x01(\tR\x04etag:U\xeaAR\n0accessconte\
476 xtmanager.googleapis.com/AccessPolicy\x12\x1eaccessPolicies/{access_poli\
477 cy}B\xa2\x02\n+com.google.identity.accesscontextmanager.v1B\x0bPolicyPro\
478 toP\x01Z\\cloud.google.com/go/accesscontextmanager/apiv1/accesscontextma\
479 nagerpb;accesscontextmanagerpb\xa2\x02\x04GACM\xaa\x02'Google.Identity.A\
480 ccessContextManager.V1\xca\x02'Google\\Identity\\AccessContextManager\\V\
481 1\xea\x02*Google::Identity::AccessContextManager::V1J\xdc\x18\n\x06\x12\
482 \x04\x0e\0P\x01\n\xbc\x04\n\x01\x0c\x12\x03\x0e\0\x122\xb1\x04\x20Copyri\
483 ght\x202022\x20Google\x20LLC\n\n\x20Licensed\x20under\x20the\x20Apache\
484 \x20License,\x20Version\x202.0\x20(the\x20\"License\");\n\x20you\x20may\
485 \x20not\x20use\x20this\x20file\x20except\x20in\x20compliance\x20with\x20\
486 the\x20License.\n\x20You\x20may\x20obtain\x20a\x20copy\x20of\x20the\x20L\
487 icense\x20at\n\n\x20\x20\x20\x20\x20http://www.apache.org/licenses/LICEN\
488 SE-2.0\n\n\x20Unless\x20required\x20by\x20applicable\x20law\x20or\x20agr\
489 eed\x20to\x20in\x20writing,\x20software\n\x20distributed\x20under\x20the\
490 \x20License\x20is\x20distributed\x20on\x20an\x20\"AS\x20IS\"\x20BASIS,\n\
491 \x20WITHOUT\x20WARRANTIES\x20OR\x20CONDITIONS\x20OF\x20ANY\x20KIND,\x20e\
492 ither\x20express\x20or\x20implied.\n\x20See\x20the\x20License\x20for\x20\
493 the\x20specific\x20language\x20governing\x20permissions\x20and\n\x20limi\
494 tations\x20under\x20the\x20License.\n\n\x08\n\x01\x02\x12\x03\x10\00\n\t\
495 \n\x02\x03\0\x12\x03\x12\0#\n\t\n\x02\x03\x01\x12\x03\x13\0)\n\x08\n\x01\
496 \x08\x12\x03\x15\0D\n\t\n\x02\x08%\x12\x03\x15\0D\n\x08\n\x01\x08\x12\
497 \x03\x16\0s\n\t\n\x02\x08\x0b\x12\x03\x16\0s\n\x08\n\x01\x08\x12\x03\x17\
498 \0\"\n\t\n\x02\x08\n\x12\x03\x17\0\"\n\x08\n\x01\x08\x12\x03\x18\0,\n\t\
499 \n\x02\x08\x08\x12\x03\x18\0,\n\x08\n\x01\x08\x12\x03\x19\0D\n\t\n\x02\
500 \x08\x01\x12\x03\x19\0D\n\x08\n\x01\x08\x12\x03\x1a\0\"\n\t\n\x02\x08$\
501 \x12\x03\x1a\0\"\n\x08\n\x01\x08\x12\x03\x1b\0D\n\t\n\x02\x08)\x12\x03\
502 \x1b\0D\n\x08\n\x01\x08\x12\x03\x1c\0C\n\t\n\x02\x08-\x12\x03\x1c\0C\n\
503 \xfd\x02\n\x02\x04\0\x12\x04#\0P\x01\x1a\xf0\x02\x20`AccessPolicy`\x20is\
504 \x20a\x20container\x20for\x20`AccessLevels`\x20(which\x20define\x20the\
505 \x20necessary\n\x20attributes\x20to\x20use\x20Google\x20Cloud\x20service\
506 s)\x20and\x20`ServicePerimeters`\x20(which\n\x20define\x20regions\x20of\
507 \x20services\x20able\x20to\x20freely\x20pass\x20data\x20within\x20a\x20p\
508 erimeter).\x20An\n\x20access\x20policy\x20is\x20globally\x20visible\x20w\
509 ithin\x20an\x20organization,\x20and\x20the\n\x20restrictions\x20it\x20sp\
510 ecifies\x20apply\x20to\x20all\x20projects\x20within\x20an\x20organizatio\
511 n.\n\n\n\n\x03\x04\0\x01\x12\x03#\x08\x14\n\x0b\n\x03\x04\0\x07\x12\x04$\
512 \x02'\x04\n\r\n\x05\x04\0\x07\x9d\x08\x12\x04$\x02'\x04\nj\n\x04\x04\0\
513 \x02\0\x12\x03+\x02\x12\x1a]\x20Output\x20only.\x20Resource\x20name\x20o\
514 f\x20the\x20`AccessPolicy`.\x20Format:\n\x20`accessPolicies/{access_poli\
515 cy}`\n\n\x0c\n\x05\x04\0\x02\0\x05\x12\x03+\x02\x08\n\x0c\n\x05\x04\0\
516 \x02\0\x01\x12\x03+\t\r\n\x0c\n\x05\x04\0\x02\0\x03\x12\x03+\x10\x11\n\
517 \xaa\x01\n\x04\x04\0\x02\x01\x12\x030\x02\x14\x1a\x9c\x01\x20Required.\
518 \x20The\x20parent\x20of\x20this\x20`AccessPolicy`\x20in\x20the\x20Cloud\
519 \x20Resource\n\x20Hierarchy.\x20Currently\x20immutable\x20once\x20create\
520 d.\x20Format:\n\x20`organizations/{organization_id}`\n\n\x0c\n\x05\x04\0\
521 \x02\x01\x05\x12\x030\x02\x08\n\x0c\n\x05\x04\0\x02\x01\x01\x12\x030\t\
522 \x0f\n\x0c\n\x05\x04\0\x02\x01\x03\x12\x030\x12\x13\nH\n\x04\x04\0\x02\
523 \x02\x12\x033\x02\x13\x1a;\x20Required.\x20Human\x20readable\x20title.\
524 \x20Does\x20not\x20affect\x20behavior.\n\n\x0c\n\x05\x04\0\x02\x02\x05\
525 \x12\x033\x02\x08\n\x0c\n\x05\x04\0\x02\x02\x01\x12\x033\t\x0e\n\x0c\n\
526 \x05\x04\0\x02\x02\x03\x12\x033\x11\x12\n\xcb\x06\n\x04\x04\0\x02\x03\
527 \x12\x03C\x02\x1d\x1a\xbd\x06\x20The\x20scopes\x20of\x20a\x20policy\x20d\
528 efine\x20which\x20resources\x20an\x20ACM\x20policy\x20can\x20restrict,\n\
529 \x20and\x20where\x20ACM\x20resources\x20can\x20be\x20referenced.\n\x20Fo\
530 r\x20example,\x20a\x20policy\x20with\x20scopes=[\"folders/123\"]\x20has\
531 \x20the\x20following\n\x20behavior:\n\x20-\x20vpcsc\x20perimeters\x20can\
532 \x20only\x20restrict\x20projects\x20within\x20folders/123\n\x20-\x20acce\
533 ss\x20levels\x20can\x20only\x20be\x20referenced\x20by\x20resources\x20wi\
534 thin\x20folders/123.\n\x20If\x20empty,\x20there\x20are\x20no\x20limitati\
535 ons\x20on\x20which\x20resources\x20can\x20be\x20restricted\x20by\n\x20an\
536 \x20ACM\x20policy,\x20and\x20there\x20are\x20no\x20limitations\x20on\x20\
537 where\x20ACM\x20resources\x20can\x20be\n\x20referenced.\n\x20Only\x20one\
538 \x20policy\x20can\x20include\x20a\x20given\x20scope\x20(attempting\x20to\
539 \x20create\x20a\x20second\n\x20policy\x20which\x20includes\x20\"folders/\
540 123\"\x20will\x20result\x20in\x20an\x20error).\n\x20Currently,\x20scopes\
541 \x20cannot\x20be\x20modified\x20after\x20a\x20policy\x20is\x20created.\n\
542 \x20Currently,\x20policies\x20can\x20only\x20have\x20a\x20single\x20scop\
543 e.\n\x20Format:\x20list\x20of\x20`folders/{folder_number}`\x20or\x20`pro\
544 jects/{project_number}`\n\n\x0c\n\x05\x04\0\x02\x03\x04\x12\x03C\x02\n\n\
545 \x0c\n\x05\x04\0\x02\x03\x05\x12\x03C\x0b\x11\n\x0c\n\x05\x04\0\x02\x03\
546 \x01\x12\x03C\x12\x18\n\x0c\n\x05\x04\0\x02\x03\x03\x12\x03C\x1b\x1c\nG\
547 \n\x04\x04\0\x02\x04\x12\x03F\x02,\x1a:\x20Output\x20only.\x20Time\x20th\
548 e\x20`AccessPolicy`\x20was\x20created\x20in\x20UTC.\n\n\x0c\n\x05\x04\0\
549 \x02\x04\x06\x12\x03F\x02\x1b\n\x0c\n\x05\x04\0\x02\x04\x01\x12\x03F\x1c\
550 '\n\x0c\n\x05\x04\0\x02\x04\x03\x12\x03F*+\nG\n\x04\x04\0\x02\x05\x12\
551 \x03I\x02,\x1a:\x20Output\x20only.\x20Time\x20the\x20`AccessPolicy`\x20w\
552 as\x20updated\x20in\x20UTC.\n\n\x0c\n\x05\x04\0\x02\x05\x06\x12\x03I\x02\
553 \x1b\n\x0c\n\x05\x04\0\x02\x05\x01\x12\x03I\x1c'\n\x0c\n\x05\x04\0\x02\
554 \x05\x03\x12\x03I*+\n\xab\x02\n\x04\x04\0\x02\x06\x12\x03O\x02\x12\x1a\
555 \x9d\x02\x20Output\x20only.\x20An\x20opaque\x20identifier\x20for\x20the\
556 \x20current\x20version\x20of\x20the\n\x20`AccessPolicy`.\x20This\x20will\
557 \x20always\x20be\x20a\x20strongly\x20validated\x20etag,\x20meaning\x20th\
558 at\n\x20two\x20Access\x20Polices\x20will\x20be\x20identical\x20if\x20and\
559 \x20only\x20if\x20their\x20etags\x20are\n\x20identical.\x20Clients\x20sh\
560 ould\x20not\x20expect\x20this\x20to\x20be\x20in\x20any\x20specific\x20fo\
561 rmat.\n\n\x0c\n\x05\x04\0\x02\x06\x05\x12\x03O\x02\x08\n\x0c\n\x05\x04\0\
562 \x02\x06\x01\x12\x03O\t\r\n\x0c\n\x05\x04\0\x02\x06\x03\x12\x03O\x10\x11\
563 b\x06proto3\
564";
565
566static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;
567
568fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
569 ::protobuf::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
570}
571
572pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
573 file_descriptor_proto_lazy.get(|| {
574 parse_descriptor_proto()
575 })
576}