1#![allow(unknown_lints)]
6#![allow(clippy::all)]
7
8#![cfg_attr(rustfmt, rustfmt_skip)]
9
10#![allow(box_pointers)]
11#![allow(dead_code)]
12#![allow(missing_docs)]
13#![allow(non_camel_case_types)]
14#![allow(non_snake_case)]
15#![allow(non_upper_case_globals)]
16#![allow(trivial_casts)]
17#![allow(unsafe_code)]
18#![allow(unused_imports)]
19#![allow(unused_results)]
20use protobuf::Message as Message_imported_for_functions;
23use protobuf::ProtobufEnum as ProtobufEnum_imported_for_functions;
24
25#[derive(PartialEq,Clone,Default)]
30pub struct ModelConfig {
31 pub name: ::std::string::String,
33 pub base_path: ::std::string::String,
34 pub model_type: ModelType,
35 pub model_platform: ::std::string::String,
36 pub model_version_policy: ::protobuf::SingularPtrField<super::file_system_storage_path_source::FileSystemStoragePathSourceConfig_ServableVersionPolicy>,
37 pub version_labels: ::std::collections::HashMap<::std::string::String, i64>,
38 pub logging_config: ::protobuf::SingularPtrField<super::logging_config::LoggingConfig>,
39 pub unknown_fields: ::protobuf::UnknownFields,
41 pub cached_size: ::protobuf::CachedSize,
42}
43
44impl<'a> ::std::default::Default for &'a ModelConfig {
45 fn default() -> &'a ModelConfig {
46 <ModelConfig as ::protobuf::Message>::default_instance()
47 }
48}
49
50impl ModelConfig {
51 pub fn new() -> ModelConfig {
52 ::std::default::Default::default()
53 }
54
55 pub fn get_name(&self) -> &str {
59 &self.name
60 }
61 pub fn clear_name(&mut self) {
62 self.name.clear();
63 }
64
65 pub fn set_name(&mut self, v: ::std::string::String) {
67 self.name = v;
68 }
69
70 pub fn mut_name(&mut self) -> &mut ::std::string::String {
73 &mut self.name
74 }
75
76 pub fn take_name(&mut self) -> ::std::string::String {
78 ::std::mem::replace(&mut self.name, ::std::string::String::new())
79 }
80
81 pub fn get_base_path(&self) -> &str {
85 &self.base_path
86 }
87 pub fn clear_base_path(&mut self) {
88 self.base_path.clear();
89 }
90
91 pub fn set_base_path(&mut self, v: ::std::string::String) {
93 self.base_path = v;
94 }
95
96 pub fn mut_base_path(&mut self) -> &mut ::std::string::String {
99 &mut self.base_path
100 }
101
102 pub fn take_base_path(&mut self) -> ::std::string::String {
104 ::std::mem::replace(&mut self.base_path, ::std::string::String::new())
105 }
106
107 pub fn get_model_type(&self) -> ModelType {
111 self.model_type
112 }
113 pub fn clear_model_type(&mut self) {
114 self.model_type = ModelType::MODEL_TYPE_UNSPECIFIED;
115 }
116
117 pub fn set_model_type(&mut self, v: ModelType) {
119 self.model_type = v;
120 }
121
122 pub fn get_model_platform(&self) -> &str {
126 &self.model_platform
127 }
128 pub fn clear_model_platform(&mut self) {
129 self.model_platform.clear();
130 }
131
132 pub fn set_model_platform(&mut self, v: ::std::string::String) {
134 self.model_platform = v;
135 }
136
137 pub fn mut_model_platform(&mut self) -> &mut ::std::string::String {
140 &mut self.model_platform
141 }
142
143 pub fn take_model_platform(&mut self) -> ::std::string::String {
145 ::std::mem::replace(&mut self.model_platform, ::std::string::String::new())
146 }
147
148 pub fn get_model_version_policy(&self) -> &super::file_system_storage_path_source::FileSystemStoragePathSourceConfig_ServableVersionPolicy {
152 self.model_version_policy.as_ref().unwrap_or_else(|| super::file_system_storage_path_source::FileSystemStoragePathSourceConfig_ServableVersionPolicy::default_instance())
153 }
154 pub fn clear_model_version_policy(&mut self) {
155 self.model_version_policy.clear();
156 }
157
158 pub fn has_model_version_policy(&self) -> bool {
159 self.model_version_policy.is_some()
160 }
161
162 pub fn set_model_version_policy(&mut self, v: super::file_system_storage_path_source::FileSystemStoragePathSourceConfig_ServableVersionPolicy) {
164 self.model_version_policy = ::protobuf::SingularPtrField::some(v);
165 }
166
167 pub fn mut_model_version_policy(&mut self) -> &mut super::file_system_storage_path_source::FileSystemStoragePathSourceConfig_ServableVersionPolicy {
170 if self.model_version_policy.is_none() {
171 self.model_version_policy.set_default();
172 }
173 self.model_version_policy.as_mut().unwrap()
174 }
175
176 pub fn take_model_version_policy(&mut self) -> super::file_system_storage_path_source::FileSystemStoragePathSourceConfig_ServableVersionPolicy {
178 self.model_version_policy.take().unwrap_or_else(|| super::file_system_storage_path_source::FileSystemStoragePathSourceConfig_ServableVersionPolicy::new())
179 }
180
181 pub fn get_version_labels(&self) -> &::std::collections::HashMap<::std::string::String, i64> {
185 &self.version_labels
186 }
187 pub fn clear_version_labels(&mut self) {
188 self.version_labels.clear();
189 }
190
191 pub fn set_version_labels(&mut self, v: ::std::collections::HashMap<::std::string::String, i64>) {
193 self.version_labels = v;
194 }
195
196 pub fn mut_version_labels(&mut self) -> &mut ::std::collections::HashMap<::std::string::String, i64> {
198 &mut self.version_labels
199 }
200
201 pub fn take_version_labels(&mut self) -> ::std::collections::HashMap<::std::string::String, i64> {
203 ::std::mem::replace(&mut self.version_labels, ::std::collections::HashMap::new())
204 }
205
206 pub fn get_logging_config(&self) -> &super::logging_config::LoggingConfig {
210 self.logging_config.as_ref().unwrap_or_else(|| super::logging_config::LoggingConfig::default_instance())
211 }
212 pub fn clear_logging_config(&mut self) {
213 self.logging_config.clear();
214 }
215
216 pub fn has_logging_config(&self) -> bool {
217 self.logging_config.is_some()
218 }
219
220 pub fn set_logging_config(&mut self, v: super::logging_config::LoggingConfig) {
222 self.logging_config = ::protobuf::SingularPtrField::some(v);
223 }
224
225 pub fn mut_logging_config(&mut self) -> &mut super::logging_config::LoggingConfig {
228 if self.logging_config.is_none() {
229 self.logging_config.set_default();
230 }
231 self.logging_config.as_mut().unwrap()
232 }
233
234 pub fn take_logging_config(&mut self) -> super::logging_config::LoggingConfig {
236 self.logging_config.take().unwrap_or_else(|| super::logging_config::LoggingConfig::new())
237 }
238}
239
240impl ::protobuf::Message for ModelConfig {
241 fn is_initialized(&self) -> bool {
242 for v in &self.model_version_policy {
243 if !v.is_initialized() {
244 return false;
245 }
246 };
247 for v in &self.logging_config {
248 if !v.is_initialized() {
249 return false;
250 }
251 };
252 true
253 }
254
255 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
256 while !is.eof()? {
257 let (field_number, wire_type) = is.read_tag_unpack()?;
258 match field_number {
259 1 => {
260 ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
261 },
262 2 => {
263 ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.base_path)?;
264 },
265 3 => {
266 ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.model_type, 3, &mut self.unknown_fields)?
267 },
268 4 => {
269 ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.model_platform)?;
270 },
271 7 => {
272 ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.model_version_policy)?;
273 },
274 8 => {
275 ::protobuf::rt::read_map_into::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeInt64>(wire_type, is, &mut self.version_labels)?;
276 },
277 6 => {
278 ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.logging_config)?;
279 },
280 _ => {
281 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
282 },
283 };
284 }
285 ::std::result::Result::Ok(())
286 }
287
288 #[allow(unused_variables)]
290 fn compute_size(&self) -> u32 {
291 let mut my_size = 0;
292 if !self.name.is_empty() {
293 my_size += ::protobuf::rt::string_size(1, &self.name);
294 }
295 if !self.base_path.is_empty() {
296 my_size += ::protobuf::rt::string_size(2, &self.base_path);
297 }
298 if self.model_type != ModelType::MODEL_TYPE_UNSPECIFIED {
299 my_size += ::protobuf::rt::enum_size(3, self.model_type);
300 }
301 if !self.model_platform.is_empty() {
302 my_size += ::protobuf::rt::string_size(4, &self.model_platform);
303 }
304 if let Some(ref v) = self.model_version_policy.as_ref() {
305 let len = v.compute_size();
306 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
307 }
308 my_size += ::protobuf::rt::compute_map_size::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeInt64>(8, &self.version_labels);
309 if let Some(ref v) = self.logging_config.as_ref() {
310 let len = v.compute_size();
311 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
312 }
313 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
314 self.cached_size.set(my_size);
315 my_size
316 }
317
318 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
319 if !self.name.is_empty() {
320 os.write_string(1, &self.name)?;
321 }
322 if !self.base_path.is_empty() {
323 os.write_string(2, &self.base_path)?;
324 }
325 if self.model_type != ModelType::MODEL_TYPE_UNSPECIFIED {
326 os.write_enum(3, self.model_type.value())?;
327 }
328 if !self.model_platform.is_empty() {
329 os.write_string(4, &self.model_platform)?;
330 }
331 if let Some(ref v) = self.model_version_policy.as_ref() {
332 os.write_tag(7, ::protobuf::wire_format::WireTypeLengthDelimited)?;
333 os.write_raw_varint32(v.get_cached_size())?;
334 v.write_to_with_cached_sizes(os)?;
335 }
336 ::protobuf::rt::write_map_with_cached_sizes::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeInt64>(8, &self.version_labels, os)?;
337 if let Some(ref v) = self.logging_config.as_ref() {
338 os.write_tag(6, ::protobuf::wire_format::WireTypeLengthDelimited)?;
339 os.write_raw_varint32(v.get_cached_size())?;
340 v.write_to_with_cached_sizes(os)?;
341 }
342 os.write_unknown_fields(self.get_unknown_fields())?;
343 ::std::result::Result::Ok(())
344 }
345
346 fn get_cached_size(&self) -> u32 {
347 self.cached_size.get()
348 }
349
350 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
351 &self.unknown_fields
352 }
353
354 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
355 &mut self.unknown_fields
356 }
357
358 fn as_any(&self) -> &dyn (::std::any::Any) {
359 self as &dyn (::std::any::Any)
360 }
361 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
362 self as &mut dyn (::std::any::Any)
363 }
364 fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
365 self
366 }
367
368 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
369 Self::descriptor_static()
370 }
371
372 fn new() -> ModelConfig {
373 ModelConfig::new()
374 }
375
376 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
377 static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
378 unsafe {
379 descriptor.get(|| {
380 let mut fields = ::std::vec::Vec::new();
381 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
382 "name",
383 |m: &ModelConfig| { &m.name },
384 |m: &mut ModelConfig| { &mut m.name },
385 ));
386 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
387 "base_path",
388 |m: &ModelConfig| { &m.base_path },
389 |m: &mut ModelConfig| { &mut m.base_path },
390 ));
391 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<ModelType>>(
392 "model_type",
393 |m: &ModelConfig| { &m.model_type },
394 |m: &mut ModelConfig| { &mut m.model_type },
395 ));
396 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
397 "model_platform",
398 |m: &ModelConfig| { &m.model_platform },
399 |m: &mut ModelConfig| { &mut m.model_platform },
400 ));
401 fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::file_system_storage_path_source::FileSystemStoragePathSourceConfig_ServableVersionPolicy>>(
402 "model_version_policy",
403 |m: &ModelConfig| { &m.model_version_policy },
404 |m: &mut ModelConfig| { &mut m.model_version_policy },
405 ));
406 fields.push(::protobuf::reflect::accessor::make_map_accessor::<_, ::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeInt64>(
407 "version_labels",
408 |m: &ModelConfig| { &m.version_labels },
409 |m: &mut ModelConfig| { &mut m.version_labels },
410 ));
411 fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::logging_config::LoggingConfig>>(
412 "logging_config",
413 |m: &ModelConfig| { &m.logging_config },
414 |m: &mut ModelConfig| { &mut m.logging_config },
415 ));
416 ::protobuf::reflect::MessageDescriptor::new_pb_name::<ModelConfig>(
417 "ModelConfig",
418 fields,
419 file_descriptor_proto()
420 )
421 })
422 }
423 }
424
425 fn default_instance() -> &'static ModelConfig {
426 static mut instance: ::protobuf::lazy::Lazy<ModelConfig> = ::protobuf::lazy::Lazy::INIT;
427 unsafe {
428 instance.get(ModelConfig::new)
429 }
430 }
431}
432
433impl ::protobuf::Clear for ModelConfig {
434 fn clear(&mut self) {
435 self.name.clear();
436 self.base_path.clear();
437 self.model_type = ModelType::MODEL_TYPE_UNSPECIFIED;
438 self.model_platform.clear();
439 self.model_version_policy.clear();
440 self.version_labels.clear();
441 self.logging_config.clear();
442 self.unknown_fields.clear();
443 }
444}
445
446impl ::std::fmt::Debug for ModelConfig {
447 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
448 ::protobuf::text_format::fmt(self, f)
449 }
450}
451
452impl ::protobuf::reflect::ProtobufValue for ModelConfig {
453 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
454 ::protobuf::reflect::ReflectValueRef::Message(self)
455 }
456}
457
458#[derive(PartialEq,Clone,Default)]
459pub struct ModelConfigList {
460 pub config: ::protobuf::RepeatedField<ModelConfig>,
462 pub unknown_fields: ::protobuf::UnknownFields,
464 pub cached_size: ::protobuf::CachedSize,
465}
466
467impl<'a> ::std::default::Default for &'a ModelConfigList {
468 fn default() -> &'a ModelConfigList {
469 <ModelConfigList as ::protobuf::Message>::default_instance()
470 }
471}
472
473impl ModelConfigList {
474 pub fn new() -> ModelConfigList {
475 ::std::default::Default::default()
476 }
477
478 pub fn get_config(&self) -> &[ModelConfig] {
482 &self.config
483 }
484 pub fn clear_config(&mut self) {
485 self.config.clear();
486 }
487
488 pub fn set_config(&mut self, v: ::protobuf::RepeatedField<ModelConfig>) {
490 self.config = v;
491 }
492
493 pub fn mut_config(&mut self) -> &mut ::protobuf::RepeatedField<ModelConfig> {
495 &mut self.config
496 }
497
498 pub fn take_config(&mut self) -> ::protobuf::RepeatedField<ModelConfig> {
500 ::std::mem::replace(&mut self.config, ::protobuf::RepeatedField::new())
501 }
502}
503
504impl ::protobuf::Message for ModelConfigList {
505 fn is_initialized(&self) -> bool {
506 for v in &self.config {
507 if !v.is_initialized() {
508 return false;
509 }
510 };
511 true
512 }
513
514 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
515 while !is.eof()? {
516 let (field_number, wire_type) = is.read_tag_unpack()?;
517 match field_number {
518 1 => {
519 ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.config)?;
520 },
521 _ => {
522 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
523 },
524 };
525 }
526 ::std::result::Result::Ok(())
527 }
528
529 #[allow(unused_variables)]
531 fn compute_size(&self) -> u32 {
532 let mut my_size = 0;
533 for value in &self.config {
534 let len = value.compute_size();
535 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
536 };
537 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
538 self.cached_size.set(my_size);
539 my_size
540 }
541
542 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
543 for v in &self.config {
544 os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
545 os.write_raw_varint32(v.get_cached_size())?;
546 v.write_to_with_cached_sizes(os)?;
547 };
548 os.write_unknown_fields(self.get_unknown_fields())?;
549 ::std::result::Result::Ok(())
550 }
551
552 fn get_cached_size(&self) -> u32 {
553 self.cached_size.get()
554 }
555
556 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
557 &self.unknown_fields
558 }
559
560 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
561 &mut self.unknown_fields
562 }
563
564 fn as_any(&self) -> &dyn (::std::any::Any) {
565 self as &dyn (::std::any::Any)
566 }
567 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
568 self as &mut dyn (::std::any::Any)
569 }
570 fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
571 self
572 }
573
574 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
575 Self::descriptor_static()
576 }
577
578 fn new() -> ModelConfigList {
579 ModelConfigList::new()
580 }
581
582 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
583 static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
584 unsafe {
585 descriptor.get(|| {
586 let mut fields = ::std::vec::Vec::new();
587 fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<ModelConfig>>(
588 "config",
589 |m: &ModelConfigList| { &m.config },
590 |m: &mut ModelConfigList| { &mut m.config },
591 ));
592 ::protobuf::reflect::MessageDescriptor::new_pb_name::<ModelConfigList>(
593 "ModelConfigList",
594 fields,
595 file_descriptor_proto()
596 )
597 })
598 }
599 }
600
601 fn default_instance() -> &'static ModelConfigList {
602 static mut instance: ::protobuf::lazy::Lazy<ModelConfigList> = ::protobuf::lazy::Lazy::INIT;
603 unsafe {
604 instance.get(ModelConfigList::new)
605 }
606 }
607}
608
609impl ::protobuf::Clear for ModelConfigList {
610 fn clear(&mut self) {
611 self.config.clear();
612 self.unknown_fields.clear();
613 }
614}
615
616impl ::std::fmt::Debug for ModelConfigList {
617 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
618 ::protobuf::text_format::fmt(self, f)
619 }
620}
621
622impl ::protobuf::reflect::ProtobufValue for ModelConfigList {
623 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
624 ::protobuf::reflect::ReflectValueRef::Message(self)
625 }
626}
627
628#[derive(PartialEq,Clone,Default)]
629pub struct ModelServerConfig {
630 pub config: ::std::option::Option<ModelServerConfig_oneof_config>,
632 pub unknown_fields: ::protobuf::UnknownFields,
634 pub cached_size: ::protobuf::CachedSize,
635}
636
637impl<'a> ::std::default::Default for &'a ModelServerConfig {
638 fn default() -> &'a ModelServerConfig {
639 <ModelServerConfig as ::protobuf::Message>::default_instance()
640 }
641}
642
643#[derive(Clone,PartialEq,Debug)]
644pub enum ModelServerConfig_oneof_config {
645 model_config_list(ModelConfigList),
646 custom_model_config(::protobuf::well_known_types::Any),
647}
648
649impl ModelServerConfig {
650 pub fn new() -> ModelServerConfig {
651 ::std::default::Default::default()
652 }
653
654 pub fn get_model_config_list(&self) -> &ModelConfigList {
658 match self.config {
659 ::std::option::Option::Some(ModelServerConfig_oneof_config::model_config_list(ref v)) => v,
660 _ => ModelConfigList::default_instance(),
661 }
662 }
663 pub fn clear_model_config_list(&mut self) {
664 self.config = ::std::option::Option::None;
665 }
666
667 pub fn has_model_config_list(&self) -> bool {
668 match self.config {
669 ::std::option::Option::Some(ModelServerConfig_oneof_config::model_config_list(..)) => true,
670 _ => false,
671 }
672 }
673
674 pub fn set_model_config_list(&mut self, v: ModelConfigList) {
676 self.config = ::std::option::Option::Some(ModelServerConfig_oneof_config::model_config_list(v))
677 }
678
679 pub fn mut_model_config_list(&mut self) -> &mut ModelConfigList {
681 if let ::std::option::Option::Some(ModelServerConfig_oneof_config::model_config_list(_)) = self.config {
682 } else {
683 self.config = ::std::option::Option::Some(ModelServerConfig_oneof_config::model_config_list(ModelConfigList::new()));
684 }
685 match self.config {
686 ::std::option::Option::Some(ModelServerConfig_oneof_config::model_config_list(ref mut v)) => v,
687 _ => panic!(),
688 }
689 }
690
691 pub fn take_model_config_list(&mut self) -> ModelConfigList {
693 if self.has_model_config_list() {
694 match self.config.take() {
695 ::std::option::Option::Some(ModelServerConfig_oneof_config::model_config_list(v)) => v,
696 _ => panic!(),
697 }
698 } else {
699 ModelConfigList::new()
700 }
701 }
702
703 pub fn get_custom_model_config(&self) -> &::protobuf::well_known_types::Any {
707 match self.config {
708 ::std::option::Option::Some(ModelServerConfig_oneof_config::custom_model_config(ref v)) => v,
709 _ => ::protobuf::well_known_types::Any::default_instance(),
710 }
711 }
712 pub fn clear_custom_model_config(&mut self) {
713 self.config = ::std::option::Option::None;
714 }
715
716 pub fn has_custom_model_config(&self) -> bool {
717 match self.config {
718 ::std::option::Option::Some(ModelServerConfig_oneof_config::custom_model_config(..)) => true,
719 _ => false,
720 }
721 }
722
723 pub fn set_custom_model_config(&mut self, v: ::protobuf::well_known_types::Any) {
725 self.config = ::std::option::Option::Some(ModelServerConfig_oneof_config::custom_model_config(v))
726 }
727
728 pub fn mut_custom_model_config(&mut self) -> &mut ::protobuf::well_known_types::Any {
730 if let ::std::option::Option::Some(ModelServerConfig_oneof_config::custom_model_config(_)) = self.config {
731 } else {
732 self.config = ::std::option::Option::Some(ModelServerConfig_oneof_config::custom_model_config(::protobuf::well_known_types::Any::new()));
733 }
734 match self.config {
735 ::std::option::Option::Some(ModelServerConfig_oneof_config::custom_model_config(ref mut v)) => v,
736 _ => panic!(),
737 }
738 }
739
740 pub fn take_custom_model_config(&mut self) -> ::protobuf::well_known_types::Any {
742 if self.has_custom_model_config() {
743 match self.config.take() {
744 ::std::option::Option::Some(ModelServerConfig_oneof_config::custom_model_config(v)) => v,
745 _ => panic!(),
746 }
747 } else {
748 ::protobuf::well_known_types::Any::new()
749 }
750 }
751}
752
753impl ::protobuf::Message for ModelServerConfig {
754 fn is_initialized(&self) -> bool {
755 if let Some(ModelServerConfig_oneof_config::model_config_list(ref v)) = self.config {
756 if !v.is_initialized() {
757 return false;
758 }
759 }
760 if let Some(ModelServerConfig_oneof_config::custom_model_config(ref v)) = self.config {
761 if !v.is_initialized() {
762 return false;
763 }
764 }
765 true
766 }
767
768 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
769 while !is.eof()? {
770 let (field_number, wire_type) = is.read_tag_unpack()?;
771 match field_number {
772 1 => {
773 if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
774 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
775 }
776 self.config = ::std::option::Option::Some(ModelServerConfig_oneof_config::model_config_list(is.read_message()?));
777 },
778 2 => {
779 if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
780 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
781 }
782 self.config = ::std::option::Option::Some(ModelServerConfig_oneof_config::custom_model_config(is.read_message()?));
783 },
784 _ => {
785 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
786 },
787 };
788 }
789 ::std::result::Result::Ok(())
790 }
791
792 #[allow(unused_variables)]
794 fn compute_size(&self) -> u32 {
795 let mut my_size = 0;
796 if let ::std::option::Option::Some(ref v) = self.config {
797 match v {
798 &ModelServerConfig_oneof_config::model_config_list(ref v) => {
799 let len = v.compute_size();
800 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
801 },
802 &ModelServerConfig_oneof_config::custom_model_config(ref v) => {
803 let len = v.compute_size();
804 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
805 },
806 };
807 }
808 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
809 self.cached_size.set(my_size);
810 my_size
811 }
812
813 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
814 if let ::std::option::Option::Some(ref v) = self.config {
815 match v {
816 &ModelServerConfig_oneof_config::model_config_list(ref v) => {
817 os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
818 os.write_raw_varint32(v.get_cached_size())?;
819 v.write_to_with_cached_sizes(os)?;
820 },
821 &ModelServerConfig_oneof_config::custom_model_config(ref v) => {
822 os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
823 os.write_raw_varint32(v.get_cached_size())?;
824 v.write_to_with_cached_sizes(os)?;
825 },
826 };
827 }
828 os.write_unknown_fields(self.get_unknown_fields())?;
829 ::std::result::Result::Ok(())
830 }
831
832 fn get_cached_size(&self) -> u32 {
833 self.cached_size.get()
834 }
835
836 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
837 &self.unknown_fields
838 }
839
840 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
841 &mut self.unknown_fields
842 }
843
844 fn as_any(&self) -> &dyn (::std::any::Any) {
845 self as &dyn (::std::any::Any)
846 }
847 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
848 self as &mut dyn (::std::any::Any)
849 }
850 fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
851 self
852 }
853
854 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
855 Self::descriptor_static()
856 }
857
858 fn new() -> ModelServerConfig {
859 ModelServerConfig::new()
860 }
861
862 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
863 static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
864 unsafe {
865 descriptor.get(|| {
866 let mut fields = ::std::vec::Vec::new();
867 fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, ModelConfigList>(
868 "model_config_list",
869 ModelServerConfig::has_model_config_list,
870 ModelServerConfig::get_model_config_list,
871 ));
872 fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, ::protobuf::well_known_types::Any>(
873 "custom_model_config",
874 ModelServerConfig::has_custom_model_config,
875 ModelServerConfig::get_custom_model_config,
876 ));
877 ::protobuf::reflect::MessageDescriptor::new_pb_name::<ModelServerConfig>(
878 "ModelServerConfig",
879 fields,
880 file_descriptor_proto()
881 )
882 })
883 }
884 }
885
886 fn default_instance() -> &'static ModelServerConfig {
887 static mut instance: ::protobuf::lazy::Lazy<ModelServerConfig> = ::protobuf::lazy::Lazy::INIT;
888 unsafe {
889 instance.get(ModelServerConfig::new)
890 }
891 }
892}
893
894impl ::protobuf::Clear for ModelServerConfig {
895 fn clear(&mut self) {
896 self.config = ::std::option::Option::None;
897 self.config = ::std::option::Option::None;
898 self.unknown_fields.clear();
899 }
900}
901
902impl ::std::fmt::Debug for ModelServerConfig {
903 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
904 ::protobuf::text_format::fmt(self, f)
905 }
906}
907
908impl ::protobuf::reflect::ProtobufValue for ModelServerConfig {
909 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
910 ::protobuf::reflect::ReflectValueRef::Message(self)
911 }
912}
913
914#[derive(Clone,PartialEq,Eq,Debug,Hash)]
915pub enum ModelType {
916 MODEL_TYPE_UNSPECIFIED = 0,
917 TENSORFLOW = 1,
918 OTHER = 2,
919}
920
921impl ::protobuf::ProtobufEnum for ModelType {
922 fn value(&self) -> i32 {
923 *self as i32
924 }
925
926 fn from_i32(value: i32) -> ::std::option::Option<ModelType> {
927 match value {
928 0 => ::std::option::Option::Some(ModelType::MODEL_TYPE_UNSPECIFIED),
929 1 => ::std::option::Option::Some(ModelType::TENSORFLOW),
930 2 => ::std::option::Option::Some(ModelType::OTHER),
931 _ => ::std::option::Option::None
932 }
933 }
934
935 fn values() -> &'static [Self] {
936 static values: &'static [ModelType] = &[
937 ModelType::MODEL_TYPE_UNSPECIFIED,
938 ModelType::TENSORFLOW,
939 ModelType::OTHER,
940 ];
941 values
942 }
943
944 fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
945 static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::EnumDescriptor> = ::protobuf::lazy::Lazy::INIT;
946 unsafe {
947 descriptor.get(|| {
948 ::protobuf::reflect::EnumDescriptor::new_pb_name::<ModelType>("ModelType", file_descriptor_proto())
949 })
950 }
951 }
952}
953
954impl ::std::marker::Copy for ModelType {
955}
956
957impl ::std::default::Default for ModelType {
958 fn default() -> Self {
959 ModelType::MODEL_TYPE_UNSPECIFIED
960 }
961}
962
963impl ::protobuf::reflect::ProtobufValue for ModelType {
964 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
965 ::protobuf::reflect::ReflectValueRef::Enum(self.descriptor())
966 }
967}
968
969static file_descriptor_proto_data: &'static [u8] = b"\
970 \n3tensorflow_serving/config/model_server_config.proto\x12\x12tensorflow\
971 .serving\x1a\x19google/protobuf/any.proto\x1a.tensorflow_serving/config/\
972 logging_config.proto\x1aMtensorflow_serving/sources/storage_path/file_sy\
973 stem_storage_path_source.proto\"\x93\x04\n\x0bModelConfig\x12\x12\n\x04n\
974 ame\x18\x01\x20\x01(\tR\x04name\x12\x1b\n\tbase_path\x18\x02\x20\x01(\tR\
975 \x08basePath\x12@\n\nmodel_type\x18\x03\x20\x01(\x0e2\x1d.tensorflow.ser\
976 ving.ModelTypeR\tmodelTypeB\x02\x18\x01\x12%\n\x0emodel_platform\x18\x04\
977 \x20\x01(\tR\rmodelPlatform\x12}\n\x14model_version_policy\x18\x07\x20\
978 \x01(\x0b2K.tensorflow.serving.FileSystemStoragePathSourceConfig.Servabl\
979 eVersionPolicyR\x12modelVersionPolicy\x12Y\n\x0eversion_labels\x18\x08\
980 \x20\x03(\x0b22.tensorflow.serving.ModelConfig.VersionLabelsEntryR\rvers\
981 ionLabels\x12H\n\x0elogging_config\x18\x06\x20\x01(\x0b2!.tensorflow.ser\
982 ving.LoggingConfigR\rloggingConfig\x1a@\n\x12VersionLabelsEntry\x12\x10\
983 \n\x03key\x18\x01\x20\x01(\tR\x03key\x12\x14\n\x05value\x18\x02\x20\x01(\
984 \x03R\x05value:\x028\x01J\x04\x08\x05\x10\x06\"J\n\x0fModelConfigList\
985 \x127\n\x06config\x18\x01\x20\x03(\x0b2\x1f.tensorflow.serving.ModelConf\
986 igR\x06config\"\xb8\x01\n\x11ModelServerConfig\x12Q\n\x11model_config_li\
987 st\x18\x01\x20\x01(\x0b2#.tensorflow.serving.ModelConfigListH\0R\x0fmode\
988 lConfigList\x12F\n\x13custom_model_config\x18\x02\x20\x01(\x0b2\x14.goog\
989 le.protobuf.AnyH\0R\x11customModelConfigB\x08\n\x06config*N\n\tModelType\
990 \x12\x1e\n\x16MODEL_TYPE_UNSPECIFIED\x10\0\x1a\x02\x08\x01\x12\x12\n\nTE\
991 NSORFLOW\x10\x01\x1a\x02\x08\x01\x12\r\n\x05OTHER\x10\x02\x1a\x02\x08\
992 \x01B\x03\xf8\x01\x01J\xa8\x18\n\x06\x12\x04\0\0S\x01\n\x08\n\x01\x0c\
993 \x12\x03\0\0\x12\n\x08\n\x01\x02\x12\x03\x02\0\x1b\n\x08\n\x01\x08\x12\
994 \x03\x03\0\x1f\n\t\n\x02\x08\x1f\x12\x03\x03\0\x1f\n\t\n\x02\x03\0\x12\
995 \x03\x05\0#\n\t\n\x02\x03\x01\x12\x03\x06\08\n\t\n\x02\x03\x02\x12\x03\
996 \x07\0W\n?\n\x02\x05\0\x12\x04\x0b\0\x0f\x01\x1a3\x20The\x20type\x20of\
997 \x20model.\n\x20TODO(b/31336131):\x20DEPRECATED.\n\n\n\n\x03\x05\0\x01\
998 \x12\x03\x0b\x05\x0e\n\x0b\n\x04\x05\0\x02\0\x12\x03\x0c\x021\n\x0c\n\
999 \x05\x05\0\x02\0\x01\x12\x03\x0c\x02\x18\n\x0c\n\x05\x05\0\x02\0\x02\x12\
1000 \x03\x0c\x1b\x1c\n\x0c\n\x05\x05\0\x02\0\x03\x12\x03\x0c\x1d0\n\r\n\x06\
1001 \x05\0\x02\0\x03\x01\x12\x03\x0c\x1e/\n\x0b\n\x04\x05\0\x02\x01\x12\x03\
1002 \r\x02%\n\x0c\n\x05\x05\0\x02\x01\x01\x12\x03\r\x02\x0c\n\x0c\n\x05\x05\
1003 \0\x02\x01\x02\x12\x03\r\x0f\x10\n\x0c\n\x05\x05\0\x02\x01\x03\x12\x03\r\
1004 \x11$\n\r\n\x06\x05\0\x02\x01\x03\x01\x12\x03\r\x12#\n\x0b\n\x04\x05\0\
1005 \x02\x02\x12\x03\x0e\x02\x20\n\x0c\n\x05\x05\0\x02\x02\x01\x12\x03\x0e\
1006 \x02\x07\n\x0c\n\x05\x05\0\x02\x02\x02\x12\x03\x0e\n\x0b\n\x0c\n\x05\x05\
1007 \0\x02\x02\x03\x12\x03\x0e\x0c\x1f\n\r\n\x06\x05\0\x02\x02\x03\x01\x12\
1008 \x03\x0e\r\x1e\nD\n\x02\x04\0\x12\x04\x12\0C\x01\x1a8\x20Common\x20confi\
1009 guration\x20for\x20loading\x20a\x20model\x20being\x20served.\n\n\n\n\x03\
1010 \x04\0\x01\x12\x03\x12\x08\x13\n!\n\x04\x04\0\x02\0\x12\x03\x14\x02\x12\
1011 \x1a\x14\x20Name\x20of\x20the\x20model.\n\n\x0c\n\x05\x04\0\x02\0\x05\
1012 \x12\x03\x14\x02\x08\n\x0c\n\x05\x04\0\x02\0\x01\x12\x03\x14\t\r\n\x0c\n\
1013 \x05\x04\0\x02\0\x03\x12\x03\x14\x10\x11\n\x8a\x03\n\x04\x04\0\x02\x01\
1014 \x12\x03\x1d\x02\x17\x1a\xfc\x02\x20Base\x20path\x20to\x20the\x20model,\
1015 \x20excluding\x20the\x20version\x20directory.\n\x20E.g>\x20for\x20a\x20m\
1016 odel\x20at\x20/foo/bar/my_model/123,\x20where\x20123\x20is\x20the\x20ver\
1017 sion,\x20the\n\x20base\x20path\x20is\x20/foo/bar/my_model.\n\n\x20(This\
1018 \x20can\x20be\x20changed\x20once\x20a\x20model\x20is\x20in\x20serving,\
1019 \x20*if*\x20the\x20underlying\x20data\n\x20remains\x20the\x20same.\x20Ot\
1020 herwise\x20there\x20are\x20no\x20guarantees\x20about\x20whether\x20the\
1021 \x20old\n\x20or\x20new\x20data\x20will\x20be\x20used\x20for\x20model\x20\
1022 versions\x20currently\x20loaded.)\n\n\x0c\n\x05\x04\0\x02\x01\x05\x12\
1023 \x03\x1d\x02\x08\n\x0c\n\x05\x04\0\x02\x01\x01\x12\x03\x1d\t\x12\n\x0c\n\
1024 \x05\x04\0\x02\x01\x03\x12\x03\x1d\x15\x16\na\n\x04\x04\0\x02\x02\x12\
1025 \x03!\x02/\x1aT\x20Type\x20of\x20model.\n\x20TODO(b/31336131):\x20DEPREC\
1026 ATED.\x20Please\x20use\x20'model_platform'\x20instead.\n\n\x0c\n\x05\x04\
1027 \0\x02\x02\x06\x12\x03!\x02\x0b\n\x0c\n\x05\x04\0\x02\x02\x01\x12\x03!\
1028 \x0c\x16\n\x0c\n\x05\x04\0\x02\x02\x03\x12\x03!\x19\x1a\n\x0c\n\x05\x04\
1029 \0\x02\x02\x08\x12\x03!\x1b.\n\r\n\x06\x04\0\x02\x02\x08\x03\x12\x03!\
1030 \x1c-\nh\n\x04\x04\0\x02\x03\x12\x03&\x02\x1c\x1a[\x20Type\x20of\x20mode\
1031 l\x20(e.g.\x20\"tensorflow\").\n\n\x20(This\x20cannot\x20be\x20changed\
1032 \x20once\x20a\x20model\x20is\x20in\x20serving.)\n\n\x0c\n\x05\x04\0\x02\
1033 \x03\x05\x12\x03&\x02\x08\n\x0c\n\x05\x04\0\x02\x03\x01\x12\x03&\t\x17\n\
1034 \x0c\n\x05\x04\0\x02\x03\x03\x12\x03&\x1a\x1b\n\n\n\x03\x04\0\t\x12\x03(\
1035 \x02\r\n\x0b\n\x04\x04\0\t\0\x12\x03(\x0b\x0c\n\x0c\n\x05\x04\0\t\0\x01\
1036 \x12\x03(\x0b\x0c\n\x0c\n\x05\x04\0\t\0\x02\x12\x03(\x0b\x0c\n\x88\x02\n\
1037 \x04\x04\0\x02\x04\x12\x04/\x020\x08\x1a\xf9\x01\x20Version\x20policy\
1038 \x20for\x20the\x20model\x20indicating\x20which\x20version(s)\x20of\x20th\
1039 e\x20model\x20to\n\x20load\x20and\x20make\x20available\x20for\x20serving\
1040 \x20simultaneously.\n\x20The\x20default\x20option\x20is\x20to\x20serve\
1041 \x20only\x20the\x20latest\x20version\x20of\x20the\x20model.\n\n\x20(This\
1042 \x20can\x20be\x20changed\x20once\x20a\x20model\x20is\x20in\x20serving.)\
1043 \n\n\x0c\n\x05\x04\0\x02\x04\x06\x12\x03/\x029\n\x0c\n\x05\x04\0\x02\x04\
1044 \x01\x12\x03/:N\n\x0c\n\x05\x04\0\x02\x04\x03\x12\x030\x06\x07\n\xd1\x05\
1045 \n\x04\x04\0\x02\x05\x12\x03=\x02(\x1a\xc3\x05\x20String\x20labels\x20to\
1046 \x20associate\x20with\x20versions\x20of\x20the\x20model,\x20allowing\x20\
1047 inference\n\x20queries\x20to\x20refer\x20to\x20versions\x20by\x20label\
1048 \x20instead\x20of\x20number.\x20Multiple\x20labels\n\x20can\x20map\x20to\
1049 \x20the\x20same\x20version,\x20but\x20not\x20vice-versa.\n\n\x20An\x20en\
1050 visioned\x20use-case\x20for\x20these\x20labels\x20is\x20canarying\x20ten\
1051 tative\x20versions.\n\x20For\x20example,\x20one\x20can\x20assign\x20labe\
1052 ls\x20\"stable\"\x20and\x20\"canary\"\x20to\x20two\x20specific\n\x20vers\
1053 ions.\x20Perhaps\x20initially\x20\"stable\"\x20is\x20assigned\x20to\x20v\
1054 ersion\x200\x20and\x20\"canary\"\n\x20to\x20version\x201.\x20Once\x20ver\
1055 sion\x201\x20passes\x20canary,\x20one\x20can\x20shift\x20the\x20\"stable\
1056 \"\n\x20label\x20to\x20refer\x20to\x20version\x201\x20(at\x20that\x20poi\
1057 nt\x20both\x20labels\x20map\x20to\x20the\x20same\n\x20version\x20--\x20v\
1058 ersion\x201\x20--\x20which\x20is\x20fine).\x20Later\x20once\x20version\
1059 \x202\x20is\x20ready\x20to\n\x20canary\x20one\x20can\x20move\x20the\x20\
1060 \"canary\"\x20label\x20to\x20version\x202.\x20And\x20so\x20on.\n\n\x0c\n\
1061 \x05\x04\0\x02\x05\x06\x12\x03=\x02\x14\n\x0c\n\x05\x04\0\x02\x05\x01\
1062 \x12\x03=\x15#\n\x0c\n\x05\x04\0\x02\x05\x03\x12\x03=&'\n{\n\x04\x04\0\
1063 \x02\x06\x12\x03B\x02#\x1an\x20Configures\x20logging\x20requests\x20and\
1064 \x20responses,\x20to\x20the\x20model.\n\n\x20(This\x20can\x20be\x20chang\
1065 ed\x20once\x20a\x20model\x20is\x20in\x20serving.)\n\n\x0c\n\x05\x04\0\
1066 \x02\x06\x06\x12\x03B\x02\x0f\n\x0c\n\x05\x04\0\x02\x06\x01\x12\x03B\x10\
1067 \x1e\n\x0c\n\x05\x04\0\x02\x06\x03\x12\x03B!\"\n=\n\x02\x04\x01\x12\x04F\
1068 \0H\x01\x1a1\x20Static\x20list\x20of\x20models\x20to\x20be\x20loaded\x20\
1069 for\x20serving.\n\n\n\n\x03\x04\x01\x01\x12\x03F\x08\x17\n\x0b\n\x04\x04\
1070 \x01\x02\0\x12\x03G\x02\"\n\x0c\n\x05\x04\x01\x02\0\x04\x12\x03G\x02\n\n\
1071 \x0c\n\x05\x04\x01\x02\0\x06\x12\x03G\x0b\x16\n\x0c\n\x05\x04\x01\x02\0\
1072 \x01\x12\x03G\x17\x1d\n\x0c\n\x05\x04\x01\x02\0\x03\x12\x03G\x20!\n!\n\
1073 \x02\x04\x02\x12\x04K\0S\x01\x1a\x15\x20ModelServer\x20config.\n\n\n\n\
1074 \x03\x04\x02\x01\x12\x03K\x08\x19\n\xd6\x01\n\x04\x04\x02\x08\0\x12\x04O\
1075 \x02R\x03\x1a\xc7\x01\x20ModelServer\x20takes\x20either\x20a\x20static\
1076 \x20file-based\x20model\x20config\x20list\x20or\x20an\x20Any\n\x20proto\
1077 \x20representing\x20custom\x20model\x20config\x20that\x20is\x20fetched\
1078 \x20dynamically\x20at\n\x20runtime\x20(through\x20network\x20RPC,\x20cus\
1079 tom\x20service,\x20etc.).\n\n\x0c\n\x05\x04\x02\x08\0\x01\x12\x03O\x08\
1080 \x0e\n\x0b\n\x04\x04\x02\x02\0\x12\x03P\x04*\n\x0c\n\x05\x04\x02\x02\0\
1081 \x06\x12\x03P\x04\x13\n\x0c\n\x05\x04\x02\x02\0\x01\x12\x03P\x14%\n\x0c\
1082 \n\x05\x04\x02\x02\0\x03\x12\x03P()\n\x0b\n\x04\x04\x02\x02\x01\x12\x03Q\
1083 \x040\n\x0c\n\x05\x04\x02\x02\x01\x06\x12\x03Q\x04\x17\n\x0c\n\x05\x04\
1084 \x02\x02\x01\x01\x12\x03Q\x18+\n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x03Q.\
1085 /b\x06proto3\
1086";
1087
1088static mut file_descriptor_proto_lazy: ::protobuf::lazy::Lazy<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::lazy::Lazy::INIT;
1089
1090fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
1091 ::protobuf::parse_from_bytes(file_descriptor_proto_data).unwrap()
1092}
1093
1094pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
1095 unsafe {
1096 file_descriptor_proto_lazy.get(|| {
1097 parse_descriptor_proto()
1098 })
1099 }
1100}