tensorflow-serving-client 2.3.0

A prebuilt tensorflow serving client from the tensorflow serving proto files
Documentation
// This file is generated by rust-protobuf 2.14.0. Do not edit
// @generated

// https://github.com/rust-lang/rust-clippy/issues/702
#![allow(unknown_lints)]
#![allow(clippy::all)]

#![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(unsafe_code)]
#![allow(unused_imports)]
#![allow(unused_results)]
//! Generated file from `tensorflow_serving/sources/storage_path/file_system_storage_path_source.proto`

use protobuf::Message as Message_imported_for_functions;
use protobuf::ProtobufEnum as ProtobufEnum_imported_for_functions;

/// Generated files are compatible only with the same version
/// of protobuf runtime.
// const _PROTOBUF_VERSION_CHECK: () = ::protobuf::VERSION_2_14_0;

#[derive(PartialEq,Clone,Default)]
pub struct FileSystemStoragePathSourceConfig {
    // message fields
    pub servables: ::protobuf::RepeatedField<FileSystemStoragePathSourceConfig_ServableToMonitor>,
    pub servable_name: ::std::string::String,
    pub base_path: ::std::string::String,
    pub file_system_poll_wait_seconds: i64,
    pub fail_if_zero_versions_at_startup: bool,
    pub servable_versions_always_present: bool,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a FileSystemStoragePathSourceConfig {
    fn default() -> &'a FileSystemStoragePathSourceConfig {
        <FileSystemStoragePathSourceConfig as ::protobuf::Message>::default_instance()
    }
}

impl FileSystemStoragePathSourceConfig {
    pub fn new() -> FileSystemStoragePathSourceConfig {
        ::std::default::Default::default()
    }

    // repeated .tensorflow.serving.FileSystemStoragePathSourceConfig.ServableToMonitor servables = 5;


    pub fn get_servables(&self) -> &[FileSystemStoragePathSourceConfig_ServableToMonitor] {
        &self.servables
    }
    pub fn clear_servables(&mut self) {
        self.servables.clear();
    }

    // Param is passed by value, moved
    pub fn set_servables(&mut self, v: ::protobuf::RepeatedField<FileSystemStoragePathSourceConfig_ServableToMonitor>) {
        self.servables = v;
    }

    // Mutable pointer to the field.
    pub fn mut_servables(&mut self) -> &mut ::protobuf::RepeatedField<FileSystemStoragePathSourceConfig_ServableToMonitor> {
        &mut self.servables
    }

    // Take field
    pub fn take_servables(&mut self) -> ::protobuf::RepeatedField<FileSystemStoragePathSourceConfig_ServableToMonitor> {
        ::std::mem::replace(&mut self.servables, ::protobuf::RepeatedField::new())
    }

    // string servable_name = 1;


    pub fn get_servable_name(&self) -> &str {
        &self.servable_name
    }
    pub fn clear_servable_name(&mut self) {
        self.servable_name.clear();
    }

    // Param is passed by value, moved
    pub fn set_servable_name(&mut self, v: ::std::string::String) {
        self.servable_name = v;
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_servable_name(&mut self) -> &mut ::std::string::String {
        &mut self.servable_name
    }

    // Take field
    pub fn take_servable_name(&mut self) -> ::std::string::String {
        ::std::mem::replace(&mut self.servable_name, ::std::string::String::new())
    }

    // string base_path = 2;


    pub fn get_base_path(&self) -> &str {
        &self.base_path
    }
    pub fn clear_base_path(&mut self) {
        self.base_path.clear();
    }

    // Param is passed by value, moved
    pub fn set_base_path(&mut self, v: ::std::string::String) {
        self.base_path = v;
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_base_path(&mut self) -> &mut ::std::string::String {
        &mut self.base_path
    }

    // Take field
    pub fn take_base_path(&mut self) -> ::std::string::String {
        ::std::mem::replace(&mut self.base_path, ::std::string::String::new())
    }

    // int64 file_system_poll_wait_seconds = 3;


    pub fn get_file_system_poll_wait_seconds(&self) -> i64 {
        self.file_system_poll_wait_seconds
    }
    pub fn clear_file_system_poll_wait_seconds(&mut self) {
        self.file_system_poll_wait_seconds = 0;
    }

    // Param is passed by value, moved
    pub fn set_file_system_poll_wait_seconds(&mut self, v: i64) {
        self.file_system_poll_wait_seconds = v;
    }

    // bool fail_if_zero_versions_at_startup = 4;


    pub fn get_fail_if_zero_versions_at_startup(&self) -> bool {
        self.fail_if_zero_versions_at_startup
    }
    pub fn clear_fail_if_zero_versions_at_startup(&mut self) {
        self.fail_if_zero_versions_at_startup = false;
    }

    // Param is passed by value, moved
    pub fn set_fail_if_zero_versions_at_startup(&mut self, v: bool) {
        self.fail_if_zero_versions_at_startup = v;
    }

    // bool servable_versions_always_present = 6;


    pub fn get_servable_versions_always_present(&self) -> bool {
        self.servable_versions_always_present
    }
    pub fn clear_servable_versions_always_present(&mut self) {
        self.servable_versions_always_present = false;
    }

    // Param is passed by value, moved
    pub fn set_servable_versions_always_present(&mut self, v: bool) {
        self.servable_versions_always_present = v;
    }
}

impl ::protobuf::Message for FileSystemStoragePathSourceConfig {
    fn is_initialized(&self) -> bool {
        for v in &self.servables {
            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 {
                5 => {
                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.servables)?;
                },
                1 => {
                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.servable_name)?;
                },
                2 => {
                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.base_path)?;
                },
                3 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_int64()?;
                    self.file_system_poll_wait_seconds = tmp;
                },
                4 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.fail_if_zero_versions_at_startup = tmp;
                },
                6 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.servable_versions_always_present = tmp;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        for value in &self.servables {
            let len = value.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        };
        if !self.servable_name.is_empty() {
            my_size += ::protobuf::rt::string_size(1, &self.servable_name);
        }
        if !self.base_path.is_empty() {
            my_size += ::protobuf::rt::string_size(2, &self.base_path);
        }
        if self.file_system_poll_wait_seconds != 0 {
            my_size += ::protobuf::rt::value_size(3, self.file_system_poll_wait_seconds, ::protobuf::wire_format::WireTypeVarint);
        }
        if self.fail_if_zero_versions_at_startup != false {
            my_size += 2;
        }
        if self.servable_versions_always_present != false {
            my_size += 2;
        }
        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<()> {
        for v in &self.servables {
            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.servable_name.is_empty() {
            os.write_string(1, &self.servable_name)?;
        }
        if !self.base_path.is_empty() {
            os.write_string(2, &self.base_path)?;
        }
        if self.file_system_poll_wait_seconds != 0 {
            os.write_int64(3, self.file_system_poll_wait_seconds)?;
        }
        if self.fail_if_zero_versions_at_startup != false {
            os.write_bool(4, self.fail_if_zero_versions_at_startup)?;
        }
        if self.servable_versions_always_present != false {
            os.write_bool(6, self.servable_versions_always_present)?;
        }
        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: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> FileSystemStoragePathSourceConfig {
        FileSystemStoragePathSourceConfig::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
        unsafe {
            descriptor.get(|| {
                let mut fields = ::std::vec::Vec::new();
                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<FileSystemStoragePathSourceConfig_ServableToMonitor>>(
                    "servables",
                    |m: &FileSystemStoragePathSourceConfig| { &m.servables },
                    |m: &mut FileSystemStoragePathSourceConfig| { &mut m.servables },
                ));
                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                    "servable_name",
                    |m: &FileSystemStoragePathSourceConfig| { &m.servable_name },
                    |m: &mut FileSystemStoragePathSourceConfig| { &mut m.servable_name },
                ));
                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                    "base_path",
                    |m: &FileSystemStoragePathSourceConfig| { &m.base_path },
                    |m: &mut FileSystemStoragePathSourceConfig| { &mut m.base_path },
                ));
                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
                    "file_system_poll_wait_seconds",
                    |m: &FileSystemStoragePathSourceConfig| { &m.file_system_poll_wait_seconds },
                    |m: &mut FileSystemStoragePathSourceConfig| { &mut m.file_system_poll_wait_seconds },
                ));
                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                    "fail_if_zero_versions_at_startup",
                    |m: &FileSystemStoragePathSourceConfig| { &m.fail_if_zero_versions_at_startup },
                    |m: &mut FileSystemStoragePathSourceConfig| { &mut m.fail_if_zero_versions_at_startup },
                ));
                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                    "servable_versions_always_present",
                    |m: &FileSystemStoragePathSourceConfig| { &m.servable_versions_always_present },
                    |m: &mut FileSystemStoragePathSourceConfig| { &mut m.servable_versions_always_present },
                ));
                ::protobuf::reflect::MessageDescriptor::new_pb_name::<FileSystemStoragePathSourceConfig>(
                    "FileSystemStoragePathSourceConfig",
                    fields,
                    file_descriptor_proto()
                )
            })
        }
    }

    fn default_instance() -> &'static FileSystemStoragePathSourceConfig {
        static mut instance: ::protobuf::lazy::Lazy<FileSystemStoragePathSourceConfig> = ::protobuf::lazy::Lazy::INIT;
        unsafe {
            instance.get(FileSystemStoragePathSourceConfig::new)
        }
    }
}

