google_cloud_rust_raw/cloud/asset/v1/
asset_service.rs

1// This file is generated by rust-protobuf 2.28.0. Do not edit
2// @generated
3
4// https://github.com/rust-lang/rust-clippy/issues/702
5#![allow(unknown_lints)]
6#![allow(clippy::all)]
7
8#![allow(unused_attributes)]
9#![cfg_attr(rustfmt, rustfmt::skip)]
10
11#![allow(box_pointers)]
12#![allow(dead_code)]
13#![allow(missing_docs)]
14#![allow(non_camel_case_types)]
15#![allow(non_snake_case)]
16#![allow(non_upper_case_globals)]
17#![allow(trivial_casts)]
18#![allow(unused_imports)]
19#![allow(unused_results)]
20//! Generated file from `google/cloud/asset/v1/asset_service.proto`
21
22/// Generated files are compatible only with the same version
23/// of protobuf runtime.
24// const _PROTOBUF_VERSION_CHECK: () = ::protobuf::VERSION_2_28_0;
25
26#[derive(PartialEq,Clone,Default)]
27pub struct AnalyzeIamPolicyLongrunningMetadata {
28    // message fields
29    pub create_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
30    // special fields
31    pub unknown_fields: ::protobuf::UnknownFields,
32    pub cached_size: ::protobuf::CachedSize,
33}
34
35impl<'a> ::std::default::Default for &'a AnalyzeIamPolicyLongrunningMetadata {
36    fn default() -> &'a AnalyzeIamPolicyLongrunningMetadata {
37        <AnalyzeIamPolicyLongrunningMetadata as ::protobuf::Message>::default_instance()
38    }
39}
40
41impl AnalyzeIamPolicyLongrunningMetadata {
42    pub fn new() -> AnalyzeIamPolicyLongrunningMetadata {
43        ::std::default::Default::default()
44    }
45
46    // .google.protobuf.Timestamp create_time = 1;
47
48
49    pub fn get_create_time(&self) -> &::protobuf::well_known_types::Timestamp {
50        self.create_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
51    }
52    pub fn clear_create_time(&mut self) {
53        self.create_time.clear();
54    }
55
56    pub fn has_create_time(&self) -> bool {
57        self.create_time.is_some()
58    }
59
60    // Param is passed by value, moved
61    pub fn set_create_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
62        self.create_time = ::protobuf::SingularPtrField::some(v);
63    }
64
65    // Mutable pointer to the field.
66    // If field is not initialized, it is initialized with default value first.
67    pub fn mut_create_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
68        if self.create_time.is_none() {
69            self.create_time.set_default();
70        }
71        self.create_time.as_mut().unwrap()
72    }
73
74    // Take field
75    pub fn take_create_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
76        self.create_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
77    }
78}
79
80impl ::protobuf::Message for AnalyzeIamPolicyLongrunningMetadata {
81    fn is_initialized(&self) -> bool {
82        for v in &self.create_time {
83            if !v.is_initialized() {
84                return false;
85            }
86        };
87        true
88    }
89
90    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
91        while !is.eof()? {
92            let (field_number, wire_type) = is.read_tag_unpack()?;
93            match field_number {
94                1 => {
95                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.create_time)?;
96                },
97                _ => {
98                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
99                },
100            };
101        }
102        ::std::result::Result::Ok(())
103    }
104
105    // Compute sizes of nested messages
106    #[allow(unused_variables)]
107    fn compute_size(&self) -> u32 {
108        let mut my_size = 0;
109        if let Some(ref v) = self.create_time.as_ref() {
110            let len = v.compute_size();
111            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
112        }
113        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
114        self.cached_size.set(my_size);
115        my_size
116    }
117
118    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
119        if let Some(ref v) = self.create_time.as_ref() {
120            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
121            os.write_raw_varint32(v.get_cached_size())?;
122            v.write_to_with_cached_sizes(os)?;
123        }
124        os.write_unknown_fields(self.get_unknown_fields())?;
125        ::std::result::Result::Ok(())
126    }
127
128    fn get_cached_size(&self) -> u32 {
129        self.cached_size.get()
130    }
131
132    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
133        &self.unknown_fields
134    }
135
136    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
137        &mut self.unknown_fields
138    }
139
140    fn as_any(&self) -> &dyn (::std::any::Any) {
141        self as &dyn (::std::any::Any)
142    }
143    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
144        self as &mut dyn (::std::any::Any)
145    }
146    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
147        self
148    }
149
150    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
151        Self::descriptor_static()
152    }
153
154    fn new() -> AnalyzeIamPolicyLongrunningMetadata {
155        AnalyzeIamPolicyLongrunningMetadata::new()
156    }
157
158    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
159        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
160        descriptor.get(|| {
161            let mut fields = ::std::vec::Vec::new();
162            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
163                "create_time",
164                |m: &AnalyzeIamPolicyLongrunningMetadata| { &m.create_time },
165                |m: &mut AnalyzeIamPolicyLongrunningMetadata| { &mut m.create_time },
166            ));
167            ::protobuf::reflect::MessageDescriptor::new_pb_name::<AnalyzeIamPolicyLongrunningMetadata>(
168                "AnalyzeIamPolicyLongrunningMetadata",
169                fields,
170                file_descriptor_proto()
171            )
172        })
173    }
174
175    fn default_instance() -> &'static AnalyzeIamPolicyLongrunningMetadata {
176        static instance: ::protobuf::rt::LazyV2<AnalyzeIamPolicyLongrunningMetadata> = ::protobuf::rt::LazyV2::INIT;
177        instance.get(AnalyzeIamPolicyLongrunningMetadata::new)
178    }
179}
180
181impl ::protobuf::Clear for AnalyzeIamPolicyLongrunningMetadata {
182    fn clear(&mut self) {
183        self.create_time.clear();
184        self.unknown_fields.clear();
185    }
186}
187
188impl ::std::fmt::Debug for AnalyzeIamPolicyLongrunningMetadata {
189    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
190        ::protobuf::text_format::fmt(self, f)
191    }
192}
193
194impl ::protobuf::reflect::ProtobufValue for AnalyzeIamPolicyLongrunningMetadata {
195    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
196        ::protobuf::reflect::ReflectValueRef::Message(self)
197    }
198}
199
200#[derive(PartialEq,Clone,Default)]
201pub struct ExportAssetsRequest {
202    // message fields
203    pub parent: ::std::string::String,
204    pub read_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
205    pub asset_types: ::protobuf::RepeatedField<::std::string::String>,
206    pub content_type: ContentType,
207    pub output_config: ::protobuf::SingularPtrField<OutputConfig>,
208    pub relationship_types: ::protobuf::RepeatedField<::std::string::String>,
209    // special fields
210    pub unknown_fields: ::protobuf::UnknownFields,
211    pub cached_size: ::protobuf::CachedSize,
212}
213
214impl<'a> ::std::default::Default for &'a ExportAssetsRequest {
215    fn default() -> &'a ExportAssetsRequest {
216        <ExportAssetsRequest as ::protobuf::Message>::default_instance()
217    }
218}
219
220impl ExportAssetsRequest {
221    pub fn new() -> ExportAssetsRequest {
222        ::std::default::Default::default()
223    }
224
225    // string parent = 1;
226
227
228    pub fn get_parent(&self) -> &str {
229        &self.parent
230    }
231    pub fn clear_parent(&mut self) {
232        self.parent.clear();
233    }
234
235    // Param is passed by value, moved
236    pub fn set_parent(&mut self, v: ::std::string::String) {
237        self.parent = v;
238    }
239
240    // Mutable pointer to the field.
241    // If field is not initialized, it is initialized with default value first.
242    pub fn mut_parent(&mut self) -> &mut ::std::string::String {
243        &mut self.parent
244    }
245
246    // Take field
247    pub fn take_parent(&mut self) -> ::std::string::String {
248        ::std::mem::replace(&mut self.parent, ::std::string::String::new())
249    }
250
251    // .google.protobuf.Timestamp read_time = 2;
252
253
254    pub fn get_read_time(&self) -> &::protobuf::well_known_types::Timestamp {
255        self.read_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
256    }
257    pub fn clear_read_time(&mut self) {
258        self.read_time.clear();
259    }
260
261    pub fn has_read_time(&self) -> bool {
262        self.read_time.is_some()
263    }
264
265    // Param is passed by value, moved
266    pub fn set_read_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
267        self.read_time = ::protobuf::SingularPtrField::some(v);
268    }
269
270    // Mutable pointer to the field.
271    // If field is not initialized, it is initialized with default value first.
272    pub fn mut_read_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
273        if self.read_time.is_none() {
274            self.read_time.set_default();
275        }
276        self.read_time.as_mut().unwrap()
277    }
278
279    // Take field
280    pub fn take_read_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
281        self.read_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
282    }
283
284    // repeated string asset_types = 3;
285
286
287    pub fn get_asset_types(&self) -> &[::std::string::String] {
288        &self.asset_types
289    }
290    pub fn clear_asset_types(&mut self) {
291        self.asset_types.clear();
292    }
293
294    // Param is passed by value, moved
295    pub fn set_asset_types(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
296        self.asset_types = v;
297    }
298
299    // Mutable pointer to the field.
300    pub fn mut_asset_types(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
301        &mut self.asset_types
302    }
303
304    // Take field
305    pub fn take_asset_types(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
306        ::std::mem::replace(&mut self.asset_types, ::protobuf::RepeatedField::new())
307    }
308
309    // .google.cloud.asset.v1.ContentType content_type = 4;
310
311
312    pub fn get_content_type(&self) -> ContentType {
313        self.content_type
314    }
315    pub fn clear_content_type(&mut self) {
316        self.content_type = ContentType::CONTENT_TYPE_UNSPECIFIED;
317    }
318
319    // Param is passed by value, moved
320    pub fn set_content_type(&mut self, v: ContentType) {
321        self.content_type = v;
322    }
323
324    // .google.cloud.asset.v1.OutputConfig output_config = 5;
325
326
327    pub fn get_output_config(&self) -> &OutputConfig {
328        self.output_config.as_ref().unwrap_or_else(|| <OutputConfig as ::protobuf::Message>::default_instance())
329    }
330    pub fn clear_output_config(&mut self) {
331        self.output_config.clear();
332    }
333
334    pub fn has_output_config(&self) -> bool {
335        self.output_config.is_some()
336    }
337
338    // Param is passed by value, moved
339    pub fn set_output_config(&mut self, v: OutputConfig) {
340        self.output_config = ::protobuf::SingularPtrField::some(v);
341    }
342
343    // Mutable pointer to the field.
344    // If field is not initialized, it is initialized with default value first.
345    pub fn mut_output_config(&mut self) -> &mut OutputConfig {
346        if self.output_config.is_none() {
347            self.output_config.set_default();
348        }
349        self.output_config.as_mut().unwrap()
350    }
351
352    // Take field
353    pub fn take_output_config(&mut self) -> OutputConfig {
354        self.output_config.take().unwrap_or_else(|| OutputConfig::new())
355    }
356
357    // repeated string relationship_types = 6;
358
359
360    pub fn get_relationship_types(&self) -> &[::std::string::String] {
361        &self.relationship_types
362    }
363    pub fn clear_relationship_types(&mut self) {
364        self.relationship_types.clear();
365    }
366
367    // Param is passed by value, moved
368    pub fn set_relationship_types(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
369        self.relationship_types = v;
370    }
371
372    // Mutable pointer to the field.
373    pub fn mut_relationship_types(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
374        &mut self.relationship_types
375    }
376
377    // Take field
378    pub fn take_relationship_types(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
379        ::std::mem::replace(&mut self.relationship_types, ::protobuf::RepeatedField::new())
380    }
381}
382
383impl ::protobuf::Message for ExportAssetsRequest {
384    fn is_initialized(&self) -> bool {
385        for v in &self.read_time {
386            if !v.is_initialized() {
387                return false;
388            }
389        };
390        for v in &self.output_config {
391            if !v.is_initialized() {
392                return false;
393            }
394        };
395        true
396    }
397
398    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
399        while !is.eof()? {
400            let (field_number, wire_type) = is.read_tag_unpack()?;
401            match field_number {
402                1 => {
403                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.parent)?;
404                },
405                2 => {
406                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.read_time)?;
407                },
408                3 => {
409                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.asset_types)?;
410                },
411                4 => {
412                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.content_type, 4, &mut self.unknown_fields)?
413                },
414                5 => {
415                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.output_config)?;
416                },
417                6 => {
418                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.relationship_types)?;
419                },
420                _ => {
421                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
422                },
423            };
424        }
425        ::std::result::Result::Ok(())
426    }
427
428    // Compute sizes of nested messages
429    #[allow(unused_variables)]
430    fn compute_size(&self) -> u32 {
431        let mut my_size = 0;
432        if !self.parent.is_empty() {
433            my_size += ::protobuf::rt::string_size(1, &self.parent);
434        }
435        if let Some(ref v) = self.read_time.as_ref() {
436            let len = v.compute_size();
437            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
438        }
439        for value in &self.asset_types {
440            my_size += ::protobuf::rt::string_size(3, &value);
441        };
442        if self.content_type != ContentType::CONTENT_TYPE_UNSPECIFIED {
443            my_size += ::protobuf::rt::enum_size(4, self.content_type);
444        }
445        if let Some(ref v) = self.output_config.as_ref() {
446            let len = v.compute_size();
447            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
448        }
449        for value in &self.relationship_types {
450            my_size += ::protobuf::rt::string_size(6, &value);
451        };
452        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
453        self.cached_size.set(my_size);
454        my_size
455    }
456
457    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
458        if !self.parent.is_empty() {
459            os.write_string(1, &self.parent)?;
460        }
461        if let Some(ref v) = self.read_time.as_ref() {
462            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
463            os.write_raw_varint32(v.get_cached_size())?;
464            v.write_to_with_cached_sizes(os)?;
465        }
466        for v in &self.asset_types {
467            os.write_string(3, &v)?;
468        };
469        if self.content_type != ContentType::CONTENT_TYPE_UNSPECIFIED {
470            os.write_enum(4, ::protobuf::ProtobufEnum::value(&self.content_type))?;
471        }
472        if let Some(ref v) = self.output_config.as_ref() {
473            os.write_tag(5, ::protobuf::wire_format::WireTypeLengthDelimited)?;
474            os.write_raw_varint32(v.get_cached_size())?;
475            v.write_to_with_cached_sizes(os)?;
476        }
477        for v in &self.relationship_types {
478            os.write_string(6, &v)?;
479        };
480        os.write_unknown_fields(self.get_unknown_fields())?;
481        ::std::result::Result::Ok(())
482    }
483
484    fn get_cached_size(&self) -> u32 {
485        self.cached_size.get()
486    }
487
488    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
489        &self.unknown_fields
490    }
491
492    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
493        &mut self.unknown_fields
494    }
495
496    fn as_any(&self) -> &dyn (::std::any::Any) {
497        self as &dyn (::std::any::Any)
498    }
499    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
500        self as &mut dyn (::std::any::Any)
501    }
502    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
503        self
504    }
505
506    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
507        Self::descriptor_static()
508    }
509
510    fn new() -> ExportAssetsRequest {
511        ExportAssetsRequest::new()
512    }
513
514    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
515        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
516        descriptor.get(|| {
517            let mut fields = ::std::vec::Vec::new();
518            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
519                "parent",
520                |m: &ExportAssetsRequest| { &m.parent },
521                |m: &mut ExportAssetsRequest| { &mut m.parent },
522            ));
523            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
524                "read_time",
525                |m: &ExportAssetsRequest| { &m.read_time },
526                |m: &mut ExportAssetsRequest| { &mut m.read_time },
527            ));
528            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
529                "asset_types",
530                |m: &ExportAssetsRequest| { &m.asset_types },
531                |m: &mut ExportAssetsRequest| { &mut m.asset_types },
532            ));
533            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<ContentType>>(
534                "content_type",
535                |m: &ExportAssetsRequest| { &m.content_type },
536                |m: &mut ExportAssetsRequest| { &mut m.content_type },
537            ));
538            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<OutputConfig>>(
539                "output_config",
540                |m: &ExportAssetsRequest| { &m.output_config },
541                |m: &mut ExportAssetsRequest| { &mut m.output_config },
542            ));
543            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
544                "relationship_types",
545                |m: &ExportAssetsRequest| { &m.relationship_types },
546                |m: &mut ExportAssetsRequest| { &mut m.relationship_types },
547            ));
548            ::protobuf::reflect::MessageDescriptor::new_pb_name::<ExportAssetsRequest>(
549                "ExportAssetsRequest",
550                fields,
551                file_descriptor_proto()
552            )
553        })
554    }
555
556    fn default_instance() -> &'static ExportAssetsRequest {
557        static instance: ::protobuf::rt::LazyV2<ExportAssetsRequest> = ::protobuf::rt::LazyV2::INIT;
558        instance.get(ExportAssetsRequest::new)
559    }
560}
561
562impl ::protobuf::Clear for ExportAssetsRequest {
563    fn clear(&mut self) {
564        self.parent.clear();
565        self.read_time.clear();
566        self.asset_types.clear();
567        self.content_type = ContentType::CONTENT_TYPE_UNSPECIFIED;
568        self.output_config.clear();
569        self.relationship_types.clear();
570        self.unknown_fields.clear();
571    }
572}
573
574impl ::std::fmt::Debug for ExportAssetsRequest {
575    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
576        ::protobuf::text_format::fmt(self, f)
577    }
578}
579
580impl ::protobuf::reflect::ProtobufValue for ExportAssetsRequest {
581    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
582        ::protobuf::reflect::ReflectValueRef::Message(self)
583    }
584}
585
586#[derive(PartialEq,Clone,Default)]
587pub struct ExportAssetsResponse {
588    // message fields
589    pub read_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
590    pub output_config: ::protobuf::SingularPtrField<OutputConfig>,
591    pub output_result: ::protobuf::SingularPtrField<OutputResult>,
592    // special fields
593    pub unknown_fields: ::protobuf::UnknownFields,
594    pub cached_size: ::protobuf::CachedSize,
595}
596
597impl<'a> ::std::default::Default for &'a ExportAssetsResponse {
598    fn default() -> &'a ExportAssetsResponse {
599        <ExportAssetsResponse as ::protobuf::Message>::default_instance()
600    }
601}
602
603impl ExportAssetsResponse {
604    pub fn new() -> ExportAssetsResponse {
605        ::std::default::Default::default()
606    }
607
608    // .google.protobuf.Timestamp read_time = 1;
609
610
611    pub fn get_read_time(&self) -> &::protobuf::well_known_types::Timestamp {
612        self.read_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
613    }
614    pub fn clear_read_time(&mut self) {
615        self.read_time.clear();
616    }
617
618    pub fn has_read_time(&self) -> bool {
619        self.read_time.is_some()
620    }
621
622    // Param is passed by value, moved
623    pub fn set_read_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
624        self.read_time = ::protobuf::SingularPtrField::some(v);
625    }
626
627    // Mutable pointer to the field.
628    // If field is not initialized, it is initialized with default value first.
629    pub fn mut_read_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
630        if self.read_time.is_none() {
631            self.read_time.set_default();
632        }
633        self.read_time.as_mut().unwrap()
634    }
635
636    // Take field
637    pub fn take_read_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
638        self.read_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
639    }
640
641    // .google.cloud.asset.v1.OutputConfig output_config = 2;
642
643
644    pub fn get_output_config(&self) -> &OutputConfig {
645        self.output_config.as_ref().unwrap_or_else(|| <OutputConfig as ::protobuf::Message>::default_instance())
646    }
647    pub fn clear_output_config(&mut self) {
648        self.output_config.clear();
649    }
650
651    pub fn has_output_config(&self) -> bool {
652        self.output_config.is_some()
653    }
654
655    // Param is passed by value, moved
656    pub fn set_output_config(&mut self, v: OutputConfig) {
657        self.output_config = ::protobuf::SingularPtrField::some(v);
658    }
659
660    // Mutable pointer to the field.
661    // If field is not initialized, it is initialized with default value first.
662    pub fn mut_output_config(&mut self) -> &mut OutputConfig {
663        if self.output_config.is_none() {
664            self.output_config.set_default();
665        }
666        self.output_config.as_mut().unwrap()
667    }
668
669    // Take field
670    pub fn take_output_config(&mut self) -> OutputConfig {
671        self.output_config.take().unwrap_or_else(|| OutputConfig::new())
672    }
673
674    // .google.cloud.asset.v1.OutputResult output_result = 3;
675
676
677    pub fn get_output_result(&self) -> &OutputResult {
678        self.output_result.as_ref().unwrap_or_else(|| <OutputResult as ::protobuf::Message>::default_instance())
679    }
680    pub fn clear_output_result(&mut self) {
681        self.output_result.clear();
682    }
683
684    pub fn has_output_result(&self) -> bool {
685        self.output_result.is_some()
686    }
687
688    // Param is passed by value, moved
689    pub fn set_output_result(&mut self, v: OutputResult) {
690        self.output_result = ::protobuf::SingularPtrField::some(v);
691    }
692
693    // Mutable pointer to the field.
694    // If field is not initialized, it is initialized with default value first.
695    pub fn mut_output_result(&mut self) -> &mut OutputResult {
696        if self.output_result.is_none() {
697            self.output_result.set_default();
698        }
699        self.output_result.as_mut().unwrap()
700    }
701
702    // Take field
703    pub fn take_output_result(&mut self) -> OutputResult {
704        self.output_result.take().unwrap_or_else(|| OutputResult::new())
705    }
706}
707
708impl ::protobuf::Message for ExportAssetsResponse {
709    fn is_initialized(&self) -> bool {
710        for v in &self.read_time {
711            if !v.is_initialized() {
712                return false;
713            }
714        };
715        for v in &self.output_config {
716            if !v.is_initialized() {
717                return false;
718            }
719        };
720        for v in &self.output_result {
721            if !v.is_initialized() {
722                return false;
723            }
724        };
725        true
726    }
727
728    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
729        while !is.eof()? {
730            let (field_number, wire_type) = is.read_tag_unpack()?;
731            match field_number {
732                1 => {
733                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.read_time)?;
734                },
735                2 => {
736                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.output_config)?;
737                },
738                3 => {
739                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.output_result)?;
740                },
741                _ => {
742                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
743                },
744            };
745        }
746        ::std::result::Result::Ok(())
747    }
748
749    // Compute sizes of nested messages
750    #[allow(unused_variables)]
751    fn compute_size(&self) -> u32 {
752        let mut my_size = 0;
753        if let Some(ref v) = self.read_time.as_ref() {
754            let len = v.compute_size();
755            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
756        }
757        if let Some(ref v) = self.output_config.as_ref() {
758            let len = v.compute_size();
759            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
760        }
761        if let Some(ref v) = self.output_result.as_ref() {
762            let len = v.compute_size();
763            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
764        }
765        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
766        self.cached_size.set(my_size);
767        my_size
768    }
769
770    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
771        if let Some(ref v) = self.read_time.as_ref() {
772            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
773            os.write_raw_varint32(v.get_cached_size())?;
774            v.write_to_with_cached_sizes(os)?;
775        }
776        if let Some(ref v) = self.output_config.as_ref() {
777            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
778            os.write_raw_varint32(v.get_cached_size())?;
779            v.write_to_with_cached_sizes(os)?;
780        }
781        if let Some(ref v) = self.output_result.as_ref() {
782            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
783            os.write_raw_varint32(v.get_cached_size())?;
784            v.write_to_with_cached_sizes(os)?;
785        }
786        os.write_unknown_fields(self.get_unknown_fields())?;
787        ::std::result::Result::Ok(())
788    }
789
790    fn get_cached_size(&self) -> u32 {
791        self.cached_size.get()
792    }
793
794    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
795        &self.unknown_fields
796    }
797
798    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
799        &mut self.unknown_fields
800    }
801
802    fn as_any(&self) -> &dyn (::std::any::Any) {
803        self as &dyn (::std::any::Any)
804    }
805    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
806        self as &mut dyn (::std::any::Any)
807    }
808    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
809        self
810    }
811
812    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
813        Self::descriptor_static()
814    }
815
816    fn new() -> ExportAssetsResponse {
817        ExportAssetsResponse::new()
818    }
819
820    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
821        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
822        descriptor.get(|| {
823            let mut fields = ::std::vec::Vec::new();
824            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
825                "read_time",
826                |m: &ExportAssetsResponse| { &m.read_time },
827                |m: &mut ExportAssetsResponse| { &mut m.read_time },
828            ));
829            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<OutputConfig>>(
830                "output_config",
831                |m: &ExportAssetsResponse| { &m.output_config },
832                |m: &mut ExportAssetsResponse| { &mut m.output_config },
833            ));
834            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<OutputResult>>(
835                "output_result",
836                |m: &ExportAssetsResponse| { &m.output_result },
837                |m: &mut ExportAssetsResponse| { &mut m.output_result },
838            ));
839            ::protobuf::reflect::MessageDescriptor::new_pb_name::<ExportAssetsResponse>(
840                "ExportAssetsResponse",
841                fields,
842                file_descriptor_proto()
843            )
844        })
845    }
846
847    fn default_instance() -> &'static ExportAssetsResponse {
848        static instance: ::protobuf::rt::LazyV2<ExportAssetsResponse> = ::protobuf::rt::LazyV2::INIT;
849        instance.get(ExportAssetsResponse::new)
850    }
851}
852
853impl ::protobuf::Clear for ExportAssetsResponse {
854    fn clear(&mut self) {
855        self.read_time.clear();
856        self.output_config.clear();
857        self.output_result.clear();
858        self.unknown_fields.clear();
859    }
860}
861
862impl ::std::fmt::Debug for ExportAssetsResponse {
863    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
864        ::protobuf::text_format::fmt(self, f)
865    }
866}
867
868impl ::protobuf::reflect::ProtobufValue for ExportAssetsResponse {
869    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
870        ::protobuf::reflect::ReflectValueRef::Message(self)
871    }
872}
873
874#[derive(PartialEq,Clone,Default)]
875pub struct ListAssetsRequest {
876    // message fields
877    pub parent: ::std::string::String,
878    pub read_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
879    pub asset_types: ::protobuf::RepeatedField<::std::string::String>,
880    pub content_type: ContentType,
881    pub page_size: i32,
882    pub page_token: ::std::string::String,
883    pub relationship_types: ::protobuf::RepeatedField<::std::string::String>,
884    // special fields
885    pub unknown_fields: ::protobuf::UnknownFields,
886    pub cached_size: ::protobuf::CachedSize,
887}
888
889impl<'a> ::std::default::Default for &'a ListAssetsRequest {
890    fn default() -> &'a ListAssetsRequest {
891        <ListAssetsRequest as ::protobuf::Message>::default_instance()
892    }
893}
894
895impl ListAssetsRequest {
896    pub fn new() -> ListAssetsRequest {
897        ::std::default::Default::default()
898    }
899
900    // string parent = 1;
901
902
903    pub fn get_parent(&self) -> &str {
904        &self.parent
905    }
906    pub fn clear_parent(&mut self) {
907        self.parent.clear();
908    }
909
910    // Param is passed by value, moved
911    pub fn set_parent(&mut self, v: ::std::string::String) {
912        self.parent = v;
913    }
914
915    // Mutable pointer to the field.
916    // If field is not initialized, it is initialized with default value first.
917    pub fn mut_parent(&mut self) -> &mut ::std::string::String {
918        &mut self.parent
919    }
920
921    // Take field
922    pub fn take_parent(&mut self) -> ::std::string::String {
923        ::std::mem::replace(&mut self.parent, ::std::string::String::new())
924    }
925
926    // .google.protobuf.Timestamp read_time = 2;
927
928
929    pub fn get_read_time(&self) -> &::protobuf::well_known_types::Timestamp {
930        self.read_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
931    }
932    pub fn clear_read_time(&mut self) {
933        self.read_time.clear();
934    }
935
936    pub fn has_read_time(&self) -> bool {
937        self.read_time.is_some()
938    }
939
940    // Param is passed by value, moved
941    pub fn set_read_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
942        self.read_time = ::protobuf::SingularPtrField::some(v);
943    }
944
945    // Mutable pointer to the field.
946    // If field is not initialized, it is initialized with default value first.
947    pub fn mut_read_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
948        if self.read_time.is_none() {
949            self.read_time.set_default();
950        }
951        self.read_time.as_mut().unwrap()
952    }
953
954    // Take field
955    pub fn take_read_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
956        self.read_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
957    }
958
959    // repeated string asset_types = 3;
960
961
962    pub fn get_asset_types(&self) -> &[::std::string::String] {
963        &self.asset_types
964    }
965    pub fn clear_asset_types(&mut self) {
966        self.asset_types.clear();
967    }
968
969    // Param is passed by value, moved
970    pub fn set_asset_types(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
971        self.asset_types = v;
972    }
973
974    // Mutable pointer to the field.
975    pub fn mut_asset_types(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
976        &mut self.asset_types
977    }
978
979    // Take field
980    pub fn take_asset_types(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
981        ::std::mem::replace(&mut self.asset_types, ::protobuf::RepeatedField::new())
982    }
983
984    // .google.cloud.asset.v1.ContentType content_type = 4;
985
986
987    pub fn get_content_type(&self) -> ContentType {
988        self.content_type
989    }
990    pub fn clear_content_type(&mut self) {
991        self.content_type = ContentType::CONTENT_TYPE_UNSPECIFIED;
992    }
993
994    // Param is passed by value, moved
995    pub fn set_content_type(&mut self, v: ContentType) {
996        self.content_type = v;
997    }
998
999    // int32 page_size = 5;
1000
1001
1002    pub fn get_page_size(&self) -> i32 {
1003        self.page_size
1004    }
1005    pub fn clear_page_size(&mut self) {
1006        self.page_size = 0;
1007    }
1008
1009    // Param is passed by value, moved
1010    pub fn set_page_size(&mut self, v: i32) {
1011        self.page_size = v;
1012    }
1013
1014    // string page_token = 6;
1015
1016
1017    pub fn get_page_token(&self) -> &str {
1018        &self.page_token
1019    }
1020    pub fn clear_page_token(&mut self) {
1021        self.page_token.clear();
1022    }
1023
1024    // Param is passed by value, moved
1025    pub fn set_page_token(&mut self, v: ::std::string::String) {
1026        self.page_token = v;
1027    }
1028
1029    // Mutable pointer to the field.
1030    // If field is not initialized, it is initialized with default value first.
1031    pub fn mut_page_token(&mut self) -> &mut ::std::string::String {
1032        &mut self.page_token
1033    }
1034
1035    // Take field
1036    pub fn take_page_token(&mut self) -> ::std::string::String {
1037        ::std::mem::replace(&mut self.page_token, ::std::string::String::new())
1038    }
1039
1040    // repeated string relationship_types = 7;
1041
1042
1043    pub fn get_relationship_types(&self) -> &[::std::string::String] {
1044        &self.relationship_types
1045    }
1046    pub fn clear_relationship_types(&mut self) {
1047        self.relationship_types.clear();
1048    }
1049
1050    // Param is passed by value, moved
1051    pub fn set_relationship_types(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
1052        self.relationship_types = v;
1053    }
1054
1055    // Mutable pointer to the field.
1056    pub fn mut_relationship_types(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
1057        &mut self.relationship_types
1058    }
1059
1060    // Take field
1061    pub fn take_relationship_types(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
1062        ::std::mem::replace(&mut self.relationship_types, ::protobuf::RepeatedField::new())
1063    }
1064}
1065
1066impl ::protobuf::Message for ListAssetsRequest {
1067    fn is_initialized(&self) -> bool {
1068        for v in &self.read_time {
1069            if !v.is_initialized() {
1070                return false;
1071            }
1072        };
1073        true
1074    }
1075
1076    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1077        while !is.eof()? {
1078            let (field_number, wire_type) = is.read_tag_unpack()?;
1079            match field_number {
1080                1 => {
1081                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.parent)?;
1082                },
1083                2 => {
1084                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.read_time)?;
1085                },
1086                3 => {
1087                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.asset_types)?;
1088                },
1089                4 => {
1090                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.content_type, 4, &mut self.unknown_fields)?
1091                },
1092                5 => {
1093                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
1094                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1095                    }
1096                    let tmp = is.read_int32()?;
1097                    self.page_size = tmp;
1098                },
1099                6 => {
1100                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.page_token)?;
1101                },
1102                7 => {
1103                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.relationship_types)?;
1104                },
1105                _ => {
1106                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1107                },
1108            };
1109        }
1110        ::std::result::Result::Ok(())
1111    }
1112
1113    // Compute sizes of nested messages
1114    #[allow(unused_variables)]
1115    fn compute_size(&self) -> u32 {
1116        let mut my_size = 0;
1117        if !self.parent.is_empty() {
1118            my_size += ::protobuf::rt::string_size(1, &self.parent);
1119        }
1120        if let Some(ref v) = self.read_time.as_ref() {
1121            let len = v.compute_size();
1122            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1123        }
1124        for value in &self.asset_types {
1125            my_size += ::protobuf::rt::string_size(3, &value);
1126        };
1127        if self.content_type != ContentType::CONTENT_TYPE_UNSPECIFIED {
1128            my_size += ::protobuf::rt::enum_size(4, self.content_type);
1129        }
1130        if self.page_size != 0 {
1131            my_size += ::protobuf::rt::value_size(5, self.page_size, ::protobuf::wire_format::WireTypeVarint);
1132        }
1133        if !self.page_token.is_empty() {
1134            my_size += ::protobuf::rt::string_size(6, &self.page_token);
1135        }
1136        for value in &self.relationship_types {
1137            my_size += ::protobuf::rt::string_size(7, &value);
1138        };
1139        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1140        self.cached_size.set(my_size);
1141        my_size
1142    }
1143
1144    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1145        if !self.parent.is_empty() {
1146            os.write_string(1, &self.parent)?;
1147        }
1148        if let Some(ref v) = self.read_time.as_ref() {
1149            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1150            os.write_raw_varint32(v.get_cached_size())?;
1151            v.write_to_with_cached_sizes(os)?;
1152        }
1153        for v in &self.asset_types {
1154            os.write_string(3, &v)?;
1155        };
1156        if self.content_type != ContentType::CONTENT_TYPE_UNSPECIFIED {
1157            os.write_enum(4, ::protobuf::ProtobufEnum::value(&self.content_type))?;
1158        }
1159        if self.page_size != 0 {
1160            os.write_int32(5, self.page_size)?;
1161        }
1162        if !self.page_token.is_empty() {
1163            os.write_string(6, &self.page_token)?;
1164        }
1165        for v in &self.relationship_types {
1166            os.write_string(7, &v)?;
1167        };
1168        os.write_unknown_fields(self.get_unknown_fields())?;
1169        ::std::result::Result::Ok(())
1170    }
1171
1172    fn get_cached_size(&self) -> u32 {
1173        self.cached_size.get()
1174    }
1175
1176    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1177        &self.unknown_fields
1178    }
1179
1180    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1181        &mut self.unknown_fields
1182    }
1183
1184    fn as_any(&self) -> &dyn (::std::any::Any) {
1185        self as &dyn (::std::any::Any)
1186    }
1187    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1188        self as &mut dyn (::std::any::Any)
1189    }
1190    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1191        self
1192    }
1193
1194    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1195        Self::descriptor_static()
1196    }
1197
1198    fn new() -> ListAssetsRequest {
1199        ListAssetsRequest::new()
1200    }
1201
1202    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1203        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1204        descriptor.get(|| {
1205            let mut fields = ::std::vec::Vec::new();
1206            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1207                "parent",
1208                |m: &ListAssetsRequest| { &m.parent },
1209                |m: &mut ListAssetsRequest| { &mut m.parent },
1210            ));
1211            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
1212                "read_time",
1213                |m: &ListAssetsRequest| { &m.read_time },
1214                |m: &mut ListAssetsRequest| { &mut m.read_time },
1215            ));
1216            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1217                "asset_types",
1218                |m: &ListAssetsRequest| { &m.asset_types },
1219                |m: &mut ListAssetsRequest| { &mut m.asset_types },
1220            ));
1221            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<ContentType>>(
1222                "content_type",
1223                |m: &ListAssetsRequest| { &m.content_type },
1224                |m: &mut ListAssetsRequest| { &mut m.content_type },
1225            ));
1226            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
1227                "page_size",
1228                |m: &ListAssetsRequest| { &m.page_size },
1229                |m: &mut ListAssetsRequest| { &mut m.page_size },
1230            ));
1231            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1232                "page_token",
1233                |m: &ListAssetsRequest| { &m.page_token },
1234                |m: &mut ListAssetsRequest| { &mut m.page_token },
1235            ));
1236            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1237                "relationship_types",
1238                |m: &ListAssetsRequest| { &m.relationship_types },
1239                |m: &mut ListAssetsRequest| { &mut m.relationship_types },
1240            ));
1241            ::protobuf::reflect::MessageDescriptor::new_pb_name::<ListAssetsRequest>(
1242                "ListAssetsRequest",
1243                fields,
1244                file_descriptor_proto()
1245            )
1246        })
1247    }
1248
1249    fn default_instance() -> &'static ListAssetsRequest {
1250        static instance: ::protobuf::rt::LazyV2<ListAssetsRequest> = ::protobuf::rt::LazyV2::INIT;
1251        instance.get(ListAssetsRequest::new)
1252    }
1253}
1254
1255impl ::protobuf::Clear for ListAssetsRequest {
1256    fn clear(&mut self) {
1257        self.parent.clear();
1258        self.read_time.clear();
1259        self.asset_types.clear();
1260        self.content_type = ContentType::CONTENT_TYPE_UNSPECIFIED;
1261        self.page_size = 0;
1262        self.page_token.clear();
1263        self.relationship_types.clear();
1264        self.unknown_fields.clear();
1265    }
1266}
1267
1268impl ::std::fmt::Debug for ListAssetsRequest {
1269    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1270        ::protobuf::text_format::fmt(self, f)
1271    }
1272}
1273
1274impl ::protobuf::reflect::ProtobufValue for ListAssetsRequest {
1275    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1276        ::protobuf::reflect::ReflectValueRef::Message(self)
1277    }
1278}
1279
1280#[derive(PartialEq,Clone,Default)]
1281pub struct ListAssetsResponse {
1282    // message fields
1283    pub read_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
1284    pub assets: ::protobuf::RepeatedField<super::assets::Asset>,
1285    pub next_page_token: ::std::string::String,
1286    // special fields
1287    pub unknown_fields: ::protobuf::UnknownFields,
1288    pub cached_size: ::protobuf::CachedSize,
1289}
1290
1291impl<'a> ::std::default::Default for &'a ListAssetsResponse {
1292    fn default() -> &'a ListAssetsResponse {
1293        <ListAssetsResponse as ::protobuf::Message>::default_instance()
1294    }
1295}
1296
1297impl ListAssetsResponse {
1298    pub fn new() -> ListAssetsResponse {
1299        ::std::default::Default::default()
1300    }
1301
1302    // .google.protobuf.Timestamp read_time = 1;
1303
1304
1305    pub fn get_read_time(&self) -> &::protobuf::well_known_types::Timestamp {
1306        self.read_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
1307    }
1308    pub fn clear_read_time(&mut self) {
1309        self.read_time.clear();
1310    }
1311
1312    pub fn has_read_time(&self) -> bool {
1313        self.read_time.is_some()
1314    }
1315
1316    // Param is passed by value, moved
1317    pub fn set_read_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
1318        self.read_time = ::protobuf::SingularPtrField::some(v);
1319    }
1320
1321    // Mutable pointer to the field.
1322    // If field is not initialized, it is initialized with default value first.
1323    pub fn mut_read_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
1324        if self.read_time.is_none() {
1325            self.read_time.set_default();
1326        }
1327        self.read_time.as_mut().unwrap()
1328    }
1329
1330    // Take field
1331    pub fn take_read_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
1332        self.read_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
1333    }
1334
1335    // repeated .google.cloud.asset.v1.Asset assets = 2;
1336
1337
1338    pub fn get_assets(&self) -> &[super::assets::Asset] {
1339        &self.assets
1340    }
1341    pub fn clear_assets(&mut self) {
1342        self.assets.clear();
1343    }
1344
1345    // Param is passed by value, moved
1346    pub fn set_assets(&mut self, v: ::protobuf::RepeatedField<super::assets::Asset>) {
1347        self.assets = v;
1348    }
1349
1350    // Mutable pointer to the field.
1351    pub fn mut_assets(&mut self) -> &mut ::protobuf::RepeatedField<super::assets::Asset> {
1352        &mut self.assets
1353    }
1354
1355    // Take field
1356    pub fn take_assets(&mut self) -> ::protobuf::RepeatedField<super::assets::Asset> {
1357        ::std::mem::replace(&mut self.assets, ::protobuf::RepeatedField::new())
1358    }
1359
1360    // string next_page_token = 3;
1361
1362
1363    pub fn get_next_page_token(&self) -> &str {
1364        &self.next_page_token
1365    }
1366    pub fn clear_next_page_token(&mut self) {
1367        self.next_page_token.clear();
1368    }
1369
1370    // Param is passed by value, moved
1371    pub fn set_next_page_token(&mut self, v: ::std::string::String) {
1372        self.next_page_token = v;
1373    }
1374
1375    // Mutable pointer to the field.
1376    // If field is not initialized, it is initialized with default value first.
1377    pub fn mut_next_page_token(&mut self) -> &mut ::std::string::String {
1378        &mut self.next_page_token
1379    }
1380
1381    // Take field
1382    pub fn take_next_page_token(&mut self) -> ::std::string::String {
1383        ::std::mem::replace(&mut self.next_page_token, ::std::string::String::new())
1384    }
1385}
1386
1387impl ::protobuf::Message for ListAssetsResponse {
1388    fn is_initialized(&self) -> bool {
1389        for v in &self.read_time {
1390            if !v.is_initialized() {
1391                return false;
1392            }
1393        };
1394        for v in &self.assets {
1395            if !v.is_initialized() {
1396                return false;
1397            }
1398        };
1399        true
1400    }
1401
1402    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1403        while !is.eof()? {
1404            let (field_number, wire_type) = is.read_tag_unpack()?;
1405            match field_number {
1406                1 => {
1407                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.read_time)?;
1408                },
1409                2 => {
1410                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.assets)?;
1411                },
1412                3 => {
1413                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.next_page_token)?;
1414                },
1415                _ => {
1416                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1417                },
1418            };
1419        }
1420        ::std::result::Result::Ok(())
1421    }
1422
1423    // Compute sizes of nested messages
1424    #[allow(unused_variables)]
1425    fn compute_size(&self) -> u32 {
1426        let mut my_size = 0;
1427        if let Some(ref v) = self.read_time.as_ref() {
1428            let len = v.compute_size();
1429            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1430        }
1431        for value in &self.assets {
1432            let len = value.compute_size();
1433            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1434        };
1435        if !self.next_page_token.is_empty() {
1436            my_size += ::protobuf::rt::string_size(3, &self.next_page_token);
1437        }
1438        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1439        self.cached_size.set(my_size);
1440        my_size
1441    }
1442
1443    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1444        if let Some(ref v) = self.read_time.as_ref() {
1445            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1446            os.write_raw_varint32(v.get_cached_size())?;
1447            v.write_to_with_cached_sizes(os)?;
1448        }
1449        for v in &self.assets {
1450            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1451            os.write_raw_varint32(v.get_cached_size())?;
1452            v.write_to_with_cached_sizes(os)?;
1453        };
1454        if !self.next_page_token.is_empty() {
1455            os.write_string(3, &self.next_page_token)?;
1456        }
1457        os.write_unknown_fields(self.get_unknown_fields())?;
1458        ::std::result::Result::Ok(())
1459    }
1460
1461    fn get_cached_size(&self) -> u32 {
1462        self.cached_size.get()
1463    }
1464
1465    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1466        &self.unknown_fields
1467    }
1468
1469    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1470        &mut self.unknown_fields
1471    }
1472
1473    fn as_any(&self) -> &dyn (::std::any::Any) {
1474        self as &dyn (::std::any::Any)
1475    }
1476    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1477        self as &mut dyn (::std::any::Any)
1478    }
1479    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1480        self
1481    }
1482
1483    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1484        Self::descriptor_static()
1485    }
1486
1487    fn new() -> ListAssetsResponse {
1488        ListAssetsResponse::new()
1489    }
1490
1491    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1492        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1493        descriptor.get(|| {
1494            let mut fields = ::std::vec::Vec::new();
1495            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
1496                "read_time",
1497                |m: &ListAssetsResponse| { &m.read_time },
1498                |m: &mut ListAssetsResponse| { &mut m.read_time },
1499            ));
1500            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::assets::Asset>>(
1501                "assets",
1502                |m: &ListAssetsResponse| { &m.assets },
1503                |m: &mut ListAssetsResponse| { &mut m.assets },
1504            ));
1505            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1506                "next_page_token",
1507                |m: &ListAssetsResponse| { &m.next_page_token },
1508                |m: &mut ListAssetsResponse| { &mut m.next_page_token },
1509            ));
1510            ::protobuf::reflect::MessageDescriptor::new_pb_name::<ListAssetsResponse>(
1511                "ListAssetsResponse",
1512                fields,
1513                file_descriptor_proto()
1514            )
1515        })
1516    }
1517
1518    fn default_instance() -> &'static ListAssetsResponse {
1519        static instance: ::protobuf::rt::LazyV2<ListAssetsResponse> = ::protobuf::rt::LazyV2::INIT;
1520        instance.get(ListAssetsResponse::new)
1521    }
1522}
1523
1524impl ::protobuf::Clear for ListAssetsResponse {
1525    fn clear(&mut self) {
1526        self.read_time.clear();
1527        self.assets.clear();
1528        self.next_page_token.clear();
1529        self.unknown_fields.clear();
1530    }
1531}
1532
1533impl ::std::fmt::Debug for ListAssetsResponse {
1534    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1535        ::protobuf::text_format::fmt(self, f)
1536    }
1537}
1538
1539impl ::protobuf::reflect::ProtobufValue for ListAssetsResponse {
1540    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1541        ::protobuf::reflect::ReflectValueRef::Message(self)
1542    }
1543}
1544
1545#[derive(PartialEq,Clone,Default)]
1546pub struct BatchGetAssetsHistoryRequest {
1547    // message fields
1548    pub parent: ::std::string::String,
1549    pub asset_names: ::protobuf::RepeatedField<::std::string::String>,
1550    pub content_type: ContentType,
1551    pub read_time_window: ::protobuf::SingularPtrField<super::assets::TimeWindow>,
1552    pub relationship_types: ::protobuf::RepeatedField<::std::string::String>,
1553    // special fields
1554    pub unknown_fields: ::protobuf::UnknownFields,
1555    pub cached_size: ::protobuf::CachedSize,
1556}
1557
1558impl<'a> ::std::default::Default for &'a BatchGetAssetsHistoryRequest {
1559    fn default() -> &'a BatchGetAssetsHistoryRequest {
1560        <BatchGetAssetsHistoryRequest as ::protobuf::Message>::default_instance()
1561    }
1562}
1563
1564impl BatchGetAssetsHistoryRequest {
1565    pub fn new() -> BatchGetAssetsHistoryRequest {
1566        ::std::default::Default::default()
1567    }
1568
1569    // string parent = 1;
1570
1571
1572    pub fn get_parent(&self) -> &str {
1573        &self.parent
1574    }
1575    pub fn clear_parent(&mut self) {
1576        self.parent.clear();
1577    }
1578
1579    // Param is passed by value, moved
1580    pub fn set_parent(&mut self, v: ::std::string::String) {
1581        self.parent = v;
1582    }
1583
1584    // Mutable pointer to the field.
1585    // If field is not initialized, it is initialized with default value first.
1586    pub fn mut_parent(&mut self) -> &mut ::std::string::String {
1587        &mut self.parent
1588    }
1589
1590    // Take field
1591    pub fn take_parent(&mut self) -> ::std::string::String {
1592        ::std::mem::replace(&mut self.parent, ::std::string::String::new())
1593    }
1594
1595    // repeated string asset_names = 2;
1596
1597
1598    pub fn get_asset_names(&self) -> &[::std::string::String] {
1599        &self.asset_names
1600    }
1601    pub fn clear_asset_names(&mut self) {
1602        self.asset_names.clear();
1603    }
1604
1605    // Param is passed by value, moved
1606    pub fn set_asset_names(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
1607        self.asset_names = v;
1608    }
1609
1610    // Mutable pointer to the field.
1611    pub fn mut_asset_names(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
1612        &mut self.asset_names
1613    }
1614
1615    // Take field
1616    pub fn take_asset_names(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
1617        ::std::mem::replace(&mut self.asset_names, ::protobuf::RepeatedField::new())
1618    }
1619
1620    // .google.cloud.asset.v1.ContentType content_type = 3;
1621
1622
1623    pub fn get_content_type(&self) -> ContentType {
1624        self.content_type
1625    }
1626    pub fn clear_content_type(&mut self) {
1627        self.content_type = ContentType::CONTENT_TYPE_UNSPECIFIED;
1628    }
1629
1630    // Param is passed by value, moved
1631    pub fn set_content_type(&mut self, v: ContentType) {
1632        self.content_type = v;
1633    }
1634
1635    // .google.cloud.asset.v1.TimeWindow read_time_window = 4;
1636
1637
1638    pub fn get_read_time_window(&self) -> &super::assets::TimeWindow {
1639        self.read_time_window.as_ref().unwrap_or_else(|| <super::assets::TimeWindow as ::protobuf::Message>::default_instance())
1640    }
1641    pub fn clear_read_time_window(&mut self) {
1642        self.read_time_window.clear();
1643    }
1644
1645    pub fn has_read_time_window(&self) -> bool {
1646        self.read_time_window.is_some()
1647    }
1648
1649    // Param is passed by value, moved
1650    pub fn set_read_time_window(&mut self, v: super::assets::TimeWindow) {
1651        self.read_time_window = ::protobuf::SingularPtrField::some(v);
1652    }
1653
1654    // Mutable pointer to the field.
1655    // If field is not initialized, it is initialized with default value first.
1656    pub fn mut_read_time_window(&mut self) -> &mut super::assets::TimeWindow {
1657        if self.read_time_window.is_none() {
1658            self.read_time_window.set_default();
1659        }
1660        self.read_time_window.as_mut().unwrap()
1661    }
1662
1663    // Take field
1664    pub fn take_read_time_window(&mut self) -> super::assets::TimeWindow {
1665        self.read_time_window.take().unwrap_or_else(|| super::assets::TimeWindow::new())
1666    }
1667
1668    // repeated string relationship_types = 5;
1669
1670
1671    pub fn get_relationship_types(&self) -> &[::std::string::String] {
1672        &self.relationship_types
1673    }
1674    pub fn clear_relationship_types(&mut self) {
1675        self.relationship_types.clear();
1676    }
1677
1678    // Param is passed by value, moved
1679    pub fn set_relationship_types(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
1680        self.relationship_types = v;
1681    }
1682
1683    // Mutable pointer to the field.
1684    pub fn mut_relationship_types(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
1685        &mut self.relationship_types
1686    }
1687
1688    // Take field
1689    pub fn take_relationship_types(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
1690        ::std::mem::replace(&mut self.relationship_types, ::protobuf::RepeatedField::new())
1691    }
1692}
1693
1694impl ::protobuf::Message for BatchGetAssetsHistoryRequest {
1695    fn is_initialized(&self) -> bool {
1696        for v in &self.read_time_window {
1697            if !v.is_initialized() {
1698                return false;
1699            }
1700        };
1701        true
1702    }
1703
1704    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1705        while !is.eof()? {
1706            let (field_number, wire_type) = is.read_tag_unpack()?;
1707            match field_number {
1708                1 => {
1709                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.parent)?;
1710                },
1711                2 => {
1712                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.asset_names)?;
1713                },
1714                3 => {
1715                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.content_type, 3, &mut self.unknown_fields)?
1716                },
1717                4 => {
1718                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.read_time_window)?;
1719                },
1720                5 => {
1721                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.relationship_types)?;
1722                },
1723                _ => {
1724                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1725                },
1726            };
1727        }
1728        ::std::result::Result::Ok(())
1729    }
1730
1731    // Compute sizes of nested messages
1732    #[allow(unused_variables)]
1733    fn compute_size(&self) -> u32 {
1734        let mut my_size = 0;
1735        if !self.parent.is_empty() {
1736            my_size += ::protobuf::rt::string_size(1, &self.parent);
1737        }
1738        for value in &self.asset_names {
1739            my_size += ::protobuf::rt::string_size(2, &value);
1740        };
1741        if self.content_type != ContentType::CONTENT_TYPE_UNSPECIFIED {
1742            my_size += ::protobuf::rt::enum_size(3, self.content_type);
1743        }
1744        if let Some(ref v) = self.read_time_window.as_ref() {
1745            let len = v.compute_size();
1746            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1747        }
1748        for value in &self.relationship_types {
1749            my_size += ::protobuf::rt::string_size(5, &value);
1750        };
1751        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1752        self.cached_size.set(my_size);
1753        my_size
1754    }
1755
1756    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1757        if !self.parent.is_empty() {
1758            os.write_string(1, &self.parent)?;
1759        }
1760        for v in &self.asset_names {
1761            os.write_string(2, &v)?;
1762        };
1763        if self.content_type != ContentType::CONTENT_TYPE_UNSPECIFIED {
1764            os.write_enum(3, ::protobuf::ProtobufEnum::value(&self.content_type))?;
1765        }
1766        if let Some(ref v) = self.read_time_window.as_ref() {
1767            os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1768            os.write_raw_varint32(v.get_cached_size())?;
1769            v.write_to_with_cached_sizes(os)?;
1770        }
1771        for v in &self.relationship_types {
1772            os.write_string(5, &v)?;
1773        };
1774        os.write_unknown_fields(self.get_unknown_fields())?;
1775        ::std::result::Result::Ok(())
1776    }
1777
1778    fn get_cached_size(&self) -> u32 {
1779        self.cached_size.get()
1780    }
1781
1782    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1783        &self.unknown_fields
1784    }
1785
1786    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1787        &mut self.unknown_fields
1788    }
1789
1790    fn as_any(&self) -> &dyn (::std::any::Any) {
1791        self as &dyn (::std::any::Any)
1792    }
1793    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1794        self as &mut dyn (::std::any::Any)
1795    }
1796    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1797        self
1798    }
1799
1800    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1801        Self::descriptor_static()
1802    }
1803
1804    fn new() -> BatchGetAssetsHistoryRequest {
1805        BatchGetAssetsHistoryRequest::new()
1806    }
1807
1808    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1809        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1810        descriptor.get(|| {
1811            let mut fields = ::std::vec::Vec::new();
1812            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1813                "parent",
1814                |m: &BatchGetAssetsHistoryRequest| { &m.parent },
1815                |m: &mut BatchGetAssetsHistoryRequest| { &mut m.parent },
1816            ));
1817            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1818                "asset_names",
1819                |m: &BatchGetAssetsHistoryRequest| { &m.asset_names },
1820                |m: &mut BatchGetAssetsHistoryRequest| { &mut m.asset_names },
1821            ));
1822            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<ContentType>>(
1823                "content_type",
1824                |m: &BatchGetAssetsHistoryRequest| { &m.content_type },
1825                |m: &mut BatchGetAssetsHistoryRequest| { &mut m.content_type },
1826            ));
1827            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::assets::TimeWindow>>(
1828                "read_time_window",
1829                |m: &BatchGetAssetsHistoryRequest| { &m.read_time_window },
1830                |m: &mut BatchGetAssetsHistoryRequest| { &mut m.read_time_window },
1831            ));
1832            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1833                "relationship_types",
1834                |m: &BatchGetAssetsHistoryRequest| { &m.relationship_types },
1835                |m: &mut BatchGetAssetsHistoryRequest| { &mut m.relationship_types },
1836            ));
1837            ::protobuf::reflect::MessageDescriptor::new_pb_name::<BatchGetAssetsHistoryRequest>(
1838                "BatchGetAssetsHistoryRequest",
1839                fields,
1840                file_descriptor_proto()
1841            )
1842        })
1843    }
1844
1845    fn default_instance() -> &'static BatchGetAssetsHistoryRequest {
1846        static instance: ::protobuf::rt::LazyV2<BatchGetAssetsHistoryRequest> = ::protobuf::rt::LazyV2::INIT;
1847        instance.get(BatchGetAssetsHistoryRequest::new)
1848    }
1849}
1850
1851impl ::protobuf::Clear for BatchGetAssetsHistoryRequest {
1852    fn clear(&mut self) {
1853        self.parent.clear();
1854        self.asset_names.clear();
1855        self.content_type = ContentType::CONTENT_TYPE_UNSPECIFIED;
1856        self.read_time_window.clear();
1857        self.relationship_types.clear();
1858        self.unknown_fields.clear();
1859    }
1860}
1861
1862impl ::std::fmt::Debug for BatchGetAssetsHistoryRequest {
1863    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1864        ::protobuf::text_format::fmt(self, f)
1865    }
1866}
1867
1868impl ::protobuf::reflect::ProtobufValue for BatchGetAssetsHistoryRequest {
1869    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1870        ::protobuf::reflect::ReflectValueRef::Message(self)
1871    }
1872}
1873
1874#[derive(PartialEq,Clone,Default)]
1875pub struct BatchGetAssetsHistoryResponse {
1876    // message fields
1877    pub assets: ::protobuf::RepeatedField<super::assets::TemporalAsset>,
1878    // special fields
1879    pub unknown_fields: ::protobuf::UnknownFields,
1880    pub cached_size: ::protobuf::CachedSize,
1881}
1882
1883impl<'a> ::std::default::Default for &'a BatchGetAssetsHistoryResponse {
1884    fn default() -> &'a BatchGetAssetsHistoryResponse {
1885        <BatchGetAssetsHistoryResponse as ::protobuf::Message>::default_instance()
1886    }
1887}
1888
1889impl BatchGetAssetsHistoryResponse {
1890    pub fn new() -> BatchGetAssetsHistoryResponse {
1891        ::std::default::Default::default()
1892    }
1893
1894    // repeated .google.cloud.asset.v1.TemporalAsset assets = 1;
1895
1896
1897    pub fn get_assets(&self) -> &[super::assets::TemporalAsset] {
1898        &self.assets
1899    }
1900    pub fn clear_assets(&mut self) {
1901        self.assets.clear();
1902    }
1903
1904    // Param is passed by value, moved
1905    pub fn set_assets(&mut self, v: ::protobuf::RepeatedField<super::assets::TemporalAsset>) {
1906        self.assets = v;
1907    }
1908
1909    // Mutable pointer to the field.
1910    pub fn mut_assets(&mut self) -> &mut ::protobuf::RepeatedField<super::assets::TemporalAsset> {
1911        &mut self.assets
1912    }
1913
1914    // Take field
1915    pub fn take_assets(&mut self) -> ::protobuf::RepeatedField<super::assets::TemporalAsset> {
1916        ::std::mem::replace(&mut self.assets, ::protobuf::RepeatedField::new())
1917    }
1918}
1919
1920impl ::protobuf::Message for BatchGetAssetsHistoryResponse {
1921    fn is_initialized(&self) -> bool {
1922        for v in &self.assets {
1923            if !v.is_initialized() {
1924                return false;
1925            }
1926        };
1927        true
1928    }
1929
1930    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1931        while !is.eof()? {
1932            let (field_number, wire_type) = is.read_tag_unpack()?;
1933            match field_number {
1934                1 => {
1935                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.assets)?;
1936                },
1937                _ => {
1938                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1939                },
1940            };
1941        }
1942        ::std::result::Result::Ok(())
1943    }
1944
1945    // Compute sizes of nested messages
1946    #[allow(unused_variables)]
1947    fn compute_size(&self) -> u32 {
1948        let mut my_size = 0;
1949        for value in &self.assets {
1950            let len = value.compute_size();
1951            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1952        };
1953        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1954        self.cached_size.set(my_size);
1955        my_size
1956    }
1957
1958    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1959        for v in &self.assets {
1960            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1961            os.write_raw_varint32(v.get_cached_size())?;
1962            v.write_to_with_cached_sizes(os)?;
1963        };
1964        os.write_unknown_fields(self.get_unknown_fields())?;
1965        ::std::result::Result::Ok(())
1966    }
1967
1968    fn get_cached_size(&self) -> u32 {
1969        self.cached_size.get()
1970    }
1971
1972    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1973        &self.unknown_fields
1974    }
1975
1976    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1977        &mut self.unknown_fields
1978    }
1979
1980    fn as_any(&self) -> &dyn (::std::any::Any) {
1981        self as &dyn (::std::any::Any)
1982    }
1983    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1984        self as &mut dyn (::std::any::Any)
1985    }
1986    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1987        self
1988    }
1989
1990    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1991        Self::descriptor_static()
1992    }
1993
1994    fn new() -> BatchGetAssetsHistoryResponse {
1995        BatchGetAssetsHistoryResponse::new()
1996    }
1997
1998    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1999        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
2000        descriptor.get(|| {
2001            let mut fields = ::std::vec::Vec::new();
2002            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::assets::TemporalAsset>>(
2003                "assets",
2004                |m: &BatchGetAssetsHistoryResponse| { &m.assets },
2005                |m: &mut BatchGetAssetsHistoryResponse| { &mut m.assets },
2006            ));
2007            ::protobuf::reflect::MessageDescriptor::new_pb_name::<BatchGetAssetsHistoryResponse>(
2008                "BatchGetAssetsHistoryResponse",
2009                fields,
2010                file_descriptor_proto()
2011            )
2012        })
2013    }
2014
2015    fn default_instance() -> &'static BatchGetAssetsHistoryResponse {
2016        static instance: ::protobuf::rt::LazyV2<BatchGetAssetsHistoryResponse> = ::protobuf::rt::LazyV2::INIT;
2017        instance.get(BatchGetAssetsHistoryResponse::new)
2018    }
2019}
2020
2021impl ::protobuf::Clear for BatchGetAssetsHistoryResponse {
2022    fn clear(&mut self) {
2023        self.assets.clear();
2024        self.unknown_fields.clear();
2025    }
2026}
2027
2028impl ::std::fmt::Debug for BatchGetAssetsHistoryResponse {
2029    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2030        ::protobuf::text_format::fmt(self, f)
2031    }
2032}
2033
2034impl ::protobuf::reflect::ProtobufValue for BatchGetAssetsHistoryResponse {
2035    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2036        ::protobuf::reflect::ReflectValueRef::Message(self)
2037    }
2038}
2039
2040#[derive(PartialEq,Clone,Default)]
2041pub struct CreateFeedRequest {
2042    // message fields
2043    pub parent: ::std::string::String,
2044    pub feed_id: ::std::string::String,
2045    pub feed: ::protobuf::SingularPtrField<Feed>,
2046    // special fields
2047    pub unknown_fields: ::protobuf::UnknownFields,
2048    pub cached_size: ::protobuf::CachedSize,
2049}
2050
2051impl<'a> ::std::default::Default for &'a CreateFeedRequest {
2052    fn default() -> &'a CreateFeedRequest {
2053        <CreateFeedRequest as ::protobuf::Message>::default_instance()
2054    }
2055}
2056
2057impl CreateFeedRequest {
2058    pub fn new() -> CreateFeedRequest {
2059        ::std::default::Default::default()
2060    }
2061
2062    // string parent = 1;
2063
2064
2065    pub fn get_parent(&self) -> &str {
2066        &self.parent
2067    }
2068    pub fn clear_parent(&mut self) {
2069        self.parent.clear();
2070    }
2071
2072    // Param is passed by value, moved
2073    pub fn set_parent(&mut self, v: ::std::string::String) {
2074        self.parent = v;
2075    }
2076
2077    // Mutable pointer to the field.
2078    // If field is not initialized, it is initialized with default value first.
2079    pub fn mut_parent(&mut self) -> &mut ::std::string::String {
2080        &mut self.parent
2081    }
2082
2083    // Take field
2084    pub fn take_parent(&mut self) -> ::std::string::String {
2085        ::std::mem::replace(&mut self.parent, ::std::string::String::new())
2086    }
2087
2088    // string feed_id = 2;
2089
2090
2091    pub fn get_feed_id(&self) -> &str {
2092        &self.feed_id
2093    }
2094    pub fn clear_feed_id(&mut self) {
2095        self.feed_id.clear();
2096    }
2097
2098    // Param is passed by value, moved
2099    pub fn set_feed_id(&mut self, v: ::std::string::String) {
2100        self.feed_id = v;
2101    }
2102
2103    // Mutable pointer to the field.
2104    // If field is not initialized, it is initialized with default value first.
2105    pub fn mut_feed_id(&mut self) -> &mut ::std::string::String {
2106        &mut self.feed_id
2107    }
2108
2109    // Take field
2110    pub fn take_feed_id(&mut self) -> ::std::string::String {
2111        ::std::mem::replace(&mut self.feed_id, ::std::string::String::new())
2112    }
2113
2114    // .google.cloud.asset.v1.Feed feed = 3;
2115
2116
2117    pub fn get_feed(&self) -> &Feed {
2118        self.feed.as_ref().unwrap_or_else(|| <Feed as ::protobuf::Message>::default_instance())
2119    }
2120    pub fn clear_feed(&mut self) {
2121        self.feed.clear();
2122    }
2123
2124    pub fn has_feed(&self) -> bool {
2125        self.feed.is_some()
2126    }
2127
2128    // Param is passed by value, moved
2129    pub fn set_feed(&mut self, v: Feed) {
2130        self.feed = ::protobuf::SingularPtrField::some(v);
2131    }
2132
2133    // Mutable pointer to the field.
2134    // If field is not initialized, it is initialized with default value first.
2135    pub fn mut_feed(&mut self) -> &mut Feed {
2136        if self.feed.is_none() {
2137            self.feed.set_default();
2138        }
2139        self.feed.as_mut().unwrap()
2140    }
2141
2142    // Take field
2143    pub fn take_feed(&mut self) -> Feed {
2144        self.feed.take().unwrap_or_else(|| Feed::new())
2145    }
2146}
2147
2148impl ::protobuf::Message for CreateFeedRequest {
2149    fn is_initialized(&self) -> bool {
2150        for v in &self.feed {
2151            if !v.is_initialized() {
2152                return false;
2153            }
2154        };
2155        true
2156    }
2157
2158    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2159        while !is.eof()? {
2160            let (field_number, wire_type) = is.read_tag_unpack()?;
2161            match field_number {
2162                1 => {
2163                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.parent)?;
2164                },
2165                2 => {
2166                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.feed_id)?;
2167                },
2168                3 => {
2169                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.feed)?;
2170                },
2171                _ => {
2172                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
2173                },
2174            };
2175        }
2176        ::std::result::Result::Ok(())
2177    }
2178
2179    // Compute sizes of nested messages
2180    #[allow(unused_variables)]
2181    fn compute_size(&self) -> u32 {
2182        let mut my_size = 0;
2183        if !self.parent.is_empty() {
2184            my_size += ::protobuf::rt::string_size(1, &self.parent);
2185        }
2186        if !self.feed_id.is_empty() {
2187            my_size += ::protobuf::rt::string_size(2, &self.feed_id);
2188        }
2189        if let Some(ref v) = self.feed.as_ref() {
2190            let len = v.compute_size();
2191            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
2192        }
2193        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
2194        self.cached_size.set(my_size);
2195        my_size
2196    }
2197
2198    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2199        if !self.parent.is_empty() {
2200            os.write_string(1, &self.parent)?;
2201        }
2202        if !self.feed_id.is_empty() {
2203            os.write_string(2, &self.feed_id)?;
2204        }
2205        if let Some(ref v) = self.feed.as_ref() {
2206            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
2207            os.write_raw_varint32(v.get_cached_size())?;
2208            v.write_to_with_cached_sizes(os)?;
2209        }
2210        os.write_unknown_fields(self.get_unknown_fields())?;
2211        ::std::result::Result::Ok(())
2212    }
2213
2214    fn get_cached_size(&self) -> u32 {
2215        self.cached_size.get()
2216    }
2217
2218    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
2219        &self.unknown_fields
2220    }
2221
2222    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
2223        &mut self.unknown_fields
2224    }
2225
2226    fn as_any(&self) -> &dyn (::std::any::Any) {
2227        self as &dyn (::std::any::Any)
2228    }
2229    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
2230        self as &mut dyn (::std::any::Any)
2231    }
2232    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
2233        self
2234    }
2235
2236    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
2237        Self::descriptor_static()
2238    }
2239
2240    fn new() -> CreateFeedRequest {
2241        CreateFeedRequest::new()
2242    }
2243
2244    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
2245        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
2246        descriptor.get(|| {
2247            let mut fields = ::std::vec::Vec::new();
2248            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2249                "parent",
2250                |m: &CreateFeedRequest| { &m.parent },
2251                |m: &mut CreateFeedRequest| { &mut m.parent },
2252            ));
2253            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2254                "feed_id",
2255                |m: &CreateFeedRequest| { &m.feed_id },
2256                |m: &mut CreateFeedRequest| { &mut m.feed_id },
2257            ));
2258            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<Feed>>(
2259                "feed",
2260                |m: &CreateFeedRequest| { &m.feed },
2261                |m: &mut CreateFeedRequest| { &mut m.feed },
2262            ));
2263            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CreateFeedRequest>(
2264                "CreateFeedRequest",
2265                fields,
2266                file_descriptor_proto()
2267            )
2268        })
2269    }
2270
2271    fn default_instance() -> &'static CreateFeedRequest {
2272        static instance: ::protobuf::rt::LazyV2<CreateFeedRequest> = ::protobuf::rt::LazyV2::INIT;
2273        instance.get(CreateFeedRequest::new)
2274    }
2275}
2276
2277impl ::protobuf::Clear for CreateFeedRequest {
2278    fn clear(&mut self) {
2279        self.parent.clear();
2280        self.feed_id.clear();
2281        self.feed.clear();
2282        self.unknown_fields.clear();
2283    }
2284}
2285
2286impl ::std::fmt::Debug for CreateFeedRequest {
2287    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2288        ::protobuf::text_format::fmt(self, f)
2289    }
2290}
2291
2292impl ::protobuf::reflect::ProtobufValue for CreateFeedRequest {
2293    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2294        ::protobuf::reflect::ReflectValueRef::Message(self)
2295    }
2296}
2297
2298#[derive(PartialEq,Clone,Default)]
2299pub struct GetFeedRequest {
2300    // message fields
2301    pub name: ::std::string::String,
2302    // special fields
2303    pub unknown_fields: ::protobuf::UnknownFields,
2304    pub cached_size: ::protobuf::CachedSize,
2305}
2306
2307impl<'a> ::std::default::Default for &'a GetFeedRequest {
2308    fn default() -> &'a GetFeedRequest {
2309        <GetFeedRequest as ::protobuf::Message>::default_instance()
2310    }
2311}
2312
2313impl GetFeedRequest {
2314    pub fn new() -> GetFeedRequest {
2315        ::std::default::Default::default()
2316    }
2317
2318    // string name = 1;
2319
2320
2321    pub fn get_name(&self) -> &str {
2322        &self.name
2323    }
2324    pub fn clear_name(&mut self) {
2325        self.name.clear();
2326    }
2327
2328    // Param is passed by value, moved
2329    pub fn set_name(&mut self, v: ::std::string::String) {
2330        self.name = v;
2331    }
2332
2333    // Mutable pointer to the field.
2334    // If field is not initialized, it is initialized with default value first.
2335    pub fn mut_name(&mut self) -> &mut ::std::string::String {
2336        &mut self.name
2337    }
2338
2339    // Take field
2340    pub fn take_name(&mut self) -> ::std::string::String {
2341        ::std::mem::replace(&mut self.name, ::std::string::String::new())
2342    }
2343}
2344
2345impl ::protobuf::Message for GetFeedRequest {
2346    fn is_initialized(&self) -> bool {
2347        true
2348    }
2349
2350    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2351        while !is.eof()? {
2352            let (field_number, wire_type) = is.read_tag_unpack()?;
2353            match field_number {
2354                1 => {
2355                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
2356                },
2357                _ => {
2358                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
2359                },
2360            };
2361        }
2362        ::std::result::Result::Ok(())
2363    }
2364
2365    // Compute sizes of nested messages
2366    #[allow(unused_variables)]
2367    fn compute_size(&self) -> u32 {
2368        let mut my_size = 0;
2369        if !self.name.is_empty() {
2370            my_size += ::protobuf::rt::string_size(1, &self.name);
2371        }
2372        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
2373        self.cached_size.set(my_size);
2374        my_size
2375    }
2376
2377    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2378        if !self.name.is_empty() {
2379            os.write_string(1, &self.name)?;
2380        }
2381        os.write_unknown_fields(self.get_unknown_fields())?;
2382        ::std::result::Result::Ok(())
2383    }
2384
2385    fn get_cached_size(&self) -> u32 {
2386        self.cached_size.get()
2387    }
2388
2389    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
2390        &self.unknown_fields
2391    }
2392
2393    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
2394        &mut self.unknown_fields
2395    }
2396
2397    fn as_any(&self) -> &dyn (::std::any::Any) {
2398        self as &dyn (::std::any::Any)
2399    }
2400    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
2401        self as &mut dyn (::std::any::Any)
2402    }
2403    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
2404        self
2405    }
2406
2407    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
2408        Self::descriptor_static()
2409    }
2410
2411    fn new() -> GetFeedRequest {
2412        GetFeedRequest::new()
2413    }
2414
2415    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
2416        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
2417        descriptor.get(|| {
2418            let mut fields = ::std::vec::Vec::new();
2419            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2420                "name",
2421                |m: &GetFeedRequest| { &m.name },
2422                |m: &mut GetFeedRequest| { &mut m.name },
2423            ));
2424            ::protobuf::reflect::MessageDescriptor::new_pb_name::<GetFeedRequest>(
2425                "GetFeedRequest",
2426                fields,
2427                file_descriptor_proto()
2428            )
2429        })
2430    }
2431
2432    fn default_instance() -> &'static GetFeedRequest {
2433        static instance: ::protobuf::rt::LazyV2<GetFeedRequest> = ::protobuf::rt::LazyV2::INIT;
2434        instance.get(GetFeedRequest::new)
2435    }
2436}
2437
2438impl ::protobuf::Clear for GetFeedRequest {
2439    fn clear(&mut self) {
2440        self.name.clear();
2441        self.unknown_fields.clear();
2442    }
2443}
2444
2445impl ::std::fmt::Debug for GetFeedRequest {
2446    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2447        ::protobuf::text_format::fmt(self, f)
2448    }
2449}
2450
2451impl ::protobuf::reflect::ProtobufValue for GetFeedRequest {
2452    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2453        ::protobuf::reflect::ReflectValueRef::Message(self)
2454    }
2455}
2456
2457#[derive(PartialEq,Clone,Default)]
2458pub struct ListFeedsRequest {
2459    // message fields
2460    pub parent: ::std::string::String,
2461    // special fields
2462    pub unknown_fields: ::protobuf::UnknownFields,
2463    pub cached_size: ::protobuf::CachedSize,
2464}
2465
2466impl<'a> ::std::default::Default for &'a ListFeedsRequest {
2467    fn default() -> &'a ListFeedsRequest {
2468        <ListFeedsRequest as ::protobuf::Message>::default_instance()
2469    }
2470}
2471
2472impl ListFeedsRequest {
2473    pub fn new() -> ListFeedsRequest {
2474        ::std::default::Default::default()
2475    }
2476
2477    // string parent = 1;
2478
2479
2480    pub fn get_parent(&self) -> &str {
2481        &self.parent
2482    }
2483    pub fn clear_parent(&mut self) {
2484        self.parent.clear();
2485    }
2486
2487    // Param is passed by value, moved
2488    pub fn set_parent(&mut self, v: ::std::string::String) {
2489        self.parent = v;
2490    }
2491
2492    // Mutable pointer to the field.
2493    // If field is not initialized, it is initialized with default value first.
2494    pub fn mut_parent(&mut self) -> &mut ::std::string::String {
2495        &mut self.parent
2496    }
2497
2498    // Take field
2499    pub fn take_parent(&mut self) -> ::std::string::String {
2500        ::std::mem::replace(&mut self.parent, ::std::string::String::new())
2501    }
2502}
2503
2504impl ::protobuf::Message for ListFeedsRequest {
2505    fn is_initialized(&self) -> bool {
2506        true
2507    }
2508
2509    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2510        while !is.eof()? {
2511            let (field_number, wire_type) = is.read_tag_unpack()?;
2512            match field_number {
2513                1 => {
2514                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.parent)?;
2515                },
2516                _ => {
2517                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
2518                },
2519            };
2520        }
2521        ::std::result::Result::Ok(())
2522    }
2523
2524    // Compute sizes of nested messages
2525    #[allow(unused_variables)]
2526    fn compute_size(&self) -> u32 {
2527        let mut my_size = 0;
2528        if !self.parent.is_empty() {
2529            my_size += ::protobuf::rt::string_size(1, &self.parent);
2530        }
2531        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
2532        self.cached_size.set(my_size);
2533        my_size
2534    }
2535
2536    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2537        if !self.parent.is_empty() {
2538            os.write_string(1, &self.parent)?;
2539        }
2540        os.write_unknown_fields(self.get_unknown_fields())?;
2541        ::std::result::Result::Ok(())
2542    }
2543
2544    fn get_cached_size(&self) -> u32 {
2545        self.cached_size.get()
2546    }
2547
2548    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
2549        &self.unknown_fields
2550    }
2551
2552    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
2553        &mut self.unknown_fields
2554    }
2555
2556    fn as_any(&self) -> &dyn (::std::any::Any) {
2557        self as &dyn (::std::any::Any)
2558    }
2559    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
2560        self as &mut dyn (::std::any::Any)
2561    }
2562    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
2563        self
2564    }
2565
2566    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
2567        Self::descriptor_static()
2568    }
2569
2570    fn new() -> ListFeedsRequest {
2571        ListFeedsRequest::new()
2572    }
2573
2574    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
2575        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
2576        descriptor.get(|| {
2577            let mut fields = ::std::vec::Vec::new();
2578            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2579                "parent",
2580                |m: &ListFeedsRequest| { &m.parent },
2581                |m: &mut ListFeedsRequest| { &mut m.parent },
2582            ));
2583            ::protobuf::reflect::MessageDescriptor::new_pb_name::<ListFeedsRequest>(
2584                "ListFeedsRequest",
2585                fields,
2586                file_descriptor_proto()
2587            )
2588        })
2589    }
2590
2591    fn default_instance() -> &'static ListFeedsRequest {
2592        static instance: ::protobuf::rt::LazyV2<ListFeedsRequest> = ::protobuf::rt::LazyV2::INIT;
2593        instance.get(ListFeedsRequest::new)
2594    }
2595}
2596
2597impl ::protobuf::Clear for ListFeedsRequest {
2598    fn clear(&mut self) {
2599        self.parent.clear();
2600        self.unknown_fields.clear();
2601    }
2602}
2603
2604impl ::std::fmt::Debug for ListFeedsRequest {
2605    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2606        ::protobuf::text_format::fmt(self, f)
2607    }
2608}
2609
2610impl ::protobuf::reflect::ProtobufValue for ListFeedsRequest {
2611    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2612        ::protobuf::reflect::ReflectValueRef::Message(self)
2613    }
2614}
2615
2616#[derive(PartialEq,Clone,Default)]
2617pub struct ListFeedsResponse {
2618    // message fields
2619    pub feeds: ::protobuf::RepeatedField<Feed>,
2620    // special fields
2621    pub unknown_fields: ::protobuf::UnknownFields,
2622    pub cached_size: ::protobuf::CachedSize,
2623}
2624
2625impl<'a> ::std::default::Default for &'a ListFeedsResponse {
2626    fn default() -> &'a ListFeedsResponse {
2627        <ListFeedsResponse as ::protobuf::Message>::default_instance()
2628    }
2629}
2630
2631impl ListFeedsResponse {
2632    pub fn new() -> ListFeedsResponse {
2633        ::std::default::Default::default()
2634    }
2635
2636    // repeated .google.cloud.asset.v1.Feed feeds = 1;
2637
2638
2639    pub fn get_feeds(&self) -> &[Feed] {
2640        &self.feeds
2641    }
2642    pub fn clear_feeds(&mut self) {
2643        self.feeds.clear();
2644    }
2645
2646    // Param is passed by value, moved
2647    pub fn set_feeds(&mut self, v: ::protobuf::RepeatedField<Feed>) {
2648        self.feeds = v;
2649    }
2650
2651    // Mutable pointer to the field.
2652    pub fn mut_feeds(&mut self) -> &mut ::protobuf::RepeatedField<Feed> {
2653        &mut self.feeds
2654    }
2655
2656    // Take field
2657    pub fn take_feeds(&mut self) -> ::protobuf::RepeatedField<Feed> {
2658        ::std::mem::replace(&mut self.feeds, ::protobuf::RepeatedField::new())
2659    }
2660}
2661
2662impl ::protobuf::Message for ListFeedsResponse {
2663    fn is_initialized(&self) -> bool {
2664        for v in &self.feeds {
2665            if !v.is_initialized() {
2666                return false;
2667            }
2668        };
2669        true
2670    }
2671
2672    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2673        while !is.eof()? {
2674            let (field_number, wire_type) = is.read_tag_unpack()?;
2675            match field_number {
2676                1 => {
2677                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.feeds)?;
2678                },
2679                _ => {
2680                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
2681                },
2682            };
2683        }
2684        ::std::result::Result::Ok(())
2685    }
2686
2687    // Compute sizes of nested messages
2688    #[allow(unused_variables)]
2689    fn compute_size(&self) -> u32 {
2690        let mut my_size = 0;
2691        for value in &self.feeds {
2692            let len = value.compute_size();
2693            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
2694        };
2695        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
2696        self.cached_size.set(my_size);
2697        my_size
2698    }
2699
2700    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2701        for v in &self.feeds {
2702            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
2703            os.write_raw_varint32(v.get_cached_size())?;
2704            v.write_to_with_cached_sizes(os)?;
2705        };
2706        os.write_unknown_fields(self.get_unknown_fields())?;
2707        ::std::result::Result::Ok(())
2708    }
2709
2710    fn get_cached_size(&self) -> u32 {
2711        self.cached_size.get()
2712    }
2713
2714    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
2715        &self.unknown_fields
2716    }
2717
2718    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
2719        &mut self.unknown_fields
2720    }
2721
2722    fn as_any(&self) -> &dyn (::std::any::Any) {
2723        self as &dyn (::std::any::Any)
2724    }
2725    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
2726        self as &mut dyn (::std::any::Any)
2727    }
2728    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
2729        self
2730    }
2731
2732    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
2733        Self::descriptor_static()
2734    }
2735
2736    fn new() -> ListFeedsResponse {
2737        ListFeedsResponse::new()
2738    }
2739
2740    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
2741        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
2742        descriptor.get(|| {
2743            let mut fields = ::std::vec::Vec::new();
2744            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<Feed>>(
2745                "feeds",
2746                |m: &ListFeedsResponse| { &m.feeds },
2747                |m: &mut ListFeedsResponse| { &mut m.feeds },
2748            ));
2749            ::protobuf::reflect::MessageDescriptor::new_pb_name::<ListFeedsResponse>(
2750                "ListFeedsResponse",
2751                fields,
2752                file_descriptor_proto()
2753            )
2754        })
2755    }
2756
2757    fn default_instance() -> &'static ListFeedsResponse {
2758        static instance: ::protobuf::rt::LazyV2<ListFeedsResponse> = ::protobuf::rt::LazyV2::INIT;
2759        instance.get(ListFeedsResponse::new)
2760    }
2761}
2762
2763impl ::protobuf::Clear for ListFeedsResponse {
2764    fn clear(&mut self) {
2765        self.feeds.clear();
2766        self.unknown_fields.clear();
2767    }
2768}
2769
2770impl ::std::fmt::Debug for ListFeedsResponse {
2771    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2772        ::protobuf::text_format::fmt(self, f)
2773    }
2774}
2775
2776impl ::protobuf::reflect::ProtobufValue for ListFeedsResponse {
2777    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2778        ::protobuf::reflect::ReflectValueRef::Message(self)
2779    }
2780}
2781
2782#[derive(PartialEq,Clone,Default)]
2783pub struct UpdateFeedRequest {
2784    // message fields
2785    pub feed: ::protobuf::SingularPtrField<Feed>,
2786    pub update_mask: ::protobuf::SingularPtrField<::protobuf::well_known_types::FieldMask>,
2787    // special fields
2788    pub unknown_fields: ::protobuf::UnknownFields,
2789    pub cached_size: ::protobuf::CachedSize,
2790}
2791
2792impl<'a> ::std::default::Default for &'a UpdateFeedRequest {
2793    fn default() -> &'a UpdateFeedRequest {
2794        <UpdateFeedRequest as ::protobuf::Message>::default_instance()
2795    }
2796}
2797
2798impl UpdateFeedRequest {
2799    pub fn new() -> UpdateFeedRequest {
2800        ::std::default::Default::default()
2801    }
2802
2803    // .google.cloud.asset.v1.Feed feed = 1;
2804
2805
2806    pub fn get_feed(&self) -> &Feed {
2807        self.feed.as_ref().unwrap_or_else(|| <Feed as ::protobuf::Message>::default_instance())
2808    }
2809    pub fn clear_feed(&mut self) {
2810        self.feed.clear();
2811    }
2812
2813    pub fn has_feed(&self) -> bool {
2814        self.feed.is_some()
2815    }
2816
2817    // Param is passed by value, moved
2818    pub fn set_feed(&mut self, v: Feed) {
2819        self.feed = ::protobuf::SingularPtrField::some(v);
2820    }
2821
2822    // Mutable pointer to the field.
2823    // If field is not initialized, it is initialized with default value first.
2824    pub fn mut_feed(&mut self) -> &mut Feed {
2825        if self.feed.is_none() {
2826            self.feed.set_default();
2827        }
2828        self.feed.as_mut().unwrap()
2829    }
2830
2831    // Take field
2832    pub fn take_feed(&mut self) -> Feed {
2833        self.feed.take().unwrap_or_else(|| Feed::new())
2834    }
2835
2836    // .google.protobuf.FieldMask update_mask = 2;
2837
2838
2839    pub fn get_update_mask(&self) -> &::protobuf::well_known_types::FieldMask {
2840        self.update_mask.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::FieldMask as ::protobuf::Message>::default_instance())
2841    }
2842    pub fn clear_update_mask(&mut self) {
2843        self.update_mask.clear();
2844    }
2845
2846    pub fn has_update_mask(&self) -> bool {
2847        self.update_mask.is_some()
2848    }
2849
2850    // Param is passed by value, moved
2851    pub fn set_update_mask(&mut self, v: ::protobuf::well_known_types::FieldMask) {
2852        self.update_mask = ::protobuf::SingularPtrField::some(v);
2853    }
2854
2855    // Mutable pointer to the field.
2856    // If field is not initialized, it is initialized with default value first.
2857    pub fn mut_update_mask(&mut self) -> &mut ::protobuf::well_known_types::FieldMask {
2858        if self.update_mask.is_none() {
2859            self.update_mask.set_default();
2860        }
2861        self.update_mask.as_mut().unwrap()
2862    }
2863
2864    // Take field
2865    pub fn take_update_mask(&mut self) -> ::protobuf::well_known_types::FieldMask {
2866        self.update_mask.take().unwrap_or_else(|| ::protobuf::well_known_types::FieldMask::new())
2867    }
2868}
2869
2870impl ::protobuf::Message for UpdateFeedRequest {
2871    fn is_initialized(&self) -> bool {
2872        for v in &self.feed {
2873            if !v.is_initialized() {
2874                return false;
2875            }
2876        };
2877        for v in &self.update_mask {
2878            if !v.is_initialized() {
2879                return false;
2880            }
2881        };
2882        true
2883    }
2884
2885    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2886        while !is.eof()? {
2887            let (field_number, wire_type) = is.read_tag_unpack()?;
2888            match field_number {
2889                1 => {
2890                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.feed)?;
2891                },
2892                2 => {
2893                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.update_mask)?;
2894                },
2895                _ => {
2896                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
2897                },
2898            };
2899        }
2900        ::std::result::Result::Ok(())
2901    }
2902
2903    // Compute sizes of nested messages
2904    #[allow(unused_variables)]
2905    fn compute_size(&self) -> u32 {
2906        let mut my_size = 0;
2907        if let Some(ref v) = self.feed.as_ref() {
2908            let len = v.compute_size();
2909            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
2910        }
2911        if let Some(ref v) = self.update_mask.as_ref() {
2912            let len = v.compute_size();
2913            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
2914        }
2915        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
2916        self.cached_size.set(my_size);
2917        my_size
2918    }
2919
2920    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2921        if let Some(ref v) = self.feed.as_ref() {
2922            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
2923            os.write_raw_varint32(v.get_cached_size())?;
2924            v.write_to_with_cached_sizes(os)?;
2925        }
2926        if let Some(ref v) = self.update_mask.as_ref() {
2927            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
2928            os.write_raw_varint32(v.get_cached_size())?;
2929            v.write_to_with_cached_sizes(os)?;
2930        }
2931        os.write_unknown_fields(self.get_unknown_fields())?;
2932        ::std::result::Result::Ok(())
2933    }
2934
2935    fn get_cached_size(&self) -> u32 {
2936        self.cached_size.get()
2937    }
2938
2939    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
2940        &self.unknown_fields
2941    }
2942
2943    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
2944        &mut self.unknown_fields
2945    }
2946
2947    fn as_any(&self) -> &dyn (::std::any::Any) {
2948        self as &dyn (::std::any::Any)
2949    }
2950    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
2951        self as &mut dyn (::std::any::Any)
2952    }
2953    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
2954        self
2955    }
2956
2957    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
2958        Self::descriptor_static()
2959    }
2960
2961    fn new() -> UpdateFeedRequest {
2962        UpdateFeedRequest::new()
2963    }
2964
2965    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
2966        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
2967        descriptor.get(|| {
2968            let mut fields = ::std::vec::Vec::new();
2969            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<Feed>>(
2970                "feed",
2971                |m: &UpdateFeedRequest| { &m.feed },
2972                |m: &mut UpdateFeedRequest| { &mut m.feed },
2973            ));
2974            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::FieldMask>>(
2975                "update_mask",
2976                |m: &UpdateFeedRequest| { &m.update_mask },
2977                |m: &mut UpdateFeedRequest| { &mut m.update_mask },
2978            ));
2979            ::protobuf::reflect::MessageDescriptor::new_pb_name::<UpdateFeedRequest>(
2980                "UpdateFeedRequest",
2981                fields,
2982                file_descriptor_proto()
2983            )
2984        })
2985    }
2986
2987    fn default_instance() -> &'static UpdateFeedRequest {
2988        static instance: ::protobuf::rt::LazyV2<UpdateFeedRequest> = ::protobuf::rt::LazyV2::INIT;
2989        instance.get(UpdateFeedRequest::new)
2990    }
2991}
2992
2993impl ::protobuf::Clear for UpdateFeedRequest {
2994    fn clear(&mut self) {
2995        self.feed.clear();
2996        self.update_mask.clear();
2997        self.unknown_fields.clear();
2998    }
2999}
3000
3001impl ::std::fmt::Debug for UpdateFeedRequest {
3002    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3003        ::protobuf::text_format::fmt(self, f)
3004    }
3005}
3006
3007impl ::protobuf::reflect::ProtobufValue for UpdateFeedRequest {
3008    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
3009        ::protobuf::reflect::ReflectValueRef::Message(self)
3010    }
3011}
3012
3013#[derive(PartialEq,Clone,Default)]
3014pub struct DeleteFeedRequest {
3015    // message fields
3016    pub name: ::std::string::String,
3017    // special fields
3018    pub unknown_fields: ::protobuf::UnknownFields,
3019    pub cached_size: ::protobuf::CachedSize,
3020}
3021
3022impl<'a> ::std::default::Default for &'a DeleteFeedRequest {
3023    fn default() -> &'a DeleteFeedRequest {
3024        <DeleteFeedRequest as ::protobuf::Message>::default_instance()
3025    }
3026}
3027
3028impl DeleteFeedRequest {
3029    pub fn new() -> DeleteFeedRequest {
3030        ::std::default::Default::default()
3031    }
3032
3033    // string name = 1;
3034
3035
3036    pub fn get_name(&self) -> &str {
3037        &self.name
3038    }
3039    pub fn clear_name(&mut self) {
3040        self.name.clear();
3041    }
3042
3043    // Param is passed by value, moved
3044    pub fn set_name(&mut self, v: ::std::string::String) {
3045        self.name = v;
3046    }
3047
3048    // Mutable pointer to the field.
3049    // If field is not initialized, it is initialized with default value first.
3050    pub fn mut_name(&mut self) -> &mut ::std::string::String {
3051        &mut self.name
3052    }
3053
3054    // Take field
3055    pub fn take_name(&mut self) -> ::std::string::String {
3056        ::std::mem::replace(&mut self.name, ::std::string::String::new())
3057    }
3058}
3059
3060impl ::protobuf::Message for DeleteFeedRequest {
3061    fn is_initialized(&self) -> bool {
3062        true
3063    }
3064
3065    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3066        while !is.eof()? {
3067            let (field_number, wire_type) = is.read_tag_unpack()?;
3068            match field_number {
3069                1 => {
3070                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
3071                },
3072                _ => {
3073                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
3074                },
3075            };
3076        }
3077        ::std::result::Result::Ok(())
3078    }
3079
3080    // Compute sizes of nested messages
3081    #[allow(unused_variables)]
3082    fn compute_size(&self) -> u32 {
3083        let mut my_size = 0;
3084        if !self.name.is_empty() {
3085            my_size += ::protobuf::rt::string_size(1, &self.name);
3086        }
3087        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
3088        self.cached_size.set(my_size);
3089        my_size
3090    }
3091
3092    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3093        if !self.name.is_empty() {
3094            os.write_string(1, &self.name)?;
3095        }
3096        os.write_unknown_fields(self.get_unknown_fields())?;
3097        ::std::result::Result::Ok(())
3098    }
3099
3100    fn get_cached_size(&self) -> u32 {
3101        self.cached_size.get()
3102    }
3103
3104    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
3105        &self.unknown_fields
3106    }
3107
3108    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
3109        &mut self.unknown_fields
3110    }
3111
3112    fn as_any(&self) -> &dyn (::std::any::Any) {
3113        self as &dyn (::std::any::Any)
3114    }
3115    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
3116        self as &mut dyn (::std::any::Any)
3117    }
3118    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
3119        self
3120    }
3121
3122    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
3123        Self::descriptor_static()
3124    }
3125
3126    fn new() -> DeleteFeedRequest {
3127        DeleteFeedRequest::new()
3128    }
3129
3130    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
3131        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
3132        descriptor.get(|| {
3133            let mut fields = ::std::vec::Vec::new();
3134            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
3135                "name",
3136                |m: &DeleteFeedRequest| { &m.name },
3137                |m: &mut DeleteFeedRequest| { &mut m.name },
3138            ));
3139            ::protobuf::reflect::MessageDescriptor::new_pb_name::<DeleteFeedRequest>(
3140                "DeleteFeedRequest",
3141                fields,
3142                file_descriptor_proto()
3143            )
3144        })
3145    }
3146
3147    fn default_instance() -> &'static DeleteFeedRequest {
3148        static instance: ::protobuf::rt::LazyV2<DeleteFeedRequest> = ::protobuf::rt::LazyV2::INIT;
3149        instance.get(DeleteFeedRequest::new)
3150    }
3151}
3152
3153impl ::protobuf::Clear for DeleteFeedRequest {
3154    fn clear(&mut self) {
3155        self.name.clear();
3156        self.unknown_fields.clear();
3157    }
3158}
3159
3160impl ::std::fmt::Debug for DeleteFeedRequest {
3161    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3162        ::protobuf::text_format::fmt(self, f)
3163    }
3164}
3165
3166impl ::protobuf::reflect::ProtobufValue for DeleteFeedRequest {
3167    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
3168        ::protobuf::reflect::ReflectValueRef::Message(self)
3169    }
3170}
3171
3172#[derive(PartialEq,Clone,Default)]
3173pub struct OutputConfig {
3174    // message oneof groups
3175    pub destination: ::std::option::Option<OutputConfig_oneof_destination>,
3176    // special fields
3177    pub unknown_fields: ::protobuf::UnknownFields,
3178    pub cached_size: ::protobuf::CachedSize,
3179}
3180
3181impl<'a> ::std::default::Default for &'a OutputConfig {
3182    fn default() -> &'a OutputConfig {
3183        <OutputConfig as ::protobuf::Message>::default_instance()
3184    }
3185}
3186
3187#[derive(Clone,PartialEq,Debug)]
3188pub enum OutputConfig_oneof_destination {
3189    gcs_destination(GcsDestination),
3190    bigquery_destination(BigQueryDestination),
3191}
3192
3193impl OutputConfig {
3194    pub fn new() -> OutputConfig {
3195        ::std::default::Default::default()
3196    }
3197
3198    // .google.cloud.asset.v1.GcsDestination gcs_destination = 1;
3199
3200
3201    pub fn get_gcs_destination(&self) -> &GcsDestination {
3202        match self.destination {
3203            ::std::option::Option::Some(OutputConfig_oneof_destination::gcs_destination(ref v)) => v,
3204            _ => <GcsDestination as ::protobuf::Message>::default_instance(),
3205        }
3206    }
3207    pub fn clear_gcs_destination(&mut self) {
3208        self.destination = ::std::option::Option::None;
3209    }
3210
3211    pub fn has_gcs_destination(&self) -> bool {
3212        match self.destination {
3213            ::std::option::Option::Some(OutputConfig_oneof_destination::gcs_destination(..)) => true,
3214            _ => false,
3215        }
3216    }
3217
3218    // Param is passed by value, moved
3219    pub fn set_gcs_destination(&mut self, v: GcsDestination) {
3220        self.destination = ::std::option::Option::Some(OutputConfig_oneof_destination::gcs_destination(v))
3221    }
3222
3223    // Mutable pointer to the field.
3224    pub fn mut_gcs_destination(&mut self) -> &mut GcsDestination {
3225        if let ::std::option::Option::Some(OutputConfig_oneof_destination::gcs_destination(_)) = self.destination {
3226        } else {
3227            self.destination = ::std::option::Option::Some(OutputConfig_oneof_destination::gcs_destination(GcsDestination::new()));
3228        }
3229        match self.destination {
3230            ::std::option::Option::Some(OutputConfig_oneof_destination::gcs_destination(ref mut v)) => v,
3231            _ => panic!(),
3232        }
3233    }
3234
3235    // Take field
3236    pub fn take_gcs_destination(&mut self) -> GcsDestination {
3237        if self.has_gcs_destination() {
3238            match self.destination.take() {
3239                ::std::option::Option::Some(OutputConfig_oneof_destination::gcs_destination(v)) => v,
3240                _ => panic!(),
3241            }
3242        } else {
3243            GcsDestination::new()
3244        }
3245    }
3246
3247    // .google.cloud.asset.v1.BigQueryDestination bigquery_destination = 2;
3248
3249
3250    pub fn get_bigquery_destination(&self) -> &BigQueryDestination {
3251        match self.destination {
3252            ::std::option::Option::Some(OutputConfig_oneof_destination::bigquery_destination(ref v)) => v,
3253            _ => <BigQueryDestination as ::protobuf::Message>::default_instance(),
3254        }
3255    }
3256    pub fn clear_bigquery_destination(&mut self) {
3257        self.destination = ::std::option::Option::None;
3258    }
3259
3260    pub fn has_bigquery_destination(&self) -> bool {
3261        match self.destination {
3262            ::std::option::Option::Some(OutputConfig_oneof_destination::bigquery_destination(..)) => true,
3263            _ => false,
3264        }
3265    }
3266
3267    // Param is passed by value, moved
3268    pub fn set_bigquery_destination(&mut self, v: BigQueryDestination) {
3269        self.destination = ::std::option::Option::Some(OutputConfig_oneof_destination::bigquery_destination(v))
3270    }
3271
3272    // Mutable pointer to the field.
3273    pub fn mut_bigquery_destination(&mut self) -> &mut BigQueryDestination {
3274        if let ::std::option::Option::Some(OutputConfig_oneof_destination::bigquery_destination(_)) = self.destination {
3275        } else {
3276            self.destination = ::std::option::Option::Some(OutputConfig_oneof_destination::bigquery_destination(BigQueryDestination::new()));
3277        }
3278        match self.destination {
3279            ::std::option::Option::Some(OutputConfig_oneof_destination::bigquery_destination(ref mut v)) => v,
3280            _ => panic!(),
3281        }
3282    }
3283
3284    // Take field
3285    pub fn take_bigquery_destination(&mut self) -> BigQueryDestination {
3286        if self.has_bigquery_destination() {
3287            match self.destination.take() {
3288                ::std::option::Option::Some(OutputConfig_oneof_destination::bigquery_destination(v)) => v,
3289                _ => panic!(),
3290            }
3291        } else {
3292            BigQueryDestination::new()
3293        }
3294    }
3295}
3296
3297impl ::protobuf::Message for OutputConfig {
3298    fn is_initialized(&self) -> bool {
3299        if let Some(OutputConfig_oneof_destination::gcs_destination(ref v)) = self.destination {
3300            if !v.is_initialized() {
3301                return false;
3302            }
3303        }
3304        if let Some(OutputConfig_oneof_destination::bigquery_destination(ref v)) = self.destination {
3305            if !v.is_initialized() {
3306                return false;
3307            }
3308        }
3309        true
3310    }
3311
3312    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3313        while !is.eof()? {
3314            let (field_number, wire_type) = is.read_tag_unpack()?;
3315            match field_number {
3316                1 => {
3317                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
3318                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
3319                    }
3320                    self.destination = ::std::option::Option::Some(OutputConfig_oneof_destination::gcs_destination(is.read_message()?));
3321                },
3322                2 => {
3323                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
3324                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
3325                    }
3326                    self.destination = ::std::option::Option::Some(OutputConfig_oneof_destination::bigquery_destination(is.read_message()?));
3327                },
3328                _ => {
3329                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
3330                },
3331            };
3332        }
3333        ::std::result::Result::Ok(())
3334    }
3335
3336    // Compute sizes of nested messages
3337    #[allow(unused_variables)]
3338    fn compute_size(&self) -> u32 {
3339        let mut my_size = 0;
3340        if let ::std::option::Option::Some(ref v) = self.destination {
3341            match v {
3342                &OutputConfig_oneof_destination::gcs_destination(ref v) => {
3343                    let len = v.compute_size();
3344                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
3345                },
3346                &OutputConfig_oneof_destination::bigquery_destination(ref v) => {
3347                    let len = v.compute_size();
3348                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
3349                },
3350            };
3351        }
3352        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
3353        self.cached_size.set(my_size);
3354        my_size
3355    }
3356
3357    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3358        if let ::std::option::Option::Some(ref v) = self.destination {
3359            match v {
3360                &OutputConfig_oneof_destination::gcs_destination(ref v) => {
3361                    os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
3362                    os.write_raw_varint32(v.get_cached_size())?;
3363                    v.write_to_with_cached_sizes(os)?;
3364                },
3365                &OutputConfig_oneof_destination::bigquery_destination(ref v) => {
3366                    os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
3367                    os.write_raw_varint32(v.get_cached_size())?;
3368                    v.write_to_with_cached_sizes(os)?;
3369                },
3370            };
3371        }
3372        os.write_unknown_fields(self.get_unknown_fields())?;
3373        ::std::result::Result::Ok(())
3374    }
3375
3376    fn get_cached_size(&self) -> u32 {
3377        self.cached_size.get()
3378    }
3379
3380    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
3381        &self.unknown_fields
3382    }
3383
3384    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
3385        &mut self.unknown_fields
3386    }
3387
3388    fn as_any(&self) -> &dyn (::std::any::Any) {
3389        self as &dyn (::std::any::Any)
3390    }
3391    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
3392        self as &mut dyn (::std::any::Any)
3393    }
3394    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
3395        self
3396    }
3397
3398    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
3399        Self::descriptor_static()
3400    }
3401
3402    fn new() -> OutputConfig {
3403        OutputConfig::new()
3404    }
3405
3406    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
3407        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
3408        descriptor.get(|| {
3409            let mut fields = ::std::vec::Vec::new();
3410            fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, GcsDestination>(
3411                "gcs_destination",
3412                OutputConfig::has_gcs_destination,
3413                OutputConfig::get_gcs_destination,
3414            ));
3415            fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, BigQueryDestination>(
3416                "bigquery_destination",
3417                OutputConfig::has_bigquery_destination,
3418                OutputConfig::get_bigquery_destination,
3419            ));
3420            ::protobuf::reflect::MessageDescriptor::new_pb_name::<OutputConfig>(
3421                "OutputConfig",
3422                fields,
3423                file_descriptor_proto()
3424            )
3425        })
3426    }
3427
3428    fn default_instance() -> &'static OutputConfig {
3429        static instance: ::protobuf::rt::LazyV2<OutputConfig> = ::protobuf::rt::LazyV2::INIT;
3430        instance.get(OutputConfig::new)
3431    }
3432}
3433
3434impl ::protobuf::Clear for OutputConfig {
3435    fn clear(&mut self) {
3436        self.destination = ::std::option::Option::None;
3437        self.destination = ::std::option::Option::None;
3438        self.unknown_fields.clear();
3439    }
3440}
3441
3442impl ::std::fmt::Debug for OutputConfig {
3443    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3444        ::protobuf::text_format::fmt(self, f)
3445    }
3446}
3447
3448impl ::protobuf::reflect::ProtobufValue for OutputConfig {
3449    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
3450        ::protobuf::reflect::ReflectValueRef::Message(self)
3451    }
3452}
3453
3454#[derive(PartialEq,Clone,Default)]
3455pub struct OutputResult {
3456    // message oneof groups
3457    pub result: ::std::option::Option<OutputResult_oneof_result>,
3458    // special fields
3459    pub unknown_fields: ::protobuf::UnknownFields,
3460    pub cached_size: ::protobuf::CachedSize,
3461}
3462
3463impl<'a> ::std::default::Default for &'a OutputResult {
3464    fn default() -> &'a OutputResult {
3465        <OutputResult as ::protobuf::Message>::default_instance()
3466    }
3467}
3468
3469#[derive(Clone,PartialEq,Debug)]
3470pub enum OutputResult_oneof_result {
3471    gcs_result(GcsOutputResult),
3472}
3473
3474impl OutputResult {
3475    pub fn new() -> OutputResult {
3476        ::std::default::Default::default()
3477    }
3478
3479    // .google.cloud.asset.v1.GcsOutputResult gcs_result = 1;
3480
3481
3482    pub fn get_gcs_result(&self) -> &GcsOutputResult {
3483        match self.result {
3484            ::std::option::Option::Some(OutputResult_oneof_result::gcs_result(ref v)) => v,
3485            _ => <GcsOutputResult as ::protobuf::Message>::default_instance(),
3486        }
3487    }
3488    pub fn clear_gcs_result(&mut self) {
3489        self.result = ::std::option::Option::None;
3490    }
3491
3492    pub fn has_gcs_result(&self) -> bool {
3493        match self.result {
3494            ::std::option::Option::Some(OutputResult_oneof_result::gcs_result(..)) => true,
3495            _ => false,
3496        }
3497    }
3498
3499    // Param is passed by value, moved
3500    pub fn set_gcs_result(&mut self, v: GcsOutputResult) {
3501        self.result = ::std::option::Option::Some(OutputResult_oneof_result::gcs_result(v))
3502    }
3503
3504    // Mutable pointer to the field.
3505    pub fn mut_gcs_result(&mut self) -> &mut GcsOutputResult {
3506        if let ::std::option::Option::Some(OutputResult_oneof_result::gcs_result(_)) = self.result {
3507        } else {
3508            self.result = ::std::option::Option::Some(OutputResult_oneof_result::gcs_result(GcsOutputResult::new()));
3509        }
3510        match self.result {
3511            ::std::option::Option::Some(OutputResult_oneof_result::gcs_result(ref mut v)) => v,
3512            _ => panic!(),
3513        }
3514    }
3515
3516    // Take field
3517    pub fn take_gcs_result(&mut self) -> GcsOutputResult {
3518        if self.has_gcs_result() {
3519            match self.result.take() {
3520                ::std::option::Option::Some(OutputResult_oneof_result::gcs_result(v)) => v,
3521                _ => panic!(),
3522            }
3523        } else {
3524            GcsOutputResult::new()
3525        }
3526    }
3527}
3528
3529impl ::protobuf::Message for OutputResult {
3530    fn is_initialized(&self) -> bool {
3531        if let Some(OutputResult_oneof_result::gcs_result(ref v)) = self.result {
3532            if !v.is_initialized() {
3533                return false;
3534            }
3535        }
3536        true
3537    }
3538
3539    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3540        while !is.eof()? {
3541            let (field_number, wire_type) = is.read_tag_unpack()?;
3542            match field_number {
3543                1 => {
3544                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
3545                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
3546                    }
3547                    self.result = ::std::option::Option::Some(OutputResult_oneof_result::gcs_result(is.read_message()?));
3548                },
3549                _ => {
3550                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
3551                },
3552            };
3553        }
3554        ::std::result::Result::Ok(())
3555    }
3556
3557    // Compute sizes of nested messages
3558    #[allow(unused_variables)]
3559    fn compute_size(&self) -> u32 {
3560        let mut my_size = 0;
3561        if let ::std::option::Option::Some(ref v) = self.result {
3562            match v {
3563                &OutputResult_oneof_result::gcs_result(ref v) => {
3564                    let len = v.compute_size();
3565                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
3566                },
3567            };
3568        }
3569        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
3570        self.cached_size.set(my_size);
3571        my_size
3572    }
3573
3574    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3575        if let ::std::option::Option::Some(ref v) = self.result {
3576            match v {
3577                &OutputResult_oneof_result::gcs_result(ref v) => {
3578                    os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
3579                    os.write_raw_varint32(v.get_cached_size())?;
3580                    v.write_to_with_cached_sizes(os)?;
3581                },
3582            };
3583        }
3584        os.write_unknown_fields(self.get_unknown_fields())?;
3585        ::std::result::Result::Ok(())
3586    }
3587
3588    fn get_cached_size(&self) -> u32 {
3589        self.cached_size.get()
3590    }
3591
3592    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
3593        &self.unknown_fields
3594    }
3595
3596    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
3597        &mut self.unknown_fields
3598    }
3599
3600    fn as_any(&self) -> &dyn (::std::any::Any) {
3601        self as &dyn (::std::any::Any)
3602    }
3603    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
3604        self as &mut dyn (::std::any::Any)
3605    }
3606    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
3607        self
3608    }
3609
3610    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
3611        Self::descriptor_static()
3612    }
3613
3614    fn new() -> OutputResult {
3615        OutputResult::new()
3616    }
3617
3618    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
3619        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
3620        descriptor.get(|| {
3621            let mut fields = ::std::vec::Vec::new();
3622            fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, GcsOutputResult>(
3623                "gcs_result",
3624                OutputResult::has_gcs_result,
3625                OutputResult::get_gcs_result,
3626            ));
3627            ::protobuf::reflect::MessageDescriptor::new_pb_name::<OutputResult>(
3628                "OutputResult",
3629                fields,
3630                file_descriptor_proto()
3631            )
3632        })
3633    }
3634
3635    fn default_instance() -> &'static OutputResult {
3636        static instance: ::protobuf::rt::LazyV2<OutputResult> = ::protobuf::rt::LazyV2::INIT;
3637        instance.get(OutputResult::new)
3638    }
3639}
3640
3641impl ::protobuf::Clear for OutputResult {
3642    fn clear(&mut self) {
3643        self.result = ::std::option::Option::None;
3644        self.unknown_fields.clear();
3645    }
3646}
3647
3648impl ::std::fmt::Debug for OutputResult {
3649    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3650        ::protobuf::text_format::fmt(self, f)
3651    }
3652}
3653
3654impl ::protobuf::reflect::ProtobufValue for OutputResult {
3655    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
3656        ::protobuf::reflect::ReflectValueRef::Message(self)
3657    }
3658}
3659
3660#[derive(PartialEq,Clone,Default)]
3661pub struct GcsOutputResult {
3662    // message fields
3663    pub uris: ::protobuf::RepeatedField<::std::string::String>,
3664    // special fields
3665    pub unknown_fields: ::protobuf::UnknownFields,
3666    pub cached_size: ::protobuf::CachedSize,
3667}
3668
3669impl<'a> ::std::default::Default for &'a GcsOutputResult {
3670    fn default() -> &'a GcsOutputResult {
3671        <GcsOutputResult as ::protobuf::Message>::default_instance()
3672    }
3673}
3674
3675impl GcsOutputResult {
3676    pub fn new() -> GcsOutputResult {
3677        ::std::default::Default::default()
3678    }
3679
3680    // repeated string uris = 1;
3681
3682
3683    pub fn get_uris(&self) -> &[::std::string::String] {
3684        &self.uris
3685    }
3686    pub fn clear_uris(&mut self) {
3687        self.uris.clear();
3688    }
3689
3690    // Param is passed by value, moved
3691    pub fn set_uris(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
3692        self.uris = v;
3693    }
3694
3695    // Mutable pointer to the field.
3696    pub fn mut_uris(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
3697        &mut self.uris
3698    }
3699
3700    // Take field
3701    pub fn take_uris(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
3702        ::std::mem::replace(&mut self.uris, ::protobuf::RepeatedField::new())
3703    }
3704}
3705
3706impl ::protobuf::Message for GcsOutputResult {
3707    fn is_initialized(&self) -> bool {
3708        true
3709    }
3710
3711    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3712        while !is.eof()? {
3713            let (field_number, wire_type) = is.read_tag_unpack()?;
3714            match field_number {
3715                1 => {
3716                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.uris)?;
3717                },
3718                _ => {
3719                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
3720                },
3721            };
3722        }
3723        ::std::result::Result::Ok(())
3724    }
3725
3726    // Compute sizes of nested messages
3727    #[allow(unused_variables)]
3728    fn compute_size(&self) -> u32 {
3729        let mut my_size = 0;
3730        for value in &self.uris {
3731            my_size += ::protobuf::rt::string_size(1, &value);
3732        };
3733        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
3734        self.cached_size.set(my_size);
3735        my_size
3736    }
3737
3738    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3739        for v in &self.uris {
3740            os.write_string(1, &v)?;
3741        };
3742        os.write_unknown_fields(self.get_unknown_fields())?;
3743        ::std::result::Result::Ok(())
3744    }
3745
3746    fn get_cached_size(&self) -> u32 {
3747        self.cached_size.get()
3748    }
3749
3750    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
3751        &self.unknown_fields
3752    }
3753
3754    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
3755        &mut self.unknown_fields
3756    }
3757
3758    fn as_any(&self) -> &dyn (::std::any::Any) {
3759        self as &dyn (::std::any::Any)
3760    }
3761    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
3762        self as &mut dyn (::std::any::Any)
3763    }
3764    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
3765        self
3766    }
3767
3768    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
3769        Self::descriptor_static()
3770    }
3771
3772    fn new() -> GcsOutputResult {
3773        GcsOutputResult::new()
3774    }
3775
3776    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
3777        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
3778        descriptor.get(|| {
3779            let mut fields = ::std::vec::Vec::new();
3780            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
3781                "uris",
3782                |m: &GcsOutputResult| { &m.uris },
3783                |m: &mut GcsOutputResult| { &mut m.uris },
3784            ));
3785            ::protobuf::reflect::MessageDescriptor::new_pb_name::<GcsOutputResult>(
3786                "GcsOutputResult",
3787                fields,
3788                file_descriptor_proto()
3789            )
3790        })
3791    }
3792
3793    fn default_instance() -> &'static GcsOutputResult {
3794        static instance: ::protobuf::rt::LazyV2<GcsOutputResult> = ::protobuf::rt::LazyV2::INIT;
3795        instance.get(GcsOutputResult::new)
3796    }
3797}
3798
3799impl ::protobuf::Clear for GcsOutputResult {
3800    fn clear(&mut self) {
3801        self.uris.clear();
3802        self.unknown_fields.clear();
3803    }
3804}
3805
3806impl ::std::fmt::Debug for GcsOutputResult {
3807    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3808        ::protobuf::text_format::fmt(self, f)
3809    }
3810}
3811
3812impl ::protobuf::reflect::ProtobufValue for GcsOutputResult {
3813    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
3814        ::protobuf::reflect::ReflectValueRef::Message(self)
3815    }
3816}
3817
3818#[derive(PartialEq,Clone,Default)]
3819pub struct GcsDestination {
3820    // message oneof groups
3821    pub object_uri: ::std::option::Option<GcsDestination_oneof_object_uri>,
3822    // special fields
3823    pub unknown_fields: ::protobuf::UnknownFields,
3824    pub cached_size: ::protobuf::CachedSize,
3825}
3826
3827impl<'a> ::std::default::Default for &'a GcsDestination {
3828    fn default() -> &'a GcsDestination {
3829        <GcsDestination as ::protobuf::Message>::default_instance()
3830    }
3831}
3832
3833#[derive(Clone,PartialEq,Debug)]
3834pub enum GcsDestination_oneof_object_uri {
3835    uri(::std::string::String),
3836    uri_prefix(::std::string::String),
3837}
3838
3839impl GcsDestination {
3840    pub fn new() -> GcsDestination {
3841        ::std::default::Default::default()
3842    }
3843
3844    // string uri = 1;
3845
3846
3847    pub fn get_uri(&self) -> &str {
3848        match self.object_uri {
3849            ::std::option::Option::Some(GcsDestination_oneof_object_uri::uri(ref v)) => v,
3850            _ => "",
3851        }
3852    }
3853    pub fn clear_uri(&mut self) {
3854        self.object_uri = ::std::option::Option::None;
3855    }
3856
3857    pub fn has_uri(&self) -> bool {
3858        match self.object_uri {
3859            ::std::option::Option::Some(GcsDestination_oneof_object_uri::uri(..)) => true,
3860            _ => false,
3861        }
3862    }
3863
3864    // Param is passed by value, moved
3865    pub fn set_uri(&mut self, v: ::std::string::String) {
3866        self.object_uri = ::std::option::Option::Some(GcsDestination_oneof_object_uri::uri(v))
3867    }
3868
3869    // Mutable pointer to the field.
3870    pub fn mut_uri(&mut self) -> &mut ::std::string::String {
3871        if let ::std::option::Option::Some(GcsDestination_oneof_object_uri::uri(_)) = self.object_uri {
3872        } else {
3873            self.object_uri = ::std::option::Option::Some(GcsDestination_oneof_object_uri::uri(::std::string::String::new()));
3874        }
3875        match self.object_uri {
3876            ::std::option::Option::Some(GcsDestination_oneof_object_uri::uri(ref mut v)) => v,
3877            _ => panic!(),
3878        }
3879    }
3880
3881    // Take field
3882    pub fn take_uri(&mut self) -> ::std::string::String {
3883        if self.has_uri() {
3884            match self.object_uri.take() {
3885                ::std::option::Option::Some(GcsDestination_oneof_object_uri::uri(v)) => v,
3886                _ => panic!(),
3887            }
3888        } else {
3889            ::std::string::String::new()
3890        }
3891    }
3892
3893    // string uri_prefix = 2;
3894
3895
3896    pub fn get_uri_prefix(&self) -> &str {
3897        match self.object_uri {
3898            ::std::option::Option::Some(GcsDestination_oneof_object_uri::uri_prefix(ref v)) => v,
3899            _ => "",
3900        }
3901    }
3902    pub fn clear_uri_prefix(&mut self) {
3903        self.object_uri = ::std::option::Option::None;
3904    }
3905
3906    pub fn has_uri_prefix(&self) -> bool {
3907        match self.object_uri {
3908            ::std::option::Option::Some(GcsDestination_oneof_object_uri::uri_prefix(..)) => true,
3909            _ => false,
3910        }
3911    }
3912
3913    // Param is passed by value, moved
3914    pub fn set_uri_prefix(&mut self, v: ::std::string::String) {
3915        self.object_uri = ::std::option::Option::Some(GcsDestination_oneof_object_uri::uri_prefix(v))
3916    }
3917
3918    // Mutable pointer to the field.
3919    pub fn mut_uri_prefix(&mut self) -> &mut ::std::string::String {
3920        if let ::std::option::Option::Some(GcsDestination_oneof_object_uri::uri_prefix(_)) = self.object_uri {
3921        } else {
3922            self.object_uri = ::std::option::Option::Some(GcsDestination_oneof_object_uri::uri_prefix(::std::string::String::new()));
3923        }
3924        match self.object_uri {
3925            ::std::option::Option::Some(GcsDestination_oneof_object_uri::uri_prefix(ref mut v)) => v,
3926            _ => panic!(),
3927        }
3928    }
3929
3930    // Take field
3931    pub fn take_uri_prefix(&mut self) -> ::std::string::String {
3932        if self.has_uri_prefix() {
3933            match self.object_uri.take() {
3934                ::std::option::Option::Some(GcsDestination_oneof_object_uri::uri_prefix(v)) => v,
3935                _ => panic!(),
3936            }
3937        } else {
3938            ::std::string::String::new()
3939        }
3940    }
3941}
3942
3943impl ::protobuf::Message for GcsDestination {
3944    fn is_initialized(&self) -> bool {
3945        true
3946    }
3947
3948    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3949        while !is.eof()? {
3950            let (field_number, wire_type) = is.read_tag_unpack()?;
3951            match field_number {
3952                1 => {
3953                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
3954                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
3955                    }
3956                    self.object_uri = ::std::option::Option::Some(GcsDestination_oneof_object_uri::uri(is.read_string()?));
3957                },
3958                2 => {
3959                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
3960                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
3961                    }
3962                    self.object_uri = ::std::option::Option::Some(GcsDestination_oneof_object_uri::uri_prefix(is.read_string()?));
3963                },
3964                _ => {
3965                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
3966                },
3967            };
3968        }
3969        ::std::result::Result::Ok(())
3970    }
3971
3972    // Compute sizes of nested messages
3973    #[allow(unused_variables)]
3974    fn compute_size(&self) -> u32 {
3975        let mut my_size = 0;
3976        if let ::std::option::Option::Some(ref v) = self.object_uri {
3977            match v {
3978                &GcsDestination_oneof_object_uri::uri(ref v) => {
3979                    my_size += ::protobuf::rt::string_size(1, &v);
3980                },
3981                &GcsDestination_oneof_object_uri::uri_prefix(ref v) => {
3982                    my_size += ::protobuf::rt::string_size(2, &v);
3983                },
3984            };
3985        }
3986        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
3987        self.cached_size.set(my_size);
3988        my_size
3989    }
3990
3991    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3992        if let ::std::option::Option::Some(ref v) = self.object_uri {
3993            match v {
3994                &GcsDestination_oneof_object_uri::uri(ref v) => {
3995                    os.write_string(1, v)?;
3996                },
3997                &GcsDestination_oneof_object_uri::uri_prefix(ref v) => {
3998                    os.write_string(2, v)?;
3999                },
4000            };
4001        }
4002        os.write_unknown_fields(self.get_unknown_fields())?;
4003        ::std::result::Result::Ok(())
4004    }
4005
4006    fn get_cached_size(&self) -> u32 {
4007        self.cached_size.get()
4008    }
4009
4010    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
4011        &self.unknown_fields
4012    }
4013
4014    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
4015        &mut self.unknown_fields
4016    }
4017
4018    fn as_any(&self) -> &dyn (::std::any::Any) {
4019        self as &dyn (::std::any::Any)
4020    }
4021    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
4022        self as &mut dyn (::std::any::Any)
4023    }
4024    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
4025        self
4026    }
4027
4028    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
4029        Self::descriptor_static()
4030    }
4031
4032    fn new() -> GcsDestination {
4033        GcsDestination::new()
4034    }
4035
4036    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
4037        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
4038        descriptor.get(|| {
4039            let mut fields = ::std::vec::Vec::new();
4040            fields.push(::protobuf::reflect::accessor::make_singular_string_accessor::<_>(
4041                "uri",
4042                GcsDestination::has_uri,
4043                GcsDestination::get_uri,
4044            ));
4045            fields.push(::protobuf::reflect::accessor::make_singular_string_accessor::<_>(
4046                "uri_prefix",
4047                GcsDestination::has_uri_prefix,
4048                GcsDestination::get_uri_prefix,
4049            ));
4050            ::protobuf::reflect::MessageDescriptor::new_pb_name::<GcsDestination>(
4051                "GcsDestination",
4052                fields,
4053                file_descriptor_proto()
4054            )
4055        })
4056    }
4057
4058    fn default_instance() -> &'static GcsDestination {
4059        static instance: ::protobuf::rt::LazyV2<GcsDestination> = ::protobuf::rt::LazyV2::INIT;
4060        instance.get(GcsDestination::new)
4061    }
4062}
4063
4064impl ::protobuf::Clear for GcsDestination {
4065    fn clear(&mut self) {
4066        self.object_uri = ::std::option::Option::None;
4067        self.object_uri = ::std::option::Option::None;
4068        self.unknown_fields.clear();
4069    }
4070}
4071
4072impl ::std::fmt::Debug for GcsDestination {
4073    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4074        ::protobuf::text_format::fmt(self, f)
4075    }
4076}
4077
4078impl ::protobuf::reflect::ProtobufValue for GcsDestination {
4079    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
4080        ::protobuf::reflect::ReflectValueRef::Message(self)
4081    }
4082}
4083
4084#[derive(PartialEq,Clone,Default)]
4085pub struct BigQueryDestination {
4086    // message fields
4087    pub dataset: ::std::string::String,
4088    pub table: ::std::string::String,
4089    pub force: bool,
4090    pub partition_spec: ::protobuf::SingularPtrField<PartitionSpec>,
4091    pub separate_tables_per_asset_type: bool,
4092    // special fields
4093    pub unknown_fields: ::protobuf::UnknownFields,
4094    pub cached_size: ::protobuf::CachedSize,
4095}
4096
4097impl<'a> ::std::default::Default for &'a BigQueryDestination {
4098    fn default() -> &'a BigQueryDestination {
4099        <BigQueryDestination as ::protobuf::Message>::default_instance()
4100    }
4101}
4102
4103impl BigQueryDestination {
4104    pub fn new() -> BigQueryDestination {
4105        ::std::default::Default::default()
4106    }
4107
4108    // string dataset = 1;
4109
4110
4111    pub fn get_dataset(&self) -> &str {
4112        &self.dataset
4113    }
4114    pub fn clear_dataset(&mut self) {
4115        self.dataset.clear();
4116    }
4117
4118    // Param is passed by value, moved
4119    pub fn set_dataset(&mut self, v: ::std::string::String) {
4120        self.dataset = v;
4121    }
4122
4123    // Mutable pointer to the field.
4124    // If field is not initialized, it is initialized with default value first.
4125    pub fn mut_dataset(&mut self) -> &mut ::std::string::String {
4126        &mut self.dataset
4127    }
4128
4129    // Take field
4130    pub fn take_dataset(&mut self) -> ::std::string::String {
4131        ::std::mem::replace(&mut self.dataset, ::std::string::String::new())
4132    }
4133
4134    // string table = 2;
4135
4136
4137    pub fn get_table(&self) -> &str {
4138        &self.table
4139    }
4140    pub fn clear_table(&mut self) {
4141        self.table.clear();
4142    }
4143
4144    // Param is passed by value, moved
4145    pub fn set_table(&mut self, v: ::std::string::String) {
4146        self.table = v;
4147    }
4148
4149    // Mutable pointer to the field.
4150    // If field is not initialized, it is initialized with default value first.
4151    pub fn mut_table(&mut self) -> &mut ::std::string::String {
4152        &mut self.table
4153    }
4154
4155    // Take field
4156    pub fn take_table(&mut self) -> ::std::string::String {
4157        ::std::mem::replace(&mut self.table, ::std::string::String::new())
4158    }
4159
4160    // bool force = 3;
4161
4162
4163    pub fn get_force(&self) -> bool {
4164        self.force
4165    }
4166    pub fn clear_force(&mut self) {
4167        self.force = false;
4168    }
4169
4170    // Param is passed by value, moved
4171    pub fn set_force(&mut self, v: bool) {
4172        self.force = v;
4173    }
4174
4175    // .google.cloud.asset.v1.PartitionSpec partition_spec = 4;
4176
4177
4178    pub fn get_partition_spec(&self) -> &PartitionSpec {
4179        self.partition_spec.as_ref().unwrap_or_else(|| <PartitionSpec as ::protobuf::Message>::default_instance())
4180    }
4181    pub fn clear_partition_spec(&mut self) {
4182        self.partition_spec.clear();
4183    }
4184
4185    pub fn has_partition_spec(&self) -> bool {
4186        self.partition_spec.is_some()
4187    }
4188
4189    // Param is passed by value, moved
4190    pub fn set_partition_spec(&mut self, v: PartitionSpec) {
4191        self.partition_spec = ::protobuf::SingularPtrField::some(v);
4192    }
4193
4194    // Mutable pointer to the field.
4195    // If field is not initialized, it is initialized with default value first.
4196    pub fn mut_partition_spec(&mut self) -> &mut PartitionSpec {
4197        if self.partition_spec.is_none() {
4198            self.partition_spec.set_default();
4199        }
4200        self.partition_spec.as_mut().unwrap()
4201    }
4202
4203    // Take field
4204    pub fn take_partition_spec(&mut self) -> PartitionSpec {
4205        self.partition_spec.take().unwrap_or_else(|| PartitionSpec::new())
4206    }
4207
4208    // bool separate_tables_per_asset_type = 5;
4209
4210
4211    pub fn get_separate_tables_per_asset_type(&self) -> bool {
4212        self.separate_tables_per_asset_type
4213    }
4214    pub fn clear_separate_tables_per_asset_type(&mut self) {
4215        self.separate_tables_per_asset_type = false;
4216    }
4217
4218    // Param is passed by value, moved
4219    pub fn set_separate_tables_per_asset_type(&mut self, v: bool) {
4220        self.separate_tables_per_asset_type = v;
4221    }
4222}
4223
4224impl ::protobuf::Message for BigQueryDestination {
4225    fn is_initialized(&self) -> bool {
4226        for v in &self.partition_spec {
4227            if !v.is_initialized() {
4228                return false;
4229            }
4230        };
4231        true
4232    }
4233
4234    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
4235        while !is.eof()? {
4236            let (field_number, wire_type) = is.read_tag_unpack()?;
4237            match field_number {
4238                1 => {
4239                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.dataset)?;
4240                },
4241                2 => {
4242                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.table)?;
4243                },
4244                3 => {
4245                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
4246                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
4247                    }
4248                    let tmp = is.read_bool()?;
4249                    self.force = tmp;
4250                },
4251                4 => {
4252                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.partition_spec)?;
4253                },
4254                5 => {
4255                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
4256                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
4257                    }
4258                    let tmp = is.read_bool()?;
4259                    self.separate_tables_per_asset_type = tmp;
4260                },
4261                _ => {
4262                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
4263                },
4264            };
4265        }
4266        ::std::result::Result::Ok(())
4267    }
4268
4269    // Compute sizes of nested messages
4270    #[allow(unused_variables)]
4271    fn compute_size(&self) -> u32 {
4272        let mut my_size = 0;
4273        if !self.dataset.is_empty() {
4274            my_size += ::protobuf::rt::string_size(1, &self.dataset);
4275        }
4276        if !self.table.is_empty() {
4277            my_size += ::protobuf::rt::string_size(2, &self.table);
4278        }
4279        if self.force != false {
4280            my_size += 2;
4281        }
4282        if let Some(ref v) = self.partition_spec.as_ref() {
4283            let len = v.compute_size();
4284            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
4285        }
4286        if self.separate_tables_per_asset_type != false {
4287            my_size += 2;
4288        }
4289        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
4290        self.cached_size.set(my_size);
4291        my_size
4292    }
4293
4294    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
4295        if !self.dataset.is_empty() {
4296            os.write_string(1, &self.dataset)?;
4297        }
4298        if !self.table.is_empty() {
4299            os.write_string(2, &self.table)?;
4300        }
4301        if self.force != false {
4302            os.write_bool(3, self.force)?;
4303        }
4304        if let Some(ref v) = self.partition_spec.as_ref() {
4305            os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
4306            os.write_raw_varint32(v.get_cached_size())?;
4307            v.write_to_with_cached_sizes(os)?;
4308        }
4309        if self.separate_tables_per_asset_type != false {
4310            os.write_bool(5, self.separate_tables_per_asset_type)?;
4311        }
4312        os.write_unknown_fields(self.get_unknown_fields())?;
4313        ::std::result::Result::Ok(())
4314    }
4315
4316    fn get_cached_size(&self) -> u32 {
4317        self.cached_size.get()
4318    }
4319
4320    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
4321        &self.unknown_fields
4322    }
4323
4324    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
4325        &mut self.unknown_fields
4326    }
4327
4328    fn as_any(&self) -> &dyn (::std::any::Any) {
4329        self as &dyn (::std::any::Any)
4330    }
4331    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
4332        self as &mut dyn (::std::any::Any)
4333    }
4334    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
4335        self
4336    }
4337
4338    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
4339        Self::descriptor_static()
4340    }
4341
4342    fn new() -> BigQueryDestination {
4343        BigQueryDestination::new()
4344    }
4345
4346    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
4347        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
4348        descriptor.get(|| {
4349            let mut fields = ::std::vec::Vec::new();
4350            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
4351                "dataset",
4352                |m: &BigQueryDestination| { &m.dataset },
4353                |m: &mut BigQueryDestination| { &mut m.dataset },
4354            ));
4355            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
4356                "table",
4357                |m: &BigQueryDestination| { &m.table },
4358                |m: &mut BigQueryDestination| { &mut m.table },
4359            ));
4360            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
4361                "force",
4362                |m: &BigQueryDestination| { &m.force },
4363                |m: &mut BigQueryDestination| { &mut m.force },
4364            ));
4365            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<PartitionSpec>>(
4366                "partition_spec",
4367                |m: &BigQueryDestination| { &m.partition_spec },
4368                |m: &mut BigQueryDestination| { &mut m.partition_spec },
4369            ));
4370            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
4371                "separate_tables_per_asset_type",
4372                |m: &BigQueryDestination| { &m.separate_tables_per_asset_type },
4373                |m: &mut BigQueryDestination| { &mut m.separate_tables_per_asset_type },
4374            ));
4375            ::protobuf::reflect::MessageDescriptor::new_pb_name::<BigQueryDestination>(
4376                "BigQueryDestination",
4377                fields,
4378                file_descriptor_proto()
4379            )
4380        })
4381    }
4382
4383    fn default_instance() -> &'static BigQueryDestination {
4384        static instance: ::protobuf::rt::LazyV2<BigQueryDestination> = ::protobuf::rt::LazyV2::INIT;
4385        instance.get(BigQueryDestination::new)
4386    }
4387}
4388
4389impl ::protobuf::Clear for BigQueryDestination {
4390    fn clear(&mut self) {
4391        self.dataset.clear();
4392        self.table.clear();
4393        self.force = false;
4394        self.partition_spec.clear();
4395        self.separate_tables_per_asset_type = false;
4396        self.unknown_fields.clear();
4397    }
4398}
4399
4400impl ::std::fmt::Debug for BigQueryDestination {
4401    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4402        ::protobuf::text_format::fmt(self, f)
4403    }
4404}
4405
4406impl ::protobuf::reflect::ProtobufValue for BigQueryDestination {
4407    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
4408        ::protobuf::reflect::ReflectValueRef::Message(self)
4409    }
4410}
4411
4412#[derive(PartialEq,Clone,Default)]
4413pub struct PartitionSpec {
4414    // message fields
4415    pub partition_key: PartitionSpec_PartitionKey,
4416    // special fields
4417    pub unknown_fields: ::protobuf::UnknownFields,
4418    pub cached_size: ::protobuf::CachedSize,
4419}
4420
4421impl<'a> ::std::default::Default for &'a PartitionSpec {
4422    fn default() -> &'a PartitionSpec {
4423        <PartitionSpec as ::protobuf::Message>::default_instance()
4424    }
4425}
4426
4427impl PartitionSpec {
4428    pub fn new() -> PartitionSpec {
4429        ::std::default::Default::default()
4430    }
4431
4432    // .google.cloud.asset.v1.PartitionSpec.PartitionKey partition_key = 1;
4433
4434
4435    pub fn get_partition_key(&self) -> PartitionSpec_PartitionKey {
4436        self.partition_key
4437    }
4438    pub fn clear_partition_key(&mut self) {
4439        self.partition_key = PartitionSpec_PartitionKey::PARTITION_KEY_UNSPECIFIED;
4440    }
4441
4442    // Param is passed by value, moved
4443    pub fn set_partition_key(&mut self, v: PartitionSpec_PartitionKey) {
4444        self.partition_key = v;
4445    }
4446}
4447
4448impl ::protobuf::Message for PartitionSpec {
4449    fn is_initialized(&self) -> bool {
4450        true
4451    }
4452
4453    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
4454        while !is.eof()? {
4455            let (field_number, wire_type) = is.read_tag_unpack()?;
4456            match field_number {
4457                1 => {
4458                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.partition_key, 1, &mut self.unknown_fields)?
4459                },
4460                _ => {
4461                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
4462                },
4463            };
4464        }
4465        ::std::result::Result::Ok(())
4466    }
4467
4468    // Compute sizes of nested messages
4469    #[allow(unused_variables)]
4470    fn compute_size(&self) -> u32 {
4471        let mut my_size = 0;
4472        if self.partition_key != PartitionSpec_PartitionKey::PARTITION_KEY_UNSPECIFIED {
4473            my_size += ::protobuf::rt::enum_size(1, self.partition_key);
4474        }
4475        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
4476        self.cached_size.set(my_size);
4477        my_size
4478    }
4479
4480    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
4481        if self.partition_key != PartitionSpec_PartitionKey::PARTITION_KEY_UNSPECIFIED {
4482            os.write_enum(1, ::protobuf::ProtobufEnum::value(&self.partition_key))?;
4483        }
4484        os.write_unknown_fields(self.get_unknown_fields())?;
4485        ::std::result::Result::Ok(())
4486    }
4487
4488    fn get_cached_size(&self) -> u32 {
4489        self.cached_size.get()
4490    }
4491
4492    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
4493        &self.unknown_fields
4494    }
4495
4496    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
4497        &mut self.unknown_fields
4498    }
4499
4500    fn as_any(&self) -> &dyn (::std::any::Any) {
4501        self as &dyn (::std::any::Any)
4502    }
4503    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
4504        self as &mut dyn (::std::any::Any)
4505    }
4506    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
4507        self
4508    }
4509
4510    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
4511        Self::descriptor_static()
4512    }
4513
4514    fn new() -> PartitionSpec {
4515        PartitionSpec::new()
4516    }
4517
4518    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
4519        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
4520        descriptor.get(|| {
4521            let mut fields = ::std::vec::Vec::new();
4522            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<PartitionSpec_PartitionKey>>(
4523                "partition_key",
4524                |m: &PartitionSpec| { &m.partition_key },
4525                |m: &mut PartitionSpec| { &mut m.partition_key },
4526            ));
4527            ::protobuf::reflect::MessageDescriptor::new_pb_name::<PartitionSpec>(
4528                "PartitionSpec",
4529                fields,
4530                file_descriptor_proto()
4531            )
4532        })
4533    }
4534
4535    fn default_instance() -> &'static PartitionSpec {
4536        static instance: ::protobuf::rt::LazyV2<PartitionSpec> = ::protobuf::rt::LazyV2::INIT;
4537        instance.get(PartitionSpec::new)
4538    }
4539}
4540
4541impl ::protobuf::Clear for PartitionSpec {
4542    fn clear(&mut self) {
4543        self.partition_key = PartitionSpec_PartitionKey::PARTITION_KEY_UNSPECIFIED;
4544        self.unknown_fields.clear();
4545    }
4546}
4547
4548impl ::std::fmt::Debug for PartitionSpec {
4549    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4550        ::protobuf::text_format::fmt(self, f)
4551    }
4552}
4553
4554impl ::protobuf::reflect::ProtobufValue for PartitionSpec {
4555    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
4556        ::protobuf::reflect::ReflectValueRef::Message(self)
4557    }
4558}
4559
4560#[derive(Clone,PartialEq,Eq,Debug,Hash)]
4561pub enum PartitionSpec_PartitionKey {
4562    PARTITION_KEY_UNSPECIFIED = 0,
4563    READ_TIME = 1,
4564    REQUEST_TIME = 2,
4565}
4566
4567impl ::protobuf::ProtobufEnum for PartitionSpec_PartitionKey {
4568    fn value(&self) -> i32 {
4569        *self as i32
4570    }
4571
4572    fn from_i32(value: i32) -> ::std::option::Option<PartitionSpec_PartitionKey> {
4573        match value {
4574            0 => ::std::option::Option::Some(PartitionSpec_PartitionKey::PARTITION_KEY_UNSPECIFIED),
4575            1 => ::std::option::Option::Some(PartitionSpec_PartitionKey::READ_TIME),
4576            2 => ::std::option::Option::Some(PartitionSpec_PartitionKey::REQUEST_TIME),
4577            _ => ::std::option::Option::None
4578        }
4579    }
4580
4581    fn values() -> &'static [Self] {
4582        static values: &'static [PartitionSpec_PartitionKey] = &[
4583            PartitionSpec_PartitionKey::PARTITION_KEY_UNSPECIFIED,
4584            PartitionSpec_PartitionKey::READ_TIME,
4585            PartitionSpec_PartitionKey::REQUEST_TIME,
4586        ];
4587        values
4588    }
4589
4590    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
4591        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
4592        descriptor.get(|| {
4593            ::protobuf::reflect::EnumDescriptor::new_pb_name::<PartitionSpec_PartitionKey>("PartitionSpec.PartitionKey", file_descriptor_proto())
4594        })
4595    }
4596}
4597
4598impl ::std::marker::Copy for PartitionSpec_PartitionKey {
4599}
4600
4601impl ::std::default::Default for PartitionSpec_PartitionKey {
4602    fn default() -> Self {
4603        PartitionSpec_PartitionKey::PARTITION_KEY_UNSPECIFIED
4604    }
4605}
4606
4607impl ::protobuf::reflect::ProtobufValue for PartitionSpec_PartitionKey {
4608    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
4609        ::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
4610    }
4611}
4612
4613#[derive(PartialEq,Clone,Default)]
4614pub struct PubsubDestination {
4615    // message fields
4616    pub topic: ::std::string::String,
4617    // special fields
4618    pub unknown_fields: ::protobuf::UnknownFields,
4619    pub cached_size: ::protobuf::CachedSize,
4620}
4621
4622impl<'a> ::std::default::Default for &'a PubsubDestination {
4623    fn default() -> &'a PubsubDestination {
4624        <PubsubDestination as ::protobuf::Message>::default_instance()
4625    }
4626}
4627
4628impl PubsubDestination {
4629    pub fn new() -> PubsubDestination {
4630        ::std::default::Default::default()
4631    }
4632
4633    // string topic = 1;
4634
4635
4636    pub fn get_topic(&self) -> &str {
4637        &self.topic
4638    }
4639    pub fn clear_topic(&mut self) {
4640        self.topic.clear();
4641    }
4642
4643    // Param is passed by value, moved
4644    pub fn set_topic(&mut self, v: ::std::string::String) {
4645        self.topic = v;
4646    }
4647
4648    // Mutable pointer to the field.
4649    // If field is not initialized, it is initialized with default value first.
4650    pub fn mut_topic(&mut self) -> &mut ::std::string::String {
4651        &mut self.topic
4652    }
4653
4654    // Take field
4655    pub fn take_topic(&mut self) -> ::std::string::String {
4656        ::std::mem::replace(&mut self.topic, ::std::string::String::new())
4657    }
4658}
4659
4660impl ::protobuf::Message for PubsubDestination {
4661    fn is_initialized(&self) -> bool {
4662        true
4663    }
4664
4665    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
4666        while !is.eof()? {
4667            let (field_number, wire_type) = is.read_tag_unpack()?;
4668            match field_number {
4669                1 => {
4670                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.topic)?;
4671                },
4672                _ => {
4673                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
4674                },
4675            };
4676        }
4677        ::std::result::Result::Ok(())
4678    }
4679
4680    // Compute sizes of nested messages
4681    #[allow(unused_variables)]
4682    fn compute_size(&self) -> u32 {
4683        let mut my_size = 0;
4684        if !self.topic.is_empty() {
4685            my_size += ::protobuf::rt::string_size(1, &self.topic);
4686        }
4687        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
4688        self.cached_size.set(my_size);
4689        my_size
4690    }
4691
4692    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
4693        if !self.topic.is_empty() {
4694            os.write_string(1, &self.topic)?;
4695        }
4696        os.write_unknown_fields(self.get_unknown_fields())?;
4697        ::std::result::Result::Ok(())
4698    }
4699
4700    fn get_cached_size(&self) -> u32 {
4701        self.cached_size.get()
4702    }
4703
4704    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
4705        &self.unknown_fields
4706    }
4707
4708    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
4709        &mut self.unknown_fields
4710    }
4711
4712    fn as_any(&self) -> &dyn (::std::any::Any) {
4713        self as &dyn (::std::any::Any)
4714    }
4715    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
4716        self as &mut dyn (::std::any::Any)
4717    }
4718    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
4719        self
4720    }
4721
4722    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
4723        Self::descriptor_static()
4724    }
4725
4726    fn new() -> PubsubDestination {
4727        PubsubDestination::new()
4728    }
4729
4730    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
4731        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
4732        descriptor.get(|| {
4733            let mut fields = ::std::vec::Vec::new();
4734            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
4735                "topic",
4736                |m: &PubsubDestination| { &m.topic },
4737                |m: &mut PubsubDestination| { &mut m.topic },
4738            ));
4739            ::protobuf::reflect::MessageDescriptor::new_pb_name::<PubsubDestination>(
4740                "PubsubDestination",
4741                fields,
4742                file_descriptor_proto()
4743            )
4744        })
4745    }
4746
4747    fn default_instance() -> &'static PubsubDestination {
4748        static instance: ::protobuf::rt::LazyV2<PubsubDestination> = ::protobuf::rt::LazyV2::INIT;
4749        instance.get(PubsubDestination::new)
4750    }
4751}
4752
4753impl ::protobuf::Clear for PubsubDestination {
4754    fn clear(&mut self) {
4755        self.topic.clear();
4756        self.unknown_fields.clear();
4757    }
4758}
4759
4760impl ::std::fmt::Debug for PubsubDestination {
4761    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4762        ::protobuf::text_format::fmt(self, f)
4763    }
4764}
4765
4766impl ::protobuf::reflect::ProtobufValue for PubsubDestination {
4767    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
4768        ::protobuf::reflect::ReflectValueRef::Message(self)
4769    }
4770}
4771
4772#[derive(PartialEq,Clone,Default)]
4773pub struct FeedOutputConfig {
4774    // message oneof groups
4775    pub destination: ::std::option::Option<FeedOutputConfig_oneof_destination>,
4776    // special fields
4777    pub unknown_fields: ::protobuf::UnknownFields,
4778    pub cached_size: ::protobuf::CachedSize,
4779}
4780
4781impl<'a> ::std::default::Default for &'a FeedOutputConfig {
4782    fn default() -> &'a FeedOutputConfig {
4783        <FeedOutputConfig as ::protobuf::Message>::default_instance()
4784    }
4785}
4786
4787#[derive(Clone,PartialEq,Debug)]
4788pub enum FeedOutputConfig_oneof_destination {
4789    pubsub_destination(PubsubDestination),
4790}
4791
4792impl FeedOutputConfig {
4793    pub fn new() -> FeedOutputConfig {
4794        ::std::default::Default::default()
4795    }
4796
4797    // .google.cloud.asset.v1.PubsubDestination pubsub_destination = 1;
4798
4799
4800    pub fn get_pubsub_destination(&self) -> &PubsubDestination {
4801        match self.destination {
4802            ::std::option::Option::Some(FeedOutputConfig_oneof_destination::pubsub_destination(ref v)) => v,
4803            _ => <PubsubDestination as ::protobuf::Message>::default_instance(),
4804        }
4805    }
4806    pub fn clear_pubsub_destination(&mut self) {
4807        self.destination = ::std::option::Option::None;
4808    }
4809
4810    pub fn has_pubsub_destination(&self) -> bool {
4811        match self.destination {
4812            ::std::option::Option::Some(FeedOutputConfig_oneof_destination::pubsub_destination(..)) => true,
4813            _ => false,
4814        }
4815    }
4816
4817    // Param is passed by value, moved
4818    pub fn set_pubsub_destination(&mut self, v: PubsubDestination) {
4819        self.destination = ::std::option::Option::Some(FeedOutputConfig_oneof_destination::pubsub_destination(v))
4820    }
4821
4822    // Mutable pointer to the field.
4823    pub fn mut_pubsub_destination(&mut self) -> &mut PubsubDestination {
4824        if let ::std::option::Option::Some(FeedOutputConfig_oneof_destination::pubsub_destination(_)) = self.destination {
4825        } else {
4826            self.destination = ::std::option::Option::Some(FeedOutputConfig_oneof_destination::pubsub_destination(PubsubDestination::new()));
4827        }
4828        match self.destination {
4829            ::std::option::Option::Some(FeedOutputConfig_oneof_destination::pubsub_destination(ref mut v)) => v,
4830            _ => panic!(),
4831        }
4832    }
4833
4834    // Take field
4835    pub fn take_pubsub_destination(&mut self) -> PubsubDestination {
4836        if self.has_pubsub_destination() {
4837            match self.destination.take() {
4838                ::std::option::Option::Some(FeedOutputConfig_oneof_destination::pubsub_destination(v)) => v,
4839                _ => panic!(),
4840            }
4841        } else {
4842            PubsubDestination::new()
4843        }
4844    }
4845}
4846
4847impl ::protobuf::Message for FeedOutputConfig {
4848    fn is_initialized(&self) -> bool {
4849        if let Some(FeedOutputConfig_oneof_destination::pubsub_destination(ref v)) = self.destination {
4850            if !v.is_initialized() {
4851                return false;
4852            }
4853        }
4854        true
4855    }
4856
4857    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
4858        while !is.eof()? {
4859            let (field_number, wire_type) = is.read_tag_unpack()?;
4860            match field_number {
4861                1 => {
4862                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
4863                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
4864                    }
4865                    self.destination = ::std::option::Option::Some(FeedOutputConfig_oneof_destination::pubsub_destination(is.read_message()?));
4866                },
4867                _ => {
4868                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
4869                },
4870            };
4871        }
4872        ::std::result::Result::Ok(())
4873    }
4874
4875    // Compute sizes of nested messages
4876    #[allow(unused_variables)]
4877    fn compute_size(&self) -> u32 {
4878        let mut my_size = 0;
4879        if let ::std::option::Option::Some(ref v) = self.destination {
4880            match v {
4881                &FeedOutputConfig_oneof_destination::pubsub_destination(ref v) => {
4882                    let len = v.compute_size();
4883                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
4884                },
4885            };
4886        }
4887        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
4888        self.cached_size.set(my_size);
4889        my_size
4890    }
4891
4892    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
4893        if let ::std::option::Option::Some(ref v) = self.destination {
4894            match v {
4895                &FeedOutputConfig_oneof_destination::pubsub_destination(ref v) => {
4896                    os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
4897                    os.write_raw_varint32(v.get_cached_size())?;
4898                    v.write_to_with_cached_sizes(os)?;
4899                },
4900            };
4901        }
4902        os.write_unknown_fields(self.get_unknown_fields())?;
4903        ::std::result::Result::Ok(())
4904    }
4905
4906    fn get_cached_size(&self) -> u32 {
4907        self.cached_size.get()
4908    }
4909
4910    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
4911        &self.unknown_fields
4912    }
4913
4914    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
4915        &mut self.unknown_fields
4916    }
4917
4918    fn as_any(&self) -> &dyn (::std::any::Any) {
4919        self as &dyn (::std::any::Any)
4920    }
4921    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
4922        self as &mut dyn (::std::any::Any)
4923    }
4924    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
4925        self
4926    }
4927
4928    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
4929        Self::descriptor_static()
4930    }
4931
4932    fn new() -> FeedOutputConfig {
4933        FeedOutputConfig::new()
4934    }
4935
4936    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
4937        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
4938        descriptor.get(|| {
4939            let mut fields = ::std::vec::Vec::new();
4940            fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, PubsubDestination>(
4941                "pubsub_destination",
4942                FeedOutputConfig::has_pubsub_destination,
4943                FeedOutputConfig::get_pubsub_destination,
4944            ));
4945            ::protobuf::reflect::MessageDescriptor::new_pb_name::<FeedOutputConfig>(
4946                "FeedOutputConfig",
4947                fields,
4948                file_descriptor_proto()
4949            )
4950        })
4951    }
4952
4953    fn default_instance() -> &'static FeedOutputConfig {
4954        static instance: ::protobuf::rt::LazyV2<FeedOutputConfig> = ::protobuf::rt::LazyV2::INIT;
4955        instance.get(FeedOutputConfig::new)
4956    }
4957}
4958
4959impl ::protobuf::Clear for FeedOutputConfig {
4960    fn clear(&mut self) {
4961        self.destination = ::std::option::Option::None;
4962        self.unknown_fields.clear();
4963    }
4964}
4965
4966impl ::std::fmt::Debug for FeedOutputConfig {
4967    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4968        ::protobuf::text_format::fmt(self, f)
4969    }
4970}
4971
4972impl ::protobuf::reflect::ProtobufValue for FeedOutputConfig {
4973    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
4974        ::protobuf::reflect::ReflectValueRef::Message(self)
4975    }
4976}
4977
4978#[derive(PartialEq,Clone,Default)]
4979pub struct Feed {
4980    // message fields
4981    pub name: ::std::string::String,
4982    pub asset_names: ::protobuf::RepeatedField<::std::string::String>,
4983    pub asset_types: ::protobuf::RepeatedField<::std::string::String>,
4984    pub content_type: ContentType,
4985    pub feed_output_config: ::protobuf::SingularPtrField<FeedOutputConfig>,
4986    pub condition: ::protobuf::SingularPtrField<super::expr::Expr>,
4987    pub relationship_types: ::protobuf::RepeatedField<::std::string::String>,
4988    // special fields
4989    pub unknown_fields: ::protobuf::UnknownFields,
4990    pub cached_size: ::protobuf::CachedSize,
4991}
4992
4993impl<'a> ::std::default::Default for &'a Feed {
4994    fn default() -> &'a Feed {
4995        <Feed as ::protobuf::Message>::default_instance()
4996    }
4997}
4998
4999impl Feed {
5000    pub fn new() -> Feed {
5001        ::std::default::Default::default()
5002    }
5003
5004    // string name = 1;
5005
5006
5007    pub fn get_name(&self) -> &str {
5008        &self.name
5009    }
5010    pub fn clear_name(&mut self) {
5011        self.name.clear();
5012    }
5013
5014    // Param is passed by value, moved
5015    pub fn set_name(&mut self, v: ::std::string::String) {
5016        self.name = v;
5017    }
5018
5019    // Mutable pointer to the field.
5020    // If field is not initialized, it is initialized with default value first.
5021    pub fn mut_name(&mut self) -> &mut ::std::string::String {
5022        &mut self.name
5023    }
5024
5025    // Take field
5026    pub fn take_name(&mut self) -> ::std::string::String {
5027        ::std::mem::replace(&mut self.name, ::std::string::String::new())
5028    }
5029
5030    // repeated string asset_names = 2;
5031
5032
5033    pub fn get_asset_names(&self) -> &[::std::string::String] {
5034        &self.asset_names
5035    }
5036    pub fn clear_asset_names(&mut self) {
5037        self.asset_names.clear();
5038    }
5039
5040    // Param is passed by value, moved
5041    pub fn set_asset_names(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
5042        self.asset_names = v;
5043    }
5044
5045    // Mutable pointer to the field.
5046    pub fn mut_asset_names(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
5047        &mut self.asset_names
5048    }
5049
5050    // Take field
5051    pub fn take_asset_names(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
5052        ::std::mem::replace(&mut self.asset_names, ::protobuf::RepeatedField::new())
5053    }
5054
5055    // repeated string asset_types = 3;
5056
5057
5058    pub fn get_asset_types(&self) -> &[::std::string::String] {
5059        &self.asset_types
5060    }
5061    pub fn clear_asset_types(&mut self) {
5062        self.asset_types.clear();
5063    }
5064
5065    // Param is passed by value, moved
5066    pub fn set_asset_types(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
5067        self.asset_types = v;
5068    }
5069
5070    // Mutable pointer to the field.
5071    pub fn mut_asset_types(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
5072        &mut self.asset_types
5073    }
5074
5075    // Take field
5076    pub fn take_asset_types(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
5077        ::std::mem::replace(&mut self.asset_types, ::protobuf::RepeatedField::new())
5078    }
5079
5080    // .google.cloud.asset.v1.ContentType content_type = 4;
5081
5082
5083    pub fn get_content_type(&self) -> ContentType {
5084        self.content_type
5085    }
5086    pub fn clear_content_type(&mut self) {
5087        self.content_type = ContentType::CONTENT_TYPE_UNSPECIFIED;
5088    }
5089
5090    // Param is passed by value, moved
5091    pub fn set_content_type(&mut self, v: ContentType) {
5092        self.content_type = v;
5093    }
5094
5095    // .google.cloud.asset.v1.FeedOutputConfig feed_output_config = 5;
5096
5097
5098    pub fn get_feed_output_config(&self) -> &FeedOutputConfig {
5099        self.feed_output_config.as_ref().unwrap_or_else(|| <FeedOutputConfig as ::protobuf::Message>::default_instance())
5100    }
5101    pub fn clear_feed_output_config(&mut self) {
5102        self.feed_output_config.clear();
5103    }
5104
5105    pub fn has_feed_output_config(&self) -> bool {
5106        self.feed_output_config.is_some()
5107    }
5108
5109    // Param is passed by value, moved
5110    pub fn set_feed_output_config(&mut self, v: FeedOutputConfig) {
5111        self.feed_output_config = ::protobuf::SingularPtrField::some(v);
5112    }
5113
5114    // Mutable pointer to the field.
5115    // If field is not initialized, it is initialized with default value first.
5116    pub fn mut_feed_output_config(&mut self) -> &mut FeedOutputConfig {
5117        if self.feed_output_config.is_none() {
5118            self.feed_output_config.set_default();
5119        }
5120        self.feed_output_config.as_mut().unwrap()
5121    }
5122
5123    // Take field
5124    pub fn take_feed_output_config(&mut self) -> FeedOutputConfig {
5125        self.feed_output_config.take().unwrap_or_else(|| FeedOutputConfig::new())
5126    }
5127
5128    // .google.type.Expr condition = 6;
5129
5130
5131    pub fn get_condition(&self) -> &super::expr::Expr {
5132        self.condition.as_ref().unwrap_or_else(|| <super::expr::Expr as ::protobuf::Message>::default_instance())
5133    }
5134    pub fn clear_condition(&mut self) {
5135        self.condition.clear();
5136    }
5137
5138    pub fn has_condition(&self) -> bool {
5139        self.condition.is_some()
5140    }
5141
5142    // Param is passed by value, moved
5143    pub fn set_condition(&mut self, v: super::expr::Expr) {
5144        self.condition = ::protobuf::SingularPtrField::some(v);
5145    }
5146
5147    // Mutable pointer to the field.
5148    // If field is not initialized, it is initialized with default value first.
5149    pub fn mut_condition(&mut self) -> &mut super::expr::Expr {
5150        if self.condition.is_none() {
5151            self.condition.set_default();
5152        }
5153        self.condition.as_mut().unwrap()
5154    }
5155
5156    // Take field
5157    pub fn take_condition(&mut self) -> super::expr::Expr {
5158        self.condition.take().unwrap_or_else(|| super::expr::Expr::new())
5159    }
5160
5161    // repeated string relationship_types = 7;
5162
5163
5164    pub fn get_relationship_types(&self) -> &[::std::string::String] {
5165        &self.relationship_types
5166    }
5167    pub fn clear_relationship_types(&mut self) {
5168        self.relationship_types.clear();
5169    }
5170
5171    // Param is passed by value, moved
5172    pub fn set_relationship_types(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
5173        self.relationship_types = v;
5174    }
5175
5176    // Mutable pointer to the field.
5177    pub fn mut_relationship_types(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
5178        &mut self.relationship_types
5179    }
5180
5181    // Take field
5182    pub fn take_relationship_types(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
5183        ::std::mem::replace(&mut self.relationship_types, ::protobuf::RepeatedField::new())
5184    }
5185}
5186
5187impl ::protobuf::Message for Feed {
5188    fn is_initialized(&self) -> bool {
5189        for v in &self.feed_output_config {
5190            if !v.is_initialized() {
5191                return false;
5192            }
5193        };
5194        for v in &self.condition {
5195            if !v.is_initialized() {
5196                return false;
5197            }
5198        };
5199        true
5200    }
5201
5202    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
5203        while !is.eof()? {
5204            let (field_number, wire_type) = is.read_tag_unpack()?;
5205            match field_number {
5206                1 => {
5207                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
5208                },
5209                2 => {
5210                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.asset_names)?;
5211                },
5212                3 => {
5213                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.asset_types)?;
5214                },
5215                4 => {
5216                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.content_type, 4, &mut self.unknown_fields)?
5217                },
5218                5 => {
5219                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.feed_output_config)?;
5220                },
5221                6 => {
5222                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.condition)?;
5223                },
5224                7 => {
5225                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.relationship_types)?;
5226                },
5227                _ => {
5228                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
5229                },
5230            };
5231        }
5232        ::std::result::Result::Ok(())
5233    }
5234
5235    // Compute sizes of nested messages
5236    #[allow(unused_variables)]
5237    fn compute_size(&self) -> u32 {
5238        let mut my_size = 0;
5239        if !self.name.is_empty() {
5240            my_size += ::protobuf::rt::string_size(1, &self.name);
5241        }
5242        for value in &self.asset_names {
5243            my_size += ::protobuf::rt::string_size(2, &value);
5244        };
5245        for value in &self.asset_types {
5246            my_size += ::protobuf::rt::string_size(3, &value);
5247        };
5248        if self.content_type != ContentType::CONTENT_TYPE_UNSPECIFIED {
5249            my_size += ::protobuf::rt::enum_size(4, self.content_type);
5250        }
5251        if let Some(ref v) = self.feed_output_config.as_ref() {
5252            let len = v.compute_size();
5253            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
5254        }
5255        if let Some(ref v) = self.condition.as_ref() {
5256            let len = v.compute_size();
5257            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
5258        }
5259        for value in &self.relationship_types {
5260            my_size += ::protobuf::rt::string_size(7, &value);
5261        };
5262        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
5263        self.cached_size.set(my_size);
5264        my_size
5265    }
5266
5267    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
5268        if !self.name.is_empty() {
5269            os.write_string(1, &self.name)?;
5270        }
5271        for v in &self.asset_names {
5272            os.write_string(2, &v)?;
5273        };
5274        for v in &self.asset_types {
5275            os.write_string(3, &v)?;
5276        };
5277        if self.content_type != ContentType::CONTENT_TYPE_UNSPECIFIED {
5278            os.write_enum(4, ::protobuf::ProtobufEnum::value(&self.content_type))?;
5279        }
5280        if let Some(ref v) = self.feed_output_config.as_ref() {
5281            os.write_tag(5, ::protobuf::wire_format::WireTypeLengthDelimited)?;
5282            os.write_raw_varint32(v.get_cached_size())?;
5283            v.write_to_with_cached_sizes(os)?;
5284        }
5285        if let Some(ref v) = self.condition.as_ref() {
5286            os.write_tag(6, ::protobuf::wire_format::WireTypeLengthDelimited)?;
5287            os.write_raw_varint32(v.get_cached_size())?;
5288            v.write_to_with_cached_sizes(os)?;
5289        }
5290        for v in &self.relationship_types {
5291            os.write_string(7, &v)?;
5292        };
5293        os.write_unknown_fields(self.get_unknown_fields())?;
5294        ::std::result::Result::Ok(())
5295    }
5296
5297    fn get_cached_size(&self) -> u32 {
5298        self.cached_size.get()
5299    }
5300
5301    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
5302        &self.unknown_fields
5303    }
5304
5305    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
5306        &mut self.unknown_fields
5307    }
5308
5309    fn as_any(&self) -> &dyn (::std::any::Any) {
5310        self as &dyn (::std::any::Any)
5311    }
5312    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
5313        self as &mut dyn (::std::any::Any)
5314    }
5315    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
5316        self
5317    }
5318
5319    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
5320        Self::descriptor_static()
5321    }
5322
5323    fn new() -> Feed {
5324        Feed::new()
5325    }
5326
5327    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
5328        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
5329        descriptor.get(|| {
5330            let mut fields = ::std::vec::Vec::new();
5331            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
5332                "name",
5333                |m: &Feed| { &m.name },
5334                |m: &mut Feed| { &mut m.name },
5335            ));
5336            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
5337                "asset_names",
5338                |m: &Feed| { &m.asset_names },
5339                |m: &mut Feed| { &mut m.asset_names },
5340            ));
5341            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
5342                "asset_types",
5343                |m: &Feed| { &m.asset_types },
5344                |m: &mut Feed| { &mut m.asset_types },
5345            ));
5346            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<ContentType>>(
5347                "content_type",
5348                |m: &Feed| { &m.content_type },
5349                |m: &mut Feed| { &mut m.content_type },
5350            ));
5351            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<FeedOutputConfig>>(
5352                "feed_output_config",
5353                |m: &Feed| { &m.feed_output_config },
5354                |m: &mut Feed| { &mut m.feed_output_config },
5355            ));
5356            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::expr::Expr>>(
5357                "condition",
5358                |m: &Feed| { &m.condition },
5359                |m: &mut Feed| { &mut m.condition },
5360            ));
5361            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
5362                "relationship_types",
5363                |m: &Feed| { &m.relationship_types },
5364                |m: &mut Feed| { &mut m.relationship_types },
5365            ));
5366            ::protobuf::reflect::MessageDescriptor::new_pb_name::<Feed>(
5367                "Feed",
5368                fields,
5369                file_descriptor_proto()
5370            )
5371        })
5372    }
5373
5374    fn default_instance() -> &'static Feed {
5375        static instance: ::protobuf::rt::LazyV2<Feed> = ::protobuf::rt::LazyV2::INIT;
5376        instance.get(Feed::new)
5377    }
5378}
5379
5380impl ::protobuf::Clear for Feed {
5381    fn clear(&mut self) {
5382        self.name.clear();
5383        self.asset_names.clear();
5384        self.asset_types.clear();
5385        self.content_type = ContentType::CONTENT_TYPE_UNSPECIFIED;
5386        self.feed_output_config.clear();
5387        self.condition.clear();
5388        self.relationship_types.clear();
5389        self.unknown_fields.clear();
5390    }
5391}
5392
5393impl ::std::fmt::Debug for Feed {
5394    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5395        ::protobuf::text_format::fmt(self, f)
5396    }
5397}
5398
5399impl ::protobuf::reflect::ProtobufValue for Feed {
5400    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
5401        ::protobuf::reflect::ReflectValueRef::Message(self)
5402    }
5403}
5404
5405#[derive(PartialEq,Clone,Default)]
5406pub struct SearchAllResourcesRequest {
5407    // message fields
5408    pub scope: ::std::string::String,
5409    pub query: ::std::string::String,
5410    pub asset_types: ::protobuf::RepeatedField<::std::string::String>,
5411    pub page_size: i32,
5412    pub page_token: ::std::string::String,
5413    pub order_by: ::std::string::String,
5414    pub read_mask: ::protobuf::SingularPtrField<::protobuf::well_known_types::FieldMask>,
5415    // special fields
5416    pub unknown_fields: ::protobuf::UnknownFields,
5417    pub cached_size: ::protobuf::CachedSize,
5418}
5419
5420impl<'a> ::std::default::Default for &'a SearchAllResourcesRequest {
5421    fn default() -> &'a SearchAllResourcesRequest {
5422        <SearchAllResourcesRequest as ::protobuf::Message>::default_instance()
5423    }
5424}
5425
5426impl SearchAllResourcesRequest {
5427    pub fn new() -> SearchAllResourcesRequest {
5428        ::std::default::Default::default()
5429    }
5430
5431    // string scope = 1;
5432
5433
5434    pub fn get_scope(&self) -> &str {
5435        &self.scope
5436    }
5437    pub fn clear_scope(&mut self) {
5438        self.scope.clear();
5439    }
5440
5441    // Param is passed by value, moved
5442    pub fn set_scope(&mut self, v: ::std::string::String) {
5443        self.scope = v;
5444    }
5445
5446    // Mutable pointer to the field.
5447    // If field is not initialized, it is initialized with default value first.
5448    pub fn mut_scope(&mut self) -> &mut ::std::string::String {
5449        &mut self.scope
5450    }
5451
5452    // Take field
5453    pub fn take_scope(&mut self) -> ::std::string::String {
5454        ::std::mem::replace(&mut self.scope, ::std::string::String::new())
5455    }
5456
5457    // string query = 2;
5458
5459
5460    pub fn get_query(&self) -> &str {
5461        &self.query
5462    }
5463    pub fn clear_query(&mut self) {
5464        self.query.clear();
5465    }
5466
5467    // Param is passed by value, moved
5468    pub fn set_query(&mut self, v: ::std::string::String) {
5469        self.query = v;
5470    }
5471
5472    // Mutable pointer to the field.
5473    // If field is not initialized, it is initialized with default value first.
5474    pub fn mut_query(&mut self) -> &mut ::std::string::String {
5475        &mut self.query
5476    }
5477
5478    // Take field
5479    pub fn take_query(&mut self) -> ::std::string::String {
5480        ::std::mem::replace(&mut self.query, ::std::string::String::new())
5481    }
5482
5483    // repeated string asset_types = 3;
5484
5485
5486    pub fn get_asset_types(&self) -> &[::std::string::String] {
5487        &self.asset_types
5488    }
5489    pub fn clear_asset_types(&mut self) {
5490        self.asset_types.clear();
5491    }
5492
5493    // Param is passed by value, moved
5494    pub fn set_asset_types(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
5495        self.asset_types = v;
5496    }
5497
5498    // Mutable pointer to the field.
5499    pub fn mut_asset_types(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
5500        &mut self.asset_types
5501    }
5502
5503    // Take field
5504    pub fn take_asset_types(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
5505        ::std::mem::replace(&mut self.asset_types, ::protobuf::RepeatedField::new())
5506    }
5507
5508    // int32 page_size = 4;
5509
5510
5511    pub fn get_page_size(&self) -> i32 {
5512        self.page_size
5513    }
5514    pub fn clear_page_size(&mut self) {
5515        self.page_size = 0;
5516    }
5517
5518    // Param is passed by value, moved
5519    pub fn set_page_size(&mut self, v: i32) {
5520        self.page_size = v;
5521    }
5522
5523    // string page_token = 5;
5524
5525
5526    pub fn get_page_token(&self) -> &str {
5527        &self.page_token
5528    }
5529    pub fn clear_page_token(&mut self) {
5530        self.page_token.clear();
5531    }
5532
5533    // Param is passed by value, moved
5534    pub fn set_page_token(&mut self, v: ::std::string::String) {
5535        self.page_token = v;
5536    }
5537
5538    // Mutable pointer to the field.
5539    // If field is not initialized, it is initialized with default value first.
5540    pub fn mut_page_token(&mut self) -> &mut ::std::string::String {
5541        &mut self.page_token
5542    }
5543
5544    // Take field
5545    pub fn take_page_token(&mut self) -> ::std::string::String {
5546        ::std::mem::replace(&mut self.page_token, ::std::string::String::new())
5547    }
5548
5549    // string order_by = 6;
5550
5551
5552    pub fn get_order_by(&self) -> &str {
5553        &self.order_by
5554    }
5555    pub fn clear_order_by(&mut self) {
5556        self.order_by.clear();
5557    }
5558
5559    // Param is passed by value, moved
5560    pub fn set_order_by(&mut self, v: ::std::string::String) {
5561        self.order_by = v;
5562    }
5563
5564    // Mutable pointer to the field.
5565    // If field is not initialized, it is initialized with default value first.
5566    pub fn mut_order_by(&mut self) -> &mut ::std::string::String {
5567        &mut self.order_by
5568    }
5569
5570    // Take field
5571    pub fn take_order_by(&mut self) -> ::std::string::String {
5572        ::std::mem::replace(&mut self.order_by, ::std::string::String::new())
5573    }
5574
5575    // .google.protobuf.FieldMask read_mask = 8;
5576
5577
5578    pub fn get_read_mask(&self) -> &::protobuf::well_known_types::FieldMask {
5579        self.read_mask.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::FieldMask as ::protobuf::Message>::default_instance())
5580    }
5581    pub fn clear_read_mask(&mut self) {
5582        self.read_mask.clear();
5583    }
5584
5585    pub fn has_read_mask(&self) -> bool {
5586        self.read_mask.is_some()
5587    }
5588
5589    // Param is passed by value, moved
5590    pub fn set_read_mask(&mut self, v: ::protobuf::well_known_types::FieldMask) {
5591        self.read_mask = ::protobuf::SingularPtrField::some(v);
5592    }
5593
5594    // Mutable pointer to the field.
5595    // If field is not initialized, it is initialized with default value first.
5596    pub fn mut_read_mask(&mut self) -> &mut ::protobuf::well_known_types::FieldMask {
5597        if self.read_mask.is_none() {
5598            self.read_mask.set_default();
5599        }
5600        self.read_mask.as_mut().unwrap()
5601    }
5602
5603    // Take field
5604    pub fn take_read_mask(&mut self) -> ::protobuf::well_known_types::FieldMask {
5605        self.read_mask.take().unwrap_or_else(|| ::protobuf::well_known_types::FieldMask::new())
5606    }
5607}
5608
5609impl ::protobuf::Message for SearchAllResourcesRequest {
5610    fn is_initialized(&self) -> bool {
5611        for v in &self.read_mask {
5612            if !v.is_initialized() {
5613                return false;
5614            }
5615        };
5616        true
5617    }
5618
5619    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
5620        while !is.eof()? {
5621            let (field_number, wire_type) = is.read_tag_unpack()?;
5622            match field_number {
5623                1 => {
5624                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.scope)?;
5625                },
5626                2 => {
5627                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.query)?;
5628                },
5629                3 => {
5630                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.asset_types)?;
5631                },
5632                4 => {
5633                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
5634                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
5635                    }
5636                    let tmp = is.read_int32()?;
5637                    self.page_size = tmp;
5638                },
5639                5 => {
5640                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.page_token)?;
5641                },
5642                6 => {
5643                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.order_by)?;
5644                },
5645                8 => {
5646                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.read_mask)?;
5647                },
5648                _ => {
5649                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
5650                },
5651            };
5652        }
5653        ::std::result::Result::Ok(())
5654    }
5655
5656    // Compute sizes of nested messages
5657    #[allow(unused_variables)]
5658    fn compute_size(&self) -> u32 {
5659        let mut my_size = 0;
5660        if !self.scope.is_empty() {
5661            my_size += ::protobuf::rt::string_size(1, &self.scope);
5662        }
5663        if !self.query.is_empty() {
5664            my_size += ::protobuf::rt::string_size(2, &self.query);
5665        }
5666        for value in &self.asset_types {
5667            my_size += ::protobuf::rt::string_size(3, &value);
5668        };
5669        if self.page_size != 0 {
5670            my_size += ::protobuf::rt::value_size(4, self.page_size, ::protobuf::wire_format::WireTypeVarint);
5671        }
5672        if !self.page_token.is_empty() {
5673            my_size += ::protobuf::rt::string_size(5, &self.page_token);
5674        }
5675        if !self.order_by.is_empty() {
5676            my_size += ::protobuf::rt::string_size(6, &self.order_by);
5677        }
5678        if let Some(ref v) = self.read_mask.as_ref() {
5679            let len = v.compute_size();
5680            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
5681        }
5682        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
5683        self.cached_size.set(my_size);
5684        my_size
5685    }
5686
5687    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
5688        if !self.scope.is_empty() {
5689            os.write_string(1, &self.scope)?;
5690        }
5691        if !self.query.is_empty() {
5692            os.write_string(2, &self.query)?;
5693        }
5694        for v in &self.asset_types {
5695            os.write_string(3, &v)?;
5696        };
5697        if self.page_size != 0 {
5698            os.write_int32(4, self.page_size)?;
5699        }
5700        if !self.page_token.is_empty() {
5701            os.write_string(5, &self.page_token)?;
5702        }
5703        if !self.order_by.is_empty() {
5704            os.write_string(6, &self.order_by)?;
5705        }
5706        if let Some(ref v) = self.read_mask.as_ref() {
5707            os.write_tag(8, ::protobuf::wire_format::WireTypeLengthDelimited)?;
5708            os.write_raw_varint32(v.get_cached_size())?;
5709            v.write_to_with_cached_sizes(os)?;
5710        }
5711        os.write_unknown_fields(self.get_unknown_fields())?;
5712        ::std::result::Result::Ok(())
5713    }
5714
5715    fn get_cached_size(&self) -> u32 {
5716        self.cached_size.get()
5717    }
5718
5719    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
5720        &self.unknown_fields
5721    }
5722
5723    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
5724        &mut self.unknown_fields
5725    }
5726
5727    fn as_any(&self) -> &dyn (::std::any::Any) {
5728        self as &dyn (::std::any::Any)
5729    }
5730    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
5731        self as &mut dyn (::std::any::Any)
5732    }
5733    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
5734        self
5735    }
5736
5737    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
5738        Self::descriptor_static()
5739    }
5740
5741    fn new() -> SearchAllResourcesRequest {
5742        SearchAllResourcesRequest::new()
5743    }
5744
5745    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
5746        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
5747        descriptor.get(|| {
5748            let mut fields = ::std::vec::Vec::new();
5749            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
5750                "scope",
5751                |m: &SearchAllResourcesRequest| { &m.scope },
5752                |m: &mut SearchAllResourcesRequest| { &mut m.scope },
5753            ));
5754            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
5755                "query",
5756                |m: &SearchAllResourcesRequest| { &m.query },
5757                |m: &mut SearchAllResourcesRequest| { &mut m.query },
5758            ));
5759            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
5760                "asset_types",
5761                |m: &SearchAllResourcesRequest| { &m.asset_types },
5762                |m: &mut SearchAllResourcesRequest| { &mut m.asset_types },
5763            ));
5764            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
5765                "page_size",
5766                |m: &SearchAllResourcesRequest| { &m.page_size },
5767                |m: &mut SearchAllResourcesRequest| { &mut m.page_size },
5768            ));
5769            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
5770                "page_token",
5771                |m: &SearchAllResourcesRequest| { &m.page_token },
5772                |m: &mut SearchAllResourcesRequest| { &mut m.page_token },
5773            ));
5774            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
5775                "order_by",
5776                |m: &SearchAllResourcesRequest| { &m.order_by },
5777                |m: &mut SearchAllResourcesRequest| { &mut m.order_by },
5778            ));
5779            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::FieldMask>>(
5780                "read_mask",
5781                |m: &SearchAllResourcesRequest| { &m.read_mask },
5782                |m: &mut SearchAllResourcesRequest| { &mut m.read_mask },
5783            ));
5784            ::protobuf::reflect::MessageDescriptor::new_pb_name::<SearchAllResourcesRequest>(
5785                "SearchAllResourcesRequest",
5786                fields,
5787                file_descriptor_proto()
5788            )
5789        })
5790    }
5791
5792    fn default_instance() -> &'static SearchAllResourcesRequest {
5793        static instance: ::protobuf::rt::LazyV2<SearchAllResourcesRequest> = ::protobuf::rt::LazyV2::INIT;
5794        instance.get(SearchAllResourcesRequest::new)
5795    }
5796}
5797
5798impl ::protobuf::Clear for SearchAllResourcesRequest {
5799    fn clear(&mut self) {
5800        self.scope.clear();
5801        self.query.clear();
5802        self.asset_types.clear();
5803        self.page_size = 0;
5804        self.page_token.clear();
5805        self.order_by.clear();
5806        self.read_mask.clear();
5807        self.unknown_fields.clear();
5808    }
5809}
5810
5811impl ::std::fmt::Debug for SearchAllResourcesRequest {
5812    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5813        ::protobuf::text_format::fmt(self, f)
5814    }
5815}
5816
5817impl ::protobuf::reflect::ProtobufValue for SearchAllResourcesRequest {
5818    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
5819        ::protobuf::reflect::ReflectValueRef::Message(self)
5820    }
5821}
5822
5823#[derive(PartialEq,Clone,Default)]
5824pub struct SearchAllResourcesResponse {
5825    // message fields
5826    pub results: ::protobuf::RepeatedField<super::assets::ResourceSearchResult>,
5827    pub next_page_token: ::std::string::String,
5828    // special fields
5829    pub unknown_fields: ::protobuf::UnknownFields,
5830    pub cached_size: ::protobuf::CachedSize,
5831}
5832
5833impl<'a> ::std::default::Default for &'a SearchAllResourcesResponse {
5834    fn default() -> &'a SearchAllResourcesResponse {
5835        <SearchAllResourcesResponse as ::protobuf::Message>::default_instance()
5836    }
5837}
5838
5839impl SearchAllResourcesResponse {
5840    pub fn new() -> SearchAllResourcesResponse {
5841        ::std::default::Default::default()
5842    }
5843
5844    // repeated .google.cloud.asset.v1.ResourceSearchResult results = 1;
5845
5846
5847    pub fn get_results(&self) -> &[super::assets::ResourceSearchResult] {
5848        &self.results
5849    }
5850    pub fn clear_results(&mut self) {
5851        self.results.clear();
5852    }
5853
5854    // Param is passed by value, moved
5855    pub fn set_results(&mut self, v: ::protobuf::RepeatedField<super::assets::ResourceSearchResult>) {
5856        self.results = v;
5857    }
5858
5859    // Mutable pointer to the field.
5860    pub fn mut_results(&mut self) -> &mut ::protobuf::RepeatedField<super::assets::ResourceSearchResult> {
5861        &mut self.results
5862    }
5863
5864    // Take field
5865    pub fn take_results(&mut self) -> ::protobuf::RepeatedField<super::assets::ResourceSearchResult> {
5866        ::std::mem::replace(&mut self.results, ::protobuf::RepeatedField::new())
5867    }
5868
5869    // string next_page_token = 2;
5870
5871
5872    pub fn get_next_page_token(&self) -> &str {
5873        &self.next_page_token
5874    }
5875    pub fn clear_next_page_token(&mut self) {
5876        self.next_page_token.clear();
5877    }
5878
5879    // Param is passed by value, moved
5880    pub fn set_next_page_token(&mut self, v: ::std::string::String) {
5881        self.next_page_token = v;
5882    }
5883
5884    // Mutable pointer to the field.
5885    // If field is not initialized, it is initialized with default value first.
5886    pub fn mut_next_page_token(&mut self) -> &mut ::std::string::String {
5887        &mut self.next_page_token
5888    }
5889
5890    // Take field
5891    pub fn take_next_page_token(&mut self) -> ::std::string::String {
5892        ::std::mem::replace(&mut self.next_page_token, ::std::string::String::new())
5893    }
5894}
5895
5896impl ::protobuf::Message for SearchAllResourcesResponse {
5897    fn is_initialized(&self) -> bool {
5898        for v in &self.results {
5899            if !v.is_initialized() {
5900                return false;
5901            }
5902        };
5903        true
5904    }
5905
5906    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
5907        while !is.eof()? {
5908            let (field_number, wire_type) = is.read_tag_unpack()?;
5909            match field_number {
5910                1 => {
5911                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.results)?;
5912                },
5913                2 => {
5914                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.next_page_token)?;
5915                },
5916                _ => {
5917                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
5918                },
5919            };
5920        }
5921        ::std::result::Result::Ok(())
5922    }
5923
5924    // Compute sizes of nested messages
5925    #[allow(unused_variables)]
5926    fn compute_size(&self) -> u32 {
5927        let mut my_size = 0;
5928        for value in &self.results {
5929            let len = value.compute_size();
5930            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
5931        };
5932        if !self.next_page_token.is_empty() {
5933            my_size += ::protobuf::rt::string_size(2, &self.next_page_token);
5934        }
5935        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
5936        self.cached_size.set(my_size);
5937        my_size
5938    }
5939
5940    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
5941        for v in &self.results {
5942            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
5943            os.write_raw_varint32(v.get_cached_size())?;
5944            v.write_to_with_cached_sizes(os)?;
5945        };
5946        if !self.next_page_token.is_empty() {
5947            os.write_string(2, &self.next_page_token)?;
5948        }
5949        os.write_unknown_fields(self.get_unknown_fields())?;
5950        ::std::result::Result::Ok(())
5951    }
5952
5953    fn get_cached_size(&self) -> u32 {
5954        self.cached_size.get()
5955    }
5956
5957    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
5958        &self.unknown_fields
5959    }
5960
5961    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
5962        &mut self.unknown_fields
5963    }
5964
5965    fn as_any(&self) -> &dyn (::std::any::Any) {
5966        self as &dyn (::std::any::Any)
5967    }
5968    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
5969        self as &mut dyn (::std::any::Any)
5970    }
5971    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
5972        self
5973    }
5974
5975    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
5976        Self::descriptor_static()
5977    }
5978
5979    fn new() -> SearchAllResourcesResponse {
5980        SearchAllResourcesResponse::new()
5981    }
5982
5983    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
5984        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
5985        descriptor.get(|| {
5986            let mut fields = ::std::vec::Vec::new();
5987            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::assets::ResourceSearchResult>>(
5988                "results",
5989                |m: &SearchAllResourcesResponse| { &m.results },
5990                |m: &mut SearchAllResourcesResponse| { &mut m.results },
5991            ));
5992            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
5993                "next_page_token",
5994                |m: &SearchAllResourcesResponse| { &m.next_page_token },
5995                |m: &mut SearchAllResourcesResponse| { &mut m.next_page_token },
5996            ));
5997            ::protobuf::reflect::MessageDescriptor::new_pb_name::<SearchAllResourcesResponse>(
5998                "SearchAllResourcesResponse",
5999                fields,
6000                file_descriptor_proto()
6001            )
6002        })
6003    }
6004
6005    fn default_instance() -> &'static SearchAllResourcesResponse {
6006        static instance: ::protobuf::rt::LazyV2<SearchAllResourcesResponse> = ::protobuf::rt::LazyV2::INIT;
6007        instance.get(SearchAllResourcesResponse::new)
6008    }
6009}
6010
6011impl ::protobuf::Clear for SearchAllResourcesResponse {
6012    fn clear(&mut self) {
6013        self.results.clear();
6014        self.next_page_token.clear();
6015        self.unknown_fields.clear();
6016    }
6017}
6018
6019impl ::std::fmt::Debug for SearchAllResourcesResponse {
6020    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6021        ::protobuf::text_format::fmt(self, f)
6022    }
6023}
6024
6025impl ::protobuf::reflect::ProtobufValue for SearchAllResourcesResponse {
6026    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
6027        ::protobuf::reflect::ReflectValueRef::Message(self)
6028    }
6029}
6030
6031#[derive(PartialEq,Clone,Default)]
6032pub struct SearchAllIamPoliciesRequest {
6033    // message fields
6034    pub scope: ::std::string::String,
6035    pub query: ::std::string::String,
6036    pub page_size: i32,
6037    pub page_token: ::std::string::String,
6038    pub asset_types: ::protobuf::RepeatedField<::std::string::String>,
6039    pub order_by: ::std::string::String,
6040    // special fields
6041    pub unknown_fields: ::protobuf::UnknownFields,
6042    pub cached_size: ::protobuf::CachedSize,
6043}
6044
6045impl<'a> ::std::default::Default for &'a SearchAllIamPoliciesRequest {
6046    fn default() -> &'a SearchAllIamPoliciesRequest {
6047        <SearchAllIamPoliciesRequest as ::protobuf::Message>::default_instance()
6048    }
6049}
6050
6051impl SearchAllIamPoliciesRequest {
6052    pub fn new() -> SearchAllIamPoliciesRequest {
6053        ::std::default::Default::default()
6054    }
6055
6056    // string scope = 1;
6057
6058
6059    pub fn get_scope(&self) -> &str {
6060        &self.scope
6061    }
6062    pub fn clear_scope(&mut self) {
6063        self.scope.clear();
6064    }
6065
6066    // Param is passed by value, moved
6067    pub fn set_scope(&mut self, v: ::std::string::String) {
6068        self.scope = v;
6069    }
6070
6071    // Mutable pointer to the field.
6072    // If field is not initialized, it is initialized with default value first.
6073    pub fn mut_scope(&mut self) -> &mut ::std::string::String {
6074        &mut self.scope
6075    }
6076
6077    // Take field
6078    pub fn take_scope(&mut self) -> ::std::string::String {
6079        ::std::mem::replace(&mut self.scope, ::std::string::String::new())
6080    }
6081
6082    // string query = 2;
6083
6084
6085    pub fn get_query(&self) -> &str {
6086        &self.query
6087    }
6088    pub fn clear_query(&mut self) {
6089        self.query.clear();
6090    }
6091
6092    // Param is passed by value, moved
6093    pub fn set_query(&mut self, v: ::std::string::String) {
6094        self.query = v;
6095    }
6096
6097    // Mutable pointer to the field.
6098    // If field is not initialized, it is initialized with default value first.
6099    pub fn mut_query(&mut self) -> &mut ::std::string::String {
6100        &mut self.query
6101    }
6102
6103    // Take field
6104    pub fn take_query(&mut self) -> ::std::string::String {
6105        ::std::mem::replace(&mut self.query, ::std::string::String::new())
6106    }
6107
6108    // int32 page_size = 3;
6109
6110
6111    pub fn get_page_size(&self) -> i32 {
6112        self.page_size
6113    }
6114    pub fn clear_page_size(&mut self) {
6115        self.page_size = 0;
6116    }
6117
6118    // Param is passed by value, moved
6119    pub fn set_page_size(&mut self, v: i32) {
6120        self.page_size = v;
6121    }
6122
6123    // string page_token = 4;
6124
6125
6126    pub fn get_page_token(&self) -> &str {
6127        &self.page_token
6128    }
6129    pub fn clear_page_token(&mut self) {
6130        self.page_token.clear();
6131    }
6132
6133    // Param is passed by value, moved
6134    pub fn set_page_token(&mut self, v: ::std::string::String) {
6135        self.page_token = v;
6136    }
6137
6138    // Mutable pointer to the field.
6139    // If field is not initialized, it is initialized with default value first.
6140    pub fn mut_page_token(&mut self) -> &mut ::std::string::String {
6141        &mut self.page_token
6142    }
6143
6144    // Take field
6145    pub fn take_page_token(&mut self) -> ::std::string::String {
6146        ::std::mem::replace(&mut self.page_token, ::std::string::String::new())
6147    }
6148
6149    // repeated string asset_types = 5;
6150
6151
6152    pub fn get_asset_types(&self) -> &[::std::string::String] {
6153        &self.asset_types
6154    }
6155    pub fn clear_asset_types(&mut self) {
6156        self.asset_types.clear();
6157    }
6158
6159    // Param is passed by value, moved
6160    pub fn set_asset_types(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
6161        self.asset_types = v;
6162    }
6163
6164    // Mutable pointer to the field.
6165    pub fn mut_asset_types(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
6166        &mut self.asset_types
6167    }
6168
6169    // Take field
6170    pub fn take_asset_types(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
6171        ::std::mem::replace(&mut self.asset_types, ::protobuf::RepeatedField::new())
6172    }
6173
6174    // string order_by = 7;
6175
6176
6177    pub fn get_order_by(&self) -> &str {
6178        &self.order_by
6179    }
6180    pub fn clear_order_by(&mut self) {
6181        self.order_by.clear();
6182    }
6183
6184    // Param is passed by value, moved
6185    pub fn set_order_by(&mut self, v: ::std::string::String) {
6186        self.order_by = v;
6187    }
6188
6189    // Mutable pointer to the field.
6190    // If field is not initialized, it is initialized with default value first.
6191    pub fn mut_order_by(&mut self) -> &mut ::std::string::String {
6192        &mut self.order_by
6193    }
6194
6195    // Take field
6196    pub fn take_order_by(&mut self) -> ::std::string::String {
6197        ::std::mem::replace(&mut self.order_by, ::std::string::String::new())
6198    }
6199}
6200
6201impl ::protobuf::Message for SearchAllIamPoliciesRequest {
6202    fn is_initialized(&self) -> bool {
6203        true
6204    }
6205
6206    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
6207        while !is.eof()? {
6208            let (field_number, wire_type) = is.read_tag_unpack()?;
6209            match field_number {
6210                1 => {
6211                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.scope)?;
6212                },
6213                2 => {
6214                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.query)?;
6215                },
6216                3 => {
6217                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
6218                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
6219                    }
6220                    let tmp = is.read_int32()?;
6221                    self.page_size = tmp;
6222                },
6223                4 => {
6224                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.page_token)?;
6225                },
6226                5 => {
6227                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.asset_types)?;
6228                },
6229                7 => {
6230                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.order_by)?;
6231                },
6232                _ => {
6233                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
6234                },
6235            };
6236        }
6237        ::std::result::Result::Ok(())
6238    }
6239
6240    // Compute sizes of nested messages
6241    #[allow(unused_variables)]
6242    fn compute_size(&self) -> u32 {
6243        let mut my_size = 0;
6244        if !self.scope.is_empty() {
6245            my_size += ::protobuf::rt::string_size(1, &self.scope);
6246        }
6247        if !self.query.is_empty() {
6248            my_size += ::protobuf::rt::string_size(2, &self.query);
6249        }
6250        if self.page_size != 0 {
6251            my_size += ::protobuf::rt::value_size(3, self.page_size, ::protobuf::wire_format::WireTypeVarint);
6252        }
6253        if !self.page_token.is_empty() {
6254            my_size += ::protobuf::rt::string_size(4, &self.page_token);
6255        }
6256        for value in &self.asset_types {
6257            my_size += ::protobuf::rt::string_size(5, &value);
6258        };
6259        if !self.order_by.is_empty() {
6260            my_size += ::protobuf::rt::string_size(7, &self.order_by);
6261        }
6262        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
6263        self.cached_size.set(my_size);
6264        my_size
6265    }
6266
6267    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
6268        if !self.scope.is_empty() {
6269            os.write_string(1, &self.scope)?;
6270        }
6271        if !self.query.is_empty() {
6272            os.write_string(2, &self.query)?;
6273        }
6274        if self.page_size != 0 {
6275            os.write_int32(3, self.page_size)?;
6276        }
6277        if !self.page_token.is_empty() {
6278            os.write_string(4, &self.page_token)?;
6279        }
6280        for v in &self.asset_types {
6281            os.write_string(5, &v)?;
6282        };
6283        if !self.order_by.is_empty() {
6284            os.write_string(7, &self.order_by)?;
6285        }
6286        os.write_unknown_fields(self.get_unknown_fields())?;
6287        ::std::result::Result::Ok(())
6288    }
6289
6290    fn get_cached_size(&self) -> u32 {
6291        self.cached_size.get()
6292    }
6293
6294    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
6295        &self.unknown_fields
6296    }
6297
6298    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
6299        &mut self.unknown_fields
6300    }
6301
6302    fn as_any(&self) -> &dyn (::std::any::Any) {
6303        self as &dyn (::std::any::Any)
6304    }
6305    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
6306        self as &mut dyn (::std::any::Any)
6307    }
6308    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
6309        self
6310    }
6311
6312    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
6313        Self::descriptor_static()
6314    }
6315
6316    fn new() -> SearchAllIamPoliciesRequest {
6317        SearchAllIamPoliciesRequest::new()
6318    }
6319
6320    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
6321        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
6322        descriptor.get(|| {
6323            let mut fields = ::std::vec::Vec::new();
6324            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
6325                "scope",
6326                |m: &SearchAllIamPoliciesRequest| { &m.scope },
6327                |m: &mut SearchAllIamPoliciesRequest| { &mut m.scope },
6328            ));
6329            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
6330                "query",
6331                |m: &SearchAllIamPoliciesRequest| { &m.query },
6332                |m: &mut SearchAllIamPoliciesRequest| { &mut m.query },
6333            ));
6334            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
6335                "page_size",
6336                |m: &SearchAllIamPoliciesRequest| { &m.page_size },
6337                |m: &mut SearchAllIamPoliciesRequest| { &mut m.page_size },
6338            ));
6339            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
6340                "page_token",
6341                |m: &SearchAllIamPoliciesRequest| { &m.page_token },
6342                |m: &mut SearchAllIamPoliciesRequest| { &mut m.page_token },
6343            ));
6344            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
6345                "asset_types",
6346                |m: &SearchAllIamPoliciesRequest| { &m.asset_types },
6347                |m: &mut SearchAllIamPoliciesRequest| { &mut m.asset_types },
6348            ));
6349            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
6350                "order_by",
6351                |m: &SearchAllIamPoliciesRequest| { &m.order_by },
6352                |m: &mut SearchAllIamPoliciesRequest| { &mut m.order_by },
6353            ));
6354            ::protobuf::reflect::MessageDescriptor::new_pb_name::<SearchAllIamPoliciesRequest>(
6355                "SearchAllIamPoliciesRequest",
6356                fields,
6357                file_descriptor_proto()
6358            )
6359        })
6360    }
6361
6362    fn default_instance() -> &'static SearchAllIamPoliciesRequest {
6363        static instance: ::protobuf::rt::LazyV2<SearchAllIamPoliciesRequest> = ::protobuf::rt::LazyV2::INIT;
6364        instance.get(SearchAllIamPoliciesRequest::new)
6365    }
6366}
6367
6368impl ::protobuf::Clear for SearchAllIamPoliciesRequest {
6369    fn clear(&mut self) {
6370        self.scope.clear();
6371        self.query.clear();
6372        self.page_size = 0;
6373        self.page_token.clear();
6374        self.asset_types.clear();
6375        self.order_by.clear();
6376        self.unknown_fields.clear();
6377    }
6378}
6379
6380impl ::std::fmt::Debug for SearchAllIamPoliciesRequest {
6381    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6382        ::protobuf::text_format::fmt(self, f)
6383    }
6384}
6385
6386impl ::protobuf::reflect::ProtobufValue for SearchAllIamPoliciesRequest {
6387    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
6388        ::protobuf::reflect::ReflectValueRef::Message(self)
6389    }
6390}
6391
6392#[derive(PartialEq,Clone,Default)]
6393pub struct SearchAllIamPoliciesResponse {
6394    // message fields
6395    pub results: ::protobuf::RepeatedField<super::assets::IamPolicySearchResult>,
6396    pub next_page_token: ::std::string::String,
6397    // special fields
6398    pub unknown_fields: ::protobuf::UnknownFields,
6399    pub cached_size: ::protobuf::CachedSize,
6400}
6401
6402impl<'a> ::std::default::Default for &'a SearchAllIamPoliciesResponse {
6403    fn default() -> &'a SearchAllIamPoliciesResponse {
6404        <SearchAllIamPoliciesResponse as ::protobuf::Message>::default_instance()
6405    }
6406}
6407
6408impl SearchAllIamPoliciesResponse {
6409    pub fn new() -> SearchAllIamPoliciesResponse {
6410        ::std::default::Default::default()
6411    }
6412
6413    // repeated .google.cloud.asset.v1.IamPolicySearchResult results = 1;
6414
6415
6416    pub fn get_results(&self) -> &[super::assets::IamPolicySearchResult] {
6417        &self.results
6418    }
6419    pub fn clear_results(&mut self) {
6420        self.results.clear();
6421    }
6422
6423    // Param is passed by value, moved
6424    pub fn set_results(&mut self, v: ::protobuf::RepeatedField<super::assets::IamPolicySearchResult>) {
6425        self.results = v;
6426    }
6427
6428    // Mutable pointer to the field.
6429    pub fn mut_results(&mut self) -> &mut ::protobuf::RepeatedField<super::assets::IamPolicySearchResult> {
6430        &mut self.results
6431    }
6432
6433    // Take field
6434    pub fn take_results(&mut self) -> ::protobuf::RepeatedField<super::assets::IamPolicySearchResult> {
6435        ::std::mem::replace(&mut self.results, ::protobuf::RepeatedField::new())
6436    }
6437
6438    // string next_page_token = 2;
6439
6440
6441    pub fn get_next_page_token(&self) -> &str {
6442        &self.next_page_token
6443    }
6444    pub fn clear_next_page_token(&mut self) {
6445        self.next_page_token.clear();
6446    }
6447
6448    // Param is passed by value, moved
6449    pub fn set_next_page_token(&mut self, v: ::std::string::String) {
6450        self.next_page_token = v;
6451    }
6452
6453    // Mutable pointer to the field.
6454    // If field is not initialized, it is initialized with default value first.
6455    pub fn mut_next_page_token(&mut self) -> &mut ::std::string::String {
6456        &mut self.next_page_token
6457    }
6458
6459    // Take field
6460    pub fn take_next_page_token(&mut self) -> ::std::string::String {
6461        ::std::mem::replace(&mut self.next_page_token, ::std::string::String::new())
6462    }
6463}
6464
6465impl ::protobuf::Message for SearchAllIamPoliciesResponse {
6466    fn is_initialized(&self) -> bool {
6467        for v in &self.results {
6468            if !v.is_initialized() {
6469                return false;
6470            }
6471        };
6472        true
6473    }
6474
6475    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
6476        while !is.eof()? {
6477            let (field_number, wire_type) = is.read_tag_unpack()?;
6478            match field_number {
6479                1 => {
6480                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.results)?;
6481                },
6482                2 => {
6483                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.next_page_token)?;
6484                },
6485                _ => {
6486                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
6487                },
6488            };
6489        }
6490        ::std::result::Result::Ok(())
6491    }
6492
6493    // Compute sizes of nested messages
6494    #[allow(unused_variables)]
6495    fn compute_size(&self) -> u32 {
6496        let mut my_size = 0;
6497        for value in &self.results {
6498            let len = value.compute_size();
6499            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
6500        };
6501        if !self.next_page_token.is_empty() {
6502            my_size += ::protobuf::rt::string_size(2, &self.next_page_token);
6503        }
6504        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
6505        self.cached_size.set(my_size);
6506        my_size
6507    }
6508
6509    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
6510        for v in &self.results {
6511            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
6512            os.write_raw_varint32(v.get_cached_size())?;
6513            v.write_to_with_cached_sizes(os)?;
6514        };
6515        if !self.next_page_token.is_empty() {
6516            os.write_string(2, &self.next_page_token)?;
6517        }
6518        os.write_unknown_fields(self.get_unknown_fields())?;
6519        ::std::result::Result::Ok(())
6520    }
6521
6522    fn get_cached_size(&self) -> u32 {
6523        self.cached_size.get()
6524    }
6525
6526    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
6527        &self.unknown_fields
6528    }
6529
6530    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
6531        &mut self.unknown_fields
6532    }
6533
6534    fn as_any(&self) -> &dyn (::std::any::Any) {
6535        self as &dyn (::std::any::Any)
6536    }
6537    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
6538        self as &mut dyn (::std::any::Any)
6539    }
6540    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
6541        self
6542    }
6543
6544    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
6545        Self::descriptor_static()
6546    }
6547
6548    fn new() -> SearchAllIamPoliciesResponse {
6549        SearchAllIamPoliciesResponse::new()
6550    }
6551
6552    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
6553        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
6554        descriptor.get(|| {
6555            let mut fields = ::std::vec::Vec::new();
6556            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::assets::IamPolicySearchResult>>(
6557                "results",
6558                |m: &SearchAllIamPoliciesResponse| { &m.results },
6559                |m: &mut SearchAllIamPoliciesResponse| { &mut m.results },
6560            ));
6561            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
6562                "next_page_token",
6563                |m: &SearchAllIamPoliciesResponse| { &m.next_page_token },
6564                |m: &mut SearchAllIamPoliciesResponse| { &mut m.next_page_token },
6565            ));
6566            ::protobuf::reflect::MessageDescriptor::new_pb_name::<SearchAllIamPoliciesResponse>(
6567                "SearchAllIamPoliciesResponse",
6568                fields,
6569                file_descriptor_proto()
6570            )
6571        })
6572    }
6573
6574    fn default_instance() -> &'static SearchAllIamPoliciesResponse {
6575        static instance: ::protobuf::rt::LazyV2<SearchAllIamPoliciesResponse> = ::protobuf::rt::LazyV2::INIT;
6576        instance.get(SearchAllIamPoliciesResponse::new)
6577    }
6578}
6579
6580impl ::protobuf::Clear for SearchAllIamPoliciesResponse {
6581    fn clear(&mut self) {
6582        self.results.clear();
6583        self.next_page_token.clear();
6584        self.unknown_fields.clear();
6585    }
6586}
6587
6588impl ::std::fmt::Debug for SearchAllIamPoliciesResponse {
6589    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6590        ::protobuf::text_format::fmt(self, f)
6591    }
6592}
6593
6594impl ::protobuf::reflect::ProtobufValue for SearchAllIamPoliciesResponse {
6595    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
6596        ::protobuf::reflect::ReflectValueRef::Message(self)
6597    }
6598}
6599
6600#[derive(PartialEq,Clone,Default)]
6601pub struct IamPolicyAnalysisQuery {
6602    // message fields
6603    pub scope: ::std::string::String,
6604    pub resource_selector: ::protobuf::SingularPtrField<IamPolicyAnalysisQuery_ResourceSelector>,
6605    pub identity_selector: ::protobuf::SingularPtrField<IamPolicyAnalysisQuery_IdentitySelector>,
6606    pub access_selector: ::protobuf::SingularPtrField<IamPolicyAnalysisQuery_AccessSelector>,
6607    pub options: ::protobuf::SingularPtrField<IamPolicyAnalysisQuery_Options>,
6608    pub condition_context: ::protobuf::SingularPtrField<IamPolicyAnalysisQuery_ConditionContext>,
6609    // special fields
6610    pub unknown_fields: ::protobuf::UnknownFields,
6611    pub cached_size: ::protobuf::CachedSize,
6612}
6613
6614impl<'a> ::std::default::Default for &'a IamPolicyAnalysisQuery {
6615    fn default() -> &'a IamPolicyAnalysisQuery {
6616        <IamPolicyAnalysisQuery as ::protobuf::Message>::default_instance()
6617    }
6618}
6619
6620impl IamPolicyAnalysisQuery {
6621    pub fn new() -> IamPolicyAnalysisQuery {
6622        ::std::default::Default::default()
6623    }
6624
6625    // string scope = 1;
6626
6627
6628    pub fn get_scope(&self) -> &str {
6629        &self.scope
6630    }
6631    pub fn clear_scope(&mut self) {
6632        self.scope.clear();
6633    }
6634
6635    // Param is passed by value, moved
6636    pub fn set_scope(&mut self, v: ::std::string::String) {
6637        self.scope = v;
6638    }
6639
6640    // Mutable pointer to the field.
6641    // If field is not initialized, it is initialized with default value first.
6642    pub fn mut_scope(&mut self) -> &mut ::std::string::String {
6643        &mut self.scope
6644    }
6645
6646    // Take field
6647    pub fn take_scope(&mut self) -> ::std::string::String {
6648        ::std::mem::replace(&mut self.scope, ::std::string::String::new())
6649    }
6650
6651    // .google.cloud.asset.v1.IamPolicyAnalysisQuery.ResourceSelector resource_selector = 2;
6652
6653
6654    pub fn get_resource_selector(&self) -> &IamPolicyAnalysisQuery_ResourceSelector {
6655        self.resource_selector.as_ref().unwrap_or_else(|| <IamPolicyAnalysisQuery_ResourceSelector as ::protobuf::Message>::default_instance())
6656    }
6657    pub fn clear_resource_selector(&mut self) {
6658        self.resource_selector.clear();
6659    }
6660
6661    pub fn has_resource_selector(&self) -> bool {
6662        self.resource_selector.is_some()
6663    }
6664
6665    // Param is passed by value, moved
6666    pub fn set_resource_selector(&mut self, v: IamPolicyAnalysisQuery_ResourceSelector) {
6667        self.resource_selector = ::protobuf::SingularPtrField::some(v);
6668    }
6669
6670    // Mutable pointer to the field.
6671    // If field is not initialized, it is initialized with default value first.
6672    pub fn mut_resource_selector(&mut self) -> &mut IamPolicyAnalysisQuery_ResourceSelector {
6673        if self.resource_selector.is_none() {
6674            self.resource_selector.set_default();
6675        }
6676        self.resource_selector.as_mut().unwrap()
6677    }
6678
6679    // Take field
6680    pub fn take_resource_selector(&mut self) -> IamPolicyAnalysisQuery_ResourceSelector {
6681        self.resource_selector.take().unwrap_or_else(|| IamPolicyAnalysisQuery_ResourceSelector::new())
6682    }
6683
6684    // .google.cloud.asset.v1.IamPolicyAnalysisQuery.IdentitySelector identity_selector = 3;
6685
6686
6687    pub fn get_identity_selector(&self) -> &IamPolicyAnalysisQuery_IdentitySelector {
6688        self.identity_selector.as_ref().unwrap_or_else(|| <IamPolicyAnalysisQuery_IdentitySelector as ::protobuf::Message>::default_instance())
6689    }
6690    pub fn clear_identity_selector(&mut self) {
6691        self.identity_selector.clear();
6692    }
6693
6694    pub fn has_identity_selector(&self) -> bool {
6695        self.identity_selector.is_some()
6696    }
6697
6698    // Param is passed by value, moved
6699    pub fn set_identity_selector(&mut self, v: IamPolicyAnalysisQuery_IdentitySelector) {
6700        self.identity_selector = ::protobuf::SingularPtrField::some(v);
6701    }
6702
6703    // Mutable pointer to the field.
6704    // If field is not initialized, it is initialized with default value first.
6705    pub fn mut_identity_selector(&mut self) -> &mut IamPolicyAnalysisQuery_IdentitySelector {
6706        if self.identity_selector.is_none() {
6707            self.identity_selector.set_default();
6708        }
6709        self.identity_selector.as_mut().unwrap()
6710    }
6711
6712    // Take field
6713    pub fn take_identity_selector(&mut self) -> IamPolicyAnalysisQuery_IdentitySelector {
6714        self.identity_selector.take().unwrap_or_else(|| IamPolicyAnalysisQuery_IdentitySelector::new())
6715    }
6716
6717    // .google.cloud.asset.v1.IamPolicyAnalysisQuery.AccessSelector access_selector = 4;
6718
6719
6720    pub fn get_access_selector(&self) -> &IamPolicyAnalysisQuery_AccessSelector {
6721        self.access_selector.as_ref().unwrap_or_else(|| <IamPolicyAnalysisQuery_AccessSelector as ::protobuf::Message>::default_instance())
6722    }
6723    pub fn clear_access_selector(&mut self) {
6724        self.access_selector.clear();
6725    }
6726
6727    pub fn has_access_selector(&self) -> bool {
6728        self.access_selector.is_some()
6729    }
6730
6731    // Param is passed by value, moved
6732    pub fn set_access_selector(&mut self, v: IamPolicyAnalysisQuery_AccessSelector) {
6733        self.access_selector = ::protobuf::SingularPtrField::some(v);
6734    }
6735
6736    // Mutable pointer to the field.
6737    // If field is not initialized, it is initialized with default value first.
6738    pub fn mut_access_selector(&mut self) -> &mut IamPolicyAnalysisQuery_AccessSelector {
6739        if self.access_selector.is_none() {
6740            self.access_selector.set_default();
6741        }
6742        self.access_selector.as_mut().unwrap()
6743    }
6744
6745    // Take field
6746    pub fn take_access_selector(&mut self) -> IamPolicyAnalysisQuery_AccessSelector {
6747        self.access_selector.take().unwrap_or_else(|| IamPolicyAnalysisQuery_AccessSelector::new())
6748    }
6749
6750    // .google.cloud.asset.v1.IamPolicyAnalysisQuery.Options options = 5;
6751
6752
6753    pub fn get_options(&self) -> &IamPolicyAnalysisQuery_Options {
6754        self.options.as_ref().unwrap_or_else(|| <IamPolicyAnalysisQuery_Options as ::protobuf::Message>::default_instance())
6755    }
6756    pub fn clear_options(&mut self) {
6757        self.options.clear();
6758    }
6759
6760    pub fn has_options(&self) -> bool {
6761        self.options.is_some()
6762    }
6763
6764    // Param is passed by value, moved
6765    pub fn set_options(&mut self, v: IamPolicyAnalysisQuery_Options) {
6766        self.options = ::protobuf::SingularPtrField::some(v);
6767    }
6768
6769    // Mutable pointer to the field.
6770    // If field is not initialized, it is initialized with default value first.
6771    pub fn mut_options(&mut self) -> &mut IamPolicyAnalysisQuery_Options {
6772        if self.options.is_none() {
6773            self.options.set_default();
6774        }
6775        self.options.as_mut().unwrap()
6776    }
6777
6778    // Take field
6779    pub fn take_options(&mut self) -> IamPolicyAnalysisQuery_Options {
6780        self.options.take().unwrap_or_else(|| IamPolicyAnalysisQuery_Options::new())
6781    }
6782
6783    // .google.cloud.asset.v1.IamPolicyAnalysisQuery.ConditionContext condition_context = 6;
6784
6785
6786    pub fn get_condition_context(&self) -> &IamPolicyAnalysisQuery_ConditionContext {
6787        self.condition_context.as_ref().unwrap_or_else(|| <IamPolicyAnalysisQuery_ConditionContext as ::protobuf::Message>::default_instance())
6788    }
6789    pub fn clear_condition_context(&mut self) {
6790        self.condition_context.clear();
6791    }
6792
6793    pub fn has_condition_context(&self) -> bool {
6794        self.condition_context.is_some()
6795    }
6796
6797    // Param is passed by value, moved
6798    pub fn set_condition_context(&mut self, v: IamPolicyAnalysisQuery_ConditionContext) {
6799        self.condition_context = ::protobuf::SingularPtrField::some(v);
6800    }
6801
6802    // Mutable pointer to the field.
6803    // If field is not initialized, it is initialized with default value first.
6804    pub fn mut_condition_context(&mut self) -> &mut IamPolicyAnalysisQuery_ConditionContext {
6805        if self.condition_context.is_none() {
6806            self.condition_context.set_default();
6807        }
6808        self.condition_context.as_mut().unwrap()
6809    }
6810
6811    // Take field
6812    pub fn take_condition_context(&mut self) -> IamPolicyAnalysisQuery_ConditionContext {
6813        self.condition_context.take().unwrap_or_else(|| IamPolicyAnalysisQuery_ConditionContext::new())
6814    }
6815}
6816
6817impl ::protobuf::Message for IamPolicyAnalysisQuery {
6818    fn is_initialized(&self) -> bool {
6819        for v in &self.resource_selector {
6820            if !v.is_initialized() {
6821                return false;
6822            }
6823        };
6824        for v in &self.identity_selector {
6825            if !v.is_initialized() {
6826                return false;
6827            }
6828        };
6829        for v in &self.access_selector {
6830            if !v.is_initialized() {
6831                return false;
6832            }
6833        };
6834        for v in &self.options {
6835            if !v.is_initialized() {
6836                return false;
6837            }
6838        };
6839        for v in &self.condition_context {
6840            if !v.is_initialized() {
6841                return false;
6842            }
6843        };
6844        true
6845    }
6846
6847    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
6848        while !is.eof()? {
6849            let (field_number, wire_type) = is.read_tag_unpack()?;
6850            match field_number {
6851                1 => {
6852                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.scope)?;
6853                },
6854                2 => {
6855                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.resource_selector)?;
6856                },
6857                3 => {
6858                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.identity_selector)?;
6859                },
6860                4 => {
6861                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.access_selector)?;
6862                },
6863                5 => {
6864                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.options)?;
6865                },
6866                6 => {
6867                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.condition_context)?;
6868                },
6869                _ => {
6870                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
6871                },
6872            };
6873        }
6874        ::std::result::Result::Ok(())
6875    }
6876
6877    // Compute sizes of nested messages
6878    #[allow(unused_variables)]
6879    fn compute_size(&self) -> u32 {
6880        let mut my_size = 0;
6881        if !self.scope.is_empty() {
6882            my_size += ::protobuf::rt::string_size(1, &self.scope);
6883        }
6884        if let Some(ref v) = self.resource_selector.as_ref() {
6885            let len = v.compute_size();
6886            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
6887        }
6888        if let Some(ref v) = self.identity_selector.as_ref() {
6889            let len = v.compute_size();
6890            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
6891        }
6892        if let Some(ref v) = self.access_selector.as_ref() {
6893            let len = v.compute_size();
6894            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
6895        }
6896        if let Some(ref v) = self.options.as_ref() {
6897            let len = v.compute_size();
6898            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
6899        }
6900        if let Some(ref v) = self.condition_context.as_ref() {
6901            let len = v.compute_size();
6902            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
6903        }
6904        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
6905        self.cached_size.set(my_size);
6906        my_size
6907    }
6908
6909    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
6910        if !self.scope.is_empty() {
6911            os.write_string(1, &self.scope)?;
6912        }
6913        if let Some(ref v) = self.resource_selector.as_ref() {
6914            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
6915            os.write_raw_varint32(v.get_cached_size())?;
6916            v.write_to_with_cached_sizes(os)?;
6917        }
6918        if let Some(ref v) = self.identity_selector.as_ref() {
6919            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
6920            os.write_raw_varint32(v.get_cached_size())?;
6921            v.write_to_with_cached_sizes(os)?;
6922        }
6923        if let Some(ref v) = self.access_selector.as_ref() {
6924            os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
6925            os.write_raw_varint32(v.get_cached_size())?;
6926            v.write_to_with_cached_sizes(os)?;
6927        }
6928        if let Some(ref v) = self.options.as_ref() {
6929            os.write_tag(5, ::protobuf::wire_format::WireTypeLengthDelimited)?;
6930            os.write_raw_varint32(v.get_cached_size())?;
6931            v.write_to_with_cached_sizes(os)?;
6932        }
6933        if let Some(ref v) = self.condition_context.as_ref() {
6934            os.write_tag(6, ::protobuf::wire_format::WireTypeLengthDelimited)?;
6935            os.write_raw_varint32(v.get_cached_size())?;
6936            v.write_to_with_cached_sizes(os)?;
6937        }
6938        os.write_unknown_fields(self.get_unknown_fields())?;
6939        ::std::result::Result::Ok(())
6940    }
6941
6942    fn get_cached_size(&self) -> u32 {
6943        self.cached_size.get()
6944    }
6945
6946    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
6947        &self.unknown_fields
6948    }
6949
6950    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
6951        &mut self.unknown_fields
6952    }
6953
6954    fn as_any(&self) -> &dyn (::std::any::Any) {
6955        self as &dyn (::std::any::Any)
6956    }
6957    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
6958        self as &mut dyn (::std::any::Any)
6959    }
6960    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
6961        self
6962    }
6963
6964    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
6965        Self::descriptor_static()
6966    }
6967
6968    fn new() -> IamPolicyAnalysisQuery {
6969        IamPolicyAnalysisQuery::new()
6970    }
6971
6972    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
6973        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
6974        descriptor.get(|| {
6975            let mut fields = ::std::vec::Vec::new();
6976            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
6977                "scope",
6978                |m: &IamPolicyAnalysisQuery| { &m.scope },
6979                |m: &mut IamPolicyAnalysisQuery| { &mut m.scope },
6980            ));
6981            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<IamPolicyAnalysisQuery_ResourceSelector>>(
6982                "resource_selector",
6983                |m: &IamPolicyAnalysisQuery| { &m.resource_selector },
6984                |m: &mut IamPolicyAnalysisQuery| { &mut m.resource_selector },
6985            ));
6986            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<IamPolicyAnalysisQuery_IdentitySelector>>(
6987                "identity_selector",
6988                |m: &IamPolicyAnalysisQuery| { &m.identity_selector },
6989                |m: &mut IamPolicyAnalysisQuery| { &mut m.identity_selector },
6990            ));
6991            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<IamPolicyAnalysisQuery_AccessSelector>>(
6992                "access_selector",
6993                |m: &IamPolicyAnalysisQuery| { &m.access_selector },
6994                |m: &mut IamPolicyAnalysisQuery| { &mut m.access_selector },
6995            ));
6996            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<IamPolicyAnalysisQuery_Options>>(
6997                "options",
6998                |m: &IamPolicyAnalysisQuery| { &m.options },
6999                |m: &mut IamPolicyAnalysisQuery| { &mut m.options },
7000            ));
7001            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<IamPolicyAnalysisQuery_ConditionContext>>(
7002                "condition_context",
7003                |m: &IamPolicyAnalysisQuery| { &m.condition_context },
7004                |m: &mut IamPolicyAnalysisQuery| { &mut m.condition_context },
7005            ));
7006            ::protobuf::reflect::MessageDescriptor::new_pb_name::<IamPolicyAnalysisQuery>(
7007                "IamPolicyAnalysisQuery",
7008                fields,
7009                file_descriptor_proto()
7010            )
7011        })
7012    }
7013
7014    fn default_instance() -> &'static IamPolicyAnalysisQuery {
7015        static instance: ::protobuf::rt::LazyV2<IamPolicyAnalysisQuery> = ::protobuf::rt::LazyV2::INIT;
7016        instance.get(IamPolicyAnalysisQuery::new)
7017    }
7018}
7019
7020impl ::protobuf::Clear for IamPolicyAnalysisQuery {
7021    fn clear(&mut self) {
7022        self.scope.clear();
7023        self.resource_selector.clear();
7024        self.identity_selector.clear();
7025        self.access_selector.clear();
7026        self.options.clear();
7027        self.condition_context.clear();
7028        self.unknown_fields.clear();
7029    }
7030}
7031
7032impl ::std::fmt::Debug for IamPolicyAnalysisQuery {
7033    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7034        ::protobuf::text_format::fmt(self, f)
7035    }
7036}
7037
7038impl ::protobuf::reflect::ProtobufValue for IamPolicyAnalysisQuery {
7039    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
7040        ::protobuf::reflect::ReflectValueRef::Message(self)
7041    }
7042}
7043
7044#[derive(PartialEq,Clone,Default)]
7045pub struct IamPolicyAnalysisQuery_ResourceSelector {
7046    // message fields
7047    pub full_resource_name: ::std::string::String,
7048    // special fields
7049    pub unknown_fields: ::protobuf::UnknownFields,
7050    pub cached_size: ::protobuf::CachedSize,
7051}
7052
7053impl<'a> ::std::default::Default for &'a IamPolicyAnalysisQuery_ResourceSelector {
7054    fn default() -> &'a IamPolicyAnalysisQuery_ResourceSelector {
7055        <IamPolicyAnalysisQuery_ResourceSelector as ::protobuf::Message>::default_instance()
7056    }
7057}
7058
7059impl IamPolicyAnalysisQuery_ResourceSelector {
7060    pub fn new() -> IamPolicyAnalysisQuery_ResourceSelector {
7061        ::std::default::Default::default()
7062    }
7063
7064    // string full_resource_name = 1;
7065
7066
7067    pub fn get_full_resource_name(&self) -> &str {
7068        &self.full_resource_name
7069    }
7070    pub fn clear_full_resource_name(&mut self) {
7071        self.full_resource_name.clear();
7072    }
7073
7074    // Param is passed by value, moved
7075    pub fn set_full_resource_name(&mut self, v: ::std::string::String) {
7076        self.full_resource_name = v;
7077    }
7078
7079    // Mutable pointer to the field.
7080    // If field is not initialized, it is initialized with default value first.
7081    pub fn mut_full_resource_name(&mut self) -> &mut ::std::string::String {
7082        &mut self.full_resource_name
7083    }
7084
7085    // Take field
7086    pub fn take_full_resource_name(&mut self) -> ::std::string::String {
7087        ::std::mem::replace(&mut self.full_resource_name, ::std::string::String::new())
7088    }
7089}
7090
7091impl ::protobuf::Message for IamPolicyAnalysisQuery_ResourceSelector {
7092    fn is_initialized(&self) -> bool {
7093        true
7094    }
7095
7096    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
7097        while !is.eof()? {
7098            let (field_number, wire_type) = is.read_tag_unpack()?;
7099            match field_number {
7100                1 => {
7101                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.full_resource_name)?;
7102                },
7103                _ => {
7104                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
7105                },
7106            };
7107        }
7108        ::std::result::Result::Ok(())
7109    }
7110
7111    // Compute sizes of nested messages
7112    #[allow(unused_variables)]
7113    fn compute_size(&self) -> u32 {
7114        let mut my_size = 0;
7115        if !self.full_resource_name.is_empty() {
7116            my_size += ::protobuf::rt::string_size(1, &self.full_resource_name);
7117        }
7118        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
7119        self.cached_size.set(my_size);
7120        my_size
7121    }
7122
7123    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
7124        if !self.full_resource_name.is_empty() {
7125            os.write_string(1, &self.full_resource_name)?;
7126        }
7127        os.write_unknown_fields(self.get_unknown_fields())?;
7128        ::std::result::Result::Ok(())
7129    }
7130
7131    fn get_cached_size(&self) -> u32 {
7132        self.cached_size.get()
7133    }
7134
7135    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
7136        &self.unknown_fields
7137    }
7138
7139    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
7140        &mut self.unknown_fields
7141    }
7142
7143    fn as_any(&self) -> &dyn (::std::any::Any) {
7144        self as &dyn (::std::any::Any)
7145    }
7146    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
7147        self as &mut dyn (::std::any::Any)
7148    }
7149    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
7150        self
7151    }
7152
7153    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
7154        Self::descriptor_static()
7155    }
7156
7157    fn new() -> IamPolicyAnalysisQuery_ResourceSelector {
7158        IamPolicyAnalysisQuery_ResourceSelector::new()
7159    }
7160
7161    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
7162        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
7163        descriptor.get(|| {
7164            let mut fields = ::std::vec::Vec::new();
7165            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
7166                "full_resource_name",
7167                |m: &IamPolicyAnalysisQuery_ResourceSelector| { &m.full_resource_name },
7168                |m: &mut IamPolicyAnalysisQuery_ResourceSelector| { &mut m.full_resource_name },
7169            ));
7170            ::protobuf::reflect::MessageDescriptor::new_pb_name::<IamPolicyAnalysisQuery_ResourceSelector>(
7171                "IamPolicyAnalysisQuery.ResourceSelector",
7172                fields,
7173                file_descriptor_proto()
7174            )
7175        })
7176    }
7177
7178    fn default_instance() -> &'static IamPolicyAnalysisQuery_ResourceSelector {
7179        static instance: ::protobuf::rt::LazyV2<IamPolicyAnalysisQuery_ResourceSelector> = ::protobuf::rt::LazyV2::INIT;
7180        instance.get(IamPolicyAnalysisQuery_ResourceSelector::new)
7181    }
7182}
7183
7184impl ::protobuf::Clear for IamPolicyAnalysisQuery_ResourceSelector {
7185    fn clear(&mut self) {
7186        self.full_resource_name.clear();
7187        self.unknown_fields.clear();
7188    }
7189}
7190
7191impl ::std::fmt::Debug for IamPolicyAnalysisQuery_ResourceSelector {
7192    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7193        ::protobuf::text_format::fmt(self, f)
7194    }
7195}
7196
7197impl ::protobuf::reflect::ProtobufValue for IamPolicyAnalysisQuery_ResourceSelector {
7198    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
7199        ::protobuf::reflect::ReflectValueRef::Message(self)
7200    }
7201}
7202
7203#[derive(PartialEq,Clone,Default)]
7204pub struct IamPolicyAnalysisQuery_IdentitySelector {
7205    // message fields
7206    pub identity: ::std::string::String,
7207    // special fields
7208    pub unknown_fields: ::protobuf::UnknownFields,
7209    pub cached_size: ::protobuf::CachedSize,
7210}
7211
7212impl<'a> ::std::default::Default for &'a IamPolicyAnalysisQuery_IdentitySelector {
7213    fn default() -> &'a IamPolicyAnalysisQuery_IdentitySelector {
7214        <IamPolicyAnalysisQuery_IdentitySelector as ::protobuf::Message>::default_instance()
7215    }
7216}
7217
7218impl IamPolicyAnalysisQuery_IdentitySelector {
7219    pub fn new() -> IamPolicyAnalysisQuery_IdentitySelector {
7220        ::std::default::Default::default()
7221    }
7222
7223    // string identity = 1;
7224
7225
7226    pub fn get_identity(&self) -> &str {
7227        &self.identity
7228    }
7229    pub fn clear_identity(&mut self) {
7230        self.identity.clear();
7231    }
7232
7233    // Param is passed by value, moved
7234    pub fn set_identity(&mut self, v: ::std::string::String) {
7235        self.identity = v;
7236    }
7237
7238    // Mutable pointer to the field.
7239    // If field is not initialized, it is initialized with default value first.
7240    pub fn mut_identity(&mut self) -> &mut ::std::string::String {
7241        &mut self.identity
7242    }
7243
7244    // Take field
7245    pub fn take_identity(&mut self) -> ::std::string::String {
7246        ::std::mem::replace(&mut self.identity, ::std::string::String::new())
7247    }
7248}
7249
7250impl ::protobuf::Message for IamPolicyAnalysisQuery_IdentitySelector {
7251    fn is_initialized(&self) -> bool {
7252        true
7253    }
7254
7255    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
7256        while !is.eof()? {
7257            let (field_number, wire_type) = is.read_tag_unpack()?;
7258            match field_number {
7259                1 => {
7260                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.identity)?;
7261                },
7262                _ => {
7263                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
7264                },
7265            };
7266        }
7267        ::std::result::Result::Ok(())
7268    }
7269
7270    // Compute sizes of nested messages
7271    #[allow(unused_variables)]
7272    fn compute_size(&self) -> u32 {
7273        let mut my_size = 0;
7274        if !self.identity.is_empty() {
7275            my_size += ::protobuf::rt::string_size(1, &self.identity);
7276        }
7277        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
7278        self.cached_size.set(my_size);
7279        my_size
7280    }
7281
7282    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
7283        if !self.identity.is_empty() {
7284            os.write_string(1, &self.identity)?;
7285        }
7286        os.write_unknown_fields(self.get_unknown_fields())?;
7287        ::std::result::Result::Ok(())
7288    }
7289
7290    fn get_cached_size(&self) -> u32 {
7291        self.cached_size.get()
7292    }
7293
7294    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
7295        &self.unknown_fields
7296    }
7297
7298    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
7299        &mut self.unknown_fields
7300    }
7301
7302    fn as_any(&self) -> &dyn (::std::any::Any) {
7303        self as &dyn (::std::any::Any)
7304    }
7305    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
7306        self as &mut dyn (::std::any::Any)
7307    }
7308    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
7309        self
7310    }
7311
7312    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
7313        Self::descriptor_static()
7314    }
7315
7316    fn new() -> IamPolicyAnalysisQuery_IdentitySelector {
7317        IamPolicyAnalysisQuery_IdentitySelector::new()
7318    }
7319
7320    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
7321        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
7322        descriptor.get(|| {
7323            let mut fields = ::std::vec::Vec::new();
7324            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
7325                "identity",
7326                |m: &IamPolicyAnalysisQuery_IdentitySelector| { &m.identity },
7327                |m: &mut IamPolicyAnalysisQuery_IdentitySelector| { &mut m.identity },
7328            ));
7329            ::protobuf::reflect::MessageDescriptor::new_pb_name::<IamPolicyAnalysisQuery_IdentitySelector>(
7330                "IamPolicyAnalysisQuery.IdentitySelector",
7331                fields,
7332                file_descriptor_proto()
7333            )
7334        })
7335    }
7336
7337    fn default_instance() -> &'static IamPolicyAnalysisQuery_IdentitySelector {
7338        static instance: ::protobuf::rt::LazyV2<IamPolicyAnalysisQuery_IdentitySelector> = ::protobuf::rt::LazyV2::INIT;
7339        instance.get(IamPolicyAnalysisQuery_IdentitySelector::new)
7340    }
7341}
7342
7343impl ::protobuf::Clear for IamPolicyAnalysisQuery_IdentitySelector {
7344    fn clear(&mut self) {
7345        self.identity.clear();
7346        self.unknown_fields.clear();
7347    }
7348}
7349
7350impl ::std::fmt::Debug for IamPolicyAnalysisQuery_IdentitySelector {
7351    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7352        ::protobuf::text_format::fmt(self, f)
7353    }
7354}
7355
7356impl ::protobuf::reflect::ProtobufValue for IamPolicyAnalysisQuery_IdentitySelector {
7357    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
7358        ::protobuf::reflect::ReflectValueRef::Message(self)
7359    }
7360}
7361
7362#[derive(PartialEq,Clone,Default)]
7363pub struct IamPolicyAnalysisQuery_AccessSelector {
7364    // message fields
7365    pub roles: ::protobuf::RepeatedField<::std::string::String>,
7366    pub permissions: ::protobuf::RepeatedField<::std::string::String>,
7367    // special fields
7368    pub unknown_fields: ::protobuf::UnknownFields,
7369    pub cached_size: ::protobuf::CachedSize,
7370}
7371
7372impl<'a> ::std::default::Default for &'a IamPolicyAnalysisQuery_AccessSelector {
7373    fn default() -> &'a IamPolicyAnalysisQuery_AccessSelector {
7374        <IamPolicyAnalysisQuery_AccessSelector as ::protobuf::Message>::default_instance()
7375    }
7376}
7377
7378impl IamPolicyAnalysisQuery_AccessSelector {
7379    pub fn new() -> IamPolicyAnalysisQuery_AccessSelector {
7380        ::std::default::Default::default()
7381    }
7382
7383    // repeated string roles = 1;
7384
7385
7386    pub fn get_roles(&self) -> &[::std::string::String] {
7387        &self.roles
7388    }
7389    pub fn clear_roles(&mut self) {
7390        self.roles.clear();
7391    }
7392
7393    // Param is passed by value, moved
7394    pub fn set_roles(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
7395        self.roles = v;
7396    }
7397
7398    // Mutable pointer to the field.
7399    pub fn mut_roles(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
7400        &mut self.roles
7401    }
7402
7403    // Take field
7404    pub fn take_roles(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
7405        ::std::mem::replace(&mut self.roles, ::protobuf::RepeatedField::new())
7406    }
7407
7408    // repeated string permissions = 2;
7409
7410
7411    pub fn get_permissions(&self) -> &[::std::string::String] {
7412        &self.permissions
7413    }
7414    pub fn clear_permissions(&mut self) {
7415        self.permissions.clear();
7416    }
7417
7418    // Param is passed by value, moved
7419    pub fn set_permissions(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
7420        self.permissions = v;
7421    }
7422
7423    // Mutable pointer to the field.
7424    pub fn mut_permissions(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
7425        &mut self.permissions
7426    }
7427
7428    // Take field
7429    pub fn take_permissions(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
7430        ::std::mem::replace(&mut self.permissions, ::protobuf::RepeatedField::new())
7431    }
7432}
7433
7434impl ::protobuf::Message for IamPolicyAnalysisQuery_AccessSelector {
7435    fn is_initialized(&self) -> bool {
7436        true
7437    }
7438
7439    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
7440        while !is.eof()? {
7441            let (field_number, wire_type) = is.read_tag_unpack()?;
7442            match field_number {
7443                1 => {
7444                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.roles)?;
7445                },
7446                2 => {
7447                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.permissions)?;
7448                },
7449                _ => {
7450                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
7451                },
7452            };
7453        }
7454        ::std::result::Result::Ok(())
7455    }
7456
7457    // Compute sizes of nested messages
7458    #[allow(unused_variables)]
7459    fn compute_size(&self) -> u32 {
7460        let mut my_size = 0;
7461        for value in &self.roles {
7462            my_size += ::protobuf::rt::string_size(1, &value);
7463        };
7464        for value in &self.permissions {
7465            my_size += ::protobuf::rt::string_size(2, &value);
7466        };
7467        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
7468        self.cached_size.set(my_size);
7469        my_size
7470    }
7471
7472    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
7473        for v in &self.roles {
7474            os.write_string(1, &v)?;
7475        };
7476        for v in &self.permissions {
7477            os.write_string(2, &v)?;
7478        };
7479        os.write_unknown_fields(self.get_unknown_fields())?;
7480        ::std::result::Result::Ok(())
7481    }
7482
7483    fn get_cached_size(&self) -> u32 {
7484        self.cached_size.get()
7485    }
7486
7487    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
7488        &self.unknown_fields
7489    }
7490
7491    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
7492        &mut self.unknown_fields
7493    }
7494
7495    fn as_any(&self) -> &dyn (::std::any::Any) {
7496        self as &dyn (::std::any::Any)
7497    }
7498    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
7499        self as &mut dyn (::std::any::Any)
7500    }
7501    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
7502        self
7503    }
7504
7505    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
7506        Self::descriptor_static()
7507    }
7508
7509    fn new() -> IamPolicyAnalysisQuery_AccessSelector {
7510        IamPolicyAnalysisQuery_AccessSelector::new()
7511    }
7512
7513    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
7514        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
7515        descriptor.get(|| {
7516            let mut fields = ::std::vec::Vec::new();
7517            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
7518                "roles",
7519                |m: &IamPolicyAnalysisQuery_AccessSelector| { &m.roles },
7520                |m: &mut IamPolicyAnalysisQuery_AccessSelector| { &mut m.roles },
7521            ));
7522            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
7523                "permissions",
7524                |m: &IamPolicyAnalysisQuery_AccessSelector| { &m.permissions },
7525                |m: &mut IamPolicyAnalysisQuery_AccessSelector| { &mut m.permissions },
7526            ));
7527            ::protobuf::reflect::MessageDescriptor::new_pb_name::<IamPolicyAnalysisQuery_AccessSelector>(
7528                "IamPolicyAnalysisQuery.AccessSelector",
7529                fields,
7530                file_descriptor_proto()
7531            )
7532        })
7533    }
7534
7535    fn default_instance() -> &'static IamPolicyAnalysisQuery_AccessSelector {
7536        static instance: ::protobuf::rt::LazyV2<IamPolicyAnalysisQuery_AccessSelector> = ::protobuf::rt::LazyV2::INIT;
7537        instance.get(IamPolicyAnalysisQuery_AccessSelector::new)
7538    }
7539}
7540
7541impl ::protobuf::Clear for IamPolicyAnalysisQuery_AccessSelector {
7542    fn clear(&mut self) {
7543        self.roles.clear();
7544        self.permissions.clear();
7545        self.unknown_fields.clear();
7546    }
7547}
7548
7549impl ::std::fmt::Debug for IamPolicyAnalysisQuery_AccessSelector {
7550    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7551        ::protobuf::text_format::fmt(self, f)
7552    }
7553}
7554
7555impl ::protobuf::reflect::ProtobufValue for IamPolicyAnalysisQuery_AccessSelector {
7556    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
7557        ::protobuf::reflect::ReflectValueRef::Message(self)
7558    }
7559}
7560
7561#[derive(PartialEq,Clone,Default)]
7562pub struct IamPolicyAnalysisQuery_Options {
7563    // message fields
7564    pub expand_groups: bool,
7565    pub expand_roles: bool,
7566    pub expand_resources: bool,
7567    pub output_resource_edges: bool,
7568    pub output_group_edges: bool,
7569    pub analyze_service_account_impersonation: bool,
7570    // special fields
7571    pub unknown_fields: ::protobuf::UnknownFields,
7572    pub cached_size: ::protobuf::CachedSize,
7573}
7574
7575impl<'a> ::std::default::Default for &'a IamPolicyAnalysisQuery_Options {
7576    fn default() -> &'a IamPolicyAnalysisQuery_Options {
7577        <IamPolicyAnalysisQuery_Options as ::protobuf::Message>::default_instance()
7578    }
7579}
7580
7581impl IamPolicyAnalysisQuery_Options {
7582    pub fn new() -> IamPolicyAnalysisQuery_Options {
7583        ::std::default::Default::default()
7584    }
7585
7586    // bool expand_groups = 1;
7587
7588
7589    pub fn get_expand_groups(&self) -> bool {
7590        self.expand_groups
7591    }
7592    pub fn clear_expand_groups(&mut self) {
7593        self.expand_groups = false;
7594    }
7595
7596    // Param is passed by value, moved
7597    pub fn set_expand_groups(&mut self, v: bool) {
7598        self.expand_groups = v;
7599    }
7600
7601    // bool expand_roles = 2;
7602
7603
7604    pub fn get_expand_roles(&self) -> bool {
7605        self.expand_roles
7606    }
7607    pub fn clear_expand_roles(&mut self) {
7608        self.expand_roles = false;
7609    }
7610
7611    // Param is passed by value, moved
7612    pub fn set_expand_roles(&mut self, v: bool) {
7613        self.expand_roles = v;
7614    }
7615
7616    // bool expand_resources = 3;
7617
7618
7619    pub fn get_expand_resources(&self) -> bool {
7620        self.expand_resources
7621    }
7622    pub fn clear_expand_resources(&mut self) {
7623        self.expand_resources = false;
7624    }
7625
7626    // Param is passed by value, moved
7627    pub fn set_expand_resources(&mut self, v: bool) {
7628        self.expand_resources = v;
7629    }
7630
7631    // bool output_resource_edges = 4;
7632
7633
7634    pub fn get_output_resource_edges(&self) -> bool {
7635        self.output_resource_edges
7636    }
7637    pub fn clear_output_resource_edges(&mut self) {
7638        self.output_resource_edges = false;
7639    }
7640
7641    // Param is passed by value, moved
7642    pub fn set_output_resource_edges(&mut self, v: bool) {
7643        self.output_resource_edges = v;
7644    }
7645
7646    // bool output_group_edges = 5;
7647
7648
7649    pub fn get_output_group_edges(&self) -> bool {
7650        self.output_group_edges
7651    }
7652    pub fn clear_output_group_edges(&mut self) {
7653        self.output_group_edges = false;
7654    }
7655
7656    // Param is passed by value, moved
7657    pub fn set_output_group_edges(&mut self, v: bool) {
7658        self.output_group_edges = v;
7659    }
7660
7661    // bool analyze_service_account_impersonation = 6;
7662
7663
7664    pub fn get_analyze_service_account_impersonation(&self) -> bool {
7665        self.analyze_service_account_impersonation
7666    }
7667    pub fn clear_analyze_service_account_impersonation(&mut self) {
7668        self.analyze_service_account_impersonation = false;
7669    }
7670
7671    // Param is passed by value, moved
7672    pub fn set_analyze_service_account_impersonation(&mut self, v: bool) {
7673        self.analyze_service_account_impersonation = v;
7674    }
7675}
7676
7677impl ::protobuf::Message for IamPolicyAnalysisQuery_Options {
7678    fn is_initialized(&self) -> bool {
7679        true
7680    }
7681
7682    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
7683        while !is.eof()? {
7684            let (field_number, wire_type) = is.read_tag_unpack()?;
7685            match field_number {
7686                1 => {
7687                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
7688                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
7689                    }
7690                    let tmp = is.read_bool()?;
7691                    self.expand_groups = tmp;
7692                },
7693                2 => {
7694                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
7695                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
7696                    }
7697                    let tmp = is.read_bool()?;
7698                    self.expand_roles = tmp;
7699                },
7700                3 => {
7701                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
7702                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
7703                    }
7704                    let tmp = is.read_bool()?;
7705                    self.expand_resources = tmp;
7706                },
7707                4 => {
7708                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
7709                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
7710                    }
7711                    let tmp = is.read_bool()?;
7712                    self.output_resource_edges = tmp;
7713                },
7714                5 => {
7715                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
7716                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
7717                    }
7718                    let tmp = is.read_bool()?;
7719                    self.output_group_edges = tmp;
7720                },
7721                6 => {
7722                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
7723                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
7724                    }
7725                    let tmp = is.read_bool()?;
7726                    self.analyze_service_account_impersonation = tmp;
7727                },
7728                _ => {
7729                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
7730                },
7731            };
7732        }
7733        ::std::result::Result::Ok(())
7734    }
7735
7736    // Compute sizes of nested messages
7737    #[allow(unused_variables)]
7738    fn compute_size(&self) -> u32 {
7739        let mut my_size = 0;
7740        if self.expand_groups != false {
7741            my_size += 2;
7742        }
7743        if self.expand_roles != false {
7744            my_size += 2;
7745        }
7746        if self.expand_resources != false {
7747            my_size += 2;
7748        }
7749        if self.output_resource_edges != false {
7750            my_size += 2;
7751        }
7752        if self.output_group_edges != false {
7753            my_size += 2;
7754        }
7755        if self.analyze_service_account_impersonation != false {
7756            my_size += 2;
7757        }
7758        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
7759        self.cached_size.set(my_size);
7760        my_size
7761    }
7762
7763    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
7764        if self.expand_groups != false {
7765            os.write_bool(1, self.expand_groups)?;
7766        }
7767        if self.expand_roles != false {
7768            os.write_bool(2, self.expand_roles)?;
7769        }
7770        if self.expand_resources != false {
7771            os.write_bool(3, self.expand_resources)?;
7772        }
7773        if self.output_resource_edges != false {
7774            os.write_bool(4, self.output_resource_edges)?;
7775        }
7776        if self.output_group_edges != false {
7777            os.write_bool(5, self.output_group_edges)?;
7778        }
7779        if self.analyze_service_account_impersonation != false {
7780            os.write_bool(6, self.analyze_service_account_impersonation)?;
7781        }
7782        os.write_unknown_fields(self.get_unknown_fields())?;
7783        ::std::result::Result::Ok(())
7784    }
7785
7786    fn get_cached_size(&self) -> u32 {
7787        self.cached_size.get()
7788    }
7789
7790    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
7791        &self.unknown_fields
7792    }
7793
7794    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
7795        &mut self.unknown_fields
7796    }
7797
7798    fn as_any(&self) -> &dyn (::std::any::Any) {
7799        self as &dyn (::std::any::Any)
7800    }
7801    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
7802        self as &mut dyn (::std::any::Any)
7803    }
7804    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
7805        self
7806    }
7807
7808    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
7809        Self::descriptor_static()
7810    }
7811
7812    fn new() -> IamPolicyAnalysisQuery_Options {
7813        IamPolicyAnalysisQuery_Options::new()
7814    }
7815
7816    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
7817        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
7818        descriptor.get(|| {
7819            let mut fields = ::std::vec::Vec::new();
7820            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
7821                "expand_groups",
7822                |m: &IamPolicyAnalysisQuery_Options| { &m.expand_groups },
7823                |m: &mut IamPolicyAnalysisQuery_Options| { &mut m.expand_groups },
7824            ));
7825            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
7826                "expand_roles",
7827                |m: &IamPolicyAnalysisQuery_Options| { &m.expand_roles },
7828                |m: &mut IamPolicyAnalysisQuery_Options| { &mut m.expand_roles },
7829            ));
7830            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
7831                "expand_resources",
7832                |m: &IamPolicyAnalysisQuery_Options| { &m.expand_resources },
7833                |m: &mut IamPolicyAnalysisQuery_Options| { &mut m.expand_resources },
7834            ));
7835            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
7836                "output_resource_edges",
7837                |m: &IamPolicyAnalysisQuery_Options| { &m.output_resource_edges },
7838                |m: &mut IamPolicyAnalysisQuery_Options| { &mut m.output_resource_edges },
7839            ));
7840            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
7841                "output_group_edges",
7842                |m: &IamPolicyAnalysisQuery_Options| { &m.output_group_edges },
7843                |m: &mut IamPolicyAnalysisQuery_Options| { &mut m.output_group_edges },
7844            ));
7845            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
7846                "analyze_service_account_impersonation",
7847                |m: &IamPolicyAnalysisQuery_Options| { &m.analyze_service_account_impersonation },
7848                |m: &mut IamPolicyAnalysisQuery_Options| { &mut m.analyze_service_account_impersonation },
7849            ));
7850            ::protobuf::reflect::MessageDescriptor::new_pb_name::<IamPolicyAnalysisQuery_Options>(
7851                "IamPolicyAnalysisQuery.Options",
7852                fields,
7853                file_descriptor_proto()
7854            )
7855        })
7856    }
7857
7858    fn default_instance() -> &'static IamPolicyAnalysisQuery_Options {
7859        static instance: ::protobuf::rt::LazyV2<IamPolicyAnalysisQuery_Options> = ::protobuf::rt::LazyV2::INIT;
7860        instance.get(IamPolicyAnalysisQuery_Options::new)
7861    }
7862}
7863
7864impl ::protobuf::Clear for IamPolicyAnalysisQuery_Options {
7865    fn clear(&mut self) {
7866        self.expand_groups = false;
7867        self.expand_roles = false;
7868        self.expand_resources = false;
7869        self.output_resource_edges = false;
7870        self.output_group_edges = false;
7871        self.analyze_service_account_impersonation = false;
7872        self.unknown_fields.clear();
7873    }
7874}
7875
7876impl ::std::fmt::Debug for IamPolicyAnalysisQuery_Options {
7877    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7878        ::protobuf::text_format::fmt(self, f)
7879    }
7880}
7881
7882impl ::protobuf::reflect::ProtobufValue for IamPolicyAnalysisQuery_Options {
7883    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
7884        ::protobuf::reflect::ReflectValueRef::Message(self)
7885    }
7886}
7887
7888#[derive(PartialEq,Clone,Default)]
7889pub struct IamPolicyAnalysisQuery_ConditionContext {
7890    // message oneof groups
7891    pub TimeContext: ::std::option::Option<IamPolicyAnalysisQuery_ConditionContext_oneof_TimeContext>,
7892    // special fields
7893    pub unknown_fields: ::protobuf::UnknownFields,
7894    pub cached_size: ::protobuf::CachedSize,
7895}
7896
7897impl<'a> ::std::default::Default for &'a IamPolicyAnalysisQuery_ConditionContext {
7898    fn default() -> &'a IamPolicyAnalysisQuery_ConditionContext {
7899        <IamPolicyAnalysisQuery_ConditionContext as ::protobuf::Message>::default_instance()
7900    }
7901}
7902
7903#[derive(Clone,PartialEq,Debug)]
7904pub enum IamPolicyAnalysisQuery_ConditionContext_oneof_TimeContext {
7905    access_time(::protobuf::well_known_types::Timestamp),
7906}
7907
7908impl IamPolicyAnalysisQuery_ConditionContext {
7909    pub fn new() -> IamPolicyAnalysisQuery_ConditionContext {
7910        ::std::default::Default::default()
7911    }
7912
7913    // .google.protobuf.Timestamp access_time = 1;
7914
7915
7916    pub fn get_access_time(&self) -> &::protobuf::well_known_types::Timestamp {
7917        match self.TimeContext {
7918            ::std::option::Option::Some(IamPolicyAnalysisQuery_ConditionContext_oneof_TimeContext::access_time(ref v)) => v,
7919            _ => <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance(),
7920        }
7921    }
7922    pub fn clear_access_time(&mut self) {
7923        self.TimeContext = ::std::option::Option::None;
7924    }
7925
7926    pub fn has_access_time(&self) -> bool {
7927        match self.TimeContext {
7928            ::std::option::Option::Some(IamPolicyAnalysisQuery_ConditionContext_oneof_TimeContext::access_time(..)) => true,
7929            _ => false,
7930        }
7931    }
7932
7933    // Param is passed by value, moved
7934    pub fn set_access_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
7935        self.TimeContext = ::std::option::Option::Some(IamPolicyAnalysisQuery_ConditionContext_oneof_TimeContext::access_time(v))
7936    }
7937
7938    // Mutable pointer to the field.
7939    pub fn mut_access_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
7940        if let ::std::option::Option::Some(IamPolicyAnalysisQuery_ConditionContext_oneof_TimeContext::access_time(_)) = self.TimeContext {
7941        } else {
7942            self.TimeContext = ::std::option::Option::Some(IamPolicyAnalysisQuery_ConditionContext_oneof_TimeContext::access_time(::protobuf::well_known_types::Timestamp::new()));
7943        }
7944        match self.TimeContext {
7945            ::std::option::Option::Some(IamPolicyAnalysisQuery_ConditionContext_oneof_TimeContext::access_time(ref mut v)) => v,
7946            _ => panic!(),
7947        }
7948    }
7949
7950    // Take field
7951    pub fn take_access_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
7952        if self.has_access_time() {
7953            match self.TimeContext.take() {
7954                ::std::option::Option::Some(IamPolicyAnalysisQuery_ConditionContext_oneof_TimeContext::access_time(v)) => v,
7955                _ => panic!(),
7956            }
7957        } else {
7958            ::protobuf::well_known_types::Timestamp::new()
7959        }
7960    }
7961}
7962
7963impl ::protobuf::Message for IamPolicyAnalysisQuery_ConditionContext {
7964    fn is_initialized(&self) -> bool {
7965        if let Some(IamPolicyAnalysisQuery_ConditionContext_oneof_TimeContext::access_time(ref v)) = self.TimeContext {
7966            if !v.is_initialized() {
7967                return false;
7968            }
7969        }
7970        true
7971    }
7972
7973    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
7974        while !is.eof()? {
7975            let (field_number, wire_type) = is.read_tag_unpack()?;
7976            match field_number {
7977                1 => {
7978                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
7979                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
7980                    }
7981                    self.TimeContext = ::std::option::Option::Some(IamPolicyAnalysisQuery_ConditionContext_oneof_TimeContext::access_time(is.read_message()?));
7982                },
7983                _ => {
7984                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
7985                },
7986            };
7987        }
7988        ::std::result::Result::Ok(())
7989    }
7990
7991    // Compute sizes of nested messages
7992    #[allow(unused_variables)]
7993    fn compute_size(&self) -> u32 {
7994        let mut my_size = 0;
7995        if let ::std::option::Option::Some(ref v) = self.TimeContext {
7996            match v {
7997                &IamPolicyAnalysisQuery_ConditionContext_oneof_TimeContext::access_time(ref v) => {
7998                    let len = v.compute_size();
7999                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
8000                },
8001            };
8002        }
8003        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
8004        self.cached_size.set(my_size);
8005        my_size
8006    }
8007
8008    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
8009        if let ::std::option::Option::Some(ref v) = self.TimeContext {
8010            match v {
8011                &IamPolicyAnalysisQuery_ConditionContext_oneof_TimeContext::access_time(ref v) => {
8012                    os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
8013                    os.write_raw_varint32(v.get_cached_size())?;
8014                    v.write_to_with_cached_sizes(os)?;
8015                },
8016            };
8017        }
8018        os.write_unknown_fields(self.get_unknown_fields())?;
8019        ::std::result::Result::Ok(())
8020    }
8021
8022    fn get_cached_size(&self) -> u32 {
8023        self.cached_size.get()
8024    }
8025
8026    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
8027        &self.unknown_fields
8028    }
8029
8030    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
8031        &mut self.unknown_fields
8032    }
8033
8034    fn as_any(&self) -> &dyn (::std::any::Any) {
8035        self as &dyn (::std::any::Any)
8036    }
8037    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
8038        self as &mut dyn (::std::any::Any)
8039    }
8040    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
8041        self
8042    }
8043
8044    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
8045        Self::descriptor_static()
8046    }
8047
8048    fn new() -> IamPolicyAnalysisQuery_ConditionContext {
8049        IamPolicyAnalysisQuery_ConditionContext::new()
8050    }
8051
8052    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
8053        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
8054        descriptor.get(|| {
8055            let mut fields = ::std::vec::Vec::new();
8056            fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, ::protobuf::well_known_types::Timestamp>(
8057                "access_time",
8058                IamPolicyAnalysisQuery_ConditionContext::has_access_time,
8059                IamPolicyAnalysisQuery_ConditionContext::get_access_time,
8060            ));
8061            ::protobuf::reflect::MessageDescriptor::new_pb_name::<IamPolicyAnalysisQuery_ConditionContext>(
8062                "IamPolicyAnalysisQuery.ConditionContext",
8063                fields,
8064                file_descriptor_proto()
8065            )
8066        })
8067    }
8068
8069    fn default_instance() -> &'static IamPolicyAnalysisQuery_ConditionContext {
8070        static instance: ::protobuf::rt::LazyV2<IamPolicyAnalysisQuery_ConditionContext> = ::protobuf::rt::LazyV2::INIT;
8071        instance.get(IamPolicyAnalysisQuery_ConditionContext::new)
8072    }
8073}
8074
8075impl ::protobuf::Clear for IamPolicyAnalysisQuery_ConditionContext {
8076    fn clear(&mut self) {
8077        self.TimeContext = ::std::option::Option::None;
8078        self.unknown_fields.clear();
8079    }
8080}
8081
8082impl ::std::fmt::Debug for IamPolicyAnalysisQuery_ConditionContext {
8083    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8084        ::protobuf::text_format::fmt(self, f)
8085    }
8086}
8087
8088impl ::protobuf::reflect::ProtobufValue for IamPolicyAnalysisQuery_ConditionContext {
8089    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
8090        ::protobuf::reflect::ReflectValueRef::Message(self)
8091    }
8092}
8093
8094#[derive(PartialEq,Clone,Default)]
8095pub struct AnalyzeIamPolicyRequest {
8096    // message fields
8097    pub analysis_query: ::protobuf::SingularPtrField<IamPolicyAnalysisQuery>,
8098    pub saved_analysis_query: ::std::string::String,
8099    pub execution_timeout: ::protobuf::SingularPtrField<::protobuf::well_known_types::Duration>,
8100    // special fields
8101    pub unknown_fields: ::protobuf::UnknownFields,
8102    pub cached_size: ::protobuf::CachedSize,
8103}
8104
8105impl<'a> ::std::default::Default for &'a AnalyzeIamPolicyRequest {
8106    fn default() -> &'a AnalyzeIamPolicyRequest {
8107        <AnalyzeIamPolicyRequest as ::protobuf::Message>::default_instance()
8108    }
8109}
8110
8111impl AnalyzeIamPolicyRequest {
8112    pub fn new() -> AnalyzeIamPolicyRequest {
8113        ::std::default::Default::default()
8114    }
8115
8116    // .google.cloud.asset.v1.IamPolicyAnalysisQuery analysis_query = 1;
8117
8118
8119    pub fn get_analysis_query(&self) -> &IamPolicyAnalysisQuery {
8120        self.analysis_query.as_ref().unwrap_or_else(|| <IamPolicyAnalysisQuery as ::protobuf::Message>::default_instance())
8121    }
8122    pub fn clear_analysis_query(&mut self) {
8123        self.analysis_query.clear();
8124    }
8125
8126    pub fn has_analysis_query(&self) -> bool {
8127        self.analysis_query.is_some()
8128    }
8129
8130    // Param is passed by value, moved
8131    pub fn set_analysis_query(&mut self, v: IamPolicyAnalysisQuery) {
8132        self.analysis_query = ::protobuf::SingularPtrField::some(v);
8133    }
8134
8135    // Mutable pointer to the field.
8136    // If field is not initialized, it is initialized with default value first.
8137    pub fn mut_analysis_query(&mut self) -> &mut IamPolicyAnalysisQuery {
8138        if self.analysis_query.is_none() {
8139            self.analysis_query.set_default();
8140        }
8141        self.analysis_query.as_mut().unwrap()
8142    }
8143
8144    // Take field
8145    pub fn take_analysis_query(&mut self) -> IamPolicyAnalysisQuery {
8146        self.analysis_query.take().unwrap_or_else(|| IamPolicyAnalysisQuery::new())
8147    }
8148
8149    // string saved_analysis_query = 3;
8150
8151
8152    pub fn get_saved_analysis_query(&self) -> &str {
8153        &self.saved_analysis_query
8154    }
8155    pub fn clear_saved_analysis_query(&mut self) {
8156        self.saved_analysis_query.clear();
8157    }
8158
8159    // Param is passed by value, moved
8160    pub fn set_saved_analysis_query(&mut self, v: ::std::string::String) {
8161        self.saved_analysis_query = v;
8162    }
8163
8164    // Mutable pointer to the field.
8165    // If field is not initialized, it is initialized with default value first.
8166    pub fn mut_saved_analysis_query(&mut self) -> &mut ::std::string::String {
8167        &mut self.saved_analysis_query
8168    }
8169
8170    // Take field
8171    pub fn take_saved_analysis_query(&mut self) -> ::std::string::String {
8172        ::std::mem::replace(&mut self.saved_analysis_query, ::std::string::String::new())
8173    }
8174
8175    // .google.protobuf.Duration execution_timeout = 2;
8176
8177
8178    pub fn get_execution_timeout(&self) -> &::protobuf::well_known_types::Duration {
8179        self.execution_timeout.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Duration as ::protobuf::Message>::default_instance())
8180    }
8181    pub fn clear_execution_timeout(&mut self) {
8182        self.execution_timeout.clear();
8183    }
8184
8185    pub fn has_execution_timeout(&self) -> bool {
8186        self.execution_timeout.is_some()
8187    }
8188
8189    // Param is passed by value, moved
8190    pub fn set_execution_timeout(&mut self, v: ::protobuf::well_known_types::Duration) {
8191        self.execution_timeout = ::protobuf::SingularPtrField::some(v);
8192    }
8193
8194    // Mutable pointer to the field.
8195    // If field is not initialized, it is initialized with default value first.
8196    pub fn mut_execution_timeout(&mut self) -> &mut ::protobuf::well_known_types::Duration {
8197        if self.execution_timeout.is_none() {
8198            self.execution_timeout.set_default();
8199        }
8200        self.execution_timeout.as_mut().unwrap()
8201    }
8202
8203    // Take field
8204    pub fn take_execution_timeout(&mut self) -> ::protobuf::well_known_types::Duration {
8205        self.execution_timeout.take().unwrap_or_else(|| ::protobuf::well_known_types::Duration::new())
8206    }
8207}
8208
8209impl ::protobuf::Message for AnalyzeIamPolicyRequest {
8210    fn is_initialized(&self) -> bool {
8211        for v in &self.analysis_query {
8212            if !v.is_initialized() {
8213                return false;
8214            }
8215        };
8216        for v in &self.execution_timeout {
8217            if !v.is_initialized() {
8218                return false;
8219            }
8220        };
8221        true
8222    }
8223
8224    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
8225        while !is.eof()? {
8226            let (field_number, wire_type) = is.read_tag_unpack()?;
8227            match field_number {
8228                1 => {
8229                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.analysis_query)?;
8230                },
8231                3 => {
8232                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.saved_analysis_query)?;
8233                },
8234                2 => {
8235                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.execution_timeout)?;
8236                },
8237                _ => {
8238                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
8239                },
8240            };
8241        }
8242        ::std::result::Result::Ok(())
8243    }
8244
8245    // Compute sizes of nested messages
8246    #[allow(unused_variables)]
8247    fn compute_size(&self) -> u32 {
8248        let mut my_size = 0;
8249        if let Some(ref v) = self.analysis_query.as_ref() {
8250            let len = v.compute_size();
8251            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
8252        }
8253        if !self.saved_analysis_query.is_empty() {
8254            my_size += ::protobuf::rt::string_size(3, &self.saved_analysis_query);
8255        }
8256        if let Some(ref v) = self.execution_timeout.as_ref() {
8257            let len = v.compute_size();
8258            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
8259        }
8260        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
8261        self.cached_size.set(my_size);
8262        my_size
8263    }
8264
8265    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
8266        if let Some(ref v) = self.analysis_query.as_ref() {
8267            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
8268            os.write_raw_varint32(v.get_cached_size())?;
8269            v.write_to_with_cached_sizes(os)?;
8270        }
8271        if !self.saved_analysis_query.is_empty() {
8272            os.write_string(3, &self.saved_analysis_query)?;
8273        }
8274        if let Some(ref v) = self.execution_timeout.as_ref() {
8275            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
8276            os.write_raw_varint32(v.get_cached_size())?;
8277            v.write_to_with_cached_sizes(os)?;
8278        }
8279        os.write_unknown_fields(self.get_unknown_fields())?;
8280        ::std::result::Result::Ok(())
8281    }
8282
8283    fn get_cached_size(&self) -> u32 {
8284        self.cached_size.get()
8285    }
8286
8287    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
8288        &self.unknown_fields
8289    }
8290
8291    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
8292        &mut self.unknown_fields
8293    }
8294
8295    fn as_any(&self) -> &dyn (::std::any::Any) {
8296        self as &dyn (::std::any::Any)
8297    }
8298    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
8299        self as &mut dyn (::std::any::Any)
8300    }
8301    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
8302        self
8303    }
8304
8305    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
8306        Self::descriptor_static()
8307    }
8308
8309    fn new() -> AnalyzeIamPolicyRequest {
8310        AnalyzeIamPolicyRequest::new()
8311    }
8312
8313    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
8314        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
8315        descriptor.get(|| {
8316            let mut fields = ::std::vec::Vec::new();
8317            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<IamPolicyAnalysisQuery>>(
8318                "analysis_query",
8319                |m: &AnalyzeIamPolicyRequest| { &m.analysis_query },
8320                |m: &mut AnalyzeIamPolicyRequest| { &mut m.analysis_query },
8321            ));
8322            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
8323                "saved_analysis_query",
8324                |m: &AnalyzeIamPolicyRequest| { &m.saved_analysis_query },
8325                |m: &mut AnalyzeIamPolicyRequest| { &mut m.saved_analysis_query },
8326            ));
8327            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Duration>>(
8328                "execution_timeout",
8329                |m: &AnalyzeIamPolicyRequest| { &m.execution_timeout },
8330                |m: &mut AnalyzeIamPolicyRequest| { &mut m.execution_timeout },
8331            ));
8332            ::protobuf::reflect::MessageDescriptor::new_pb_name::<AnalyzeIamPolicyRequest>(
8333                "AnalyzeIamPolicyRequest",
8334                fields,
8335                file_descriptor_proto()
8336            )
8337        })
8338    }
8339
8340    fn default_instance() -> &'static AnalyzeIamPolicyRequest {
8341        static instance: ::protobuf::rt::LazyV2<AnalyzeIamPolicyRequest> = ::protobuf::rt::LazyV2::INIT;
8342        instance.get(AnalyzeIamPolicyRequest::new)
8343    }
8344}
8345
8346impl ::protobuf::Clear for AnalyzeIamPolicyRequest {
8347    fn clear(&mut self) {
8348        self.analysis_query.clear();
8349        self.saved_analysis_query.clear();
8350        self.execution_timeout.clear();
8351        self.unknown_fields.clear();
8352    }
8353}
8354
8355impl ::std::fmt::Debug for AnalyzeIamPolicyRequest {
8356    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8357        ::protobuf::text_format::fmt(self, f)
8358    }
8359}
8360
8361impl ::protobuf::reflect::ProtobufValue for AnalyzeIamPolicyRequest {
8362    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
8363        ::protobuf::reflect::ReflectValueRef::Message(self)
8364    }
8365}
8366
8367#[derive(PartialEq,Clone,Default)]
8368pub struct AnalyzeIamPolicyResponse {
8369    // message fields
8370    pub main_analysis: ::protobuf::SingularPtrField<AnalyzeIamPolicyResponse_IamPolicyAnalysis>,
8371    pub service_account_impersonation_analysis: ::protobuf::RepeatedField<AnalyzeIamPolicyResponse_IamPolicyAnalysis>,
8372    pub fully_explored: bool,
8373    // special fields
8374    pub unknown_fields: ::protobuf::UnknownFields,
8375    pub cached_size: ::protobuf::CachedSize,
8376}
8377
8378impl<'a> ::std::default::Default for &'a AnalyzeIamPolicyResponse {
8379    fn default() -> &'a AnalyzeIamPolicyResponse {
8380        <AnalyzeIamPolicyResponse as ::protobuf::Message>::default_instance()
8381    }
8382}
8383
8384impl AnalyzeIamPolicyResponse {
8385    pub fn new() -> AnalyzeIamPolicyResponse {
8386        ::std::default::Default::default()
8387    }
8388
8389    // .google.cloud.asset.v1.AnalyzeIamPolicyResponse.IamPolicyAnalysis main_analysis = 1;
8390
8391
8392    pub fn get_main_analysis(&self) -> &AnalyzeIamPolicyResponse_IamPolicyAnalysis {
8393        self.main_analysis.as_ref().unwrap_or_else(|| <AnalyzeIamPolicyResponse_IamPolicyAnalysis as ::protobuf::Message>::default_instance())
8394    }
8395    pub fn clear_main_analysis(&mut self) {
8396        self.main_analysis.clear();
8397    }
8398
8399    pub fn has_main_analysis(&self) -> bool {
8400        self.main_analysis.is_some()
8401    }
8402
8403    // Param is passed by value, moved
8404    pub fn set_main_analysis(&mut self, v: AnalyzeIamPolicyResponse_IamPolicyAnalysis) {
8405        self.main_analysis = ::protobuf::SingularPtrField::some(v);
8406    }
8407
8408    // Mutable pointer to the field.
8409    // If field is not initialized, it is initialized with default value first.
8410    pub fn mut_main_analysis(&mut self) -> &mut AnalyzeIamPolicyResponse_IamPolicyAnalysis {
8411        if self.main_analysis.is_none() {
8412            self.main_analysis.set_default();
8413        }
8414        self.main_analysis.as_mut().unwrap()
8415    }
8416
8417    // Take field
8418    pub fn take_main_analysis(&mut self) -> AnalyzeIamPolicyResponse_IamPolicyAnalysis {
8419        self.main_analysis.take().unwrap_or_else(|| AnalyzeIamPolicyResponse_IamPolicyAnalysis::new())
8420    }
8421
8422    // repeated .google.cloud.asset.v1.AnalyzeIamPolicyResponse.IamPolicyAnalysis service_account_impersonation_analysis = 2;
8423
8424
8425    pub fn get_service_account_impersonation_analysis(&self) -> &[AnalyzeIamPolicyResponse_IamPolicyAnalysis] {
8426        &self.service_account_impersonation_analysis
8427    }
8428    pub fn clear_service_account_impersonation_analysis(&mut self) {
8429        self.service_account_impersonation_analysis.clear();
8430    }
8431
8432    // Param is passed by value, moved
8433    pub fn set_service_account_impersonation_analysis(&mut self, v: ::protobuf::RepeatedField<AnalyzeIamPolicyResponse_IamPolicyAnalysis>) {
8434        self.service_account_impersonation_analysis = v;
8435    }
8436
8437    // Mutable pointer to the field.
8438    pub fn mut_service_account_impersonation_analysis(&mut self) -> &mut ::protobuf::RepeatedField<AnalyzeIamPolicyResponse_IamPolicyAnalysis> {
8439        &mut self.service_account_impersonation_analysis
8440    }
8441
8442    // Take field
8443    pub fn take_service_account_impersonation_analysis(&mut self) -> ::protobuf::RepeatedField<AnalyzeIamPolicyResponse_IamPolicyAnalysis> {
8444        ::std::mem::replace(&mut self.service_account_impersonation_analysis, ::protobuf::RepeatedField::new())
8445    }
8446
8447    // bool fully_explored = 3;
8448
8449
8450    pub fn get_fully_explored(&self) -> bool {
8451        self.fully_explored
8452    }
8453    pub fn clear_fully_explored(&mut self) {
8454        self.fully_explored = false;
8455    }
8456
8457    // Param is passed by value, moved
8458    pub fn set_fully_explored(&mut self, v: bool) {
8459        self.fully_explored = v;
8460    }
8461}
8462
8463impl ::protobuf::Message for AnalyzeIamPolicyResponse {
8464    fn is_initialized(&self) -> bool {
8465        for v in &self.main_analysis {
8466            if !v.is_initialized() {
8467                return false;
8468            }
8469        };
8470        for v in &self.service_account_impersonation_analysis {
8471            if !v.is_initialized() {
8472                return false;
8473            }
8474        };
8475        true
8476    }
8477
8478    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
8479        while !is.eof()? {
8480            let (field_number, wire_type) = is.read_tag_unpack()?;
8481            match field_number {
8482                1 => {
8483                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.main_analysis)?;
8484                },
8485                2 => {
8486                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.service_account_impersonation_analysis)?;
8487                },
8488                3 => {
8489                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
8490                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
8491                    }
8492                    let tmp = is.read_bool()?;
8493                    self.fully_explored = tmp;
8494                },
8495                _ => {
8496                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
8497                },
8498            };
8499        }
8500        ::std::result::Result::Ok(())
8501    }
8502
8503    // Compute sizes of nested messages
8504    #[allow(unused_variables)]
8505    fn compute_size(&self) -> u32 {
8506        let mut my_size = 0;
8507        if let Some(ref v) = self.main_analysis.as_ref() {
8508            let len = v.compute_size();
8509            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
8510        }
8511        for value in &self.service_account_impersonation_analysis {
8512            let len = value.compute_size();
8513            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
8514        };
8515        if self.fully_explored != false {
8516            my_size += 2;
8517        }
8518        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
8519        self.cached_size.set(my_size);
8520        my_size
8521    }
8522
8523    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
8524        if let Some(ref v) = self.main_analysis.as_ref() {
8525            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
8526            os.write_raw_varint32(v.get_cached_size())?;
8527            v.write_to_with_cached_sizes(os)?;
8528        }
8529        for v in &self.service_account_impersonation_analysis {
8530            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
8531            os.write_raw_varint32(v.get_cached_size())?;
8532            v.write_to_with_cached_sizes(os)?;
8533        };
8534        if self.fully_explored != false {
8535            os.write_bool(3, self.fully_explored)?;
8536        }
8537        os.write_unknown_fields(self.get_unknown_fields())?;
8538        ::std::result::Result::Ok(())
8539    }
8540
8541    fn get_cached_size(&self) -> u32 {
8542        self.cached_size.get()
8543    }
8544
8545    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
8546        &self.unknown_fields
8547    }
8548
8549    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
8550        &mut self.unknown_fields
8551    }
8552
8553    fn as_any(&self) -> &dyn (::std::any::Any) {
8554        self as &dyn (::std::any::Any)
8555    }
8556    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
8557        self as &mut dyn (::std::any::Any)
8558    }
8559    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
8560        self
8561    }
8562
8563    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
8564        Self::descriptor_static()
8565    }
8566
8567    fn new() -> AnalyzeIamPolicyResponse {
8568        AnalyzeIamPolicyResponse::new()
8569    }
8570
8571    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
8572        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
8573        descriptor.get(|| {
8574            let mut fields = ::std::vec::Vec::new();
8575            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<AnalyzeIamPolicyResponse_IamPolicyAnalysis>>(
8576                "main_analysis",
8577                |m: &AnalyzeIamPolicyResponse| { &m.main_analysis },
8578                |m: &mut AnalyzeIamPolicyResponse| { &mut m.main_analysis },
8579            ));
8580            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<AnalyzeIamPolicyResponse_IamPolicyAnalysis>>(
8581                "service_account_impersonation_analysis",
8582                |m: &AnalyzeIamPolicyResponse| { &m.service_account_impersonation_analysis },
8583                |m: &mut AnalyzeIamPolicyResponse| { &mut m.service_account_impersonation_analysis },
8584            ));
8585            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
8586                "fully_explored",
8587                |m: &AnalyzeIamPolicyResponse| { &m.fully_explored },
8588                |m: &mut AnalyzeIamPolicyResponse| { &mut m.fully_explored },
8589            ));
8590            ::protobuf::reflect::MessageDescriptor::new_pb_name::<AnalyzeIamPolicyResponse>(
8591                "AnalyzeIamPolicyResponse",
8592                fields,
8593                file_descriptor_proto()
8594            )
8595        })
8596    }
8597
8598    fn default_instance() -> &'static AnalyzeIamPolicyResponse {
8599        static instance: ::protobuf::rt::LazyV2<AnalyzeIamPolicyResponse> = ::protobuf::rt::LazyV2::INIT;
8600        instance.get(AnalyzeIamPolicyResponse::new)
8601    }
8602}
8603
8604impl ::protobuf::Clear for AnalyzeIamPolicyResponse {
8605    fn clear(&mut self) {
8606        self.main_analysis.clear();
8607        self.service_account_impersonation_analysis.clear();
8608        self.fully_explored = false;
8609        self.unknown_fields.clear();
8610    }
8611}
8612
8613impl ::std::fmt::Debug for AnalyzeIamPolicyResponse {
8614    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8615        ::protobuf::text_format::fmt(self, f)
8616    }
8617}
8618
8619impl ::protobuf::reflect::ProtobufValue for AnalyzeIamPolicyResponse {
8620    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
8621        ::protobuf::reflect::ReflectValueRef::Message(self)
8622    }
8623}
8624
8625#[derive(PartialEq,Clone,Default)]
8626pub struct AnalyzeIamPolicyResponse_IamPolicyAnalysis {
8627    // message fields
8628    pub analysis_query: ::protobuf::SingularPtrField<IamPolicyAnalysisQuery>,
8629    pub analysis_results: ::protobuf::RepeatedField<super::assets::IamPolicyAnalysisResult>,
8630    pub fully_explored: bool,
8631    pub non_critical_errors: ::protobuf::RepeatedField<super::assets::IamPolicyAnalysisState>,
8632    // special fields
8633    pub unknown_fields: ::protobuf::UnknownFields,
8634    pub cached_size: ::protobuf::CachedSize,
8635}
8636
8637impl<'a> ::std::default::Default for &'a AnalyzeIamPolicyResponse_IamPolicyAnalysis {
8638    fn default() -> &'a AnalyzeIamPolicyResponse_IamPolicyAnalysis {
8639        <AnalyzeIamPolicyResponse_IamPolicyAnalysis as ::protobuf::Message>::default_instance()
8640    }
8641}
8642
8643impl AnalyzeIamPolicyResponse_IamPolicyAnalysis {
8644    pub fn new() -> AnalyzeIamPolicyResponse_IamPolicyAnalysis {
8645        ::std::default::Default::default()
8646    }
8647
8648    // .google.cloud.asset.v1.IamPolicyAnalysisQuery analysis_query = 1;
8649
8650
8651    pub fn get_analysis_query(&self) -> &IamPolicyAnalysisQuery {
8652        self.analysis_query.as_ref().unwrap_or_else(|| <IamPolicyAnalysisQuery as ::protobuf::Message>::default_instance())
8653    }
8654    pub fn clear_analysis_query(&mut self) {
8655        self.analysis_query.clear();
8656    }
8657
8658    pub fn has_analysis_query(&self) -> bool {
8659        self.analysis_query.is_some()
8660    }
8661
8662    // Param is passed by value, moved
8663    pub fn set_analysis_query(&mut self, v: IamPolicyAnalysisQuery) {
8664        self.analysis_query = ::protobuf::SingularPtrField::some(v);
8665    }
8666
8667    // Mutable pointer to the field.
8668    // If field is not initialized, it is initialized with default value first.
8669    pub fn mut_analysis_query(&mut self) -> &mut IamPolicyAnalysisQuery {
8670        if self.analysis_query.is_none() {
8671            self.analysis_query.set_default();
8672        }
8673        self.analysis_query.as_mut().unwrap()
8674    }
8675
8676    // Take field
8677    pub fn take_analysis_query(&mut self) -> IamPolicyAnalysisQuery {
8678        self.analysis_query.take().unwrap_or_else(|| IamPolicyAnalysisQuery::new())
8679    }
8680
8681    // repeated .google.cloud.asset.v1.IamPolicyAnalysisResult analysis_results = 2;
8682
8683
8684    pub fn get_analysis_results(&self) -> &[super::assets::IamPolicyAnalysisResult] {
8685        &self.analysis_results
8686    }
8687    pub fn clear_analysis_results(&mut self) {
8688        self.analysis_results.clear();
8689    }
8690
8691    // Param is passed by value, moved
8692    pub fn set_analysis_results(&mut self, v: ::protobuf::RepeatedField<super::assets::IamPolicyAnalysisResult>) {
8693        self.analysis_results = v;
8694    }
8695
8696    // Mutable pointer to the field.
8697    pub fn mut_analysis_results(&mut self) -> &mut ::protobuf::RepeatedField<super::assets::IamPolicyAnalysisResult> {
8698        &mut self.analysis_results
8699    }
8700
8701    // Take field
8702    pub fn take_analysis_results(&mut self) -> ::protobuf::RepeatedField<super::assets::IamPolicyAnalysisResult> {
8703        ::std::mem::replace(&mut self.analysis_results, ::protobuf::RepeatedField::new())
8704    }
8705
8706    // bool fully_explored = 3;
8707
8708
8709    pub fn get_fully_explored(&self) -> bool {
8710        self.fully_explored
8711    }
8712    pub fn clear_fully_explored(&mut self) {
8713        self.fully_explored = false;
8714    }
8715
8716    // Param is passed by value, moved
8717    pub fn set_fully_explored(&mut self, v: bool) {
8718        self.fully_explored = v;
8719    }
8720
8721    // repeated .google.cloud.asset.v1.IamPolicyAnalysisState non_critical_errors = 5;
8722
8723
8724    pub fn get_non_critical_errors(&self) -> &[super::assets::IamPolicyAnalysisState] {
8725        &self.non_critical_errors
8726    }
8727    pub fn clear_non_critical_errors(&mut self) {
8728        self.non_critical_errors.clear();
8729    }
8730
8731    // Param is passed by value, moved
8732    pub fn set_non_critical_errors(&mut self, v: ::protobuf::RepeatedField<super::assets::IamPolicyAnalysisState>) {
8733        self.non_critical_errors = v;
8734    }
8735
8736    // Mutable pointer to the field.
8737    pub fn mut_non_critical_errors(&mut self) -> &mut ::protobuf::RepeatedField<super::assets::IamPolicyAnalysisState> {
8738        &mut self.non_critical_errors
8739    }
8740
8741    // Take field
8742    pub fn take_non_critical_errors(&mut self) -> ::protobuf::RepeatedField<super::assets::IamPolicyAnalysisState> {
8743        ::std::mem::replace(&mut self.non_critical_errors, ::protobuf::RepeatedField::new())
8744    }
8745}
8746
8747impl ::protobuf::Message for AnalyzeIamPolicyResponse_IamPolicyAnalysis {
8748    fn is_initialized(&self) -> bool {
8749        for v in &self.analysis_query {
8750            if !v.is_initialized() {
8751                return false;
8752            }
8753        };
8754        for v in &self.analysis_results {
8755            if !v.is_initialized() {
8756                return false;
8757            }
8758        };
8759        for v in &self.non_critical_errors {
8760            if !v.is_initialized() {
8761                return false;
8762            }
8763        };
8764        true
8765    }
8766
8767    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
8768        while !is.eof()? {
8769            let (field_number, wire_type) = is.read_tag_unpack()?;
8770            match field_number {
8771                1 => {
8772                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.analysis_query)?;
8773                },
8774                2 => {
8775                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.analysis_results)?;
8776                },
8777                3 => {
8778                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
8779                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
8780                    }
8781                    let tmp = is.read_bool()?;
8782                    self.fully_explored = tmp;
8783                },
8784                5 => {
8785                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.non_critical_errors)?;
8786                },
8787                _ => {
8788                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
8789                },
8790            };
8791        }
8792        ::std::result::Result::Ok(())
8793    }
8794
8795    // Compute sizes of nested messages
8796    #[allow(unused_variables)]
8797    fn compute_size(&self) -> u32 {
8798        let mut my_size = 0;
8799        if let Some(ref v) = self.analysis_query.as_ref() {
8800            let len = v.compute_size();
8801            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
8802        }
8803        for value in &self.analysis_results {
8804            let len = value.compute_size();
8805            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
8806        };
8807        if self.fully_explored != false {
8808            my_size += 2;
8809        }
8810        for value in &self.non_critical_errors {
8811            let len = value.compute_size();
8812            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
8813        };
8814        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
8815        self.cached_size.set(my_size);
8816        my_size
8817    }
8818
8819    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
8820        if let Some(ref v) = self.analysis_query.as_ref() {
8821            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
8822            os.write_raw_varint32(v.get_cached_size())?;
8823            v.write_to_with_cached_sizes(os)?;
8824        }
8825        for v in &self.analysis_results {
8826            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
8827            os.write_raw_varint32(v.get_cached_size())?;
8828            v.write_to_with_cached_sizes(os)?;
8829        };
8830        if self.fully_explored != false {
8831            os.write_bool(3, self.fully_explored)?;
8832        }
8833        for v in &self.non_critical_errors {
8834            os.write_tag(5, ::protobuf::wire_format::WireTypeLengthDelimited)?;
8835            os.write_raw_varint32(v.get_cached_size())?;
8836            v.write_to_with_cached_sizes(os)?;
8837        };
8838        os.write_unknown_fields(self.get_unknown_fields())?;
8839        ::std::result::Result::Ok(())
8840    }
8841
8842    fn get_cached_size(&self) -> u32 {
8843        self.cached_size.get()
8844    }
8845
8846    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
8847        &self.unknown_fields
8848    }
8849
8850    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
8851        &mut self.unknown_fields
8852    }
8853
8854    fn as_any(&self) -> &dyn (::std::any::Any) {
8855        self as &dyn (::std::any::Any)
8856    }
8857    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
8858        self as &mut dyn (::std::any::Any)
8859    }
8860    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
8861        self
8862    }
8863
8864    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
8865        Self::descriptor_static()
8866    }
8867
8868    fn new() -> AnalyzeIamPolicyResponse_IamPolicyAnalysis {
8869        AnalyzeIamPolicyResponse_IamPolicyAnalysis::new()
8870    }
8871
8872    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
8873        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
8874        descriptor.get(|| {
8875            let mut fields = ::std::vec::Vec::new();
8876            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<IamPolicyAnalysisQuery>>(
8877                "analysis_query",
8878                |m: &AnalyzeIamPolicyResponse_IamPolicyAnalysis| { &m.analysis_query },
8879                |m: &mut AnalyzeIamPolicyResponse_IamPolicyAnalysis| { &mut m.analysis_query },
8880            ));
8881            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::assets::IamPolicyAnalysisResult>>(
8882                "analysis_results",
8883                |m: &AnalyzeIamPolicyResponse_IamPolicyAnalysis| { &m.analysis_results },
8884                |m: &mut AnalyzeIamPolicyResponse_IamPolicyAnalysis| { &mut m.analysis_results },
8885            ));
8886            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
8887                "fully_explored",
8888                |m: &AnalyzeIamPolicyResponse_IamPolicyAnalysis| { &m.fully_explored },
8889                |m: &mut AnalyzeIamPolicyResponse_IamPolicyAnalysis| { &mut m.fully_explored },
8890            ));
8891            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::assets::IamPolicyAnalysisState>>(
8892                "non_critical_errors",
8893                |m: &AnalyzeIamPolicyResponse_IamPolicyAnalysis| { &m.non_critical_errors },
8894                |m: &mut AnalyzeIamPolicyResponse_IamPolicyAnalysis| { &mut m.non_critical_errors },
8895            ));
8896            ::protobuf::reflect::MessageDescriptor::new_pb_name::<AnalyzeIamPolicyResponse_IamPolicyAnalysis>(
8897                "AnalyzeIamPolicyResponse.IamPolicyAnalysis",
8898                fields,
8899                file_descriptor_proto()
8900            )
8901        })
8902    }
8903
8904    fn default_instance() -> &'static AnalyzeIamPolicyResponse_IamPolicyAnalysis {
8905        static instance: ::protobuf::rt::LazyV2<AnalyzeIamPolicyResponse_IamPolicyAnalysis> = ::protobuf::rt::LazyV2::INIT;
8906        instance.get(AnalyzeIamPolicyResponse_IamPolicyAnalysis::new)
8907    }
8908}
8909
8910impl ::protobuf::Clear for AnalyzeIamPolicyResponse_IamPolicyAnalysis {
8911    fn clear(&mut self) {
8912        self.analysis_query.clear();
8913        self.analysis_results.clear();
8914        self.fully_explored = false;
8915        self.non_critical_errors.clear();
8916        self.unknown_fields.clear();
8917    }
8918}
8919
8920impl ::std::fmt::Debug for AnalyzeIamPolicyResponse_IamPolicyAnalysis {
8921    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8922        ::protobuf::text_format::fmt(self, f)
8923    }
8924}
8925
8926impl ::protobuf::reflect::ProtobufValue for AnalyzeIamPolicyResponse_IamPolicyAnalysis {
8927    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
8928        ::protobuf::reflect::ReflectValueRef::Message(self)
8929    }
8930}
8931
8932#[derive(PartialEq,Clone,Default)]
8933pub struct IamPolicyAnalysisOutputConfig {
8934    // message oneof groups
8935    pub destination: ::std::option::Option<IamPolicyAnalysisOutputConfig_oneof_destination>,
8936    // special fields
8937    pub unknown_fields: ::protobuf::UnknownFields,
8938    pub cached_size: ::protobuf::CachedSize,
8939}
8940
8941impl<'a> ::std::default::Default for &'a IamPolicyAnalysisOutputConfig {
8942    fn default() -> &'a IamPolicyAnalysisOutputConfig {
8943        <IamPolicyAnalysisOutputConfig as ::protobuf::Message>::default_instance()
8944    }
8945}
8946
8947#[derive(Clone,PartialEq,Debug)]
8948pub enum IamPolicyAnalysisOutputConfig_oneof_destination {
8949    gcs_destination(IamPolicyAnalysisOutputConfig_GcsDestination),
8950    bigquery_destination(IamPolicyAnalysisOutputConfig_BigQueryDestination),
8951}
8952
8953impl IamPolicyAnalysisOutputConfig {
8954    pub fn new() -> IamPolicyAnalysisOutputConfig {
8955        ::std::default::Default::default()
8956    }
8957
8958    // .google.cloud.asset.v1.IamPolicyAnalysisOutputConfig.GcsDestination gcs_destination = 1;
8959
8960
8961    pub fn get_gcs_destination(&self) -> &IamPolicyAnalysisOutputConfig_GcsDestination {
8962        match self.destination {
8963            ::std::option::Option::Some(IamPolicyAnalysisOutputConfig_oneof_destination::gcs_destination(ref v)) => v,
8964            _ => <IamPolicyAnalysisOutputConfig_GcsDestination as ::protobuf::Message>::default_instance(),
8965        }
8966    }
8967    pub fn clear_gcs_destination(&mut self) {
8968        self.destination = ::std::option::Option::None;
8969    }
8970
8971    pub fn has_gcs_destination(&self) -> bool {
8972        match self.destination {
8973            ::std::option::Option::Some(IamPolicyAnalysisOutputConfig_oneof_destination::gcs_destination(..)) => true,
8974            _ => false,
8975        }
8976    }
8977
8978    // Param is passed by value, moved
8979    pub fn set_gcs_destination(&mut self, v: IamPolicyAnalysisOutputConfig_GcsDestination) {
8980        self.destination = ::std::option::Option::Some(IamPolicyAnalysisOutputConfig_oneof_destination::gcs_destination(v))
8981    }
8982
8983    // Mutable pointer to the field.
8984    pub fn mut_gcs_destination(&mut self) -> &mut IamPolicyAnalysisOutputConfig_GcsDestination {
8985        if let ::std::option::Option::Some(IamPolicyAnalysisOutputConfig_oneof_destination::gcs_destination(_)) = self.destination {
8986        } else {
8987            self.destination = ::std::option::Option::Some(IamPolicyAnalysisOutputConfig_oneof_destination::gcs_destination(IamPolicyAnalysisOutputConfig_GcsDestination::new()));
8988        }
8989        match self.destination {
8990            ::std::option::Option::Some(IamPolicyAnalysisOutputConfig_oneof_destination::gcs_destination(ref mut v)) => v,
8991            _ => panic!(),
8992        }
8993    }
8994
8995    // Take field
8996    pub fn take_gcs_destination(&mut self) -> IamPolicyAnalysisOutputConfig_GcsDestination {
8997        if self.has_gcs_destination() {
8998            match self.destination.take() {
8999                ::std::option::Option::Some(IamPolicyAnalysisOutputConfig_oneof_destination::gcs_destination(v)) => v,
9000                _ => panic!(),
9001            }
9002        } else {
9003            IamPolicyAnalysisOutputConfig_GcsDestination::new()
9004        }
9005    }
9006
9007    // .google.cloud.asset.v1.IamPolicyAnalysisOutputConfig.BigQueryDestination bigquery_destination = 2;
9008
9009
9010    pub fn get_bigquery_destination(&self) -> &IamPolicyAnalysisOutputConfig_BigQueryDestination {
9011        match self.destination {
9012            ::std::option::Option::Some(IamPolicyAnalysisOutputConfig_oneof_destination::bigquery_destination(ref v)) => v,
9013            _ => <IamPolicyAnalysisOutputConfig_BigQueryDestination as ::protobuf::Message>::default_instance(),
9014        }
9015    }
9016    pub fn clear_bigquery_destination(&mut self) {
9017        self.destination = ::std::option::Option::None;
9018    }
9019
9020    pub fn has_bigquery_destination(&self) -> bool {
9021        match self.destination {
9022            ::std::option::Option::Some(IamPolicyAnalysisOutputConfig_oneof_destination::bigquery_destination(..)) => true,
9023            _ => false,
9024        }
9025    }
9026
9027    // Param is passed by value, moved
9028    pub fn set_bigquery_destination(&mut self, v: IamPolicyAnalysisOutputConfig_BigQueryDestination) {
9029        self.destination = ::std::option::Option::Some(IamPolicyAnalysisOutputConfig_oneof_destination::bigquery_destination(v))
9030    }
9031
9032    // Mutable pointer to the field.
9033    pub fn mut_bigquery_destination(&mut self) -> &mut IamPolicyAnalysisOutputConfig_BigQueryDestination {
9034        if let ::std::option::Option::Some(IamPolicyAnalysisOutputConfig_oneof_destination::bigquery_destination(_)) = self.destination {
9035        } else {
9036            self.destination = ::std::option::Option::Some(IamPolicyAnalysisOutputConfig_oneof_destination::bigquery_destination(IamPolicyAnalysisOutputConfig_BigQueryDestination::new()));
9037        }
9038        match self.destination {
9039            ::std::option::Option::Some(IamPolicyAnalysisOutputConfig_oneof_destination::bigquery_destination(ref mut v)) => v,
9040            _ => panic!(),
9041        }
9042    }
9043
9044    // Take field
9045    pub fn take_bigquery_destination(&mut self) -> IamPolicyAnalysisOutputConfig_BigQueryDestination {
9046        if self.has_bigquery_destination() {
9047            match self.destination.take() {
9048                ::std::option::Option::Some(IamPolicyAnalysisOutputConfig_oneof_destination::bigquery_destination(v)) => v,
9049                _ => panic!(),
9050            }
9051        } else {
9052            IamPolicyAnalysisOutputConfig_BigQueryDestination::new()
9053        }
9054    }
9055}
9056
9057impl ::protobuf::Message for IamPolicyAnalysisOutputConfig {
9058    fn is_initialized(&self) -> bool {
9059        if let Some(IamPolicyAnalysisOutputConfig_oneof_destination::gcs_destination(ref v)) = self.destination {
9060            if !v.is_initialized() {
9061                return false;
9062            }
9063        }
9064        if let Some(IamPolicyAnalysisOutputConfig_oneof_destination::bigquery_destination(ref v)) = self.destination {
9065            if !v.is_initialized() {
9066                return false;
9067            }
9068        }
9069        true
9070    }
9071
9072    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
9073        while !is.eof()? {
9074            let (field_number, wire_type) = is.read_tag_unpack()?;
9075            match field_number {
9076                1 => {
9077                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
9078                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
9079                    }
9080                    self.destination = ::std::option::Option::Some(IamPolicyAnalysisOutputConfig_oneof_destination::gcs_destination(is.read_message()?));
9081                },
9082                2 => {
9083                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
9084                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
9085                    }
9086                    self.destination = ::std::option::Option::Some(IamPolicyAnalysisOutputConfig_oneof_destination::bigquery_destination(is.read_message()?));
9087                },
9088                _ => {
9089                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
9090                },
9091            };
9092        }
9093        ::std::result::Result::Ok(())
9094    }
9095
9096    // Compute sizes of nested messages
9097    #[allow(unused_variables)]
9098    fn compute_size(&self) -> u32 {
9099        let mut my_size = 0;
9100        if let ::std::option::Option::Some(ref v) = self.destination {
9101            match v {
9102                &IamPolicyAnalysisOutputConfig_oneof_destination::gcs_destination(ref v) => {
9103                    let len = v.compute_size();
9104                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
9105                },
9106                &IamPolicyAnalysisOutputConfig_oneof_destination::bigquery_destination(ref v) => {
9107                    let len = v.compute_size();
9108                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
9109                },
9110            };
9111        }
9112        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
9113        self.cached_size.set(my_size);
9114        my_size
9115    }
9116
9117    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
9118        if let ::std::option::Option::Some(ref v) = self.destination {
9119            match v {
9120                &IamPolicyAnalysisOutputConfig_oneof_destination::gcs_destination(ref v) => {
9121                    os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
9122                    os.write_raw_varint32(v.get_cached_size())?;
9123                    v.write_to_with_cached_sizes(os)?;
9124                },
9125                &IamPolicyAnalysisOutputConfig_oneof_destination::bigquery_destination(ref v) => {
9126                    os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
9127                    os.write_raw_varint32(v.get_cached_size())?;
9128                    v.write_to_with_cached_sizes(os)?;
9129                },
9130            };
9131        }
9132        os.write_unknown_fields(self.get_unknown_fields())?;
9133        ::std::result::Result::Ok(())
9134    }
9135
9136    fn get_cached_size(&self) -> u32 {
9137        self.cached_size.get()
9138    }
9139
9140    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
9141        &self.unknown_fields
9142    }
9143
9144    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
9145        &mut self.unknown_fields
9146    }
9147
9148    fn as_any(&self) -> &dyn (::std::any::Any) {
9149        self as &dyn (::std::any::Any)
9150    }
9151    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
9152        self as &mut dyn (::std::any::Any)
9153    }
9154    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
9155        self
9156    }
9157
9158    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
9159        Self::descriptor_static()
9160    }
9161
9162    fn new() -> IamPolicyAnalysisOutputConfig {
9163        IamPolicyAnalysisOutputConfig::new()
9164    }
9165
9166    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
9167        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
9168        descriptor.get(|| {
9169            let mut fields = ::std::vec::Vec::new();
9170            fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, IamPolicyAnalysisOutputConfig_GcsDestination>(
9171                "gcs_destination",
9172                IamPolicyAnalysisOutputConfig::has_gcs_destination,
9173                IamPolicyAnalysisOutputConfig::get_gcs_destination,
9174            ));
9175            fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, IamPolicyAnalysisOutputConfig_BigQueryDestination>(
9176                "bigquery_destination",
9177                IamPolicyAnalysisOutputConfig::has_bigquery_destination,
9178                IamPolicyAnalysisOutputConfig::get_bigquery_destination,
9179            ));
9180            ::protobuf::reflect::MessageDescriptor::new_pb_name::<IamPolicyAnalysisOutputConfig>(
9181                "IamPolicyAnalysisOutputConfig",
9182                fields,
9183                file_descriptor_proto()
9184            )
9185        })
9186    }
9187
9188    fn default_instance() -> &'static IamPolicyAnalysisOutputConfig {
9189        static instance: ::protobuf::rt::LazyV2<IamPolicyAnalysisOutputConfig> = ::protobuf::rt::LazyV2::INIT;
9190        instance.get(IamPolicyAnalysisOutputConfig::new)
9191    }
9192}
9193
9194impl ::protobuf::Clear for IamPolicyAnalysisOutputConfig {
9195    fn clear(&mut self) {
9196        self.destination = ::std::option::Option::None;
9197        self.destination = ::std::option::Option::None;
9198        self.unknown_fields.clear();
9199    }
9200}
9201
9202impl ::std::fmt::Debug for IamPolicyAnalysisOutputConfig {
9203    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9204        ::protobuf::text_format::fmt(self, f)
9205    }
9206}
9207
9208impl ::protobuf::reflect::ProtobufValue for IamPolicyAnalysisOutputConfig {
9209    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
9210        ::protobuf::reflect::ReflectValueRef::Message(self)
9211    }
9212}
9213
9214#[derive(PartialEq,Clone,Default)]
9215pub struct IamPolicyAnalysisOutputConfig_GcsDestination {
9216    // message fields
9217    pub uri: ::std::string::String,
9218    // special fields
9219    pub unknown_fields: ::protobuf::UnknownFields,
9220    pub cached_size: ::protobuf::CachedSize,
9221}
9222
9223impl<'a> ::std::default::Default for &'a IamPolicyAnalysisOutputConfig_GcsDestination {
9224    fn default() -> &'a IamPolicyAnalysisOutputConfig_GcsDestination {
9225        <IamPolicyAnalysisOutputConfig_GcsDestination as ::protobuf::Message>::default_instance()
9226    }
9227}
9228
9229impl IamPolicyAnalysisOutputConfig_GcsDestination {
9230    pub fn new() -> IamPolicyAnalysisOutputConfig_GcsDestination {
9231        ::std::default::Default::default()
9232    }
9233
9234    // string uri = 1;
9235
9236
9237    pub fn get_uri(&self) -> &str {
9238        &self.uri
9239    }
9240    pub fn clear_uri(&mut self) {
9241        self.uri.clear();
9242    }
9243
9244    // Param is passed by value, moved
9245    pub fn set_uri(&mut self, v: ::std::string::String) {
9246        self.uri = v;
9247    }
9248
9249    // Mutable pointer to the field.
9250    // If field is not initialized, it is initialized with default value first.
9251    pub fn mut_uri(&mut self) -> &mut ::std::string::String {
9252        &mut self.uri
9253    }
9254
9255    // Take field
9256    pub fn take_uri(&mut self) -> ::std::string::String {
9257        ::std::mem::replace(&mut self.uri, ::std::string::String::new())
9258    }
9259}
9260
9261impl ::protobuf::Message for IamPolicyAnalysisOutputConfig_GcsDestination {
9262    fn is_initialized(&self) -> bool {
9263        true
9264    }
9265
9266    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
9267        while !is.eof()? {
9268            let (field_number, wire_type) = is.read_tag_unpack()?;
9269            match field_number {
9270                1 => {
9271                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.uri)?;
9272                },
9273                _ => {
9274                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
9275                },
9276            };
9277        }
9278        ::std::result::Result::Ok(())
9279    }
9280
9281    // Compute sizes of nested messages
9282    #[allow(unused_variables)]
9283    fn compute_size(&self) -> u32 {
9284        let mut my_size = 0;
9285        if !self.uri.is_empty() {
9286            my_size += ::protobuf::rt::string_size(1, &self.uri);
9287        }
9288        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
9289        self.cached_size.set(my_size);
9290        my_size
9291    }
9292
9293    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
9294        if !self.uri.is_empty() {
9295            os.write_string(1, &self.uri)?;
9296        }
9297        os.write_unknown_fields(self.get_unknown_fields())?;
9298        ::std::result::Result::Ok(())
9299    }
9300
9301    fn get_cached_size(&self) -> u32 {
9302        self.cached_size.get()
9303    }
9304
9305    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
9306        &self.unknown_fields
9307    }
9308
9309    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
9310        &mut self.unknown_fields
9311    }
9312
9313    fn as_any(&self) -> &dyn (::std::any::Any) {
9314        self as &dyn (::std::any::Any)
9315    }
9316    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
9317        self as &mut dyn (::std::any::Any)
9318    }
9319    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
9320        self
9321    }
9322
9323    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
9324        Self::descriptor_static()
9325    }
9326
9327    fn new() -> IamPolicyAnalysisOutputConfig_GcsDestination {
9328        IamPolicyAnalysisOutputConfig_GcsDestination::new()
9329    }
9330
9331    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
9332        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
9333        descriptor.get(|| {
9334            let mut fields = ::std::vec::Vec::new();
9335            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
9336                "uri",
9337                |m: &IamPolicyAnalysisOutputConfig_GcsDestination| { &m.uri },
9338                |m: &mut IamPolicyAnalysisOutputConfig_GcsDestination| { &mut m.uri },
9339            ));
9340            ::protobuf::reflect::MessageDescriptor::new_pb_name::<IamPolicyAnalysisOutputConfig_GcsDestination>(
9341                "IamPolicyAnalysisOutputConfig.GcsDestination",
9342                fields,
9343                file_descriptor_proto()
9344            )
9345        })
9346    }
9347
9348    fn default_instance() -> &'static IamPolicyAnalysisOutputConfig_GcsDestination {
9349        static instance: ::protobuf::rt::LazyV2<IamPolicyAnalysisOutputConfig_GcsDestination> = ::protobuf::rt::LazyV2::INIT;
9350        instance.get(IamPolicyAnalysisOutputConfig_GcsDestination::new)
9351    }
9352}
9353
9354impl ::protobuf::Clear for IamPolicyAnalysisOutputConfig_GcsDestination {
9355    fn clear(&mut self) {
9356        self.uri.clear();
9357        self.unknown_fields.clear();
9358    }
9359}
9360
9361impl ::std::fmt::Debug for IamPolicyAnalysisOutputConfig_GcsDestination {
9362    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9363        ::protobuf::text_format::fmt(self, f)
9364    }
9365}
9366
9367impl ::protobuf::reflect::ProtobufValue for IamPolicyAnalysisOutputConfig_GcsDestination {
9368    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
9369        ::protobuf::reflect::ReflectValueRef::Message(self)
9370    }
9371}
9372
9373#[derive(PartialEq,Clone,Default)]
9374pub struct IamPolicyAnalysisOutputConfig_BigQueryDestination {
9375    // message fields
9376    pub dataset: ::std::string::String,
9377    pub table_prefix: ::std::string::String,
9378    pub partition_key: IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey,
9379    pub write_disposition: ::std::string::String,
9380    // special fields
9381    pub unknown_fields: ::protobuf::UnknownFields,
9382    pub cached_size: ::protobuf::CachedSize,
9383}
9384
9385impl<'a> ::std::default::Default for &'a IamPolicyAnalysisOutputConfig_BigQueryDestination {
9386    fn default() -> &'a IamPolicyAnalysisOutputConfig_BigQueryDestination {
9387        <IamPolicyAnalysisOutputConfig_BigQueryDestination as ::protobuf::Message>::default_instance()
9388    }
9389}
9390
9391impl IamPolicyAnalysisOutputConfig_BigQueryDestination {
9392    pub fn new() -> IamPolicyAnalysisOutputConfig_BigQueryDestination {
9393        ::std::default::Default::default()
9394    }
9395
9396    // string dataset = 1;
9397
9398
9399    pub fn get_dataset(&self) -> &str {
9400        &self.dataset
9401    }
9402    pub fn clear_dataset(&mut self) {
9403        self.dataset.clear();
9404    }
9405
9406    // Param is passed by value, moved
9407    pub fn set_dataset(&mut self, v: ::std::string::String) {
9408        self.dataset = v;
9409    }
9410
9411    // Mutable pointer to the field.
9412    // If field is not initialized, it is initialized with default value first.
9413    pub fn mut_dataset(&mut self) -> &mut ::std::string::String {
9414        &mut self.dataset
9415    }
9416
9417    // Take field
9418    pub fn take_dataset(&mut self) -> ::std::string::String {
9419        ::std::mem::replace(&mut self.dataset, ::std::string::String::new())
9420    }
9421
9422    // string table_prefix = 2;
9423
9424
9425    pub fn get_table_prefix(&self) -> &str {
9426        &self.table_prefix
9427    }
9428    pub fn clear_table_prefix(&mut self) {
9429        self.table_prefix.clear();
9430    }
9431
9432    // Param is passed by value, moved
9433    pub fn set_table_prefix(&mut self, v: ::std::string::String) {
9434        self.table_prefix = v;
9435    }
9436
9437    // Mutable pointer to the field.
9438    // If field is not initialized, it is initialized with default value first.
9439    pub fn mut_table_prefix(&mut self) -> &mut ::std::string::String {
9440        &mut self.table_prefix
9441    }
9442
9443    // Take field
9444    pub fn take_table_prefix(&mut self) -> ::std::string::String {
9445        ::std::mem::replace(&mut self.table_prefix, ::std::string::String::new())
9446    }
9447
9448    // .google.cloud.asset.v1.IamPolicyAnalysisOutputConfig.BigQueryDestination.PartitionKey partition_key = 3;
9449
9450
9451    pub fn get_partition_key(&self) -> IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey {
9452        self.partition_key
9453    }
9454    pub fn clear_partition_key(&mut self) {
9455        self.partition_key = IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey::PARTITION_KEY_UNSPECIFIED;
9456    }
9457
9458    // Param is passed by value, moved
9459    pub fn set_partition_key(&mut self, v: IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey) {
9460        self.partition_key = v;
9461    }
9462
9463    // string write_disposition = 4;
9464
9465
9466    pub fn get_write_disposition(&self) -> &str {
9467        &self.write_disposition
9468    }
9469    pub fn clear_write_disposition(&mut self) {
9470        self.write_disposition.clear();
9471    }
9472
9473    // Param is passed by value, moved
9474    pub fn set_write_disposition(&mut self, v: ::std::string::String) {
9475        self.write_disposition = v;
9476    }
9477
9478    // Mutable pointer to the field.
9479    // If field is not initialized, it is initialized with default value first.
9480    pub fn mut_write_disposition(&mut self) -> &mut ::std::string::String {
9481        &mut self.write_disposition
9482    }
9483
9484    // Take field
9485    pub fn take_write_disposition(&mut self) -> ::std::string::String {
9486        ::std::mem::replace(&mut self.write_disposition, ::std::string::String::new())
9487    }
9488}
9489
9490impl ::protobuf::Message for IamPolicyAnalysisOutputConfig_BigQueryDestination {
9491    fn is_initialized(&self) -> bool {
9492        true
9493    }
9494
9495    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
9496        while !is.eof()? {
9497            let (field_number, wire_type) = is.read_tag_unpack()?;
9498            match field_number {
9499                1 => {
9500                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.dataset)?;
9501                },
9502                2 => {
9503                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.table_prefix)?;
9504                },
9505                3 => {
9506                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.partition_key, 3, &mut self.unknown_fields)?
9507                },
9508                4 => {
9509                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.write_disposition)?;
9510                },
9511                _ => {
9512                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
9513                },
9514            };
9515        }
9516        ::std::result::Result::Ok(())
9517    }
9518
9519    // Compute sizes of nested messages
9520    #[allow(unused_variables)]
9521    fn compute_size(&self) -> u32 {
9522        let mut my_size = 0;
9523        if !self.dataset.is_empty() {
9524            my_size += ::protobuf::rt::string_size(1, &self.dataset);
9525        }
9526        if !self.table_prefix.is_empty() {
9527            my_size += ::protobuf::rt::string_size(2, &self.table_prefix);
9528        }
9529        if self.partition_key != IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey::PARTITION_KEY_UNSPECIFIED {
9530            my_size += ::protobuf::rt::enum_size(3, self.partition_key);
9531        }
9532        if !self.write_disposition.is_empty() {
9533            my_size += ::protobuf::rt::string_size(4, &self.write_disposition);
9534        }
9535        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
9536        self.cached_size.set(my_size);
9537        my_size
9538    }
9539
9540    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
9541        if !self.dataset.is_empty() {
9542            os.write_string(1, &self.dataset)?;
9543        }
9544        if !self.table_prefix.is_empty() {
9545            os.write_string(2, &self.table_prefix)?;
9546        }
9547        if self.partition_key != IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey::PARTITION_KEY_UNSPECIFIED {
9548            os.write_enum(3, ::protobuf::ProtobufEnum::value(&self.partition_key))?;
9549        }
9550        if !self.write_disposition.is_empty() {
9551            os.write_string(4, &self.write_disposition)?;
9552        }
9553        os.write_unknown_fields(self.get_unknown_fields())?;
9554        ::std::result::Result::Ok(())
9555    }
9556
9557    fn get_cached_size(&self) -> u32 {
9558        self.cached_size.get()
9559    }
9560
9561    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
9562        &self.unknown_fields
9563    }
9564
9565    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
9566        &mut self.unknown_fields
9567    }
9568
9569    fn as_any(&self) -> &dyn (::std::any::Any) {
9570        self as &dyn (::std::any::Any)
9571    }
9572    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
9573        self as &mut dyn (::std::any::Any)
9574    }
9575    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
9576        self
9577    }
9578
9579    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
9580        Self::descriptor_static()
9581    }
9582
9583    fn new() -> IamPolicyAnalysisOutputConfig_BigQueryDestination {
9584        IamPolicyAnalysisOutputConfig_BigQueryDestination::new()
9585    }
9586
9587    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
9588        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
9589        descriptor.get(|| {
9590            let mut fields = ::std::vec::Vec::new();
9591            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
9592                "dataset",
9593                |m: &IamPolicyAnalysisOutputConfig_BigQueryDestination| { &m.dataset },
9594                |m: &mut IamPolicyAnalysisOutputConfig_BigQueryDestination| { &mut m.dataset },
9595            ));
9596            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
9597                "table_prefix",
9598                |m: &IamPolicyAnalysisOutputConfig_BigQueryDestination| { &m.table_prefix },
9599                |m: &mut IamPolicyAnalysisOutputConfig_BigQueryDestination| { &mut m.table_prefix },
9600            ));
9601            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey>>(
9602                "partition_key",
9603                |m: &IamPolicyAnalysisOutputConfig_BigQueryDestination| { &m.partition_key },
9604                |m: &mut IamPolicyAnalysisOutputConfig_BigQueryDestination| { &mut m.partition_key },
9605            ));
9606            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
9607                "write_disposition",
9608                |m: &IamPolicyAnalysisOutputConfig_BigQueryDestination| { &m.write_disposition },
9609                |m: &mut IamPolicyAnalysisOutputConfig_BigQueryDestination| { &mut m.write_disposition },
9610            ));
9611            ::protobuf::reflect::MessageDescriptor::new_pb_name::<IamPolicyAnalysisOutputConfig_BigQueryDestination>(
9612                "IamPolicyAnalysisOutputConfig.BigQueryDestination",
9613                fields,
9614                file_descriptor_proto()
9615            )
9616        })
9617    }
9618
9619    fn default_instance() -> &'static IamPolicyAnalysisOutputConfig_BigQueryDestination {
9620        static instance: ::protobuf::rt::LazyV2<IamPolicyAnalysisOutputConfig_BigQueryDestination> = ::protobuf::rt::LazyV2::INIT;
9621        instance.get(IamPolicyAnalysisOutputConfig_BigQueryDestination::new)
9622    }
9623}
9624
9625impl ::protobuf::Clear for IamPolicyAnalysisOutputConfig_BigQueryDestination {
9626    fn clear(&mut self) {
9627        self.dataset.clear();
9628        self.table_prefix.clear();
9629        self.partition_key = IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey::PARTITION_KEY_UNSPECIFIED;
9630        self.write_disposition.clear();
9631        self.unknown_fields.clear();
9632    }
9633}
9634
9635impl ::std::fmt::Debug for IamPolicyAnalysisOutputConfig_BigQueryDestination {
9636    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9637        ::protobuf::text_format::fmt(self, f)
9638    }
9639}
9640
9641impl ::protobuf::reflect::ProtobufValue for IamPolicyAnalysisOutputConfig_BigQueryDestination {
9642    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
9643        ::protobuf::reflect::ReflectValueRef::Message(self)
9644    }
9645}
9646
9647#[derive(Clone,PartialEq,Eq,Debug,Hash)]
9648pub enum IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey {
9649    PARTITION_KEY_UNSPECIFIED = 0,
9650    REQUEST_TIME = 1,
9651}
9652
9653impl ::protobuf::ProtobufEnum for IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey {
9654    fn value(&self) -> i32 {
9655        *self as i32
9656    }
9657
9658    fn from_i32(value: i32) -> ::std::option::Option<IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey> {
9659        match value {
9660            0 => ::std::option::Option::Some(IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey::PARTITION_KEY_UNSPECIFIED),
9661            1 => ::std::option::Option::Some(IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey::REQUEST_TIME),
9662            _ => ::std::option::Option::None
9663        }
9664    }
9665
9666    fn values() -> &'static [Self] {
9667        static values: &'static [IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey] = &[
9668            IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey::PARTITION_KEY_UNSPECIFIED,
9669            IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey::REQUEST_TIME,
9670        ];
9671        values
9672    }
9673
9674    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
9675        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
9676        descriptor.get(|| {
9677            ::protobuf::reflect::EnumDescriptor::new_pb_name::<IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey>("IamPolicyAnalysisOutputConfig.BigQueryDestination.PartitionKey", file_descriptor_proto())
9678        })
9679    }
9680}
9681
9682impl ::std::marker::Copy for IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey {
9683}
9684
9685impl ::std::default::Default for IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey {
9686    fn default() -> Self {
9687        IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey::PARTITION_KEY_UNSPECIFIED
9688    }
9689}
9690
9691impl ::protobuf::reflect::ProtobufValue for IamPolicyAnalysisOutputConfig_BigQueryDestination_PartitionKey {
9692    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
9693        ::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
9694    }
9695}
9696
9697#[derive(PartialEq,Clone,Default)]
9698pub struct AnalyzeIamPolicyLongrunningRequest {
9699    // message fields
9700    pub analysis_query: ::protobuf::SingularPtrField<IamPolicyAnalysisQuery>,
9701    pub saved_analysis_query: ::std::string::String,
9702    pub output_config: ::protobuf::SingularPtrField<IamPolicyAnalysisOutputConfig>,
9703    // special fields
9704    pub unknown_fields: ::protobuf::UnknownFields,
9705    pub cached_size: ::protobuf::CachedSize,
9706}
9707
9708impl<'a> ::std::default::Default for &'a AnalyzeIamPolicyLongrunningRequest {
9709    fn default() -> &'a AnalyzeIamPolicyLongrunningRequest {
9710        <AnalyzeIamPolicyLongrunningRequest as ::protobuf::Message>::default_instance()
9711    }
9712}
9713
9714impl AnalyzeIamPolicyLongrunningRequest {
9715    pub fn new() -> AnalyzeIamPolicyLongrunningRequest {
9716        ::std::default::Default::default()
9717    }
9718
9719    // .google.cloud.asset.v1.IamPolicyAnalysisQuery analysis_query = 1;
9720
9721
9722    pub fn get_analysis_query(&self) -> &IamPolicyAnalysisQuery {
9723        self.analysis_query.as_ref().unwrap_or_else(|| <IamPolicyAnalysisQuery as ::protobuf::Message>::default_instance())
9724    }
9725    pub fn clear_analysis_query(&mut self) {
9726        self.analysis_query.clear();
9727    }
9728
9729    pub fn has_analysis_query(&self) -> bool {
9730        self.analysis_query.is_some()
9731    }
9732
9733    // Param is passed by value, moved
9734    pub fn set_analysis_query(&mut self, v: IamPolicyAnalysisQuery) {
9735        self.analysis_query = ::protobuf::SingularPtrField::some(v);
9736    }
9737
9738    // Mutable pointer to the field.
9739    // If field is not initialized, it is initialized with default value first.
9740    pub fn mut_analysis_query(&mut self) -> &mut IamPolicyAnalysisQuery {
9741        if self.analysis_query.is_none() {
9742            self.analysis_query.set_default();
9743        }
9744        self.analysis_query.as_mut().unwrap()
9745    }
9746
9747    // Take field
9748    pub fn take_analysis_query(&mut self) -> IamPolicyAnalysisQuery {
9749        self.analysis_query.take().unwrap_or_else(|| IamPolicyAnalysisQuery::new())
9750    }
9751
9752    // string saved_analysis_query = 3;
9753
9754
9755    pub fn get_saved_analysis_query(&self) -> &str {
9756        &self.saved_analysis_query
9757    }
9758    pub fn clear_saved_analysis_query(&mut self) {
9759        self.saved_analysis_query.clear();
9760    }
9761
9762    // Param is passed by value, moved
9763    pub fn set_saved_analysis_query(&mut self, v: ::std::string::String) {
9764        self.saved_analysis_query = v;
9765    }
9766
9767    // Mutable pointer to the field.
9768    // If field is not initialized, it is initialized with default value first.
9769    pub fn mut_saved_analysis_query(&mut self) -> &mut ::std::string::String {
9770        &mut self.saved_analysis_query
9771    }
9772
9773    // Take field
9774    pub fn take_saved_analysis_query(&mut self) -> ::std::string::String {
9775        ::std::mem::replace(&mut self.saved_analysis_query, ::std::string::String::new())
9776    }
9777
9778    // .google.cloud.asset.v1.IamPolicyAnalysisOutputConfig output_config = 2;
9779
9780
9781    pub fn get_output_config(&self) -> &IamPolicyAnalysisOutputConfig {
9782        self.output_config.as_ref().unwrap_or_else(|| <IamPolicyAnalysisOutputConfig as ::protobuf::Message>::default_instance())
9783    }
9784    pub fn clear_output_config(&mut self) {
9785        self.output_config.clear();
9786    }
9787
9788    pub fn has_output_config(&self) -> bool {
9789        self.output_config.is_some()
9790    }
9791
9792    // Param is passed by value, moved
9793    pub fn set_output_config(&mut self, v: IamPolicyAnalysisOutputConfig) {
9794        self.output_config = ::protobuf::SingularPtrField::some(v);
9795    }
9796
9797    // Mutable pointer to the field.
9798    // If field is not initialized, it is initialized with default value first.
9799    pub fn mut_output_config(&mut self) -> &mut IamPolicyAnalysisOutputConfig {
9800        if self.output_config.is_none() {
9801            self.output_config.set_default();
9802        }
9803        self.output_config.as_mut().unwrap()
9804    }
9805
9806    // Take field
9807    pub fn take_output_config(&mut self) -> IamPolicyAnalysisOutputConfig {
9808        self.output_config.take().unwrap_or_else(|| IamPolicyAnalysisOutputConfig::new())
9809    }
9810}
9811
9812impl ::protobuf::Message for AnalyzeIamPolicyLongrunningRequest {
9813    fn is_initialized(&self) -> bool {
9814        for v in &self.analysis_query {
9815            if !v.is_initialized() {
9816                return false;
9817            }
9818        };
9819        for v in &self.output_config {
9820            if !v.is_initialized() {
9821                return false;
9822            }
9823        };
9824        true
9825    }
9826
9827    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
9828        while !is.eof()? {
9829            let (field_number, wire_type) = is.read_tag_unpack()?;
9830            match field_number {
9831                1 => {
9832                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.analysis_query)?;
9833                },
9834                3 => {
9835                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.saved_analysis_query)?;
9836                },
9837                2 => {
9838                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.output_config)?;
9839                },
9840                _ => {
9841                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
9842                },
9843            };
9844        }
9845        ::std::result::Result::Ok(())
9846    }
9847
9848    // Compute sizes of nested messages
9849    #[allow(unused_variables)]
9850    fn compute_size(&self) -> u32 {
9851        let mut my_size = 0;
9852        if let Some(ref v) = self.analysis_query.as_ref() {
9853            let len = v.compute_size();
9854            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
9855        }
9856        if !self.saved_analysis_query.is_empty() {
9857            my_size += ::protobuf::rt::string_size(3, &self.saved_analysis_query);
9858        }
9859        if let Some(ref v) = self.output_config.as_ref() {
9860            let len = v.compute_size();
9861            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
9862        }
9863        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
9864        self.cached_size.set(my_size);
9865        my_size
9866    }
9867
9868    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
9869        if let Some(ref v) = self.analysis_query.as_ref() {
9870            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
9871            os.write_raw_varint32(v.get_cached_size())?;
9872            v.write_to_with_cached_sizes(os)?;
9873        }
9874        if !self.saved_analysis_query.is_empty() {
9875            os.write_string(3, &self.saved_analysis_query)?;
9876        }
9877        if let Some(ref v) = self.output_config.as_ref() {
9878            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
9879            os.write_raw_varint32(v.get_cached_size())?;
9880            v.write_to_with_cached_sizes(os)?;
9881        }
9882        os.write_unknown_fields(self.get_unknown_fields())?;
9883        ::std::result::Result::Ok(())
9884    }
9885
9886    fn get_cached_size(&self) -> u32 {
9887        self.cached_size.get()
9888    }
9889
9890    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
9891        &self.unknown_fields
9892    }
9893
9894    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
9895        &mut self.unknown_fields
9896    }
9897
9898    fn as_any(&self) -> &dyn (::std::any::Any) {
9899        self as &dyn (::std::any::Any)
9900    }
9901    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
9902        self as &mut dyn (::std::any::Any)
9903    }
9904    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
9905        self
9906    }
9907
9908    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
9909        Self::descriptor_static()
9910    }
9911
9912    fn new() -> AnalyzeIamPolicyLongrunningRequest {
9913        AnalyzeIamPolicyLongrunningRequest::new()
9914    }
9915
9916    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
9917        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
9918        descriptor.get(|| {
9919            let mut fields = ::std::vec::Vec::new();
9920            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<IamPolicyAnalysisQuery>>(
9921                "analysis_query",
9922                |m: &AnalyzeIamPolicyLongrunningRequest| { &m.analysis_query },
9923                |m: &mut AnalyzeIamPolicyLongrunningRequest| { &mut m.analysis_query },
9924            ));
9925            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
9926                "saved_analysis_query",
9927                |m: &AnalyzeIamPolicyLongrunningRequest| { &m.saved_analysis_query },
9928                |m: &mut AnalyzeIamPolicyLongrunningRequest| { &mut m.saved_analysis_query },
9929            ));
9930            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<IamPolicyAnalysisOutputConfig>>(
9931                "output_config",
9932                |m: &AnalyzeIamPolicyLongrunningRequest| { &m.output_config },
9933                |m: &mut AnalyzeIamPolicyLongrunningRequest| { &mut m.output_config },
9934            ));
9935            ::protobuf::reflect::MessageDescriptor::new_pb_name::<AnalyzeIamPolicyLongrunningRequest>(
9936                "AnalyzeIamPolicyLongrunningRequest",
9937                fields,
9938                file_descriptor_proto()
9939            )
9940        })
9941    }
9942
9943    fn default_instance() -> &'static AnalyzeIamPolicyLongrunningRequest {
9944        static instance: ::protobuf::rt::LazyV2<AnalyzeIamPolicyLongrunningRequest> = ::protobuf::rt::LazyV2::INIT;
9945        instance.get(AnalyzeIamPolicyLongrunningRequest::new)
9946    }
9947}
9948
9949impl ::protobuf::Clear for AnalyzeIamPolicyLongrunningRequest {
9950    fn clear(&mut self) {
9951        self.analysis_query.clear();
9952        self.saved_analysis_query.clear();
9953        self.output_config.clear();
9954        self.unknown_fields.clear();
9955    }
9956}
9957
9958impl ::std::fmt::Debug for AnalyzeIamPolicyLongrunningRequest {
9959    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9960        ::protobuf::text_format::fmt(self, f)
9961    }
9962}
9963
9964impl ::protobuf::reflect::ProtobufValue for AnalyzeIamPolicyLongrunningRequest {
9965    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
9966        ::protobuf::reflect::ReflectValueRef::Message(self)
9967    }
9968}
9969
9970#[derive(PartialEq,Clone,Default)]
9971pub struct AnalyzeIamPolicyLongrunningResponse {
9972    // special fields
9973    pub unknown_fields: ::protobuf::UnknownFields,
9974    pub cached_size: ::protobuf::CachedSize,
9975}
9976
9977impl<'a> ::std::default::Default for &'a AnalyzeIamPolicyLongrunningResponse {
9978    fn default() -> &'a AnalyzeIamPolicyLongrunningResponse {
9979        <AnalyzeIamPolicyLongrunningResponse as ::protobuf::Message>::default_instance()
9980    }
9981}
9982
9983impl AnalyzeIamPolicyLongrunningResponse {
9984    pub fn new() -> AnalyzeIamPolicyLongrunningResponse {
9985        ::std::default::Default::default()
9986    }
9987}
9988
9989impl ::protobuf::Message for AnalyzeIamPolicyLongrunningResponse {
9990    fn is_initialized(&self) -> bool {
9991        true
9992    }
9993
9994    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
9995        while !is.eof()? {
9996            let (field_number, wire_type) = is.read_tag_unpack()?;
9997            match field_number {
9998                _ => {
9999                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
10000                },
10001            };
10002        }
10003        ::std::result::Result::Ok(())
10004    }
10005
10006    // Compute sizes of nested messages
10007    #[allow(unused_variables)]
10008    fn compute_size(&self) -> u32 {
10009        let mut my_size = 0;
10010        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
10011        self.cached_size.set(my_size);
10012        my_size
10013    }
10014
10015    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
10016        os.write_unknown_fields(self.get_unknown_fields())?;
10017        ::std::result::Result::Ok(())
10018    }
10019
10020    fn get_cached_size(&self) -> u32 {
10021        self.cached_size.get()
10022    }
10023
10024    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
10025        &self.unknown_fields
10026    }
10027
10028    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
10029        &mut self.unknown_fields
10030    }
10031
10032    fn as_any(&self) -> &dyn (::std::any::Any) {
10033        self as &dyn (::std::any::Any)
10034    }
10035    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
10036        self as &mut dyn (::std::any::Any)
10037    }
10038    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
10039        self
10040    }
10041
10042    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
10043        Self::descriptor_static()
10044    }
10045
10046    fn new() -> AnalyzeIamPolicyLongrunningResponse {
10047        AnalyzeIamPolicyLongrunningResponse::new()
10048    }
10049
10050    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
10051        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
10052        descriptor.get(|| {
10053            let fields = ::std::vec::Vec::new();
10054            ::protobuf::reflect::MessageDescriptor::new_pb_name::<AnalyzeIamPolicyLongrunningResponse>(
10055                "AnalyzeIamPolicyLongrunningResponse",
10056                fields,
10057                file_descriptor_proto()
10058            )
10059        })
10060    }
10061
10062    fn default_instance() -> &'static AnalyzeIamPolicyLongrunningResponse {
10063        static instance: ::protobuf::rt::LazyV2<AnalyzeIamPolicyLongrunningResponse> = ::protobuf::rt::LazyV2::INIT;
10064        instance.get(AnalyzeIamPolicyLongrunningResponse::new)
10065    }
10066}
10067
10068impl ::protobuf::Clear for AnalyzeIamPolicyLongrunningResponse {
10069    fn clear(&mut self) {
10070        self.unknown_fields.clear();
10071    }
10072}
10073
10074impl ::std::fmt::Debug for AnalyzeIamPolicyLongrunningResponse {
10075    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10076        ::protobuf::text_format::fmt(self, f)
10077    }
10078}
10079
10080impl ::protobuf::reflect::ProtobufValue for AnalyzeIamPolicyLongrunningResponse {
10081    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
10082        ::protobuf::reflect::ReflectValueRef::Message(self)
10083    }
10084}
10085
10086#[derive(PartialEq,Clone,Default)]
10087pub struct SavedQuery {
10088    // message fields
10089    pub name: ::std::string::String,
10090    pub description: ::std::string::String,
10091    pub create_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
10092    pub creator: ::std::string::String,
10093    pub last_update_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
10094    pub last_updater: ::std::string::String,
10095    pub labels: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
10096    pub content: ::protobuf::SingularPtrField<SavedQuery_QueryContent>,
10097    // special fields
10098    pub unknown_fields: ::protobuf::UnknownFields,
10099    pub cached_size: ::protobuf::CachedSize,
10100}
10101
10102impl<'a> ::std::default::Default for &'a SavedQuery {
10103    fn default() -> &'a SavedQuery {
10104        <SavedQuery as ::protobuf::Message>::default_instance()
10105    }
10106}
10107
10108impl SavedQuery {
10109    pub fn new() -> SavedQuery {
10110        ::std::default::Default::default()
10111    }
10112
10113    // string name = 1;
10114
10115
10116    pub fn get_name(&self) -> &str {
10117        &self.name
10118    }
10119    pub fn clear_name(&mut self) {
10120        self.name.clear();
10121    }
10122
10123    // Param is passed by value, moved
10124    pub fn set_name(&mut self, v: ::std::string::String) {
10125        self.name = v;
10126    }
10127
10128    // Mutable pointer to the field.
10129    // If field is not initialized, it is initialized with default value first.
10130    pub fn mut_name(&mut self) -> &mut ::std::string::String {
10131        &mut self.name
10132    }
10133
10134    // Take field
10135    pub fn take_name(&mut self) -> ::std::string::String {
10136        ::std::mem::replace(&mut self.name, ::std::string::String::new())
10137    }
10138
10139    // string description = 2;
10140
10141
10142    pub fn get_description(&self) -> &str {
10143        &self.description
10144    }
10145    pub fn clear_description(&mut self) {
10146        self.description.clear();
10147    }
10148
10149    // Param is passed by value, moved
10150    pub fn set_description(&mut self, v: ::std::string::String) {
10151        self.description = v;
10152    }
10153
10154    // Mutable pointer to the field.
10155    // If field is not initialized, it is initialized with default value first.
10156    pub fn mut_description(&mut self) -> &mut ::std::string::String {
10157        &mut self.description
10158    }
10159
10160    // Take field
10161    pub fn take_description(&mut self) -> ::std::string::String {
10162        ::std::mem::replace(&mut self.description, ::std::string::String::new())
10163    }
10164
10165    // .google.protobuf.Timestamp create_time = 3;
10166
10167
10168    pub fn get_create_time(&self) -> &::protobuf::well_known_types::Timestamp {
10169        self.create_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
10170    }
10171    pub fn clear_create_time(&mut self) {
10172        self.create_time.clear();
10173    }
10174
10175    pub fn has_create_time(&self) -> bool {
10176        self.create_time.is_some()
10177    }
10178
10179    // Param is passed by value, moved
10180    pub fn set_create_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
10181        self.create_time = ::protobuf::SingularPtrField::some(v);
10182    }
10183
10184    // Mutable pointer to the field.
10185    // If field is not initialized, it is initialized with default value first.
10186    pub fn mut_create_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
10187        if self.create_time.is_none() {
10188            self.create_time.set_default();
10189        }
10190        self.create_time.as_mut().unwrap()
10191    }
10192
10193    // Take field
10194    pub fn take_create_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
10195        self.create_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
10196    }
10197
10198    // string creator = 4;
10199
10200
10201    pub fn get_creator(&self) -> &str {
10202        &self.creator
10203    }
10204    pub fn clear_creator(&mut self) {
10205        self.creator.clear();
10206    }
10207
10208    // Param is passed by value, moved
10209    pub fn set_creator(&mut self, v: ::std::string::String) {
10210        self.creator = v;
10211    }
10212
10213    // Mutable pointer to the field.
10214    // If field is not initialized, it is initialized with default value first.
10215    pub fn mut_creator(&mut self) -> &mut ::std::string::String {
10216        &mut self.creator
10217    }
10218
10219    // Take field
10220    pub fn take_creator(&mut self) -> ::std::string::String {
10221        ::std::mem::replace(&mut self.creator, ::std::string::String::new())
10222    }
10223
10224    // .google.protobuf.Timestamp last_update_time = 5;
10225
10226
10227    pub fn get_last_update_time(&self) -> &::protobuf::well_known_types::Timestamp {
10228        self.last_update_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
10229    }
10230    pub fn clear_last_update_time(&mut self) {
10231        self.last_update_time.clear();
10232    }
10233
10234    pub fn has_last_update_time(&self) -> bool {
10235        self.last_update_time.is_some()
10236    }
10237
10238    // Param is passed by value, moved
10239    pub fn set_last_update_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
10240        self.last_update_time = ::protobuf::SingularPtrField::some(v);
10241    }
10242
10243    // Mutable pointer to the field.
10244    // If field is not initialized, it is initialized with default value first.
10245    pub fn mut_last_update_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
10246        if self.last_update_time.is_none() {
10247            self.last_update_time.set_default();
10248        }
10249        self.last_update_time.as_mut().unwrap()
10250    }
10251
10252    // Take field
10253    pub fn take_last_update_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
10254        self.last_update_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
10255    }
10256
10257    // string last_updater = 6;
10258
10259
10260    pub fn get_last_updater(&self) -> &str {
10261        &self.last_updater
10262    }
10263    pub fn clear_last_updater(&mut self) {
10264        self.last_updater.clear();
10265    }
10266
10267    // Param is passed by value, moved
10268    pub fn set_last_updater(&mut self, v: ::std::string::String) {
10269        self.last_updater = v;
10270    }
10271
10272    // Mutable pointer to the field.
10273    // If field is not initialized, it is initialized with default value first.
10274    pub fn mut_last_updater(&mut self) -> &mut ::std::string::String {
10275        &mut self.last_updater
10276    }
10277
10278    // Take field
10279    pub fn take_last_updater(&mut self) -> ::std::string::String {
10280        ::std::mem::replace(&mut self.last_updater, ::std::string::String::new())
10281    }
10282
10283    // repeated .google.cloud.asset.v1.SavedQuery.LabelsEntry labels = 7;
10284
10285
10286    pub fn get_labels(&self) -> &::std::collections::HashMap<::std::string::String, ::std::string::String> {
10287        &self.labels
10288    }
10289    pub fn clear_labels(&mut self) {
10290        self.labels.clear();
10291    }
10292
10293    // Param is passed by value, moved
10294    pub fn set_labels(&mut self, v: ::std::collections::HashMap<::std::string::String, ::std::string::String>) {
10295        self.labels = v;
10296    }
10297
10298    // Mutable pointer to the field.
10299    pub fn mut_labels(&mut self) -> &mut ::std::collections::HashMap<::std::string::String, ::std::string::String> {
10300        &mut self.labels
10301    }
10302
10303    // Take field
10304    pub fn take_labels(&mut self) -> ::std::collections::HashMap<::std::string::String, ::std::string::String> {
10305        ::std::mem::replace(&mut self.labels, ::std::collections::HashMap::new())
10306    }
10307
10308    // .google.cloud.asset.v1.SavedQuery.QueryContent content = 8;
10309
10310
10311    pub fn get_content(&self) -> &SavedQuery_QueryContent {
10312        self.content.as_ref().unwrap_or_else(|| <SavedQuery_QueryContent as ::protobuf::Message>::default_instance())
10313    }
10314    pub fn clear_content(&mut self) {
10315        self.content.clear();
10316    }
10317
10318    pub fn has_content(&self) -> bool {
10319        self.content.is_some()
10320    }
10321
10322    // Param is passed by value, moved
10323    pub fn set_content(&mut self, v: SavedQuery_QueryContent) {
10324        self.content = ::protobuf::SingularPtrField::some(v);
10325    }
10326
10327    // Mutable pointer to the field.
10328    // If field is not initialized, it is initialized with default value first.
10329    pub fn mut_content(&mut self) -> &mut SavedQuery_QueryContent {
10330        if self.content.is_none() {
10331            self.content.set_default();
10332        }
10333        self.content.as_mut().unwrap()
10334    }
10335
10336    // Take field
10337    pub fn take_content(&mut self) -> SavedQuery_QueryContent {
10338        self.content.take().unwrap_or_else(|| SavedQuery_QueryContent::new())
10339    }
10340}
10341
10342impl ::protobuf::Message for SavedQuery {
10343    fn is_initialized(&self) -> bool {
10344        for v in &self.create_time {
10345            if !v.is_initialized() {
10346                return false;
10347            }
10348        };
10349        for v in &self.last_update_time {
10350            if !v.is_initialized() {
10351                return false;
10352            }
10353        };
10354        for v in &self.content {
10355            if !v.is_initialized() {
10356                return false;
10357            }
10358        };
10359        true
10360    }
10361
10362    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
10363        while !is.eof()? {
10364            let (field_number, wire_type) = is.read_tag_unpack()?;
10365            match field_number {
10366                1 => {
10367                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
10368                },
10369                2 => {
10370                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.description)?;
10371                },
10372                3 => {
10373                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.create_time)?;
10374                },
10375                4 => {
10376                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.creator)?;
10377                },
10378                5 => {
10379                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.last_update_time)?;
10380                },
10381                6 => {
10382                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.last_updater)?;
10383                },
10384                7 => {
10385                    ::protobuf::rt::read_map_into::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeString>(wire_type, is, &mut self.labels)?;
10386                },
10387                8 => {
10388                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.content)?;
10389                },
10390                _ => {
10391                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
10392                },
10393            };
10394        }
10395        ::std::result::Result::Ok(())
10396    }
10397
10398    // Compute sizes of nested messages
10399    #[allow(unused_variables)]
10400    fn compute_size(&self) -> u32 {
10401        let mut my_size = 0;
10402        if !self.name.is_empty() {
10403            my_size += ::protobuf::rt::string_size(1, &self.name);
10404        }
10405        if !self.description.is_empty() {
10406            my_size += ::protobuf::rt::string_size(2, &self.description);
10407        }
10408        if let Some(ref v) = self.create_time.as_ref() {
10409            let len = v.compute_size();
10410            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
10411        }
10412        if !self.creator.is_empty() {
10413            my_size += ::protobuf::rt::string_size(4, &self.creator);
10414        }
10415        if let Some(ref v) = self.last_update_time.as_ref() {
10416            let len = v.compute_size();
10417            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
10418        }
10419        if !self.last_updater.is_empty() {
10420            my_size += ::protobuf::rt::string_size(6, &self.last_updater);
10421        }
10422        my_size += ::protobuf::rt::compute_map_size::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeString>(7, &self.labels);
10423        if let Some(ref v) = self.content.as_ref() {
10424            let len = v.compute_size();
10425            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
10426        }
10427        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
10428        self.cached_size.set(my_size);
10429        my_size
10430    }
10431
10432    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
10433        if !self.name.is_empty() {
10434            os.write_string(1, &self.name)?;
10435        }
10436        if !self.description.is_empty() {
10437            os.write_string(2, &self.description)?;
10438        }
10439        if let Some(ref v) = self.create_time.as_ref() {
10440            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
10441            os.write_raw_varint32(v.get_cached_size())?;
10442            v.write_to_with_cached_sizes(os)?;
10443        }
10444        if !self.creator.is_empty() {
10445            os.write_string(4, &self.creator)?;
10446        }
10447        if let Some(ref v) = self.last_update_time.as_ref() {
10448            os.write_tag(5, ::protobuf::wire_format::WireTypeLengthDelimited)?;
10449            os.write_raw_varint32(v.get_cached_size())?;
10450            v.write_to_with_cached_sizes(os)?;
10451        }
10452        if !self.last_updater.is_empty() {
10453            os.write_string(6, &self.last_updater)?;
10454        }
10455        ::protobuf::rt::write_map_with_cached_sizes::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeString>(7, &self.labels, os)?;
10456        if let Some(ref v) = self.content.as_ref() {
10457            os.write_tag(8, ::protobuf::wire_format::WireTypeLengthDelimited)?;
10458            os.write_raw_varint32(v.get_cached_size())?;
10459            v.write_to_with_cached_sizes(os)?;
10460        }
10461        os.write_unknown_fields(self.get_unknown_fields())?;
10462        ::std::result::Result::Ok(())
10463    }
10464
10465    fn get_cached_size(&self) -> u32 {
10466        self.cached_size.get()
10467    }
10468
10469    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
10470        &self.unknown_fields
10471    }
10472
10473    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
10474        &mut self.unknown_fields
10475    }
10476
10477    fn as_any(&self) -> &dyn (::std::any::Any) {
10478        self as &dyn (::std::any::Any)
10479    }
10480    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
10481        self as &mut dyn (::std::any::Any)
10482    }
10483    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
10484        self
10485    }
10486
10487    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
10488        Self::descriptor_static()
10489    }
10490
10491    fn new() -> SavedQuery {
10492        SavedQuery::new()
10493    }
10494
10495    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
10496        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
10497        descriptor.get(|| {
10498            let mut fields = ::std::vec::Vec::new();
10499            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
10500                "name",
10501                |m: &SavedQuery| { &m.name },
10502                |m: &mut SavedQuery| { &mut m.name },
10503            ));
10504            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
10505                "description",
10506                |m: &SavedQuery| { &m.description },
10507                |m: &mut SavedQuery| { &mut m.description },
10508            ));
10509            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
10510                "create_time",
10511                |m: &SavedQuery| { &m.create_time },
10512                |m: &mut SavedQuery| { &mut m.create_time },
10513            ));
10514            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
10515                "creator",
10516                |m: &SavedQuery| { &m.creator },
10517                |m: &mut SavedQuery| { &mut m.creator },
10518            ));
10519            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
10520                "last_update_time",
10521                |m: &SavedQuery| { &m.last_update_time },
10522                |m: &mut SavedQuery| { &mut m.last_update_time },
10523            ));
10524            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
10525                "last_updater",
10526                |m: &SavedQuery| { &m.last_updater },
10527                |m: &mut SavedQuery| { &mut m.last_updater },
10528            ));
10529            fields.push(::protobuf::reflect::accessor::make_map_accessor::<_, ::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeString>(
10530                "labels",
10531                |m: &SavedQuery| { &m.labels },
10532                |m: &mut SavedQuery| { &mut m.labels },
10533            ));
10534            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<SavedQuery_QueryContent>>(
10535                "content",
10536                |m: &SavedQuery| { &m.content },
10537                |m: &mut SavedQuery| { &mut m.content },
10538            ));
10539            ::protobuf::reflect::MessageDescriptor::new_pb_name::<SavedQuery>(
10540                "SavedQuery",
10541                fields,
10542                file_descriptor_proto()
10543            )
10544        })
10545    }
10546
10547    fn default_instance() -> &'static SavedQuery {
10548        static instance: ::protobuf::rt::LazyV2<SavedQuery> = ::protobuf::rt::LazyV2::INIT;
10549        instance.get(SavedQuery::new)
10550    }
10551}
10552
10553impl ::protobuf::Clear for SavedQuery {
10554    fn clear(&mut self) {
10555        self.name.clear();
10556        self.description.clear();
10557        self.create_time.clear();
10558        self.creator.clear();
10559        self.last_update_time.clear();
10560        self.last_updater.clear();
10561        self.labels.clear();
10562        self.content.clear();
10563        self.unknown_fields.clear();
10564    }
10565}
10566
10567impl ::std::fmt::Debug for SavedQuery {
10568    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10569        ::protobuf::text_format::fmt(self, f)
10570    }
10571}
10572
10573impl ::protobuf::reflect::ProtobufValue for SavedQuery {
10574    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
10575        ::protobuf::reflect::ReflectValueRef::Message(self)
10576    }
10577}
10578
10579#[derive(PartialEq,Clone,Default)]
10580pub struct SavedQuery_QueryContent {
10581    // message oneof groups
10582    pub query_content: ::std::option::Option<SavedQuery_QueryContent_oneof_query_content>,
10583    // special fields
10584    pub unknown_fields: ::protobuf::UnknownFields,
10585    pub cached_size: ::protobuf::CachedSize,
10586}
10587
10588impl<'a> ::std::default::Default for &'a SavedQuery_QueryContent {
10589    fn default() -> &'a SavedQuery_QueryContent {
10590        <SavedQuery_QueryContent as ::protobuf::Message>::default_instance()
10591    }
10592}
10593
10594#[derive(Clone,PartialEq,Debug)]
10595pub enum SavedQuery_QueryContent_oneof_query_content {
10596    iam_policy_analysis_query(IamPolicyAnalysisQuery),
10597}
10598
10599impl SavedQuery_QueryContent {
10600    pub fn new() -> SavedQuery_QueryContent {
10601        ::std::default::Default::default()
10602    }
10603
10604    // .google.cloud.asset.v1.IamPolicyAnalysisQuery iam_policy_analysis_query = 1;
10605
10606
10607    pub fn get_iam_policy_analysis_query(&self) -> &IamPolicyAnalysisQuery {
10608        match self.query_content {
10609            ::std::option::Option::Some(SavedQuery_QueryContent_oneof_query_content::iam_policy_analysis_query(ref v)) => v,
10610            _ => <IamPolicyAnalysisQuery as ::protobuf::Message>::default_instance(),
10611        }
10612    }
10613    pub fn clear_iam_policy_analysis_query(&mut self) {
10614        self.query_content = ::std::option::Option::None;
10615    }
10616
10617    pub fn has_iam_policy_analysis_query(&self) -> bool {
10618        match self.query_content {
10619            ::std::option::Option::Some(SavedQuery_QueryContent_oneof_query_content::iam_policy_analysis_query(..)) => true,
10620            _ => false,
10621        }
10622    }
10623
10624    // Param is passed by value, moved
10625    pub fn set_iam_policy_analysis_query(&mut self, v: IamPolicyAnalysisQuery) {
10626        self.query_content = ::std::option::Option::Some(SavedQuery_QueryContent_oneof_query_content::iam_policy_analysis_query(v))
10627    }
10628
10629    // Mutable pointer to the field.
10630    pub fn mut_iam_policy_analysis_query(&mut self) -> &mut IamPolicyAnalysisQuery {
10631        if let ::std::option::Option::Some(SavedQuery_QueryContent_oneof_query_content::iam_policy_analysis_query(_)) = self.query_content {
10632        } else {
10633            self.query_content = ::std::option::Option::Some(SavedQuery_QueryContent_oneof_query_content::iam_policy_analysis_query(IamPolicyAnalysisQuery::new()));
10634        }
10635        match self.query_content {
10636            ::std::option::Option::Some(SavedQuery_QueryContent_oneof_query_content::iam_policy_analysis_query(ref mut v)) => v,
10637            _ => panic!(),
10638        }
10639    }
10640
10641    // Take field
10642    pub fn take_iam_policy_analysis_query(&mut self) -> IamPolicyAnalysisQuery {
10643        if self.has_iam_policy_analysis_query() {
10644            match self.query_content.take() {
10645                ::std::option::Option::Some(SavedQuery_QueryContent_oneof_query_content::iam_policy_analysis_query(v)) => v,
10646                _ => panic!(),
10647            }
10648        } else {
10649            IamPolicyAnalysisQuery::new()
10650        }
10651    }
10652}
10653
10654impl ::protobuf::Message for SavedQuery_QueryContent {
10655    fn is_initialized(&self) -> bool {
10656        if let Some(SavedQuery_QueryContent_oneof_query_content::iam_policy_analysis_query(ref v)) = self.query_content {
10657            if !v.is_initialized() {
10658                return false;
10659            }
10660        }
10661        true
10662    }
10663
10664    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
10665        while !is.eof()? {
10666            let (field_number, wire_type) = is.read_tag_unpack()?;
10667            match field_number {
10668                1 => {
10669                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
10670                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
10671                    }
10672                    self.query_content = ::std::option::Option::Some(SavedQuery_QueryContent_oneof_query_content::iam_policy_analysis_query(is.read_message()?));
10673                },
10674                _ => {
10675                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
10676                },
10677            };
10678        }
10679        ::std::result::Result::Ok(())
10680    }
10681
10682    // Compute sizes of nested messages
10683    #[allow(unused_variables)]
10684    fn compute_size(&self) -> u32 {
10685        let mut my_size = 0;
10686        if let ::std::option::Option::Some(ref v) = self.query_content {
10687            match v {
10688                &SavedQuery_QueryContent_oneof_query_content::iam_policy_analysis_query(ref v) => {
10689                    let len = v.compute_size();
10690                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
10691                },
10692            };
10693        }
10694        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
10695        self.cached_size.set(my_size);
10696        my_size
10697    }
10698
10699    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
10700        if let ::std::option::Option::Some(ref v) = self.query_content {
10701            match v {
10702                &SavedQuery_QueryContent_oneof_query_content::iam_policy_analysis_query(ref v) => {
10703                    os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
10704                    os.write_raw_varint32(v.get_cached_size())?;
10705                    v.write_to_with_cached_sizes(os)?;
10706                },
10707            };
10708        }
10709        os.write_unknown_fields(self.get_unknown_fields())?;
10710        ::std::result::Result::Ok(())
10711    }
10712
10713    fn get_cached_size(&self) -> u32 {
10714        self.cached_size.get()
10715    }
10716
10717    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
10718        &self.unknown_fields
10719    }
10720
10721    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
10722        &mut self.unknown_fields
10723    }
10724
10725    fn as_any(&self) -> &dyn (::std::any::Any) {
10726        self as &dyn (::std::any::Any)
10727    }
10728    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
10729        self as &mut dyn (::std::any::Any)
10730    }
10731    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
10732        self
10733    }
10734
10735    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
10736        Self::descriptor_static()
10737    }
10738
10739    fn new() -> SavedQuery_QueryContent {
10740        SavedQuery_QueryContent::new()
10741    }
10742
10743    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
10744        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
10745        descriptor.get(|| {
10746            let mut fields = ::std::vec::Vec::new();
10747            fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, IamPolicyAnalysisQuery>(
10748                "iam_policy_analysis_query",
10749                SavedQuery_QueryContent::has_iam_policy_analysis_query,
10750                SavedQuery_QueryContent::get_iam_policy_analysis_query,
10751            ));
10752            ::protobuf::reflect::MessageDescriptor::new_pb_name::<SavedQuery_QueryContent>(
10753                "SavedQuery.QueryContent",
10754                fields,
10755                file_descriptor_proto()
10756            )
10757        })
10758    }
10759
10760    fn default_instance() -> &'static SavedQuery_QueryContent {
10761        static instance: ::protobuf::rt::LazyV2<SavedQuery_QueryContent> = ::protobuf::rt::LazyV2::INIT;
10762        instance.get(SavedQuery_QueryContent::new)
10763    }
10764}
10765
10766impl ::protobuf::Clear for SavedQuery_QueryContent {
10767    fn clear(&mut self) {
10768        self.query_content = ::std::option::Option::None;
10769        self.unknown_fields.clear();
10770    }
10771}
10772
10773impl ::std::fmt::Debug for SavedQuery_QueryContent {
10774    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10775        ::protobuf::text_format::fmt(self, f)
10776    }
10777}
10778
10779impl ::protobuf::reflect::ProtobufValue for SavedQuery_QueryContent {
10780    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
10781        ::protobuf::reflect::ReflectValueRef::Message(self)
10782    }
10783}
10784
10785#[derive(PartialEq,Clone,Default)]
10786pub struct CreateSavedQueryRequest {
10787    // message fields
10788    pub parent: ::std::string::String,
10789    pub saved_query: ::protobuf::SingularPtrField<SavedQuery>,
10790    pub saved_query_id: ::std::string::String,
10791    // special fields
10792    pub unknown_fields: ::protobuf::UnknownFields,
10793    pub cached_size: ::protobuf::CachedSize,
10794}
10795
10796impl<'a> ::std::default::Default for &'a CreateSavedQueryRequest {
10797    fn default() -> &'a CreateSavedQueryRequest {
10798        <CreateSavedQueryRequest as ::protobuf::Message>::default_instance()
10799    }
10800}
10801
10802impl CreateSavedQueryRequest {
10803    pub fn new() -> CreateSavedQueryRequest {
10804        ::std::default::Default::default()
10805    }
10806
10807    // string parent = 1;
10808
10809
10810    pub fn get_parent(&self) -> &str {
10811        &self.parent
10812    }
10813    pub fn clear_parent(&mut self) {
10814        self.parent.clear();
10815    }
10816
10817    // Param is passed by value, moved
10818    pub fn set_parent(&mut self, v: ::std::string::String) {
10819        self.parent = v;
10820    }
10821
10822    // Mutable pointer to the field.
10823    // If field is not initialized, it is initialized with default value first.
10824    pub fn mut_parent(&mut self) -> &mut ::std::string::String {
10825        &mut self.parent
10826    }
10827
10828    // Take field
10829    pub fn take_parent(&mut self) -> ::std::string::String {
10830        ::std::mem::replace(&mut self.parent, ::std::string::String::new())
10831    }
10832
10833    // .google.cloud.asset.v1.SavedQuery saved_query = 2;
10834
10835
10836    pub fn get_saved_query(&self) -> &SavedQuery {
10837        self.saved_query.as_ref().unwrap_or_else(|| <SavedQuery as ::protobuf::Message>::default_instance())
10838    }
10839    pub fn clear_saved_query(&mut self) {
10840        self.saved_query.clear();
10841    }
10842
10843    pub fn has_saved_query(&self) -> bool {
10844        self.saved_query.is_some()
10845    }
10846
10847    // Param is passed by value, moved
10848    pub fn set_saved_query(&mut self, v: SavedQuery) {
10849        self.saved_query = ::protobuf::SingularPtrField::some(v);
10850    }
10851
10852    // Mutable pointer to the field.
10853    // If field is not initialized, it is initialized with default value first.
10854    pub fn mut_saved_query(&mut self) -> &mut SavedQuery {
10855        if self.saved_query.is_none() {
10856            self.saved_query.set_default();
10857        }
10858        self.saved_query.as_mut().unwrap()
10859    }
10860
10861    // Take field
10862    pub fn take_saved_query(&mut self) -> SavedQuery {
10863        self.saved_query.take().unwrap_or_else(|| SavedQuery::new())
10864    }
10865
10866    // string saved_query_id = 3;
10867
10868
10869    pub fn get_saved_query_id(&self) -> &str {
10870        &self.saved_query_id
10871    }
10872    pub fn clear_saved_query_id(&mut self) {
10873        self.saved_query_id.clear();
10874    }
10875
10876    // Param is passed by value, moved
10877    pub fn set_saved_query_id(&mut self, v: ::std::string::String) {
10878        self.saved_query_id = v;
10879    }
10880
10881    // Mutable pointer to the field.
10882    // If field is not initialized, it is initialized with default value first.
10883    pub fn mut_saved_query_id(&mut self) -> &mut ::std::string::String {
10884        &mut self.saved_query_id
10885    }
10886
10887    // Take field
10888    pub fn take_saved_query_id(&mut self) -> ::std::string::String {
10889        ::std::mem::replace(&mut self.saved_query_id, ::std::string::String::new())
10890    }
10891}
10892
10893impl ::protobuf::Message for CreateSavedQueryRequest {
10894    fn is_initialized(&self) -> bool {
10895        for v in &self.saved_query {
10896            if !v.is_initialized() {
10897                return false;
10898            }
10899        };
10900        true
10901    }
10902
10903    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
10904        while !is.eof()? {
10905            let (field_number, wire_type) = is.read_tag_unpack()?;
10906            match field_number {
10907                1 => {
10908                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.parent)?;
10909                },
10910                2 => {
10911                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.saved_query)?;
10912                },
10913                3 => {
10914                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.saved_query_id)?;
10915                },
10916                _ => {
10917                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
10918                },
10919            };
10920        }
10921        ::std::result::Result::Ok(())
10922    }
10923
10924    // Compute sizes of nested messages
10925    #[allow(unused_variables)]
10926    fn compute_size(&self) -> u32 {
10927        let mut my_size = 0;
10928        if !self.parent.is_empty() {
10929            my_size += ::protobuf::rt::string_size(1, &self.parent);
10930        }
10931        if let Some(ref v) = self.saved_query.as_ref() {
10932            let len = v.compute_size();
10933            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
10934        }
10935        if !self.saved_query_id.is_empty() {
10936            my_size += ::protobuf::rt::string_size(3, &self.saved_query_id);
10937        }
10938        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
10939        self.cached_size.set(my_size);
10940        my_size
10941    }
10942
10943    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
10944        if !self.parent.is_empty() {
10945            os.write_string(1, &self.parent)?;
10946        }
10947        if let Some(ref v) = self.saved_query.as_ref() {
10948            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
10949            os.write_raw_varint32(v.get_cached_size())?;
10950            v.write_to_with_cached_sizes(os)?;
10951        }
10952        if !self.saved_query_id.is_empty() {
10953            os.write_string(3, &self.saved_query_id)?;
10954        }
10955        os.write_unknown_fields(self.get_unknown_fields())?;
10956        ::std::result::Result::Ok(())
10957    }
10958
10959    fn get_cached_size(&self) -> u32 {
10960        self.cached_size.get()
10961    }
10962
10963    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
10964        &self.unknown_fields
10965    }
10966
10967    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
10968        &mut self.unknown_fields
10969    }
10970
10971    fn as_any(&self) -> &dyn (::std::any::Any) {
10972        self as &dyn (::std::any::Any)
10973    }
10974    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
10975        self as &mut dyn (::std::any::Any)
10976    }
10977    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
10978        self
10979    }
10980
10981    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
10982        Self::descriptor_static()
10983    }
10984
10985    fn new() -> CreateSavedQueryRequest {
10986        CreateSavedQueryRequest::new()
10987    }
10988
10989    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
10990        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
10991        descriptor.get(|| {
10992            let mut fields = ::std::vec::Vec::new();
10993            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
10994                "parent",
10995                |m: &CreateSavedQueryRequest| { &m.parent },
10996                |m: &mut CreateSavedQueryRequest| { &mut m.parent },
10997            ));
10998            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<SavedQuery>>(
10999                "saved_query",
11000                |m: &CreateSavedQueryRequest| { &m.saved_query },
11001                |m: &mut CreateSavedQueryRequest| { &mut m.saved_query },
11002            ));
11003            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
11004                "saved_query_id",
11005                |m: &CreateSavedQueryRequest| { &m.saved_query_id },
11006                |m: &mut CreateSavedQueryRequest| { &mut m.saved_query_id },
11007            ));
11008            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CreateSavedQueryRequest>(
11009                "CreateSavedQueryRequest",
11010                fields,
11011                file_descriptor_proto()
11012            )
11013        })
11014    }
11015
11016    fn default_instance() -> &'static CreateSavedQueryRequest {
11017        static instance: ::protobuf::rt::LazyV2<CreateSavedQueryRequest> = ::protobuf::rt::LazyV2::INIT;
11018        instance.get(CreateSavedQueryRequest::new)
11019    }
11020}
11021
11022impl ::protobuf::Clear for CreateSavedQueryRequest {
11023    fn clear(&mut self) {
11024        self.parent.clear();
11025        self.saved_query.clear();
11026        self.saved_query_id.clear();
11027        self.unknown_fields.clear();
11028    }
11029}
11030
11031impl ::std::fmt::Debug for CreateSavedQueryRequest {
11032    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11033        ::protobuf::text_format::fmt(self, f)
11034    }
11035}
11036
11037impl ::protobuf::reflect::ProtobufValue for CreateSavedQueryRequest {
11038    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
11039        ::protobuf::reflect::ReflectValueRef::Message(self)
11040    }
11041}
11042
11043#[derive(PartialEq,Clone,Default)]
11044pub struct GetSavedQueryRequest {
11045    // message fields
11046    pub name: ::std::string::String,
11047    // special fields
11048    pub unknown_fields: ::protobuf::UnknownFields,
11049    pub cached_size: ::protobuf::CachedSize,
11050}
11051
11052impl<'a> ::std::default::Default for &'a GetSavedQueryRequest {
11053    fn default() -> &'a GetSavedQueryRequest {
11054        <GetSavedQueryRequest as ::protobuf::Message>::default_instance()
11055    }
11056}
11057
11058impl GetSavedQueryRequest {
11059    pub fn new() -> GetSavedQueryRequest {
11060        ::std::default::Default::default()
11061    }
11062
11063    // string name = 1;
11064
11065
11066    pub fn get_name(&self) -> &str {
11067        &self.name
11068    }
11069    pub fn clear_name(&mut self) {
11070        self.name.clear();
11071    }
11072
11073    // Param is passed by value, moved
11074    pub fn set_name(&mut self, v: ::std::string::String) {
11075        self.name = v;
11076    }
11077
11078    // Mutable pointer to the field.
11079    // If field is not initialized, it is initialized with default value first.
11080    pub fn mut_name(&mut self) -> &mut ::std::string::String {
11081        &mut self.name
11082    }
11083
11084    // Take field
11085    pub fn take_name(&mut self) -> ::std::string::String {
11086        ::std::mem::replace(&mut self.name, ::std::string::String::new())
11087    }
11088}
11089
11090impl ::protobuf::Message for GetSavedQueryRequest {
11091    fn is_initialized(&self) -> bool {
11092        true
11093    }
11094
11095    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
11096        while !is.eof()? {
11097            let (field_number, wire_type) = is.read_tag_unpack()?;
11098            match field_number {
11099                1 => {
11100                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
11101                },
11102                _ => {
11103                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
11104                },
11105            };
11106        }
11107        ::std::result::Result::Ok(())
11108    }
11109
11110    // Compute sizes of nested messages
11111    #[allow(unused_variables)]
11112    fn compute_size(&self) -> u32 {
11113        let mut my_size = 0;
11114        if !self.name.is_empty() {
11115            my_size += ::protobuf::rt::string_size(1, &self.name);
11116        }
11117        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
11118        self.cached_size.set(my_size);
11119        my_size
11120    }
11121
11122    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
11123        if !self.name.is_empty() {
11124            os.write_string(1, &self.name)?;
11125        }
11126        os.write_unknown_fields(self.get_unknown_fields())?;
11127        ::std::result::Result::Ok(())
11128    }
11129
11130    fn get_cached_size(&self) -> u32 {
11131        self.cached_size.get()
11132    }
11133
11134    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
11135        &self.unknown_fields
11136    }
11137
11138    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
11139        &mut self.unknown_fields
11140    }
11141
11142    fn as_any(&self) -> &dyn (::std::any::Any) {
11143        self as &dyn (::std::any::Any)
11144    }
11145    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
11146        self as &mut dyn (::std::any::Any)
11147    }
11148    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
11149        self
11150    }
11151
11152    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
11153        Self::descriptor_static()
11154    }
11155
11156    fn new() -> GetSavedQueryRequest {
11157        GetSavedQueryRequest::new()
11158    }
11159
11160    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
11161        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
11162        descriptor.get(|| {
11163            let mut fields = ::std::vec::Vec::new();
11164            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
11165                "name",
11166                |m: &GetSavedQueryRequest| { &m.name },
11167                |m: &mut GetSavedQueryRequest| { &mut m.name },
11168            ));
11169            ::protobuf::reflect::MessageDescriptor::new_pb_name::<GetSavedQueryRequest>(
11170                "GetSavedQueryRequest",
11171                fields,
11172                file_descriptor_proto()
11173            )
11174        })
11175    }
11176
11177    fn default_instance() -> &'static GetSavedQueryRequest {
11178        static instance: ::protobuf::rt::LazyV2<GetSavedQueryRequest> = ::protobuf::rt::LazyV2::INIT;
11179        instance.get(GetSavedQueryRequest::new)
11180    }
11181}
11182
11183impl ::protobuf::Clear for GetSavedQueryRequest {
11184    fn clear(&mut self) {
11185        self.name.clear();
11186        self.unknown_fields.clear();
11187    }
11188}
11189
11190impl ::std::fmt::Debug for GetSavedQueryRequest {
11191    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11192        ::protobuf::text_format::fmt(self, f)
11193    }
11194}
11195
11196impl ::protobuf::reflect::ProtobufValue for GetSavedQueryRequest {
11197    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
11198        ::protobuf::reflect::ReflectValueRef::Message(self)
11199    }
11200}
11201
11202#[derive(PartialEq,Clone,Default)]
11203pub struct ListSavedQueriesRequest {
11204    // message fields
11205    pub parent: ::std::string::String,
11206    pub filter: ::std::string::String,
11207    pub page_size: i32,
11208    pub page_token: ::std::string::String,
11209    // special fields
11210    pub unknown_fields: ::protobuf::UnknownFields,
11211    pub cached_size: ::protobuf::CachedSize,
11212}
11213
11214impl<'a> ::std::default::Default for &'a ListSavedQueriesRequest {
11215    fn default() -> &'a ListSavedQueriesRequest {
11216        <ListSavedQueriesRequest as ::protobuf::Message>::default_instance()
11217    }
11218}
11219
11220impl ListSavedQueriesRequest {
11221    pub fn new() -> ListSavedQueriesRequest {
11222        ::std::default::Default::default()
11223    }
11224
11225    // string parent = 1;
11226
11227
11228    pub fn get_parent(&self) -> &str {
11229        &self.parent
11230    }
11231    pub fn clear_parent(&mut self) {
11232        self.parent.clear();
11233    }
11234
11235    // Param is passed by value, moved
11236    pub fn set_parent(&mut self, v: ::std::string::String) {
11237        self.parent = v;
11238    }
11239
11240    // Mutable pointer to the field.
11241    // If field is not initialized, it is initialized with default value first.
11242    pub fn mut_parent(&mut self) -> &mut ::std::string::String {
11243        &mut self.parent
11244    }
11245
11246    // Take field
11247    pub fn take_parent(&mut self) -> ::std::string::String {
11248        ::std::mem::replace(&mut self.parent, ::std::string::String::new())
11249    }
11250
11251    // string filter = 4;
11252
11253
11254    pub fn get_filter(&self) -> &str {
11255        &self.filter
11256    }
11257    pub fn clear_filter(&mut self) {
11258        self.filter.clear();
11259    }
11260
11261    // Param is passed by value, moved
11262    pub fn set_filter(&mut self, v: ::std::string::String) {
11263        self.filter = v;
11264    }
11265
11266    // Mutable pointer to the field.
11267    // If field is not initialized, it is initialized with default value first.
11268    pub fn mut_filter(&mut self) -> &mut ::std::string::String {
11269        &mut self.filter
11270    }
11271
11272    // Take field
11273    pub fn take_filter(&mut self) -> ::std::string::String {
11274        ::std::mem::replace(&mut self.filter, ::std::string::String::new())
11275    }
11276
11277    // int32 page_size = 2;
11278
11279
11280    pub fn get_page_size(&self) -> i32 {
11281        self.page_size
11282    }
11283    pub fn clear_page_size(&mut self) {
11284        self.page_size = 0;
11285    }
11286
11287    // Param is passed by value, moved
11288    pub fn set_page_size(&mut self, v: i32) {
11289        self.page_size = v;
11290    }
11291
11292    // string page_token = 3;
11293
11294
11295    pub fn get_page_token(&self) -> &str {
11296        &self.page_token
11297    }
11298    pub fn clear_page_token(&mut self) {
11299        self.page_token.clear();
11300    }
11301
11302    // Param is passed by value, moved
11303    pub fn set_page_token(&mut self, v: ::std::string::String) {
11304        self.page_token = v;
11305    }
11306
11307    // Mutable pointer to the field.
11308    // If field is not initialized, it is initialized with default value first.
11309    pub fn mut_page_token(&mut self) -> &mut ::std::string::String {
11310        &mut self.page_token
11311    }
11312
11313    // Take field
11314    pub fn take_page_token(&mut self) -> ::std::string::String {
11315        ::std::mem::replace(&mut self.page_token, ::std::string::String::new())
11316    }
11317}
11318
11319impl ::protobuf::Message for ListSavedQueriesRequest {
11320    fn is_initialized(&self) -> bool {
11321        true
11322    }
11323
11324    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
11325        while !is.eof()? {
11326            let (field_number, wire_type) = is.read_tag_unpack()?;
11327            match field_number {
11328                1 => {
11329                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.parent)?;
11330                },
11331                4 => {
11332                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.filter)?;
11333                },
11334                2 => {
11335                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
11336                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
11337                    }
11338                    let tmp = is.read_int32()?;
11339                    self.page_size = tmp;
11340                },
11341                3 => {
11342                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.page_token)?;
11343                },
11344                _ => {
11345                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
11346                },
11347            };
11348        }
11349        ::std::result::Result::Ok(())
11350    }
11351
11352    // Compute sizes of nested messages
11353    #[allow(unused_variables)]
11354    fn compute_size(&self) -> u32 {
11355        let mut my_size = 0;
11356        if !self.parent.is_empty() {
11357            my_size += ::protobuf::rt::string_size(1, &self.parent);
11358        }
11359        if !self.filter.is_empty() {
11360            my_size += ::protobuf::rt::string_size(4, &self.filter);
11361        }
11362        if self.page_size != 0 {
11363            my_size += ::protobuf::rt::value_size(2, self.page_size, ::protobuf::wire_format::WireTypeVarint);
11364        }
11365        if !self.page_token.is_empty() {
11366            my_size += ::protobuf::rt::string_size(3, &self.page_token);
11367        }
11368        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
11369        self.cached_size.set(my_size);
11370        my_size
11371    }
11372
11373    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
11374        if !self.parent.is_empty() {
11375            os.write_string(1, &self.parent)?;
11376        }
11377        if !self.filter.is_empty() {
11378            os.write_string(4, &self.filter)?;
11379        }
11380        if self.page_size != 0 {
11381            os.write_int32(2, self.page_size)?;
11382        }
11383        if !self.page_token.is_empty() {
11384            os.write_string(3, &self.page_token)?;
11385        }
11386        os.write_unknown_fields(self.get_unknown_fields())?;
11387        ::std::result::Result::Ok(())
11388    }
11389
11390    fn get_cached_size(&self) -> u32 {
11391        self.cached_size.get()
11392    }
11393
11394    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
11395        &self.unknown_fields
11396    }
11397
11398    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
11399        &mut self.unknown_fields
11400    }
11401
11402    fn as_any(&self) -> &dyn (::std::any::Any) {
11403        self as &dyn (::std::any::Any)
11404    }
11405    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
11406        self as &mut dyn (::std::any::Any)
11407    }
11408    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
11409        self
11410    }
11411
11412    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
11413        Self::descriptor_static()
11414    }
11415
11416    fn new() -> ListSavedQueriesRequest {
11417        ListSavedQueriesRequest::new()
11418    }
11419
11420    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
11421        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
11422        descriptor.get(|| {
11423            let mut fields = ::std::vec::Vec::new();
11424            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
11425                "parent",
11426                |m: &ListSavedQueriesRequest| { &m.parent },
11427                |m: &mut ListSavedQueriesRequest| { &mut m.parent },
11428            ));
11429            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
11430                "filter",
11431                |m: &ListSavedQueriesRequest| { &m.filter },
11432                |m: &mut ListSavedQueriesRequest| { &mut m.filter },
11433            ));
11434            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
11435                "page_size",
11436                |m: &ListSavedQueriesRequest| { &m.page_size },
11437                |m: &mut ListSavedQueriesRequest| { &mut m.page_size },
11438            ));
11439            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
11440                "page_token",
11441                |m: &ListSavedQueriesRequest| { &m.page_token },
11442                |m: &mut ListSavedQueriesRequest| { &mut m.page_token },
11443            ));
11444            ::protobuf::reflect::MessageDescriptor::new_pb_name::<ListSavedQueriesRequest>(
11445                "ListSavedQueriesRequest",
11446                fields,
11447                file_descriptor_proto()
11448            )
11449        })
11450    }
11451
11452    fn default_instance() -> &'static ListSavedQueriesRequest {
11453        static instance: ::protobuf::rt::LazyV2<ListSavedQueriesRequest> = ::protobuf::rt::LazyV2::INIT;
11454        instance.get(ListSavedQueriesRequest::new)
11455    }
11456}
11457
11458impl ::protobuf::Clear for ListSavedQueriesRequest {
11459    fn clear(&mut self) {
11460        self.parent.clear();
11461        self.filter.clear();
11462        self.page_size = 0;
11463        self.page_token.clear();
11464        self.unknown_fields.clear();
11465    }
11466}
11467
11468impl ::std::fmt::Debug for ListSavedQueriesRequest {
11469    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11470        ::protobuf::text_format::fmt(self, f)
11471    }
11472}
11473
11474impl ::protobuf::reflect::ProtobufValue for ListSavedQueriesRequest {
11475    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
11476        ::protobuf::reflect::ReflectValueRef::Message(self)
11477    }
11478}
11479
11480#[derive(PartialEq,Clone,Default)]
11481pub struct ListSavedQueriesResponse {
11482    // message fields
11483    pub saved_queries: ::protobuf::RepeatedField<SavedQuery>,
11484    pub next_page_token: ::std::string::String,
11485    // special fields
11486    pub unknown_fields: ::protobuf::UnknownFields,
11487    pub cached_size: ::protobuf::CachedSize,
11488}
11489
11490impl<'a> ::std::default::Default for &'a ListSavedQueriesResponse {
11491    fn default() -> &'a ListSavedQueriesResponse {
11492        <ListSavedQueriesResponse as ::protobuf::Message>::default_instance()
11493    }
11494}
11495
11496impl ListSavedQueriesResponse {
11497    pub fn new() -> ListSavedQueriesResponse {
11498        ::std::default::Default::default()
11499    }
11500
11501    // repeated .google.cloud.asset.v1.SavedQuery saved_queries = 1;
11502
11503
11504    pub fn get_saved_queries(&self) -> &[SavedQuery] {
11505        &self.saved_queries
11506    }
11507    pub fn clear_saved_queries(&mut self) {
11508        self.saved_queries.clear();
11509    }
11510
11511    // Param is passed by value, moved
11512    pub fn set_saved_queries(&mut self, v: ::protobuf::RepeatedField<SavedQuery>) {
11513        self.saved_queries = v;
11514    }
11515
11516    // Mutable pointer to the field.
11517    pub fn mut_saved_queries(&mut self) -> &mut ::protobuf::RepeatedField<SavedQuery> {
11518        &mut self.saved_queries
11519    }
11520
11521    // Take field
11522    pub fn take_saved_queries(&mut self) -> ::protobuf::RepeatedField<SavedQuery> {
11523        ::std::mem::replace(&mut self.saved_queries, ::protobuf::RepeatedField::new())
11524    }
11525
11526    // string next_page_token = 2;
11527
11528
11529    pub fn get_next_page_token(&self) -> &str {
11530        &self.next_page_token
11531    }
11532    pub fn clear_next_page_token(&mut self) {
11533        self.next_page_token.clear();
11534    }
11535
11536    // Param is passed by value, moved
11537    pub fn set_next_page_token(&mut self, v: ::std::string::String) {
11538        self.next_page_token = v;
11539    }
11540
11541    // Mutable pointer to the field.
11542    // If field is not initialized, it is initialized with default value first.
11543    pub fn mut_next_page_token(&mut self) -> &mut ::std::string::String {
11544        &mut self.next_page_token
11545    }
11546
11547    // Take field
11548    pub fn take_next_page_token(&mut self) -> ::std::string::String {
11549        ::std::mem::replace(&mut self.next_page_token, ::std::string::String::new())
11550    }
11551}
11552
11553impl ::protobuf::Message for ListSavedQueriesResponse {
11554    fn is_initialized(&self) -> bool {
11555        for v in &self.saved_queries {
11556            if !v.is_initialized() {
11557                return false;
11558            }
11559        };
11560        true
11561    }
11562
11563    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
11564        while !is.eof()? {
11565            let (field_number, wire_type) = is.read_tag_unpack()?;
11566            match field_number {
11567                1 => {
11568                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.saved_queries)?;
11569                },
11570                2 => {
11571                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.next_page_token)?;
11572                },
11573                _ => {
11574                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
11575                },
11576            };
11577        }
11578        ::std::result::Result::Ok(())
11579    }
11580
11581    // Compute sizes of nested messages
11582    #[allow(unused_variables)]
11583    fn compute_size(&self) -> u32 {
11584        let mut my_size = 0;
11585        for value in &self.saved_queries {
11586            let len = value.compute_size();
11587            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
11588        };
11589        if !self.next_page_token.is_empty() {
11590            my_size += ::protobuf::rt::string_size(2, &self.next_page_token);
11591        }
11592        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
11593        self.cached_size.set(my_size);
11594        my_size
11595    }
11596
11597    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
11598        for v in &self.saved_queries {
11599            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
11600            os.write_raw_varint32(v.get_cached_size())?;
11601            v.write_to_with_cached_sizes(os)?;
11602        };
11603        if !self.next_page_token.is_empty() {
11604            os.write_string(2, &self.next_page_token)?;
11605        }
11606        os.write_unknown_fields(self.get_unknown_fields())?;
11607        ::std::result::Result::Ok(())
11608    }
11609
11610    fn get_cached_size(&self) -> u32 {
11611        self.cached_size.get()
11612    }
11613
11614    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
11615        &self.unknown_fields
11616    }
11617
11618    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
11619        &mut self.unknown_fields
11620    }
11621
11622    fn as_any(&self) -> &dyn (::std::any::Any) {
11623        self as &dyn (::std::any::Any)
11624    }
11625    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
11626        self as &mut dyn (::std::any::Any)
11627    }
11628    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
11629        self
11630    }
11631
11632    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
11633        Self::descriptor_static()
11634    }
11635
11636    fn new() -> ListSavedQueriesResponse {
11637        ListSavedQueriesResponse::new()
11638    }
11639
11640    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
11641        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
11642        descriptor.get(|| {
11643            let mut fields = ::std::vec::Vec::new();
11644            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<SavedQuery>>(
11645                "saved_queries",
11646                |m: &ListSavedQueriesResponse| { &m.saved_queries },
11647                |m: &mut ListSavedQueriesResponse| { &mut m.saved_queries },
11648            ));
11649            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
11650                "next_page_token",
11651                |m: &ListSavedQueriesResponse| { &m.next_page_token },
11652                |m: &mut ListSavedQueriesResponse| { &mut m.next_page_token },
11653            ));
11654            ::protobuf::reflect::MessageDescriptor::new_pb_name::<ListSavedQueriesResponse>(
11655                "ListSavedQueriesResponse",
11656                fields,
11657                file_descriptor_proto()
11658            )
11659        })
11660    }
11661
11662    fn default_instance() -> &'static ListSavedQueriesResponse {
11663        static instance: ::protobuf::rt::LazyV2<ListSavedQueriesResponse> = ::protobuf::rt::LazyV2::INIT;
11664        instance.get(ListSavedQueriesResponse::new)
11665    }
11666}
11667
11668impl ::protobuf::Clear for ListSavedQueriesResponse {
11669    fn clear(&mut self) {
11670        self.saved_queries.clear();
11671        self.next_page_token.clear();
11672        self.unknown_fields.clear();
11673    }
11674}
11675
11676impl ::std::fmt::Debug for ListSavedQueriesResponse {
11677    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11678        ::protobuf::text_format::fmt(self, f)
11679    }
11680}
11681
11682impl ::protobuf::reflect::ProtobufValue for ListSavedQueriesResponse {
11683    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
11684        ::protobuf::reflect::ReflectValueRef::Message(self)
11685    }
11686}
11687
11688#[derive(PartialEq,Clone,Default)]
11689pub struct UpdateSavedQueryRequest {
11690    // message fields
11691    pub saved_query: ::protobuf::SingularPtrField<SavedQuery>,
11692    pub update_mask: ::protobuf::SingularPtrField<::protobuf::well_known_types::FieldMask>,
11693    // special fields
11694    pub unknown_fields: ::protobuf::UnknownFields,
11695    pub cached_size: ::protobuf::CachedSize,
11696}
11697
11698impl<'a> ::std::default::Default for &'a UpdateSavedQueryRequest {
11699    fn default() -> &'a UpdateSavedQueryRequest {
11700        <UpdateSavedQueryRequest as ::protobuf::Message>::default_instance()
11701    }
11702}
11703
11704impl UpdateSavedQueryRequest {
11705    pub fn new() -> UpdateSavedQueryRequest {
11706        ::std::default::Default::default()
11707    }
11708
11709    // .google.cloud.asset.v1.SavedQuery saved_query = 1;
11710
11711
11712    pub fn get_saved_query(&self) -> &SavedQuery {
11713        self.saved_query.as_ref().unwrap_or_else(|| <SavedQuery as ::protobuf::Message>::default_instance())
11714    }
11715    pub fn clear_saved_query(&mut self) {
11716        self.saved_query.clear();
11717    }
11718
11719    pub fn has_saved_query(&self) -> bool {
11720        self.saved_query.is_some()
11721    }
11722
11723    // Param is passed by value, moved
11724    pub fn set_saved_query(&mut self, v: SavedQuery) {
11725        self.saved_query = ::protobuf::SingularPtrField::some(v);
11726    }
11727
11728    // Mutable pointer to the field.
11729    // If field is not initialized, it is initialized with default value first.
11730    pub fn mut_saved_query(&mut self) -> &mut SavedQuery {
11731        if self.saved_query.is_none() {
11732            self.saved_query.set_default();
11733        }
11734        self.saved_query.as_mut().unwrap()
11735    }
11736
11737    // Take field
11738    pub fn take_saved_query(&mut self) -> SavedQuery {
11739        self.saved_query.take().unwrap_or_else(|| SavedQuery::new())
11740    }
11741
11742    // .google.protobuf.FieldMask update_mask = 2;
11743
11744
11745    pub fn get_update_mask(&self) -> &::protobuf::well_known_types::FieldMask {
11746        self.update_mask.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::FieldMask as ::protobuf::Message>::default_instance())
11747    }
11748    pub fn clear_update_mask(&mut self) {
11749        self.update_mask.clear();
11750    }
11751
11752    pub fn has_update_mask(&self) -> bool {
11753        self.update_mask.is_some()
11754    }
11755
11756    // Param is passed by value, moved
11757    pub fn set_update_mask(&mut self, v: ::protobuf::well_known_types::FieldMask) {
11758        self.update_mask = ::protobuf::SingularPtrField::some(v);
11759    }
11760
11761    // Mutable pointer to the field.
11762    // If field is not initialized, it is initialized with default value first.
11763    pub fn mut_update_mask(&mut self) -> &mut ::protobuf::well_known_types::FieldMask {
11764        if self.update_mask.is_none() {
11765            self.update_mask.set_default();
11766        }
11767        self.update_mask.as_mut().unwrap()
11768    }
11769
11770    // Take field
11771    pub fn take_update_mask(&mut self) -> ::protobuf::well_known_types::FieldMask {
11772        self.update_mask.take().unwrap_or_else(|| ::protobuf::well_known_types::FieldMask::new())
11773    }
11774}
11775
11776impl ::protobuf::Message for UpdateSavedQueryRequest {
11777    fn is_initialized(&self) -> bool {
11778        for v in &self.saved_query {
11779            if !v.is_initialized() {
11780                return false;
11781            }
11782        };
11783        for v in &self.update_mask {
11784            if !v.is_initialized() {
11785                return false;
11786            }
11787        };
11788        true
11789    }
11790
11791    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
11792        while !is.eof()? {
11793            let (field_number, wire_type) = is.read_tag_unpack()?;
11794            match field_number {
11795                1 => {
11796                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.saved_query)?;
11797                },
11798                2 => {
11799                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.update_mask)?;
11800                },
11801                _ => {
11802                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
11803                },
11804            };
11805        }
11806        ::std::result::Result::Ok(())
11807    }
11808
11809    // Compute sizes of nested messages
11810    #[allow(unused_variables)]
11811    fn compute_size(&self) -> u32 {
11812        let mut my_size = 0;
11813        if let Some(ref v) = self.saved_query.as_ref() {
11814            let len = v.compute_size();
11815            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
11816        }
11817        if let Some(ref v) = self.update_mask.as_ref() {
11818            let len = v.compute_size();
11819            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
11820        }
11821        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
11822        self.cached_size.set(my_size);
11823        my_size
11824    }
11825
11826    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
11827        if let Some(ref v) = self.saved_query.as_ref() {
11828            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
11829            os.write_raw_varint32(v.get_cached_size())?;
11830            v.write_to_with_cached_sizes(os)?;
11831        }
11832        if let Some(ref v) = self.update_mask.as_ref() {
11833            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
11834            os.write_raw_varint32(v.get_cached_size())?;
11835            v.write_to_with_cached_sizes(os)?;
11836        }
11837        os.write_unknown_fields(self.get_unknown_fields())?;
11838        ::std::result::Result::Ok(())
11839    }
11840
11841    fn get_cached_size(&self) -> u32 {
11842        self.cached_size.get()
11843    }
11844
11845    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
11846        &self.unknown_fields
11847    }
11848
11849    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
11850        &mut self.unknown_fields
11851    }
11852
11853    fn as_any(&self) -> &dyn (::std::any::Any) {
11854        self as &dyn (::std::any::Any)
11855    }
11856    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
11857        self as &mut dyn (::std::any::Any)
11858    }
11859    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
11860        self
11861    }
11862
11863    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
11864        Self::descriptor_static()
11865    }
11866
11867    fn new() -> UpdateSavedQueryRequest {
11868        UpdateSavedQueryRequest::new()
11869    }
11870
11871    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
11872        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
11873        descriptor.get(|| {
11874            let mut fields = ::std::vec::Vec::new();
11875            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<SavedQuery>>(
11876                "saved_query",
11877                |m: &UpdateSavedQueryRequest| { &m.saved_query },
11878                |m: &mut UpdateSavedQueryRequest| { &mut m.saved_query },
11879            ));
11880            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::FieldMask>>(
11881                "update_mask",
11882                |m: &UpdateSavedQueryRequest| { &m.update_mask },
11883                |m: &mut UpdateSavedQueryRequest| { &mut m.update_mask },
11884            ));
11885            ::protobuf::reflect::MessageDescriptor::new_pb_name::<UpdateSavedQueryRequest>(
11886                "UpdateSavedQueryRequest",
11887                fields,
11888                file_descriptor_proto()
11889            )
11890        })
11891    }
11892
11893    fn default_instance() -> &'static UpdateSavedQueryRequest {
11894        static instance: ::protobuf::rt::LazyV2<UpdateSavedQueryRequest> = ::protobuf::rt::LazyV2::INIT;
11895        instance.get(UpdateSavedQueryRequest::new)
11896    }
11897}
11898
11899impl ::protobuf::Clear for UpdateSavedQueryRequest {
11900    fn clear(&mut self) {
11901        self.saved_query.clear();
11902        self.update_mask.clear();
11903        self.unknown_fields.clear();
11904    }
11905}
11906
11907impl ::std::fmt::Debug for UpdateSavedQueryRequest {
11908    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11909        ::protobuf::text_format::fmt(self, f)
11910    }
11911}
11912
11913impl ::protobuf::reflect::ProtobufValue for UpdateSavedQueryRequest {
11914    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
11915        ::protobuf::reflect::ReflectValueRef::Message(self)
11916    }
11917}
11918
11919#[derive(PartialEq,Clone,Default)]
11920pub struct DeleteSavedQueryRequest {
11921    // message fields
11922    pub name: ::std::string::String,
11923    // special fields
11924    pub unknown_fields: ::protobuf::UnknownFields,
11925    pub cached_size: ::protobuf::CachedSize,
11926}
11927
11928impl<'a> ::std::default::Default for &'a DeleteSavedQueryRequest {
11929    fn default() -> &'a DeleteSavedQueryRequest {
11930        <DeleteSavedQueryRequest as ::protobuf::Message>::default_instance()
11931    }
11932}
11933
11934impl DeleteSavedQueryRequest {
11935    pub fn new() -> DeleteSavedQueryRequest {
11936        ::std::default::Default::default()
11937    }
11938
11939    // string name = 1;
11940
11941
11942    pub fn get_name(&self) -> &str {
11943        &self.name
11944    }
11945    pub fn clear_name(&mut self) {
11946        self.name.clear();
11947    }
11948
11949    // Param is passed by value, moved
11950    pub fn set_name(&mut self, v: ::std::string::String) {
11951        self.name = v;
11952    }
11953
11954    // Mutable pointer to the field.
11955    // If field is not initialized, it is initialized with default value first.
11956    pub fn mut_name(&mut self) -> &mut ::std::string::String {
11957        &mut self.name
11958    }
11959
11960    // Take field
11961    pub fn take_name(&mut self) -> ::std::string::String {
11962        ::std::mem::replace(&mut self.name, ::std::string::String::new())
11963    }
11964}
11965
11966impl ::protobuf::Message for DeleteSavedQueryRequest {
11967    fn is_initialized(&self) -> bool {
11968        true
11969    }
11970
11971    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
11972        while !is.eof()? {
11973            let (field_number, wire_type) = is.read_tag_unpack()?;
11974            match field_number {
11975                1 => {
11976                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
11977                },
11978                _ => {
11979                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
11980                },
11981            };
11982        }
11983        ::std::result::Result::Ok(())
11984    }
11985
11986    // Compute sizes of nested messages
11987    #[allow(unused_variables)]
11988    fn compute_size(&self) -> u32 {
11989        let mut my_size = 0;
11990        if !self.name.is_empty() {
11991            my_size += ::protobuf::rt::string_size(1, &self.name);
11992        }
11993        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
11994        self.cached_size.set(my_size);
11995        my_size
11996    }
11997
11998    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
11999        if !self.name.is_empty() {
12000            os.write_string(1, &self.name)?;
12001        }
12002        os.write_unknown_fields(self.get_unknown_fields())?;
12003        ::std::result::Result::Ok(())
12004    }
12005
12006    fn get_cached_size(&self) -> u32 {
12007        self.cached_size.get()
12008    }
12009
12010    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
12011        &self.unknown_fields
12012    }
12013
12014    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
12015        &mut self.unknown_fields
12016    }
12017
12018    fn as_any(&self) -> &dyn (::std::any::Any) {
12019        self as &dyn (::std::any::Any)
12020    }
12021    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
12022        self as &mut dyn (::std::any::Any)
12023    }
12024    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
12025        self
12026    }
12027
12028    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
12029        Self::descriptor_static()
12030    }
12031
12032    fn new() -> DeleteSavedQueryRequest {
12033        DeleteSavedQueryRequest::new()
12034    }
12035
12036    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
12037        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
12038        descriptor.get(|| {
12039            let mut fields = ::std::vec::Vec::new();
12040            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
12041                "name",
12042                |m: &DeleteSavedQueryRequest| { &m.name },
12043                |m: &mut DeleteSavedQueryRequest| { &mut m.name },
12044            ));
12045            ::protobuf::reflect::MessageDescriptor::new_pb_name::<DeleteSavedQueryRequest>(
12046                "DeleteSavedQueryRequest",
12047                fields,
12048                file_descriptor_proto()
12049            )
12050        })
12051    }
12052
12053    fn default_instance() -> &'static DeleteSavedQueryRequest {
12054        static instance: ::protobuf::rt::LazyV2<DeleteSavedQueryRequest> = ::protobuf::rt::LazyV2::INIT;
12055        instance.get(DeleteSavedQueryRequest::new)
12056    }
12057}
12058
12059impl ::protobuf::Clear for DeleteSavedQueryRequest {
12060    fn clear(&mut self) {
12061        self.name.clear();
12062        self.unknown_fields.clear();
12063    }
12064}
12065
12066impl ::std::fmt::Debug for DeleteSavedQueryRequest {
12067    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12068        ::protobuf::text_format::fmt(self, f)
12069    }
12070}
12071
12072impl ::protobuf::reflect::ProtobufValue for DeleteSavedQueryRequest {
12073    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
12074        ::protobuf::reflect::ReflectValueRef::Message(self)
12075    }
12076}
12077
12078#[derive(PartialEq,Clone,Default)]
12079pub struct AnalyzeMoveRequest {
12080    // message fields
12081    pub resource: ::std::string::String,
12082    pub destination_parent: ::std::string::String,
12083    pub view: AnalyzeMoveRequest_AnalysisView,
12084    // special fields
12085    pub unknown_fields: ::protobuf::UnknownFields,
12086    pub cached_size: ::protobuf::CachedSize,
12087}
12088
12089impl<'a> ::std::default::Default for &'a AnalyzeMoveRequest {
12090    fn default() -> &'a AnalyzeMoveRequest {
12091        <AnalyzeMoveRequest as ::protobuf::Message>::default_instance()
12092    }
12093}
12094
12095impl AnalyzeMoveRequest {
12096    pub fn new() -> AnalyzeMoveRequest {
12097        ::std::default::Default::default()
12098    }
12099
12100    // string resource = 1;
12101
12102
12103    pub fn get_resource(&self) -> &str {
12104        &self.resource
12105    }
12106    pub fn clear_resource(&mut self) {
12107        self.resource.clear();
12108    }
12109
12110    // Param is passed by value, moved
12111    pub fn set_resource(&mut self, v: ::std::string::String) {
12112        self.resource = v;
12113    }
12114
12115    // Mutable pointer to the field.
12116    // If field is not initialized, it is initialized with default value first.
12117    pub fn mut_resource(&mut self) -> &mut ::std::string::String {
12118        &mut self.resource
12119    }
12120
12121    // Take field
12122    pub fn take_resource(&mut self) -> ::std::string::String {
12123        ::std::mem::replace(&mut self.resource, ::std::string::String::new())
12124    }
12125
12126    // string destination_parent = 2;
12127
12128
12129    pub fn get_destination_parent(&self) -> &str {
12130        &self.destination_parent
12131    }
12132    pub fn clear_destination_parent(&mut self) {
12133        self.destination_parent.clear();
12134    }
12135
12136    // Param is passed by value, moved
12137    pub fn set_destination_parent(&mut self, v: ::std::string::String) {
12138        self.destination_parent = v;
12139    }
12140
12141    // Mutable pointer to the field.
12142    // If field is not initialized, it is initialized with default value first.
12143    pub fn mut_destination_parent(&mut self) -> &mut ::std::string::String {
12144        &mut self.destination_parent
12145    }
12146
12147    // Take field
12148    pub fn take_destination_parent(&mut self) -> ::std::string::String {
12149        ::std::mem::replace(&mut self.destination_parent, ::std::string::String::new())
12150    }
12151
12152    // .google.cloud.asset.v1.AnalyzeMoveRequest.AnalysisView view = 3;
12153
12154
12155    pub fn get_view(&self) -> AnalyzeMoveRequest_AnalysisView {
12156        self.view
12157    }
12158    pub fn clear_view(&mut self) {
12159        self.view = AnalyzeMoveRequest_AnalysisView::ANALYSIS_VIEW_UNSPECIFIED;
12160    }
12161
12162    // Param is passed by value, moved
12163    pub fn set_view(&mut self, v: AnalyzeMoveRequest_AnalysisView) {
12164        self.view = v;
12165    }
12166}
12167
12168impl ::protobuf::Message for AnalyzeMoveRequest {
12169    fn is_initialized(&self) -> bool {
12170        true
12171    }
12172
12173    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
12174        while !is.eof()? {
12175            let (field_number, wire_type) = is.read_tag_unpack()?;
12176            match field_number {
12177                1 => {
12178                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.resource)?;
12179                },
12180                2 => {
12181                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.destination_parent)?;
12182                },
12183                3 => {
12184                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.view, 3, &mut self.unknown_fields)?
12185                },
12186                _ => {
12187                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
12188                },
12189            };
12190        }
12191        ::std::result::Result::Ok(())
12192    }
12193
12194    // Compute sizes of nested messages
12195    #[allow(unused_variables)]
12196    fn compute_size(&self) -> u32 {
12197        let mut my_size = 0;
12198        if !self.resource.is_empty() {
12199            my_size += ::protobuf::rt::string_size(1, &self.resource);
12200        }
12201        if !self.destination_parent.is_empty() {
12202            my_size += ::protobuf::rt::string_size(2, &self.destination_parent);
12203        }
12204        if self.view != AnalyzeMoveRequest_AnalysisView::ANALYSIS_VIEW_UNSPECIFIED {
12205            my_size += ::protobuf::rt::enum_size(3, self.view);
12206        }
12207        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
12208        self.cached_size.set(my_size);
12209        my_size
12210    }
12211
12212    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
12213        if !self.resource.is_empty() {
12214            os.write_string(1, &self.resource)?;
12215        }
12216        if !self.destination_parent.is_empty() {
12217            os.write_string(2, &self.destination_parent)?;
12218        }
12219        if self.view != AnalyzeMoveRequest_AnalysisView::ANALYSIS_VIEW_UNSPECIFIED {
12220            os.write_enum(3, ::protobuf::ProtobufEnum::value(&self.view))?;
12221        }
12222        os.write_unknown_fields(self.get_unknown_fields())?;
12223        ::std::result::Result::Ok(())
12224    }
12225
12226    fn get_cached_size(&self) -> u32 {
12227        self.cached_size.get()
12228    }
12229
12230    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
12231        &self.unknown_fields
12232    }
12233
12234    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
12235        &mut self.unknown_fields
12236    }
12237
12238    fn as_any(&self) -> &dyn (::std::any::Any) {
12239        self as &dyn (::std::any::Any)
12240    }
12241    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
12242        self as &mut dyn (::std::any::Any)
12243    }
12244    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
12245        self
12246    }
12247
12248    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
12249        Self::descriptor_static()
12250    }
12251
12252    fn new() -> AnalyzeMoveRequest {
12253        AnalyzeMoveRequest::new()
12254    }
12255
12256    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
12257        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
12258        descriptor.get(|| {
12259            let mut fields = ::std::vec::Vec::new();
12260            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
12261                "resource",
12262                |m: &AnalyzeMoveRequest| { &m.resource },
12263                |m: &mut AnalyzeMoveRequest| { &mut m.resource },
12264            ));
12265            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
12266                "destination_parent",
12267                |m: &AnalyzeMoveRequest| { &m.destination_parent },
12268                |m: &mut AnalyzeMoveRequest| { &mut m.destination_parent },
12269            ));
12270            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<AnalyzeMoveRequest_AnalysisView>>(
12271                "view",
12272                |m: &AnalyzeMoveRequest| { &m.view },
12273                |m: &mut AnalyzeMoveRequest| { &mut m.view },
12274            ));
12275            ::protobuf::reflect::MessageDescriptor::new_pb_name::<AnalyzeMoveRequest>(
12276                "AnalyzeMoveRequest",
12277                fields,
12278                file_descriptor_proto()
12279            )
12280        })
12281    }
12282
12283    fn default_instance() -> &'static AnalyzeMoveRequest {
12284        static instance: ::protobuf::rt::LazyV2<AnalyzeMoveRequest> = ::protobuf::rt::LazyV2::INIT;
12285        instance.get(AnalyzeMoveRequest::new)
12286    }
12287}
12288
12289impl ::protobuf::Clear for AnalyzeMoveRequest {
12290    fn clear(&mut self) {
12291        self.resource.clear();
12292        self.destination_parent.clear();
12293        self.view = AnalyzeMoveRequest_AnalysisView::ANALYSIS_VIEW_UNSPECIFIED;
12294        self.unknown_fields.clear();
12295    }
12296}
12297
12298impl ::std::fmt::Debug for AnalyzeMoveRequest {
12299    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12300        ::protobuf::text_format::fmt(self, f)
12301    }
12302}
12303
12304impl ::protobuf::reflect::ProtobufValue for AnalyzeMoveRequest {
12305    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
12306        ::protobuf::reflect::ReflectValueRef::Message(self)
12307    }
12308}
12309
12310#[derive(Clone,PartialEq,Eq,Debug,Hash)]
12311pub enum AnalyzeMoveRequest_AnalysisView {
12312    ANALYSIS_VIEW_UNSPECIFIED = 0,
12313    FULL = 1,
12314    BASIC = 2,
12315}
12316
12317impl ::protobuf::ProtobufEnum for AnalyzeMoveRequest_AnalysisView {
12318    fn value(&self) -> i32 {
12319        *self as i32
12320    }
12321
12322    fn from_i32(value: i32) -> ::std::option::Option<AnalyzeMoveRequest_AnalysisView> {
12323        match value {
12324            0 => ::std::option::Option::Some(AnalyzeMoveRequest_AnalysisView::ANALYSIS_VIEW_UNSPECIFIED),
12325            1 => ::std::option::Option::Some(AnalyzeMoveRequest_AnalysisView::FULL),
12326            2 => ::std::option::Option::Some(AnalyzeMoveRequest_AnalysisView::BASIC),
12327            _ => ::std::option::Option::None
12328        }
12329    }
12330
12331    fn values() -> &'static [Self] {
12332        static values: &'static [AnalyzeMoveRequest_AnalysisView] = &[
12333            AnalyzeMoveRequest_AnalysisView::ANALYSIS_VIEW_UNSPECIFIED,
12334            AnalyzeMoveRequest_AnalysisView::FULL,
12335            AnalyzeMoveRequest_AnalysisView::BASIC,
12336        ];
12337        values
12338    }
12339
12340    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
12341        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
12342        descriptor.get(|| {
12343            ::protobuf::reflect::EnumDescriptor::new_pb_name::<AnalyzeMoveRequest_AnalysisView>("AnalyzeMoveRequest.AnalysisView", file_descriptor_proto())
12344        })
12345    }
12346}
12347
12348impl ::std::marker::Copy for AnalyzeMoveRequest_AnalysisView {
12349}
12350
12351impl ::std::default::Default for AnalyzeMoveRequest_AnalysisView {
12352    fn default() -> Self {
12353        AnalyzeMoveRequest_AnalysisView::ANALYSIS_VIEW_UNSPECIFIED
12354    }
12355}
12356
12357impl ::protobuf::reflect::ProtobufValue for AnalyzeMoveRequest_AnalysisView {
12358    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
12359        ::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
12360    }
12361}
12362
12363#[derive(PartialEq,Clone,Default)]
12364pub struct AnalyzeMoveResponse {
12365    // message fields
12366    pub move_analysis: ::protobuf::RepeatedField<MoveAnalysis>,
12367    // special fields
12368    pub unknown_fields: ::protobuf::UnknownFields,
12369    pub cached_size: ::protobuf::CachedSize,
12370}
12371
12372impl<'a> ::std::default::Default for &'a AnalyzeMoveResponse {
12373    fn default() -> &'a AnalyzeMoveResponse {
12374        <AnalyzeMoveResponse as ::protobuf::Message>::default_instance()
12375    }
12376}
12377
12378impl AnalyzeMoveResponse {
12379    pub fn new() -> AnalyzeMoveResponse {
12380        ::std::default::Default::default()
12381    }
12382
12383    // repeated .google.cloud.asset.v1.MoveAnalysis move_analysis = 1;
12384
12385
12386    pub fn get_move_analysis(&self) -> &[MoveAnalysis] {
12387        &self.move_analysis
12388    }
12389    pub fn clear_move_analysis(&mut self) {
12390        self.move_analysis.clear();
12391    }
12392
12393    // Param is passed by value, moved
12394    pub fn set_move_analysis(&mut self, v: ::protobuf::RepeatedField<MoveAnalysis>) {
12395        self.move_analysis = v;
12396    }
12397
12398    // Mutable pointer to the field.
12399    pub fn mut_move_analysis(&mut self) -> &mut ::protobuf::RepeatedField<MoveAnalysis> {
12400        &mut self.move_analysis
12401    }
12402
12403    // Take field
12404    pub fn take_move_analysis(&mut self) -> ::protobuf::RepeatedField<MoveAnalysis> {
12405        ::std::mem::replace(&mut self.move_analysis, ::protobuf::RepeatedField::new())
12406    }
12407}
12408
12409impl ::protobuf::Message for AnalyzeMoveResponse {
12410    fn is_initialized(&self) -> bool {
12411        for v in &self.move_analysis {
12412            if !v.is_initialized() {
12413                return false;
12414            }
12415        };
12416        true
12417    }
12418
12419    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
12420        while !is.eof()? {
12421            let (field_number, wire_type) = is.read_tag_unpack()?;
12422            match field_number {
12423                1 => {
12424                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.move_analysis)?;
12425                },
12426                _ => {
12427                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
12428                },
12429            };
12430        }
12431        ::std::result::Result::Ok(())
12432    }
12433
12434    // Compute sizes of nested messages
12435    #[allow(unused_variables)]
12436    fn compute_size(&self) -> u32 {
12437        let mut my_size = 0;
12438        for value in &self.move_analysis {
12439            let len = value.compute_size();
12440            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
12441        };
12442        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
12443        self.cached_size.set(my_size);
12444        my_size
12445    }
12446
12447    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
12448        for v in &self.move_analysis {
12449            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
12450            os.write_raw_varint32(v.get_cached_size())?;
12451            v.write_to_with_cached_sizes(os)?;
12452        };
12453        os.write_unknown_fields(self.get_unknown_fields())?;
12454        ::std::result::Result::Ok(())
12455    }
12456
12457    fn get_cached_size(&self) -> u32 {
12458        self.cached_size.get()
12459    }
12460
12461    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
12462        &self.unknown_fields
12463    }
12464
12465    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
12466        &mut self.unknown_fields
12467    }
12468
12469    fn as_any(&self) -> &dyn (::std::any::Any) {
12470        self as &dyn (::std::any::Any)
12471    }
12472    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
12473        self as &mut dyn (::std::any::Any)
12474    }
12475    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
12476        self
12477    }
12478
12479    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
12480        Self::descriptor_static()
12481    }
12482
12483    fn new() -> AnalyzeMoveResponse {
12484        AnalyzeMoveResponse::new()
12485    }
12486
12487    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
12488        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
12489        descriptor.get(|| {
12490            let mut fields = ::std::vec::Vec::new();
12491            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<MoveAnalysis>>(
12492                "move_analysis",
12493                |m: &AnalyzeMoveResponse| { &m.move_analysis },
12494                |m: &mut AnalyzeMoveResponse| { &mut m.move_analysis },
12495            ));
12496            ::protobuf::reflect::MessageDescriptor::new_pb_name::<AnalyzeMoveResponse>(
12497                "AnalyzeMoveResponse",
12498                fields,
12499                file_descriptor_proto()
12500            )
12501        })
12502    }
12503
12504    fn default_instance() -> &'static AnalyzeMoveResponse {
12505        static instance: ::protobuf::rt::LazyV2<AnalyzeMoveResponse> = ::protobuf::rt::LazyV2::INIT;
12506        instance.get(AnalyzeMoveResponse::new)
12507    }
12508}
12509
12510impl ::protobuf::Clear for AnalyzeMoveResponse {
12511    fn clear(&mut self) {
12512        self.move_analysis.clear();
12513        self.unknown_fields.clear();
12514    }
12515}
12516
12517impl ::std::fmt::Debug for AnalyzeMoveResponse {
12518    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12519        ::protobuf::text_format::fmt(self, f)
12520    }
12521}
12522
12523impl ::protobuf::reflect::ProtobufValue for AnalyzeMoveResponse {
12524    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
12525        ::protobuf::reflect::ReflectValueRef::Message(self)
12526    }
12527}
12528
12529#[derive(PartialEq,Clone,Default)]
12530pub struct MoveAnalysis {
12531    // message fields
12532    pub display_name: ::std::string::String,
12533    // message oneof groups
12534    pub result: ::std::option::Option<MoveAnalysis_oneof_result>,
12535    // special fields
12536    pub unknown_fields: ::protobuf::UnknownFields,
12537    pub cached_size: ::protobuf::CachedSize,
12538}
12539
12540impl<'a> ::std::default::Default for &'a MoveAnalysis {
12541    fn default() -> &'a MoveAnalysis {
12542        <MoveAnalysis as ::protobuf::Message>::default_instance()
12543    }
12544}
12545
12546#[derive(Clone,PartialEq,Debug)]
12547pub enum MoveAnalysis_oneof_result {
12548    analysis(MoveAnalysisResult),
12549    error(super::status::Status),
12550}
12551
12552impl MoveAnalysis {
12553    pub fn new() -> MoveAnalysis {
12554        ::std::default::Default::default()
12555    }
12556
12557    // string display_name = 1;
12558
12559
12560    pub fn get_display_name(&self) -> &str {
12561        &self.display_name
12562    }
12563    pub fn clear_display_name(&mut self) {
12564        self.display_name.clear();
12565    }
12566
12567    // Param is passed by value, moved
12568    pub fn set_display_name(&mut self, v: ::std::string::String) {
12569        self.display_name = v;
12570    }
12571
12572    // Mutable pointer to the field.
12573    // If field is not initialized, it is initialized with default value first.
12574    pub fn mut_display_name(&mut self) -> &mut ::std::string::String {
12575        &mut self.display_name
12576    }
12577
12578    // Take field
12579    pub fn take_display_name(&mut self) -> ::std::string::String {
12580        ::std::mem::replace(&mut self.display_name, ::std::string::String::new())
12581    }
12582
12583    // .google.cloud.asset.v1.MoveAnalysisResult analysis = 2;
12584
12585
12586    pub fn get_analysis(&self) -> &MoveAnalysisResult {
12587        match self.result {
12588            ::std::option::Option::Some(MoveAnalysis_oneof_result::analysis(ref v)) => v,
12589            _ => <MoveAnalysisResult as ::protobuf::Message>::default_instance(),
12590        }
12591    }
12592    pub fn clear_analysis(&mut self) {
12593        self.result = ::std::option::Option::None;
12594    }
12595
12596    pub fn has_analysis(&self) -> bool {
12597        match self.result {
12598            ::std::option::Option::Some(MoveAnalysis_oneof_result::analysis(..)) => true,
12599            _ => false,
12600        }
12601    }
12602
12603    // Param is passed by value, moved
12604    pub fn set_analysis(&mut self, v: MoveAnalysisResult) {
12605        self.result = ::std::option::Option::Some(MoveAnalysis_oneof_result::analysis(v))
12606    }
12607
12608    // Mutable pointer to the field.
12609    pub fn mut_analysis(&mut self) -> &mut MoveAnalysisResult {
12610        if let ::std::option::Option::Some(MoveAnalysis_oneof_result::analysis(_)) = self.result {
12611        } else {
12612            self.result = ::std::option::Option::Some(MoveAnalysis_oneof_result::analysis(MoveAnalysisResult::new()));
12613        }
12614        match self.result {
12615            ::std::option::Option::Some(MoveAnalysis_oneof_result::analysis(ref mut v)) => v,
12616            _ => panic!(),
12617        }
12618    }
12619
12620    // Take field
12621    pub fn take_analysis(&mut self) -> MoveAnalysisResult {
12622        if self.has_analysis() {
12623            match self.result.take() {
12624                ::std::option::Option::Some(MoveAnalysis_oneof_result::analysis(v)) => v,
12625                _ => panic!(),
12626            }
12627        } else {
12628            MoveAnalysisResult::new()
12629        }
12630    }
12631
12632    // .google.rpc.Status error = 3;
12633
12634
12635    pub fn get_error(&self) -> &super::status::Status {
12636        match self.result {
12637            ::std::option::Option::Some(MoveAnalysis_oneof_result::error(ref v)) => v,
12638            _ => <super::status::Status as ::protobuf::Message>::default_instance(),
12639        }
12640    }
12641    pub fn clear_error(&mut self) {
12642        self.result = ::std::option::Option::None;
12643    }
12644
12645    pub fn has_error(&self) -> bool {
12646        match self.result {
12647            ::std::option::Option::Some(MoveAnalysis_oneof_result::error(..)) => true,
12648            _ => false,
12649        }
12650    }
12651
12652    // Param is passed by value, moved
12653    pub fn set_error(&mut self, v: super::status::Status) {
12654        self.result = ::std::option::Option::Some(MoveAnalysis_oneof_result::error(v))
12655    }
12656
12657    // Mutable pointer to the field.
12658    pub fn mut_error(&mut self) -> &mut super::status::Status {
12659        if let ::std::option::Option::Some(MoveAnalysis_oneof_result::error(_)) = self.result {
12660        } else {
12661            self.result = ::std::option::Option::Some(MoveAnalysis_oneof_result::error(super::status::Status::new()));
12662        }
12663        match self.result {
12664            ::std::option::Option::Some(MoveAnalysis_oneof_result::error(ref mut v)) => v,
12665            _ => panic!(),
12666        }
12667    }
12668
12669    // Take field
12670    pub fn take_error(&mut self) -> super::status::Status {
12671        if self.has_error() {
12672            match self.result.take() {
12673                ::std::option::Option::Some(MoveAnalysis_oneof_result::error(v)) => v,
12674                _ => panic!(),
12675            }
12676        } else {
12677            super::status::Status::new()
12678        }
12679    }
12680}
12681
12682impl ::protobuf::Message for MoveAnalysis {
12683    fn is_initialized(&self) -> bool {
12684        if let Some(MoveAnalysis_oneof_result::analysis(ref v)) = self.result {
12685            if !v.is_initialized() {
12686                return false;
12687            }
12688        }
12689        if let Some(MoveAnalysis_oneof_result::error(ref v)) = self.result {
12690            if !v.is_initialized() {
12691                return false;
12692            }
12693        }
12694        true
12695    }
12696
12697    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
12698        while !is.eof()? {
12699            let (field_number, wire_type) = is.read_tag_unpack()?;
12700            match field_number {
12701                1 => {
12702                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.display_name)?;
12703                },
12704                2 => {
12705                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
12706                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
12707                    }
12708                    self.result = ::std::option::Option::Some(MoveAnalysis_oneof_result::analysis(is.read_message()?));
12709                },
12710                3 => {
12711                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
12712                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
12713                    }
12714                    self.result = ::std::option::Option::Some(MoveAnalysis_oneof_result::error(is.read_message()?));
12715                },
12716                _ => {
12717                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
12718                },
12719            };
12720        }
12721        ::std::result::Result::Ok(())
12722    }
12723
12724    // Compute sizes of nested messages
12725    #[allow(unused_variables)]
12726    fn compute_size(&self) -> u32 {
12727        let mut my_size = 0;
12728        if !self.display_name.is_empty() {
12729            my_size += ::protobuf::rt::string_size(1, &self.display_name);
12730        }
12731        if let ::std::option::Option::Some(ref v) = self.result {
12732            match v {
12733                &MoveAnalysis_oneof_result::analysis(ref v) => {
12734                    let len = v.compute_size();
12735                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
12736                },
12737                &MoveAnalysis_oneof_result::error(ref v) => {
12738                    let len = v.compute_size();
12739                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
12740                },
12741            };
12742        }
12743        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
12744        self.cached_size.set(my_size);
12745        my_size
12746    }
12747
12748    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
12749        if !self.display_name.is_empty() {
12750            os.write_string(1, &self.display_name)?;
12751        }
12752        if let ::std::option::Option::Some(ref v) = self.result {
12753            match v {
12754                &MoveAnalysis_oneof_result::analysis(ref v) => {
12755                    os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
12756                    os.write_raw_varint32(v.get_cached_size())?;
12757                    v.write_to_with_cached_sizes(os)?;
12758                },
12759                &MoveAnalysis_oneof_result::error(ref v) => {
12760                    os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
12761                    os.write_raw_varint32(v.get_cached_size())?;
12762                    v.write_to_with_cached_sizes(os)?;
12763                },
12764            };
12765        }
12766        os.write_unknown_fields(self.get_unknown_fields())?;
12767        ::std::result::Result::Ok(())
12768    }
12769
12770    fn get_cached_size(&self) -> u32 {
12771        self.cached_size.get()
12772    }
12773
12774    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
12775        &self.unknown_fields
12776    }
12777
12778    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
12779        &mut self.unknown_fields
12780    }
12781
12782    fn as_any(&self) -> &dyn (::std::any::Any) {
12783        self as &dyn (::std::any::Any)
12784    }
12785    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
12786        self as &mut dyn (::std::any::Any)
12787    }
12788    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
12789        self
12790    }
12791
12792    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
12793        Self::descriptor_static()
12794    }
12795
12796    fn new() -> MoveAnalysis {
12797        MoveAnalysis::new()
12798    }
12799
12800    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
12801        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
12802        descriptor.get(|| {
12803            let mut fields = ::std::vec::Vec::new();
12804            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
12805                "display_name",
12806                |m: &MoveAnalysis| { &m.display_name },
12807                |m: &mut MoveAnalysis| { &mut m.display_name },
12808            ));
12809            fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, MoveAnalysisResult>(
12810                "analysis",
12811                MoveAnalysis::has_analysis,
12812                MoveAnalysis::get_analysis,
12813            ));
12814            fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, super::status::Status>(
12815                "error",
12816                MoveAnalysis::has_error,
12817                MoveAnalysis::get_error,
12818            ));
12819            ::protobuf::reflect::MessageDescriptor::new_pb_name::<MoveAnalysis>(
12820                "MoveAnalysis",
12821                fields,
12822                file_descriptor_proto()
12823            )
12824        })
12825    }
12826
12827    fn default_instance() -> &'static MoveAnalysis {
12828        static instance: ::protobuf::rt::LazyV2<MoveAnalysis> = ::protobuf::rt::LazyV2::INIT;
12829        instance.get(MoveAnalysis::new)
12830    }
12831}
12832
12833impl ::protobuf::Clear for MoveAnalysis {
12834    fn clear(&mut self) {
12835        self.display_name.clear();
12836        self.result = ::std::option::Option::None;
12837        self.result = ::std::option::Option::None;
12838        self.unknown_fields.clear();
12839    }
12840}
12841
12842impl ::std::fmt::Debug for MoveAnalysis {
12843    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12844        ::protobuf::text_format::fmt(self, f)
12845    }
12846}
12847
12848impl ::protobuf::reflect::ProtobufValue for MoveAnalysis {
12849    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
12850        ::protobuf::reflect::ReflectValueRef::Message(self)
12851    }
12852}
12853
12854#[derive(PartialEq,Clone,Default)]
12855pub struct MoveAnalysisResult {
12856    // message fields
12857    pub blockers: ::protobuf::RepeatedField<MoveImpact>,
12858    pub warnings: ::protobuf::RepeatedField<MoveImpact>,
12859    // special fields
12860    pub unknown_fields: ::protobuf::UnknownFields,
12861    pub cached_size: ::protobuf::CachedSize,
12862}
12863
12864impl<'a> ::std::default::Default for &'a MoveAnalysisResult {
12865    fn default() -> &'a MoveAnalysisResult {
12866        <MoveAnalysisResult as ::protobuf::Message>::default_instance()
12867    }
12868}
12869
12870impl MoveAnalysisResult {
12871    pub fn new() -> MoveAnalysisResult {
12872        ::std::default::Default::default()
12873    }
12874
12875    // repeated .google.cloud.asset.v1.MoveImpact blockers = 1;
12876
12877
12878    pub fn get_blockers(&self) -> &[MoveImpact] {
12879        &self.blockers
12880    }
12881    pub fn clear_blockers(&mut self) {
12882        self.blockers.clear();
12883    }
12884
12885    // Param is passed by value, moved
12886    pub fn set_blockers(&mut self, v: ::protobuf::RepeatedField<MoveImpact>) {
12887        self.blockers = v;
12888    }
12889
12890    // Mutable pointer to the field.
12891    pub fn mut_blockers(&mut self) -> &mut ::protobuf::RepeatedField<MoveImpact> {
12892        &mut self.blockers
12893    }
12894
12895    // Take field
12896    pub fn take_blockers(&mut self) -> ::protobuf::RepeatedField<MoveImpact> {
12897        ::std::mem::replace(&mut self.blockers, ::protobuf::RepeatedField::new())
12898    }
12899
12900    // repeated .google.cloud.asset.v1.MoveImpact warnings = 2;
12901
12902
12903    pub fn get_warnings(&self) -> &[MoveImpact] {
12904        &self.warnings
12905    }
12906    pub fn clear_warnings(&mut self) {
12907        self.warnings.clear();
12908    }
12909
12910    // Param is passed by value, moved
12911    pub fn set_warnings(&mut self, v: ::protobuf::RepeatedField<MoveImpact>) {
12912        self.warnings = v;
12913    }
12914
12915    // Mutable pointer to the field.
12916    pub fn mut_warnings(&mut self) -> &mut ::protobuf::RepeatedField<MoveImpact> {
12917        &mut self.warnings
12918    }
12919
12920    // Take field
12921    pub fn take_warnings(&mut self) -> ::protobuf::RepeatedField<MoveImpact> {
12922        ::std::mem::replace(&mut self.warnings, ::protobuf::RepeatedField::new())
12923    }
12924}
12925
12926impl ::protobuf::Message for MoveAnalysisResult {
12927    fn is_initialized(&self) -> bool {
12928        for v in &self.blockers {
12929            if !v.is_initialized() {
12930                return false;
12931            }
12932        };
12933        for v in &self.warnings {
12934            if !v.is_initialized() {
12935                return false;
12936            }
12937        };
12938        true
12939    }
12940
12941    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
12942        while !is.eof()? {
12943            let (field_number, wire_type) = is.read_tag_unpack()?;
12944            match field_number {
12945                1 => {
12946                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.blockers)?;
12947                },
12948                2 => {
12949                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.warnings)?;
12950                },
12951                _ => {
12952                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
12953                },
12954            };
12955        }
12956        ::std::result::Result::Ok(())
12957    }
12958
12959    // Compute sizes of nested messages
12960    #[allow(unused_variables)]
12961    fn compute_size(&self) -> u32 {
12962        let mut my_size = 0;
12963        for value in &self.blockers {
12964            let len = value.compute_size();
12965            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
12966        };
12967        for value in &self.warnings {
12968            let len = value.compute_size();
12969            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
12970        };
12971        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
12972        self.cached_size.set(my_size);
12973        my_size
12974    }
12975
12976    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
12977        for v in &self.blockers {
12978            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
12979            os.write_raw_varint32(v.get_cached_size())?;
12980            v.write_to_with_cached_sizes(os)?;
12981        };
12982        for v in &self.warnings {
12983            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
12984            os.write_raw_varint32(v.get_cached_size())?;
12985            v.write_to_with_cached_sizes(os)?;
12986        };
12987        os.write_unknown_fields(self.get_unknown_fields())?;
12988        ::std::result::Result::Ok(())
12989    }
12990
12991    fn get_cached_size(&self) -> u32 {
12992        self.cached_size.get()
12993    }
12994
12995    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
12996        &self.unknown_fields
12997    }
12998
12999    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
13000        &mut self.unknown_fields
13001    }
13002
13003    fn as_any(&self) -> &dyn (::std::any::Any) {
13004        self as &dyn (::std::any::Any)
13005    }
13006    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
13007        self as &mut dyn (::std::any::Any)
13008    }
13009    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
13010        self
13011    }
13012
13013    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
13014        Self::descriptor_static()
13015    }
13016
13017    fn new() -> MoveAnalysisResult {
13018        MoveAnalysisResult::new()
13019    }
13020
13021    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
13022        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
13023        descriptor.get(|| {
13024            let mut fields = ::std::vec::Vec::new();
13025            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<MoveImpact>>(
13026                "blockers",
13027                |m: &MoveAnalysisResult| { &m.blockers },
13028                |m: &mut MoveAnalysisResult| { &mut m.blockers },
13029            ));
13030            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<MoveImpact>>(
13031                "warnings",
13032                |m: &MoveAnalysisResult| { &m.warnings },
13033                |m: &mut MoveAnalysisResult| { &mut m.warnings },
13034            ));
13035            ::protobuf::reflect::MessageDescriptor::new_pb_name::<MoveAnalysisResult>(
13036                "MoveAnalysisResult",
13037                fields,
13038                file_descriptor_proto()
13039            )
13040        })
13041    }
13042
13043    fn default_instance() -> &'static MoveAnalysisResult {
13044        static instance: ::protobuf::rt::LazyV2<MoveAnalysisResult> = ::protobuf::rt::LazyV2::INIT;
13045        instance.get(MoveAnalysisResult::new)
13046    }
13047}
13048
13049impl ::protobuf::Clear for MoveAnalysisResult {
13050    fn clear(&mut self) {
13051        self.blockers.clear();
13052        self.warnings.clear();
13053        self.unknown_fields.clear();
13054    }
13055}
13056
13057impl ::std::fmt::Debug for MoveAnalysisResult {
13058    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13059        ::protobuf::text_format::fmt(self, f)
13060    }
13061}
13062
13063impl ::protobuf::reflect::ProtobufValue for MoveAnalysisResult {
13064    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
13065        ::protobuf::reflect::ReflectValueRef::Message(self)
13066    }
13067}
13068
13069#[derive(PartialEq,Clone,Default)]
13070pub struct MoveImpact {
13071    // message fields
13072    pub detail: ::std::string::String,
13073    // special fields
13074    pub unknown_fields: ::protobuf::UnknownFields,
13075    pub cached_size: ::protobuf::CachedSize,
13076}
13077
13078impl<'a> ::std::default::Default for &'a MoveImpact {
13079    fn default() -> &'a MoveImpact {
13080        <MoveImpact as ::protobuf::Message>::default_instance()
13081    }
13082}
13083
13084impl MoveImpact {
13085    pub fn new() -> MoveImpact {
13086        ::std::default::Default::default()
13087    }
13088
13089    // string detail = 1;
13090
13091
13092    pub fn get_detail(&self) -> &str {
13093        &self.detail
13094    }
13095    pub fn clear_detail(&mut self) {
13096        self.detail.clear();
13097    }
13098
13099    // Param is passed by value, moved
13100    pub fn set_detail(&mut self, v: ::std::string::String) {
13101        self.detail = v;
13102    }
13103
13104    // Mutable pointer to the field.
13105    // If field is not initialized, it is initialized with default value first.
13106    pub fn mut_detail(&mut self) -> &mut ::std::string::String {
13107        &mut self.detail
13108    }
13109
13110    // Take field
13111    pub fn take_detail(&mut self) -> ::std::string::String {
13112        ::std::mem::replace(&mut self.detail, ::std::string::String::new())
13113    }
13114}
13115
13116impl ::protobuf::Message for MoveImpact {
13117    fn is_initialized(&self) -> bool {
13118        true
13119    }
13120
13121    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
13122        while !is.eof()? {
13123            let (field_number, wire_type) = is.read_tag_unpack()?;
13124            match field_number {
13125                1 => {
13126                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.detail)?;
13127                },
13128                _ => {
13129                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
13130                },
13131            };
13132        }
13133        ::std::result::Result::Ok(())
13134    }
13135
13136    // Compute sizes of nested messages
13137    #[allow(unused_variables)]
13138    fn compute_size(&self) -> u32 {
13139        let mut my_size = 0;
13140        if !self.detail.is_empty() {
13141            my_size += ::protobuf::rt::string_size(1, &self.detail);
13142        }
13143        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
13144        self.cached_size.set(my_size);
13145        my_size
13146    }
13147
13148    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
13149        if !self.detail.is_empty() {
13150            os.write_string(1, &self.detail)?;
13151        }
13152        os.write_unknown_fields(self.get_unknown_fields())?;
13153        ::std::result::Result::Ok(())
13154    }
13155
13156    fn get_cached_size(&self) -> u32 {
13157        self.cached_size.get()
13158    }
13159
13160    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
13161        &self.unknown_fields
13162    }
13163
13164    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
13165        &mut self.unknown_fields
13166    }
13167
13168    fn as_any(&self) -> &dyn (::std::any::Any) {
13169        self as &dyn (::std::any::Any)
13170    }
13171    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
13172        self as &mut dyn (::std::any::Any)
13173    }
13174    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
13175        self
13176    }
13177
13178    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
13179        Self::descriptor_static()
13180    }
13181
13182    fn new() -> MoveImpact {
13183        MoveImpact::new()
13184    }
13185
13186    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
13187        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
13188        descriptor.get(|| {
13189            let mut fields = ::std::vec::Vec::new();
13190            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
13191                "detail",
13192                |m: &MoveImpact| { &m.detail },
13193                |m: &mut MoveImpact| { &mut m.detail },
13194            ));
13195            ::protobuf::reflect::MessageDescriptor::new_pb_name::<MoveImpact>(
13196                "MoveImpact",
13197                fields,
13198                file_descriptor_proto()
13199            )
13200        })
13201    }
13202
13203    fn default_instance() -> &'static MoveImpact {
13204        static instance: ::protobuf::rt::LazyV2<MoveImpact> = ::protobuf::rt::LazyV2::INIT;
13205        instance.get(MoveImpact::new)
13206    }
13207}
13208
13209impl ::protobuf::Clear for MoveImpact {
13210    fn clear(&mut self) {
13211        self.detail.clear();
13212        self.unknown_fields.clear();
13213    }
13214}
13215
13216impl ::std::fmt::Debug for MoveImpact {
13217    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13218        ::protobuf::text_format::fmt(self, f)
13219    }
13220}
13221
13222impl ::protobuf::reflect::ProtobufValue for MoveImpact {
13223    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
13224        ::protobuf::reflect::ReflectValueRef::Message(self)
13225    }
13226}
13227
13228#[derive(PartialEq,Clone,Default)]
13229pub struct QueryAssetsOutputConfig {
13230    // message fields
13231    pub bigquery_destination: ::protobuf::SingularPtrField<QueryAssetsOutputConfig_BigQueryDestination>,
13232    // special fields
13233    pub unknown_fields: ::protobuf::UnknownFields,
13234    pub cached_size: ::protobuf::CachedSize,
13235}
13236
13237impl<'a> ::std::default::Default for &'a QueryAssetsOutputConfig {
13238    fn default() -> &'a QueryAssetsOutputConfig {
13239        <QueryAssetsOutputConfig as ::protobuf::Message>::default_instance()
13240    }
13241}
13242
13243impl QueryAssetsOutputConfig {
13244    pub fn new() -> QueryAssetsOutputConfig {
13245        ::std::default::Default::default()
13246    }
13247
13248    // .google.cloud.asset.v1.QueryAssetsOutputConfig.BigQueryDestination bigquery_destination = 1;
13249
13250
13251    pub fn get_bigquery_destination(&self) -> &QueryAssetsOutputConfig_BigQueryDestination {
13252        self.bigquery_destination.as_ref().unwrap_or_else(|| <QueryAssetsOutputConfig_BigQueryDestination as ::protobuf::Message>::default_instance())
13253    }
13254    pub fn clear_bigquery_destination(&mut self) {
13255        self.bigquery_destination.clear();
13256    }
13257
13258    pub fn has_bigquery_destination(&self) -> bool {
13259        self.bigquery_destination.is_some()
13260    }
13261
13262    // Param is passed by value, moved
13263    pub fn set_bigquery_destination(&mut self, v: QueryAssetsOutputConfig_BigQueryDestination) {
13264        self.bigquery_destination = ::protobuf::SingularPtrField::some(v);
13265    }
13266
13267    // Mutable pointer to the field.
13268    // If field is not initialized, it is initialized with default value first.
13269    pub fn mut_bigquery_destination(&mut self) -> &mut QueryAssetsOutputConfig_BigQueryDestination {
13270        if self.bigquery_destination.is_none() {
13271            self.bigquery_destination.set_default();
13272        }
13273        self.bigquery_destination.as_mut().unwrap()
13274    }
13275
13276    // Take field
13277    pub fn take_bigquery_destination(&mut self) -> QueryAssetsOutputConfig_BigQueryDestination {
13278        self.bigquery_destination.take().unwrap_or_else(|| QueryAssetsOutputConfig_BigQueryDestination::new())
13279    }
13280}
13281
13282impl ::protobuf::Message for QueryAssetsOutputConfig {
13283    fn is_initialized(&self) -> bool {
13284        for v in &self.bigquery_destination {
13285            if !v.is_initialized() {
13286                return false;
13287            }
13288        };
13289        true
13290    }
13291
13292    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
13293        while !is.eof()? {
13294            let (field_number, wire_type) = is.read_tag_unpack()?;
13295            match field_number {
13296                1 => {
13297                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.bigquery_destination)?;
13298                },
13299                _ => {
13300                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
13301                },
13302            };
13303        }
13304        ::std::result::Result::Ok(())
13305    }
13306
13307    // Compute sizes of nested messages
13308    #[allow(unused_variables)]
13309    fn compute_size(&self) -> u32 {
13310        let mut my_size = 0;
13311        if let Some(ref v) = self.bigquery_destination.as_ref() {
13312            let len = v.compute_size();
13313            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
13314        }
13315        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
13316        self.cached_size.set(my_size);
13317        my_size
13318    }
13319
13320    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
13321        if let Some(ref v) = self.bigquery_destination.as_ref() {
13322            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
13323            os.write_raw_varint32(v.get_cached_size())?;
13324            v.write_to_with_cached_sizes(os)?;
13325        }
13326        os.write_unknown_fields(self.get_unknown_fields())?;
13327        ::std::result::Result::Ok(())
13328    }
13329
13330    fn get_cached_size(&self) -> u32 {
13331        self.cached_size.get()
13332    }
13333
13334    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
13335        &self.unknown_fields
13336    }
13337
13338    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
13339        &mut self.unknown_fields
13340    }
13341
13342    fn as_any(&self) -> &dyn (::std::any::Any) {
13343        self as &dyn (::std::any::Any)
13344    }
13345    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
13346        self as &mut dyn (::std::any::Any)
13347    }
13348    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
13349        self
13350    }
13351
13352    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
13353        Self::descriptor_static()
13354    }
13355
13356    fn new() -> QueryAssetsOutputConfig {
13357        QueryAssetsOutputConfig::new()
13358    }
13359
13360    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
13361        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
13362        descriptor.get(|| {
13363            let mut fields = ::std::vec::Vec::new();
13364            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<QueryAssetsOutputConfig_BigQueryDestination>>(
13365                "bigquery_destination",
13366                |m: &QueryAssetsOutputConfig| { &m.bigquery_destination },
13367                |m: &mut QueryAssetsOutputConfig| { &mut m.bigquery_destination },
13368            ));
13369            ::protobuf::reflect::MessageDescriptor::new_pb_name::<QueryAssetsOutputConfig>(
13370                "QueryAssetsOutputConfig",
13371                fields,
13372                file_descriptor_proto()
13373            )
13374        })
13375    }
13376
13377    fn default_instance() -> &'static QueryAssetsOutputConfig {
13378        static instance: ::protobuf::rt::LazyV2<QueryAssetsOutputConfig> = ::protobuf::rt::LazyV2::INIT;
13379        instance.get(QueryAssetsOutputConfig::new)
13380    }
13381}
13382
13383impl ::protobuf::Clear for QueryAssetsOutputConfig {
13384    fn clear(&mut self) {
13385        self.bigquery_destination.clear();
13386        self.unknown_fields.clear();
13387    }
13388}
13389
13390impl ::std::fmt::Debug for QueryAssetsOutputConfig {
13391    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13392        ::protobuf::text_format::fmt(self, f)
13393    }
13394}
13395
13396impl ::protobuf::reflect::ProtobufValue for QueryAssetsOutputConfig {
13397    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
13398        ::protobuf::reflect::ReflectValueRef::Message(self)
13399    }
13400}
13401
13402#[derive(PartialEq,Clone,Default)]
13403pub struct QueryAssetsOutputConfig_BigQueryDestination {
13404    // message fields
13405    pub dataset: ::std::string::String,
13406    pub table: ::std::string::String,
13407    pub write_disposition: ::std::string::String,
13408    // special fields
13409    pub unknown_fields: ::protobuf::UnknownFields,
13410    pub cached_size: ::protobuf::CachedSize,
13411}
13412
13413impl<'a> ::std::default::Default for &'a QueryAssetsOutputConfig_BigQueryDestination {
13414    fn default() -> &'a QueryAssetsOutputConfig_BigQueryDestination {
13415        <QueryAssetsOutputConfig_BigQueryDestination as ::protobuf::Message>::default_instance()
13416    }
13417}
13418
13419impl QueryAssetsOutputConfig_BigQueryDestination {
13420    pub fn new() -> QueryAssetsOutputConfig_BigQueryDestination {
13421        ::std::default::Default::default()
13422    }
13423
13424    // string dataset = 1;
13425
13426
13427    pub fn get_dataset(&self) -> &str {
13428        &self.dataset
13429    }
13430    pub fn clear_dataset(&mut self) {
13431        self.dataset.clear();
13432    }
13433
13434    // Param is passed by value, moved
13435    pub fn set_dataset(&mut self, v: ::std::string::String) {
13436        self.dataset = v;
13437    }
13438
13439    // Mutable pointer to the field.
13440    // If field is not initialized, it is initialized with default value first.
13441    pub fn mut_dataset(&mut self) -> &mut ::std::string::String {
13442        &mut self.dataset
13443    }
13444
13445    // Take field
13446    pub fn take_dataset(&mut self) -> ::std::string::String {
13447        ::std::mem::replace(&mut self.dataset, ::std::string::String::new())
13448    }
13449
13450    // string table = 2;
13451
13452
13453    pub fn get_table(&self) -> &str {
13454        &self.table
13455    }
13456    pub fn clear_table(&mut self) {
13457        self.table.clear();
13458    }
13459
13460    // Param is passed by value, moved
13461    pub fn set_table(&mut self, v: ::std::string::String) {
13462        self.table = v;
13463    }
13464
13465    // Mutable pointer to the field.
13466    // If field is not initialized, it is initialized with default value first.
13467    pub fn mut_table(&mut self) -> &mut ::std::string::String {
13468        &mut self.table
13469    }
13470
13471    // Take field
13472    pub fn take_table(&mut self) -> ::std::string::String {
13473        ::std::mem::replace(&mut self.table, ::std::string::String::new())
13474    }
13475
13476    // string write_disposition = 3;
13477
13478
13479    pub fn get_write_disposition(&self) -> &str {
13480        &self.write_disposition
13481    }
13482    pub fn clear_write_disposition(&mut self) {
13483        self.write_disposition.clear();
13484    }
13485
13486    // Param is passed by value, moved
13487    pub fn set_write_disposition(&mut self, v: ::std::string::String) {
13488        self.write_disposition = v;
13489    }
13490
13491    // Mutable pointer to the field.
13492    // If field is not initialized, it is initialized with default value first.
13493    pub fn mut_write_disposition(&mut self) -> &mut ::std::string::String {
13494        &mut self.write_disposition
13495    }
13496
13497    // Take field
13498    pub fn take_write_disposition(&mut self) -> ::std::string::String {
13499        ::std::mem::replace(&mut self.write_disposition, ::std::string::String::new())
13500    }
13501}
13502
13503impl ::protobuf::Message for QueryAssetsOutputConfig_BigQueryDestination {
13504    fn is_initialized(&self) -> bool {
13505        true
13506    }
13507
13508    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
13509        while !is.eof()? {
13510            let (field_number, wire_type) = is.read_tag_unpack()?;
13511            match field_number {
13512                1 => {
13513                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.dataset)?;
13514                },
13515                2 => {
13516                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.table)?;
13517                },
13518                3 => {
13519                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.write_disposition)?;
13520                },
13521                _ => {
13522                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
13523                },
13524            };
13525        }
13526        ::std::result::Result::Ok(())
13527    }
13528
13529    // Compute sizes of nested messages
13530    #[allow(unused_variables)]
13531    fn compute_size(&self) -> u32 {
13532        let mut my_size = 0;
13533        if !self.dataset.is_empty() {
13534            my_size += ::protobuf::rt::string_size(1, &self.dataset);
13535        }
13536        if !self.table.is_empty() {
13537            my_size += ::protobuf::rt::string_size(2, &self.table);
13538        }
13539        if !self.write_disposition.is_empty() {
13540            my_size += ::protobuf::rt::string_size(3, &self.write_disposition);
13541        }
13542        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
13543        self.cached_size.set(my_size);
13544        my_size
13545    }
13546
13547    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
13548        if !self.dataset.is_empty() {
13549            os.write_string(1, &self.dataset)?;
13550        }
13551        if !self.table.is_empty() {
13552            os.write_string(2, &self.table)?;
13553        }
13554        if !self.write_disposition.is_empty() {
13555            os.write_string(3, &self.write_disposition)?;
13556        }
13557        os.write_unknown_fields(self.get_unknown_fields())?;
13558        ::std::result::Result::Ok(())
13559    }
13560
13561    fn get_cached_size(&self) -> u32 {
13562        self.cached_size.get()
13563    }
13564
13565    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
13566        &self.unknown_fields
13567    }
13568
13569    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
13570        &mut self.unknown_fields
13571    }
13572
13573    fn as_any(&self) -> &dyn (::std::any::Any) {
13574        self as &dyn (::std::any::Any)
13575    }
13576    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
13577        self as &mut dyn (::std::any::Any)
13578    }
13579    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
13580        self
13581    }
13582
13583    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
13584        Self::descriptor_static()
13585    }
13586
13587    fn new() -> QueryAssetsOutputConfig_BigQueryDestination {
13588        QueryAssetsOutputConfig_BigQueryDestination::new()
13589    }
13590
13591    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
13592        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
13593        descriptor.get(|| {
13594            let mut fields = ::std::vec::Vec::new();
13595            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
13596                "dataset",
13597                |m: &QueryAssetsOutputConfig_BigQueryDestination| { &m.dataset },
13598                |m: &mut QueryAssetsOutputConfig_BigQueryDestination| { &mut m.dataset },
13599            ));
13600            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
13601                "table",
13602                |m: &QueryAssetsOutputConfig_BigQueryDestination| { &m.table },
13603                |m: &mut QueryAssetsOutputConfig_BigQueryDestination| { &mut m.table },
13604            ));
13605            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
13606                "write_disposition",
13607                |m: &QueryAssetsOutputConfig_BigQueryDestination| { &m.write_disposition },
13608                |m: &mut QueryAssetsOutputConfig_BigQueryDestination| { &mut m.write_disposition },
13609            ));
13610            ::protobuf::reflect::MessageDescriptor::new_pb_name::<QueryAssetsOutputConfig_BigQueryDestination>(
13611                "QueryAssetsOutputConfig.BigQueryDestination",
13612                fields,
13613                file_descriptor_proto()
13614            )
13615        })
13616    }
13617
13618    fn default_instance() -> &'static QueryAssetsOutputConfig_BigQueryDestination {
13619        static instance: ::protobuf::rt::LazyV2<QueryAssetsOutputConfig_BigQueryDestination> = ::protobuf::rt::LazyV2::INIT;
13620        instance.get(QueryAssetsOutputConfig_BigQueryDestination::new)
13621    }
13622}
13623
13624impl ::protobuf::Clear for QueryAssetsOutputConfig_BigQueryDestination {
13625    fn clear(&mut self) {
13626        self.dataset.clear();
13627        self.table.clear();
13628        self.write_disposition.clear();
13629        self.unknown_fields.clear();
13630    }
13631}
13632
13633impl ::std::fmt::Debug for QueryAssetsOutputConfig_BigQueryDestination {
13634    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13635        ::protobuf::text_format::fmt(self, f)
13636    }
13637}
13638
13639impl ::protobuf::reflect::ProtobufValue for QueryAssetsOutputConfig_BigQueryDestination {
13640    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
13641        ::protobuf::reflect::ReflectValueRef::Message(self)
13642    }
13643}
13644
13645#[derive(PartialEq,Clone,Default)]
13646pub struct QueryAssetsRequest {
13647    // message fields
13648    pub parent: ::std::string::String,
13649    pub page_size: i32,
13650    pub page_token: ::std::string::String,
13651    pub timeout: ::protobuf::SingularPtrField<::protobuf::well_known_types::Duration>,
13652    pub output_config: ::protobuf::SingularPtrField<QueryAssetsOutputConfig>,
13653    // message oneof groups
13654    pub query: ::std::option::Option<QueryAssetsRequest_oneof_query>,
13655    pub time: ::std::option::Option<QueryAssetsRequest_oneof_time>,
13656    // special fields
13657    pub unknown_fields: ::protobuf::UnknownFields,
13658    pub cached_size: ::protobuf::CachedSize,
13659}
13660
13661impl<'a> ::std::default::Default for &'a QueryAssetsRequest {
13662    fn default() -> &'a QueryAssetsRequest {
13663        <QueryAssetsRequest as ::protobuf::Message>::default_instance()
13664    }
13665}
13666
13667#[derive(Clone,PartialEq,Debug)]
13668pub enum QueryAssetsRequest_oneof_query {
13669    statement(::std::string::String),
13670    job_reference(::std::string::String),
13671}
13672
13673#[derive(Clone,PartialEq,Debug)]
13674pub enum QueryAssetsRequest_oneof_time {
13675    read_time_window(super::assets::TimeWindow),
13676    read_time(::protobuf::well_known_types::Timestamp),
13677}
13678
13679impl QueryAssetsRequest {
13680    pub fn new() -> QueryAssetsRequest {
13681        ::std::default::Default::default()
13682    }
13683
13684    // string parent = 1;
13685
13686
13687    pub fn get_parent(&self) -> &str {
13688        &self.parent
13689    }
13690    pub fn clear_parent(&mut self) {
13691        self.parent.clear();
13692    }
13693
13694    // Param is passed by value, moved
13695    pub fn set_parent(&mut self, v: ::std::string::String) {
13696        self.parent = v;
13697    }
13698
13699    // Mutable pointer to the field.
13700    // If field is not initialized, it is initialized with default value first.
13701    pub fn mut_parent(&mut self) -> &mut ::std::string::String {
13702        &mut self.parent
13703    }
13704
13705    // Take field
13706    pub fn take_parent(&mut self) -> ::std::string::String {
13707        ::std::mem::replace(&mut self.parent, ::std::string::String::new())
13708    }
13709
13710    // string statement = 2;
13711
13712
13713    pub fn get_statement(&self) -> &str {
13714        match self.query {
13715            ::std::option::Option::Some(QueryAssetsRequest_oneof_query::statement(ref v)) => v,
13716            _ => "",
13717        }
13718    }
13719    pub fn clear_statement(&mut self) {
13720        self.query = ::std::option::Option::None;
13721    }
13722
13723    pub fn has_statement(&self) -> bool {
13724        match self.query {
13725            ::std::option::Option::Some(QueryAssetsRequest_oneof_query::statement(..)) => true,
13726            _ => false,
13727        }
13728    }
13729
13730    // Param is passed by value, moved
13731    pub fn set_statement(&mut self, v: ::std::string::String) {
13732        self.query = ::std::option::Option::Some(QueryAssetsRequest_oneof_query::statement(v))
13733    }
13734
13735    // Mutable pointer to the field.
13736    pub fn mut_statement(&mut self) -> &mut ::std::string::String {
13737        if let ::std::option::Option::Some(QueryAssetsRequest_oneof_query::statement(_)) = self.query {
13738        } else {
13739            self.query = ::std::option::Option::Some(QueryAssetsRequest_oneof_query::statement(::std::string::String::new()));
13740        }
13741        match self.query {
13742            ::std::option::Option::Some(QueryAssetsRequest_oneof_query::statement(ref mut v)) => v,
13743            _ => panic!(),
13744        }
13745    }
13746
13747    // Take field
13748    pub fn take_statement(&mut self) -> ::std::string::String {
13749        if self.has_statement() {
13750            match self.query.take() {
13751                ::std::option::Option::Some(QueryAssetsRequest_oneof_query::statement(v)) => v,
13752                _ => panic!(),
13753            }
13754        } else {
13755            ::std::string::String::new()
13756        }
13757    }
13758
13759    // string job_reference = 3;
13760
13761
13762    pub fn get_job_reference(&self) -> &str {
13763        match self.query {
13764            ::std::option::Option::Some(QueryAssetsRequest_oneof_query::job_reference(ref v)) => v,
13765            _ => "",
13766        }
13767    }
13768    pub fn clear_job_reference(&mut self) {
13769        self.query = ::std::option::Option::None;
13770    }
13771
13772    pub fn has_job_reference(&self) -> bool {
13773        match self.query {
13774            ::std::option::Option::Some(QueryAssetsRequest_oneof_query::job_reference(..)) => true,
13775            _ => false,
13776        }
13777    }
13778
13779    // Param is passed by value, moved
13780    pub fn set_job_reference(&mut self, v: ::std::string::String) {
13781        self.query = ::std::option::Option::Some(QueryAssetsRequest_oneof_query::job_reference(v))
13782    }
13783
13784    // Mutable pointer to the field.
13785    pub fn mut_job_reference(&mut self) -> &mut ::std::string::String {
13786        if let ::std::option::Option::Some(QueryAssetsRequest_oneof_query::job_reference(_)) = self.query {
13787        } else {
13788            self.query = ::std::option::Option::Some(QueryAssetsRequest_oneof_query::job_reference(::std::string::String::new()));
13789        }
13790        match self.query {
13791            ::std::option::Option::Some(QueryAssetsRequest_oneof_query::job_reference(ref mut v)) => v,
13792            _ => panic!(),
13793        }
13794    }
13795
13796    // Take field
13797    pub fn take_job_reference(&mut self) -> ::std::string::String {
13798        if self.has_job_reference() {
13799            match self.query.take() {
13800                ::std::option::Option::Some(QueryAssetsRequest_oneof_query::job_reference(v)) => v,
13801                _ => panic!(),
13802            }
13803        } else {
13804            ::std::string::String::new()
13805        }
13806    }
13807
13808    // int32 page_size = 4;
13809
13810
13811    pub fn get_page_size(&self) -> i32 {
13812        self.page_size
13813    }
13814    pub fn clear_page_size(&mut self) {
13815        self.page_size = 0;
13816    }
13817
13818    // Param is passed by value, moved
13819    pub fn set_page_size(&mut self, v: i32) {
13820        self.page_size = v;
13821    }
13822
13823    // string page_token = 5;
13824
13825
13826    pub fn get_page_token(&self) -> &str {
13827        &self.page_token
13828    }
13829    pub fn clear_page_token(&mut self) {
13830        self.page_token.clear();
13831    }
13832
13833    // Param is passed by value, moved
13834    pub fn set_page_token(&mut self, v: ::std::string::String) {
13835        self.page_token = v;
13836    }
13837
13838    // Mutable pointer to the field.
13839    // If field is not initialized, it is initialized with default value first.
13840    pub fn mut_page_token(&mut self) -> &mut ::std::string::String {
13841        &mut self.page_token
13842    }
13843
13844    // Take field
13845    pub fn take_page_token(&mut self) -> ::std::string::String {
13846        ::std::mem::replace(&mut self.page_token, ::std::string::String::new())
13847    }
13848
13849    // .google.protobuf.Duration timeout = 6;
13850
13851
13852    pub fn get_timeout(&self) -> &::protobuf::well_known_types::Duration {
13853        self.timeout.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Duration as ::protobuf::Message>::default_instance())
13854    }
13855    pub fn clear_timeout(&mut self) {
13856        self.timeout.clear();
13857    }
13858
13859    pub fn has_timeout(&self) -> bool {
13860        self.timeout.is_some()
13861    }
13862
13863    // Param is passed by value, moved
13864    pub fn set_timeout(&mut self, v: ::protobuf::well_known_types::Duration) {
13865        self.timeout = ::protobuf::SingularPtrField::some(v);
13866    }
13867
13868    // Mutable pointer to the field.
13869    // If field is not initialized, it is initialized with default value first.
13870    pub fn mut_timeout(&mut self) -> &mut ::protobuf::well_known_types::Duration {
13871        if self.timeout.is_none() {
13872            self.timeout.set_default();
13873        }
13874        self.timeout.as_mut().unwrap()
13875    }
13876
13877    // Take field
13878    pub fn take_timeout(&mut self) -> ::protobuf::well_known_types::Duration {
13879        self.timeout.take().unwrap_or_else(|| ::protobuf::well_known_types::Duration::new())
13880    }
13881
13882    // .google.cloud.asset.v1.TimeWindow read_time_window = 7;
13883
13884
13885    pub fn get_read_time_window(&self) -> &super::assets::TimeWindow {
13886        match self.time {
13887            ::std::option::Option::Some(QueryAssetsRequest_oneof_time::read_time_window(ref v)) => v,
13888            _ => <super::assets::TimeWindow as ::protobuf::Message>::default_instance(),
13889        }
13890    }
13891    pub fn clear_read_time_window(&mut self) {
13892        self.time = ::std::option::Option::None;
13893    }
13894
13895    pub fn has_read_time_window(&self) -> bool {
13896        match self.time {
13897            ::std::option::Option::Some(QueryAssetsRequest_oneof_time::read_time_window(..)) => true,
13898            _ => false,
13899        }
13900    }
13901
13902    // Param is passed by value, moved
13903    pub fn set_read_time_window(&mut self, v: super::assets::TimeWindow) {
13904        self.time = ::std::option::Option::Some(QueryAssetsRequest_oneof_time::read_time_window(v))
13905    }
13906
13907    // Mutable pointer to the field.
13908    pub fn mut_read_time_window(&mut self) -> &mut super::assets::TimeWindow {
13909        if let ::std::option::Option::Some(QueryAssetsRequest_oneof_time::read_time_window(_)) = self.time {
13910        } else {
13911            self.time = ::std::option::Option::Some(QueryAssetsRequest_oneof_time::read_time_window(super::assets::TimeWindow::new()));
13912        }
13913        match self.time {
13914            ::std::option::Option::Some(QueryAssetsRequest_oneof_time::read_time_window(ref mut v)) => v,
13915            _ => panic!(),
13916        }
13917    }
13918
13919    // Take field
13920    pub fn take_read_time_window(&mut self) -> super::assets::TimeWindow {
13921        if self.has_read_time_window() {
13922            match self.time.take() {
13923                ::std::option::Option::Some(QueryAssetsRequest_oneof_time::read_time_window(v)) => v,
13924                _ => panic!(),
13925            }
13926        } else {
13927            super::assets::TimeWindow::new()
13928        }
13929    }
13930
13931    // .google.protobuf.Timestamp read_time = 8;
13932
13933
13934    pub fn get_read_time(&self) -> &::protobuf::well_known_types::Timestamp {
13935        match self.time {
13936            ::std::option::Option::Some(QueryAssetsRequest_oneof_time::read_time(ref v)) => v,
13937            _ => <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance(),
13938        }
13939    }
13940    pub fn clear_read_time(&mut self) {
13941        self.time = ::std::option::Option::None;
13942    }
13943
13944    pub fn has_read_time(&self) -> bool {
13945        match self.time {
13946            ::std::option::Option::Some(QueryAssetsRequest_oneof_time::read_time(..)) => true,
13947            _ => false,
13948        }
13949    }
13950
13951    // Param is passed by value, moved
13952    pub fn set_read_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
13953        self.time = ::std::option::Option::Some(QueryAssetsRequest_oneof_time::read_time(v))
13954    }
13955
13956    // Mutable pointer to the field.
13957    pub fn mut_read_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
13958        if let ::std::option::Option::Some(QueryAssetsRequest_oneof_time::read_time(_)) = self.time {
13959        } else {
13960            self.time = ::std::option::Option::Some(QueryAssetsRequest_oneof_time::read_time(::protobuf::well_known_types::Timestamp::new()));
13961        }
13962        match self.time {
13963            ::std::option::Option::Some(QueryAssetsRequest_oneof_time::read_time(ref mut v)) => v,
13964            _ => panic!(),
13965        }
13966    }
13967
13968    // Take field
13969    pub fn take_read_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
13970        if self.has_read_time() {
13971            match self.time.take() {
13972                ::std::option::Option::Some(QueryAssetsRequest_oneof_time::read_time(v)) => v,
13973                _ => panic!(),
13974            }
13975        } else {
13976            ::protobuf::well_known_types::Timestamp::new()
13977        }
13978    }
13979
13980    // .google.cloud.asset.v1.QueryAssetsOutputConfig output_config = 9;
13981
13982
13983    pub fn get_output_config(&self) -> &QueryAssetsOutputConfig {
13984        self.output_config.as_ref().unwrap_or_else(|| <QueryAssetsOutputConfig as ::protobuf::Message>::default_instance())
13985    }
13986    pub fn clear_output_config(&mut self) {
13987        self.output_config.clear();
13988    }
13989
13990    pub fn has_output_config(&self) -> bool {
13991        self.output_config.is_some()
13992    }
13993
13994    // Param is passed by value, moved
13995    pub fn set_output_config(&mut self, v: QueryAssetsOutputConfig) {
13996        self.output_config = ::protobuf::SingularPtrField::some(v);
13997    }
13998
13999    // Mutable pointer to the field.
14000    // If field is not initialized, it is initialized with default value first.
14001    pub fn mut_output_config(&mut self) -> &mut QueryAssetsOutputConfig {
14002        if self.output_config.is_none() {
14003            self.output_config.set_default();
14004        }
14005        self.output_config.as_mut().unwrap()
14006    }
14007
14008    // Take field
14009    pub fn take_output_config(&mut self) -> QueryAssetsOutputConfig {
14010        self.output_config.take().unwrap_or_else(|| QueryAssetsOutputConfig::new())
14011    }
14012}
14013
14014impl ::protobuf::Message for QueryAssetsRequest {
14015    fn is_initialized(&self) -> bool {
14016        for v in &self.timeout {
14017            if !v.is_initialized() {
14018                return false;
14019            }
14020        };
14021        if let Some(QueryAssetsRequest_oneof_time::read_time_window(ref v)) = self.time {
14022            if !v.is_initialized() {
14023                return false;
14024            }
14025        }
14026        if let Some(QueryAssetsRequest_oneof_time::read_time(ref v)) = self.time {
14027            if !v.is_initialized() {
14028                return false;
14029            }
14030        }
14031        for v in &self.output_config {
14032            if !v.is_initialized() {
14033                return false;
14034            }
14035        };
14036        true
14037    }
14038
14039    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
14040        while !is.eof()? {
14041            let (field_number, wire_type) = is.read_tag_unpack()?;
14042            match field_number {
14043                1 => {
14044                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.parent)?;
14045                },
14046                2 => {
14047                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
14048                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
14049                    }
14050                    self.query = ::std::option::Option::Some(QueryAssetsRequest_oneof_query::statement(is.read_string()?));
14051                },
14052                3 => {
14053                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
14054                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
14055                    }
14056                    self.query = ::std::option::Option::Some(QueryAssetsRequest_oneof_query::job_reference(is.read_string()?));
14057                },
14058                4 => {
14059                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
14060                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
14061                    }
14062                    let tmp = is.read_int32()?;
14063                    self.page_size = tmp;
14064                },
14065                5 => {
14066                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.page_token)?;
14067                },
14068                6 => {
14069                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.timeout)?;
14070                },
14071                7 => {
14072                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
14073                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
14074                    }
14075                    self.time = ::std::option::Option::Some(QueryAssetsRequest_oneof_time::read_time_window(is.read_message()?));
14076                },
14077                8 => {
14078                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
14079                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
14080                    }
14081                    self.time = ::std::option::Option::Some(QueryAssetsRequest_oneof_time::read_time(is.read_message()?));
14082                },
14083                9 => {
14084                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.output_config)?;
14085                },
14086                _ => {
14087                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
14088                },
14089            };
14090        }
14091        ::std::result::Result::Ok(())
14092    }
14093
14094    // Compute sizes of nested messages
14095    #[allow(unused_variables)]
14096    fn compute_size(&self) -> u32 {
14097        let mut my_size = 0;
14098        if !self.parent.is_empty() {
14099            my_size += ::protobuf::rt::string_size(1, &self.parent);
14100        }
14101        if self.page_size != 0 {
14102            my_size += ::protobuf::rt::value_size(4, self.page_size, ::protobuf::wire_format::WireTypeVarint);
14103        }
14104        if !self.page_token.is_empty() {
14105            my_size += ::protobuf::rt::string_size(5, &self.page_token);
14106        }
14107        if let Some(ref v) = self.timeout.as_ref() {
14108            let len = v.compute_size();
14109            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
14110        }
14111        if let Some(ref v) = self.output_config.as_ref() {
14112            let len = v.compute_size();
14113            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
14114        }
14115        if let ::std::option::Option::Some(ref v) = self.query {
14116            match v {
14117                &QueryAssetsRequest_oneof_query::statement(ref v) => {
14118                    my_size += ::protobuf::rt::string_size(2, &v);
14119                },
14120                &QueryAssetsRequest_oneof_query::job_reference(ref v) => {
14121                    my_size += ::protobuf::rt::string_size(3, &v);
14122                },
14123            };
14124        }
14125        if let ::std::option::Option::Some(ref v) = self.time {
14126            match v {
14127                &QueryAssetsRequest_oneof_time::read_time_window(ref v) => {
14128                    let len = v.compute_size();
14129                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
14130                },
14131                &QueryAssetsRequest_oneof_time::read_time(ref v) => {
14132                    let len = v.compute_size();
14133                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
14134                },
14135            };
14136        }
14137        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
14138        self.cached_size.set(my_size);
14139        my_size
14140    }
14141
14142    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
14143        if !self.parent.is_empty() {
14144            os.write_string(1, &self.parent)?;
14145        }
14146        if self.page_size != 0 {
14147            os.write_int32(4, self.page_size)?;
14148        }
14149        if !self.page_token.is_empty() {
14150            os.write_string(5, &self.page_token)?;
14151        }
14152        if let Some(ref v) = self.timeout.as_ref() {
14153            os.write_tag(6, ::protobuf::wire_format::WireTypeLengthDelimited)?;
14154            os.write_raw_varint32(v.get_cached_size())?;
14155            v.write_to_with_cached_sizes(os)?;
14156        }
14157        if let Some(ref v) = self.output_config.as_ref() {
14158            os.write_tag(9, ::protobuf::wire_format::WireTypeLengthDelimited)?;
14159            os.write_raw_varint32(v.get_cached_size())?;
14160            v.write_to_with_cached_sizes(os)?;
14161        }
14162        if let ::std::option::Option::Some(ref v) = self.query {
14163            match v {
14164                &QueryAssetsRequest_oneof_query::statement(ref v) => {
14165                    os.write_string(2, v)?;
14166                },
14167                &QueryAssetsRequest_oneof_query::job_reference(ref v) => {
14168                    os.write_string(3, v)?;
14169                },
14170            };
14171        }
14172        if let ::std::option::Option::Some(ref v) = self.time {
14173            match v {
14174                &QueryAssetsRequest_oneof_time::read_time_window(ref v) => {
14175                    os.write_tag(7, ::protobuf::wire_format::WireTypeLengthDelimited)?;
14176                    os.write_raw_varint32(v.get_cached_size())?;
14177                    v.write_to_with_cached_sizes(os)?;
14178                },
14179                &QueryAssetsRequest_oneof_time::read_time(ref v) => {
14180                    os.write_tag(8, ::protobuf::wire_format::WireTypeLengthDelimited)?;
14181                    os.write_raw_varint32(v.get_cached_size())?;
14182                    v.write_to_with_cached_sizes(os)?;
14183                },
14184            };
14185        }
14186        os.write_unknown_fields(self.get_unknown_fields())?;
14187        ::std::result::Result::Ok(())
14188    }
14189
14190    fn get_cached_size(&self) -> u32 {
14191        self.cached_size.get()
14192    }
14193
14194    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
14195        &self.unknown_fields
14196    }
14197
14198    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
14199        &mut self.unknown_fields
14200    }
14201
14202    fn as_any(&self) -> &dyn (::std::any::Any) {
14203        self as &dyn (::std::any::Any)
14204    }
14205    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
14206        self as &mut dyn (::std::any::Any)
14207    }
14208    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
14209        self
14210    }
14211
14212    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
14213        Self::descriptor_static()
14214    }
14215
14216    fn new() -> QueryAssetsRequest {
14217        QueryAssetsRequest::new()
14218    }
14219
14220    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
14221        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
14222        descriptor.get(|| {
14223            let mut fields = ::std::vec::Vec::new();
14224            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
14225                "parent",
14226                |m: &QueryAssetsRequest| { &m.parent },
14227                |m: &mut QueryAssetsRequest| { &mut m.parent },
14228            ));
14229            fields.push(::protobuf::reflect::accessor::make_singular_string_accessor::<_>(
14230                "statement",
14231                QueryAssetsRequest::has_statement,
14232                QueryAssetsRequest::get_statement,
14233            ));
14234            fields.push(::protobuf::reflect::accessor::make_singular_string_accessor::<_>(
14235                "job_reference",
14236                QueryAssetsRequest::has_job_reference,
14237                QueryAssetsRequest::get_job_reference,
14238            ));
14239            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
14240                "page_size",
14241                |m: &QueryAssetsRequest| { &m.page_size },
14242                |m: &mut QueryAssetsRequest| { &mut m.page_size },
14243            ));
14244            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
14245                "page_token",
14246                |m: &QueryAssetsRequest| { &m.page_token },
14247                |m: &mut QueryAssetsRequest| { &mut m.page_token },
14248            ));
14249            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Duration>>(
14250                "timeout",
14251                |m: &QueryAssetsRequest| { &m.timeout },
14252                |m: &mut QueryAssetsRequest| { &mut m.timeout },
14253            ));
14254            fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, super::assets::TimeWindow>(
14255                "read_time_window",
14256                QueryAssetsRequest::has_read_time_window,
14257                QueryAssetsRequest::get_read_time_window,
14258            ));
14259            fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, ::protobuf::well_known_types::Timestamp>(
14260                "read_time",
14261                QueryAssetsRequest::has_read_time,
14262                QueryAssetsRequest::get_read_time,
14263            ));
14264            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<QueryAssetsOutputConfig>>(
14265                "output_config",
14266                |m: &QueryAssetsRequest| { &m.output_config },
14267                |m: &mut QueryAssetsRequest| { &mut m.output_config },
14268            ));
14269            ::protobuf::reflect::MessageDescriptor::new_pb_name::<QueryAssetsRequest>(
14270                "QueryAssetsRequest",
14271                fields,
14272                file_descriptor_proto()
14273            )
14274        })
14275    }
14276
14277    fn default_instance() -> &'static QueryAssetsRequest {
14278        static instance: ::protobuf::rt::LazyV2<QueryAssetsRequest> = ::protobuf::rt::LazyV2::INIT;
14279        instance.get(QueryAssetsRequest::new)
14280    }
14281}
14282
14283impl ::protobuf::Clear for QueryAssetsRequest {
14284    fn clear(&mut self) {
14285        self.parent.clear();
14286        self.query = ::std::option::Option::None;
14287        self.query = ::std::option::Option::None;
14288        self.page_size = 0;
14289        self.page_token.clear();
14290        self.timeout.clear();
14291        self.time = ::std::option::Option::None;
14292        self.time = ::std::option::Option::None;
14293        self.output_config.clear();
14294        self.unknown_fields.clear();
14295    }
14296}
14297
14298impl ::std::fmt::Debug for QueryAssetsRequest {
14299    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
14300        ::protobuf::text_format::fmt(self, f)
14301    }
14302}
14303
14304impl ::protobuf::reflect::ProtobufValue for QueryAssetsRequest {
14305    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
14306        ::protobuf::reflect::ReflectValueRef::Message(self)
14307    }
14308}
14309
14310#[derive(PartialEq,Clone,Default)]
14311pub struct QueryAssetsResponse {
14312    // message fields
14313    pub job_reference: ::std::string::String,
14314    pub done: bool,
14315    // message oneof groups
14316    pub response: ::std::option::Option<QueryAssetsResponse_oneof_response>,
14317    // special fields
14318    pub unknown_fields: ::protobuf::UnknownFields,
14319    pub cached_size: ::protobuf::CachedSize,
14320}
14321
14322impl<'a> ::std::default::Default for &'a QueryAssetsResponse {
14323    fn default() -> &'a QueryAssetsResponse {
14324        <QueryAssetsResponse as ::protobuf::Message>::default_instance()
14325    }
14326}
14327
14328#[derive(Clone,PartialEq,Debug)]
14329pub enum QueryAssetsResponse_oneof_response {
14330    error(super::status::Status),
14331    query_result(QueryResult),
14332    output_config(QueryAssetsOutputConfig),
14333}
14334
14335impl QueryAssetsResponse {
14336    pub fn new() -> QueryAssetsResponse {
14337        ::std::default::Default::default()
14338    }
14339
14340    // string job_reference = 1;
14341
14342
14343    pub fn get_job_reference(&self) -> &str {
14344        &self.job_reference
14345    }
14346    pub fn clear_job_reference(&mut self) {
14347        self.job_reference.clear();
14348    }
14349
14350    // Param is passed by value, moved
14351    pub fn set_job_reference(&mut self, v: ::std::string::String) {
14352        self.job_reference = v;
14353    }
14354
14355    // Mutable pointer to the field.
14356    // If field is not initialized, it is initialized with default value first.
14357    pub fn mut_job_reference(&mut self) -> &mut ::std::string::String {
14358        &mut self.job_reference
14359    }
14360
14361    // Take field
14362    pub fn take_job_reference(&mut self) -> ::std::string::String {
14363        ::std::mem::replace(&mut self.job_reference, ::std::string::String::new())
14364    }
14365
14366    // bool done = 2;
14367
14368
14369    pub fn get_done(&self) -> bool {
14370        self.done
14371    }
14372    pub fn clear_done(&mut self) {
14373        self.done = false;
14374    }
14375
14376    // Param is passed by value, moved
14377    pub fn set_done(&mut self, v: bool) {
14378        self.done = v;
14379    }
14380
14381    // .google.rpc.Status error = 3;
14382
14383
14384    pub fn get_error(&self) -> &super::status::Status {
14385        match self.response {
14386            ::std::option::Option::Some(QueryAssetsResponse_oneof_response::error(ref v)) => v,
14387            _ => <super::status::Status as ::protobuf::Message>::default_instance(),
14388        }
14389    }
14390    pub fn clear_error(&mut self) {
14391        self.response = ::std::option::Option::None;
14392    }
14393
14394    pub fn has_error(&self) -> bool {
14395        match self.response {
14396            ::std::option::Option::Some(QueryAssetsResponse_oneof_response::error(..)) => true,
14397            _ => false,
14398        }
14399    }
14400
14401    // Param is passed by value, moved
14402    pub fn set_error(&mut self, v: super::status::Status) {
14403        self.response = ::std::option::Option::Some(QueryAssetsResponse_oneof_response::error(v))
14404    }
14405
14406    // Mutable pointer to the field.
14407    pub fn mut_error(&mut self) -> &mut super::status::Status {
14408        if let ::std::option::Option::Some(QueryAssetsResponse_oneof_response::error(_)) = self.response {
14409        } else {
14410            self.response = ::std::option::Option::Some(QueryAssetsResponse_oneof_response::error(super::status::Status::new()));
14411        }
14412        match self.response {
14413            ::std::option::Option::Some(QueryAssetsResponse_oneof_response::error(ref mut v)) => v,
14414            _ => panic!(),
14415        }
14416    }
14417
14418    // Take field
14419    pub fn take_error(&mut self) -> super::status::Status {
14420        if self.has_error() {
14421            match self.response.take() {
14422                ::std::option::Option::Some(QueryAssetsResponse_oneof_response::error(v)) => v,
14423                _ => panic!(),
14424            }
14425        } else {
14426            super::status::Status::new()
14427        }
14428    }
14429
14430    // .google.cloud.asset.v1.QueryResult query_result = 4;
14431
14432
14433    pub fn get_query_result(&self) -> &QueryResult {
14434        match self.response {
14435            ::std::option::Option::Some(QueryAssetsResponse_oneof_response::query_result(ref v)) => v,
14436            _ => <QueryResult as ::protobuf::Message>::default_instance(),
14437        }
14438    }
14439    pub fn clear_query_result(&mut self) {
14440        self.response = ::std::option::Option::None;
14441    }
14442
14443    pub fn has_query_result(&self) -> bool {
14444        match self.response {
14445            ::std::option::Option::Some(QueryAssetsResponse_oneof_response::query_result(..)) => true,
14446            _ => false,
14447        }
14448    }
14449
14450    // Param is passed by value, moved
14451    pub fn set_query_result(&mut self, v: QueryResult) {
14452        self.response = ::std::option::Option::Some(QueryAssetsResponse_oneof_response::query_result(v))
14453    }
14454
14455    // Mutable pointer to the field.
14456    pub fn mut_query_result(&mut self) -> &mut QueryResult {
14457        if let ::std::option::Option::Some(QueryAssetsResponse_oneof_response::query_result(_)) = self.response {
14458        } else {
14459            self.response = ::std::option::Option::Some(QueryAssetsResponse_oneof_response::query_result(QueryResult::new()));
14460        }
14461        match self.response {
14462            ::std::option::Option::Some(QueryAssetsResponse_oneof_response::query_result(ref mut v)) => v,
14463            _ => panic!(),
14464        }
14465    }
14466
14467    // Take field
14468    pub fn take_query_result(&mut self) -> QueryResult {
14469        if self.has_query_result() {
14470            match self.response.take() {
14471                ::std::option::Option::Some(QueryAssetsResponse_oneof_response::query_result(v)) => v,
14472                _ => panic!(),
14473            }
14474        } else {
14475            QueryResult::new()
14476        }
14477    }
14478
14479    // .google.cloud.asset.v1.QueryAssetsOutputConfig output_config = 5;
14480
14481
14482    pub fn get_output_config(&self) -> &QueryAssetsOutputConfig {
14483        match self.response {
14484            ::std::option::Option::Some(QueryAssetsResponse_oneof_response::output_config(ref v)) => v,
14485            _ => <QueryAssetsOutputConfig as ::protobuf::Message>::default_instance(),
14486        }
14487    }
14488    pub fn clear_output_config(&mut self) {
14489        self.response = ::std::option::Option::None;
14490    }
14491
14492    pub fn has_output_config(&self) -> bool {
14493        match self.response {
14494            ::std::option::Option::Some(QueryAssetsResponse_oneof_response::output_config(..)) => true,
14495            _ => false,
14496        }
14497    }
14498
14499    // Param is passed by value, moved
14500    pub fn set_output_config(&mut self, v: QueryAssetsOutputConfig) {
14501        self.response = ::std::option::Option::Some(QueryAssetsResponse_oneof_response::output_config(v))
14502    }
14503
14504    // Mutable pointer to the field.
14505    pub fn mut_output_config(&mut self) -> &mut QueryAssetsOutputConfig {
14506        if let ::std::option::Option::Some(QueryAssetsResponse_oneof_response::output_config(_)) = self.response {
14507        } else {
14508            self.response = ::std::option::Option::Some(QueryAssetsResponse_oneof_response::output_config(QueryAssetsOutputConfig::new()));
14509        }
14510        match self.response {
14511            ::std::option::Option::Some(QueryAssetsResponse_oneof_response::output_config(ref mut v)) => v,
14512            _ => panic!(),
14513        }
14514    }
14515
14516    // Take field
14517    pub fn take_output_config(&mut self) -> QueryAssetsOutputConfig {
14518        if self.has_output_config() {
14519            match self.response.take() {
14520                ::std::option::Option::Some(QueryAssetsResponse_oneof_response::output_config(v)) => v,
14521                _ => panic!(),
14522            }
14523        } else {
14524            QueryAssetsOutputConfig::new()
14525        }
14526    }
14527}
14528
14529impl ::protobuf::Message for QueryAssetsResponse {
14530    fn is_initialized(&self) -> bool {
14531        if let Some(QueryAssetsResponse_oneof_response::error(ref v)) = self.response {
14532            if !v.is_initialized() {
14533                return false;
14534            }
14535        }
14536        if let Some(QueryAssetsResponse_oneof_response::query_result(ref v)) = self.response {
14537            if !v.is_initialized() {
14538                return false;
14539            }
14540        }
14541        if let Some(QueryAssetsResponse_oneof_response::output_config(ref v)) = self.response {
14542            if !v.is_initialized() {
14543                return false;
14544            }
14545        }
14546        true
14547    }
14548
14549    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
14550        while !is.eof()? {
14551            let (field_number, wire_type) = is.read_tag_unpack()?;
14552            match field_number {
14553                1 => {
14554                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.job_reference)?;
14555                },
14556                2 => {
14557                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
14558                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
14559                    }
14560                    let tmp = is.read_bool()?;
14561                    self.done = tmp;
14562                },
14563                3 => {
14564                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
14565                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
14566                    }
14567                    self.response = ::std::option::Option::Some(QueryAssetsResponse_oneof_response::error(is.read_message()?));
14568                },
14569                4 => {
14570                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
14571                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
14572                    }
14573                    self.response = ::std::option::Option::Some(QueryAssetsResponse_oneof_response::query_result(is.read_message()?));
14574                },
14575                5 => {
14576                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
14577                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
14578                    }
14579                    self.response = ::std::option::Option::Some(QueryAssetsResponse_oneof_response::output_config(is.read_message()?));
14580                },
14581                _ => {
14582                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
14583                },
14584            };
14585        }
14586        ::std::result::Result::Ok(())
14587    }
14588
14589    // Compute sizes of nested messages
14590    #[allow(unused_variables)]
14591    fn compute_size(&self) -> u32 {
14592        let mut my_size = 0;
14593        if !self.job_reference.is_empty() {
14594            my_size += ::protobuf::rt::string_size(1, &self.job_reference);
14595        }
14596        if self.done != false {
14597            my_size += 2;
14598        }
14599        if let ::std::option::Option::Some(ref v) = self.response {
14600            match v {
14601                &QueryAssetsResponse_oneof_response::error(ref v) => {
14602                    let len = v.compute_size();
14603                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
14604                },
14605                &QueryAssetsResponse_oneof_response::query_result(ref v) => {
14606                    let len = v.compute_size();
14607                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
14608                },
14609                &QueryAssetsResponse_oneof_response::output_config(ref v) => {
14610                    let len = v.compute_size();
14611                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
14612                },
14613            };
14614        }
14615        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
14616        self.cached_size.set(my_size);
14617        my_size
14618    }
14619
14620    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
14621        if !self.job_reference.is_empty() {
14622            os.write_string(1, &self.job_reference)?;
14623        }
14624        if self.done != false {
14625            os.write_bool(2, self.done)?;
14626        }
14627        if let ::std::option::Option::Some(ref v) = self.response {
14628            match v {
14629                &QueryAssetsResponse_oneof_response::error(ref v) => {
14630                    os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
14631                    os.write_raw_varint32(v.get_cached_size())?;
14632                    v.write_to_with_cached_sizes(os)?;
14633                },
14634                &QueryAssetsResponse_oneof_response::query_result(ref v) => {
14635                    os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
14636                    os.write_raw_varint32(v.get_cached_size())?;
14637                    v.write_to_with_cached_sizes(os)?;
14638                },
14639                &QueryAssetsResponse_oneof_response::output_config(ref v) => {
14640                    os.write_tag(5, ::protobuf::wire_format::WireTypeLengthDelimited)?;
14641                    os.write_raw_varint32(v.get_cached_size())?;
14642                    v.write_to_with_cached_sizes(os)?;
14643                },
14644            };
14645        }
14646        os.write_unknown_fields(self.get_unknown_fields())?;
14647        ::std::result::Result::Ok(())
14648    }
14649
14650    fn get_cached_size(&self) -> u32 {
14651        self.cached_size.get()
14652    }
14653
14654    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
14655        &self.unknown_fields
14656    }
14657
14658    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
14659        &mut self.unknown_fields
14660    }
14661
14662    fn as_any(&self) -> &dyn (::std::any::Any) {
14663        self as &dyn (::std::any::Any)
14664    }
14665    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
14666        self as &mut dyn (::std::any::Any)
14667    }
14668    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
14669        self
14670    }
14671
14672    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
14673        Self::descriptor_static()
14674    }
14675
14676    fn new() -> QueryAssetsResponse {
14677        QueryAssetsResponse::new()
14678    }
14679
14680    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
14681        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
14682        descriptor.get(|| {
14683            let mut fields = ::std::vec::Vec::new();
14684            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
14685                "job_reference",
14686                |m: &QueryAssetsResponse| { &m.job_reference },
14687                |m: &mut QueryAssetsResponse| { &mut m.job_reference },
14688            ));
14689            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
14690                "done",
14691                |m: &QueryAssetsResponse| { &m.done },
14692                |m: &mut QueryAssetsResponse| { &mut m.done },
14693            ));
14694            fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, super::status::Status>(
14695                "error",
14696                QueryAssetsResponse::has_error,
14697                QueryAssetsResponse::get_error,
14698            ));
14699            fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, QueryResult>(
14700                "query_result",
14701                QueryAssetsResponse::has_query_result,
14702                QueryAssetsResponse::get_query_result,
14703            ));
14704            fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, QueryAssetsOutputConfig>(
14705                "output_config",
14706                QueryAssetsResponse::has_output_config,
14707                QueryAssetsResponse::get_output_config,
14708            ));
14709            ::protobuf::reflect::MessageDescriptor::new_pb_name::<QueryAssetsResponse>(
14710                "QueryAssetsResponse",
14711                fields,
14712                file_descriptor_proto()
14713            )
14714        })
14715    }
14716
14717    fn default_instance() -> &'static QueryAssetsResponse {
14718        static instance: ::protobuf::rt::LazyV2<QueryAssetsResponse> = ::protobuf::rt::LazyV2::INIT;
14719        instance.get(QueryAssetsResponse::new)
14720    }
14721}
14722
14723impl ::protobuf::Clear for QueryAssetsResponse {
14724    fn clear(&mut self) {
14725        self.job_reference.clear();
14726        self.done = false;
14727        self.response = ::std::option::Option::None;
14728        self.response = ::std::option::Option::None;
14729        self.response = ::std::option::Option::None;
14730        self.unknown_fields.clear();
14731    }
14732}
14733
14734impl ::std::fmt::Debug for QueryAssetsResponse {
14735    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
14736        ::protobuf::text_format::fmt(self, f)
14737    }
14738}
14739
14740impl ::protobuf::reflect::ProtobufValue for QueryAssetsResponse {
14741    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
14742        ::protobuf::reflect::ReflectValueRef::Message(self)
14743    }
14744}
14745
14746#[derive(PartialEq,Clone,Default)]
14747pub struct QueryResult {
14748    // message fields
14749    pub rows: ::protobuf::RepeatedField<::protobuf::well_known_types::Struct>,
14750    pub schema: ::protobuf::SingularPtrField<TableSchema>,
14751    pub next_page_token: ::std::string::String,
14752    pub total_rows: i64,
14753    // special fields
14754    pub unknown_fields: ::protobuf::UnknownFields,
14755    pub cached_size: ::protobuf::CachedSize,
14756}
14757
14758impl<'a> ::std::default::Default for &'a QueryResult {
14759    fn default() -> &'a QueryResult {
14760        <QueryResult as ::protobuf::Message>::default_instance()
14761    }
14762}
14763
14764impl QueryResult {
14765    pub fn new() -> QueryResult {
14766        ::std::default::Default::default()
14767    }
14768
14769    // repeated .google.protobuf.Struct rows = 1;
14770
14771
14772    pub fn get_rows(&self) -> &[::protobuf::well_known_types::Struct] {
14773        &self.rows
14774    }
14775    pub fn clear_rows(&mut self) {
14776        self.rows.clear();
14777    }
14778
14779    // Param is passed by value, moved
14780    pub fn set_rows(&mut self, v: ::protobuf::RepeatedField<::protobuf::well_known_types::Struct>) {
14781        self.rows = v;
14782    }
14783
14784    // Mutable pointer to the field.
14785    pub fn mut_rows(&mut self) -> &mut ::protobuf::RepeatedField<::protobuf::well_known_types::Struct> {
14786        &mut self.rows
14787    }
14788
14789    // Take field
14790    pub fn take_rows(&mut self) -> ::protobuf::RepeatedField<::protobuf::well_known_types::Struct> {
14791        ::std::mem::replace(&mut self.rows, ::protobuf::RepeatedField::new())
14792    }
14793
14794    // .google.cloud.asset.v1.TableSchema schema = 2;
14795
14796
14797    pub fn get_schema(&self) -> &TableSchema {
14798        self.schema.as_ref().unwrap_or_else(|| <TableSchema as ::protobuf::Message>::default_instance())
14799    }
14800    pub fn clear_schema(&mut self) {
14801        self.schema.clear();
14802    }
14803
14804    pub fn has_schema(&self) -> bool {
14805        self.schema.is_some()
14806    }
14807
14808    // Param is passed by value, moved
14809    pub fn set_schema(&mut self, v: TableSchema) {
14810        self.schema = ::protobuf::SingularPtrField::some(v);
14811    }
14812
14813    // Mutable pointer to the field.
14814    // If field is not initialized, it is initialized with default value first.
14815    pub fn mut_schema(&mut self) -> &mut TableSchema {
14816        if self.schema.is_none() {
14817            self.schema.set_default();
14818        }
14819        self.schema.as_mut().unwrap()
14820    }
14821
14822    // Take field
14823    pub fn take_schema(&mut self) -> TableSchema {
14824        self.schema.take().unwrap_or_else(|| TableSchema::new())
14825    }
14826
14827    // string next_page_token = 3;
14828
14829
14830    pub fn get_next_page_token(&self) -> &str {
14831        &self.next_page_token
14832    }
14833    pub fn clear_next_page_token(&mut self) {
14834        self.next_page_token.clear();
14835    }
14836
14837    // Param is passed by value, moved
14838    pub fn set_next_page_token(&mut self, v: ::std::string::String) {
14839        self.next_page_token = v;
14840    }
14841
14842    // Mutable pointer to the field.
14843    // If field is not initialized, it is initialized with default value first.
14844    pub fn mut_next_page_token(&mut self) -> &mut ::std::string::String {
14845        &mut self.next_page_token
14846    }
14847
14848    // Take field
14849    pub fn take_next_page_token(&mut self) -> ::std::string::String {
14850        ::std::mem::replace(&mut self.next_page_token, ::std::string::String::new())
14851    }
14852
14853    // int64 total_rows = 4;
14854
14855
14856    pub fn get_total_rows(&self) -> i64 {
14857        self.total_rows
14858    }
14859    pub fn clear_total_rows(&mut self) {
14860        self.total_rows = 0;
14861    }
14862
14863    // Param is passed by value, moved
14864    pub fn set_total_rows(&mut self, v: i64) {
14865        self.total_rows = v;
14866    }
14867}
14868
14869impl ::protobuf::Message for QueryResult {
14870    fn is_initialized(&self) -> bool {
14871        for v in &self.rows {
14872            if !v.is_initialized() {
14873                return false;
14874            }
14875        };
14876        for v in &self.schema {
14877            if !v.is_initialized() {
14878                return false;
14879            }
14880        };
14881        true
14882    }
14883
14884    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
14885        while !is.eof()? {
14886            let (field_number, wire_type) = is.read_tag_unpack()?;
14887            match field_number {
14888                1 => {
14889                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.rows)?;
14890                },
14891                2 => {
14892                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.schema)?;
14893                },
14894                3 => {
14895                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.next_page_token)?;
14896                },
14897                4 => {
14898                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
14899                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
14900                    }
14901                    let tmp = is.read_int64()?;
14902                    self.total_rows = tmp;
14903                },
14904                _ => {
14905                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
14906                },
14907            };
14908        }
14909        ::std::result::Result::Ok(())
14910    }
14911
14912    // Compute sizes of nested messages
14913    #[allow(unused_variables)]
14914    fn compute_size(&self) -> u32 {
14915        let mut my_size = 0;
14916        for value in &self.rows {
14917            let len = value.compute_size();
14918            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
14919        };
14920        if let Some(ref v) = self.schema.as_ref() {
14921            let len = v.compute_size();
14922            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
14923        }
14924        if !self.next_page_token.is_empty() {
14925            my_size += ::protobuf::rt::string_size(3, &self.next_page_token);
14926        }
14927        if self.total_rows != 0 {
14928            my_size += ::protobuf::rt::value_size(4, self.total_rows, ::protobuf::wire_format::WireTypeVarint);
14929        }
14930        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
14931        self.cached_size.set(my_size);
14932        my_size
14933    }
14934
14935    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
14936        for v in &self.rows {
14937            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
14938            os.write_raw_varint32(v.get_cached_size())?;
14939            v.write_to_with_cached_sizes(os)?;
14940        };
14941        if let Some(ref v) = self.schema.as_ref() {
14942            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
14943            os.write_raw_varint32(v.get_cached_size())?;
14944            v.write_to_with_cached_sizes(os)?;
14945        }
14946        if !self.next_page_token.is_empty() {
14947            os.write_string(3, &self.next_page_token)?;
14948        }
14949        if self.total_rows != 0 {
14950            os.write_int64(4, self.total_rows)?;
14951        }
14952        os.write_unknown_fields(self.get_unknown_fields())?;
14953        ::std::result::Result::Ok(())
14954    }
14955
14956    fn get_cached_size(&self) -> u32 {
14957        self.cached_size.get()
14958    }
14959
14960    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
14961        &self.unknown_fields
14962    }
14963
14964    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
14965        &mut self.unknown_fields
14966    }
14967
14968    fn as_any(&self) -> &dyn (::std::any::Any) {
14969        self as &dyn (::std::any::Any)
14970    }
14971    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
14972        self as &mut dyn (::std::any::Any)
14973    }
14974    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
14975        self
14976    }
14977
14978    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
14979        Self::descriptor_static()
14980    }
14981
14982    fn new() -> QueryResult {
14983        QueryResult::new()
14984    }
14985
14986    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
14987        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
14988        descriptor.get(|| {
14989            let mut fields = ::std::vec::Vec::new();
14990            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Struct>>(
14991                "rows",
14992                |m: &QueryResult| { &m.rows },
14993                |m: &mut QueryResult| { &mut m.rows },
14994            ));
14995            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<TableSchema>>(
14996                "schema",
14997                |m: &QueryResult| { &m.schema },
14998                |m: &mut QueryResult| { &mut m.schema },
14999            ));
15000            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
15001                "next_page_token",
15002                |m: &QueryResult| { &m.next_page_token },
15003                |m: &mut QueryResult| { &mut m.next_page_token },
15004            ));
15005            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
15006                "total_rows",
15007                |m: &QueryResult| { &m.total_rows },
15008                |m: &mut QueryResult| { &mut m.total_rows },
15009            ));
15010            ::protobuf::reflect::MessageDescriptor::new_pb_name::<QueryResult>(
15011                "QueryResult",
15012                fields,
15013                file_descriptor_proto()
15014            )
15015        })
15016    }
15017
15018    fn default_instance() -> &'static QueryResult {
15019        static instance: ::protobuf::rt::LazyV2<QueryResult> = ::protobuf::rt::LazyV2::INIT;
15020        instance.get(QueryResult::new)
15021    }
15022}
15023
15024impl ::protobuf::Clear for QueryResult {
15025    fn clear(&mut self) {
15026        self.rows.clear();
15027        self.schema.clear();
15028        self.next_page_token.clear();
15029        self.total_rows = 0;
15030        self.unknown_fields.clear();
15031    }
15032}
15033
15034impl ::std::fmt::Debug for QueryResult {
15035    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15036        ::protobuf::text_format::fmt(self, f)
15037    }
15038}
15039
15040impl ::protobuf::reflect::ProtobufValue for QueryResult {
15041    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
15042        ::protobuf::reflect::ReflectValueRef::Message(self)
15043    }
15044}
15045
15046#[derive(PartialEq,Clone,Default)]
15047pub struct TableSchema {
15048    // message fields
15049    pub fields: ::protobuf::RepeatedField<TableFieldSchema>,
15050    // special fields
15051    pub unknown_fields: ::protobuf::UnknownFields,
15052    pub cached_size: ::protobuf::CachedSize,
15053}
15054
15055impl<'a> ::std::default::Default for &'a TableSchema {
15056    fn default() -> &'a TableSchema {
15057        <TableSchema as ::protobuf::Message>::default_instance()
15058    }
15059}
15060
15061impl TableSchema {
15062    pub fn new() -> TableSchema {
15063        ::std::default::Default::default()
15064    }
15065
15066    // repeated .google.cloud.asset.v1.TableFieldSchema fields = 1;
15067
15068
15069    pub fn get_fields(&self) -> &[TableFieldSchema] {
15070        &self.fields
15071    }
15072    pub fn clear_fields(&mut self) {
15073        self.fields.clear();
15074    }
15075
15076    // Param is passed by value, moved
15077    pub fn set_fields(&mut self, v: ::protobuf::RepeatedField<TableFieldSchema>) {
15078        self.fields = v;
15079    }
15080
15081    // Mutable pointer to the field.
15082    pub fn mut_fields(&mut self) -> &mut ::protobuf::RepeatedField<TableFieldSchema> {
15083        &mut self.fields
15084    }
15085
15086    // Take field
15087    pub fn take_fields(&mut self) -> ::protobuf::RepeatedField<TableFieldSchema> {
15088        ::std::mem::replace(&mut self.fields, ::protobuf::RepeatedField::new())
15089    }
15090}
15091
15092impl ::protobuf::Message for TableSchema {
15093    fn is_initialized(&self) -> bool {
15094        for v in &self.fields {
15095            if !v.is_initialized() {
15096                return false;
15097            }
15098        };
15099        true
15100    }
15101
15102    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
15103        while !is.eof()? {
15104            let (field_number, wire_type) = is.read_tag_unpack()?;
15105            match field_number {
15106                1 => {
15107                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.fields)?;
15108                },
15109                _ => {
15110                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
15111                },
15112            };
15113        }
15114        ::std::result::Result::Ok(())
15115    }
15116
15117    // Compute sizes of nested messages
15118    #[allow(unused_variables)]
15119    fn compute_size(&self) -> u32 {
15120        let mut my_size = 0;
15121        for value in &self.fields {
15122            let len = value.compute_size();
15123            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
15124        };
15125        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
15126        self.cached_size.set(my_size);
15127        my_size
15128    }
15129
15130    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
15131        for v in &self.fields {
15132            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
15133            os.write_raw_varint32(v.get_cached_size())?;
15134            v.write_to_with_cached_sizes(os)?;
15135        };
15136        os.write_unknown_fields(self.get_unknown_fields())?;
15137        ::std::result::Result::Ok(())
15138    }
15139
15140    fn get_cached_size(&self) -> u32 {
15141        self.cached_size.get()
15142    }
15143
15144    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
15145        &self.unknown_fields
15146    }
15147
15148    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
15149        &mut self.unknown_fields
15150    }
15151
15152    fn as_any(&self) -> &dyn (::std::any::Any) {
15153        self as &dyn (::std::any::Any)
15154    }
15155    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
15156        self as &mut dyn (::std::any::Any)
15157    }
15158    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
15159        self
15160    }
15161
15162    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
15163        Self::descriptor_static()
15164    }
15165
15166    fn new() -> TableSchema {
15167        TableSchema::new()
15168    }
15169
15170    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
15171        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
15172        descriptor.get(|| {
15173            let mut fields = ::std::vec::Vec::new();
15174            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<TableFieldSchema>>(
15175                "fields",
15176                |m: &TableSchema| { &m.fields },
15177                |m: &mut TableSchema| { &mut m.fields },
15178            ));
15179            ::protobuf::reflect::MessageDescriptor::new_pb_name::<TableSchema>(
15180                "TableSchema",
15181                fields,
15182                file_descriptor_proto()
15183            )
15184        })
15185    }
15186
15187    fn default_instance() -> &'static TableSchema {
15188        static instance: ::protobuf::rt::LazyV2<TableSchema> = ::protobuf::rt::LazyV2::INIT;
15189        instance.get(TableSchema::new)
15190    }
15191}
15192
15193impl ::protobuf::Clear for TableSchema {
15194    fn clear(&mut self) {
15195        self.fields.clear();
15196        self.unknown_fields.clear();
15197    }
15198}
15199
15200impl ::std::fmt::Debug for TableSchema {
15201    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15202        ::protobuf::text_format::fmt(self, f)
15203    }
15204}
15205
15206impl ::protobuf::reflect::ProtobufValue for TableSchema {
15207    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
15208        ::protobuf::reflect::ReflectValueRef::Message(self)
15209    }
15210}
15211
15212#[derive(PartialEq,Clone,Default)]
15213pub struct TableFieldSchema {
15214    // message fields
15215    pub field: ::std::string::String,
15216    pub field_type: ::std::string::String,
15217    pub mode: ::std::string::String,
15218    pub fields: ::protobuf::RepeatedField<TableFieldSchema>,
15219    // special fields
15220    pub unknown_fields: ::protobuf::UnknownFields,
15221    pub cached_size: ::protobuf::CachedSize,
15222}
15223
15224impl<'a> ::std::default::Default for &'a TableFieldSchema {
15225    fn default() -> &'a TableFieldSchema {
15226        <TableFieldSchema as ::protobuf::Message>::default_instance()
15227    }
15228}
15229
15230impl TableFieldSchema {
15231    pub fn new() -> TableFieldSchema {
15232        ::std::default::Default::default()
15233    }
15234
15235    // string field = 1;
15236
15237
15238    pub fn get_field(&self) -> &str {
15239        &self.field
15240    }
15241    pub fn clear_field(&mut self) {
15242        self.field.clear();
15243    }
15244
15245    // Param is passed by value, moved
15246    pub fn set_field(&mut self, v: ::std::string::String) {
15247        self.field = v;
15248    }
15249
15250    // Mutable pointer to the field.
15251    // If field is not initialized, it is initialized with default value first.
15252    pub fn mut_field(&mut self) -> &mut ::std::string::String {
15253        &mut self.field
15254    }
15255
15256    // Take field
15257    pub fn take_field(&mut self) -> ::std::string::String {
15258        ::std::mem::replace(&mut self.field, ::std::string::String::new())
15259    }
15260
15261    // string type = 2;
15262
15263
15264    pub fn get_field_type(&self) -> &str {
15265        &self.field_type
15266    }
15267    pub fn clear_field_type(&mut self) {
15268        self.field_type.clear();
15269    }
15270
15271    // Param is passed by value, moved
15272    pub fn set_field_type(&mut self, v: ::std::string::String) {
15273        self.field_type = v;
15274    }
15275
15276    // Mutable pointer to the field.
15277    // If field is not initialized, it is initialized with default value first.
15278    pub fn mut_field_type(&mut self) -> &mut ::std::string::String {
15279        &mut self.field_type
15280    }
15281
15282    // Take field
15283    pub fn take_field_type(&mut self) -> ::std::string::String {
15284        ::std::mem::replace(&mut self.field_type, ::std::string::String::new())
15285    }
15286
15287    // string mode = 3;
15288
15289
15290    pub fn get_mode(&self) -> &str {
15291        &self.mode
15292    }
15293    pub fn clear_mode(&mut self) {
15294        self.mode.clear();
15295    }
15296
15297    // Param is passed by value, moved
15298    pub fn set_mode(&mut self, v: ::std::string::String) {
15299        self.mode = v;
15300    }
15301
15302    // Mutable pointer to the field.
15303    // If field is not initialized, it is initialized with default value first.
15304    pub fn mut_mode(&mut self) -> &mut ::std::string::String {
15305        &mut self.mode
15306    }
15307
15308    // Take field
15309    pub fn take_mode(&mut self) -> ::std::string::String {
15310        ::std::mem::replace(&mut self.mode, ::std::string::String::new())
15311    }
15312
15313    // repeated .google.cloud.asset.v1.TableFieldSchema fields = 4;
15314
15315
15316    pub fn get_fields(&self) -> &[TableFieldSchema] {
15317        &self.fields
15318    }
15319    pub fn clear_fields(&mut self) {
15320        self.fields.clear();
15321    }
15322
15323    // Param is passed by value, moved
15324    pub fn set_fields(&mut self, v: ::protobuf::RepeatedField<TableFieldSchema>) {
15325        self.fields = v;
15326    }
15327
15328    // Mutable pointer to the field.
15329    pub fn mut_fields(&mut self) -> &mut ::protobuf::RepeatedField<TableFieldSchema> {
15330        &mut self.fields
15331    }
15332
15333    // Take field
15334    pub fn take_fields(&mut self) -> ::protobuf::RepeatedField<TableFieldSchema> {
15335        ::std::mem::replace(&mut self.fields, ::protobuf::RepeatedField::new())
15336    }
15337}
15338
15339impl ::protobuf::Message for TableFieldSchema {
15340    fn is_initialized(&self) -> bool {
15341        for v in &self.fields {
15342            if !v.is_initialized() {
15343                return false;
15344            }
15345        };
15346        true
15347    }
15348
15349    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
15350        while !is.eof()? {
15351            let (field_number, wire_type) = is.read_tag_unpack()?;
15352            match field_number {
15353                1 => {
15354                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.field)?;
15355                },
15356                2 => {
15357                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.field_type)?;
15358                },
15359                3 => {
15360                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.mode)?;
15361                },
15362                4 => {
15363                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.fields)?;
15364                },
15365                _ => {
15366                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
15367                },
15368            };
15369        }
15370        ::std::result::Result::Ok(())
15371    }
15372
15373    // Compute sizes of nested messages
15374    #[allow(unused_variables)]
15375    fn compute_size(&self) -> u32 {
15376        let mut my_size = 0;
15377        if !self.field.is_empty() {
15378            my_size += ::protobuf::rt::string_size(1, &self.field);
15379        }
15380        if !self.field_type.is_empty() {
15381            my_size += ::protobuf::rt::string_size(2, &self.field_type);
15382        }
15383        if !self.mode.is_empty() {
15384            my_size += ::protobuf::rt::string_size(3, &self.mode);
15385        }
15386        for value in &self.fields {
15387            let len = value.compute_size();
15388            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
15389        };
15390        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
15391        self.cached_size.set(my_size);
15392        my_size
15393    }
15394
15395    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
15396        if !self.field.is_empty() {
15397            os.write_string(1, &self.field)?;
15398        }
15399        if !self.field_type.is_empty() {
15400            os.write_string(2, &self.field_type)?;
15401        }
15402        if !self.mode.is_empty() {
15403            os.write_string(3, &self.mode)?;
15404        }
15405        for v in &self.fields {
15406            os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
15407            os.write_raw_varint32(v.get_cached_size())?;
15408            v.write_to_with_cached_sizes(os)?;
15409        };
15410        os.write_unknown_fields(self.get_unknown_fields())?;
15411        ::std::result::Result::Ok(())
15412    }
15413
15414    fn get_cached_size(&self) -> u32 {
15415        self.cached_size.get()
15416    }
15417
15418    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
15419        &self.unknown_fields
15420    }
15421
15422    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
15423        &mut self.unknown_fields
15424    }
15425
15426    fn as_any(&self) -> &dyn (::std::any::Any) {
15427        self as &dyn (::std::any::Any)
15428    }
15429    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
15430        self as &mut dyn (::std::any::Any)
15431    }
15432    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
15433        self
15434    }
15435
15436    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
15437        Self::descriptor_static()
15438    }
15439
15440    fn new() -> TableFieldSchema {
15441        TableFieldSchema::new()
15442    }
15443
15444    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
15445        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
15446        descriptor.get(|| {
15447            let mut fields = ::std::vec::Vec::new();
15448            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
15449                "field",
15450                |m: &TableFieldSchema| { &m.field },
15451                |m: &mut TableFieldSchema| { &mut m.field },
15452            ));
15453            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
15454                "type",
15455                |m: &TableFieldSchema| { &m.field_type },
15456                |m: &mut TableFieldSchema| { &mut m.field_type },
15457            ));
15458            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
15459                "mode",
15460                |m: &TableFieldSchema| { &m.mode },
15461                |m: &mut TableFieldSchema| { &mut m.mode },
15462            ));
15463            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<TableFieldSchema>>(
15464                "fields",
15465                |m: &TableFieldSchema| { &m.fields },
15466                |m: &mut TableFieldSchema| { &mut m.fields },
15467            ));
15468            ::protobuf::reflect::MessageDescriptor::new_pb_name::<TableFieldSchema>(
15469                "TableFieldSchema",
15470                fields,
15471                file_descriptor_proto()
15472            )
15473        })
15474    }
15475
15476    fn default_instance() -> &'static TableFieldSchema {
15477        static instance: ::protobuf::rt::LazyV2<TableFieldSchema> = ::protobuf::rt::LazyV2::INIT;
15478        instance.get(TableFieldSchema::new)
15479    }
15480}
15481
15482impl ::protobuf::Clear for TableFieldSchema {
15483    fn clear(&mut self) {
15484        self.field.clear();
15485        self.field_type.clear();
15486        self.mode.clear();
15487        self.fields.clear();
15488        self.unknown_fields.clear();
15489    }
15490}
15491
15492impl ::std::fmt::Debug for TableFieldSchema {
15493    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15494        ::protobuf::text_format::fmt(self, f)
15495    }
15496}
15497
15498impl ::protobuf::reflect::ProtobufValue for TableFieldSchema {
15499    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
15500        ::protobuf::reflect::ReflectValueRef::Message(self)
15501    }
15502}
15503
15504#[derive(PartialEq,Clone,Default)]
15505pub struct BatchGetEffectiveIamPoliciesRequest {
15506    // message fields
15507    pub scope: ::std::string::String,
15508    pub names: ::protobuf::RepeatedField<::std::string::String>,
15509    // special fields
15510    pub unknown_fields: ::protobuf::UnknownFields,
15511    pub cached_size: ::protobuf::CachedSize,
15512}
15513
15514impl<'a> ::std::default::Default for &'a BatchGetEffectiveIamPoliciesRequest {
15515    fn default() -> &'a BatchGetEffectiveIamPoliciesRequest {
15516        <BatchGetEffectiveIamPoliciesRequest as ::protobuf::Message>::default_instance()
15517    }
15518}
15519
15520impl BatchGetEffectiveIamPoliciesRequest {
15521    pub fn new() -> BatchGetEffectiveIamPoliciesRequest {
15522        ::std::default::Default::default()
15523    }
15524
15525    // string scope = 1;
15526
15527
15528    pub fn get_scope(&self) -> &str {
15529        &self.scope
15530    }
15531    pub fn clear_scope(&mut self) {
15532        self.scope.clear();
15533    }
15534
15535    // Param is passed by value, moved
15536    pub fn set_scope(&mut self, v: ::std::string::String) {
15537        self.scope = v;
15538    }
15539
15540    // Mutable pointer to the field.
15541    // If field is not initialized, it is initialized with default value first.
15542    pub fn mut_scope(&mut self) -> &mut ::std::string::String {
15543        &mut self.scope
15544    }
15545
15546    // Take field
15547    pub fn take_scope(&mut self) -> ::std::string::String {
15548        ::std::mem::replace(&mut self.scope, ::std::string::String::new())
15549    }
15550
15551    // repeated string names = 3;
15552
15553
15554    pub fn get_names(&self) -> &[::std::string::String] {
15555        &self.names
15556    }
15557    pub fn clear_names(&mut self) {
15558        self.names.clear();
15559    }
15560
15561    // Param is passed by value, moved
15562    pub fn set_names(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
15563        self.names = v;
15564    }
15565
15566    // Mutable pointer to the field.
15567    pub fn mut_names(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
15568        &mut self.names
15569    }
15570
15571    // Take field
15572    pub fn take_names(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
15573        ::std::mem::replace(&mut self.names, ::protobuf::RepeatedField::new())
15574    }
15575}
15576
15577impl ::protobuf::Message for BatchGetEffectiveIamPoliciesRequest {
15578    fn is_initialized(&self) -> bool {
15579        true
15580    }
15581
15582    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
15583        while !is.eof()? {
15584            let (field_number, wire_type) = is.read_tag_unpack()?;
15585            match field_number {
15586                1 => {
15587                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.scope)?;
15588                },
15589                3 => {
15590                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.names)?;
15591                },
15592                _ => {
15593                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
15594                },
15595            };
15596        }
15597        ::std::result::Result::Ok(())
15598    }
15599
15600    // Compute sizes of nested messages
15601    #[allow(unused_variables)]
15602    fn compute_size(&self) -> u32 {
15603        let mut my_size = 0;
15604        if !self.scope.is_empty() {
15605            my_size += ::protobuf::rt::string_size(1, &self.scope);
15606        }
15607        for value in &self.names {
15608            my_size += ::protobuf::rt::string_size(3, &value);
15609        };
15610        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
15611        self.cached_size.set(my_size);
15612        my_size
15613    }
15614
15615    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
15616        if !self.scope.is_empty() {
15617            os.write_string(1, &self.scope)?;
15618        }
15619        for v in &self.names {
15620            os.write_string(3, &v)?;
15621        };
15622        os.write_unknown_fields(self.get_unknown_fields())?;
15623        ::std::result::Result::Ok(())
15624    }
15625
15626    fn get_cached_size(&self) -> u32 {
15627        self.cached_size.get()
15628    }
15629
15630    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
15631        &self.unknown_fields
15632    }
15633
15634    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
15635        &mut self.unknown_fields
15636    }
15637
15638    fn as_any(&self) -> &dyn (::std::any::Any) {
15639        self as &dyn (::std::any::Any)
15640    }
15641    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
15642        self as &mut dyn (::std::any::Any)
15643    }
15644    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
15645        self
15646    }
15647
15648    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
15649        Self::descriptor_static()
15650    }
15651
15652    fn new() -> BatchGetEffectiveIamPoliciesRequest {
15653        BatchGetEffectiveIamPoliciesRequest::new()
15654    }
15655
15656    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
15657        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
15658        descriptor.get(|| {
15659            let mut fields = ::std::vec::Vec::new();
15660            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
15661                "scope",
15662                |m: &BatchGetEffectiveIamPoliciesRequest| { &m.scope },
15663                |m: &mut BatchGetEffectiveIamPoliciesRequest| { &mut m.scope },
15664            ));
15665            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
15666                "names",
15667                |m: &BatchGetEffectiveIamPoliciesRequest| { &m.names },
15668                |m: &mut BatchGetEffectiveIamPoliciesRequest| { &mut m.names },
15669            ));
15670            ::protobuf::reflect::MessageDescriptor::new_pb_name::<BatchGetEffectiveIamPoliciesRequest>(
15671                "BatchGetEffectiveIamPoliciesRequest",
15672                fields,
15673                file_descriptor_proto()
15674            )
15675        })
15676    }
15677
15678    fn default_instance() -> &'static BatchGetEffectiveIamPoliciesRequest {
15679        static instance: ::protobuf::rt::LazyV2<BatchGetEffectiveIamPoliciesRequest> = ::protobuf::rt::LazyV2::INIT;
15680        instance.get(BatchGetEffectiveIamPoliciesRequest::new)
15681    }
15682}
15683
15684impl ::protobuf::Clear for BatchGetEffectiveIamPoliciesRequest {
15685    fn clear(&mut self) {
15686        self.scope.clear();
15687        self.names.clear();
15688        self.unknown_fields.clear();
15689    }
15690}
15691
15692impl ::std::fmt::Debug for BatchGetEffectiveIamPoliciesRequest {
15693    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15694        ::protobuf::text_format::fmt(self, f)
15695    }
15696}
15697
15698impl ::protobuf::reflect::ProtobufValue for BatchGetEffectiveIamPoliciesRequest {
15699    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
15700        ::protobuf::reflect::ReflectValueRef::Message(self)
15701    }
15702}
15703
15704#[derive(PartialEq,Clone,Default)]
15705pub struct BatchGetEffectiveIamPoliciesResponse {
15706    // message fields
15707    pub policy_results: ::protobuf::RepeatedField<BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy>,
15708    // special fields
15709    pub unknown_fields: ::protobuf::UnknownFields,
15710    pub cached_size: ::protobuf::CachedSize,
15711}
15712
15713impl<'a> ::std::default::Default for &'a BatchGetEffectiveIamPoliciesResponse {
15714    fn default() -> &'a BatchGetEffectiveIamPoliciesResponse {
15715        <BatchGetEffectiveIamPoliciesResponse as ::protobuf::Message>::default_instance()
15716    }
15717}
15718
15719impl BatchGetEffectiveIamPoliciesResponse {
15720    pub fn new() -> BatchGetEffectiveIamPoliciesResponse {
15721        ::std::default::Default::default()
15722    }
15723
15724    // repeated .google.cloud.asset.v1.BatchGetEffectiveIamPoliciesResponse.EffectiveIamPolicy policy_results = 2;
15725
15726
15727    pub fn get_policy_results(&self) -> &[BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy] {
15728        &self.policy_results
15729    }
15730    pub fn clear_policy_results(&mut self) {
15731        self.policy_results.clear();
15732    }
15733
15734    // Param is passed by value, moved
15735    pub fn set_policy_results(&mut self, v: ::protobuf::RepeatedField<BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy>) {
15736        self.policy_results = v;
15737    }
15738
15739    // Mutable pointer to the field.
15740    pub fn mut_policy_results(&mut self) -> &mut ::protobuf::RepeatedField<BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy> {
15741        &mut self.policy_results
15742    }
15743
15744    // Take field
15745    pub fn take_policy_results(&mut self) -> ::protobuf::RepeatedField<BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy> {
15746        ::std::mem::replace(&mut self.policy_results, ::protobuf::RepeatedField::new())
15747    }
15748}
15749
15750impl ::protobuf::Message for BatchGetEffectiveIamPoliciesResponse {
15751    fn is_initialized(&self) -> bool {
15752        for v in &self.policy_results {
15753            if !v.is_initialized() {
15754                return false;
15755            }
15756        };
15757        true
15758    }
15759
15760    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
15761        while !is.eof()? {
15762            let (field_number, wire_type) = is.read_tag_unpack()?;
15763            match field_number {
15764                2 => {
15765                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.policy_results)?;
15766                },
15767                _ => {
15768                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
15769                },
15770            };
15771        }
15772        ::std::result::Result::Ok(())
15773    }
15774
15775    // Compute sizes of nested messages
15776    #[allow(unused_variables)]
15777    fn compute_size(&self) -> u32 {
15778        let mut my_size = 0;
15779        for value in &self.policy_results {
15780            let len = value.compute_size();
15781            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
15782        };
15783        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
15784        self.cached_size.set(my_size);
15785        my_size
15786    }
15787
15788    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
15789        for v in &self.policy_results {
15790            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
15791            os.write_raw_varint32(v.get_cached_size())?;
15792            v.write_to_with_cached_sizes(os)?;
15793        };
15794        os.write_unknown_fields(self.get_unknown_fields())?;
15795        ::std::result::Result::Ok(())
15796    }
15797
15798    fn get_cached_size(&self) -> u32 {
15799        self.cached_size.get()
15800    }
15801
15802    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
15803        &self.unknown_fields
15804    }
15805
15806    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
15807        &mut self.unknown_fields
15808    }
15809
15810    fn as_any(&self) -> &dyn (::std::any::Any) {
15811        self as &dyn (::std::any::Any)
15812    }
15813    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
15814        self as &mut dyn (::std::any::Any)
15815    }
15816    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
15817        self
15818    }
15819
15820    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
15821        Self::descriptor_static()
15822    }
15823
15824    fn new() -> BatchGetEffectiveIamPoliciesResponse {
15825        BatchGetEffectiveIamPoliciesResponse::new()
15826    }
15827
15828    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
15829        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
15830        descriptor.get(|| {
15831            let mut fields = ::std::vec::Vec::new();
15832            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy>>(
15833                "policy_results",
15834                |m: &BatchGetEffectiveIamPoliciesResponse| { &m.policy_results },
15835                |m: &mut BatchGetEffectiveIamPoliciesResponse| { &mut m.policy_results },
15836            ));
15837            ::protobuf::reflect::MessageDescriptor::new_pb_name::<BatchGetEffectiveIamPoliciesResponse>(
15838                "BatchGetEffectiveIamPoliciesResponse",
15839                fields,
15840                file_descriptor_proto()
15841            )
15842        })
15843    }
15844
15845    fn default_instance() -> &'static BatchGetEffectiveIamPoliciesResponse {
15846        static instance: ::protobuf::rt::LazyV2<BatchGetEffectiveIamPoliciesResponse> = ::protobuf::rt::LazyV2::INIT;
15847        instance.get(BatchGetEffectiveIamPoliciesResponse::new)
15848    }
15849}
15850
15851impl ::protobuf::Clear for BatchGetEffectiveIamPoliciesResponse {
15852    fn clear(&mut self) {
15853        self.policy_results.clear();
15854        self.unknown_fields.clear();
15855    }
15856}
15857
15858impl ::std::fmt::Debug for BatchGetEffectiveIamPoliciesResponse {
15859    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15860        ::protobuf::text_format::fmt(self, f)
15861    }
15862}
15863
15864impl ::protobuf::reflect::ProtobufValue for BatchGetEffectiveIamPoliciesResponse {
15865    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
15866        ::protobuf::reflect::ReflectValueRef::Message(self)
15867    }
15868}
15869
15870#[derive(PartialEq,Clone,Default)]
15871pub struct BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy {
15872    // message fields
15873    pub full_resource_name: ::std::string::String,
15874    pub policies: ::protobuf::RepeatedField<BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy_PolicyInfo>,
15875    // special fields
15876    pub unknown_fields: ::protobuf::UnknownFields,
15877    pub cached_size: ::protobuf::CachedSize,
15878}
15879
15880impl<'a> ::std::default::Default for &'a BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy {
15881    fn default() -> &'a BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy {
15882        <BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy as ::protobuf::Message>::default_instance()
15883    }
15884}
15885
15886impl BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy {
15887    pub fn new() -> BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy {
15888        ::std::default::Default::default()
15889    }
15890
15891    // string full_resource_name = 1;
15892
15893
15894    pub fn get_full_resource_name(&self) -> &str {
15895        &self.full_resource_name
15896    }
15897    pub fn clear_full_resource_name(&mut self) {
15898        self.full_resource_name.clear();
15899    }
15900
15901    // Param is passed by value, moved
15902    pub fn set_full_resource_name(&mut self, v: ::std::string::String) {
15903        self.full_resource_name = v;
15904    }
15905
15906    // Mutable pointer to the field.
15907    // If field is not initialized, it is initialized with default value first.
15908    pub fn mut_full_resource_name(&mut self) -> &mut ::std::string::String {
15909        &mut self.full_resource_name
15910    }
15911
15912    // Take field
15913    pub fn take_full_resource_name(&mut self) -> ::std::string::String {
15914        ::std::mem::replace(&mut self.full_resource_name, ::std::string::String::new())
15915    }
15916
15917    // repeated .google.cloud.asset.v1.BatchGetEffectiveIamPoliciesResponse.EffectiveIamPolicy.PolicyInfo policies = 2;
15918
15919
15920    pub fn get_policies(&self) -> &[BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy_PolicyInfo] {
15921        &self.policies
15922    }
15923    pub fn clear_policies(&mut self) {
15924        self.policies.clear();
15925    }
15926
15927    // Param is passed by value, moved
15928    pub fn set_policies(&mut self, v: ::protobuf::RepeatedField<BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy_PolicyInfo>) {
15929        self.policies = v;
15930    }
15931
15932    // Mutable pointer to the field.
15933    pub fn mut_policies(&mut self) -> &mut ::protobuf::RepeatedField<BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy_PolicyInfo> {
15934        &mut self.policies
15935    }
15936
15937    // Take field
15938    pub fn take_policies(&mut self) -> ::protobuf::RepeatedField<BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy_PolicyInfo> {
15939        ::std::mem::replace(&mut self.policies, ::protobuf::RepeatedField::new())
15940    }
15941}
15942
15943impl ::protobuf::Message for BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy {
15944    fn is_initialized(&self) -> bool {
15945        for v in &self.policies {
15946            if !v.is_initialized() {
15947                return false;
15948            }
15949        };
15950        true
15951    }
15952
15953    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
15954        while !is.eof()? {
15955            let (field_number, wire_type) = is.read_tag_unpack()?;
15956            match field_number {
15957                1 => {
15958                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.full_resource_name)?;
15959                },
15960                2 => {
15961                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.policies)?;
15962                },
15963                _ => {
15964                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
15965                },
15966            };
15967        }
15968        ::std::result::Result::Ok(())
15969    }
15970
15971    // Compute sizes of nested messages
15972    #[allow(unused_variables)]
15973    fn compute_size(&self) -> u32 {
15974        let mut my_size = 0;
15975        if !self.full_resource_name.is_empty() {
15976            my_size += ::protobuf::rt::string_size(1, &self.full_resource_name);
15977        }
15978        for value in &self.policies {
15979            let len = value.compute_size();
15980            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
15981        };
15982        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
15983        self.cached_size.set(my_size);
15984        my_size
15985    }
15986
15987    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
15988        if !self.full_resource_name.is_empty() {
15989            os.write_string(1, &self.full_resource_name)?;
15990        }
15991        for v in &self.policies {
15992            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
15993            os.write_raw_varint32(v.get_cached_size())?;
15994            v.write_to_with_cached_sizes(os)?;
15995        };
15996        os.write_unknown_fields(self.get_unknown_fields())?;
15997        ::std::result::Result::Ok(())
15998    }
15999
16000    fn get_cached_size(&self) -> u32 {
16001        self.cached_size.get()
16002    }
16003
16004    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
16005        &self.unknown_fields
16006    }
16007
16008    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
16009        &mut self.unknown_fields
16010    }
16011
16012    fn as_any(&self) -> &dyn (::std::any::Any) {
16013        self as &dyn (::std::any::Any)
16014    }
16015    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
16016        self as &mut dyn (::std::any::Any)
16017    }
16018    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
16019        self
16020    }
16021
16022    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
16023        Self::descriptor_static()
16024    }
16025
16026    fn new() -> BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy {
16027        BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy::new()
16028    }
16029
16030    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
16031        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
16032        descriptor.get(|| {
16033            let mut fields = ::std::vec::Vec::new();
16034            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
16035                "full_resource_name",
16036                |m: &BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy| { &m.full_resource_name },
16037                |m: &mut BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy| { &mut m.full_resource_name },
16038            ));
16039            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy_PolicyInfo>>(
16040                "policies",
16041                |m: &BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy| { &m.policies },
16042                |m: &mut BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy| { &mut m.policies },
16043            ));
16044            ::protobuf::reflect::MessageDescriptor::new_pb_name::<BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy>(
16045                "BatchGetEffectiveIamPoliciesResponse.EffectiveIamPolicy",
16046                fields,
16047                file_descriptor_proto()
16048            )
16049        })
16050    }
16051
16052    fn default_instance() -> &'static BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy {
16053        static instance: ::protobuf::rt::LazyV2<BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy> = ::protobuf::rt::LazyV2::INIT;
16054        instance.get(BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy::new)
16055    }
16056}
16057
16058impl ::protobuf::Clear for BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy {
16059    fn clear(&mut self) {
16060        self.full_resource_name.clear();
16061        self.policies.clear();
16062        self.unknown_fields.clear();
16063    }
16064}
16065
16066impl ::std::fmt::Debug for BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy {
16067    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16068        ::protobuf::text_format::fmt(self, f)
16069    }
16070}
16071
16072impl ::protobuf::reflect::ProtobufValue for BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy {
16073    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
16074        ::protobuf::reflect::ReflectValueRef::Message(self)
16075    }
16076}
16077
16078#[derive(PartialEq,Clone,Default)]
16079pub struct BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy_PolicyInfo {
16080    // message fields
16081    pub attached_resource: ::std::string::String,
16082    pub policy: ::protobuf::SingularPtrField<super::policy::Policy>,
16083    // special fields
16084    pub unknown_fields: ::protobuf::UnknownFields,
16085    pub cached_size: ::protobuf::CachedSize,
16086}
16087
16088impl<'a> ::std::default::Default for &'a BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy_PolicyInfo {
16089    fn default() -> &'a BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy_PolicyInfo {
16090        <BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy_PolicyInfo as ::protobuf::Message>::default_instance()
16091    }
16092}
16093
16094impl BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy_PolicyInfo {
16095    pub fn new() -> BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy_PolicyInfo {
16096        ::std::default::Default::default()
16097    }
16098
16099    // string attached_resource = 1;
16100
16101
16102    pub fn get_attached_resource(&self) -> &str {
16103        &self.attached_resource
16104    }
16105    pub fn clear_attached_resource(&mut self) {
16106        self.attached_resource.clear();
16107    }
16108
16109    // Param is passed by value, moved
16110    pub fn set_attached_resource(&mut self, v: ::std::string::String) {
16111        self.attached_resource = v;
16112    }
16113
16114    // Mutable pointer to the field.
16115    // If field is not initialized, it is initialized with default value first.
16116    pub fn mut_attached_resource(&mut self) -> &mut ::std::string::String {
16117        &mut self.attached_resource
16118    }
16119
16120    // Take field
16121    pub fn take_attached_resource(&mut self) -> ::std::string::String {
16122        ::std::mem::replace(&mut self.attached_resource, ::std::string::String::new())
16123    }
16124
16125    // .google.iam.v1.Policy policy = 2;
16126
16127
16128    pub fn get_policy(&self) -> &super::policy::Policy {
16129        self.policy.as_ref().unwrap_or_else(|| <super::policy::Policy as ::protobuf::Message>::default_instance())
16130    }
16131    pub fn clear_policy(&mut self) {
16132        self.policy.clear();
16133    }
16134
16135    pub fn has_policy(&self) -> bool {
16136        self.policy.is_some()
16137    }
16138
16139    // Param is passed by value, moved
16140    pub fn set_policy(&mut self, v: super::policy::Policy) {
16141        self.policy = ::protobuf::SingularPtrField::some(v);
16142    }
16143
16144    // Mutable pointer to the field.
16145    // If field is not initialized, it is initialized with default value first.
16146    pub fn mut_policy(&mut self) -> &mut super::policy::Policy {
16147        if self.policy.is_none() {
16148            self.policy.set_default();
16149        }
16150        self.policy.as_mut().unwrap()
16151    }
16152
16153    // Take field
16154    pub fn take_policy(&mut self) -> super::policy::Policy {
16155        self.policy.take().unwrap_or_else(|| super::policy::Policy::new())
16156    }
16157}
16158
16159impl ::protobuf::Message for BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy_PolicyInfo {
16160    fn is_initialized(&self) -> bool {
16161        for v in &self.policy {
16162            if !v.is_initialized() {
16163                return false;
16164            }
16165        };
16166        true
16167    }
16168
16169    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
16170        while !is.eof()? {
16171            let (field_number, wire_type) = is.read_tag_unpack()?;
16172            match field_number {
16173                1 => {
16174                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.attached_resource)?;
16175                },
16176                2 => {
16177                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.policy)?;
16178                },
16179                _ => {
16180                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
16181                },
16182            };
16183        }
16184        ::std::result::Result::Ok(())
16185    }
16186
16187    // Compute sizes of nested messages
16188    #[allow(unused_variables)]
16189    fn compute_size(&self) -> u32 {
16190        let mut my_size = 0;
16191        if !self.attached_resource.is_empty() {
16192            my_size += ::protobuf::rt::string_size(1, &self.attached_resource);
16193        }
16194        if let Some(ref v) = self.policy.as_ref() {
16195            let len = v.compute_size();
16196            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
16197        }
16198        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
16199        self.cached_size.set(my_size);
16200        my_size
16201    }
16202
16203    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
16204        if !self.attached_resource.is_empty() {
16205            os.write_string(1, &self.attached_resource)?;
16206        }
16207        if let Some(ref v) = self.policy.as_ref() {
16208            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
16209            os.write_raw_varint32(v.get_cached_size())?;
16210            v.write_to_with_cached_sizes(os)?;
16211        }
16212        os.write_unknown_fields(self.get_unknown_fields())?;
16213        ::std::result::Result::Ok(())
16214    }
16215
16216    fn get_cached_size(&self) -> u32 {
16217        self.cached_size.get()
16218    }
16219
16220    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
16221        &self.unknown_fields
16222    }
16223
16224    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
16225        &mut self.unknown_fields
16226    }
16227
16228    fn as_any(&self) -> &dyn (::std::any::Any) {
16229        self as &dyn (::std::any::Any)
16230    }
16231    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
16232        self as &mut dyn (::std::any::Any)
16233    }
16234    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
16235        self
16236    }
16237
16238    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
16239        Self::descriptor_static()
16240    }
16241
16242    fn new() -> BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy_PolicyInfo {
16243        BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy_PolicyInfo::new()
16244    }
16245
16246    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
16247        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
16248        descriptor.get(|| {
16249            let mut fields = ::std::vec::Vec::new();
16250            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
16251                "attached_resource",
16252                |m: &BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy_PolicyInfo| { &m.attached_resource },
16253                |m: &mut BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy_PolicyInfo| { &mut m.attached_resource },
16254            ));
16255            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::policy::Policy>>(
16256                "policy",
16257                |m: &BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy_PolicyInfo| { &m.policy },
16258                |m: &mut BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy_PolicyInfo| { &mut m.policy },
16259            ));
16260            ::protobuf::reflect::MessageDescriptor::new_pb_name::<BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy_PolicyInfo>(
16261                "BatchGetEffectiveIamPoliciesResponse.EffectiveIamPolicy.PolicyInfo",
16262                fields,
16263                file_descriptor_proto()
16264            )
16265        })
16266    }
16267
16268    fn default_instance() -> &'static BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy_PolicyInfo {
16269        static instance: ::protobuf::rt::LazyV2<BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy_PolicyInfo> = ::protobuf::rt::LazyV2::INIT;
16270        instance.get(BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy_PolicyInfo::new)
16271    }
16272}
16273
16274impl ::protobuf::Clear for BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy_PolicyInfo {
16275    fn clear(&mut self) {
16276        self.attached_resource.clear();
16277        self.policy.clear();
16278        self.unknown_fields.clear();
16279    }
16280}
16281
16282impl ::std::fmt::Debug for BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy_PolicyInfo {
16283    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16284        ::protobuf::text_format::fmt(self, f)
16285    }
16286}
16287
16288impl ::protobuf::reflect::ProtobufValue for BatchGetEffectiveIamPoliciesResponse_EffectiveIamPolicy_PolicyInfo {
16289    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
16290        ::protobuf::reflect::ReflectValueRef::Message(self)
16291    }
16292}
16293
16294#[derive(PartialEq,Clone,Default)]
16295pub struct AnalyzerOrgPolicy {
16296    // message fields
16297    pub attached_resource: ::std::string::String,
16298    pub applied_resource: ::std::string::String,
16299    pub rules: ::protobuf::RepeatedField<AnalyzerOrgPolicy_Rule>,
16300    pub inherit_from_parent: bool,
16301    pub reset: bool,
16302    // special fields
16303    pub unknown_fields: ::protobuf::UnknownFields,
16304    pub cached_size: ::protobuf::CachedSize,
16305}
16306
16307impl<'a> ::std::default::Default for &'a AnalyzerOrgPolicy {
16308    fn default() -> &'a AnalyzerOrgPolicy {
16309        <AnalyzerOrgPolicy as ::protobuf::Message>::default_instance()
16310    }
16311}
16312
16313impl AnalyzerOrgPolicy {
16314    pub fn new() -> AnalyzerOrgPolicy {
16315        ::std::default::Default::default()
16316    }
16317
16318    // string attached_resource = 1;
16319
16320
16321    pub fn get_attached_resource(&self) -> &str {
16322        &self.attached_resource
16323    }
16324    pub fn clear_attached_resource(&mut self) {
16325        self.attached_resource.clear();
16326    }
16327
16328    // Param is passed by value, moved
16329    pub fn set_attached_resource(&mut self, v: ::std::string::String) {
16330        self.attached_resource = v;
16331    }
16332
16333    // Mutable pointer to the field.
16334    // If field is not initialized, it is initialized with default value first.
16335    pub fn mut_attached_resource(&mut self) -> &mut ::std::string::String {
16336        &mut self.attached_resource
16337    }
16338
16339    // Take field
16340    pub fn take_attached_resource(&mut self) -> ::std::string::String {
16341        ::std::mem::replace(&mut self.attached_resource, ::std::string::String::new())
16342    }
16343
16344    // string applied_resource = 5;
16345
16346
16347    pub fn get_applied_resource(&self) -> &str {
16348        &self.applied_resource
16349    }
16350    pub fn clear_applied_resource(&mut self) {
16351        self.applied_resource.clear();
16352    }
16353
16354    // Param is passed by value, moved
16355    pub fn set_applied_resource(&mut self, v: ::std::string::String) {
16356        self.applied_resource = v;
16357    }
16358
16359    // Mutable pointer to the field.
16360    // If field is not initialized, it is initialized with default value first.
16361    pub fn mut_applied_resource(&mut self) -> &mut ::std::string::String {
16362        &mut self.applied_resource
16363    }
16364
16365    // Take field
16366    pub fn take_applied_resource(&mut self) -> ::std::string::String {
16367        ::std::mem::replace(&mut self.applied_resource, ::std::string::String::new())
16368    }
16369
16370    // repeated .google.cloud.asset.v1.AnalyzerOrgPolicy.Rule rules = 2;
16371
16372
16373    pub fn get_rules(&self) -> &[AnalyzerOrgPolicy_Rule] {
16374        &self.rules
16375    }
16376    pub fn clear_rules(&mut self) {
16377        self.rules.clear();
16378    }
16379
16380    // Param is passed by value, moved
16381    pub fn set_rules(&mut self, v: ::protobuf::RepeatedField<AnalyzerOrgPolicy_Rule>) {
16382        self.rules = v;
16383    }
16384
16385    // Mutable pointer to the field.
16386    pub fn mut_rules(&mut self) -> &mut ::protobuf::RepeatedField<AnalyzerOrgPolicy_Rule> {
16387        &mut self.rules
16388    }
16389
16390    // Take field
16391    pub fn take_rules(&mut self) -> ::protobuf::RepeatedField<AnalyzerOrgPolicy_Rule> {
16392        ::std::mem::replace(&mut self.rules, ::protobuf::RepeatedField::new())
16393    }
16394
16395    // bool inherit_from_parent = 3;
16396
16397
16398    pub fn get_inherit_from_parent(&self) -> bool {
16399        self.inherit_from_parent
16400    }
16401    pub fn clear_inherit_from_parent(&mut self) {
16402        self.inherit_from_parent = false;
16403    }
16404
16405    // Param is passed by value, moved
16406    pub fn set_inherit_from_parent(&mut self, v: bool) {
16407        self.inherit_from_parent = v;
16408    }
16409
16410    // bool reset = 4;
16411
16412
16413    pub fn get_reset(&self) -> bool {
16414        self.reset
16415    }
16416    pub fn clear_reset(&mut self) {
16417        self.reset = false;
16418    }
16419
16420    // Param is passed by value, moved
16421    pub fn set_reset(&mut self, v: bool) {
16422        self.reset = v;
16423    }
16424}
16425
16426impl ::protobuf::Message for AnalyzerOrgPolicy {
16427    fn is_initialized(&self) -> bool {
16428        for v in &self.rules {
16429            if !v.is_initialized() {
16430                return false;
16431            }
16432        };
16433        true
16434    }
16435
16436    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
16437        while !is.eof()? {
16438            let (field_number, wire_type) = is.read_tag_unpack()?;
16439            match field_number {
16440                1 => {
16441                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.attached_resource)?;
16442                },
16443                5 => {
16444                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.applied_resource)?;
16445                },
16446                2 => {
16447                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.rules)?;
16448                },
16449                3 => {
16450                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
16451                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
16452                    }
16453                    let tmp = is.read_bool()?;
16454                    self.inherit_from_parent = tmp;
16455                },
16456                4 => {
16457                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
16458                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
16459                    }
16460                    let tmp = is.read_bool()?;
16461                    self.reset = tmp;
16462                },
16463                _ => {
16464                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
16465                },
16466            };
16467        }
16468        ::std::result::Result::Ok(())
16469    }
16470
16471    // Compute sizes of nested messages
16472    #[allow(unused_variables)]
16473    fn compute_size(&self) -> u32 {
16474        let mut my_size = 0;
16475        if !self.attached_resource.is_empty() {
16476            my_size += ::protobuf::rt::string_size(1, &self.attached_resource);
16477        }
16478        if !self.applied_resource.is_empty() {
16479            my_size += ::protobuf::rt::string_size(5, &self.applied_resource);
16480        }
16481        for value in &self.rules {
16482            let len = value.compute_size();
16483            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
16484        };
16485        if self.inherit_from_parent != false {
16486            my_size += 2;
16487        }
16488        if self.reset != false {
16489            my_size += 2;
16490        }
16491        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
16492        self.cached_size.set(my_size);
16493        my_size
16494    }
16495
16496    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
16497        if !self.attached_resource.is_empty() {
16498            os.write_string(1, &self.attached_resource)?;
16499        }
16500        if !self.applied_resource.is_empty() {
16501            os.write_string(5, &self.applied_resource)?;
16502        }
16503        for v in &self.rules {
16504            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
16505            os.write_raw_varint32(v.get_cached_size())?;
16506            v.write_to_with_cached_sizes(os)?;
16507        };
16508        if self.inherit_from_parent != false {
16509            os.write_bool(3, self.inherit_from_parent)?;
16510        }
16511        if self.reset != false {
16512            os.write_bool(4, self.reset)?;
16513        }
16514        os.write_unknown_fields(self.get_unknown_fields())?;
16515        ::std::result::Result::Ok(())
16516    }
16517
16518    fn get_cached_size(&self) -> u32 {
16519        self.cached_size.get()
16520    }
16521
16522    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
16523        &self.unknown_fields
16524    }
16525
16526    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
16527        &mut self.unknown_fields
16528    }
16529
16530    fn as_any(&self) -> &dyn (::std::any::Any) {
16531        self as &dyn (::std::any::Any)
16532    }
16533    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
16534        self as &mut dyn (::std::any::Any)
16535    }
16536    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
16537        self
16538    }
16539
16540    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
16541        Self::descriptor_static()
16542    }
16543
16544    fn new() -> AnalyzerOrgPolicy {
16545        AnalyzerOrgPolicy::new()
16546    }
16547
16548    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
16549        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
16550        descriptor.get(|| {
16551            let mut fields = ::std::vec::Vec::new();
16552            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
16553                "attached_resource",
16554                |m: &AnalyzerOrgPolicy| { &m.attached_resource },
16555                |m: &mut AnalyzerOrgPolicy| { &mut m.attached_resource },
16556            ));
16557            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
16558                "applied_resource",
16559                |m: &AnalyzerOrgPolicy| { &m.applied_resource },
16560                |m: &mut AnalyzerOrgPolicy| { &mut m.applied_resource },
16561            ));
16562            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<AnalyzerOrgPolicy_Rule>>(
16563                "rules",
16564                |m: &AnalyzerOrgPolicy| { &m.rules },
16565                |m: &mut AnalyzerOrgPolicy| { &mut m.rules },
16566            ));
16567            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
16568                "inherit_from_parent",
16569                |m: &AnalyzerOrgPolicy| { &m.inherit_from_parent },
16570                |m: &mut AnalyzerOrgPolicy| { &mut m.inherit_from_parent },
16571            ));
16572            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
16573                "reset",
16574                |m: &AnalyzerOrgPolicy| { &m.reset },
16575                |m: &mut AnalyzerOrgPolicy| { &mut m.reset },
16576            ));
16577            ::protobuf::reflect::MessageDescriptor::new_pb_name::<AnalyzerOrgPolicy>(
16578                "AnalyzerOrgPolicy",
16579                fields,
16580                file_descriptor_proto()
16581            )
16582        })
16583    }
16584
16585    fn default_instance() -> &'static AnalyzerOrgPolicy {
16586        static instance: ::protobuf::rt::LazyV2<AnalyzerOrgPolicy> = ::protobuf::rt::LazyV2::INIT;
16587        instance.get(AnalyzerOrgPolicy::new)
16588    }
16589}
16590
16591impl ::protobuf::Clear for AnalyzerOrgPolicy {
16592    fn clear(&mut self) {
16593        self.attached_resource.clear();
16594        self.applied_resource.clear();
16595        self.rules.clear();
16596        self.inherit_from_parent = false;
16597        self.reset = false;
16598        self.unknown_fields.clear();
16599    }
16600}
16601
16602impl ::std::fmt::Debug for AnalyzerOrgPolicy {
16603    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16604        ::protobuf::text_format::fmt(self, f)
16605    }
16606}
16607
16608impl ::protobuf::reflect::ProtobufValue for AnalyzerOrgPolicy {
16609    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
16610        ::protobuf::reflect::ReflectValueRef::Message(self)
16611    }
16612}
16613
16614#[derive(PartialEq,Clone,Default)]
16615pub struct AnalyzerOrgPolicy_Rule {
16616    // message fields
16617    pub condition: ::protobuf::SingularPtrField<super::expr::Expr>,
16618    // message oneof groups
16619    pub kind: ::std::option::Option<AnalyzerOrgPolicy_Rule_oneof_kind>,
16620    // special fields
16621    pub unknown_fields: ::protobuf::UnknownFields,
16622    pub cached_size: ::protobuf::CachedSize,
16623}
16624
16625impl<'a> ::std::default::Default for &'a AnalyzerOrgPolicy_Rule {
16626    fn default() -> &'a AnalyzerOrgPolicy_Rule {
16627        <AnalyzerOrgPolicy_Rule as ::protobuf::Message>::default_instance()
16628    }
16629}
16630
16631#[derive(Clone,PartialEq,Debug)]
16632pub enum AnalyzerOrgPolicy_Rule_oneof_kind {
16633    values(AnalyzerOrgPolicy_Rule_StringValues),
16634    allow_all(bool),
16635    deny_all(bool),
16636    enforce(bool),
16637}
16638
16639impl AnalyzerOrgPolicy_Rule {
16640    pub fn new() -> AnalyzerOrgPolicy_Rule {
16641        ::std::default::Default::default()
16642    }
16643
16644    // .google.cloud.asset.v1.AnalyzerOrgPolicy.Rule.StringValues values = 3;
16645
16646
16647    pub fn get_values(&self) -> &AnalyzerOrgPolicy_Rule_StringValues {
16648        match self.kind {
16649            ::std::option::Option::Some(AnalyzerOrgPolicy_Rule_oneof_kind::values(ref v)) => v,
16650            _ => <AnalyzerOrgPolicy_Rule_StringValues as ::protobuf::Message>::default_instance(),
16651        }
16652    }
16653    pub fn clear_values(&mut self) {
16654        self.kind = ::std::option::Option::None;
16655    }
16656
16657    pub fn has_values(&self) -> bool {
16658        match self.kind {
16659            ::std::option::Option::Some(AnalyzerOrgPolicy_Rule_oneof_kind::values(..)) => true,
16660            _ => false,
16661        }
16662    }
16663
16664    // Param is passed by value, moved
16665    pub fn set_values(&mut self, v: AnalyzerOrgPolicy_Rule_StringValues) {
16666        self.kind = ::std::option::Option::Some(AnalyzerOrgPolicy_Rule_oneof_kind::values(v))
16667    }
16668
16669    // Mutable pointer to the field.
16670    pub fn mut_values(&mut self) -> &mut AnalyzerOrgPolicy_Rule_StringValues {
16671        if let ::std::option::Option::Some(AnalyzerOrgPolicy_Rule_oneof_kind::values(_)) = self.kind {
16672        } else {
16673            self.kind = ::std::option::Option::Some(AnalyzerOrgPolicy_Rule_oneof_kind::values(AnalyzerOrgPolicy_Rule_StringValues::new()));
16674        }
16675        match self.kind {
16676            ::std::option::Option::Some(AnalyzerOrgPolicy_Rule_oneof_kind::values(ref mut v)) => v,
16677            _ => panic!(),
16678        }
16679    }
16680
16681    // Take field
16682    pub fn take_values(&mut self) -> AnalyzerOrgPolicy_Rule_StringValues {
16683        if self.has_values() {
16684            match self.kind.take() {
16685                ::std::option::Option::Some(AnalyzerOrgPolicy_Rule_oneof_kind::values(v)) => v,
16686                _ => panic!(),
16687            }
16688        } else {
16689            AnalyzerOrgPolicy_Rule_StringValues::new()
16690        }
16691    }
16692
16693    // bool allow_all = 4;
16694
16695
16696    pub fn get_allow_all(&self) -> bool {
16697        match self.kind {
16698            ::std::option::Option::Some(AnalyzerOrgPolicy_Rule_oneof_kind::allow_all(v)) => v,
16699            _ => false,
16700        }
16701    }
16702    pub fn clear_allow_all(&mut self) {
16703        self.kind = ::std::option::Option::None;
16704    }
16705
16706    pub fn has_allow_all(&self) -> bool {
16707        match self.kind {
16708            ::std::option::Option::Some(AnalyzerOrgPolicy_Rule_oneof_kind::allow_all(..)) => true,
16709            _ => false,
16710        }
16711    }
16712
16713    // Param is passed by value, moved
16714    pub fn set_allow_all(&mut self, v: bool) {
16715        self.kind = ::std::option::Option::Some(AnalyzerOrgPolicy_Rule_oneof_kind::allow_all(v))
16716    }
16717
16718    // bool deny_all = 5;
16719
16720
16721    pub fn get_deny_all(&self) -> bool {
16722        match self.kind {
16723            ::std::option::Option::Some(AnalyzerOrgPolicy_Rule_oneof_kind::deny_all(v)) => v,
16724            _ => false,
16725        }
16726    }
16727    pub fn clear_deny_all(&mut self) {
16728        self.kind = ::std::option::Option::None;
16729    }
16730
16731    pub fn has_deny_all(&self) -> bool {
16732        match self.kind {
16733            ::std::option::Option::Some(AnalyzerOrgPolicy_Rule_oneof_kind::deny_all(..)) => true,
16734            _ => false,
16735        }
16736    }
16737
16738    // Param is passed by value, moved
16739    pub fn set_deny_all(&mut self, v: bool) {
16740        self.kind = ::std::option::Option::Some(AnalyzerOrgPolicy_Rule_oneof_kind::deny_all(v))
16741    }
16742
16743    // bool enforce = 6;
16744
16745
16746    pub fn get_enforce(&self) -> bool {
16747        match self.kind {
16748            ::std::option::Option::Some(AnalyzerOrgPolicy_Rule_oneof_kind::enforce(v)) => v,
16749            _ => false,
16750        }
16751    }
16752    pub fn clear_enforce(&mut self) {
16753        self.kind = ::std::option::Option::None;
16754    }
16755
16756    pub fn has_enforce(&self) -> bool {
16757        match self.kind {
16758            ::std::option::Option::Some(AnalyzerOrgPolicy_Rule_oneof_kind::enforce(..)) => true,
16759            _ => false,
16760        }
16761    }
16762
16763    // Param is passed by value, moved
16764    pub fn set_enforce(&mut self, v: bool) {
16765        self.kind = ::std::option::Option::Some(AnalyzerOrgPolicy_Rule_oneof_kind::enforce(v))
16766    }
16767
16768    // .google.type.Expr condition = 7;
16769
16770
16771    pub fn get_condition(&self) -> &super::expr::Expr {
16772        self.condition.as_ref().unwrap_or_else(|| <super::expr::Expr as ::protobuf::Message>::default_instance())
16773    }
16774    pub fn clear_condition(&mut self) {
16775        self.condition.clear();
16776    }
16777
16778    pub fn has_condition(&self) -> bool {
16779        self.condition.is_some()
16780    }
16781
16782    // Param is passed by value, moved
16783    pub fn set_condition(&mut self, v: super::expr::Expr) {
16784        self.condition = ::protobuf::SingularPtrField::some(v);
16785    }
16786
16787    // Mutable pointer to the field.
16788    // If field is not initialized, it is initialized with default value first.
16789    pub fn mut_condition(&mut self) -> &mut super::expr::Expr {
16790        if self.condition.is_none() {
16791            self.condition.set_default();
16792        }
16793        self.condition.as_mut().unwrap()
16794    }
16795
16796    // Take field
16797    pub fn take_condition(&mut self) -> super::expr::Expr {
16798        self.condition.take().unwrap_or_else(|| super::expr::Expr::new())
16799    }
16800}
16801
16802impl ::protobuf::Message for AnalyzerOrgPolicy_Rule {
16803    fn is_initialized(&self) -> bool {
16804        if let Some(AnalyzerOrgPolicy_Rule_oneof_kind::values(ref v)) = self.kind {
16805            if !v.is_initialized() {
16806                return false;
16807            }
16808        }
16809        for v in &self.condition {
16810            if !v.is_initialized() {
16811                return false;
16812            }
16813        };
16814        true
16815    }
16816
16817    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
16818        while !is.eof()? {
16819            let (field_number, wire_type) = is.read_tag_unpack()?;
16820            match field_number {
16821                3 => {
16822                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
16823                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
16824                    }
16825                    self.kind = ::std::option::Option::Some(AnalyzerOrgPolicy_Rule_oneof_kind::values(is.read_message()?));
16826                },
16827                4 => {
16828                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
16829                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
16830                    }
16831                    self.kind = ::std::option::Option::Some(AnalyzerOrgPolicy_Rule_oneof_kind::allow_all(is.read_bool()?));
16832                },
16833                5 => {
16834                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
16835                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
16836                    }
16837                    self.kind = ::std::option::Option::Some(AnalyzerOrgPolicy_Rule_oneof_kind::deny_all(is.read_bool()?));
16838                },
16839                6 => {
16840                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
16841                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
16842                    }
16843                    self.kind = ::std::option::Option::Some(AnalyzerOrgPolicy_Rule_oneof_kind::enforce(is.read_bool()?));
16844                },
16845                7 => {
16846                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.condition)?;
16847                },
16848                _ => {
16849                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
16850                },
16851            };
16852        }
16853        ::std::result::Result::Ok(())
16854    }
16855
16856    // Compute sizes of nested messages
16857    #[allow(unused_variables)]
16858    fn compute_size(&self) -> u32 {
16859        let mut my_size = 0;
16860        if let Some(ref v) = self.condition.as_ref() {
16861            let len = v.compute_size();
16862            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
16863        }
16864        if let ::std::option::Option::Some(ref v) = self.kind {
16865            match v {
16866                &AnalyzerOrgPolicy_Rule_oneof_kind::values(ref v) => {
16867                    let len = v.compute_size();
16868                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
16869                },
16870                &AnalyzerOrgPolicy_Rule_oneof_kind::allow_all(v) => {
16871                    my_size += 2;
16872                },
16873                &AnalyzerOrgPolicy_Rule_oneof_kind::deny_all(v) => {
16874                    my_size += 2;
16875                },
16876                &AnalyzerOrgPolicy_Rule_oneof_kind::enforce(v) => {
16877                    my_size += 2;
16878                },
16879            };
16880        }
16881        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
16882        self.cached_size.set(my_size);
16883        my_size
16884    }
16885
16886    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
16887        if let Some(ref v) = self.condition.as_ref() {
16888            os.write_tag(7, ::protobuf::wire_format::WireTypeLengthDelimited)?;
16889            os.write_raw_varint32(v.get_cached_size())?;
16890            v.write_to_with_cached_sizes(os)?;
16891        }
16892        if let ::std::option::Option::Some(ref v) = self.kind {
16893            match v {
16894                &AnalyzerOrgPolicy_Rule_oneof_kind::values(ref v) => {
16895                    os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
16896                    os.write_raw_varint32(v.get_cached_size())?;
16897                    v.write_to_with_cached_sizes(os)?;
16898                },
16899                &AnalyzerOrgPolicy_Rule_oneof_kind::allow_all(v) => {
16900                    os.write_bool(4, v)?;
16901                },
16902                &AnalyzerOrgPolicy_Rule_oneof_kind::deny_all(v) => {
16903                    os.write_bool(5, v)?;
16904                },
16905                &AnalyzerOrgPolicy_Rule_oneof_kind::enforce(v) => {
16906                    os.write_bool(6, v)?;
16907                },
16908            };
16909        }
16910        os.write_unknown_fields(self.get_unknown_fields())?;
16911        ::std::result::Result::Ok(())
16912    }
16913
16914    fn get_cached_size(&self) -> u32 {
16915        self.cached_size.get()
16916    }
16917
16918    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
16919        &self.unknown_fields
16920    }
16921
16922    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
16923        &mut self.unknown_fields
16924    }
16925
16926    fn as_any(&self) -> &dyn (::std::any::Any) {
16927        self as &dyn (::std::any::Any)
16928    }
16929    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
16930        self as &mut dyn (::std::any::Any)
16931    }
16932    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
16933        self
16934    }
16935
16936    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
16937        Self::descriptor_static()
16938    }
16939
16940    fn new() -> AnalyzerOrgPolicy_Rule {
16941        AnalyzerOrgPolicy_Rule::new()
16942    }
16943
16944    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
16945        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
16946        descriptor.get(|| {
16947            let mut fields = ::std::vec::Vec::new();
16948            fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, AnalyzerOrgPolicy_Rule_StringValues>(
16949                "values",
16950                AnalyzerOrgPolicy_Rule::has_values,
16951                AnalyzerOrgPolicy_Rule::get_values,
16952            ));
16953            fields.push(::protobuf::reflect::accessor::make_singular_bool_accessor::<_>(
16954                "allow_all",
16955                AnalyzerOrgPolicy_Rule::has_allow_all,
16956                AnalyzerOrgPolicy_Rule::get_allow_all,
16957            ));
16958            fields.push(::protobuf::reflect::accessor::make_singular_bool_accessor::<_>(
16959                "deny_all",
16960                AnalyzerOrgPolicy_Rule::has_deny_all,
16961                AnalyzerOrgPolicy_Rule::get_deny_all,
16962            ));
16963            fields.push(::protobuf::reflect::accessor::make_singular_bool_accessor::<_>(
16964                "enforce",
16965                AnalyzerOrgPolicy_Rule::has_enforce,
16966                AnalyzerOrgPolicy_Rule::get_enforce,
16967            ));
16968            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::expr::Expr>>(
16969                "condition",
16970                |m: &AnalyzerOrgPolicy_Rule| { &m.condition },
16971                |m: &mut AnalyzerOrgPolicy_Rule| { &mut m.condition },
16972            ));
16973            ::protobuf::reflect::MessageDescriptor::new_pb_name::<AnalyzerOrgPolicy_Rule>(
16974                "AnalyzerOrgPolicy.Rule",
16975                fields,
16976                file_descriptor_proto()
16977            )
16978        })
16979    }
16980
16981    fn default_instance() -> &'static AnalyzerOrgPolicy_Rule {
16982        static instance: ::protobuf::rt::LazyV2<AnalyzerOrgPolicy_Rule> = ::protobuf::rt::LazyV2::INIT;
16983        instance.get(AnalyzerOrgPolicy_Rule::new)
16984    }
16985}
16986
16987impl ::protobuf::Clear for AnalyzerOrgPolicy_Rule {
16988    fn clear(&mut self) {
16989        self.kind = ::std::option::Option::None;
16990        self.kind = ::std::option::Option::None;
16991        self.kind = ::std::option::Option::None;
16992        self.kind = ::std::option::Option::None;
16993        self.condition.clear();
16994        self.unknown_fields.clear();
16995    }
16996}
16997
16998impl ::std::fmt::Debug for AnalyzerOrgPolicy_Rule {
16999    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17000        ::protobuf::text_format::fmt(self, f)
17001    }
17002}
17003
17004impl ::protobuf::reflect::ProtobufValue for AnalyzerOrgPolicy_Rule {
17005    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
17006        ::protobuf::reflect::ReflectValueRef::Message(self)
17007    }
17008}
17009
17010#[derive(PartialEq,Clone,Default)]
17011pub struct AnalyzerOrgPolicy_Rule_StringValues {
17012    // message fields
17013    pub allowed_values: ::protobuf::RepeatedField<::std::string::String>,
17014    pub denied_values: ::protobuf::RepeatedField<::std::string::String>,
17015    // special fields
17016    pub unknown_fields: ::protobuf::UnknownFields,
17017    pub cached_size: ::protobuf::CachedSize,
17018}
17019
17020impl<'a> ::std::default::Default for &'a AnalyzerOrgPolicy_Rule_StringValues {
17021    fn default() -> &'a AnalyzerOrgPolicy_Rule_StringValues {
17022        <AnalyzerOrgPolicy_Rule_StringValues as ::protobuf::Message>::default_instance()
17023    }
17024}
17025
17026impl AnalyzerOrgPolicy_Rule_StringValues {
17027    pub fn new() -> AnalyzerOrgPolicy_Rule_StringValues {
17028        ::std::default::Default::default()
17029    }
17030
17031    // repeated string allowed_values = 1;
17032
17033
17034    pub fn get_allowed_values(&self) -> &[::std::string::String] {
17035        &self.allowed_values
17036    }
17037    pub fn clear_allowed_values(&mut self) {
17038        self.allowed_values.clear();
17039    }
17040
17041    // Param is passed by value, moved
17042    pub fn set_allowed_values(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
17043        self.allowed_values = v;
17044    }
17045
17046    // Mutable pointer to the field.
17047    pub fn mut_allowed_values(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
17048        &mut self.allowed_values
17049    }
17050
17051    // Take field
17052    pub fn take_allowed_values(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
17053        ::std::mem::replace(&mut self.allowed_values, ::protobuf::RepeatedField::new())
17054    }
17055
17056    // repeated string denied_values = 2;
17057
17058
17059    pub fn get_denied_values(&self) -> &[::std::string::String] {
17060        &self.denied_values
17061    }
17062    pub fn clear_denied_values(&mut self) {
17063        self.denied_values.clear();
17064    }
17065
17066    // Param is passed by value, moved
17067    pub fn set_denied_values(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
17068        self.denied_values = v;
17069    }
17070
17071    // Mutable pointer to the field.
17072    pub fn mut_denied_values(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
17073        &mut self.denied_values
17074    }
17075
17076    // Take field
17077    pub fn take_denied_values(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
17078        ::std::mem::replace(&mut self.denied_values, ::protobuf::RepeatedField::new())
17079    }
17080}
17081
17082impl ::protobuf::Message for AnalyzerOrgPolicy_Rule_StringValues {
17083    fn is_initialized(&self) -> bool {
17084        true
17085    }
17086
17087    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
17088        while !is.eof()? {
17089            let (field_number, wire_type) = is.read_tag_unpack()?;
17090            match field_number {
17091                1 => {
17092                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.allowed_values)?;
17093                },
17094                2 => {
17095                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.denied_values)?;
17096                },
17097                _ => {
17098                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
17099                },
17100            };
17101        }
17102        ::std::result::Result::Ok(())
17103    }
17104
17105    // Compute sizes of nested messages
17106    #[allow(unused_variables)]
17107    fn compute_size(&self) -> u32 {
17108        let mut my_size = 0;
17109        for value in &self.allowed_values {
17110            my_size += ::protobuf::rt::string_size(1, &value);
17111        };
17112        for value in &self.denied_values {
17113            my_size += ::protobuf::rt::string_size(2, &value);
17114        };
17115        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
17116        self.cached_size.set(my_size);
17117        my_size
17118    }
17119
17120    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
17121        for v in &self.allowed_values {
17122            os.write_string(1, &v)?;
17123        };
17124        for v in &self.denied_values {
17125            os.write_string(2, &v)?;
17126        };
17127        os.write_unknown_fields(self.get_unknown_fields())?;
17128        ::std::result::Result::Ok(())
17129    }
17130
17131    fn get_cached_size(&self) -> u32 {
17132        self.cached_size.get()
17133    }
17134
17135    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
17136        &self.unknown_fields
17137    }
17138
17139    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
17140        &mut self.unknown_fields
17141    }
17142
17143    fn as_any(&self) -> &dyn (::std::any::Any) {
17144        self as &dyn (::std::any::Any)
17145    }
17146    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
17147        self as &mut dyn (::std::any::Any)
17148    }
17149    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
17150        self
17151    }
17152
17153    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
17154        Self::descriptor_static()
17155    }
17156
17157    fn new() -> AnalyzerOrgPolicy_Rule_StringValues {
17158        AnalyzerOrgPolicy_Rule_StringValues::new()
17159    }
17160
17161    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
17162        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
17163        descriptor.get(|| {
17164            let mut fields = ::std::vec::Vec::new();
17165            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
17166                "allowed_values",
17167                |m: &AnalyzerOrgPolicy_Rule_StringValues| { &m.allowed_values },
17168                |m: &mut AnalyzerOrgPolicy_Rule_StringValues| { &mut m.allowed_values },
17169            ));
17170            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
17171                "denied_values",
17172                |m: &AnalyzerOrgPolicy_Rule_StringValues| { &m.denied_values },
17173                |m: &mut AnalyzerOrgPolicy_Rule_StringValues| { &mut m.denied_values },
17174            ));
17175            ::protobuf::reflect::MessageDescriptor::new_pb_name::<AnalyzerOrgPolicy_Rule_StringValues>(
17176                "AnalyzerOrgPolicy.Rule.StringValues",
17177                fields,
17178                file_descriptor_proto()
17179            )
17180        })
17181    }
17182
17183    fn default_instance() -> &'static AnalyzerOrgPolicy_Rule_StringValues {
17184        static instance: ::protobuf::rt::LazyV2<AnalyzerOrgPolicy_Rule_StringValues> = ::protobuf::rt::LazyV2::INIT;
17185        instance.get(AnalyzerOrgPolicy_Rule_StringValues::new)
17186    }
17187}
17188
17189impl ::protobuf::Clear for AnalyzerOrgPolicy_Rule_StringValues {
17190    fn clear(&mut self) {
17191        self.allowed_values.clear();
17192        self.denied_values.clear();
17193        self.unknown_fields.clear();
17194    }
17195}
17196
17197impl ::std::fmt::Debug for AnalyzerOrgPolicy_Rule_StringValues {
17198    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17199        ::protobuf::text_format::fmt(self, f)
17200    }
17201}
17202
17203impl ::protobuf::reflect::ProtobufValue for AnalyzerOrgPolicy_Rule_StringValues {
17204    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
17205        ::protobuf::reflect::ReflectValueRef::Message(self)
17206    }
17207}
17208
17209#[derive(PartialEq,Clone,Default)]
17210pub struct AnalyzerOrgPolicyConstraint {
17211    // message oneof groups
17212    pub constraint_definition: ::std::option::Option<AnalyzerOrgPolicyConstraint_oneof_constraint_definition>,
17213    // special fields
17214    pub unknown_fields: ::protobuf::UnknownFields,
17215    pub cached_size: ::protobuf::CachedSize,
17216}
17217
17218impl<'a> ::std::default::Default for &'a AnalyzerOrgPolicyConstraint {
17219    fn default() -> &'a AnalyzerOrgPolicyConstraint {
17220        <AnalyzerOrgPolicyConstraint as ::protobuf::Message>::default_instance()
17221    }
17222}
17223
17224#[derive(Clone,PartialEq,Debug)]
17225pub enum AnalyzerOrgPolicyConstraint_oneof_constraint_definition {
17226    google_defined_constraint(AnalyzerOrgPolicyConstraint_Constraint),
17227    custom_constraint(AnalyzerOrgPolicyConstraint_CustomConstraint),
17228}
17229
17230impl AnalyzerOrgPolicyConstraint {
17231    pub fn new() -> AnalyzerOrgPolicyConstraint {
17232        ::std::default::Default::default()
17233    }
17234
17235    // .google.cloud.asset.v1.AnalyzerOrgPolicyConstraint.Constraint google_defined_constraint = 1;
17236
17237
17238    pub fn get_google_defined_constraint(&self) -> &AnalyzerOrgPolicyConstraint_Constraint {
17239        match self.constraint_definition {
17240            ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_oneof_constraint_definition::google_defined_constraint(ref v)) => v,
17241            _ => <AnalyzerOrgPolicyConstraint_Constraint as ::protobuf::Message>::default_instance(),
17242        }
17243    }
17244    pub fn clear_google_defined_constraint(&mut self) {
17245        self.constraint_definition = ::std::option::Option::None;
17246    }
17247
17248    pub fn has_google_defined_constraint(&self) -> bool {
17249        match self.constraint_definition {
17250            ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_oneof_constraint_definition::google_defined_constraint(..)) => true,
17251            _ => false,
17252        }
17253    }
17254
17255    // Param is passed by value, moved
17256    pub fn set_google_defined_constraint(&mut self, v: AnalyzerOrgPolicyConstraint_Constraint) {
17257        self.constraint_definition = ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_oneof_constraint_definition::google_defined_constraint(v))
17258    }
17259
17260    // Mutable pointer to the field.
17261    pub fn mut_google_defined_constraint(&mut self) -> &mut AnalyzerOrgPolicyConstraint_Constraint {
17262        if let ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_oneof_constraint_definition::google_defined_constraint(_)) = self.constraint_definition {
17263        } else {
17264            self.constraint_definition = ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_oneof_constraint_definition::google_defined_constraint(AnalyzerOrgPolicyConstraint_Constraint::new()));
17265        }
17266        match self.constraint_definition {
17267            ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_oneof_constraint_definition::google_defined_constraint(ref mut v)) => v,
17268            _ => panic!(),
17269        }
17270    }
17271
17272    // Take field
17273    pub fn take_google_defined_constraint(&mut self) -> AnalyzerOrgPolicyConstraint_Constraint {
17274        if self.has_google_defined_constraint() {
17275            match self.constraint_definition.take() {
17276                ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_oneof_constraint_definition::google_defined_constraint(v)) => v,
17277                _ => panic!(),
17278            }
17279        } else {
17280            AnalyzerOrgPolicyConstraint_Constraint::new()
17281        }
17282    }
17283
17284    // .google.cloud.asset.v1.AnalyzerOrgPolicyConstraint.CustomConstraint custom_constraint = 2;
17285
17286
17287    pub fn get_custom_constraint(&self) -> &AnalyzerOrgPolicyConstraint_CustomConstraint {
17288        match self.constraint_definition {
17289            ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_oneof_constraint_definition::custom_constraint(ref v)) => v,
17290            _ => <AnalyzerOrgPolicyConstraint_CustomConstraint as ::protobuf::Message>::default_instance(),
17291        }
17292    }
17293    pub fn clear_custom_constraint(&mut self) {
17294        self.constraint_definition = ::std::option::Option::None;
17295    }
17296
17297    pub fn has_custom_constraint(&self) -> bool {
17298        match self.constraint_definition {
17299            ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_oneof_constraint_definition::custom_constraint(..)) => true,
17300            _ => false,
17301        }
17302    }
17303
17304    // Param is passed by value, moved
17305    pub fn set_custom_constraint(&mut self, v: AnalyzerOrgPolicyConstraint_CustomConstraint) {
17306        self.constraint_definition = ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_oneof_constraint_definition::custom_constraint(v))
17307    }
17308
17309    // Mutable pointer to the field.
17310    pub fn mut_custom_constraint(&mut self) -> &mut AnalyzerOrgPolicyConstraint_CustomConstraint {
17311        if let ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_oneof_constraint_definition::custom_constraint(_)) = self.constraint_definition {
17312        } else {
17313            self.constraint_definition = ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_oneof_constraint_definition::custom_constraint(AnalyzerOrgPolicyConstraint_CustomConstraint::new()));
17314        }
17315        match self.constraint_definition {
17316            ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_oneof_constraint_definition::custom_constraint(ref mut v)) => v,
17317            _ => panic!(),
17318        }
17319    }
17320
17321    // Take field
17322    pub fn take_custom_constraint(&mut self) -> AnalyzerOrgPolicyConstraint_CustomConstraint {
17323        if self.has_custom_constraint() {
17324            match self.constraint_definition.take() {
17325                ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_oneof_constraint_definition::custom_constraint(v)) => v,
17326                _ => panic!(),
17327            }
17328        } else {
17329            AnalyzerOrgPolicyConstraint_CustomConstraint::new()
17330        }
17331    }
17332}
17333
17334impl ::protobuf::Message for AnalyzerOrgPolicyConstraint {
17335    fn is_initialized(&self) -> bool {
17336        if let Some(AnalyzerOrgPolicyConstraint_oneof_constraint_definition::google_defined_constraint(ref v)) = self.constraint_definition {
17337            if !v.is_initialized() {
17338                return false;
17339            }
17340        }
17341        if let Some(AnalyzerOrgPolicyConstraint_oneof_constraint_definition::custom_constraint(ref v)) = self.constraint_definition {
17342            if !v.is_initialized() {
17343                return false;
17344            }
17345        }
17346        true
17347    }
17348
17349    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
17350        while !is.eof()? {
17351            let (field_number, wire_type) = is.read_tag_unpack()?;
17352            match field_number {
17353                1 => {
17354                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
17355                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
17356                    }
17357                    self.constraint_definition = ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_oneof_constraint_definition::google_defined_constraint(is.read_message()?));
17358                },
17359                2 => {
17360                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
17361                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
17362                    }
17363                    self.constraint_definition = ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_oneof_constraint_definition::custom_constraint(is.read_message()?));
17364                },
17365                _ => {
17366                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
17367                },
17368            };
17369        }
17370        ::std::result::Result::Ok(())
17371    }
17372
17373    // Compute sizes of nested messages
17374    #[allow(unused_variables)]
17375    fn compute_size(&self) -> u32 {
17376        let mut my_size = 0;
17377        if let ::std::option::Option::Some(ref v) = self.constraint_definition {
17378            match v {
17379                &AnalyzerOrgPolicyConstraint_oneof_constraint_definition::google_defined_constraint(ref v) => {
17380                    let len = v.compute_size();
17381                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
17382                },
17383                &AnalyzerOrgPolicyConstraint_oneof_constraint_definition::custom_constraint(ref v) => {
17384                    let len = v.compute_size();
17385                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
17386                },
17387            };
17388        }
17389        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
17390        self.cached_size.set(my_size);
17391        my_size
17392    }
17393
17394    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
17395        if let ::std::option::Option::Some(ref v) = self.constraint_definition {
17396            match v {
17397                &AnalyzerOrgPolicyConstraint_oneof_constraint_definition::google_defined_constraint(ref v) => {
17398                    os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
17399                    os.write_raw_varint32(v.get_cached_size())?;
17400                    v.write_to_with_cached_sizes(os)?;
17401                },
17402                &AnalyzerOrgPolicyConstraint_oneof_constraint_definition::custom_constraint(ref v) => {
17403                    os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
17404                    os.write_raw_varint32(v.get_cached_size())?;
17405                    v.write_to_with_cached_sizes(os)?;
17406                },
17407            };
17408        }
17409        os.write_unknown_fields(self.get_unknown_fields())?;
17410        ::std::result::Result::Ok(())
17411    }
17412
17413    fn get_cached_size(&self) -> u32 {
17414        self.cached_size.get()
17415    }
17416
17417    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
17418        &self.unknown_fields
17419    }
17420
17421    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
17422        &mut self.unknown_fields
17423    }
17424
17425    fn as_any(&self) -> &dyn (::std::any::Any) {
17426        self as &dyn (::std::any::Any)
17427    }
17428    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
17429        self as &mut dyn (::std::any::Any)
17430    }
17431    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
17432        self
17433    }
17434
17435    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
17436        Self::descriptor_static()
17437    }
17438
17439    fn new() -> AnalyzerOrgPolicyConstraint {
17440        AnalyzerOrgPolicyConstraint::new()
17441    }
17442
17443    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
17444        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
17445        descriptor.get(|| {
17446            let mut fields = ::std::vec::Vec::new();
17447            fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, AnalyzerOrgPolicyConstraint_Constraint>(
17448                "google_defined_constraint",
17449                AnalyzerOrgPolicyConstraint::has_google_defined_constraint,
17450                AnalyzerOrgPolicyConstraint::get_google_defined_constraint,
17451            ));
17452            fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, AnalyzerOrgPolicyConstraint_CustomConstraint>(
17453                "custom_constraint",
17454                AnalyzerOrgPolicyConstraint::has_custom_constraint,
17455                AnalyzerOrgPolicyConstraint::get_custom_constraint,
17456            ));
17457            ::protobuf::reflect::MessageDescriptor::new_pb_name::<AnalyzerOrgPolicyConstraint>(
17458                "AnalyzerOrgPolicyConstraint",
17459                fields,
17460                file_descriptor_proto()
17461            )
17462        })
17463    }
17464
17465    fn default_instance() -> &'static AnalyzerOrgPolicyConstraint {
17466        static instance: ::protobuf::rt::LazyV2<AnalyzerOrgPolicyConstraint> = ::protobuf::rt::LazyV2::INIT;
17467        instance.get(AnalyzerOrgPolicyConstraint::new)
17468    }
17469}
17470
17471impl ::protobuf::Clear for AnalyzerOrgPolicyConstraint {
17472    fn clear(&mut self) {
17473        self.constraint_definition = ::std::option::Option::None;
17474        self.constraint_definition = ::std::option::Option::None;
17475        self.unknown_fields.clear();
17476    }
17477}
17478
17479impl ::std::fmt::Debug for AnalyzerOrgPolicyConstraint {
17480    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17481        ::protobuf::text_format::fmt(self, f)
17482    }
17483}
17484
17485impl ::protobuf::reflect::ProtobufValue for AnalyzerOrgPolicyConstraint {
17486    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
17487        ::protobuf::reflect::ReflectValueRef::Message(self)
17488    }
17489}
17490
17491#[derive(PartialEq,Clone,Default)]
17492pub struct AnalyzerOrgPolicyConstraint_Constraint {
17493    // message fields
17494    pub name: ::std::string::String,
17495    pub display_name: ::std::string::String,
17496    pub description: ::std::string::String,
17497    pub constraint_default: AnalyzerOrgPolicyConstraint_Constraint_ConstraintDefault,
17498    // message oneof groups
17499    pub constraint_type: ::std::option::Option<AnalyzerOrgPolicyConstraint_Constraint_oneof_constraint_type>,
17500    // special fields
17501    pub unknown_fields: ::protobuf::UnknownFields,
17502    pub cached_size: ::protobuf::CachedSize,
17503}
17504
17505impl<'a> ::std::default::Default for &'a AnalyzerOrgPolicyConstraint_Constraint {
17506    fn default() -> &'a AnalyzerOrgPolicyConstraint_Constraint {
17507        <AnalyzerOrgPolicyConstraint_Constraint as ::protobuf::Message>::default_instance()
17508    }
17509}
17510
17511#[derive(Clone,PartialEq,Debug)]
17512pub enum AnalyzerOrgPolicyConstraint_Constraint_oneof_constraint_type {
17513    list_constraint(AnalyzerOrgPolicyConstraint_Constraint_ListConstraint),
17514    boolean_constraint(AnalyzerOrgPolicyConstraint_Constraint_BooleanConstraint),
17515}
17516
17517impl AnalyzerOrgPolicyConstraint_Constraint {
17518    pub fn new() -> AnalyzerOrgPolicyConstraint_Constraint {
17519        ::std::default::Default::default()
17520    }
17521
17522    // string name = 1;
17523
17524
17525    pub fn get_name(&self) -> &str {
17526        &self.name
17527    }
17528    pub fn clear_name(&mut self) {
17529        self.name.clear();
17530    }
17531
17532    // Param is passed by value, moved
17533    pub fn set_name(&mut self, v: ::std::string::String) {
17534        self.name = v;
17535    }
17536
17537    // Mutable pointer to the field.
17538    // If field is not initialized, it is initialized with default value first.
17539    pub fn mut_name(&mut self) -> &mut ::std::string::String {
17540        &mut self.name
17541    }
17542
17543    // Take field
17544    pub fn take_name(&mut self) -> ::std::string::String {
17545        ::std::mem::replace(&mut self.name, ::std::string::String::new())
17546    }
17547
17548    // string display_name = 2;
17549
17550
17551    pub fn get_display_name(&self) -> &str {
17552        &self.display_name
17553    }
17554    pub fn clear_display_name(&mut self) {
17555        self.display_name.clear();
17556    }
17557
17558    // Param is passed by value, moved
17559    pub fn set_display_name(&mut self, v: ::std::string::String) {
17560        self.display_name = v;
17561    }
17562
17563    // Mutable pointer to the field.
17564    // If field is not initialized, it is initialized with default value first.
17565    pub fn mut_display_name(&mut self) -> &mut ::std::string::String {
17566        &mut self.display_name
17567    }
17568
17569    // Take field
17570    pub fn take_display_name(&mut self) -> ::std::string::String {
17571        ::std::mem::replace(&mut self.display_name, ::std::string::String::new())
17572    }
17573
17574    // string description = 3;
17575
17576
17577    pub fn get_description(&self) -> &str {
17578        &self.description
17579    }
17580    pub fn clear_description(&mut self) {
17581        self.description.clear();
17582    }
17583
17584    // Param is passed by value, moved
17585    pub fn set_description(&mut self, v: ::std::string::String) {
17586        self.description = v;
17587    }
17588
17589    // Mutable pointer to the field.
17590    // If field is not initialized, it is initialized with default value first.
17591    pub fn mut_description(&mut self) -> &mut ::std::string::String {
17592        &mut self.description
17593    }
17594
17595    // Take field
17596    pub fn take_description(&mut self) -> ::std::string::String {
17597        ::std::mem::replace(&mut self.description, ::std::string::String::new())
17598    }
17599
17600    // .google.cloud.asset.v1.AnalyzerOrgPolicyConstraint.Constraint.ConstraintDefault constraint_default = 4;
17601
17602
17603    pub fn get_constraint_default(&self) -> AnalyzerOrgPolicyConstraint_Constraint_ConstraintDefault {
17604        self.constraint_default
17605    }
17606    pub fn clear_constraint_default(&mut self) {
17607        self.constraint_default = AnalyzerOrgPolicyConstraint_Constraint_ConstraintDefault::CONSTRAINT_DEFAULT_UNSPECIFIED;
17608    }
17609
17610    // Param is passed by value, moved
17611    pub fn set_constraint_default(&mut self, v: AnalyzerOrgPolicyConstraint_Constraint_ConstraintDefault) {
17612        self.constraint_default = v;
17613    }
17614
17615    // .google.cloud.asset.v1.AnalyzerOrgPolicyConstraint.Constraint.ListConstraint list_constraint = 5;
17616
17617
17618    pub fn get_list_constraint(&self) -> &AnalyzerOrgPolicyConstraint_Constraint_ListConstraint {
17619        match self.constraint_type {
17620            ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_Constraint_oneof_constraint_type::list_constraint(ref v)) => v,
17621            _ => <AnalyzerOrgPolicyConstraint_Constraint_ListConstraint as ::protobuf::Message>::default_instance(),
17622        }
17623    }
17624    pub fn clear_list_constraint(&mut self) {
17625        self.constraint_type = ::std::option::Option::None;
17626    }
17627
17628    pub fn has_list_constraint(&self) -> bool {
17629        match self.constraint_type {
17630            ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_Constraint_oneof_constraint_type::list_constraint(..)) => true,
17631            _ => false,
17632        }
17633    }
17634
17635    // Param is passed by value, moved
17636    pub fn set_list_constraint(&mut self, v: AnalyzerOrgPolicyConstraint_Constraint_ListConstraint) {
17637        self.constraint_type = ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_Constraint_oneof_constraint_type::list_constraint(v))
17638    }
17639
17640    // Mutable pointer to the field.
17641    pub fn mut_list_constraint(&mut self) -> &mut AnalyzerOrgPolicyConstraint_Constraint_ListConstraint {
17642        if let ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_Constraint_oneof_constraint_type::list_constraint(_)) = self.constraint_type {
17643        } else {
17644            self.constraint_type = ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_Constraint_oneof_constraint_type::list_constraint(AnalyzerOrgPolicyConstraint_Constraint_ListConstraint::new()));
17645        }
17646        match self.constraint_type {
17647            ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_Constraint_oneof_constraint_type::list_constraint(ref mut v)) => v,
17648            _ => panic!(),
17649        }
17650    }
17651
17652    // Take field
17653    pub fn take_list_constraint(&mut self) -> AnalyzerOrgPolicyConstraint_Constraint_ListConstraint {
17654        if self.has_list_constraint() {
17655            match self.constraint_type.take() {
17656                ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_Constraint_oneof_constraint_type::list_constraint(v)) => v,
17657                _ => panic!(),
17658            }
17659        } else {
17660            AnalyzerOrgPolicyConstraint_Constraint_ListConstraint::new()
17661        }
17662    }
17663
17664    // .google.cloud.asset.v1.AnalyzerOrgPolicyConstraint.Constraint.BooleanConstraint boolean_constraint = 6;
17665
17666
17667    pub fn get_boolean_constraint(&self) -> &AnalyzerOrgPolicyConstraint_Constraint_BooleanConstraint {
17668        match self.constraint_type {
17669            ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_Constraint_oneof_constraint_type::boolean_constraint(ref v)) => v,
17670            _ => <AnalyzerOrgPolicyConstraint_Constraint_BooleanConstraint as ::protobuf::Message>::default_instance(),
17671        }
17672    }
17673    pub fn clear_boolean_constraint(&mut self) {
17674        self.constraint_type = ::std::option::Option::None;
17675    }
17676
17677    pub fn has_boolean_constraint(&self) -> bool {
17678        match self.constraint_type {
17679            ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_Constraint_oneof_constraint_type::boolean_constraint(..)) => true,
17680            _ => false,
17681        }
17682    }
17683
17684    // Param is passed by value, moved
17685    pub fn set_boolean_constraint(&mut self, v: AnalyzerOrgPolicyConstraint_Constraint_BooleanConstraint) {
17686        self.constraint_type = ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_Constraint_oneof_constraint_type::boolean_constraint(v))
17687    }
17688
17689    // Mutable pointer to the field.
17690    pub fn mut_boolean_constraint(&mut self) -> &mut AnalyzerOrgPolicyConstraint_Constraint_BooleanConstraint {
17691        if let ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_Constraint_oneof_constraint_type::boolean_constraint(_)) = self.constraint_type {
17692        } else {
17693            self.constraint_type = ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_Constraint_oneof_constraint_type::boolean_constraint(AnalyzerOrgPolicyConstraint_Constraint_BooleanConstraint::new()));
17694        }
17695        match self.constraint_type {
17696            ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_Constraint_oneof_constraint_type::boolean_constraint(ref mut v)) => v,
17697            _ => panic!(),
17698        }
17699    }
17700
17701    // Take field
17702    pub fn take_boolean_constraint(&mut self) -> AnalyzerOrgPolicyConstraint_Constraint_BooleanConstraint {
17703        if self.has_boolean_constraint() {
17704            match self.constraint_type.take() {
17705                ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_Constraint_oneof_constraint_type::boolean_constraint(v)) => v,
17706                _ => panic!(),
17707            }
17708        } else {
17709            AnalyzerOrgPolicyConstraint_Constraint_BooleanConstraint::new()
17710        }
17711    }
17712}
17713
17714impl ::protobuf::Message for AnalyzerOrgPolicyConstraint_Constraint {
17715    fn is_initialized(&self) -> bool {
17716        if let Some(AnalyzerOrgPolicyConstraint_Constraint_oneof_constraint_type::list_constraint(ref v)) = self.constraint_type {
17717            if !v.is_initialized() {
17718                return false;
17719            }
17720        }
17721        if let Some(AnalyzerOrgPolicyConstraint_Constraint_oneof_constraint_type::boolean_constraint(ref v)) = self.constraint_type {
17722            if !v.is_initialized() {
17723                return false;
17724            }
17725        }
17726        true
17727    }
17728
17729    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
17730        while !is.eof()? {
17731            let (field_number, wire_type) = is.read_tag_unpack()?;
17732            match field_number {
17733                1 => {
17734                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
17735                },
17736                2 => {
17737                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.display_name)?;
17738                },
17739                3 => {
17740                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.description)?;
17741                },
17742                4 => {
17743                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.constraint_default, 4, &mut self.unknown_fields)?
17744                },
17745                5 => {
17746                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
17747                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
17748                    }
17749                    self.constraint_type = ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_Constraint_oneof_constraint_type::list_constraint(is.read_message()?));
17750                },
17751                6 => {
17752                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
17753                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
17754                    }
17755                    self.constraint_type = ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_Constraint_oneof_constraint_type::boolean_constraint(is.read_message()?));
17756                },
17757                _ => {
17758                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
17759                },
17760            };
17761        }
17762        ::std::result::Result::Ok(())
17763    }
17764
17765    // Compute sizes of nested messages
17766    #[allow(unused_variables)]
17767    fn compute_size(&self) -> u32 {
17768        let mut my_size = 0;
17769        if !self.name.is_empty() {
17770            my_size += ::protobuf::rt::string_size(1, &self.name);
17771        }
17772        if !self.display_name.is_empty() {
17773            my_size += ::protobuf::rt::string_size(2, &self.display_name);
17774        }
17775        if !self.description.is_empty() {
17776            my_size += ::protobuf::rt::string_size(3, &self.description);
17777        }
17778        if self.constraint_default != AnalyzerOrgPolicyConstraint_Constraint_ConstraintDefault::CONSTRAINT_DEFAULT_UNSPECIFIED {
17779            my_size += ::protobuf::rt::enum_size(4, self.constraint_default);
17780        }
17781        if let ::std::option::Option::Some(ref v) = self.constraint_type {
17782            match v {
17783                &AnalyzerOrgPolicyConstraint_Constraint_oneof_constraint_type::list_constraint(ref v) => {
17784                    let len = v.compute_size();
17785                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
17786                },
17787                &AnalyzerOrgPolicyConstraint_Constraint_oneof_constraint_type::boolean_constraint(ref v) => {
17788                    let len = v.compute_size();
17789                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
17790                },
17791            };
17792        }
17793        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
17794        self.cached_size.set(my_size);
17795        my_size
17796    }
17797
17798    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
17799        if !self.name.is_empty() {
17800            os.write_string(1, &self.name)?;
17801        }
17802        if !self.display_name.is_empty() {
17803            os.write_string(2, &self.display_name)?;
17804        }
17805        if !self.description.is_empty() {
17806            os.write_string(3, &self.description)?;
17807        }
17808        if self.constraint_default != AnalyzerOrgPolicyConstraint_Constraint_ConstraintDefault::CONSTRAINT_DEFAULT_UNSPECIFIED {
17809            os.write_enum(4, ::protobuf::ProtobufEnum::value(&self.constraint_default))?;
17810        }
17811        if let ::std::option::Option::Some(ref v) = self.constraint_type {
17812            match v {
17813                &AnalyzerOrgPolicyConstraint_Constraint_oneof_constraint_type::list_constraint(ref v) => {
17814                    os.write_tag(5, ::protobuf::wire_format::WireTypeLengthDelimited)?;
17815                    os.write_raw_varint32(v.get_cached_size())?;
17816                    v.write_to_with_cached_sizes(os)?;
17817                },
17818                &AnalyzerOrgPolicyConstraint_Constraint_oneof_constraint_type::boolean_constraint(ref v) => {
17819                    os.write_tag(6, ::protobuf::wire_format::WireTypeLengthDelimited)?;
17820                    os.write_raw_varint32(v.get_cached_size())?;
17821                    v.write_to_with_cached_sizes(os)?;
17822                },
17823            };
17824        }
17825        os.write_unknown_fields(self.get_unknown_fields())?;
17826        ::std::result::Result::Ok(())
17827    }
17828
17829    fn get_cached_size(&self) -> u32 {
17830        self.cached_size.get()
17831    }
17832
17833    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
17834        &self.unknown_fields
17835    }
17836
17837    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
17838        &mut self.unknown_fields
17839    }
17840
17841    fn as_any(&self) -> &dyn (::std::any::Any) {
17842        self as &dyn (::std::any::Any)
17843    }
17844    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
17845        self as &mut dyn (::std::any::Any)
17846    }
17847    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
17848        self
17849    }
17850
17851    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
17852        Self::descriptor_static()
17853    }
17854
17855    fn new() -> AnalyzerOrgPolicyConstraint_Constraint {
17856        AnalyzerOrgPolicyConstraint_Constraint::new()
17857    }
17858
17859    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
17860        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
17861        descriptor.get(|| {
17862            let mut fields = ::std::vec::Vec::new();
17863            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
17864                "name",
17865                |m: &AnalyzerOrgPolicyConstraint_Constraint| { &m.name },
17866                |m: &mut AnalyzerOrgPolicyConstraint_Constraint| { &mut m.name },
17867            ));
17868            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
17869                "display_name",
17870                |m: &AnalyzerOrgPolicyConstraint_Constraint| { &m.display_name },
17871                |m: &mut AnalyzerOrgPolicyConstraint_Constraint| { &mut m.display_name },
17872            ));
17873            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
17874                "description",
17875                |m: &AnalyzerOrgPolicyConstraint_Constraint| { &m.description },
17876                |m: &mut AnalyzerOrgPolicyConstraint_Constraint| { &mut m.description },
17877            ));
17878            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<AnalyzerOrgPolicyConstraint_Constraint_ConstraintDefault>>(
17879                "constraint_default",
17880                |m: &AnalyzerOrgPolicyConstraint_Constraint| { &m.constraint_default },
17881                |m: &mut AnalyzerOrgPolicyConstraint_Constraint| { &mut m.constraint_default },
17882            ));
17883            fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, AnalyzerOrgPolicyConstraint_Constraint_ListConstraint>(
17884                "list_constraint",
17885                AnalyzerOrgPolicyConstraint_Constraint::has_list_constraint,
17886                AnalyzerOrgPolicyConstraint_Constraint::get_list_constraint,
17887            ));
17888            fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, AnalyzerOrgPolicyConstraint_Constraint_BooleanConstraint>(
17889                "boolean_constraint",
17890                AnalyzerOrgPolicyConstraint_Constraint::has_boolean_constraint,
17891                AnalyzerOrgPolicyConstraint_Constraint::get_boolean_constraint,
17892            ));
17893            ::protobuf::reflect::MessageDescriptor::new_pb_name::<AnalyzerOrgPolicyConstraint_Constraint>(
17894                "AnalyzerOrgPolicyConstraint.Constraint",
17895                fields,
17896                file_descriptor_proto()
17897            )
17898        })
17899    }
17900
17901    fn default_instance() -> &'static AnalyzerOrgPolicyConstraint_Constraint {
17902        static instance: ::protobuf::rt::LazyV2<AnalyzerOrgPolicyConstraint_Constraint> = ::protobuf::rt::LazyV2::INIT;
17903        instance.get(AnalyzerOrgPolicyConstraint_Constraint::new)
17904    }
17905}
17906
17907impl ::protobuf::Clear for AnalyzerOrgPolicyConstraint_Constraint {
17908    fn clear(&mut self) {
17909        self.name.clear();
17910        self.display_name.clear();
17911        self.description.clear();
17912        self.constraint_default = AnalyzerOrgPolicyConstraint_Constraint_ConstraintDefault::CONSTRAINT_DEFAULT_UNSPECIFIED;
17913        self.constraint_type = ::std::option::Option::None;
17914        self.constraint_type = ::std::option::Option::None;
17915        self.unknown_fields.clear();
17916    }
17917}
17918
17919impl ::std::fmt::Debug for AnalyzerOrgPolicyConstraint_Constraint {
17920    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17921        ::protobuf::text_format::fmt(self, f)
17922    }
17923}
17924
17925impl ::protobuf::reflect::ProtobufValue for AnalyzerOrgPolicyConstraint_Constraint {
17926    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
17927        ::protobuf::reflect::ReflectValueRef::Message(self)
17928    }
17929}
17930
17931#[derive(PartialEq,Clone,Default)]
17932pub struct AnalyzerOrgPolicyConstraint_Constraint_ListConstraint {
17933    // message fields
17934    pub supports_in: bool,
17935    pub supports_under: bool,
17936    // special fields
17937    pub unknown_fields: ::protobuf::UnknownFields,
17938    pub cached_size: ::protobuf::CachedSize,
17939}
17940
17941impl<'a> ::std::default::Default for &'a AnalyzerOrgPolicyConstraint_Constraint_ListConstraint {
17942    fn default() -> &'a AnalyzerOrgPolicyConstraint_Constraint_ListConstraint {
17943        <AnalyzerOrgPolicyConstraint_Constraint_ListConstraint as ::protobuf::Message>::default_instance()
17944    }
17945}
17946
17947impl AnalyzerOrgPolicyConstraint_Constraint_ListConstraint {
17948    pub fn new() -> AnalyzerOrgPolicyConstraint_Constraint_ListConstraint {
17949        ::std::default::Default::default()
17950    }
17951
17952    // bool supports_in = 1;
17953
17954
17955    pub fn get_supports_in(&self) -> bool {
17956        self.supports_in
17957    }
17958    pub fn clear_supports_in(&mut self) {
17959        self.supports_in = false;
17960    }
17961
17962    // Param is passed by value, moved
17963    pub fn set_supports_in(&mut self, v: bool) {
17964        self.supports_in = v;
17965    }
17966
17967    // bool supports_under = 2;
17968
17969
17970    pub fn get_supports_under(&self) -> bool {
17971        self.supports_under
17972    }
17973    pub fn clear_supports_under(&mut self) {
17974        self.supports_under = false;
17975    }
17976
17977    // Param is passed by value, moved
17978    pub fn set_supports_under(&mut self, v: bool) {
17979        self.supports_under = v;
17980    }
17981}
17982
17983impl ::protobuf::Message for AnalyzerOrgPolicyConstraint_Constraint_ListConstraint {
17984    fn is_initialized(&self) -> bool {
17985        true
17986    }
17987
17988    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
17989        while !is.eof()? {
17990            let (field_number, wire_type) = is.read_tag_unpack()?;
17991            match field_number {
17992                1 => {
17993                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
17994                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
17995                    }
17996                    let tmp = is.read_bool()?;
17997                    self.supports_in = tmp;
17998                },
17999                2 => {
18000                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
18001                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
18002                    }
18003                    let tmp = is.read_bool()?;
18004                    self.supports_under = tmp;
18005                },
18006                _ => {
18007                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
18008                },
18009            };
18010        }
18011        ::std::result::Result::Ok(())
18012    }
18013
18014    // Compute sizes of nested messages
18015    #[allow(unused_variables)]
18016    fn compute_size(&self) -> u32 {
18017        let mut my_size = 0;
18018        if self.supports_in != false {
18019            my_size += 2;
18020        }
18021        if self.supports_under != false {
18022            my_size += 2;
18023        }
18024        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
18025        self.cached_size.set(my_size);
18026        my_size
18027    }
18028
18029    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
18030        if self.supports_in != false {
18031            os.write_bool(1, self.supports_in)?;
18032        }
18033        if self.supports_under != false {
18034            os.write_bool(2, self.supports_under)?;
18035        }
18036        os.write_unknown_fields(self.get_unknown_fields())?;
18037        ::std::result::Result::Ok(())
18038    }
18039
18040    fn get_cached_size(&self) -> u32 {
18041        self.cached_size.get()
18042    }
18043
18044    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
18045        &self.unknown_fields
18046    }
18047
18048    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
18049        &mut self.unknown_fields
18050    }
18051
18052    fn as_any(&self) -> &dyn (::std::any::Any) {
18053        self as &dyn (::std::any::Any)
18054    }
18055    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
18056        self as &mut dyn (::std::any::Any)
18057    }
18058    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
18059        self
18060    }
18061
18062    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
18063        Self::descriptor_static()
18064    }
18065
18066    fn new() -> AnalyzerOrgPolicyConstraint_Constraint_ListConstraint {
18067        AnalyzerOrgPolicyConstraint_Constraint_ListConstraint::new()
18068    }
18069
18070    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
18071        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
18072        descriptor.get(|| {
18073            let mut fields = ::std::vec::Vec::new();
18074            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
18075                "supports_in",
18076                |m: &AnalyzerOrgPolicyConstraint_Constraint_ListConstraint| { &m.supports_in },
18077                |m: &mut AnalyzerOrgPolicyConstraint_Constraint_ListConstraint| { &mut m.supports_in },
18078            ));
18079            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
18080                "supports_under",
18081                |m: &AnalyzerOrgPolicyConstraint_Constraint_ListConstraint| { &m.supports_under },
18082                |m: &mut AnalyzerOrgPolicyConstraint_Constraint_ListConstraint| { &mut m.supports_under },
18083            ));
18084            ::protobuf::reflect::MessageDescriptor::new_pb_name::<AnalyzerOrgPolicyConstraint_Constraint_ListConstraint>(
18085                "AnalyzerOrgPolicyConstraint.Constraint.ListConstraint",
18086                fields,
18087                file_descriptor_proto()
18088            )
18089        })
18090    }
18091
18092    fn default_instance() -> &'static AnalyzerOrgPolicyConstraint_Constraint_ListConstraint {
18093        static instance: ::protobuf::rt::LazyV2<AnalyzerOrgPolicyConstraint_Constraint_ListConstraint> = ::protobuf::rt::LazyV2::INIT;
18094        instance.get(AnalyzerOrgPolicyConstraint_Constraint_ListConstraint::new)
18095    }
18096}
18097
18098impl ::protobuf::Clear for AnalyzerOrgPolicyConstraint_Constraint_ListConstraint {
18099    fn clear(&mut self) {
18100        self.supports_in = false;
18101        self.supports_under = false;
18102        self.unknown_fields.clear();
18103    }
18104}
18105
18106impl ::std::fmt::Debug for AnalyzerOrgPolicyConstraint_Constraint_ListConstraint {
18107    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18108        ::protobuf::text_format::fmt(self, f)
18109    }
18110}
18111
18112impl ::protobuf::reflect::ProtobufValue for AnalyzerOrgPolicyConstraint_Constraint_ListConstraint {
18113    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
18114        ::protobuf::reflect::ReflectValueRef::Message(self)
18115    }
18116}
18117
18118#[derive(PartialEq,Clone,Default)]
18119pub struct AnalyzerOrgPolicyConstraint_Constraint_BooleanConstraint {
18120    // special fields
18121    pub unknown_fields: ::protobuf::UnknownFields,
18122    pub cached_size: ::protobuf::CachedSize,
18123}
18124
18125impl<'a> ::std::default::Default for &'a AnalyzerOrgPolicyConstraint_Constraint_BooleanConstraint {
18126    fn default() -> &'a AnalyzerOrgPolicyConstraint_Constraint_BooleanConstraint {
18127        <AnalyzerOrgPolicyConstraint_Constraint_BooleanConstraint as ::protobuf::Message>::default_instance()
18128    }
18129}
18130
18131impl AnalyzerOrgPolicyConstraint_Constraint_BooleanConstraint {
18132    pub fn new() -> AnalyzerOrgPolicyConstraint_Constraint_BooleanConstraint {
18133        ::std::default::Default::default()
18134    }
18135}
18136
18137impl ::protobuf::Message for AnalyzerOrgPolicyConstraint_Constraint_BooleanConstraint {
18138    fn is_initialized(&self) -> bool {
18139        true
18140    }
18141
18142    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
18143        while !is.eof()? {
18144            let (field_number, wire_type) = is.read_tag_unpack()?;
18145            match field_number {
18146                _ => {
18147                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
18148                },
18149            };
18150        }
18151        ::std::result::Result::Ok(())
18152    }
18153
18154    // Compute sizes of nested messages
18155    #[allow(unused_variables)]
18156    fn compute_size(&self) -> u32 {
18157        let mut my_size = 0;
18158        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
18159        self.cached_size.set(my_size);
18160        my_size
18161    }
18162
18163    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
18164        os.write_unknown_fields(self.get_unknown_fields())?;
18165        ::std::result::Result::Ok(())
18166    }
18167
18168    fn get_cached_size(&self) -> u32 {
18169        self.cached_size.get()
18170    }
18171
18172    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
18173        &self.unknown_fields
18174    }
18175
18176    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
18177        &mut self.unknown_fields
18178    }
18179
18180    fn as_any(&self) -> &dyn (::std::any::Any) {
18181        self as &dyn (::std::any::Any)
18182    }
18183    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
18184        self as &mut dyn (::std::any::Any)
18185    }
18186    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
18187        self
18188    }
18189
18190    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
18191        Self::descriptor_static()
18192    }
18193
18194    fn new() -> AnalyzerOrgPolicyConstraint_Constraint_BooleanConstraint {
18195        AnalyzerOrgPolicyConstraint_Constraint_BooleanConstraint::new()
18196    }
18197
18198    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
18199        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
18200        descriptor.get(|| {
18201            let fields = ::std::vec::Vec::new();
18202            ::protobuf::reflect::MessageDescriptor::new_pb_name::<AnalyzerOrgPolicyConstraint_Constraint_BooleanConstraint>(
18203                "AnalyzerOrgPolicyConstraint.Constraint.BooleanConstraint",
18204                fields,
18205                file_descriptor_proto()
18206            )
18207        })
18208    }
18209
18210    fn default_instance() -> &'static AnalyzerOrgPolicyConstraint_Constraint_BooleanConstraint {
18211        static instance: ::protobuf::rt::LazyV2<AnalyzerOrgPolicyConstraint_Constraint_BooleanConstraint> = ::protobuf::rt::LazyV2::INIT;
18212        instance.get(AnalyzerOrgPolicyConstraint_Constraint_BooleanConstraint::new)
18213    }
18214}
18215
18216impl ::protobuf::Clear for AnalyzerOrgPolicyConstraint_Constraint_BooleanConstraint {
18217    fn clear(&mut self) {
18218        self.unknown_fields.clear();
18219    }
18220}
18221
18222impl ::std::fmt::Debug for AnalyzerOrgPolicyConstraint_Constraint_BooleanConstraint {
18223    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18224        ::protobuf::text_format::fmt(self, f)
18225    }
18226}
18227
18228impl ::protobuf::reflect::ProtobufValue for AnalyzerOrgPolicyConstraint_Constraint_BooleanConstraint {
18229    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
18230        ::protobuf::reflect::ReflectValueRef::Message(self)
18231    }
18232}
18233
18234#[derive(Clone,PartialEq,Eq,Debug,Hash)]
18235pub enum AnalyzerOrgPolicyConstraint_Constraint_ConstraintDefault {
18236    CONSTRAINT_DEFAULT_UNSPECIFIED = 0,
18237    ALLOW = 1,
18238    DENY = 2,
18239}
18240
18241impl ::protobuf::ProtobufEnum for AnalyzerOrgPolicyConstraint_Constraint_ConstraintDefault {
18242    fn value(&self) -> i32 {
18243        *self as i32
18244    }
18245
18246    fn from_i32(value: i32) -> ::std::option::Option<AnalyzerOrgPolicyConstraint_Constraint_ConstraintDefault> {
18247        match value {
18248            0 => ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_Constraint_ConstraintDefault::CONSTRAINT_DEFAULT_UNSPECIFIED),
18249            1 => ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_Constraint_ConstraintDefault::ALLOW),
18250            2 => ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_Constraint_ConstraintDefault::DENY),
18251            _ => ::std::option::Option::None
18252        }
18253    }
18254
18255    fn values() -> &'static [Self] {
18256        static values: &'static [AnalyzerOrgPolicyConstraint_Constraint_ConstraintDefault] = &[
18257            AnalyzerOrgPolicyConstraint_Constraint_ConstraintDefault::CONSTRAINT_DEFAULT_UNSPECIFIED,
18258            AnalyzerOrgPolicyConstraint_Constraint_ConstraintDefault::ALLOW,
18259            AnalyzerOrgPolicyConstraint_Constraint_ConstraintDefault::DENY,
18260        ];
18261        values
18262    }
18263
18264    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
18265        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
18266        descriptor.get(|| {
18267            ::protobuf::reflect::EnumDescriptor::new_pb_name::<AnalyzerOrgPolicyConstraint_Constraint_ConstraintDefault>("AnalyzerOrgPolicyConstraint.Constraint.ConstraintDefault", file_descriptor_proto())
18268        })
18269    }
18270}
18271
18272impl ::std::marker::Copy for AnalyzerOrgPolicyConstraint_Constraint_ConstraintDefault {
18273}
18274
18275impl ::std::default::Default for AnalyzerOrgPolicyConstraint_Constraint_ConstraintDefault {
18276    fn default() -> Self {
18277        AnalyzerOrgPolicyConstraint_Constraint_ConstraintDefault::CONSTRAINT_DEFAULT_UNSPECIFIED
18278    }
18279}
18280
18281impl ::protobuf::reflect::ProtobufValue for AnalyzerOrgPolicyConstraint_Constraint_ConstraintDefault {
18282    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
18283        ::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
18284    }
18285}
18286
18287#[derive(PartialEq,Clone,Default)]
18288pub struct AnalyzerOrgPolicyConstraint_CustomConstraint {
18289    // message fields
18290    pub name: ::std::string::String,
18291    pub resource_types: ::protobuf::RepeatedField<::std::string::String>,
18292    pub method_types: ::std::vec::Vec<AnalyzerOrgPolicyConstraint_CustomConstraint_MethodType>,
18293    pub condition: ::std::string::String,
18294    pub action_type: AnalyzerOrgPolicyConstraint_CustomConstraint_ActionType,
18295    pub display_name: ::std::string::String,
18296    pub description: ::std::string::String,
18297    // special fields
18298    pub unknown_fields: ::protobuf::UnknownFields,
18299    pub cached_size: ::protobuf::CachedSize,
18300}
18301
18302impl<'a> ::std::default::Default for &'a AnalyzerOrgPolicyConstraint_CustomConstraint {
18303    fn default() -> &'a AnalyzerOrgPolicyConstraint_CustomConstraint {
18304        <AnalyzerOrgPolicyConstraint_CustomConstraint as ::protobuf::Message>::default_instance()
18305    }
18306}
18307
18308impl AnalyzerOrgPolicyConstraint_CustomConstraint {
18309    pub fn new() -> AnalyzerOrgPolicyConstraint_CustomConstraint {
18310        ::std::default::Default::default()
18311    }
18312
18313    // string name = 1;
18314
18315
18316    pub fn get_name(&self) -> &str {
18317        &self.name
18318    }
18319    pub fn clear_name(&mut self) {
18320        self.name.clear();
18321    }
18322
18323    // Param is passed by value, moved
18324    pub fn set_name(&mut self, v: ::std::string::String) {
18325        self.name = v;
18326    }
18327
18328    // Mutable pointer to the field.
18329    // If field is not initialized, it is initialized with default value first.
18330    pub fn mut_name(&mut self) -> &mut ::std::string::String {
18331        &mut self.name
18332    }
18333
18334    // Take field
18335    pub fn take_name(&mut self) -> ::std::string::String {
18336        ::std::mem::replace(&mut self.name, ::std::string::String::new())
18337    }
18338
18339    // repeated string resource_types = 2;
18340
18341
18342    pub fn get_resource_types(&self) -> &[::std::string::String] {
18343        &self.resource_types
18344    }
18345    pub fn clear_resource_types(&mut self) {
18346        self.resource_types.clear();
18347    }
18348
18349    // Param is passed by value, moved
18350    pub fn set_resource_types(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
18351        self.resource_types = v;
18352    }
18353
18354    // Mutable pointer to the field.
18355    pub fn mut_resource_types(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
18356        &mut self.resource_types
18357    }
18358
18359    // Take field
18360    pub fn take_resource_types(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
18361        ::std::mem::replace(&mut self.resource_types, ::protobuf::RepeatedField::new())
18362    }
18363
18364    // repeated .google.cloud.asset.v1.AnalyzerOrgPolicyConstraint.CustomConstraint.MethodType method_types = 3;
18365
18366
18367    pub fn get_method_types(&self) -> &[AnalyzerOrgPolicyConstraint_CustomConstraint_MethodType] {
18368        &self.method_types
18369    }
18370    pub fn clear_method_types(&mut self) {
18371        self.method_types.clear();
18372    }
18373
18374    // Param is passed by value, moved
18375    pub fn set_method_types(&mut self, v: ::std::vec::Vec<AnalyzerOrgPolicyConstraint_CustomConstraint_MethodType>) {
18376        self.method_types = v;
18377    }
18378
18379    // Mutable pointer to the field.
18380    pub fn mut_method_types(&mut self) -> &mut ::std::vec::Vec<AnalyzerOrgPolicyConstraint_CustomConstraint_MethodType> {
18381        &mut self.method_types
18382    }
18383
18384    // Take field
18385    pub fn take_method_types(&mut self) -> ::std::vec::Vec<AnalyzerOrgPolicyConstraint_CustomConstraint_MethodType> {
18386        ::std::mem::replace(&mut self.method_types, ::std::vec::Vec::new())
18387    }
18388
18389    // string condition = 4;
18390
18391
18392    pub fn get_condition(&self) -> &str {
18393        &self.condition
18394    }
18395    pub fn clear_condition(&mut self) {
18396        self.condition.clear();
18397    }
18398
18399    // Param is passed by value, moved
18400    pub fn set_condition(&mut self, v: ::std::string::String) {
18401        self.condition = v;
18402    }
18403
18404    // Mutable pointer to the field.
18405    // If field is not initialized, it is initialized with default value first.
18406    pub fn mut_condition(&mut self) -> &mut ::std::string::String {
18407        &mut self.condition
18408    }
18409
18410    // Take field
18411    pub fn take_condition(&mut self) -> ::std::string::String {
18412        ::std::mem::replace(&mut self.condition, ::std::string::String::new())
18413    }
18414
18415    // .google.cloud.asset.v1.AnalyzerOrgPolicyConstraint.CustomConstraint.ActionType action_type = 5;
18416
18417
18418    pub fn get_action_type(&self) -> AnalyzerOrgPolicyConstraint_CustomConstraint_ActionType {
18419        self.action_type
18420    }
18421    pub fn clear_action_type(&mut self) {
18422        self.action_type = AnalyzerOrgPolicyConstraint_CustomConstraint_ActionType::ACTION_TYPE_UNSPECIFIED;
18423    }
18424
18425    // Param is passed by value, moved
18426    pub fn set_action_type(&mut self, v: AnalyzerOrgPolicyConstraint_CustomConstraint_ActionType) {
18427        self.action_type = v;
18428    }
18429
18430    // string display_name = 6;
18431
18432
18433    pub fn get_display_name(&self) -> &str {
18434        &self.display_name
18435    }
18436    pub fn clear_display_name(&mut self) {
18437        self.display_name.clear();
18438    }
18439
18440    // Param is passed by value, moved
18441    pub fn set_display_name(&mut self, v: ::std::string::String) {
18442        self.display_name = v;
18443    }
18444
18445    // Mutable pointer to the field.
18446    // If field is not initialized, it is initialized with default value first.
18447    pub fn mut_display_name(&mut self) -> &mut ::std::string::String {
18448        &mut self.display_name
18449    }
18450
18451    // Take field
18452    pub fn take_display_name(&mut self) -> ::std::string::String {
18453        ::std::mem::replace(&mut self.display_name, ::std::string::String::new())
18454    }
18455
18456    // string description = 7;
18457
18458
18459    pub fn get_description(&self) -> &str {
18460        &self.description
18461    }
18462    pub fn clear_description(&mut self) {
18463        self.description.clear();
18464    }
18465
18466    // Param is passed by value, moved
18467    pub fn set_description(&mut self, v: ::std::string::String) {
18468        self.description = v;
18469    }
18470
18471    // Mutable pointer to the field.
18472    // If field is not initialized, it is initialized with default value first.
18473    pub fn mut_description(&mut self) -> &mut ::std::string::String {
18474        &mut self.description
18475    }
18476
18477    // Take field
18478    pub fn take_description(&mut self) -> ::std::string::String {
18479        ::std::mem::replace(&mut self.description, ::std::string::String::new())
18480    }
18481}
18482
18483impl ::protobuf::Message for AnalyzerOrgPolicyConstraint_CustomConstraint {
18484    fn is_initialized(&self) -> bool {
18485        true
18486    }
18487
18488    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
18489        while !is.eof()? {
18490            let (field_number, wire_type) = is.read_tag_unpack()?;
18491            match field_number {
18492                1 => {
18493                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
18494                },
18495                2 => {
18496                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.resource_types)?;
18497                },
18498                3 => {
18499                    ::protobuf::rt::read_repeated_enum_with_unknown_fields_into(wire_type, is, &mut self.method_types, 3, &mut self.unknown_fields)?
18500                },
18501                4 => {
18502                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.condition)?;
18503                },
18504                5 => {
18505                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.action_type, 5, &mut self.unknown_fields)?
18506                },
18507                6 => {
18508                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.display_name)?;
18509                },
18510                7 => {
18511                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.description)?;
18512                },
18513                _ => {
18514                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
18515                },
18516            };
18517        }
18518        ::std::result::Result::Ok(())
18519    }
18520
18521    // Compute sizes of nested messages
18522    #[allow(unused_variables)]
18523    fn compute_size(&self) -> u32 {
18524        let mut my_size = 0;
18525        if !self.name.is_empty() {
18526            my_size += ::protobuf::rt::string_size(1, &self.name);
18527        }
18528        for value in &self.resource_types {
18529            my_size += ::protobuf::rt::string_size(2, &value);
18530        };
18531        for value in &self.method_types {
18532            my_size += ::protobuf::rt::enum_size(3, *value);
18533        };
18534        if !self.condition.is_empty() {
18535            my_size += ::protobuf::rt::string_size(4, &self.condition);
18536        }
18537        if self.action_type != AnalyzerOrgPolicyConstraint_CustomConstraint_ActionType::ACTION_TYPE_UNSPECIFIED {
18538            my_size += ::protobuf::rt::enum_size(5, self.action_type);
18539        }
18540        if !self.display_name.is_empty() {
18541            my_size += ::protobuf::rt::string_size(6, &self.display_name);
18542        }
18543        if !self.description.is_empty() {
18544            my_size += ::protobuf::rt::string_size(7, &self.description);
18545        }
18546        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
18547        self.cached_size.set(my_size);
18548        my_size
18549    }
18550
18551    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
18552        if !self.name.is_empty() {
18553            os.write_string(1, &self.name)?;
18554        }
18555        for v in &self.resource_types {
18556            os.write_string(2, &v)?;
18557        };
18558        for v in &self.method_types {
18559            os.write_enum(3, ::protobuf::ProtobufEnum::value(v))?;
18560        };
18561        if !self.condition.is_empty() {
18562            os.write_string(4, &self.condition)?;
18563        }
18564        if self.action_type != AnalyzerOrgPolicyConstraint_CustomConstraint_ActionType::ACTION_TYPE_UNSPECIFIED {
18565            os.write_enum(5, ::protobuf::ProtobufEnum::value(&self.action_type))?;
18566        }
18567        if !self.display_name.is_empty() {
18568            os.write_string(6, &self.display_name)?;
18569        }
18570        if !self.description.is_empty() {
18571            os.write_string(7, &self.description)?;
18572        }
18573        os.write_unknown_fields(self.get_unknown_fields())?;
18574        ::std::result::Result::Ok(())
18575    }
18576
18577    fn get_cached_size(&self) -> u32 {
18578        self.cached_size.get()
18579    }
18580
18581    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
18582        &self.unknown_fields
18583    }
18584
18585    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
18586        &mut self.unknown_fields
18587    }
18588
18589    fn as_any(&self) -> &dyn (::std::any::Any) {
18590        self as &dyn (::std::any::Any)
18591    }
18592    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
18593        self as &mut dyn (::std::any::Any)
18594    }
18595    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
18596        self
18597    }
18598
18599    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
18600        Self::descriptor_static()
18601    }
18602
18603    fn new() -> AnalyzerOrgPolicyConstraint_CustomConstraint {
18604        AnalyzerOrgPolicyConstraint_CustomConstraint::new()
18605    }
18606
18607    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
18608        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
18609        descriptor.get(|| {
18610            let mut fields = ::std::vec::Vec::new();
18611            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
18612                "name",
18613                |m: &AnalyzerOrgPolicyConstraint_CustomConstraint| { &m.name },
18614                |m: &mut AnalyzerOrgPolicyConstraint_CustomConstraint| { &mut m.name },
18615            ));
18616            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
18617                "resource_types",
18618                |m: &AnalyzerOrgPolicyConstraint_CustomConstraint| { &m.resource_types },
18619                |m: &mut AnalyzerOrgPolicyConstraint_CustomConstraint| { &mut m.resource_types },
18620            ));
18621            fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeEnum<AnalyzerOrgPolicyConstraint_CustomConstraint_MethodType>>(
18622                "method_types",
18623                |m: &AnalyzerOrgPolicyConstraint_CustomConstraint| { &m.method_types },
18624                |m: &mut AnalyzerOrgPolicyConstraint_CustomConstraint| { &mut m.method_types },
18625            ));
18626            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
18627                "condition",
18628                |m: &AnalyzerOrgPolicyConstraint_CustomConstraint| { &m.condition },
18629                |m: &mut AnalyzerOrgPolicyConstraint_CustomConstraint| { &mut m.condition },
18630            ));
18631            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<AnalyzerOrgPolicyConstraint_CustomConstraint_ActionType>>(
18632                "action_type",
18633                |m: &AnalyzerOrgPolicyConstraint_CustomConstraint| { &m.action_type },
18634                |m: &mut AnalyzerOrgPolicyConstraint_CustomConstraint| { &mut m.action_type },
18635            ));
18636            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
18637                "display_name",
18638                |m: &AnalyzerOrgPolicyConstraint_CustomConstraint| { &m.display_name },
18639                |m: &mut AnalyzerOrgPolicyConstraint_CustomConstraint| { &mut m.display_name },
18640            ));
18641            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
18642                "description",
18643                |m: &AnalyzerOrgPolicyConstraint_CustomConstraint| { &m.description },
18644                |m: &mut AnalyzerOrgPolicyConstraint_CustomConstraint| { &mut m.description },
18645            ));
18646            ::protobuf::reflect::MessageDescriptor::new_pb_name::<AnalyzerOrgPolicyConstraint_CustomConstraint>(
18647                "AnalyzerOrgPolicyConstraint.CustomConstraint",
18648                fields,
18649                file_descriptor_proto()
18650            )
18651        })
18652    }
18653
18654    fn default_instance() -> &'static AnalyzerOrgPolicyConstraint_CustomConstraint {
18655        static instance: ::protobuf::rt::LazyV2<AnalyzerOrgPolicyConstraint_CustomConstraint> = ::protobuf::rt::LazyV2::INIT;
18656        instance.get(AnalyzerOrgPolicyConstraint_CustomConstraint::new)
18657    }
18658}
18659
18660impl ::protobuf::Clear for AnalyzerOrgPolicyConstraint_CustomConstraint {
18661    fn clear(&mut self) {
18662        self.name.clear();
18663        self.resource_types.clear();
18664        self.method_types.clear();
18665        self.condition.clear();
18666        self.action_type = AnalyzerOrgPolicyConstraint_CustomConstraint_ActionType::ACTION_TYPE_UNSPECIFIED;
18667        self.display_name.clear();
18668        self.description.clear();
18669        self.unknown_fields.clear();
18670    }
18671}
18672
18673impl ::std::fmt::Debug for AnalyzerOrgPolicyConstraint_CustomConstraint {
18674    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18675        ::protobuf::text_format::fmt(self, f)
18676    }
18677}
18678
18679impl ::protobuf::reflect::ProtobufValue for AnalyzerOrgPolicyConstraint_CustomConstraint {
18680    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
18681        ::protobuf::reflect::ReflectValueRef::Message(self)
18682    }
18683}
18684
18685#[derive(Clone,PartialEq,Eq,Debug,Hash)]
18686pub enum AnalyzerOrgPolicyConstraint_CustomConstraint_MethodType {
18687    METHOD_TYPE_UNSPECIFIED = 0,
18688    CREATE = 1,
18689    UPDATE = 2,
18690    DELETE = 3,
18691}
18692
18693impl ::protobuf::ProtobufEnum for AnalyzerOrgPolicyConstraint_CustomConstraint_MethodType {
18694    fn value(&self) -> i32 {
18695        *self as i32
18696    }
18697
18698    fn from_i32(value: i32) -> ::std::option::Option<AnalyzerOrgPolicyConstraint_CustomConstraint_MethodType> {
18699        match value {
18700            0 => ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_CustomConstraint_MethodType::METHOD_TYPE_UNSPECIFIED),
18701            1 => ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_CustomConstraint_MethodType::CREATE),
18702            2 => ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_CustomConstraint_MethodType::UPDATE),
18703            3 => ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_CustomConstraint_MethodType::DELETE),
18704            _ => ::std::option::Option::None
18705        }
18706    }
18707
18708    fn values() -> &'static [Self] {
18709        static values: &'static [AnalyzerOrgPolicyConstraint_CustomConstraint_MethodType] = &[
18710            AnalyzerOrgPolicyConstraint_CustomConstraint_MethodType::METHOD_TYPE_UNSPECIFIED,
18711            AnalyzerOrgPolicyConstraint_CustomConstraint_MethodType::CREATE,
18712            AnalyzerOrgPolicyConstraint_CustomConstraint_MethodType::UPDATE,
18713            AnalyzerOrgPolicyConstraint_CustomConstraint_MethodType::DELETE,
18714        ];
18715        values
18716    }
18717
18718    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
18719        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
18720        descriptor.get(|| {
18721            ::protobuf::reflect::EnumDescriptor::new_pb_name::<AnalyzerOrgPolicyConstraint_CustomConstraint_MethodType>("AnalyzerOrgPolicyConstraint.CustomConstraint.MethodType", file_descriptor_proto())
18722        })
18723    }
18724}
18725
18726impl ::std::marker::Copy for AnalyzerOrgPolicyConstraint_CustomConstraint_MethodType {
18727}
18728
18729impl ::std::default::Default for AnalyzerOrgPolicyConstraint_CustomConstraint_MethodType {
18730    fn default() -> Self {
18731        AnalyzerOrgPolicyConstraint_CustomConstraint_MethodType::METHOD_TYPE_UNSPECIFIED
18732    }
18733}
18734
18735impl ::protobuf::reflect::ProtobufValue for AnalyzerOrgPolicyConstraint_CustomConstraint_MethodType {
18736    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
18737        ::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
18738    }
18739}
18740
18741#[derive(Clone,PartialEq,Eq,Debug,Hash)]
18742pub enum AnalyzerOrgPolicyConstraint_CustomConstraint_ActionType {
18743    ACTION_TYPE_UNSPECIFIED = 0,
18744    ALLOW = 1,
18745    DENY = 2,
18746}
18747
18748impl ::protobuf::ProtobufEnum for AnalyzerOrgPolicyConstraint_CustomConstraint_ActionType {
18749    fn value(&self) -> i32 {
18750        *self as i32
18751    }
18752
18753    fn from_i32(value: i32) -> ::std::option::Option<AnalyzerOrgPolicyConstraint_CustomConstraint_ActionType> {
18754        match value {
18755            0 => ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_CustomConstraint_ActionType::ACTION_TYPE_UNSPECIFIED),
18756            1 => ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_CustomConstraint_ActionType::ALLOW),
18757            2 => ::std::option::Option::Some(AnalyzerOrgPolicyConstraint_CustomConstraint_ActionType::DENY),
18758            _ => ::std::option::Option::None
18759        }
18760    }
18761
18762    fn values() -> &'static [Self] {
18763        static values: &'static [AnalyzerOrgPolicyConstraint_CustomConstraint_ActionType] = &[
18764            AnalyzerOrgPolicyConstraint_CustomConstraint_ActionType::ACTION_TYPE_UNSPECIFIED,
18765            AnalyzerOrgPolicyConstraint_CustomConstraint_ActionType::ALLOW,
18766            AnalyzerOrgPolicyConstraint_CustomConstraint_ActionType::DENY,
18767        ];
18768        values
18769    }
18770
18771    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
18772        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
18773        descriptor.get(|| {
18774            ::protobuf::reflect::EnumDescriptor::new_pb_name::<AnalyzerOrgPolicyConstraint_CustomConstraint_ActionType>("AnalyzerOrgPolicyConstraint.CustomConstraint.ActionType", file_descriptor_proto())
18775        })
18776    }
18777}
18778
18779impl ::std::marker::Copy for AnalyzerOrgPolicyConstraint_CustomConstraint_ActionType {
18780}
18781
18782impl ::std::default::Default for AnalyzerOrgPolicyConstraint_CustomConstraint_ActionType {
18783    fn default() -> Self {
18784        AnalyzerOrgPolicyConstraint_CustomConstraint_ActionType::ACTION_TYPE_UNSPECIFIED
18785    }
18786}
18787
18788impl ::protobuf::reflect::ProtobufValue for AnalyzerOrgPolicyConstraint_CustomConstraint_ActionType {
18789    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
18790        ::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
18791    }
18792}
18793
18794#[derive(PartialEq,Clone,Default)]
18795pub struct AnalyzeOrgPoliciesRequest {
18796    // message fields
18797    pub scope: ::std::string::String,
18798    pub constraint: ::std::string::String,
18799    pub filter: ::std::string::String,
18800    pub page_token: ::std::string::String,
18801    // message oneof groups
18802    pub _page_size: ::std::option::Option<AnalyzeOrgPoliciesRequest_oneof__page_size>,
18803    // special fields
18804    pub unknown_fields: ::protobuf::UnknownFields,
18805    pub cached_size: ::protobuf::CachedSize,
18806}
18807
18808impl<'a> ::std::default::Default for &'a AnalyzeOrgPoliciesRequest {
18809    fn default() -> &'a AnalyzeOrgPoliciesRequest {
18810        <AnalyzeOrgPoliciesRequest as ::protobuf::Message>::default_instance()
18811    }
18812}
18813
18814#[derive(Clone,PartialEq,Debug)]
18815pub enum AnalyzeOrgPoliciesRequest_oneof__page_size {
18816    page_size(i32),
18817}
18818
18819impl AnalyzeOrgPoliciesRequest {
18820    pub fn new() -> AnalyzeOrgPoliciesRequest {
18821        ::std::default::Default::default()
18822    }
18823
18824    // string scope = 1;
18825
18826
18827    pub fn get_scope(&self) -> &str {
18828        &self.scope
18829    }
18830    pub fn clear_scope(&mut self) {
18831        self.scope.clear();
18832    }
18833
18834    // Param is passed by value, moved
18835    pub fn set_scope(&mut self, v: ::std::string::String) {
18836        self.scope = v;
18837    }
18838
18839    // Mutable pointer to the field.
18840    // If field is not initialized, it is initialized with default value first.
18841    pub fn mut_scope(&mut self) -> &mut ::std::string::String {
18842        &mut self.scope
18843    }
18844
18845    // Take field
18846    pub fn take_scope(&mut self) -> ::std::string::String {
18847        ::std::mem::replace(&mut self.scope, ::std::string::String::new())
18848    }
18849
18850    // string constraint = 2;
18851
18852
18853    pub fn get_constraint(&self) -> &str {
18854        &self.constraint
18855    }
18856    pub fn clear_constraint(&mut self) {
18857        self.constraint.clear();
18858    }
18859
18860    // Param is passed by value, moved
18861    pub fn set_constraint(&mut self, v: ::std::string::String) {
18862        self.constraint = v;
18863    }
18864
18865    // Mutable pointer to the field.
18866    // If field is not initialized, it is initialized with default value first.
18867    pub fn mut_constraint(&mut self) -> &mut ::std::string::String {
18868        &mut self.constraint
18869    }
18870
18871    // Take field
18872    pub fn take_constraint(&mut self) -> ::std::string::String {
18873        ::std::mem::replace(&mut self.constraint, ::std::string::String::new())
18874    }
18875
18876    // string filter = 3;
18877
18878
18879    pub fn get_filter(&self) -> &str {
18880        &self.filter
18881    }
18882    pub fn clear_filter(&mut self) {
18883        self.filter.clear();
18884    }
18885
18886    // Param is passed by value, moved
18887    pub fn set_filter(&mut self, v: ::std::string::String) {
18888        self.filter = v;
18889    }
18890
18891    // Mutable pointer to the field.
18892    // If field is not initialized, it is initialized with default value first.
18893    pub fn mut_filter(&mut self) -> &mut ::std::string::String {
18894        &mut self.filter
18895    }
18896
18897    // Take field
18898    pub fn take_filter(&mut self) -> ::std::string::String {
18899        ::std::mem::replace(&mut self.filter, ::std::string::String::new())
18900    }
18901
18902    // int32 page_size = 4;
18903
18904
18905    pub fn get_page_size(&self) -> i32 {
18906        match self._page_size {
18907            ::std::option::Option::Some(AnalyzeOrgPoliciesRequest_oneof__page_size::page_size(v)) => v,
18908            _ => 0,
18909        }
18910    }
18911    pub fn clear_page_size(&mut self) {
18912        self._page_size = ::std::option::Option::None;
18913    }
18914
18915    pub fn has_page_size(&self) -> bool {
18916        match self._page_size {
18917            ::std::option::Option::Some(AnalyzeOrgPoliciesRequest_oneof__page_size::page_size(..)) => true,
18918            _ => false,
18919        }
18920    }
18921
18922    // Param is passed by value, moved
18923    pub fn set_page_size(&mut self, v: i32) {
18924        self._page_size = ::std::option::Option::Some(AnalyzeOrgPoliciesRequest_oneof__page_size::page_size(v))
18925    }
18926
18927    // string page_token = 5;
18928
18929
18930    pub fn get_page_token(&self) -> &str {
18931        &self.page_token
18932    }
18933    pub fn clear_page_token(&mut self) {
18934        self.page_token.clear();
18935    }
18936
18937    // Param is passed by value, moved
18938    pub fn set_page_token(&mut self, v: ::std::string::String) {
18939        self.page_token = v;
18940    }
18941
18942    // Mutable pointer to the field.
18943    // If field is not initialized, it is initialized with default value first.
18944    pub fn mut_page_token(&mut self) -> &mut ::std::string::String {
18945        &mut self.page_token
18946    }
18947
18948    // Take field
18949    pub fn take_page_token(&mut self) -> ::std::string::String {
18950        ::std::mem::replace(&mut self.page_token, ::std::string::String::new())
18951    }
18952}
18953
18954impl ::protobuf::Message for AnalyzeOrgPoliciesRequest {
18955    fn is_initialized(&self) -> bool {
18956        true
18957    }
18958
18959    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
18960        while !is.eof()? {
18961            let (field_number, wire_type) = is.read_tag_unpack()?;
18962            match field_number {
18963                1 => {
18964                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.scope)?;
18965                },
18966                2 => {
18967                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.constraint)?;
18968                },
18969                3 => {
18970                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.filter)?;
18971                },
18972                4 => {
18973                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
18974                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
18975                    }
18976                    self._page_size = ::std::option::Option::Some(AnalyzeOrgPoliciesRequest_oneof__page_size::page_size(is.read_int32()?));
18977                },
18978                5 => {
18979                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.page_token)?;
18980                },
18981                _ => {
18982                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
18983                },
18984            };
18985        }
18986        ::std::result::Result::Ok(())
18987    }
18988
18989    // Compute sizes of nested messages
18990    #[allow(unused_variables)]
18991    fn compute_size(&self) -> u32 {
18992        let mut my_size = 0;
18993        if !self.scope.is_empty() {
18994            my_size += ::protobuf::rt::string_size(1, &self.scope);
18995        }
18996        if !self.constraint.is_empty() {
18997            my_size += ::protobuf::rt::string_size(2, &self.constraint);
18998        }
18999        if !self.filter.is_empty() {
19000            my_size += ::protobuf::rt::string_size(3, &self.filter);
19001        }
19002        if !self.page_token.is_empty() {
19003            my_size += ::protobuf::rt::string_size(5, &self.page_token);
19004        }
19005        if let ::std::option::Option::Some(ref v) = self._page_size {
19006            match v {
19007                &AnalyzeOrgPoliciesRequest_oneof__page_size::page_size(v) => {
19008                    my_size += ::protobuf::rt::value_size(4, v, ::protobuf::wire_format::WireTypeVarint);
19009                },
19010            };
19011        }
19012        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
19013        self.cached_size.set(my_size);
19014        my_size
19015    }
19016
19017    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
19018        if !self.scope.is_empty() {
19019            os.write_string(1, &self.scope)?;
19020        }
19021        if !self.constraint.is_empty() {
19022            os.write_string(2, &self.constraint)?;
19023        }
19024        if !self.filter.is_empty() {
19025            os.write_string(3, &self.filter)?;
19026        }
19027        if !self.page_token.is_empty() {
19028            os.write_string(5, &self.page_token)?;
19029        }
19030        if let ::std::option::Option::Some(ref v) = self._page_size {
19031            match v {
19032                &AnalyzeOrgPoliciesRequest_oneof__page_size::page_size(v) => {
19033                    os.write_int32(4, v)?;
19034                },
19035            };
19036        }
19037        os.write_unknown_fields(self.get_unknown_fields())?;
19038        ::std::result::Result::Ok(())
19039    }
19040
19041    fn get_cached_size(&self) -> u32 {
19042        self.cached_size.get()
19043    }
19044
19045    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
19046        &self.unknown_fields
19047    }
19048
19049    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
19050        &mut self.unknown_fields
19051    }
19052
19053    fn as_any(&self) -> &dyn (::std::any::Any) {
19054        self as &dyn (::std::any::Any)
19055    }
19056    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
19057        self as &mut dyn (::std::any::Any)
19058    }
19059    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
19060        self
19061    }
19062
19063    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
19064        Self::descriptor_static()
19065    }
19066
19067    fn new() -> AnalyzeOrgPoliciesRequest {
19068        AnalyzeOrgPoliciesRequest::new()
19069    }
19070
19071    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
19072        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
19073        descriptor.get(|| {
19074            let mut fields = ::std::vec::Vec::new();
19075            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
19076                "scope",
19077                |m: &AnalyzeOrgPoliciesRequest| { &m.scope },
19078                |m: &mut AnalyzeOrgPoliciesRequest| { &mut m.scope },
19079            ));
19080            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
19081                "constraint",
19082                |m: &AnalyzeOrgPoliciesRequest| { &m.constraint },
19083                |m: &mut AnalyzeOrgPoliciesRequest| { &mut m.constraint },
19084            ));
19085            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
19086                "filter",
19087                |m: &AnalyzeOrgPoliciesRequest| { &m.filter },
19088                |m: &mut AnalyzeOrgPoliciesRequest| { &mut m.filter },
19089            ));
19090            fields.push(::protobuf::reflect::accessor::make_singular_i32_accessor::<_>(
19091                "page_size",
19092                AnalyzeOrgPoliciesRequest::has_page_size,
19093                AnalyzeOrgPoliciesRequest::get_page_size,
19094            ));
19095            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
19096                "page_token",
19097                |m: &AnalyzeOrgPoliciesRequest| { &m.page_token },
19098                |m: &mut AnalyzeOrgPoliciesRequest| { &mut m.page_token },
19099            ));
19100            ::protobuf::reflect::MessageDescriptor::new_pb_name::<AnalyzeOrgPoliciesRequest>(
19101                "AnalyzeOrgPoliciesRequest",
19102                fields,
19103                file_descriptor_proto()
19104            )
19105        })
19106    }
19107
19108    fn default_instance() -> &'static AnalyzeOrgPoliciesRequest {
19109        static instance: ::protobuf::rt::LazyV2<AnalyzeOrgPoliciesRequest> = ::protobuf::rt::LazyV2::INIT;
19110        instance.get(AnalyzeOrgPoliciesRequest::new)
19111    }
19112}
19113
19114impl ::protobuf::Clear for AnalyzeOrgPoliciesRequest {
19115    fn clear(&mut self) {
19116        self.scope.clear();
19117        self.constraint.clear();
19118        self.filter.clear();
19119        self._page_size = ::std::option::Option::None;
19120        self.page_token.clear();
19121        self.unknown_fields.clear();
19122    }
19123}
19124
19125impl ::std::fmt::Debug for AnalyzeOrgPoliciesRequest {
19126    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19127        ::protobuf::text_format::fmt(self, f)
19128    }
19129}
19130
19131impl ::protobuf::reflect::ProtobufValue for AnalyzeOrgPoliciesRequest {
19132    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
19133        ::protobuf::reflect::ReflectValueRef::Message(self)
19134    }
19135}
19136
19137#[derive(PartialEq,Clone,Default)]
19138pub struct AnalyzeOrgPoliciesResponse {
19139    // message fields
19140    pub org_policy_results: ::protobuf::RepeatedField<AnalyzeOrgPoliciesResponse_OrgPolicyResult>,
19141    pub constraint: ::protobuf::SingularPtrField<AnalyzerOrgPolicyConstraint>,
19142    pub next_page_token: ::std::string::String,
19143    // special fields
19144    pub unknown_fields: ::protobuf::UnknownFields,
19145    pub cached_size: ::protobuf::CachedSize,
19146}
19147
19148impl<'a> ::std::default::Default for &'a AnalyzeOrgPoliciesResponse {
19149    fn default() -> &'a AnalyzeOrgPoliciesResponse {
19150        <AnalyzeOrgPoliciesResponse as ::protobuf::Message>::default_instance()
19151    }
19152}
19153
19154impl AnalyzeOrgPoliciesResponse {
19155    pub fn new() -> AnalyzeOrgPoliciesResponse {
19156        ::std::default::Default::default()
19157    }
19158
19159    // repeated .google.cloud.asset.v1.AnalyzeOrgPoliciesResponse.OrgPolicyResult org_policy_results = 1;
19160
19161
19162    pub fn get_org_policy_results(&self) -> &[AnalyzeOrgPoliciesResponse_OrgPolicyResult] {
19163        &self.org_policy_results
19164    }
19165    pub fn clear_org_policy_results(&mut self) {
19166        self.org_policy_results.clear();
19167    }
19168
19169    // Param is passed by value, moved
19170    pub fn set_org_policy_results(&mut self, v: ::protobuf::RepeatedField<AnalyzeOrgPoliciesResponse_OrgPolicyResult>) {
19171        self.org_policy_results = v;
19172    }
19173
19174    // Mutable pointer to the field.
19175    pub fn mut_org_policy_results(&mut self) -> &mut ::protobuf::RepeatedField<AnalyzeOrgPoliciesResponse_OrgPolicyResult> {
19176        &mut self.org_policy_results
19177    }
19178
19179    // Take field
19180    pub fn take_org_policy_results(&mut self) -> ::protobuf::RepeatedField<AnalyzeOrgPoliciesResponse_OrgPolicyResult> {
19181        ::std::mem::replace(&mut self.org_policy_results, ::protobuf::RepeatedField::new())
19182    }
19183
19184    // .google.cloud.asset.v1.AnalyzerOrgPolicyConstraint constraint = 2;
19185
19186
19187    pub fn get_constraint(&self) -> &AnalyzerOrgPolicyConstraint {
19188        self.constraint.as_ref().unwrap_or_else(|| <AnalyzerOrgPolicyConstraint as ::protobuf::Message>::default_instance())
19189    }
19190    pub fn clear_constraint(&mut self) {
19191        self.constraint.clear();
19192    }
19193
19194    pub fn has_constraint(&self) -> bool {
19195        self.constraint.is_some()
19196    }
19197
19198    // Param is passed by value, moved
19199    pub fn set_constraint(&mut self, v: AnalyzerOrgPolicyConstraint) {
19200        self.constraint = ::protobuf::SingularPtrField::some(v);
19201    }
19202
19203    // Mutable pointer to the field.
19204    // If field is not initialized, it is initialized with default value first.
19205    pub fn mut_constraint(&mut self) -> &mut AnalyzerOrgPolicyConstraint {
19206        if self.constraint.is_none() {
19207            self.constraint.set_default();
19208        }
19209        self.constraint.as_mut().unwrap()
19210    }
19211
19212    // Take field
19213    pub fn take_constraint(&mut self) -> AnalyzerOrgPolicyConstraint {
19214        self.constraint.take().unwrap_or_else(|| AnalyzerOrgPolicyConstraint::new())
19215    }
19216
19217    // string next_page_token = 3;
19218
19219
19220    pub fn get_next_page_token(&self) -> &str {
19221        &self.next_page_token
19222    }
19223    pub fn clear_next_page_token(&mut self) {
19224        self.next_page_token.clear();
19225    }
19226
19227    // Param is passed by value, moved
19228    pub fn set_next_page_token(&mut self, v: ::std::string::String) {
19229        self.next_page_token = v;
19230    }
19231
19232    // Mutable pointer to the field.
19233    // If field is not initialized, it is initialized with default value first.
19234    pub fn mut_next_page_token(&mut self) -> &mut ::std::string::String {
19235        &mut self.next_page_token
19236    }
19237
19238    // Take field
19239    pub fn take_next_page_token(&mut self) -> ::std::string::String {
19240        ::std::mem::replace(&mut self.next_page_token, ::std::string::String::new())
19241    }
19242}
19243
19244impl ::protobuf::Message for AnalyzeOrgPoliciesResponse {
19245    fn is_initialized(&self) -> bool {
19246        for v in &self.org_policy_results {
19247            if !v.is_initialized() {
19248                return false;
19249            }
19250        };
19251        for v in &self.constraint {
19252            if !v.is_initialized() {
19253                return false;
19254            }
19255        };
19256        true
19257    }
19258
19259    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
19260        while !is.eof()? {
19261            let (field_number, wire_type) = is.read_tag_unpack()?;
19262            match field_number {
19263                1 => {
19264                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.org_policy_results)?;
19265                },
19266                2 => {
19267                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.constraint)?;
19268                },
19269                3 => {
19270                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.next_page_token)?;
19271                },
19272                _ => {
19273                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
19274                },
19275            };
19276        }
19277        ::std::result::Result::Ok(())
19278    }
19279
19280    // Compute sizes of nested messages
19281    #[allow(unused_variables)]
19282    fn compute_size(&self) -> u32 {
19283        let mut my_size = 0;
19284        for value in &self.org_policy_results {
19285            let len = value.compute_size();
19286            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
19287        };
19288        if let Some(ref v) = self.constraint.as_ref() {
19289            let len = v.compute_size();
19290            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
19291        }
19292        if !self.next_page_token.is_empty() {
19293            my_size += ::protobuf::rt::string_size(3, &self.next_page_token);
19294        }
19295        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
19296        self.cached_size.set(my_size);
19297        my_size
19298    }
19299
19300    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
19301        for v in &self.org_policy_results {
19302            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
19303            os.write_raw_varint32(v.get_cached_size())?;
19304            v.write_to_with_cached_sizes(os)?;
19305        };
19306        if let Some(ref v) = self.constraint.as_ref() {
19307            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
19308            os.write_raw_varint32(v.get_cached_size())?;
19309            v.write_to_with_cached_sizes(os)?;
19310        }
19311        if !self.next_page_token.is_empty() {
19312            os.write_string(3, &self.next_page_token)?;
19313        }
19314        os.write_unknown_fields(self.get_unknown_fields())?;
19315        ::std::result::Result::Ok(())
19316    }
19317
19318    fn get_cached_size(&self) -> u32 {
19319        self.cached_size.get()
19320    }
19321
19322    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
19323        &self.unknown_fields
19324    }
19325
19326    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
19327        &mut self.unknown_fields
19328    }
19329
19330    fn as_any(&self) -> &dyn (::std::any::Any) {
19331        self as &dyn (::std::any::Any)
19332    }
19333    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
19334        self as &mut dyn (::std::any::Any)
19335    }
19336    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
19337        self
19338    }
19339
19340    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
19341        Self::descriptor_static()
19342    }
19343
19344    fn new() -> AnalyzeOrgPoliciesResponse {
19345        AnalyzeOrgPoliciesResponse::new()
19346    }
19347
19348    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
19349        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
19350        descriptor.get(|| {
19351            let mut fields = ::std::vec::Vec::new();
19352            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<AnalyzeOrgPoliciesResponse_OrgPolicyResult>>(
19353                "org_policy_results",
19354                |m: &AnalyzeOrgPoliciesResponse| { &m.org_policy_results },
19355                |m: &mut AnalyzeOrgPoliciesResponse| { &mut m.org_policy_results },
19356            ));
19357            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<AnalyzerOrgPolicyConstraint>>(
19358                "constraint",
19359                |m: &AnalyzeOrgPoliciesResponse| { &m.constraint },
19360                |m: &mut AnalyzeOrgPoliciesResponse| { &mut m.constraint },
19361            ));
19362            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
19363                "next_page_token",
19364                |m: &AnalyzeOrgPoliciesResponse| { &m.next_page_token },
19365                |m: &mut AnalyzeOrgPoliciesResponse| { &mut m.next_page_token },
19366            ));
19367            ::protobuf::reflect::MessageDescriptor::new_pb_name::<AnalyzeOrgPoliciesResponse>(
19368                "AnalyzeOrgPoliciesResponse",
19369                fields,
19370                file_descriptor_proto()
19371            )
19372        })
19373    }
19374
19375    fn default_instance() -> &'static AnalyzeOrgPoliciesResponse {
19376        static instance: ::protobuf::rt::LazyV2<AnalyzeOrgPoliciesResponse> = ::protobuf::rt::LazyV2::INIT;
19377        instance.get(AnalyzeOrgPoliciesResponse::new)
19378    }
19379}
19380
19381impl ::protobuf::Clear for AnalyzeOrgPoliciesResponse {
19382    fn clear(&mut self) {
19383        self.org_policy_results.clear();
19384        self.constraint.clear();
19385        self.next_page_token.clear();
19386        self.unknown_fields.clear();
19387    }
19388}
19389
19390impl ::std::fmt::Debug for AnalyzeOrgPoliciesResponse {
19391    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19392        ::protobuf::text_format::fmt(self, f)
19393    }
19394}
19395
19396impl ::protobuf::reflect::ProtobufValue for AnalyzeOrgPoliciesResponse {
19397    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
19398        ::protobuf::reflect::ReflectValueRef::Message(self)
19399    }
19400}
19401
19402#[derive(PartialEq,Clone,Default)]
19403pub struct AnalyzeOrgPoliciesResponse_OrgPolicyResult {
19404    // message fields
19405    pub consolidated_policy: ::protobuf::SingularPtrField<AnalyzerOrgPolicy>,
19406    pub policy_bundle: ::protobuf::RepeatedField<AnalyzerOrgPolicy>,
19407    // special fields
19408    pub unknown_fields: ::protobuf::UnknownFields,
19409    pub cached_size: ::protobuf::CachedSize,
19410}
19411
19412impl<'a> ::std::default::Default for &'a AnalyzeOrgPoliciesResponse_OrgPolicyResult {
19413    fn default() -> &'a AnalyzeOrgPoliciesResponse_OrgPolicyResult {
19414        <AnalyzeOrgPoliciesResponse_OrgPolicyResult as ::protobuf::Message>::default_instance()
19415    }
19416}
19417
19418impl AnalyzeOrgPoliciesResponse_OrgPolicyResult {
19419    pub fn new() -> AnalyzeOrgPoliciesResponse_OrgPolicyResult {
19420        ::std::default::Default::default()
19421    }
19422
19423    // .google.cloud.asset.v1.AnalyzerOrgPolicy consolidated_policy = 1;
19424
19425
19426    pub fn get_consolidated_policy(&self) -> &AnalyzerOrgPolicy {
19427        self.consolidated_policy.as_ref().unwrap_or_else(|| <AnalyzerOrgPolicy as ::protobuf::Message>::default_instance())
19428    }
19429    pub fn clear_consolidated_policy(&mut self) {
19430        self.consolidated_policy.clear();
19431    }
19432
19433    pub fn has_consolidated_policy(&self) -> bool {
19434        self.consolidated_policy.is_some()
19435    }
19436
19437    // Param is passed by value, moved
19438    pub fn set_consolidated_policy(&mut self, v: AnalyzerOrgPolicy) {
19439        self.consolidated_policy = ::protobuf::SingularPtrField::some(v);
19440    }
19441
19442    // Mutable pointer to the field.
19443    // If field is not initialized, it is initialized with default value first.
19444    pub fn mut_consolidated_policy(&mut self) -> &mut AnalyzerOrgPolicy {
19445        if self.consolidated_policy.is_none() {
19446            self.consolidated_policy.set_default();
19447        }
19448        self.consolidated_policy.as_mut().unwrap()
19449    }
19450
19451    // Take field
19452    pub fn take_consolidated_policy(&mut self) -> AnalyzerOrgPolicy {
19453        self.consolidated_policy.take().unwrap_or_else(|| AnalyzerOrgPolicy::new())
19454    }
19455
19456    // repeated .google.cloud.asset.v1.AnalyzerOrgPolicy policy_bundle = 2;
19457
19458
19459    pub fn get_policy_bundle(&self) -> &[AnalyzerOrgPolicy] {
19460        &self.policy_bundle
19461    }
19462    pub fn clear_policy_bundle(&mut self) {
19463        self.policy_bundle.clear();
19464    }
19465
19466    // Param is passed by value, moved
19467    pub fn set_policy_bundle(&mut self, v: ::protobuf::RepeatedField<AnalyzerOrgPolicy>) {
19468        self.policy_bundle = v;
19469    }
19470
19471    // Mutable pointer to the field.
19472    pub fn mut_policy_bundle(&mut self) -> &mut ::protobuf::RepeatedField<AnalyzerOrgPolicy> {
19473        &mut self.policy_bundle
19474    }
19475
19476    // Take field
19477    pub fn take_policy_bundle(&mut self) -> ::protobuf::RepeatedField<AnalyzerOrgPolicy> {
19478        ::std::mem::replace(&mut self.policy_bundle, ::protobuf::RepeatedField::new())
19479    }
19480}
19481
19482impl ::protobuf::Message for AnalyzeOrgPoliciesResponse_OrgPolicyResult {
19483    fn is_initialized(&self) -> bool {
19484        for v in &self.consolidated_policy {
19485            if !v.is_initialized() {
19486                return false;
19487            }
19488        };
19489        for v in &self.policy_bundle {
19490            if !v.is_initialized() {
19491                return false;
19492            }
19493        };
19494        true
19495    }
19496
19497    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
19498        while !is.eof()? {
19499            let (field_number, wire_type) = is.read_tag_unpack()?;
19500            match field_number {
19501                1 => {
19502                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.consolidated_policy)?;
19503                },
19504                2 => {
19505                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.policy_bundle)?;
19506                },
19507                _ => {
19508                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
19509                },
19510            };
19511        }
19512        ::std::result::Result::Ok(())
19513    }
19514
19515    // Compute sizes of nested messages
19516    #[allow(unused_variables)]
19517    fn compute_size(&self) -> u32 {
19518        let mut my_size = 0;
19519        if let Some(ref v) = self.consolidated_policy.as_ref() {
19520            let len = v.compute_size();
19521            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
19522        }
19523        for value in &self.policy_bundle {
19524            let len = value.compute_size();
19525            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
19526        };
19527        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
19528        self.cached_size.set(my_size);
19529        my_size
19530    }
19531
19532    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
19533        if let Some(ref v) = self.consolidated_policy.as_ref() {
19534            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
19535            os.write_raw_varint32(v.get_cached_size())?;
19536            v.write_to_with_cached_sizes(os)?;
19537        }
19538        for v in &self.policy_bundle {
19539            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
19540            os.write_raw_varint32(v.get_cached_size())?;
19541            v.write_to_with_cached_sizes(os)?;
19542        };
19543        os.write_unknown_fields(self.get_unknown_fields())?;
19544        ::std::result::Result::Ok(())
19545    }
19546
19547    fn get_cached_size(&self) -> u32 {
19548        self.cached_size.get()
19549    }
19550
19551    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
19552        &self.unknown_fields
19553    }
19554
19555    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
19556        &mut self.unknown_fields
19557    }
19558
19559    fn as_any(&self) -> &dyn (::std::any::Any) {
19560        self as &dyn (::std::any::Any)
19561    }
19562    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
19563        self as &mut dyn (::std::any::Any)
19564    }
19565    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
19566        self
19567    }
19568
19569    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
19570        Self::descriptor_static()
19571    }
19572
19573    fn new() -> AnalyzeOrgPoliciesResponse_OrgPolicyResult {
19574        AnalyzeOrgPoliciesResponse_OrgPolicyResult::new()
19575    }
19576
19577    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
19578        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
19579        descriptor.get(|| {
19580            let mut fields = ::std::vec::Vec::new();
19581            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<AnalyzerOrgPolicy>>(
19582                "consolidated_policy",
19583                |m: &AnalyzeOrgPoliciesResponse_OrgPolicyResult| { &m.consolidated_policy },
19584                |m: &mut AnalyzeOrgPoliciesResponse_OrgPolicyResult| { &mut m.consolidated_policy },
19585            ));
19586            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<AnalyzerOrgPolicy>>(
19587                "policy_bundle",
19588                |m: &AnalyzeOrgPoliciesResponse_OrgPolicyResult| { &m.policy_bundle },
19589                |m: &mut AnalyzeOrgPoliciesResponse_OrgPolicyResult| { &mut m.policy_bundle },
19590            ));
19591            ::protobuf::reflect::MessageDescriptor::new_pb_name::<AnalyzeOrgPoliciesResponse_OrgPolicyResult>(
19592                "AnalyzeOrgPoliciesResponse.OrgPolicyResult",
19593                fields,
19594                file_descriptor_proto()
19595            )
19596        })
19597    }
19598
19599    fn default_instance() -> &'static AnalyzeOrgPoliciesResponse_OrgPolicyResult {
19600        static instance: ::protobuf::rt::LazyV2<AnalyzeOrgPoliciesResponse_OrgPolicyResult> = ::protobuf::rt::LazyV2::INIT;
19601        instance.get(AnalyzeOrgPoliciesResponse_OrgPolicyResult::new)
19602    }
19603}
19604
19605impl ::protobuf::Clear for AnalyzeOrgPoliciesResponse_OrgPolicyResult {
19606    fn clear(&mut self) {
19607        self.consolidated_policy.clear();
19608        self.policy_bundle.clear();
19609        self.unknown_fields.clear();
19610    }
19611}
19612
19613impl ::std::fmt::Debug for AnalyzeOrgPoliciesResponse_OrgPolicyResult {
19614    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19615        ::protobuf::text_format::fmt(self, f)
19616    }
19617}
19618
19619impl ::protobuf::reflect::ProtobufValue for AnalyzeOrgPoliciesResponse_OrgPolicyResult {
19620    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
19621        ::protobuf::reflect::ReflectValueRef::Message(self)
19622    }
19623}
19624
19625#[derive(PartialEq,Clone,Default)]
19626pub struct AnalyzeOrgPolicyGovernedContainersRequest {
19627    // message fields
19628    pub scope: ::std::string::String,
19629    pub constraint: ::std::string::String,
19630    pub filter: ::std::string::String,
19631    pub page_token: ::std::string::String,
19632    // message oneof groups
19633    pub _page_size: ::std::option::Option<AnalyzeOrgPolicyGovernedContainersRequest_oneof__page_size>,
19634    // special fields
19635    pub unknown_fields: ::protobuf::UnknownFields,
19636    pub cached_size: ::protobuf::CachedSize,
19637}
19638
19639impl<'a> ::std::default::Default for &'a AnalyzeOrgPolicyGovernedContainersRequest {
19640    fn default() -> &'a AnalyzeOrgPolicyGovernedContainersRequest {
19641        <AnalyzeOrgPolicyGovernedContainersRequest as ::protobuf::Message>::default_instance()
19642    }
19643}
19644
19645#[derive(Clone,PartialEq,Debug)]
19646pub enum AnalyzeOrgPolicyGovernedContainersRequest_oneof__page_size {
19647    page_size(i32),
19648}
19649
19650impl AnalyzeOrgPolicyGovernedContainersRequest {
19651    pub fn new() -> AnalyzeOrgPolicyGovernedContainersRequest {
19652        ::std::default::Default::default()
19653    }
19654
19655    // string scope = 1;
19656
19657
19658    pub fn get_scope(&self) -> &str {
19659        &self.scope
19660    }
19661    pub fn clear_scope(&mut self) {
19662        self.scope.clear();
19663    }
19664
19665    // Param is passed by value, moved
19666    pub fn set_scope(&mut self, v: ::std::string::String) {
19667        self.scope = v;
19668    }
19669
19670    // Mutable pointer to the field.
19671    // If field is not initialized, it is initialized with default value first.
19672    pub fn mut_scope(&mut self) -> &mut ::std::string::String {
19673        &mut self.scope
19674    }
19675
19676    // Take field
19677    pub fn take_scope(&mut self) -> ::std::string::String {
19678        ::std::mem::replace(&mut self.scope, ::std::string::String::new())
19679    }
19680
19681    // string constraint = 2;
19682
19683
19684    pub fn get_constraint(&self) -> &str {
19685        &self.constraint
19686    }
19687    pub fn clear_constraint(&mut self) {
19688        self.constraint.clear();
19689    }
19690
19691    // Param is passed by value, moved
19692    pub fn set_constraint(&mut self, v: ::std::string::String) {
19693        self.constraint = v;
19694    }
19695
19696    // Mutable pointer to the field.
19697    // If field is not initialized, it is initialized with default value first.
19698    pub fn mut_constraint(&mut self) -> &mut ::std::string::String {
19699        &mut self.constraint
19700    }
19701
19702    // Take field
19703    pub fn take_constraint(&mut self) -> ::std::string::String {
19704        ::std::mem::replace(&mut self.constraint, ::std::string::String::new())
19705    }
19706
19707    // string filter = 3;
19708
19709
19710    pub fn get_filter(&self) -> &str {
19711        &self.filter
19712    }
19713    pub fn clear_filter(&mut self) {
19714        self.filter.clear();
19715    }
19716
19717    // Param is passed by value, moved
19718    pub fn set_filter(&mut self, v: ::std::string::String) {
19719        self.filter = v;
19720    }
19721
19722    // Mutable pointer to the field.
19723    // If field is not initialized, it is initialized with default value first.
19724    pub fn mut_filter(&mut self) -> &mut ::std::string::String {
19725        &mut self.filter
19726    }
19727
19728    // Take field
19729    pub fn take_filter(&mut self) -> ::std::string::String {
19730        ::std::mem::replace(&mut self.filter, ::std::string::String::new())
19731    }
19732
19733    // int32 page_size = 4;
19734
19735
19736    pub fn get_page_size(&self) -> i32 {
19737        match self._page_size {
19738            ::std::option::Option::Some(AnalyzeOrgPolicyGovernedContainersRequest_oneof__page_size::page_size(v)) => v,
19739            _ => 0,
19740        }
19741    }
19742    pub fn clear_page_size(&mut self) {
19743        self._page_size = ::std::option::Option::None;
19744    }
19745
19746    pub fn has_page_size(&self) -> bool {
19747        match self._page_size {
19748            ::std::option::Option::Some(AnalyzeOrgPolicyGovernedContainersRequest_oneof__page_size::page_size(..)) => true,
19749            _ => false,
19750        }
19751    }
19752
19753    // Param is passed by value, moved
19754    pub fn set_page_size(&mut self, v: i32) {
19755        self._page_size = ::std::option::Option::Some(AnalyzeOrgPolicyGovernedContainersRequest_oneof__page_size::page_size(v))
19756    }
19757
19758    // string page_token = 5;
19759
19760
19761    pub fn get_page_token(&self) -> &str {
19762        &self.page_token
19763    }
19764    pub fn clear_page_token(&mut self) {
19765        self.page_token.clear();
19766    }
19767
19768    // Param is passed by value, moved
19769    pub fn set_page_token(&mut self, v: ::std::string::String) {
19770        self.page_token = v;
19771    }
19772
19773    // Mutable pointer to the field.
19774    // If field is not initialized, it is initialized with default value first.
19775    pub fn mut_page_token(&mut self) -> &mut ::std::string::String {
19776        &mut self.page_token
19777    }
19778
19779    // Take field
19780    pub fn take_page_token(&mut self) -> ::std::string::String {
19781        ::std::mem::replace(&mut self.page_token, ::std::string::String::new())
19782    }
19783}
19784
19785impl ::protobuf::Message for AnalyzeOrgPolicyGovernedContainersRequest {
19786    fn is_initialized(&self) -> bool {
19787        true
19788    }
19789
19790    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
19791        while !is.eof()? {
19792            let (field_number, wire_type) = is.read_tag_unpack()?;
19793            match field_number {
19794                1 => {
19795                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.scope)?;
19796                },
19797                2 => {
19798                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.constraint)?;
19799                },
19800                3 => {
19801                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.filter)?;
19802                },
19803                4 => {
19804                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
19805                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
19806                    }
19807                    self._page_size = ::std::option::Option::Some(AnalyzeOrgPolicyGovernedContainersRequest_oneof__page_size::page_size(is.read_int32()?));
19808                },
19809                5 => {
19810                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.page_token)?;
19811                },
19812                _ => {
19813                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
19814                },
19815            };
19816        }
19817        ::std::result::Result::Ok(())
19818    }
19819
19820    // Compute sizes of nested messages
19821    #[allow(unused_variables)]
19822    fn compute_size(&self) -> u32 {
19823        let mut my_size = 0;
19824        if !self.scope.is_empty() {
19825            my_size += ::protobuf::rt::string_size(1, &self.scope);
19826        }
19827        if !self.constraint.is_empty() {
19828            my_size += ::protobuf::rt::string_size(2, &self.constraint);
19829        }
19830        if !self.filter.is_empty() {
19831            my_size += ::protobuf::rt::string_size(3, &self.filter);
19832        }
19833        if !self.page_token.is_empty() {
19834            my_size += ::protobuf::rt::string_size(5, &self.page_token);
19835        }
19836        if let ::std::option::Option::Some(ref v) = self._page_size {
19837            match v {
19838                &AnalyzeOrgPolicyGovernedContainersRequest_oneof__page_size::page_size(v) => {
19839                    my_size += ::protobuf::rt::value_size(4, v, ::protobuf::wire_format::WireTypeVarint);
19840                },
19841            };
19842        }
19843        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
19844        self.cached_size.set(my_size);
19845        my_size
19846    }
19847
19848    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
19849        if !self.scope.is_empty() {
19850            os.write_string(1, &self.scope)?;
19851        }
19852        if !self.constraint.is_empty() {
19853            os.write_string(2, &self.constraint)?;
19854        }
19855        if !self.filter.is_empty() {
19856            os.write_string(3, &self.filter)?;
19857        }
19858        if !self.page_token.is_empty() {
19859            os.write_string(5, &self.page_token)?;
19860        }
19861        if let ::std::option::Option::Some(ref v) = self._page_size {
19862            match v {
19863                &AnalyzeOrgPolicyGovernedContainersRequest_oneof__page_size::page_size(v) => {
19864                    os.write_int32(4, v)?;
19865                },
19866            };
19867        }
19868        os.write_unknown_fields(self.get_unknown_fields())?;
19869        ::std::result::Result::Ok(())
19870    }
19871
19872    fn get_cached_size(&self) -> u32 {
19873        self.cached_size.get()
19874    }
19875
19876    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
19877        &self.unknown_fields
19878    }
19879
19880    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
19881        &mut self.unknown_fields
19882    }
19883
19884    fn as_any(&self) -> &dyn (::std::any::Any) {
19885        self as &dyn (::std::any::Any)
19886    }
19887    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
19888        self as &mut dyn (::std::any::Any)
19889    }
19890    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
19891        self
19892    }
19893
19894    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
19895        Self::descriptor_static()
19896    }
19897
19898    fn new() -> AnalyzeOrgPolicyGovernedContainersRequest {
19899        AnalyzeOrgPolicyGovernedContainersRequest::new()
19900    }
19901
19902    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
19903        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
19904        descriptor.get(|| {
19905            let mut fields = ::std::vec::Vec::new();
19906            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
19907                "scope",
19908                |m: &AnalyzeOrgPolicyGovernedContainersRequest| { &m.scope },
19909                |m: &mut AnalyzeOrgPolicyGovernedContainersRequest| { &mut m.scope },
19910            ));
19911            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
19912                "constraint",
19913                |m: &AnalyzeOrgPolicyGovernedContainersRequest| { &m.constraint },
19914                |m: &mut AnalyzeOrgPolicyGovernedContainersRequest| { &mut m.constraint },
19915            ));
19916            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
19917                "filter",
19918                |m: &AnalyzeOrgPolicyGovernedContainersRequest| { &m.filter },
19919                |m: &mut AnalyzeOrgPolicyGovernedContainersRequest| { &mut m.filter },
19920            ));
19921            fields.push(::protobuf::reflect::accessor::make_singular_i32_accessor::<_>(
19922                "page_size",
19923                AnalyzeOrgPolicyGovernedContainersRequest::has_page_size,
19924                AnalyzeOrgPolicyGovernedContainersRequest::get_page_size,
19925            ));
19926            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
19927                "page_token",
19928                |m: &AnalyzeOrgPolicyGovernedContainersRequest| { &m.page_token },
19929                |m: &mut AnalyzeOrgPolicyGovernedContainersRequest| { &mut m.page_token },
19930            ));
19931            ::protobuf::reflect::MessageDescriptor::new_pb_name::<AnalyzeOrgPolicyGovernedContainersRequest>(
19932                "AnalyzeOrgPolicyGovernedContainersRequest",
19933                fields,
19934                file_descriptor_proto()
19935            )
19936        })
19937    }
19938
19939    fn default_instance() -> &'static AnalyzeOrgPolicyGovernedContainersRequest {
19940        static instance: ::protobuf::rt::LazyV2<AnalyzeOrgPolicyGovernedContainersRequest> = ::protobuf::rt::LazyV2::INIT;
19941        instance.get(AnalyzeOrgPolicyGovernedContainersRequest::new)
19942    }
19943}
19944
19945impl ::protobuf::Clear for AnalyzeOrgPolicyGovernedContainersRequest {
19946    fn clear(&mut self) {
19947        self.scope.clear();
19948        self.constraint.clear();
19949        self.filter.clear();
19950        self._page_size = ::std::option::Option::None;
19951        self.page_token.clear();
19952        self.unknown_fields.clear();
19953    }
19954}
19955
19956impl ::std::fmt::Debug for AnalyzeOrgPolicyGovernedContainersRequest {
19957    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19958        ::protobuf::text_format::fmt(self, f)
19959    }
19960}
19961
19962impl ::protobuf::reflect::ProtobufValue for AnalyzeOrgPolicyGovernedContainersRequest {
19963    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
19964        ::protobuf::reflect::ReflectValueRef::Message(self)
19965    }
19966}
19967
19968#[derive(PartialEq,Clone,Default)]
19969pub struct AnalyzeOrgPolicyGovernedContainersResponse {
19970    // message fields
19971    pub governed_containers: ::protobuf::RepeatedField<AnalyzeOrgPolicyGovernedContainersResponse_GovernedContainer>,
19972    pub constraint: ::protobuf::SingularPtrField<AnalyzerOrgPolicyConstraint>,
19973    pub next_page_token: ::std::string::String,
19974    // special fields
19975    pub unknown_fields: ::protobuf::UnknownFields,
19976    pub cached_size: ::protobuf::CachedSize,
19977}
19978
19979impl<'a> ::std::default::Default for &'a AnalyzeOrgPolicyGovernedContainersResponse {
19980    fn default() -> &'a AnalyzeOrgPolicyGovernedContainersResponse {
19981        <AnalyzeOrgPolicyGovernedContainersResponse as ::protobuf::Message>::default_instance()
19982    }
19983}
19984
19985impl AnalyzeOrgPolicyGovernedContainersResponse {
19986    pub fn new() -> AnalyzeOrgPolicyGovernedContainersResponse {
19987        ::std::default::Default::default()
19988    }
19989
19990    // repeated .google.cloud.asset.v1.AnalyzeOrgPolicyGovernedContainersResponse.GovernedContainer governed_containers = 1;
19991
19992
19993    pub fn get_governed_containers(&self) -> &[AnalyzeOrgPolicyGovernedContainersResponse_GovernedContainer] {
19994        &self.governed_containers
19995    }
19996    pub fn clear_governed_containers(&mut self) {
19997        self.governed_containers.clear();
19998    }
19999
20000    // Param is passed by value, moved
20001    pub fn set_governed_containers(&mut self, v: ::protobuf::RepeatedField<AnalyzeOrgPolicyGovernedContainersResponse_GovernedContainer>) {
20002        self.governed_containers = v;
20003    }
20004
20005    // Mutable pointer to the field.
20006    pub fn mut_governed_containers(&mut self) -> &mut ::protobuf::RepeatedField<AnalyzeOrgPolicyGovernedContainersResponse_GovernedContainer> {
20007        &mut self.governed_containers
20008    }
20009
20010    // Take field
20011    pub fn take_governed_containers(&mut self) -> ::protobuf::RepeatedField<AnalyzeOrgPolicyGovernedContainersResponse_GovernedContainer> {
20012        ::std::mem::replace(&mut self.governed_containers, ::protobuf::RepeatedField::new())
20013    }
20014
20015    // .google.cloud.asset.v1.AnalyzerOrgPolicyConstraint constraint = 2;
20016
20017
20018    pub fn get_constraint(&self) -> &AnalyzerOrgPolicyConstraint {
20019        self.constraint.as_ref().unwrap_or_else(|| <AnalyzerOrgPolicyConstraint as ::protobuf::Message>::default_instance())
20020    }
20021    pub fn clear_constraint(&mut self) {
20022        self.constraint.clear();
20023    }
20024
20025    pub fn has_constraint(&self) -> bool {
20026        self.constraint.is_some()
20027    }
20028
20029    // Param is passed by value, moved
20030    pub fn set_constraint(&mut self, v: AnalyzerOrgPolicyConstraint) {
20031        self.constraint = ::protobuf::SingularPtrField::some(v);
20032    }
20033
20034    // Mutable pointer to the field.
20035    // If field is not initialized, it is initialized with default value first.
20036    pub fn mut_constraint(&mut self) -> &mut AnalyzerOrgPolicyConstraint {
20037        if self.constraint.is_none() {
20038            self.constraint.set_default();
20039        }
20040        self.constraint.as_mut().unwrap()
20041    }
20042
20043    // Take field
20044    pub fn take_constraint(&mut self) -> AnalyzerOrgPolicyConstraint {
20045        self.constraint.take().unwrap_or_else(|| AnalyzerOrgPolicyConstraint::new())
20046    }
20047
20048    // string next_page_token = 3;
20049
20050
20051    pub fn get_next_page_token(&self) -> &str {
20052        &self.next_page_token
20053    }
20054    pub fn clear_next_page_token(&mut self) {
20055        self.next_page_token.clear();
20056    }
20057
20058    // Param is passed by value, moved
20059    pub fn set_next_page_token(&mut self, v: ::std::string::String) {
20060        self.next_page_token = v;
20061    }
20062
20063    // Mutable pointer to the field.
20064    // If field is not initialized, it is initialized with default value first.
20065    pub fn mut_next_page_token(&mut self) -> &mut ::std::string::String {
20066        &mut self.next_page_token
20067    }
20068
20069    // Take field
20070    pub fn take_next_page_token(&mut self) -> ::std::string::String {
20071        ::std::mem::replace(&mut self.next_page_token, ::std::string::String::new())
20072    }
20073}
20074
20075impl ::protobuf::Message for AnalyzeOrgPolicyGovernedContainersResponse {
20076    fn is_initialized(&self) -> bool {
20077        for v in &self.governed_containers {
20078            if !v.is_initialized() {
20079                return false;
20080            }
20081        };
20082        for v in &self.constraint {
20083            if !v.is_initialized() {
20084                return false;
20085            }
20086        };
20087        true
20088    }
20089
20090    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
20091        while !is.eof()? {
20092            let (field_number, wire_type) = is.read_tag_unpack()?;
20093            match field_number {
20094                1 => {
20095                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.governed_containers)?;
20096                },
20097                2 => {
20098                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.constraint)?;
20099                },
20100                3 => {
20101                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.next_page_token)?;
20102                },
20103                _ => {
20104                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
20105                },
20106            };
20107        }
20108        ::std::result::Result::Ok(())
20109    }
20110
20111    // Compute sizes of nested messages
20112    #[allow(unused_variables)]
20113    fn compute_size(&self) -> u32 {
20114        let mut my_size = 0;
20115        for value in &self.governed_containers {
20116            let len = value.compute_size();
20117            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
20118        };
20119        if let Some(ref v) = self.constraint.as_ref() {
20120            let len = v.compute_size();
20121            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
20122        }
20123        if !self.next_page_token.is_empty() {
20124            my_size += ::protobuf::rt::string_size(3, &self.next_page_token);
20125        }
20126        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
20127        self.cached_size.set(my_size);
20128        my_size
20129    }
20130
20131    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
20132        for v in &self.governed_containers {
20133            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
20134            os.write_raw_varint32(v.get_cached_size())?;
20135            v.write_to_with_cached_sizes(os)?;
20136        };
20137        if let Some(ref v) = self.constraint.as_ref() {
20138            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
20139            os.write_raw_varint32(v.get_cached_size())?;
20140            v.write_to_with_cached_sizes(os)?;
20141        }
20142        if !self.next_page_token.is_empty() {
20143            os.write_string(3, &self.next_page_token)?;
20144        }
20145        os.write_unknown_fields(self.get_unknown_fields())?;
20146        ::std::result::Result::Ok(())
20147    }
20148
20149    fn get_cached_size(&self) -> u32 {
20150        self.cached_size.get()
20151    }
20152
20153    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
20154        &self.unknown_fields
20155    }
20156
20157    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
20158        &mut self.unknown_fields
20159    }
20160
20161    fn as_any(&self) -> &dyn (::std::any::Any) {
20162        self as &dyn (::std::any::Any)
20163    }
20164    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
20165        self as &mut dyn (::std::any::Any)
20166    }
20167    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
20168        self
20169    }
20170
20171    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
20172        Self::descriptor_static()
20173    }
20174
20175    fn new() -> AnalyzeOrgPolicyGovernedContainersResponse {
20176        AnalyzeOrgPolicyGovernedContainersResponse::new()
20177    }
20178
20179    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
20180        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
20181        descriptor.get(|| {
20182            let mut fields = ::std::vec::Vec::new();
20183            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<AnalyzeOrgPolicyGovernedContainersResponse_GovernedContainer>>(
20184                "governed_containers",
20185                |m: &AnalyzeOrgPolicyGovernedContainersResponse| { &m.governed_containers },
20186                |m: &mut AnalyzeOrgPolicyGovernedContainersResponse| { &mut m.governed_containers },
20187            ));
20188            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<AnalyzerOrgPolicyConstraint>>(
20189                "constraint",
20190                |m: &AnalyzeOrgPolicyGovernedContainersResponse| { &m.constraint },
20191                |m: &mut AnalyzeOrgPolicyGovernedContainersResponse| { &mut m.constraint },
20192            ));
20193            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
20194                "next_page_token",
20195                |m: &AnalyzeOrgPolicyGovernedContainersResponse| { &m.next_page_token },
20196                |m: &mut AnalyzeOrgPolicyGovernedContainersResponse| { &mut m.next_page_token },
20197            ));
20198            ::protobuf::reflect::MessageDescriptor::new_pb_name::<AnalyzeOrgPolicyGovernedContainersResponse>(
20199                "AnalyzeOrgPolicyGovernedContainersResponse",
20200                fields,
20201                file_descriptor_proto()
20202            )
20203        })
20204    }
20205
20206    fn default_instance() -> &'static AnalyzeOrgPolicyGovernedContainersResponse {
20207        static instance: ::protobuf::rt::LazyV2<AnalyzeOrgPolicyGovernedContainersResponse> = ::protobuf::rt::LazyV2::INIT;
20208        instance.get(AnalyzeOrgPolicyGovernedContainersResponse::new)
20209    }
20210}
20211
20212impl ::protobuf::Clear for AnalyzeOrgPolicyGovernedContainersResponse {
20213    fn clear(&mut self) {
20214        self.governed_containers.clear();
20215        self.constraint.clear();
20216        self.next_page_token.clear();
20217        self.unknown_fields.clear();
20218    }
20219}
20220
20221impl ::std::fmt::Debug for AnalyzeOrgPolicyGovernedContainersResponse {
20222    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20223        ::protobuf::text_format::fmt(self, f)
20224    }
20225}
20226
20227impl ::protobuf::reflect::ProtobufValue for AnalyzeOrgPolicyGovernedContainersResponse {
20228    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
20229        ::protobuf::reflect::ReflectValueRef::Message(self)
20230    }
20231}
20232
20233#[derive(PartialEq,Clone,Default)]
20234pub struct AnalyzeOrgPolicyGovernedContainersResponse_GovernedContainer {
20235    // message fields
20236    pub full_resource_name: ::std::string::String,
20237    pub parent: ::std::string::String,
20238    pub consolidated_policy: ::protobuf::SingularPtrField<AnalyzerOrgPolicy>,
20239    pub policy_bundle: ::protobuf::RepeatedField<AnalyzerOrgPolicy>,
20240    // special fields
20241    pub unknown_fields: ::protobuf::UnknownFields,
20242    pub cached_size: ::protobuf::CachedSize,
20243}
20244
20245impl<'a> ::std::default::Default for &'a AnalyzeOrgPolicyGovernedContainersResponse_GovernedContainer {
20246    fn default() -> &'a AnalyzeOrgPolicyGovernedContainersResponse_GovernedContainer {
20247        <AnalyzeOrgPolicyGovernedContainersResponse_GovernedContainer as ::protobuf::Message>::default_instance()
20248    }
20249}
20250
20251impl AnalyzeOrgPolicyGovernedContainersResponse_GovernedContainer {
20252    pub fn new() -> AnalyzeOrgPolicyGovernedContainersResponse_GovernedContainer {
20253        ::std::default::Default::default()
20254    }
20255
20256    // string full_resource_name = 1;
20257
20258
20259    pub fn get_full_resource_name(&self) -> &str {
20260        &self.full_resource_name
20261    }
20262    pub fn clear_full_resource_name(&mut self) {
20263        self.full_resource_name.clear();
20264    }
20265
20266    // Param is passed by value, moved
20267    pub fn set_full_resource_name(&mut self, v: ::std::string::String) {
20268        self.full_resource_name = v;
20269    }
20270
20271    // Mutable pointer to the field.
20272    // If field is not initialized, it is initialized with default value first.
20273    pub fn mut_full_resource_name(&mut self) -> &mut ::std::string::String {
20274        &mut self.full_resource_name
20275    }
20276
20277    // Take field
20278    pub fn take_full_resource_name(&mut self) -> ::std::string::String {
20279        ::std::mem::replace(&mut self.full_resource_name, ::std::string::String::new())
20280    }
20281
20282    // string parent = 2;
20283
20284
20285    pub fn get_parent(&self) -> &str {
20286        &self.parent
20287    }
20288    pub fn clear_parent(&mut self) {
20289        self.parent.clear();
20290    }
20291
20292    // Param is passed by value, moved
20293    pub fn set_parent(&mut self, v: ::std::string::String) {
20294        self.parent = v;
20295    }
20296
20297    // Mutable pointer to the field.
20298    // If field is not initialized, it is initialized with default value first.
20299    pub fn mut_parent(&mut self) -> &mut ::std::string::String {
20300        &mut self.parent
20301    }
20302
20303    // Take field
20304    pub fn take_parent(&mut self) -> ::std::string::String {
20305        ::std::mem::replace(&mut self.parent, ::std::string::String::new())
20306    }
20307
20308    // .google.cloud.asset.v1.AnalyzerOrgPolicy consolidated_policy = 3;
20309
20310
20311    pub fn get_consolidated_policy(&self) -> &AnalyzerOrgPolicy {
20312        self.consolidated_policy.as_ref().unwrap_or_else(|| <AnalyzerOrgPolicy as ::protobuf::Message>::default_instance())
20313    }
20314    pub fn clear_consolidated_policy(&mut self) {
20315        self.consolidated_policy.clear();
20316    }
20317
20318    pub fn has_consolidated_policy(&self) -> bool {
20319        self.consolidated_policy.is_some()
20320    }
20321
20322    // Param is passed by value, moved
20323    pub fn set_consolidated_policy(&mut self, v: AnalyzerOrgPolicy) {
20324        self.consolidated_policy = ::protobuf::SingularPtrField::some(v);
20325    }
20326
20327    // Mutable pointer to the field.
20328    // If field is not initialized, it is initialized with default value first.
20329    pub fn mut_consolidated_policy(&mut self) -> &mut AnalyzerOrgPolicy {
20330        if self.consolidated_policy.is_none() {
20331            self.consolidated_policy.set_default();
20332        }
20333        self.consolidated_policy.as_mut().unwrap()
20334    }
20335
20336    // Take field
20337    pub fn take_consolidated_policy(&mut self) -> AnalyzerOrgPolicy {
20338        self.consolidated_policy.take().unwrap_or_else(|| AnalyzerOrgPolicy::new())
20339    }
20340
20341    // repeated .google.cloud.asset.v1.AnalyzerOrgPolicy policy_bundle = 4;
20342
20343
20344    pub fn get_policy_bundle(&self) -> &[AnalyzerOrgPolicy] {
20345        &self.policy_bundle
20346    }
20347    pub fn clear_policy_bundle(&mut self) {
20348        self.policy_bundle.clear();
20349    }
20350
20351    // Param is passed by value, moved
20352    pub fn set_policy_bundle(&mut self, v: ::protobuf::RepeatedField<AnalyzerOrgPolicy>) {
20353        self.policy_bundle = v;
20354    }
20355
20356    // Mutable pointer to the field.
20357    pub fn mut_policy_bundle(&mut self) -> &mut ::protobuf::RepeatedField<AnalyzerOrgPolicy> {
20358        &mut self.policy_bundle
20359    }
20360
20361    // Take field
20362    pub fn take_policy_bundle(&mut self) -> ::protobuf::RepeatedField<AnalyzerOrgPolicy> {
20363        ::std::mem::replace(&mut self.policy_bundle, ::protobuf::RepeatedField::new())
20364    }
20365}
20366
20367impl ::protobuf::Message for AnalyzeOrgPolicyGovernedContainersResponse_GovernedContainer {
20368    fn is_initialized(&self) -> bool {
20369        for v in &self.consolidated_policy {
20370            if !v.is_initialized() {
20371                return false;
20372            }
20373        };
20374        for v in &self.policy_bundle {
20375            if !v.is_initialized() {
20376                return false;
20377            }
20378        };
20379        true
20380    }
20381
20382    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
20383        while !is.eof()? {
20384            let (field_number, wire_type) = is.read_tag_unpack()?;
20385            match field_number {
20386                1 => {
20387                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.full_resource_name)?;
20388                },
20389                2 => {
20390                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.parent)?;
20391                },
20392                3 => {
20393                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.consolidated_policy)?;
20394                },
20395                4 => {
20396                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.policy_bundle)?;
20397                },
20398                _ => {
20399                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
20400                },
20401            };
20402        }
20403        ::std::result::Result::Ok(())
20404    }
20405
20406    // Compute sizes of nested messages
20407    #[allow(unused_variables)]
20408    fn compute_size(&self) -> u32 {
20409        let mut my_size = 0;
20410        if !self.full_resource_name.is_empty() {
20411            my_size += ::protobuf::rt::string_size(1, &self.full_resource_name);
20412        }
20413        if !self.parent.is_empty() {
20414            my_size += ::protobuf::rt::string_size(2, &self.parent);
20415        }
20416        if let Some(ref v) = self.consolidated_policy.as_ref() {
20417            let len = v.compute_size();
20418            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
20419        }
20420        for value in &self.policy_bundle {
20421            let len = value.compute_size();
20422            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
20423        };
20424        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
20425        self.cached_size.set(my_size);
20426        my_size
20427    }
20428
20429    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
20430        if !self.full_resource_name.is_empty() {
20431            os.write_string(1, &self.full_resource_name)?;
20432        }
20433        if !self.parent.is_empty() {
20434            os.write_string(2, &self.parent)?;
20435        }
20436        if let Some(ref v) = self.consolidated_policy.as_ref() {
20437            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
20438            os.write_raw_varint32(v.get_cached_size())?;
20439            v.write_to_with_cached_sizes(os)?;
20440        }
20441        for v in &self.policy_bundle {
20442            os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
20443            os.write_raw_varint32(v.get_cached_size())?;
20444            v.write_to_with_cached_sizes(os)?;
20445        };
20446        os.write_unknown_fields(self.get_unknown_fields())?;
20447        ::std::result::Result::Ok(())
20448    }
20449
20450    fn get_cached_size(&self) -> u32 {
20451        self.cached_size.get()
20452    }
20453
20454    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
20455        &self.unknown_fields
20456    }
20457
20458    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
20459        &mut self.unknown_fields
20460    }
20461
20462    fn as_any(&self) -> &dyn (::std::any::Any) {
20463        self as &dyn (::std::any::Any)
20464    }
20465    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
20466        self as &mut dyn (::std::any::Any)
20467    }
20468    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
20469        self
20470    }
20471
20472    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
20473        Self::descriptor_static()
20474    }
20475
20476    fn new() -> AnalyzeOrgPolicyGovernedContainersResponse_GovernedContainer {
20477        AnalyzeOrgPolicyGovernedContainersResponse_GovernedContainer::new()
20478    }
20479
20480    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
20481        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
20482        descriptor.get(|| {
20483            let mut fields = ::std::vec::Vec::new();
20484            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
20485                "full_resource_name",
20486                |m: &AnalyzeOrgPolicyGovernedContainersResponse_GovernedContainer| { &m.full_resource_name },
20487                |m: &mut AnalyzeOrgPolicyGovernedContainersResponse_GovernedContainer| { &mut m.full_resource_name },
20488            ));
20489            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
20490                "parent",
20491                |m: &AnalyzeOrgPolicyGovernedContainersResponse_GovernedContainer| { &m.parent },
20492                |m: &mut AnalyzeOrgPolicyGovernedContainersResponse_GovernedContainer| { &mut m.parent },
20493            ));
20494            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<AnalyzerOrgPolicy>>(
20495                "consolidated_policy",
20496                |m: &AnalyzeOrgPolicyGovernedContainersResponse_GovernedContainer| { &m.consolidated_policy },
20497                |m: &mut AnalyzeOrgPolicyGovernedContainersResponse_GovernedContainer| { &mut m.consolidated_policy },
20498            ));
20499            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<AnalyzerOrgPolicy>>(
20500                "policy_bundle",
20501                |m: &AnalyzeOrgPolicyGovernedContainersResponse_GovernedContainer| { &m.policy_bundle },
20502                |m: &mut AnalyzeOrgPolicyGovernedContainersResponse_GovernedContainer| { &mut m.policy_bundle },
20503            ));
20504            ::protobuf::reflect::MessageDescriptor::new_pb_name::<AnalyzeOrgPolicyGovernedContainersResponse_GovernedContainer>(
20505                "AnalyzeOrgPolicyGovernedContainersResponse.GovernedContainer",
20506                fields,
20507                file_descriptor_proto()
20508            )
20509        })
20510    }
20511
20512    fn default_instance() -> &'static AnalyzeOrgPolicyGovernedContainersResponse_GovernedContainer {
20513        static instance: ::protobuf::rt::LazyV2<AnalyzeOrgPolicyGovernedContainersResponse_GovernedContainer> = ::protobuf::rt::LazyV2::INIT;
20514        instance.get(AnalyzeOrgPolicyGovernedContainersResponse_GovernedContainer::new)
20515    }
20516}
20517
20518impl ::protobuf::Clear for AnalyzeOrgPolicyGovernedContainersResponse_GovernedContainer {
20519    fn clear(&mut self) {
20520        self.full_resource_name.clear();
20521        self.parent.clear();
20522        self.consolidated_policy.clear();
20523        self.policy_bundle.clear();
20524        self.unknown_fields.clear();
20525    }
20526}
20527
20528impl ::std::fmt::Debug for AnalyzeOrgPolicyGovernedContainersResponse_GovernedContainer {
20529    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20530        ::protobuf::text_format::fmt(self, f)
20531    }
20532}
20533
20534impl ::protobuf::reflect::ProtobufValue for AnalyzeOrgPolicyGovernedContainersResponse_GovernedContainer {
20535    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
20536        ::protobuf::reflect::ReflectValueRef::Message(self)
20537    }
20538}
20539
20540#[derive(PartialEq,Clone,Default)]
20541pub struct AnalyzeOrgPolicyGovernedAssetsRequest {
20542    // message fields
20543    pub scope: ::std::string::String,
20544    pub constraint: ::std::string::String,
20545    pub filter: ::std::string::String,
20546    pub page_token: ::std::string::String,
20547    // message oneof groups
20548    pub _page_size: ::std::option::Option<AnalyzeOrgPolicyGovernedAssetsRequest_oneof__page_size>,
20549    // special fields
20550    pub unknown_fields: ::protobuf::UnknownFields,
20551    pub cached_size: ::protobuf::CachedSize,
20552}
20553
20554impl<'a> ::std::default::Default for &'a AnalyzeOrgPolicyGovernedAssetsRequest {
20555    fn default() -> &'a AnalyzeOrgPolicyGovernedAssetsRequest {
20556        <AnalyzeOrgPolicyGovernedAssetsRequest as ::protobuf::Message>::default_instance()
20557    }
20558}
20559
20560#[derive(Clone,PartialEq,Debug)]
20561pub enum AnalyzeOrgPolicyGovernedAssetsRequest_oneof__page_size {
20562    page_size(i32),
20563}
20564
20565impl AnalyzeOrgPolicyGovernedAssetsRequest {
20566    pub fn new() -> AnalyzeOrgPolicyGovernedAssetsRequest {
20567        ::std::default::Default::default()
20568    }
20569
20570    // string scope = 1;
20571
20572
20573    pub fn get_scope(&self) -> &str {
20574        &self.scope
20575    }
20576    pub fn clear_scope(&mut self) {
20577        self.scope.clear();
20578    }
20579
20580    // Param is passed by value, moved
20581    pub fn set_scope(&mut self, v: ::std::string::String) {
20582        self.scope = v;
20583    }
20584
20585    // Mutable pointer to the field.
20586    // If field is not initialized, it is initialized with default value first.
20587    pub fn mut_scope(&mut self) -> &mut ::std::string::String {
20588        &mut self.scope
20589    }
20590
20591    // Take field
20592    pub fn take_scope(&mut self) -> ::std::string::String {
20593        ::std::mem::replace(&mut self.scope, ::std::string::String::new())
20594    }
20595
20596    // string constraint = 2;
20597
20598
20599    pub fn get_constraint(&self) -> &str {
20600        &self.constraint
20601    }
20602    pub fn clear_constraint(&mut self) {
20603        self.constraint.clear();
20604    }
20605
20606    // Param is passed by value, moved
20607    pub fn set_constraint(&mut self, v: ::std::string::String) {
20608        self.constraint = v;
20609    }
20610
20611    // Mutable pointer to the field.
20612    // If field is not initialized, it is initialized with default value first.
20613    pub fn mut_constraint(&mut self) -> &mut ::std::string::String {
20614        &mut self.constraint
20615    }
20616
20617    // Take field
20618    pub fn take_constraint(&mut self) -> ::std::string::String {
20619        ::std::mem::replace(&mut self.constraint, ::std::string::String::new())
20620    }
20621
20622    // string filter = 3;
20623
20624
20625    pub fn get_filter(&self) -> &str {
20626        &self.filter
20627    }
20628    pub fn clear_filter(&mut self) {
20629        self.filter.clear();
20630    }
20631
20632    // Param is passed by value, moved
20633    pub fn set_filter(&mut self, v: ::std::string::String) {
20634        self.filter = v;
20635    }
20636
20637    // Mutable pointer to the field.
20638    // If field is not initialized, it is initialized with default value first.
20639    pub fn mut_filter(&mut self) -> &mut ::std::string::String {
20640        &mut self.filter
20641    }
20642
20643    // Take field
20644    pub fn take_filter(&mut self) -> ::std::string::String {
20645        ::std::mem::replace(&mut self.filter, ::std::string::String::new())
20646    }
20647
20648    // int32 page_size = 4;
20649
20650
20651    pub fn get_page_size(&self) -> i32 {
20652        match self._page_size {
20653            ::std::option::Option::Some(AnalyzeOrgPolicyGovernedAssetsRequest_oneof__page_size::page_size(v)) => v,
20654            _ => 0,
20655        }
20656    }
20657    pub fn clear_page_size(&mut self) {
20658        self._page_size = ::std::option::Option::None;
20659    }
20660
20661    pub fn has_page_size(&self) -> bool {
20662        match self._page_size {
20663            ::std::option::Option::Some(AnalyzeOrgPolicyGovernedAssetsRequest_oneof__page_size::page_size(..)) => true,
20664            _ => false,
20665        }
20666    }
20667
20668    // Param is passed by value, moved
20669    pub fn set_page_size(&mut self, v: i32) {
20670        self._page_size = ::std::option::Option::Some(AnalyzeOrgPolicyGovernedAssetsRequest_oneof__page_size::page_size(v))
20671    }
20672
20673    // string page_token = 5;
20674
20675
20676    pub fn get_page_token(&self) -> &str {
20677        &self.page_token
20678    }
20679    pub fn clear_page_token(&mut self) {
20680        self.page_token.clear();
20681    }
20682
20683    // Param is passed by value, moved
20684    pub fn set_page_token(&mut self, v: ::std::string::String) {
20685        self.page_token = v;
20686    }
20687
20688    // Mutable pointer to the field.
20689    // If field is not initialized, it is initialized with default value first.
20690    pub fn mut_page_token(&mut self) -> &mut ::std::string::String {
20691        &mut self.page_token
20692    }
20693
20694    // Take field
20695    pub fn take_page_token(&mut self) -> ::std::string::String {
20696        ::std::mem::replace(&mut self.page_token, ::std::string::String::new())
20697    }
20698}
20699
20700impl ::protobuf::Message for AnalyzeOrgPolicyGovernedAssetsRequest {
20701    fn is_initialized(&self) -> bool {
20702        true
20703    }
20704
20705    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
20706        while !is.eof()? {
20707            let (field_number, wire_type) = is.read_tag_unpack()?;
20708            match field_number {
20709                1 => {
20710                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.scope)?;
20711                },
20712                2 => {
20713                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.constraint)?;
20714                },
20715                3 => {
20716                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.filter)?;
20717                },
20718                4 => {
20719                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
20720                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
20721                    }
20722                    self._page_size = ::std::option::Option::Some(AnalyzeOrgPolicyGovernedAssetsRequest_oneof__page_size::page_size(is.read_int32()?));
20723                },
20724                5 => {
20725                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.page_token)?;
20726                },
20727                _ => {
20728                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
20729                },
20730            };
20731        }
20732        ::std::result::Result::Ok(())
20733    }
20734
20735    // Compute sizes of nested messages
20736    #[allow(unused_variables)]
20737    fn compute_size(&self) -> u32 {
20738        let mut my_size = 0;
20739        if !self.scope.is_empty() {
20740            my_size += ::protobuf::rt::string_size(1, &self.scope);
20741        }
20742        if !self.constraint.is_empty() {
20743            my_size += ::protobuf::rt::string_size(2, &self.constraint);
20744        }
20745        if !self.filter.is_empty() {
20746            my_size += ::protobuf::rt::string_size(3, &self.filter);
20747        }
20748        if !self.page_token.is_empty() {
20749            my_size += ::protobuf::rt::string_size(5, &self.page_token);
20750        }
20751        if let ::std::option::Option::Some(ref v) = self._page_size {
20752            match v {
20753                &AnalyzeOrgPolicyGovernedAssetsRequest_oneof__page_size::page_size(v) => {
20754                    my_size += ::protobuf::rt::value_size(4, v, ::protobuf::wire_format::WireTypeVarint);
20755                },
20756            };
20757        }
20758        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
20759        self.cached_size.set(my_size);
20760        my_size
20761    }
20762
20763    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
20764        if !self.scope.is_empty() {
20765            os.write_string(1, &self.scope)?;
20766        }
20767        if !self.constraint.is_empty() {
20768            os.write_string(2, &self.constraint)?;
20769        }
20770        if !self.filter.is_empty() {
20771            os.write_string(3, &self.filter)?;
20772        }
20773        if !self.page_token.is_empty() {
20774            os.write_string(5, &self.page_token)?;
20775        }
20776        if let ::std::option::Option::Some(ref v) = self._page_size {
20777            match v {
20778                &AnalyzeOrgPolicyGovernedAssetsRequest_oneof__page_size::page_size(v) => {
20779                    os.write_int32(4, v)?;
20780                },
20781            };
20782        }
20783        os.write_unknown_fields(self.get_unknown_fields())?;
20784        ::std::result::Result::Ok(())
20785    }
20786
20787    fn get_cached_size(&self) -> u32 {
20788        self.cached_size.get()
20789    }
20790
20791    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
20792        &self.unknown_fields
20793    }
20794
20795    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
20796        &mut self.unknown_fields
20797    }
20798
20799    fn as_any(&self) -> &dyn (::std::any::Any) {
20800        self as &dyn (::std::any::Any)
20801    }
20802    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
20803        self as &mut dyn (::std::any::Any)
20804    }
20805    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
20806        self
20807    }
20808
20809    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
20810        Self::descriptor_static()
20811    }
20812
20813    fn new() -> AnalyzeOrgPolicyGovernedAssetsRequest {
20814        AnalyzeOrgPolicyGovernedAssetsRequest::new()
20815    }
20816
20817    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
20818        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
20819        descriptor.get(|| {
20820            let mut fields = ::std::vec::Vec::new();
20821            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
20822                "scope",
20823                |m: &AnalyzeOrgPolicyGovernedAssetsRequest| { &m.scope },
20824                |m: &mut AnalyzeOrgPolicyGovernedAssetsRequest| { &mut m.scope },
20825            ));
20826            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
20827                "constraint",
20828                |m: &AnalyzeOrgPolicyGovernedAssetsRequest| { &m.constraint },
20829                |m: &mut AnalyzeOrgPolicyGovernedAssetsRequest| { &mut m.constraint },
20830            ));
20831            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
20832                "filter",
20833                |m: &AnalyzeOrgPolicyGovernedAssetsRequest| { &m.filter },
20834                |m: &mut AnalyzeOrgPolicyGovernedAssetsRequest| { &mut m.filter },
20835            ));
20836            fields.push(::protobuf::reflect::accessor::make_singular_i32_accessor::<_>(
20837                "page_size",
20838                AnalyzeOrgPolicyGovernedAssetsRequest::has_page_size,
20839                AnalyzeOrgPolicyGovernedAssetsRequest::get_page_size,
20840            ));
20841            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
20842                "page_token",
20843                |m: &AnalyzeOrgPolicyGovernedAssetsRequest| { &m.page_token },
20844                |m: &mut AnalyzeOrgPolicyGovernedAssetsRequest| { &mut m.page_token },
20845            ));
20846            ::protobuf::reflect::MessageDescriptor::new_pb_name::<AnalyzeOrgPolicyGovernedAssetsRequest>(
20847                "AnalyzeOrgPolicyGovernedAssetsRequest",
20848                fields,
20849                file_descriptor_proto()
20850            )
20851        })
20852    }
20853
20854    fn default_instance() -> &'static AnalyzeOrgPolicyGovernedAssetsRequest {
20855        static instance: ::protobuf::rt::LazyV2<AnalyzeOrgPolicyGovernedAssetsRequest> = ::protobuf::rt::LazyV2::INIT;
20856        instance.get(AnalyzeOrgPolicyGovernedAssetsRequest::new)
20857    }
20858}
20859
20860impl ::protobuf::Clear for AnalyzeOrgPolicyGovernedAssetsRequest {
20861    fn clear(&mut self) {
20862        self.scope.clear();
20863        self.constraint.clear();
20864        self.filter.clear();
20865        self._page_size = ::std::option::Option::None;
20866        self.page_token.clear();
20867        self.unknown_fields.clear();
20868    }
20869}
20870
20871impl ::std::fmt::Debug for AnalyzeOrgPolicyGovernedAssetsRequest {
20872    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20873        ::protobuf::text_format::fmt(self, f)
20874    }
20875}
20876
20877impl ::protobuf::reflect::ProtobufValue for AnalyzeOrgPolicyGovernedAssetsRequest {
20878    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
20879        ::protobuf::reflect::ReflectValueRef::Message(self)
20880    }
20881}
20882
20883#[derive(PartialEq,Clone,Default)]
20884pub struct AnalyzeOrgPolicyGovernedAssetsResponse {
20885    // message fields
20886    pub governed_assets: ::protobuf::RepeatedField<AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset>,
20887    pub constraint: ::protobuf::SingularPtrField<AnalyzerOrgPolicyConstraint>,
20888    pub next_page_token: ::std::string::String,
20889    // special fields
20890    pub unknown_fields: ::protobuf::UnknownFields,
20891    pub cached_size: ::protobuf::CachedSize,
20892}
20893
20894impl<'a> ::std::default::Default for &'a AnalyzeOrgPolicyGovernedAssetsResponse {
20895    fn default() -> &'a AnalyzeOrgPolicyGovernedAssetsResponse {
20896        <AnalyzeOrgPolicyGovernedAssetsResponse as ::protobuf::Message>::default_instance()
20897    }
20898}
20899
20900impl AnalyzeOrgPolicyGovernedAssetsResponse {
20901    pub fn new() -> AnalyzeOrgPolicyGovernedAssetsResponse {
20902        ::std::default::Default::default()
20903    }
20904
20905    // repeated .google.cloud.asset.v1.AnalyzeOrgPolicyGovernedAssetsResponse.GovernedAsset governed_assets = 1;
20906
20907
20908    pub fn get_governed_assets(&self) -> &[AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset] {
20909        &self.governed_assets
20910    }
20911    pub fn clear_governed_assets(&mut self) {
20912        self.governed_assets.clear();
20913    }
20914
20915    // Param is passed by value, moved
20916    pub fn set_governed_assets(&mut self, v: ::protobuf::RepeatedField<AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset>) {
20917        self.governed_assets = v;
20918    }
20919
20920    // Mutable pointer to the field.
20921    pub fn mut_governed_assets(&mut self) -> &mut ::protobuf::RepeatedField<AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset> {
20922        &mut self.governed_assets
20923    }
20924
20925    // Take field
20926    pub fn take_governed_assets(&mut self) -> ::protobuf::RepeatedField<AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset> {
20927        ::std::mem::replace(&mut self.governed_assets, ::protobuf::RepeatedField::new())
20928    }
20929
20930    // .google.cloud.asset.v1.AnalyzerOrgPolicyConstraint constraint = 2;
20931
20932
20933    pub fn get_constraint(&self) -> &AnalyzerOrgPolicyConstraint {
20934        self.constraint.as_ref().unwrap_or_else(|| <AnalyzerOrgPolicyConstraint as ::protobuf::Message>::default_instance())
20935    }
20936    pub fn clear_constraint(&mut self) {
20937        self.constraint.clear();
20938    }
20939
20940    pub fn has_constraint(&self) -> bool {
20941        self.constraint.is_some()
20942    }
20943
20944    // Param is passed by value, moved
20945    pub fn set_constraint(&mut self, v: AnalyzerOrgPolicyConstraint) {
20946        self.constraint = ::protobuf::SingularPtrField::some(v);
20947    }
20948
20949    // Mutable pointer to the field.
20950    // If field is not initialized, it is initialized with default value first.
20951    pub fn mut_constraint(&mut self) -> &mut AnalyzerOrgPolicyConstraint {
20952        if self.constraint.is_none() {
20953            self.constraint.set_default();
20954        }
20955        self.constraint.as_mut().unwrap()
20956    }
20957
20958    // Take field
20959    pub fn take_constraint(&mut self) -> AnalyzerOrgPolicyConstraint {
20960        self.constraint.take().unwrap_or_else(|| AnalyzerOrgPolicyConstraint::new())
20961    }
20962
20963    // string next_page_token = 3;
20964
20965
20966    pub fn get_next_page_token(&self) -> &str {
20967        &self.next_page_token
20968    }
20969    pub fn clear_next_page_token(&mut self) {
20970        self.next_page_token.clear();
20971    }
20972
20973    // Param is passed by value, moved
20974    pub fn set_next_page_token(&mut self, v: ::std::string::String) {
20975        self.next_page_token = v;
20976    }
20977
20978    // Mutable pointer to the field.
20979    // If field is not initialized, it is initialized with default value first.
20980    pub fn mut_next_page_token(&mut self) -> &mut ::std::string::String {
20981        &mut self.next_page_token
20982    }
20983
20984    // Take field
20985    pub fn take_next_page_token(&mut self) -> ::std::string::String {
20986        ::std::mem::replace(&mut self.next_page_token, ::std::string::String::new())
20987    }
20988}
20989
20990impl ::protobuf::Message for AnalyzeOrgPolicyGovernedAssetsResponse {
20991    fn is_initialized(&self) -> bool {
20992        for v in &self.governed_assets {
20993            if !v.is_initialized() {
20994                return false;
20995            }
20996        };
20997        for v in &self.constraint {
20998            if !v.is_initialized() {
20999                return false;
21000            }
21001        };
21002        true
21003    }
21004
21005    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
21006        while !is.eof()? {
21007            let (field_number, wire_type) = is.read_tag_unpack()?;
21008            match field_number {
21009                1 => {
21010                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.governed_assets)?;
21011                },
21012                2 => {
21013                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.constraint)?;
21014                },
21015                3 => {
21016                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.next_page_token)?;
21017                },
21018                _ => {
21019                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
21020                },
21021            };
21022        }
21023        ::std::result::Result::Ok(())
21024    }
21025
21026    // Compute sizes of nested messages
21027    #[allow(unused_variables)]
21028    fn compute_size(&self) -> u32 {
21029        let mut my_size = 0;
21030        for value in &self.governed_assets {
21031            let len = value.compute_size();
21032            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
21033        };
21034        if let Some(ref v) = self.constraint.as_ref() {
21035            let len = v.compute_size();
21036            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
21037        }
21038        if !self.next_page_token.is_empty() {
21039            my_size += ::protobuf::rt::string_size(3, &self.next_page_token);
21040        }
21041        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
21042        self.cached_size.set(my_size);
21043        my_size
21044    }
21045
21046    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
21047        for v in &self.governed_assets {
21048            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
21049            os.write_raw_varint32(v.get_cached_size())?;
21050            v.write_to_with_cached_sizes(os)?;
21051        };
21052        if let Some(ref v) = self.constraint.as_ref() {
21053            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
21054            os.write_raw_varint32(v.get_cached_size())?;
21055            v.write_to_with_cached_sizes(os)?;
21056        }
21057        if !self.next_page_token.is_empty() {
21058            os.write_string(3, &self.next_page_token)?;
21059        }
21060        os.write_unknown_fields(self.get_unknown_fields())?;
21061        ::std::result::Result::Ok(())
21062    }
21063
21064    fn get_cached_size(&self) -> u32 {
21065        self.cached_size.get()
21066    }
21067
21068    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
21069        &self.unknown_fields
21070    }
21071
21072    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
21073        &mut self.unknown_fields
21074    }
21075
21076    fn as_any(&self) -> &dyn (::std::any::Any) {
21077        self as &dyn (::std::any::Any)
21078    }
21079    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
21080        self as &mut dyn (::std::any::Any)
21081    }
21082    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
21083        self
21084    }
21085
21086    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
21087        Self::descriptor_static()
21088    }
21089
21090    fn new() -> AnalyzeOrgPolicyGovernedAssetsResponse {
21091        AnalyzeOrgPolicyGovernedAssetsResponse::new()
21092    }
21093
21094    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
21095        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
21096        descriptor.get(|| {
21097            let mut fields = ::std::vec::Vec::new();
21098            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset>>(
21099                "governed_assets",
21100                |m: &AnalyzeOrgPolicyGovernedAssetsResponse| { &m.governed_assets },
21101                |m: &mut AnalyzeOrgPolicyGovernedAssetsResponse| { &mut m.governed_assets },
21102            ));
21103            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<AnalyzerOrgPolicyConstraint>>(
21104                "constraint",
21105                |m: &AnalyzeOrgPolicyGovernedAssetsResponse| { &m.constraint },
21106                |m: &mut AnalyzeOrgPolicyGovernedAssetsResponse| { &mut m.constraint },
21107            ));
21108            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
21109                "next_page_token",
21110                |m: &AnalyzeOrgPolicyGovernedAssetsResponse| { &m.next_page_token },
21111                |m: &mut AnalyzeOrgPolicyGovernedAssetsResponse| { &mut m.next_page_token },
21112            ));
21113            ::protobuf::reflect::MessageDescriptor::new_pb_name::<AnalyzeOrgPolicyGovernedAssetsResponse>(
21114                "AnalyzeOrgPolicyGovernedAssetsResponse",
21115                fields,
21116                file_descriptor_proto()
21117            )
21118        })
21119    }
21120
21121    fn default_instance() -> &'static AnalyzeOrgPolicyGovernedAssetsResponse {
21122        static instance: ::protobuf::rt::LazyV2<AnalyzeOrgPolicyGovernedAssetsResponse> = ::protobuf::rt::LazyV2::INIT;
21123        instance.get(AnalyzeOrgPolicyGovernedAssetsResponse::new)
21124    }
21125}
21126
21127impl ::protobuf::Clear for AnalyzeOrgPolicyGovernedAssetsResponse {
21128    fn clear(&mut self) {
21129        self.governed_assets.clear();
21130        self.constraint.clear();
21131        self.next_page_token.clear();
21132        self.unknown_fields.clear();
21133    }
21134}
21135
21136impl ::std::fmt::Debug for AnalyzeOrgPolicyGovernedAssetsResponse {
21137    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21138        ::protobuf::text_format::fmt(self, f)
21139    }
21140}
21141
21142impl ::protobuf::reflect::ProtobufValue for AnalyzeOrgPolicyGovernedAssetsResponse {
21143    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
21144        ::protobuf::reflect::ReflectValueRef::Message(self)
21145    }
21146}
21147
21148#[derive(PartialEq,Clone,Default)]
21149pub struct AnalyzeOrgPolicyGovernedAssetsResponse_GovernedResource {
21150    // message fields
21151    pub full_resource_name: ::std::string::String,
21152    pub parent: ::std::string::String,
21153    pub project: ::std::string::String,
21154    pub folders: ::protobuf::RepeatedField<::std::string::String>,
21155    pub organization: ::std::string::String,
21156    // special fields
21157    pub unknown_fields: ::protobuf::UnknownFields,
21158    pub cached_size: ::protobuf::CachedSize,
21159}
21160
21161impl<'a> ::std::default::Default for &'a AnalyzeOrgPolicyGovernedAssetsResponse_GovernedResource {
21162    fn default() -> &'a AnalyzeOrgPolicyGovernedAssetsResponse_GovernedResource {
21163        <AnalyzeOrgPolicyGovernedAssetsResponse_GovernedResource as ::protobuf::Message>::default_instance()
21164    }
21165}
21166
21167impl AnalyzeOrgPolicyGovernedAssetsResponse_GovernedResource {
21168    pub fn new() -> AnalyzeOrgPolicyGovernedAssetsResponse_GovernedResource {
21169        ::std::default::Default::default()
21170    }
21171
21172    // string full_resource_name = 1;
21173
21174
21175    pub fn get_full_resource_name(&self) -> &str {
21176        &self.full_resource_name
21177    }
21178    pub fn clear_full_resource_name(&mut self) {
21179        self.full_resource_name.clear();
21180    }
21181
21182    // Param is passed by value, moved
21183    pub fn set_full_resource_name(&mut self, v: ::std::string::String) {
21184        self.full_resource_name = v;
21185    }
21186
21187    // Mutable pointer to the field.
21188    // If field is not initialized, it is initialized with default value first.
21189    pub fn mut_full_resource_name(&mut self) -> &mut ::std::string::String {
21190        &mut self.full_resource_name
21191    }
21192
21193    // Take field
21194    pub fn take_full_resource_name(&mut self) -> ::std::string::String {
21195        ::std::mem::replace(&mut self.full_resource_name, ::std::string::String::new())
21196    }
21197
21198    // string parent = 2;
21199
21200
21201    pub fn get_parent(&self) -> &str {
21202        &self.parent
21203    }
21204    pub fn clear_parent(&mut self) {
21205        self.parent.clear();
21206    }
21207
21208    // Param is passed by value, moved
21209    pub fn set_parent(&mut self, v: ::std::string::String) {
21210        self.parent = v;
21211    }
21212
21213    // Mutable pointer to the field.
21214    // If field is not initialized, it is initialized with default value first.
21215    pub fn mut_parent(&mut self) -> &mut ::std::string::String {
21216        &mut self.parent
21217    }
21218
21219    // Take field
21220    pub fn take_parent(&mut self) -> ::std::string::String {
21221        ::std::mem::replace(&mut self.parent, ::std::string::String::new())
21222    }
21223
21224    // string project = 5;
21225
21226
21227    pub fn get_project(&self) -> &str {
21228        &self.project
21229    }
21230    pub fn clear_project(&mut self) {
21231        self.project.clear();
21232    }
21233
21234    // Param is passed by value, moved
21235    pub fn set_project(&mut self, v: ::std::string::String) {
21236        self.project = v;
21237    }
21238
21239    // Mutable pointer to the field.
21240    // If field is not initialized, it is initialized with default value first.
21241    pub fn mut_project(&mut self) -> &mut ::std::string::String {
21242        &mut self.project
21243    }
21244
21245    // Take field
21246    pub fn take_project(&mut self) -> ::std::string::String {
21247        ::std::mem::replace(&mut self.project, ::std::string::String::new())
21248    }
21249
21250    // repeated string folders = 6;
21251
21252
21253    pub fn get_folders(&self) -> &[::std::string::String] {
21254        &self.folders
21255    }
21256    pub fn clear_folders(&mut self) {
21257        self.folders.clear();
21258    }
21259
21260    // Param is passed by value, moved
21261    pub fn set_folders(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
21262        self.folders = v;
21263    }
21264
21265    // Mutable pointer to the field.
21266    pub fn mut_folders(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
21267        &mut self.folders
21268    }
21269
21270    // Take field
21271    pub fn take_folders(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
21272        ::std::mem::replace(&mut self.folders, ::protobuf::RepeatedField::new())
21273    }
21274
21275    // string organization = 7;
21276
21277
21278    pub fn get_organization(&self) -> &str {
21279        &self.organization
21280    }
21281    pub fn clear_organization(&mut self) {
21282        self.organization.clear();
21283    }
21284
21285    // Param is passed by value, moved
21286    pub fn set_organization(&mut self, v: ::std::string::String) {
21287        self.organization = v;
21288    }
21289
21290    // Mutable pointer to the field.
21291    // If field is not initialized, it is initialized with default value first.
21292    pub fn mut_organization(&mut self) -> &mut ::std::string::String {
21293        &mut self.organization
21294    }
21295
21296    // Take field
21297    pub fn take_organization(&mut self) -> ::std::string::String {
21298        ::std::mem::replace(&mut self.organization, ::std::string::String::new())
21299    }
21300}
21301
21302impl ::protobuf::Message for AnalyzeOrgPolicyGovernedAssetsResponse_GovernedResource {
21303    fn is_initialized(&self) -> bool {
21304        true
21305    }
21306
21307    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
21308        while !is.eof()? {
21309            let (field_number, wire_type) = is.read_tag_unpack()?;
21310            match field_number {
21311                1 => {
21312                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.full_resource_name)?;
21313                },
21314                2 => {
21315                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.parent)?;
21316                },
21317                5 => {
21318                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.project)?;
21319                },
21320                6 => {
21321                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.folders)?;
21322                },
21323                7 => {
21324                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.organization)?;
21325                },
21326                _ => {
21327                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
21328                },
21329            };
21330        }
21331        ::std::result::Result::Ok(())
21332    }
21333
21334    // Compute sizes of nested messages
21335    #[allow(unused_variables)]
21336    fn compute_size(&self) -> u32 {
21337        let mut my_size = 0;
21338        if !self.full_resource_name.is_empty() {
21339            my_size += ::protobuf::rt::string_size(1, &self.full_resource_name);
21340        }
21341        if !self.parent.is_empty() {
21342            my_size += ::protobuf::rt::string_size(2, &self.parent);
21343        }
21344        if !self.project.is_empty() {
21345            my_size += ::protobuf::rt::string_size(5, &self.project);
21346        }
21347        for value in &self.folders {
21348            my_size += ::protobuf::rt::string_size(6, &value);
21349        };
21350        if !self.organization.is_empty() {
21351            my_size += ::protobuf::rt::string_size(7, &self.organization);
21352        }
21353        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
21354        self.cached_size.set(my_size);
21355        my_size
21356    }
21357
21358    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
21359        if !self.full_resource_name.is_empty() {
21360            os.write_string(1, &self.full_resource_name)?;
21361        }
21362        if !self.parent.is_empty() {
21363            os.write_string(2, &self.parent)?;
21364        }
21365        if !self.project.is_empty() {
21366            os.write_string(5, &self.project)?;
21367        }
21368        for v in &self.folders {
21369            os.write_string(6, &v)?;
21370        };
21371        if !self.organization.is_empty() {
21372            os.write_string(7, &self.organization)?;
21373        }
21374        os.write_unknown_fields(self.get_unknown_fields())?;
21375        ::std::result::Result::Ok(())
21376    }
21377
21378    fn get_cached_size(&self) -> u32 {
21379        self.cached_size.get()
21380    }
21381
21382    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
21383        &self.unknown_fields
21384    }
21385
21386    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
21387        &mut self.unknown_fields
21388    }
21389
21390    fn as_any(&self) -> &dyn (::std::any::Any) {
21391        self as &dyn (::std::any::Any)
21392    }
21393    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
21394        self as &mut dyn (::std::any::Any)
21395    }
21396    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
21397        self
21398    }
21399
21400    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
21401        Self::descriptor_static()
21402    }
21403
21404    fn new() -> AnalyzeOrgPolicyGovernedAssetsResponse_GovernedResource {
21405        AnalyzeOrgPolicyGovernedAssetsResponse_GovernedResource::new()
21406    }
21407
21408    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
21409        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
21410        descriptor.get(|| {
21411            let mut fields = ::std::vec::Vec::new();
21412            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
21413                "full_resource_name",
21414                |m: &AnalyzeOrgPolicyGovernedAssetsResponse_GovernedResource| { &m.full_resource_name },
21415                |m: &mut AnalyzeOrgPolicyGovernedAssetsResponse_GovernedResource| { &mut m.full_resource_name },
21416            ));
21417            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
21418                "parent",
21419                |m: &AnalyzeOrgPolicyGovernedAssetsResponse_GovernedResource| { &m.parent },
21420                |m: &mut AnalyzeOrgPolicyGovernedAssetsResponse_GovernedResource| { &mut m.parent },
21421            ));
21422            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
21423                "project",
21424                |m: &AnalyzeOrgPolicyGovernedAssetsResponse_GovernedResource| { &m.project },
21425                |m: &mut AnalyzeOrgPolicyGovernedAssetsResponse_GovernedResource| { &mut m.project },
21426            ));
21427            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
21428                "folders",
21429                |m: &AnalyzeOrgPolicyGovernedAssetsResponse_GovernedResource| { &m.folders },
21430                |m: &mut AnalyzeOrgPolicyGovernedAssetsResponse_GovernedResource| { &mut m.folders },
21431            ));
21432            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
21433                "organization",
21434                |m: &AnalyzeOrgPolicyGovernedAssetsResponse_GovernedResource| { &m.organization },
21435                |m: &mut AnalyzeOrgPolicyGovernedAssetsResponse_GovernedResource| { &mut m.organization },
21436            ));
21437            ::protobuf::reflect::MessageDescriptor::new_pb_name::<AnalyzeOrgPolicyGovernedAssetsResponse_GovernedResource>(
21438                "AnalyzeOrgPolicyGovernedAssetsResponse.GovernedResource",
21439                fields,
21440                file_descriptor_proto()
21441            )
21442        })
21443    }
21444
21445    fn default_instance() -> &'static AnalyzeOrgPolicyGovernedAssetsResponse_GovernedResource {
21446        static instance: ::protobuf::rt::LazyV2<AnalyzeOrgPolicyGovernedAssetsResponse_GovernedResource> = ::protobuf::rt::LazyV2::INIT;
21447        instance.get(AnalyzeOrgPolicyGovernedAssetsResponse_GovernedResource::new)
21448    }
21449}
21450
21451impl ::protobuf::Clear for AnalyzeOrgPolicyGovernedAssetsResponse_GovernedResource {
21452    fn clear(&mut self) {
21453        self.full_resource_name.clear();
21454        self.parent.clear();
21455        self.project.clear();
21456        self.folders.clear();
21457        self.organization.clear();
21458        self.unknown_fields.clear();
21459    }
21460}
21461
21462impl ::std::fmt::Debug for AnalyzeOrgPolicyGovernedAssetsResponse_GovernedResource {
21463    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21464        ::protobuf::text_format::fmt(self, f)
21465    }
21466}
21467
21468impl ::protobuf::reflect::ProtobufValue for AnalyzeOrgPolicyGovernedAssetsResponse_GovernedResource {
21469    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
21470        ::protobuf::reflect::ReflectValueRef::Message(self)
21471    }
21472}
21473
21474#[derive(PartialEq,Clone,Default)]
21475pub struct AnalyzeOrgPolicyGovernedAssetsResponse_GovernedIamPolicy {
21476    // message fields
21477    pub attached_resource: ::std::string::String,
21478    pub policy: ::protobuf::SingularPtrField<super::policy::Policy>,
21479    pub project: ::std::string::String,
21480    pub folders: ::protobuf::RepeatedField<::std::string::String>,
21481    pub organization: ::std::string::String,
21482    // special fields
21483    pub unknown_fields: ::protobuf::UnknownFields,
21484    pub cached_size: ::protobuf::CachedSize,
21485}
21486
21487impl<'a> ::std::default::Default for &'a AnalyzeOrgPolicyGovernedAssetsResponse_GovernedIamPolicy {
21488    fn default() -> &'a AnalyzeOrgPolicyGovernedAssetsResponse_GovernedIamPolicy {
21489        <AnalyzeOrgPolicyGovernedAssetsResponse_GovernedIamPolicy as ::protobuf::Message>::default_instance()
21490    }
21491}
21492
21493impl AnalyzeOrgPolicyGovernedAssetsResponse_GovernedIamPolicy {
21494    pub fn new() -> AnalyzeOrgPolicyGovernedAssetsResponse_GovernedIamPolicy {
21495        ::std::default::Default::default()
21496    }
21497
21498    // string attached_resource = 1;
21499
21500
21501    pub fn get_attached_resource(&self) -> &str {
21502        &self.attached_resource
21503    }
21504    pub fn clear_attached_resource(&mut self) {
21505        self.attached_resource.clear();
21506    }
21507
21508    // Param is passed by value, moved
21509    pub fn set_attached_resource(&mut self, v: ::std::string::String) {
21510        self.attached_resource = v;
21511    }
21512
21513    // Mutable pointer to the field.
21514    // If field is not initialized, it is initialized with default value first.
21515    pub fn mut_attached_resource(&mut self) -> &mut ::std::string::String {
21516        &mut self.attached_resource
21517    }
21518
21519    // Take field
21520    pub fn take_attached_resource(&mut self) -> ::std::string::String {
21521        ::std::mem::replace(&mut self.attached_resource, ::std::string::String::new())
21522    }
21523
21524    // .google.iam.v1.Policy policy = 2;
21525
21526
21527    pub fn get_policy(&self) -> &super::policy::Policy {
21528        self.policy.as_ref().unwrap_or_else(|| <super::policy::Policy as ::protobuf::Message>::default_instance())
21529    }
21530    pub fn clear_policy(&mut self) {
21531        self.policy.clear();
21532    }
21533
21534    pub fn has_policy(&self) -> bool {
21535        self.policy.is_some()
21536    }
21537
21538    // Param is passed by value, moved
21539    pub fn set_policy(&mut self, v: super::policy::Policy) {
21540        self.policy = ::protobuf::SingularPtrField::some(v);
21541    }
21542
21543    // Mutable pointer to the field.
21544    // If field is not initialized, it is initialized with default value first.
21545    pub fn mut_policy(&mut self) -> &mut super::policy::Policy {
21546        if self.policy.is_none() {
21547            self.policy.set_default();
21548        }
21549        self.policy.as_mut().unwrap()
21550    }
21551
21552    // Take field
21553    pub fn take_policy(&mut self) -> super::policy::Policy {
21554        self.policy.take().unwrap_or_else(|| super::policy::Policy::new())
21555    }
21556
21557    // string project = 5;
21558
21559
21560    pub fn get_project(&self) -> &str {
21561        &self.project
21562    }
21563    pub fn clear_project(&mut self) {
21564        self.project.clear();
21565    }
21566
21567    // Param is passed by value, moved
21568    pub fn set_project(&mut self, v: ::std::string::String) {
21569        self.project = v;
21570    }
21571
21572    // Mutable pointer to the field.
21573    // If field is not initialized, it is initialized with default value first.
21574    pub fn mut_project(&mut self) -> &mut ::std::string::String {
21575        &mut self.project
21576    }
21577
21578    // Take field
21579    pub fn take_project(&mut self) -> ::std::string::String {
21580        ::std::mem::replace(&mut self.project, ::std::string::String::new())
21581    }
21582
21583    // repeated string folders = 6;
21584
21585
21586    pub fn get_folders(&self) -> &[::std::string::String] {
21587        &self.folders
21588    }
21589    pub fn clear_folders(&mut self) {
21590        self.folders.clear();
21591    }
21592
21593    // Param is passed by value, moved
21594    pub fn set_folders(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
21595        self.folders = v;
21596    }
21597
21598    // Mutable pointer to the field.
21599    pub fn mut_folders(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
21600        &mut self.folders
21601    }
21602
21603    // Take field
21604    pub fn take_folders(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
21605        ::std::mem::replace(&mut self.folders, ::protobuf::RepeatedField::new())
21606    }
21607
21608    // string organization = 7;
21609
21610
21611    pub fn get_organization(&self) -> &str {
21612        &self.organization
21613    }
21614    pub fn clear_organization(&mut self) {
21615        self.organization.clear();
21616    }
21617
21618    // Param is passed by value, moved
21619    pub fn set_organization(&mut self, v: ::std::string::String) {
21620        self.organization = v;
21621    }
21622
21623    // Mutable pointer to the field.
21624    // If field is not initialized, it is initialized with default value first.
21625    pub fn mut_organization(&mut self) -> &mut ::std::string::String {
21626        &mut self.organization
21627    }
21628
21629    // Take field
21630    pub fn take_organization(&mut self) -> ::std::string::String {
21631        ::std::mem::replace(&mut self.organization, ::std::string::String::new())
21632    }
21633}
21634
21635impl ::protobuf::Message for AnalyzeOrgPolicyGovernedAssetsResponse_GovernedIamPolicy {
21636    fn is_initialized(&self) -> bool {
21637        for v in &self.policy {
21638            if !v.is_initialized() {
21639                return false;
21640            }
21641        };
21642        true
21643    }
21644
21645    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
21646        while !is.eof()? {
21647            let (field_number, wire_type) = is.read_tag_unpack()?;
21648            match field_number {
21649                1 => {
21650                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.attached_resource)?;
21651                },
21652                2 => {
21653                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.policy)?;
21654                },
21655                5 => {
21656                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.project)?;
21657                },
21658                6 => {
21659                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.folders)?;
21660                },
21661                7 => {
21662                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.organization)?;
21663                },
21664                _ => {
21665                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
21666                },
21667            };
21668        }
21669        ::std::result::Result::Ok(())
21670    }
21671
21672    // Compute sizes of nested messages
21673    #[allow(unused_variables)]
21674    fn compute_size(&self) -> u32 {
21675        let mut my_size = 0;
21676        if !self.attached_resource.is_empty() {
21677            my_size += ::protobuf::rt::string_size(1, &self.attached_resource);
21678        }
21679        if let Some(ref v) = self.policy.as_ref() {
21680            let len = v.compute_size();
21681            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
21682        }
21683        if !self.project.is_empty() {
21684            my_size += ::protobuf::rt::string_size(5, &self.project);
21685        }
21686        for value in &self.folders {
21687            my_size += ::protobuf::rt::string_size(6, &value);
21688        };
21689        if !self.organization.is_empty() {
21690            my_size += ::protobuf::rt::string_size(7, &self.organization);
21691        }
21692        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
21693        self.cached_size.set(my_size);
21694        my_size
21695    }
21696
21697    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
21698        if !self.attached_resource.is_empty() {
21699            os.write_string(1, &self.attached_resource)?;
21700        }
21701        if let Some(ref v) = self.policy.as_ref() {
21702            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
21703            os.write_raw_varint32(v.get_cached_size())?;
21704            v.write_to_with_cached_sizes(os)?;
21705        }
21706        if !self.project.is_empty() {
21707            os.write_string(5, &self.project)?;
21708        }
21709        for v in &self.folders {
21710            os.write_string(6, &v)?;
21711        };
21712        if !self.organization.is_empty() {
21713            os.write_string(7, &self.organization)?;
21714        }
21715        os.write_unknown_fields(self.get_unknown_fields())?;
21716        ::std::result::Result::Ok(())
21717    }
21718
21719    fn get_cached_size(&self) -> u32 {
21720        self.cached_size.get()
21721    }
21722
21723    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
21724        &self.unknown_fields
21725    }
21726
21727    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
21728        &mut self.unknown_fields
21729    }
21730
21731    fn as_any(&self) -> &dyn (::std::any::Any) {
21732        self as &dyn (::std::any::Any)
21733    }
21734    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
21735        self as &mut dyn (::std::any::Any)
21736    }
21737    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
21738        self
21739    }
21740
21741    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
21742        Self::descriptor_static()
21743    }
21744
21745    fn new() -> AnalyzeOrgPolicyGovernedAssetsResponse_GovernedIamPolicy {
21746        AnalyzeOrgPolicyGovernedAssetsResponse_GovernedIamPolicy::new()
21747    }
21748
21749    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
21750        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
21751        descriptor.get(|| {
21752            let mut fields = ::std::vec::Vec::new();
21753            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
21754                "attached_resource",
21755                |m: &AnalyzeOrgPolicyGovernedAssetsResponse_GovernedIamPolicy| { &m.attached_resource },
21756                |m: &mut AnalyzeOrgPolicyGovernedAssetsResponse_GovernedIamPolicy| { &mut m.attached_resource },
21757            ));
21758            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::policy::Policy>>(
21759                "policy",
21760                |m: &AnalyzeOrgPolicyGovernedAssetsResponse_GovernedIamPolicy| { &m.policy },
21761                |m: &mut AnalyzeOrgPolicyGovernedAssetsResponse_GovernedIamPolicy| { &mut m.policy },
21762            ));
21763            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
21764                "project",
21765                |m: &AnalyzeOrgPolicyGovernedAssetsResponse_GovernedIamPolicy| { &m.project },
21766                |m: &mut AnalyzeOrgPolicyGovernedAssetsResponse_GovernedIamPolicy| { &mut m.project },
21767            ));
21768            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
21769                "folders",
21770                |m: &AnalyzeOrgPolicyGovernedAssetsResponse_GovernedIamPolicy| { &m.folders },
21771                |m: &mut AnalyzeOrgPolicyGovernedAssetsResponse_GovernedIamPolicy| { &mut m.folders },
21772            ));
21773            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
21774                "organization",
21775                |m: &AnalyzeOrgPolicyGovernedAssetsResponse_GovernedIamPolicy| { &m.organization },
21776                |m: &mut AnalyzeOrgPolicyGovernedAssetsResponse_GovernedIamPolicy| { &mut m.organization },
21777            ));
21778            ::protobuf::reflect::MessageDescriptor::new_pb_name::<AnalyzeOrgPolicyGovernedAssetsResponse_GovernedIamPolicy>(
21779                "AnalyzeOrgPolicyGovernedAssetsResponse.GovernedIamPolicy",
21780                fields,
21781                file_descriptor_proto()
21782            )
21783        })
21784    }
21785
21786    fn default_instance() -> &'static AnalyzeOrgPolicyGovernedAssetsResponse_GovernedIamPolicy {
21787        static instance: ::protobuf::rt::LazyV2<AnalyzeOrgPolicyGovernedAssetsResponse_GovernedIamPolicy> = ::protobuf::rt::LazyV2::INIT;
21788        instance.get(AnalyzeOrgPolicyGovernedAssetsResponse_GovernedIamPolicy::new)
21789    }
21790}
21791
21792impl ::protobuf::Clear for AnalyzeOrgPolicyGovernedAssetsResponse_GovernedIamPolicy {
21793    fn clear(&mut self) {
21794        self.attached_resource.clear();
21795        self.policy.clear();
21796        self.project.clear();
21797        self.folders.clear();
21798        self.organization.clear();
21799        self.unknown_fields.clear();
21800    }
21801}
21802
21803impl ::std::fmt::Debug for AnalyzeOrgPolicyGovernedAssetsResponse_GovernedIamPolicy {
21804    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21805        ::protobuf::text_format::fmt(self, f)
21806    }
21807}
21808
21809impl ::protobuf::reflect::ProtobufValue for AnalyzeOrgPolicyGovernedAssetsResponse_GovernedIamPolicy {
21810    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
21811        ::protobuf::reflect::ReflectValueRef::Message(self)
21812    }
21813}
21814
21815#[derive(PartialEq,Clone,Default)]
21816pub struct AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset {
21817    // message fields
21818    pub consolidated_policy: ::protobuf::SingularPtrField<AnalyzerOrgPolicy>,
21819    pub policy_bundle: ::protobuf::RepeatedField<AnalyzerOrgPolicy>,
21820    // message oneof groups
21821    pub governed_asset: ::std::option::Option<AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset_oneof_governed_asset>,
21822    // special fields
21823    pub unknown_fields: ::protobuf::UnknownFields,
21824    pub cached_size: ::protobuf::CachedSize,
21825}
21826
21827impl<'a> ::std::default::Default for &'a AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset {
21828    fn default() -> &'a AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset {
21829        <AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset as ::protobuf::Message>::default_instance()
21830    }
21831}
21832
21833#[derive(Clone,PartialEq,Debug)]
21834pub enum AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset_oneof_governed_asset {
21835    governed_resource(AnalyzeOrgPolicyGovernedAssetsResponse_GovernedResource),
21836    governed_iam_policy(AnalyzeOrgPolicyGovernedAssetsResponse_GovernedIamPolicy),
21837}
21838
21839impl AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset {
21840    pub fn new() -> AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset {
21841        ::std::default::Default::default()
21842    }
21843
21844    // .google.cloud.asset.v1.AnalyzeOrgPolicyGovernedAssetsResponse.GovernedResource governed_resource = 1;
21845
21846
21847    pub fn get_governed_resource(&self) -> &AnalyzeOrgPolicyGovernedAssetsResponse_GovernedResource {
21848        match self.governed_asset {
21849            ::std::option::Option::Some(AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset_oneof_governed_asset::governed_resource(ref v)) => v,
21850            _ => <AnalyzeOrgPolicyGovernedAssetsResponse_GovernedResource as ::protobuf::Message>::default_instance(),
21851        }
21852    }
21853    pub fn clear_governed_resource(&mut self) {
21854        self.governed_asset = ::std::option::Option::None;
21855    }
21856
21857    pub fn has_governed_resource(&self) -> bool {
21858        match self.governed_asset {
21859            ::std::option::Option::Some(AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset_oneof_governed_asset::governed_resource(..)) => true,
21860            _ => false,
21861        }
21862    }
21863
21864    // Param is passed by value, moved
21865    pub fn set_governed_resource(&mut self, v: AnalyzeOrgPolicyGovernedAssetsResponse_GovernedResource) {
21866        self.governed_asset = ::std::option::Option::Some(AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset_oneof_governed_asset::governed_resource(v))
21867    }
21868
21869    // Mutable pointer to the field.
21870    pub fn mut_governed_resource(&mut self) -> &mut AnalyzeOrgPolicyGovernedAssetsResponse_GovernedResource {
21871        if let ::std::option::Option::Some(AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset_oneof_governed_asset::governed_resource(_)) = self.governed_asset {
21872        } else {
21873            self.governed_asset = ::std::option::Option::Some(AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset_oneof_governed_asset::governed_resource(AnalyzeOrgPolicyGovernedAssetsResponse_GovernedResource::new()));
21874        }
21875        match self.governed_asset {
21876            ::std::option::Option::Some(AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset_oneof_governed_asset::governed_resource(ref mut v)) => v,
21877            _ => panic!(),
21878        }
21879    }
21880
21881    // Take field
21882    pub fn take_governed_resource(&mut self) -> AnalyzeOrgPolicyGovernedAssetsResponse_GovernedResource {
21883        if self.has_governed_resource() {
21884            match self.governed_asset.take() {
21885                ::std::option::Option::Some(AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset_oneof_governed_asset::governed_resource(v)) => v,
21886                _ => panic!(),
21887            }
21888        } else {
21889            AnalyzeOrgPolicyGovernedAssetsResponse_GovernedResource::new()
21890        }
21891    }
21892
21893    // .google.cloud.asset.v1.AnalyzeOrgPolicyGovernedAssetsResponse.GovernedIamPolicy governed_iam_policy = 2;
21894
21895
21896    pub fn get_governed_iam_policy(&self) -> &AnalyzeOrgPolicyGovernedAssetsResponse_GovernedIamPolicy {
21897        match self.governed_asset {
21898            ::std::option::Option::Some(AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset_oneof_governed_asset::governed_iam_policy(ref v)) => v,
21899            _ => <AnalyzeOrgPolicyGovernedAssetsResponse_GovernedIamPolicy as ::protobuf::Message>::default_instance(),
21900        }
21901    }
21902    pub fn clear_governed_iam_policy(&mut self) {
21903        self.governed_asset = ::std::option::Option::None;
21904    }
21905
21906    pub fn has_governed_iam_policy(&self) -> bool {
21907        match self.governed_asset {
21908            ::std::option::Option::Some(AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset_oneof_governed_asset::governed_iam_policy(..)) => true,
21909            _ => false,
21910        }
21911    }
21912
21913    // Param is passed by value, moved
21914    pub fn set_governed_iam_policy(&mut self, v: AnalyzeOrgPolicyGovernedAssetsResponse_GovernedIamPolicy) {
21915        self.governed_asset = ::std::option::Option::Some(AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset_oneof_governed_asset::governed_iam_policy(v))
21916    }
21917
21918    // Mutable pointer to the field.
21919    pub fn mut_governed_iam_policy(&mut self) -> &mut AnalyzeOrgPolicyGovernedAssetsResponse_GovernedIamPolicy {
21920        if let ::std::option::Option::Some(AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset_oneof_governed_asset::governed_iam_policy(_)) = self.governed_asset {
21921        } else {
21922            self.governed_asset = ::std::option::Option::Some(AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset_oneof_governed_asset::governed_iam_policy(AnalyzeOrgPolicyGovernedAssetsResponse_GovernedIamPolicy::new()));
21923        }
21924        match self.governed_asset {
21925            ::std::option::Option::Some(AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset_oneof_governed_asset::governed_iam_policy(ref mut v)) => v,
21926            _ => panic!(),
21927        }
21928    }
21929
21930    // Take field
21931    pub fn take_governed_iam_policy(&mut self) -> AnalyzeOrgPolicyGovernedAssetsResponse_GovernedIamPolicy {
21932        if self.has_governed_iam_policy() {
21933            match self.governed_asset.take() {
21934                ::std::option::Option::Some(AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset_oneof_governed_asset::governed_iam_policy(v)) => v,
21935                _ => panic!(),
21936            }
21937        } else {
21938            AnalyzeOrgPolicyGovernedAssetsResponse_GovernedIamPolicy::new()
21939        }
21940    }
21941
21942    // .google.cloud.asset.v1.AnalyzerOrgPolicy consolidated_policy = 3;
21943
21944
21945    pub fn get_consolidated_policy(&self) -> &AnalyzerOrgPolicy {
21946        self.consolidated_policy.as_ref().unwrap_or_else(|| <AnalyzerOrgPolicy as ::protobuf::Message>::default_instance())
21947    }
21948    pub fn clear_consolidated_policy(&mut self) {
21949        self.consolidated_policy.clear();
21950    }
21951
21952    pub fn has_consolidated_policy(&self) -> bool {
21953        self.consolidated_policy.is_some()
21954    }
21955
21956    // Param is passed by value, moved
21957    pub fn set_consolidated_policy(&mut self, v: AnalyzerOrgPolicy) {
21958        self.consolidated_policy = ::protobuf::SingularPtrField::some(v);
21959    }
21960
21961    // Mutable pointer to the field.
21962    // If field is not initialized, it is initialized with default value first.
21963    pub fn mut_consolidated_policy(&mut self) -> &mut AnalyzerOrgPolicy {
21964        if self.consolidated_policy.is_none() {
21965            self.consolidated_policy.set_default();
21966        }
21967        self.consolidated_policy.as_mut().unwrap()
21968    }
21969
21970    // Take field
21971    pub fn take_consolidated_policy(&mut self) -> AnalyzerOrgPolicy {
21972        self.consolidated_policy.take().unwrap_or_else(|| AnalyzerOrgPolicy::new())
21973    }
21974
21975    // repeated .google.cloud.asset.v1.AnalyzerOrgPolicy policy_bundle = 4;
21976
21977
21978    pub fn get_policy_bundle(&self) -> &[AnalyzerOrgPolicy] {
21979        &self.policy_bundle
21980    }
21981    pub fn clear_policy_bundle(&mut self) {
21982        self.policy_bundle.clear();
21983    }
21984
21985    // Param is passed by value, moved
21986    pub fn set_policy_bundle(&mut self, v: ::protobuf::RepeatedField<AnalyzerOrgPolicy>) {
21987        self.policy_bundle = v;
21988    }
21989
21990    // Mutable pointer to the field.
21991    pub fn mut_policy_bundle(&mut self) -> &mut ::protobuf::RepeatedField<AnalyzerOrgPolicy> {
21992        &mut self.policy_bundle
21993    }
21994
21995    // Take field
21996    pub fn take_policy_bundle(&mut self) -> ::protobuf::RepeatedField<AnalyzerOrgPolicy> {
21997        ::std::mem::replace(&mut self.policy_bundle, ::protobuf::RepeatedField::new())
21998    }
21999}
22000
22001impl ::protobuf::Message for AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset {
22002    fn is_initialized(&self) -> bool {
22003        if let Some(AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset_oneof_governed_asset::governed_resource(ref v)) = self.governed_asset {
22004            if !v.is_initialized() {
22005                return false;
22006            }
22007        }
22008        if let Some(AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset_oneof_governed_asset::governed_iam_policy(ref v)) = self.governed_asset {
22009            if !v.is_initialized() {
22010                return false;
22011            }
22012        }
22013        for v in &self.consolidated_policy {
22014            if !v.is_initialized() {
22015                return false;
22016            }
22017        };
22018        for v in &self.policy_bundle {
22019            if !v.is_initialized() {
22020                return false;
22021            }
22022        };
22023        true
22024    }
22025
22026    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
22027        while !is.eof()? {
22028            let (field_number, wire_type) = is.read_tag_unpack()?;
22029            match field_number {
22030                1 => {
22031                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
22032                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
22033                    }
22034                    self.governed_asset = ::std::option::Option::Some(AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset_oneof_governed_asset::governed_resource(is.read_message()?));
22035                },
22036                2 => {
22037                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
22038                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
22039                    }
22040                    self.governed_asset = ::std::option::Option::Some(AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset_oneof_governed_asset::governed_iam_policy(is.read_message()?));
22041                },
22042                3 => {
22043                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.consolidated_policy)?;
22044                },
22045                4 => {
22046                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.policy_bundle)?;
22047                },
22048                _ => {
22049                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
22050                },
22051            };
22052        }
22053        ::std::result::Result::Ok(())
22054    }
22055
22056    // Compute sizes of nested messages
22057    #[allow(unused_variables)]
22058    fn compute_size(&self) -> u32 {
22059        let mut my_size = 0;
22060        if let Some(ref v) = self.consolidated_policy.as_ref() {
22061            let len = v.compute_size();
22062            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
22063        }
22064        for value in &self.policy_bundle {
22065            let len = value.compute_size();
22066            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
22067        };
22068        if let ::std::option::Option::Some(ref v) = self.governed_asset {
22069            match v {
22070                &AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset_oneof_governed_asset::governed_resource(ref v) => {
22071                    let len = v.compute_size();
22072                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
22073                },
22074                &AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset_oneof_governed_asset::governed_iam_policy(ref v) => {
22075                    let len = v.compute_size();
22076                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
22077                },
22078            };
22079        }
22080        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
22081        self.cached_size.set(my_size);
22082        my_size
22083    }
22084
22085    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
22086        if let Some(ref v) = self.consolidated_policy.as_ref() {
22087            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
22088            os.write_raw_varint32(v.get_cached_size())?;
22089            v.write_to_with_cached_sizes(os)?;
22090        }
22091        for v in &self.policy_bundle {
22092            os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
22093            os.write_raw_varint32(v.get_cached_size())?;
22094            v.write_to_with_cached_sizes(os)?;
22095        };
22096        if let ::std::option::Option::Some(ref v) = self.governed_asset {
22097            match v {
22098                &AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset_oneof_governed_asset::governed_resource(ref v) => {
22099                    os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
22100                    os.write_raw_varint32(v.get_cached_size())?;
22101                    v.write_to_with_cached_sizes(os)?;
22102                },
22103                &AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset_oneof_governed_asset::governed_iam_policy(ref v) => {
22104                    os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
22105                    os.write_raw_varint32(v.get_cached_size())?;
22106                    v.write_to_with_cached_sizes(os)?;
22107                },
22108            };
22109        }
22110        os.write_unknown_fields(self.get_unknown_fields())?;
22111        ::std::result::Result::Ok(())
22112    }
22113
22114    fn get_cached_size(&self) -> u32 {
22115        self.cached_size.get()
22116    }
22117
22118    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
22119        &self.unknown_fields
22120    }
22121
22122    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
22123        &mut self.unknown_fields
22124    }
22125
22126    fn as_any(&self) -> &dyn (::std::any::Any) {
22127        self as &dyn (::std::any::Any)
22128    }
22129    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
22130        self as &mut dyn (::std::any::Any)
22131    }
22132    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
22133        self
22134    }
22135
22136    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
22137        Self::descriptor_static()
22138    }
22139
22140    fn new() -> AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset {
22141        AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset::new()
22142    }
22143
22144    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
22145        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
22146        descriptor.get(|| {
22147            let mut fields = ::std::vec::Vec::new();
22148            fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, AnalyzeOrgPolicyGovernedAssetsResponse_GovernedResource>(
22149                "governed_resource",
22150                AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset::has_governed_resource,
22151                AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset::get_governed_resource,
22152            ));
22153            fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, AnalyzeOrgPolicyGovernedAssetsResponse_GovernedIamPolicy>(
22154                "governed_iam_policy",
22155                AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset::has_governed_iam_policy,
22156                AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset::get_governed_iam_policy,
22157            ));
22158            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<AnalyzerOrgPolicy>>(
22159                "consolidated_policy",
22160                |m: &AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset| { &m.consolidated_policy },
22161                |m: &mut AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset| { &mut m.consolidated_policy },
22162            ));
22163            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<AnalyzerOrgPolicy>>(
22164                "policy_bundle",
22165                |m: &AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset| { &m.policy_bundle },
22166                |m: &mut AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset| { &mut m.policy_bundle },
22167            ));
22168            ::protobuf::reflect::MessageDescriptor::new_pb_name::<AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset>(
22169                "AnalyzeOrgPolicyGovernedAssetsResponse.GovernedAsset",
22170                fields,
22171                file_descriptor_proto()
22172            )
22173        })
22174    }
22175
22176    fn default_instance() -> &'static AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset {
22177        static instance: ::protobuf::rt::LazyV2<AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset> = ::protobuf::rt::LazyV2::INIT;
22178        instance.get(AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset::new)
22179    }
22180}
22181
22182impl ::protobuf::Clear for AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset {
22183    fn clear(&mut self) {
22184        self.governed_asset = ::std::option::Option::None;
22185        self.governed_asset = ::std::option::Option::None;
22186        self.consolidated_policy.clear();
22187        self.policy_bundle.clear();
22188        self.unknown_fields.clear();
22189    }
22190}
22191
22192impl ::std::fmt::Debug for AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset {
22193    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22194        ::protobuf::text_format::fmt(self, f)
22195    }
22196}
22197
22198impl ::protobuf::reflect::ProtobufValue for AnalyzeOrgPolicyGovernedAssetsResponse_GovernedAsset {
22199    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
22200        ::protobuf::reflect::ReflectValueRef::Message(self)
22201    }
22202}
22203
22204#[derive(Clone,PartialEq,Eq,Debug,Hash)]
22205pub enum ContentType {
22206    CONTENT_TYPE_UNSPECIFIED = 0,
22207    RESOURCE = 1,
22208    IAM_POLICY = 2,
22209    ORG_POLICY = 4,
22210    ACCESS_POLICY = 5,
22211    OS_INVENTORY = 6,
22212    RELATIONSHIP = 7,
22213}
22214
22215impl ::protobuf::ProtobufEnum for ContentType {
22216    fn value(&self) -> i32 {
22217        *self as i32
22218    }
22219
22220    fn from_i32(value: i32) -> ::std::option::Option<ContentType> {
22221        match value {
22222            0 => ::std::option::Option::Some(ContentType::CONTENT_TYPE_UNSPECIFIED),
22223            1 => ::std::option::Option::Some(ContentType::RESOURCE),
22224            2 => ::std::option::Option::Some(ContentType::IAM_POLICY),
22225            4 => ::std::option::Option::Some(ContentType::ORG_POLICY),
22226            5 => ::std::option::Option::Some(ContentType::ACCESS_POLICY),
22227            6 => ::std::option::Option::Some(ContentType::OS_INVENTORY),
22228            7 => ::std::option::Option::Some(ContentType::RELATIONSHIP),
22229            _ => ::std::option::Option::None
22230        }
22231    }
22232
22233    fn values() -> &'static [Self] {
22234        static values: &'static [ContentType] = &[
22235            ContentType::CONTENT_TYPE_UNSPECIFIED,
22236            ContentType::RESOURCE,
22237            ContentType::IAM_POLICY,
22238            ContentType::ORG_POLICY,
22239            ContentType::ACCESS_POLICY,
22240            ContentType::OS_INVENTORY,
22241            ContentType::RELATIONSHIP,
22242        ];
22243        values
22244    }
22245
22246    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
22247        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
22248        descriptor.get(|| {
22249            ::protobuf::reflect::EnumDescriptor::new_pb_name::<ContentType>("ContentType", file_descriptor_proto())
22250        })
22251    }
22252}
22253
22254impl ::std::marker::Copy for ContentType {
22255}
22256
22257impl ::std::default::Default for ContentType {
22258    fn default() -> Self {
22259        ContentType::CONTENT_TYPE_UNSPECIFIED
22260    }
22261}
22262
22263impl ::protobuf::reflect::ProtobufValue for ContentType {
22264    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
22265        ::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
22266    }
22267}
22268
22269static file_descriptor_proto_data: &'static [u8] = b"\
22270    \n)google/cloud/asset/v1/asset_service.proto\x12\x15google.cloud.asset.v\
22271    1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\
22272    \x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\
22273    \"google/cloud/asset/v1/assets.proto\x1a\x1agoogle/iam/v1/policy.proto\
22274    \x1a#google/longrunning/operations.proto\x1a\x1egoogle/protobuf/duration\
22275    .proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x20google/protobuf/field_m\
22276    ask.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/tim\
22277    estamp.proto\x1a\x17google/rpc/status.proto\x1a\x16google/type/expr.prot\
22278    o\"g\n#AnalyzeIamPolicyLongrunningMetadata\x12@\n\x0bcreate_time\x18\x01\
22279    \x20\x01(\x0b2\x1a.google.protobuf.TimestampR\ncreateTimeB\x03\xe0A\x03\
22280    \"\xf5\x02\n\x13ExportAssetsRequest\x12?\n\x06parent\x18\x01\x20\x01(\tR\
22281    \x06parentB'\xfaA!\x12\x1fcloudasset.googleapis.com/Asset\xe0A\x02\x127\
22282    \n\tread_time\x18\x02\x20\x01(\x0b2\x1a.google.protobuf.TimestampR\x08re\
22283    adTime\x12\x1f\n\x0basset_types\x18\x03\x20\x03(\tR\nassetTypes\x12E\n\
22284    \x0ccontent_type\x18\x04\x20\x01(\x0e2\".google.cloud.asset.v1.ContentTy\
22285    peR\x0bcontentType\x12M\n\routput_config\x18\x05\x20\x01(\x0b2#.google.c\
22286    loud.asset.v1.OutputConfigR\x0coutputConfigB\x03\xe0A\x02\x12-\n\x12rela\
22287    tionship_types\x18\x06\x20\x03(\tR\x11relationshipTypes\"\xe3\x01\n\x14E\
22288    xportAssetsResponse\x127\n\tread_time\x18\x01\x20\x01(\x0b2\x1a.google.p\
22289    rotobuf.TimestampR\x08readTime\x12H\n\routput_config\x18\x02\x20\x01(\
22290    \x0b2#.google.cloud.asset.v1.OutputConfigR\x0coutputConfig\x12H\n\routpu\
22291    t_result\x18\x03\x20\x01(\x0b2#.google.cloud.asset.v1.OutputResultR\x0co\
22292    utputResult\"\xe0\x02\n\x11ListAssetsRequest\x12?\n\x06parent\x18\x01\
22293    \x20\x01(\tR\x06parentB'\xfaA!\x12\x1fcloudasset.googleapis.com/Asset\
22294    \xe0A\x02\x127\n\tread_time\x18\x02\x20\x01(\x0b2\x1a.google.protobuf.Ti\
22295    mestampR\x08readTime\x12\x1f\n\x0basset_types\x18\x03\x20\x03(\tR\nasset\
22296    Types\x12E\n\x0ccontent_type\x18\x04\x20\x01(\x0e2\".google.cloud.asset.\
22297    v1.ContentTypeR\x0bcontentType\x12\x1b\n\tpage_size\x18\x05\x20\x01(\x05\
22298    R\x08pageSize\x12\x1d\n\npage_token\x18\x06\x20\x01(\tR\tpageToken\x12-\
22299    \n\x12relationship_types\x18\x07\x20\x03(\tR\x11relationshipTypes\"\xab\
22300    \x01\n\x12ListAssetsResponse\x127\n\tread_time\x18\x01\x20\x01(\x0b2\x1a\
22301    .google.protobuf.TimestampR\x08readTime\x124\n\x06assets\x18\x02\x20\x03\
22302    (\x0b2\x1c.google.cloud.asset.v1.AssetR\x06assets\x12&\n\x0fnext_page_to\
22303    ken\x18\x03\x20\x01(\tR\rnextPageToken\"\xd2\x02\n\x1cBatchGetAssetsHist\
22304    oryRequest\x12?\n\x06parent\x18\x01\x20\x01(\tR\x06parentB'\xfaA!\x12\
22305    \x1fcloudasset.googleapis.com/Asset\xe0A\x02\x12\x1f\n\x0basset_names\
22306    \x18\x02\x20\x03(\tR\nassetNames\x12J\n\x0ccontent_type\x18\x03\x20\x01(\
22307    \x0e2\".google.cloud.asset.v1.ContentTypeR\x0bcontentTypeB\x03\xe0A\x01\
22308    \x12P\n\x10read_time_window\x18\x04\x20\x01(\x0b2!.google.cloud.asset.v1\
22309    .TimeWindowR\x0ereadTimeWindowB\x03\xe0A\x01\x122\n\x12relationship_type\
22310    s\x18\x05\x20\x03(\tR\x11relationshipTypesB\x03\xe0A\x01\"]\n\x1dBatchGe\
22311    tAssetsHistoryResponse\x12<\n\x06assets\x18\x01\x20\x03(\x0b2$.google.cl\
22312    oud.asset.v1.TemporalAssetR\x06assets\"\x84\x01\n\x11CreateFeedRequest\
22313    \x12\x1b\n\x06parent\x18\x01\x20\x01(\tR\x06parentB\x03\xe0A\x02\x12\x1c\
22314    \n\x07feed_id\x18\x02\x20\x01(\tR\x06feedIdB\x03\xe0A\x02\x124\n\x04feed\
22315    \x18\x03\x20\x01(\x0b2\x1b.google.cloud.asset.v1.FeedR\x04feedB\x03\xe0A\
22316    \x02\"L\n\x0eGetFeedRequest\x12:\n\x04name\x18\x01\x20\x01(\tR\x04nameB&\
22317    \xfaA\x20\n\x1ecloudasset.googleapis.com/Feed\xe0A\x02\"/\n\x10ListFeeds\
22318    Request\x12\x1b\n\x06parent\x18\x01\x20\x01(\tR\x06parentB\x03\xe0A\x02\
22319    \"F\n\x11ListFeedsResponse\x121\n\x05feeds\x18\x01\x20\x03(\x0b2\x1b.goo\
22320    gle.cloud.asset.v1.FeedR\x05feeds\"\x8b\x01\n\x11UpdateFeedRequest\x124\
22321    \n\x04feed\x18\x01\x20\x01(\x0b2\x1b.google.cloud.asset.v1.FeedR\x04feed\
22322    B\x03\xe0A\x02\x12@\n\x0bupdate_mask\x18\x02\x20\x01(\x0b2\x1a.google.pr\
22323    otobuf.FieldMaskR\nupdateMaskB\x03\xe0A\x02\"O\n\x11DeleteFeedRequest\
22324    \x12:\n\x04name\x18\x01\x20\x01(\tR\x04nameB&\xfaA\x20\n\x1ecloudasset.g\
22325    oogleapis.com/Feed\xe0A\x02\"\xd0\x01\n\x0cOutputConfig\x12P\n\x0fgcs_de\
22326    stination\x18\x01\x20\x01(\x0b2%.google.cloud.asset.v1.GcsDestinationH\0\
22327    R\x0egcsDestination\x12_\n\x14bigquery_destination\x18\x02\x20\x01(\x0b2\
22328    *.google.cloud.asset.v1.BigQueryDestinationH\0R\x13bigqueryDestinationB\
22329    \r\n\x0bdestination\"a\n\x0cOutputResult\x12G\n\ngcs_result\x18\x01\x20\
22330    \x01(\x0b2&.google.cloud.asset.v1.GcsOutputResultH\0R\tgcsResultB\x08\n\
22331    \x06result\"%\n\x0fGcsOutputResult\x12\x12\n\x04uris\x18\x01\x20\x03(\tR\
22332    \x04uris\"S\n\x0eGcsDestination\x12\x12\n\x03uri\x18\x01\x20\x01(\tH\0R\
22333    \x03uri\x12\x1f\n\nuri_prefix\x18\x02\x20\x01(\tH\0R\turiPrefixB\x0c\n\n\
22334    object_uri\"\xf6\x01\n\x13BigQueryDestination\x12\x1d\n\x07dataset\x18\
22335    \x01\x20\x01(\tR\x07datasetB\x03\xe0A\x02\x12\x19\n\x05table\x18\x02\x20\
22336    \x01(\tR\x05tableB\x03\xe0A\x02\x12\x14\n\x05force\x18\x03\x20\x01(\x08R\
22337    \x05force\x12K\n\x0epartition_spec\x18\x04\x20\x01(\x0b2$.google.cloud.a\
22338    sset.v1.PartitionSpecR\rpartitionSpec\x12B\n\x1eseparate_tables_per_asse\
22339    t_type\x18\x05\x20\x01(\x08R\x1aseparateTablesPerAssetType\"\xb7\x01\n\r\
22340    PartitionSpec\x12V\n\rpartition_key\x18\x01\x20\x01(\x0e21.google.cloud.\
22341    asset.v1.PartitionSpec.PartitionKeyR\x0cpartitionKey\"N\n\x0cPartitionKe\
22342    y\x12\x1d\n\x19PARTITION_KEY_UNSPECIFIED\x10\0\x12\r\n\tREAD_TIME\x10\
22343    \x01\x12\x10\n\x0cREQUEST_TIME\x10\x02\")\n\x11PubsubDestination\x12\x14\
22344    \n\x05topic\x18\x01\x20\x01(\tR\x05topic\"|\n\x10FeedOutputConfig\x12Y\n\
22345    \x12pubsub_destination\x18\x01\x20\x01(\x0b2(.google.cloud.asset.v1.Pubs\
22346    ubDestinationH\0R\x11pubsubDestinationB\r\n\x0bdestination\"\xf8\x03\n\
22347    \x04Feed\x12\x17\n\x04name\x18\x01\x20\x01(\tR\x04nameB\x03\xe0A\x02\x12\
22348    \x1f\n\x0basset_names\x18\x02\x20\x03(\tR\nassetNames\x12\x1f\n\x0basset\
22349    _types\x18\x03\x20\x03(\tR\nassetTypes\x12E\n\x0ccontent_type\x18\x04\
22350    \x20\x01(\x0e2\".google.cloud.asset.v1.ContentTypeR\x0bcontentType\x12Z\
22351    \n\x12feed_output_config\x18\x05\x20\x01(\x0b2'.google.cloud.asset.v1.Fe\
22352    edOutputConfigR\x10feedOutputConfigB\x03\xe0A\x02\x12/\n\tcondition\x18\
22353    \x06\x20\x01(\x0b2\x11.google.type.ExprR\tcondition\x12-\n\x12relationsh\
22354    ip_types\x18\x07\x20\x03(\tR\x11relationshipTypes:\x91\x01\xeaA\x8d\x01\
22355    \n\x1ecloudasset.googleapis.com/Feed\x12\x1fprojects/{project}/feeds/{fe\
22356    ed}\x12\x1dfolders/{folder}/feeds/{feed}\x12)organizations/{organization\
22357    }/feeds/{feed}\x20\x01\"\x9b\x02\n\x19SearchAllResourcesRequest\x12\x19\
22358    \n\x05scope\x18\x01\x20\x01(\tR\x05scopeB\x03\xe0A\x02\x12\x19\n\x05quer\
22359    y\x18\x02\x20\x01(\tR\x05queryB\x03\xe0A\x01\x12$\n\x0basset_types\x18\
22360    \x03\x20\x03(\tR\nassetTypesB\x03\xe0A\x01\x12\x20\n\tpage_size\x18\x04\
22361    \x20\x01(\x05R\x08pageSizeB\x03\xe0A\x01\x12\"\n\npage_token\x18\x05\x20\
22362    \x01(\tR\tpageTokenB\x03\xe0A\x01\x12\x1e\n\x08order_by\x18\x06\x20\x01(\
22363    \tR\x07orderByB\x03\xe0A\x01\x12<\n\tread_mask\x18\x08\x20\x01(\x0b2\x1a\
22364    .google.protobuf.FieldMaskR\x08readMaskB\x03\xe0A\x01\"\x8b\x01\n\x1aSea\
22365    rchAllResourcesResponse\x12E\n\x07results\x18\x01\x20\x03(\x0b2+.google.\
22366    cloud.asset.v1.ResourceSearchResultR\x07results\x12&\n\x0fnext_page_toke\
22367    n\x18\x02\x20\x01(\tR\rnextPageToken\"\xdf\x01\n\x1bSearchAllIamPolicies\
22368    Request\x12\x19\n\x05scope\x18\x01\x20\x01(\tR\x05scopeB\x03\xe0A\x02\
22369    \x12\x19\n\x05query\x18\x02\x20\x01(\tR\x05queryB\x03\xe0A\x01\x12\x20\n\
22370    \tpage_size\x18\x03\x20\x01(\x05R\x08pageSizeB\x03\xe0A\x01\x12\"\n\npag\
22371    e_token\x18\x04\x20\x01(\tR\tpageTokenB\x03\xe0A\x01\x12$\n\x0basset_typ\
22372    es\x18\x05\x20\x03(\tR\nassetTypesB\x03\xe0A\x01\x12\x1e\n\x08order_by\
22373    \x18\x07\x20\x01(\tR\x07orderByB\x03\xe0A\x01\"\x8e\x01\n\x1cSearchAllIa\
22374    mPoliciesResponse\x12F\n\x07results\x18\x01\x20\x03(\x0b2,.google.cloud.\
22375    asset.v1.IamPolicySearchResultR\x07results\x12&\n\x0fnext_page_token\x18\
22376    \x02\x20\x01(\tR\rnextPageToken\"\xcf\t\n\x16IamPolicyAnalysisQuery\x12\
22377    \x19\n\x05scope\x18\x01\x20\x01(\tR\x05scopeB\x03\xe0A\x02\x12p\n\x11res\
22378    ource_selector\x18\x02\x20\x01(\x0b2>.google.cloud.asset.v1.IamPolicyAna\
22379    lysisQuery.ResourceSelectorR\x10resourceSelectorB\x03\xe0A\x01\x12p\n\
22380    \x11identity_selector\x18\x03\x20\x01(\x0b2>.google.cloud.asset.v1.IamPo\
22381    licyAnalysisQuery.IdentitySelectorR\x10identitySelectorB\x03\xe0A\x01\
22382    \x12j\n\x0faccess_selector\x18\x04\x20\x01(\x0b2<.google.cloud.asset.v1.\
22383    IamPolicyAnalysisQuery.AccessSelectorR\x0eaccessSelectorB\x03\xe0A\x01\
22384    \x12T\n\x07options\x18\x05\x20\x01(\x0b25.google.cloud.asset.v1.IamPolic\
22385    yAnalysisQuery.OptionsR\x07optionsB\x03\xe0A\x01\x12p\n\x11condition_con\
22386    text\x18\x06\x20\x01(\x0b2>.google.cloud.asset.v1.IamPolicyAnalysisQuery\
22387    .ConditionContextR\x10conditionContextB\x03\xe0A\x01\x1aE\n\x10ResourceS\
22388    elector\x121\n\x12full_resource_name\x18\x01\x20\x01(\tR\x10fullResource\
22389    NameB\x03\xe0A\x02\x1a3\n\x10IdentitySelector\x12\x1f\n\x08identity\x18\
22390    \x01\x20\x01(\tR\x08identityB\x03\xe0A\x02\x1aR\n\x0eAccessSelector\x12\
22391    \x19\n\x05roles\x18\x01\x20\x03(\tR\x05rolesB\x03\xe0A\x01\x12%\n\x0bper\
22392    missions\x18\x02\x20\x03(\tR\x0bpermissionsB\x03\xe0A\x01\x1a\xcf\x02\n\
22393    \x07Options\x12(\n\rexpand_groups\x18\x01\x20\x01(\x08R\x0cexpandGroupsB\
22394    \x03\xe0A\x01\x12&\n\x0cexpand_roles\x18\x02\x20\x01(\x08R\x0bexpandRole\
22395    sB\x03\xe0A\x01\x12.\n\x10expand_resources\x18\x03\x20\x01(\x08R\x0fexpa\
22396    ndResourcesB\x03\xe0A\x01\x127\n\x15output_resource_edges\x18\x04\x20\
22397    \x01(\x08R\x13outputResourceEdgesB\x03\xe0A\x01\x121\n\x12output_group_e\
22398    dges\x18\x05\x20\x01(\x08R\x10outputGroupEdgesB\x03\xe0A\x01\x12V\n%anal\
22399    yze_service_account_impersonation\x18\x06\x20\x01(\x08R\"analyzeServiceA\
22400    ccountImpersonationB\x03\xe0A\x01\x1a`\n\x10ConditionContext\x12=\n\x0ba\
22401    ccess_time\x18\x01\x20\x01(\x0b2\x1a.google.protobuf.TimestampH\0R\nacce\
22402    ssTimeB\r\n\x0bTimeContext\"\xf8\x01\n\x17AnalyzeIamPolicyRequest\x12Y\n\
22403    \x0eanalysis_query\x18\x01\x20\x01(\x0b2-.google.cloud.asset.v1.IamPolic\
22404    yAnalysisQueryR\ranalysisQueryB\x03\xe0A\x02\x125\n\x14saved_analysis_qu\
22405    ery\x18\x03\x20\x01(\tR\x12savedAnalysisQueryB\x03\xe0A\x01\x12K\n\x11ex\
22406    ecution_timeout\x18\x02\x20\x01(\x0b2\x19.google.protobuf.DurationR\x10e\
22407    xecutionTimeoutB\x03\xe0A\x01\"\x8f\x05\n\x18AnalyzeIamPolicyResponse\
22408    \x12f\n\rmain_analysis\x18\x01\x20\x01(\x0b2A.google.cloud.asset.v1.Anal\
22409    yzeIamPolicyResponse.IamPolicyAnalysisR\x0cmainAnalysis\x12\x96\x01\n&se\
22410    rvice_account_impersonation_analysis\x18\x02\x20\x03(\x0b2A.google.cloud\
22411    .asset.v1.AnalyzeIamPolicyResponse.IamPolicyAnalysisR#serviceAccountImpe\
22412    rsonationAnalysis\x12%\n\x0efully_explored\x18\x03\x20\x01(\x08R\rfullyE\
22413    xplored\x1a\xca\x02\n\x11IamPolicyAnalysis\x12T\n\x0eanalysis_query\x18\
22414    \x01\x20\x01(\x0b2-.google.cloud.asset.v1.IamPolicyAnalysisQueryR\ranaly\
22415    sisQuery\x12Y\n\x10analysis_results\x18\x02\x20\x03(\x0b2..google.cloud.\
22416    asset.v1.IamPolicyAnalysisResultR\x0fanalysisResults\x12%\n\x0efully_exp\
22417    lored\x18\x03\x20\x01(\x08R\rfullyExplored\x12]\n\x13non_critical_errors\
22418    \x18\x05\x20\x03(\x0b2-.google.cloud.asset.v1.IamPolicyAnalysisStateR\
22419    \x11nonCriticalErrors\"\x94\x05\n\x1dIamPolicyAnalysisOutputConfig\x12n\
22420    \n\x0fgcs_destination\x18\x01\x20\x01(\x0b2C.google.cloud.asset.v1.IamPo\
22421    licyAnalysisOutputConfig.GcsDestinationH\0R\x0egcsDestination\x12}\n\x14\
22422    bigquery_destination\x18\x02\x20\x01(\x0b2H.google.cloud.asset.v1.IamPol\
22423    icyAnalysisOutputConfig.BigQueryDestinationH\0R\x13bigqueryDestination\
22424    \x1a'\n\x0eGcsDestination\x12\x15\n\x03uri\x18\x01\x20\x01(\tR\x03uriB\
22425    \x03\xe0A\x02\x1a\xcb\x02\n\x13BigQueryDestination\x12\x1d\n\x07dataset\
22426    \x18\x01\x20\x01(\tR\x07datasetB\x03\xe0A\x02\x12&\n\x0ctable_prefix\x18\
22427    \x02\x20\x01(\tR\x0btablePrefixB\x03\xe0A\x02\x12z\n\rpartition_key\x18\
22428    \x03\x20\x01(\x0e2U.google.cloud.asset.v1.IamPolicyAnalysisOutputConfig.\
22429    BigQueryDestination.PartitionKeyR\x0cpartitionKey\x120\n\x11write_dispos\
22430    ition\x18\x04\x20\x01(\tR\x10writeDispositionB\x03\xe0A\x01\"?\n\x0cPart\
22431    itionKey\x12\x1d\n\x19PARTITION_KEY_UNSPECIFIED\x10\0\x12\x10\n\x0cREQUE\
22432    ST_TIME\x10\x01B\r\n\x0bdestination\"\x96\x02\n\"AnalyzeIamPolicyLongrun\
22433    ningRequest\x12Y\n\x0eanalysis_query\x18\x01\x20\x01(\x0b2-.google.cloud\
22434    .asset.v1.IamPolicyAnalysisQueryR\ranalysisQueryB\x03\xe0A\x02\x125\n\
22435    \x14saved_analysis_query\x18\x03\x20\x01(\tR\x12savedAnalysisQueryB\x03\
22436    \xe0A\x01\x12^\n\routput_config\x18\x02\x20\x01(\x0b24.google.cloud.asse\
22437    t.v1.IamPolicyAnalysisOutputConfigR\x0coutputConfigB\x03\xe0A\x02\"%\n#A\
22438    nalyzeIamPolicyLongrunningResponse\"\xb2\x06\n\nSavedQuery\x12\x12\n\x04\
22439    name\x18\x01\x20\x01(\tR\x04name\x12\x20\n\x0bdescription\x18\x02\x20\
22440    \x01(\tR\x0bdescription\x12@\n\x0bcreate_time\x18\x03\x20\x01(\x0b2\x1a.\
22441    google.protobuf.TimestampR\ncreateTimeB\x03\xe0A\x03\x12\x1d\n\x07creato\
22442    r\x18\x04\x20\x01(\tR\x07creatorB\x03\xe0A\x03\x12I\n\x10last_update_tim\
22443    e\x18\x05\x20\x01(\x0b2\x1a.google.protobuf.TimestampR\x0elastUpdateTime\
22444    B\x03\xe0A\x03\x12&\n\x0clast_updater\x18\x06\x20\x01(\tR\x0blastUpdater\
22445    B\x03\xe0A\x03\x12E\n\x06labels\x18\x07\x20\x03(\x0b2-.google.cloud.asse\
22446    t.v1.SavedQuery.LabelsEntryR\x06labels\x12H\n\x07content\x18\x08\x20\x01\
22447    (\x0b2..google.cloud.asset.v1.SavedQuery.QueryContentR\x07content\x1a\
22448    \x8b\x01\n\x0cQueryContent\x12j\n\x19iam_policy_analysis_query\x18\x01\
22449    \x20\x01(\x0b2-.google.cloud.asset.v1.IamPolicyAnalysisQueryH\0R\x16iamP\
22450    olicyAnalysisQueryB\x0f\n\rquery_content\x1a9\n\x0bLabelsEntry\x12\x10\n\
22451    \x03key\x18\x01\x20\x01(\tR\x03key\x12\x14\n\x05value\x18\x02\x20\x01(\t\
22452    R\x05value:\x028\x01:\xbf\x01\xeaA\xbb\x01\n$cloudasset.googleapis.com/S\
22453    avedQuery\x12-projects/{project}/savedQueries/{saved_query}\x12+folders/\
22454    {folder}/savedQueries/{saved_query}\x127organizations/{organization}/sav\
22455    edQueries/{saved_query}\"\xd3\x01\n\x17CreateSavedQueryRequest\x12D\n\
22456    \x06parent\x18\x01\x20\x01(\tR\x06parentB,\xfaA&\x12$cloudasset.googleap\
22457    is.com/SavedQuery\xe0A\x02\x12G\n\x0bsaved_query\x18\x02\x20\x01(\x0b2!.\
22458    google.cloud.asset.v1.SavedQueryR\nsavedQueryB\x03\xe0A\x02\x12)\n\x0esa\
22459    ved_query_id\x18\x03\x20\x01(\tR\x0csavedQueryIdB\x03\xe0A\x02\"X\n\x14G\
22460    etSavedQueryRequest\x12@\n\x04name\x18\x01\x20\x01(\tR\x04nameB,\xfaA&\n\
22461    $cloudasset.googleapis.com/SavedQuery\xe0A\x02\"\xc2\x01\n\x17ListSavedQ\
22462    ueriesRequest\x12D\n\x06parent\x18\x01\x20\x01(\tR\x06parentB,\xfaA&\x12\
22463    $cloudasset.googleapis.com/SavedQuery\xe0A\x02\x12\x1b\n\x06filter\x18\
22464    \x04\x20\x01(\tR\x06filterB\x03\xe0A\x01\x12\x20\n\tpage_size\x18\x02\
22465    \x20\x01(\x05R\x08pageSizeB\x03\xe0A\x01\x12\"\n\npage_token\x18\x03\x20\
22466    \x01(\tR\tpageTokenB\x03\xe0A\x01\"\x8a\x01\n\x18ListSavedQueriesRespons\
22467    e\x12F\n\rsaved_queries\x18\x01\x20\x03(\x0b2!.google.cloud.asset.v1.Sav\
22468    edQueryR\x0csavedQueries\x12&\n\x0fnext_page_token\x18\x02\x20\x01(\tR\r\
22469    nextPageToken\"\xa4\x01\n\x17UpdateSavedQueryRequest\x12G\n\x0bsaved_que\
22470    ry\x18\x01\x20\x01(\x0b2!.google.cloud.asset.v1.SavedQueryR\nsavedQueryB\
22471    \x03\xe0A\x02\x12@\n\x0bupdate_mask\x18\x02\x20\x01(\x0b2\x1a.google.pro\
22472    tobuf.FieldMaskR\nupdateMaskB\x03\xe0A\x02\"[\n\x17DeleteSavedQueryReque\
22473    st\x12@\n\x04name\x18\x01\x20\x01(\tR\x04nameB,\xfaA&\n$cloudasset.googl\
22474    eapis.com/SavedQuery\xe0A\x02\"\xf9\x01\n\x12AnalyzeMoveRequest\x12\x1f\
22475    \n\x08resource\x18\x01\x20\x01(\tR\x08resourceB\x03\xe0A\x02\x122\n\x12d\
22476    estination_parent\x18\x02\x20\x01(\tR\x11destinationParentB\x03\xe0A\x02\
22477    \x12J\n\x04view\x18\x03\x20\x01(\x0e26.google.cloud.asset.v1.AnalyzeMove\
22478    Request.AnalysisViewR\x04view\"B\n\x0cAnalysisView\x12\x1d\n\x19ANALYSIS\
22479    _VIEW_UNSPECIFIED\x10\0\x12\x08\n\x04FULL\x10\x01\x12\t\n\x05BASIC\x10\
22480    \x02\"_\n\x13AnalyzeMoveResponse\x12H\n\rmove_analysis\x18\x01\x20\x03(\
22481    \x0b2#.google.cloud.asset.v1.MoveAnalysisR\x0cmoveAnalysis\"\xb0\x01\n\
22482    \x0cMoveAnalysis\x12!\n\x0cdisplay_name\x18\x01\x20\x01(\tR\x0bdisplayNa\
22483    me\x12G\n\x08analysis\x18\x02\x20\x01(\x0b2).google.cloud.asset.v1.MoveA\
22484    nalysisResultH\0R\x08analysis\x12*\n\x05error\x18\x03\x20\x01(\x0b2\x12.\
22485    google.rpc.StatusH\0R\x05errorB\x08\n\x06result\"\x92\x01\n\x12MoveAnaly\
22486    sisResult\x12=\n\x08blockers\x18\x01\x20\x03(\x0b2!.google.cloud.asset.v\
22487    1.MoveImpactR\x08blockers\x12=\n\x08warnings\x18\x02\x20\x03(\x0b2!.goog\
22488    le.cloud.asset.v1.MoveImpactR\x08warnings\"$\n\nMoveImpact\x12\x16\n\x06\
22489    detail\x18\x01\x20\x01(\tR\x06detail\"\x8e\x02\n\x17QueryAssetsOutputCon\
22490    fig\x12u\n\x14bigquery_destination\x18\x01\x20\x01(\x0b2B.google.cloud.a\
22491    sset.v1.QueryAssetsOutputConfig.BigQueryDestinationR\x13bigqueryDestinat\
22492    ion\x1a|\n\x13BigQueryDestination\x12\x1d\n\x07dataset\x18\x01\x20\x01(\
22493    \tR\x07datasetB\x03\xe0A\x02\x12\x19\n\x05table\x18\x02\x20\x01(\tR\x05t\
22494    ableB\x03\xe0A\x02\x12+\n\x11write_disposition\x18\x03\x20\x01(\tR\x10wr\
22495    iteDisposition\"\xa5\x04\n\x12QueryAssetsRequest\x12?\n\x06parent\x18\
22496    \x01\x20\x01(\tR\x06parentB'\xfaA!\x12\x1fcloudasset.googleapis.com/Asse\
22497    t\xe0A\x02\x12#\n\tstatement\x18\x02\x20\x01(\tH\0R\tstatementB\x03\xe0A\
22498    \x01\x12*\n\rjob_reference\x18\x03\x20\x01(\tH\0R\x0cjobReferenceB\x03\
22499    \xe0A\x01\x12\x20\n\tpage_size\x18\x04\x20\x01(\x05R\x08pageSizeB\x03\
22500    \xe0A\x01\x12\"\n\npage_token\x18\x05\x20\x01(\tR\tpageTokenB\x03\xe0A\
22501    \x01\x128\n\x07timeout\x18\x06\x20\x01(\x0b2\x19.google.protobuf.Duratio\
22502    nR\x07timeoutB\x03\xe0A\x01\x12R\n\x10read_time_window\x18\x07\x20\x01(\
22503    \x0b2!.google.cloud.asset.v1.TimeWindowH\x01R\x0ereadTimeWindowB\x03\xe0\
22504    A\x01\x12>\n\tread_time\x18\x08\x20\x01(\x0b2\x1a.google.protobuf.Timest\
22505    ampH\x01R\x08readTimeB\x03\xe0A\x01\x12X\n\routput_config\x18\t\x20\x01(\
22506    \x0b2..google.cloud.asset.v1.QueryAssetsOutputConfigR\x0coutputConfigB\
22507    \x03\xe0A\x01B\x07\n\x05queryB\x06\n\x04time\"\xa6\x02\n\x13QueryAssetsR\
22508    esponse\x12#\n\rjob_reference\x18\x01\x20\x01(\tR\x0cjobReference\x12\
22509    \x12\n\x04done\x18\x02\x20\x01(\x08R\x04done\x12*\n\x05error\x18\x03\x20\
22510    \x01(\x0b2\x12.google.rpc.StatusH\0R\x05error\x12G\n\x0cquery_result\x18\
22511    \x04\x20\x01(\x0b2\".google.cloud.asset.v1.QueryResultH\0R\x0bqueryResul\
22512    t\x12U\n\routput_config\x18\x05\x20\x01(\x0b2..google.cloud.asset.v1.Que\
22513    ryAssetsOutputConfigH\0R\x0coutputConfigB\n\n\x08response\"\xbd\x01\n\
22514    \x0bQueryResult\x12+\n\x04rows\x18\x01\x20\x03(\x0b2\x17.google.protobuf\
22515    .StructR\x04rows\x12:\n\x06schema\x18\x02\x20\x01(\x0b2\".google.cloud.a\
22516    sset.v1.TableSchemaR\x06schema\x12&\n\x0fnext_page_token\x18\x03\x20\x01\
22517    (\tR\rnextPageToken\x12\x1d\n\ntotal_rows\x18\x04\x20\x01(\x03R\ttotalRo\
22518    ws\"N\n\x0bTableSchema\x12?\n\x06fields\x18\x01\x20\x03(\x0b2'.google.cl\
22519    oud.asset.v1.TableFieldSchemaR\x06fields\"\x91\x01\n\x10TableFieldSchema\
22520    \x12\x14\n\x05field\x18\x01\x20\x01(\tR\x05field\x12\x12\n\x04type\x18\
22521    \x02\x20\x01(\tR\x04type\x12\x12\n\x04mode\x18\x03\x20\x01(\tR\x04mode\
22522    \x12?\n\x06fields\x18\x04\x20\x03(\x0b2'.google.cloud.asset.v1.TableFiel\
22523    dSchemaR\x06fields\"g\n#BatchGetEffectiveIamPoliciesRequest\x12\x1f\n\
22524    \x05scope\x18\x01\x20\x01(\tR\x05scopeB\t\xfaA\x03\x12\x01*\xe0A\x02\x12\
22525    \x1f\n\x05names\x18\x03\x20\x03(\tR\x05namesB\t\xfaA\x03\n\x01*\xe0A\x02\
22526    \"\xc3\x03\n$BatchGetEffectiveIamPoliciesResponse\x12u\n\x0epolicy_resul\
22527    ts\x18\x02\x20\x03(\x0b2N.google.cloud.asset.v1.BatchGetEffectiveIamPoli\
22528    ciesResponse.EffectiveIamPolicyR\rpolicyResults\x1a\xa3\x02\n\x12Effecti\
22529    veIamPolicy\x12,\n\x12full_resource_name\x18\x01\x20\x01(\tR\x10fullReso\
22530    urceName\x12u\n\x08policies\x18\x02\x20\x03(\x0b2Y.google.cloud.asset.v1\
22531    .BatchGetEffectiveIamPoliciesResponse.EffectiveIamPolicy.PolicyInfoR\x08\
22532    policies\x1ah\n\nPolicyInfo\x12+\n\x11attached_resource\x18\x01\x20\x01(\
22533    \tR\x10attachedResource\x12-\n\x06policy\x18\x02\x20\x01(\x0b2\x15.googl\
22534    e.iam.v1.PolicyR\x06policy\"\xc2\x04\n\x11AnalyzerOrgPolicy\x12+\n\x11at\
22535    tached_resource\x18\x01\x20\x01(\tR\x10attachedResource\x12)\n\x10applie\
22536    d_resource\x18\x05\x20\x01(\tR\x0fappliedResource\x12C\n\x05rules\x18\
22537    \x02\x20\x03(\x0b2-.google.cloud.asset.v1.AnalyzerOrgPolicy.RuleR\x05rul\
22538    es\x12.\n\x13inherit_from_parent\x18\x03\x20\x01(\x08R\x11inheritFromPar\
22539    ent\x12\x14\n\x05reset\x18\x04\x20\x01(\x08R\x05reset\x1a\xc9\x02\n\x04R\
22540    ule\x12T\n\x06values\x18\x03\x20\x01(\x0b2:.google.cloud.asset.v1.Analyz\
22541    erOrgPolicy.Rule.StringValuesH\0R\x06values\x12\x1d\n\tallow_all\x18\x04\
22542    \x20\x01(\x08H\0R\x08allowAll\x12\x1b\n\x08deny_all\x18\x05\x20\x01(\x08\
22543    H\0R\x07denyAll\x12\x1a\n\x07enforce\x18\x06\x20\x01(\x08H\0R\x07enforce\
22544    \x12/\n\tcondition\x18\x07\x20\x01(\x0b2\x11.google.type.ExprR\tconditio\
22545    n\x1aZ\n\x0cStringValues\x12%\n\x0eallowed_values\x18\x01\x20\x03(\tR\ra\
22546    llowedValues\x12#\n\rdenied_values\x18\x02\x20\x03(\tR\x0cdeniedValuesB\
22547    \x06\n\x04kind\"\x81\x0c\n\x1bAnalyzerOrgPolicyConstraint\x12{\n\x19goog\
22548    le_defined_constraint\x18\x01\x20\x01(\x0b2=.google.cloud.asset.v1.Analy\
22549    zerOrgPolicyConstraint.ConstraintH\0R\x17googleDefinedConstraint\x12r\n\
22550    \x11custom_constraint\x18\x02\x20\x01(\x0b2C.google.cloud.asset.v1.Analy\
22551    zerOrgPolicyConstraint.CustomConstraintH\0R\x10customConstraint\x1a\xb1\
22552    \x05\n\nConstraint\x12\x12\n\x04name\x18\x01\x20\x01(\tR\x04name\x12!\n\
22553    \x0cdisplay_name\x18\x02\x20\x01(\tR\x0bdisplayName\x12\x20\n\x0bdescrip\
22554    tion\x18\x03\x20\x01(\tR\x0bdescription\x12~\n\x12constraint_default\x18\
22555    \x04\x20\x01(\x0e2O.google.cloud.asset.v1.AnalyzerOrgPolicyConstraint.Co\
22556    nstraint.ConstraintDefaultR\x11constraintDefault\x12w\n\x0flist_constrai\
22557    nt\x18\x05\x20\x01(\x0b2L.google.cloud.asset.v1.AnalyzerOrgPolicyConstra\
22558    int.Constraint.ListConstraintH\0R\x0elistConstraint\x12\x80\x01\n\x12boo\
22559    lean_constraint\x18\x06\x20\x01(\x0b2O.google.cloud.asset.v1.AnalyzerOrg\
22560    PolicyConstraint.Constraint.BooleanConstraintH\0R\x11booleanConstraint\
22561    \x1aX\n\x0eListConstraint\x12\x1f\n\x0bsupports_in\x18\x01\x20\x01(\x08R\
22562    \nsupportsIn\x12%\n\x0esupports_under\x18\x02\x20\x01(\x08R\rsupportsUnd\
22563    er\x1a\x13\n\x11BooleanConstraint\"L\n\x11ConstraintDefault\x12\"\n\x1eC\
22564    ONSTRAINT_DEFAULT_UNSPECIFIED\x10\0\x12\t\n\x05ALLOW\x10\x01\x12\x08\n\
22565    \x04DENY\x10\x02B\x11\n\x0fconstraint_type\x1a\xa3\x04\n\x10CustomConstr\
22566    aint\x12\x12\n\x04name\x18\x01\x20\x01(\tR\x04name\x12%\n\x0eresource_ty\
22567    pes\x18\x02\x20\x03(\tR\rresourceTypes\x12q\n\x0cmethod_types\x18\x03\
22568    \x20\x03(\x0e2N.google.cloud.asset.v1.AnalyzerOrgPolicyConstraint.Custom\
22569    Constraint.MethodTypeR\x0bmethodTypes\x12\x1c\n\tcondition\x18\x04\x20\
22570    \x01(\tR\tcondition\x12o\n\x0baction_type\x18\x05\x20\x01(\x0e2N.google.\
22571    cloud.asset.v1.AnalyzerOrgPolicyConstraint.CustomConstraint.ActionTypeR\
22572    \nactionType\x12!\n\x0cdisplay_name\x18\x06\x20\x01(\tR\x0bdisplayName\
22573    \x12\x20\n\x0bdescription\x18\x07\x20\x01(\tR\x0bdescription\"M\n\nMetho\
22574    dType\x12\x1b\n\x17METHOD_TYPE_UNSPECIFIED\x10\0\x12\n\n\x06CREATE\x10\
22575    \x01\x12\n\n\x06UPDATE\x10\x02\x12\n\n\x06DELETE\x10\x03\">\n\nActionTyp\
22576    e\x12\x1b\n\x17ACTION_TYPE_UNSPECIFIED\x10\0\x12\t\n\x05ALLOW\x10\x01\
22577    \x12\x08\n\x04DENY\x10\x02B\x17\n\x15constraint_definition\"\xc2\x01\n\
22578    \x19AnalyzeOrgPoliciesRequest\x12\x19\n\x05scope\x18\x01\x20\x01(\tR\x05\
22579    scopeB\x03\xe0A\x02\x12#\n\nconstraint\x18\x02\x20\x01(\tR\nconstraintB\
22580    \x03\xe0A\x02\x12\x16\n\x06filter\x18\x03\x20\x01(\tR\x06filter\x12\x20\
22581    \n\tpage_size\x18\x04\x20\x01(\x05H\0R\x08pageSize\x88\x01\x01\x12\x1d\n\
22582    \npage_token\x18\x05\x20\x01(\tR\tpageTokenB\x0c\n\n_page_size\"\xc7\x03\
22583    \n\x1aAnalyzeOrgPoliciesResponse\x12o\n\x12org_policy_results\x18\x01\
22584    \x20\x03(\x0b2A.google.cloud.asset.v1.AnalyzeOrgPoliciesResponse.OrgPoli\
22585    cyResultR\x10orgPolicyResults\x12R\n\nconstraint\x18\x02\x20\x01(\x0b22.\
22586    google.cloud.asset.v1.AnalyzerOrgPolicyConstraintR\nconstraint\x12&\n\
22587    \x0fnext_page_token\x18\x03\x20\x01(\tR\rnextPageToken\x1a\xbb\x01\n\x0f\
22588    OrgPolicyResult\x12Y\n\x13consolidated_policy\x18\x01\x20\x01(\x0b2(.goo\
22589    gle.cloud.asset.v1.AnalyzerOrgPolicyR\x12consolidatedPolicy\x12M\n\rpoli\
22590    cy_bundle\x18\x02\x20\x03(\x0b2(.google.cloud.asset.v1.AnalyzerOrgPolicy\
22591    R\x0cpolicyBundle\"\xd2\x01\n)AnalyzeOrgPolicyGovernedContainersRequest\
22592    \x12\x19\n\x05scope\x18\x01\x20\x01(\tR\x05scopeB\x03\xe0A\x02\x12#\n\nc\
22593    onstraint\x18\x02\x20\x01(\tR\nconstraintB\x03\xe0A\x02\x12\x16\n\x06fil\
22594    ter\x18\x03\x20\x01(\tR\x06filter\x12\x20\n\tpage_size\x18\x04\x20\x01(\
22595    \x05H\0R\x08pageSize\x88\x01\x01\x12\x1d\n\npage_token\x18\x05\x20\x01(\
22596    \tR\tpageTokenB\x0c\n\n_page_size\"\xb5\x04\n*AnalyzeOrgPolicyGovernedCo\
22597    ntainersResponse\x12\x84\x01\n\x13governed_containers\x18\x01\x20\x03(\
22598    \x0b2S.google.cloud.asset.v1.AnalyzeOrgPolicyGovernedContainersResponse.\
22599    GovernedContainerR\x12governedContainers\x12R\n\nconstraint\x18\x02\x20\
22600    \x01(\x0b22.google.cloud.asset.v1.AnalyzerOrgPolicyConstraintR\nconstrai\
22601    nt\x12&\n\x0fnext_page_token\x18\x03\x20\x01(\tR\rnextPageToken\x1a\x83\
22602    \x02\n\x11GovernedContainer\x12,\n\x12full_resource_name\x18\x01\x20\x01\
22603    (\tR\x10fullResourceName\x12\x16\n\x06parent\x18\x02\x20\x01(\tR\x06pare\
22604    nt\x12Y\n\x13consolidated_policy\x18\x03\x20\x01(\x0b2(.google.cloud.ass\
22605    et.v1.AnalyzerOrgPolicyR\x12consolidatedPolicy\x12M\n\rpolicy_bundle\x18\
22606    \x04\x20\x03(\x0b2(.google.cloud.asset.v1.AnalyzerOrgPolicyR\x0cpolicyBu\
22607    ndle\"\xce\x01\n%AnalyzeOrgPolicyGovernedAssetsRequest\x12\x19\n\x05scop\
22608    e\x18\x01\x20\x01(\tR\x05scopeB\x03\xe0A\x02\x12#\n\nconstraint\x18\x02\
22609    \x20\x01(\tR\nconstraintB\x03\xe0A\x02\x12\x16\n\x06filter\x18\x03\x20\
22610    \x01(\tR\x06filter\x12\x20\n\tpage_size\x18\x04\x20\x01(\x05H\0R\x08page\
22611    Size\x88\x01\x01\x12\x1d\n\npage_token\x18\x05\x20\x01(\tR\tpageTokenB\
22612    \x0c\n\n_page_size\"\xe8\x08\n&AnalyzeOrgPolicyGovernedAssetsResponse\
22613    \x12t\n\x0fgoverned_assets\x18\x01\x20\x03(\x0b2K.google.cloud.asset.v1.\
22614    AnalyzeOrgPolicyGovernedAssetsResponse.GovernedAssetR\x0egovernedAssets\
22615    \x12R\n\nconstraint\x18\x02\x20\x01(\x0b22.google.cloud.asset.v1.Analyze\
22616    rOrgPolicyConstraintR\nconstraint\x12&\n\x0fnext_page_token\x18\x03\x20\
22617    \x01(\tR\rnextPageToken\x1a\xb0\x01\n\x10GovernedResource\x12,\n\x12full\
22618    _resource_name\x18\x01\x20\x01(\tR\x10fullResourceName\x12\x16\n\x06pare\
22619    nt\x18\x02\x20\x01(\tR\x06parent\x12\x18\n\x07project\x18\x05\x20\x01(\t\
22620    R\x07project\x12\x18\n\x07folders\x18\x06\x20\x03(\tR\x07folders\x12\"\n\
22621    \x0corganization\x18\x07\x20\x01(\tR\x0corganization\x1a\xc7\x01\n\x11Go\
22622    vernedIamPolicy\x12+\n\x11attached_resource\x18\x01\x20\x01(\tR\x10attac\
22623    hedResource\x12-\n\x06policy\x18\x02\x20\x01(\x0b2\x15.google.iam.v1.Pol\
22624    icyR\x06policy\x12\x18\n\x07project\x18\x05\x20\x01(\tR\x07project\x12\
22625    \x18\n\x07folders\x18\x06\x20\x03(\tR\x07folders\x12\"\n\x0corganization\
22626    \x18\x07\x20\x01(\tR\x0corganization\x1a\xce\x03\n\rGovernedAsset\x12}\n\
22627    \x11governed_resource\x18\x01\x20\x01(\x0b2N.google.cloud.asset.v1.Analy\
22628    zeOrgPolicyGovernedAssetsResponse.GovernedResourceH\0R\x10governedResour\
22629    ce\x12\x81\x01\n\x13governed_iam_policy\x18\x02\x20\x01(\x0b2O.google.cl\
22630    oud.asset.v1.AnalyzeOrgPolicyGovernedAssetsResponse.GovernedIamPolicyH\0\
22631    R\x11governedIamPolicy\x12Y\n\x13consolidated_policy\x18\x03\x20\x01(\
22632    \x0b2(.google.cloud.asset.v1.AnalyzerOrgPolicyR\x12consolidatedPolicy\
22633    \x12M\n\rpolicy_bundle\x18\x04\x20\x03(\x0b2(.google.cloud.asset.v1.Anal\
22634    yzerOrgPolicyR\x0cpolicyBundleB\x10\n\x0egoverned_asset*\x90\x01\n\x0bCo\
22635    ntentType\x12\x1c\n\x18CONTENT_TYPE_UNSPECIFIED\x10\0\x12\x0c\n\x08RESOU\
22636    RCE\x10\x01\x12\x0e\n\nIAM_POLICY\x10\x02\x12\x0e\n\nORG_POLICY\x10\x04\
22637    \x12\x11\n\rACCESS_POLICY\x10\x05\x12\x10\n\x0cOS_INVENTORY\x10\x06\x12\
22638    \x10\n\x0cRELATIONSHIP\x10\x072\xd1\x20\n\x0cAssetService\x12\xde\x01\n\
22639    \x0cExportAssets\x12*.google.cloud.asset.v1.ExportAssetsRequest\x1a\x1d.\
22640    google.longrunning.Operation\"\x82\x01\xcaAW\n*google.cloud.asset.v1.Exp\
22641    ortAssetsResponse\x12)google.cloud.asset.v1.ExportAssetsRequest\x82\xd3\
22642    \xe4\x93\x02\"\"\x1d/v1/{parent=*/*}:exportAssets:\x01*\x12\x8b\x01\n\nL\
22643    istAssets\x12(.google.cloud.asset.v1.ListAssetsRequest\x1a).google.cloud\
22644    .asset.v1.ListAssetsResponse\"(\x82\xd3\xe4\x93\x02\x19\x12\x17/v1/{pare\
22645    nt=*/*}/assets\xdaA\x06parent\x12\xb2\x01\n\x15BatchGetAssetsHistory\x12\
22646    3.google.cloud.asset.v1.BatchGetAssetsHistoryRequest\x1a4.google.cloud.a\
22647    sset.v1.BatchGetAssetsHistoryResponse\".\x82\xd3\xe4\x93\x02(\x12&/v1/{p\
22648    arent=*/*}:batchGetAssetsHistory\x12\x7f\n\nCreateFeed\x12(.google.cloud\
22649    .asset.v1.CreateFeedRequest\x1a\x1b.google.cloud.asset.v1.Feed\"*\x82\
22650    \xd3\xe4\x93\x02\x1b\"\x16/v1/{parent=*/*}/feeds:\x01*\xdaA\x06parent\
22651    \x12t\n\x07GetFeed\x12%.google.cloud.asset.v1.GetFeedRequest\x1a\x1b.goo\
22652    gle.cloud.asset.v1.Feed\"%\x82\xd3\xe4\x93\x02\x18\x12\x16/v1/{name=*/*/\
22653    feeds/*}\xdaA\x04name\x12\x87\x01\n\tListFeeds\x12'.google.cloud.asset.v\
22654    1.ListFeedsRequest\x1a(.google.cloud.asset.v1.ListFeedsResponse\"'\x82\
22655    \xd3\xe4\x93\x02\x18\x12\x16/v1/{parent=*/*}/feeds\xdaA\x06parent\x12\
22656    \x82\x01\n\nUpdateFeed\x12(.google.cloud.asset.v1.UpdateFeedRequest\x1a\
22657    \x1b.google.cloud.asset.v1.Feed\"-\x82\xd3\xe4\x93\x02\x202\x1b/v1/{feed\
22658    .name=*/*/feeds/*}:\x01*\xdaA\x04feed\x12u\n\nDeleteFeed\x12(.google.clo\
22659    ud.asset.v1.DeleteFeedRequest\x1a\x16.google.protobuf.Empty\"%\x82\xd3\
22660    \xe4\x93\x02\x18*\x16/v1/{name=*/*/feeds/*}\xdaA\x04name\x12\xbf\x01\n\
22661    \x12SearchAllResources\x120.google.cloud.asset.v1.SearchAllResourcesRequ\
22662    est\x1a1.google.cloud.asset.v1.SearchAllResourcesResponse\"D\x82\xd3\xe4\
22663    \x93\x02$\x12\"/v1/{scope=*/*}:searchAllResources\xdaA\x17scope,query,as\
22664    set_types\x12\xbb\x01\n\x14SearchAllIamPolicies\x122.google.cloud.asset.\
22665    v1.SearchAllIamPoliciesRequest\x1a3.google.cloud.asset.v1.SearchAllIamPo\
22666    liciesResponse\":\x82\xd3\xe4\x93\x02&\x12$/v1/{scope=*/*}:searchAllIamP\
22667    olicies\xdaA\x0bscope,query\x12\xac\x01\n\x10AnalyzeIamPolicy\x12..googl\
22668    e.cloud.asset.v1.AnalyzeIamPolicyRequest\x1a/.google.cloud.asset.v1.Anal\
22669    yzeIamPolicyResponse\"7\x82\xd3\xe4\x93\x021\x12//v1/{analysis_query.sco\
22670    pe=*/*}:analyzeIamPolicy\x12\xb8\x02\n\x1bAnalyzeIamPolicyLongrunning\
22671    \x129.google.cloud.asset.v1.AnalyzeIamPolicyLongrunningRequest\x1a\x1d.g\
22672    oogle.longrunning.Operation\"\xbe\x01\xcaAv\n9google.cloud.asset.v1.Anal\
22673    yzeIamPolicyLongrunningResponse\x129google.cloud.asset.v1.AnalyzeIamPoli\
22674    cyLongrunningMetadata\x82\xd3\xe4\x93\x02?\":/v1/{analysis_query.scope=*\
22675    /*}:analyzeIamPolicyLongrunning:\x01*\x12\x8c\x01\n\x0bAnalyzeMove\x12).\
22676    google.cloud.asset.v1.AnalyzeMoveRequest\x1a*.google.cloud.asset.v1.Anal\
22677    yzeMoveResponse\"&\x82\xd3\xe4\x93\x02\x20\x12\x1e/v1/{resource=*/*}:ana\
22678    lyzeMove\x12\x8d\x01\n\x0bQueryAssets\x12).google.cloud.asset.v1.QueryAs\
22679    setsRequest\x1a*.google.cloud.asset.v1.QueryAssetsResponse\"'\x82\xd3\
22680    \xe4\x93\x02!\"\x1c/v1/{parent=*/*}:queryAssets:\x01*\x12\xbd\x01\n\x10C\
22681    reateSavedQuery\x12..google.cloud.asset.v1.CreateSavedQueryRequest\x1a!.\
22682    google.cloud.asset.v1.SavedQuery\"V\x82\xd3\xe4\x93\x02,\"\x1d/v1/{paren\
22683    t=*/*}/savedQueries:\x0bsaved_query\xdaA!parent,saved_query,saved_query_\
22684    id\x12\x8d\x01\n\rGetSavedQuery\x12+.google.cloud.asset.v1.GetSavedQuery\
22685    Request\x1a!.google.cloud.asset.v1.SavedQuery\",\x82\xd3\xe4\x93\x02\x1f\
22686    \x12\x1d/v1/{name=*/*/savedQueries/*}\xdaA\x04name\x12\xa3\x01\n\x10List\
22687    SavedQueries\x12..google.cloud.asset.v1.ListSavedQueriesRequest\x1a/.goo\
22688    gle.cloud.asset.v1.ListSavedQueriesResponse\".\x82\xd3\xe4\x93\x02\x1f\
22689    \x12\x1d/v1/{parent=*/*}/savedQueries\xdaA\x06parent\x12\xbf\x01\n\x10Up\
22690    dateSavedQuery\x12..google.cloud.asset.v1.UpdateSavedQueryRequest\x1a!.g\
22691    oogle.cloud.asset.v1.SavedQuery\"X\x82\xd3\xe4\x93\x0282)/v1/{saved_quer\
22692    y.name=*/*/savedQueries/*}:\x0bsaved_query\xdaA\x17saved_query,update_ma\
22693    sk\x12\x88\x01\n\x10DeleteSavedQuery\x12..google.cloud.asset.v1.DeleteSa\
22694    vedQueryRequest\x1a\x16.google.protobuf.Empty\",\x82\xd3\xe4\x93\x02\x1f\
22695    *\x1d/v1/{name=*/*/savedQueries/*}\xdaA\x04name\x12\xce\x01\n\x1cBatchGe\
22696    tEffectiveIamPolicies\x12:.google.cloud.asset.v1.BatchGetEffectiveIamPol\
22697    iciesRequest\x1a;.google.cloud.asset.v1.BatchGetEffectiveIamPoliciesResp\
22698    onse\"5\x82\xd3\xe4\x93\x02/\x12-/v1/{scope=*/*}/effectiveIamPolicies:ba\
22699    tchGet\x12\xbf\x01\n\x12AnalyzeOrgPolicies\x120.google.cloud.asset.v1.An\
22700    alyzeOrgPoliciesRequest\x1a1.google.cloud.asset.v1.AnalyzeOrgPoliciesRes\
22701    ponse\"D\x82\xd3\xe4\x93\x02$\x12\"/v1/{scope=*/*}:analyzeOrgPolicies\
22702    \xdaA\x17scope,constraint,filter\x12\xff\x01\n\"AnalyzeOrgPolicyGoverned\
22703    Containers\x12@.google.cloud.asset.v1.AnalyzeOrgPolicyGovernedContainers\
22704    Request\x1aA.google.cloud.asset.v1.AnalyzeOrgPolicyGovernedContainersRes\
22705    ponse\"T\x82\xd3\xe4\x93\x024\x122/v1/{scope=*/*}:analyzeOrgPolicyGovern\
22706    edContainers\xdaA\x17scope,constraint,filter\x12\xef\x01\n\x1eAnalyzeOrg\
22707    PolicyGovernedAssets\x12<.google.cloud.asset.v1.AnalyzeOrgPolicyGoverned\
22708    AssetsRequest\x1a=.google.cloud.asset.v1.AnalyzeOrgPolicyGovernedAssetsR\
22709    esponse\"P\x82\xd3\xe4\x93\x020\x12./v1/{scope=*/*}:analyzeOrgPolicyGove\
22710    rnedAssets\xdaA\x17scope,constraint,filter\x1aM\xd2A.https://www.googlea\
22711    pis.com/auth/cloud-platform\xcaA\x19cloudasset.googleapis.comB\x91\x01\n\
22712    \x19com.google.cloud.asset.v1B\x11AssetServiceProtoP\x01Z/cloud.google.c\
22713    om/go/asset/apiv1/assetpb;assetpb\xaa\x02\x15Google.Cloud.Asset.V1\xca\
22714    \x02\x15Google\\Cloud\\Asset\\V1J\xbc\xee\x06\n\x07\x12\x05\x0e\0\xdf\
22715    \x14\x01\n\xbc\x04\n\x01\x0c\x12\x03\x0e\0\x122\xb1\x04\x20Copyright\x20\
22716    2023\x20Google\x20LLC\n\n\x20Licensed\x20under\x20the\x20Apache\x20Licen\
22717    se,\x20Version\x202.0\x20(the\x20\"License\");\n\x20you\x20may\x20not\
22718    \x20use\x20this\x20file\x20except\x20in\x20compliance\x20with\x20the\x20\
22719    License.\n\x20You\x20may\x20obtain\x20a\x20copy\x20of\x20the\x20License\
22720    \x20at\n\n\x20\x20\x20\x20\x20http://www.apache.org/licenses/LICENSE-2.0\
22721    \n\n\x20Unless\x20required\x20by\x20applicable\x20law\x20or\x20agreed\
22722    \x20to\x20in\x20writing,\x20software\n\x20distributed\x20under\x20the\
22723    \x20License\x20is\x20distributed\x20on\x20an\x20\"AS\x20IS\"\x20BASIS,\n\
22724    \x20WITHOUT\x20WARRANTIES\x20OR\x20CONDITIONS\x20OF\x20ANY\x20KIND,\x20e\
22725    ither\x20express\x20or\x20implied.\n\x20See\x20the\x20License\x20for\x20\
22726    the\x20specific\x20language\x20governing\x20permissions\x20and\n\x20limi\
22727    tations\x20under\x20the\x20License.\n\n\x08\n\x01\x02\x12\x03\x10\0\x1e\
22728    \n\t\n\x02\x03\0\x12\x03\x12\0&\n\t\n\x02\x03\x01\x12\x03\x13\0!\n\t\n\
22729    \x02\x03\x02\x12\x03\x14\0)\n\t\n\x02\x03\x03\x12\x03\x15\0#\n\t\n\x02\
22730    \x03\x04\x12\x03\x16\0,\n\t\n\x02\x03\x05\x12\x03\x17\0$\n\t\n\x02\x03\
22731    \x06\x12\x03\x18\0-\n\t\n\x02\x03\x07\x12\x03\x19\0(\n\t\n\x02\x03\x08\
22732    \x12\x03\x1a\0%\n\t\n\x02\x03\t\x12\x03\x1b\0*\n\t\n\x02\x03\n\x12\x03\
22733    \x1c\0&\n\t\n\x02\x03\x0b\x12\x03\x1d\0)\n\t\n\x02\x03\x0c\x12\x03\x1e\0\
22734    !\n\t\n\x02\x03\r\x12\x03\x1f\0\x20\n\x08\n\x01\x08\x12\x03!\02\n\t\n\
22735    \x02\x08%\x12\x03!\02\n\x08\n\x01\x08\x12\x03\"\0F\n\t\n\x02\x08\x0b\x12\
22736    \x03\"\0F\n\x08\n\x01\x08\x12\x03#\0\"\n\t\n\x02\x08\n\x12\x03#\0\"\n\
22737    \x08\n\x01\x08\x12\x03$\02\n\t\n\x02\x08\x08\x12\x03$\02\n\x08\n\x01\x08\
22738    \x12\x03%\02\n\t\n\x02\x08\x01\x12\x03%\02\n\x08\n\x01\x08\x12\x03&\02\n\
22739    \t\n\x02\x08)\x12\x03&\02\n(\n\x02\x06\0\x12\x05)\0\xbd\x02\x01\x1a\x1b\
22740    \x20Asset\x20service\x20definition.\n\n\n\n\x03\x06\0\x01\x12\x03)\x08\
22741    \x14\n\n\n\x03\x06\0\x03\x12\x03*\x02A\n\x0c\n\x05\x06\0\x03\x99\x08\x12\
22742    \x03*\x02A\n\x0b\n\x03\x06\0\x03\x12\x04+\x02,7\n\r\n\x05\x06\0\x03\x9a\
22743    \x08\x12\x04+\x02,7\n\xe1\x05\n\x04\x06\0\x02\0\x12\x049\x02B\x03\x1a\
22744    \xd2\x05\x20Exports\x20assets\x20with\x20time\x20and\x20resource\x20type\
22745    s\x20to\x20a\x20given\x20Cloud\x20Storage\n\x20location/BigQuery\x20tabl\
22746    e.\x20For\x20Cloud\x20Storage\x20location\x20destinations,\x20the\n\x20o\
22747    utput\x20format\x20is\x20newline-delimited\x20JSON.\x20Each\x20line\x20r\
22748    epresents\x20a\n\x20[google.cloud.asset.v1.Asset][google.cloud.asset.v1.\
22749    Asset]\x20in\x20the\x20JSON\n\x20format;\x20for\x20BigQuery\x20table\x20\
22750    destinations,\x20the\x20output\x20table\x20stores\x20the\x20fields\n\x20\
22751    in\x20asset\x20Protobuf\x20as\x20columns.\x20This\x20API\x20implements\
22752    \x20the\n\x20[google.longrunning.Operation][google.longrunning.Operation\
22753    ]\x20API,\x20which\n\x20allows\x20you\x20to\x20keep\x20track\x20of\x20th\
22754    e\x20export.\x20We\x20recommend\x20intervals\x20of\x20at\x20least\n\x202\
22755    \x20seconds\x20with\x20exponential\x20retry\x20to\x20poll\x20the\x20expo\
22756    rt\x20operation\x20result.\x20For\n\x20regular-size\x20resource\x20paren\
22757    t,\x20the\x20export\x20operation\x20usually\x20finishes\x20within\n\x205\
22758    \x20minutes.\n\n\x0c\n\x05\x06\0\x02\0\x01\x12\x039\x06\x12\n\x0c\n\x05\
22759    \x06\0\x02\0\x02\x12\x039\x13&\n\x0c\n\x05\x06\0\x02\0\x03\x12\x0391M\n\
22760    \r\n\x05\x06\0\x02\0\x04\x12\x04:\x04=\x06\n\x11\n\t\x06\0\x02\0\x04\xb0\
22761    \xca\xbc\"\x12\x04:\x04=\x06\n\r\n\x05\x06\0\x02\0\x04\x12\x04>\x04A\x06\
22762    \n\x0f\n\x07\x06\0\x02\0\x04\x99\x08\x12\x04>\x04A\x06\na\n\x04\x06\0\
22763    \x02\x01\x12\x04F\x02K\x03\x1aS\x20Lists\x20assets\x20with\x20time\x20an\
22764    d\x20resource\x20types\x20and\x20returns\x20paged\x20results\x20in\n\x20\
22765    response.\n\n\x0c\n\x05\x06\0\x02\x01\x01\x12\x03F\x06\x10\n\x0c\n\x05\
22766    \x06\0\x02\x01\x02\x12\x03F\x11\"\n\x0c\n\x05\x06\0\x02\x01\x03\x12\x03F\
22767    -?\n\r\n\x05\x06\0\x02\x01\x04\x12\x04G\x04I\x06\n\x11\n\t\x06\0\x02\x01\
22768    \x04\xb0\xca\xbc\"\x12\x04G\x04I\x06\n\x0c\n\x05\x06\0\x02\x01\x04\x12\
22769    \x03J\x044\n\x0f\n\x08\x06\0\x02\x01\x04\x9b\x08\0\x12\x03J\x044\n\x94\
22770    \x03\n\x04\x06\0\x02\x02\x12\x04T\x02Y\x03\x1a\x85\x03\x20Batch\x20gets\
22771    \x20the\x20update\x20history\x20of\x20assets\x20that\x20overlap\x20a\x20\
22772    time\x20window.\n\x20For\x20IAM_POLICY\x20content,\x20this\x20API\x20out\
22773    puts\x20history\x20when\x20the\x20asset\x20and\x20its\n\x20attached\x20I\
22774    AM\x20POLICY\x20both\x20exist.\x20This\x20can\x20create\x20gaps\x20in\
22775    \x20the\x20output\x20history.\n\x20Otherwise,\x20this\x20API\x20outputs\
22776    \x20history\x20with\x20asset\x20in\x20both\x20non-delete\x20or\n\x20dele\
22777    ted\x20status.\n\x20If\x20a\x20specified\x20asset\x20does\x20not\x20exis\
22778    t,\x20this\x20API\x20returns\x20an\x20INVALID_ARGUMENT\n\x20error.\n\n\
22779    \x0c\n\x05\x06\0\x02\x02\x01\x12\x03T\x06\x1b\n\x0c\n\x05\x06\0\x02\x02\
22780    \x02\x12\x03T\x1c8\n\x0c\n\x05\x06\0\x02\x02\x03\x12\x03U\x0f,\n\r\n\x05\
22781    \x06\0\x02\x02\x04\x12\x04V\x04X\x06\n\x11\n\t\x06\0\x02\x02\x04\xb0\xca\
22782    \xbc\"\x12\x04V\x04X\x06\ng\n\x04\x06\0\x02\x03\x12\x04]\x02c\x03\x1aY\
22783    \x20Creates\x20a\x20feed\x20in\x20a\x20parent\x20project/folder/organiza\
22784    tion\x20to\x20listen\x20to\x20its\n\x20asset\x20updates.\n\n\x0c\n\x05\
22785    \x06\0\x02\x03\x01\x12\x03]\x06\x10\n\x0c\n\x05\x06\0\x02\x03\x02\x12\
22786    \x03]\x11\"\n\x0c\n\x05\x06\0\x02\x03\x03\x12\x03]-1\n\r\n\x05\x06\0\x02\
22787    \x03\x04\x12\x04^\x04a\x06\n\x11\n\t\x06\0\x02\x03\x04\xb0\xca\xbc\"\x12\
22788    \x04^\x04a\x06\n\x0c\n\x05\x06\0\x02\x03\x04\x12\x03b\x044\n\x0f\n\x08\
22789    \x06\0\x02\x03\x04\x9b\x08\0\x12\x03b\x044\n1\n\x04\x06\0\x02\x04\x12\
22790    \x04f\x02k\x03\x1a#\x20Gets\x20details\x20about\x20an\x20asset\x20feed.\
22791    \n\n\x0c\n\x05\x06\0\x02\x04\x01\x12\x03f\x06\r\n\x0c\n\x05\x06\0\x02\
22792    \x04\x02\x12\x03f\x0e\x1c\n\x0c\n\x05\x06\0\x02\x04\x03\x12\x03f'+\n\r\n\
22793    \x05\x06\0\x02\x04\x04\x12\x04g\x04i\x06\n\x11\n\t\x06\0\x02\x04\x04\xb0\
22794    \xca\xbc\"\x12\x04g\x04i\x06\n\x0c\n\x05\x06\0\x02\x04\x04\x12\x03j\x042\
22795    \n\x0f\n\x08\x06\0\x02\x04\x04\x9b\x08\0\x12\x03j\x042\nN\n\x04\x06\0\
22796    \x02\x05\x12\x04n\x02s\x03\x1a@\x20Lists\x20all\x20asset\x20feeds\x20in\
22797    \x20a\x20parent\x20project/folder/organization.\n\n\x0c\n\x05\x06\0\x02\
22798    \x05\x01\x12\x03n\x06\x0f\n\x0c\n\x05\x06\0\x02\x05\x02\x12\x03n\x10\x20\
22799    \n\x0c\n\x05\x06\0\x02\x05\x03\x12\x03n+<\n\r\n\x05\x06\0\x02\x05\x04\
22800    \x12\x04o\x04q\x06\n\x11\n\t\x06\0\x02\x05\x04\xb0\xca\xbc\"\x12\x04o\
22801    \x04q\x06\n\x0c\n\x05\x06\0\x02\x05\x04\x12\x03r\x044\n\x0f\n\x08\x06\0\
22802    \x02\x05\x04\x9b\x08\0\x12\x03r\x044\n4\n\x04\x06\0\x02\x06\x12\x04v\x02\
22803    |\x03\x1a&\x20Updates\x20an\x20asset\x20feed\x20configuration.\n\n\x0c\n\
22804    \x05\x06\0\x02\x06\x01\x12\x03v\x06\x10\n\x0c\n\x05\x06\0\x02\x06\x02\
22805    \x12\x03v\x11\"\n\x0c\n\x05\x06\0\x02\x06\x03\x12\x03v-1\n\r\n\x05\x06\0\
22806    \x02\x06\x04\x12\x04w\x04z\x06\n\x11\n\t\x06\0\x02\x06\x04\xb0\xca\xbc\"\
22807    \x12\x04w\x04z\x06\n\x0c\n\x05\x06\0\x02\x06\x04\x12\x03{\x042\n\x0f\n\
22808    \x08\x06\0\x02\x06\x04\x9b\x08\0\x12\x03{\x042\n'\n\x04\x06\0\x02\x07\
22809    \x12\x05\x7f\x02\x84\x01\x03\x1a\x18\x20Deletes\x20an\x20asset\x20feed.\
22810    \n\n\x0c\n\x05\x06\0\x02\x07\x01\x12\x03\x7f\x06\x10\n\x0c\n\x05\x06\0\
22811    \x02\x07\x02\x12\x03\x7f\x11\"\n\x0c\n\x05\x06\0\x02\x07\x03\x12\x03\x7f\
22812    -B\n\x0f\n\x05\x06\0\x02\x07\x04\x12\x06\x80\x01\x04\x82\x01\x06\n\x13\n\
22813    \t\x06\0\x02\x07\x04\xb0\xca\xbc\"\x12\x06\x80\x01\x04\x82\x01\x06\n\r\n\
22814    \x05\x06\0\x02\x07\x04\x12\x04\x83\x01\x042\n\x10\n\x08\x06\0\x02\x07\
22815    \x04\x9b\x08\0\x12\x04\x83\x01\x042\n\x90\x02\n\x04\x06\0\x02\x08\x12\
22816    \x06\x8a\x01\x02\x90\x01\x03\x1a\xff\x01\x20Searches\x20all\x20Google\
22817    \x20Cloud\x20resources\x20within\x20the\x20specified\x20scope,\x20such\
22818    \x20as\x20a\n\x20project,\x20folder,\x20or\x20organization.\x20The\x20ca\
22819    ller\x20must\x20be\x20granted\x20the\n\x20`cloudasset.assets.searchAllRe\
22820    sources`\x20permission\x20on\x20the\x20desired\x20scope,\n\x20otherwise\
22821    \x20the\x20request\x20will\x20be\x20rejected.\n\n\r\n\x05\x06\0\x02\x08\
22822    \x01\x12\x04\x8a\x01\x06\x18\n\r\n\x05\x06\0\x02\x08\x02\x12\x04\x8a\x01\
22823    \x192\n\r\n\x05\x06\0\x02\x08\x03\x12\x04\x8b\x01\x0f)\n\x0f\n\x05\x06\0\
22824    \x02\x08\x04\x12\x06\x8c\x01\x04\x8e\x01\x06\n\x13\n\t\x06\0\x02\x08\x04\
22825    \xb0\xca\xbc\"\x12\x06\x8c\x01\x04\x8e\x01\x06\n\r\n\x05\x06\0\x02\x08\
22826    \x04\x12\x04\x8f\x01\x04E\n\x10\n\x08\x06\0\x02\x08\x04\x9b\x08\0\x12\
22827    \x04\x8f\x01\x04E\n\x88\x02\n\x04\x06\0\x02\t\x12\x06\x96\x01\x02\x9c\
22828    \x01\x03\x1a\xf7\x01\x20Searches\x20all\x20IAM\x20policies\x20within\x20\
22829    the\x20specified\x20scope,\x20such\x20as\x20a\x20project,\n\x20folder,\
22830    \x20or\x20organization.\x20The\x20caller\x20must\x20be\x20granted\x20the\
22831    \n\x20`cloudasset.assets.searchAllIamPolicies`\x20permission\x20on\x20th\
22832    e\x20desired\x20scope,\n\x20otherwise\x20the\x20request\x20will\x20be\
22833    \x20rejected.\n\n\r\n\x05\x06\0\x02\t\x01\x12\x04\x96\x01\x06\x1a\n\r\n\
22834    \x05\x06\0\x02\t\x02\x12\x04\x96\x01\x1b6\n\r\n\x05\x06\0\x02\t\x03\x12\
22835    \x04\x97\x01\x0f+\n\x0f\n\x05\x06\0\x02\t\x04\x12\x06\x98\x01\x04\x9a\
22836    \x01\x06\n\x13\n\t\x06\0\x02\t\x04\xb0\xca\xbc\"\x12\x06\x98\x01\x04\x9a\
22837    \x01\x06\n\r\n\x05\x06\0\x02\t\x04\x12\x04\x9b\x01\x049\n\x10\n\x08\x06\
22838    \0\x02\t\x04\x9b\x08\0\x12\x04\x9b\x01\x049\nj\n\x04\x06\0\x02\n\x12\x06\
22839    \xa0\x01\x02\xa5\x01\x03\x1aZ\x20Analyzes\x20IAM\x20policies\x20to\x20an\
22840    swer\x20which\x20identities\x20have\x20what\x20accesses\x20on\n\x20which\
22841    \x20resources.\n\n\r\n\x05\x06\0\x02\n\x01\x12\x04\xa0\x01\x06\x16\n\r\n\
22842    \x05\x06\0\x02\n\x02\x12\x04\xa0\x01\x17.\n\r\n\x05\x06\0\x02\n\x03\x12\
22843    \x04\xa1\x01\x0f'\n\x0f\n\x05\x06\0\x02\n\x04\x12\x06\xa2\x01\x04\xa4\
22844    \x01\x06\n\x13\n\t\x06\0\x02\n\x04\xb0\xca\xbc\"\x12\x06\xa2\x01\x04\xa4\
22845    \x01\x06\n\xaf\x05\n\x04\x06\0\x02\x0b\x12\x06\xb1\x01\x02\xbb\x01\x03\
22846    \x1a\x9e\x05\x20Analyzes\x20IAM\x20policies\x20asynchronously\x20to\x20a\
22847    nswer\x20which\x20identities\x20have\x20what\n\x20accesses\x20on\x20whic\
22848    h\x20resources,\x20and\x20writes\x20the\x20analysis\x20results\x20to\x20\
22849    a\x20Google\n\x20Cloud\x20Storage\x20or\x20a\x20BigQuery\x20destination.\
22850    \x20For\x20Cloud\x20Storage\x20destination,\x20the\n\x20output\x20format\
22851    \x20is\x20the\x20JSON\x20format\x20that\x20represents\x20a\n\x20[Analyze\
22852    IamPolicyResponse][google.cloud.asset.v1.AnalyzeIamPolicyResponse].\n\
22853    \x20This\x20method\x20implements\x20the\n\x20[google.longrunning.Operati\
22854    on][google.longrunning.Operation],\x20which\x20allows\n\x20you\x20to\x20\
22855    track\x20the\x20operation\x20status.\x20We\x20recommend\x20intervals\x20\
22856    of\x20at\x20least\x202\n\x20seconds\x20with\x20exponential\x20backoff\
22857    \x20retry\x20to\x20poll\x20the\x20operation\x20result.\x20The\n\x20metad\
22858    ata\x20contains\x20the\x20metadata\x20for\x20the\x20long-running\x20oper\
22859    ation.\n\n\r\n\x05\x06\0\x02\x0b\x01\x12\x04\xb1\x01\x06!\n\r\n\x05\x06\
22860    \0\x02\x0b\x02\x12\x04\xb1\x01\"D\n\r\n\x05\x06\0\x02\x0b\x03\x12\x04\
22861    \xb2\x01\x0f+\n\x0f\n\x05\x06\0\x02\x0b\x04\x12\x06\xb3\x01\x04\xb6\x01\
22862    \x06\n\x13\n\t\x06\0\x02\x0b\x04\xb0\xca\xbc\"\x12\x06\xb3\x01\x04\xb6\
22863    \x01\x06\n\x0f\n\x05\x06\0\x02\x0b\x04\x12\x06\xb7\x01\x04\xba\x01\x06\n\
22864    \x11\n\x07\x06\0\x02\x0b\x04\x99\x08\x12\x06\xb7\x01\x04\xba\x01\x06\n\
22865    \xd6\x02\n\x04\x06\0\x02\x0c\x12\x06\xc2\x01\x02\xc6\x01\x03\x1a\xc5\x02\
22866    \x20Analyze\x20moving\x20a\x20resource\x20to\x20a\x20specified\x20destin\
22867    ation\x20without\x20kicking\x20off\n\x20the\x20actual\x20move.\x20The\
22868    \x20analysis\x20is\x20best\x20effort\x20depending\x20on\x20the\x20user's\
22869    \n\x20permissions\x20of\x20viewing\x20different\x20hierarchical\x20polic\
22870    ies\x20and\x20configurations.\n\x20The\x20policies\x20and\x20configurati\
22871    on\x20are\x20subject\x20to\x20change\x20before\x20the\x20actual\n\x20res\
22872    ource\x20migration\x20takes\x20place.\n\n\r\n\x05\x06\0\x02\x0c\x01\x12\
22873    \x04\xc2\x01\x06\x11\n\r\n\x05\x06\0\x02\x0c\x02\x12\x04\xc2\x01\x12$\n\
22874    \r\n\x05\x06\0\x02\x0c\x03\x12\x04\xc2\x01/B\n\x0f\n\x05\x06\0\x02\x0c\
22875    \x04\x12\x06\xc3\x01\x04\xc5\x01\x06\n\x13\n\t\x06\0\x02\x0c\x04\xb0\xca\
22876    \xbc\"\x12\x06\xc3\x01\x04\xc5\x01\x06\n\x96\x05\n\x04\x06\0\x02\r\x12\
22877    \x06\xd4\x01\x02\xd9\x01\x03\x1a\x85\x05\x20Issue\x20a\x20job\x20that\
22878    \x20queries\x20assets\x20using\x20a\x20SQL\x20statement\x20compatible\
22879    \x20with\n\x20[BigQuery\x20SQL](https://cloud.google.com/bigquery/docs/i\
22880    ntroduction-sql).\n\n\x20If\x20the\x20query\x20execution\x20finishes\x20\
22881    within\x20timeout\x20and\x20there's\x20no\x20pagination,\n\x20the\x20ful\
22882    l\x20query\x20results\x20will\x20be\x20returned\x20in\x20the\x20`QueryAs\
22883    setsResponse`.\n\n\x20Otherwise,\x20full\x20query\x20results\x20can\x20b\
22884    e\x20obtained\x20by\x20issuing\x20extra\x20requests\n\x20with\x20the\x20\
22885    `job_reference`\x20from\x20the\x20a\x20previous\x20`QueryAssets`\x20call\
22886    .\n\n\x20Note,\x20the\x20query\x20result\x20has\x20approximately\x2010\
22887    \x20GB\x20limitation\x20enforced\x20by\n\x20[BigQuery](https://cloud.goo\
22888    gle.com/bigquery/docs/best-practices-performance-output).\n\x20Queries\
22889    \x20return\x20larger\x20results\x20will\x20result\x20in\x20errors.\n\n\r\
22890    \n\x05\x06\0\x02\r\x01\x12\x04\xd4\x01\x06\x11\n\r\n\x05\x06\0\x02\r\x02\
22891    \x12\x04\xd4\x01\x12$\n\r\n\x05\x06\0\x02\r\x03\x12\x04\xd4\x01/B\n\x0f\
22892    \n\x05\x06\0\x02\r\x04\x12\x06\xd5\x01\x04\xd8\x01\x06\n\x13\n\t\x06\0\
22893    \x02\r\x04\xb0\xca\xbc\"\x12\x06\xd5\x01\x04\xd8\x01\x06\nP\n\x04\x06\0\
22894    \x02\x0e\x12\x06\xdc\x01\x02\xe2\x01\x03\x1a@\x20Creates\x20a\x20saved\
22895    \x20query\x20in\x20a\x20parent\x20project/folder/organization.\n\n\r\n\
22896    \x05\x06\0\x02\x0e\x01\x12\x04\xdc\x01\x06\x16\n\r\n\x05\x06\0\x02\x0e\
22897    \x02\x12\x04\xdc\x01\x17.\n\r\n\x05\x06\0\x02\x0e\x03\x12\x04\xdc\x019C\
22898    \n\x0f\n\x05\x06\0\x02\x0e\x04\x12\x06\xdd\x01\x04\xe0\x01\x06\n\x13\n\t\
22899    \x06\0\x02\x0e\x04\xb0\xca\xbc\"\x12\x06\xdd\x01\x04\xe0\x01\x06\n\r\n\
22900    \x05\x06\0\x02\x0e\x04\x12\x04\xe1\x01\x04O\n\x10\n\x08\x06\0\x02\x0e\
22901    \x04\x9b\x08\0\x12\x04\xe1\x01\x04O\n3\n\x04\x06\0\x02\x0f\x12\x06\xe5\
22902    \x01\x02\xea\x01\x03\x1a#\x20Gets\x20details\x20about\x20a\x20saved\x20q\
22903    uery.\n\n\r\n\x05\x06\0\x02\x0f\x01\x12\x04\xe5\x01\x06\x13\n\r\n\x05\
22904    \x06\0\x02\x0f\x02\x12\x04\xe5\x01\x14(\n\r\n\x05\x06\0\x02\x0f\x03\x12\
22905    \x04\xe5\x013=\n\x0f\n\x05\x06\0\x02\x0f\x04\x12\x06\xe6\x01\x04\xe8\x01\
22906    \x06\n\x13\n\t\x06\0\x02\x0f\x04\xb0\xca\xbc\"\x12\x06\xe6\x01\x04\xe8\
22907    \x01\x06\n\r\n\x05\x06\0\x02\x0f\x04\x12\x04\xe9\x01\x042\n\x10\n\x08\
22908    \x06\0\x02\x0f\x04\x9b\x08\0\x12\x04\xe9\x01\x042\nR\n\x04\x06\0\x02\x10\
22909    \x12\x06\xed\x01\x02\xf3\x01\x03\x1aB\x20Lists\x20all\x20saved\x20querie\
22910    s\x20in\x20a\x20parent\x20project/folder/organization.\n\n\r\n\x05\x06\0\
22911    \x02\x10\x01\x12\x04\xed\x01\x06\x16\n\r\n\x05\x06\0\x02\x10\x02\x12\x04\
22912    \xed\x01\x17.\n\r\n\x05\x06\0\x02\x10\x03\x12\x04\xee\x01\x0f'\n\x0f\n\
22913    \x05\x06\0\x02\x10\x04\x12\x06\xef\x01\x04\xf1\x01\x06\n\x13\n\t\x06\0\
22914    \x02\x10\x04\xb0\xca\xbc\"\x12\x06\xef\x01\x04\xf1\x01\x06\n\r\n\x05\x06\
22915    \0\x02\x10\x04\x12\x04\xf2\x01\x044\n\x10\n\x08\x06\0\x02\x10\x04\x9b\
22916    \x08\0\x12\x04\xf2\x01\x044\n(\n\x04\x06\0\x02\x11\x12\x06\xf6\x01\x02\
22917    \xfc\x01\x03\x1a\x18\x20Updates\x20a\x20saved\x20query.\n\n\r\n\x05\x06\
22918    \0\x02\x11\x01\x12\x04\xf6\x01\x06\x16\n\r\n\x05\x06\0\x02\x11\x02\x12\
22919    \x04\xf6\x01\x17.\n\r\n\x05\x06\0\x02\x11\x03\x12\x04\xf6\x019C\n\x0f\n\
22920    \x05\x06\0\x02\x11\x04\x12\x06\xf7\x01\x04\xfa\x01\x06\n\x13\n\t\x06\0\
22921    \x02\x11\x04\xb0\xca\xbc\"\x12\x06\xf7\x01\x04\xfa\x01\x06\n\r\n\x05\x06\
22922    \0\x02\x11\x04\x12\x04\xfb\x01\x04E\n\x10\n\x08\x06\0\x02\x11\x04\x9b\
22923    \x08\0\x12\x04\xfb\x01\x04E\n(\n\x04\x06\0\x02\x12\x12\x06\xff\x01\x02\
22924    \x85\x02\x03\x1a\x18\x20Deletes\x20a\x20saved\x20query.\n\n\r\n\x05\x06\
22925    \0\x02\x12\x01\x12\x04\xff\x01\x06\x16\n\r\n\x05\x06\0\x02\x12\x02\x12\
22926    \x04\xff\x01\x17.\n\r\n\x05\x06\0\x02\x12\x03\x12\x04\x80\x02\x0f$\n\x0f\
22927    \n\x05\x06\0\x02\x12\x04\x12\x06\x81\x02\x04\x83\x02\x06\n\x13\n\t\x06\0\
22928    \x02\x12\x04\xb0\xca\xbc\"\x12\x06\x81\x02\x04\x83\x02\x06\n\r\n\x05\x06\
22929    \0\x02\x12\x04\x12\x04\x84\x02\x042\n\x10\n\x08\x06\0\x02\x12\x04\x9b\
22930    \x08\0\x12\x04\x84\x02\x042\nG\n\x04\x06\0\x02\x13\x12\x06\x88\x02\x02\
22931    \x8d\x02\x03\x1a7\x20Gets\x20effective\x20IAM\x20policies\x20for\x20a\
22932    \x20batch\x20of\x20resources.\n\n\r\n\x05\x06\0\x02\x13\x01\x12\x04\x88\
22933    \x02\x06\"\n\r\n\x05\x06\0\x02\x13\x02\x12\x04\x88\x02#F\n\r\n\x05\x06\0\
22934    \x02\x13\x03\x12\x04\x89\x02\x0f3\n\x0f\n\x05\x06\0\x02\x13\x04\x12\x06\
22935    \x8a\x02\x04\x8c\x02\x06\n\x13\n\t\x06\0\x02\x13\x04\xb0\xca\xbc\"\x12\
22936    \x06\x8a\x02\x04\x8c\x02\x06\n?\n\x04\x06\0\x02\x14\x12\x06\x90\x02\x02\
22937    \x96\x02\x03\x1a/\x20Analyzes\x20organization\x20policies\x20under\x20a\
22938    \x20scope.\n\n\r\n\x05\x06\0\x02\x14\x01\x12\x04\x90\x02\x06\x18\n\r\n\
22939    \x05\x06\0\x02\x14\x02\x12\x04\x90\x02\x192\n\r\n\x05\x06\0\x02\x14\x03\
22940    \x12\x04\x91\x02\x0f)\n\x0f\n\x05\x06\0\x02\x14\x04\x12\x06\x92\x02\x04\
22941    \x94\x02\x06\n\x13\n\t\x06\0\x02\x14\x04\xb0\xca\xbc\"\x12\x06\x92\x02\
22942    \x04\x94\x02\x06\n\r\n\x05\x06\0\x02\x14\x04\x12\x04\x95\x02\x04E\n\x10\
22943    \n\x08\x06\0\x02\x14\x04\x9b\x08\0\x12\x04\x95\x02\x04E\nx\n\x04\x06\0\
22944    \x02\x15\x12\x06\x9a\x02\x02\xa1\x02\x03\x1ah\x20Analyzes\x20organizatio\
22945    n\x20policies\x20governed\x20containers\x20(projects,\x20folders\x20or\n\
22946    \x20organization)\x20under\x20a\x20scope.\n\n\r\n\x05\x06\0\x02\x15\x01\
22947    \x12\x04\x9a\x02\x06(\n\r\n\x05\x06\0\x02\x15\x02\x12\x04\x9b\x02\x06/\n\
22948    \r\n\x05\x06\0\x02\x15\x03\x12\x04\x9c\x02\x0f9\n\x0f\n\x05\x06\0\x02\
22949    \x15\x04\x12\x06\x9d\x02\x04\x9f\x02\x06\n\x13\n\t\x06\0\x02\x15\x04\xb0\
22950    \xca\xbc\"\x12\x06\x9d\x02\x04\x9f\x02\x06\n\r\n\x05\x06\0\x02\x15\x04\
22951    \x12\x04\xa0\x02\x04E\n\x10\n\x08\x06\0\x02\x15\x04\x9b\x08\0\x12\x04\
22952    \xa0\x02\x04E\n\xe8\x05\n\x04\x06\0\x02\x16\x12\x06\xb6\x02\x02\xbc\x02\
22953    \x03\x1a\xd7\x05\x20Analyzes\x20organization\x20policies\x20governed\x20\
22954    assets\x20(Google\x20Cloud\x20resources\x20or\n\x20policies)\x20under\
22955    \x20a\x20scope.\x20This\x20RPC\x20supports\x20custom\x20constraints\x20a\
22956    nd\x20the\n\x20following\x2010\x20canned\x20constraints:\n\n\x20*\x20sto\
22957    rage.uniformBucketLevelAccess\n\x20*\x20iam.disableServiceAccountKeyCrea\
22958    tion\n\x20*\x20iam.allowedPolicyMemberDomains\n\x20*\x20compute.vmExtern\
22959    alIpAccess\n\x20*\x20appengine.enforceServiceAccountActAsCheck\n\x20*\
22960    \x20gcp.resourceLocations\n\x20*\x20compute.trustedImageProjects\n\x20*\
22961    \x20compute.skipDefaultNetworkCreation\n\x20*\x20compute.requireOsLogin\
22962    \n\x20*\x20compute.disableNestedVirtualization\n\n\x20This\x20RPC\x20onl\
22963    y\x20returns\x20either\x20resources\x20of\x20types\x20supported\x20by\
22964    \x20[searchable\n\x20asset\n\x20types](https://cloud.google.com/asset-in\
22965    ventory/docs/supported-asset-types#searchable_asset_types),\n\x20or\x20I\
22966    AM\x20policies.\n\n\r\n\x05\x06\0\x02\x16\x01\x12\x04\xb6\x02\x06$\n\r\n\
22967    \x05\x06\0\x02\x16\x02\x12\x04\xb6\x02%J\n\r\n\x05\x06\0\x02\x16\x03\x12\
22968    \x04\xb7\x02\x0f5\n\x0f\n\x05\x06\0\x02\x16\x04\x12\x06\xb8\x02\x04\xba\
22969    \x02\x06\n\x13\n\t\x06\0\x02\x16\x04\xb0\xca\xbc\"\x12\x06\xb8\x02\x04\
22970    \xba\x02\x06\n\r\n\x05\x06\0\x02\x16\x04\x12\x04\xbb\x02\x04E\n\x10\n\
22971    \x08\x06\0\x02\x16\x04\x9b\x08\0\x12\x04\xbb\x02\x04E\nn\n\x02\x04\0\x12\
22972    \x06\xc1\x02\0\xc5\x02\x01\x1a`\x20Represents\x20the\x20metadata\x20of\
22973    \x20the\x20longrunning\x20operation\x20for\x20the\n\x20AnalyzeIamPolicyL\
22974    ongrunning\x20RPC.\n\n\x0b\n\x03\x04\0\x01\x12\x04\xc1\x02\x08+\nB\n\x04\
22975    \x04\0\x02\0\x12\x06\xc3\x02\x02\xc4\x022\x1a2\x20Output\x20only.\x20The\
22976    \x20time\x20the\x20operation\x20was\x20created.\n\n\r\n\x05\x04\0\x02\0\
22977    \x06\x12\x04\xc3\x02\x02\x1b\n\r\n\x05\x04\0\x02\0\x01\x12\x04\xc3\x02\
22978    \x1c'\n\r\n\x05\x04\0\x02\0\x03\x12\x04\xc3\x02*+\n\r\n\x05\x04\0\x02\0\
22979    \x08\x12\x04\xc4\x02\x061\n\x10\n\x08\x04\0\x02\0\x08\x9c\x08\0\x12\x04\
22980    \xc4\x02\x070\n%\n\x02\x04\x01\x12\x06\xc8\x02\0\x87\x03\x01\x1a\x17\x20\
22981    Export\x20asset\x20request.\n\n\x0b\n\x03\x04\x01\x01\x12\x04\xc8\x02\
22982    \x08\x1b\n\x98\x02\n\x04\x04\x01\x02\0\x12\x06\xcd\x02\x02\xd2\x02\x04\
22983    \x1a\x87\x02\x20Required.\x20The\x20relative\x20name\x20of\x20the\x20roo\
22984    t\x20asset.\x20This\x20can\x20only\x20be\x20an\n\x20organization\x20numb\
22985    er\x20(such\x20as\x20\"organizations/123\"),\x20a\x20project\x20ID\x20(s\
22986    uch\x20as\n\x20\"projects/my-project-id\"),\x20or\x20a\x20project\x20num\
22987    ber\x20(such\x20as\x20\"projects/12345\"),\n\x20or\x20a\x20folder\x20num\
22988    ber\x20(such\x20as\x20\"folders/123\").\n\n\r\n\x05\x04\x01\x02\0\x05\
22989    \x12\x04\xcd\x02\x02\x08\n\r\n\x05\x04\x01\x02\0\x01\x12\x04\xcd\x02\t\
22990    \x0f\n\r\n\x05\x04\x01\x02\0\x03\x12\x04\xcd\x02\x12\x13\n\x0f\n\x05\x04\
22991    \x01\x02\0\x08\x12\x06\xcd\x02\x14\xd2\x02\x03\n\x10\n\x08\x04\x01\x02\0\
22992    \x08\x9c\x08\0\x12\x04\xce\x02\x04*\n\x11\n\x07\x04\x01\x02\0\x08\x9f\
22993    \x08\x12\x06\xcf\x02\x04\xd1\x02\x05\n\xe9\x02\n\x04\x04\x01\x02\x01\x12\
22994    \x04\xd9\x02\x02*\x1a\xda\x02\x20Timestamp\x20to\x20take\x20an\x20asset\
22995    \x20snapshot.\x20This\x20can\x20only\x20be\x20set\x20to\x20a\x20timestam\
22996    p\n\x20between\x20the\x20current\x20time\x20and\x20the\x20current\x20tim\
22997    e\x20minus\x2035\x20days\x20(inclusive).\n\x20If\x20not\x20specified,\
22998    \x20the\x20current\x20time\x20will\x20be\x20used.\x20Due\x20to\x20delays\
22999    \x20in\x20resource\n\x20data\x20collection\x20and\x20indexing,\x20there\
23000    \x20is\x20a\x20volatile\x20window\x20during\x20which\n\x20running\x20the\
23001    \x20same\x20query\x20may\x20get\x20different\x20results.\n\n\r\n\x05\x04\
23002    \x01\x02\x01\x06\x12\x04\xd9\x02\x02\x1b\n\r\n\x05\x04\x01\x02\x01\x01\
23003    \x12\x04\xd9\x02\x1c%\n\r\n\x05\x04\x01\x02\x01\x03\x12\x04\xd9\x02()\n\
23004    \xe3\x06\n\x04\x04\x01\x02\x02\x12\x04\xed\x02\x02\"\x1a\xd4\x06\x20A\
23005    \x20list\x20of\x20asset\x20types\x20to\x20take\x20a\x20snapshot\x20for.\
23006    \x20For\x20example:\n\x20\"compute.googleapis.com/Disk\".\n\n\x20Regular\
23007    \x20expressions\x20are\x20also\x20supported.\x20For\x20example:\n\n\x20*\
23008    \x20\"compute.googleapis.com.*\"\x20snapshots\x20resources\x20whose\x20a\
23009    sset\x20type\x20starts\n\x20with\x20\"compute.googleapis.com\".\n\x20*\
23010    \x20\".*Instance\"\x20snapshots\x20resources\x20whose\x20asset\x20type\
23011    \x20ends\x20with\x20\"Instance\".\n\x20*\x20\".*Instance.*\"\x20snapshot\
23012    s\x20resources\x20whose\x20asset\x20type\x20contains\x20\"Instance\".\n\
23013    \n\x20See\x20[RE2](https://github.com/google/re2/wiki/Syntax)\x20for\x20\
23014    all\x20supported\n\x20regular\x20expression\x20syntax.\x20If\x20the\x20r\
23015    egular\x20expression\x20does\x20not\x20match\x20any\n\x20supported\x20as\
23016    set\x20type,\x20an\x20INVALID_ARGUMENT\x20error\x20will\x20be\x20returne\
23017    d.\n\n\x20If\x20specified,\x20only\x20matching\x20assets\x20will\x20be\
23018    \x20returned,\x20otherwise,\x20it\x20will\n\x20snapshot\x20all\x20asset\
23019    \x20types.\x20See\x20[Introduction\x20to\x20Cloud\x20Asset\n\x20Inventor\
23020    y](https://cloud.google.com/asset-inventory/docs/overview)\n\x20for\x20a\
23021    ll\x20supported\x20asset\x20types.\n\n\r\n\x05\x04\x01\x02\x02\x04\x12\
23022    \x04\xed\x02\x02\n\n\r\n\x05\x04\x01\x02\x02\x05\x12\x04\xed\x02\x0b\x11\
23023    \n\r\n\x05\x04\x01\x02\x02\x01\x12\x04\xed\x02\x12\x1d\n\r\n\x05\x04\x01\
23024    \x02\x02\x03\x12\x04\xed\x02\x20!\nf\n\x04\x04\x01\x02\x03\x12\x04\xf1\
23025    \x02\x02\x1f\x1aX\x20Asset\x20content\x20type.\x20If\x20not\x20specified\
23026    ,\x20no\x20content\x20but\x20the\x20asset\x20name\x20will\x20be\n\x20ret\
23027    urned.\n\n\r\n\x05\x04\x01\x02\x03\x06\x12\x04\xf1\x02\x02\r\n\r\n\x05\
23028    \x04\x01\x02\x03\x01\x12\x04\xf1\x02\x0e\x1a\n\r\n\x05\x04\x01\x02\x03\
23029    \x03\x12\x04\xf1\x02\x1d\x1e\n_\n\x04\x04\x01\x02\x04\x12\x04\xf5\x02\
23030    \x02J\x1aQ\x20Required.\x20Output\x20configuration\x20indicating\x20wher\
23031    e\x20the\x20results\x20will\x20be\x20output\n\x20to.\n\n\r\n\x05\x04\x01\
23032    \x02\x04\x06\x12\x04\xf5\x02\x02\x0e\n\r\n\x05\x04\x01\x02\x04\x01\x12\
23033    \x04\xf5\x02\x0f\x1c\n\r\n\x05\x04\x01\x02\x04\x03\x12\x04\xf5\x02\x1f\
23034    \x20\n\r\n\x05\x04\x01\x02\x04\x08\x12\x04\xf5\x02!I\n\x10\n\x08\x04\x01\
23035    \x02\x04\x08\x9c\x08\0\x12\x04\xf5\x02\"H\n\xbb\x06\n\x04\x04\x01\x02\
23036    \x05\x12\x04\x86\x03\x02)\x1a\xac\x06\x20A\x20list\x20of\x20relationship\
23037    \x20types\x20to\x20export,\x20for\x20example:\n\x20`INSTANCE_TO_INSTANCE\
23038    GROUP`.\x20This\x20field\x20should\x20only\x20be\x20specified\x20if\n\
23039    \x20content_type=RELATIONSHIP.\n\x20*\x20If\x20specified:\n\x20it\x20sna\
23040    pshots\x20specified\x20relationships.\x20It\x20returns\x20an\x20error\
23041    \x20if\n\x20any\x20of\x20the\x20[relationship_types]\x20doesn't\x20belon\
23042    g\x20to\x20the\x20supported\n\x20relationship\x20types\x20of\x20the\x20[\
23043    asset_types]\x20or\x20if\x20any\x20of\x20the\x20[asset_types]\n\x20doesn\
23044    't\x20belong\x20to\x20the\x20source\x20types\x20of\x20the\x20[relationsh\
23045    ip_types].\n\x20*\x20Otherwise:\n\x20it\x20snapshots\x20the\x20supported\
23046    \x20relationships\x20for\x20all\x20[asset_types]\x20or\x20returns\n\x20a\
23047    n\x20error\x20if\x20any\x20of\x20the\x20[asset_types]\x20has\x20no\x20re\
23048    lationship\x20support.\n\x20An\x20unspecified\x20asset\x20types\x20field\
23049    \x20means\x20all\x20supported\x20asset_types.\n\x20See\x20[Introduction\
23050    \x20to\x20Cloud\x20Asset\n\x20Inventory](https://cloud.google.com/asset-\
23051    inventory/docs/overview)\x20for\x20all\n\x20supported\x20asset\x20types\
23052    \x20and\x20relationship\x20types.\n\n\r\n\x05\x04\x01\x02\x05\x04\x12\
23053    \x04\x86\x03\x02\n\n\r\n\x05\x04\x01\x02\x05\x05\x12\x04\x86\x03\x0b\x11\
23054    \n\r\n\x05\x04\x01\x02\x05\x01\x12\x04\x86\x03\x12$\n\r\n\x05\x04\x01\
23055    \x02\x05\x03\x12\x04\x86\x03'(\n\x95\x02\n\x02\x04\x02\x12\x06\x8e\x03\0\
23056    \x9b\x03\x01\x1a\x86\x02\x20The\x20export\x20asset\x20response.\x20This\
23057    \x20message\x20is\x20returned\x20by\x20the\n\x20[google.longrunning.Oper\
23058    ations.GetOperation][google.longrunning.Operations.GetOperation]\n\x20me\
23059    thod\x20in\x20the\x20returned\n\x20[google.longrunning.Operation.respons\
23060    e][google.longrunning.Operation.response]\n\x20field.\n\n\x0b\n\x03\x04\
23061    \x02\x01\x12\x04\x8e\x03\x08\x1c\n,\n\x04\x04\x02\x02\0\x12\x04\x90\x03\
23062    \x02*\x1a\x1e\x20Time\x20the\x20snapshot\x20was\x20taken.\n\n\r\n\x05\
23063    \x04\x02\x02\0\x06\x12\x04\x90\x03\x02\x1b\n\r\n\x05\x04\x02\x02\0\x01\
23064    \x12\x04\x90\x03\x1c%\n\r\n\x05\x04\x02\x02\0\x03\x12\x04\x90\x03()\nQ\n\
23065    \x04\x04\x02\x02\x01\x12\x04\x93\x03\x02!\x1aC\x20Output\x20configuratio\
23066    n\x20indicating\x20where\x20the\x20results\x20were\x20output\x20to.\n\n\
23067    \r\n\x05\x04\x02\x02\x01\x06\x12\x04\x93\x03\x02\x0e\n\r\n\x05\x04\x02\
23068    \x02\x01\x01\x12\x04\x93\x03\x0f\x1c\n\r\n\x05\x04\x02\x02\x01\x03\x12\
23069    \x04\x93\x03\x1f\x20\n\xe0\x02\n\x04\x04\x02\x02\x02\x12\x04\x9a\x03\x02\
23070    !\x1a\xd1\x02\x20Output\x20result\x20indicating\x20where\x20the\x20asset\
23071    s\x20were\x20exported\x20to.\x20For\x20example,\x20a\n\x20set\x20of\x20a\
23072    ctual\x20Cloud\x20Storage\x20object\x20URIs\x20where\x20the\x20assets\
23073    \x20are\x20exported\x20to.\n\x20The\x20URIs\x20can\x20be\x20different\
23074    \x20from\x20what\x20[output_config]\x20has\x20specified,\x20as\x20the\n\
23075    \x20service\x20will\x20split\x20the\x20output\x20object\x20into\x20multi\
23076    ple\x20ones\x20once\x20it\x20exceeds\x20a\n\x20single\x20Cloud\x20Storag\
23077    e\x20object\x20limit.\n\n\r\n\x05\x04\x02\x02\x02\x06\x12\x04\x9a\x03\
23078    \x02\x0e\n\r\n\x05\x04\x02\x02\x02\x01\x12\x04\x9a\x03\x0f\x1c\n\r\n\x05\
23079    \x04\x02\x02\x02\x03\x12\x04\x9a\x03\x1f\x20\n#\n\x02\x04\x03\x12\x06\
23080    \x9e\x03\0\xe3\x03\x01\x1a\x15\x20ListAssets\x20request.\n\n\x0b\n\x03\
23081    \x04\x03\x01\x12\x04\x9e\x03\x08\x19\n\xdc\x02\n\x04\x04\x03\x02\0\x12\
23082    \x06\xa4\x03\x02\xa9\x03\x04\x1a\xcb\x02\x20Required.\x20Name\x20of\x20t\
23083    he\x20organization,\x20folder,\x20or\x20project\x20the\x20assets\x20belo\
23084    ng\n\x20to.\x20Format:\x20\"organizations/[organization-number]\"\x20(su\
23085    ch\x20as\n\x20\"organizations/123\"),\x20\"projects/[project-id]\"\x20(s\
23086    uch\x20as\n\x20\"projects/my-project-id\"),\x20\"projects/[project-numbe\
23087    r]\"\x20(such\x20as\n\x20\"projects/12345\"),\x20or\x20\"folders/[folder\
23088    -number]\"\x20(such\x20as\x20\"folders/12345\").\n\n\r\n\x05\x04\x03\x02\
23089    \0\x05\x12\x04\xa4\x03\x02\x08\n\r\n\x05\x04\x03\x02\0\x01\x12\x04\xa4\
23090    \x03\t\x0f\n\r\n\x05\x04\x03\x02\0\x03\x12\x04\xa4\x03\x12\x13\n\x0f\n\
23091    \x05\x04\x03\x02\0\x08\x12\x06\xa4\x03\x14\xa9\x03\x03\n\x10\n\x08\x04\
23092    \x03\x02\0\x08\x9c\x08\0\x12\x04\xa5\x03\x04*\n\x11\n\x07\x04\x03\x02\0\
23093    \x08\x9f\x08\x12\x06\xa6\x03\x04\xa8\x03\x05\n\xe9\x02\n\x04\x04\x03\x02\
23094    \x01\x12\x04\xb0\x03\x02*\x1a\xda\x02\x20Timestamp\x20to\x20take\x20an\
23095    \x20asset\x20snapshot.\x20This\x20can\x20only\x20be\x20set\x20to\x20a\
23096    \x20timestamp\n\x20between\x20the\x20current\x20time\x20and\x20the\x20cu\
23097    rrent\x20time\x20minus\x2035\x20days\x20(inclusive).\n\x20If\x20not\x20s\
23098    pecified,\x20the\x20current\x20time\x20will\x20be\x20used.\x20Due\x20to\
23099    \x20delays\x20in\x20resource\n\x20data\x20collection\x20and\x20indexing,\
23100    \x20there\x20is\x20a\x20volatile\x20window\x20during\x20which\n\x20runni\
23101    ng\x20the\x20same\x20query\x20may\x20get\x20different\x20results.\n\n\r\
23102    \n\x05\x04\x03\x02\x01\x06\x12\x04\xb0\x03\x02\x1b\n\r\n\x05\x04\x03\x02\
23103    \x01\x01\x12\x04\xb0\x03\x1c%\n\r\n\x05\x04\x03\x02\x01\x03\x12\x04\xb0\
23104    \x03()\n\xe1\x06\n\x04\x04\x03\x02\x02\x12\x04\xc4\x03\x02\"\x1a\xd2\x06\
23105    \x20A\x20list\x20of\x20asset\x20types\x20to\x20take\x20a\x20snapshot\x20\
23106    for.\x20For\x20example:\n\x20\"compute.googleapis.com/Disk\".\n\n\x20Reg\
23107    ular\x20expression\x20is\x20also\x20supported.\x20For\x20example:\n\n\
23108    \x20*\x20\"compute.googleapis.com.*\"\x20snapshots\x20resources\x20whose\
23109    \x20asset\x20type\x20starts\n\x20with\x20\"compute.googleapis.com\".\n\
23110    \x20*\x20\".*Instance\"\x20snapshots\x20resources\x20whose\x20asset\x20t\
23111    ype\x20ends\x20with\x20\"Instance\".\n\x20*\x20\".*Instance.*\"\x20snaps\
23112    hots\x20resources\x20whose\x20asset\x20type\x20contains\x20\"Instance\".\
23113    \n\n\x20See\x20[RE2](https://github.com/google/re2/wiki/Syntax)\x20for\
23114    \x20all\x20supported\n\x20regular\x20expression\x20syntax.\x20If\x20the\
23115    \x20regular\x20expression\x20does\x20not\x20match\x20any\n\x20supported\
23116    \x20asset\x20type,\x20an\x20INVALID_ARGUMENT\x20error\x20will\x20be\x20r\
23117    eturned.\n\n\x20If\x20specified,\x20only\x20matching\x20assets\x20will\
23118    \x20be\x20returned,\x20otherwise,\x20it\x20will\n\x20snapshot\x20all\x20\
23119    asset\x20types.\x20See\x20[Introduction\x20to\x20Cloud\x20Asset\n\x20Inv\
23120    entory](https://cloud.google.com/asset-inventory/docs/overview)\n\x20for\
23121    \x20all\x20supported\x20asset\x20types.\n\n\r\n\x05\x04\x03\x02\x02\x04\
23122    \x12\x04\xc4\x03\x02\n\n\r\n\x05\x04\x03\x02\x02\x05\x12\x04\xc4\x03\x0b\
23123    \x11\n\r\n\x05\x04\x03\x02\x02\x01\x12\x04\xc4\x03\x12\x1d\n\r\n\x05\x04\
23124    \x03\x02\x02\x03\x12\x04\xc4\x03\x20!\nf\n\x04\x04\x03\x02\x03\x12\x04\
23125    \xc8\x03\x02\x1f\x1aX\x20Asset\x20content\x20type.\x20If\x20not\x20speci\
23126    fied,\x20no\x20content\x20but\x20the\x20asset\x20name\x20will\n\x20be\
23127    \x20returned.\n\n\r\n\x05\x04\x03\x02\x03\x06\x12\x04\xc8\x03\x02\r\n\r\
23128    \n\x05\x04\x03\x02\x03\x01\x12\x04\xc8\x03\x0e\x1a\n\r\n\x05\x04\x03\x02\
23129    \x03\x03\x12\x04\xc8\x03\x1d\x1e\n\x85\x01\n\x04\x04\x03\x02\x04\x12\x04\
23130    \xcc\x03\x02\x16\x1aw\x20The\x20maximum\x20number\x20of\x20assets\x20to\
23131    \x20be\x20returned\x20in\x20a\x20single\x20response.\x20Default\n\x20is\
23132    \x20100,\x20minimum\x20is\x201,\x20and\x20maximum\x20is\x201000.\n\n\r\n\
23133    \x05\x04\x03\x02\x04\x05\x12\x04\xcc\x03\x02\x07\n\r\n\x05\x04\x03\x02\
23134    \x04\x01\x12\x04\xcc\x03\x08\x11\n\r\n\x05\x04\x03\x02\x04\x03\x12\x04\
23135    \xcc\x03\x14\x15\n\xf1\x01\n\x04\x04\x03\x02\x05\x12\x04\xd1\x03\x02\x18\
23136    \x1a\xe2\x01\x20The\x20`next_page_token`\x20returned\x20from\x20the\x20p\
23137    revious\x20`ListAssetsResponse`,\x20or\n\x20unspecified\x20for\x20the\
23138    \x20first\x20`ListAssetsRequest`.\x20It\x20is\x20a\x20continuation\x20of\
23139    \x20a\n\x20prior\x20`ListAssets`\x20call,\x20and\x20the\x20API\x20should\
23140    \x20return\x20the\x20next\x20page\x20of\x20assets.\n\n\r\n\x05\x04\x03\
23141    \x02\x05\x05\x12\x04\xd1\x03\x02\x08\n\r\n\x05\x04\x03\x02\x05\x01\x12\
23142    \x04\xd1\x03\t\x13\n\r\n\x05\x04\x03\x02\x05\x03\x12\x04\xd1\x03\x16\x17\
23143    \n\xbb\x06\n\x04\x04\x03\x02\x06\x12\x04\xe2\x03\x02)\x1a\xac\x06\x20A\
23144    \x20list\x20of\x20relationship\x20types\x20to\x20output,\x20for\x20examp\
23145    le:\n\x20`INSTANCE_TO_INSTANCEGROUP`.\x20This\x20field\x20should\x20only\
23146    \x20be\x20specified\x20if\n\x20content_type=RELATIONSHIP.\n\x20*\x20If\
23147    \x20specified:\n\x20it\x20snapshots\x20specified\x20relationships.\x20It\
23148    \x20returns\x20an\x20error\x20if\n\x20any\x20of\x20the\x20[relationship_\
23149    types]\x20doesn't\x20belong\x20to\x20the\x20supported\n\x20relationship\
23150    \x20types\x20of\x20the\x20[asset_types]\x20or\x20if\x20any\x20of\x20the\
23151    \x20[asset_types]\n\x20doesn't\x20belong\x20to\x20the\x20source\x20types\
23152    \x20of\x20the\x20[relationship_types].\n\x20*\x20Otherwise:\n\x20it\x20s\
23153    napshots\x20the\x20supported\x20relationships\x20for\x20all\x20[asset_ty\
23154    pes]\x20or\x20returns\n\x20an\x20error\x20if\x20any\x20of\x20the\x20[ass\
23155    et_types]\x20has\x20no\x20relationship\x20support.\n\x20An\x20unspecifie\
23156    d\x20asset\x20types\x20field\x20means\x20all\x20supported\x20asset_types\
23157    .\n\x20See\x20[Introduction\x20to\x20Cloud\x20Asset\n\x20Inventory](http\
23158    s://cloud.google.com/asset-inventory/docs/overview)\n\x20for\x20all\x20s\
23159    upported\x20asset\x20types\x20and\x20relationship\x20types.\n\n\r\n\x05\
23160    \x04\x03\x02\x06\x04\x12\x04\xe2\x03\x02\n\n\r\n\x05\x04\x03\x02\x06\x05\
23161    \x12\x04\xe2\x03\x0b\x11\n\r\n\x05\x04\x03\x02\x06\x01\x12\x04\xe2\x03\
23162    \x12$\n\r\n\x05\x04\x03\x02\x06\x03\x12\x04\xe2\x03'(\n$\n\x02\x04\x04\
23163    \x12\x06\xe6\x03\0\xf1\x03\x01\x1a\x16\x20ListAssets\x20response.\n\n\
23164    \x0b\n\x03\x04\x04\x01\x12\x04\xe6\x03\x08\x1a\n,\n\x04\x04\x04\x02\0\
23165    \x12\x04\xe8\x03\x02*\x1a\x1e\x20Time\x20the\x20snapshot\x20was\x20taken\
23166    .\n\n\r\n\x05\x04\x04\x02\0\x06\x12\x04\xe8\x03\x02\x1b\n\r\n\x05\x04\
23167    \x04\x02\0\x01\x12\x04\xe8\x03\x1c%\n\r\n\x05\x04\x04\x02\0\x03\x12\x04\
23168    \xe8\x03()\n\x17\n\x04\x04\x04\x02\x01\x12\x04\xeb\x03\x02\x1c\x1a\t\x20\
23169    Assets.\n\n\r\n\x05\x04\x04\x02\x01\x04\x12\x04\xeb\x03\x02\n\n\r\n\x05\
23170    \x04\x04\x02\x01\x06\x12\x04\xeb\x03\x0b\x10\n\r\n\x05\x04\x04\x02\x01\
23171    \x01\x12\x04\xeb\x03\x11\x17\n\r\n\x05\x04\x04\x02\x01\x03\x12\x04\xeb\
23172    \x03\x1a\x1b\n\xb8\x01\n\x04\x04\x04\x02\x02\x12\x04\xf0\x03\x02\x1d\x1a\
23173    \xa9\x01\x20Token\x20to\x20retrieve\x20the\x20next\x20page\x20of\x20resu\
23174    lts.\x20It\x20expires\x2072\x20hours\x20after\x20the\n\x20page\x20token\
23175    \x20for\x20the\x20first\x20page\x20is\x20generated.\x20Set\x20to\x20empt\
23176    y\x20if\x20there\x20are\x20no\n\x20remaining\x20results.\n\n\r\n\x05\x04\
23177    \x04\x02\x02\x05\x12\x04\xf0\x03\x02\x08\n\r\n\x05\x04\x04\x02\x02\x01\
23178    \x12\x04\xf0\x03\t\x18\n\r\n\x05\x04\x04\x02\x02\x03\x12\x04\xf0\x03\x1b\
23179    \x1c\n1\n\x02\x04\x05\x12\x06\xf4\x03\0\xa6\x04\x01\x1a#\x20Batch\x20get\
23180    \x20assets\x20history\x20request.\n\n\x0b\n\x03\x04\x05\x01\x12\x04\xf4\
23181    \x03\x08$\n\xea\x01\n\x04\x04\x05\x02\0\x12\x06\xf8\x03\x02\xfd\x03\x04\
23182    \x1a\xd9\x01\x20Required.\x20The\x20relative\x20name\x20of\x20the\x20roo\
23183    t\x20asset.\x20It\x20can\x20only\x20be\x20an\n\x20organization\x20number\
23184    \x20(such\x20as\x20\"organizations/123\"),\x20a\x20project\x20ID\x20(suc\
23185    h\x20as\n\x20\"projects/my-project-id\")\",\x20or\x20a\x20project\x20num\
23186    ber\x20(such\x20as\x20\"projects/12345\").\n\n\r\n\x05\x04\x05\x02\0\x05\
23187    \x12\x04\xf8\x03\x02\x08\n\r\n\x05\x04\x05\x02\0\x01\x12\x04\xf8\x03\t\
23188    \x0f\n\r\n\x05\x04\x05\x02\0\x03\x12\x04\xf8\x03\x12\x13\n\x0f\n\x05\x04\
23189    \x05\x02\0\x08\x12\x06\xf8\x03\x14\xfd\x03\x03\n\x10\n\x08\x04\x05\x02\0\
23190    \x08\x9c\x08\0\x12\x04\xf9\x03\x04*\n\x11\n\x07\x04\x05\x02\0\x08\x9f\
23191    \x08\x12\x06\xfa\x03\x04\xfc\x03\x05\n\xe0\x02\n\x04\x04\x05\x02\x01\x12\
23192    \x04\x87\x04\x02\"\x1a\xd1\x02\x20A\x20list\x20of\x20the\x20full\x20name\
23193    s\x20of\x20the\x20assets.\n\x20See:\x20https://cloud.google.com/asset-in\
23194    ventory/docs/resource-name-format\n\x20Example:\n\n\x20`//compute.google\
23195    apis.com/projects/my_project_123/zones/zone1/instances/instance1`.\n\n\
23196    \x20The\x20request\x20becomes\x20a\x20no-op\x20if\x20the\x20asset\x20nam\
23197    e\x20list\x20is\x20empty,\x20and\x20the\x20max\n\x20size\x20of\x20the\
23198    \x20asset\x20name\x20list\x20is\x20100\x20in\x20one\x20request.\n\n\r\n\
23199    \x05\x04\x05\x02\x01\x04\x12\x04\x87\x04\x02\n\n\r\n\x05\x04\x05\x02\x01\
23200    \x05\x12\x04\x87\x04\x0b\x11\n\r\n\x05\x04\x05\x02\x01\x01\x12\x04\x87\
23201    \x04\x12\x1d\n\r\n\x05\x04\x05\x02\x01\x03\x12\x04\x87\x04\x20!\n+\n\x04\
23202    \x04\x05\x02\x02\x12\x04\x8a\x04\x02H\x1a\x1d\x20Optional.\x20The\x20con\
23203    tent\x20type.\n\n\r\n\x05\x04\x05\x02\x02\x06\x12\x04\x8a\x04\x02\r\n\r\
23204    \n\x05\x04\x05\x02\x02\x01\x12\x04\x8a\x04\x0e\x1a\n\r\n\x05\x04\x05\x02\
23205    \x02\x03\x12\x04\x8a\x04\x1d\x1e\n\r\n\x05\x04\x05\x02\x02\x08\x12\x04\
23206    \x8a\x04\x1fG\n\x10\n\x08\x04\x05\x02\x02\x08\x9c\x08\0\x12\x04\x8a\x04\
23207    \x20F\n\x9e\x03\n\x04\x04\x05\x02\x03\x12\x04\x92\x04\x02K\x1a\x8f\x03\
23208    \x20Optional.\x20The\x20time\x20window\x20for\x20the\x20asset\x20history\
23209    .\x20Both\x20start_time\x20and\n\x20end_time\x20are\x20optional\x20and\
23210    \x20if\x20set,\x20it\x20must\x20be\x20after\x20the\x20current\x20time\
23211    \x20minus\n\x2035\x20days.\x20If\x20end_time\x20is\x20not\x20set,\x20it\
23212    \x20is\x20default\x20to\x20current\x20timestamp.\n\x20If\x20start_time\
23213    \x20is\x20not\x20set,\x20the\x20snapshot\x20of\x20the\x20assets\x20at\
23214    \x20end_time\x20will\x20be\n\x20returned.\x20The\x20returned\x20results\
23215    \x20contain\x20all\x20temporal\x20assets\x20whose\x20time\n\x20window\
23216    \x20overlap\x20with\x20read_time_window.\n\n\r\n\x05\x04\x05\x02\x03\x06\
23217    \x12\x04\x92\x04\x02\x0c\n\r\n\x05\x04\x05\x02\x03\x01\x12\x04\x92\x04\r\
23218    \x1d\n\r\n\x05\x04\x05\x02\x03\x03\x12\x04\x92\x04\x20!\n\r\n\x05\x04\
23219    \x05\x02\x03\x08\x12\x04\x92\x04\"J\n\x10\n\x08\x04\x05\x02\x03\x08\x9c\
23220    \x08\0\x12\x04\x92\x04#I\n\xb8\x06\n\x04\x04\x05\x02\x04\x12\x06\xa4\x04\
23221    \x02\xa5\x04/\x1a\xa7\x06\x20Optional.\x20A\x20list\x20of\x20relationshi\
23222    p\x20types\x20to\x20output,\x20for\x20example:\n\x20`INSTANCE_TO_INSTANC\
23223    EGROUP`.\x20This\x20field\x20should\x20only\x20be\x20specified\x20if\n\
23224    \x20content_type=RELATIONSHIP.\n\x20*\x20If\x20specified:\n\x20it\x20out\
23225    puts\x20specified\x20relationships'\x20history\x20on\x20the\x20[asset_na\
23226    mes].\x20It\n\x20returns\x20an\x20error\x20if\x20any\x20of\x20the\x20[re\
23227    lationship_types]\x20doesn't\x20belong\x20to\x20the\n\x20supported\x20re\
23228    lationship\x20types\x20of\x20the\x20[asset_names]\x20or\x20if\x20any\x20\
23229    of\x20the\n\x20[asset_names]'s\x20types\x20doesn't\x20belong\x20to\x20th\
23230    e\x20source\x20types\x20of\x20the\n\x20[relationship_types].\n\x20*\x20O\
23231    therwise:\n\x20it\x20outputs\x20the\x20supported\x20relationships'\x20hi\
23232    story\x20on\x20the\x20[asset_names]\x20or\n\x20returns\x20an\x20error\
23233    \x20if\x20any\x20of\x20the\x20[asset_names]'s\x20types\x20has\x20no\x20r\
23234    elationship\n\x20support.\n\x20See\x20[Introduction\x20to\x20Cloud\x20As\
23235    set\n\x20Inventory](https://cloud.google.com/asset-inventory/docs/overvi\
23236    ew)\x20for\x20all\n\x20supported\x20asset\x20types\x20and\x20relationshi\
23237    p\x20types.\n\n\r\n\x05\x04\x05\x02\x04\x04\x12\x04\xa4\x04\x02\n\n\r\n\
23238    \x05\x04\x05\x02\x04\x05\x12\x04\xa4\x04\x0b\x11\n\r\n\x05\x04\x05\x02\
23239    \x04\x01\x12\x04\xa4\x04\x12$\n\r\n\x05\x04\x05\x02\x04\x03\x12\x04\xa4\
23240    \x04'(\n\r\n\x05\x04\x05\x02\x04\x08\x12\x04\xa5\x04\x06.\n\x10\n\x08\
23241    \x04\x05\x02\x04\x08\x9c\x08\0\x12\x04\xa5\x04\x07-\n2\n\x02\x04\x06\x12\
23242    \x06\xa9\x04\0\xac\x04\x01\x1a$\x20Batch\x20get\x20assets\x20history\x20\
23243    response.\n\n\x0b\n\x03\x04\x06\x01\x12\x04\xa9\x04\x08%\n9\n\x04\x04\
23244    \x06\x02\0\x12\x04\xab\x04\x02$\x1a+\x20A\x20list\x20of\x20assets\x20wit\
23245    h\x20valid\x20time\x20windows.\n\n\r\n\x05\x04\x06\x02\0\x04\x12\x04\xab\
23246    \x04\x02\n\n\r\n\x05\x04\x06\x02\0\x06\x12\x04\xab\x04\x0b\x18\n\r\n\x05\
23247    \x04\x06\x02\0\x01\x12\x04\xab\x04\x19\x1f\n\r\n\x05\x04\x06\x02\0\x03\
23248    \x12\x04\xab\x04\"#\n*\n\x02\x04\x07\x12\x06\xaf\x04\0\xc0\x04\x01\x1a\
23249    \x1c\x20Create\x20asset\x20feed\x20request.\n\n\x0b\n\x03\x04\x07\x01\
23250    \x12\x04\xaf\x04\x08\x19\n\xbf\x02\n\x04\x04\x07\x02\0\x12\x04\xb5\x04\
23251    \x02=\x1a\xb0\x02\x20Required.\x20The\x20name\x20of\x20the\x20project/fo\
23252    lder/organization\x20where\x20this\x20feed\n\x20should\x20be\x20created\
23253    \x20in.\x20It\x20can\x20only\x20be\x20an\x20organization\x20number\x20(s\
23254    uch\x20as\n\x20\"organizations/123\"),\x20a\x20folder\x20number\x20(such\
23255    \x20as\x20\"folders/123\"),\x20a\x20project\x20ID\n\x20(such\x20as\x20\"\
23256    projects/my-project-id\"),\x20or\x20a\x20project\x20number\x20(such\x20a\
23257    s\n\x20\"projects/12345\").\n\n\r\n\x05\x04\x07\x02\0\x05\x12\x04\xb5\
23258    \x04\x02\x08\n\r\n\x05\x04\x07\x02\0\x01\x12\x04\xb5\x04\t\x0f\n\r\n\x05\
23259    \x04\x07\x02\0\x03\x12\x04\xb5\x04\x12\x13\n\r\n\x05\x04\x07\x02\0\x08\
23260    \x12\x04\xb5\x04\x14<\n\x10\n\x08\x04\x07\x02\0\x08\x9c\x08\0\x12\x04\
23261    \xb5\x04\x15;\n\x9c\x01\n\x04\x04\x07\x02\x01\x12\x04\xb9\x04\x02>\x1a\
23262    \x8d\x01\x20Required.\x20This\x20is\x20the\x20client-assigned\x20asset\
23263    \x20feed\x20identifier\x20and\x20it\x20needs\x20to\n\x20be\x20unique\x20\
23264    under\x20a\x20specific\x20parent\x20project/folder/organization.\n\n\r\n\
23265    \x05\x04\x07\x02\x01\x05\x12\x04\xb9\x04\x02\x08\n\r\n\x05\x04\x07\x02\
23266    \x01\x01\x12\x04\xb9\x04\t\x10\n\r\n\x05\x04\x07\x02\x01\x03\x12\x04\xb9\
23267    \x04\x13\x14\n\r\n\x05\x04\x07\x02\x01\x08\x12\x04\xb9\x04\x15=\n\x10\n\
23268    \x08\x04\x07\x02\x01\x08\x9c\x08\0\x12\x04\xb9\x04\x16<\n\xf3\x01\n\x04\
23269    \x04\x07\x02\x02\x12\x04\xbf\x04\x029\x1a\xe4\x01\x20Required.\x20The\
23270    \x20feed\x20details.\x20The\x20field\x20`name`\x20must\x20be\x20empty\
23271    \x20and\x20it\x20will\x20be\n\x20generated\x20in\x20the\x20format\x20of:\
23272    \x20projects/project_number/feeds/feed_id\n\x20folders/folder_number/fee\
23273    ds/feed_id\n\x20organizations/organization_number/feeds/feed_id\n\n\r\n\
23274    \x05\x04\x07\x02\x02\x06\x12\x04\xbf\x04\x02\x06\n\r\n\x05\x04\x07\x02\
23275    \x02\x01\x12\x04\xbf\x04\x07\x0b\n\r\n\x05\x04\x07\x02\x02\x03\x12\x04\
23276    \xbf\x04\x0e\x0f\n\r\n\x05\x04\x07\x02\x02\x08\x12\x04\xbf\x04\x108\n\
23277    \x10\n\x08\x04\x07\x02\x02\x08\x9c\x08\0\x12\x04\xbf\x04\x117\n'\n\x02\
23278    \x04\x08\x12\x06\xc3\x04\0\xcc\x04\x01\x1a\x19\x20Get\x20asset\x20feed\
23279    \x20request.\n\n\x0b\n\x03\x04\x08\x01\x12\x04\xc3\x04\x08\x16\n\xcf\x01\
23280    \n\x04\x04\x08\x02\0\x12\x06\xc8\x04\x02\xcb\x04\x04\x1a\xbe\x01\x20Requ\
23281    ired.\x20The\x20name\x20of\x20the\x20Feed\x20and\x20it\x20must\x20be\x20\
23282    in\x20the\x20format\x20of:\n\x20projects/project_number/feeds/feed_id\n\
23283    \x20folders/folder_number/feeds/feed_id\n\x20organizations/organization_\
23284    number/feeds/feed_id\n\n\r\n\x05\x04\x08\x02\0\x05\x12\x04\xc8\x04\x02\
23285    \x08\n\r\n\x05\x04\x08\x02\0\x01\x12\x04\xc8\x04\t\r\n\r\n\x05\x04\x08\
23286    \x02\0\x03\x12\x04\xc8\x04\x10\x11\n\x0f\n\x05\x04\x08\x02\0\x08\x12\x06\
23287    \xc8\x04\x12\xcb\x04\x03\n\x10\n\x08\x04\x08\x02\0\x08\x9c\x08\0\x12\x04\
23288    \xc9\x04\x04*\n\x0f\n\x07\x04\x08\x02\0\x08\x9f\x08\x12\x04\xca\x04\x04P\
23289    \n)\n\x02\x04\t\x12\x06\xcf\x04\0\xd4\x04\x01\x1a\x1b\x20List\x20asset\
23290    \x20feeds\x20request.\n\n\x0b\n\x03\x04\t\x01\x12\x04\xcf\x04\x08\x18\n\
23291    \xe9\x01\n\x04\x04\t\x02\0\x12\x04\xd3\x04\x02=\x1a\xda\x01\x20Required.\
23292    \x20The\x20parent\x20project/folder/organization\x20whose\x20feeds\x20ar\
23293    e\x20to\x20be\n\x20listed.\x20It\x20can\x20only\x20be\x20using\x20projec\
23294    t/folder/organization\x20number\x20(such\x20as\n\x20\"folders/12345\")\"\
23295    ,\x20or\x20a\x20project\x20ID\x20(such\x20as\x20\"projects/my-project-id\
23296    \").\n\n\r\n\x05\x04\t\x02\0\x05\x12\x04\xd3\x04\x02\x08\n\r\n\x05\x04\t\
23297    \x02\0\x01\x12\x04\xd3\x04\t\x0f\n\r\n\x05\x04\t\x02\0\x03\x12\x04\xd3\
23298    \x04\x12\x13\n\r\n\x05\x04\t\x02\0\x08\x12\x04\xd3\x04\x14<\n\x10\n\x08\
23299    \x04\t\x02\0\x08\x9c\x08\0\x12\x04\xd3\x04\x15;\n\x0c\n\x02\x04\n\x12\
23300    \x06\xd6\x04\0\xd9\x04\x01\n\x0b\n\x03\x04\n\x01\x12\x04\xd6\x04\x08\x19\
23301    \n\x20\n\x04\x04\n\x02\0\x12\x04\xd8\x04\x02\x1a\x1a\x12\x20A\x20list\
23302    \x20of\x20feeds.\n\n\r\n\x05\x04\n\x02\0\x04\x12\x04\xd8\x04\x02\n\n\r\n\
23303    \x05\x04\n\x02\0\x06\x12\x04\xd8\x04\x0b\x0f\n\r\n\x05\x04\n\x02\0\x01\
23304    \x12\x04\xd8\x04\x10\x15\n\r\n\x05\x04\n\x02\0\x03\x12\x04\xd8\x04\x18\
23305    \x19\n*\n\x02\x04\x0b\x12\x06\xdc\x04\0\xe9\x04\x01\x1a\x1c\x20Update\
23306    \x20asset\x20feed\x20request.\n\n\x0b\n\x03\x04\x0b\x01\x12\x04\xdc\x04\
23307    \x08\x19\n\x8d\x02\n\x04\x04\x0b\x02\0\x12\x04\xe2\x04\x029\x1a\xfe\x01\
23308    \x20Required.\x20The\x20new\x20values\x20of\x20feed\x20details.\x20It\
23309    \x20must\x20match\x20an\x20existing\x20feed\n\x20and\x20the\x20field\x20\
23310    `name`\x20must\x20be\x20in\x20the\x20format\x20of:\n\x20projects/project\
23311    _number/feeds/feed_id\x20or\n\x20folders/folder_number/feeds/feed_id\x20\
23312    or\n\x20organizations/organization_number/feeds/feed_id.\n\n\r\n\x05\x04\
23313    \x0b\x02\0\x06\x12\x04\xe2\x04\x02\x06\n\r\n\x05\x04\x0b\x02\0\x01\x12\
23314    \x04\xe2\x04\x07\x0b\n\r\n\x05\x04\x0b\x02\0\x03\x12\x04\xe2\x04\x0e\x0f\
23315    \n\r\n\x05\x04\x0b\x02\0\x08\x12\x04\xe2\x04\x108\n\x10\n\x08\x04\x0b\
23316    \x02\0\x08\x9c\x08\0\x12\x04\xe2\x04\x117\n\xc4\x01\n\x04\x04\x0b\x02\
23317    \x01\x12\x06\xe7\x04\x02\xe8\x04/\x1a\xb3\x01\x20Required.\x20Only\x20up\
23318    dates\x20the\x20`feed`\x20fields\x20indicated\x20by\x20this\x20mask.\n\
23319    \x20The\x20field\x20mask\x20must\x20not\x20be\x20empty,\x20and\x20it\x20\
23320    must\x20not\x20contain\x20fields\x20that\n\x20are\x20immutable\x20or\x20\
23321    only\x20set\x20by\x20the\x20server.\n\n\r\n\x05\x04\x0b\x02\x01\x06\x12\
23322    \x04\xe7\x04\x02\x1b\n\r\n\x05\x04\x0b\x02\x01\x01\x12\x04\xe7\x04\x1c'\
23323    \n\r\n\x05\x04\x0b\x02\x01\x03\x12\x04\xe7\x04*+\n\r\n\x05\x04\x0b\x02\
23324    \x01\x08\x12\x04\xe8\x04\x06.\n\x10\n\x08\x04\x0b\x02\x01\x08\x9c\x08\0\
23325    \x12\x04\xe8\x04\x07-\n\x0c\n\x02\x04\x0c\x12\x06\xeb\x04\0\xf4\x04\x01\
23326    \n\x0b\n\x03\x04\x0c\x01\x12\x04\xeb\x04\x08\x19\n\xcf\x01\n\x04\x04\x0c\
23327    \x02\0\x12\x06\xf0\x04\x02\xf3\x04\x04\x1a\xbe\x01\x20Required.\x20The\
23328    \x20name\x20of\x20the\x20feed\x20and\x20it\x20must\x20be\x20in\x20the\
23329    \x20format\x20of:\n\x20projects/project_number/feeds/feed_id\n\x20folder\
23330    s/folder_number/feeds/feed_id\n\x20organizations/organization_number/fee\
23331    ds/feed_id\n\n\r\n\x05\x04\x0c\x02\0\x05\x12\x04\xf0\x04\x02\x08\n\r\n\
23332    \x05\x04\x0c\x02\0\x01\x12\x04\xf0\x04\t\r\n\r\n\x05\x04\x0c\x02\0\x03\
23333    \x12\x04\xf0\x04\x10\x11\n\x0f\n\x05\x04\x0c\x02\0\x08\x12\x06\xf0\x04\
23334    \x12\xf3\x04\x03\n\x10\n\x08\x04\x0c\x02\0\x08\x9c\x08\0\x12\x04\xf1\x04\
23335    \x04*\n\x0f\n\x07\x04\x0c\x02\0\x08\x9f\x08\x12\x04\xf2\x04\x04P\nC\n\
23336    \x02\x04\r\x12\x06\xf7\x04\0\x81\x05\x01\x1a5\x20Output\x20configuration\
23337    \x20for\x20export\x20assets\x20destination.\n\n\x0b\n\x03\x04\r\x01\x12\
23338    \x04\xf7\x04\x08\x14\n+\n\x04\x04\r\x08\0\x12\x06\xf9\x04\x02\x80\x05\
23339    \x03\x1a\x1b\x20Asset\x20export\x20destination.\n\n\r\n\x05\x04\r\x08\0\
23340    \x01\x12\x04\xf9\x04\x08\x13\n-\n\x04\x04\r\x02\0\x12\x04\xfb\x04\x04'\
23341    \x1a\x1f\x20Destination\x20on\x20Cloud\x20Storage.\n\n\r\n\x05\x04\r\x02\
23342    \0\x06\x12\x04\xfb\x04\x04\x12\n\r\n\x05\x04\r\x02\0\x01\x12\x04\xfb\x04\
23343    \x13\"\n\r\n\x05\x04\r\x02\0\x03\x12\x04\xfb\x04%&\nv\n\x04\x04\r\x02\
23344    \x01\x12\x04\xff\x04\x041\x1ah\x20Destination\x20on\x20BigQuery.\x20The\
23345    \x20output\x20table\x20stores\x20the\x20fields\x20in\x20asset\n\x20Proto\
23346    buf\x20as\x20columns\x20in\x20BigQuery.\n\n\r\n\x05\x04\r\x02\x01\x06\
23347    \x12\x04\xff\x04\x04\x17\n\r\n\x05\x04\r\x02\x01\x01\x12\x04\xff\x04\x18\
23348    ,\n\r\n\x05\x04\r\x02\x01\x03\x12\x04\xff\x04/0\n/\n\x02\x04\x0e\x12\x06\
23349    \x84\x05\0\x8a\x05\x01\x1a!\x20Output\x20result\x20of\x20export\x20asset\
23350    s.\n\n\x0b\n\x03\x04\x0e\x01\x12\x04\x84\x05\x08\x14\n&\n\x04\x04\x0e\
23351    \x08\0\x12\x06\x86\x05\x02\x89\x05\x03\x1a\x16\x20Asset\x20export\x20res\
23352    ult.\n\n\r\n\x05\x04\x0e\x08\0\x01\x12\x04\x86\x05\x08\x0e\n/\n\x04\x04\
23353    \x0e\x02\0\x12\x04\x88\x05\x04#\x1a!\x20Export\x20result\x20on\x20Cloud\
23354    \x20Storage.\n\n\r\n\x05\x04\x0e\x02\0\x06\x12\x04\x88\x05\x04\x13\n\r\n\
23355    \x05\x04\x0e\x02\0\x01\x12\x04\x88\x05\x14\x1e\n\r\n\x05\x04\x0e\x02\0\
23356    \x03\x12\x04\x88\x05!\"\n.\n\x02\x04\x0f\x12\x06\x8d\x05\0\x91\x05\x01\
23357    \x1a\x20\x20A\x20Cloud\x20Storage\x20output\x20result.\n\n\x0b\n\x03\x04\
23358    \x0f\x01\x12\x04\x8d\x05\x08\x17\nd\n\x04\x04\x0f\x02\0\x12\x04\x90\x05\
23359    \x02\x1b\x1aV\x20List\x20of\x20URIs\x20of\x20the\x20Cloud\x20Storage\x20\
23360    objects.\x20Example:\n\x20\"gs://bucket_name/object_name\".\n\n\r\n\x05\
23361    \x04\x0f\x02\0\x04\x12\x04\x90\x05\x02\n\n\r\n\x05\x04\x0f\x02\0\x05\x12\
23362    \x04\x90\x05\x0b\x11\n\r\n\x05\x04\x0f\x02\0\x01\x12\x04\x90\x05\x12\x16\
23363    \n\r\n\x05\x04\x0f\x02\0\x03\x12\x04\x90\x05\x19\x1a\n)\n\x02\x04\x10\
23364    \x12\x06\x94\x05\0\xad\x05\x01\x1a\x1b\x20A\x20Cloud\x20Storage\x20locat\
23365    ion.\n\n\x0b\n\x03\x04\x10\x01\x12\x04\x94\x05\x08\x16\n\x1b\n\x04\x04\
23366    \x10\x08\0\x12\x06\x96\x05\x02\xac\x05\x03\x1a\x0b\x20Required.\n\n\r\n\
23367    \x05\x04\x10\x08\0\x01\x12\x04\x96\x05\x08\x12\n\xc2\x03\n\x04\x04\x10\
23368    \x02\0\x12\x04\xa0\x05\x04\x13\x1a\xb3\x03\x20The\x20URI\x20of\x20the\
23369    \x20Cloud\x20Storage\x20object.\x20It's\x20the\x20same\x20URI\x20that\
23370    \x20is\x20used\x20by\n\x20gsutil.\x20Example:\x20\"gs://bucket_name/obje\
23371    ct_name\".\x20See\x20[Viewing\x20and\n\x20Editing\x20Object\n\x20Metadat\
23372    a](https://cloud.google.com/storage/docs/viewing-editing-metadata)\n\x20\
23373    for\x20more\x20information.\n\n\x20If\x20the\x20specified\x20Cloud\x20St\
23374    orage\x20object\x20already\x20exists\x20and\x20there\x20is\x20no\n\x20[h\
23375    old](https://cloud.google.com/storage/docs/object-holds),\x20it\x20will\
23376    \x20be\n\x20overwritten\x20with\x20the\x20exported\x20result.\n\n\r\n\
23377    \x05\x04\x10\x02\0\x05\x12\x04\xa0\x05\x04\n\n\r\n\x05\x04\x10\x02\0\x01\
23378    \x12\x04\xa0\x05\x0b\x0e\n\r\n\x05\x04\x10\x02\0\x03\x12\x04\xa0\x05\x11\
23379    \x12\n\xc5\x04\n\x04\x04\x10\x02\x01\x12\x04\xab\x05\x04\x1a\x1a\xb6\x04\
23380    \x20The\x20URI\x20prefix\x20of\x20all\x20generated\x20Cloud\x20Storage\
23381    \x20objects.\x20Example:\n\x20\"gs://bucket_name/object_name_prefix\".\
23382    \x20Each\x20object\x20URI\x20is\x20in\x20format:\n\x20\"gs://bucket_name\
23383    /object_name_prefix/<asset\x20type>/<shard\x20number>\x20and\x20only\n\
23384    \x20contains\x20assets\x20for\x20that\x20type.\x20<shard\x20number>\x20s\
23385    tarts\x20from\x200.\x20Example:\n\x20\"gs://bucket_name/object_name_pref\
23386    ix/compute.googleapis.com/Disk/0\"\x20is\n\x20the\x20first\x20shard\x20o\
23387    f\x20output\x20objects\x20containing\x20all\n\x20compute.googleapis.com/\
23388    Disk\x20assets.\x20An\x20INVALID_ARGUMENT\x20error\x20will\x20be\n\x20re\
23389    turned\x20if\x20file\x20with\x20the\x20same\x20name\x20\"gs://bucket_nam\
23390    e/object_name_prefix\"\n\x20already\x20exists.\n\n\r\n\x05\x04\x10\x02\
23391    \x01\x05\x12\x04\xab\x05\x04\n\n\r\n\x05\x04\x10\x02\x01\x01\x12\x04\xab\
23392    \x05\x0b\x15\n\r\n\x05\x04\x10\x02\x01\x03\x12\x04\xab\x05\x18\x19\n?\n\
23393    \x02\x04\x11\x12\x06\xb0\x05\0\xf5\x05\x01\x1a1\x20A\x20BigQuery\x20dest\
23394    ination\x20for\x20exporting\x20assets\x20to.\n\n\x0b\n\x03\x04\x11\x01\
23395    \x12\x04\xb0\x05\x08\x1b\n\xd1\x03\n\x04\x04\x11\x02\0\x12\x04\xb9\x05\
23396    \x02>\x1a\xc2\x03\x20Required.\x20The\x20BigQuery\x20dataset\x20in\x20fo\
23397    rmat\n\x20\"projects/projectId/datasets/datasetId\",\x20to\x20which\x20t\
23398    he\x20snapshot\x20result\n\x20should\x20be\x20exported.\x20If\x20this\
23399    \x20dataset\x20does\x20not\x20exist,\x20the\x20export\x20call\x20returns\
23400    \n\x20an\x20INVALID_ARGUMENT\x20error.\x20Setting\x20the\x20`contentType\
23401    `\x20for\x20`exportAssets`\n\x20determines\x20the\n\x20[schema](/asset-i\
23402    nventory/docs/exporting-to-bigquery#bigquery-schema)\n\x20of\x20the\x20B\
23403    igQuery\x20table.\x20Setting\x20`separateTablesPerAssetType`\x20to\x20`T\
23404    RUE`\x20also\n\x20influences\x20the\x20schema.\n\n\r\n\x05\x04\x11\x02\0\
23405    \x05\x12\x04\xb9\x05\x02\x08\n\r\n\x05\x04\x11\x02\0\x01\x12\x04\xb9\x05\
23406    \t\x10\n\r\n\x05\x04\x11\x02\0\x03\x12\x04\xb9\x05\x13\x14\n\r\n\x05\x04\
23407    \x11\x02\0\x08\x12\x04\xb9\x05\x15=\n\x10\n\x08\x04\x11\x02\0\x08\x9c\
23408    \x08\0\x12\x04\xb9\x05\x16<\n\xae\x01\n\x04\x04\x11\x02\x01\x12\x04\xbe\
23409    \x05\x02<\x1a\x9f\x01\x20Required.\x20The\x20BigQuery\x20table\x20to\x20\
23410    which\x20the\x20snapshot\x20result\x20should\x20be\n\x20written.\x20If\
23411    \x20this\x20table\x20does\x20not\x20exist,\x20a\x20new\x20table\x20with\
23412    \x20the\x20given\x20name\n\x20will\x20be\x20created.\n\n\r\n\x05\x04\x11\
23413    \x02\x01\x05\x12\x04\xbe\x05\x02\x08\n\r\n\x05\x04\x11\x02\x01\x01\x12\
23414    \x04\xbe\x05\t\x0e\n\r\n\x05\x04\x11\x02\x01\x03\x12\x04\xbe\x05\x11\x12\
23415    \n\r\n\x05\x04\x11\x02\x01\x08\x12\x04\xbe\x05\x13;\n\x10\n\x08\x04\x11\
23416    \x02\x01\x08\x9c\x08\0\x12\x04\xbe\x05\x14:\n\x93\x02\n\x04\x04\x11\x02\
23417    \x02\x12\x04\xc4\x05\x02\x11\x1a\x84\x02\x20If\x20the\x20destination\x20\
23418    table\x20already\x20exists\x20and\x20this\x20flag\x20is\x20`TRUE`,\x20th\
23419    e\n\x20table\x20will\x20be\x20overwritten\x20by\x20the\x20contents\x20of\
23420    \x20assets\x20snapshot.\x20If\x20the\x20flag\n\x20is\x20`FALSE`\x20or\
23421    \x20unset\x20and\x20the\x20destination\x20table\x20already\x20exists,\
23422    \x20the\x20export\n\x20call\x20returns\x20an\x20INVALID_ARGUMEMT\x20erro\
23423    r.\n\n\r\n\x05\x04\x11\x02\x02\x05\x12\x04\xc4\x05\x02\x06\n\r\n\x05\x04\
23424    \x11\x02\x02\x01\x12\x04\xc4\x05\x07\x0c\n\r\n\x05\x04\x11\x02\x02\x03\
23425    \x12\x04\xc4\x05\x0f\x10\n\xf6\x07\n\x04\x04\x11\x02\x03\x12\x04\xd7\x05\
23426    \x02#\x1a\xe7\x07\x20[partition_spec]\x20determines\x20whether\x20to\x20\
23427    export\x20to\x20partitioned\x20table(s)\x20and\n\x20how\x20to\x20partiti\
23428    on\x20the\x20data.\n\n\x20If\x20[partition_spec]\x20is\x20unset\x20or\
23429    \x20[partition_spec.partition_key]\x20is\x20unset\x20or\n\x20`PARTITION_\
23430    KEY_UNSPECIFIED`,\x20the\x20snapshot\x20results\x20will\x20be\x20exporte\
23431    d\x20to\n\x20non-partitioned\x20table(s).\x20[force]\x20will\x20decide\
23432    \x20whether\x20to\x20overwrite\x20existing\n\x20table(s).\n\n\x20If\x20[\
23433    partition_spec]\x20is\x20specified.\x20First,\x20the\x20snapshot\x20resu\
23434    lts\x20will\x20be\n\x20written\x20to\x20partitioned\x20table(s)\x20with\
23435    \x20two\x20additional\x20timestamp\x20columns,\n\x20readTime\x20and\x20r\
23436    equestTime,\x20one\x20of\x20which\x20will\x20be\x20the\x20partition\x20k\
23437    ey.\x20Secondly,\n\x20in\x20the\x20case\x20when\x20any\x20destination\
23438    \x20table\x20already\x20exists,\x20it\x20will\x20first\x20try\x20to\n\
23439    \x20update\x20existing\x20table's\x20schema\x20as\x20necessary\x20by\x20\
23440    appending\x20additional\n\x20columns.\x20Then,\x20if\x20[force]\x20is\
23441    \x20`TRUE`,\x20the\x20corresponding\x20partition\x20will\x20be\n\x20over\
23442    written\x20by\x20the\x20snapshot\x20results\x20(data\x20in\x20different\
23443    \x20partitions\x20will\n\x20remain\x20intact);\x20if\x20[force]\x20is\
23444    \x20unset\x20or\x20`FALSE`,\x20it\x20will\x20append\x20the\x20data.\x20A\
23445    n\n\x20error\x20will\x20be\x20returned\x20if\x20the\x20schema\x20update\
23446    \x20or\x20data\x20appension\x20fails.\n\n\r\n\x05\x04\x11\x02\x03\x06\
23447    \x12\x04\xd7\x05\x02\x0f\n\r\n\x05\x04\x11\x02\x03\x01\x12\x04\xd7\x05\
23448    \x10\x1e\n\r\n\x05\x04\x11\x02\x03\x03\x12\x04\xd7\x05!\"\n\xcd\x0c\n\
23449    \x04\x04\x11\x02\x04\x12\x04\xf4\x05\x02*\x1a\xbe\x0c\x20If\x20this\x20f\
23450    lag\x20is\x20`TRUE`,\x20the\x20snapshot\x20results\x20will\x20be\x20writ\
23451    ten\x20to\x20one\x20or\n\x20multiple\x20tables,\x20each\x20of\x20which\
23452    \x20contains\x20results\x20of\x20one\x20asset\x20type.\x20The\n\x20[forc\
23453    e]\x20and\x20[partition_spec]\x20fields\x20will\x20apply\x20to\x20each\
23454    \x20of\x20them.\n\n\x20Field\x20[table]\x20will\x20be\x20concatenated\
23455    \x20with\x20\"_\"\x20and\x20the\x20asset\x20type\x20names\x20(see\n\x20h\
23456    ttps://cloud.google.com/asset-inventory/docs/supported-asset-types\x20fo\
23457    r\n\x20supported\x20asset\x20types)\x20to\x20construct\x20per-asset-type\
23458    \x20table\x20names,\x20in\x20which\n\x20all\x20non-alphanumeric\x20chara\
23459    cters\x20like\x20\".\"\x20and\x20\"/\"\x20will\x20be\x20substituted\x20b\
23460    y\n\x20\"_\".\x20Example:\x20if\x20field\x20[table]\x20is\x20\"mytable\"\
23461    \x20and\x20snapshot\x20results\n\x20contain\x20\"storage.googleapis.com/\
23462    Bucket\"\x20assets,\x20the\x20corresponding\x20table\n\x20name\x20will\
23463    \x20be\x20\"mytable_storage_googleapis_com_Bucket\".\x20If\x20any\x20of\
23464    \x20these\n\x20tables\x20does\x20not\x20exist,\x20a\x20new\x20table\x20w\
23465    ith\x20the\x20concatenated\x20name\x20will\x20be\n\x20created.\n\n\x20Wh\
23466    en\x20[content_type]\x20in\x20the\x20ExportAssetsRequest\x20is\x20`RESOU\
23467    RCE`,\x20the\x20schema\x20of\n\x20each\x20table\x20will\x20include\x20RE\
23468    CORD-type\x20columns\x20mapped\x20to\x20the\x20nested\x20fields\x20in\n\
23469    \x20the\x20Asset.resource.data\x20field\x20of\x20that\x20asset\x20type\
23470    \x20(up\x20to\x20the\x2015\x20nested\x20level\n\x20BigQuery\x20supports\
23471    \n\x20(https://cloud.google.com/bigquery/docs/nested-repeated#limitation\
23472    s)).\x20The\n\x20fields\x20in\x20>15\x20nested\x20levels\x20will\x20be\
23473    \x20stored\x20in\x20JSON\x20format\x20string\x20as\x20a\x20child\n\x20co\
23474    lumn\x20of\x20its\x20parent\x20RECORD\x20column.\n\n\x20If\x20error\x20o\
23475    ccurs\x20when\x20exporting\x20to\x20any\x20table,\x20the\x20whole\x20exp\
23476    ort\x20call\x20will\n\x20return\x20an\x20error\x20but\x20the\x20export\
23477    \x20results\x20that\x20already\x20succeed\x20will\x20persist.\n\x20Examp\
23478    le:\x20if\x20exporting\x20to\x20table_type_A\x20succeeds\x20when\x20expo\
23479    rting\x20to\n\x20table_type_B\x20fails\x20during\x20one\x20export\x20cal\
23480    l,\x20the\x20results\x20in\x20table_type_A\x20will\n\x20persist\x20and\
23481    \x20there\x20will\x20not\x20be\x20partial\x20results\x20persisting\x20in\
23482    \x20a\x20table.\n\n\r\n\x05\x04\x11\x02\x04\x05\x12\x04\xf4\x05\x02\x06\
23483    \n\r\n\x05\x04\x11\x02\x04\x01\x12\x04\xf4\x05\x07%\n\r\n\x05\x04\x11\
23484    \x02\x04\x03\x12\x04\xf4\x05()\nS\n\x02\x04\x12\x12\x06\xf8\x05\0\x92\
23485    \x06\x01\x1aE\x20Specifications\x20of\x20BigQuery\x20partitioned\x20tabl\
23486    e\x20as\x20export\x20destination.\n\n\x0b\n\x03\x04\x12\x01\x12\x04\xf8\
23487    \x05\x08\x15\n\xed\x02\n\x04\x04\x12\x04\0\x12\x06\xfe\x05\x02\x8e\x06\
23488    \x03\x1a\xdc\x02\x20This\x20enum\x20is\x20used\x20to\x20determine\x20the\
23489    \x20partition\x20key\x20column\x20when\x20exporting\n\x20assets\x20to\
23490    \x20BigQuery\x20partitioned\x20table(s).\x20Note\x20that,\x20if\x20the\
23491    \x20partition\x20key\x20is\n\x20a\x20timestamp\x20column,\x20the\x20actu\
23492    al\x20partition\x20is\x20based\x20on\x20its\x20date\x20value\n\x20(expre\
23493    ssed\x20in\x20UTC.\x20see\x20details\x20in\n\x20https://cloud.google.com\
23494    /bigquery/docs/partitioned-tables#date_timestamp_partitioned_tables).\n\
23495    \n\r\n\x05\x04\x12\x04\0\x01\x12\x04\xfe\x05\x07\x13\n[\n\x06\x04\x12\
23496    \x04\0\x02\0\x12\x04\x80\x06\x04\"\x1aK\x20Unspecified\x20partition\x20k\
23497    ey.\x20If\x20used,\x20it\x20means\x20using\x20non-partitioned\x20table.\
23498    \n\n\x0f\n\x07\x04\x12\x04\0\x02\0\x01\x12\x04\x80\x06\x04\x1d\n\x0f\n\
23499    \x07\x04\x12\x04\0\x02\0\x02\x12\x04\x80\x06\x20!\n\xe3\x02\n\x06\x04\
23500    \x12\x04\0\x02\x01\x12\x04\x87\x06\x04\x12\x1a\xd2\x02\x20The\x20time\
23501    \x20when\x20the\x20snapshot\x20is\x20taken.\x20If\x20specified\x20as\x20\
23502    partition\x20key,\x20the\n\x20result\x20table(s)\x20is\x20partitoned\x20\
23503    by\x20the\x20additional\x20timestamp\x20column,\n\x20readTime.\x20If\x20\
23504    [read_time]\x20in\x20ExportAssetsRequest\x20is\x20specified,\x20the\n\
23505    \x20readTime\x20column's\x20value\x20will\x20be\x20the\x20same\x20as\x20\
23506    it.\x20Otherwise,\x20its\x20value\x20will\n\x20be\x20the\x20current\x20t\
23507    ime\x20that\x20is\x20used\x20to\x20take\x20the\x20snapshot.\n\n\x0f\n\
23508    \x07\x04\x12\x04\0\x02\x01\x01\x12\x04\x87\x06\x04\r\n\x0f\n\x07\x04\x12\
23509    \x04\0\x02\x01\x02\x12\x04\x87\x06\x10\x11\n\xff\x01\n\x06\x04\x12\x04\0\
23510    \x02\x02\x12\x04\x8d\x06\x04\x15\x1a\xee\x01\x20The\x20time\x20when\x20t\
23511    he\x20request\x20is\x20received\x20and\x20started\x20to\x20be\x20process\
23512    ed.\x20If\n\x20specified\x20as\x20partition\x20key,\x20the\x20result\x20\
23513    table(s)\x20is\x20partitoned\x20by\x20the\n\x20requestTime\x20column,\
23514    \x20an\x20additional\x20timestamp\x20column\x20representing\x20when\x20t\
23515    he\n\x20request\x20was\x20received.\n\n\x0f\n\x07\x04\x12\x04\0\x02\x02\
23516    \x01\x12\x04\x8d\x06\x04\x10\n\x0f\n\x07\x04\x12\x04\0\x02\x02\x02\x12\
23517    \x04\x8d\x06\x13\x14\nA\n\x04\x04\x12\x02\0\x12\x04\x91\x06\x02!\x1a3\
23518    \x20The\x20partition\x20key\x20for\x20BigQuery\x20partitioned\x20table.\
23519    \n\n\r\n\x05\x04\x12\x02\0\x06\x12\x04\x91\x06\x02\x0e\n\r\n\x05\x04\x12\
23520    \x02\0\x01\x12\x04\x91\x06\x0f\x1c\n\r\n\x05\x04\x12\x02\0\x03\x12\x04\
23521    \x91\x06\x1f\x20\n&\n\x02\x04\x13\x12\x06\x95\x06\0\x99\x06\x01\x1a\x18\
23522    \x20A\x20Pub/Sub\x20destination.\n\n\x0b\n\x03\x04\x13\x01\x12\x04\x95\
23523    \x06\x08\x19\nm\n\x04\x04\x13\x02\0\x12\x04\x98\x06\x02\x13\x1a_\x20The\
23524    \x20name\x20of\x20the\x20Pub/Sub\x20topic\x20to\x20publish\x20to.\n\x20E\
23525    xample:\x20`projects/PROJECT_ID/topics/TOPIC_ID`.\n\n\r\n\x05\x04\x13\
23526    \x02\0\x05\x12\x04\x98\x06\x02\x08\n\r\n\x05\x04\x13\x02\0\x01\x12\x04\
23527    \x98\x06\t\x0e\n\r\n\x05\x04\x13\x02\0\x03\x12\x04\x98\x06\x11\x12\n@\n\
23528    \x02\x04\x14\x12\x06\x9c\x06\0\xa2\x06\x01\x1a2\x20Output\x20configurati\
23529    on\x20for\x20asset\x20feed\x20destination.\n\n\x0b\n\x03\x04\x14\x01\x12\
23530    \x04\x9c\x06\x08\x18\n)\n\x04\x04\x14\x08\0\x12\x06\x9e\x06\x02\xa1\x06\
23531    \x03\x1a\x19\x20Asset\x20feed\x20destination.\n\n\r\n\x05\x04\x14\x08\0\
23532    \x01\x12\x04\x9e\x06\x08\x13\n'\n\x04\x04\x14\x02\0\x12\x04\xa0\x06\x04-\
23533    \x1a\x19\x20Destination\x20on\x20Pub/Sub.\n\n\r\n\x05\x04\x14\x02\0\x06\
23534    \x12\x04\xa0\x06\x04\x15\n\r\n\x05\x04\x14\x02\0\x01\x12\x04\xa0\x06\x16\
23535    (\n\r\n\x05\x04\x14\x02\0\x03\x12\x04\xa0\x06+,\n\x81\x02\n\x02\x04\x15\
23536    \x12\x06\xa9\x06\0\xf5\x06\x01\x1a\xf2\x01\x20An\x20asset\x20feed\x20use\
23537    d\x20to\x20export\x20asset\x20updates\x20to\x20a\x20destinations.\n\x20A\
23538    n\x20asset\x20feed\x20filter\x20controls\x20what\x20updates\x20are\x20ex\
23539    ported.\n\x20The\x20asset\x20feed\x20must\x20be\x20created\x20within\x20\
23540    a\x20project,\x20organization,\x20or\n\x20folder.\x20Supported\x20destin\
23541    ations\x20are:\n\x20Pub/Sub\x20topics.\n\n\x0b\n\x03\x04\x15\x01\x12\x04\
23542    \xa9\x06\x08\x0c\n\r\n\x03\x04\x15\x07\x12\x06\xaa\x06\x02\xb0\x06\x04\n\
23543    \x0f\n\x05\x04\x15\x07\x9d\x08\x12\x06\xaa\x06\x02\xb0\x06\x04\n\xe9\x02\
23544    \n\x04\x04\x15\x02\0\x12\x04\xb9\x06\x02;\x1a\xda\x02\x20Required.\x20Th\
23545    e\x20format\x20will\x20be\n\x20projects/{project_number}/feeds/{client-a\
23546    ssigned_feed_identifier}\x20or\n\x20folders/{folder_number}/feeds/{clien\
23547    t-assigned_feed_identifier}\x20or\n\x20organizations/{organization_numbe\
23548    r}/feeds/{client-assigned_feed_identifier}\n\n\x20The\x20client-assigned\
23549    \x20feed\x20identifier\x20must\x20be\x20unique\x20within\x20the\x20paren\
23550    t\n\x20project/folder/organization.\n\n\r\n\x05\x04\x15\x02\0\x05\x12\
23551    \x04\xb9\x06\x02\x08\n\r\n\x05\x04\x15\x02\0\x01\x12\x04\xb9\x06\t\r\n\r\
23552    \n\x05\x04\x15\x02\0\x03\x12\x04\xb9\x06\x10\x11\n\r\n\x05\x04\x15\x02\0\
23553    \x08\x12\x04\xb9\x06\x12:\n\x10\n\x08\x04\x15\x02\0\x08\x9c\x08\0\x12\
23554    \x04\xb9\x06\x139\n\xc9\x03\n\x04\x04\x15\x02\x01\x12\x04\xc2\x06\x02\"\
23555    \x1a\xba\x03\x20A\x20list\x20of\x20the\x20full\x20names\x20of\x20the\x20\
23556    assets\x20to\x20receive\x20updates.\x20You\x20must\x20specify\n\x20eithe\
23557    r\x20or\x20both\x20of\x20asset_names\x20and\x20asset_types.\x20Only\x20a\
23558    sset\x20updates\x20matching\n\x20specified\x20asset_names\x20or\x20asset\
23559    _types\x20are\x20exported\x20to\x20the\x20feed.\n\x20Example:\n\x20`//co\
23560    mpute.googleapis.com/projects/my_project_123/zones/zone1/instances/insta\
23561    nce1`.\n\x20For\x20a\x20list\x20of\x20the\x20full\x20names\x20for\x20sup\
23562    ported\x20asset\x20types,\x20see\x20[Resource\n\x20name\x20format](/asse\
23563    t-inventory/docs/resource-name-format).\n\n\r\n\x05\x04\x15\x02\x01\x04\
23564    \x12\x04\xc2\x06\x02\n\n\r\n\x05\x04\x15\x02\x01\x05\x12\x04\xc2\x06\x0b\
23565    \x11\n\r\n\x05\x04\x15\x02\x01\x01\x12\x04\xc2\x06\x12\x1d\n\r\n\x05\x04\
23566    \x15\x02\x01\x03\x12\x04\xc2\x06\x20!\n\xff\x02\n\x04\x04\x15\x02\x02\
23567    \x12\x04\xcb\x06\x02\"\x1a\xf0\x02\x20A\x20list\x20of\x20types\x20of\x20\
23568    the\x20assets\x20to\x20receive\x20updates.\x20You\x20must\x20specify\x20\
23569    either\n\x20or\x20both\x20of\x20asset_names\x20and\x20asset_types.\x20On\
23570    ly\x20asset\x20updates\x20matching\n\x20specified\x20asset_names\x20or\
23571    \x20asset_types\x20are\x20exported\x20to\x20the\x20feed.\n\x20Example:\
23572    \x20`\"compute.googleapis.com/Disk\"`\n\n\x20For\x20a\x20list\x20of\x20a\
23573    ll\x20supported\x20asset\x20types,\x20see\n\x20[Supported\x20asset\x20ty\
23574    pes](/asset-inventory/docs/supported-asset-types).\n\n\r\n\x05\x04\x15\
23575    \x02\x02\x04\x12\x04\xcb\x06\x02\n\n\r\n\x05\x04\x15\x02\x02\x05\x12\x04\
23576    \xcb\x06\x0b\x11\n\r\n\x05\x04\x15\x02\x02\x01\x12\x04\xcb\x06\x12\x1d\n\
23577    \r\n\x05\x04\x15\x02\x02\x03\x12\x04\xcb\x06\x20!\no\n\x04\x04\x15\x02\
23578    \x03\x12\x04\xcf\x06\x02\x1f\x1aa\x20Asset\x20content\x20type.\x20If\x20\
23579    not\x20specified,\x20no\x20content\x20but\x20the\x20asset\x20name\x20and\
23580    \n\x20type\x20will\x20be\x20returned.\n\n\r\n\x05\x04\x15\x02\x03\x06\
23581    \x12\x04\xcf\x06\x02\r\n\r\n\x05\x04\x15\x02\x03\x01\x12\x04\xcf\x06\x0e\
23582    \x1a\n\r\n\x05\x04\x15\x02\x03\x03\x12\x04\xcf\x06\x1d\x1e\ni\n\x04\x04\
23583    \x15\x02\x04\x12\x06\xd3\x06\x02\xd4\x06/\x1aY\x20Required.\x20Feed\x20o\
23584    utput\x20configuration\x20defining\x20where\x20the\x20asset\x20updates\
23585    \x20are\n\x20published\x20to.\n\n\r\n\x05\x04\x15\x02\x04\x06\x12\x04\
23586    \xd3\x06\x02\x12\n\r\n\x05\x04\x15\x02\x04\x01\x12\x04\xd3\x06\x13%\n\r\
23587    \n\x05\x04\x15\x02\x04\x03\x12\x04\xd3\x06()\n\r\n\x05\x04\x15\x02\x04\
23588    \x08\x12\x04\xd4\x06\x06.\n\x10\n\x08\x04\x15\x02\x04\x08\x9c\x08\0\x12\
23589    \x04\xd4\x06\x07-\n\xeb\x04\n\x04\x04\x15\x02\x05\x12\x04\xe2\x06\x02!\
23590    \x1a\xdc\x04\x20A\x20condition\x20which\x20determines\x20whether\x20an\
23591    \x20asset\x20update\x20should\x20be\x20published.\n\x20If\x20specified,\
23592    \x20an\x20asset\x20will\x20be\x20returned\x20only\x20when\x20the\x20expr\
23593    ession\x20evaluates\n\x20to\x20true.\n\x20When\x20set,\x20`expression`\
23594    \x20field\x20in\x20the\x20`Expr`\x20must\x20be\x20a\x20valid\x20[CEL\x20\
23595    expression]\n\x20(https://github.com/google/cel-spec)\x20on\x20a\x20Temp\
23596    oralAsset\x20with\x20name\n\x20`temporal_asset`.\x20Example:\x20a\x20Fee\
23597    d\x20with\x20expression\x20(\"temporal_asset.deleted\n\x20==\x20true\")\
23598    \x20will\x20only\x20publish\x20Asset\x20deletions.\x20Other\x20fields\
23599    \x20of\x20`Expr`\x20are\n\x20optional.\n\n\x20See\x20our\x20[user\n\x20g\
23600    uide](https://cloud.google.com/asset-inventory/docs/monitoring-asset-cha\
23601    nges-with-condition)\n\x20for\x20detailed\x20instructions.\n\n\r\n\x05\
23602    \x04\x15\x02\x05\x06\x12\x04\xe2\x06\x02\x12\n\r\n\x05\x04\x15\x02\x05\
23603    \x01\x12\x04\xe2\x06\x13\x1c\n\r\n\x05\x04\x15\x02\x05\x03\x12\x04\xe2\
23604    \x06\x1f\x20\n\xfb\x06\n\x04\x04\x15\x02\x06\x12\x04\xf4\x06\x02)\x1a\
23605    \xec\x06\x20A\x20list\x20of\x20relationship\x20types\x20to\x20output,\
23606    \x20for\x20example:\n\x20`INSTANCE_TO_INSTANCEGROUP`.\x20This\x20field\
23607    \x20should\x20only\x20be\x20specified\x20if\n\x20content_type=RELATIONSH\
23608    IP.\n\x20*\x20If\x20specified:\n\x20it\x20outputs\x20specified\x20relati\
23609    onship\x20updates\x20on\x20the\x20[asset_names]\x20or\x20the\n\x20[asset\
23610    _types].\x20It\x20returns\x20an\x20error\x20if\x20any\x20of\x20the\x20[r\
23611    elationship_types]\n\x20doesn't\x20belong\x20to\x20the\x20supported\x20r\
23612    elationship\x20types\x20of\x20the\x20[asset_names]\x20or\n\x20[asset_typ\
23613    es],\x20or\x20any\x20of\x20the\x20[asset_names]\x20or\x20the\x20[asset_t\
23614    ypes]\x20doesn't\n\x20belong\x20to\x20the\x20source\x20types\x20of\x20th\
23615    e\x20[relationship_types].\n\x20*\x20Otherwise:\n\x20it\x20outputs\x20th\
23616    e\x20supported\x20relationships\x20of\x20the\x20types\x20of\x20[asset_na\
23617    mes]\x20and\n\x20[asset_types]\x20or\x20returns\x20an\x20error\x20if\x20\
23618    any\x20of\x20the\x20[asset_names]\x20or\x20the\n\x20[asset_types]\x20has\
23619    \x20no\x20replationship\x20support.\n\x20See\x20[Introduction\x20to\x20C\
23620    loud\x20Asset\n\x20Inventory](https://cloud.google.com/asset-inventory/d\
23621    ocs/overview)\n\x20for\x20all\x20supported\x20asset\x20types\x20and\x20r\
23622    elationship\x20types.\n\n\r\n\x05\x04\x15\x02\x06\x04\x12\x04\xf4\x06\
23623    \x02\n\n\r\n\x05\x04\x15\x02\x06\x05\x12\x04\xf4\x06\x0b\x11\n\r\n\x05\
23624    \x04\x15\x02\x06\x01\x12\x04\xf4\x06\x12$\n\r\n\x05\x04\x15\x02\x06\x03\
23625    \x12\x04\xf4\x06'(\n-\n\x02\x04\x16\x12\x06\xf8\x06\0\xa6\x08\x01\x1a\
23626    \x1f\x20Search\x20all\x20resources\x20request.\n\n\x0b\n\x03\x04\x16\x01\
23627    \x12\x04\xf8\x06\x08!\n\xd0\x04\n\x04\x04\x16\x02\0\x12\x04\x85\x07\x02<\
23628    \x1a\xc1\x04\x20Required.\x20A\x20scope\x20can\x20be\x20a\x20project,\
23629    \x20a\x20folder,\x20or\x20an\x20organization.\x20The\n\x20search\x20is\
23630    \x20limited\x20to\x20the\x20resources\x20within\x20the\x20`scope`.\x20Th\
23631    e\x20caller\x20must\x20be\n\x20granted\x20the\n\x20[`cloudasset.assets.s\
23632    earchAllResources`](https://cloud.google.com/asset-inventory/docs/access\
23633    -control#required_permissions)\n\x20permission\x20on\x20the\x20desired\
23634    \x20scope.\n\n\x20The\x20allowed\x20values\x20are:\n\n\x20*\x20projects/\
23635    {PROJECT_ID}\x20(e.g.,\x20\"projects/foo-bar\")\n\x20*\x20projects/{PROJ\
23636    ECT_NUMBER}\x20(e.g.,\x20\"projects/12345678\")\n\x20*\x20folders/{FOLDE\
23637    R_NUMBER}\x20(e.g.,\x20\"folders/1234567\")\n\x20*\x20organizations/{ORG\
23638    ANIZATION_NUMBER}\x20(e.g.,\x20\"organizations/123456\")\n\n\r\n\x05\x04\
23639    \x16\x02\0\x05\x12\x04\x85\x07\x02\x08\n\r\n\x05\x04\x16\x02\0\x01\x12\
23640    \x04\x85\x07\t\x0e\n\r\n\x05\x04\x16\x02\0\x03\x12\x04\x85\x07\x11\x12\n\
23641    \r\n\x05\x04\x16\x02\0\x08\x12\x04\x85\x07\x13;\n\x10\n\x08\x04\x16\x02\
23642    \0\x08\x9c\x08\0\x12\x04\x85\x07\x14:\n\xb4#\n\x04\x04\x16\x02\x01\x12\
23643    \x04\xd3\x07\x02<\x1a\xa5#\x20Optional.\x20The\x20query\x20statement.\
23644    \x20See\x20[how\x20to\x20construct\x20a\n\x20query](https://cloud.google\
23645    .com/asset-inventory/docs/searching-resources#how_to_construct_a_query)\
23646    \n\x20for\x20more\x20information.\x20If\x20not\x20specified\x20or\x20emp\
23647    ty,\x20it\x20will\x20search\x20all\x20the\n\x20resources\x20within\x20th\
23648    e\x20specified\x20`scope`.\n\n\x20Examples:\n\n\x20*\x20`name:Important`\
23649    \x20to\x20find\x20Google\x20Cloud\x20resources\x20whose\x20name\x20conta\
23650    ins\n\x20\x20\x20`Important`\x20as\x20a\x20word.\n\x20*\x20`name=Importa\
23651    nt`\x20to\x20find\x20the\x20Google\x20Cloud\x20resource\x20whose\x20name\
23652    \x20is\x20exactly\n\x20\x20\x20`Important`.\n\x20*\x20`displayName:Impor\
23653    *`\x20to\x20find\x20Google\x20Cloud\x20resources\x20whose\x20display\x20\
23654    name\n\x20\x20\x20contains\x20`Impor`\x20as\x20a\x20prefix\x20of\x20any\
23655    \x20word\x20in\x20the\x20field.\n\x20*\x20`location:us-west*`\x20to\x20f\
23656    ind\x20Google\x20Cloud\x20resources\x20whose\x20location\n\x20\x20\x20co\
23657    ntains\x20both\x20`us`\x20and\x20`west`\x20as\x20prefixes.\n\x20*\x20`la\
23658    bels:prod`\x20to\x20find\x20Google\x20Cloud\x20resources\x20whose\x20lab\
23659    els\x20contain\x20`prod`\n\x20\x20\x20as\x20a\x20key\x20or\x20value.\n\
23660    \x20*\x20`labels.env:prod`\x20to\x20find\x20Google\x20Cloud\x20resources\
23661    \x20that\x20have\x20a\x20label\x20`env`\n\x20\x20\x20and\x20its\x20value\
23662    \x20is\x20`prod`.\n\x20*\x20`labels.env:*`\x20to\x20find\x20Google\x20Cl\
23663    oud\x20resources\x20that\x20have\x20a\x20label\x20`env`.\n\x20*\x20`tagK\
23664    eys:env`\x20to\x20find\x20Google\x20Cloud\x20resources\x20that\x20have\
23665    \x20directly\n\x20\x20\x20attached\x20tags\x20where\x20the\n\x20\x20\x20\
23666    [`TagKey`](https://cloud.google.com/resource-manager/reference/rest/v3/t\
23667    agKeys#resource:-tagkey)\n\x20\x20\x20.`namespacedName`\x20contains\x20`\
23668    env`.\n\x20*\x20`tagValues:prod*`\x20to\x20find\x20Google\x20Cloud\x20re\
23669    sources\x20that\x20have\x20directly\n\x20\x20\x20attached\x20tags\x20whe\
23670    re\x20the\n\x20\x20\x20[`TagValue`](https://cloud.google.com/resource-ma\
23671    nager/reference/rest/v3/tagValues#resource:-tagvalue)\n\x20\x20\x20.`nam\
23672    espacedName`\x20contains\x20a\x20word\x20prefixed\x20by\x20`prod`.\n\x20\
23673    *\x20`tagValueIds=tagValues/123`\x20to\x20find\x20Google\x20Cloud\x20res\
23674    ources\x20that\x20have\n\x20\x20\x20directly\x20attached\x20tags\x20wher\
23675    e\x20the\n\x20\x20\x20[`TagValue`](https://cloud.google.com/resource-man\
23676    ager/reference/rest/v3/tagValues#resource:-tagvalue)\n\x20\x20\x20.`name\
23677    `\x20is\x20exactly\x20`tagValues/123`.\n\x20*\x20`effectiveTagKeys:env`\
23678    \x20to\x20find\x20Google\x20Cloud\x20resources\x20that\x20have\n\x20\x20\
23679    \x20directly\x20attached\x20or\x20inherited\x20tags\x20where\x20the\n\
23680    \x20\x20\x20[`TagKey`](https://cloud.google.com/resource-manager/referen\
23681    ce/rest/v3/tagKeys#resource:-tagkey)\n\x20\x20\x20.`namespacedName`\x20c\
23682    ontains\x20`env`.\n\x20*\x20`effectiveTagValues:prod*`\x20to\x20find\x20\
23683    Google\x20Cloud\x20resources\x20that\x20have\n\x20\x20\x20directly\x20at\
23684    tached\x20or\x20inherited\x20tags\x20where\x20the\n\x20\x20\x20[`TagValu\
23685    e`](https://cloud.google.com/resource-manager/reference/rest/v3/tagValue\
23686    s#resource:-tagvalue)\n\x20\x20\x20.`namespacedName`\x20contains\x20a\
23687    \x20word\x20prefixed\x20by\x20`prod`.\n\x20*\x20`effectiveTagValueIds=ta\
23688    gValues/123`\x20to\x20find\x20Google\x20Cloud\x20resources\x20that\n\x20\
23689    \x20\x20\x20have\x20directly\x20attached\x20or\x20inherited\x20tags\x20w\
23690    here\x20the\n\x20\x20\x20[`TagValue`](https://cloud.google.com/resource-\
23691    manager/reference/rest/v3/tagValues#resource:-tagvalue)\n\x20\x20\x20.`n\
23692    ame`\x20is\x20exactly\x20`tagValues/123`.\n\x20*\x20`kmsKey:key`\x20to\
23693    \x20find\x20Google\x20Cloud\x20resources\x20encrypted\x20with\x20a\n\x20\
23694    \x20\x20customer-managed\x20encryption\x20key\x20whose\x20name\x20contai\
23695    ns\x20`key`\x20as\x20a\x20word.\x20This\n\x20\x20\x20field\x20is\x20depr\
23696    ecated.\x20Please\x20use\x20the\x20`kmsKeys`\x20field\x20to\x20retrieve\
23697    \x20Cloud\x20KMS\n\x20\x20\x20key\x20information.\n\x20*\x20`kmsKeys:key\
23698    `\x20to\x20find\x20Google\x20Cloud\x20resources\x20encrypted\x20with\n\
23699    \x20\x20\x20customer-managed\x20encryption\x20keys\x20whose\x20name\x20c\
23700    ontains\x20the\x20word\x20`key`.\n\x20*\x20`relationships:instance-group\
23701    -1`\x20to\x20find\x20Google\x20Cloud\x20resources\x20that\x20have\n\x20\
23702    \x20\x20relationships\x20with\x20`instance-group-1`\x20in\x20the\x20rela\
23703    ted\x20resource\x20name.\n\x20*\x20`relationships:INSTANCE_TO_INSTANCEGR\
23704    OUP`\x20to\x20find\x20Compute\x20Engine\n\x20\x20\x20instances\x20that\
23705    \x20have\x20relationships\x20of\x20type\x20`INSTANCE_TO_INSTANCEGROUP`.\
23706    \n\x20*\x20`relationships.INSTANCE_TO_INSTANCEGROUP:instance-group-1`\
23707    \x20to\x20find\n\x20\x20\x20Compute\x20Engine\x20instances\x20that\x20ha\
23708    ve\x20relationships\x20with\x20`instance-group-1`\n\x20\x20\x20in\x20the\
23709    \x20Compute\x20Engine\x20instance\x20group\x20resource\x20name,\x20for\
23710    \x20relationship\x20type\n\x20\x20\x20`INSTANCE_TO_INSTANCEGROUP`.\n\x20\
23711    *\x20`state:ACTIVE`\x20to\x20find\x20Google\x20Cloud\x20resources\x20who\
23712    se\x20state\x20contains\n\x20\x20\x20`ACTIVE`\x20as\x20a\x20word.\n\x20*\
23713    \x20`NOT\x20state:ACTIVE`\x20to\x20find\x20Google\x20Cloud\x20resources\
23714    \x20whose\x20state\x20doesn't\n\x20\x20\x20contain\x20`ACTIVE`\x20as\x20\
23715    a\x20word.\n\x20*\x20`createTime<1609459200`\x20to\x20find\x20Google\x20\
23716    Cloud\x20resources\x20that\x20were\x20created\n\x20\x20\x20before\x20`20\
23717    21-01-01\x2000:00:00\x20UTC`.\x20`1609459200`\x20is\x20the\x20epoch\x20t\
23718    imestamp\x20of\n\x20\x20\x20`2021-01-01\x2000:00:00\x20UTC`\x20in\x20sec\
23719    onds.\n\x20*\x20`updateTime>1609459200`\x20to\x20find\x20Google\x20Cloud\
23720    \x20resources\x20that\x20were\x20updated\n\x20\x20\x20after\x20`2021-01-\
23721    01\x2000:00:00\x20UTC`.\x20`1609459200`\x20is\x20the\x20epoch\x20timesta\
23722    mp\x20of\n\x20\x20\x20`2021-01-01\x2000:00:00\x20UTC`\x20in\x20seconds.\
23723    \n\x20*\x20`Important`\x20to\x20find\x20Google\x20Cloud\x20resources\x20\
23724    that\x20contain\x20`Important`\x20as\x20a\n\x20\x20\x20word\x20in\x20any\
23725    \x20of\x20the\x20searchable\x20fields.\n\x20*\x20`Impor*`\x20to\x20find\
23726    \x20Google\x20Cloud\x20resources\x20that\x20contain\x20`Impor`\x20as\x20\
23727    a\x20prefix\n\x20\x20\x20of\x20any\x20word\x20in\x20any\x20of\x20the\x20\
23728    searchable\x20fields.\n\x20*\x20`Important\x20location:(us-west1\x20OR\
23729    \x20global)`\x20to\x20find\x20Google\x20Cloud\n\x20\x20\x20resources\x20\
23730    that\x20contain\x20`Important`\x20as\x20a\x20word\x20in\x20any\x20of\x20\
23731    the\x20searchable\n\x20\x20\x20fields\x20and\x20are\x20also\x20located\
23732    \x20in\x20the\x20`us-west1`\x20region\x20or\x20the\x20`global`\n\x20\x20\
23733    \x20location.\n\n\r\n\x05\x04\x16\x02\x01\x05\x12\x04\xd3\x07\x02\x08\n\
23734    \r\n\x05\x04\x16\x02\x01\x01\x12\x04\xd3\x07\t\x0e\n\r\n\x05\x04\x16\x02\
23735    \x01\x03\x12\x04\xd3\x07\x11\x12\n\r\n\x05\x04\x16\x02\x01\x08\x12\x04\
23736    \xd3\x07\x13;\n\x10\n\x08\x04\x16\x02\x01\x08\x9c\x08\0\x12\x04\xd3\x07\
23737    \x14:\n\xf7\x05\n\x04\x04\x16\x02\x02\x12\x04\xe3\x07\x02K\x1a\xe8\x05\
23738    \x20Optional.\x20A\x20list\x20of\x20asset\x20types\x20that\x20this\x20re\
23739    quest\x20searches\x20for.\x20If\x20empty,\n\x20it\x20will\x20search\x20a\
23740    ll\x20the\x20[searchable\x20asset\n\x20types](https://cloud.google.com/a\
23741    sset-inventory/docs/supported-asset-types#searchable_asset_types).\n\n\
23742    \x20Regular\x20expressions\x20are\x20also\x20supported.\x20For\x20exampl\
23743    e:\n\n\x20*\x20\"compute.googleapis.com.*\"\x20snapshots\x20resources\
23744    \x20whose\x20asset\x20type\x20starts\n\x20with\x20\"compute.googleapis.c\
23745    om\".\n\x20*\x20\".*Instance\"\x20snapshots\x20resources\x20whose\x20ass\
23746    et\x20type\x20ends\x20with\x20\"Instance\".\n\x20*\x20\".*Instance.*\"\
23747    \x20snapshots\x20resources\x20whose\x20asset\x20type\x20contains\x20\"In\
23748    stance\".\n\n\x20See\x20[RE2](https://github.com/google/re2/wiki/Syntax)\
23749    \x20for\x20all\x20supported\n\x20regular\x20expression\x20syntax.\x20If\
23750    \x20the\x20regular\x20expression\x20does\x20not\x20match\x20any\n\x20sup\
23751    ported\x20asset\x20type,\x20an\x20INVALID_ARGUMENT\x20error\x20will\x20b\
23752    e\x20returned.\n\n\r\n\x05\x04\x16\x02\x02\x04\x12\x04\xe3\x07\x02\n\n\r\
23753    \n\x05\x04\x16\x02\x02\x05\x12\x04\xe3\x07\x0b\x11\n\r\n\x05\x04\x16\x02\
23754    \x02\x01\x12\x04\xe3\x07\x12\x1d\n\r\n\x05\x04\x16\x02\x02\x03\x12\x04\
23755    \xe3\x07\x20!\n\r\n\x05\x04\x16\x02\x02\x08\x12\x04\xe3\x07\"J\n\x10\n\
23756    \x08\x04\x16\x02\x02\x08\x9c\x08\0\x12\x04\xe3\x07#I\n\xda\x02\n\x04\x04\
23757    \x16\x02\x03\x12\x04\xea\x07\x02?\x1a\xcb\x02\x20Optional.\x20The\x20pag\
23758    e\x20size\x20for\x20search\x20result\x20pagination.\x20Page\x20size\x20i\
23759    s\x20capped\n\x20at\x20500\x20even\x20if\x20a\x20larger\x20value\x20is\
23760    \x20given.\x20If\x20set\x20to\x20zero\x20or\x20a\x20negative\x20value,\n\
23761    \x20server\x20will\x20pick\x20an\x20appropriate\x20default.\x20Returned\
23762    \x20results\x20may\x20be\x20fewer\x20than\n\x20requested.\x20When\x20thi\
23763    s\x20happens,\x20there\x20could\x20be\x20more\x20results\x20as\x20long\
23764    \x20as\n\x20`next_page_token`\x20is\x20returned.\n\n\r\n\x05\x04\x16\x02\
23765    \x03\x05\x12\x04\xea\x07\x02\x07\n\r\n\x05\x04\x16\x02\x03\x01\x12\x04\
23766    \xea\x07\x08\x11\n\r\n\x05\x04\x16\x02\x03\x03\x12\x04\xea\x07\x14\x15\n\
23767    \r\n\x05\x04\x16\x02\x03\x08\x12\x04\xea\x07\x16>\n\x10\n\x08\x04\x16\
23768    \x02\x03\x08\x9c\x08\0\x12\x04\xea\x07\x17=\n\xa5\x02\n\x04\x04\x16\x02\
23769    \x04\x12\x04\xf0\x07\x02A\x1a\x96\x02\x20Optional.\x20If\x20present,\x20\
23770    then\x20retrieve\x20the\x20next\x20batch\x20of\x20results\x20from\x20the\
23771    \n\x20preceding\x20call\x20to\x20this\x20method.\x20`page_token`\x20must\
23772    \x20be\x20the\x20value\x20of\n\x20`next_page_token`\x20from\x20the\x20pr\
23773    evious\x20response.\x20The\x20values\x20of\x20all\x20other\n\x20method\
23774    \x20parameters,\x20must\x20be\x20identical\x20to\x20those\x20in\x20the\
23775    \x20previous\x20call.\n\n\r\n\x05\x04\x16\x02\x04\x05\x12\x04\xf0\x07\
23776    \x02\x08\n\r\n\x05\x04\x16\x02\x04\x01\x12\x04\xf0\x07\t\x13\n\r\n\x05\
23777    \x04\x16\x02\x04\x03\x12\x04\xf0\x07\x16\x17\n\r\n\x05\x04\x16\x02\x04\
23778    \x08\x12\x04\xf0\x07\x18@\n\x10\n\x08\x04\x16\x02\x04\x08\x9c\x08\0\x12\
23779    \x04\xf0\x07\x19?\n\xfe\x03\n\x04\x04\x16\x02\x05\x12\x04\x83\x08\x02?\
23780    \x1a\xef\x03\x20Optional.\x20A\x20comma-separated\x20list\x20of\x20field\
23781    s\x20specifying\x20the\x20sorting\x20order\x20of\n\x20the\x20results.\
23782    \x20The\x20default\x20order\x20is\x20ascending.\x20Add\x20\"\x20DESC\"\
23783    \x20after\x20the\x20field\n\x20name\x20to\x20indicate\x20descending\x20o\
23784    rder.\x20Redundant\x20space\x20characters\x20are\x20ignored.\n\x20Exampl\
23785    e:\x20\"location\x20DESC,\x20name\".\n\x20Only\x20the\x20following\x20fi\
23786    elds\x20in\x20the\x20response\x20are\x20sortable:\n\n\x20\x20\x20*\x20na\
23787    me\n\x20\x20\x20*\x20assetType\n\x20\x20\x20*\x20project\n\x20\x20\x20*\
23788    \x20displayName\n\x20\x20\x20*\x20description\n\x20\x20\x20*\x20location\
23789    \n\x20\x20\x20*\x20createTime\n\x20\x20\x20*\x20updateTime\n\x20\x20\x20\
23790    *\x20state\n\x20\x20\x20*\x20parentFullResourceName\n\x20\x20\x20*\x20pa\
23791    rentAssetType\n\n\r\n\x05\x04\x16\x02\x05\x05\x12\x04\x83\x08\x02\x08\n\
23792    \r\n\x05\x04\x16\x02\x05\x01\x12\x04\x83\x08\t\x11\n\r\n\x05\x04\x16\x02\
23793    \x05\x03\x12\x04\x83\x08\x14\x15\n\r\n\x05\x04\x16\x02\x05\x08\x12\x04\
23794    \x83\x08\x16>\n\x10\n\x08\x04\x16\x02\x05\x08\x9c\x08\0\x12\x04\x83\x08\
23795    \x17=\n\x85\x08\n\x04\x04\x16\x02\x06\x12\x06\xa4\x08\x02\xa5\x08/\x1a\
23796    \xf4\x07\x20Optional.\x20A\x20comma-separated\x20list\x20of\x20fields\
23797    \x20that\x20you\x20want\x20returned\x20in\x20the\n\x20results.\x20The\
23798    \x20following\x20fields\x20are\x20returned\x20by\x20default\x20if\x20not\
23799    \x20specified:\n\n\x20\x20\x20*\x20`name`\n\x20\x20\x20*\x20`assetType`\
23800    \n\x20\x20\x20*\x20`project`\n\x20\x20\x20*\x20`folders`\n\x20\x20\x20*\
23801    \x20`organization`\n\x20\x20\x20*\x20`displayName`\n\x20\x20\x20*\x20`de\
23802    scription`\n\x20\x20\x20*\x20`location`\n\x20\x20\x20*\x20`labels`\n\x20\
23803    \x20\x20*\x20`tags`\n\x20\x20\x20*\x20`effectiveTags`\n\x20\x20\x20*\x20\
23804    `networkTags`\n\x20\x20\x20*\x20`kmsKeys`\n\x20\x20\x20*\x20`createTime`\
23805    \n\x20\x20\x20*\x20`updateTime`\n\x20\x20\x20*\x20`state`\n\x20\x20\x20*\
23806    \x20`additionalAttributes`\n\x20\x20\x20*\x20`parentFullResourceName`\n\
23807    \x20\x20\x20*\x20`parentAssetType`\n\n\x20Some\x20fields\x20of\x20large\
23808    \x20size,\x20such\x20as\x20`versionedResources`,\n\x20`attachedResources\
23809    `,\x20`effectiveTags`\x20etc.,\x20are\x20not\x20returned\x20by\x20defaul\
23810    t,\x20but\n\x20you\x20can\x20specify\x20them\x20in\x20the\x20`read_mask`\
23811    \x20parameter\x20if\x20you\x20want\x20to\x20include\n\x20them.\x20If\x20\
23812    `\"*\"`\x20is\x20specified,\x20all\x20[available\n\x20fields](https://cl\
23813    oud.google.com/asset-inventory/docs/reference/rest/v1/TopLevel/searchAll\
23814    Resources#resourcesearchresult)\n\x20are\x20returned.\n\x20Examples:\x20\
23815    `\"name,location\"`,\x20`\"name,versionedResources\"`,\x20`\"*\"`.\n\x20\
23816    Any\x20invalid\x20field\x20path\x20will\x20trigger\x20INVALID_ARGUMENT\
23817    \x20error.\n\n\r\n\x05\x04\x16\x02\x06\x06\x12\x04\xa4\x08\x02\x1b\n\r\n\
23818    \x05\x04\x16\x02\x06\x01\x12\x04\xa4\x08\x1c%\n\r\n\x05\x04\x16\x02\x06\
23819    \x03\x12\x04\xa4\x08()\n\r\n\x05\x04\x16\x02\x06\x08\x12\x04\xa5\x08\x06\
23820    .\n\x10\n\x08\x04\x16\x02\x06\x08\x9c\x08\0\x12\x04\xa5\x08\x07-\n.\n\
23821    \x02\x04\x17\x12\x06\xa9\x08\0\xb2\x08\x01\x1a\x20\x20Search\x20all\x20r\
23822    esources\x20response.\n\n\x0b\n\x03\x04\x17\x01\x12\x04\xa9\x08\x08\"\ny\
23823    \n\x04\x04\x17\x02\0\x12\x04\xac\x08\x02,\x1ak\x20A\x20list\x20of\x20Res\
23824    ources\x20that\x20match\x20the\x20search\x20query.\x20It\x20contains\x20\
23825    the\x20resource\n\x20standard\x20metadata\x20information.\n\n\r\n\x05\
23826    \x04\x17\x02\0\x04\x12\x04\xac\x08\x02\n\n\r\n\x05\x04\x17\x02\0\x06\x12\
23827    \x04\xac\x08\x0b\x1f\n\r\n\x05\x04\x17\x02\0\x01\x12\x04\xac\x08\x20'\n\
23828    \r\n\x05\x04\x17\x02\0\x03\x12\x04\xac\x08*+\n\xe4\x01\n\x04\x04\x17\x02\
23829    \x01\x12\x04\xb1\x08\x02\x1d\x1a\xd5\x01\x20If\x20there\x20are\x20more\
23830    \x20results\x20than\x20those\x20appearing\x20in\x20this\x20response,\x20\
23831    then\n\x20`next_page_token`\x20is\x20included.\x20To\x20get\x20the\x20ne\
23832    xt\x20set\x20of\x20results,\x20call\x20this\n\x20method\x20again\x20usin\
23833    g\x20the\x20value\x20of\x20`next_page_token`\x20as\x20`page_token`.\n\n\
23834    \r\n\x05\x04\x17\x02\x01\x05\x12\x04\xb1\x08\x02\x08\n\r\n\x05\x04\x17\
23835    \x02\x01\x01\x12\x04\xb1\x08\t\x18\n\r\n\x05\x04\x17\x02\x01\x03\x12\x04\
23836    \xb1\x08\x1b\x1c\n0\n\x02\x04\x18\x12\x06\xb5\x08\0\x9b\t\x01\x1a\"\x20S\
23837    earch\x20all\x20IAM\x20policies\x20request.\n\n\x0b\n\x03\x04\x18\x01\
23838    \x12\x04\xb5\x08\x08#\n\xd5\x04\n\x04\x04\x18\x02\0\x12\x04\xc2\x08\x02<\
23839    \x1a\xc6\x04\x20Required.\x20A\x20scope\x20can\x20be\x20a\x20project,\
23840    \x20a\x20folder,\x20or\x20an\x20organization.\x20The\n\x20search\x20is\
23841    \x20limited\x20to\x20the\x20IAM\x20policies\x20within\x20the\x20`scope`.\
23842    \x20The\x20caller\x20must\n\x20be\x20granted\x20the\n\x20[`cloudasset.as\
23843    sets.searchAllIamPolicies`](https://cloud.google.com/asset-inventory/doc\
23844    s/access-control#required_permissions)\n\x20permission\x20on\x20the\x20d\
23845    esired\x20scope.\n\n\x20The\x20allowed\x20values\x20are:\n\n\x20*\x20pro\
23846    jects/{PROJECT_ID}\x20(e.g.,\x20\"projects/foo-bar\")\n\x20*\x20projects\
23847    /{PROJECT_NUMBER}\x20(e.g.,\x20\"projects/12345678\")\n\x20*\x20folders/\
23848    {FOLDER_NUMBER}\x20(e.g.,\x20\"folders/1234567\")\n\x20*\x20organization\
23849    s/{ORGANIZATION_NUMBER}\x20(e.g.,\x20\"organizations/123456\")\n\n\r\n\
23850    \x05\x04\x18\x02\0\x05\x12\x04\xc2\x08\x02\x08\n\r\n\x05\x04\x18\x02\0\
23851    \x01\x12\x04\xc2\x08\t\x0e\n\r\n\x05\x04\x18\x02\0\x03\x12\x04\xc2\x08\
23852    \x11\x12\n\r\n\x05\x04\x18\x02\0\x08\x12\x04\xc2\x08\x13;\n\x10\n\x08\
23853    \x04\x18\x02\0\x08\x9c\x08\0\x12\x04\xc2\x08\x14:\n\xce\x12\n\x04\x04\
23854    \x18\x02\x01\x12\x04\xee\x08\x02<\x1a\xbf\x12\x20Optional.\x20The\x20que\
23855    ry\x20statement.\x20See\x20[how\x20to\x20construct\x20a\n\x20query](http\
23856    s://cloud.google.com/asset-inventory/docs/searching-iam-policies#how_to_\
23857    construct_a_query)\n\x20for\x20more\x20information.\x20If\x20not\x20spec\
23858    ified\x20or\x20empty,\x20it\x20will\x20search\x20all\x20the\n\x20IAM\x20\
23859    policies\x20within\x20the\x20specified\x20`scope`.\x20Note\x20that\x20th\
23860    e\x20query\x20string\x20is\n\x20compared\x20against\x20each\x20IAM\x20po\
23861    licy\x20binding,\x20including\x20its\x20principals,\n\x20roles,\x20and\
23862    \x20IAM\x20conditions.\x20The\x20returned\x20IAM\x20policies\x20will\x20\
23863    only\n\x20contain\x20the\x20bindings\x20that\x20match\x20your\x20query.\
23864    \x20To\x20learn\x20more\x20about\x20the\x20IAM\n\x20policy\x20structure,\
23865    \x20see\x20the\x20[IAM\x20policy\n\x20documentation](https://cloud.googl\
23866    e.com/iam/help/allow-policies/structure).\n\n\x20Examples:\n\n\x20*\x20`\
23867    policy:amy@gmail.com`\x20to\x20find\x20IAM\x20policy\x20bindings\x20that\
23868    \x20specify\x20user\n\x20\x20\x20\"amy@gmail.com\".\n\x20*\x20`policy:ro\
23869    les/compute.admin`\x20to\x20find\x20IAM\x20policy\x20bindings\x20that\
23870    \x20specify\n\x20\x20\x20the\x20Compute\x20Admin\x20role.\n\x20*\x20`pol\
23871    icy:comp*`\x20to\x20find\x20IAM\x20policy\x20bindings\x20that\x20contain\
23872    \x20\"comp\"\x20as\x20a\n\x20\x20\x20prefix\x20of\x20any\x20word\x20in\
23873    \x20the\x20binding.\n\x20*\x20`policy.role.permissions:storage.buckets.u\
23874    pdate`\x20to\x20find\x20IAM\x20policy\n\x20\x20\x20bindings\x20that\x20s\
23875    pecify\x20a\x20role\x20containing\x20\"storage.buckets.update\"\n\x20\
23876    \x20\x20permission.\x20Note\x20that\x20if\x20callers\x20don't\x20have\
23877    \x20`iam.roles.get`\x20access\x20to\x20a\n\x20\x20\x20role's\x20included\
23878    \x20permissions,\x20policy\x20bindings\x20that\x20specify\x20this\x20rol\
23879    e\x20will\n\x20\x20\x20be\x20dropped\x20from\x20the\x20search\x20results\
23880    .\n\x20*\x20`policy.role.permissions:upd*`\x20to\x20find\x20IAM\x20polic\
23881    y\x20bindings\x20that\x20specify\x20a\n\x20\x20\x20role\x20containing\
23882    \x20\"upd\"\x20as\x20a\x20prefix\x20of\x20any\x20word\x20in\x20the\x20ro\
23883    le\x20permission.\n\x20\x20\x20Note\x20that\x20if\x20callers\x20don't\
23884    \x20have\x20`iam.roles.get`\x20access\x20to\x20a\x20role's\n\x20\x20\x20\
23885    included\x20permissions,\x20policy\x20bindings\x20that\x20specify\x20thi\
23886    s\x20role\x20will\x20be\n\x20\x20\x20dropped\x20from\x20the\x20search\
23887    \x20results.\n\x20*\x20`resource:organizations/123456`\x20to\x20find\x20\
23888    IAM\x20policy\x20bindings\n\x20\x20\x20that\x20are\x20set\x20on\x20\"org\
23889    anizations/123456\".\n\x20*\x20`resource=//cloudresourcemanager.googleap\
23890    is.com/projects/myproject`\x20to\n\x20\x20\x20find\x20IAM\x20policy\x20b\
23891    indings\x20that\x20are\x20set\x20on\x20the\x20project\x20named\x20\"mypr\
23892    oject\".\n\x20*\x20`Important`\x20to\x20find\x20IAM\x20policy\x20binding\
23893    s\x20that\x20contain\x20\"Important\"\x20as\x20a\n\x20\x20\x20word\x20in\
23894    \x20any\x20of\x20the\x20searchable\x20fields\x20(except\x20for\x20the\
23895    \x20included\n\x20\x20\x20permissions).\n\x20*\x20`resource:(instance1\
23896    \x20OR\x20instance2)\x20policy:amy`\x20to\x20find\n\x20\x20\x20IAM\x20po\
23897    licy\x20bindings\x20that\x20are\x20set\x20on\x20resources\x20\"instance1\
23898    \"\x20or\n\x20\x20\x20\"instance2\"\x20and\x20also\x20specify\x20user\
23899    \x20\"amy\".\n\x20*\x20`roles:roles/compute.admin`\x20to\x20find\x20IAM\
23900    \x20policy\x20bindings\x20that\x20specify\x20the\n\x20\x20\x20Compute\
23901    \x20Admin\x20role.\n\x20*\x20`memberTypes:user`\x20to\x20find\x20IAM\x20\
23902    policy\x20bindings\x20that\x20contain\x20the\n\x20\x20\x20principal\x20t\
23903    ype\x20\"user\".\n\n\r\n\x05\x04\x18\x02\x01\x05\x12\x04\xee\x08\x02\x08\
23904    \n\r\n\x05\x04\x18\x02\x01\x01\x12\x04\xee\x08\t\x0e\n\r\n\x05\x04\x18\
23905    \x02\x01\x03\x12\x04\xee\x08\x11\x12\n\r\n\x05\x04\x18\x02\x01\x08\x12\
23906    \x04\xee\x08\x13;\n\x10\n\x08\x04\x18\x02\x01\x08\x9c\x08\0\x12\x04\xee\
23907    \x08\x14:\n\xda\x02\n\x04\x04\x18\x02\x02\x12\x04\xf5\x08\x02?\x1a\xcb\
23908    \x02\x20Optional.\x20The\x20page\x20size\x20for\x20search\x20result\x20p\
23909    agination.\x20Page\x20size\x20is\x20capped\n\x20at\x20500\x20even\x20if\
23910    \x20a\x20larger\x20value\x20is\x20given.\x20If\x20set\x20to\x20zero\x20o\
23911    r\x20a\x20negative\x20value,\n\x20server\x20will\x20pick\x20an\x20approp\
23912    riate\x20default.\x20Returned\x20results\x20may\x20be\x20fewer\x20than\n\
23913    \x20requested.\x20When\x20this\x20happens,\x20there\x20could\x20be\x20mo\
23914    re\x20results\x20as\x20long\x20as\n\x20`next_page_token`\x20is\x20return\
23915    ed.\n\n\r\n\x05\x04\x18\x02\x02\x05\x12\x04\xf5\x08\x02\x07\n\r\n\x05\
23916    \x04\x18\x02\x02\x01\x12\x04\xf5\x08\x08\x11\n\r\n\x05\x04\x18\x02\x02\
23917    \x03\x12\x04\xf5\x08\x14\x15\n\r\n\x05\x04\x18\x02\x02\x08\x12\x04\xf5\
23918    \x08\x16>\n\x10\n\x08\x04\x18\x02\x02\x08\x9c\x08\0\x12\x04\xf5\x08\x17=\
23919    \n\x9f\x02\n\x04\x04\x18\x02\x03\x12\x04\xfb\x08\x02A\x1a\x90\x02\x20Opt\
23920    ional.\x20If\x20present,\x20retrieve\x20the\x20next\x20batch\x20of\x20re\
23921    sults\x20from\x20the\x20preceding\n\x20call\x20to\x20this\x20method.\x20\
23922    `page_token`\x20must\x20be\x20the\x20value\x20of\x20`next_page_token`\n\
23923    \x20from\x20the\x20previous\x20response.\x20The\x20values\x20of\x20all\
23924    \x20other\x20method\x20parameters\x20must\n\x20be\x20identical\x20to\x20\
23925    those\x20in\x20the\x20previous\x20call.\n\n\r\n\x05\x04\x18\x02\x03\x05\
23926    \x12\x04\xfb\x08\x02\x08\n\r\n\x05\x04\x18\x02\x03\x01\x12\x04\xfb\x08\t\
23927    \x13\n\r\n\x05\x04\x18\x02\x03\x03\x12\x04\xfb\x08\x16\x17\n\r\n\x05\x04\
23928    \x18\x02\x03\x08\x12\x04\xfb\x08\x18@\n\x10\n\x08\x04\x18\x02\x03\x08\
23929    \x9c\x08\0\x12\x04\xfb\x08\x19?\n\xc2\x06\n\x04\x04\x18\x02\x04\x12\x04\
23930    \x8e\t\x02K\x1a\xb3\x06\x20Optional.\x20A\x20list\x20of\x20asset\x20type\
23931    s\x20that\x20the\x20IAM\x20policies\x20are\x20attached\x20to.\x20If\n\
23932    \x20empty,\x20it\x20will\x20search\x20the\x20IAM\x20policies\x20that\x20\
23933    are\x20attached\x20to\x20all\x20the\n\x20[searchable\x20asset\n\x20types\
23934    ](https://cloud.google.com/asset-inventory/docs/supported-asset-types#se\
23935    archable_asset_types).\n\n\x20Regular\x20expressions\x20are\x20also\x20s\
23936    upported.\x20For\x20example:\n\n\x20*\x20\"compute.googleapis.com.*\"\
23937    \x20snapshots\x20IAM\x20policies\x20attached\x20to\x20asset\x20type\n\
23938    \x20starts\x20with\x20\"compute.googleapis.com\".\n\x20*\x20\".*Instance\
23939    \"\x20snapshots\x20IAM\x20policies\x20attached\x20to\x20asset\x20type\
23940    \x20ends\x20with\n\x20\"Instance\".\n\x20*\x20\".*Instance.*\"\x20snapsh\
23941    ots\x20IAM\x20policies\x20attached\x20to\x20asset\x20type\x20contains\n\
23942    \x20\"Instance\".\n\n\x20See\x20[RE2](https://github.com/google/re2/wiki\
23943    /Syntax)\x20for\x20all\x20supported\n\x20regular\x20expression\x20syntax\
23944    .\x20If\x20the\x20regular\x20expression\x20does\x20not\x20match\x20any\n\
23945    \x20supported\x20asset\x20type,\x20an\x20INVALID_ARGUMENT\x20error\x20wi\
23946    ll\x20be\x20returned.\n\n\r\n\x05\x04\x18\x02\x04\x04\x12\x04\x8e\t\x02\
23947    \n\n\r\n\x05\x04\x18\x02\x04\x05\x12\x04\x8e\t\x0b\x11\n\r\n\x05\x04\x18\
23948    \x02\x04\x01\x12\x04\x8e\t\x12\x1d\n\r\n\x05\x04\x18\x02\x04\x03\x12\x04\
23949    \x8e\t\x20!\n\r\n\x05\x04\x18\x02\x04\x08\x12\x04\x8e\t\"J\n\x10\n\x08\
23950    \x04\x18\x02\x04\x08\x9c\x08\0\x12\x04\x8e\t#I\n\xfd\x03\n\x04\x04\x18\
23951    \x02\x05\x12\x04\x9a\t\x02?\x1a\xee\x03\x20Optional.\x20A\x20comma-separ\
23952    ated\x20list\x20of\x20fields\x20specifying\x20the\x20sorting\x20order\
23953    \x20of\n\x20the\x20results.\x20The\x20default\x20order\x20is\x20ascendin\
23954    g.\x20Add\x20\"\x20DESC\"\x20after\x20the\x20field\n\x20name\x20to\x20in\
23955    dicate\x20descending\x20order.\x20Redundant\x20space\x20characters\x20ar\
23956    e\x20ignored.\n\x20Example:\x20\"assetType\x20DESC,\x20resource\".\n\x20\
23957    Only\x20singular\x20primitive\x20fields\x20in\x20the\x20response\x20are\
23958    \x20sortable:\n\x20\x20\x20*\x20resource\n\x20\x20\x20*\x20assetType\n\
23959    \x20\x20\x20*\x20project\n\x20All\x20the\x20other\x20fields\x20such\x20a\
23960    s\x20repeated\x20fields\x20(e.g.,\x20`folders`)\x20and\n\x20non-primitiv\
23961    e\x20fields\x20(e.g.,\x20`policy`)\x20are\x20not\x20supported.\n\n\r\n\
23962    \x05\x04\x18\x02\x05\x05\x12\x04\x9a\t\x02\x08\n\r\n\x05\x04\x18\x02\x05\
23963    \x01\x12\x04\x9a\t\t\x11\n\r\n\x05\x04\x18\x02\x05\x03\x12\x04\x9a\t\x14\
23964    \x15\n\r\n\x05\x04\x18\x02\x05\x08\x12\x04\x9a\t\x16>\n\x10\n\x08\x04\
23965    \x18\x02\x05\x08\x9c\x08\0\x12\x04\x9a\t\x17=\n1\n\x02\x04\x19\x12\x06\
23966    \x9e\t\0\xa7\t\x01\x1a#\x20Search\x20all\x20IAM\x20policies\x20response.\
23967    \n\n\x0b\n\x03\x04\x19\x01\x12\x04\x9e\t\x08$\n\x9c\x01\n\x04\x04\x19\
23968    \x02\0\x12\x04\xa1\t\x02-\x1a\x8d\x01\x20A\x20list\x20of\x20IAM\x20polic\
23969    ies\x20that\x20match\x20the\x20search\x20query.\x20Related\x20informatio\
23970    n\n\x20such\x20as\x20the\x20associated\x20resource\x20is\x20returned\x20\
23971    along\x20with\x20the\x20policy.\n\n\r\n\x05\x04\x19\x02\0\x04\x12\x04\
23972    \xa1\t\x02\n\n\r\n\x05\x04\x19\x02\0\x06\x12\x04\xa1\t\x0b\x20\n\r\n\x05\
23973    \x04\x19\x02\0\x01\x12\x04\xa1\t!(\n\r\n\x05\x04\x19\x02\0\x03\x12\x04\
23974    \xa1\t+,\n\xb5\x01\n\x04\x04\x19\x02\x01\x12\x04\xa6\t\x02\x1d\x1a\xa6\
23975    \x01\x20Set\x20if\x20there\x20are\x20more\x20results\x20than\x20those\
23976    \x20appearing\x20in\x20this\x20response;\x20to\x20get\n\x20the\x20next\
23977    \x20set\x20of\x20results,\x20call\x20this\x20method\x20again,\x20using\
23978    \x20this\x20value\x20as\x20the\n\x20`page_token`.\n\n\r\n\x05\x04\x19\
23979    \x02\x01\x05\x12\x04\xa6\t\x02\x08\n\r\n\x05\x04\x19\x02\x01\x01\x12\x04\
23980    \xa6\t\t\x18\n\r\n\x05\x04\x19\x02\x01\x03\x12\x04\xa6\t\x1b\x1c\n2\n\
23981    \x02\x04\x1a\x12\x06\xaa\t\0\xe8\n\x01\x1a$\x20IAM\x20policy\x20analysis\
23982    \x20query\x20message.\n\n\x0b\n\x03\x04\x1a\x01\x12\x04\xaa\t\x08\x1e\n\
23983    \xb2\x01\n\x04\x04\x1a\x03\0\x12\x06\xae\t\x02\xb4\t\x03\x1a\xa1\x01\x20\
23984    Specifies\x20the\x20resource\x20to\x20analyze\x20for\x20access\x20polici\
23985    es,\x20which\x20may\x20be\x20set\n\x20directly\x20on\x20the\x20resource,\
23986    \x20or\x20on\x20ancestors\x20such\x20as\x20organizations,\x20folders\x20\
23987    or\n\x20projects.\n\n\r\n\x05\x04\x1a\x03\0\x01\x12\x04\xae\t\n\x1a\n\
23988    \x86\x02\n\x06\x04\x1a\x03\0\x02\0\x12\x04\xb3\t\x04K\x1a\xf5\x01\x20Req\
23989    uired.\x20The\x20[full\x20resource\x20name]\n\x20(https://cloud.google.c\
23990    om/asset-inventory/docs/resource-name-format)\n\x20of\x20a\x20resource\
23991    \x20of\x20[supported\x20resource\n\x20types](https://cloud.google.com/as\
23992    set-inventory/docs/supported-asset-types#analyzable_asset_types).\n\n\
23993    \x0f\n\x07\x04\x1a\x03\0\x02\0\x05\x12\x04\xb3\t\x04\n\n\x0f\n\x07\x04\
23994    \x1a\x03\0\x02\0\x01\x12\x04\xb3\t\x0b\x1d\n\x0f\n\x07\x04\x1a\x03\0\x02\
23995    \0\x03\x12\x04\xb3\t\x20!\n\x0f\n\x07\x04\x1a\x03\0\x02\0\x08\x12\x04\
23996    \xb3\t\"J\n\x12\n\n\x04\x1a\x03\0\x02\0\x08\x9c\x08\0\x12\x04\xb3\t#I\n\
23997    \xbb\x01\n\x04\x04\x1a\x03\x01\x12\x06\xb9\t\x02\xc7\t\x03\x1a\xaa\x01\
23998    \x20Specifies\x20an\x20identity\x20for\x20which\x20to\x20determine\x20re\
23999    source\x20access,\x20based\x20on\n\x20roles\x20assigned\x20either\x20dir\
24000    ectly\x20to\x20them\x20or\x20to\x20the\x20groups\x20they\x20belong\x20to\
24001    ,\n\x20directly\x20or\x20indirectly.\n\n\r\n\x05\x04\x1a\x03\x01\x01\x12\
24002    \x04\xb9\t\n\x1a\n\xb9\x03\n\x06\x04\x1a\x03\x01\x02\0\x12\x04\xc6\t\x04\
24003    A\x1a\xa8\x03\x20Required.\x20The\x20identity\x20appear\x20in\x20the\x20\
24004    form\x20of\x20principals\x20in\n\x20[IAM\x20policy\n\x20binding](https:/\
24005    /cloud.google.com/iam/reference/rest/v1/Binding).\n\n\x20The\x20examples\
24006    \x20of\x20supported\x20forms\x20are:\n\x20\"user:mike@example.com\",\n\
24007    \x20\"group:admins@example.com\",\n\x20\"domain:google.com\",\n\x20\"ser\
24008    viceAccount:my-project-id@appspot.gserviceaccount.com\".\n\n\x20Notice\
24009    \x20that\x20wildcard\x20characters\x20(such\x20as\x20*\x20and\x20?)\x20a\
24010    re\x20not\x20supported.\n\x20You\x20must\x20give\x20a\x20specific\x20ide\
24011    ntity.\n\n\x0f\n\x07\x04\x1a\x03\x01\x02\0\x05\x12\x04\xc6\t\x04\n\n\x0f\
24012    \n\x07\x04\x1a\x03\x01\x02\0\x01\x12\x04\xc6\t\x0b\x13\n\x0f\n\x07\x04\
24013    \x1a\x03\x01\x02\0\x03\x12\x04\xc6\t\x16\x17\n\x0f\n\x07\x04\x1a\x03\x01\
24014    \x02\0\x08\x12\x04\xc6\t\x18@\n\x12\n\n\x04\x1a\x03\x01\x02\0\x08\x9c\
24015    \x08\0\x12\x04\xc6\t\x19?\n\xc3\x02\n\x04\x04\x1a\x03\x02\x12\x06\xce\t\
24016    \x02\xd4\t\x03\x1a\xb2\x02\x20Specifies\x20roles\x20and/or\x20permission\
24017    s\x20to\x20analyze,\x20to\x20determine\x20both\x20the\n\x20identities\
24018    \x20possessing\x20them\x20and\x20the\x20resources\x20they\x20control.\
24019    \x20If\x20multiple\n\x20values\x20are\x20specified,\x20results\x20will\
24020    \x20include\x20roles\x20or\x20permissions\x20matching\n\x20any\x20of\x20\
24021    them.\x20The\x20total\x20number\x20of\x20roles\x20and\x20permissions\x20\
24022    should\x20be\x20equal\x20or\n\x20less\x20than\x2010.\n\n\r\n\x05\x04\x1a\
24023    \x03\x02\x01\x12\x04\xce\t\n\x18\n:\n\x06\x04\x1a\x03\x02\x02\0\x12\x04\
24024    \xd0\t\x04G\x1a*\x20Optional.\x20The\x20roles\x20to\x20appear\x20in\x20r\
24025    esult.\n\n\x0f\n\x07\x04\x1a\x03\x02\x02\0\x04\x12\x04\xd0\t\x04\x0c\n\
24026    \x0f\n\x07\x04\x1a\x03\x02\x02\0\x05\x12\x04\xd0\t\r\x13\n\x0f\n\x07\x04\
24027    \x1a\x03\x02\x02\0\x01\x12\x04\xd0\t\x14\x19\n\x0f\n\x07\x04\x1a\x03\x02\
24028    \x02\0\x03\x12\x04\xd0\t\x1c\x1d\n\x0f\n\x07\x04\x1a\x03\x02\x02\0\x08\
24029    \x12\x04\xd0\t\x1eF\n\x12\n\n\x04\x1a\x03\x02\x02\0\x08\x9c\x08\0\x12\
24030    \x04\xd0\t\x1fE\n@\n\x06\x04\x1a\x03\x02\x02\x01\x12\x04\xd3\t\x04M\x1a0\
24031    \x20Optional.\x20The\x20permissions\x20to\x20appear\x20in\x20result.\n\n\
24032    \x0f\n\x07\x04\x1a\x03\x02\x02\x01\x04\x12\x04\xd3\t\x04\x0c\n\x0f\n\x07\
24033    \x04\x1a\x03\x02\x02\x01\x05\x12\x04\xd3\t\r\x13\n\x0f\n\x07\x04\x1a\x03\
24034    \x02\x02\x01\x01\x12\x04\xd3\t\x14\x1f\n\x0f\n\x07\x04\x1a\x03\x02\x02\
24035    \x01\x03\x12\x04\xd3\t\"#\n\x0f\n\x07\x04\x1a\x03\x02\x02\x01\x08\x12\
24036    \x04\xd3\t$L\n\x12\n\n\x04\x1a\x03\x02\x02\x01\x08\x9c\x08\0\x12\x04\xd3\
24037    \t%K\n)\n\x04\x04\x1a\x03\x03\x12\x06\xd7\t\x02\xbc\n\x03\x1a\x19\x20Con\
24038    tains\x20query\x20options.\n\n\r\n\x05\x04\x1a\x03\x03\x01\x12\x04\xd7\t\
24039    \n\x11\n\xe4\x03\n\x06\x04\x1a\x03\x03\x02\0\x12\x04\xe4\t\x04D\x1a\xd3\
24040    \x03\x20Optional.\x20If\x20true,\x20the\x20identities\x20section\x20of\
24041    \x20the\x20result\x20will\x20expand\x20any\n\x20Google\x20groups\x20appe\
24042    aring\x20in\x20an\x20IAM\x20policy\x20binding.\n\n\x20If\n\x20[IamPolicy\
24043    AnalysisQuery.identity_selector][google.cloud.asset.v1.IamPolicyAnalysis\
24044    Query.identity_selector]\n\x20is\x20specified,\x20the\x20identity\x20in\
24045    \x20the\x20result\x20will\x20be\x20determined\x20by\x20the\n\x20selector\
24046    ,\x20and\x20this\x20flag\x20is\x20not\x20allowed\x20to\x20set.\n\n\x20If\
24047    \x20true,\x20the\x20default\x20max\x20expansion\x20per\x20group\x20is\
24048    \x201000\x20for\n\x20AssetService.AnalyzeIamPolicy][].\n\n\x20Default\
24049    \x20is\x20false.\n\n\x0f\n\x07\x04\x1a\x03\x03\x02\0\x05\x12\x04\xe4\t\
24050    \x04\x08\n\x0f\n\x07\x04\x1a\x03\x03\x02\0\x01\x12\x04\xe4\t\t\x16\n\x0f\
24051    \n\x07\x04\x1a\x03\x03\x02\0\x03\x12\x04\xe4\t\x19\x1a\n\x0f\n\x07\x04\
24052    \x1a\x03\x03\x02\0\x08\x12\x04\xe4\t\x1bC\n\x12\n\n\x04\x1a\x03\x03\x02\
24053    \0\x08\x9c\x08\0\x12\x04\xe4\t\x1cB\n\x93\x03\n\x06\x04\x1a\x03\x03\x02\
24054    \x01\x12\x04\xef\t\x04C\x1a\x82\x03\x20Optional.\x20If\x20true,\x20the\
24055    \x20access\x20section\x20of\x20result\x20will\x20expand\x20any\x20roles\
24056    \n\x20appearing\x20in\x20IAM\x20policy\x20bindings\x20to\x20include\x20t\
24057    heir\x20permissions.\n\n\x20If\n\x20[IamPolicyAnalysisQuery.access_selec\
24058    tor][google.cloud.asset.v1.IamPolicyAnalysisQuery.access_selector]\n\x20\
24059    is\x20specified,\x20the\x20access\x20section\x20of\x20the\x20result\x20w\
24060    ill\x20be\x20determined\x20by\x20the\n\x20selector,\x20and\x20this\x20fl\
24061    ag\x20is\x20not\x20allowed\x20to\x20set.\n\n\x20Default\x20is\x20false.\
24062    \n\n\x0f\n\x07\x04\x1a\x03\x03\x02\x01\x05\x12\x04\xef\t\x04\x08\n\x0f\n\
24063    \x07\x04\x1a\x03\x03\x02\x01\x01\x12\x04\xef\t\t\x15\n\x0f\n\x07\x04\x1a\
24064    \x03\x03\x02\x01\x03\x12\x04\xef\t\x18\x19\n\x0f\n\x07\x04\x1a\x03\x03\
24065    \x02\x01\x08\x12\x04\xef\t\x1aB\n\x12\n\n\x04\x1a\x03\x03\x02\x01\x08\
24066    \x9c\x08\0\x12\x04\xef\t\x1bA\n\xb0\n\n\x06\x04\x1a\x03\x03\x02\x02\x12\
24067    \x04\x8c\n\x04G\x1a\x9f\n\x20Optional.\x20If\x20true\x20and\n\x20[IamPol\
24068    icyAnalysisQuery.resource_selector][google.cloud.asset.v1.IamPolicyAnaly\
24069    sisQuery.resource_selector]\n\x20is\x20not\x20specified,\x20the\x20resou\
24070    rce\x20section\x20of\x20the\x20result\x20will\x20expand\x20any\n\x20reso\
24071    urce\x20attached\x20to\x20an\x20IAM\x20policy\x20to\x20include\x20resour\
24072    ces\x20lower\x20in\x20the\n\x20resource\x20hierarchy.\n\n\x20For\x20exam\
24073    ple,\x20if\x20the\x20request\x20analyzes\x20for\x20which\x20resources\
24074    \x20user\x20A\x20has\n\x20permission\x20P,\x20and\x20the\x20results\x20i\
24075    nclude\x20an\x20IAM\x20policy\x20with\x20P\x20on\x20a\x20Google\n\x20Clo\
24076    ud\x20folder,\x20the\x20results\x20will\x20also\x20include\x20resources\
24077    \x20in\x20that\x20folder\x20with\n\x20permission\x20P.\n\n\x20If\x20true\
24078    \x20and\n\x20[IamPolicyAnalysisQuery.resource_selector][google.cloud.ass\
24079    et.v1.IamPolicyAnalysisQuery.resource_selector]\n\x20is\x20specified,\
24080    \x20the\x20resource\x20section\x20of\x20the\x20result\x20will\x20expand\
24081    \x20the\n\x20specified\x20resource\x20to\x20include\x20resources\x20lowe\
24082    r\x20in\x20the\x20resource\x20hierarchy.\n\x20Only\x20project\x20or\x20l\
24083    ower\x20resources\x20are\x20supported.\x20Folder\x20and\x20organization\
24084    \n\x20resources\x20cannot\x20be\x20used\x20together\x20with\x20this\x20o\
24085    ption.\n\n\x20For\x20example,\x20if\x20the\x20request\x20analyzes\x20for\
24086    \x20which\x20users\x20have\x20permission\x20P\x20on\n\x20a\x20Google\x20\
24087    Cloud\x20project\x20with\x20this\x20option\x20enabled,\x20the\x20results\
24088    \x20will\x20include\n\x20all\x20users\x20who\x20have\x20permission\x20P\
24089    \x20on\x20that\x20project\x20or\x20any\x20lower\x20resource.\n\n\x20If\
24090    \x20true,\x20the\x20default\x20max\x20expansion\x20per\x20resource\x20is\
24091    \x201000\x20for\n\x20AssetService.AnalyzeIamPolicy][]\x20and\x20100000\
24092    \x20for\n\x20AssetService.AnalyzeIamPolicyLongrunning][].\n\n\x20Default\
24093    \x20is\x20false.\n\n\x0f\n\x07\x04\x1a\x03\x03\x02\x02\x05\x12\x04\x8c\n\
24094    \x04\x08\n\x0f\n\x07\x04\x1a\x03\x03\x02\x02\x01\x12\x04\x8c\n\t\x19\n\
24095    \x0f\n\x07\x04\x1a\x03\x03\x02\x02\x03\x12\x04\x8c\n\x1c\x1d\n\x0f\n\x07\
24096    \x04\x1a\x03\x03\x02\x02\x08\x12\x04\x8c\n\x1eF\n\x12\n\n\x04\x1a\x03\
24097    \x03\x02\x02\x08\x9c\x08\0\x12\x04\x8c\n\x1fE\n\x89\x01\n\x06\x04\x1a\
24098    \x03\x03\x02\x03\x12\x04\x90\n\x04L\x1ay\x20Optional.\x20If\x20true,\x20\
24099    the\x20result\x20will\x20output\x20the\x20relevant\x20parent/child\n\x20\
24100    relationships\x20between\x20resources.\x20Default\x20is\x20false.\n\n\
24101    \x0f\n\x07\x04\x1a\x03\x03\x02\x03\x05\x12\x04\x90\n\x04\x08\n\x0f\n\x07\
24102    \x04\x1a\x03\x03\x02\x03\x01\x12\x04\x90\n\t\x1e\n\x0f\n\x07\x04\x1a\x03\
24103    \x03\x02\x03\x03\x12\x04\x90\n!\"\n\x0f\n\x07\x04\x1a\x03\x03\x02\x03\
24104    \x08\x12\x04\x90\n#K\n\x12\n\n\x04\x1a\x03\x03\x02\x03\x08\x9c\x08\0\x12\
24105    \x04\x90\n$J\n\xba\x01\n\x06\x04\x1a\x03\x03\x02\x04\x12\x04\x95\n\x04I\
24106    \x1a\xa9\x01\x20Optional.\x20If\x20true,\x20the\x20result\x20will\x20out\
24107    put\x20the\x20relevant\x20membership\n\x20relationships\x20between\x20gr\
24108    oups\x20and\x20other\x20groups,\x20and\x20between\x20groups\x20and\n\x20\
24109    principals.\x20Default\x20is\x20false.\n\n\x0f\n\x07\x04\x1a\x03\x03\x02\
24110    \x04\x05\x12\x04\x95\n\x04\x08\n\x0f\n\x07\x04\x1a\x03\x03\x02\x04\x01\
24111    \x12\x04\x95\n\t\x1b\n\x0f\n\x07\x04\x1a\x03\x03\x02\x04\x03\x12\x04\x95\
24112    \n\x1e\x1f\n\x0f\n\x07\x04\x1a\x03\x03\x02\x04\x08\x12\x04\x95\n\x20H\n\
24113    \x12\n\n\x04\x1a\x03\x03\x02\x04\x08\x9c\x08\0\x12\x04\x95\n!G\n\xc5\x0e\
24114    \n\x06\x04\x1a\x03\x03\x02\x05\x12\x06\xba\n\x04\xbb\n1\x1a\xb2\x0e\x20O\
24115    ptional.\x20If\x20true,\x20the\x20response\x20will\x20include\x20access\
24116    \x20analysis\x20from\n\x20identities\x20to\x20resources\x20via\x20servic\
24117    e\x20account\x20impersonation.\x20This\x20is\x20a\x20very\n\x20expensive\
24118    \x20operation,\x20because\x20many\x20derived\x20queries\x20will\x20be\
24119    \x20executed.\x20We\n\x20highly\x20recommend\x20you\x20use\n\x20[AssetSe\
24120    rvice.AnalyzeIamPolicyLongrunning][google.cloud.asset.v1.AssetService.An\
24121    alyzeIamPolicyLongrunning]\n\x20RPC\x20instead.\n\n\x20For\x20example,\
24122    \x20if\x20the\x20request\x20analyzes\x20for\x20which\x20resources\x20use\
24123    r\x20A\x20has\n\x20permission\x20P,\x20and\x20there's\x20an\x20IAM\x20po\
24124    licy\x20states\x20user\x20A\x20has\n\x20iam.serviceAccounts.getAccessTok\
24125    en\x20permission\x20to\x20a\x20service\x20account\x20SA,\n\x20and\x20the\
24126    re's\x20another\x20IAM\x20policy\x20states\x20service\x20account\x20SA\
24127    \x20has\x20permission\x20P\n\x20to\x20a\x20Google\x20Cloud\x20folder\x20\
24128    F,\x20then\x20user\x20A\x20potentially\x20has\x20access\x20to\x20the\n\
24129    \x20Google\x20Cloud\x20folder\x20F.\x20And\x20those\x20advanced\x20analy\
24130    sis\x20results\x20will\x20be\n\x20included\x20in\n\x20[AnalyzeIamPolicyR\
24131    esponse.service_account_impersonation_analysis][google.cloud.asset.v1.An\
24132    alyzeIamPolicyResponse.service_account_impersonation_analysis].\n\n\x20A\
24133    nother\x20example,\x20if\x20the\x20request\x20analyzes\x20for\x20who\x20\
24134    has\n\x20permission\x20P\x20to\x20a\x20Google\x20Cloud\x20folder\x20F,\
24135    \x20and\x20there's\x20an\x20IAM\x20policy\x20states\n\x20user\x20A\x20ha\
24136    s\x20iam.serviceAccounts.actAs\x20permission\x20to\x20a\x20service\x20ac\
24137    count\x20SA,\n\x20and\x20there's\x20another\x20IAM\x20policy\x20states\
24138    \x20service\x20account\x20SA\x20has\x20permission\x20P\n\x20to\x20the\
24139    \x20Google\x20Cloud\x20folder\x20F,\x20then\x20user\x20A\x20potentially\
24140    \x20has\x20access\x20to\x20the\n\x20Google\x20Cloud\x20folder\x20F.\x20A\
24141    nd\x20those\x20advanced\x20analysis\x20results\x20will\x20be\n\x20includ\
24142    ed\x20in\n\x20[AnalyzeIamPolicyResponse.service_account_impersonation_an\
24143    alysis][google.cloud.asset.v1.AnalyzeIamPolicyResponse.service_account_i\
24144    mpersonation_analysis].\n\n\x20Only\x20the\x20following\x20permissions\
24145    \x20are\x20considered\x20in\x20this\x20analysis:\n\n\x20*\x20`iam.servic\
24146    eAccounts.actAs`\n\x20*\x20`iam.serviceAccounts.signBlob`\n\x20*\x20`iam\
24147    .serviceAccounts.signJwt`\n\x20*\x20`iam.serviceAccounts.getAccessToken`\
24148    \n\x20*\x20`iam.serviceAccounts.getOpenIdToken`\n\x20*\x20`iam.serviceAc\
24149    counts.implicitDelegation`\n\n\x20Default\x20is\x20false.\n\n\x0f\n\x07\
24150    \x04\x1a\x03\x03\x02\x05\x05\x12\x04\xba\n\x04\x08\n\x0f\n\x07\x04\x1a\
24151    \x03\x03\x02\x05\x01\x12\x04\xba\n\t.\n\x0f\n\x07\x04\x1a\x03\x03\x02\
24152    \x05\x03\x12\x04\xba\n12\n\x0f\n\x07\x04\x1a\x03\x03\x02\x05\x08\x12\x04\
24153    \xbb\n\x080\n\x12\n\n\x04\x1a\x03\x03\x02\x05\x08\x9c\x08\0\x12\x04\xbb\
24154    \n\t/\n-\n\x04\x04\x1a\x03\x04\x12\x06\xbf\n\x02\xc7\n\x03\x1a\x1d\x20Th\
24155    e\x20IAM\x20conditions\x20context.\n\n\r\n\x05\x04\x1a\x03\x04\x01\x12\
24156    \x04\xbf\n\n\x1a\n4\n\x06\x04\x1a\x03\x04\x08\0\x12\x06\xc1\n\x04\xc6\n\
24157    \x05\x1a\"\x20The\x20IAM\x20conditions\x20time\x20context.\n\n\x0f\n\x07\
24158    \x04\x1a\x03\x04\x08\0\x01\x12\x04\xc1\n\n\x15\n\xc9\x01\n\x06\x04\x1a\
24159    \x03\x04\x02\0\x12\x04\xc5\n\x060\x1a\xb8\x01\x20The\x20hypothetical\x20\
24160    access\x20timestamp\x20to\x20evaluate\x20IAM\x20conditions.\x20Note\x20t\
24161    hat\n\x20this\x20value\x20must\x20not\x20be\x20earlier\x20than\x20the\
24162    \x20current\x20time;\x20otherwise,\x20an\n\x20INVALID_ARGUMENT\x20error\
24163    \x20will\x20be\x20returned.\n\n\x0f\n\x07\x04\x1a\x03\x04\x02\0\x06\x12\
24164    \x04\xc5\n\x06\x1f\n\x0f\n\x07\x04\x1a\x03\x04\x02\0\x01\x12\x04\xc5\n\
24165    \x20+\n\x0f\n\x07\x04\x1a\x03\x04\x02\0\x03\x12\x04\xc5\n./\n\xaa\x05\n\
24166    \x04\x04\x1a\x02\0\x12\x04\xd5\n\x02<\x1a\x9b\x05\x20Required.\x20The\
24167    \x20relative\x20name\x20of\x20the\x20root\x20asset.\x20Only\x20resources\
24168    \x20and\x20IAM\n\x20policies\x20within\x20the\x20scope\x20will\x20be\x20\
24169    analyzed.\n\n\x20This\x20can\x20only\x20be\x20an\x20organization\x20numb\
24170    er\x20(such\x20as\x20\"organizations/123\"),\x20a\n\x20folder\x20number\
24171    \x20(such\x20as\x20\"folders/123\"),\x20a\x20project\x20ID\x20(such\x20a\
24172    s\n\x20\"projects/my-project-id\"),\x20or\x20a\x20project\x20number\x20(\
24173    such\x20as\x20\"projects/12345\").\n\n\x20To\x20know\x20how\x20to\x20get\
24174    \x20organization\x20id,\x20visit\x20[here\n\x20](https://cloud.google.co\
24175    m/resource-manager/docs/creating-managing-organization#retrieving_your_o\
24176    rganization_id).\n\n\x20To\x20know\x20how\x20to\x20get\x20folder\x20or\
24177    \x20project\x20id,\x20visit\x20[here\n\x20](https://cloud.google.com/res\
24178    ource-manager/docs/creating-managing-folders#viewing_or_listing_folders_\
24179    and_projects).\n\n\r\n\x05\x04\x1a\x02\0\x05\x12\x04\xd5\n\x02\x08\n\r\n\
24180    \x05\x04\x1a\x02\0\x01\x12\x04\xd5\n\t\x0e\n\r\n\x05\x04\x1a\x02\0\x03\
24181    \x12\x04\xd5\n\x11\x12\n\r\n\x05\x04\x1a\x02\0\x08\x12\x04\xd5\n\x13;\n\
24182    \x10\n\x08\x04\x1a\x02\0\x08\x9c\x08\0\x12\x04\xd5\n\x14:\n>\n\x04\x04\
24183    \x1a\x02\x01\x12\x06\xd8\n\x02\xd9\n/\x1a.\x20Optional.\x20Specifies\x20\
24184    a\x20resource\x20for\x20analysis.\n\n\r\n\x05\x04\x1a\x02\x01\x06\x12\
24185    \x04\xd8\n\x02\x12\n\r\n\x05\x04\x1a\x02\x01\x01\x12\x04\xd8\n\x13$\n\r\
24186    \n\x05\x04\x1a\x02\x01\x03\x12\x04\xd8\n'(\n\r\n\x05\x04\x1a\x02\x01\x08\
24187    \x12\x04\xd9\n\x06.\n\x10\n\x08\x04\x1a\x02\x01\x08\x9c\x08\0\x12\x04\
24188    \xd9\n\x07-\n?\n\x04\x04\x1a\x02\x02\x12\x06\xdc\n\x02\xdd\n/\x1a/\x20Op\
24189    tional.\x20Specifies\x20an\x20identity\x20for\x20analysis.\n\n\r\n\x05\
24190    \x04\x1a\x02\x02\x06\x12\x04\xdc\n\x02\x12\n\r\n\x05\x04\x1a\x02\x02\x01\
24191    \x12\x04\xdc\n\x13$\n\r\n\x05\x04\x1a\x02\x02\x03\x12\x04\xdc\n'(\n\r\n\
24192    \x05\x04\x1a\x02\x02\x08\x12\x04\xdd\n\x06.\n\x10\n\x08\x04\x1a\x02\x02\
24193    \x08\x9c\x08\0\x12\x04\xdd\n\x07-\nX\n\x04\x04\x1a\x02\x03\x12\x04\xe0\n\
24194    \x02N\x1aJ\x20Optional.\x20Specifies\x20roles\x20or\x20permissions\x20fo\
24195    r\x20analysis.\x20This\x20is\x20optional.\n\n\r\n\x05\x04\x1a\x02\x03\
24196    \x06\x12\x04\xe0\n\x02\x10\n\r\n\x05\x04\x1a\x02\x03\x01\x12\x04\xe0\n\
24197    \x11\x20\n\r\n\x05\x04\x1a\x02\x03\x03\x12\x04\xe0\n#$\n\r\n\x05\x04\x1a\
24198    \x02\x03\x08\x12\x04\xe0\n%M\n\x10\n\x08\x04\x1a\x02\x03\x08\x9c\x08\0\
24199    \x12\x04\xe0\n&L\n,\n\x04\x04\x1a\x02\x04\x12\x04\xe3\n\x02?\x1a\x1e\x20\
24200    Optional.\x20The\x20query\x20options.\n\n\r\n\x05\x04\x1a\x02\x04\x06\
24201    \x12\x04\xe3\n\x02\t\n\r\n\x05\x04\x1a\x02\x04\x01\x12\x04\xe3\n\n\x11\n\
24202    \r\n\x05\x04\x1a\x02\x04\x03\x12\x04\xe3\n\x14\x15\n\r\n\x05\x04\x1a\x02\
24203    \x04\x08\x12\x04\xe3\n\x16>\n\x10\n\x08\x04\x1a\x02\x04\x08\x9c\x08\0\
24204    \x12\x04\xe3\n\x17=\nS\n\x04\x04\x1a\x02\x05\x12\x06\xe6\n\x02\xe7\n/\
24205    \x1aC\x20Optional.\x20The\x20hypothetical\x20context\x20for\x20IAM\x20co\
24206    nditions\x20evaluation.\n\n\r\n\x05\x04\x1a\x02\x05\x06\x12\x04\xe6\n\
24207    \x02\x12\n\r\n\x05\x04\x1a\x02\x05\x01\x12\x04\xe6\n\x13$\n\r\n\x05\x04\
24208    \x1a\x02\x05\x03\x12\x04\xe6\n'(\n\r\n\x05\x04\x1a\x02\x05\x08\x12\x04\
24209    \xe7\n\x06.\n\x10\n\x08\x04\x1a\x02\x05\x08\x9c\x08\0\x12\x04\xe7\n\x07-\
24210    \n|\n\x02\x04\x1b\x12\x06\xec\n\0\x90\x0b\x01\x1an\x20A\x20request\x20me\
24211    ssage\x20for\n\x20[AssetService.AnalyzeIamPolicy][google.cloud.asset.v1.\
24212    AssetService.AnalyzeIamPolicy].\n\n\x0b\n\x03\x04\x1b\x01\x12\x04\xec\n\
24213    \x08\x1f\n.\n\x04\x04\x1b\x02\0\x12\x06\xee\n\x02\xef\n/\x1a\x1e\x20Requ\
24214    ired.\x20The\x20request\x20query.\n\n\r\n\x05\x04\x1b\x02\0\x06\x12\x04\
24215    \xee\n\x02\x18\n\r\n\x05\x04\x1b\x02\0\x01\x12\x04\xee\n\x19'\n\r\n\x05\
24216    \x04\x1b\x02\0\x03\x12\x04\xee\n*+\n\r\n\x05\x04\x1b\x02\0\x08\x12\x04\
24217    \xef\n\x06.\n\x10\n\x08\x04\x1b\x02\0\x08\x9c\x08\0\x12\x04\xef\n\x07-\n\
24218    \xa4\x06\n\x04\x04\x1b\x02\x01\x12\x04\x81\x0b\x02K\x1a\x95\x06\x20Optio\
24219    nal.\x20The\x20name\x20of\x20a\x20saved\x20query,\x20which\x20must\x20be\
24220    \x20in\x20the\x20format\x20of:\n\n\x20*\x20projects/project_number/saved\
24221    Queries/saved_query_id\n\x20*\x20folders/folder_number/savedQueries/save\
24222    d_query_id\n\x20*\x20organizations/organization_number/savedQueries/save\
24223    d_query_id\n\n\x20If\x20both\x20`analysis_query`\x20and\x20`saved_analys\
24224    is_query`\x20are\x20provided,\x20they\n\x20will\x20be\x20merged\x20toget\
24225    her\x20with\x20the\x20`saved_analysis_query`\x20as\x20base\x20and\n\x20t\
24226    he\x20`analysis_query`\x20as\x20overrides.\x20For\x20more\x20details\x20\
24227    of\x20the\x20merge\x20behavior,\n\x20please\x20refer\x20to\x20the\n\x20[\
24228    MergeFrom](https://developers.google.com/protocol-buffers/docs/reference\
24229    /cpp/google.protobuf.message#Message.MergeFrom.details)\n\x20page.\n\n\
24230    \x20Note\x20that\x20you\x20cannot\x20override\x20primitive\x20fields\x20\
24231    with\x20default\x20value,\x20such\x20as\n\x200\x20or\x20empty\x20string,\
24232    \x20etc.,\x20because\x20we\x20use\x20proto3,\x20which\x20doesn't\x20supp\
24233    ort\x20field\n\x20presence\x20yet.\n\n\r\n\x05\x04\x1b\x02\x01\x05\x12\
24234    \x04\x81\x0b\x02\x08\n\r\n\x05\x04\x1b\x02\x01\x01\x12\x04\x81\x0b\t\x1d\
24235    \n\r\n\x05\x04\x1b\x02\x01\x03\x12\x04\x81\x0b\x20!\n\r\n\x05\x04\x1b\
24236    \x02\x01\x08\x12\x04\x81\x0b\"J\n\x10\n\x08\x04\x1b\x02\x01\x08\x9c\x08\
24237    \0\x12\x04\x81\x0b#I\n\x9e\x04\n\x04\x04\x1b\x02\x02\x12\x06\x8e\x0b\x02\
24238    \x8f\x0b/\x1a\x8d\x04\x20Optional.\x20Amount\x20of\x20time\x20executable\
24239    \x20has\x20to\x20complete.\x20\x20See\x20JSON\n\x20representation\x20of\
24240    \n\x20[Duration](https://developers.google.com/protocol-buffers/docs/pro\
24241    to3#json).\n\n\x20If\x20this\x20field\x20is\x20set\x20with\x20a\x20value\
24242    \x20less\x20than\x20the\x20RPC\x20deadline,\x20and\x20the\n\x20execution\
24243    \x20of\x20your\x20query\x20hasn't\x20finished\x20in\x20the\x20specified\
24244    \n\x20execution\x20timeout,\x20\x20you\x20will\x20get\x20a\x20response\
24245    \x20with\x20partial\x20result.\n\x20Otherwise,\x20your\x20query's\x20exe\
24246    cution\x20will\x20continue\x20until\x20the\x20RPC\x20deadline.\n\x20If\
24247    \x20it's\x20not\x20finished\x20until\x20then,\x20you\x20will\x20get\x20a\
24248    \x20\x20DEADLINE_EXCEEDED\x20error.\n\n\x20Default\x20is\x20empty.\n\n\r\
24249    \n\x05\x04\x1b\x02\x02\x06\x12\x04\x8e\x0b\x02\x1a\n\r\n\x05\x04\x1b\x02\
24250    \x02\x01\x12\x04\x8e\x0b\x1b,\n\r\n\x05\x04\x1b\x02\x02\x03\x12\x04\x8e\
24251    \x0b/0\n\r\n\x05\x04\x1b\x02\x02\x08\x12\x04\x8f\x0b\x06.\n\x10\n\x08\
24252    \x04\x1b\x02\x02\x08\x9c\x08\0\x12\x04\x8f\x0b\x07-\n}\n\x02\x04\x1c\x12\
24253    \x06\x94\x0b\0\xb6\x0b\x01\x1ao\x20A\x20response\x20message\x20for\n\x20\
24254    [AssetService.AnalyzeIamPolicy][google.cloud.asset.v1.AssetService.Analy\
24255    zeIamPolicy].\n\n\x0b\n\x03\x04\x1c\x01\x12\x04\x94\x0b\x08\x20\nE\n\x04\
24256    \x04\x1c\x03\0\x12\x06\x96\x0b\x02\xa6\x0b\x03\x1a5\x20An\x20analysis\
24257    \x20message\x20to\x20group\x20the\x20query\x20and\x20results.\n\n\r\n\
24258    \x05\x04\x1c\x03\0\x01\x12\x04\x96\x0b\n\x1b\n%\n\x06\x04\x1c\x03\0\x02\
24259    \0\x12\x04\x98\x0b\x04.\x1a\x15\x20The\x20analysis\x20query.\n\n\x0f\n\
24260    \x07\x04\x1c\x03\0\x02\0\x06\x12\x04\x98\x0b\x04\x1a\n\x0f\n\x07\x04\x1c\
24261    \x03\0\x02\0\x01\x12\x04\x98\x0b\x1b)\n\x0f\n\x07\x04\x1c\x03\0\x02\0\
24262    \x03\x12\x04\x98\x0b,-\n\xa8\x01\n\x06\x04\x1c\x03\0\x02\x01\x12\x04\x9d\
24263    \x0b\x04:\x1a\x97\x01\x20A\x20list\x20of\n\x20[IamPolicyAnalysisResult][\
24264    google.cloud.asset.v1.IamPolicyAnalysisResult]\n\x20that\x20matches\x20t\
24265    he\x20analysis\x20query,\x20or\x20empty\x20if\x20no\x20result\x20is\x20f\
24266    ound.\n\n\x0f\n\x07\x04\x1c\x03\0\x02\x01\x04\x12\x04\x9d\x0b\x04\x0c\n\
24267    \x0f\n\x07\x04\x1c\x03\0\x02\x01\x06\x12\x04\x9d\x0b\r$\n\x0f\n\x07\x04\
24268    \x1c\x03\0\x02\x01\x01\x12\x04\x9d\x0b%5\n\x0f\n\x07\x04\x1c\x03\0\x02\
24269    \x01\x03\x12\x04\x9d\x0b89\n\xce\x01\n\x06\x04\x1c\x03\0\x02\x02\x12\x04\
24270    \xa2\x0b\x04\x1c\x1a\xbd\x01\x20Represents\x20whether\x20all\x20entries\
24271    \x20in\x20the\n\x20[analysis_results][google.cloud.asset.v1.AnalyzeIamPo\
24272    licyResponse.IamPolicyAnalysis.analysis_results]\n\x20have\x20been\x20fu\
24273    lly\x20explored\x20to\x20answer\x20the\x20query.\n\n\x0f\n\x07\x04\x1c\
24274    \x03\0\x02\x02\x05\x12\x04\xa2\x0b\x04\x08\n\x0f\n\x07\x04\x1c\x03\0\x02\
24275    \x02\x01\x12\x04\xa2\x0b\t\x17\n\x0f\n\x07\x04\x1c\x03\0\x02\x02\x03\x12\
24276    \x04\xa2\x0b\x1a\x1b\nS\n\x06\x04\x1c\x03\0\x02\x03\x12\x04\xa5\x0b\x04<\
24277    \x1aC\x20A\x20list\x20of\x20non-critical\x20errors\x20happened\x20during\
24278    \x20the\x20query\x20handling.\n\n\x0f\n\x07\x04\x1c\x03\0\x02\x03\x04\
24279    \x12\x04\xa5\x0b\x04\x0c\n\x0f\n\x07\x04\x1c\x03\0\x02\x03\x06\x12\x04\
24280    \xa5\x0b\r#\n\x0f\n\x07\x04\x1c\x03\0\x02\x03\x01\x12\x04\xa5\x0b$7\n\
24281    \x0f\n\x07\x04\x1c\x03\0\x02\x03\x03\x12\x04\xa5\x0b:;\nD\n\x04\x04\x1c\
24282    \x02\0\x12\x04\xa9\x0b\x02&\x1a6\x20The\x20main\x20analysis\x20that\x20m\
24283    atches\x20the\x20original\x20request.\n\n\r\n\x05\x04\x1c\x02\0\x06\x12\
24284    \x04\xa9\x0b\x02\x13\n\r\n\x05\x04\x1c\x02\0\x01\x12\x04\xa9\x0b\x14!\n\
24285    \r\n\x05\x04\x1c\x02\0\x03\x12\x04\xa9\x0b$%\n\x8d\x01\n\x04\x04\x1c\x02\
24286    \x01\x12\x04\xae\x0b\x02H\x1a\x7f\x20The\x20service\x20account\x20impers\
24287    onation\x20analysis\x20if\n\x20[AnalyzeIamPolicyRequest.analyze_service_\
24288    account_impersonation][]\x20is\n\x20enabled.\n\n\r\n\x05\x04\x1c\x02\x01\
24289    \x04\x12\x04\xae\x0b\x02\n\n\r\n\x05\x04\x1c\x02\x01\x06\x12\x04\xae\x0b\
24290    \x0b\x1c\n\r\n\x05\x04\x1c\x02\x01\x01\x12\x04\xae\x0b\x1dC\n\r\n\x05\
24291    \x04\x1c\x02\x01\x03\x12\x04\xae\x0bFG\n\xc9\x02\n\x04\x04\x1c\x02\x02\
24292    \x12\x04\xb5\x0b\x02\x1a\x1a\xba\x02\x20Represents\x20whether\x20all\x20\
24293    entries\x20in\x20the\n\x20[main_analysis][google.cloud.asset.v1.AnalyzeI\
24294    amPolicyResponse.main_analysis]\n\x20and\n\x20[service_account_impersona\
24295    tion_analysis][google.cloud.asset.v1.AnalyzeIamPolicyResponse.service_ac\
24296    count_impersonation_analysis]\n\x20have\x20been\x20fully\x20explored\x20\
24297    to\x20answer\x20the\x20query\x20in\x20the\x20request.\n\n\r\n\x05\x04\
24298    \x1c\x02\x02\x05\x12\x04\xb5\x0b\x02\x06\n\r\n\x05\x04\x1c\x02\x02\x01\
24299    \x12\x04\xb5\x0b\x07\x15\n\r\n\x05\x04\x1c\x02\x02\x03\x12\x04\xb5\x0b\
24300    \x18\x19\nP\n\x02\x04\x1d\x12\x06\xb9\x0b\0\x84\x0c\x01\x1aB\x20Output\
24301    \x20configuration\x20for\x20export\x20IAM\x20policy\x20analysis\x20desti\
24302    nation.\n\n\x0b\n\x03\x04\x1d\x01\x12\x04\xb9\x0b\x08%\n+\n\x04\x04\x1d\
24303    \x03\0\x12\x06\xbb\x0b\x02\xc6\x0b\x03\x1a\x1b\x20A\x20Cloud\x20Storage\
24304    \x20location.\n\n\r\n\x05\x04\x1d\x03\0\x01\x12\x04\xbb\x0b\n\x18\n\xce\
24305    \x03\n\x06\x04\x1d\x03\0\x02\0\x12\x04\xc5\x0b\x04<\x1a\xbd\x03\x20Requi\
24306    red.\x20The\x20URI\x20of\x20the\x20Cloud\x20Storage\x20object.\x20It's\
24307    \x20the\x20same\x20URI\x20that\x20is\n\x20used\x20by\x20gsutil.\x20Examp\
24308    le:\x20\"gs://bucket_name/object_name\".\x20See\x20[Viewing\x20and\n\x20\
24309    Editing\x20Object\n\x20Metadata](https://cloud.google.com/storage/docs/v\
24310    iewing-editing-metadata)\n\x20for\x20more\x20information.\n\n\x20If\x20t\
24311    he\x20specified\x20Cloud\x20Storage\x20object\x20already\x20exists\x20an\
24312    d\x20there\x20is\x20no\n\x20[hold](https://cloud.google.com/storage/docs\
24313    /object-holds),\x20it\x20will\x20be\n\x20overwritten\x20with\x20the\x20a\
24314    nalysis\x20result.\n\n\x0f\n\x07\x04\x1d\x03\0\x02\0\x05\x12\x04\xc5\x0b\
24315    \x04\n\n\x0f\n\x07\x04\x1d\x03\0\x02\0\x01\x12\x04\xc5\x0b\x0b\x0e\n\x0f\
24316    \n\x07\x04\x1d\x03\0\x02\0\x03\x12\x04\xc5\x0b\x11\x12\n\x0f\n\x07\x04\
24317    \x1d\x03\0\x02\0\x08\x12\x04\xc5\x0b\x13;\n\x12\n\n\x04\x1d\x03\0\x02\0\
24318    \x08\x9c\x08\0\x12\x04\xc5\x0b\x14:\n)\n\x04\x04\x1d\x03\x01\x12\x06\xc9\
24319    \x0b\x02\xfa\x0b\x03\x1a\x19\x20A\x20BigQuery\x20destination.\n\n\r\n\
24320    \x05\x04\x1d\x03\x01\x01\x12\x04\xc9\x0b\n\x1d\n\x88\x02\n\x06\x04\x1d\
24321    \x03\x01\x04\0\x12\x06\xce\x0b\x04\xd7\x0b\x05\x1a\xf5\x01\x20This\x20en\
24322    um\x20determines\x20the\x20partition\x20key\x20column\x20for\x20the\x20b\
24323    igquery\x20tables.\n\x20Partitioning\x20can\x20improve\x20query\x20perfo\
24324    rmance\x20and\x20reduce\x20query\x20cost\x20by\n\x20filtering\x20partiti\
24325    ons.\x20Refer\x20to\n\x20https://cloud.google.com/bigquery/docs/partitio\
24326    ned-tables\x20for\x20details.\n\n\x0f\n\x07\x04\x1d\x03\x01\x04\0\x01\
24327    \x12\x04\xce\x0b\t\x15\n^\n\x08\x04\x1d\x03\x01\x04\0\x02\0\x12\x04\xd1\
24328    \x0b\x06$\x1aL\x20Unspecified\x20partition\x20key.\x20Tables\x20won't\
24329    \x20be\x20partitioned\x20using\x20this\n\x20option.\n\n\x11\n\t\x04\x1d\
24330    \x03\x01\x04\0\x02\0\x01\x12\x04\xd1\x0b\x06\x1f\n\x11\n\t\x04\x1d\x03\
24331    \x01\x04\0\x02\0\x02\x12\x04\xd1\x0b\"#\n\xe4\x01\n\x08\x04\x1d\x03\x01\
24332    \x04\0\x02\x01\x12\x04\xd6\x0b\x06\x17\x1a\xd1\x01\x20The\x20time\x20whe\
24333    n\x20the\x20request\x20is\x20received.\x20If\x20specified\x20as\x20parti\
24334    tion\x20key,\n\x20the\x20result\x20table(s)\x20is\x20partitoned\x20by\
24335    \x20the\x20RequestTime\x20column,\x20an\n\x20additional\x20timestamp\x20\
24336    column\x20representing\x20when\x20the\x20request\x20was\x20received.\n\n\
24337    \x11\n\t\x04\x1d\x03\x01\x04\0\x02\x01\x01\x12\x04\xd6\x0b\x06\x12\n\x11\
24338    \n\t\x04\x1d\x03\x01\x04\0\x02\x01\x02\x12\x04\xd6\x0b\x15\x16\n\xf0\x01\
24339    \n\x06\x04\x1d\x03\x01\x02\0\x12\x04\xdd\x0b\x04@\x1a\xdf\x01\x20Require\
24340    d.\x20The\x20BigQuery\x20dataset\x20in\x20format\n\x20\"projects/project\
24341    Id/datasets/datasetId\",\x20to\x20which\x20the\x20analysis\x20results\n\
24342    \x20should\x20be\x20exported.\x20If\x20this\x20dataset\x20does\x20not\
24343    \x20exist,\x20the\x20export\x20call\x20will\n\x20return\x20an\x20INVALID\
24344    _ARGUMENT\x20error.\n\n\x0f\n\x07\x04\x1d\x03\x01\x02\0\x05\x12\x04\xdd\
24345    \x0b\x04\n\n\x0f\n\x07\x04\x1d\x03\x01\x02\0\x01\x12\x04\xdd\x0b\x0b\x12\
24346    \n\x0f\n\x07\x04\x1d\x03\x01\x02\0\x03\x12\x04\xdd\x0b\x15\x16\n\x0f\n\
24347    \x07\x04\x1d\x03\x01\x02\0\x08\x12\x04\xdd\x0b\x17?\n\x12\n\n\x04\x1d\
24348    \x03\x01\x02\0\x08\x9c\x08\0\x12\x04\xdd\x0b\x18>\n\xe1\x03\n\x06\x04\
24349    \x1d\x03\x01\x02\x01\x12\x04\xe7\x0b\x04E\x1a\xd0\x03\x20Required.\x20Th\
24350    e\x20prefix\x20of\x20the\x20BigQuery\x20tables\x20to\x20which\x20the\x20\
24351    analysis\x20results\n\x20will\x20be\x20written.\x20Tables\x20will\x20be\
24352    \x20created\x20based\x20on\x20this\x20table_prefix\x20if\x20not\n\x20exi\
24353    st:\n\x20*\x20<table_prefix>_analysis\x20table\x20will\x20contain\x20exp\
24354    ort\x20operation's\x20metadata.\n\x20*\x20<table_prefix>_analysis_result\
24355    \x20will\x20contain\x20all\x20the\n\x20\x20\x20[IamPolicyAnalysisResult]\
24356    [google.cloud.asset.v1.IamPolicyAnalysisResult].\n\x20When\x20[partition\
24357    _key]\x20is\x20specified,\x20both\x20tables\x20will\x20be\x20partitioned\
24358    \x20based\n\x20on\x20the\x20[partition_key].\n\n\x0f\n\x07\x04\x1d\x03\
24359    \x01\x02\x01\x05\x12\x04\xe7\x0b\x04\n\n\x0f\n\x07\x04\x1d\x03\x01\x02\
24360    \x01\x01\x12\x04\xe7\x0b\x0b\x17\n\x0f\n\x07\x04\x1d\x03\x01\x02\x01\x03\
24361    \x12\x04\xe7\x0b\x1a\x1b\n\x0f\n\x07\x04\x1d\x03\x01\x02\x01\x08\x12\x04\
24362    \xe7\x0b\x1cD\n\x12\n\n\x04\x1d\x03\x01\x02\x01\x08\x9c\x08\0\x12\x04\
24363    \xe7\x0b\x1dC\nC\n\x06\x04\x1d\x03\x01\x02\x02\x12\x04\xea\x0b\x04#\x1a3\
24364    \x20The\x20partition\x20key\x20for\x20BigQuery\x20partitioned\x20table.\
24365    \n\n\x0f\n\x07\x04\x1d\x03\x01\x02\x02\x06\x12\x04\xea\x0b\x04\x10\n\x0f\
24366    \n\x07\x04\x1d\x03\x01\x02\x02\x01\x12\x04\xea\x0b\x11\x1e\n\x0f\n\x07\
24367    \x04\x1d\x03\x01\x02\x02\x03\x12\x04\xea\x0b!\"\n\xee\x05\n\x06\x04\x1d\
24368    \x03\x01\x02\x03\x12\x04\xf9\x0b\x04J\x1a\xdd\x05\x20Optional.\x20Specif\
24369    ies\x20the\x20action\x20that\x20occurs\x20if\x20the\x20destination\x20ta\
24370    ble\x20or\n\x20partition\x20already\x20exists.\x20The\x20following\x20va\
24371    lues\x20are\x20supported:\n\n\x20*\x20WRITE_TRUNCATE:\x20If\x20the\x20ta\
24372    ble\x20or\x20partition\x20already\x20exists,\x20BigQuery\n\x20overwrites\
24373    \x20the\x20entire\x20table\x20or\x20all\x20the\x20partitions\x20data.\n\
24374    \x20*\x20WRITE_APPEND:\x20If\x20the\x20table\x20or\x20partition\x20alrea\
24375    dy\x20exists,\x20BigQuery\n\x20appends\x20the\x20data\x20to\x20the\x20ta\
24376    ble\x20or\x20the\x20latest\x20partition.\n\x20*\x20WRITE_EMPTY:\x20If\
24377    \x20the\x20table\x20already\x20exists\x20and\x20contains\x20data,\x20an\
24378    \x20error\x20is\n\x20returned.\n\n\x20The\x20default\x20value\x20is\x20W\
24379    RITE_APPEND.\x20Each\x20action\x20is\x20atomic\x20and\x20only\x20occurs\
24380    \n\x20if\x20BigQuery\x20is\x20able\x20to\x20complete\x20the\x20job\x20su\
24381    ccessfully.\x20Details\x20are\x20at\n\x20https://cloud.google.com/bigque\
24382    ry/docs/loading-data-local#appending_to_or_overwriting_a_table_using_a_l\
24383    ocal_file.\n\n\x0f\n\x07\x04\x1d\x03\x01\x02\x03\x05\x12\x04\xf9\x0b\x04\
24384    \n\n\x0f\n\x07\x04\x1d\x03\x01\x02\x03\x01\x12\x04\xf9\x0b\x0b\x1c\n\x0f\
24385    \n\x07\x04\x1d\x03\x01\x02\x03\x03\x12\x04\xf9\x0b\x1f\x20\n\x0f\n\x07\
24386    \x04\x1d\x03\x01\x02\x03\x08\x12\x04\xf9\x0b!I\n\x12\n\n\x04\x1d\x03\x01\
24387    \x02\x03\x08\x9c\x08\0\x12\x04\xf9\x0b\"H\n9\n\x04\x04\x1d\x08\0\x12\x06\
24388    \xfd\x0b\x02\x83\x0c\x03\x1a)\x20IAM\x20policy\x20analysis\x20export\x20\
24389    destination.\n\n\r\n\x05\x04\x1d\x08\0\x01\x12\x04\xfd\x0b\x08\x13\n-\n\
24390    \x04\x04\x1d\x02\0\x12\x04\xff\x0b\x04'\x1a\x1f\x20Destination\x20on\x20\
24391    Cloud\x20Storage.\n\n\r\n\x05\x04\x1d\x02\0\x06\x12\x04\xff\x0b\x04\x12\
24392    \n\r\n\x05\x04\x1d\x02\0\x01\x12\x04\xff\x0b\x13\"\n\r\n\x05\x04\x1d\x02\
24393    \0\x03\x12\x04\xff\x0b%&\n(\n\x04\x04\x1d\x02\x01\x12\x04\x82\x0c\x041\
24394    \x1a\x1a\x20Destination\x20on\x20BigQuery.\n\n\r\n\x05\x04\x1d\x02\x01\
24395    \x06\x12\x04\x82\x0c\x04\x17\n\r\n\x05\x04\x1d\x02\x01\x01\x12\x04\x82\
24396    \x0c\x18,\n\r\n\x05\x04\x1d\x02\x01\x03\x12\x04\x82\x0c/0\n\x93\x01\n\
24397    \x02\x04\x1e\x12\x06\x88\x0c\0\xa3\x0c\x01\x1a\x84\x01\x20A\x20request\
24398    \x20message\x20for\n\x20[AssetService.AnalyzeIamPolicyLongrunning][googl\
24399    e.cloud.asset.v1.AssetService.AnalyzeIamPolicyLongrunning].\n\n\x0b\n\
24400    \x03\x04\x1e\x01\x12\x04\x88\x0c\x08*\n.\n\x04\x04\x1e\x02\0\x12\x06\x8a\
24401    \x0c\x02\x8b\x0c/\x1a\x1e\x20Required.\x20The\x20request\x20query.\n\n\r\
24402    \n\x05\x04\x1e\x02\0\x06\x12\x04\x8a\x0c\x02\x18\n\r\n\x05\x04\x1e\x02\0\
24403    \x01\x12\x04\x8a\x0c\x19'\n\r\n\x05\x04\x1e\x02\0\x03\x12\x04\x8a\x0c*+\
24404    \n\r\n\x05\x04\x1e\x02\0\x08\x12\x04\x8b\x0c\x06.\n\x10\n\x08\x04\x1e\
24405    \x02\0\x08\x9c\x08\0\x12\x04\x8b\x0c\x07-\n\xa3\x06\n\x04\x04\x1e\x02\
24406    \x01\x12\x04\x9d\x0c\x02K\x1a\x94\x06\x20Optional.\x20The\x20name\x20of\
24407    \x20a\x20saved\x20query,\x20which\x20must\x20be\x20in\x20the\x20format\
24408    \x20of:\n\n\x20*\x20projects/project_number/savedQueries/saved_query_id\
24409    \n\x20*\x20folders/folder_number/savedQueries/saved_query_id\n\x20*\x20o\
24410    rganizations/organization_number/savedQueries/saved_query_id\n\n\x20If\
24411    \x20both\x20`analysis_query`\x20and\x20`saved_analysis_query`\x20are\x20\
24412    provided,\x20they\n\x20will\x20be\x20merged\x20together\x20with\x20the\
24413    \x20`saved_analysis_query`\x20as\x20base\x20and\n\x20the\x20`analysis_qu\
24414    ery`\x20as\x20overrides.\x20For\x20more\x20details\x20of\x20the\x20merge\
24415    \x20behavior,\n\x20please\x20refer\x20to\x20the\n\x20[MergeFrom](https:/\
24416    /developers.google.com/protocol-buffers/docs/reference/cpp/google.protob\
24417    uf.message#Message.MergeFrom.details)\n\x20doc.\n\n\x20Note\x20that\x20y\
24418    ou\x20cannot\x20override\x20primitive\x20fields\x20with\x20default\x20va\
24419    lue,\x20such\x20as\n\x200\x20or\x20empty\x20string,\x20etc.,\x20because\
24420    \x20we\x20use\x20proto3,\x20which\x20doesn't\x20support\x20field\n\x20pr\
24421    esence\x20yet.\n\n\r\n\x05\x04\x1e\x02\x01\x05\x12\x04\x9d\x0c\x02\x08\n\
24422    \r\n\x05\x04\x1e\x02\x01\x01\x12\x04\x9d\x0c\t\x1d\n\r\n\x05\x04\x1e\x02\
24423    \x01\x03\x12\x04\x9d\x0c\x20!\n\r\n\x05\x04\x1e\x02\x01\x08\x12\x04\x9d\
24424    \x0c\"J\n\x10\n\x08\x04\x1e\x02\x01\x08\x9c\x08\0\x12\x04\x9d\x0c#I\na\n\
24425    \x04\x04\x1e\x02\x02\x12\x06\xa1\x0c\x02\xa2\x0c/\x1aQ\x20Required.\x20O\
24426    utput\x20configuration\x20indicating\x20where\x20the\x20results\x20will\
24427    \x20be\x20output\n\x20to.\n\n\r\n\x05\x04\x1e\x02\x02\x06\x12\x04\xa1\
24428    \x0c\x02\x1f\n\r\n\x05\x04\x1e\x02\x02\x01\x12\x04\xa1\x0c\x20-\n\r\n\
24429    \x05\x04\x1e\x02\x02\x03\x12\x04\xa1\x0c01\n\r\n\x05\x04\x1e\x02\x02\x08\
24430    \x12\x04\xa2\x0c\x06.\n\x10\n\x08\x04\x1e\x02\x02\x08\x9c\x08\0\x12\x04\
24431    \xa2\x0c\x07-\n\x92\x01\n\x02\x04\x1f\x12\x04\xa7\x0c\0.\x1a\x85\x01\x20\
24432    A\x20response\x20message\x20for\n\x20[AssetService.AnalyzeIamPolicyLongr\
24433    unning][google.cloud.asset.v1.AssetService.AnalyzeIamPolicyLongrunning].\
24434    \n\n\x0b\n\x03\x04\x1f\x01\x12\x04\xa7\x0c\x08+\nL\n\x02\x04\x20\x12\x06\
24435    \xaa\x0c\0\xe0\x0c\x01\x1a>\x20A\x20saved\x20query\x20which\x20can\x20be\
24436    \x20shared\x20with\x20others\x20or\x20used\x20later.\n\n\x0b\n\x03\x04\
24437    \x20\x01\x12\x04\xaa\x0c\x08\x12\n\r\n\x03\x04\x20\x07\x12\x06\xab\x0c\
24438    \x02\xb0\x0c\x04\n\x0f\n\x05\x04\x20\x07\x9d\x08\x12\x06\xab\x0c\x02\xb0\
24439    \x0c\x04\n$\n\x04\x04\x20\x03\0\x12\x06\xb3\x0c\x02\xbd\x0c\x03\x1a\x14\
24440    \x20The\x20query\x20content.\n\n\r\n\x05\x04\x20\x03\0\x01\x12\x04\xb3\
24441    \x0c\n\x16\n\x10\n\x06\x04\x20\x03\0\x08\0\x12\x06\xb4\x0c\x04\xbc\x0c\
24442    \x05\n\x0f\n\x07\x04\x20\x03\0\x08\0\x01\x12\x04\xb4\x0c\n\x17\n\xa0\x02\
24443    \n\x06\x04\x20\x03\0\x02\0\x12\x04\xbb\x0c\x06;\x1a\x8f\x02\x20An\x20IAM\
24444    \x20Policy\x20Analysis\x20query,\x20which\x20could\x20be\x20used\x20in\n\
24445    \x20the\n\x20[AssetService.AnalyzeIamPolicy][google.cloud.asset.v1.Asset\
24446    Service.AnalyzeIamPolicy]\n\x20RPC\x20or\x20the\n\x20[AssetService.Analy\
24447    zeIamPolicyLongrunning][google.cloud.asset.v1.AssetService.AnalyzeIamPol\
24448    icyLongrunning]\n\x20RPC.\n\n\x0f\n\x07\x04\x20\x03\0\x02\0\x06\x12\x04\
24449    \xbb\x0c\x06\x1c\n\x0f\n\x07\x04\x20\x03\0\x02\0\x01\x12\x04\xbb\x0c\x1d\
24450    6\n\x0f\n\x07\x04\x20\x03\0\x02\0\x03\x12\x04\xbb\x0c9:\n\xf8\x01\n\x04\
24451    \x04\x20\x02\0\x12\x04\xc4\x0c\x02\x12\x1a\xe9\x01\x20The\x20resource\
24452    \x20name\x20of\x20the\x20saved\x20query.\x20The\x20format\x20must\x20be:\
24453    \n\n\x20*\x20projects/project_number/savedQueries/saved_query_id\n\x20*\
24454    \x20folders/folder_number/savedQueries/saved_query_id\n\x20*\x20organiza\
24455    tions/organization_number/savedQueries/saved_query_id\n\n\r\n\x05\x04\
24456    \x20\x02\0\x05\x12\x04\xc4\x0c\x02\x08\n\r\n\x05\x04\x20\x02\0\x01\x12\
24457    \x04\xc4\x0c\t\r\n\r\n\x05\x04\x20\x02\0\x03\x12\x04\xc4\x0c\x10\x11\ne\
24458    \n\x04\x04\x20\x02\x01\x12\x04\xc8\x0c\x02\x19\x1aW\x20The\x20descriptio\
24459    n\x20of\x20this\x20saved\x20query.\x20This\x20value\x20should\x20be\x20f\
24460    ewer\x20than\x20255\n\x20characters.\n\n\r\n\x05\x04\x20\x02\x01\x05\x12\
24461    \x04\xc8\x0c\x02\x08\n\r\n\x05\x04\x20\x02\x01\x01\x12\x04\xc8\x0c\t\x14\
24462    \n\r\n\x05\x04\x20\x02\x01\x03\x12\x04\xc8\x0c\x17\x18\nC\n\x04\x04\x20\
24463    \x02\x02\x12\x06\xcb\x0c\x02\xcc\x0c2\x1a3\x20Output\x20only.\x20The\x20\
24464    create\x20time\x20of\x20this\x20saved\x20query.\n\n\r\n\x05\x04\x20\x02\
24465    \x02\x06\x12\x04\xcb\x0c\x02\x1b\n\r\n\x05\x04\x20\x02\x02\x01\x12\x04\
24466    \xcb\x0c\x1c'\n\r\n\x05\x04\x20\x02\x02\x03\x12\x04\xcb\x0c*+\n\r\n\x05\
24467    \x04\x20\x02\x02\x08\x12\x04\xcc\x0c\x061\n\x10\n\x08\x04\x20\x02\x02\
24468    \x08\x9c\x08\0\x12\x04\xcc\x0c\x070\nZ\n\x04\x04\x20\x02\x03\x12\x04\xcf\
24469    \x0c\x02A\x1aL\x20Output\x20only.\x20The\x20account's\x20email\x20addres\
24470    s\x20who\x20has\x20created\x20this\x20saved\x20query.\n\n\r\n\x05\x04\
24471    \x20\x02\x03\x05\x12\x04\xcf\x0c\x02\x08\n\r\n\x05\x04\x20\x02\x03\x01\
24472    \x12\x04\xcf\x0c\t\x10\n\r\n\x05\x04\x20\x02\x03\x03\x12\x04\xcf\x0c\x13\
24473    \x14\n\r\n\x05\x04\x20\x02\x03\x08\x12\x04\xcf\x0c\x15@\n\x10\n\x08\x04\
24474    \x20\x02\x03\x08\x9c\x08\0\x12\x04\xcf\x0c\x16?\nH\n\x04\x04\x20\x02\x04\
24475    \x12\x06\xd2\x0c\x02\xd3\x0c2\x1a8\x20Output\x20only.\x20The\x20last\x20\
24476    update\x20time\x20of\x20this\x20saved\x20query.\n\n\r\n\x05\x04\x20\x02\
24477    \x04\x06\x12\x04\xd2\x0c\x02\x1b\n\r\n\x05\x04\x20\x02\x04\x01\x12\x04\
24478    \xd2\x0c\x1c,\n\r\n\x05\x04\x20\x02\x04\x03\x12\x04\xd2\x0c/0\n\r\n\x05\
24479    \x04\x20\x02\x04\x08\x12\x04\xd3\x0c\x061\n\x10\n\x08\x04\x20\x02\x04\
24480    \x08\x9c\x08\0\x12\x04\xd3\x0c\x070\ni\n\x04\x04\x20\x02\x05\x12\x04\xd7\
24481    \x0c\x02F\x1a[\x20Output\x20only.\x20The\x20account's\x20email\x20addres\
24482    s\x20who\x20has\x20updated\x20this\x20saved\x20query\n\x20most\x20recent\
24483    ly.\n\n\r\n\x05\x04\x20\x02\x05\x05\x12\x04\xd7\x0c\x02\x08\n\r\n\x05\
24484    \x04\x20\x02\x05\x01\x12\x04\xd7\x0c\t\x15\n\r\n\x05\x04\x20\x02\x05\x03\
24485    \x12\x04\xd7\x0c\x18\x19\n\r\n\x05\x04\x20\x02\x05\x08\x12\x04\xd7\x0c\
24486    \x1aE\n\x10\n\x08\x04\x20\x02\x05\x08\x9c\x08\0\x12\x04\xd7\x0c\x1bD\n\
24487    \xb6\x01\n\x04\x04\x20\x02\x06\x12\x04\xdc\x0c\x02!\x1a\xa7\x01\x20Label\
24488    s\x20applied\x20on\x20the\x20resource.\n\x20This\x20value\x20should\x20n\
24489    ot\x20contain\x20more\x20than\x2010\x20entries.\x20The\x20key\x20and\x20\
24490    value\x20of\n\x20each\x20entry\x20must\x20be\x20non-empty\x20and\x20fewe\
24491    r\x20than\x2064\x20characters.\n\n\r\n\x05\x04\x20\x02\x06\x06\x12\x04\
24492    \xdc\x0c\x02\x15\n\r\n\x05\x04\x20\x02\x06\x01\x12\x04\xdc\x0c\x16\x1c\n\
24493    \r\n\x05\x04\x20\x02\x06\x03\x12\x04\xdc\x0c\x1f\x20\n\"\n\x04\x04\x20\
24494    \x02\x07\x12\x04\xdf\x0c\x02\x1b\x1a\x14\x20The\x20query\x20content.\n\n\
24495    \r\n\x05\x04\x20\x02\x07\x06\x12\x04\xdf\x0c\x02\x0e\n\r\n\x05\x04\x20\
24496    \x02\x07\x01\x12\x04\xdf\x0c\x0f\x16\n\r\n\x05\x04\x20\x02\x07\x03\x12\
24497    \x04\xdf\x0c\x19\x1a\n0\n\x02\x04!\x12\x06\xe3\x0c\0\xfe\x0c\x01\x1a\"\
24498    \x20Request\x20to\x20create\x20a\x20saved\x20query.\n\n\x0b\n\x03\x04!\
24499    \x01\x12\x04\xe3\x0c\x08\x1f\n\xc8\x02\n\x04\x04!\x02\0\x12\x06\xe9\x0c\
24500    \x02\xee\x0c\x04\x1a\xb7\x02\x20Required.\x20The\x20name\x20of\x20the\
24501    \x20project/folder/organization\x20where\x20this\n\x20saved_query\x20sho\
24502    uld\x20be\x20created\x20in.\x20It\x20can\x20only\x20be\x20an\x20organiza\
24503    tion\x20number\n\x20(such\x20as\x20\"organizations/123\"),\x20a\x20folde\
24504    r\x20number\x20(such\x20as\x20\"folders/123\"),\x20a\n\x20project\x20ID\
24505    \x20(such\x20as\x20\"projects/my-project-id\"),\x20or\x20a\x20project\
24506    \x20number\x20(such\x20as\n\x20\"projects/12345\").\n\n\r\n\x05\x04!\x02\
24507    \0\x05\x12\x04\xe9\x0c\x02\x08\n\r\n\x05\x04!\x02\0\x01\x12\x04\xe9\x0c\
24508    \t\x0f\n\r\n\x05\x04!\x02\0\x03\x12\x04\xe9\x0c\x12\x13\n\x0f\n\x05\x04!\
24509    \x02\0\x08\x12\x06\xe9\x0c\x14\xee\x0c\x03\n\x10\n\x08\x04!\x02\0\x08\
24510    \x9c\x08\0\x12\x04\xea\x0c\x04*\n\x11\n\x07\x04!\x02\0\x08\x9f\x08\x12\
24511    \x06\xeb\x0c\x04\xed\x0c\x05\n\x93\x01\n\x04\x04!\x02\x01\x12\x04\xf2\
24512    \x0c\x02F\x1a\x84\x01\x20Required.\x20The\x20saved_query\x20details.\x20\
24513    The\x20`name`\x20field\x20must\x20be\x20empty\x20as\x20it\n\x20will\x20b\
24514    e\x20generated\x20based\x20on\x20the\x20parent\x20and\x20saved_query_id.\
24515    \n\n\r\n\x05\x04!\x02\x01\x06\x12\x04\xf2\x0c\x02\x0c\n\r\n\x05\x04!\x02\
24516    \x01\x01\x12\x04\xf2\x0c\r\x18\n\r\n\x05\x04!\x02\x01\x03\x12\x04\xf2\
24517    \x0c\x1b\x1c\n\r\n\x05\x04!\x02\x01\x08\x12\x04\xf2\x0c\x1dE\n\x10\n\x08\
24518    \x04!\x02\x01\x08\x9c\x08\0\x12\x04\xf2\x0c\x1eD\n\x83\x03\n\x04\x04!\
24519    \x02\x02\x12\x04\xfd\x0c\x02E\x1a\xf4\x02\x20Required.\x20The\x20ID\x20t\
24520    o\x20use\x20for\x20the\x20saved\x20query,\x20which\x20must\x20be\x20uniq\
24521    ue\x20in\x20the\n\x20specified\x20parent.\x20It\x20will\x20become\x20the\
24522    \x20final\x20component\x20of\x20the\x20saved\x20query's\n\x20resource\
24523    \x20name.\n\n\x20This\x20value\x20should\x20be\x204-63\x20characters,\
24524    \x20and\x20valid\x20characters\n\x20are\x20`[a-z][0-9]-`.\n\n\x20Notice\
24525    \x20that\x20this\x20field\x20is\x20required\x20in\x20the\x20saved\x20que\
24526    ry\x20creation,\x20and\x20the\n\x20`name`\x20field\x20of\x20the\x20`save\
24527    d_query`\x20will\x20be\x20ignored.\n\n\r\n\x05\x04!\x02\x02\x05\x12\x04\
24528    \xfd\x0c\x02\x08\n\r\n\x05\x04!\x02\x02\x01\x12\x04\xfd\x0c\t\x17\n\r\n\
24529    \x05\x04!\x02\x02\x03\x12\x04\xfd\x0c\x1a\x1b\n\r\n\x05\x04!\x02\x02\x08\
24530    \x12\x04\xfd\x0c\x1cD\n\x10\n\x08\x04!\x02\x02\x08\x9c\x08\0\x12\x04\xfd\
24531    \x0c\x1dC\n-\n\x02\x04\"\x12\x06\x81\r\0\x8d\r\x01\x1a\x1f\x20Request\
24532    \x20to\x20get\x20a\x20saved\x20query.\n\n\x0b\n\x03\x04\"\x01\x12\x04\
24533    \x81\r\x08\x1c\n\x87\x02\n\x04\x04\"\x02\0\x12\x06\x87\r\x02\x8c\r\x04\
24534    \x1a\xf6\x01\x20Required.\x20The\x20name\x20of\x20the\x20saved\x20query\
24535    \x20and\x20it\x20must\x20be\x20in\x20the\x20format\x20of:\n\n\x20*\x20pr\
24536    ojects/project_number/savedQueries/saved_query_id\n\x20*\x20folders/fold\
24537    er_number/savedQueries/saved_query_id\n\x20*\x20organizations/organizati\
24538    on_number/savedQueries/saved_query_id\n\n\r\n\x05\x04\"\x02\0\x05\x12\
24539    \x04\x87\r\x02\x08\n\r\n\x05\x04\"\x02\0\x01\x12\x04\x87\r\t\r\n\r\n\x05\
24540    \x04\"\x02\0\x03\x12\x04\x87\r\x10\x11\n\x0f\n\x05\x04\"\x02\0\x08\x12\
24541    \x06\x87\r\x12\x8c\r\x03\n\x10\n\x08\x04\"\x02\0\x08\x9c\x08\0\x12\x04\
24542    \x88\r\x04*\n\x11\n\x07\x04\"\x02\0\x08\x9f\x08\x12\x06\x89\r\x04\x8b\r\
24543    \x05\n.\n\x02\x04#\x12\x06\x90\r\0\xb0\r\x01\x1a\x20\x20Request\x20to\
24544    \x20list\x20saved\x20queries.\n\n\x0b\n\x03\x04#\x01\x12\x04\x90\r\x08\
24545    \x1f\n\xf2\x01\n\x04\x04#\x02\0\x12\x06\x94\r\x02\x99\r\x04\x1a\xe1\x01\
24546    \x20Required.\x20The\x20parent\x20project/folder/organization\x20whose\
24547    \x20savedQueries\x20are\x20to\n\x20be\x20listed.\x20It\x20can\x20only\
24548    \x20be\x20using\x20project/folder/organization\x20number\x20(such\x20as\
24549    \n\x20\"folders/12345\")\",\x20or\x20a\x20project\x20ID\x20(such\x20as\
24550    \x20\"projects/my-project-id\").\n\n\r\n\x05\x04#\x02\0\x05\x12\x04\x94\
24551    \r\x02\x08\n\r\n\x05\x04#\x02\0\x01\x12\x04\x94\r\t\x0f\n\r\n\x05\x04#\
24552    \x02\0\x03\x12\x04\x94\r\x12\x13\n\x0f\n\x05\x04#\x02\0\x08\x12\x06\x94\
24553    \r\x14\x99\r\x03\n\x10\n\x08\x04#\x02\0\x08\x9c\x08\0\x12\x04\x95\r\x04*\
24554    \n\x11\n\x07\x04#\x02\0\x08\x9f\x08\x12\x06\x96\r\x04\x98\r\x05\n\x99\
24555    \x03\n\x04\x04#\x02\x01\x12\x04\xa2\r\x02=\x1a\x8a\x03\x20Optional.\x20T\
24556    he\x20expression\x20to\x20filter\x20resources.\n\x20The\x20expression\
24557    \x20is\x20a\x20list\x20of\x20zero\x20or\x20more\x20restrictions\x20combi\
24558    ned\x20via\x20logical\n\x20operators\x20`AND`\x20and\x20`OR`.\x20When\
24559    \x20`AND`\x20and\x20`OR`\x20are\x20both\x20used\x20in\x20the\n\x20expres\
24560    sion,\x20parentheses\x20must\x20be\x20appropriately\x20used\x20to\x20gro\
24561    up\x20the\n\x20combinations.\x20The\x20expression\x20may\x20also\x20cont\
24562    ain\x20regular\x20expressions.\n\n\x20See\x20https://google.aip.dev/160\
24563    \x20for\x20more\x20information\x20on\x20the\x20grammar.\n\n\r\n\x05\x04#\
24564    \x02\x01\x05\x12\x04\xa2\r\x02\x08\n\r\n\x05\x04#\x02\x01\x01\x12\x04\
24565    \xa2\r\t\x0f\n\r\n\x05\x04#\x02\x01\x03\x12\x04\xa2\r\x12\x13\n\r\n\x05\
24566    \x04#\x02\x01\x08\x12\x04\xa2\r\x14<\n\x10\n\x08\x04#\x02\x01\x08\x9c\
24567    \x08\0\x12\x04\xa2\r\x15;\n\xf6\x01\n\x04\x04#\x02\x02\x12\x04\xa8\r\x02\
24568    ?\x1a\xe7\x01\x20Optional.\x20The\x20maximum\x20number\x20of\x20saved\
24569    \x20queries\x20to\x20return\x20per\x20page.\x20The\n\x20service\x20may\
24570    \x20return\x20fewer\x20than\x20this\x20value.\x20If\x20unspecified,\x20a\
24571    t\x20most\x2050\x20will\n\x20be\x20returned.\x20The\x20maximum\x20value\
24572    \x20is\x201000;\x20values\x20above\x201000\x20will\x20be\x20coerced\n\
24573    \x20to\x201000.\n\n\r\n\x05\x04#\x02\x02\x05\x12\x04\xa8\r\x02\x07\n\r\n\
24574    \x05\x04#\x02\x02\x01\x12\x04\xa8\r\x08\x11\n\r\n\x05\x04#\x02\x02\x03\
24575    \x12\x04\xa8\r\x14\x15\n\r\n\x05\x04#\x02\x02\x08\x12\x04\xa8\r\x16>\n\
24576    \x10\n\x08\x04#\x02\x02\x08\x9c\x08\0\x12\x04\xa8\r\x17=\n\x83\x02\n\x04\
24577    \x04#\x02\x03\x12\x04\xaf\r\x02A\x1a\xf4\x01\x20Optional.\x20A\x20page\
24578    \x20token,\x20received\x20from\x20a\x20previous\x20`ListSavedQueries`\
24579    \x20call.\n\x20Provide\x20this\x20to\x20retrieve\x20the\x20subsequent\
24580    \x20page.\n\n\x20When\x20paginating,\x20all\x20other\x20parameters\x20pr\
24581    ovided\x20to\x20`ListSavedQueries`\x20must\n\x20match\x20the\x20call\x20\
24582    that\x20provided\x20the\x20page\x20token.\n\n\r\n\x05\x04#\x02\x03\x05\
24583    \x12\x04\xaf\r\x02\x08\n\r\n\x05\x04#\x02\x03\x01\x12\x04\xaf\r\t\x13\n\
24584    \r\n\x05\x04#\x02\x03\x03\x12\x04\xaf\r\x16\x17\n\r\n\x05\x04#\x02\x03\
24585    \x08\x12\x04\xaf\r\x18@\n\x10\n\x08\x04#\x02\x03\x08\x9c\x08\0\x12\x04\
24586    \xaf\r\x19?\n2\n\x02\x04$\x12\x06\xb3\r\0\xba\r\x01\x1a$\x20Response\x20\
24587    of\x20listing\x20saved\x20queries.\n\n\x0b\n\x03\x04$\x01\x12\x04\xb3\r\
24588    \x08\x20\n'\n\x04\x04$\x02\0\x12\x04\xb5\r\x02(\x1a\x19\x20A\x20list\x20\
24589    of\x20savedQueries.\n\n\r\n\x05\x04$\x02\0\x04\x12\x04\xb5\r\x02\n\n\r\n\
24590    \x05\x04$\x02\0\x06\x12\x04\xb5\r\x0b\x15\n\r\n\x05\x04$\x02\0\x01\x12\
24591    \x04\xb5\r\x16#\n\r\n\x05\x04$\x02\0\x03\x12\x04\xb5\r&'\n\x90\x01\n\x04\
24592    \x04$\x02\x01\x12\x04\xb9\r\x02\x1d\x1a\x81\x01\x20A\x20token,\x20which\
24593    \x20can\x20be\x20sent\x20as\x20`page_token`\x20to\x20retrieve\x20the\x20\
24594    next\x20page.\n\x20If\x20this\x20field\x20is\x20omitted,\x20there\x20are\
24595    \x20no\x20subsequent\x20pages.\n\n\r\n\x05\x04$\x02\x01\x05\x12\x04\xb9\
24596    \r\x02\x08\n\r\n\x05\x04$\x02\x01\x01\x12\x04\xb9\r\t\x18\n\r\n\x05\x04$\
24597    \x02\x01\x03\x12\x04\xb9\r\x1b\x1c\n0\n\x02\x04%\x12\x06\xbd\r\0\xcb\r\
24598    \x01\x1a\"\x20Request\x20to\x20update\x20a\x20saved\x20query.\n\n\x0b\n\
24599    \x03\x04%\x01\x12\x04\xbd\r\x08\x1f\n\xc7\x02\n\x04\x04%\x02\0\x12\x04\
24600    \xc6\r\x02F\x1a\xb8\x02\x20Required.\x20The\x20saved\x20query\x20to\x20u\
24601    pdate.\n\n\x20The\x20saved\x20query's\x20`name`\x20field\x20is\x20used\
24602    \x20to\x20identify\x20the\x20one\x20to\x20update,\n\x20which\x20has\x20f\
24603    ormat\x20as\x20below:\n\n\x20*\x20projects/project_number/savedQueries/s\
24604    aved_query_id\n\x20*\x20folders/folder_number/savedQueries/saved_query_i\
24605    d\n\x20*\x20organizations/organization_number/savedQueries/saved_query_i\
24606    d\n\n\r\n\x05\x04%\x02\0\x06\x12\x04\xc6\r\x02\x0c\n\r\n\x05\x04%\x02\0\
24607    \x01\x12\x04\xc6\r\r\x18\n\r\n\x05\x04%\x02\0\x03\x12\x04\xc6\r\x1b\x1c\
24608    \n\r\n\x05\x04%\x02\0\x08\x12\x04\xc6\r\x1dE\n\x10\n\x08\x04%\x02\0\x08\
24609    \x9c\x08\0\x12\x04\xc6\r\x1eD\n9\n\x04\x04%\x02\x01\x12\x06\xc9\r\x02\
24610    \xca\r/\x1a)\x20Required.\x20The\x20list\x20of\x20fields\x20to\x20update\
24611    .\n\n\r\n\x05\x04%\x02\x01\x06\x12\x04\xc9\r\x02\x1b\n\r\n\x05\x04%\x02\
24612    \x01\x01\x12\x04\xc9\r\x1c'\n\r\n\x05\x04%\x02\x01\x03\x12\x04\xc9\r*+\n\
24613    \r\n\x05\x04%\x02\x01\x08\x12\x04\xca\r\x06.\n\x10\n\x08\x04%\x02\x01\
24614    \x08\x9c\x08\0\x12\x04\xca\r\x07-\n0\n\x02\x04&\x12\x06\xce\r\0\xdb\r\
24615    \x01\x1a\"\x20Request\x20to\x20delete\x20a\x20saved\x20query.\n\n\x0b\n\
24616    \x03\x04&\x01\x12\x04\xce\r\x08\x1f\n\x8f\x02\n\x04\x04&\x02\0\x12\x06\
24617    \xd5\r\x02\xda\r\x04\x1a\xfe\x01\x20Required.\x20The\x20name\x20of\x20th\
24618    e\x20saved\x20query\x20to\x20delete.\x20It\x20must\x20be\x20in\x20the\
24619    \x20format\n\x20of:\n\n\x20*\x20projects/project_number/savedQueries/sav\
24620    ed_query_id\n\x20*\x20folders/folder_number/savedQueries/saved_query_id\
24621    \n\x20*\x20organizations/organization_number/savedQueries/saved_query_id\
24622    \n\n\r\n\x05\x04&\x02\0\x05\x12\x04\xd5\r\x02\x08\n\r\n\x05\x04&\x02\0\
24623    \x01\x12\x04\xd5\r\t\r\n\r\n\x05\x04&\x02\0\x03\x12\x04\xd5\r\x10\x11\n\
24624    \x0f\n\x05\x04&\x02\0\x08\x12\x06\xd5\r\x12\xda\r\x03\n\x10\n\x08\x04&\
24625    \x02\0\x08\x9c\x08\0\x12\x04\xd6\r\x04*\n\x11\n\x07\x04&\x02\0\x08\x9f\
24626    \x08\x12\x06\xd7\r\x04\xd9\r\x05\nJ\n\x02\x04'\x12\x06\xde\r\0\xfe\r\x01\
24627    \x1a<\x20The\x20request\x20message\x20for\x20performing\x20resource\x20m\
24628    ove\x20analysis.\n\n\x0b\n\x03\x04'\x01\x12\x04\xde\r\x08\x1a\nF\n\x04\
24629    \x04'\x04\0\x12\x06\xe0\r\x02\xec\r\x03\x1a6\x20View\x20enum\x20for\x20s\
24630    upporting\x20partial\x20analysis\x20responses.\n\n\r\n\x05\x04'\x04\0\
24631    \x01\x12\x04\xe0\r\x07\x13\nR\n\x06\x04'\x04\0\x02\0\x12\x04\xe3\r\x04\"\
24632    \x1aB\x20The\x20default/unset\x20value.\n\x20The\x20API\x20will\x20defau\
24633    lt\x20to\x20the\x20FULL\x20view.\n\n\x0f\n\x07\x04'\x04\0\x02\0\x01\x12\
24634    \x04\xe3\r\x04\x1d\n\x0f\n\x07\x04'\x04\0\x02\0\x02\x12\x04\xe3\r\x20!\n\
24635    _\n\x06\x04'\x04\0\x02\x01\x12\x04\xe7\r\x04\r\x1aO\x20Full\x20analysis\
24636    \x20including\x20all\x20level\x20of\x20impacts\x20of\x20the\x20specified\
24637    \x20resource\n\x20move.\n\n\x0f\n\x07\x04'\x04\0\x02\x01\x01\x12\x04\xe7\
24638    \r\x04\x08\n\x0f\n\x07\x04'\x04\0\x02\x01\x02\x12\x04\xe7\r\x0b\x0c\nt\n\
24639    \x06\x04'\x04\0\x02\x02\x12\x04\xeb\r\x04\x0e\x1ad\x20Basic\x20analysis\
24640    \x20only\x20including\x20blockers\x20which\x20will\x20prevent\x20the\x20\
24641    specified\n\x20resource\x20move\x20at\x20runtime.\n\n\x0f\n\x07\x04'\x04\
24642    \0\x02\x02\x01\x12\x04\xeb\r\x04\t\n\x0f\n\x07\x04'\x04\0\x02\x02\x02\
24643    \x12\x04\xeb\r\x0c\r\n\x81\x02\n\x04\x04'\x02\0\x12\x04\xf2\r\x02?\x1a\
24644    \xf2\x01\x20Required.\x20Name\x20of\x20the\x20resource\x20to\x20perform\
24645    \x20the\x20analysis\x20against.\n\x20Only\x20Google\x20Cloud\x20projects\
24646    \x20are\x20supported\x20as\x20of\x20today.\x20Hence,\x20this\x20can\x20o\
24647    nly\n\x20be\x20a\x20project\x20ID\x20(such\x20as\x20\"projects/my-projec\
24648    t-id\")\x20or\x20a\x20project\x20number\n\x20(such\x20as\x20\"projects/1\
24649    2345\").\n\n\r\n\x05\x04'\x02\0\x05\x12\x04\xf2\r\x02\x08\n\r\n\x05\x04'\
24650    \x02\0\x01\x12\x04\xf2\r\t\x11\n\r\n\x05\x04'\x02\0\x03\x12\x04\xf2\r\
24651    \x14\x15\n\r\n\x05\x04'\x02\0\x08\x12\x04\xf2\r\x16>\n\x10\n\x08\x04'\
24652    \x02\0\x08\x9c\x08\0\x12\x04\xf2\r\x17=\n\xd2\x02\n\x04\x04'\x02\x01\x12\
24653    \x04\xf9\r\x02I\x1a\xc3\x02\x20Required.\x20Name\x20of\x20the\x20Google\
24654    \x20Cloud\x20folder\x20or\x20organization\x20to\x20reparent\x20the\n\x20\
24655    target\x20resource.\x20The\x20analysis\x20will\x20be\x20performed\x20aga\
24656    inst\x20hypothetically\n\x20moving\x20the\x20resource\x20to\x20this\x20s\
24657    pecified\x20desitination\x20parent.\x20This\x20can\x20only\x20be\n\x20a\
24658    \x20folder\x20number\x20(such\x20as\x20\"folders/123\")\x20or\x20an\x20o\
24659    rganization\x20number\x20(such\x20as\n\x20\"organizations/123\").\n\n\r\
24660    \n\x05\x04'\x02\x01\x05\x12\x04\xf9\r\x02\x08\n\r\n\x05\x04'\x02\x01\x01\
24661    \x12\x04\xf9\r\t\x1b\n\r\n\x05\x04'\x02\x01\x03\x12\x04\xf9\r\x1e\x1f\n\
24662    \r\n\x05\x04'\x02\x01\x08\x12\x04\xf9\r\x20H\n\x10\n\x08\x04'\x02\x01\
24663    \x08\x9c\x08\0\x12\x04\xf9\r!G\n\x92\x01\n\x04\x04'\x02\x02\x12\x04\xfd\
24664    \r\x02\x18\x1a\x83\x01\x20Analysis\x20view\x20indicating\x20what\x20info\
24665    rmation\x20should\x20be\x20included\x20in\x20the\n\x20analysis\x20respon\
24666    se.\x20If\x20unspecified,\x20the\x20default\x20view\x20is\x20FULL.\n\n\r\
24667    \n\x05\x04'\x02\x02\x06\x12\x04\xfd\r\x02\x0e\n\r\n\x05\x04'\x02\x02\x01\
24668    \x12\x04\xfd\r\x0f\x13\n\r\n\x05\x04'\x02\x02\x03\x12\x04\xfd\r\x16\x17\
24669    \n@\n\x02\x04(\x12\x06\x81\x0e\0\x85\x0e\x01\x1a2\x20The\x20response\x20\
24670    message\x20for\x20resource\x20move\x20analysis.\n\n\x0b\n\x03\x04(\x01\
24671    \x12\x04\x81\x0e\x08\x1b\n\xa0\x01\n\x04\x04(\x02\0\x12\x04\x84\x0e\x02*\
24672    \x1a\x91\x01\x20The\x20list\x20of\x20analyses\x20returned\x20from\x20per\
24673    forming\x20the\x20intended\x20resource\x20move\n\x20analysis.\x20The\x20\
24674    analysis\x20is\x20grouped\x20by\x20different\x20Google\x20Cloud\x20servi\
24675    ces.\n\n\r\n\x05\x04(\x02\0\x04\x12\x04\x84\x0e\x02\n\n\r\n\x05\x04(\x02\
24676    \0\x06\x12\x04\x84\x0e\x0b\x17\n\r\n\x05\x04(\x02\0\x01\x12\x04\x84\x0e\
24677    \x18%\n\r\n\x05\x04(\x02\0\x03\x12\x04\x84\x0e()\n<\n\x02\x04)\x12\x06\
24678    \x88\x0e\0\x94\x0e\x01\x1a.\x20A\x20message\x20to\x20group\x20the\x20ana\
24679    lysis\x20information.\n\n\x0b\n\x03\x04)\x01\x12\x04\x88\x0e\x08\x14\nc\
24680    \n\x04\x04)\x02\0\x12\x04\x8b\x0e\x02\x1a\x1aU\x20The\x20user\x20friendl\
24681    y\x20display\x20name\x20of\x20the\x20analysis.\x20E.g.\x20IAM,\x20organi\
24682    zation\n\x20policy\x20etc.\n\n\r\n\x05\x04)\x02\0\x05\x12\x04\x8b\x0e\
24683    \x02\x08\n\r\n\x05\x04)\x02\0\x01\x12\x04\x8b\x0e\t\x15\n\r\n\x05\x04)\
24684    \x02\0\x03\x12\x04\x8b\x0e\x18\x19\n\x0e\n\x04\x04)\x08\0\x12\x06\x8d\
24685    \x0e\x02\x93\x0e\x03\n\r\n\x05\x04)\x08\0\x01\x12\x04\x8d\x0e\x08\x0e\n>\
24686    \n\x04\x04)\x02\x01\x12\x04\x8f\x0e\x04$\x1a0\x20Analysis\x20result\x20o\
24687    f\x20moving\x20the\x20target\x20resource.\n\n\r\n\x05\x04)\x02\x01\x06\
24688    \x12\x04\x8f\x0e\x04\x16\n\r\n\x05\x04)\x02\x01\x01\x12\x04\x8f\x0e\x17\
24689    \x1f\n\r\n\x05\x04)\x02\x01\x03\x12\x04\x8f\x0e\"#\nN\n\x04\x04)\x02\x02\
24690    \x12\x04\x92\x0e\x04\x20\x1a@\x20Description\x20of\x20error\x20encounter\
24691    ed\x20when\x20performing\x20the\x20analysis.\n\n\r\n\x05\x04)\x02\x02\
24692    \x06\x12\x04\x92\x0e\x04\x15\n\r\n\x05\x04)\x02\x02\x01\x12\x04\x92\x0e\
24693    \x16\x1b\n\r\n\x05\x04)\x02\x02\x03\x12\x04\x92\x0e\x1e\x1f\nC\n\x02\x04\
24694    *\x12\x06\x97\x0e\0\xa0\x0e\x01\x1a5\x20An\x20analysis\x20result\x20incl\
24695    uding\x20blockers\x20and\x20warnings.\n\n\x0b\n\x03\x04*\x01\x12\x04\x97\
24696    \x0e\x08\x1a\n\x81\x01\n\x04\x04*\x02\0\x12\x04\x9a\x0e\x02#\x1as\x20Blo\
24697    cking\x20information\x20that\x20would\x20prevent\x20the\x20target\x20res\
24698    ource\x20from\x20moving\n\x20to\x20the\x20specified\x20destination\x20at\
24699    \x20runtime.\n\n\r\n\x05\x04*\x02\0\x04\x12\x04\x9a\x0e\x02\n\n\r\n\x05\
24700    \x04*\x02\0\x06\x12\x04\x9a\x0e\x0b\x15\n\r\n\x05\x04*\x02\0\x01\x12\x04\
24701    \x9a\x0e\x16\x1e\n\r\n\x05\x04*\x02\0\x03\x12\x04\x9a\x0e!\"\n\xed\x01\n\
24702    \x04\x04*\x02\x01\x12\x04\x9f\x0e\x02#\x1a\xde\x01\x20Warning\x20informa\
24703    tion\x20indicating\x20that\x20moving\x20the\x20target\x20resource\x20to\
24704    \x20the\n\x20specified\x20destination\x20might\x20be\x20unsafe.\x20This\
24705    \x20can\x20include\x20important\x20policy\n\x20information\x20and\x20con\
24706    figuration\x20changes,\x20but\x20will\x20not\x20block\x20moves\x20at\x20\
24707    runtime.\n\n\r\n\x05\x04*\x02\x01\x04\x12\x04\x9f\x0e\x02\n\n\r\n\x05\
24708    \x04*\x02\x01\x06\x12\x04\x9f\x0e\x0b\x15\n\r\n\x05\x04*\x02\x01\x01\x12\
24709    \x04\x9f\x0e\x16\x1e\n\r\n\x05\x04*\x02\x01\x03\x12\x04\x9f\x0e!\"\nI\n\
24710    \x02\x04+\x12\x06\xa3\x0e\0\xa6\x0e\x01\x1a;\x20A\x20message\x20to\x20gr\
24711    oup\x20impacts\x20of\x20moving\x20the\x20target\x20resource.\n\n\x0b\n\
24712    \x03\x04+\x01\x12\x04\xa3\x0e\x08\x12\nC\n\x04\x04+\x02\0\x12\x04\xa5\
24713    \x0e\x02\x14\x1a5\x20User\x20friendly\x20impact\x20detail\x20in\x20a\x20\
24714    free\x20form\x20message.\n\n\r\n\x05\x04+\x02\0\x05\x12\x04\xa5\x0e\x02\
24715    \x08\n\r\n\x05\x04+\x02\0\x01\x12\x04\xa5\x0e\t\x0f\n\r\n\x05\x04+\x02\0\
24716    \x03\x12\x04\xa5\x0e\x12\x13\n2\n\x02\x04,\x12\x06\xa9\x0e\0\xc5\x0e\x01\
24717    \x1a$\x20Output\x20configuration\x20query\x20assets.\n\n\x0b\n\x03\x04,\
24718    \x01\x12\x04\xa9\x0e\x08\x1f\n'\n\x04\x04,\x03\0\x12\x06\xab\x0e\x02\xc1\
24719    \x0e\x03\x1a\x17\x20BigQuery\x20destination.\n\n\r\n\x05\x04,\x03\0\x01\
24720    \x12\x04\xab\x0e\n\x1d\n\x9b\x01\n\x06\x04,\x03\0\x02\0\x12\x04\xae\x0e\
24721    \x04@\x1a\x8a\x01\x20Required.\x20The\x20BigQuery\x20dataset\x20where\
24722    \x20the\x20query\x20results\x20will\x20be\x20saved.\x20It\n\x20has\x20th\
24723    e\x20format\x20of\x20\"projects/{projectId}/datasets/{datasetId}\".\n\n\
24724    \x0f\n\x07\x04,\x03\0\x02\0\x05\x12\x04\xae\x0e\x04\n\n\x0f\n\x07\x04,\
24725    \x03\0\x02\0\x01\x12\x04\xae\x0e\x0b\x12\n\x0f\n\x07\x04,\x03\0\x02\0\
24726    \x03\x12\x04\xae\x0e\x15\x16\n\x0f\n\x07\x04,\x03\0\x02\0\x08\x12\x04\
24727    \xae\x0e\x17?\n\x12\n\n\x04,\x03\0\x02\0\x08\x9c\x08\0\x12\x04\xae\x0e\
24728    \x18>\n\xa7\x01\n\x06\x04,\x03\0\x02\x01\x12\x04\xb3\x0e\x04>\x1a\x96\
24729    \x01\x20Required.\x20The\x20BigQuery\x20table\x20where\x20the\x20query\
24730    \x20results\x20will\x20be\x20saved.\x20If\n\x20this\x20table\x20does\x20\
24731    not\x20exist,\x20a\x20new\x20table\x20with\x20the\x20given\x20name\x20wi\
24732    ll\x20be\n\x20created.\n\n\x0f\n\x07\x04,\x03\0\x02\x01\x05\x12\x04\xb3\
24733    \x0e\x04\n\n\x0f\n\x07\x04,\x03\0\x02\x01\x01\x12\x04\xb3\x0e\x0b\x10\n\
24734    \x0f\n\x07\x04,\x03\0\x02\x01\x03\x12\x04\xb3\x0e\x13\x14\n\x0f\n\x07\
24735    \x04,\x03\0\x02\x01\x08\x12\x04\xb3\x0e\x15=\n\x12\n\n\x04,\x03\0\x02\
24736    \x01\x08\x9c\x08\0\x12\x04\xb3\x0e\x16<\n\xa1\x04\n\x06\x04,\x03\0\x02\
24737    \x02\x12\x04\xc0\x0e\x04!\x1a\x90\x04\x20Specifies\x20the\x20action\x20t\
24738    hat\x20occurs\x20if\x20the\x20destination\x20table\x20or\x20partition\n\
24739    \x20already\x20exists.\x20The\x20following\x20values\x20are\x20supported\
24740    :\n\n\x20*\x20WRITE_TRUNCATE:\x20If\x20the\x20table\x20or\x20partition\
24741    \x20already\x20exists,\x20BigQuery\n\x20overwrites\x20the\x20entire\x20t\
24742    able\x20or\x20all\x20the\x20partitions\x20data.\n\x20*\x20WRITE_APPEND:\
24743    \x20If\x20the\x20table\x20or\x20partition\x20already\x20exists,\x20BigQu\
24744    ery\n\x20appends\x20the\x20data\x20to\x20the\x20table\x20or\x20the\x20la\
24745    test\x20partition.\n\x20*\x20WRITE_EMPTY:\x20If\x20the\x20table\x20alrea\
24746    dy\x20exists\x20and\x20contains\x20data,\x20a\n\x20'duplicate'\x20error\
24747    \x20is\x20returned\x20in\x20the\x20job\x20result.\n\n\x20The\x20default\
24748    \x20value\x20is\x20WRITE_EMPTY.\n\n\x0f\n\x07\x04,\x03\0\x02\x02\x05\x12\
24749    \x04\xc0\x0e\x04\n\n\x0f\n\x07\x04,\x03\0\x02\x02\x01\x12\x04\xc0\x0e\
24750    \x0b\x1c\n\x0f\n\x07\x04,\x03\0\x02\x02\x03\x12\x04\xc0\x0e\x1f\x20\nK\n\
24751    \x04\x04,\x02\0\x12\x04\xc4\x0e\x02/\x1a=\x20BigQuery\x20destination\x20\
24752    where\x20the\x20query\x20results\x20will\x20be\x20saved.\n\n\r\n\x05\x04\
24753    ,\x02\0\x06\x12\x04\xc4\x0e\x02\x15\n\r\n\x05\x04,\x02\0\x01\x12\x04\xc4\
24754    \x0e\x16*\n\r\n\x05\x04,\x02\0\x03\x12\x04\xc4\x0e-.\n$\n\x02\x04-\x12\
24755    \x06\xc8\x0e\0\x9b\x0f\x01\x1a\x16\x20QueryAssets\x20request.\n\n\x0b\n\
24756    \x03\x04-\x01\x12\x04\xc8\x0e\x08\x1a\n\xd2\x02\n\x04\x04-\x02\0\x12\x06\
24757    \xcf\x0e\x02\xd4\x0e\x04\x1a\xc1\x02\x20Required.\x20The\x20relative\x20\
24758    name\x20of\x20the\x20root\x20asset.\x20This\x20can\x20only\x20be\x20an\n\
24759    \x20organization\x20number\x20(such\x20as\x20\"organizations/123\"),\x20\
24760    a\x20project\x20ID\x20(such\x20as\n\x20\"projects/my-project-id\"),\x20o\
24761    r\x20a\x20project\x20number\x20(such\x20as\x20\"projects/12345\"),\n\x20\
24762    or\x20a\x20folder\x20number\x20(such\x20as\x20\"folders/123\").\n\n\x20O\
24763    nly\x20assets\x20belonging\x20to\x20the\x20`parent`\x20will\x20be\x20ret\
24764    urned.\n\n\r\n\x05\x04-\x02\0\x05\x12\x04\xcf\x0e\x02\x08\n\r\n\x05\x04-\
24765    \x02\0\x01\x12\x04\xcf\x0e\t\x0f\n\r\n\x05\x04-\x02\0\x03\x12\x04\xcf\
24766    \x0e\x12\x13\n\x0f\n\x05\x04-\x02\0\x08\x12\x06\xcf\x0e\x14\xd4\x0e\x03\
24767    \n\x10\n\x08\x04-\x02\0\x08\x9c\x08\0\x12\x04\xd0\x0e\x04*\n\x11\n\x07\
24768    \x04-\x02\0\x08\x9f\x08\x12\x06\xd1\x0e\x04\xd3\x0e\x05\n\x0e\n\x04\x04-\
24769    \x08\0\x12\x06\xd6\x0e\x02\xde\x0e\x03\n\r\n\x05\x04-\x08\0\x01\x12\x04\
24770    \xd6\x0e\x08\r\n\x8a\x01\n\x04\x04-\x02\x01\x12\x04\xd9\x0e\x04B\x1a|\
24771    \x20Optional.\x20A\x20SQL\x20statement\x20that's\x20compatible\x20with\
24772    \x20[BigQuery\n\x20SQL](https://cloud.google.com/bigquery/docs/introduct\
24773    ion-sql).\n\n\r\n\x05\x04-\x02\x01\x05\x12\x04\xd9\x0e\x04\n\n\r\n\x05\
24774    \x04-\x02\x01\x01\x12\x04\xd9\x0e\x0b\x14\n\r\n\x05\x04-\x02\x01\x03\x12\
24775    \x04\xd9\x0e\x17\x18\n\r\n\x05\x04-\x02\x01\x08\x12\x04\xd9\x0e\x19A\n\
24776    \x10\n\x08\x04-\x02\x01\x08\x9c\x08\0\x12\x04\xd9\x0e\x1a@\n~\n\x04\x04-\
24777    \x02\x02\x12\x04\xdd\x0e\x04F\x1ap\x20Optional.\x20Reference\x20to\x20th\
24778    e\x20query\x20job,\x20which\x20is\x20from\x20the\n\x20`QueryAssetsRespon\
24779    se`\x20of\x20previous\x20`QueryAssets`\x20call.\n\n\r\n\x05\x04-\x02\x02\
24780    \x05\x12\x04\xdd\x0e\x04\n\n\r\n\x05\x04-\x02\x02\x01\x12\x04\xdd\x0e\
24781    \x0b\x18\n\r\n\x05\x04-\x02\x02\x03\x12\x04\xdd\x0e\x1b\x1c\n\r\n\x05\
24782    \x04-\x02\x02\x08\x12\x04\xdd\x0e\x1dE\n\x10\n\x08\x04-\x02\x02\x08\x9c\
24783    \x08\0\x12\x04\xdd\x0e\x1eD\n\xc9\x02\n\x04\x04-\x02\x03\x12\x04\xe7\x0e\
24784    \x02?\x1a\xba\x02\x20Optional.\x20The\x20maximum\x20number\x20of\x20rows\
24785    \x20to\x20return\x20in\x20the\x20results.\x20Responses\n\x20are\x20limit\
24786    ed\x20to\x2010\x20MB\x20and\x201000\x20rows.\n\n\x20By\x20default,\x20th\
24787    e\x20maximum\x20row\x20count\x20is\x201000.\x20When\x20the\x20byte\x20or\
24788    \x20row\x20count\x20limit\n\x20is\x20reached,\x20the\x20rest\x20of\x20th\
24789    e\x20query\x20results\x20will\x20be\x20paginated.\n\n\x20The\x20field\
24790    \x20will\x20be\x20ignored\x20when\x20[output_config]\x20is\x20specified.\
24791    \n\n\r\n\x05\x04-\x02\x03\x05\x12\x04\xe7\x0e\x02\x07\n\r\n\x05\x04-\x02\
24792    \x03\x01\x12\x04\xe7\x0e\x08\x11\n\r\n\x05\x04-\x02\x03\x03\x12\x04\xe7\
24793    \x0e\x14\x15\n\r\n\x05\x04-\x02\x03\x08\x12\x04\xe7\x0e\x16>\n\x10\n\x08\
24794    \x04-\x02\x03\x08\x9c\x08\0\x12\x04\xe7\x0e\x17=\n\x8b\x01\n\x04\x04-\
24795    \x02\x04\x12\x04\xec\x0e\x02A\x1a}\x20Optional.\x20A\x20page\x20token\
24796    \x20received\x20from\x20previous\x20`QueryAssets`.\n\n\x20The\x20field\
24797    \x20will\x20be\x20ignored\x20when\x20[output_config]\x20is\x20specified.\
24798    \n\n\r\n\x05\x04-\x02\x04\x05\x12\x04\xec\x0e\x02\x08\n\r\n\x05\x04-\x02\
24799    \x04\x01\x12\x04\xec\x0e\t\x13\n\r\n\x05\x04-\x02\x04\x03\x12\x04\xec\
24800    \x0e\x16\x17\n\r\n\x05\x04-\x02\x04\x08\x12\x04\xec\x0e\x18@\n\x10\n\x08\
24801    \x04-\x02\x04\x08\x9c\x08\0\x12\x04\xec\x0e\x19?\n\x9d\x05\n\x04\x04-\
24802    \x02\x05\x12\x04\xfb\x0e\x02P\x1a\x8e\x05\x20Optional.\x20Specifies\x20t\
24803    he\x20maximum\x20amount\x20of\x20time\x20that\x20the\x20client\x20is\x20\
24804    willing\n\x20to\x20wait\x20for\x20the\x20query\x20to\x20complete.\x20By\
24805    \x20default,\x20this\x20limit\x20is\x205\x20min\x20for\x20the\n\x20first\
24806    \x20query,\x20and\x201\x20minute\x20for\x20the\x20following\x20queries.\
24807    \x20If\x20the\x20query\x20is\n\x20complete,\x20the\x20`done`\x20field\
24808    \x20in\x20the\x20`QueryAssetsResponse`\x20is\x20true,\x20otherwise\n\x20\
24809    false.\n\n\x20Like\x20BigQuery\x20[jobs.query\n\x20API](https://cloud.go\
24810    ogle.com/bigquery/docs/reference/rest/v2/jobs/query#queryrequest)\n\x20T\
24811    he\x20call\x20is\x20not\x20guaranteed\x20to\x20wait\x20for\x20the\x20spe\
24812    cified\x20timeout;\x20it\x20typically\n\x20returns\x20after\x20around\
24813    \x20200\x20seconds\x20(200,000\x20milliseconds),\x20even\x20if\x20the\
24814    \x20query\n\x20is\x20not\x20complete.\n\n\x20The\x20field\x20will\x20be\
24815    \x20ignored\x20when\x20[output_config]\x20is\x20specified.\n\n\r\n\x05\
24816    \x04-\x02\x05\x06\x12\x04\xfb\x0e\x02\x1a\n\r\n\x05\x04-\x02\x05\x01\x12\
24817    \x04\xfb\x0e\x1b\"\n\r\n\x05\x04-\x02\x05\x03\x12\x04\xfb\x0e%&\n\r\n\
24818    \x05\x04-\x02\x05\x08\x12\x04\xfb\x0e'O\n\x10\n\x08\x04-\x02\x05\x08\x9c\
24819    \x08\0\x12\x04\xfb\x0e(N\n\xbb\x03\n\x04\x04-\x08\x01\x12\x06\x84\x0f\
24820    \x02\x8e\x0f\x03\x1a\xaa\x03\x20Specifies\x20what\x20time\x20period\x20o\
24821    r\x20point\x20in\x20time\x20to\x20query\x20asset\x20metadata\x20at.\n\
24822    \x20*\x20unset\x20-\x20query\x20asset\x20metadata\x20as\x20it\x20is\x20r\
24823    ight\x20now\n\x20*\x20[read_time_window]\x20-\x20query\x20asset\x20metad\
24824    ata\x20as\x20it\x20was\x20at\x20any\x20point\x20in\x20time\n\x20between\
24825    \x20[start_time]\x20and\x20[end_time].\n\x20*\x20[read_time]\x20-\x20que\
24826    ry\x20asset\x20metadata\x20as\x20it\x20was\x20at\x20that\x20point\x20in\
24827    \x20time.\n\x20If\x20data\x20for\x20the\x20timestamp/date\x20range\x20se\
24828    lected\x20does\x20not\x20exist,\n\x20it\x20will\x20simply\x20return\x20a\
24829    \x20valid\x20response\x20with\x20no\x20rows.\n\n\r\n\x05\x04-\x08\x01\
24830    \x01\x12\x04\x84\x0f\x08\x0c\n\xd0\x01\n\x04\x04-\x02\x06\x12\x04\x88\
24831    \x0f\x04M\x1a\xc1\x01\x20Optional.\x20[start_time]\x20is\x20required.\
24832    \x20[start_time]\x20must\x20be\x20less\x20than\n\x20[end_time]\x20Defaul\
24833    ts\x20[end_time]\x20to\x20now\x20if\x20[start_time]\x20is\x20set\x20and\
24834    \n\x20[end_time]\x20isn't.\x20Maximum\x20permitted\x20time\x20range\x20i\
24835    s\x207\x20days.\n\n\r\n\x05\x04-\x02\x06\x06\x12\x04\x88\x0f\x04\x0e\n\r\
24836    \n\x05\x04-\x02\x06\x01\x12\x04\x88\x0f\x0f\x1f\n\r\n\x05\x04-\x02\x06\
24837    \x03\x12\x04\x88\x0f\"#\n\r\n\x05\x04-\x02\x06\x08\x12\x04\x88\x0f$L\n\
24838    \x10\n\x08\x04-\x02\x06\x08\x9c\x08\0\x12\x04\x88\x0f%K\nb\n\x04\x04-\
24839    \x02\x07\x12\x06\x8c\x0f\x04\x8d\x0f1\x1aR\x20Optional.\x20Queries\x20cl\
24840    oud\x20assets\x20as\x20they\x20appeared\x20at\x20the\x20specified\x20poi\
24841    nt\x20in\n\x20time.\n\n\r\n\x05\x04-\x02\x07\x06\x12\x04\x8c\x0f\x04\x1d\
24842    \n\r\n\x05\x04-\x02\x07\x01\x12\x04\x8c\x0f\x1e'\n\r\n\x05\x04-\x02\x07\
24843    \x03\x12\x04\x8c\x0f*+\n\r\n\x05\x04-\x02\x07\x08\x12\x04\x8d\x0f\x080\n\
24844    \x10\n\x08\x04-\x02\x07\x08\x9c\x08\0\x12\x04\x8d\x0f\t/\n\x9d\x03\n\x04\
24845    \x04-\x02\x08\x12\x06\x99\x0f\x02\x9a\x0f/\x1a\x8c\x03\x20Optional.\x20D\
24846    estination\x20where\x20the\x20query\x20results\x20will\x20be\x20saved.\n\
24847    \n\x20When\x20this\x20field\x20is\x20specified,\x20the\x20query\x20resul\
24848    ts\x20won't\x20be\x20saved\x20in\x20the\n\x20[QueryAssetsResponse.query_\
24849    result].\x20Instead\n\x20[QueryAssetsResponse.output_config]\x20will\x20\
24850    be\x20set.\n\n\x20Meanwhile,\x20[QueryAssetsResponse.job_reference]\x20w\
24851    ill\x20be\x20set\x20and\x20can\x20be\x20used\n\x20to\x20check\x20the\x20\
24852    status\x20of\x20the\x20query\x20job\x20when\x20passed\x20to\x20a\x20foll\
24853    owing\n\x20[QueryAssets]\x20API\x20call.\n\n\r\n\x05\x04-\x02\x08\x06\
24854    \x12\x04\x99\x0f\x02\x19\n\r\n\x05\x04-\x02\x08\x01\x12\x04\x99\x0f\x1a'\
24855    \n\r\n\x05\x04-\x02\x08\x03\x12\x04\x99\x0f*+\n\r\n\x05\x04-\x02\x08\x08\
24856    \x12\x04\x9a\x0f\x06.\n\x10\n\x08\x04-\x02\x08\x08\x9c\x08\0\x12\x04\x9a\
24857    \x0f\x07-\n%\n\x02\x04.\x12\x06\x9e\x0f\0\xb5\x0f\x01\x1a\x17\x20QueryAs\
24858    sets\x20response.\n\n\x0b\n\x03\x04.\x01\x12\x04\x9e\x0f\x08\x1b\n)\n\
24859    \x04\x04.\x02\0\x12\x04\xa0\x0f\x02\x1b\x1a\x1b\x20Reference\x20to\x20a\
24860    \x20query\x20job.\n\n\r\n\x05\x04.\x02\0\x05\x12\x04\xa0\x0f\x02\x08\n\r\
24861    \n\x05\x04.\x02\0\x01\x12\x04\xa0\x0f\t\x16\n\r\n\x05\x04.\x02\0\x03\x12\
24862    \x04\xa0\x0f\x19\x1a\n\xa6\x02\n\x04\x04.\x02\x01\x12\x04\xa8\x0f\x02\
24863    \x10\x1a\x97\x02\x20The\x20query\x20response,\x20which\x20can\x20be\x20e\
24864    ither\x20an\x20`error`\x20or\x20a\x20valid\x20`response`.\n\n\x20If\x20`\
24865    done`\x20==\x20`false`\x20and\x20the\x20query\x20result\x20is\x20being\
24866    \x20saved\x20in\x20a\x20output,\x20the\n\x20output_config\x20field\x20wi\
24867    ll\x20be\x20set.\n\x20If\x20`done`\x20==\x20`true`,\x20exactly\x20one\
24868    \x20of\n\x20`error`,\x20`query_result`\x20or\x20`output_config`\x20will\
24869    \x20be\x20set.\n\n\r\n\x05\x04.\x02\x01\x05\x12\x04\xa8\x0f\x02\x06\n\r\
24870    \n\x05\x04.\x02\x01\x01\x12\x04\xa8\x0f\x07\x0b\n\r\n\x05\x04.\x02\x01\
24871    \x03\x12\x04\xa8\x0f\x0e\x0f\n\x0e\n\x04\x04.\x08\0\x12\x06\xaa\x0f\x02\
24872    \xb4\x0f\x03\n\r\n\x05\x04.\x08\0\x01\x12\x04\xaa\x0f\x08\x10\n\x1d\n\
24873    \x04\x04.\x02\x02\x12\x04\xac\x0f\x04\x20\x1a\x0f\x20Error\x20status.\n\
24874    \n\r\n\x05\x04.\x02\x02\x06\x12\x04\xac\x0f\x04\x15\n\r\n\x05\x04.\x02\
24875    \x02\x01\x12\x04\xac\x0f\x16\x1b\n\r\n\x05\x04.\x02\x02\x03\x12\x04\xac\
24876    \x0f\x1e\x1f\n$\n\x04\x04.\x02\x03\x12\x04\xaf\x0f\x04!\x1a\x16\x20Resul\
24877    t\x20of\x20the\x20query.\n\n\r\n\x05\x04.\x02\x03\x06\x12\x04\xaf\x0f\
24878    \x04\x0f\n\r\n\x05\x04.\x02\x03\x01\x12\x04\xaf\x0f\x10\x1c\n\r\n\x05\
24879    \x04.\x02\x03\x03\x12\x04\xaf\x0f\x1f\x20\n\xa1\x01\n\x04\x04.\x02\x04\
24880    \x12\x04\xb3\x0f\x04.\x1a\x92\x01\x20Output\x20configuration\x20which\
24881    \x20indicates\x20instead\x20of\x20being\x20returned\x20in\x20API\n\x20re\
24882    sponse\x20on\x20the\x20fly,\x20the\x20query\x20result\x20will\x20be\x20s\
24883    aved\x20in\x20a\x20specific\x20output.\n\n\r\n\x05\x04.\x02\x04\x06\x12\
24884    \x04\xb3\x0f\x04\x1b\n\r\n\x05\x04.\x02\x04\x01\x12\x04\xb3\x0f\x1c)\n\r\
24885    \n\x05\x04.\x02\x04\x03\x12\x04\xb3\x0f,-\n\xeb\x01\n\x02\x04/\x12\x06\
24886    \xbc\x0f\0\xc8\x0f\x01\x1a\xdc\x01\x20Execution\x20results\x20of\x20the\
24887    \x20query.\n\n\x20The\x20result\x20is\x20formatted\x20as\x20rows\x20repr\
24888    esented\x20by\x20BigQuery\x20compatible\x20[schema].\n\x20When\x20pagina\
24889    tion\x20is\x20necessary,\x20it\x20will\x20contains\x20the\x20page\x20tok\
24890    en\x20to\x20retrieve\n\x20the\x20results\x20of\x20following\x20pages.\n\
24891    \n\x0b\n\x03\x04/\x01\x12\x04\xbc\x0f\x08\x13\nG\n\x04\x04/\x02\0\x12\
24892    \x04\xbe\x0f\x02+\x1a9\x20Each\x20row\x20hold\x20a\x20query\x20result\
24893    \x20in\x20the\x20format\x20of\x20`Struct`.\n\n\r\n\x05\x04/\x02\0\x04\
24894    \x12\x04\xbe\x0f\x02\n\n\r\n\x05\x04/\x02\0\x06\x12\x04\xbe\x0f\x0b!\n\r\
24895    \n\x05\x04/\x02\0\x01\x12\x04\xbe\x0f\"&\n\r\n\x05\x04/\x02\0\x03\x12\
24896    \x04\xbe\x0f)*\n3\n\x04\x04/\x02\x01\x12\x04\xc1\x0f\x02\x19\x1a%\x20Des\
24897    cribes\x20the\x20format\x20of\x20the\x20[rows].\n\n\r\n\x05\x04/\x02\x01\
24898    \x06\x12\x04\xc1\x0f\x02\r\n\r\n\x05\x04/\x02\x01\x01\x12\x04\xc1\x0f\
24899    \x0e\x14\n\r\n\x05\x04/\x02\x01\x03\x12\x04\xc1\x0f\x17\x18\n?\n\x04\x04\
24900    /\x02\x02\x12\x04\xc4\x0f\x02\x1d\x1a1\x20Token\x20to\x20retrieve\x20the\
24901    \x20next\x20page\x20of\x20the\x20results.\n\n\r\n\x05\x04/\x02\x02\x05\
24902    \x12\x04\xc4\x0f\x02\x08\n\r\n\x05\x04/\x02\x02\x01\x12\x04\xc4\x0f\t\
24903    \x18\n\r\n\x05\x04/\x02\x02\x03\x12\x04\xc4\x0f\x1b\x1c\n6\n\x04\x04/\
24904    \x02\x03\x12\x04\xc7\x0f\x02\x17\x1a(\x20Total\x20rows\x20of\x20the\x20w\
24905    hole\x20query\x20results.\n\n\r\n\x05\x04/\x02\x03\x05\x12\x04\xc7\x0f\
24906    \x02\x07\n\r\n\x05\x04/\x02\x03\x01\x12\x04\xc7\x0f\x08\x12\n\r\n\x05\
24907    \x04/\x02\x03\x03\x12\x04\xc7\x0f\x15\x16\n1\n\x02\x040\x12\x06\xcb\x0f\
24908    \0\xce\x0f\x01\x1a#\x20BigQuery\x20Compatible\x20table\x20schema.\n\n\
24909    \x0b\n\x03\x040\x01\x12\x04\xcb\x0f\x08\x13\n0\n\x04\x040\x02\0\x12\x04\
24910    \xcd\x0f\x02'\x1a\"\x20Describes\x20the\x20fields\x20in\x20a\x20table.\n\
24911    \n\r\n\x05\x040\x02\0\x04\x12\x04\xcd\x0f\x02\n\n\r\n\x05\x040\x02\0\x06\
24912    \x12\x04\xcd\x0f\x0b\x1b\n\r\n\x05\x040\x02\0\x01\x12\x04\xcd\x0f\x1c\"\
24913    \n\r\n\x05\x040\x02\0\x03\x12\x04\xcd\x0f%&\n'\n\x02\x041\x12\x06\xd1\
24914    \x0f\0\xef\x0f\x01\x1a\x19\x20A\x20field\x20in\x20TableSchema.\n\n\x0b\n\
24915    \x03\x041\x01\x12\x04\xd1\x0f\x08\x18\n\xc6\x01\n\x04\x041\x02\0\x12\x04\
24916    \xd5\x0f\x02\x13\x1a\xb7\x01\x20The\x20field\x20name.\x20The\x20name\x20\
24917    must\x20contain\x20only\x20letters\x20(a-z,\x20A-Z),\n\x20numbers\x20(0-\
24918    9),\x20or\x20underscores\x20(_),\x20and\x20must\x20start\x20with\x20a\
24919    \x20letter\x20or\n\x20underscore.\x20The\x20maximum\x20length\x20is\x201\
24920    28\x20characters.\n\n\r\n\x05\x041\x02\0\x05\x12\x04\xd5\x0f\x02\x08\n\r\
24921    \n\x05\x041\x02\0\x01\x12\x04\xd5\x0f\t\x0e\n\r\n\x05\x041\x02\0\x03\x12\
24922    \x04\xd5\x0f\x11\x12\n\x8e\x02\n\x04\x041\x02\x01\x12\x04\xe6\x0f\x02\
24923    \x12\x1a\xff\x01\x20The\x20field\x20data\x20type.\x20Possible\x20values\
24924    \x20include\n\x20*\x20STRING\n\x20*\x20BYTES\n\x20*\x20INTEGER\n\x20*\
24925    \x20FLOAT\n\x20*\x20BOOLEAN\n\x20*\x20TIMESTAMP\n\x20*\x20DATE\n\x20*\
24926    \x20TIME\n\x20*\x20DATETIME\n\x20*\x20GEOGRAPHY,\n\x20*\x20NUMERIC,\n\
24927    \x20*\x20BIGNUMERIC,\n\x20*\x20RECORD\n\x20(where\x20RECORD\x20indicates\
24928    \x20that\x20the\x20field\x20contains\x20a\x20nested\x20schema).\n\n\r\n\
24929    \x05\x041\x02\x01\x05\x12\x04\xe6\x0f\x02\x08\n\r\n\x05\x041\x02\x01\x01\
24930    \x12\x04\xe6\x0f\t\r\n\r\n\x05\x041\x02\x01\x03\x12\x04\xe6\x0f\x10\x11\
24931    \nx\n\x04\x041\x02\x02\x12\x04\xea\x0f\x02\x12\x1aj\x20The\x20field\x20m\
24932    ode.\x20Possible\x20values\x20include\x20NULLABLE,\x20REQUIRED\x20and\n\
24933    \x20REPEATED.\x20The\x20default\x20value\x20is\x20NULLABLE.\n\n\r\n\x05\
24934    \x041\x02\x02\x05\x12\x04\xea\x0f\x02\x08\n\r\n\x05\x041\x02\x02\x01\x12\
24935    \x04\xea\x0f\t\r\n\r\n\x05\x041\x02\x02\x03\x12\x04\xea\x0f\x10\x11\nZ\n\
24936    \x04\x041\x02\x03\x12\x04\xee\x0f\x02'\x1aL\x20Describes\x20the\x20neste\
24937    d\x20schema\x20fields\x20if\x20the\x20type\x20property\x20is\x20set\n\
24938    \x20to\x20RECORD.\n\n\r\n\x05\x041\x02\x03\x04\x12\x04\xee\x0f\x02\n\n\r\
24939    \n\x05\x041\x02\x03\x06\x12\x04\xee\x0f\x0b\x1b\n\r\n\x05\x041\x02\x03\
24940    \x01\x12\x04\xee\x0f\x1c\"\n\r\n\x05\x041\x02\x03\x03\x12\x04\xee\x0f%&\
24941    \n\x95\x01\n\x02\x042\x12\x06\xf3\x0f\0\x8d\x10\x01\x1a\x86\x01\x20A\x20\
24942    request\x20message\x20for\n\x20[AssetService.BatchGetEffectiveIamPolicie\
24943    s][google.cloud.asset.v1.AssetService.BatchGetEffectiveIamPolicies].\n\n\
24944    \x0b\n\x03\x042\x01\x12\x04\xf3\x0f\x08+\n\xfd\x04\n\x04\x042\x02\0\x12\
24945    \x06\xff\x0f\x02\x82\x10\x04\x1a\xec\x04\x20Required.\x20Only\x20IAM\x20\
24946    policies\x20on\x20or\x20below\x20the\x20scope\x20will\x20be\x20returned.\
24947    \n\n\x20This\x20can\x20only\x20be\x20an\x20organization\x20number\x20(su\
24948    ch\x20as\x20\"organizations/123\"),\x20a\n\x20folder\x20number\x20(such\
24949    \x20as\x20\"folders/123\"),\x20a\x20project\x20ID\x20(such\x20as\n\x20\"\
24950    projects/my-project-id\"),\x20or\x20a\x20project\x20number\x20(such\x20a\
24951    s\x20\"projects/12345\").\n\n\x20To\x20know\x20how\x20to\x20get\x20organ\
24952    ization\x20id,\x20visit\x20[here\n\x20](https://cloud.google.com/resourc\
24953    e-manager/docs/creating-managing-organization#retrieving_your_organizati\
24954    on_id).\n\n\x20To\x20know\x20how\x20to\x20get\x20folder\x20or\x20project\
24955    \x20id,\x20visit\x20[here\n\x20](https://cloud.google.com/resource-manag\
24956    er/docs/creating-managing-folders#viewing_or_listing_folders_and_project\
24957    s).\n\n\r\n\x05\x042\x02\0\x05\x12\x04\xff\x0f\x02\x08\n\r\n\x05\x042\
24958    \x02\0\x01\x12\x04\xff\x0f\t\x0e\n\r\n\x05\x042\x02\0\x03\x12\x04\xff\
24959    \x0f\x11\x12\n\x0f\n\x05\x042\x02\0\x08\x12\x06\xff\x0f\x13\x82\x10\x03\
24960    \n\x10\n\x08\x042\x02\0\x08\x9c\x08\0\x12\x04\x80\x10\x04*\n\x0f\n\x07\
24961    \x042\x02\0\x08\x9f\x08\x12\x04\x81\x10\x049\n\xd6\x02\n\x04\x042\x02\
24962    \x01\x12\x06\x89\x10\x02\x8c\x10\x04\x1a\xc5\x02\x20Required.\x20The\x20\
24963    names\x20refer\x20to\x20the\x20[full_resource_names]\n\x20(https://cloud\
24964    .google.com/asset-inventory/docs/resource-name-format)\n\x20of\x20[searc\
24965    hable\x20asset\n\x20types](https://cloud.google.com/asset-inventory/docs\
24966    /supported-asset-types#searchable_asset_types).\n\x20A\x20maximum\x20of\
24967    \x2020\x20resources'\x20effective\x20policies\x20can\x20be\x20retrieved\
24968    \x20in\x20a\x20batch.\n\n\r\n\x05\x042\x02\x01\x04\x12\x04\x89\x10\x02\n\
24969    \n\r\n\x05\x042\x02\x01\x05\x12\x04\x89\x10\x0b\x11\n\r\n\x05\x042\x02\
24970    \x01\x01\x12\x04\x89\x10\x12\x17\n\r\n\x05\x042\x02\x01\x03\x12\x04\x89\
24971    \x10\x1a\x1b\n\x0f\n\x05\x042\x02\x01\x08\x12\x06\x89\x10\x1c\x8c\x10\
24972    \x03\n\x10\n\x08\x042\x02\x01\x08\x9c\x08\0\x12\x04\x8a\x10\x04*\n\x0f\n\
24973    \x07\x042\x02\x01\x08\x9f\x08\x12\x04\x8b\x10\x043\n\x96\x01\n\x02\x043\
24974    \x12\x06\x91\x10\0\xc7\x10\x01\x1a\x87\x01\x20A\x20response\x20message\
24975    \x20for\n\x20[AssetService.BatchGetEffectiveIamPolicies][google.cloud.as\
24976    set.v1.AssetService.BatchGetEffectiveIamPolicies].\n\n\x0b\n\x03\x043\
24977    \x01\x12\x04\x91\x10\x08,\n=\n\x04\x043\x03\0\x12\x06\x93\x10\x02\xbe\
24978    \x10\x03\x1a-\x20The\x20effective\x20IAM\x20policies\x20on\x20one\x20res\
24979    ource.\n\n\r\n\x05\x043\x03\0\x01\x12\x04\x93\x10\n\x1c\n=\n\x06\x043\
24980    \x03\0\x03\0\x12\x06\x95\x10\x04\x9e\x10\x05\x1a+\x20The\x20IAM\x20polic\
24981    y\x20and\x20its\x20attached\x20resource.\n\n\x0f\n\x07\x043\x03\0\x03\0\
24982    \x01\x12\x04\x95\x10\x0c\x16\n\xb4\x01\n\x08\x043\x03\0\x03\0\x02\0\x12\
24983    \x04\x99\x10\x06#\x1a\xa1\x01\x20The\x20full\x20resource\x20name\x20the\
24984    \n\x20[policy][google.cloud.asset.v1.BatchGetEffectiveIamPoliciesRespons\
24985    e.EffectiveIamPolicy.PolicyInfo.policy]\n\x20is\x20directly\x20attached\
24986    \x20to.\n\n\x11\n\t\x043\x03\0\x03\0\x02\0\x05\x12\x04\x99\x10\x06\x0c\n\
24987    \x11\n\t\x043\x03\0\x03\0\x02\0\x01\x12\x04\x99\x10\r\x1e\n\x11\n\t\x043\
24988    \x03\0\x03\0\x02\0\x03\x12\x04\x99\x10!\"\n\xc5\x01\n\x08\x043\x03\0\x03\
24989    \0\x02\x01\x12\x04\x9d\x10\x06&\x1a\xb2\x01\x20The\x20IAM\x20policy\x20t\
24990    hat's\x20directly\x20attached\x20to\x20the\n\x20[attached_resource][goog\
24991    le.cloud.asset.v1.BatchGetEffectiveIamPoliciesResponse.EffectiveIamPolic\
24992    y.PolicyInfo.attached_resource].\n\n\x11\n\t\x043\x03\0\x03\0\x02\x01\
24993    \x06\x12\x04\x9d\x10\x06\x1a\n\x11\n\t\x043\x03\0\x03\0\x02\x01\x01\x12\
24994    \x04\x9d\x10\x1b!\n\x11\n\t\x043\x03\0\x03\0\x02\x01\x03\x12\x04\x9d\x10\
24995    $%\n\x99\x03\n\x06\x043\x03\0\x02\0\x12\x04\xa7\x10\x04\"\x1a\x88\x03\
24996    \x20The\x20[full_resource_name]\n\x20(https://cloud.google.com/asset-inv\
24997    entory/docs/resource-name-format)\n\x20for\x20which\x20the\n\x20[policie\
24998    s][google.cloud.asset.v1.BatchGetEffectiveIamPoliciesResponse.EffectiveI\
24999    amPolicy.policies]\n\x20are\x20computed.\x20This\x20is\x20one\x20of\x20t\
25000    he\n\x20[BatchGetEffectiveIamPoliciesRequest.names][google.cloud.asset.v\
25001    1.BatchGetEffectiveIamPoliciesRequest.names]\n\x20the\x20caller\x20provi\
25002    des\x20in\x20the\x20request.\n\n\x0f\n\x07\x043\x03\0\x02\0\x05\x12\x04\
25003    \xa7\x10\x04\n\n\x0f\n\x07\x043\x03\0\x02\0\x01\x12\x04\xa7\x10\x0b\x1d\
25004    \n\x0f\n\x07\x043\x03\0\x02\0\x03\x12\x04\xa7\x10\x20!\n\x95\x0b\n\x06\
25005    \x043\x03\0\x02\x01\x12\x04\xbd\x10\x04%\x1a\x84\x0b\x20The\x20effective\
25006    \x20policies\x20for\x20the\n\x20[full_resource_name][google.cloud.asset.\
25007    v1.BatchGetEffectiveIamPoliciesResponse.EffectiveIamPolicy.full_resource\
25008    _name].\n\n\x20These\x20policies\x20include\x20the\x20policy\x20set\x20o\
25009    n\x20the\n\x20[full_resource_name][google.cloud.asset.v1.BatchGetEffecti\
25010    veIamPoliciesResponse.EffectiveIamPolicy.full_resource_name]\n\x20and\
25011    \x20those\x20set\x20on\x20its\x20parents\x20and\x20ancestors\x20up\x20to\
25012    \x20the\n\x20[BatchGetEffectiveIamPoliciesRequest.scope][google.cloud.as\
25013    set.v1.BatchGetEffectiveIamPoliciesRequest.scope].\n\x20Note\x20that\x20\
25014    these\x20policies\x20are\x20not\x20filtered\x20according\x20to\x20the\
25015    \x20resource\x20type\n\x20of\x20the\n\x20[full_resource_name][google.clo\
25016    ud.asset.v1.BatchGetEffectiveIamPoliciesResponse.EffectiveIamPolicy.full\
25017    _resource_name].\n\n\x20These\x20policies\x20are\x20hierarchically\x20or\
25018    dered\x20by\n\x20[PolicyInfo.attached_resource][google.cloud.asset.v1.Ba\
25019    tchGetEffectiveIamPoliciesResponse.EffectiveIamPolicy.PolicyInfo.attache\
25020    d_resource]\n\x20starting\x20from\n\x20[full_resource_name][google.cloud\
25021    .asset.v1.BatchGetEffectiveIamPoliciesResponse.EffectiveIamPolicy.full_r\
25022    esource_name]\n\x20itself\x20to\x20its\x20parents\x20and\x20ancestors,\
25023    \x20such\x20that\x20policies[i]'s\n\x20[PolicyInfo.attached_resource][go\
25024    ogle.cloud.asset.v1.BatchGetEffectiveIamPoliciesResponse.EffectiveIamPol\
25025    icy.PolicyInfo.attached_resource]\n\x20is\x20the\x20child\x20of\x20polic\
25026    ies[i+1]'s\n\x20[PolicyInfo.attached_resource][google.cloud.asset.v1.Bat\
25027    chGetEffectiveIamPoliciesResponse.EffectiveIamPolicy.PolicyInfo.attached\
25028    _resource],\n\x20if\x20policies[i+1]\x20exists.\n\n\x0f\n\x07\x043\x03\0\
25029    \x02\x01\x04\x12\x04\xbd\x10\x04\x0c\n\x0f\n\x07\x043\x03\0\x02\x01\x06\
25030    \x12\x04\xbd\x10\r\x17\n\x0f\n\x07\x043\x03\0\x02\x01\x01\x12\x04\xbd\
25031    \x10\x18\x20\n\x0f\n\x07\x043\x03\0\x02\x01\x03\x12\x04\xbd\x10#$\n\xd0\
25032    \x03\n\x04\x043\x02\0\x12\x04\xc6\x10\x021\x1a\xc1\x03\x20The\x20effecti\
25033    ve\x20policies\x20for\x20a\x20batch\x20of\x20resources.\x20Note\x20that\
25034    \x20the\x20results\n\x20order\x20is\x20the\x20same\x20as\x20the\x20order\
25035    \x20of\n\x20[BatchGetEffectiveIamPoliciesRequest.names][google.cloud.ass\
25036    et.v1.BatchGetEffectiveIamPoliciesRequest.names].\n\x20When\x20a\x20reso\
25037    urce\x20does\x20not\x20have\x20any\x20effective\x20IAM\x20policies,\x20i\
25038    ts\x20corresponding\n\x20policy_result\x20will\x20contain\x20empty\n\x20\
25039    [EffectiveIamPolicy.policies][google.cloud.asset.v1.BatchGetEffectiveIam\
25040    PoliciesResponse.EffectiveIamPolicy.policies].\n\n\r\n\x05\x043\x02\0\
25041    \x04\x12\x04\xc6\x10\x02\n\n\r\n\x05\x043\x02\0\x06\x12\x04\xc6\x10\x0b\
25042    \x1d\n\r\n\x05\x043\x02\0\x01\x12\x04\xc6\x10\x1e,\n\r\n\x05\x043\x02\0\
25043    \x03\x12\x04\xc6\x10/0\n\xfc\x01\n\x02\x044\x12\x06\xcd\x10\0\x95\x11\
25044    \x01\x1a\xed\x01\x20This\x20organization\x20policy\x20message\x20is\x20a\
25045    \x20modified\x20version\x20of\x20the\x20one\x20defined\x20in\n\x20the\
25046    \x20Organization\x20Policy\x20system.\x20This\x20message\x20contains\x20\
25047    several\x20fields\x20defined\n\x20in\x20the\x20original\x20organization\
25048    \x20policy\x20with\x20some\x20new\x20fields\x20for\x20analysis\n\x20purp\
25049    ose.\n\n\x0b\n\x03\x044\x01\x12\x04\xcd\x10\x08\x19\n\x96\x02\n\x04\x044\
25050    \x03\0\x12\x06\xd2\x10\x02\xf1\x10\x03\x1a\x85\x02\x20This\x20rule\x20me\
25051    ssage\x20is\x20a\x20customized\x20version\x20of\x20the\x20one\x20defined\
25052    \x20in\x20the\n\x20Organization\x20Policy\x20system.\x20In\x20addition\
25053    \x20to\x20the\x20fields\x20defined\x20in\x20the\n\x20original\x20organiz\
25054    ation\x20policy,\x20it\x20contains\x20additional\x20field(s)\x20under\n\
25055    \x20specific\x20circumstances\x20to\x20support\x20analysis\x20results.\n\
25056    \n\r\n\x05\x044\x03\0\x01\x12\x04\xd2\x10\n\x0e\n?\n\x06\x044\x03\0\x03\
25057    \0\x12\x06\xd4\x10\x04\xda\x10\x05\x1a-\x20The\x20string\x20values\x20fo\
25058    r\x20the\x20list\x20constraints.\n\n\x0f\n\x07\x044\x03\0\x03\0\x01\x12\
25059    \x04\xd4\x10\x0c\x18\n<\n\x08\x044\x03\0\x03\0\x02\0\x12\x04\xd6\x10\x06\
25060    )\x1a*\x20List\x20of\x20values\x20allowed\x20at\x20this\x20resource.\n\n\
25061    \x11\n\t\x044\x03\0\x03\0\x02\0\x04\x12\x04\xd6\x10\x06\x0e\n\x11\n\t\
25062    \x044\x03\0\x03\0\x02\0\x05\x12\x04\xd6\x10\x0f\x15\n\x11\n\t\x044\x03\0\
25063    \x03\0\x02\0\x01\x12\x04\xd6\x10\x16$\n\x11\n\t\x044\x03\0\x03\0\x02\0\
25064    \x03\x12\x04\xd6\x10'(\n;\n\x08\x044\x03\0\x03\0\x02\x01\x12\x04\xd9\x10\
25065    \x06(\x1a)\x20List\x20of\x20values\x20denied\x20at\x20this\x20resource.\
25066    \n\n\x11\n\t\x044\x03\0\x03\0\x02\x01\x04\x12\x04\xd9\x10\x06\x0e\n\x11\
25067    \n\t\x044\x03\0\x03\0\x02\x01\x05\x12\x04\xd9\x10\x0f\x15\n\x11\n\t\x044\
25068    \x03\0\x03\0\x02\x01\x01\x12\x04\xd9\x10\x16#\n\x11\n\t\x044\x03\0\x03\0\
25069    \x02\x01\x03\x12\x04\xd9\x10&'\n\x10\n\x06\x044\x03\0\x08\0\x12\x06\xdc\
25070    \x10\x04\xed\x10\x05\n\x0f\n\x07\x044\x03\0\x08\0\x01\x12\x04\xdc\x10\n\
25071    \x0e\n~\n\x06\x044\x03\0\x02\0\x12\x04\xdf\x10\x06\x1e\x1an\x20List\x20o\
25072    f\x20values\x20to\x20be\x20used\x20for\x20this\x20PolicyRule.\x20This\
25073    \x20field\x20can\x20be\x20set\n\x20only\x20in\x20Policies\x20for\x20list\
25074    \x20constraints.\n\n\x0f\n\x07\x044\x03\0\x02\0\x06\x12\x04\xdf\x10\x06\
25075    \x12\n\x0f\n\x07\x044\x03\0\x02\0\x01\x12\x04\xdf\x10\x13\x19\n\x0f\n\
25076    \x07\x044\x03\0\x02\0\x03\x12\x04\xdf\x10\x1c\x1d\n\x87\x01\n\x06\x044\
25077    \x03\0\x02\x01\x12\x04\xe3\x10\x06\x19\x1aw\x20Setting\x20this\x20to\x20\
25078    true\x20means\x20that\x20all\x20values\x20are\x20allowed.\x20This\x20fie\
25079    ld\x20can\n\x20be\x20set\x20only\x20in\x20Policies\x20for\x20list\x20con\
25080    straints.\n\n\x0f\n\x07\x044\x03\0\x02\x01\x05\x12\x04\xe3\x10\x06\n\n\
25081    \x0f\n\x07\x044\x03\0\x02\x01\x01\x12\x04\xe3\x10\x0b\x14\n\x0f\n\x07\
25082    \x044\x03\0\x02\x01\x03\x12\x04\xe3\x10\x17\x18\n\x86\x01\n\x06\x044\x03\
25083    \0\x02\x02\x12\x04\xe7\x10\x06\x18\x1av\x20Setting\x20this\x20to\x20true\
25084    \x20means\x20that\x20all\x20values\x20are\x20denied.\x20This\x20field\
25085    \x20can\n\x20be\x20set\x20only\x20in\x20Policies\x20for\x20list\x20const\
25086    raints.\n\n\x0f\n\x07\x044\x03\0\x02\x02\x05\x12\x04\xe7\x10\x06\n\n\x0f\
25087    \n\x07\x044\x03\0\x02\x02\x01\x12\x04\xe7\x10\x0b\x13\n\x0f\n\x07\x044\
25088    \x03\0\x02\x02\x03\x12\x04\xe7\x10\x16\x17\n\xb0\x01\n\x06\x044\x03\0\
25089    \x02\x03\x12\x04\xec\x10\x06\x17\x1a\x9f\x01\x20If\x20`true`,\x20then\
25090    \x20the\x20`Policy`\x20is\x20enforced.\x20If\x20`false`,\x20then\x20any\
25091    \n\x20configuration\x20is\x20acceptable.\n\x20This\x20field\x20can\x20be\
25092    \x20set\x20only\x20in\x20Policies\x20for\x20boolean\x20constraints.\n\n\
25093    \x0f\n\x07\x044\x03\0\x02\x03\x05\x12\x04\xec\x10\x06\n\n\x0f\n\x07\x044\
25094    \x03\0\x02\x03\x01\x12\x04\xec\x10\x0b\x12\n\x0f\n\x07\x044\x03\0\x02\
25095    \x03\x03\x12\x04\xec\x10\x15\x16\n9\n\x06\x044\x03\0\x02\x04\x12\x04\xf0\
25096    \x10\x04#\x1a)\x20The\x20evaluating\x20condition\x20for\x20this\x20rule.\
25097    \n\n\x0f\n\x07\x044\x03\0\x02\x04\x06\x12\x04\xf0\x10\x04\x14\n\x0f\n\
25098    \x07\x044\x03\0\x02\x04\x01\x12\x04\xf0\x10\x15\x1e\n\x0f\n\x07\x044\x03\
25099    \0\x02\x04\x03\x12\x04\xf0\x10!\"\n\xaf\x02\n\x04\x044\x02\0\x12\x04\xfa\
25100    \x10\x02\x1f\x1a\xa0\x02\x20The\x20[full\x20resource\x20name]\n\x20(http\
25101    s://cloud.google.com/asset-inventory/docs/resource-name-format)\x20of\n\
25102    \x20an\x20organization/folder/project\x20resource\x20where\x20this\x20or\
25103    ganization\x20policy\x20is\n\x20set.\n\n\x20Notice\x20that\x20some\x20ty\
25104    pe\x20of\x20constraints\x20are\x20defined\x20with\x20default\x20policy.\
25105    \x20This\n\x20field\x20will\x20be\x20empty\x20for\x20them.\n\n\r\n\x05\
25106    \x044\x02\0\x05\x12\x04\xfa\x10\x02\x08\n\r\n\x05\x044\x02\0\x01\x12\x04\
25107    \xfa\x10\t\x1a\n\r\n\x05\x044\x02\0\x03\x12\x04\xfa\x10\x1d\x1e\n\xeb\
25108    \x02\n\x04\x044\x02\x01\x12\x04\x84\x11\x02\x1e\x1a\xdc\x02\x20The\x20[f\
25109    ull\x20resource\x20name]\n\x20(https://cloud.google.com/asset-inventory/\
25110    docs/resource-name-format)\x20of\n\x20an\x20organization/folder/project\
25111    \x20resource\x20where\x20this\x20organization\x20policy\n\x20applies\x20\
25112    to.\n\n\x20For\x20any\x20user\x20defined\x20org\x20policies,\x20this\x20\
25113    field\x20has\x20the\x20same\x20value\x20as\n\x20the\x20[attached_resourc\
25114    e]\x20field.\x20Only\x20for\x20default\x20policy,\x20this\x20field\x20ha\
25115    s\n\x20the\x20different\x20value.\n\n\r\n\x05\x044\x02\x01\x05\x12\x04\
25116    \x84\x11\x02\x08\n\r\n\x05\x044\x02\x01\x01\x12\x04\x84\x11\t\x19\n\r\n\
25117    \x05\x044\x02\x01\x03\x12\x04\x84\x11\x1c\x1d\n;\n\x04\x044\x02\x02\x12\
25118    \x04\x87\x11\x02\x1a\x1a-\x20List\x20of\x20rules\x20for\x20this\x20organ\
25119    ization\x20policy.\n\n\r\n\x05\x044\x02\x02\x04\x12\x04\x87\x11\x02\n\n\
25120    \r\n\x05\x044\x02\x02\x06\x12\x04\x87\x11\x0b\x0f\n\r\n\x05\x044\x02\x02\
25121    \x01\x12\x04\x87\x11\x10\x15\n\r\n\x05\x044\x02\x02\x03\x12\x04\x87\x11\
25122    \x18\x19\n\x8e\x02\n\x04\x044\x02\x03\x12\x04\x8d\x11\x02\x1f\x1a\xff\
25123    \x01\x20If\x20`inherit_from_parent`\x20is\x20true,\x20Rules\x20set\x20hi\
25124    gher\x20up\x20in\x20the\n\x20hierarchy\x20(up\x20to\x20the\x20closest\
25125    \x20root)\x20are\x20inherited\x20and\x20present\x20in\x20the\n\x20effect\
25126    ive\x20policy.\x20If\x20it\x20is\x20false,\x20then\x20no\x20rules\x20are\
25127    \x20inherited,\x20and\x20this\n\x20policy\x20becomes\x20the\x20effective\
25128    \x20root\x20for\x20evaluation.\n\n\r\n\x05\x044\x02\x03\x05\x12\x04\x8d\
25129    \x11\x02\x06\n\r\n\x05\x044\x02\x03\x01\x12\x04\x8d\x11\x07\x1a\n\r\n\
25130    \x05\x044\x02\x03\x03\x12\x04\x8d\x11\x1d\x1e\n\x9b\x02\n\x04\x044\x02\
25131    \x04\x12\x04\x94\x11\x02\x11\x1a\x8c\x02\x20Ignores\x20policies\x20set\
25132    \x20above\x20this\x20resource\x20and\x20restores\x20the\x20default\x20be\
25133    havior\n\x20of\x20the\x20constraint\x20at\x20this\x20resource.\n\x20This\
25134    \x20field\x20can\x20be\x20set\x20in\x20policies\x20for\x20either\x20list\
25135    \x20or\x20boolean\n\x20constraints.\x20If\x20set,\x20`rules`\x20must\x20\
25136    be\x20empty\x20and\x20`inherit_from_parent`\n\x20must\x20be\x20set\x20to\
25137    \x20false.\n\n\r\n\x05\x044\x02\x04\x05\x12\x04\x94\x11\x02\x06\n\r\n\
25138    \x05\x044\x02\x04\x01\x12\x04\x94\x11\x07\x0c\n\r\n\x05\x044\x02\x04\x03\
25139    \x12\x04\x94\x11\x0f\x10\n>\n\x02\x045\x12\x06\x98\x11\0\xa3\x12\x01\x1a\
25140    0\x20The\x20organization\x20policy\x20constraint\x20definition.\n\n\x0b\
25141    \n\x03\x045\x01\x12\x04\x98\x11\x08#\n1\n\x04\x045\x03\0\x12\x06\x9a\x11\
25142    \x02\xdb\x11\x03\x1a!\x20The\x20definition\x20of\x20a\x20constraint.\n\n\
25143    \r\n\x05\x045\x03\0\x01\x12\x04\x9a\x11\n\x14\n\x9c\x01\n\x06\x045\x03\0\
25144    \x04\0\x12\x06\x9d\x11\x04\xa9\x11\x05\x1a\x89\x01\x20Specifies\x20the\
25145    \x20default\x20behavior\x20in\x20the\x20absence\x20of\x20any\x20`Policy`\
25146    \x20for\x20the\n\x20`Constraint`.\x20This\x20must\x20not\x20be\x20`CONST\
25147    RAINT_DEFAULT_UNSPECIFIED`.\n\n\x0f\n\x07\x045\x03\0\x04\0\x01\x12\x04\
25148    \x9d\x11\t\x1a\n`\n\x08\x045\x03\0\x04\0\x02\0\x12\x04\xa0\x11\x06)\x1aN\
25149    \x20This\x20is\x20only\x20used\x20for\x20distinguishing\x20unset\x20valu\
25150    es\x20and\x20should\x20never\x20be\n\x20used.\n\n\x11\n\t\x045\x03\0\x04\
25151    \0\x02\0\x01\x12\x04\xa0\x11\x06$\n\x11\n\t\x045\x03\0\x04\0\x02\0\x02\
25152    \x12\x04\xa0\x11'(\n\x89\x01\n\x08\x045\x03\0\x04\0\x02\x01\x12\x04\xa4\
25153    \x11\x06\x10\x1aw\x20Indicate\x20that\x20all\x20values\x20are\x20allowed\
25154    \x20for\x20list\x20constraints.\n\x20Indicate\x20that\x20enforcement\x20\
25155    is\x20off\x20for\x20boolean\x20constraints.\n\n\x11\n\t\x045\x03\0\x04\0\
25156    \x02\x01\x01\x12\x04\xa4\x11\x06\x0b\n\x11\n\t\x045\x03\0\x04\0\x02\x01\
25157    \x02\x12\x04\xa4\x11\x0e\x0f\n\x87\x01\n\x08\x045\x03\0\x04\0\x02\x02\
25158    \x12\x04\xa8\x11\x06\x0f\x1au\x20Indicate\x20that\x20all\x20values\x20ar\
25159    e\x20denied\x20for\x20list\x20constraints.\n\x20Indicate\x20that\x20enfo\
25160    rcement\x20is\x20on\x20for\x20boolean\x20constraints.\n\n\x11\n\t\x045\
25161    \x03\0\x04\0\x02\x02\x01\x12\x04\xa8\x11\x06\n\n\x11\n\t\x045\x03\0\x04\
25162    \0\x02\x02\x02\x12\x04\xa8\x11\r\x0e\n\xa6\x01\n\x06\x045\x03\0\x03\0\
25163    \x12\x06\xad\x11\x04\xb8\x11\x05\x1a\x93\x01\x20A\x20`Constraint`\x20tha\
25164    t\x20allows\x20or\x20disallows\x20a\x20list\x20of\x20string\x20values,\
25165    \x20which\n\x20are\x20configured\x20by\x20an\x20organization's\x20policy\
25166    \x20administrator\x20with\x20a\x20`Policy`.\n\n\x0f\n\x07\x045\x03\0\x03\
25167    \0\x01\x12\x04\xad\x11\x0c\x1a\n\xd2\x01\n\x08\x045\x03\0\x03\0\x02\0\
25168    \x12\x04\xb1\x11\x06\x1b\x1a\xbf\x01\x20Indicates\x20whether\x20values\
25169    \x20grouped\x20into\x20categories\x20can\x20be\x20used\x20in\n\x20`Polic\
25170    y.allowed_values`\x20and\x20`Policy.denied_values`.\x20For\x20example,\n\
25171    \x20`\"in:Python\"`\x20would\x20match\x20any\x20value\x20in\x20the\x20'P\
25172    ython'\x20group.\n\n\x11\n\t\x045\x03\0\x03\0\x02\0\x05\x12\x04\xb1\x11\
25173    \x06\n\n\x11\n\t\x045\x03\0\x03\0\x02\0\x01\x12\x04\xb1\x11\x0b\x16\n\
25174    \x11\n\t\x045\x03\0\x03\0\x02\0\x03\x12\x04\xb1\x11\x19\x1a\n\xfe\x01\n\
25175    \x08\x045\x03\0\x03\0\x02\x01\x12\x04\xb7\x11\x06\x1e\x1a\xeb\x01\x20Ind\
25176    icates\x20whether\x20subtrees\x20of\x20Cloud\x20Resource\x20Manager\x20r\
25177    esource\x20hierarchy\n\x20can\x20be\x20used\x20in\x20`Policy.allowed_val\
25178    ues`\x20and\x20`Policy.denied_values`.\x20For\n\x20example,\x20`\"under:\
25179    folders/123\"`\x20would\x20match\x20any\x20resource\x20under\x20the\n\
25180    \x20'folders/123'\x20folder.\n\n\x11\n\t\x045\x03\0\x03\0\x02\x01\x05\
25181    \x12\x04\xb7\x11\x06\n\n\x11\n\t\x045\x03\0\x03\0\x02\x01\x01\x12\x04\
25182    \xb7\x11\x0b\x19\n\x11\n\t\x045\x03\0\x03\0\x02\x01\x03\x12\x04\xb7\x11\
25183    \x1c\x1d\n\xee\x01\n\x06\x045\x03\0\x03\x01\x12\x04\xbf\x11\x04\x20\x1a\
25184    \xdd\x01\x20A\x20`Constraint`\x20that\x20is\x20either\x20enforced\x20or\
25185    \x20not.\n\n\x20For\x20example\x20a\x20constraint\x20`constraints/comput\
25186    e.disableSerialPortAccess`.\n\x20If\x20it\x20is\x20enforced\x20on\x20a\
25187    \x20VM\x20instance,\x20serial\x20port\x20connections\x20will\x20not\x20b\
25188    e\n\x20opened\x20to\x20that\x20instance.\n\n\x0f\n\x07\x045\x03\0\x03\
25189    \x01\x01\x12\x04\xbf\x11\x0c\x1d\n\xb3\x01\n\x06\x045\x03\0\x02\0\x12\
25190    \x04\xc5\x11\x04\x14\x1a\xa2\x01\x20The\x20unique\x20name\x20of\x20the\
25191    \x20constraint.\x20Format\x20of\x20the\x20name\x20should\x20be\n\x20*\
25192    \x20`constraints/{constraint_name}`\n\n\x20For\x20example,\x20`constrain\
25193    ts/compute.disableSerialPortAccess`.\n\n\x0f\n\x07\x045\x03\0\x02\0\x05\
25194    \x12\x04\xc5\x11\x04\n\n\x0f\n\x07\x045\x03\0\x02\0\x01\x12\x04\xc5\x11\
25195    \x0b\x0f\n\x0f\n\x07\x045\x03\0\x02\0\x03\x12\x04\xc5\x11\x12\x13\n<\n\
25196    \x06\x045\x03\0\x02\x01\x12\x04\xc8\x11\x04\x1c\x1a,\x20The\x20human\x20\
25197    readable\x20name\x20of\x20the\x20constraint.\n\n\x0f\n\x07\x045\x03\0\
25198    \x02\x01\x05\x12\x04\xc8\x11\x04\n\n\x0f\n\x07\x045\x03\0\x02\x01\x01\
25199    \x12\x04\xc8\x11\x0b\x17\n\x0f\n\x07\x045\x03\0\x02\x01\x03\x12\x04\xc8\
25200    \x11\x1a\x1b\ns\n\x06\x045\x03\0\x02\x02\x12\x04\xcc\x11\x04\x1b\x1ac\
25201    \x20Detailed\x20description\x20of\x20what\x20this\x20`Constraint`\x20con\
25202    trols\x20as\x20well\x20as\x20how\n\x20and\x20where\x20it\x20is\x20enforc\
25203    ed.\n\n\x0f\n\x07\x045\x03\0\x02\x02\x05\x12\x04\xcc\x11\x04\n\n\x0f\n\
25204    \x07\x045\x03\0\x02\x02\x01\x12\x04\xcc\x11\x0b\x16\n\x0f\n\x07\x045\x03\
25205    \0\x02\x02\x03\x12\x04\xcc\x11\x19\x1a\nX\n\x06\x045\x03\0\x02\x03\x12\
25206    \x04\xcf\x11\x04-\x1aH\x20The\x20evaluation\x20behavior\x20of\x20this\
25207    \x20constraint\x20in\x20the\x20absence\x20of\x20'Policy'.\n\n\x0f\n\x07\
25208    \x045\x03\0\x02\x03\x06\x12\x04\xcf\x11\x04\x15\n\x0f\n\x07\x045\x03\0\
25209    \x02\x03\x01\x12\x04\xcf\x11\x16(\n\x0f\n\x07\x045\x03\0\x02\x03\x03\x12\
25210    \x04\xcf\x11+,\n_\n\x06\x045\x03\0\x08\0\x12\x06\xd4\x11\x04\xda\x11\x05\
25211    \x1aM\x20The\x20type\x20of\x20restrictions\x20for\x20this\x20`Constraint\
25212    `.\n\n\x20Immutable\x20after\x20creation.\n\n\x0f\n\x07\x045\x03\0\x08\0\
25213    \x01\x12\x04\xd4\x11\n\x19\nD\n\x06\x045\x03\0\x02\x04\x12\x04\xd6\x11\
25214    \x06)\x1a4\x20Defines\x20this\x20constraint\x20as\x20being\x20a\x20ListC\
25215    onstraint.\n\n\x0f\n\x07\x045\x03\0\x02\x04\x06\x12\x04\xd6\x11\x06\x14\
25216    \n\x0f\n\x07\x045\x03\0\x02\x04\x01\x12\x04\xd6\x11\x15$\n\x0f\n\x07\x04\
25217    5\x03\0\x02\x04\x03\x12\x04\xd6\x11'(\nG\n\x06\x045\x03\0\x02\x05\x12\
25218    \x04\xd9\x11\x06/\x1a7\x20Defines\x20this\x20constraint\x20as\x20being\
25219    \x20a\x20BooleanConstraint.\n\n\x0f\n\x07\x045\x03\0\x02\x05\x06\x12\x04\
25220    \xd9\x11\x06\x17\n\x0f\n\x07\x045\x03\0\x02\x05\x01\x12\x04\xd9\x11\x18*\
25221    \n\x0f\n\x07\x045\x03\0\x02\x05\x03\x12\x04\xd9\x11-.\n8\n\x04\x045\x03\
25222    \x01\x12\x06\xde\x11\x02\x9a\x12\x03\x1a(\x20The\x20definition\x20of\x20\
25223    a\x20custom\x20constraint.\n\n\r\n\x05\x045\x03\x01\x01\x12\x04\xde\x11\
25224    \n\x1a\n\x99\x02\n\x06\x045\x03\x01\x04\0\x12\x06\xe3\x11\x04\xef\x11\
25225    \x05\x1a\x86\x02\x20The\x20operation\x20in\x20which\x20this\x20constrain\
25226    t\x20will\x20be\x20applied.\x20For\x20example:\n\x20If\x20the\x20constra\
25227    int\x20applies\x20only\x20when\x20create\x20VMs,\x20the\x20method_types\
25228    \x20will\x20be\n\x20\"CREATE\"\x20only.\x20If\x20the\x20constraint\x20ap\
25229    plied\x20when\x20create\x20or\x20delete\x20VMs,\x20the\n\x20method_types\
25230    \x20will\x20be\x20\"CREATE\"\x20and\x20\"DELETE\".\n\n\x0f\n\x07\x045\
25231    \x03\x01\x04\0\x01\x12\x04\xe3\x11\t\x13\n<\n\x08\x045\x03\x01\x04\0\x02\
25232    \0\x12\x04\xe5\x11\x06\"\x1a*\x20Unspecified.\x20Will\x20results\x20in\
25233    \x20user\x20error.\n\n\x11\n\t\x045\x03\x01\x04\0\x02\0\x01\x12\x04\xe5\
25234    \x11\x06\x1d\n\x11\n\t\x045\x03\x01\x04\0\x02\0\x02\x12\x04\xe5\x11\x20!\
25235    \nB\n\x08\x045\x03\x01\x04\0\x02\x01\x12\x04\xe8\x11\x06\x11\x1a0\x20Con\
25236    straint\x20applied\x20when\x20creating\x20the\x20resource.\n\n\x11\n\t\
25237    \x045\x03\x01\x04\0\x02\x01\x01\x12\x04\xe8\x11\x06\x0c\n\x11\n\t\x045\
25238    \x03\x01\x04\0\x02\x01\x02\x12\x04\xe8\x11\x0f\x10\nB\n\x08\x045\x03\x01\
25239    \x04\0\x02\x02\x12\x04\xeb\x11\x06\x11\x1a0\x20Constraint\x20applied\x20\
25240    when\x20updating\x20the\x20resource.\n\n\x11\n\t\x045\x03\x01\x04\0\x02\
25241    \x02\x01\x12\x04\xeb\x11\x06\x0c\n\x11\n\t\x045\x03\x01\x04\0\x02\x02\
25242    \x02\x12\x04\xeb\x11\x0f\x10\nB\n\x08\x045\x03\x01\x04\0\x02\x03\x12\x04\
25243    \xee\x11\x06\x11\x1a0\x20Constraint\x20applied\x20when\x20deleting\x20th\
25244    e\x20resource.\n\n\x11\n\t\x045\x03\x01\x04\0\x02\x03\x01\x12\x04\xee\
25245    \x11\x06\x0c\n\x11\n\t\x045\x03\x01\x04\0\x02\x03\x02\x12\x04\xee\x11\
25246    \x0f\x10\n'\n\x06\x045\x03\x01\x04\x01\x12\x06\xf2\x11\x04\xfb\x11\x05\
25247    \x1a\x15\x20Allow\x20or\x20deny\x20type.\n\n\x0f\n\x07\x045\x03\x01\x04\
25248    \x01\x01\x12\x04\xf2\x11\t\x13\n<\n\x08\x045\x03\x01\x04\x01\x02\0\x12\
25249    \x04\xf4\x11\x06\"\x1a*\x20Unspecified.\x20Will\x20results\x20in\x20user\
25250    \x20error.\n\n\x11\n\t\x045\x03\x01\x04\x01\x02\0\x01\x12\x04\xf4\x11\
25251    \x06\x1d\n\x11\n\t\x045\x03\x01\x04\x01\x02\0\x02\x12\x04\xf4\x11\x20!\n\
25252    (\n\x08\x045\x03\x01\x04\x01\x02\x01\x12\x04\xf7\x11\x06\x10\x1a\x16\x20\
25253    Allowed\x20action\x20type.\n\n\x11\n\t\x045\x03\x01\x04\x01\x02\x01\x01\
25254    \x12\x04\xf7\x11\x06\x0b\n\x11\n\t\x045\x03\x01\x04\x01\x02\x01\x02\x12\
25255    \x04\xf7\x11\x0e\x0f\n%\n\x08\x045\x03\x01\x04\x01\x02\x02\x12\x04\xfa\
25256    \x11\x06\x0f\x1a\x13\x20Deny\x20action\x20type.\n\n\x11\n\t\x045\x03\x01\
25257    \x04\x01\x02\x02\x01\x12\x04\xfa\x11\x06\n\n\x11\n\t\x045\x03\x01\x04\
25258    \x01\x02\x02\x02\x12\x04\xfa\x11\r\x0e\n\x8c\x02\n\x06\x045\x03\x01\x02\
25259    \0\x12\x04\x83\x12\x04\x14\x1a\xfb\x01\x20Name\x20of\x20the\x20constrain\
25260    t.\x20This\x20is\x20unique\x20within\x20the\x20organization.\x20Format\
25261    \x20of\n\x20the\x20name\x20should\x20be\n\x20*\x20`organizations/{organi\
25262    zation_id}/customConstraints/{custom_constraint_id}`\n\n\x20Example\x20:\
25263    \n\x20\"organizations/123/customConstraints/custom.createOnlyE2TypeVms\"\
25264    \n\n\x0f\n\x07\x045\x03\x01\x02\0\x05\x12\x04\x83\x12\x04\n\n\x0f\n\x07\
25265    \x045\x03\x01\x02\0\x01\x12\x04\x83\x12\x0b\x0f\n\x0f\n\x07\x045\x03\x01\
25266    \x02\0\x03\x12\x04\x83\x12\x12\x13\n\xbe\x01\n\x06\x045\x03\x01\x02\x01\
25267    \x12\x04\x88\x12\x04'\x1a\xad\x01\x20The\x20Resource\x20Instance\x20type\
25268    \x20on\x20which\x20this\x20policy\x20applies\x20to.\x20Format\x20will\n\
25269    \x20be\x20of\x20the\x20form\x20:\x20\"<canonical\x20service\x20name>/<ty\
25270    pe>\"\x20Example:\n\x20\x20*\x20`compute.googleapis.com/Instance`.\n\n\
25271    \x0f\n\x07\x045\x03\x01\x02\x01\x04\x12\x04\x88\x12\x04\x0c\n\x0f\n\x07\
25272    \x045\x03\x01\x02\x01\x05\x12\x04\x88\x12\r\x13\n\x0f\n\x07\x045\x03\x01\
25273    \x02\x01\x01\x12\x04\x88\x12\x14\"\n\x0f\n\x07\x045\x03\x01\x02\x01\x03\
25274    \x12\x04\x88\x12%&\nG\n\x06\x045\x03\x01\x02\x02\x12\x04\x8b\x12\x04)\
25275    \x1a7\x20All\x20the\x20operations\x20being\x20applied\x20for\x20this\x20\
25276    constraint.\n\n\x0f\n\x07\x045\x03\x01\x02\x02\x04\x12\x04\x8b\x12\x04\
25277    \x0c\n\x0f\n\x07\x045\x03\x01\x02\x02\x06\x12\x04\x8b\x12\r\x17\n\x0f\n\
25278    \x07\x045\x03\x01\x02\x02\x01\x12\x04\x8b\x12\x18$\n\x0f\n\x07\x045\x03\
25279    \x01\x02\x02\x03\x12\x04\x8b\x12'(\n\xb9\x01\n\x06\x045\x03\x01\x02\x03\
25280    \x12\x04\x90\x12\x04\x19\x1a\xa8\x01\x20Organization\x20Policy\x20condit\
25281    ion/expression.\x20For\x20example:\n\x20`resource.instanceName.matches(\
25282    \"[production|test]_.*_(\\d)+\")'`\x20or,\n\x20`resource.management.auto\
25283    _upgrade\x20==\x20true`\n\n\x0f\n\x07\x045\x03\x01\x02\x03\x05\x12\x04\
25284    \x90\x12\x04\n\n\x0f\n\x07\x045\x03\x01\x02\x03\x01\x12\x04\x90\x12\x0b\
25285    \x14\n\x0f\n\x07\x045\x03\x01\x02\x03\x03\x12\x04\x90\x12\x17\x18\n%\n\
25286    \x06\x045\x03\x01\x02\x04\x12\x04\x93\x12\x04\x1f\x1a\x15\x20Allow\x20or\
25287    \x20deny\x20type.\n\n\x0f\n\x07\x045\x03\x01\x02\x04\x06\x12\x04\x93\x12\
25288    \x04\x0e\n\x0f\n\x07\x045\x03\x01\x02\x04\x01\x12\x04\x93\x12\x0f\x1a\n\
25289    \x0f\n\x07\x045\x03\x01\x02\x04\x03\x12\x04\x93\x12\x1d\x1e\n3\n\x06\x04\
25290    5\x03\x01\x02\x05\x12\x04\x96\x12\x04\x1c\x1a#\x20One\x20line\x20display\
25291    \x20name\x20for\x20the\x20UI.\n\n\x0f\n\x07\x045\x03\x01\x02\x05\x05\x12\
25292    \x04\x96\x12\x04\n\n\x0f\n\x07\x045\x03\x01\x02\x05\x01\x12\x04\x96\x12\
25293    \x0b\x17\n\x0f\n\x07\x045\x03\x01\x02\x05\x03\x12\x04\x96\x12\x1a\x1b\nK\
25294    \n\x06\x045\x03\x01\x02\x06\x12\x04\x99\x12\x04\x1b\x1a;\x20Detailed\x20\
25295    information\x20about\x20this\x20custom\x20policy\x20constraint.\n\n\x0f\
25296    \n\x07\x045\x03\x01\x02\x06\x05\x12\x04\x99\x12\x04\n\n\x0f\n\x07\x045\
25297    \x03\x01\x02\x06\x01\x12\x04\x99\x12\x0b\x16\n\x0f\n\x07\x045\x03\x01\
25298    \x02\x06\x03\x12\x04\x99\x12\x19\x1a\n\x0e\n\x04\x045\x08\0\x12\x06\x9c\
25299    \x12\x02\xa2\x12\x03\n\r\n\x05\x045\x08\0\x01\x12\x04\x9c\x12\x08\x1d\nJ\
25300    \n\x04\x045\x02\0\x12\x04\x9e\x12\x04-\x1a<\x20The\x20definition\x20of\
25301    \x20the\x20canned\x20constraint\x20defined\x20by\x20Google.\n\n\r\n\x05\
25302    \x045\x02\0\x06\x12\x04\x9e\x12\x04\x0e\n\r\n\x05\x045\x02\0\x01\x12\x04\
25303    \x9e\x12\x0f(\n\r\n\x05\x045\x02\0\x03\x12\x04\x9e\x12+,\n8\n\x04\x045\
25304    \x02\x01\x12\x04\xa1\x12\x04+\x1a*\x20The\x20definition\x20of\x20the\x20\
25305    custom\x20constraint.\n\n\r\n\x05\x045\x02\x01\x06\x12\x04\xa1\x12\x04\
25306    \x14\n\r\n\x05\x045\x02\x01\x01\x12\x04\xa1\x12\x15&\n\r\n\x05\x045\x02\
25307    \x01\x03\x12\x04\xa1\x12)*\n\x80\x01\n\x02\x046\x12\x06\xa7\x12\0\xc4\
25308    \x12\x01\x1ar\x20A\x20request\x20message\x20for\n\x20[AssetService.Analy\
25309    zeOrgPolicies][google.cloud.asset.v1.AssetService.AnalyzeOrgPolicies].\n\
25310    \n\x0b\n\x03\x046\x01\x12\x04\xa7\x12\x08!\n\xc7\x01\n\x04\x046\x02\0\
25311    \x12\x04\xac\x12\x02<\x1a\xb8\x01\x20Required.\x20The\x20organization\
25312    \x20to\x20scope\x20the\x20request.\x20Only\x20organization\n\x20policies\
25313    \x20within\x20the\x20scope\x20will\x20be\x20analyzed.\n\n\x20*\x20organi\
25314    zations/{ORGANIZATION_NUMBER}\x20(e.g.,\x20\"organizations/123456\")\n\n\
25315    \r\n\x05\x046\x02\0\x05\x12\x04\xac\x12\x02\x08\n\r\n\x05\x046\x02\0\x01\
25316    \x12\x04\xac\x12\t\x0e\n\r\n\x05\x046\x02\0\x03\x12\x04\xac\x12\x11\x12\
25317    \n\r\n\x05\x046\x02\0\x08\x12\x04\xac\x12\x13;\n\x10\n\x08\x046\x02\0\
25318    \x08\x9c\x08\0\x12\x04\xac\x12\x14:\n\xb4\x01\n\x04\x046\x02\x01\x12\x04\
25319    \xb1\x12\x02A\x1a\xa5\x01\x20Required.\x20The\x20name\x20of\x20the\x20co\
25320    nstraint\x20to\x20analyze\x20organization\x20policies\x20for.\n\x20The\
25321    \x20response\x20only\x20contains\x20analyzed\x20organization\x20policies\
25322    \x20for\x20the\x20provided\n\x20constraint.\n\n\r\n\x05\x046\x02\x01\x05\
25323    \x12\x04\xb1\x12\x02\x08\n\r\n\x05\x046\x02\x01\x01\x12\x04\xb1\x12\t\
25324    \x13\n\r\n\x05\x046\x02\x01\x03\x12\x04\xb1\x12\x16\x17\n\r\n\x05\x046\
25325    \x02\x01\x08\x12\x04\xb1\x12\x18@\n\x10\n\x08\x046\x02\x01\x08\x9c\x08\0\
25326    \x12\x04\xb1\x12\x19?\n\xaa\x03\n\x04\x046\x02\x02\x12\x04\xbb\x12\x02\
25327    \x14\x1a\x9b\x03\x20The\x20expression\x20to\x20filter\n\x20[AnalyzeOrgPo\
25328    liciesResponse.org_policy_results][google.cloud.asset.v1.AnalyzeOrgPolic\
25329    iesResponse.org_policy_results].\n\x20The\x20only\x20supported\x20field\
25330    \x20is\x20`consolidated_policy.attached_resource`,\x20and\n\x20the\x20on\
25331    ly\x20supported\x20operator\x20is\x20`=`.\n\n\x20Example:\n\x20consolida\
25332    ted_policy.attached_resource=\"//cloudresourcemanager.googleapis.com/fol\
25333    ders/001\"\n\x20will\x20return\x20the\x20org\x20policy\x20results\x20of\
25334    \"folders/001\".\n\n\r\n\x05\x046\x02\x02\x05\x12\x04\xbb\x12\x02\x08\n\
25335    \r\n\x05\x046\x02\x02\x01\x12\x04\xbb\x12\t\x0f\n\r\n\x05\x046\x02\x02\
25336    \x03\x12\x04\xbb\x12\x12\x13\n\xf4\x01\n\x04\x046\x02\x03\x12\x04\xc0\
25337    \x12\x02\x1f\x1a\xe5\x01\x20The\x20maximum\x20number\x20of\x20items\x20t\
25338    o\x20return\x20per\x20page.\x20If\x20unspecified,\n\x20[AnalyzeOrgPolici\
25339    esResponse.org_policy_results][google.cloud.asset.v1.AnalyzeOrgPoliciesR\
25340    esponse.org_policy_results]\n\x20will\x20contain\x2020\x20items\x20with\
25341    \x20a\x20maximum\x20of\x20200.\n\n\r\n\x05\x046\x02\x03\x04\x12\x04\xc0\
25342    \x12\x02\n\n\r\n\x05\x046\x02\x03\x05\x12\x04\xc0\x12\x0b\x10\n\r\n\x05\
25343    \x046\x02\x03\x01\x12\x04\xc0\x12\x11\x1a\n\r\n\x05\x046\x02\x03\x03\x12\
25344    \x04\xc0\x12\x1d\x1e\n?\n\x04\x046\x02\x04\x12\x04\xc3\x12\x02\x18\x1a1\
25345    \x20The\x20pagination\x20token\x20to\x20retrieve\x20the\x20next\x20page.\
25346    \n\n\r\n\x05\x046\x02\x04\x05\x12\x04\xc3\x12\x02\x08\n\r\n\x05\x046\x02\
25347    \x04\x01\x12\x04\xc3\x12\t\x13\n\r\n\x05\x046\x02\x04\x03\x12\x04\xc3\
25348    \x12\x16\x17\n\x83\x01\n\x02\x047\x12\x06\xc8\x12\0\xe7\x12\x01\x1au\x20\
25349    The\x20response\x20message\x20for\n\x20[AssetService.AnalyzeOrgPolicies]\
25350    [google.cloud.asset.v1.AssetService.AnalyzeOrgPolicies].\n\n\x0b\n\x03\
25351    \x047\x01\x12\x04\xc8\x12\x08\"\n>\n\x04\x047\x03\0\x12\x06\xca\x12\x02\
25352    \xd9\x12\x03\x1a.\x20The\x20organization\x20policy\x20result\x20to\x20th\
25353    e\x20query.\n\n\r\n\x05\x047\x03\0\x01\x12\x04\xca\x12\n\x19\n\xf2\x02\n\
25354    \x06\x047\x03\0\x02\0\x12\x04\xd0\x12\x04.\x1a\xe1\x02\x20The\x20consoli\
25355    dated\x20organization\x20policy\x20for\x20the\x20analyzed\x20resource.\
25356    \x20The\n\x20consolidated\x20organization\x20policy\x20is\x20computed\
25357    \x20by\x20merging\x20and\x20evaluating\n\x20[AnalyzeOrgPoliciesResponse.\
25358    policy_bundle][].\n\x20The\x20evaluation\x20will\x20respect\x20the\x20or\
25359    ganization\x20policy\x20[hierarchy\n\x20rules](https://cloud.google.com/\
25360    resource-manager/docs/organization-policy/understanding-hierarchy).\n\n\
25361    \x0f\n\x07\x047\x03\0\x02\0\x06\x12\x04\xd0\x12\x04\x15\n\x0f\n\x07\x047\
25362    \x03\0\x02\0\x01\x12\x04\xd0\x12\x16)\n\x0f\n\x07\x047\x03\0\x02\0\x03\
25363    \x12\x04\xd0\x12,-\n\x9e\x02\n\x06\x047\x03\0\x02\x01\x12\x04\xd8\x12\
25364    \x041\x1a\x8d\x02\x20The\x20ordered\x20list\x20of\x20all\x20organization\
25365    \x20policies\x20from\x20the\n\x20[AnalyzeOrgPoliciesResponse.OrgPolicyRe\
25366    sult.consolidated_policy.attached_resource][].\n\x20to\x20the\x20scope\
25367    \x20specified\x20in\x20the\x20request.\n\n\x20If\x20the\x20constraint\
25368    \x20is\x20defined\x20with\x20default\x20policy,\x20it\x20will\x20also\
25369    \x20appear\x20in\n\x20the\x20list.\n\n\x0f\n\x07\x047\x03\0\x02\x01\x04\
25370    \x12\x04\xd8\x12\x04\x0c\n\x0f\n\x07\x047\x03\0\x02\x01\x06\x12\x04\xd8\
25371    \x12\r\x1e\n\x0f\n\x07\x047\x03\0\x02\x01\x01\x12\x04\xd8\x12\x1f,\n\x0f\
25372    \n\x07\x047\x03\0\x02\x01\x03\x12\x04\xd8\x12/0\n\xfd\x01\n\x04\x047\x02\
25373    \0\x12\x04\xdf\x12\x022\x1a\xee\x01\x20The\x20organization\x20policies\
25374    \x20under\x20the\n\x20[AnalyzeOrgPoliciesRequest.scope][google.cloud.ass\
25375    et.v1.AnalyzeOrgPoliciesRequest.scope]\n\x20with\x20the\n\x20[AnalyzeOrg\
25376    PoliciesRequest.constraint][google.cloud.asset.v1.AnalyzeOrgPoliciesRequ\
25377    est.constraint].\n\n\r\n\x05\x047\x02\0\x04\x12\x04\xdf\x12\x02\n\n\r\n\
25378    \x05\x047\x02\0\x06\x12\x04\xdf\x12\x0b\x1a\n\r\n\x05\x047\x02\0\x01\x12\
25379    \x04\xdf\x12\x1b-\n\r\n\x05\x047\x02\0\x03\x12\x04\xdf\x1201\n@\n\x04\
25380    \x047\x02\x01\x12\x04\xe2\x12\x02-\x1a2\x20The\x20definition\x20of\x20th\
25381    e\x20constraint\x20in\x20the\x20request.\n\n\r\n\x05\x047\x02\x01\x06\
25382    \x12\x04\xe2\x12\x02\x1d\n\r\n\x05\x047\x02\x01\x01\x12\x04\xe2\x12\x1e(\
25383    \n\r\n\x05\x047\x02\x01\x03\x12\x04\xe2\x12+,\n\xb1\x01\n\x04\x047\x02\
25384    \x02\x12\x04\xe6\x12\x02\x1d\x1a\xa2\x01\x20The\x20page\x20token\x20to\
25385    \x20fetch\x20the\x20next\x20page\x20for\n\x20[AnalyzeOrgPoliciesResponse\
25386    .org_policy_results][google.cloud.asset.v1.AnalyzeOrgPoliciesResponse.or\
25387    g_policy_results].\n\n\r\n\x05\x047\x02\x02\x05\x12\x04\xe6\x12\x02\x08\
25388    \n\r\n\x05\x047\x02\x02\x01\x12\x04\xe6\x12\t\x18\n\r\n\x05\x047\x02\x02\
25389    \x03\x12\x04\xe6\x12\x1b\x1c\n\xa1\x01\n\x02\x048\x12\x06\xeb\x12\0\x89\
25390    \x13\x01\x1a\x92\x01\x20A\x20request\x20message\x20for\n\x20[AssetServic\
25391    e.AnalyzeOrgPolicyGovernedContainers][google.cloud.asset.v1.AssetService\
25392    .AnalyzeOrgPolicyGovernedContainers].\n\n\x0b\n\x03\x048\x01\x12\x04\xeb\
25393    \x12\x081\n\xb2\x02\n\x04\x048\x02\0\x12\x04\xf2\x12\x02<\x1a\xa3\x02\
25394    \x20Required.\x20The\x20organization\x20to\x20scope\x20the\x20request.\
25395    \x20Only\x20organization\n\x20policies\x20within\x20the\x20scope\x20will\
25396    \x20be\x20analyzed.\x20The\x20output\x20containers\x20will\n\x20also\x20\
25397    be\x20limited\x20to\x20the\x20ones\x20governed\x20by\x20those\x20in-scop\
25398    e\x20organization\n\x20policies.\n\n\x20*\x20organizations/{ORGANIZATION\
25399    _NUMBER}\x20(e.g.,\x20\"organizations/123456\")\n\n\r\n\x05\x048\x02\0\
25400    \x05\x12\x04\xf2\x12\x02\x08\n\r\n\x05\x048\x02\0\x01\x12\x04\xf2\x12\t\
25401    \x0e\n\r\n\x05\x048\x02\0\x03\x12\x04\xf2\x12\x11\x12\n\r\n\x05\x048\x02\
25402    \0\x08\x12\x04\xf2\x12\x13;\n\x10\n\x08\x048\x02\0\x08\x9c\x08\0\x12\x04\
25403    \xf2\x12\x14:\n\xa9\x01\n\x04\x048\x02\x01\x12\x04\xf7\x12\x02A\x1a\x9a\
25404    \x01\x20Required.\x20The\x20name\x20of\x20the\x20constraint\x20to\x20ana\
25405    lyze\x20governed\x20containers\x20for.\n\x20The\x20analysis\x20only\x20c\
25406    ontains\x20organization\x20policies\x20for\x20the\x20provided\n\x20const\
25407    raint.\n\n\r\n\x05\x048\x02\x01\x05\x12\x04\xf7\x12\x02\x08\n\r\n\x05\
25408    \x048\x02\x01\x01\x12\x04\xf7\x12\t\x13\n\r\n\x05\x048\x02\x01\x03\x12\
25409    \x04\xf7\x12\x16\x17\n\r\n\x05\x048\x02\x01\x08\x12\x04\xf7\x12\x18@\n\
25410    \x10\n\x08\x048\x02\x01\x08\x9c\x08\0\x12\x04\xf7\x12\x19?\n\x94\x02\n\
25411    \x04\x048\x02\x02\x12\x04\x80\x13\x02\x14\x1a\x85\x02\x20The\x20expressi\
25412    on\x20to\x20filter\x20the\x20governed\x20containers\x20in\x20result.\n\
25413    \x20The\x20only\x20supported\x20field\x20is\x20`parent`,\x20and\x20the\
25414    \x20only\x20supported\x20operator\x20is\n\x20`=`.\n\n\x20Example:\n\x20p\
25415    arent=\"//cloudresourcemanager.googleapis.com/folders/001\"\x20will\x20r\
25416    eturn\x20all\n\x20containers\x20under\x20\"folders/001\".\n\n\r\n\x05\
25417    \x048\x02\x02\x05\x12\x04\x80\x13\x02\x08\n\r\n\x05\x048\x02\x02\x01\x12\
25418    \x04\x80\x13\t\x0f\n\r\n\x05\x048\x02\x02\x03\x12\x04\x80\x13\x12\x13\n\
25419    \x97\x02\n\x04\x048\x02\x03\x12\x04\x85\x13\x02\x1f\x1a\x88\x02\x20The\
25420    \x20maximum\x20number\x20of\x20items\x20to\x20return\x20per\x20page.\x20\
25421    If\x20unspecified,\n\x20[AnalyzeOrgPolicyGovernedContainersResponse.gove\
25422    rned_containers][google.cloud.asset.v1.AnalyzeOrgPolicyGovernedContainer\
25423    sResponse.governed_containers]\n\x20will\x20contain\x20100\x20items\x20w\
25424    ith\x20a\x20maximum\x20of\x20200.\n\n\r\n\x05\x048\x02\x03\x04\x12\x04\
25425    \x85\x13\x02\n\n\r\n\x05\x048\x02\x03\x05\x12\x04\x85\x13\x0b\x10\n\r\n\
25426    \x05\x048\x02\x03\x01\x12\x04\x85\x13\x11\x1a\n\r\n\x05\x048\x02\x03\x03\
25427    \x12\x04\x85\x13\x1d\x1e\n?\n\x04\x048\x02\x04\x12\x04\x88\x13\x02\x18\
25428    \x1a1\x20The\x20pagination\x20token\x20to\x20retrieve\x20the\x20next\x20\
25429    page.\n\n\r\n\x05\x048\x02\x04\x05\x12\x04\x88\x13\x02\x08\n\r\n\x05\x04\
25430    8\x02\x04\x01\x12\x04\x88\x13\t\x13\n\r\n\x05\x048\x02\x04\x03\x12\x04\
25431    \x88\x13\x16\x17\n\xa4\x01\n\x02\x049\x12\x06\x8d\x13\0\xb6\x13\x01\x1a\
25432    \x95\x01\x20The\x20response\x20message\x20for\n\x20[AssetService.Analyze\
25433    OrgPolicyGovernedContainers][google.cloud.asset.v1.AssetService.AnalyzeO\
25434    rgPolicyGovernedContainers].\n\n\x0b\n\x03\x049\x01\x12\x04\x8d\x13\x082\
25435    \n\xe6\x01\n\x04\x049\x03\0\x12\x06\x91\x13\x02\xab\x13\x03\x1a\xd5\x01\
25436    \x20The\x20organization/folder/project\x20resource\x20governed\x20by\x20\
25437    organization\x20policies\n\x20of\n\x20[AnalyzeOrgPolicyGovernedContainer\
25438    sRequest.constraint][google.cloud.asset.v1.AnalyzeOrgPolicyGovernedConta\
25439    inersRequest.constraint].\n\n\r\n\x05\x049\x03\0\x01\x12\x04\x91\x13\n\
25440    \x1b\n\x9e\x01\n\x06\x049\x03\0\x02\0\x12\x04\x95\x13\x04\"\x1a\x8d\x01\
25441    \x20The\x20[full\x20resource\x20name]\n\x20(https://cloud.google.com/ass\
25442    et-inventory/docs/resource-name-format)\x20of\n\x20an\x20organization/fo\
25443    lder/project\x20resource.\n\n\x0f\n\x07\x049\x03\0\x02\0\x05\x12\x04\x95\
25444    \x13\x04\n\n\x0f\n\x07\x049\x03\0\x02\0\x01\x12\x04\x95\x13\x0b\x1d\n\
25445    \x0f\n\x07\x049\x03\0\x02\0\x03\x12\x04\x95\x13\x20!\n\xbe\x02\n\x06\x04\
25446    9\x03\0\x02\x01\x12\x04\x9b\x13\x04\x16\x1a\xad\x02\x20The\x20[full\x20r\
25447    esource\x20name]\n\x20(https://cloud.google.com/asset-inventory/docs/res\
25448    ource-name-format)\x20of\n\x20the\x20parent\x20of\n\x20[AnalyzeOrgPolicy\
25449    GovernedContainersResponse.GovernedContainer.full_resource_name][google.\
25450    cloud.asset.v1.AnalyzeOrgPolicyGovernedContainersResponse.GovernedContai\
25451    ner.full_resource_name].\n\n\x0f\n\x07\x049\x03\0\x02\x01\x05\x12\x04\
25452    \x9b\x13\x04\n\n\x0f\n\x07\x049\x03\0\x02\x01\x01\x12\x04\x9b\x13\x0b\
25453    \x11\n\x0f\n\x07\x049\x03\0\x02\x01\x03\x12\x04\x9b\x13\x14\x15\n\xf4\
25454    \x03\n\x06\x049\x03\0\x02\x02\x12\x04\xa2\x13\x04.\x1a\xe3\x03\x20The\
25455    \x20consolidated\x20organization\x20policy\x20for\x20the\x20analyzed\x20\
25456    resource.\x20The\n\x20consolidated\x20organization\x20policy\x20is\x20co\
25457    mputed\x20by\x20merging\x20and\x20evaluating\n\x20[AnalyzeOrgPolicyGover\
25458    nedContainersResponse.GovernedContainer.policy_bundle][google.cloud.asse\
25459    t.v1.AnalyzeOrgPolicyGovernedContainersResponse.GovernedContainer.policy\
25460    _bundle].\n\x20The\x20evaluation\x20will\x20respect\x20the\x20organizati\
25461    on\x20policy\x20[hierarchy\n\x20rules](https://cloud.google.com/resource\
25462    -manager/docs/organization-policy/understanding-hierarchy).\n\n\x0f\n\
25463    \x07\x049\x03\0\x02\x02\x06\x12\x04\xa2\x13\x04\x15\n\x0f\n\x07\x049\x03\
25464    \0\x02\x02\x01\x12\x04\xa2\x13\x16)\n\x0f\n\x07\x049\x03\0\x02\x02\x03\
25465    \x12\x04\xa2\x13,-\n\x9e\x02\n\x06\x049\x03\0\x02\x03\x12\x04\xaa\x13\
25466    \x041\x1a\x8d\x02\x20The\x20ordered\x20list\x20of\x20all\x20organization\
25467    \x20policies\x20from\x20the\n\x20[AnalyzeOrgPoliciesResponse.OrgPolicyRe\
25468    sult.consolidated_policy.attached_resource][].\n\x20to\x20the\x20scope\
25469    \x20specified\x20in\x20the\x20request.\n\n\x20If\x20the\x20constraint\
25470    \x20is\x20defined\x20with\x20default\x20policy,\x20it\x20will\x20also\
25471    \x20appear\x20in\n\x20the\x20list.\n\n\x0f\n\x07\x049\x03\0\x02\x03\x04\
25472    \x12\x04\xaa\x13\x04\x0c\n\x0f\n\x07\x049\x03\0\x02\x03\x06\x12\x04\xaa\
25473    \x13\r\x1e\n\x0f\n\x07\x049\x03\0\x02\x03\x01\x12\x04\xaa\x13\x1f,\n\x0f\
25474    \n\x07\x049\x03\0\x02\x03\x03\x12\x04\xaa\x13/0\n=\n\x04\x049\x02\0\x12\
25475    \x04\xae\x13\x025\x1a/\x20The\x20list\x20of\x20the\x20analyzed\x20govern\
25476    ed\x20containers.\n\n\r\n\x05\x049\x02\0\x04\x12\x04\xae\x13\x02\n\n\r\n\
25477    \x05\x049\x02\0\x06\x12\x04\xae\x13\x0b\x1c\n\r\n\x05\x049\x02\0\x01\x12\
25478    \x04\xae\x13\x1d0\n\r\n\x05\x049\x02\0\x03\x12\x04\xae\x1334\n@\n\x04\
25479    \x049\x02\x01\x12\x04\xb1\x13\x02-\x1a2\x20The\x20definition\x20of\x20th\
25480    e\x20constraint\x20in\x20the\x20request.\n\n\r\n\x05\x049\x02\x01\x06\
25481    \x12\x04\xb1\x13\x02\x1d\n\r\n\x05\x049\x02\x01\x01\x12\x04\xb1\x13\x1e(\
25482    \n\r\n\x05\x049\x02\x01\x03\x12\x04\xb1\x13+,\n\xd3\x01\n\x04\x049\x02\
25483    \x02\x12\x04\xb5\x13\x02\x1d\x1a\xc4\x01\x20The\x20page\x20token\x20to\
25484    \x20fetch\x20the\x20next\x20page\x20for\n\x20[AnalyzeOrgPolicyGovernedCo\
25485    ntainersResponse.governed_containers][google.cloud.asset.v1.AnalyzeOrgPo\
25486    licyGovernedContainersResponse.governed_containers].\n\n\r\n\x05\x049\
25487    \x02\x02\x05\x12\x04\xb5\x13\x02\x08\n\r\n\x05\x049\x02\x02\x01\x12\x04\
25488    \xb5\x13\t\x18\n\r\n\x05\x049\x02\x02\x03\x12\x04\xb5\x13\x1b\x1c\n\x99\
25489    \x01\n\x02\x04:\x12\x06\xba\x13\0\xdd\x13\x01\x1a\x8a\x01\x20A\x20reques\
25490    t\x20message\x20for\n\x20[AssetService.AnalyzeOrgPolicyGovernedAssets][g\
25491    oogle.cloud.asset.v1.AssetService.AnalyzeOrgPolicyGovernedAssets].\n\n\
25492    \x0b\n\x03\x04:\x01\x12\x04\xba\x13\x08-\n\xae\x02\n\x04\x04:\x02\0\x12\
25493    \x04\xc1\x13\x02<\x1a\x9f\x02\x20Required.\x20The\x20organization\x20to\
25494    \x20scope\x20the\x20request.\x20Only\x20organization\n\x20policies\x20wi\
25495    thin\x20the\x20scope\x20will\x20be\x20analyzed.\x20The\x20output\x20asse\
25496    ts\x20will\n\x20also\x20be\x20limited\x20to\x20the\x20ones\x20governed\
25497    \x20by\x20those\x20in-scope\x20organization\n\x20policies.\n\n\x20*\x20o\
25498    rganizations/{ORGANIZATION_NUMBER}\x20(e.g.,\x20\"organizations/123456\"\
25499    )\n\n\r\n\x05\x04:\x02\0\x05\x12\x04\xc1\x13\x02\x08\n\r\n\x05\x04:\x02\
25500    \0\x01\x12\x04\xc1\x13\t\x0e\n\r\n\x05\x04:\x02\0\x03\x12\x04\xc1\x13\
25501    \x11\x12\n\r\n\x05\x04:\x02\0\x08\x12\x04\xc1\x13\x13;\n\x10\n\x08\x04:\
25502    \x02\0\x08\x9c\x08\0\x12\x04\xc1\x13\x14:\n\xae\x01\n\x04\x04:\x02\x01\
25503    \x12\x04\xc6\x13\x02A\x1a\x9f\x01\x20Required.\x20The\x20name\x20of\x20t\
25504    he\x20constraint\x20to\x20analyze\x20governed\x20assets\x20for.\x20The\n\
25505    \x20analysis\x20only\x20contains\x20analyzed\x20organization\x20policies\
25506    \x20for\x20the\x20provided\n\x20constraint.\n\n\r\n\x05\x04:\x02\x01\x05\
25507    \x12\x04\xc6\x13\x02\x08\n\r\n\x05\x04:\x02\x01\x01\x12\x04\xc6\x13\t\
25508    \x13\n\r\n\x05\x04:\x02\x01\x03\x12\x04\xc6\x13\x16\x17\n\r\n\x05\x04:\
25509    \x02\x01\x08\x12\x04\xc6\x13\x18@\n\x10\n\x08\x04:\x02\x01\x08\x9c\x08\0\
25510    \x12\x04\xc6\x13\x19?\n\x98\x05\n\x04\x04:\x02\x02\x12\x04\xd4\x13\x02\
25511    \x14\x1a\x89\x05\x20The\x20expression\x20to\x20filter\x20the\x20governed\
25512    \x20assets\x20in\x20result.\x20The\x20only\x20supported\n\x20fields\x20f\
25513    or\x20governed\x20resources\x20are\x20`governed_resource.project`\x20and\
25514    \n\x20`governed_resource.folders`.\x20The\x20only\x20supported\x20fields\
25515    \x20for\x20governed\x20iam\n\x20policies\x20are\x20`governed_iam_policy.\
25516    project`\x20and\n\x20`governed_iam_policy.folders`.\x20The\x20only\x20su\
25517    pported\x20operator\x20is\x20`=`.\n\n\x20Example\x201:\x20governed_resou\
25518    rce.project=\"projects/12345678\"\x20filter\x20will\x20return\n\x20all\
25519    \x20governed\x20resources\x20under\x20projects/12345678\x20including\x20\
25520    the\x20project\n\x20ifself,\x20if\x20applicable.\n\n\x20Example\x202:\
25521    \x20governed_iam_policy.folders=\"folders/12345678\"\x20filter\x20will\n\
25522    \x20return\x20all\x20governed\x20iam\x20policies\x20under\x20folders/123\
25523    45678,\x20if\x20applicable.\n\n\r\n\x05\x04:\x02\x02\x05\x12\x04\xd4\x13\
25524    \x02\x08\n\r\n\x05\x04:\x02\x02\x01\x12\x04\xd4\x13\t\x0f\n\r\n\x05\x04:\
25525    \x02\x02\x03\x12\x04\xd4\x13\x12\x13\n\x87\x02\n\x04\x04:\x02\x03\x12\
25526    \x04\xd9\x13\x02\x1f\x1a\xf8\x01\x20The\x20maximum\x20number\x20of\x20it\
25527    ems\x20to\x20return\x20per\x20page.\x20If\x20unspecified,\n\x20[AnalyzeO\
25528    rgPolicyGovernedAssetsResponse.governed_assets][google.cloud.asset.v1.An\
25529    alyzeOrgPolicyGovernedAssetsResponse.governed_assets]\n\x20will\x20conta\
25530    in\x20100\x20items\x20with\x20a\x20maximum\x20of\x20200.\n\n\r\n\x05\x04\
25531    :\x02\x03\x04\x12\x04\xd9\x13\x02\n\n\r\n\x05\x04:\x02\x03\x05\x12\x04\
25532    \xd9\x13\x0b\x10\n\r\n\x05\x04:\x02\x03\x01\x12\x04\xd9\x13\x11\x1a\n\r\
25533    \n\x05\x04:\x02\x03\x03\x12\x04\xd9\x13\x1d\x1e\n?\n\x04\x04:\x02\x04\
25534    \x12\x04\xdc\x13\x02\x18\x1a1\x20The\x20pagination\x20token\x20to\x20ret\
25535    rieve\x20the\x20next\x20page.\n\n\r\n\x05\x04:\x02\x04\x05\x12\x04\xdc\
25536    \x13\x02\x08\n\r\n\x05\x04:\x02\x04\x01\x12\x04\xdc\x13\t\x13\n\r\n\x05\
25537    \x04:\x02\x04\x03\x12\x04\xdc\x13\x16\x17\n\x9c\x01\n\x02\x04;\x12\x06\
25538    \xe1\x13\0\xc7\x14\x01\x1a\x8d\x01\x20The\x20response\x20message\x20for\
25539    \n\x20[AssetService.AnalyzeOrgPolicyGovernedAssets][google.cloud.asset.v\
25540    1.AssetService.AnalyzeOrgPolicyGovernedAssets].\n\n\x0b\n\x03\x04;\x01\
25541    \x12\x04\xe1\x13\x08.\n\xd7\x01\n\x04\x04;\x03\0\x12\x06\xe4\x13\x02\xfe\
25542    \x13\x03\x1a\xc6\x01\x20The\x20Google\x20Cloud\x20resources\x20governed\
25543    \x20by\x20the\x20organization\x20policies\x20of\x20the\n\x20[AnalyzeOrgP\
25544    olicyGovernedAssetsRequest.constraint][google.cloud.asset.v1.AnalyzeOrgP\
25545    olicyGovernedAssetsRequest.constraint].\n\n\r\n\x05\x04;\x03\0\x01\x12\
25546    \x04\xe4\x13\n\x1a\n\x8f\x01\n\x06\x04;\x03\0\x02\0\x12\x04\xe8\x13\x04\
25547    \"\x1a\x7f\x20The\x20[full\x20resource\x20name]\n\x20(https://cloud.goog\
25548    le.com/asset-inventory/docs/resource-name-format)\x20of\n\x20the\x20Goog\
25549    le\x20Cloud\x20resource.\n\n\x0f\n\x07\x04;\x03\0\x02\0\x05\x12\x04\xe8\
25550    \x13\x04\n\n\x0f\n\x07\x04;\x03\0\x02\0\x01\x12\x04\xe8\x13\x0b\x1d\n\
25551    \x0f\n\x07\x04;\x03\0\x02\0\x03\x12\x04\xe8\x13\x20!\n\xb4\x02\n\x06\x04\
25552    ;\x03\0\x02\x01\x12\x04\xee\x13\x04\x16\x1a\xa3\x02\x20The\x20[full\x20r\
25553    esource\x20name]\n\x20(https://cloud.google.com/asset-inventory/docs/res\
25554    ource-name-format)\x20of\n\x20the\x20parent\x20of\n\x20[AnalyzeOrgPolicy\
25555    GovernedAssetsResponse.GovernedResource.full_resource_name][google.cloud\
25556    .asset.v1.AnalyzeOrgPolicyGovernedAssetsResponse.GovernedResource.full_r\
25557    esource_name].\n\n\x0f\n\x07\x04;\x03\0\x02\x01\x05\x12\x04\xee\x13\x04\
25558    \n\n\x0f\n\x07\x04;\x03\0\x02\x01\x01\x12\x04\xee\x13\x0b\x11\n\x0f\n\
25559    \x07\x04;\x03\0\x02\x01\x03\x12\x04\xee\x13\x14\x15\n\xab\x01\n\x06\x04;\
25560    \x03\0\x02\x02\x12\x04\xf3\x13\x04\x17\x1a\x9a\x01\x20The\x20project\x20\
25561    that\x20this\x20resource\x20belongs\x20to,\x20in\x20the\x20format\x20of\
25562    \n\x20projects/{PROJECT_NUMBER}.\x20This\x20field\x20is\x20available\x20\
25563    when\x20the\x20resource\n\x20belongs\x20to\x20a\x20project.\n\n\x0f\n\
25564    \x07\x04;\x03\0\x02\x02\x05\x12\x04\xf3\x13\x04\n\n\x0f\n\x07\x04;\x03\0\
25565    \x02\x02\x01\x12\x04\xf3\x13\x0b\x12\n\x0f\n\x07\x04;\x03\0\x02\x02\x03\
25566    \x12\x04\xf3\x13\x15\x16\n\xcf\x01\n\x06\x04;\x03\0\x02\x03\x12\x04\xf8\
25567    \x13\x04\x20\x1a\xbe\x01\x20The\x20folder(s)\x20that\x20this\x20resource\
25568    \x20belongs\x20to,\x20in\x20the\x20format\x20of\n\x20folders/{FOLDER_NUM\
25569    BER}.\x20This\x20field\x20is\x20available\x20when\x20the\x20resource\n\
25570    \x20belongs\x20(directly\x20or\x20cascadingly)\x20to\x20one\x20or\x20mor\
25571    e\x20folders.\n\n\x0f\n\x07\x04;\x03\0\x02\x03\x04\x12\x04\xf8\x13\x04\
25572    \x0c\n\x0f\n\x07\x04;\x03\0\x02\x03\x05\x12\x04\xf8\x13\r\x13\n\x0f\n\
25573    \x07\x04;\x03\0\x02\x03\x01\x12\x04\xf8\x13\x14\x1b\n\x0f\n\x07\x04;\x03\
25574    \0\x02\x03\x03\x12\x04\xf8\x13\x1e\x1f\n\xda\x01\n\x06\x04;\x03\0\x02\
25575    \x04\x12\x04\xfd\x13\x04\x1c\x1a\xc9\x01\x20The\x20organization\x20that\
25576    \x20this\x20resource\x20belongs\x20to,\x20in\x20the\x20format\x20of\n\
25577    \x20organizations/{ORGANIZATION_NUMBER}.\x20This\x20field\x20is\x20avail\
25578    able\x20when\x20the\n\x20resource\x20belongs\x20(directly\x20or\x20casca\
25579    dingly)\x20to\x20an\x20organization.\n\n\x0f\n\x07\x04;\x03\0\x02\x04\
25580    \x05\x12\x04\xfd\x13\x04\n\n\x0f\n\x07\x04;\x03\0\x02\x04\x01\x12\x04\
25581    \xfd\x13\x0b\x17\n\x0f\n\x07\x04;\x03\0\x02\x04\x03\x12\x04\xfd\x13\x1a\
25582    \x1b\n\xcd\x01\n\x04\x04;\x03\x01\x12\x06\x82\x14\x02\x9c\x14\x03\x1a\
25583    \xbc\x01\x20The\x20IAM\x20policies\x20governed\x20by\x20the\x20organizat\
25584    ion\x20policies\x20of\x20the\n\x20[AnalyzeOrgPolicyGovernedAssetsRequest\
25585    .constraint][google.cloud.asset.v1.AnalyzeOrgPolicyGovernedAssetsRequest\
25586    .constraint].\n\n\r\n\x05\x04;\x03\x01\x01\x12\x04\x82\x14\n\x1b\n\xc7\
25587    \x02\n\x06\x04;\x03\x01\x02\0\x12\x04\x89\x14\x04!\x1a\xb6\x02\x20The\
25588    \x20full\x20resource\x20name\x20of\x20the\x20resource\x20on\x20which\x20\
25589    this\x20IAM\x20policy\x20is\x20set.\n\x20Example:\n\x20`//compute.google\
25590    apis.com/projects/my_project_123/zones/zone1/instances/instance1`.\n\x20\
25591    See\x20[Cloud\x20Asset\x20Inventory\x20Resource\x20Name\n\x20Format](htt\
25592    ps://cloud.google.com/asset-inventory/docs/resource-name-format)\n\x20fo\
25593    r\x20more\x20information.\n\n\x0f\n\x07\x04;\x03\x01\x02\0\x05\x12\x04\
25594    \x89\x14\x04\n\n\x0f\n\x07\x04;\x03\x01\x02\0\x01\x12\x04\x89\x14\x0b\
25595    \x1c\n\x0f\n\x07\x04;\x03\x01\x02\0\x03\x12\x04\x89\x14\x1f\x20\nD\n\x06\
25596    \x04;\x03\x01\x02\x01\x12\x04\x8c\x14\x04$\x1a4\x20The\x20IAM\x20policy\
25597    \x20directly\x20set\x20on\x20the\x20given\x20resource.\n\n\x0f\n\x07\x04\
25598    ;\x03\x01\x02\x01\x06\x12\x04\x8c\x14\x04\x18\n\x0f\n\x07\x04;\x03\x01\
25599    \x02\x01\x01\x12\x04\x8c\x14\x19\x1f\n\x0f\n\x07\x04;\x03\x01\x02\x01\
25600    \x03\x12\x04\x8c\x14\"#\n\xaf\x01\n\x06\x04;\x03\x01\x02\x02\x12\x04\x91\
25601    \x14\x04\x17\x1a\x9e\x01\x20The\x20project\x20that\x20this\x20IAM\x20pol\
25602    icy\x20belongs\x20to,\x20in\x20the\x20format\x20of\n\x20projects/{PROJEC\
25603    T_NUMBER}.\x20This\x20field\x20is\x20available\x20when\x20the\x20IAM\x20\
25604    policy\n\x20belongs\x20to\x20a\x20project.\n\n\x0f\n\x07\x04;\x03\x01\
25605    \x02\x02\x05\x12\x04\x91\x14\x04\n\n\x0f\n\x07\x04;\x03\x01\x02\x02\x01\
25606    \x12\x04\x91\x14\x0b\x12\n\x0f\n\x07\x04;\x03\x01\x02\x02\x03\x12\x04\
25607    \x91\x14\x15\x16\n\xd3\x01\n\x06\x04;\x03\x01\x02\x03\x12\x04\x96\x14\
25608    \x04\x20\x1a\xc2\x01\x20The\x20folder(s)\x20that\x20this\x20IAM\x20polic\
25609    y\x20belongs\x20to,\x20in\x20the\x20format\x20of\n\x20folders/{FOLDER_NU\
25610    MBER}.\x20This\x20field\x20is\x20available\x20when\x20the\x20IAM\x20poli\
25611    cy\n\x20belongs\x20(directly\x20or\x20cascadingly)\x20to\x20one\x20or\
25612    \x20more\x20folders.\n\n\x0f\n\x07\x04;\x03\x01\x02\x03\x04\x12\x04\x96\
25613    \x14\x04\x0c\n\x0f\n\x07\x04;\x03\x01\x02\x03\x05\x12\x04\x96\x14\r\x13\
25614    \n\x0f\n\x07\x04;\x03\x01\x02\x03\x01\x12\x04\x96\x14\x14\x1b\n\x0f\n\
25615    \x07\x04;\x03\x01\x02\x03\x03\x12\x04\x96\x14\x1e\x1f\n\xde\x01\n\x06\
25616    \x04;\x03\x01\x02\x04\x12\x04\x9b\x14\x04\x1c\x1a\xcd\x01\x20The\x20orga\
25617    nization\x20that\x20this\x20IAM\x20policy\x20belongs\x20to,\x20in\x20the\
25618    \x20format\x20of\n\x20organizations/{ORGANIZATION_NUMBER}.\x20This\x20fi\
25619    eld\x20is\x20available\x20when\x20the\n\x20IAM\x20policy\x20belongs\x20(\
25620    directly\x20or\x20cascadingly)\x20to\x20an\x20organization.\n\n\x0f\n\
25621    \x07\x04;\x03\x01\x02\x04\x05\x12\x04\x9b\x14\x04\n\n\x0f\n\x07\x04;\x03\
25622    \x01\x02\x04\x01\x12\x04\x9b\x14\x0b\x17\n\x0f\n\x07\x04;\x03\x01\x02\
25623    \x04\x03\x12\x04\x9b\x14\x1a\x1b\n\xf5\x01\n\x04\x04;\x03\x02\x12\x06\
25624    \xa1\x14\x02\xbc\x14\x03\x1a\xe4\x01\x20Represents\x20a\x20Google\x20Clo\
25625    ud\x20asset(resource\x20or\x20IAM\x20policy)\x20governed\x20by\x20the\n\
25626    \x20organization\x20policies\x20of\x20the\n\x20[AnalyzeOrgPolicyGoverned\
25627    AssetsRequest.constraint][google.cloud.asset.v1.AnalyzeOrgPolicyGoverned\
25628    AssetsRequest.constraint].\n\n\r\n\x05\x04;\x03\x02\x01\x12\x04\xa1\x14\
25629    \n\x17\n\x10\n\x06\x04;\x03\x02\x08\0\x12\x06\xa2\x14\x04\xac\x14\x05\n\
25630    \x0f\n\x07\x04;\x03\x02\x08\0\x01\x12\x04\xa2\x14\n\x18\n\xd5\x01\n\x06\
25631    \x04;\x03\x02\x02\0\x12\x04\xa6\x14\x06-\x1a\xc4\x01\x20A\x20Google\x20C\
25632    loud\x20resource\x20governed\x20by\x20the\x20organization\n\x20policies\
25633    \x20of\x20the\n\x20[AnalyzeOrgPolicyGovernedAssetsRequest.constraint][go\
25634    ogle.cloud.asset.v1.AnalyzeOrgPolicyGovernedAssetsRequest.constraint].\n\
25635    \n\x0f\n\x07\x04;\x03\x02\x02\0\x06\x12\x04\xa6\x14\x06\x16\n\x0f\n\x07\
25636    \x04;\x03\x02\x02\0\x01\x12\x04\xa6\x14\x17(\n\x0f\n\x07\x04;\x03\x02\
25637    \x02\0\x03\x12\x04\xa6\x14+,\n\xcb\x01\n\x06\x04;\x03\x02\x02\x01\x12\
25638    \x04\xab\x14\x060\x1a\xba\x01\x20An\x20IAM\x20policy\x20governed\x20by\
25639    \x20the\x20organization\n\x20policies\x20of\x20the\n\x20[AnalyzeOrgPolic\
25640    yGovernedAssetsRequest.constraint][google.cloud.asset.v1.AnalyzeOrgPolic\
25641    yGovernedAssetsRequest.constraint].\n\n\x0f\n\x07\x04;\x03\x02\x02\x01\
25642    \x06\x12\x04\xab\x14\x06\x17\n\x0f\n\x07\x04;\x03\x02\x02\x01\x01\x12\
25643    \x04\xab\x14\x18+\n\x0f\n\x07\x04;\x03\x02\x02\x01\x03\x12\x04\xab\x14./\
25644    \n\xc7\x03\n\x06\x04;\x03\x02\x02\x02\x12\x04\xb3\x14\x04.\x1a\xb6\x03\
25645    \x20The\x20consolidated\x20policy\x20for\x20the\x20analyzed\x20asset.\
25646    \x20The\x20consolidated\n\x20policy\x20is\x20computed\x20by\x20merging\
25647    \x20and\x20evaluating\n\x20[AnalyzeOrgPolicyGovernedAssetsResponse.Gover\
25648    nedAsset.policy_bundle][google.cloud.asset.v1.AnalyzeOrgPolicyGovernedAs\
25649    setsResponse.GovernedAsset.policy_bundle].\n\x20The\x20evaluation\x20wil\
25650    l\x20respect\x20the\x20organization\x20policy\x20[hierarchy\n\x20rules](\
25651    https://cloud.google.com/resource-manager/docs/organization-policy/under\
25652    standing-hierarchy).\n\n\x0f\n\x07\x04;\x03\x02\x02\x02\x06\x12\x04\xb3\
25653    \x14\x04\x15\n\x0f\n\x07\x04;\x03\x02\x02\x02\x01\x12\x04\xb3\x14\x16)\n\
25654    \x0f\n\x07\x04;\x03\x02\x02\x02\x03\x12\x04\xb3\x14,-\n\x9d\x02\n\x06\
25655    \x04;\x03\x02\x02\x03\x12\x04\xbb\x14\x041\x1a\x8c\x02\x20The\x20ordered\
25656    \x20list\x20of\x20all\x20organization\x20policies\x20from\x20the\n\x20[A\
25657    nalyzeOrgPoliciesResponse.OrgPolicyResult.consolidated_policy.attached_r\
25658    esource][]\n\x20to\x20the\x20scope\x20specified\x20in\x20the\x20request.\
25659    \n\n\x20If\x20the\x20constraint\x20is\x20defined\x20with\x20default\x20p\
25660    olicy,\x20it\x20will\x20also\x20appear\x20in\n\x20the\x20list.\n\n\x0f\n\
25661    \x07\x04;\x03\x02\x02\x03\x04\x12\x04\xbb\x14\x04\x0c\n\x0f\n\x07\x04;\
25662    \x03\x02\x02\x03\x06\x12\x04\xbb\x14\r\x1e\n\x0f\n\x07\x04;\x03\x02\x02\
25663    \x03\x01\x12\x04\xbb\x14\x1f,\n\x0f\n\x07\x04;\x03\x02\x02\x03\x03\x12\
25664    \x04\xbb\x14/0\n9\n\x04\x04;\x02\0\x12\x04\xbf\x14\x02-\x1a+\x20The\x20l\
25665    ist\x20of\x20the\x20analyzed\x20governed\x20assets.\n\n\r\n\x05\x04;\x02\
25666    \0\x04\x12\x04\xbf\x14\x02\n\n\r\n\x05\x04;\x02\0\x06\x12\x04\xbf\x14\
25667    \x0b\x18\n\r\n\x05\x04;\x02\0\x01\x12\x04\xbf\x14\x19(\n\r\n\x05\x04;\
25668    \x02\0\x03\x12\x04\xbf\x14+,\n@\n\x04\x04;\x02\x01\x12\x04\xc2\x14\x02-\
25669    \x1a2\x20The\x20definition\x20of\x20the\x20constraint\x20in\x20the\x20re\
25670    quest.\n\n\r\n\x05\x04;\x02\x01\x06\x12\x04\xc2\x14\x02\x1d\n\r\n\x05\
25671    \x04;\x02\x01\x01\x12\x04\xc2\x14\x1e(\n\r\n\x05\x04;\x02\x01\x03\x12\
25672    \x04\xc2\x14+,\n\xc3\x01\n\x04\x04;\x02\x02\x12\x04\xc6\x14\x02\x1d\x1a\
25673    \xb4\x01\x20The\x20page\x20token\x20to\x20fetch\x20the\x20next\x20page\
25674    \x20for\n\x20[AnalyzeOrgPolicyGovernedAssetsResponse.governed_assets][go\
25675    ogle.cloud.asset.v1.AnalyzeOrgPolicyGovernedAssetsResponse.governed_asse\
25676    ts].\n\n\r\n\x05\x04;\x02\x02\x05\x12\x04\xc6\x14\x02\x08\n\r\n\x05\x04;\
25677    \x02\x02\x01\x12\x04\xc6\x14\t\x18\n\r\n\x05\x04;\x02\x02\x03\x12\x04\
25678    \xc6\x14\x1b\x1c\n#\n\x02\x05\0\x12\x06\xca\x14\0\xdf\x14\x01\x1a\x15\
25679    \x20Asset\x20content\x20type.\n\n\x0b\n\x03\x05\0\x01\x12\x04\xca\x14\
25680    \x05\x10\n)\n\x04\x05\0\x02\0\x12\x04\xcc\x14\x02\x1f\x1a\x1b\x20Unspeci\
25681    fied\x20content\x20type.\n\n\r\n\x05\x05\0\x02\0\x01\x12\x04\xcc\x14\x02\
25682    \x1a\n\r\n\x05\x05\0\x02\0\x02\x12\x04\xcc\x14\x1d\x1e\n\"\n\x04\x05\0\
25683    \x02\x01\x12\x04\xcf\x14\x02\x0f\x1a\x14\x20Resource\x20metadata.\n\n\r\
25684    \n\x05\x05\0\x02\x01\x01\x12\x04\xcf\x14\x02\n\n\r\n\x05\x05\0\x02\x01\
25685    \x02\x12\x04\xcf\x14\r\x0e\n8\n\x04\x05\0\x02\x02\x12\x04\xd2\x14\x02\
25686    \x11\x1a*\x20The\x20actual\x20IAM\x20policy\x20set\x20on\x20a\x20resourc\
25687    e.\n\n\r\n\x05\x05\0\x02\x02\x01\x12\x04\xd2\x14\x02\x0c\n\r\n\x05\x05\0\
25688    \x02\x02\x02\x12\x04\xd2\x14\x0f\x10\n8\n\x04\x05\0\x02\x03\x12\x04\xd5\
25689    \x14\x02\x11\x1a*\x20The\x20organization\x20policy\x20set\x20on\x20an\
25690    \x20asset.\n\n\r\n\x05\x05\0\x02\x03\x01\x12\x04\xd5\x14\x02\x0c\n\r\n\
25691    \x05\x05\0\x02\x03\x02\x12\x04\xd5\x14\x0f\x10\nB\n\x04\x05\0\x02\x04\
25692    \x12\x04\xd8\x14\x02\x14\x1a4\x20The\x20Access\x20Context\x20Manager\x20\
25693    policy\x20set\x20on\x20an\x20asset.\n\n\r\n\x05\x05\0\x02\x04\x01\x12\
25694    \x04\xd8\x14\x02\x0f\n\r\n\x05\x05\0\x02\x04\x02\x12\x04\xd8\x14\x12\x13\
25695    \n5\n\x04\x05\0\x02\x05\x12\x04\xdb\x14\x02\x13\x1a'\x20The\x20runtime\
25696    \x20OS\x20Inventory\x20information.\n\n\r\n\x05\x05\0\x02\x05\x01\x12\
25697    \x04\xdb\x14\x02\x0e\n\r\n\x05\x05\0\x02\x05\x02\x12\x04\xdb\x14\x11\x12\
25698    \n&\n\x04\x05\0\x02\x06\x12\x04\xde\x14\x02\x13\x1a\x18\x20The\x20relate\
25699    d\x20resources.\n\n\r\n\x05\x05\0\x02\x06\x01\x12\x04\xde\x14\x02\x0e\n\
25700    \r\n\x05\x05\0\x02\x06\x02\x12\x04\xde\x14\x11\x12b\x06proto3\
25701";
25702
25703static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;
25704
25705fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
25706    ::protobuf::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
25707}
25708
25709pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
25710    file_descriptor_proto_lazy.get(|| {
25711        parse_descriptor_proto()
25712    })
25713}