google_cloud_rust_raw/cloud/osconfig/v1alpha/
vulnerability.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/osconfig/v1alpha/vulnerability.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 VulnerabilityReport {
28    // message fields
29    pub name: ::std::string::String,
30    pub vulnerabilities: ::protobuf::RepeatedField<VulnerabilityReport_Vulnerability>,
31    pub update_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
32    // special fields
33    pub unknown_fields: ::protobuf::UnknownFields,
34    pub cached_size: ::protobuf::CachedSize,
35}
36
37impl<'a> ::std::default::Default for &'a VulnerabilityReport {
38    fn default() -> &'a VulnerabilityReport {
39        <VulnerabilityReport as ::protobuf::Message>::default_instance()
40    }
41}
42
43impl VulnerabilityReport {
44    pub fn new() -> VulnerabilityReport {
45        ::std::default::Default::default()
46    }
47
48    // string name = 1;
49
50
51    pub fn get_name(&self) -> &str {
52        &self.name
53    }
54    pub fn clear_name(&mut self) {
55        self.name.clear();
56    }
57
58    // Param is passed by value, moved
59    pub fn set_name(&mut self, v: ::std::string::String) {
60        self.name = v;
61    }
62
63    // Mutable pointer to the field.
64    // If field is not initialized, it is initialized with default value first.
65    pub fn mut_name(&mut self) -> &mut ::std::string::String {
66        &mut self.name
67    }
68
69    // Take field
70    pub fn take_name(&mut self) -> ::std::string::String {
71        ::std::mem::replace(&mut self.name, ::std::string::String::new())
72    }
73
74    // repeated .google.cloud.osconfig.v1alpha.VulnerabilityReport.Vulnerability vulnerabilities = 2;
75
76
77    pub fn get_vulnerabilities(&self) -> &[VulnerabilityReport_Vulnerability] {
78        &self.vulnerabilities
79    }
80    pub fn clear_vulnerabilities(&mut self) {
81        self.vulnerabilities.clear();
82    }
83
84    // Param is passed by value, moved
85    pub fn set_vulnerabilities(&mut self, v: ::protobuf::RepeatedField<VulnerabilityReport_Vulnerability>) {
86        self.vulnerabilities = v;
87    }
88
89    // Mutable pointer to the field.
90    pub fn mut_vulnerabilities(&mut self) -> &mut ::protobuf::RepeatedField<VulnerabilityReport_Vulnerability> {
91        &mut self.vulnerabilities
92    }
93
94    // Take field
95    pub fn take_vulnerabilities(&mut self) -> ::protobuf::RepeatedField<VulnerabilityReport_Vulnerability> {
96        ::std::mem::replace(&mut self.vulnerabilities, ::protobuf::RepeatedField::new())
97    }
98
99    // .google.protobuf.Timestamp update_time = 3;
100
101
102    pub fn get_update_time(&self) -> &::protobuf::well_known_types::Timestamp {
103        self.update_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
104    }
105    pub fn clear_update_time(&mut self) {
106        self.update_time.clear();
107    }
108
109    pub fn has_update_time(&self) -> bool {
110        self.update_time.is_some()
111    }
112
113    // Param is passed by value, moved
114    pub fn set_update_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
115        self.update_time = ::protobuf::SingularPtrField::some(v);
116    }
117
118    // Mutable pointer to the field.
119    // If field is not initialized, it is initialized with default value first.
120    pub fn mut_update_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
121        if self.update_time.is_none() {
122            self.update_time.set_default();
123        }
124        self.update_time.as_mut().unwrap()
125    }
126
127    // Take field
128    pub fn take_update_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
129        self.update_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
130    }
131}
132
133impl ::protobuf::Message for VulnerabilityReport {
134    fn is_initialized(&self) -> bool {
135        for v in &self.vulnerabilities {
136            if !v.is_initialized() {
137                return false;
138            }
139        };
140        for v in &self.update_time {
141            if !v.is_initialized() {
142                return false;
143            }
144        };
145        true
146    }
147
148    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
149        while !is.eof()? {
150            let (field_number, wire_type) = is.read_tag_unpack()?;
151            match field_number {
152                1 => {
153                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
154                },
155                2 => {
156                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.vulnerabilities)?;
157                },
158                3 => {
159                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.update_time)?;
160                },
161                _ => {
162                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
163                },
164            };
165        }
166        ::std::result::Result::Ok(())
167    }
168
169    // Compute sizes of nested messages
170    #[allow(unused_variables)]
171    fn compute_size(&self) -> u32 {
172        let mut my_size = 0;
173        if !self.name.is_empty() {
174            my_size += ::protobuf::rt::string_size(1, &self.name);
175        }
176        for value in &self.vulnerabilities {
177            let len = value.compute_size();
178            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
179        };
180        if let Some(ref v) = self.update_time.as_ref() {
181            let len = v.compute_size();
182            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
183        }
184        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
185        self.cached_size.set(my_size);
186        my_size
187    }
188
189    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
190        if !self.name.is_empty() {
191            os.write_string(1, &self.name)?;
192        }
193        for v in &self.vulnerabilities {
194            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
195            os.write_raw_varint32(v.get_cached_size())?;
196            v.write_to_with_cached_sizes(os)?;
197        };
198        if let Some(ref v) = self.update_time.as_ref() {
199            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
200            os.write_raw_varint32(v.get_cached_size())?;
201            v.write_to_with_cached_sizes(os)?;
202        }
203        os.write_unknown_fields(self.get_unknown_fields())?;
204        ::std::result::Result::Ok(())
205    }
206
207    fn get_cached_size(&self) -> u32 {
208        self.cached_size.get()
209    }
210
211    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
212        &self.unknown_fields
213    }
214
215    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
216        &mut self.unknown_fields
217    }
218
219    fn as_any(&self) -> &dyn (::std::any::Any) {
220        self as &dyn (::std::any::Any)
221    }
222    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
223        self as &mut dyn (::std::any::Any)
224    }
225    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
226        self
227    }
228
229    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
230        Self::descriptor_static()
231    }
232
233    fn new() -> VulnerabilityReport {
234        VulnerabilityReport::new()
235    }
236
237    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
238        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
239        descriptor.get(|| {
240            let mut fields = ::std::vec::Vec::new();
241            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
242                "name",
243                |m: &VulnerabilityReport| { &m.name },
244                |m: &mut VulnerabilityReport| { &mut m.name },
245            ));
246            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<VulnerabilityReport_Vulnerability>>(
247                "vulnerabilities",
248                |m: &VulnerabilityReport| { &m.vulnerabilities },
249                |m: &mut VulnerabilityReport| { &mut m.vulnerabilities },
250            ));
251            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
252                "update_time",
253                |m: &VulnerabilityReport| { &m.update_time },
254                |m: &mut VulnerabilityReport| { &mut m.update_time },
255            ));
256            ::protobuf::reflect::MessageDescriptor::new_pb_name::<VulnerabilityReport>(
257                "VulnerabilityReport",
258                fields,
259                file_descriptor_proto()
260            )
261        })
262    }
263
264    fn default_instance() -> &'static VulnerabilityReport {
265        static instance: ::protobuf::rt::LazyV2<VulnerabilityReport> = ::protobuf::rt::LazyV2::INIT;
266        instance.get(VulnerabilityReport::new)
267    }
268}
269
270impl ::protobuf::Clear for VulnerabilityReport {
271    fn clear(&mut self) {
272        self.name.clear();
273        self.vulnerabilities.clear();
274        self.update_time.clear();
275        self.unknown_fields.clear();
276    }
277}
278
279impl ::std::fmt::Debug for VulnerabilityReport {
280    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
281        ::protobuf::text_format::fmt(self, f)
282    }
283}
284
285impl ::protobuf::reflect::ProtobufValue for VulnerabilityReport {
286    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
287        ::protobuf::reflect::ReflectValueRef::Message(self)
288    }
289}
290
291#[derive(PartialEq,Clone,Default)]
292pub struct VulnerabilityReport_Vulnerability {
293    // message fields
294    pub details: ::protobuf::SingularPtrField<VulnerabilityReport_Vulnerability_Details>,
295    pub installed_inventory_item_ids: ::protobuf::RepeatedField<::std::string::String>,
296    pub available_inventory_item_ids: ::protobuf::RepeatedField<::std::string::String>,
297    pub create_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
298    pub update_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
299    pub items: ::protobuf::RepeatedField<VulnerabilityReport_Vulnerability_Item>,
300    // special fields
301    pub unknown_fields: ::protobuf::UnknownFields,
302    pub cached_size: ::protobuf::CachedSize,
303}
304
305impl<'a> ::std::default::Default for &'a VulnerabilityReport_Vulnerability {
306    fn default() -> &'a VulnerabilityReport_Vulnerability {
307        <VulnerabilityReport_Vulnerability as ::protobuf::Message>::default_instance()
308    }
309}
310
311impl VulnerabilityReport_Vulnerability {
312    pub fn new() -> VulnerabilityReport_Vulnerability {
313        ::std::default::Default::default()
314    }
315
316    // .google.cloud.osconfig.v1alpha.VulnerabilityReport.Vulnerability.Details details = 1;
317
318
319    pub fn get_details(&self) -> &VulnerabilityReport_Vulnerability_Details {
320        self.details.as_ref().unwrap_or_else(|| <VulnerabilityReport_Vulnerability_Details as ::protobuf::Message>::default_instance())
321    }
322    pub fn clear_details(&mut self) {
323        self.details.clear();
324    }
325
326    pub fn has_details(&self) -> bool {
327        self.details.is_some()
328    }
329
330    // Param is passed by value, moved
331    pub fn set_details(&mut self, v: VulnerabilityReport_Vulnerability_Details) {
332        self.details = ::protobuf::SingularPtrField::some(v);
333    }
334
335    // Mutable pointer to the field.
336    // If field is not initialized, it is initialized with default value first.
337    pub fn mut_details(&mut self) -> &mut VulnerabilityReport_Vulnerability_Details {
338        if self.details.is_none() {
339            self.details.set_default();
340        }
341        self.details.as_mut().unwrap()
342    }
343
344    // Take field
345    pub fn take_details(&mut self) -> VulnerabilityReport_Vulnerability_Details {
346        self.details.take().unwrap_or_else(|| VulnerabilityReport_Vulnerability_Details::new())
347    }
348
349    // repeated string installed_inventory_item_ids = 2;
350
351
352    pub fn get_installed_inventory_item_ids(&self) -> &[::std::string::String] {
353        &self.installed_inventory_item_ids
354    }
355    pub fn clear_installed_inventory_item_ids(&mut self) {
356        self.installed_inventory_item_ids.clear();
357    }
358
359    // Param is passed by value, moved
360    pub fn set_installed_inventory_item_ids(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
361        self.installed_inventory_item_ids = v;
362    }
363
364    // Mutable pointer to the field.
365    pub fn mut_installed_inventory_item_ids(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
366        &mut self.installed_inventory_item_ids
367    }
368
369    // Take field
370    pub fn take_installed_inventory_item_ids(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
371        ::std::mem::replace(&mut self.installed_inventory_item_ids, ::protobuf::RepeatedField::new())
372    }
373
374    // repeated string available_inventory_item_ids = 3;
375
376
377    pub fn get_available_inventory_item_ids(&self) -> &[::std::string::String] {
378        &self.available_inventory_item_ids
379    }
380    pub fn clear_available_inventory_item_ids(&mut self) {
381        self.available_inventory_item_ids.clear();
382    }
383
384    // Param is passed by value, moved
385    pub fn set_available_inventory_item_ids(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
386        self.available_inventory_item_ids = v;
387    }
388
389    // Mutable pointer to the field.
390    pub fn mut_available_inventory_item_ids(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
391        &mut self.available_inventory_item_ids
392    }
393
394    // Take field
395    pub fn take_available_inventory_item_ids(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
396        ::std::mem::replace(&mut self.available_inventory_item_ids, ::protobuf::RepeatedField::new())
397    }
398
399    // .google.protobuf.Timestamp create_time = 4;
400
401
402    pub fn get_create_time(&self) -> &::protobuf::well_known_types::Timestamp {
403        self.create_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
404    }
405    pub fn clear_create_time(&mut self) {
406        self.create_time.clear();
407    }
408
409    pub fn has_create_time(&self) -> bool {
410        self.create_time.is_some()
411    }
412
413    // Param is passed by value, moved
414    pub fn set_create_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
415        self.create_time = ::protobuf::SingularPtrField::some(v);
416    }
417
418    // Mutable pointer to the field.
419    // If field is not initialized, it is initialized with default value first.
420    pub fn mut_create_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
421        if self.create_time.is_none() {
422            self.create_time.set_default();
423        }
424        self.create_time.as_mut().unwrap()
425    }
426
427    // Take field
428    pub fn take_create_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
429        self.create_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
430    }
431
432    // .google.protobuf.Timestamp update_time = 5;
433
434
435    pub fn get_update_time(&self) -> &::protobuf::well_known_types::Timestamp {
436        self.update_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
437    }
438    pub fn clear_update_time(&mut self) {
439        self.update_time.clear();
440    }
441
442    pub fn has_update_time(&self) -> bool {
443        self.update_time.is_some()
444    }
445
446    // Param is passed by value, moved
447    pub fn set_update_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
448        self.update_time = ::protobuf::SingularPtrField::some(v);
449    }
450
451    // Mutable pointer to the field.
452    // If field is not initialized, it is initialized with default value first.
453    pub fn mut_update_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
454        if self.update_time.is_none() {
455            self.update_time.set_default();
456        }
457        self.update_time.as_mut().unwrap()
458    }
459
460    // Take field
461    pub fn take_update_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
462        self.update_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
463    }
464
465    // repeated .google.cloud.osconfig.v1alpha.VulnerabilityReport.Vulnerability.Item items = 6;
466
467
468    pub fn get_items(&self) -> &[VulnerabilityReport_Vulnerability_Item] {
469        &self.items
470    }
471    pub fn clear_items(&mut self) {
472        self.items.clear();
473    }
474
475    // Param is passed by value, moved
476    pub fn set_items(&mut self, v: ::protobuf::RepeatedField<VulnerabilityReport_Vulnerability_Item>) {
477        self.items = v;
478    }
479
480    // Mutable pointer to the field.
481    pub fn mut_items(&mut self) -> &mut ::protobuf::RepeatedField<VulnerabilityReport_Vulnerability_Item> {
482        &mut self.items
483    }
484
485    // Take field
486    pub fn take_items(&mut self) -> ::protobuf::RepeatedField<VulnerabilityReport_Vulnerability_Item> {
487        ::std::mem::replace(&mut self.items, ::protobuf::RepeatedField::new())
488    }
489}
490
491impl ::protobuf::Message for VulnerabilityReport_Vulnerability {
492    fn is_initialized(&self) -> bool {
493        for v in &self.details {
494            if !v.is_initialized() {
495                return false;
496            }
497        };
498        for v in &self.create_time {
499            if !v.is_initialized() {
500                return false;
501            }
502        };
503        for v in &self.update_time {
504            if !v.is_initialized() {
505                return false;
506            }
507        };
508        for v in &self.items {
509            if !v.is_initialized() {
510                return false;
511            }
512        };
513        true
514    }
515
516    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
517        while !is.eof()? {
518            let (field_number, wire_type) = is.read_tag_unpack()?;
519            match field_number {
520                1 => {
521                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.details)?;
522                },
523                2 => {
524                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.installed_inventory_item_ids)?;
525                },
526                3 => {
527                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.available_inventory_item_ids)?;
528                },
529                4 => {
530                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.create_time)?;
531                },
532                5 => {
533                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.update_time)?;
534                },
535                6 => {
536                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.items)?;
537                },
538                _ => {
539                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
540                },
541            };
542        }
543        ::std::result::Result::Ok(())
544    }
545
546    // Compute sizes of nested messages
547    #[allow(unused_variables)]
548    fn compute_size(&self) -> u32 {
549        let mut my_size = 0;
550        if let Some(ref v) = self.details.as_ref() {
551            let len = v.compute_size();
552            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
553        }
554        for value in &self.installed_inventory_item_ids {
555            my_size += ::protobuf::rt::string_size(2, &value);
556        };
557        for value in &self.available_inventory_item_ids {
558            my_size += ::protobuf::rt::string_size(3, &value);
559        };
560        if let Some(ref v) = self.create_time.as_ref() {
561            let len = v.compute_size();
562            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
563        }
564        if let Some(ref v) = self.update_time.as_ref() {
565            let len = v.compute_size();
566            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
567        }
568        for value in &self.items {
569            let len = value.compute_size();
570            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
571        };
572        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
573        self.cached_size.set(my_size);
574        my_size
575    }
576
577    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
578        if let Some(ref v) = self.details.as_ref() {
579            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
580            os.write_raw_varint32(v.get_cached_size())?;
581            v.write_to_with_cached_sizes(os)?;
582        }
583        for v in &self.installed_inventory_item_ids {
584            os.write_string(2, &v)?;
585        };
586        for v in &self.available_inventory_item_ids {
587            os.write_string(3, &v)?;
588        };
589        if let Some(ref v) = self.create_time.as_ref() {
590            os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
591            os.write_raw_varint32(v.get_cached_size())?;
592            v.write_to_with_cached_sizes(os)?;
593        }
594        if let Some(ref v) = self.update_time.as_ref() {
595            os.write_tag(5, ::protobuf::wire_format::WireTypeLengthDelimited)?;
596            os.write_raw_varint32(v.get_cached_size())?;
597            v.write_to_with_cached_sizes(os)?;
598        }
599        for v in &self.items {
600            os.write_tag(6, ::protobuf::wire_format::WireTypeLengthDelimited)?;
601            os.write_raw_varint32(v.get_cached_size())?;
602            v.write_to_with_cached_sizes(os)?;
603        };
604        os.write_unknown_fields(self.get_unknown_fields())?;
605        ::std::result::Result::Ok(())
606    }
607
608    fn get_cached_size(&self) -> u32 {
609        self.cached_size.get()
610    }
611
612    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
613        &self.unknown_fields
614    }
615
616    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
617        &mut self.unknown_fields
618    }
619
620    fn as_any(&self) -> &dyn (::std::any::Any) {
621        self as &dyn (::std::any::Any)
622    }
623    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
624        self as &mut dyn (::std::any::Any)
625    }
626    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
627        self
628    }
629
630    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
631        Self::descriptor_static()
632    }
633
634    fn new() -> VulnerabilityReport_Vulnerability {
635        VulnerabilityReport_Vulnerability::new()
636    }
637
638    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
639        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
640        descriptor.get(|| {
641            let mut fields = ::std::vec::Vec::new();
642            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<VulnerabilityReport_Vulnerability_Details>>(
643                "details",
644                |m: &VulnerabilityReport_Vulnerability| { &m.details },
645                |m: &mut VulnerabilityReport_Vulnerability| { &mut m.details },
646            ));
647            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
648                "installed_inventory_item_ids",
649                |m: &VulnerabilityReport_Vulnerability| { &m.installed_inventory_item_ids },
650                |m: &mut VulnerabilityReport_Vulnerability| { &mut m.installed_inventory_item_ids },
651            ));
652            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
653                "available_inventory_item_ids",
654                |m: &VulnerabilityReport_Vulnerability| { &m.available_inventory_item_ids },
655                |m: &mut VulnerabilityReport_Vulnerability| { &mut m.available_inventory_item_ids },
656            ));
657            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
658                "create_time",
659                |m: &VulnerabilityReport_Vulnerability| { &m.create_time },
660                |m: &mut VulnerabilityReport_Vulnerability| { &mut m.create_time },
661            ));
662            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
663                "update_time",
664                |m: &VulnerabilityReport_Vulnerability| { &m.update_time },
665                |m: &mut VulnerabilityReport_Vulnerability| { &mut m.update_time },
666            ));
667            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<VulnerabilityReport_Vulnerability_Item>>(
668                "items",
669                |m: &VulnerabilityReport_Vulnerability| { &m.items },
670                |m: &mut VulnerabilityReport_Vulnerability| { &mut m.items },
671            ));
672            ::protobuf::reflect::MessageDescriptor::new_pb_name::<VulnerabilityReport_Vulnerability>(
673                "VulnerabilityReport.Vulnerability",
674                fields,
675                file_descriptor_proto()
676            )
677        })
678    }
679
680    fn default_instance() -> &'static VulnerabilityReport_Vulnerability {
681        static instance: ::protobuf::rt::LazyV2<VulnerabilityReport_Vulnerability> = ::protobuf::rt::LazyV2::INIT;
682        instance.get(VulnerabilityReport_Vulnerability::new)
683    }
684}
685
686impl ::protobuf::Clear for VulnerabilityReport_Vulnerability {
687    fn clear(&mut self) {
688        self.details.clear();
689        self.installed_inventory_item_ids.clear();
690        self.available_inventory_item_ids.clear();
691        self.create_time.clear();
692        self.update_time.clear();
693        self.items.clear();
694        self.unknown_fields.clear();
695    }
696}
697
698impl ::std::fmt::Debug for VulnerabilityReport_Vulnerability {
699    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
700        ::protobuf::text_format::fmt(self, f)
701    }
702}
703
704impl ::protobuf::reflect::ProtobufValue for VulnerabilityReport_Vulnerability {
705    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
706        ::protobuf::reflect::ReflectValueRef::Message(self)
707    }
708}
709
710#[derive(PartialEq,Clone,Default)]
711pub struct VulnerabilityReport_Vulnerability_Details {
712    // message fields
713    pub cve: ::std::string::String,
714    pub cvss_v2_score: f32,
715    pub cvss_v3: ::protobuf::SingularPtrField<CVSSv3>,
716    pub severity: ::std::string::String,
717    pub description: ::std::string::String,
718    pub references: ::protobuf::RepeatedField<VulnerabilityReport_Vulnerability_Details_Reference>,
719    // special fields
720    pub unknown_fields: ::protobuf::UnknownFields,
721    pub cached_size: ::protobuf::CachedSize,
722}
723
724impl<'a> ::std::default::Default for &'a VulnerabilityReport_Vulnerability_Details {
725    fn default() -> &'a VulnerabilityReport_Vulnerability_Details {
726        <VulnerabilityReport_Vulnerability_Details as ::protobuf::Message>::default_instance()
727    }
728}
729
730impl VulnerabilityReport_Vulnerability_Details {
731    pub fn new() -> VulnerabilityReport_Vulnerability_Details {
732        ::std::default::Default::default()
733    }
734
735    // string cve = 1;
736
737
738    pub fn get_cve(&self) -> &str {
739        &self.cve
740    }
741    pub fn clear_cve(&mut self) {
742        self.cve.clear();
743    }
744
745    // Param is passed by value, moved
746    pub fn set_cve(&mut self, v: ::std::string::String) {
747        self.cve = v;
748    }
749
750    // Mutable pointer to the field.
751    // If field is not initialized, it is initialized with default value first.
752    pub fn mut_cve(&mut self) -> &mut ::std::string::String {
753        &mut self.cve
754    }
755
756    // Take field
757    pub fn take_cve(&mut self) -> ::std::string::String {
758        ::std::mem::replace(&mut self.cve, ::std::string::String::new())
759    }
760
761    // float cvss_v2_score = 2;
762
763
764    pub fn get_cvss_v2_score(&self) -> f32 {
765        self.cvss_v2_score
766    }
767    pub fn clear_cvss_v2_score(&mut self) {
768        self.cvss_v2_score = 0.;
769    }
770
771    // Param is passed by value, moved
772    pub fn set_cvss_v2_score(&mut self, v: f32) {
773        self.cvss_v2_score = v;
774    }
775
776    // .google.cloud.osconfig.v1alpha.CVSSv3 cvss_v3 = 3;
777
778
779    pub fn get_cvss_v3(&self) -> &CVSSv3 {
780        self.cvss_v3.as_ref().unwrap_or_else(|| <CVSSv3 as ::protobuf::Message>::default_instance())
781    }
782    pub fn clear_cvss_v3(&mut self) {
783        self.cvss_v3.clear();
784    }
785
786    pub fn has_cvss_v3(&self) -> bool {
787        self.cvss_v3.is_some()
788    }
789
790    // Param is passed by value, moved
791    pub fn set_cvss_v3(&mut self, v: CVSSv3) {
792        self.cvss_v3 = ::protobuf::SingularPtrField::some(v);
793    }
794
795    // Mutable pointer to the field.
796    // If field is not initialized, it is initialized with default value first.
797    pub fn mut_cvss_v3(&mut self) -> &mut CVSSv3 {
798        if self.cvss_v3.is_none() {
799            self.cvss_v3.set_default();
800        }
801        self.cvss_v3.as_mut().unwrap()
802    }
803
804    // Take field
805    pub fn take_cvss_v3(&mut self) -> CVSSv3 {
806        self.cvss_v3.take().unwrap_or_else(|| CVSSv3::new())
807    }
808
809    // string severity = 4;
810
811
812    pub fn get_severity(&self) -> &str {
813        &self.severity
814    }
815    pub fn clear_severity(&mut self) {
816        self.severity.clear();
817    }
818
819    // Param is passed by value, moved
820    pub fn set_severity(&mut self, v: ::std::string::String) {
821        self.severity = v;
822    }
823
824    // Mutable pointer to the field.
825    // If field is not initialized, it is initialized with default value first.
826    pub fn mut_severity(&mut self) -> &mut ::std::string::String {
827        &mut self.severity
828    }
829
830    // Take field
831    pub fn take_severity(&mut self) -> ::std::string::String {
832        ::std::mem::replace(&mut self.severity, ::std::string::String::new())
833    }
834
835    // string description = 5;
836
837
838    pub fn get_description(&self) -> &str {
839        &self.description
840    }
841    pub fn clear_description(&mut self) {
842        self.description.clear();
843    }
844
845    // Param is passed by value, moved
846    pub fn set_description(&mut self, v: ::std::string::String) {
847        self.description = v;
848    }
849
850    // Mutable pointer to the field.
851    // If field is not initialized, it is initialized with default value first.
852    pub fn mut_description(&mut self) -> &mut ::std::string::String {
853        &mut self.description
854    }
855
856    // Take field
857    pub fn take_description(&mut self) -> ::std::string::String {
858        ::std::mem::replace(&mut self.description, ::std::string::String::new())
859    }
860
861    // repeated .google.cloud.osconfig.v1alpha.VulnerabilityReport.Vulnerability.Details.Reference references = 6;
862
863
864    pub fn get_references(&self) -> &[VulnerabilityReport_Vulnerability_Details_Reference] {
865        &self.references
866    }
867    pub fn clear_references(&mut self) {
868        self.references.clear();
869    }
870
871    // Param is passed by value, moved
872    pub fn set_references(&mut self, v: ::protobuf::RepeatedField<VulnerabilityReport_Vulnerability_Details_Reference>) {
873        self.references = v;
874    }
875
876    // Mutable pointer to the field.
877    pub fn mut_references(&mut self) -> &mut ::protobuf::RepeatedField<VulnerabilityReport_Vulnerability_Details_Reference> {
878        &mut self.references
879    }
880
881    // Take field
882    pub fn take_references(&mut self) -> ::protobuf::RepeatedField<VulnerabilityReport_Vulnerability_Details_Reference> {
883        ::std::mem::replace(&mut self.references, ::protobuf::RepeatedField::new())
884    }
885}
886
887impl ::protobuf::Message for VulnerabilityReport_Vulnerability_Details {
888    fn is_initialized(&self) -> bool {
889        for v in &self.cvss_v3 {
890            if !v.is_initialized() {
891                return false;
892            }
893        };
894        for v in &self.references {
895            if !v.is_initialized() {
896                return false;
897            }
898        };
899        true
900    }
901
902    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
903        while !is.eof()? {
904            let (field_number, wire_type) = is.read_tag_unpack()?;
905            match field_number {
906                1 => {
907                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.cve)?;
908                },
909                2 => {
910                    if wire_type != ::protobuf::wire_format::WireTypeFixed32 {
911                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
912                    }
913                    let tmp = is.read_float()?;
914                    self.cvss_v2_score = tmp;
915                },
916                3 => {
917                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.cvss_v3)?;
918                },
919                4 => {
920                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.severity)?;
921                },
922                5 => {
923                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.description)?;
924                },
925                6 => {
926                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.references)?;
927                },
928                _ => {
929                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
930                },
931            };
932        }
933        ::std::result::Result::Ok(())
934    }
935
936    // Compute sizes of nested messages
937    #[allow(unused_variables)]
938    fn compute_size(&self) -> u32 {
939        let mut my_size = 0;
940        if !self.cve.is_empty() {
941            my_size += ::protobuf::rt::string_size(1, &self.cve);
942        }
943        if self.cvss_v2_score != 0. {
944            my_size += 5;
945        }
946        if let Some(ref v) = self.cvss_v3.as_ref() {
947            let len = v.compute_size();
948            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
949        }
950        if !self.severity.is_empty() {
951            my_size += ::protobuf::rt::string_size(4, &self.severity);
952        }
953        if !self.description.is_empty() {
954            my_size += ::protobuf::rt::string_size(5, &self.description);
955        }
956        for value in &self.references {
957            let len = value.compute_size();
958            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
959        };
960        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
961        self.cached_size.set(my_size);
962        my_size
963    }
964
965    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
966        if !self.cve.is_empty() {
967            os.write_string(1, &self.cve)?;
968        }
969        if self.cvss_v2_score != 0. {
970            os.write_float(2, self.cvss_v2_score)?;
971        }
972        if let Some(ref v) = self.cvss_v3.as_ref() {
973            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
974            os.write_raw_varint32(v.get_cached_size())?;
975            v.write_to_with_cached_sizes(os)?;
976        }
977        if !self.severity.is_empty() {
978            os.write_string(4, &self.severity)?;
979        }
980        if !self.description.is_empty() {
981            os.write_string(5, &self.description)?;
982        }
983        for v in &self.references {
984            os.write_tag(6, ::protobuf::wire_format::WireTypeLengthDelimited)?;
985            os.write_raw_varint32(v.get_cached_size())?;
986            v.write_to_with_cached_sizes(os)?;
987        };
988        os.write_unknown_fields(self.get_unknown_fields())?;
989        ::std::result::Result::Ok(())
990    }
991
992    fn get_cached_size(&self) -> u32 {
993        self.cached_size.get()
994    }
995
996    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
997        &self.unknown_fields
998    }
999
1000    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1001        &mut self.unknown_fields
1002    }
1003
1004    fn as_any(&self) -> &dyn (::std::any::Any) {
1005        self as &dyn (::std::any::Any)
1006    }
1007    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1008        self as &mut dyn (::std::any::Any)
1009    }
1010    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1011        self
1012    }
1013
1014    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1015        Self::descriptor_static()
1016    }
1017
1018    fn new() -> VulnerabilityReport_Vulnerability_Details {
1019        VulnerabilityReport_Vulnerability_Details::new()
1020    }
1021
1022    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1023        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1024        descriptor.get(|| {
1025            let mut fields = ::std::vec::Vec::new();
1026            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1027                "cve",
1028                |m: &VulnerabilityReport_Vulnerability_Details| { &m.cve },
1029                |m: &mut VulnerabilityReport_Vulnerability_Details| { &mut m.cve },
1030            ));
1031            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeFloat>(
1032                "cvss_v2_score",
1033                |m: &VulnerabilityReport_Vulnerability_Details| { &m.cvss_v2_score },
1034                |m: &mut VulnerabilityReport_Vulnerability_Details| { &mut m.cvss_v2_score },
1035            ));
1036            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<CVSSv3>>(
1037                "cvss_v3",
1038                |m: &VulnerabilityReport_Vulnerability_Details| { &m.cvss_v3 },
1039                |m: &mut VulnerabilityReport_Vulnerability_Details| { &mut m.cvss_v3 },
1040            ));
1041            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1042                "severity",
1043                |m: &VulnerabilityReport_Vulnerability_Details| { &m.severity },
1044                |m: &mut VulnerabilityReport_Vulnerability_Details| { &mut m.severity },
1045            ));
1046            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1047                "description",
1048                |m: &VulnerabilityReport_Vulnerability_Details| { &m.description },
1049                |m: &mut VulnerabilityReport_Vulnerability_Details| { &mut m.description },
1050            ));
1051            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<VulnerabilityReport_Vulnerability_Details_Reference>>(
1052                "references",
1053                |m: &VulnerabilityReport_Vulnerability_Details| { &m.references },
1054                |m: &mut VulnerabilityReport_Vulnerability_Details| { &mut m.references },
1055            ));
1056            ::protobuf::reflect::MessageDescriptor::new_pb_name::<VulnerabilityReport_Vulnerability_Details>(
1057                "VulnerabilityReport.Vulnerability.Details",
1058                fields,
1059                file_descriptor_proto()
1060            )
1061        })
1062    }
1063
1064    fn default_instance() -> &'static VulnerabilityReport_Vulnerability_Details {
1065        static instance: ::protobuf::rt::LazyV2<VulnerabilityReport_Vulnerability_Details> = ::protobuf::rt::LazyV2::INIT;
1066        instance.get(VulnerabilityReport_Vulnerability_Details::new)
1067    }
1068}
1069
1070impl ::protobuf::Clear for VulnerabilityReport_Vulnerability_Details {
1071    fn clear(&mut self) {
1072        self.cve.clear();
1073        self.cvss_v2_score = 0.;
1074        self.cvss_v3.clear();
1075        self.severity.clear();
1076        self.description.clear();
1077        self.references.clear();
1078        self.unknown_fields.clear();
1079    }
1080}
1081
1082impl ::std::fmt::Debug for VulnerabilityReport_Vulnerability_Details {
1083    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1084        ::protobuf::text_format::fmt(self, f)
1085    }
1086}
1087
1088impl ::protobuf::reflect::ProtobufValue for VulnerabilityReport_Vulnerability_Details {
1089    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1090        ::protobuf::reflect::ReflectValueRef::Message(self)
1091    }
1092}
1093
1094#[derive(PartialEq,Clone,Default)]
1095pub struct VulnerabilityReport_Vulnerability_Details_Reference {
1096    // message fields
1097    pub url: ::std::string::String,
1098    pub source: ::std::string::String,
1099    // special fields
1100    pub unknown_fields: ::protobuf::UnknownFields,
1101    pub cached_size: ::protobuf::CachedSize,
1102}
1103
1104impl<'a> ::std::default::Default for &'a VulnerabilityReport_Vulnerability_Details_Reference {
1105    fn default() -> &'a VulnerabilityReport_Vulnerability_Details_Reference {
1106        <VulnerabilityReport_Vulnerability_Details_Reference as ::protobuf::Message>::default_instance()
1107    }
1108}
1109
1110impl VulnerabilityReport_Vulnerability_Details_Reference {
1111    pub fn new() -> VulnerabilityReport_Vulnerability_Details_Reference {
1112        ::std::default::Default::default()
1113    }
1114
1115    // string url = 1;
1116
1117
1118    pub fn get_url(&self) -> &str {
1119        &self.url
1120    }
1121    pub fn clear_url(&mut self) {
1122        self.url.clear();
1123    }
1124
1125    // Param is passed by value, moved
1126    pub fn set_url(&mut self, v: ::std::string::String) {
1127        self.url = v;
1128    }
1129
1130    // Mutable pointer to the field.
1131    // If field is not initialized, it is initialized with default value first.
1132    pub fn mut_url(&mut self) -> &mut ::std::string::String {
1133        &mut self.url
1134    }
1135
1136    // Take field
1137    pub fn take_url(&mut self) -> ::std::string::String {
1138        ::std::mem::replace(&mut self.url, ::std::string::String::new())
1139    }
1140
1141    // string source = 2;
1142
1143
1144    pub fn get_source(&self) -> &str {
1145        &self.source
1146    }
1147    pub fn clear_source(&mut self) {
1148        self.source.clear();
1149    }
1150
1151    // Param is passed by value, moved
1152    pub fn set_source(&mut self, v: ::std::string::String) {
1153        self.source = v;
1154    }
1155
1156    // Mutable pointer to the field.
1157    // If field is not initialized, it is initialized with default value first.
1158    pub fn mut_source(&mut self) -> &mut ::std::string::String {
1159        &mut self.source
1160    }
1161
1162    // Take field
1163    pub fn take_source(&mut self) -> ::std::string::String {
1164        ::std::mem::replace(&mut self.source, ::std::string::String::new())
1165    }
1166}
1167
1168impl ::protobuf::Message for VulnerabilityReport_Vulnerability_Details_Reference {
1169    fn is_initialized(&self) -> bool {
1170        true
1171    }
1172
1173    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1174        while !is.eof()? {
1175            let (field_number, wire_type) = is.read_tag_unpack()?;
1176            match field_number {
1177                1 => {
1178                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.url)?;
1179                },
1180                2 => {
1181                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.source)?;
1182                },
1183                _ => {
1184                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1185                },
1186            };
1187        }
1188        ::std::result::Result::Ok(())
1189    }
1190
1191    // Compute sizes of nested messages
1192    #[allow(unused_variables)]
1193    fn compute_size(&self) -> u32 {
1194        let mut my_size = 0;
1195        if !self.url.is_empty() {
1196            my_size += ::protobuf::rt::string_size(1, &self.url);
1197        }
1198        if !self.source.is_empty() {
1199            my_size += ::protobuf::rt::string_size(2, &self.source);
1200        }
1201        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1202        self.cached_size.set(my_size);
1203        my_size
1204    }
1205
1206    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1207        if !self.url.is_empty() {
1208            os.write_string(1, &self.url)?;
1209        }
1210        if !self.source.is_empty() {
1211            os.write_string(2, &self.source)?;
1212        }
1213        os.write_unknown_fields(self.get_unknown_fields())?;
1214        ::std::result::Result::Ok(())
1215    }
1216
1217    fn get_cached_size(&self) -> u32 {
1218        self.cached_size.get()
1219    }
1220
1221    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1222        &self.unknown_fields
1223    }
1224
1225    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1226        &mut self.unknown_fields
1227    }
1228
1229    fn as_any(&self) -> &dyn (::std::any::Any) {
1230        self as &dyn (::std::any::Any)
1231    }
1232    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1233        self as &mut dyn (::std::any::Any)
1234    }
1235    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1236        self
1237    }
1238
1239    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1240        Self::descriptor_static()
1241    }
1242
1243    fn new() -> VulnerabilityReport_Vulnerability_Details_Reference {
1244        VulnerabilityReport_Vulnerability_Details_Reference::new()
1245    }
1246
1247    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1248        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1249        descriptor.get(|| {
1250            let mut fields = ::std::vec::Vec::new();
1251            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1252                "url",
1253                |m: &VulnerabilityReport_Vulnerability_Details_Reference| { &m.url },
1254                |m: &mut VulnerabilityReport_Vulnerability_Details_Reference| { &mut m.url },
1255            ));
1256            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1257                "source",
1258                |m: &VulnerabilityReport_Vulnerability_Details_Reference| { &m.source },
1259                |m: &mut VulnerabilityReport_Vulnerability_Details_Reference| { &mut m.source },
1260            ));
1261            ::protobuf::reflect::MessageDescriptor::new_pb_name::<VulnerabilityReport_Vulnerability_Details_Reference>(
1262                "VulnerabilityReport.Vulnerability.Details.Reference",
1263                fields,
1264                file_descriptor_proto()
1265            )
1266        })
1267    }
1268
1269    fn default_instance() -> &'static VulnerabilityReport_Vulnerability_Details_Reference {
1270        static instance: ::protobuf::rt::LazyV2<VulnerabilityReport_Vulnerability_Details_Reference> = ::protobuf::rt::LazyV2::INIT;
1271        instance.get(VulnerabilityReport_Vulnerability_Details_Reference::new)
1272    }
1273}
1274
1275impl ::protobuf::Clear for VulnerabilityReport_Vulnerability_Details_Reference {
1276    fn clear(&mut self) {
1277        self.url.clear();
1278        self.source.clear();
1279        self.unknown_fields.clear();
1280    }
1281}
1282
1283impl ::std::fmt::Debug for VulnerabilityReport_Vulnerability_Details_Reference {
1284    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1285        ::protobuf::text_format::fmt(self, f)
1286    }
1287}
1288
1289impl ::protobuf::reflect::ProtobufValue for VulnerabilityReport_Vulnerability_Details_Reference {
1290    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1291        ::protobuf::reflect::ReflectValueRef::Message(self)
1292    }
1293}
1294
1295#[derive(PartialEq,Clone,Default)]
1296pub struct VulnerabilityReport_Vulnerability_Item {
1297    // message fields
1298    pub installed_inventory_item_id: ::std::string::String,
1299    pub available_inventory_item_id: ::std::string::String,
1300    pub fixed_cpe_uri: ::std::string::String,
1301    pub upstream_fix: ::std::string::String,
1302    // special fields
1303    pub unknown_fields: ::protobuf::UnknownFields,
1304    pub cached_size: ::protobuf::CachedSize,
1305}
1306
1307impl<'a> ::std::default::Default for &'a VulnerabilityReport_Vulnerability_Item {
1308    fn default() -> &'a VulnerabilityReport_Vulnerability_Item {
1309        <VulnerabilityReport_Vulnerability_Item as ::protobuf::Message>::default_instance()
1310    }
1311}
1312
1313impl VulnerabilityReport_Vulnerability_Item {
1314    pub fn new() -> VulnerabilityReport_Vulnerability_Item {
1315        ::std::default::Default::default()
1316    }
1317
1318    // string installed_inventory_item_id = 1;
1319
1320
1321    pub fn get_installed_inventory_item_id(&self) -> &str {
1322        &self.installed_inventory_item_id
1323    }
1324    pub fn clear_installed_inventory_item_id(&mut self) {
1325        self.installed_inventory_item_id.clear();
1326    }
1327
1328    // Param is passed by value, moved
1329    pub fn set_installed_inventory_item_id(&mut self, v: ::std::string::String) {
1330        self.installed_inventory_item_id = v;
1331    }
1332
1333    // Mutable pointer to the field.
1334    // If field is not initialized, it is initialized with default value first.
1335    pub fn mut_installed_inventory_item_id(&mut self) -> &mut ::std::string::String {
1336        &mut self.installed_inventory_item_id
1337    }
1338
1339    // Take field
1340    pub fn take_installed_inventory_item_id(&mut self) -> ::std::string::String {
1341        ::std::mem::replace(&mut self.installed_inventory_item_id, ::std::string::String::new())
1342    }
1343
1344    // string available_inventory_item_id = 2;
1345
1346
1347    pub fn get_available_inventory_item_id(&self) -> &str {
1348        &self.available_inventory_item_id
1349    }
1350    pub fn clear_available_inventory_item_id(&mut self) {
1351        self.available_inventory_item_id.clear();
1352    }
1353
1354    // Param is passed by value, moved
1355    pub fn set_available_inventory_item_id(&mut self, v: ::std::string::String) {
1356        self.available_inventory_item_id = v;
1357    }
1358
1359    // Mutable pointer to the field.
1360    // If field is not initialized, it is initialized with default value first.
1361    pub fn mut_available_inventory_item_id(&mut self) -> &mut ::std::string::String {
1362        &mut self.available_inventory_item_id
1363    }
1364
1365    // Take field
1366    pub fn take_available_inventory_item_id(&mut self) -> ::std::string::String {
1367        ::std::mem::replace(&mut self.available_inventory_item_id, ::std::string::String::new())
1368    }
1369
1370    // string fixed_cpe_uri = 3;
1371
1372
1373    pub fn get_fixed_cpe_uri(&self) -> &str {
1374        &self.fixed_cpe_uri
1375    }
1376    pub fn clear_fixed_cpe_uri(&mut self) {
1377        self.fixed_cpe_uri.clear();
1378    }
1379
1380    // Param is passed by value, moved
1381    pub fn set_fixed_cpe_uri(&mut self, v: ::std::string::String) {
1382        self.fixed_cpe_uri = v;
1383    }
1384
1385    // Mutable pointer to the field.
1386    // If field is not initialized, it is initialized with default value first.
1387    pub fn mut_fixed_cpe_uri(&mut self) -> &mut ::std::string::String {
1388        &mut self.fixed_cpe_uri
1389    }
1390
1391    // Take field
1392    pub fn take_fixed_cpe_uri(&mut self) -> ::std::string::String {
1393        ::std::mem::replace(&mut self.fixed_cpe_uri, ::std::string::String::new())
1394    }
1395
1396    // string upstream_fix = 4;
1397
1398
1399    pub fn get_upstream_fix(&self) -> &str {
1400        &self.upstream_fix
1401    }
1402    pub fn clear_upstream_fix(&mut self) {
1403        self.upstream_fix.clear();
1404    }
1405
1406    // Param is passed by value, moved
1407    pub fn set_upstream_fix(&mut self, v: ::std::string::String) {
1408        self.upstream_fix = v;
1409    }
1410
1411    // Mutable pointer to the field.
1412    // If field is not initialized, it is initialized with default value first.
1413    pub fn mut_upstream_fix(&mut self) -> &mut ::std::string::String {
1414        &mut self.upstream_fix
1415    }
1416
1417    // Take field
1418    pub fn take_upstream_fix(&mut self) -> ::std::string::String {
1419        ::std::mem::replace(&mut self.upstream_fix, ::std::string::String::new())
1420    }
1421}
1422
1423impl ::protobuf::Message for VulnerabilityReport_Vulnerability_Item {
1424    fn is_initialized(&self) -> bool {
1425        true
1426    }
1427
1428    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1429        while !is.eof()? {
1430            let (field_number, wire_type) = is.read_tag_unpack()?;
1431            match field_number {
1432                1 => {
1433                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.installed_inventory_item_id)?;
1434                },
1435                2 => {
1436                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.available_inventory_item_id)?;
1437                },
1438                3 => {
1439                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.fixed_cpe_uri)?;
1440                },
1441                4 => {
1442                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.upstream_fix)?;
1443                },
1444                _ => {
1445                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1446                },
1447            };
1448        }
1449        ::std::result::Result::Ok(())
1450    }
1451
1452    // Compute sizes of nested messages
1453    #[allow(unused_variables)]
1454    fn compute_size(&self) -> u32 {
1455        let mut my_size = 0;
1456        if !self.installed_inventory_item_id.is_empty() {
1457            my_size += ::protobuf::rt::string_size(1, &self.installed_inventory_item_id);
1458        }
1459        if !self.available_inventory_item_id.is_empty() {
1460            my_size += ::protobuf::rt::string_size(2, &self.available_inventory_item_id);
1461        }
1462        if !self.fixed_cpe_uri.is_empty() {
1463            my_size += ::protobuf::rt::string_size(3, &self.fixed_cpe_uri);
1464        }
1465        if !self.upstream_fix.is_empty() {
1466            my_size += ::protobuf::rt::string_size(4, &self.upstream_fix);
1467        }
1468        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1469        self.cached_size.set(my_size);
1470        my_size
1471    }
1472
1473    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1474        if !self.installed_inventory_item_id.is_empty() {
1475            os.write_string(1, &self.installed_inventory_item_id)?;
1476        }
1477        if !self.available_inventory_item_id.is_empty() {
1478            os.write_string(2, &self.available_inventory_item_id)?;
1479        }
1480        if !self.fixed_cpe_uri.is_empty() {
1481            os.write_string(3, &self.fixed_cpe_uri)?;
1482        }
1483        if !self.upstream_fix.is_empty() {
1484            os.write_string(4, &self.upstream_fix)?;
1485        }
1486        os.write_unknown_fields(self.get_unknown_fields())?;
1487        ::std::result::Result::Ok(())
1488    }
1489
1490    fn get_cached_size(&self) -> u32 {
1491        self.cached_size.get()
1492    }
1493
1494    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1495        &self.unknown_fields
1496    }
1497
1498    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1499        &mut self.unknown_fields
1500    }
1501
1502    fn as_any(&self) -> &dyn (::std::any::Any) {
1503        self as &dyn (::std::any::Any)
1504    }
1505    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1506        self as &mut dyn (::std::any::Any)
1507    }
1508    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1509        self
1510    }
1511
1512    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1513        Self::descriptor_static()
1514    }
1515
1516    fn new() -> VulnerabilityReport_Vulnerability_Item {
1517        VulnerabilityReport_Vulnerability_Item::new()
1518    }
1519
1520    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1521        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1522        descriptor.get(|| {
1523            let mut fields = ::std::vec::Vec::new();
1524            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1525                "installed_inventory_item_id",
1526                |m: &VulnerabilityReport_Vulnerability_Item| { &m.installed_inventory_item_id },
1527                |m: &mut VulnerabilityReport_Vulnerability_Item| { &mut m.installed_inventory_item_id },
1528            ));
1529            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1530                "available_inventory_item_id",
1531                |m: &VulnerabilityReport_Vulnerability_Item| { &m.available_inventory_item_id },
1532                |m: &mut VulnerabilityReport_Vulnerability_Item| { &mut m.available_inventory_item_id },
1533            ));
1534            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1535                "fixed_cpe_uri",
1536                |m: &VulnerabilityReport_Vulnerability_Item| { &m.fixed_cpe_uri },
1537                |m: &mut VulnerabilityReport_Vulnerability_Item| { &mut m.fixed_cpe_uri },
1538            ));
1539            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1540                "upstream_fix",
1541                |m: &VulnerabilityReport_Vulnerability_Item| { &m.upstream_fix },
1542                |m: &mut VulnerabilityReport_Vulnerability_Item| { &mut m.upstream_fix },
1543            ));
1544            ::protobuf::reflect::MessageDescriptor::new_pb_name::<VulnerabilityReport_Vulnerability_Item>(
1545                "VulnerabilityReport.Vulnerability.Item",
1546                fields,
1547                file_descriptor_proto()
1548            )
1549        })
1550    }
1551
1552    fn default_instance() -> &'static VulnerabilityReport_Vulnerability_Item {
1553        static instance: ::protobuf::rt::LazyV2<VulnerabilityReport_Vulnerability_Item> = ::protobuf::rt::LazyV2::INIT;
1554        instance.get(VulnerabilityReport_Vulnerability_Item::new)
1555    }
1556}
1557
1558impl ::protobuf::Clear for VulnerabilityReport_Vulnerability_Item {
1559    fn clear(&mut self) {
1560        self.installed_inventory_item_id.clear();
1561        self.available_inventory_item_id.clear();
1562        self.fixed_cpe_uri.clear();
1563        self.upstream_fix.clear();
1564        self.unknown_fields.clear();
1565    }
1566}
1567
1568impl ::std::fmt::Debug for VulnerabilityReport_Vulnerability_Item {
1569    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1570        ::protobuf::text_format::fmt(self, f)
1571    }
1572}
1573
1574impl ::protobuf::reflect::ProtobufValue for VulnerabilityReport_Vulnerability_Item {
1575    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1576        ::protobuf::reflect::ReflectValueRef::Message(self)
1577    }
1578}
1579
1580#[derive(PartialEq,Clone,Default)]
1581pub struct GetVulnerabilityReportRequest {
1582    // message fields
1583    pub name: ::std::string::String,
1584    // special fields
1585    pub unknown_fields: ::protobuf::UnknownFields,
1586    pub cached_size: ::protobuf::CachedSize,
1587}
1588
1589impl<'a> ::std::default::Default for &'a GetVulnerabilityReportRequest {
1590    fn default() -> &'a GetVulnerabilityReportRequest {
1591        <GetVulnerabilityReportRequest as ::protobuf::Message>::default_instance()
1592    }
1593}
1594
1595impl GetVulnerabilityReportRequest {
1596    pub fn new() -> GetVulnerabilityReportRequest {
1597        ::std::default::Default::default()
1598    }
1599
1600    // string name = 1;
1601
1602
1603    pub fn get_name(&self) -> &str {
1604        &self.name
1605    }
1606    pub fn clear_name(&mut self) {
1607        self.name.clear();
1608    }
1609
1610    // Param is passed by value, moved
1611    pub fn set_name(&mut self, v: ::std::string::String) {
1612        self.name = v;
1613    }
1614
1615    // Mutable pointer to the field.
1616    // If field is not initialized, it is initialized with default value first.
1617    pub fn mut_name(&mut self) -> &mut ::std::string::String {
1618        &mut self.name
1619    }
1620
1621    // Take field
1622    pub fn take_name(&mut self) -> ::std::string::String {
1623        ::std::mem::replace(&mut self.name, ::std::string::String::new())
1624    }
1625}
1626
1627impl ::protobuf::Message for GetVulnerabilityReportRequest {
1628    fn is_initialized(&self) -> bool {
1629        true
1630    }
1631
1632    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1633        while !is.eof()? {
1634            let (field_number, wire_type) = is.read_tag_unpack()?;
1635            match field_number {
1636                1 => {
1637                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
1638                },
1639                _ => {
1640                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1641                },
1642            };
1643        }
1644        ::std::result::Result::Ok(())
1645    }
1646
1647    // Compute sizes of nested messages
1648    #[allow(unused_variables)]
1649    fn compute_size(&self) -> u32 {
1650        let mut my_size = 0;
1651        if !self.name.is_empty() {
1652            my_size += ::protobuf::rt::string_size(1, &self.name);
1653        }
1654        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1655        self.cached_size.set(my_size);
1656        my_size
1657    }
1658
1659    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1660        if !self.name.is_empty() {
1661            os.write_string(1, &self.name)?;
1662        }
1663        os.write_unknown_fields(self.get_unknown_fields())?;
1664        ::std::result::Result::Ok(())
1665    }
1666
1667    fn get_cached_size(&self) -> u32 {
1668        self.cached_size.get()
1669    }
1670
1671    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1672        &self.unknown_fields
1673    }
1674
1675    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1676        &mut self.unknown_fields
1677    }
1678
1679    fn as_any(&self) -> &dyn (::std::any::Any) {
1680        self as &dyn (::std::any::Any)
1681    }
1682    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1683        self as &mut dyn (::std::any::Any)
1684    }
1685    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1686        self
1687    }
1688
1689    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1690        Self::descriptor_static()
1691    }
1692
1693    fn new() -> GetVulnerabilityReportRequest {
1694        GetVulnerabilityReportRequest::new()
1695    }
1696
1697    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1698        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1699        descriptor.get(|| {
1700            let mut fields = ::std::vec::Vec::new();
1701            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1702                "name",
1703                |m: &GetVulnerabilityReportRequest| { &m.name },
1704                |m: &mut GetVulnerabilityReportRequest| { &mut m.name },
1705            ));
1706            ::protobuf::reflect::MessageDescriptor::new_pb_name::<GetVulnerabilityReportRequest>(
1707                "GetVulnerabilityReportRequest",
1708                fields,
1709                file_descriptor_proto()
1710            )
1711        })
1712    }
1713
1714    fn default_instance() -> &'static GetVulnerabilityReportRequest {
1715        static instance: ::protobuf::rt::LazyV2<GetVulnerabilityReportRequest> = ::protobuf::rt::LazyV2::INIT;
1716        instance.get(GetVulnerabilityReportRequest::new)
1717    }
1718}
1719
1720impl ::protobuf::Clear for GetVulnerabilityReportRequest {
1721    fn clear(&mut self) {
1722        self.name.clear();
1723        self.unknown_fields.clear();
1724    }
1725}
1726
1727impl ::std::fmt::Debug for GetVulnerabilityReportRequest {
1728    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1729        ::protobuf::text_format::fmt(self, f)
1730    }
1731}
1732
1733impl ::protobuf::reflect::ProtobufValue for GetVulnerabilityReportRequest {
1734    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1735        ::protobuf::reflect::ReflectValueRef::Message(self)
1736    }
1737}
1738
1739#[derive(PartialEq,Clone,Default)]
1740pub struct ListVulnerabilityReportsRequest {
1741    // message fields
1742    pub parent: ::std::string::String,
1743    pub page_size: i32,
1744    pub page_token: ::std::string::String,
1745    pub filter: ::std::string::String,
1746    // special fields
1747    pub unknown_fields: ::protobuf::UnknownFields,
1748    pub cached_size: ::protobuf::CachedSize,
1749}
1750
1751impl<'a> ::std::default::Default for &'a ListVulnerabilityReportsRequest {
1752    fn default() -> &'a ListVulnerabilityReportsRequest {
1753        <ListVulnerabilityReportsRequest as ::protobuf::Message>::default_instance()
1754    }
1755}
1756
1757impl ListVulnerabilityReportsRequest {
1758    pub fn new() -> ListVulnerabilityReportsRequest {
1759        ::std::default::Default::default()
1760    }
1761
1762    // string parent = 1;
1763
1764
1765    pub fn get_parent(&self) -> &str {
1766        &self.parent
1767    }
1768    pub fn clear_parent(&mut self) {
1769        self.parent.clear();
1770    }
1771
1772    // Param is passed by value, moved
1773    pub fn set_parent(&mut self, v: ::std::string::String) {
1774        self.parent = v;
1775    }
1776
1777    // Mutable pointer to the field.
1778    // If field is not initialized, it is initialized with default value first.
1779    pub fn mut_parent(&mut self) -> &mut ::std::string::String {
1780        &mut self.parent
1781    }
1782
1783    // Take field
1784    pub fn take_parent(&mut self) -> ::std::string::String {
1785        ::std::mem::replace(&mut self.parent, ::std::string::String::new())
1786    }
1787
1788    // int32 page_size = 2;
1789
1790
1791    pub fn get_page_size(&self) -> i32 {
1792        self.page_size
1793    }
1794    pub fn clear_page_size(&mut self) {
1795        self.page_size = 0;
1796    }
1797
1798    // Param is passed by value, moved
1799    pub fn set_page_size(&mut self, v: i32) {
1800        self.page_size = v;
1801    }
1802
1803    // string page_token = 3;
1804
1805
1806    pub fn get_page_token(&self) -> &str {
1807        &self.page_token
1808    }
1809    pub fn clear_page_token(&mut self) {
1810        self.page_token.clear();
1811    }
1812
1813    // Param is passed by value, moved
1814    pub fn set_page_token(&mut self, v: ::std::string::String) {
1815        self.page_token = v;
1816    }
1817
1818    // Mutable pointer to the field.
1819    // If field is not initialized, it is initialized with default value first.
1820    pub fn mut_page_token(&mut self) -> &mut ::std::string::String {
1821        &mut self.page_token
1822    }
1823
1824    // Take field
1825    pub fn take_page_token(&mut self) -> ::std::string::String {
1826        ::std::mem::replace(&mut self.page_token, ::std::string::String::new())
1827    }
1828
1829    // string filter = 4;
1830
1831
1832    pub fn get_filter(&self) -> &str {
1833        &self.filter
1834    }
1835    pub fn clear_filter(&mut self) {
1836        self.filter.clear();
1837    }
1838
1839    // Param is passed by value, moved
1840    pub fn set_filter(&mut self, v: ::std::string::String) {
1841        self.filter = v;
1842    }
1843
1844    // Mutable pointer to the field.
1845    // If field is not initialized, it is initialized with default value first.
1846    pub fn mut_filter(&mut self) -> &mut ::std::string::String {
1847        &mut self.filter
1848    }
1849
1850    // Take field
1851    pub fn take_filter(&mut self) -> ::std::string::String {
1852        ::std::mem::replace(&mut self.filter, ::std::string::String::new())
1853    }
1854}
1855
1856impl ::protobuf::Message for ListVulnerabilityReportsRequest {
1857    fn is_initialized(&self) -> bool {
1858        true
1859    }
1860
1861    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1862        while !is.eof()? {
1863            let (field_number, wire_type) = is.read_tag_unpack()?;
1864            match field_number {
1865                1 => {
1866                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.parent)?;
1867                },
1868                2 => {
1869                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
1870                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1871                    }
1872                    let tmp = is.read_int32()?;
1873                    self.page_size = tmp;
1874                },
1875                3 => {
1876                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.page_token)?;
1877                },
1878                4 => {
1879                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.filter)?;
1880                },
1881                _ => {
1882                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1883                },
1884            };
1885        }
1886        ::std::result::Result::Ok(())
1887    }
1888
1889    // Compute sizes of nested messages
1890    #[allow(unused_variables)]
1891    fn compute_size(&self) -> u32 {
1892        let mut my_size = 0;
1893        if !self.parent.is_empty() {
1894            my_size += ::protobuf::rt::string_size(1, &self.parent);
1895        }
1896        if self.page_size != 0 {
1897            my_size += ::protobuf::rt::value_size(2, self.page_size, ::protobuf::wire_format::WireTypeVarint);
1898        }
1899        if !self.page_token.is_empty() {
1900            my_size += ::protobuf::rt::string_size(3, &self.page_token);
1901        }
1902        if !self.filter.is_empty() {
1903            my_size += ::protobuf::rt::string_size(4, &self.filter);
1904        }
1905        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1906        self.cached_size.set(my_size);
1907        my_size
1908    }
1909
1910    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1911        if !self.parent.is_empty() {
1912            os.write_string(1, &self.parent)?;
1913        }
1914        if self.page_size != 0 {
1915            os.write_int32(2, self.page_size)?;
1916        }
1917        if !self.page_token.is_empty() {
1918            os.write_string(3, &self.page_token)?;
1919        }
1920        if !self.filter.is_empty() {
1921            os.write_string(4, &self.filter)?;
1922        }
1923        os.write_unknown_fields(self.get_unknown_fields())?;
1924        ::std::result::Result::Ok(())
1925    }
1926
1927    fn get_cached_size(&self) -> u32 {
1928        self.cached_size.get()
1929    }
1930
1931    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1932        &self.unknown_fields
1933    }
1934
1935    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1936        &mut self.unknown_fields
1937    }
1938
1939    fn as_any(&self) -> &dyn (::std::any::Any) {
1940        self as &dyn (::std::any::Any)
1941    }
1942    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1943        self as &mut dyn (::std::any::Any)
1944    }
1945    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1946        self
1947    }
1948
1949    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1950        Self::descriptor_static()
1951    }
1952
1953    fn new() -> ListVulnerabilityReportsRequest {
1954        ListVulnerabilityReportsRequest::new()
1955    }
1956
1957    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1958        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1959        descriptor.get(|| {
1960            let mut fields = ::std::vec::Vec::new();
1961            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1962                "parent",
1963                |m: &ListVulnerabilityReportsRequest| { &m.parent },
1964                |m: &mut ListVulnerabilityReportsRequest| { &mut m.parent },
1965            ));
1966            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
1967                "page_size",
1968                |m: &ListVulnerabilityReportsRequest| { &m.page_size },
1969                |m: &mut ListVulnerabilityReportsRequest| { &mut m.page_size },
1970            ));
1971            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1972                "page_token",
1973                |m: &ListVulnerabilityReportsRequest| { &m.page_token },
1974                |m: &mut ListVulnerabilityReportsRequest| { &mut m.page_token },
1975            ));
1976            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1977                "filter",
1978                |m: &ListVulnerabilityReportsRequest| { &m.filter },
1979                |m: &mut ListVulnerabilityReportsRequest| { &mut m.filter },
1980            ));
1981            ::protobuf::reflect::MessageDescriptor::new_pb_name::<ListVulnerabilityReportsRequest>(
1982                "ListVulnerabilityReportsRequest",
1983                fields,
1984                file_descriptor_proto()
1985            )
1986        })
1987    }
1988
1989    fn default_instance() -> &'static ListVulnerabilityReportsRequest {
1990        static instance: ::protobuf::rt::LazyV2<ListVulnerabilityReportsRequest> = ::protobuf::rt::LazyV2::INIT;
1991        instance.get(ListVulnerabilityReportsRequest::new)
1992    }
1993}
1994
1995impl ::protobuf::Clear for ListVulnerabilityReportsRequest {
1996    fn clear(&mut self) {
1997        self.parent.clear();
1998        self.page_size = 0;
1999        self.page_token.clear();
2000        self.filter.clear();
2001        self.unknown_fields.clear();
2002    }
2003}
2004
2005impl ::std::fmt::Debug for ListVulnerabilityReportsRequest {
2006    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2007        ::protobuf::text_format::fmt(self, f)
2008    }
2009}
2010
2011impl ::protobuf::reflect::ProtobufValue for ListVulnerabilityReportsRequest {
2012    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2013        ::protobuf::reflect::ReflectValueRef::Message(self)
2014    }
2015}
2016
2017#[derive(PartialEq,Clone,Default)]
2018pub struct ListVulnerabilityReportsResponse {
2019    // message fields
2020    pub vulnerability_reports: ::protobuf::RepeatedField<VulnerabilityReport>,
2021    pub next_page_token: ::std::string::String,
2022    // special fields
2023    pub unknown_fields: ::protobuf::UnknownFields,
2024    pub cached_size: ::protobuf::CachedSize,
2025}
2026
2027impl<'a> ::std::default::Default for &'a ListVulnerabilityReportsResponse {
2028    fn default() -> &'a ListVulnerabilityReportsResponse {
2029        <ListVulnerabilityReportsResponse as ::protobuf::Message>::default_instance()
2030    }
2031}
2032
2033impl ListVulnerabilityReportsResponse {
2034    pub fn new() -> ListVulnerabilityReportsResponse {
2035        ::std::default::Default::default()
2036    }
2037
2038    // repeated .google.cloud.osconfig.v1alpha.VulnerabilityReport vulnerability_reports = 1;
2039
2040
2041    pub fn get_vulnerability_reports(&self) -> &[VulnerabilityReport] {
2042        &self.vulnerability_reports
2043    }
2044    pub fn clear_vulnerability_reports(&mut self) {
2045        self.vulnerability_reports.clear();
2046    }
2047
2048    // Param is passed by value, moved
2049    pub fn set_vulnerability_reports(&mut self, v: ::protobuf::RepeatedField<VulnerabilityReport>) {
2050        self.vulnerability_reports = v;
2051    }
2052
2053    // Mutable pointer to the field.
2054    pub fn mut_vulnerability_reports(&mut self) -> &mut ::protobuf::RepeatedField<VulnerabilityReport> {
2055        &mut self.vulnerability_reports
2056    }
2057
2058    // Take field
2059    pub fn take_vulnerability_reports(&mut self) -> ::protobuf::RepeatedField<VulnerabilityReport> {
2060        ::std::mem::replace(&mut self.vulnerability_reports, ::protobuf::RepeatedField::new())
2061    }
2062
2063    // string next_page_token = 2;
2064
2065
2066    pub fn get_next_page_token(&self) -> &str {
2067        &self.next_page_token
2068    }
2069    pub fn clear_next_page_token(&mut self) {
2070        self.next_page_token.clear();
2071    }
2072
2073    // Param is passed by value, moved
2074    pub fn set_next_page_token(&mut self, v: ::std::string::String) {
2075        self.next_page_token = v;
2076    }
2077
2078    // Mutable pointer to the field.
2079    // If field is not initialized, it is initialized with default value first.
2080    pub fn mut_next_page_token(&mut self) -> &mut ::std::string::String {
2081        &mut self.next_page_token
2082    }
2083
2084    // Take field
2085    pub fn take_next_page_token(&mut self) -> ::std::string::String {
2086        ::std::mem::replace(&mut self.next_page_token, ::std::string::String::new())
2087    }
2088}
2089
2090impl ::protobuf::Message for ListVulnerabilityReportsResponse {
2091    fn is_initialized(&self) -> bool {
2092        for v in &self.vulnerability_reports {
2093            if !v.is_initialized() {
2094                return false;
2095            }
2096        };
2097        true
2098    }
2099
2100    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2101        while !is.eof()? {
2102            let (field_number, wire_type) = is.read_tag_unpack()?;
2103            match field_number {
2104                1 => {
2105                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.vulnerability_reports)?;
2106                },
2107                2 => {
2108                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.next_page_token)?;
2109                },
2110                _ => {
2111                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
2112                },
2113            };
2114        }
2115        ::std::result::Result::Ok(())
2116    }
2117
2118    // Compute sizes of nested messages
2119    #[allow(unused_variables)]
2120    fn compute_size(&self) -> u32 {
2121        let mut my_size = 0;
2122        for value in &self.vulnerability_reports {
2123            let len = value.compute_size();
2124            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
2125        };
2126        if !self.next_page_token.is_empty() {
2127            my_size += ::protobuf::rt::string_size(2, &self.next_page_token);
2128        }
2129        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
2130        self.cached_size.set(my_size);
2131        my_size
2132    }
2133
2134    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2135        for v in &self.vulnerability_reports {
2136            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
2137            os.write_raw_varint32(v.get_cached_size())?;
2138            v.write_to_with_cached_sizes(os)?;
2139        };
2140        if !self.next_page_token.is_empty() {
2141            os.write_string(2, &self.next_page_token)?;
2142        }
2143        os.write_unknown_fields(self.get_unknown_fields())?;
2144        ::std::result::Result::Ok(())
2145    }
2146
2147    fn get_cached_size(&self) -> u32 {
2148        self.cached_size.get()
2149    }
2150
2151    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
2152        &self.unknown_fields
2153    }
2154
2155    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
2156        &mut self.unknown_fields
2157    }
2158
2159    fn as_any(&self) -> &dyn (::std::any::Any) {
2160        self as &dyn (::std::any::Any)
2161    }
2162    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
2163        self as &mut dyn (::std::any::Any)
2164    }
2165    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
2166        self
2167    }
2168
2169    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
2170        Self::descriptor_static()
2171    }
2172
2173    fn new() -> ListVulnerabilityReportsResponse {
2174        ListVulnerabilityReportsResponse::new()
2175    }
2176
2177    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
2178        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
2179        descriptor.get(|| {
2180            let mut fields = ::std::vec::Vec::new();
2181            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<VulnerabilityReport>>(
2182                "vulnerability_reports",
2183                |m: &ListVulnerabilityReportsResponse| { &m.vulnerability_reports },
2184                |m: &mut ListVulnerabilityReportsResponse| { &mut m.vulnerability_reports },
2185            ));
2186            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2187                "next_page_token",
2188                |m: &ListVulnerabilityReportsResponse| { &m.next_page_token },
2189                |m: &mut ListVulnerabilityReportsResponse| { &mut m.next_page_token },
2190            ));
2191            ::protobuf::reflect::MessageDescriptor::new_pb_name::<ListVulnerabilityReportsResponse>(
2192                "ListVulnerabilityReportsResponse",
2193                fields,
2194                file_descriptor_proto()
2195            )
2196        })
2197    }
2198
2199    fn default_instance() -> &'static ListVulnerabilityReportsResponse {
2200        static instance: ::protobuf::rt::LazyV2<ListVulnerabilityReportsResponse> = ::protobuf::rt::LazyV2::INIT;
2201        instance.get(ListVulnerabilityReportsResponse::new)
2202    }
2203}
2204
2205impl ::protobuf::Clear for ListVulnerabilityReportsResponse {
2206    fn clear(&mut self) {
2207        self.vulnerability_reports.clear();
2208        self.next_page_token.clear();
2209        self.unknown_fields.clear();
2210    }
2211}
2212
2213impl ::std::fmt::Debug for ListVulnerabilityReportsResponse {
2214    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2215        ::protobuf::text_format::fmt(self, f)
2216    }
2217}
2218
2219impl ::protobuf::reflect::ProtobufValue for ListVulnerabilityReportsResponse {
2220    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2221        ::protobuf::reflect::ReflectValueRef::Message(self)
2222    }
2223}
2224
2225#[derive(PartialEq,Clone,Default)]
2226pub struct CVSSv3 {
2227    // message fields
2228    pub base_score: f32,
2229    pub exploitability_score: f32,
2230    pub impact_score: f32,
2231    pub attack_vector: CVSSv3_AttackVector,
2232    pub attack_complexity: CVSSv3_AttackComplexity,
2233    pub privileges_required: CVSSv3_PrivilegesRequired,
2234    pub user_interaction: CVSSv3_UserInteraction,
2235    pub scope: CVSSv3_Scope,
2236    pub confidentiality_impact: CVSSv3_Impact,
2237    pub integrity_impact: CVSSv3_Impact,
2238    pub availability_impact: CVSSv3_Impact,
2239    // special fields
2240    pub unknown_fields: ::protobuf::UnknownFields,
2241    pub cached_size: ::protobuf::CachedSize,
2242}
2243
2244impl<'a> ::std::default::Default for &'a CVSSv3 {
2245    fn default() -> &'a CVSSv3 {
2246        <CVSSv3 as ::protobuf::Message>::default_instance()
2247    }
2248}
2249
2250impl CVSSv3 {
2251    pub fn new() -> CVSSv3 {
2252        ::std::default::Default::default()
2253    }
2254
2255    // float base_score = 1;
2256
2257
2258    pub fn get_base_score(&self) -> f32 {
2259        self.base_score
2260    }
2261    pub fn clear_base_score(&mut self) {
2262        self.base_score = 0.;
2263    }
2264
2265    // Param is passed by value, moved
2266    pub fn set_base_score(&mut self, v: f32) {
2267        self.base_score = v;
2268    }
2269
2270    // float exploitability_score = 2;
2271
2272
2273    pub fn get_exploitability_score(&self) -> f32 {
2274        self.exploitability_score
2275    }
2276    pub fn clear_exploitability_score(&mut self) {
2277        self.exploitability_score = 0.;
2278    }
2279
2280    // Param is passed by value, moved
2281    pub fn set_exploitability_score(&mut self, v: f32) {
2282        self.exploitability_score = v;
2283    }
2284
2285    // float impact_score = 3;
2286
2287
2288    pub fn get_impact_score(&self) -> f32 {
2289        self.impact_score
2290    }
2291    pub fn clear_impact_score(&mut self) {
2292        self.impact_score = 0.;
2293    }
2294
2295    // Param is passed by value, moved
2296    pub fn set_impact_score(&mut self, v: f32) {
2297        self.impact_score = v;
2298    }
2299
2300    // .google.cloud.osconfig.v1alpha.CVSSv3.AttackVector attack_vector = 5;
2301
2302
2303    pub fn get_attack_vector(&self) -> CVSSv3_AttackVector {
2304        self.attack_vector
2305    }
2306    pub fn clear_attack_vector(&mut self) {
2307        self.attack_vector = CVSSv3_AttackVector::ATTACK_VECTOR_UNSPECIFIED;
2308    }
2309
2310    // Param is passed by value, moved
2311    pub fn set_attack_vector(&mut self, v: CVSSv3_AttackVector) {
2312        self.attack_vector = v;
2313    }
2314
2315    // .google.cloud.osconfig.v1alpha.CVSSv3.AttackComplexity attack_complexity = 6;
2316
2317
2318    pub fn get_attack_complexity(&self) -> CVSSv3_AttackComplexity {
2319        self.attack_complexity
2320    }
2321    pub fn clear_attack_complexity(&mut self) {
2322        self.attack_complexity = CVSSv3_AttackComplexity::ATTACK_COMPLEXITY_UNSPECIFIED;
2323    }
2324
2325    // Param is passed by value, moved
2326    pub fn set_attack_complexity(&mut self, v: CVSSv3_AttackComplexity) {
2327        self.attack_complexity = v;
2328    }
2329
2330    // .google.cloud.osconfig.v1alpha.CVSSv3.PrivilegesRequired privileges_required = 7;
2331
2332
2333    pub fn get_privileges_required(&self) -> CVSSv3_PrivilegesRequired {
2334        self.privileges_required
2335    }
2336    pub fn clear_privileges_required(&mut self) {
2337        self.privileges_required = CVSSv3_PrivilegesRequired::PRIVILEGES_REQUIRED_UNSPECIFIED;
2338    }
2339
2340    // Param is passed by value, moved
2341    pub fn set_privileges_required(&mut self, v: CVSSv3_PrivilegesRequired) {
2342        self.privileges_required = v;
2343    }
2344
2345    // .google.cloud.osconfig.v1alpha.CVSSv3.UserInteraction user_interaction = 8;
2346
2347
2348    pub fn get_user_interaction(&self) -> CVSSv3_UserInteraction {
2349        self.user_interaction
2350    }
2351    pub fn clear_user_interaction(&mut self) {
2352        self.user_interaction = CVSSv3_UserInteraction::USER_INTERACTION_UNSPECIFIED;
2353    }
2354
2355    // Param is passed by value, moved
2356    pub fn set_user_interaction(&mut self, v: CVSSv3_UserInteraction) {
2357        self.user_interaction = v;
2358    }
2359
2360    // .google.cloud.osconfig.v1alpha.CVSSv3.Scope scope = 9;
2361
2362
2363    pub fn get_scope(&self) -> CVSSv3_Scope {
2364        self.scope
2365    }
2366    pub fn clear_scope(&mut self) {
2367        self.scope = CVSSv3_Scope::SCOPE_UNSPECIFIED;
2368    }
2369
2370    // Param is passed by value, moved
2371    pub fn set_scope(&mut self, v: CVSSv3_Scope) {
2372        self.scope = v;
2373    }
2374
2375    // .google.cloud.osconfig.v1alpha.CVSSv3.Impact confidentiality_impact = 10;
2376
2377
2378    pub fn get_confidentiality_impact(&self) -> CVSSv3_Impact {
2379        self.confidentiality_impact
2380    }
2381    pub fn clear_confidentiality_impact(&mut self) {
2382        self.confidentiality_impact = CVSSv3_Impact::IMPACT_UNSPECIFIED;
2383    }
2384
2385    // Param is passed by value, moved
2386    pub fn set_confidentiality_impact(&mut self, v: CVSSv3_Impact) {
2387        self.confidentiality_impact = v;
2388    }
2389
2390    // .google.cloud.osconfig.v1alpha.CVSSv3.Impact integrity_impact = 11;
2391
2392
2393    pub fn get_integrity_impact(&self) -> CVSSv3_Impact {
2394        self.integrity_impact
2395    }
2396    pub fn clear_integrity_impact(&mut self) {
2397        self.integrity_impact = CVSSv3_Impact::IMPACT_UNSPECIFIED;
2398    }
2399
2400    // Param is passed by value, moved
2401    pub fn set_integrity_impact(&mut self, v: CVSSv3_Impact) {
2402        self.integrity_impact = v;
2403    }
2404
2405    // .google.cloud.osconfig.v1alpha.CVSSv3.Impact availability_impact = 12;
2406
2407
2408    pub fn get_availability_impact(&self) -> CVSSv3_Impact {
2409        self.availability_impact
2410    }
2411    pub fn clear_availability_impact(&mut self) {
2412        self.availability_impact = CVSSv3_Impact::IMPACT_UNSPECIFIED;
2413    }
2414
2415    // Param is passed by value, moved
2416    pub fn set_availability_impact(&mut self, v: CVSSv3_Impact) {
2417        self.availability_impact = v;
2418    }
2419}
2420
2421impl ::protobuf::Message for CVSSv3 {
2422    fn is_initialized(&self) -> bool {
2423        true
2424    }
2425
2426    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2427        while !is.eof()? {
2428            let (field_number, wire_type) = is.read_tag_unpack()?;
2429            match field_number {
2430                1 => {
2431                    if wire_type != ::protobuf::wire_format::WireTypeFixed32 {
2432                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
2433                    }
2434                    let tmp = is.read_float()?;
2435                    self.base_score = tmp;
2436                },
2437                2 => {
2438                    if wire_type != ::protobuf::wire_format::WireTypeFixed32 {
2439                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
2440                    }
2441                    let tmp = is.read_float()?;
2442                    self.exploitability_score = tmp;
2443                },
2444                3 => {
2445                    if wire_type != ::protobuf::wire_format::WireTypeFixed32 {
2446                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
2447                    }
2448                    let tmp = is.read_float()?;
2449                    self.impact_score = tmp;
2450                },
2451                5 => {
2452                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.attack_vector, 5, &mut self.unknown_fields)?
2453                },
2454                6 => {
2455                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.attack_complexity, 6, &mut self.unknown_fields)?
2456                },
2457                7 => {
2458                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.privileges_required, 7, &mut self.unknown_fields)?
2459                },
2460                8 => {
2461                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.user_interaction, 8, &mut self.unknown_fields)?
2462                },
2463                9 => {
2464                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.scope, 9, &mut self.unknown_fields)?
2465                },
2466                10 => {
2467                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.confidentiality_impact, 10, &mut self.unknown_fields)?
2468                },
2469                11 => {
2470                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.integrity_impact, 11, &mut self.unknown_fields)?
2471                },
2472                12 => {
2473                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.availability_impact, 12, &mut self.unknown_fields)?
2474                },
2475                _ => {
2476                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
2477                },
2478            };
2479        }
2480        ::std::result::Result::Ok(())
2481    }
2482
2483    // Compute sizes of nested messages
2484    #[allow(unused_variables)]
2485    fn compute_size(&self) -> u32 {
2486        let mut my_size = 0;
2487        if self.base_score != 0. {
2488            my_size += 5;
2489        }
2490        if self.exploitability_score != 0. {
2491            my_size += 5;
2492        }
2493        if self.impact_score != 0. {
2494            my_size += 5;
2495        }
2496        if self.attack_vector != CVSSv3_AttackVector::ATTACK_VECTOR_UNSPECIFIED {
2497            my_size += ::protobuf::rt::enum_size(5, self.attack_vector);
2498        }
2499        if self.attack_complexity != CVSSv3_AttackComplexity::ATTACK_COMPLEXITY_UNSPECIFIED {
2500            my_size += ::protobuf::rt::enum_size(6, self.attack_complexity);
2501        }
2502        if self.privileges_required != CVSSv3_PrivilegesRequired::PRIVILEGES_REQUIRED_UNSPECIFIED {
2503            my_size += ::protobuf::rt::enum_size(7, self.privileges_required);
2504        }
2505        if self.user_interaction != CVSSv3_UserInteraction::USER_INTERACTION_UNSPECIFIED {
2506            my_size += ::protobuf::rt::enum_size(8, self.user_interaction);
2507        }
2508        if self.scope != CVSSv3_Scope::SCOPE_UNSPECIFIED {
2509            my_size += ::protobuf::rt::enum_size(9, self.scope);
2510        }
2511        if self.confidentiality_impact != CVSSv3_Impact::IMPACT_UNSPECIFIED {
2512            my_size += ::protobuf::rt::enum_size(10, self.confidentiality_impact);
2513        }
2514        if self.integrity_impact != CVSSv3_Impact::IMPACT_UNSPECIFIED {
2515            my_size += ::protobuf::rt::enum_size(11, self.integrity_impact);
2516        }
2517        if self.availability_impact != CVSSv3_Impact::IMPACT_UNSPECIFIED {
2518            my_size += ::protobuf::rt::enum_size(12, self.availability_impact);
2519        }
2520        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
2521        self.cached_size.set(my_size);
2522        my_size
2523    }
2524
2525    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2526        if self.base_score != 0. {
2527            os.write_float(1, self.base_score)?;
2528        }
2529        if self.exploitability_score != 0. {
2530            os.write_float(2, self.exploitability_score)?;
2531        }
2532        if self.impact_score != 0. {
2533            os.write_float(3, self.impact_score)?;
2534        }
2535        if self.attack_vector != CVSSv3_AttackVector::ATTACK_VECTOR_UNSPECIFIED {
2536            os.write_enum(5, ::protobuf::ProtobufEnum::value(&self.attack_vector))?;
2537        }
2538        if self.attack_complexity != CVSSv3_AttackComplexity::ATTACK_COMPLEXITY_UNSPECIFIED {
2539            os.write_enum(6, ::protobuf::ProtobufEnum::value(&self.attack_complexity))?;
2540        }
2541        if self.privileges_required != CVSSv3_PrivilegesRequired::PRIVILEGES_REQUIRED_UNSPECIFIED {
2542            os.write_enum(7, ::protobuf::ProtobufEnum::value(&self.privileges_required))?;
2543        }
2544        if self.user_interaction != CVSSv3_UserInteraction::USER_INTERACTION_UNSPECIFIED {
2545            os.write_enum(8, ::protobuf::ProtobufEnum::value(&self.user_interaction))?;
2546        }
2547        if self.scope != CVSSv3_Scope::SCOPE_UNSPECIFIED {
2548            os.write_enum(9, ::protobuf::ProtobufEnum::value(&self.scope))?;
2549        }
2550        if self.confidentiality_impact != CVSSv3_Impact::IMPACT_UNSPECIFIED {
2551            os.write_enum(10, ::protobuf::ProtobufEnum::value(&self.confidentiality_impact))?;
2552        }
2553        if self.integrity_impact != CVSSv3_Impact::IMPACT_UNSPECIFIED {
2554            os.write_enum(11, ::protobuf::ProtobufEnum::value(&self.integrity_impact))?;
2555        }
2556        if self.availability_impact != CVSSv3_Impact::IMPACT_UNSPECIFIED {
2557            os.write_enum(12, ::protobuf::ProtobufEnum::value(&self.availability_impact))?;
2558        }
2559        os.write_unknown_fields(self.get_unknown_fields())?;
2560        ::std::result::Result::Ok(())
2561    }
2562
2563    fn get_cached_size(&self) -> u32 {
2564        self.cached_size.get()
2565    }
2566
2567    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
2568        &self.unknown_fields
2569    }
2570
2571    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
2572        &mut self.unknown_fields
2573    }
2574
2575    fn as_any(&self) -> &dyn (::std::any::Any) {
2576        self as &dyn (::std::any::Any)
2577    }
2578    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
2579        self as &mut dyn (::std::any::Any)
2580    }
2581    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
2582        self
2583    }
2584
2585    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
2586        Self::descriptor_static()
2587    }
2588
2589    fn new() -> CVSSv3 {
2590        CVSSv3::new()
2591    }
2592
2593    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
2594        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
2595        descriptor.get(|| {
2596            let mut fields = ::std::vec::Vec::new();
2597            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeFloat>(
2598                "base_score",
2599                |m: &CVSSv3| { &m.base_score },
2600                |m: &mut CVSSv3| { &mut m.base_score },
2601            ));
2602            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeFloat>(
2603                "exploitability_score",
2604                |m: &CVSSv3| { &m.exploitability_score },
2605                |m: &mut CVSSv3| { &mut m.exploitability_score },
2606            ));
2607            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeFloat>(
2608                "impact_score",
2609                |m: &CVSSv3| { &m.impact_score },
2610                |m: &mut CVSSv3| { &mut m.impact_score },
2611            ));
2612            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<CVSSv3_AttackVector>>(
2613                "attack_vector",
2614                |m: &CVSSv3| { &m.attack_vector },
2615                |m: &mut CVSSv3| { &mut m.attack_vector },
2616            ));
2617            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<CVSSv3_AttackComplexity>>(
2618                "attack_complexity",
2619                |m: &CVSSv3| { &m.attack_complexity },
2620                |m: &mut CVSSv3| { &mut m.attack_complexity },
2621            ));
2622            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<CVSSv3_PrivilegesRequired>>(
2623                "privileges_required",
2624                |m: &CVSSv3| { &m.privileges_required },
2625                |m: &mut CVSSv3| { &mut m.privileges_required },
2626            ));
2627            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<CVSSv3_UserInteraction>>(
2628                "user_interaction",
2629                |m: &CVSSv3| { &m.user_interaction },
2630                |m: &mut CVSSv3| { &mut m.user_interaction },
2631            ));
2632            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<CVSSv3_Scope>>(
2633                "scope",
2634                |m: &CVSSv3| { &m.scope },
2635                |m: &mut CVSSv3| { &mut m.scope },
2636            ));
2637            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<CVSSv3_Impact>>(
2638                "confidentiality_impact",
2639                |m: &CVSSv3| { &m.confidentiality_impact },
2640                |m: &mut CVSSv3| { &mut m.confidentiality_impact },
2641            ));
2642            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<CVSSv3_Impact>>(
2643                "integrity_impact",
2644                |m: &CVSSv3| { &m.integrity_impact },
2645                |m: &mut CVSSv3| { &mut m.integrity_impact },
2646            ));
2647            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<CVSSv3_Impact>>(
2648                "availability_impact",
2649                |m: &CVSSv3| { &m.availability_impact },
2650                |m: &mut CVSSv3| { &mut m.availability_impact },
2651            ));
2652            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CVSSv3>(
2653                "CVSSv3",
2654                fields,
2655                file_descriptor_proto()
2656            )
2657        })
2658    }
2659
2660    fn default_instance() -> &'static CVSSv3 {
2661        static instance: ::protobuf::rt::LazyV2<CVSSv3> = ::protobuf::rt::LazyV2::INIT;
2662        instance.get(CVSSv3::new)
2663    }
2664}
2665
2666impl ::protobuf::Clear for CVSSv3 {
2667    fn clear(&mut self) {
2668        self.base_score = 0.;
2669        self.exploitability_score = 0.;
2670        self.impact_score = 0.;
2671        self.attack_vector = CVSSv3_AttackVector::ATTACK_VECTOR_UNSPECIFIED;
2672        self.attack_complexity = CVSSv3_AttackComplexity::ATTACK_COMPLEXITY_UNSPECIFIED;
2673        self.privileges_required = CVSSv3_PrivilegesRequired::PRIVILEGES_REQUIRED_UNSPECIFIED;
2674        self.user_interaction = CVSSv3_UserInteraction::USER_INTERACTION_UNSPECIFIED;
2675        self.scope = CVSSv3_Scope::SCOPE_UNSPECIFIED;
2676        self.confidentiality_impact = CVSSv3_Impact::IMPACT_UNSPECIFIED;
2677        self.integrity_impact = CVSSv3_Impact::IMPACT_UNSPECIFIED;
2678        self.availability_impact = CVSSv3_Impact::IMPACT_UNSPECIFIED;
2679        self.unknown_fields.clear();
2680    }
2681}
2682
2683impl ::std::fmt::Debug for CVSSv3 {
2684    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2685        ::protobuf::text_format::fmt(self, f)
2686    }
2687}
2688
2689impl ::protobuf::reflect::ProtobufValue for CVSSv3 {
2690    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2691        ::protobuf::reflect::ReflectValueRef::Message(self)
2692    }
2693}
2694
2695#[derive(Clone,PartialEq,Eq,Debug,Hash)]
2696pub enum CVSSv3_AttackVector {
2697    ATTACK_VECTOR_UNSPECIFIED = 0,
2698    ATTACK_VECTOR_NETWORK = 1,
2699    ATTACK_VECTOR_ADJACENT = 2,
2700    ATTACK_VECTOR_LOCAL = 3,
2701    ATTACK_VECTOR_PHYSICAL = 4,
2702}
2703
2704impl ::protobuf::ProtobufEnum for CVSSv3_AttackVector {
2705    fn value(&self) -> i32 {
2706        *self as i32
2707    }
2708
2709    fn from_i32(value: i32) -> ::std::option::Option<CVSSv3_AttackVector> {
2710        match value {
2711            0 => ::std::option::Option::Some(CVSSv3_AttackVector::ATTACK_VECTOR_UNSPECIFIED),
2712            1 => ::std::option::Option::Some(CVSSv3_AttackVector::ATTACK_VECTOR_NETWORK),
2713            2 => ::std::option::Option::Some(CVSSv3_AttackVector::ATTACK_VECTOR_ADJACENT),
2714            3 => ::std::option::Option::Some(CVSSv3_AttackVector::ATTACK_VECTOR_LOCAL),
2715            4 => ::std::option::Option::Some(CVSSv3_AttackVector::ATTACK_VECTOR_PHYSICAL),
2716            _ => ::std::option::Option::None
2717        }
2718    }
2719
2720    fn values() -> &'static [Self] {
2721        static values: &'static [CVSSv3_AttackVector] = &[
2722            CVSSv3_AttackVector::ATTACK_VECTOR_UNSPECIFIED,
2723            CVSSv3_AttackVector::ATTACK_VECTOR_NETWORK,
2724            CVSSv3_AttackVector::ATTACK_VECTOR_ADJACENT,
2725            CVSSv3_AttackVector::ATTACK_VECTOR_LOCAL,
2726            CVSSv3_AttackVector::ATTACK_VECTOR_PHYSICAL,
2727        ];
2728        values
2729    }
2730
2731    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
2732        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
2733        descriptor.get(|| {
2734            ::protobuf::reflect::EnumDescriptor::new_pb_name::<CVSSv3_AttackVector>("CVSSv3.AttackVector", file_descriptor_proto())
2735        })
2736    }
2737}
2738
2739impl ::std::marker::Copy for CVSSv3_AttackVector {
2740}
2741
2742impl ::std::default::Default for CVSSv3_AttackVector {
2743    fn default() -> Self {
2744        CVSSv3_AttackVector::ATTACK_VECTOR_UNSPECIFIED
2745    }
2746}
2747
2748impl ::protobuf::reflect::ProtobufValue for CVSSv3_AttackVector {
2749    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2750        ::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
2751    }
2752}
2753
2754#[derive(Clone,PartialEq,Eq,Debug,Hash)]
2755pub enum CVSSv3_AttackComplexity {
2756    ATTACK_COMPLEXITY_UNSPECIFIED = 0,
2757    ATTACK_COMPLEXITY_LOW = 1,
2758    ATTACK_COMPLEXITY_HIGH = 2,
2759}
2760
2761impl ::protobuf::ProtobufEnum for CVSSv3_AttackComplexity {
2762    fn value(&self) -> i32 {
2763        *self as i32
2764    }
2765
2766    fn from_i32(value: i32) -> ::std::option::Option<CVSSv3_AttackComplexity> {
2767        match value {
2768            0 => ::std::option::Option::Some(CVSSv3_AttackComplexity::ATTACK_COMPLEXITY_UNSPECIFIED),
2769            1 => ::std::option::Option::Some(CVSSv3_AttackComplexity::ATTACK_COMPLEXITY_LOW),
2770            2 => ::std::option::Option::Some(CVSSv3_AttackComplexity::ATTACK_COMPLEXITY_HIGH),
2771            _ => ::std::option::Option::None
2772        }
2773    }
2774
2775    fn values() -> &'static [Self] {
2776        static values: &'static [CVSSv3_AttackComplexity] = &[
2777            CVSSv3_AttackComplexity::ATTACK_COMPLEXITY_UNSPECIFIED,
2778            CVSSv3_AttackComplexity::ATTACK_COMPLEXITY_LOW,
2779            CVSSv3_AttackComplexity::ATTACK_COMPLEXITY_HIGH,
2780        ];
2781        values
2782    }
2783
2784    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
2785        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
2786        descriptor.get(|| {
2787            ::protobuf::reflect::EnumDescriptor::new_pb_name::<CVSSv3_AttackComplexity>("CVSSv3.AttackComplexity", file_descriptor_proto())
2788        })
2789    }
2790}
2791
2792impl ::std::marker::Copy for CVSSv3_AttackComplexity {
2793}
2794
2795impl ::std::default::Default for CVSSv3_AttackComplexity {
2796    fn default() -> Self {
2797        CVSSv3_AttackComplexity::ATTACK_COMPLEXITY_UNSPECIFIED
2798    }
2799}
2800
2801impl ::protobuf::reflect::ProtobufValue for CVSSv3_AttackComplexity {
2802    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2803        ::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
2804    }
2805}
2806
2807#[derive(Clone,PartialEq,Eq,Debug,Hash)]
2808pub enum CVSSv3_PrivilegesRequired {
2809    PRIVILEGES_REQUIRED_UNSPECIFIED = 0,
2810    PRIVILEGES_REQUIRED_NONE = 1,
2811    PRIVILEGES_REQUIRED_LOW = 2,
2812    PRIVILEGES_REQUIRED_HIGH = 3,
2813}
2814
2815impl ::protobuf::ProtobufEnum for CVSSv3_PrivilegesRequired {
2816    fn value(&self) -> i32 {
2817        *self as i32
2818    }
2819
2820    fn from_i32(value: i32) -> ::std::option::Option<CVSSv3_PrivilegesRequired> {
2821        match value {
2822            0 => ::std::option::Option::Some(CVSSv3_PrivilegesRequired::PRIVILEGES_REQUIRED_UNSPECIFIED),
2823            1 => ::std::option::Option::Some(CVSSv3_PrivilegesRequired::PRIVILEGES_REQUIRED_NONE),
2824            2 => ::std::option::Option::Some(CVSSv3_PrivilegesRequired::PRIVILEGES_REQUIRED_LOW),
2825            3 => ::std::option::Option::Some(CVSSv3_PrivilegesRequired::PRIVILEGES_REQUIRED_HIGH),
2826            _ => ::std::option::Option::None
2827        }
2828    }
2829
2830    fn values() -> &'static [Self] {
2831        static values: &'static [CVSSv3_PrivilegesRequired] = &[
2832            CVSSv3_PrivilegesRequired::PRIVILEGES_REQUIRED_UNSPECIFIED,
2833            CVSSv3_PrivilegesRequired::PRIVILEGES_REQUIRED_NONE,
2834            CVSSv3_PrivilegesRequired::PRIVILEGES_REQUIRED_LOW,
2835            CVSSv3_PrivilegesRequired::PRIVILEGES_REQUIRED_HIGH,
2836        ];
2837        values
2838    }
2839
2840    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
2841        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
2842        descriptor.get(|| {
2843            ::protobuf::reflect::EnumDescriptor::new_pb_name::<CVSSv3_PrivilegesRequired>("CVSSv3.PrivilegesRequired", file_descriptor_proto())
2844        })
2845    }
2846}
2847
2848impl ::std::marker::Copy for CVSSv3_PrivilegesRequired {
2849}
2850
2851impl ::std::default::Default for CVSSv3_PrivilegesRequired {
2852    fn default() -> Self {
2853        CVSSv3_PrivilegesRequired::PRIVILEGES_REQUIRED_UNSPECIFIED
2854    }
2855}
2856
2857impl ::protobuf::reflect::ProtobufValue for CVSSv3_PrivilegesRequired {
2858    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2859        ::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
2860    }
2861}
2862
2863#[derive(Clone,PartialEq,Eq,Debug,Hash)]
2864pub enum CVSSv3_UserInteraction {
2865    USER_INTERACTION_UNSPECIFIED = 0,
2866    USER_INTERACTION_NONE = 1,
2867    USER_INTERACTION_REQUIRED = 2,
2868}
2869
2870impl ::protobuf::ProtobufEnum for CVSSv3_UserInteraction {
2871    fn value(&self) -> i32 {
2872        *self as i32
2873    }
2874
2875    fn from_i32(value: i32) -> ::std::option::Option<CVSSv3_UserInteraction> {
2876        match value {
2877            0 => ::std::option::Option::Some(CVSSv3_UserInteraction::USER_INTERACTION_UNSPECIFIED),
2878            1 => ::std::option::Option::Some(CVSSv3_UserInteraction::USER_INTERACTION_NONE),
2879            2 => ::std::option::Option::Some(CVSSv3_UserInteraction::USER_INTERACTION_REQUIRED),
2880            _ => ::std::option::Option::None
2881        }
2882    }
2883
2884    fn values() -> &'static [Self] {
2885        static values: &'static [CVSSv3_UserInteraction] = &[
2886            CVSSv3_UserInteraction::USER_INTERACTION_UNSPECIFIED,
2887            CVSSv3_UserInteraction::USER_INTERACTION_NONE,
2888            CVSSv3_UserInteraction::USER_INTERACTION_REQUIRED,
2889        ];
2890        values
2891    }
2892
2893    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
2894        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
2895        descriptor.get(|| {
2896            ::protobuf::reflect::EnumDescriptor::new_pb_name::<CVSSv3_UserInteraction>("CVSSv3.UserInteraction", file_descriptor_proto())
2897        })
2898    }
2899}
2900
2901impl ::std::marker::Copy for CVSSv3_UserInteraction {
2902}
2903
2904impl ::std::default::Default for CVSSv3_UserInteraction {
2905    fn default() -> Self {
2906        CVSSv3_UserInteraction::USER_INTERACTION_UNSPECIFIED
2907    }
2908}
2909
2910impl ::protobuf::reflect::ProtobufValue for CVSSv3_UserInteraction {
2911    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2912        ::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
2913    }
2914}
2915
2916#[derive(Clone,PartialEq,Eq,Debug,Hash)]
2917pub enum CVSSv3_Scope {
2918    SCOPE_UNSPECIFIED = 0,
2919    SCOPE_UNCHANGED = 1,
2920    SCOPE_CHANGED = 2,
2921}
2922
2923impl ::protobuf::ProtobufEnum for CVSSv3_Scope {
2924    fn value(&self) -> i32 {
2925        *self as i32
2926    }
2927
2928    fn from_i32(value: i32) -> ::std::option::Option<CVSSv3_Scope> {
2929        match value {
2930            0 => ::std::option::Option::Some(CVSSv3_Scope::SCOPE_UNSPECIFIED),
2931            1 => ::std::option::Option::Some(CVSSv3_Scope::SCOPE_UNCHANGED),
2932            2 => ::std::option::Option::Some(CVSSv3_Scope::SCOPE_CHANGED),
2933            _ => ::std::option::Option::None
2934        }
2935    }
2936
2937    fn values() -> &'static [Self] {
2938        static values: &'static [CVSSv3_Scope] = &[
2939            CVSSv3_Scope::SCOPE_UNSPECIFIED,
2940            CVSSv3_Scope::SCOPE_UNCHANGED,
2941            CVSSv3_Scope::SCOPE_CHANGED,
2942        ];
2943        values
2944    }
2945
2946    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
2947        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
2948        descriptor.get(|| {
2949            ::protobuf::reflect::EnumDescriptor::new_pb_name::<CVSSv3_Scope>("CVSSv3.Scope", file_descriptor_proto())
2950        })
2951    }
2952}
2953
2954impl ::std::marker::Copy for CVSSv3_Scope {
2955}
2956
2957impl ::std::default::Default for CVSSv3_Scope {
2958    fn default() -> Self {
2959        CVSSv3_Scope::SCOPE_UNSPECIFIED
2960    }
2961}
2962
2963impl ::protobuf::reflect::ProtobufValue for CVSSv3_Scope {
2964    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2965        ::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
2966    }
2967}
2968
2969#[derive(Clone,PartialEq,Eq,Debug,Hash)]
2970pub enum CVSSv3_Impact {
2971    IMPACT_UNSPECIFIED = 0,
2972    IMPACT_HIGH = 1,
2973    IMPACT_LOW = 2,
2974    IMPACT_NONE = 3,
2975}
2976
2977impl ::protobuf::ProtobufEnum for CVSSv3_Impact {
2978    fn value(&self) -> i32 {
2979        *self as i32
2980    }
2981
2982    fn from_i32(value: i32) -> ::std::option::Option<CVSSv3_Impact> {
2983        match value {
2984            0 => ::std::option::Option::Some(CVSSv3_Impact::IMPACT_UNSPECIFIED),
2985            1 => ::std::option::Option::Some(CVSSv3_Impact::IMPACT_HIGH),
2986            2 => ::std::option::Option::Some(CVSSv3_Impact::IMPACT_LOW),
2987            3 => ::std::option::Option::Some(CVSSv3_Impact::IMPACT_NONE),
2988            _ => ::std::option::Option::None
2989        }
2990    }
2991
2992    fn values() -> &'static [Self] {
2993        static values: &'static [CVSSv3_Impact] = &[
2994            CVSSv3_Impact::IMPACT_UNSPECIFIED,
2995            CVSSv3_Impact::IMPACT_HIGH,
2996            CVSSv3_Impact::IMPACT_LOW,
2997            CVSSv3_Impact::IMPACT_NONE,
2998        ];
2999        values
3000    }
3001
3002    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
3003        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
3004        descriptor.get(|| {
3005            ::protobuf::reflect::EnumDescriptor::new_pb_name::<CVSSv3_Impact>("CVSSv3.Impact", file_descriptor_proto())
3006        })
3007    }
3008}
3009
3010impl ::std::marker::Copy for CVSSv3_Impact {
3011}
3012
3013impl ::std::default::Default for CVSSv3_Impact {
3014    fn default() -> Self {
3015        CVSSv3_Impact::IMPACT_UNSPECIFIED
3016    }
3017}
3018
3019impl ::protobuf::reflect::ProtobufValue for CVSSv3_Impact {
3020    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
3021        ::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
3022    }
3023}
3024
3025static file_descriptor_proto_data: &'static [u8] = b"\
3026    \n1google/cloud/osconfig/v1alpha/vulnerability.proto\x12\x1dgoogle.cloud\
3027    .osconfig.v1alpha\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/a\
3028    pi/resource.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xf6\n\n\x13Vu\
3029    lnerabilityReport\x12\x17\n\x04name\x18\x01\x20\x01(\tR\x04nameB\x03\xe0\
3030    A\x03\x12o\n\x0fvulnerabilities\x18\x02\x20\x03(\x0b2@.google.cloud.osco\
3031    nfig.v1alpha.VulnerabilityReport.VulnerabilityR\x0fvulnerabilitiesB\x03\
3032    \xe0A\x03\x12@\n\x0bupdate_time\x18\x03\x20\x01(\x0b2\x1a.google.protobu\
3033    f.TimestampR\nupdateTimeB\x03\xe0A\x03\x1a\x8d\x08\n\rVulnerability\x12b\
3034    \n\x07details\x18\x01\x20\x01(\x0b2H.google.cloud.osconfig.v1alpha.Vulne\
3035    rabilityReport.Vulnerability.DetailsR\x07details\x12C\n\x1cinstalled_inv\
3036    entory_item_ids\x18\x02\x20\x03(\tR\x19installedInventoryItemIdsB\x02\
3037    \x18\x01\x12C\n\x1cavailable_inventory_item_ids\x18\x03\x20\x03(\tR\x19a\
3038    vailableInventoryItemIdsB\x02\x18\x01\x12;\n\x0bcreate_time\x18\x04\x20\
3039    \x01(\x0b2\x1a.google.protobuf.TimestampR\ncreateTime\x12;\n\x0bupdate_t\
3040    ime\x18\x05\x20\x01(\x0b2\x1a.google.protobuf.TimestampR\nupdateTime\x12\
3041    [\n\x05items\x18\x06\x20\x03(\x0b2E.google.cloud.osconfig.v1alpha.Vulner\
3042    abilityReport.Vulnerability.ItemR\x05items\x1a\xe8\x02\n\x07Details\x12\
3043    \x10\n\x03cve\x18\x01\x20\x01(\tR\x03cve\x12\"\n\rcvss_v2_score\x18\x02\
3044    \x20\x01(\x02R\x0bcvssV2Score\x12>\n\x07cvss_v3\x18\x03\x20\x01(\x0b2%.g\
3045    oogle.cloud.osconfig.v1alpha.CVSSv3R\x06cvssV3\x12\x1a\n\x08severity\x18\
3046    \x04\x20\x01(\tR\x08severity\x12\x20\n\x0bdescription\x18\x05\x20\x01(\t\
3047    R\x0bdescription\x12r\n\nreferences\x18\x06\x20\x03(\x0b2R.google.cloud.\
3048    osconfig.v1alpha.VulnerabilityReport.Vulnerability.Details.ReferenceR\nr\
3049    eferences\x1a5\n\tReference\x12\x10\n\x03url\x18\x01\x20\x01(\tR\x03url\
3050    \x12\x16\n\x06source\x18\x02\x20\x01(\tR\x06source\x1a\xcb\x01\n\x04Item\
3051    \x12=\n\x1binstalled_inventory_item_id\x18\x01\x20\x01(\tR\x18installedI\
3052    nventoryItemId\x12=\n\x1bavailable_inventory_item_id\x18\x02\x20\x01(\tR\
3053    \x18availableInventoryItemId\x12\"\n\rfixed_cpe_uri\x18\x03\x20\x01(\tR\
3054    \x0bfixedCpeUri\x12!\n\x0cupstream_fix\x18\x04\x20\x01(\tR\x0bupstreamFi\
3055    x:\x82\x01\xeaA\x7f\n+osconfig.googleapis.com/VulnerabilityReport\x12Ppr\
3056    ojects/{project}/locations/{location}/instances/{instance}/vulnerability\
3057    Report\"h\n\x1dGetVulnerabilityReportRequest\x12G\n\x04name\x18\x01\x20\
3058    \x01(\tR\x04nameB3\xfaA-\n+osconfig.googleapis.com/VulnerabilityReport\
3059    \xe0A\x02\"\xb6\x01\n\x1fListVulnerabilityReportsRequest\x12?\n\x06paren\
3060    t\x18\x01\x20\x01(\tR\x06parentB'\xfaA!\n\x1fcompute.googleapis.com/Inst\
3061    ance\xe0A\x02\x12\x1b\n\tpage_size\x18\x02\x20\x01(\x05R\x08pageSize\x12\
3062    \x1d\n\npage_token\x18\x03\x20\x01(\tR\tpageToken\x12\x16\n\x06filter\
3063    \x18\x04\x20\x01(\tR\x06filter\"\xb3\x01\n\x20ListVulnerabilityReportsRe\
3064    sponse\x12g\n\x15vulnerability_reports\x18\x01\x20\x03(\x0b22.google.clo\
3065    ud.osconfig.v1alpha.VulnerabilityReportR\x14vulnerabilityReports\x12&\n\
3066    \x0fnext_page_token\x18\x02\x20\x01(\tR\rnextPageToken\"\x92\x0c\n\x06CV\
3067    SSv3\x12\x1d\n\nbase_score\x18\x01\x20\x01(\x02R\tbaseScore\x121\n\x14ex\
3068    ploitability_score\x18\x02\x20\x01(\x02R\x13exploitabilityScore\x12!\n\
3069    \x0cimpact_score\x18\x03\x20\x01(\x02R\x0bimpactScore\x12W\n\rattack_vec\
3070    tor\x18\x05\x20\x01(\x0e22.google.cloud.osconfig.v1alpha.CVSSv3.AttackVe\
3071    ctorR\x0cattackVector\x12c\n\x11attack_complexity\x18\x06\x20\x01(\x0e26\
3072    .google.cloud.osconfig.v1alpha.CVSSv3.AttackComplexityR\x10attackComplex\
3073    ity\x12i\n\x13privileges_required\x18\x07\x20\x01(\x0e28.google.cloud.os\
3074    config.v1alpha.CVSSv3.PrivilegesRequiredR\x12privilegesRequired\x12`\n\
3075    \x10user_interaction\x18\x08\x20\x01(\x0e25.google.cloud.osconfig.v1alph\
3076    a.CVSSv3.UserInteractionR\x0fuserInteraction\x12A\n\x05scope\x18\t\x20\
3077    \x01(\x0e2+.google.cloud.osconfig.v1alpha.CVSSv3.ScopeR\x05scope\x12c\n\
3078    \x16confidentiality_impact\x18\n\x20\x01(\x0e2,.google.cloud.osconfig.v1\
3079    alpha.CVSSv3.ImpactR\x15confidentialityImpact\x12W\n\x10integrity_impact\
3080    \x18\x0b\x20\x01(\x0e2,.google.cloud.osconfig.v1alpha.CVSSv3.ImpactR\x0f\
3081    integrityImpact\x12]\n\x13availability_impact\x18\x0c\x20\x01(\x0e2,.goo\
3082    gle.cloud.osconfig.v1alpha.CVSSv3.ImpactR\x12availabilityImpact\"\x99\
3083    \x01\n\x0cAttackVector\x12\x1d\n\x19ATTACK_VECTOR_UNSPECIFIED\x10\0\x12\
3084    \x19\n\x15ATTACK_VECTOR_NETWORK\x10\x01\x12\x1a\n\x16ATTACK_VECTOR_ADJAC\
3085    ENT\x10\x02\x12\x17\n\x13ATTACK_VECTOR_LOCAL\x10\x03\x12\x1a\n\x16ATTACK\
3086    _VECTOR_PHYSICAL\x10\x04\"l\n\x10AttackComplexity\x12!\n\x1dATTACK_COMPL\
3087    EXITY_UNSPECIFIED\x10\0\x12\x19\n\x15ATTACK_COMPLEXITY_LOW\x10\x01\x12\
3088    \x1a\n\x16ATTACK_COMPLEXITY_HIGH\x10\x02\"\x92\x01\n\x12PrivilegesRequir\
3089    ed\x12#\n\x1fPRIVILEGES_REQUIRED_UNSPECIFIED\x10\0\x12\x1c\n\x18PRIVILEG\
3090    ES_REQUIRED_NONE\x10\x01\x12\x1b\n\x17PRIVILEGES_REQUIRED_LOW\x10\x02\
3091    \x12\x1c\n\x18PRIVILEGES_REQUIRED_HIGH\x10\x03\"m\n\x0fUserInteraction\
3092    \x12\x20\n\x1cUSER_INTERACTION_UNSPECIFIED\x10\0\x12\x19\n\x15USER_INTER\
3093    ACTION_NONE\x10\x01\x12\x1d\n\x19USER_INTERACTION_REQUIRED\x10\x02\"F\n\
3094    \x05Scope\x12\x15\n\x11SCOPE_UNSPECIFIED\x10\0\x12\x13\n\x0fSCOPE_UNCHAN\
3095    GED\x10\x01\x12\x11\n\rSCOPE_CHANGED\x10\x02\"R\n\x06Impact\x12\x16\n\
3096    \x12IMPACT_UNSPECIFIED\x10\0\x12\x0f\n\x0bIMPACT_HIGH\x10\x01\x12\x0e\n\
3097    \nIMPACT_LOW\x10\x02\x12\x0f\n\x0bIMPACT_NONE\x10\x03B\xdb\x01\n!com.goo\
3098    gle.cloud.osconfig.v1alphaB\x12VulnerabilityProtoP\x01Z=cloud.google.com\
3099    /go/osconfig/apiv1alpha/osconfigpb;osconfigpb\xaa\x02\x1dGoogle.Cloud.Os\
3100    Config.V1Alpha\xca\x02\x1dGoogle\\Cloud\\OsConfig\\V1alpha\xea\x02\x20Go\
3101    ogle::Cloud::OsConfig::V1alphaJ\xf2p\n\x07\x12\x05\x0e\0\xec\x02\x01\n\
3102    \xbc\x04\n\x01\x0c\x12\x03\x0e\0\x122\xb1\x04\x20Copyright\x202021\x20Go\
3103    ogle\x20LLC\n\n\x20Licensed\x20under\x20the\x20Apache\x20License,\x20Ver\
3104    sion\x202.0\x20(the\x20\"License\");\n\x20you\x20may\x20not\x20use\x20th\
3105    is\x20file\x20except\x20in\x20compliance\x20with\x20the\x20License.\n\
3106    \x20You\x20may\x20obtain\x20a\x20copy\x20of\x20the\x20License\x20at\n\n\
3107    \x20\x20\x20\x20\x20http://www.apache.org/licenses/LICENSE-2.0\n\n\x20Un\
3108    less\x20required\x20by\x20applicable\x20law\x20or\x20agreed\x20to\x20in\
3109    \x20writing,\x20software\n\x20distributed\x20under\x20the\x20License\x20\
3110    is\x20distributed\x20on\x20an\x20\"AS\x20IS\"\x20BASIS,\n\x20WITHOUT\x20\
3111    WARRANTIES\x20OR\x20CONDITIONS\x20OF\x20ANY\x20KIND,\x20either\x20expres\
3112    s\x20or\x20implied.\n\x20See\x20the\x20License\x20for\x20the\x20specific\
3113    \x20language\x20governing\x20permissions\x20and\n\x20limitations\x20unde\
3114    r\x20the\x20License.\n\n\x08\n\x01\x02\x12\x03\x10\0&\n\t\n\x02\x03\0\
3115    \x12\x03\x12\0)\n\t\n\x02\x03\x01\x12\x03\x13\0#\n\t\n\x02\x03\x02\x12\
3116    \x03\x14\0)\n\x08\n\x01\x08\x12\x03\x16\0:\n\t\n\x02\x08%\x12\x03\x16\0:\
3117    \n\x08\n\x01\x08\x12\x03\x17\0T\n\t\n\x02\x08\x0b\x12\x03\x17\0T\n\x08\n\
3118    \x01\x08\x12\x03\x18\0\"\n\t\n\x02\x08\n\x12\x03\x18\0\"\n\x08\n\x01\x08\
3119    \x12\x03\x19\03\n\t\n\x02\x08\x08\x12\x03\x19\03\n\x08\n\x01\x08\x12\x03\
3120    \x1a\0:\n\t\n\x02\x08\x01\x12\x03\x1a\0:\n\x08\n\x01\x08\x12\x03\x1b\0:\
3121    \n\t\n\x02\x08)\x12\x03\x1b\0:\n\x08\n\x01\x08\x12\x03\x1c\09\n\t\n\x02\
3122    \x08-\x12\x03\x1c\09\n\xb2\x02\n\x02\x04\0\x12\x05#\0\x90\x01\x01\x1a\
3123    \xa4\x02\x20This\x20API\x20resource\x20represents\x20the\x20vulnerabilit\
3124    y\x20report\x20for\x20a\x20specified\n\x20Compute\x20Engine\x20virtual\
3125    \x20machine\x20(VM)\x20instance\x20at\x20a\x20given\x20point\x20in\x20ti\
3126    me.\n\n\x20For\x20more\x20information,\x20see\x20[Vulnerability\n\x20rep\
3127    orts](https://cloud.google.com/compute/docs/instances/os-inventory-manag\
3128    ement#vulnerability-reports).\n\n\n\n\x03\x04\0\x01\x12\x03#\x08\x1b\n\
3129    \x0b\n\x03\x04\0\x07\x12\x04$\x02'\x04\n\r\n\x05\x04\0\x07\x9d\x08\x12\
3130    \x04$\x02'\x04\n;\n\x04\x04\0\x03\0\x12\x05*\x02\x82\x01\x03\x1a,\x20A\
3131    \x20vulnerability\x20affecting\x20the\x20VM\x20instance.\n\n\x0c\n\x05\
3132    \x04\0\x03\0\x01\x12\x03*\n\x17\n\x96\x01\n\x06\x04\0\x03\0\x03\0\x12\
3133    \x04-\x04K\x05\x1a\x85\x01\x20Contains\x20metadata\x20information\x20for\
3134    \x20the\x20vulnerability.\x20This\x20information\x20is\n\x20collected\
3135    \x20from\x20the\x20upstream\x20feed\x20of\x20the\x20operating\x20system.\
3136    \n\n\x0e\n\x07\x04\0\x03\0\x03\0\x01\x12\x03-\x0c\x13\n7\n\x08\x04\0\x03\
3137    \0\x03\0\x03\0\x12\x04/\x065\x07\x1a%\x20A\x20reference\x20for\x20this\
3138    \x20vulnerability.\n\n\x10\n\t\x04\0\x03\0\x03\0\x03\0\x01\x12\x03/\x0e\
3139    \x17\n.\n\n\x04\0\x03\0\x03\0\x03\0\x02\0\x12\x031\x08\x17\x1a\x1b\x20Th\
3140    e\x20url\x20of\x20the\x20reference.\n\n\x12\n\x0b\x04\0\x03\0\x03\0\x03\
3141    \0\x02\0\x05\x12\x031\x08\x0e\n\x12\n\x0b\x04\0\x03\0\x03\0\x03\0\x02\0\
3142    \x01\x12\x031\x0f\x12\n\x12\n\x0b\x04\0\x03\0\x03\0\x03\0\x02\0\x03\x12\
3143    \x031\x15\x16\n:\n\n\x04\0\x03\0\x03\0\x03\0\x02\x01\x12\x034\x08\x1a\
3144    \x1a'\x20The\x20source\x20of\x20the\x20reference\x20e.g.\x20NVD.\n\n\x12\
3145    \n\x0b\x04\0\x03\0\x03\0\x03\0\x02\x01\x05\x12\x034\x08\x0e\n\x12\n\x0b\
3146    \x04\0\x03\0\x03\0\x03\0\x02\x01\x01\x12\x034\x0f\x15\n\x12\n\x0b\x04\0\
3147    \x03\0\x03\0\x03\0\x02\x01\x03\x12\x034\x18\x19\n\xa6\x01\n\x08\x04\0\
3148    \x03\0\x03\0\x02\0\x12\x03:\x06\x15\x1a\x94\x01\x20The\x20CVE\x20of\x20t\
3149    he\x20vulnerability.\x20CVE\x20cannot\x20be\n\x20empty\x20and\x20the\x20\
3150    combination\x20of\x20<cve,\x20classification>\x20should\x20be\x20unique\
3151    \n\x20across\x20vulnerabilities\x20for\x20a\x20VM.\n\n\x10\n\t\x04\0\x03\
3152    \0\x03\0\x02\0\x05\x12\x03:\x06\x0c\n\x10\n\t\x04\0\x03\0\x03\0\x02\0\
3153    \x01\x12\x03:\r\x10\n\x10\n\t\x04\0\x03\0\x03\0\x02\0\x03\x12\x03:\x13\
3154    \x14\n\xa2\x01\n\x08\x04\0\x03\0\x03\0\x02\x01\x12\x03>\x06\x1e\x1a\x90\
3155    \x01\x20The\x20CVSS\x20V2\x20score\x20of\x20this\x20vulnerability.\x20CV\
3156    SS\x20V2\x20score\x20is\x20on\x20a\x20scale\x20of\n\x200\x20-\x2010\x20w\
3157    here\x200\x20indicates\x20low\x20severity\x20and\x2010\x20indicates\x20h\
3158    igh\x20severity.\n\n\x10\n\t\x04\0\x03\0\x03\0\x02\x01\x05\x12\x03>\x06\
3159    \x0b\n\x10\n\t\x04\0\x03\0\x03\0\x02\x01\x01\x12\x03>\x0c\x19\n\x10\n\t\
3160    \x04\0\x03\0\x03\0\x02\x01\x03\x12\x03>\x1c\x1d\nV\n\x08\x04\0\x03\0\x03\
3161    \0\x02\x02\x12\x03A\x06\x19\x1aE\x20The\x20full\x20description\x20of\x20\
3162    the\x20CVSSv3\x20for\x20this\x20vulnerability\x20from\x20NVD.\n\n\x10\n\
3163    \t\x04\0\x03\0\x03\0\x02\x02\x06\x12\x03A\x06\x0c\n\x10\n\t\x04\0\x03\0\
3164    \x03\0\x02\x02\x01\x12\x03A\r\x14\n\x10\n\t\x04\0\x03\0\x03\0\x02\x02\
3165    \x03\x12\x03A\x17\x18\nD\n\x08\x04\0\x03\0\x03\0\x02\x03\x12\x03D\x06\
3166    \x1a\x1a3\x20Assigned\x20severity/impact\x20ranking\x20from\x20the\x20di\
3167    stro.\n\n\x10\n\t\x04\0\x03\0\x03\0\x02\x03\x05\x12\x03D\x06\x0c\n\x10\n\
3168    \t\x04\0\x03\0\x03\0\x02\x03\x01\x12\x03D\r\x15\n\x10\n\t\x04\0\x03\0\
3169    \x03\0\x02\x03\x03\x12\x03D\x18\x19\nX\n\x08\x04\0\x03\0\x03\0\x02\x04\
3170    \x12\x03G\x06\x1d\x1aG\x20The\x20note\x20or\x20description\x20describing\
3171    \x20the\x20vulnerability\x20from\x20the\x20distro.\n\n\x10\n\t\x04\0\x03\
3172    \0\x03\0\x02\x04\x05\x12\x03G\x06\x0c\n\x10\n\t\x04\0\x03\0\x03\0\x02\
3173    \x04\x01\x12\x03G\r\x18\n\x10\n\t\x04\0\x03\0\x03\0\x02\x04\x03\x12\x03G\
3174    \x1b\x1c\nX\n\x08\x04\0\x03\0\x03\0\x02\x05\x12\x03J\x06(\x1aG\x20Corres\
3175    ponds\x20to\x20the\x20references\x20attached\x20to\x20the\x20`Vulnerabil\
3176    ityDetails`.\n\n\x10\n\t\x04\0\x03\0\x03\0\x02\x05\x04\x12\x03J\x06\x0e\
3177    \n\x10\n\t\x04\0\x03\0\x03\0\x02\x05\x06\x12\x03J\x0f\x18\n\x10\n\t\x04\
3178    \0\x03\0\x03\0\x02\x05\x01\x12\x03J\x19#\n\x10\n\t\x04\0\x03\0\x03\0\x02\
3179    \x05\x03\x12\x03J&'\nq\n\x06\x04\0\x03\0\x03\x01\x12\x04O\x04e\x05\x1aa\
3180    \x20OS\x20inventory\x20item\x20that\x20is\x20affected\x20by\x20a\x20vuln\
3181    erability\x20or\x20fixed\x20as\x20a\n\x20result\x20of\x20a\x20vulnerabil\
3182    ity.\n\n\x0e\n\x07\x04\0\x03\0\x03\x01\x01\x12\x03O\x0c\x10\n\xd2\x02\n\
3183    \x08\x04\0\x03\0\x03\x01\x02\0\x12\x03U\x06-\x1a\xc0\x02\x20Corresponds\
3184    \x20to\x20the\x20`INSTALLED_PACKAGE`\x20inventory\x20item\x20on\x20the\
3185    \x20VM.\n\x20This\x20field\x20displays\x20the\x20inventory\x20items\x20a\
3186    ffected\x20by\x20this\x20vulnerability.\n\x20If\x20the\x20vulnerability\
3187    \x20report\x20was\x20not\x20updated\x20after\x20the\x20VM\x20inventory\n\
3188    \x20update,\x20these\x20values\x20might\x20not\x20display\x20in\x20VM\
3189    \x20inventory.\x20For\x20some\n\x20operating\x20systems,\x20this\x20fiel\
3190    d\x20might\x20be\x20empty.\n\n\x10\n\t\x04\0\x03\0\x03\x01\x02\0\x05\x12\
3191    \x03U\x06\x0c\n\x10\n\t\x04\0\x03\0\x03\x01\x02\0\x01\x12\x03U\r(\n\x10\
3192    \n\t\x04\0\x03\0\x03\x01\x02\0\x03\x12\x03U+,\n\xfa\x02\n\x08\x04\0\x03\
3193    \0\x03\x01\x02\x01\x12\x03]\x06-\x1a\xe8\x02\x20Corresponds\x20to\x20the\
3194    \x20`AVAILABLE_PACKAGE`\x20inventory\x20item\x20on\x20the\x20VM.\n\x20If\
3195    \x20the\x20vulnerability\x20report\x20was\x20not\x20updated\x20after\x20\
3196    the\x20VM\x20inventory\n\x20update,\x20these\x20values\x20might\x20not\
3197    \x20display\x20in\x20VM\x20inventory.\x20If\x20there\x20is\x20no\n\x20av\
3198    ailable\x20fix,\x20the\x20field\x20is\x20empty.\x20The\x20`inventory_ite\
3199    m`\x20value\x20specifies\n\x20the\x20latest\x20`SoftwarePackage`\x20avai\
3200    lable\x20to\x20the\x20VM\x20that\x20fixes\x20the\n\x20vulnerability.\n\n\
3201    \x10\n\t\x04\0\x03\0\x03\x01\x02\x01\x05\x12\x03]\x06\x0c\n\x10\n\t\x04\
3202    \0\x03\0\x03\x01\x02\x01\x01\x12\x03]\r(\n\x10\n\t\x04\0\x03\0\x03\x01\
3203    \x02\x01\x03\x12\x03]+,\n\x86\x01\n\x08\x04\0\x03\0\x03\x01\x02\x02\x12\
3204    \x03a\x06\x1f\x1au\x20The\x20recommended\x20[CPE\x20URI](https://cpe.mit\
3205    re.org/specification/)\x20update\n\x20that\x20contains\x20a\x20fix\x20fo\
3206    r\x20this\x20vulnerability.\n\n\x10\n\t\x04\0\x03\0\x03\x01\x02\x02\x05\
3207    \x12\x03a\x06\x0c\n\x10\n\t\x04\0\x03\0\x03\x01\x02\x02\x01\x12\x03a\r\
3208    \x1a\n\x10\n\t\x04\0\x03\0\x03\x01\x02\x02\x03\x12\x03a\x1d\x1e\nV\n\x08\
3209    \x04\0\x03\0\x03\x01\x02\x03\x12\x03d\x06\x1e\x1aE\x20The\x20upstream\
3210    \x20OS\x20patch,\x20packages\x20or\x20KB\x20that\x20fixes\x20the\x20vuln\
3211    erability.\n\n\x10\n\t\x04\0\x03\0\x03\x01\x02\x03\x05\x12\x03d\x06\x0c\
3212    \n\x10\n\t\x04\0\x03\0\x03\x01\x02\x03\x01\x12\x03d\r\x19\n\x10\n\t\x04\
3213    \0\x03\0\x03\x01\x02\x03\x03\x12\x03d\x1c\x1d\n]\n\x06\x04\0\x03\0\x02\0\
3214    \x12\x03i\x04\x18\x1aN\x20Contains\x20metadata\x20as\x20per\x20the\x20up\
3215    stream\x20feed\x20of\x20the\x20operating\x20system\x20and\n\x20NVD.\n\n\
3216    \x0e\n\x07\x04\0\x03\0\x02\0\x06\x12\x03i\x04\x0b\n\x0e\n\x07\x04\0\x03\
3217    \0\x02\0\x01\x12\x03i\x0c\x13\n\x0e\n\x07\x04\0\x03\0\x02\0\x03\x12\x03i\
3218    \x16\x17\n\xc4\x02\n\x06\x04\0\x03\0\x02\x01\x12\x03p\x04I\x1a\xb4\x02\
3219    \x20Corresponds\x20to\x20the\x20`INSTALLED_PACKAGE`\x20inventory\x20item\
3220    \x20on\x20the\x20VM.\n\x20This\x20field\x20displays\x20the\x20inventory\
3221    \x20items\x20affected\x20by\x20this\x20vulnerability.\n\x20If\x20the\x20\
3222    vulnerability\x20report\x20was\x20not\x20updated\x20after\x20the\x20VM\
3223    \x20inventory\n\x20update,\x20these\x20values\x20might\x20not\x20display\
3224    \x20in\x20VM\x20inventory.\x20For\x20some\x20distros,\n\x20this\x20field\
3225    \x20may\x20be\x20empty.\n\n\x0e\n\x07\x04\0\x03\0\x02\x01\x04\x12\x03p\
3226    \x04\x0c\n\x0e\n\x07\x04\0\x03\0\x02\x01\x05\x12\x03p\r\x13\n\x0e\n\x07\
3227    \x04\0\x03\0\x02\x01\x01\x12\x03p\x140\n\x0e\n\x07\x04\0\x03\0\x02\x01\
3228    \x03\x12\x03p34\n\x0e\n\x07\x04\0\x03\0\x02\x01\x08\x12\x03p5H\n\x0f\n\
3229    \x08\x04\0\x03\0\x02\x01\x08\x03\x12\x03p6G\n\xf8\x02\n\x06\x04\0\x03\0\
3230    \x02\x02\x12\x03x\x04I\x1a\xe8\x02\x20Corresponds\x20to\x20the\x20`AVAIL\
3231    ABLE_PACKAGE`\x20inventory\x20item\x20on\x20the\x20VM.\n\x20If\x20the\
3232    \x20vulnerability\x20report\x20was\x20not\x20updated\x20after\x20the\x20\
3233    VM\x20inventory\n\x20update,\x20these\x20values\x20might\x20not\x20displ\
3234    ay\x20in\x20VM\x20inventory.\x20If\x20there\x20is\x20no\n\x20available\
3235    \x20fix,\x20the\x20field\x20is\x20empty.\x20The\x20`inventory_item`\x20v\
3236    alue\x20specifies\n\x20the\x20latest\x20`SoftwarePackage`\x20available\
3237    \x20to\x20the\x20VM\x20that\x20fixes\x20the\n\x20vulnerability.\n\n\x0e\
3238    \n\x07\x04\0\x03\0\x02\x02\x04\x12\x03x\x04\x0c\n\x0e\n\x07\x04\0\x03\0\
3239    \x02\x02\x05\x12\x03x\r\x13\n\x0e\n\x07\x04\0\x03\0\x02\x02\x01\x12\x03x\
3240    \x140\n\x0e\n\x07\x04\0\x03\0\x02\x02\x03\x12\x03x34\n\x0e\n\x07\x04\0\
3241    \x03\0\x02\x02\x08\x12\x03x5H\n\x0f\n\x08\x04\0\x03\0\x02\x02\x08\x03\
3242    \x12\x03x6G\nM\n\x06\x04\0\x03\0\x02\x03\x12\x03{\x04.\x1a>\x20The\x20ti\
3243    mestamp\x20for\x20when\x20the\x20vulnerability\x20was\x20first\x20detect\
3244    ed.\n\n\x0e\n\x07\x04\0\x03\0\x02\x03\x06\x12\x03{\x04\x1d\n\x0e\n\x07\
3245    \x04\0\x03\0\x02\x03\x01\x12\x03{\x1e)\n\x0e\n\x07\x04\0\x03\0\x02\x03\
3246    \x03\x12\x03{,-\nL\n\x06\x04\0\x03\0\x02\x04\x12\x03~\x04.\x1a=\x20The\
3247    \x20timestamp\x20for\x20when\x20the\x20vulnerability\x20was\x20last\x20m\
3248    odified.\n\n\x0e\n\x07\x04\0\x03\0\x02\x04\x06\x12\x03~\x04\x1d\n\x0e\n\
3249    \x07\x04\0\x03\0\x02\x04\x01\x12\x03~\x1e)\n\x0e\n\x07\x04\0\x03\0\x02\
3250    \x04\x03\x12\x03~,-\n>\n\x06\x04\0\x03\0\x02\x05\x12\x04\x81\x01\x04\x1c\
3251    \x1a.\x20List\x20of\x20items\x20affected\x20by\x20the\x20vulnerability.\
3252    \n\n\x0f\n\x07\x04\0\x03\0\x02\x05\x04\x12\x04\x81\x01\x04\x0c\n\x0f\n\
3253    \x07\x04\0\x03\0\x02\x05\x06\x12\x04\x81\x01\r\x11\n\x0f\n\x07\x04\0\x03\
3254    \0\x02\x05\x01\x12\x04\x81\x01\x12\x17\n\x0f\n\x07\x04\0\x03\0\x02\x05\
3255    \x03\x12\x04\x81\x01\x1a\x1b\n\xb2\x01\n\x04\x04\0\x02\0\x12\x04\x88\x01\
3256    \x02>\x1a\xa3\x01\x20Output\x20only.\x20The\x20`vulnerabilityReport`\x20\
3257    API\x20resource\x20name.\n\n\x20Format:\n\x20`projects/{project_number}/\
3258    locations/{location}/instances/{instance_id}/vulnerabilityReport`\n\n\r\
3259    \n\x05\x04\0\x02\0\x05\x12\x04\x88\x01\x02\x08\n\r\n\x05\x04\0\x02\0\x01\
3260    \x12\x04\x88\x01\t\r\n\r\n\x05\x04\0\x02\0\x03\x12\x04\x88\x01\x10\x11\n\
3261    \r\n\x05\x04\0\x02\0\x08\x12\x04\x88\x01\x12=\n\x10\n\x08\x04\0\x02\0\
3262    \x08\x9c\x08\0\x12\x04\x88\x01\x13<\nF\n\x04\x04\0\x02\x01\x12\x04\x8b\
3263    \x01\x02Y\x1a8\x20Output\x20only.\x20List\x20of\x20vulnerabilities\x20af\
3264    fecting\x20the\x20VM.\n\n\r\n\x05\x04\0\x02\x01\x04\x12\x04\x8b\x01\x02\
3265    \n\n\r\n\x05\x04\0\x02\x01\x06\x12\x04\x8b\x01\x0b\x18\n\r\n\x05\x04\0\
3266    \x02\x01\x01\x12\x04\x8b\x01\x19(\n\r\n\x05\x04\0\x02\x01\x03\x12\x04\
3267    \x8b\x01+,\n\r\n\x05\x04\0\x02\x01\x08\x12\x04\x8b\x01-X\n\x10\n\x08\x04\
3268    \0\x02\x01\x08\x9c\x08\0\x12\x04\x8b\x01.W\nl\n\x04\x04\0\x02\x02\x12\
3269    \x04\x8f\x01\x02X\x1a^\x20Output\x20only.\x20The\x20timestamp\x20for\x20\
3270    when\x20the\x20last\x20vulnerability\x20report\x20was\x20generated\x20fo\
3271    r\x20the\n\x20VM.\n\n\r\n\x05\x04\0\x02\x02\x06\x12\x04\x8f\x01\x02\x1b\
3272    \n\r\n\x05\x04\0\x02\x02\x01\x12\x04\x8f\x01\x1c'\n\r\n\x05\x04\0\x02\
3273    \x02\x03\x12\x04\x8f\x01*+\n\r\n\x05\x04\0\x02\x02\x08\x12\x04\x8f\x01,W\
3274    \n\x10\n\x08\x04\0\x02\x02\x08\x9c\x08\0\x12\x04\x8f\x01-V\n\\\n\x02\x04\
3275    \x01\x12\x06\x93\x01\0\xa2\x01\x01\x1aN\x20A\x20request\x20message\x20fo\
3276    r\x20getting\x20the\x20vulnerability\x20report\x20for\x20the\x20specifie\
3277    d\x20VM.\n\n\x0b\n\x03\x04\x01\x01\x12\x04\x93\x01\x08%\n\xd0\x02\n\x04\
3278    \x04\x01\x02\0\x12\x06\x9c\x01\x02\xa1\x01\x04\x1a\xbf\x02\x20Required.\
3279    \x20API\x20resource\x20name\x20for\x20vulnerability\x20resource.\n\n\x20\
3280    Format:\n\x20`projects/{project}/locations/{location}/instances/{instanc\
3281    e}/vulnerabilityReport`\n\n\x20For\x20`{project}`,\x20either\x20`project\
3282    -number`\x20or\x20`project-id`\x20can\x20be\x20provided.\n\x20For\x20`{i\
3283    nstance}`,\x20either\x20Compute\x20Engine\x20`instance-id`\x20or\x20`ins\
3284    tance-name`\n\x20can\x20be\x20provided.\n\n\r\n\x05\x04\x01\x02\0\x05\
3285    \x12\x04\x9c\x01\x02\x08\n\r\n\x05\x04\x01\x02\0\x01\x12\x04\x9c\x01\t\r\
3286    \n\r\n\x05\x04\x01\x02\0\x03\x12\x04\x9c\x01\x10\x11\n\x0f\n\x05\x04\x01\
3287    \x02\0\x08\x12\x06\x9c\x01\x12\xa1\x01\x03\n\x10\n\x08\x04\x01\x02\0\x08\
3288    \x9c\x08\0\x12\x04\x9d\x01\x04*\n\x11\n\x07\x04\x01\x02\0\x08\x9f\x08\
3289    \x12\x06\x9e\x01\x04\xa0\x01\x05\nt\n\x02\x04\x02\x12\x06\xa6\x01\0\xbe\
3290    \x01\x01\x1af\x20A\x20request\x20message\x20for\x20listing\x20vulnerabil\
3291    ity\x20reports\x20for\x20all\x20VM\x20instances\x20in\n\x20the\x20specif\
3292    ied\x20location.\n\n\x0b\n\x03\x04\x02\x01\x12\x04\xa6\x01\x08'\n\xc2\
3293    \x01\n\x04\x04\x02\x02\0\x12\x06\xac\x01\x02\xb1\x01\x04\x1a\xb1\x01\x20\
3294    Required.\x20The\x20parent\x20resource\x20name.\n\n\x20Format:\x20`proje\
3295    cts/{project}/locations/{location}/instances/-`\n\n\x20For\x20`{project}\
3296    `,\x20either\x20`project-number`\x20or\x20`project-id`\x20can\x20be\x20p\
3297    rovided.\n\n\r\n\x05\x04\x02\x02\0\x05\x12\x04\xac\x01\x02\x08\n\r\n\x05\
3298    \x04\x02\x02\0\x01\x12\x04\xac\x01\t\x0f\n\r\n\x05\x04\x02\x02\0\x03\x12\
3299    \x04\xac\x01\x12\x13\n\x0f\n\x05\x04\x02\x02\0\x08\x12\x06\xac\x01\x14\
3300    \xb1\x01\x03\n\x10\n\x08\x04\x02\x02\0\x08\x9c\x08\0\x12\x04\xad\x01\x04\
3301    *\n\x11\n\x07\x04\x02\x02\0\x08\x9f\x08\x12\x06\xae\x01\x04\xb0\x01\x05\
3302    \n8\n\x04\x04\x02\x02\x01\x12\x04\xb4\x01\x02\x16\x1a*\x20The\x20maximum\
3303    \x20number\x20of\x20results\x20to\x20return.\n\n\r\n\x05\x04\x02\x02\x01\
3304    \x05\x12\x04\xb4\x01\x02\x07\n\r\n\x05\x04\x02\x02\x01\x01\x12\x04\xb4\
3305    \x01\x08\x11\n\r\n\x05\x04\x02\x02\x01\x03\x12\x04\xb4\x01\x14\x15\n\x99\
3306    \x01\n\x04\x04\x02\x02\x02\x12\x04\xb9\x01\x02\x18\x1a\x8a\x01\x20A\x20p\
3307    agination\x20token\x20returned\x20from\x20a\x20previous\x20call\x20to\n\
3308    \x20`ListVulnerabilityReports`\x20that\x20indicates\x20where\x20this\x20\
3309    listing\n\x20should\x20continue\x20from.\n\n\r\n\x05\x04\x02\x02\x02\x05\
3310    \x12\x04\xb9\x01\x02\x08\n\r\n\x05\x04\x02\x02\x02\x01\x12\x04\xb9\x01\t\
3311    \x13\n\r\n\x05\x04\x02\x02\x02\x03\x12\x04\xb9\x01\x16\x17\n\x99\x01\n\
3312    \x04\x04\x02\x02\x03\x12\x04\xbd\x01\x02\x14\x1a\x8a\x01\x20If\x20provid\
3313    ed,\x20this\x20field\x20specifies\x20the\x20criteria\x20that\x20must\x20\
3314    be\x20met\x20by\x20a\n\x20`vulnerabilityReport`\x20API\x20resource\x20to\
3315    \x20be\x20included\x20in\x20the\x20response.\n\n\r\n\x05\x04\x02\x02\x03\
3316    \x05\x12\x04\xbd\x01\x02\x08\n\r\n\x05\x04\x02\x02\x03\x01\x12\x04\xbd\
3317    \x01\t\x0f\n\r\n\x05\x04\x02\x02\x03\x03\x12\x04\xbd\x01\x12\x13\nu\n\
3318    \x02\x04\x03\x12\x06\xc2\x01\0\xc9\x01\x01\x1ag\x20A\x20response\x20mess\
3319    age\x20for\x20listing\x20vulnerability\x20reports\x20for\x20all\x20VM\
3320    \x20instances\x20in\n\x20the\x20specified\x20location.\n\n\x0b\n\x03\x04\
3321    \x03\x01\x12\x04\xc2\x01\x08(\n4\n\x04\x04\x03\x02\0\x12\x04\xc4\x01\x02\
3322    9\x1a&\x20List\x20of\x20vulnerabilityReport\x20objects.\n\n\r\n\x05\x04\
3323    \x03\x02\0\x04\x12\x04\xc4\x01\x02\n\n\r\n\x05\x04\x03\x02\0\x06\x12\x04\
3324    \xc4\x01\x0b\x1e\n\r\n\x05\x04\x03\x02\0\x01\x12\x04\xc4\x01\x1f4\n\r\n\
3325    \x05\x04\x03\x02\0\x03\x12\x04\xc4\x0178\n_\n\x04\x04\x03\x02\x01\x12\
3326    \x04\xc8\x01\x02\x1d\x1aQ\x20The\x20pagination\x20token\x20to\x20retriev\
3327    e\x20the\x20next\x20page\x20of\x20vulnerabilityReports\n\x20object.\n\n\
3328    \r\n\x05\x04\x03\x02\x01\x05\x12\x04\xc8\x01\x02\x08\n\r\n\x05\x04\x03\
3329    \x02\x01\x01\x12\x04\xc8\x01\t\x18\n\r\n\x05\x04\x03\x02\x01\x03\x12\x04\
3330    \xc8\x01\x1b\x1c\n\x82\x01\n\x02\x04\x04\x12\x06\xcd\x01\0\xec\x02\x01\
3331    \x1at\x20Common\x20Vulnerability\x20Scoring\x20System\x20version\x203.\n\
3332    \x20For\x20details,\x20see\x20https://www.first.org/cvss/specification-d\
3333    ocument\n\n\x0b\n\x03\x04\x04\x01\x12\x04\xcd\x01\x08\x0e\nd\n\x04\x04\
3334    \x04\x04\0\x12\x06\xd0\x01\x02\xe4\x01\x03\x1aT\x20This\x20metric\x20ref\
3335    lects\x20the\x20context\x20by\x20which\x20vulnerability\x20exploitation\
3336    \x20is\n\x20possible.\n\n\r\n\x05\x04\x04\x04\0\x01\x12\x04\xd0\x01\x07\
3337    \x13\n\x20\n\x06\x04\x04\x04\0\x02\0\x12\x04\xd2\x01\x04\"\x1a\x10\x20In\
3338    valid\x20value.\n\n\x0f\n\x07\x04\x04\x04\0\x02\0\x01\x12\x04\xd2\x01\
3339    \x04\x1d\n\x0f\n\x07\x04\x04\x04\0\x02\0\x02\x12\x04\xd2\x01\x20!\n\xc5\
3340    \x01\n\x06\x04\x04\x04\0\x02\x01\x12\x04\xd7\x01\x04\x1e\x1a\xb4\x01\x20\
3341    The\x20vulnerable\x20component\x20is\x20bound\x20to\x20the\x20network\
3342    \x20stack\x20and\x20the\x20set\x20of\n\x20possible\x20attackers\x20exten\
3343    ds\x20beyond\x20the\x20other\x20options\x20listed\x20below,\x20up\x20to\
3344    \n\x20and\x20including\x20the\x20entire\x20Internet.\n\n\x0f\n\x07\x04\
3345    \x04\x04\0\x02\x01\x01\x12\x04\xd7\x01\x04\x19\n\x0f\n\x07\x04\x04\x04\0\
3346    \x02\x01\x02\x12\x04\xd7\x01\x1c\x1d\n\x9d\x01\n\x06\x04\x04\x04\0\x02\
3347    \x02\x12\x04\xdb\x01\x04\x1f\x1a\x8c\x01\x20The\x20vulnerable\x20compone\
3348    nt\x20is\x20bound\x20to\x20the\x20network\x20stack,\x20but\x20the\x20att\
3349    ack\x20is\n\x20limited\x20at\x20the\x20protocol\x20level\x20to\x20a\x20l\
3350    ogically\x20adjacent\x20topology.\n\n\x0f\n\x07\x04\x04\x04\0\x02\x02\
3351    \x01\x12\x04\xdb\x01\x04\x1a\n\x0f\n\x07\x04\x04\x04\0\x02\x02\x02\x12\
3352    \x04\xdb\x01\x1d\x1e\n\x8d\x01\n\x06\x04\x04\x04\0\x02\x03\x12\x04\xdf\
3353    \x01\x04\x1c\x1a}\x20The\x20vulnerable\x20component\x20is\x20not\x20boun\
3354    d\x20to\x20the\x20network\x20stack\x20and\x20the\n\x20attacker's\x20path\
3355    \x20is\x20via\x20read/write/execute\x20capabilities.\n\n\x0f\n\x07\x04\
3356    \x04\x04\0\x02\x03\x01\x12\x04\xdf\x01\x04\x17\n\x0f\n\x07\x04\x04\x04\0\
3357    \x02\x03\x02\x12\x04\xdf\x01\x1a\x1b\no\n\x06\x04\x04\x04\0\x02\x04\x12\
3358    \x04\xe3\x01\x04\x1f\x1a_\x20The\x20attack\x20requires\x20the\x20attacke\
3359    r\x20to\x20physically\x20touch\x20or\x20manipulate\x20the\n\x20vulnerabl\
3360    e\x20component.\n\n\x0f\n\x07\x04\x04\x04\0\x02\x04\x01\x12\x04\xe3\x01\
3361    \x04\x1a\n\x0f\n\x07\x04\x04\x04\0\x02\x04\x02\x12\x04\xe3\x01\x1d\x1e\n\
3362    \x8c\x01\n\x04\x04\x04\x04\x01\x12\x06\xe8\x01\x02\xf7\x01\x03\x1a|\x20T\
3363    his\x20metric\x20describes\x20the\x20conditions\x20beyond\x20the\x20atta\
3364    cker's\x20control\x20that\n\x20must\x20exist\x20in\x20order\x20to\x20exp\
3365    loit\x20the\x20vulnerability.\n\n\r\n\x05\x04\x04\x04\x01\x01\x12\x04\
3366    \xe8\x01\x07\x17\n\x20\n\x06\x04\x04\x04\x01\x02\0\x12\x04\xea\x01\x04&\
3367    \x1a\x10\x20Invalid\x20value.\n\n\x0f\n\x07\x04\x04\x04\x01\x02\0\x01\
3368    \x12\x04\xea\x01\x04!\n\x0f\n\x07\x04\x04\x04\x01\x02\0\x02\x12\x04\xea\
3369    \x01$%\n\xb0\x01\n\x06\x04\x04\x04\x01\x02\x01\x12\x04\xef\x01\x04\x1e\
3370    \x1a\x9f\x01\x20Specialized\x20access\x20conditions\x20or\x20extenuating\
3371    \x20circumstances\x20do\x20not\x20exist.\n\x20An\x20attacker\x20can\x20e\
3372    xpect\x20repeatable\x20success\x20when\x20attacking\x20the\x20vulnerable\
3373    \n\x20component.\n\n\x0f\n\x07\x04\x04\x04\x01\x02\x01\x01\x12\x04\xef\
3374    \x01\x04\x19\n\x0f\n\x07\x04\x04\x04\x01\x02\x01\x02\x12\x04\xef\x01\x1c\
3375    \x1d\n\xcd\x02\n\x06\x04\x04\x04\x01\x02\x02\x12\x04\xf6\x01\x04\x1f\x1a\
3376    \xbc\x02\x20A\x20successful\x20attack\x20depends\x20on\x20conditions\x20\
3377    beyond\x20the\x20attacker's\x20control.\n\x20That\x20is,\x20a\x20success\
3378    ful\x20attack\x20cannot\x20be\x20accomplished\x20at\x20will,\x20but\x20r\
3379    equires\n\x20the\x20attacker\x20to\x20invest\x20in\x20some\x20measurable\
3380    \x20amount\x20of\x20effort\x20in\x20preparation\n\x20or\x20execution\x20\
3381    against\x20the\x20vulnerable\x20component\x20before\x20a\x20successful\
3382    \x20attack\n\x20can\x20be\x20expected.\n\n\x0f\n\x07\x04\x04\x04\x01\x02\
3383    \x02\x01\x12\x04\xf6\x01\x04\x1a\n\x0f\n\x07\x04\x04\x04\x01\x02\x02\x02\
3384    \x12\x04\xf6\x01\x1d\x1e\n\x8b\x01\n\x04\x04\x04\x04\x02\x12\x06\xfb\x01\
3385    \x02\x8e\x02\x03\x1a{\x20This\x20metric\x20describes\x20the\x20level\x20\
3386    of\x20privileges\x20an\x20attacker\x20must\x20possess\n\x20before\x20suc\
3387    cessfully\x20exploiting\x20the\x20vulnerability.\n\n\r\n\x05\x04\x04\x04\
3388    \x02\x01\x12\x04\xfb\x01\x07\x19\n\x20\n\x06\x04\x04\x04\x02\x02\0\x12\
3389    \x04\xfd\x01\x04(\x1a\x10\x20Invalid\x20value.\n\n\x0f\n\x07\x04\x04\x04\
3390    \x02\x02\0\x01\x12\x04\xfd\x01\x04#\n\x0f\n\x07\x04\x04\x04\x02\x02\0\
3391    \x02\x12\x04\xfd\x01&'\n\xb2\x01\n\x06\x04\x04\x04\x02\x02\x01\x12\x04\
3392    \x82\x02\x04!\x1a\xa1\x01\x20The\x20attacker\x20is\x20unauthorized\x20pr\
3393    ior\x20to\x20attack,\x20and\x20therefore\x20does\x20not\n\x20require\x20\
3394    any\x20access\x20to\x20settings\x20or\x20files\x20of\x20the\x20vulnerabl\
3395    e\x20system\x20to\n\x20carry\x20out\x20an\x20attack.\n\n\x0f\n\x07\x04\
3396    \x04\x04\x02\x02\x01\x01\x12\x04\x82\x02\x04\x1c\n\x0f\n\x07\x04\x04\x04\
3397    \x02\x02\x01\x02\x12\x04\x82\x02\x1f\x20\n\x86\x02\n\x06\x04\x04\x04\x02\
3398    \x02\x02\x12\x04\x88\x02\x04\x20\x1a\xf5\x01\x20The\x20attacker\x20requi\
3399    res\x20privileges\x20that\x20provide\x20basic\x20user\x20capabilities\n\
3400    \x20that\x20could\x20normally\x20affect\x20only\x20settings\x20and\x20fi\
3401    les\x20owned\x20by\x20a\x20user.\n\x20Alternatively,\x20an\x20attacker\
3402    \x20with\x20Low\x20privileges\x20has\x20the\x20ability\x20to\x20access\n\
3403    \x20only\x20non-sensitive\x20resources.\n\n\x0f\n\x07\x04\x04\x04\x02\
3404    \x02\x02\x01\x12\x04\x88\x02\x04\x1b\n\x0f\n\x07\x04\x04\x04\x02\x02\x02\
3405    \x02\x12\x04\x88\x02\x1e\x1f\n\xc1\x01\n\x06\x04\x04\x04\x02\x02\x03\x12\
3406    \x04\x8d\x02\x04!\x1a\xb0\x01\x20The\x20attacker\x20requires\x20privileg\
3407    es\x20that\x20provide\x20significant\x20(e.g.,\n\x20administrative)\x20c\
3408    ontrol\x20over\x20the\x20vulnerable\x20component\x20allowing\x20access\
3409    \x20to\n\x20component-wide\x20settings\x20and\x20files.\n\n\x0f\n\x07\
3410    \x04\x04\x04\x02\x02\x03\x01\x12\x04\x8d\x02\x04\x1c\n\x0f\n\x07\x04\x04\
3411    \x04\x02\x02\x03\x02\x12\x04\x8d\x02\x1f\x20\n\xad\x01\n\x04\x04\x04\x04\
3412    \x03\x12\x06\x93\x02\x02\x9d\x02\x03\x1a\x9c\x01\x20This\x20metric\x20ca\
3413    ptures\x20the\x20requirement\x20for\x20a\x20human\x20user,\x20other\x20t\
3414    han\x20the\n\x20attacker,\x20to\x20participate\x20in\x20the\x20successfu\
3415    l\x20compromise\x20of\x20the\x20vulnerable\n\x20component.\n\n\r\n\x05\
3416    \x04\x04\x04\x03\x01\x12\x04\x93\x02\x07\x16\n\x20\n\x06\x04\x04\x04\x03\
3417    \x02\0\x12\x04\x95\x02\x04%\x1a\x10\x20Invalid\x20value.\n\n\x0f\n\x07\
3418    \x04\x04\x04\x03\x02\0\x01\x12\x04\x95\x02\x04\x20\n\x0f\n\x07\x04\x04\
3419    \x04\x03\x02\0\x02\x12\x04\x95\x02#$\n[\n\x06\x04\x04\x04\x03\x02\x01\
3420    \x12\x04\x98\x02\x04\x1e\x1aK\x20The\x20vulnerable\x20system\x20can\x20b\
3421    e\x20exploited\x20without\x20interaction\x20from\x20any\x20user.\n\n\x0f\
3422    \n\x07\x04\x04\x04\x03\x02\x01\x01\x12\x04\x98\x02\x04\x19\n\x0f\n\x07\
3423    \x04\x04\x04\x03\x02\x01\x02\x12\x04\x98\x02\x1c\x1d\n\x8f\x01\n\x06\x04\
3424    \x04\x04\x03\x02\x02\x12\x04\x9c\x02\x04\"\x1a\x7f\x20Successful\x20expl\
3425    oitation\x20of\x20this\x20vulnerability\x20requires\x20a\x20user\x20to\
3426    \x20take\n\x20some\x20action\x20before\x20the\x20vulnerability\x20can\
3427    \x20be\x20exploited.\n\n\x0f\n\x07\x04\x04\x04\x03\x02\x02\x01\x12\x04\
3428    \x9c\x02\x04\x1d\n\x0f\n\x07\x04\x04\x04\x03\x02\x02\x02\x12\x04\x9c\x02\
3429    \x20!\n\x9c\x01\n\x04\x04\x04\x04\x04\x12\x06\xa1\x02\x02\xac\x02\x03\
3430    \x1a\x8b\x01\x20The\x20Scope\x20metric\x20captures\x20whether\x20a\x20vu\
3431    lnerability\x20in\x20one\x20vulnerable\n\x20component\x20impacts\x20reso\
3432    urces\x20in\x20components\x20beyond\x20its\x20security\x20scope.\n\n\r\n\
3433    \x05\x04\x04\x04\x04\x01\x12\x04\xa1\x02\x07\x0c\n\x20\n\x06\x04\x04\x04\
3434    \x04\x02\0\x12\x04\xa3\x02\x04\x1a\x1a\x10\x20Invalid\x20value.\n\n\x0f\
3435    \n\x07\x04\x04\x04\x04\x02\0\x01\x12\x04\xa3\x02\x04\x15\n\x0f\n\x07\x04\
3436    \x04\x04\x04\x02\0\x02\x12\x04\xa3\x02\x18\x19\no\n\x06\x04\x04\x04\x04\
3437    \x02\x01\x12\x04\xa7\x02\x04\x18\x1a_\x20An\x20exploited\x20vulnerabilit\
3438    y\x20can\x20only\x20affect\x20resources\x20managed\x20by\x20the\x20same\
3439    \n\x20security\x20authority.\n\n\x0f\n\x07\x04\x04\x04\x04\x02\x01\x01\
3440    \x12\x04\xa7\x02\x04\x13\n\x0f\n\x07\x04\x04\x04\x04\x02\x01\x02\x12\x04\
3441    \xa7\x02\x16\x17\n\x9c\x01\n\x06\x04\x04\x04\x04\x02\x02\x12\x04\xab\x02\
3442    \x04\x16\x1a\x8b\x01\x20An\x20exploited\x20vulnerability\x20can\x20affec\
3443    t\x20resources\x20beyond\x20the\x20security\x20scope\n\x20managed\x20by\
3444    \x20the\x20security\x20authority\x20of\x20the\x20vulnerable\x20component\
3445    .\n\n\x0f\n\x07\x04\x04\x04\x04\x02\x02\x01\x12\x04\xab\x02\x04\x11\n\
3446    \x0f\n\x07\x04\x04\x04\x04\x02\x02\x02\x12\x04\xab\x02\x14\x15\n\xd7\x01\
3447    \n\x04\x04\x04\x04\x05\x12\x06\xb1\x02\x02\xbd\x02\x03\x1a\xc6\x01\x20Th\
3448    e\x20Impact\x20metrics\x20capture\x20the\x20effects\x20of\x20a\x20succes\
3449    sfully\x20exploited\n\x20vulnerability\x20on\x20the\x20component\x20that\
3450    \x20suffers\x20the\x20worst\x20outcome\x20that\x20is\x20most\n\x20direct\
3451    ly\x20and\x20predictably\x20associated\x20with\x20the\x20attack.\n\n\r\n\
3452    \x05\x04\x04\x04\x05\x01\x12\x04\xb1\x02\x07\r\n\x20\n\x06\x04\x04\x04\
3453    \x05\x02\0\x12\x04\xb3\x02\x04\x1b\x1a\x10\x20Invalid\x20value.\n\n\x0f\
3454    \n\x07\x04\x04\x04\x05\x02\0\x01\x12\x04\xb3\x02\x04\x16\n\x0f\n\x07\x04\
3455    \x04\x04\x05\x02\0\x02\x12\x04\xb3\x02\x19\x1a\n\x1e\n\x06\x04\x04\x04\
3456    \x05\x02\x01\x12\x04\xb6\x02\x04\x14\x1a\x0e\x20High\x20impact.\n\n\x0f\
3457    \n\x07\x04\x04\x04\x05\x02\x01\x01\x12\x04\xb6\x02\x04\x0f\n\x0f\n\x07\
3458    \x04\x04\x04\x05\x02\x01\x02\x12\x04\xb6\x02\x12\x13\n\x1d\n\x06\x04\x04\
3459    \x04\x05\x02\x02\x12\x04\xb9\x02\x04\x13\x1a\r\x20Low\x20impact.\n\n\x0f\
3460    \n\x07\x04\x04\x04\x05\x02\x02\x01\x12\x04\xb9\x02\x04\x0e\n\x0f\n\x07\
3461    \x04\x04\x04\x05\x02\x02\x02\x12\x04\xb9\x02\x11\x12\n\x1c\n\x06\x04\x04\
3462    \x04\x05\x02\x03\x12\x04\xbc\x02\x04\x14\x1a\x0c\x20No\x20impact.\n\n\
3463    \x0f\n\x07\x04\x04\x04\x05\x02\x03\x01\x12\x04\xbc\x02\x04\x0f\n\x0f\n\
3464    \x07\x04\x04\x04\x05\x02\x03\x02\x12\x04\xbc\x02\x12\x13\n\x87\x01\n\x04\
3465    \x04\x04\x02\0\x12\x04\xc1\x02\x02\x17\x1ay\x20The\x20base\x20score\x20i\
3466    s\x20a\x20function\x20of\x20the\x20base\x20metric\x20scores.\n\x20https:\
3467    //www.first.org/cvss/specification-document#Base-Metrics\n\n\r\n\x05\x04\
3468    \x04\x02\0\x05\x12\x04\xc1\x02\x02\x07\n\r\n\x05\x04\x04\x02\0\x01\x12\
3469    \x04\xc1\x02\x08\x12\n\r\n\x05\x04\x04\x02\0\x03\x12\x04\xc1\x02\x15\x16\
3470    \n\xb6\x01\n\x04\x04\x04\x02\x01\x12\x04\xc6\x02\x02!\x1a\xa7\x01\x20The\
3471    \x20Exploitability\x20sub-score\x20equation\x20is\x20derived\x20from\x20\
3472    the\x20Base\n\x20Exploitability\x20metrics.\n\x20https://www.first.org/c\
3473    vss/specification-document#2-1-Exploitability-Metrics\n\n\r\n\x05\x04\
3474    \x04\x02\x01\x05\x12\x04\xc6\x02\x02\x07\n\r\n\x05\x04\x04\x02\x01\x01\
3475    \x12\x04\xc6\x02\x08\x1c\n\r\n\x05\x04\x04\x02\x01\x03\x12\x04\xc6\x02\
3476    \x1f\x20\nV\n\x04\x04\x04\x02\x02\x12\x04\xc9\x02\x02\x19\x1aH\x20The\
3477    \x20Impact\x20sub-score\x20equation\x20is\x20derived\x20from\x20the\x20B\
3478    ase\x20Impact\x20metrics.\n\n\r\n\x05\x04\x04\x02\x02\x05\x12\x04\xc9\
3479    \x02\x02\x07\n\r\n\x05\x04\x04\x02\x02\x01\x12\x04\xc9\x02\x08\x14\n\r\n\
3480    \x05\x04\x04\x02\x02\x03\x12\x04\xc9\x02\x17\x18\nb\n\x04\x04\x04\x02\
3481    \x03\x12\x04\xcd\x02\x02!\x1aT\x20This\x20metric\x20reflects\x20the\x20c\
3482    ontext\x20by\x20which\x20vulnerability\x20exploitation\x20is\n\x20possib\
3483    le.\n\n\r\n\x05\x04\x04\x02\x03\x06\x12\x04\xcd\x02\x02\x0e\n\r\n\x05\
3484    \x04\x04\x02\x03\x01\x12\x04\xcd\x02\x0f\x1c\n\r\n\x05\x04\x04\x02\x03\
3485    \x03\x12\x04\xcd\x02\x1f\x20\n\x8a\x01\n\x04\x04\x04\x02\x04\x12\x04\xd1\
3486    \x02\x02)\x1a|\x20This\x20metric\x20describes\x20the\x20conditions\x20be\
3487    yond\x20the\x20attacker's\x20control\x20that\n\x20must\x20exist\x20in\
3488    \x20order\x20to\x20exploit\x20the\x20vulnerability.\n\n\r\n\x05\x04\x04\
3489    \x02\x04\x06\x12\x04\xd1\x02\x02\x12\n\r\n\x05\x04\x04\x02\x04\x01\x12\
3490    \x04\xd1\x02\x13$\n\r\n\x05\x04\x04\x02\x04\x03\x12\x04\xd1\x02'(\n\x89\
3491    \x01\n\x04\x04\x04\x02\x05\x12\x04\xd5\x02\x02-\x1a{\x20This\x20metric\
3492    \x20describes\x20the\x20level\x20of\x20privileges\x20an\x20attacker\x20m\
3493    ust\x20possess\n\x20before\x20successfully\x20exploiting\x20the\x20vulne\
3494    rability.\n\n\r\n\x05\x04\x04\x02\x05\x06\x12\x04\xd5\x02\x02\x14\n\r\n\
3495    \x05\x04\x04\x02\x05\x01\x12\x04\xd5\x02\x15(\n\r\n\x05\x04\x04\x02\x05\
3496    \x03\x12\x04\xd5\x02+,\n\xab\x01\n\x04\x04\x04\x02\x06\x12\x04\xda\x02\
3497    \x02'\x1a\x9c\x01\x20This\x20metric\x20captures\x20the\x20requirement\
3498    \x20for\x20a\x20human\x20user,\x20other\x20than\x20the\n\x20attacker,\
3499    \x20to\x20participate\x20in\x20the\x20successful\x20compromise\x20of\x20\
3500    the\x20vulnerable\n\x20component.\n\n\r\n\x05\x04\x04\x02\x06\x06\x12\
3501    \x04\xda\x02\x02\x11\n\r\n\x05\x04\x04\x02\x06\x01\x12\x04\xda\x02\x12\"\
3502    \n\r\n\x05\x04\x04\x02\x06\x03\x12\x04\xda\x02%&\n\x9a\x01\n\x04\x04\x04\
3503    \x02\x07\x12\x04\xde\x02\x02\x12\x1a\x8b\x01\x20The\x20Scope\x20metric\
3504    \x20captures\x20whether\x20a\x20vulnerability\x20in\x20one\x20vulnerable\
3505    \n\x20component\x20impacts\x20resources\x20in\x20components\x20beyond\
3506    \x20its\x20security\x20scope.\n\n\r\n\x05\x04\x04\x02\x07\x06\x12\x04\
3507    \xde\x02\x02\x07\n\r\n\x05\x04\x04\x02\x07\x01\x12\x04\xde\x02\x08\r\n\r\
3508    \n\x05\x04\x04\x02\x07\x03\x12\x04\xde\x02\x10\x11\n\xb5\x01\n\x04\x04\
3509    \x04\x02\x08\x12\x04\xe3\x02\x02%\x1a\xa6\x01\x20This\x20metric\x20measu\
3510    res\x20the\x20impact\x20to\x20the\x20confidentiality\x20of\x20the\x20inf\
3511    ormation\n\x20resources\x20managed\x20by\x20a\x20software\x20component\
3512    \x20due\x20to\x20a\x20successfully\x20exploited\n\x20vulnerability.\n\n\
3513    \r\n\x05\x04\x04\x02\x08\x06\x12\x04\xe3\x02\x02\x08\n\r\n\x05\x04\x04\
3514    \x02\x08\x01\x12\x04\xe3\x02\t\x1f\n\r\n\x05\x04\x04\x02\x08\x03\x12\x04\
3515    \xe3\x02\"$\nh\n\x04\x04\x04\x02\t\x12\x04\xe7\x02\x02\x1f\x1aZ\x20This\
3516    \x20metric\x20measures\x20the\x20impact\x20to\x20integrity\x20of\x20a\
3517    \x20successfully\x20exploited\n\x20vulnerability.\n\n\r\n\x05\x04\x04\
3518    \x02\t\x06\x12\x04\xe7\x02\x02\x08\n\r\n\x05\x04\x04\x02\t\x01\x12\x04\
3519    \xe7\x02\t\x19\n\r\n\x05\x04\x04\x02\t\x03\x12\x04\xe7\x02\x1c\x1e\n\x96\
3520    \x01\n\x04\x04\x04\x02\n\x12\x04\xeb\x02\x02\"\x1a\x87\x01\x20This\x20me\
3521    tric\x20measures\x20the\x20impact\x20to\x20the\x20availability\x20of\x20\
3522    the\x20impacted\n\x20component\x20resulting\x20from\x20a\x20successfully\
3523    \x20exploited\x20vulnerability.\n\n\r\n\x05\x04\x04\x02\n\x06\x12\x04\
3524    \xeb\x02\x02\x08\n\r\n\x05\x04\x04\x02\n\x01\x12\x04\xeb\x02\t\x1c\n\r\n\
3525    \x05\x04\x04\x02\n\x03\x12\x04\xeb\x02\x1f!b\x06proto3\
3526";
3527
3528static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;
3529
3530fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
3531    ::protobuf::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
3532}
3533
3534pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
3535    file_descriptor_proto_lazy.get(|| {
3536        parse_descriptor_proto()
3537    })
3538}