impl ::protobuf::Clear for FileSystemStoragePathSourceConfig {
    fn clear(&mut self) {
        self.servables.clear();
        self.servable_name.clear();
        self.base_path.clear();
        self.file_system_poll_wait_seconds = 0;
        self.fail_if_zero_versions_at_startup = false;
        self.servable_versions_always_present = false;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for FileSystemStoragePathSourceConfig {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for FileSystemStoragePathSourceConfig {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct FileSystemStoragePathSourceConfig_ServableVersionPolicy {
    // message oneof groups
    pub policy_choice: ::std::option::Option<FileSystemStoragePathSourceConfig_ServableVersionPolicy_oneof_policy_choice>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a FileSystemStoragePathSourceConfig_ServableVersionPolicy {
    fn default() -> &'a FileSystemStoragePathSourceConfig_ServableVersionPolicy {
        <FileSystemStoragePathSourceConfig_ServableVersionPolicy as ::protobuf::Message>::default_instance()
    }
}

#[derive(Clone,PartialEq,Debug)]
pub enum FileSystemStoragePathSourceConfig_ServableVersionPolicy_oneof_policy_choice {
    latest(FileSystemStoragePathSourceConfig_ServableVersionPolicy_Latest),
    all(FileSystemStoragePathSourceConfig_ServableVersionPolicy_All),
    specific(FileSystemStoragePathSourceConfig_ServableVersionPolicy_Specific),
}

impl FileSystemStoragePathSourceConfig_ServableVersionPolicy {
    pub fn new() -> FileSystemStoragePathSourceConfig_ServableVersionPolicy {
        ::std::default::Default::default()
    }

    // .tensorflow.serving.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest latest = 100;


    pub fn get_latest(&self) -> &FileSystemStoragePathSourceConfig_ServableVersionPolicy_Latest {
        match self.policy_choice {
            ::std::option::Option::Some(FileSystemStoragePathSourceConfig_ServableVersionPolicy_oneof_policy_choice::latest(ref v)) => v,
            _ => FileSystemStoragePathSourceConfig_ServableVersionPolicy_Latest::default_instance(),
        }
    }
    pub fn clear_latest(&mut self) {
        self.policy_choice = ::std::option::Option::None;
    }

    pub fn has_latest(&self) -> bool {
        match self.policy_choice {
            ::std::option::Option::Some(FileSystemStoragePathSourceConfig_ServableVersionPolicy_oneof_policy_choice::latest(..)) => true,
            _ => false,
        }
    }

    // Param is passed by value, moved
    pub fn set_latest(&mut self, v: FileSystemStoragePathSourceConfig_ServableVersionPolicy_Latest) {
        self.policy_choice = ::std::option::Option::Some(FileSystemStoragePathSourceConfig_ServableVersionPolicy_oneof_policy_choice::latest(v))
    }

    // Mutable pointer to the field.
    pub fn mut_latest(&mut self) -> &mut FileSystemStoragePathSourceConfig_ServableVersionPolicy_Latest {
        if let ::std::option::Option::Some(FileSystemStoragePathSourceConfig_ServableVersionPolicy_oneof_policy_choice::latest(_)) = self.policy_choice {
        } else {
            self.policy_choice = ::std::option::Option::Some(FileSystemStoragePathSourceConfig_ServableVersionPolicy_oneof_policy_choice::latest(FileSystemStoragePathSourceConfig_ServableVersionPolicy_Latest::new()));
        }
        match self.policy_choice {
            ::std::option::Option::Some(FileSystemStoragePathSourceConfig_ServableVersionPolicy_oneof_policy_choice::latest(ref mut v)) => v,
            _ => panic!(),
        }
    }

    // Take field
    pub fn take_latest(&mut self) -> FileSystemStoragePathSourceConfig_ServableVersionPolicy_Latest {
        if self.has_latest() {
            match self.policy_choice.take() {
                ::std::option::Option::Some(FileSystemStoragePathSourceConfig_ServableVersionPolicy_oneof_policy_choice::latest(v)) => v,
                _ => panic!(),
            }
        } else {
            FileSystemStoragePathSourceConfig_ServableVersionPolicy_Latest::new()
        }
    }

    // .tensorflow.serving.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All all = 101;


    pub fn get_all(&self) -> &FileSystemStoragePathSourceConfig_ServableVersionPolicy_All {
        match self.policy_choice {
            ::std::option::Option::Some(FileSystemStoragePathSourceConfig_ServableVersionPolicy_oneof_policy_choice::all(ref v)) => v,
            _ => FileSystemStoragePathSourceConfig_ServableVersionPolicy_All::default_instance(),
        }
    }
    pub fn clear_all(&mut self) {
        self.policy_choice = ::std::option::Option::None;
    }

    pub fn has_all(&self) -> bool {
        match self.policy_choice {
            ::std::option::Option::Some(FileSystemStoragePathSourceConfig_ServableVersionPolicy_oneof_policy_choice::all(..)) => true,
            _ => false,
        }
    }

    // Param is passed by value, moved
    pub fn set_all(&mut self, v: FileSystemStoragePathSourceConfig_ServableVersionPolicy_All) {
        self.policy_choice = ::std::option::Option::Some(FileSystemStoragePathSourceConfig_ServableVersionPolicy_oneof_policy_choice::all(v))
    }

    // Mutable pointer to the field.
    pub fn mut_all(&mut self) -> &mut FileSystemStoragePathSourceConfig_ServableVersionPolicy_All {
        if let ::std::option::Option::Some(FileSystemStoragePathSourceConfig_ServableVersionPolicy_oneof_policy_choice::all(_)) = self.policy_choice {
        } else {
            self.policy_choice = ::std::option::Option::Some(FileSystemStoragePathSourceConfig_ServableVersionPolicy_oneof_policy_choice::all(FileSystemStoragePathSourceConfig_ServableVersionPolicy_All::new()));
        }
        match self.policy_choice {
            ::std::option::Option::Some(FileSystemStoragePathSourceConfig_ServableVersionPolicy_oneof_policy_choice::all(ref mut v)) => v,
            _ => panic!(),
        }
    }

    // Take field
    pub fn take_all(&mut self) -> FileSystemStoragePathSourceConfig_ServableVersionPolicy_All {
        if self.has_all() {
            match self.policy_choice.take() {
                ::std::option::Option::Some(FileSystemStoragePathSourceConfig_ServableVersionPolicy_oneof_policy_choice::all(v)) => v,
                _ => panic!(),
            }
        } else {
            FileSystemStoragePathSourceConfig_ServableVersionPolicy_All::new()
        }
    }

    // .tensorflow.serving.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific specific = 102;


    pub fn get_specific(&self) -> &FileSystemStoragePathSourceConfig_ServableVersionPolicy_Specific {
        match self.policy_choice {
            ::std::option::Option::Some(FileSystemStoragePathSourceConfig_ServableVersionPolicy_oneof_policy_choice::specific(ref v)) => v,
            _ => FileSystemStoragePathSourceConfig_ServableVersionPolicy_Specific::default_instance(),
        }
    }
    pub fn clear_specific(&mut self) {
        self.policy_choice = ::std::option::Option::None;
    }

    pub fn has_specific(&self) -> bool {
        match self.policy_choice {
            ::std::option::Option::Some(FileSystemStoragePathSourceConfig_ServableVersionPolicy_oneof_policy_choice::specific(..)) => true,
            _ => false,
        }
    }

    // Param is passed by value, moved
    pub fn set_specific(&mut self, v: FileSystemStoragePathSourceConfig_ServableVersionPolicy_Specific) {
        self.policy_choice = ::std::option::Option::Some(FileSystemStoragePathSourceConfig_ServableVersionPolicy_oneof_policy_choice::specific(v))
    }

    // Mutable pointer to the field.
    pub fn mut_specific(&mut self) -> &mut FileSystemStoragePathSourceConfig_ServableVersionPolicy_Specific {
        if let ::std::option::Option::Some(FileSystemStoragePathSourceConfig_ServableVersionPolicy_oneof_policy_choice::specific(_)) = self.policy_choice {
        } else {
            self.policy_choice = ::std::option::Option::Some(FileSystemStoragePathSourceConfig_ServableVersionPolicy_oneof_policy_choice::specific(FileSystemStoragePathSourceConfig_ServableVersionPolicy_Specific::new()));
        }
        match self.policy_choice {
            ::std::option::Option::Some(FileSystemStoragePathSourceConfig_ServableVersionPolicy_oneof_policy_choice::specific(ref mut v)) => v,
            _ => panic!(),
        }
    }

    // Take field
    pub fn take_specific(&mut self) -> FileSystemStoragePathSourceConfig_ServableVersionPolicy_Specific {
        if self.has_specific() {
            match self.policy_choice.take() {
                ::std::option::Option::Some(FileSystemStoragePathSourceConfig_ServableVersionPolicy_oneof_policy_choice::specific(v)) => v,
                _ => panic!(),
            }
        } else {
            FileSystemStoragePathSourceConfig_ServableVersionPolicy_Specific::new()
        }
    }
}

impl ::protobuf::Message for FileSystemStoragePathSourceConfig_ServableVersionPolicy {
    fn is_initialized(&self) -> bool {
        if let Some(FileSystemStoragePathSourceConfig_ServableVersionPolicy_oneof_policy_choice::latest(ref v)) = self.policy_choice {
            if !v.is_initialized() {
                return false;
            }
        }
        if let Some(FileSystemStoragePathSourceConfig_ServableVersionPolicy_oneof_policy_choice::all(ref v)) = self.policy_choice {
            if !v.is_initialized() {
                return false;
            }
        }
        if let Some(FileSystemStoragePathSourceConfig_ServableVersionPolicy_oneof_policy_choice::specific(ref v)) = self.policy_choice {
            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 {
                100 => {
                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    self.policy_choice = ::std::option::Option::Some(FileSystemStoragePathSourceConfig_ServableVersionPolicy_oneof_policy_choice::latest(is.read_message()?));
                },
                101 => {
                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    self.policy_choice = ::std::option::Option::Some(FileSystemStoragePathSourceConfig_ServableVersionPolicy_oneof_policy_choice::all(is.read_message()?));
                },
                102 => {
                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    self.policy_choice = ::std::option::Option::Some(FileSystemStoragePathSourceConfig_ServableVersionPolicy_oneof_policy_choice::specific(is.read_message()?));
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let ::std::option::Option::Some(ref v) = self.policy_choice {
            match v {
                &FileSystemStoragePathSourceConfig_ServableVersionPolicy_oneof_policy_choice::latest(ref v) => {
                    let len = v.compute_size();
                    my_size += 2 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
                },
                &FileSystemStoragePathSourceConfig_ServableVersionPolicy_oneof_policy_choice::all(ref v) => {
                    let len = v.compute_size();
                    my_size += 2 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
                },
                &FileSystemStoragePathSourceConfig_ServableVersionPolicy_oneof_policy_choice::specific(ref v) => {
                    let len = v.compute_size();
                    my_size += 2 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
                },
            };
        }
        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 let ::std::option::Option::Some(ref v) = self.policy_choice {
            match v {
                &FileSystemStoragePathSourceConfig_ServableVersionPolicy_oneof_policy_choice::latest(ref v) => {
                    os.write_tag(100, ::protobuf::wire_format::WireTypeLengthDelimited)?;
                    os.write_raw_varint32(v.get_cached_size())?;
                    v.write_to_with_cached_sizes(os)?;
                },
                &FileSystemStoragePathSourceConfig_ServableVersionPolicy_oneof_policy_choice::all(ref v) => {
                    os.write_tag(101, ::protobuf::wire_format::WireTypeLengthDelimited)?;
                    os.write_raw_varint32(v.get_cached_size())?;
                    v.write_to_with_cached_sizes(os)?;
                },
                &FileSystemStoragePathSourceConfig_ServableVersionPolicy_oneof_policy_choice::specific(ref v) => {
                    os.write_tag(102, ::protobuf::wire_format::WireTypeLengthDelimited)?;
                    os.write_raw_varint32(v.get_cached_size())?;
                    v.write_to_with_cached_sizes(os)?;
                },
            };
        }
        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: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> FileSystemStoragePathSourceConfig_ServableVersionPolicy {
        FileSystemStoragePathSourceConfig_ServableVersionPolicy::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
        unsafe {
            descriptor.get(|| {
                let mut fields = ::std::vec::Vec::new();
                fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, FileSystemStoragePathSourceConfig_ServableVersionPolicy_Latest>(
                    "latest",
                    FileSystemStoragePathSourceConfig_ServableVersionPolicy::has_latest,
                    FileSystemStoragePathSourceConfig_ServableVersionPolicy::get_latest,
                ));
                fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, FileSystemStoragePathSourceConfig_ServableVersionPolicy_All>(
                    "all",
                    FileSystemStoragePathSourceConfig_ServableVersionPolicy::has_all,
                    FileSystemStoragePathSourceConfig_ServableVersionPolicy::get_all,
                ));
                fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, FileSystemStoragePathSourceConfig_ServableVersionPolicy_Specific>(
                    "specific",
                    FileSystemStoragePathSourceConfig_ServableVersionPolicy::has_specific,
                    FileSystemStoragePathSourceConfig_ServableVersionPolicy::get_specific,
                ));
                ::protobuf::reflect::MessageDescriptor::new_pb_name::<FileSystemStoragePathSourceConfig_ServableVersionPolicy>(
                    "FileSystemStoragePathSourceConfig.ServableVersionPolicy",
                    fields,
                    file_descriptor_proto()
                )
            })
        }
    }

    fn default_instance() -> &'static FileSystemStoragePathSourceConfig_ServableVersionPolicy {
        static mut instance: ::protobuf::lazy::Lazy<FileSystemStoragePathSourceConfig_ServableVersionPolicy> = ::protobuf::lazy::Lazy::INIT;
        unsafe {
            instance.get(FileSystemStoragePathSourceConfig_ServableVersionPolicy::new)
        }
    }
}

impl ::protobuf::Clear for FileSystemStoragePathSourceConfig_ServableVersionPolicy {
    fn clear(&mut self) {
        self.policy_choice = ::std::option::Option::None;
        self.policy_choice = ::std::option::Option::None;
        self.policy_choice = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for FileSystemStoragePathSourceConfig_ServableVersionPolicy {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for FileSystemStoragePathSourceConfig_ServableVersionPolicy {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct FileSystemStoragePathSourceConfig_ServableVersionPolicy_Latest {
    // message fields
    pub num_versions: u32,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a FileSystemStoragePathSourceConfig_ServableVersionPolicy_Latest {
    fn default() -> &'a FileSystemStoragePathSourceConfig_ServableVersionPolicy_Latest {
        <FileSystemStoragePathSourceConfig_ServableVersionPolicy_Latest as ::protobuf::Message>::default_instance()
    }
}

impl FileSystemStoragePathSourceConfig_ServableVersionPolicy_Latest {
    pub fn new() -> FileSystemStoragePathSourceConfig_ServableVersionPolicy_Latest {
        ::std::default::Default::default()
    }

    // uint32 num_versions = 1;


    pub fn get_num_versions(&self) -> u32 {
        self.num_versions
    }
    pub fn clear_num_versions(&mut self) {
        self.num_versions = 0;
    }

    // Param is passed by value, moved
    pub fn set_num_versions(&mut self, v: u32) {
        self.num_versions = v;
    }
}

impl ::protobuf::Message for FileSystemStoragePathSourceConfig_ServableVersionPolicy_Latest {
    fn is_initialized(&self) -> bool {
        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 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.num_versions = tmp;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if self.num_versions != 0 {
            my_size += ::protobuf::rt::value_size(1, self.num_versions, ::protobuf::wire_format::WireTypeVarint);
        }
        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.num_versions != 0 {
            os.write_uint32(1, self.num_versions)?;
        }
        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: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> FileSystemStoragePathSourceConfig_ServableVersionPolicy_Latest {
        FileSystemStoragePathSourceConfig_ServableVersionPolicy_Latest::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
        unsafe {
            descriptor.get(|| {
                let mut fields = ::std::vec::Vec::new();
                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                    "num_versions",
                    |m: &FileSystemStoragePathSourceConfig_ServableVersionPolicy_Latest| { &m.num_versions },
                    |m: &mut FileSystemStoragePathSourceConfig_ServableVersionPolicy_Latest| { &mut m.num_versions },
                ));
                ::protobuf::reflect::MessageDescriptor::new_pb_name::<FileSystemStoragePathSourceConfig_ServableVersionPolicy_Latest>(
                    "FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest",
                    fields,
                    file_descriptor_proto()
                )
            })
        }
    }

    fn default_instance() -> &'static FileSystemStoragePathSourceConfig_ServableVersionPolicy_Latest {
        static mut instance: ::protobuf::lazy::Lazy<FileSystemStoragePathSourceConfig_ServableVersionPolicy_Latest> = ::protobuf::lazy::Lazy::INIT;
        unsafe {
            instance.get(FileSystemStoragePathSourceConfig_ServableVersionPolicy_Latest::new)
        }
    }
}

impl ::protobuf::Clear for FileSystemStoragePathSourceConfig_ServableVersionPolicy_Latest {
    fn clear(&mut self) {
        self.num_versions = 0;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for FileSystemStoragePathSourceConfig_ServableVersionPolicy_Latest {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for FileSystemStoragePathSourceConfig_ServableVersionPolicy_Latest {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct FileSystemStoragePathSourceConfig_ServableVersionPolicy_All {
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a FileSystemStoragePathSourceConfig_ServableVersionPolicy_All {
    fn default() -> &'a FileSystemStoragePathSourceConfig_ServableVersionPolicy_All {
        <FileSystemStoragePathSourceConfig_ServableVersionPolicy_All as ::protobuf::Message>::default_instance()
    }
}

impl FileSystemStoragePathSourceConfig_ServableVersionPolicy_All {
    pub fn new() -> FileSystemStoragePathSourceConfig_ServableVersionPolicy_All {
        ::std::default::Default::default()
    }
}

impl ::protobuf::Message for FileSystemStoragePathSourceConfig_ServableVersionPolicy_All {
    fn is_initialized(&self) -> bool {
        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 {
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        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<()> {
        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: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> FileSystemStoragePathSourceConfig_ServableVersionPolicy_All {
        FileSystemStoragePathSourceConfig_ServableVersionPolicy_All::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
        unsafe {
            descriptor.get(|| {
                let fields = ::std::vec::Vec::new();
                ::protobuf::reflect::MessageDescriptor::new_pb_name::<FileSystemStoragePathSourceConfig_ServableVersionPolicy_All>(
                    "FileSystemStoragePathSourceConfig.ServableVersionPolicy.All",
                    fields,
                    file_descriptor_proto()
                )
            })
        }
    }

    fn default_instance() -> &'static FileSystemStoragePathSourceConfig_ServableVersionPolicy_All {
        static mut instance: ::protobuf::lazy::Lazy<FileSystemStoragePathSourceConfig_ServableVersionPolicy_All> = ::protobuf::lazy::Lazy::INIT;
        unsafe {
            instance.get(FileSystemStoragePathSourceConfig_ServableVersionPolicy_All::new)
        }
    }
}

impl ::protobuf::Clear for FileSystemStoragePathSourceConfig_ServableVersionPolicy_All {
    fn clear(&mut self) {
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for FileSystemStoragePathSourceConfig_ServableVersionPolicy_All {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for FileSystemStoragePathSourceConfig_ServableVersionPolicy_All {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct FileSystemStoragePathSourceConfig_ServableVersionPolicy_Specific {
    // message fields
    pub versions: ::std::vec::Vec<i64>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a FileSystemStoragePathSourceConfig_ServableVersionPolicy_Specific {
    fn default() -> &'a FileSystemStoragePathSourceConfig_ServableVersionPolicy_Specific {
        <FileSystemStoragePathSourceConfig_ServableVersionPolicy_Specific as ::protobuf::Message>::default_instance()
    }
}

impl FileSystemStoragePathSourceConfig_ServableVersionPolicy_Specific {
    pub fn new() -> FileSystemStoragePathSourceConfig_ServableVersionPolicy_Specific {
        ::std::default::Default::default()
    }

    // repeated int64 versions = 1;


    pub fn get_versions(&self) -> &[i64] {
        &self.versions
    }
    pub fn clear_versions(&mut self) {
        self.versions.clear();
    }

    // Param is passed by value, moved
    pub fn set_versions(&mut self, v: ::std::vec::Vec<i64>) {
        self.versions = v;
    }

    // Mutable pointer to the field.
    pub fn mut_versions(&mut self) -> &mut ::std::vec::Vec<i64> {
        &mut self.versions
    }

    // Take field
    pub fn take_versions(&mut self) -> ::std::vec::Vec<i64> {
        ::std::mem::replace(&mut self.versions, ::std::vec::Vec::new())
    }
}

impl ::protobuf::Message for FileSystemStoragePathSourceConfig_ServableVersionPolicy_Specific {
    fn is_initialized(&self) -> bool {
        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_repeated_int64_into(wire_type, is, &mut self.versions)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        for value in &self.versions {
            my_size += ::protobuf::rt::value_size(1, *value, ::protobuf::wire_format::WireTypeVarint);
        };
        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<()> {
        for v in &self.versions {
            os.write_int64(1, *v)?;
        };
        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: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> FileSystemStoragePathSourceConfig_ServableVersionPolicy_Specific {
        FileSystemStoragePathSourceConfig_ServableVersionPolicy_Specific::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
        unsafe {
            descriptor.get(|| {
                let mut fields = ::std::vec::Vec::new();
                fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
                    "versions",
                    |m: &FileSystemStoragePathSourceConfig_ServableVersionPolicy_Specific| { &m.versions },
                    |m: &mut FileSystemStoragePathSourceConfig_ServableVersionPolicy_Specific| { &mut m.versions },
                ));
                ::protobuf::reflect::MessageDescriptor::new_pb_name::<FileSystemStoragePathSourceConfig_ServableVersionPolicy_Specific>(
                    "FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific",
                    fields,
                    file_descriptor_proto()
                )
            })
        }
    }

    fn default_instance() -> &'static FileSystemStoragePathSourceConfig_ServableVersionPolicy_Specific {
        static mut instance: ::protobuf::lazy::Lazy<FileSystemStoragePathSourceConfig_ServableVersionPolicy_Specific> = ::protobuf::lazy::Lazy::INIT;
        unsafe {
            instance.get(FileSystemStoragePathSourceConfig_ServableVersionPolicy_Specific::new)
        }
    }
}

impl ::protobuf::Clear for FileSystemStoragePathSourceConfig_ServableVersionPolicy_Specific {
    fn clear(&mut self) {
        self.versions.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for FileSystemStoragePathSourceConfig_ServableVersionPolicy_Specific {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for FileSystemStoragePathSourceConfig_ServableVersionPolicy_Specific {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct FileSystemStoragePathSourceConfig_ServableToMonitor {
    // message fields
    pub servable_name: ::std::string::String,
    pub base_path: ::std::string::String,
    pub servable_version_policy: ::protobuf::SingularPtrField<FileSystemStoragePathSourceConfig_ServableVersionPolicy>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a FileSystemStoragePathSourceConfig_ServableToMonitor {
    fn default() -> &'a FileSystemStoragePathSourceConfig_ServableToMonitor {
        <FileSystemStoragePathSourceConfig_ServableToMonitor as ::protobuf::Message>::default_instance()
    }
}

impl FileSystemStoragePathSourceConfig_ServableToMonitor {
    pub fn new() -> FileSystemStoragePathSourceConfig_ServableToMonitor {
        ::std::default::Default::default()
    }

    // string servable_name = 1;


    pub fn get_servable_name(&self) -> &str {
        &self.servable_name
    }
    pub fn clear_servable_name(&mut self) {
        self.servable_name.clear();
    }

    // Param is passed by value, moved
    pub fn set_servable_name(&mut self, v: ::std::string::String) {
        self.servable_name = v;
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_servable_name(&mut self) -> &mut ::std::string::String {
        &mut self.servable_name
    }

    // Take field
    pub fn take_servable_name(&mut self) -> ::std::string::String {
        ::std::mem::replace(&mut self.servable_name, ::std::string::String::new())
    }

    // string base_path = 2;


    pub fn get_base_path(&self) -> &str {
        &self.base_path
    }
    pub fn clear_base_path(&mut self) {
        self.base_path.clear();
    }

    // Param is passed by value, moved
    pub fn set_base_path(&mut self, v: ::std::string::String) {
        self.base_path = v;
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_base_path(&mut self) -> &mut ::std::string::String {
        &mut self.base_path
    }

    // Take field
    pub fn take_base_path(&mut self) -> ::std::string::String {
        ::std::mem::replace(&mut self.base_path, ::std::string::String::new())
    }

    // .tensorflow.serving.FileSystemStoragePathSourceConfig.ServableVersionPolicy servable_version_policy = 4;


    pub fn get_servable_version_policy(&self) -> &FileSystemStoragePathSourceConfig_ServableVersionPolicy {
        self.servable_version_policy.as_ref().unwrap_or_else(|| FileSystemStoragePathSourceConfig_ServableVersionPolicy::default_instance())
    }
    pub fn clear_servable_version_policy(&mut self) {
        self.servable_version_policy.clear();
    }

    pub fn has_servable_version_policy(&self) -> bool {
        self.servable_version_policy.is_some()
    }

    // Param is passed by value, moved
    pub fn set_servable_version_policy(&mut self, v: FileSystemStoragePathSourceConfig_ServableVersionPolicy) {
        self.servable_version_policy = ::protobuf::SingularPtrField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_servable_version_policy(&mut self) -> &mut FileSystemStoragePathSourceConfig_ServableVersionPolicy {
        if self.servable_version_policy.is_none() {
            self.servable_version_policy.set_default();
        }
        self.servable_version_policy.as_mut().unwrap()
    }

    // Take field
    pub fn take_servable_version_policy(&mut self) -> FileSystemStoragePathSourceConfig_ServableVersionPolicy {
        self.servable_version_policy.take().unwrap_or_else(|| FileSystemStoragePathSourceConfig_ServableVersionPolicy::new())
    }
}

impl ::protobuf::Message for FileSystemStoragePathSourceConfig_ServableToMonitor {
    fn is_initialized(&self) -> bool {
        for v in &self.servable_version_policy {
            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.servable_name)?;
                },
                2 => {
                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.base_path)?;
                },
                4 => {
                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.servable_version_policy)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if !self.servable_name.is_empty() {
            my_size += ::protobuf::rt::string_size(1, &self.servable_name);
        }
        if !self.base_path.is_empty() {
            my_size += ::protobuf::rt::string_size(2, &self.base_path);
        }
        if let Some(ref v) = self.servable_version_policy.as_ref() {
            let len = v.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        }
        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.servable_name.is_empty() {
            os.write_string(1, &self.servable_name)?;
        }
        if !self.base_path.is_empty() {
            os.write_string(2, &self.base_path)?;
        }
        if let Some(ref v) = self.servable_version_policy.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)?;
        }
        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: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> FileSystemStoragePathSourceConfig_ServableToMonitor {
        FileSystemStoragePathSourceConfig_ServableToMonitor::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
        unsafe {
            descriptor.get(|| {
                let mut fields = ::std::vec::Vec::new();
                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                    "servable_name",
                    |m: &FileSystemStoragePathSourceConfig_ServableToMonitor| { &m.servable_name },
                    |m: &mut FileSystemStoragePathSourceConfig_ServableToMonitor| { &mut m.servable_name },
                ));
                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                    "base_path",
                    |m: &FileSystemStoragePathSourceConfig_ServableToMonitor| { &m.base_path },
                    |m: &mut FileSystemStoragePathSourceConfig_ServableToMonitor| { &mut m.base_path },
                ));
                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<FileSystemStoragePathSourceConfig_ServableVersionPolicy>>(
                    "servable_version_policy",
                    |m: &FileSystemStoragePathSourceConfig_ServableToMonitor| { &m.servable_version_policy },
                    |m: &mut FileSystemStoragePathSourceConfig_ServableToMonitor| { &mut m.servable_version_policy },
                ));
                ::protobuf::reflect::MessageDescriptor::new_pb_name::<FileSystemStoragePathSourceConfig_ServableToMonitor>(
                    "FileSystemStoragePathSourceConfig.ServableToMonitor",
                    fields,
                    file_descriptor_proto()
                )
            })
        }
    }

    fn default_instance() -> &'static FileSystemStoragePathSourceConfig_ServableToMonitor {
        static mut instance: ::protobuf::lazy::Lazy<FileSystemStoragePathSourceConfig_ServableToMonitor> = ::protobuf::lazy::Lazy::INIT;
        unsafe {
            instance.get(FileSystemStoragePathSourceConfig_ServableToMonitor::new)
        }
    }
}

impl ::protobuf::Clear for FileSystemStoragePathSourceConfig_ServableToMonitor {
    fn clear(&mut self) {
        self.servable_name.clear();
        self.base_path.clear();
        self.servable_version_policy.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for FileSystemStoragePathSourceConfig_ServableToMonitor {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for FileSystemStoragePathSourceConfig_ServableToMonitor {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

static file_descriptor_proto_data: &'static [u8] = b"\
    \nMtensorflow_serving/sources/storage_path/file_system_storage_path_sour\
    ce.proto\x12\x12tensorflow.serving\"\xdc\x08\n!FileSystemStoragePathSour\
    ceConfig\x12e\n\tservables\x18\x05\x20\x03(\x0b2G.tensorflow.serving.Fil\
    eSystemStoragePathSourceConfig.ServableToMonitorR\tservables\x12'\n\rser\
    vable_name\x18\x01\x20\x01(\tR\x0cservableNameB\x02\x18\x01\x12\x1f\n\tb\
    ase_path\x18\x02\x20\x01(\tR\x08basePathB\x02\x18\x01\x12@\n\x1dfile_sys\
    tem_poll_wait_seconds\x18\x03\x20\x01(\x03R\x19fileSystemPollWaitSeconds\
    \x12I\n\x20fail_if_zero_versions_at_startup\x18\x04\x20\x01(\x08R\x1bfai\
    lIfZeroVersionsAtStartupB\x02\x18\x01\x12G\n\x20servable_versions_always\
    _present\x18\x06\x20\x01(\x08R\x1dservableVersionsAlwaysPresent\x1a\xcb\
    \x03\n\x15ServableVersionPolicy\x12l\n\x06latest\x18d\x20\x01(\x0b2R.ten\
    sorflow.serving.FileSystemStoragePathSourceConfig.ServableVersionPolicy.\
    LatestH\0R\x06latest\x12c\n\x03all\x18e\x20\x01(\x0b2O.tensorflow.servin\
    g.FileSystemStoragePathSourceConfig.ServableVersionPolicy.AllH\0R\x03all\
    \x12r\n\x08specific\x18f\x20\x01(\x0b2T.tensorflow.serving.FileSystemSto\
    ragePathSourceConfig.ServableVersionPolicy.SpecificH\0R\x08specific\x1a+\
    \n\x06Latest\x12!\n\x0cnum_versions\x18\x01\x20\x01(\rR\x0bnumVersions\
    \x1a\x05\n\x03All\x1a&\n\x08Specific\x12\x1a\n\x08versions\x18\x01\x20\
    \x03(\x03R\x08versionsB\x0f\n\rpolicy_choice\x1a\xe1\x01\n\x11ServableTo\
    Monitor\x12#\n\rservable_name\x18\x01\x20\x01(\tR\x0cservableName\x12\
    \x1b\n\tbase_path\x18\x02\x20\x01(\tR\x08basePath\x12\x83\x01\n\x17serva\
    ble_version_policy\x18\x04\x20\x01(\x0b2K.tensorflow.serving.FileSystemS\
    toragePathSourceConfig.ServableVersionPolicyR\x15servableVersionPolicyJ\
    \x04\x08\x03\x10\x04J\xad\x1c\n\x06\x12\x04\0\0W\x01\n\x08\n\x01\x0c\x12\
    \x03\0\0\x12\n\x08\n\x01\x02\x12\x03\x02\0\x1b\n;\n\x02\x04\0\x12\x04\
    \x05\0W\x01\x1a/\x20Config\x20proto\x20for\x20FileSystemStoragePathSourc\
    e.\n\n\n\n\x03\x04\0\x01\x12\x03\x05\x08)\nW\n\x04\x04\0\x03\0\x12\x04\
    \x07\x02$\x03\x1aI\x20A\x20policy\x20that\x20dictates\x20which\x20versio\
    n(s)\x20of\x20a\x20servable\x20should\x20be\x20served.\n\n\x0c\n\x05\x04\
    \0\x03\0\x01\x12\x03\x07\n\x1f\n\xc2\x01\n\x06\x04\0\x03\0\x03\0\x12\x04\
    \x0c\x04\x0f\x05\x1a\xb1\x01\x20Serve\x20the\x20latest\x20versions\x20(i\
    .e.\x20the\x20ones\x20with\x20the\x20highest\x20version\n\x20numbers),\
    \x20among\x20those\x20found\x20on\x20disk.\n\n\x20This\x20is\x20the\x20d\
    efault\x20policy,\x20with\x20the\x20default\x20number\x20of\x20versions\
    \x20as\x201.\n\n\x0e\n\x07\x04\0\x03\0\x03\0\x01\x12\x03\x0c\x0c\x12\nJ\
    \n\x08\x04\0\x03\0\x03\0\x02\0\x12\x03\x0e\x06\x1e\x1a9\x20Number\x20of\
    \x20latest\x20versions\x20to\x20serve.\x20(The\x20default\x20is\x201.)\n\
    \n\x10\n\t\x04\0\x03\0\x03\0\x02\0\x05\x12\x03\x0e\x06\x0c\n\x10\n\t\x04\
    \0\x03\0\x03\0\x02\0\x01\x12\x03\x0e\r\x19\n\x10\n\t\x04\0\x03\0\x03\0\
    \x02\0\x03\x12\x03\x0e\x1c\x1d\n3\n\x06\x04\0\x03\0\x03\x01\x12\x04\x12\
    \x04\x13\x05\x1a#\x20Serve\x20all\x20versions\x20found\x20on\x20disk.\n\
    \n\x0e\n\x07\x04\0\x03\0\x03\x01\x01\x12\x03\x12\x0c\x0f\n\xd6\x01\n\x06\
    \x04\0\x03\0\x03\x02\x12\x04\x1a\x04\x1d\x05\x1a\xc5\x01\x20Serve\x20a\
    \x20specific\x20version\x20(or\x20set\x20of\x20versions).\n\n\x20This\
    \x20policy\x20is\x20useful\x20for\x20rolling\x20back\x20to\x20a\x20speci\
    fic\x20version,\x20or\x20for\n\x20canarying\x20a\x20specific\x20version\
    \x20while\x20still\x20serving\x20a\x20separate\x20stable\n\x20version.\n\
    \n\x0e\n\x07\x04\0\x03\0\x03\x02\x01\x12\x03\x1a\x0c\x14\n0\n\x08\x04\0\
    \x03\0\x03\x02\x02\0\x12\x03\x1c\x06\"\x1a\x1f\x20The\x20version\x20numb\
    ers\x20to\x20serve.\n\n\x10\n\t\x04\0\x03\0\x03\x02\x02\0\x04\x12\x03\
    \x1c\x06\x0e\n\x10\n\t\x04\0\x03\0\x03\x02\x02\0\x05\x12\x03\x1c\x0f\x14\
    \n\x10\n\t\x04\0\x03\0\x03\x02\x02\0\x01\x12\x03\x1c\x15\x1d\n\x10\n\t\
    \x04\0\x03\0\x03\x02\x02\0\x03\x12\x03\x1c\x20!\n\x0e\n\x06\x04\0\x03\0\
    \x08\0\x12\x04\x1f\x04#\x05\n\x0e\n\x07\x04\0\x03\0\x08\0\x01\x12\x03\
    \x1f\n\x17\n\r\n\x06\x04\0\x03\0\x02\0\x12\x03\x20\x06\x1a\n\x0e\n\x07\
    \x04\0\x03\0\x02\0\x06\x12\x03\x20\x06\x0c\n\x0e\n\x07\x04\0\x03\0\x02\0\
    \x01\x12\x03\x20\r\x13\n\x0e\n\x07\x04\0\x03\0\x02\0\x03\x12\x03\x20\x16\
    \x19\n\r\n\x06\x04\0\x03\0\x02\x01\x12\x03!\x06\x14\n\x0e\n\x07\x04\0\
    \x03\0\x02\x01\x06\x12\x03!\x06\t\n\x0e\n\x07\x04\0\x03\0\x02\x01\x01\
    \x12\x03!\n\r\n\x0e\n\x07\x04\0\x03\0\x02\x01\x03\x12\x03!\x10\x13\n\r\n\
    \x06\x04\0\x03\0\x02\x02\x12\x03\"\x06\x1e\n\x0e\n\x07\x04\0\x03\0\x02\
    \x02\x06\x12\x03\"\x06\x0e\n\x0e\n\x07\x04\0\x03\0\x02\x02\x01\x12\x03\"\
    \x0f\x17\n\x0e\n\x07\x04\0\x03\0\x02\x02\x03\x12\x03\"\x1a\x1d\nS\n\x04\
    \x04\0\x03\x01\x12\x04'\x025\x03\x1aE\x20A\x20servable\x20name\x20and\
    \x20base\x20path\x20to\x20look\x20for\x20versions\x20of\x20the\x20servab\
    le.\n\n\x0c\n\x05\x04\0\x03\x01\x01\x12\x03'\n\x1b\n\x9d\x01\n\x06\x04\0\
    \x03\x01\x02\0\x12\x03*\x04\x1d\x1a\x8d\x01\x20The\x20servable\x20name\
    \x20to\x20supply\x20in\x20aspired-versions\x20callback\x20calls.\x20Chil\
    d\n\x20paths\x20of\x20'base_path'\x20are\x20considered\x20to\x20be\x20ve\
    rsions\x20of\x20this\x20servable.\n\n\x0e\n\x07\x04\0\x03\x01\x02\0\x05\
    \x12\x03*\x04\n\n\x0e\n\x07\x04\0\x03\x01\x02\0\x01\x12\x03*\x0b\x18\n\
    \x0e\n\x07\x04\0\x03\x01\x02\0\x03\x12\x03*\x1b\x1c\nZ\n\x06\x04\0\x03\
    \x01\x02\x01\x12\x03-\x04\x19\x1aK\x20The\x20path\x20to\x20monitor,\x20i\
    .e.\x20look\x20for\x20child\x20paths\x20of\x20the\x20form\x20base_path/1\
    23.\n\n\x0e\n\x07\x04\0\x03\x01\x02\x01\x05\x12\x03-\x04\n\n\x0e\n\x07\
    \x04\0\x03\x01\x02\x01\x01\x12\x03-\x0b\x14\n\x0e\n\x07\x04\0\x03\x01\
    \x02\x01\x03\x12\x03-\x17\x18\nq\n\x06\x04\0\x03\x01\x02\x02\x12\x041\
    \x042$\x1aa\x20The\x20policy\x20to\x20determines\x20the\x20number\x20of\
    \x20versions\x20of\x20the\x20servable\x20to\x20be\n\x20served\x20at\x20t\
    he\x20same\x20time.\n\n\x0e\n\x07\x04\0\x03\x01\x02\x02\x06\x12\x031\x04\
    N\n\x0e\n\x07\x04\0\x03\x01\x02\x02\x01\x12\x032\x08\x1f\n\x0e\n\x07\x04\
    \0\x03\x01\x02\x02\x03\x12\x032\"#\n1\n\x05\x04\0\x03\x01\t\x12\x034\x04\
    \x0f\"#\x20Legacy\x20version_policy\x20definition.\n\n\r\n\x06\x04\0\x03\
    \x01\t\0\x12\x034\r\x0e\n\x0e\n\x07\x04\0\x03\x01\t\0\x01\x12\x034\r\x0e\
    \n\x0e\n\x07\x04\0\x03\x01\t\0\x02\x12\x034\r\x0e\nE\n\x04\x04\0\x02\0\
    \x12\x038\x02+\x1a8\x20The\x20servables\x20to\x20monitor\x20for\x20new\
    \x20versions,\x20and\x20aspire.\n\n\x0c\n\x05\x04\0\x02\0\x04\x12\x038\
    \x02\n\n\x0c\n\x05\x04\0\x02\0\x06\x12\x038\x0b\x1c\n\x0c\n\x05\x04\0\
    \x02\0\x01\x12\x038\x1d&\n\x0c\n\x05\x04\0\x02\0\x03\x12\x038)*\n\xb4\
    \x01\n\x04\x04\0\x02\x01\x12\x03=\x02/\x1a\xa6\x01\x20A\x20single\x20ser\
    vable\x20name/base_path\x20pair\x20to\x20monitor.\n\x20DEPRECATED:\x20Us\
    e\x20'servables'\x20instead.\n\x20TODO(b/30898016):\x20Stop\x20using\x20\
    these\x20fields,\x20and\x20ultimately\x20remove\x20them\x20here.\n\n\x0c\
    \n\x05\x04\0\x02\x01\x05\x12\x03=\x02\x08\n\x0c\n\x05\x04\0\x02\x01\x01\
    \x12\x03=\t\x16\n\x0c\n\x05\x04\0\x02\x01\x03\x12\x03=\x19\x1a\n\x0c\n\
    \x05\x04\0\x02\x01\x08\x12\x03=\x1b.\n\r\n\x06\x04\0\x02\x01\x08\x03\x12\
    \x03=\x1c-\n\x0b\n\x04\x04\0\x02\x02\x12\x03>\x02+\n\x0c\n\x05\x04\0\x02\
    \x02\x05\x12\x03>\x02\x08\n\x0c\n\x05\x04\0\x02\x02\x01\x12\x03>\t\x12\n\
    \x0c\n\x05\x04\0\x02\x02\x03\x12\x03>\x15\x16\n\x0c\n\x05\x04\0\x02\x02\
    \x08\x12\x03>\x17*\n\r\n\x06\x04\0\x02\x02\x08\x03\x12\x03>\x18)\n\xff\
    \x01\n\x04\x04\0\x02\x03\x12\x03E\x02*\x1a\xf1\x01\x20How\x20long\x20to\
    \x20wait\x20between\x20file-system\x20polling\x20to\x20look\x20for\x20ch\
    ildren\x20of\n\x20'base_path',\x20in\x20seconds.\n\n\x20If\x20set\x20to\
    \x20zero,\x20filesystem\x20will\x20be\x20polled\x20exactly\x20once.\x20I\
    f\x20set\x20to\x20a\n\x20negative\x20value\x20(for\x20testing\x20use\x20\
    only),\x20polling\x20will\x20be\x20entirely\x20disabled.\n\n\x0c\n\x05\
    \x04\0\x02\x03\x05\x12\x03E\x02\x07\n\x0c\n\x05\x04\0\x02\x03\x01\x12\
    \x03E\x08%\n\x0c\n\x05\x04\0\x02\x03\x03\x12\x03E()\n\xcf\x03\n\x04\x04\
    \0\x02\x04\x12\x03O\x02@\x1a\xc1\x03\x20If\x20true,\x20then\x20FileSyste\
    mStoragePathSource::Create()\x20and\x20::UpdateConfig()\n\x20fail\x20if,\
    \x20for\x20any\x20configured\x20servables,\x20the\x20file\x20system\x20d\
    oesn't\x20currently\n\x20contain\x20at\x20least\x20one\x20version\x20und\
    er\x20the\x20base\x20path.\n\x20(Otherwise,\x20it\x20will\x20emit\x20a\
    \x20warning\x20and\x20keep\x20pinging\x20the\x20file\x20system\x20to\n\
    \x20check\x20for\x20a\x20version\x20to\x20appear\x20later.)\n\x20DEPRECA\
    TED:\x20Use\x20'servable_versions_always_present'\x20instead,\x20which\
    \x20includes\n\x20this\x20behavior.\n\x20TODO(b/30898016):\x20Remove\x20\
    2019-10-31\x20or\x20later.\n\n\x0c\n\x05\x04\0\x02\x04\x05\x12\x03O\x02\
    \x06\n\x0c\n\x05\x04\0\x02\x04\x01\x12\x03O\x07'\n\x0c\n\x05\x04\0\x02\
    \x04\x03\x12\x03O*+\n\x0c\n\x05\x04\0\x02\x04\x08\x12\x03O,?\n\r\n\x06\
    \x04\0\x02\x04\x08\x03\x12\x03O->\n\xfe\x02\n\x04\x04\0\x02\x05\x12\x03V\
    \x02,\x1a\xf0\x02\x20If\x20true,\x20the\x20servable\x20is\x20always\x20e\
    xpected\x20to\x20exist\x20on\x20the\x20underlying\n\x20filesystem.\x20Fi\
    leSystemStoragePathSource::Create()\x20and\x20::UpdateConfig()\x20will\n\
    \x20fail\x20if,\x20for\x20any\x20configured\x20servables,\x20the\x20file\
    \x20system\x20doesn't\x20currently\n\x20contain\x20at\x20least\x20one\
    \x20version\x20under\x20the\x20base\x20path.\x20In\x20addition,\x20if\
    \x20a\x20polling\n\x20loop\x20find\x20the\x20base\x20path\x20empty,\x20i\
    t\x20will\x20not\x20unload\x20existing\x20servables.\n\n\x0c\n\x05\x04\0\
    \x02\x05\x05\x12\x03V\x02\x06\n\x0c\n\x05\x04\0\x02\x05\x01\x12\x03V\x07\
    '\n\x0c\n\x05\x04\0\x02\x05\x03\x12\x03V*+b\x06proto3\
";

static mut file_descriptor_proto_lazy: ::protobuf::lazy::Lazy<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::lazy::Lazy::INIT;

fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
    ::protobuf::parse_from_bytes(file_descriptor_proto_data).unwrap()
}

pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
    unsafe {
        file_descriptor_proto_lazy.get(|| {
            parse_descriptor_proto()
        })
    }
}