#![allow(unknown_lints)]
#![allow(clippy::all)]
#![allow(unused_attributes)]
#![cfg_attr(rustfmt, rustfmt::skip)]
#![allow(box_pointers)]
#![allow(dead_code)]
#![allow(missing_docs)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![allow(non_upper_case_globals)]
#![allow(trivial_casts)]
#![allow(unused_imports)]
#![allow(unused_results)]
#[derive(PartialEq,Clone,Default)]
pub struct AccessPolicy {
pub name: ::std::string::String,
pub parent: ::std::string::String,
pub title: ::std::string::String,
pub scopes: ::protobuf::RepeatedField<::std::string::String>,
pub create_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
pub update_time: ::protobuf::SingularPtrField<::protobuf::well_known_types::Timestamp>,
pub etag: ::std::string::String,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a AccessPolicy {
fn default() -> &'a AccessPolicy {
<AccessPolicy as ::protobuf::Message>::default_instance()
}
}
impl AccessPolicy {
pub fn new() -> AccessPolicy {
::std::default::Default::default()
}
pub fn get_name(&self) -> &str {
&self.name
}
pub fn clear_name(&mut self) {
self.name.clear();
}
pub fn set_name(&mut self, v: ::std::string::String) {
self.name = v;
}
pub fn mut_name(&mut self) -> &mut ::std::string::String {
&mut self.name
}
pub fn take_name(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.name, ::std::string::String::new())
}
pub fn get_parent(&self) -> &str {
&self.parent
}
pub fn clear_parent(&mut self) {
self.parent.clear();
}
pub fn set_parent(&mut self, v: ::std::string::String) {
self.parent = v;
}
pub fn mut_parent(&mut self) -> &mut ::std::string::String {
&mut self.parent
}
pub fn take_parent(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.parent, ::std::string::String::new())
}
pub fn get_title(&self) -> &str {
&self.title
}
pub fn clear_title(&mut self) {
self.title.clear();
}
pub fn set_title(&mut self, v: ::std::string::String) {
self.title = v;
}
pub fn mut_title(&mut self) -> &mut ::std::string::String {
&mut self.title
}
pub fn take_title(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.title, ::std::string::String::new())
}
pub fn get_scopes(&self) -> &[::std::string::String] {
&self.scopes
}
pub fn clear_scopes(&mut self) {
self.scopes.clear();
}
pub fn set_scopes(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
self.scopes = v;
}
pub fn mut_scopes(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
&mut self.scopes
}
pub fn take_scopes(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
::std::mem::replace(&mut self.scopes, ::protobuf::RepeatedField::new())
}
pub fn get_create_time(&self) -> &::protobuf::well_known_types::Timestamp {
self.create_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
}
pub fn clear_create_time(&mut self) {
self.create_time.clear();
}
pub fn has_create_time(&self) -> bool {
self.create_time.is_some()
}
pub fn set_create_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
self.create_time = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_create_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
if self.create_time.is_none() {
self.create_time.set_default();
}
self.create_time.as_mut().unwrap()
}
pub fn take_create_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
self.create_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
}
pub fn get_update_time(&self) -> &::protobuf::well_known_types::Timestamp {
self.update_time.as_ref().unwrap_or_else(|| <::protobuf::well_known_types::Timestamp as ::protobuf::Message>::default_instance())
}
pub fn clear_update_time(&mut self) {
self.update_time.clear();
}
pub fn has_update_time(&self) -> bool {
self.update_time.is_some()
}
pub fn set_update_time(&mut self, v: ::protobuf::well_known_types::Timestamp) {
self.update_time = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_update_time(&mut self) -> &mut ::protobuf::well_known_types::Timestamp {
if self.update_time.is_none() {
self.update_time.set_default();
}
self.update_time.as_mut().unwrap()
}
pub fn take_update_time(&mut self) -> ::protobuf::well_known_types::Timestamp {
self.update_time.take().unwrap_or_else(|| ::protobuf::well_known_types::Timestamp::new())
}
pub fn get_etag(&self) -> &str {
&self.etag
}
pub fn clear_etag(&mut self) {
self.etag.clear();
}
pub fn set_etag(&mut self, v: ::std::string::String) {
self.etag = v;
}
pub fn mut_etag(&mut self) -> &mut ::std::string::String {
&mut self.etag
}
pub fn take_etag(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.etag, ::std::string::String::new())
}
}
impl ::protobuf::Message for AccessPolicy {
fn is_initialized(&self) -> bool {
for v in &self.create_time {
if !v.is_initialized() {
return false;
}
};
for v in &self.update_time {
if !v.is_initialized() {
return false;
}
};
true
}
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
while !is.eof()? {
let (field_number, wire_type) = is.read_tag_unpack()?;
match field_number {
1 => {
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
},
2 => {
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.parent)?;
},
3 => {
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.title)?;
},
7 => {
::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.scopes)?;
},
4 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.create_time)?;
},
5 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.update_time)?;
},
6 => {
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.etag)?;
},
_ => {
::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u32 {
let mut my_size = 0;
if !self.name.is_empty() {
my_size += ::protobuf::rt::string_size(1, &self.name);
}
if !self.parent.is_empty() {
my_size += ::protobuf::rt::string_size(2, &self.parent);
}
if !self.title.is_empty() {
my_size += ::protobuf::rt::string_size(3, &self.title);
}
for value in &self.scopes {
my_size += ::protobuf::rt::string_size(7, &value);
};
if let Some(ref v) = self.create_time.as_ref() {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
}
if let Some(ref v) = self.update_time.as_ref() {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
}
if !self.etag.is_empty() {
my_size += ::protobuf::rt::string_size(6, &self.etag);
}
my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
self.cached_size.set(my_size);
my_size
}
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
if !self.name.is_empty() {
os.write_string(1, &self.name)?;
}
if !self.parent.is_empty() {
os.write_string(2, &self.parent)?;
}
if !self.title.is_empty() {
os.write_string(3, &self.title)?;
}
for v in &self.scopes {
os.write_string(7, &v)?;
};
if let Some(ref v) = self.create_time.as_ref() {
os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
}
if let Some(ref v) = self.update_time.as_ref() {
os.write_tag(5, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
}
if !self.etag.is_empty() {
os.write_string(6, &self.etag)?;
}
os.write_unknown_fields(self.get_unknown_fields())?;
::std::result::Result::Ok(())
}
fn get_cached_size(&self) -> u32 {
self.cached_size.get()
}
fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
&self.unknown_fields
}
fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
&mut self.unknown_fields
}
fn as_any(&self) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> AccessPolicy {
AccessPolicy::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"name",
|m: &AccessPolicy| { &m.name },
|m: &mut AccessPolicy| { &mut m.name },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"parent",
|m: &AccessPolicy| { &m.parent },
|m: &mut AccessPolicy| { &mut m.parent },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"title",
|m: &AccessPolicy| { &m.title },
|m: &mut AccessPolicy| { &mut m.title },
));
fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"scopes",
|m: &AccessPolicy| { &m.scopes },
|m: &mut AccessPolicy| { &mut m.scopes },
));
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
"create_time",
|m: &AccessPolicy| { &m.create_time },
|m: &mut AccessPolicy| { &mut m.create_time },
));
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Timestamp>>(
"update_time",
|m: &AccessPolicy| { &m.update_time },
|m: &mut AccessPolicy| { &mut m.update_time },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"etag",
|m: &AccessPolicy| { &m.etag },
|m: &mut AccessPolicy| { &mut m.etag },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<AccessPolicy>(
"AccessPolicy",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static AccessPolicy {
static instance: ::protobuf::rt::LazyV2<AccessPolicy> = ::protobuf::rt::LazyV2::INIT;
instance.get(AccessPolicy::new)
}
}
impl ::protobuf::Clear for AccessPolicy {
fn clear(&mut self) {
self.name.clear();
self.parent.clear();
self.title.clear();
self.scopes.clear();
self.create_time.clear();
self.update_time.clear();
self.etag.clear();
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for AccessPolicy {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for AccessPolicy {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
static file_descriptor_proto_data: &'static [u8] = b"\
\n;google/identity/accesscontextmanager/v1/access_policy.proto\x12'googl\
e.identity.accesscontextmanager.v1\x1a\x19google/api/resource.proto\x1a\
\x1fgoogle/protobuf/timestamp.proto\"\xcd\x02\n\x0cAccessPolicy\x12\x12\
\n\x04name\x18\x01\x20\x01(\tR\x04name\x12\x16\n\x06parent\x18\x02\x20\
\x01(\tR\x06parent\x12\x14\n\x05title\x18\x03\x20\x01(\tR\x05title\x12\
\x16\n\x06scopes\x18\x07\x20\x03(\tR\x06scopes\x12;\n\x0bcreate_time\x18\
\x04\x20\x01(\x0b2\x1a.google.protobuf.TimestampR\ncreateTime\x12;\n\x0b\
update_time\x18\x05\x20\x01(\x0b2\x1a.google.protobuf.TimestampR\nupdate\
Time\x12\x12\n\x04etag\x18\x06\x20\x01(\tR\x04etag:U\xeaAR\n0accessconte\
xtmanager.googleapis.com/AccessPolicy\x12\x1eaccessPolicies/{access_poli\
cy}B\xa2\x02\n+com.google.identity.accesscontextmanager.v1B\x0bPolicyPro\
toP\x01Z\\cloud.google.com/go/accesscontextmanager/apiv1/accesscontextma\
nagerpb;accesscontextmanagerpb\xa2\x02\x04GACM\xaa\x02'Google.Identity.A\
ccessContextManager.V1\xca\x02'Google\\Identity\\AccessContextManager\\V\
1\xea\x02*Google::Identity::AccessContextManager::V1J\xdc\x18\n\x06\x12\
\x04\x0e\0P\x01\n\xbc\x04\n\x01\x0c\x12\x03\x0e\0\x122\xb1\x04\x20Copyri\
ght\x202022\x20Google\x20LLC\n\n\x20Licensed\x20under\x20the\x20Apache\
\x20License,\x20Version\x202.0\x20(the\x20\"License\");\n\x20you\x20may\
\x20not\x20use\x20this\x20file\x20except\x20in\x20compliance\x20with\x20\
the\x20License.\n\x20You\x20may\x20obtain\x20a\x20copy\x20of\x20the\x20L\
icense\x20at\n\n\x20\x20\x20\x20\x20http://www.apache.org/licenses/LICEN\
SE-2.0\n\n\x20Unless\x20required\x20by\x20applicable\x20law\x20or\x20agr\
eed\x20to\x20in\x20writing,\x20software\n\x20distributed\x20under\x20the\
\x20License\x20is\x20distributed\x20on\x20an\x20\"AS\x20IS\"\x20BASIS,\n\
\x20WITHOUT\x20WARRANTIES\x20OR\x20CONDITIONS\x20OF\x20ANY\x20KIND,\x20e\
ither\x20express\x20or\x20implied.\n\x20See\x20the\x20License\x20for\x20\
the\x20specific\x20language\x20governing\x20permissions\x20and\n\x20limi\
tations\x20under\x20the\x20License.\n\n\x08\n\x01\x02\x12\x03\x10\00\n\t\
\n\x02\x03\0\x12\x03\x12\0#\n\t\n\x02\x03\x01\x12\x03\x13\0)\n\x08\n\x01\
\x08\x12\x03\x15\0D\n\t\n\x02\x08%\x12\x03\x15\0D\n\x08\n\x01\x08\x12\
\x03\x16\0s\n\t\n\x02\x08\x0b\x12\x03\x16\0s\n\x08\n\x01\x08\x12\x03\x17\
\0\"\n\t\n\x02\x08\n\x12\x03\x17\0\"\n\x08\n\x01\x08\x12\x03\x18\0,\n\t\
\n\x02\x08\x08\x12\x03\x18\0,\n\x08\n\x01\x08\x12\x03\x19\0D\n\t\n\x02\
\x08\x01\x12\x03\x19\0D\n\x08\n\x01\x08\x12\x03\x1a\0\"\n\t\n\x02\x08$\
\x12\x03\x1a\0\"\n\x08\n\x01\x08\x12\x03\x1b\0D\n\t\n\x02\x08)\x12\x03\
\x1b\0D\n\x08\n\x01\x08\x12\x03\x1c\0C\n\t\n\x02\x08-\x12\x03\x1c\0C\n\
\xfd\x02\n\x02\x04\0\x12\x04#\0P\x01\x1a\xf0\x02\x20`AccessPolicy`\x20is\
\x20a\x20container\x20for\x20`AccessLevels`\x20(which\x20define\x20the\
\x20necessary\n\x20attributes\x20to\x20use\x20Google\x20Cloud\x20service\
s)\x20and\x20`ServicePerimeters`\x20(which\n\x20define\x20regions\x20of\
\x20services\x20able\x20to\x20freely\x20pass\x20data\x20within\x20a\x20p\
erimeter).\x20An\n\x20access\x20policy\x20is\x20globally\x20visible\x20w\
ithin\x20an\x20organization,\x20and\x20the\n\x20restrictions\x20it\x20sp\
ecifies\x20apply\x20to\x20all\x20projects\x20within\x20an\x20organizatio\
n.\n\n\n\n\x03\x04\0\x01\x12\x03#\x08\x14\n\x0b\n\x03\x04\0\x07\x12\x04$\
\x02'\x04\n\r\n\x05\x04\0\x07\x9d\x08\x12\x04$\x02'\x04\nj\n\x04\x04\0\
\x02\0\x12\x03+\x02\x12\x1a]\x20Output\x20only.\x20Resource\x20name\x20o\
f\x20the\x20`AccessPolicy`.\x20Format:\n\x20`accessPolicies/{access_poli\
cy}`\n\n\x0c\n\x05\x04\0\x02\0\x05\x12\x03+\x02\x08\n\x0c\n\x05\x04\0\
\x02\0\x01\x12\x03+\t\r\n\x0c\n\x05\x04\0\x02\0\x03\x12\x03+\x10\x11\n\
\xaa\x01\n\x04\x04\0\x02\x01\x12\x030\x02\x14\x1a\x9c\x01\x20Required.\
\x20The\x20parent\x20of\x20this\x20`AccessPolicy`\x20in\x20the\x20Cloud\
\x20Resource\n\x20Hierarchy.\x20Currently\x20immutable\x20once\x20create\
d.\x20Format:\n\x20`organizations/{organization_id}`\n\n\x0c\n\x05\x04\0\
\x02\x01\x05\x12\x030\x02\x08\n\x0c\n\x05\x04\0\x02\x01\x01\x12\x030\t\
\x0f\n\x0c\n\x05\x04\0\x02\x01\x03\x12\x030\x12\x13\nH\n\x04\x04\0\x02\
\x02\x12\x033\x02\x13\x1a;\x20Required.\x20Human\x20readable\x20title.\
\x20Does\x20not\x20affect\x20behavior.\n\n\x0c\n\x05\x04\0\x02\x02\x05\
\x12\x033\x02\x08\n\x0c\n\x05\x04\0\x02\x02\x01\x12\x033\t\x0e\n\x0c\n\
\x05\x04\0\x02\x02\x03\x12\x033\x11\x12\n\xcb\x06\n\x04\x04\0\x02\x03\
\x12\x03C\x02\x1d\x1a\xbd\x06\x20The\x20scopes\x20of\x20a\x20policy\x20d\
efine\x20which\x20resources\x20an\x20ACM\x20policy\x20can\x20restrict,\n\
\x20and\x20where\x20ACM\x20resources\x20can\x20be\x20referenced.\n\x20Fo\
r\x20example,\x20a\x20policy\x20with\x20scopes=[\"folders/123\"]\x20has\
\x20the\x20following\n\x20behavior:\n\x20-\x20vpcsc\x20perimeters\x20can\
\x20only\x20restrict\x20projects\x20within\x20folders/123\n\x20-\x20acce\
ss\x20levels\x20can\x20only\x20be\x20referenced\x20by\x20resources\x20wi\
thin\x20folders/123.\n\x20If\x20empty,\x20there\x20are\x20no\x20limitati\
ons\x20on\x20which\x20resources\x20can\x20be\x20restricted\x20by\n\x20an\
\x20ACM\x20policy,\x20and\x20there\x20are\x20no\x20limitations\x20on\x20\
where\x20ACM\x20resources\x20can\x20be\n\x20referenced.\n\x20Only\x20one\
\x20policy\x20can\x20include\x20a\x20given\x20scope\x20(attempting\x20to\
\x20create\x20a\x20second\n\x20policy\x20which\x20includes\x20\"folders/\
123\"\x20will\x20result\x20in\x20an\x20error).\n\x20Currently,\x20scopes\
\x20cannot\x20be\x20modified\x20after\x20a\x20policy\x20is\x20created.\n\
\x20Currently,\x20policies\x20can\x20only\x20have\x20a\x20single\x20scop\
e.\n\x20Format:\x20list\x20of\x20`folders/{folder_number}`\x20or\x20`pro\
jects/{project_number}`\n\n\x0c\n\x05\x04\0\x02\x03\x04\x12\x03C\x02\n\n\
\x0c\n\x05\x04\0\x02\x03\x05\x12\x03C\x0b\x11\n\x0c\n\x05\x04\0\x02\x03\
\x01\x12\x03C\x12\x18\n\x0c\n\x05\x04\0\x02\x03\x03\x12\x03C\x1b\x1c\nG\
\n\x04\x04\0\x02\x04\x12\x03F\x02,\x1a:\x20Output\x20only.\x20Time\x20th\
e\x20`AccessPolicy`\x20was\x20created\x20in\x20UTC.\n\n\x0c\n\x05\x04\0\
\x02\x04\x06\x12\x03F\x02\x1b\n\x0c\n\x05\x04\0\x02\x04\x01\x12\x03F\x1c\
'\n\x0c\n\x05\x04\0\x02\x04\x03\x12\x03F*+\nG\n\x04\x04\0\x02\x05\x12\
\x03I\x02,\x1a:\x20Output\x20only.\x20Time\x20the\x20`AccessPolicy`\x20w\
as\x20updated\x20in\x20UTC.\n\n\x0c\n\x05\x04\0\x02\x05\x06\x12\x03I\x02\
\x1b\n\x0c\n\x05\x04\0\x02\x05\x01\x12\x03I\x1c'\n\x0c\n\x05\x04\0\x02\
\x05\x03\x12\x03I*+\n\xab\x02\n\x04\x04\0\x02\x06\x12\x03O\x02\x12\x1a\
\x9d\x02\x20Output\x20only.\x20An\x20opaque\x20identifier\x20for\x20the\
\x20current\x20version\x20of\x20the\n\x20`AccessPolicy`.\x20This\x20will\
\x20always\x20be\x20a\x20strongly\x20validated\x20etag,\x20meaning\x20th\
at\n\x20two\x20Access\x20Polices\x20will\x20be\x20identical\x20if\x20and\
\x20only\x20if\x20their\x20etags\x20are\n\x20identical.\x20Clients\x20sh\
ould\x20not\x20expect\x20this\x20to\x20be\x20in\x20any\x20specific\x20fo\
rmat.\n\n\x0c\n\x05\x04\0\x02\x06\x05\x12\x03O\x02\x08\n\x0c\n\x05\x04\0\
\x02\x06\x01\x12\x03O\t\r\n\x0c\n\x05\x04\0\x02\x06\x03\x12\x03O\x10\x11\
b\x06proto3\
";
static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;
fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
::protobuf::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
}
pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
file_descriptor_proto_lazy.get(|| {
parse_descriptor_proto()
})
}