#![allow(unknown_lints)]
#![allow(clippy::all)]
#![allow(unused_attributes)]
#![cfg_attr(rustfmt, rustfmt::skip)]
#![allow(box_pointers)]
#![allow(dead_code)]
#![allow(missing_docs)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![allow(non_upper_case_globals)]
#![allow(trivial_casts)]
#![allow(unused_imports)]
#![allow(unused_results)]
#[derive(PartialEq,Clone,Default)]
pub struct Experiment {
pub name: ::std::string::String,
pub description: ::std::string::String,
pub user: ::std::string::String,
pub time_created_secs: f64,
pub hparam_infos: ::protobuf::RepeatedField<HParamInfo>,
pub metric_infos: ::protobuf::RepeatedField<MetricInfo>,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a Experiment {
fn default() -> &'a Experiment {
<Experiment as ::protobuf::Message>::default_instance()
}
}
impl Experiment {
pub fn new() -> Experiment {
::std::default::Default::default()
}
pub fn get_name(&self) -> &str {
&self.name
}
pub fn clear_name(&mut self) {
self.name.clear();
}
pub fn set_name(&mut self, v: ::std::string::String) {
self.name = v;
}
pub fn mut_name(&mut self) -> &mut ::std::string::String {
&mut self.name
}
pub fn take_name(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.name, ::std::string::String::new())
}
pub fn get_description(&self) -> &str {
&self.description
}
pub fn clear_description(&mut self) {
self.description.clear();
}
pub fn set_description(&mut self, v: ::std::string::String) {
self.description = v;
}
pub fn mut_description(&mut self) -> &mut ::std::string::String {
&mut self.description
}
pub fn take_description(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.description, ::std::string::String::new())
}
pub fn get_user(&self) -> &str {
&self.user
}
pub fn clear_user(&mut self) {
self.user.clear();
}
pub fn set_user(&mut self, v: ::std::string::String) {
self.user = v;
}
pub fn mut_user(&mut self) -> &mut ::std::string::String {
&mut self.user
}
pub fn take_user(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.user, ::std::string::String::new())
}
pub fn get_time_created_secs(&self) -> f64 {
self.time_created_secs
}
pub fn clear_time_created_secs(&mut self) {
self.time_created_secs = 0.;
}
pub fn set_time_created_secs(&mut self, v: f64) {
self.time_created_secs = v;
}
pub fn get_hparam_infos(&self) -> &[HParamInfo] {
&self.hparam_infos
}
pub fn clear_hparam_infos(&mut self) {
self.hparam_infos.clear();
}
pub fn set_hparam_infos(&mut self, v: ::protobuf::RepeatedField<HParamInfo>) {
self.hparam_infos = v;
}
pub fn mut_hparam_infos(&mut self) -> &mut ::protobuf::RepeatedField<HParamInfo> {
&mut self.hparam_infos
}
pub fn take_hparam_infos(&mut self) -> ::protobuf::RepeatedField<HParamInfo> {
::std::mem::replace(&mut self.hparam_infos, ::protobuf::RepeatedField::new())
}
pub fn get_metric_infos(&self) -> &[MetricInfo] {
&self.metric_infos
}
pub fn clear_metric_infos(&mut self) {
self.metric_infos.clear();
}
pub fn set_metric_infos(&mut self, v: ::protobuf::RepeatedField<MetricInfo>) {
self.metric_infos = v;
}
pub fn mut_metric_infos(&mut self) -> &mut ::protobuf::RepeatedField<MetricInfo> {
&mut self.metric_infos
}
pub fn take_metric_infos(&mut self) -> ::protobuf::RepeatedField<MetricInfo> {
::std::mem::replace(&mut self.metric_infos, ::protobuf::RepeatedField::new())
}
}
impl ::protobuf::Message for Experiment {
fn is_initialized(&self) -> bool {
for v in &self.hparam_infos {
if !v.is_initialized() {
return false;
}
};
for v in &self.metric_infos {
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 {
6 => {
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
},
1 => {
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.description)?;
},
2 => {
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.user)?;
},
3 => {
if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
let tmp = is.read_double()?;
self.time_created_secs = tmp;
},
4 => {
::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.hparam_infos)?;
},
5 => {
::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.metric_infos)?;
},
_ => {
::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u32 {
let mut my_size = 0;
if !self.name.is_empty() {
my_size += ::protobuf::rt::string_size(6, &self.name);
}
if !self.description.is_empty() {
my_size += ::protobuf::rt::string_size(1, &self.description);
}
if !self.user.is_empty() {
my_size += ::protobuf::rt::string_size(2, &self.user);
}
if self.time_created_secs != 0. {
my_size += 9;
}
for value in &self.hparam_infos {
let len = value.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
};
for value in &self.metric_infos {
let len = value.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.name.is_empty() {
os.write_string(6, &self.name)?;
}
if !self.description.is_empty() {
os.write_string(1, &self.description)?;
}
if !self.user.is_empty() {
os.write_string(2, &self.user)?;
}
if self.time_created_secs != 0. {
os.write_double(3, self.time_created_secs)?;
}
for v in &self.hparam_infos {
os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
};
for v in &self.metric_infos {
os.write_tag(5, ::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: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> Experiment {
Experiment::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"name",
|m: &Experiment| { &m.name },
|m: &mut Experiment| { &mut m.name },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"description",
|m: &Experiment| { &m.description },
|m: &mut Experiment| { &mut m.description },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"user",
|m: &Experiment| { &m.user },
|m: &mut Experiment| { &mut m.user },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeDouble>(
"time_created_secs",
|m: &Experiment| { &m.time_created_secs },
|m: &mut Experiment| { &mut m.time_created_secs },
));
fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<HParamInfo>>(
"hparam_infos",
|m: &Experiment| { &m.hparam_infos },
|m: &mut Experiment| { &mut m.hparam_infos },
));
fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<MetricInfo>>(
"metric_infos",
|m: &Experiment| { &m.metric_infos },
|m: &mut Experiment| { &mut m.metric_infos },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<Experiment>(
"Experiment",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static Experiment {
static instance: ::protobuf::rt::LazyV2<Experiment> = ::protobuf::rt::LazyV2::INIT;
instance.get(Experiment::new)
}
}
impl ::protobuf::Clear for Experiment {
fn clear(&mut self) {
self.name.clear();
self.description.clear();
self.user.clear();
self.time_created_secs = 0.;
self.hparam_infos.clear();
self.metric_infos.clear();
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for Experiment {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for Experiment {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct HParamInfo {
pub name: ::std::string::String,
pub display_name: ::std::string::String,
pub description: ::std::string::String,
pub field_type: DataType,
pub domain: ::std::option::Option<HParamInfo_oneof_domain>,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a HParamInfo {
fn default() -> &'a HParamInfo {
<HParamInfo as ::protobuf::Message>::default_instance()
}
}
#[derive(Clone,PartialEq,Debug)]
pub enum HParamInfo_oneof_domain {
domain_discrete(::protobuf::well_known_types::ListValue),
domain_interval(Interval),
}
impl HParamInfo {
pub fn new() -> HParamInfo {
::std::default::Default::default()
}
pub fn get_name(&self) -> &str {
&self.name
}
pub fn clear_name(&mut self) {
self.name.clear();
}
pub fn set_name(&mut self, v: ::std::string::String) {
self.name = v;
}
pub fn mut_name(&mut self) -> &mut ::std::string::String {
&mut self.name
}
pub fn take_name(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.name, ::std::string::String::new())
}
pub fn get_display_name(&self) -> &str {
&self.display_name
}
pub fn clear_display_name(&mut self) {
self.display_name.clear();
}
pub fn set_display_name(&mut self, v: ::std::string::String) {
self.display_name = v;
}
pub fn mut_display_name(&mut self) -> &mut ::std::string::String {
&mut self.display_name
}
pub fn take_display_name(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.display_name, ::std::string::String::new())
}
pub fn get_description(&self) -> &str {
&self.description
}
pub fn clear_description(&mut self) {
self.description.clear();
}
pub fn set_description(&mut self, v: ::std::string::String) {
self.description = v;
}
pub fn mut_description(&mut self) -> &mut ::std::string::String {
&mut self.description
}
pub fn take_description(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.description, ::std::string::String::new())
}
pub fn get_field_type(&self) -> DataType {
self.field_type
}
pub fn clear_field_type(&mut self) {
self.field_type = DataType::DATA_TYPE_UNSET;
}
pub fn set_field_type(&mut self, v: DataType) {
self.field_type = v;
}
pub fn get_domain_discrete(&self) -> &::protobuf::well_known_types::ListValue {
match self.domain {
::std::option::Option::Some(HParamInfo_oneof_domain::domain_discrete(ref v)) => v,
_ => <::protobuf::well_known_types::ListValue as ::protobuf::Message>::default_instance(),
}
}
pub fn clear_domain_discrete(&mut self) {
self.domain = ::std::option::Option::None;
}
pub fn has_domain_discrete(&self) -> bool {
match self.domain {
::std::option::Option::Some(HParamInfo_oneof_domain::domain_discrete(..)) => true,
_ => false,
}
}
pub fn set_domain_discrete(&mut self, v: ::protobuf::well_known_types::ListValue) {
self.domain = ::std::option::Option::Some(HParamInfo_oneof_domain::domain_discrete(v))
}
pub fn mut_domain_discrete(&mut self) -> &mut ::protobuf::well_known_types::ListValue {
if let ::std::option::Option::Some(HParamInfo_oneof_domain::domain_discrete(_)) = self.domain {
} else {
self.domain = ::std::option::Option::Some(HParamInfo_oneof_domain::domain_discrete(::protobuf::well_known_types::ListValue::new()));
}
match self.domain {
::std::option::Option::Some(HParamInfo_oneof_domain::domain_discrete(ref mut v)) => v,
_ => panic!(),
}
}
pub fn take_domain_discrete(&mut self) -> ::protobuf::well_known_types::ListValue {
if self.has_domain_discrete() {
match self.domain.take() {
::std::option::Option::Some(HParamInfo_oneof_domain::domain_discrete(v)) => v,
_ => panic!(),
}
} else {
::protobuf::well_known_types::ListValue::new()
}
}
pub fn get_domain_interval(&self) -> &Interval {
match self.domain {
::std::option::Option::Some(HParamInfo_oneof_domain::domain_interval(ref v)) => v,
_ => <Interval as ::protobuf::Message>::default_instance(),
}
}
pub fn clear_domain_interval(&mut self) {
self.domain = ::std::option::Option::None;
}
pub fn has_domain_interval(&self) -> bool {
match self.domain {
::std::option::Option::Some(HParamInfo_oneof_domain::domain_interval(..)) => true,
_ => false,
}
}
pub fn set_domain_interval(&mut self, v: Interval) {
self.domain = ::std::option::Option::Some(HParamInfo_oneof_domain::domain_interval(v))
}
pub fn mut_domain_interval(&mut self) -> &mut Interval {
if let ::std::option::Option::Some(HParamInfo_oneof_domain::domain_interval(_)) = self.domain {
} else {
self.domain = ::std::option::Option::Some(HParamInfo_oneof_domain::domain_interval(Interval::new()));
}
match self.domain {
::std::option::Option::Some(HParamInfo_oneof_domain::domain_interval(ref mut v)) => v,
_ => panic!(),
}
}
pub fn take_domain_interval(&mut self) -> Interval {
if self.has_domain_interval() {
match self.domain.take() {
::std::option::Option::Some(HParamInfo_oneof_domain::domain_interval(v)) => v,
_ => panic!(),
}
} else {
Interval::new()
}
}
}
impl ::protobuf::Message for HParamInfo {
fn is_initialized(&self) -> bool {
if let Some(HParamInfo_oneof_domain::domain_discrete(ref v)) = self.domain {
if !v.is_initialized() {
return false;
}
}
if let Some(HParamInfo_oneof_domain::domain_interval(ref v)) = self.domain {
if !v.is_initialized() {
return false;
}
}
true
}
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
while !is.eof()? {
let (field_number, wire_type) = is.read_tag_unpack()?;
match field_number {
1 => {
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
},
2 => {
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.display_name)?;
},
3 => {
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.description)?;
},
4 => {
::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.field_type, 4, &mut self.unknown_fields)?
},
5 => {
if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
self.domain = ::std::option::Option::Some(HParamInfo_oneof_domain::domain_discrete(is.read_message()?));
},
6 => {
if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
self.domain = ::std::option::Option::Some(HParamInfo_oneof_domain::domain_interval(is.read_message()?));
},
_ => {
::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u32 {
let mut my_size = 0;
if !self.name.is_empty() {
my_size += ::protobuf::rt::string_size(1, &self.name);
}
if !self.display_name.is_empty() {
my_size += ::protobuf::rt::string_size(2, &self.display_name);
}
if !self.description.is_empty() {
my_size += ::protobuf::rt::string_size(3, &self.description);
}
if self.field_type != DataType::DATA_TYPE_UNSET {
my_size += ::protobuf::rt::enum_size(4, self.field_type);
}
if let ::std::option::Option::Some(ref v) = self.domain {
match v {
&HParamInfo_oneof_domain::domain_discrete(ref v) => {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
},
&HParamInfo_oneof_domain::domain_interval(ref v) => {
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.name.is_empty() {
os.write_string(1, &self.name)?;
}
if !self.display_name.is_empty() {
os.write_string(2, &self.display_name)?;
}
if !self.description.is_empty() {
os.write_string(3, &self.description)?;
}
if self.field_type != DataType::DATA_TYPE_UNSET {
os.write_enum(4, ::protobuf::ProtobufEnum::value(&self.field_type))?;
}
if let ::std::option::Option::Some(ref v) = self.domain {
match v {
&HParamInfo_oneof_domain::domain_discrete(ref v) => {
os.write_tag(5, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
},
&HParamInfo_oneof_domain::domain_interval(ref v) => {
os.write_tag(6, ::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: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> HParamInfo {
HParamInfo::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"name",
|m: &HParamInfo| { &m.name },
|m: &mut HParamInfo| { &mut m.name },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"display_name",
|m: &HParamInfo| { &m.display_name },
|m: &mut HParamInfo| { &mut m.display_name },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"description",
|m: &HParamInfo| { &m.description },
|m: &mut HParamInfo| { &mut m.description },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<DataType>>(
"type",
|m: &HParamInfo| { &m.field_type },
|m: &mut HParamInfo| { &mut m.field_type },
));
fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, ::protobuf::well_known_types::ListValue>(
"domain_discrete",
HParamInfo::has_domain_discrete,
HParamInfo::get_domain_discrete,
));
fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, Interval>(
"domain_interval",
HParamInfo::has_domain_interval,
HParamInfo::get_domain_interval,
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<HParamInfo>(
"HParamInfo",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static HParamInfo {
static instance: ::protobuf::rt::LazyV2<HParamInfo> = ::protobuf::rt::LazyV2::INIT;
instance.get(HParamInfo::new)
}
}
impl ::protobuf::Clear for HParamInfo {
fn clear(&mut self) {
self.name.clear();
self.display_name.clear();
self.description.clear();
self.field_type = DataType::DATA_TYPE_UNSET;
self.domain = ::std::option::Option::None;
self.domain = ::std::option::Option::None;
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for HParamInfo {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for HParamInfo {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct Interval {
pub min_value: f64,
pub max_value: f64,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a Interval {
fn default() -> &'a Interval {
<Interval as ::protobuf::Message>::default_instance()
}
}
impl Interval {
pub fn new() -> Interval {
::std::default::Default::default()
}
pub fn get_min_value(&self) -> f64 {
self.min_value
}
pub fn clear_min_value(&mut self) {
self.min_value = 0.;
}
pub fn set_min_value(&mut self, v: f64) {
self.min_value = v;
}
pub fn get_max_value(&self) -> f64 {
self.max_value
}
pub fn clear_max_value(&mut self) {
self.max_value = 0.;
}
pub fn set_max_value(&mut self, v: f64) {
self.max_value = v;
}
}
impl ::protobuf::Message for Interval {
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::WireTypeFixed64 {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
let tmp = is.read_double()?;
self.min_value = tmp;
},
2 => {
if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
let tmp = is.read_double()?;
self.max_value = tmp;
},
_ => {
::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u32 {
let mut my_size = 0;
if self.min_value != 0. {
my_size += 9;
}
if self.max_value != 0. {
my_size += 9;
}
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.min_value != 0. {
os.write_double(1, self.min_value)?;
}
if self.max_value != 0. {
os.write_double(2, self.max_value)?;
}
os.write_unknown_fields(self.get_unknown_fields())?;
::std::result::Result::Ok(())
}
fn get_cached_size(&self) -> u32 {
self.cached_size.get()
}
fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
&self.unknown_fields
}
fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
&mut self.unknown_fields
}
fn as_any(&self) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> Interval {
Interval::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeDouble>(
"min_value",
|m: &Interval| { &m.min_value },
|m: &mut Interval| { &mut m.min_value },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeDouble>(
"max_value",
|m: &Interval| { &m.max_value },
|m: &mut Interval| { &mut m.max_value },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<Interval>(
"Interval",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static Interval {
static instance: ::protobuf::rt::LazyV2<Interval> = ::protobuf::rt::LazyV2::INIT;
instance.get(Interval::new)
}
}
impl ::protobuf::Clear for Interval {
fn clear(&mut self) {
self.min_value = 0.;
self.max_value = 0.;
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for Interval {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for Interval {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct MetricName {
pub group: ::std::string::String,
pub tag: ::std::string::String,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a MetricName {
fn default() -> &'a MetricName {
<MetricName as ::protobuf::Message>::default_instance()
}
}
impl MetricName {
pub fn new() -> MetricName {
::std::default::Default::default()
}
pub fn get_group(&self) -> &str {
&self.group
}
pub fn clear_group(&mut self) {
self.group.clear();
}
pub fn set_group(&mut self, v: ::std::string::String) {
self.group = v;
}
pub fn mut_group(&mut self) -> &mut ::std::string::String {
&mut self.group
}
pub fn take_group(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.group, ::std::string::String::new())
}
pub fn get_tag(&self) -> &str {
&self.tag
}
pub fn clear_tag(&mut self) {
self.tag.clear();
}
pub fn set_tag(&mut self, v: ::std::string::String) {
self.tag = v;
}
pub fn mut_tag(&mut self) -> &mut ::std::string::String {
&mut self.tag
}
pub fn take_tag(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.tag, ::std::string::String::new())
}
}
impl ::protobuf::Message for MetricName {
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_singular_proto3_string_into(wire_type, is, &mut self.group)?;
},
2 => {
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.tag)?;
},
_ => {
::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u32 {
let mut my_size = 0;
if !self.group.is_empty() {
my_size += ::protobuf::rt::string_size(1, &self.group);
}
if !self.tag.is_empty() {
my_size += ::protobuf::rt::string_size(2, &self.tag);
}
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.group.is_empty() {
os.write_string(1, &self.group)?;
}
if !self.tag.is_empty() {
os.write_string(2, &self.tag)?;
}
os.write_unknown_fields(self.get_unknown_fields())?;
::std::result::Result::Ok(())
}
fn get_cached_size(&self) -> u32 {
self.cached_size.get()
}
fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
&self.unknown_fields
}
fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
&mut self.unknown_fields
}
fn as_any(&self) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> MetricName {
MetricName::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"group",
|m: &MetricName| { &m.group },
|m: &mut MetricName| { &mut m.group },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"tag",
|m: &MetricName| { &m.tag },
|m: &mut MetricName| { &mut m.tag },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<MetricName>(
"MetricName",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static MetricName {
static instance: ::protobuf::rt::LazyV2<MetricName> = ::protobuf::rt::LazyV2::INIT;
instance.get(MetricName::new)
}
}
impl ::protobuf::Clear for MetricName {
fn clear(&mut self) {
self.group.clear();
self.tag.clear();
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for MetricName {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for MetricName {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct MetricInfo {
pub name: ::protobuf::SingularPtrField<MetricName>,
pub display_name: ::std::string::String,
pub description: ::std::string::String,
pub dataset_type: DatasetType,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a MetricInfo {
fn default() -> &'a MetricInfo {
<MetricInfo as ::protobuf::Message>::default_instance()
}
}
impl MetricInfo {
pub fn new() -> MetricInfo {
::std::default::Default::default()
}
pub fn get_name(&self) -> &MetricName {
self.name.as_ref().unwrap_or_else(|| <MetricName as ::protobuf::Message>::default_instance())
}
pub fn clear_name(&mut self) {
self.name.clear();
}
pub fn has_name(&self) -> bool {
self.name.is_some()
}
pub fn set_name(&mut self, v: MetricName) {
self.name = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_name(&mut self) -> &mut MetricName {
if self.name.is_none() {
self.name.set_default();
}
self.name.as_mut().unwrap()
}
pub fn take_name(&mut self) -> MetricName {
self.name.take().unwrap_or_else(|| MetricName::new())
}
pub fn get_display_name(&self) -> &str {
&self.display_name
}
pub fn clear_display_name(&mut self) {
self.display_name.clear();
}
pub fn set_display_name(&mut self, v: ::std::string::String) {
self.display_name = v;
}
pub fn mut_display_name(&mut self) -> &mut ::std::string::String {
&mut self.display_name
}
pub fn take_display_name(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.display_name, ::std::string::String::new())
}
pub fn get_description(&self) -> &str {
&self.description
}
pub fn clear_description(&mut self) {
self.description.clear();
}
pub fn set_description(&mut self, v: ::std::string::String) {
self.description = v;
}
pub fn mut_description(&mut self) -> &mut ::std::string::String {
&mut self.description
}
pub fn take_description(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.description, ::std::string::String::new())
}
pub fn get_dataset_type(&self) -> DatasetType {
self.dataset_type
}
pub fn clear_dataset_type(&mut self) {
self.dataset_type = DatasetType::DATASET_UNKNOWN;
}
pub fn set_dataset_type(&mut self, v: DatasetType) {
self.dataset_type = v;
}
}
impl ::protobuf::Message for MetricInfo {
fn is_initialized(&self) -> bool {
for v in &self.name {
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_message_into(wire_type, is, &mut self.name)?;
},
3 => {
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.display_name)?;
},
4 => {
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.description)?;
},
5 => {
::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.dataset_type, 5, &mut self.unknown_fields)?
},
_ => {
::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u32 {
let mut my_size = 0;
if let Some(ref v) = self.name.as_ref() {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
}
if !self.display_name.is_empty() {
my_size += ::protobuf::rt::string_size(3, &self.display_name);
}
if !self.description.is_empty() {
my_size += ::protobuf::rt::string_size(4, &self.description);
}
if self.dataset_type != DatasetType::DATASET_UNKNOWN {
my_size += ::protobuf::rt::enum_size(5, self.dataset_type);
}
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 Some(ref v) = self.name.as_ref() {
os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
}
if !self.display_name.is_empty() {
os.write_string(3, &self.display_name)?;
}
if !self.description.is_empty() {
os.write_string(4, &self.description)?;
}
if self.dataset_type != DatasetType::DATASET_UNKNOWN {
os.write_enum(5, ::protobuf::ProtobufEnum::value(&self.dataset_type))?;
}
os.write_unknown_fields(self.get_unknown_fields())?;
::std::result::Result::Ok(())
}
fn get_cached_size(&self) -> u32 {
self.cached_size.get()
}
fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
&self.unknown_fields
}
fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
&mut self.unknown_fields
}
fn as_any(&self) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> MetricInfo {
MetricInfo::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<MetricName>>(
"name",
|m: &MetricInfo| { &m.name },
|m: &mut MetricInfo| { &mut m.name },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"display_name",
|m: &MetricInfo| { &m.display_name },
|m: &mut MetricInfo| { &mut m.display_name },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"description",
|m: &MetricInfo| { &m.description },
|m: &mut MetricInfo| { &mut m.description },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<DatasetType>>(
"dataset_type",
|m: &MetricInfo| { &m.dataset_type },
|m: &mut MetricInfo| { &mut m.dataset_type },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<MetricInfo>(
"MetricInfo",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static MetricInfo {
static instance: ::protobuf::rt::LazyV2<MetricInfo> = ::protobuf::rt::LazyV2::INIT;
instance.get(MetricInfo::new)
}
}
impl ::protobuf::Clear for MetricInfo {
fn clear(&mut self) {
self.name.clear();
self.display_name.clear();
self.description.clear();
self.dataset_type = DatasetType::DATASET_UNKNOWN;
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for MetricInfo {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for MetricInfo {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct SessionGroup {
pub name: ::std::string::String,
pub hparams: ::std::collections::HashMap<::std::string::String, ::protobuf::well_known_types::Value>,
pub metric_values: ::protobuf::RepeatedField<MetricValue>,
pub sessions: ::protobuf::RepeatedField<Session>,
pub monitor_url: ::std::string::String,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a SessionGroup {
fn default() -> &'a SessionGroup {
<SessionGroup as ::protobuf::Message>::default_instance()
}
}
impl SessionGroup {
pub fn new() -> SessionGroup {
::std::default::Default::default()
}
pub fn get_name(&self) -> &str {
&self.name
}
pub fn clear_name(&mut self) {
self.name.clear();
}
pub fn set_name(&mut self, v: ::std::string::String) {
self.name = v;
}
pub fn mut_name(&mut self) -> &mut ::std::string::String {
&mut self.name
}
pub fn take_name(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.name, ::std::string::String::new())
}
pub fn get_hparams(&self) -> &::std::collections::HashMap<::std::string::String, ::protobuf::well_known_types::Value> {
&self.hparams
}
pub fn clear_hparams(&mut self) {
self.hparams.clear();
}
pub fn set_hparams(&mut self, v: ::std::collections::HashMap<::std::string::String, ::protobuf::well_known_types::Value>) {
self.hparams = v;
}
pub fn mut_hparams(&mut self) -> &mut ::std::collections::HashMap<::std::string::String, ::protobuf::well_known_types::Value> {
&mut self.hparams
}
pub fn take_hparams(&mut self) -> ::std::collections::HashMap<::std::string::String, ::protobuf::well_known_types::Value> {
::std::mem::replace(&mut self.hparams, ::std::collections::HashMap::new())
}
pub fn get_metric_values(&self) -> &[MetricValue] {
&self.metric_values
}
pub fn clear_metric_values(&mut self) {
self.metric_values.clear();
}
pub fn set_metric_values(&mut self, v: ::protobuf::RepeatedField<MetricValue>) {
self.metric_values = v;
}
pub fn mut_metric_values(&mut self) -> &mut ::protobuf::RepeatedField<MetricValue> {
&mut self.metric_values
}
pub fn take_metric_values(&mut self) -> ::protobuf::RepeatedField<MetricValue> {
::std::mem::replace(&mut self.metric_values, ::protobuf::RepeatedField::new())
}
pub fn get_sessions(&self) -> &[Session] {
&self.sessions
}
pub fn clear_sessions(&mut self) {
self.sessions.clear();
}
pub fn set_sessions(&mut self, v: ::protobuf::RepeatedField<Session>) {
self.sessions = v;
}
pub fn mut_sessions(&mut self) -> &mut ::protobuf::RepeatedField<Session> {
&mut self.sessions
}
pub fn take_sessions(&mut self) -> ::protobuf::RepeatedField<Session> {
::std::mem::replace(&mut self.sessions, ::protobuf::RepeatedField::new())
}
pub fn get_monitor_url(&self) -> &str {
&self.monitor_url
}
pub fn clear_monitor_url(&mut self) {
self.monitor_url.clear();
}
pub fn set_monitor_url(&mut self, v: ::std::string::String) {
self.monitor_url = v;
}
pub fn mut_monitor_url(&mut self) -> &mut ::std::string::String {
&mut self.monitor_url
}
pub fn take_monitor_url(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.monitor_url, ::std::string::String::new())
}
}
impl ::protobuf::Message for SessionGroup {
fn is_initialized(&self) -> bool {
for v in &self.metric_values {
if !v.is_initialized() {
return false;
}
};
for v in &self.sessions {
if !v.is_initialized() {
return false;
}
};
true
}
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
while !is.eof()? {
let (field_number, wire_type) = is.read_tag_unpack()?;
match field_number {
1 => {
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
},
2 => {
::protobuf::rt::read_map_into::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Value>>(wire_type, is, &mut self.hparams)?;
},
3 => {
::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.metric_values)?;
},
4 => {
::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.sessions)?;
},
5 => {
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.monitor_url)?;
},
_ => {
::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u32 {
let mut my_size = 0;
if !self.name.is_empty() {
my_size += ::protobuf::rt::string_size(1, &self.name);
}
my_size += ::protobuf::rt::compute_map_size::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Value>>(2, &self.hparams);
for value in &self.metric_values {
let len = value.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
};
for value in &self.sessions {
let len = value.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
};
if !self.monitor_url.is_empty() {
my_size += ::protobuf::rt::string_size(5, &self.monitor_url);
}
my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
self.cached_size.set(my_size);
my_size
}
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
if !self.name.is_empty() {
os.write_string(1, &self.name)?;
}
::protobuf::rt::write_map_with_cached_sizes::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Value>>(2, &self.hparams, os)?;
for v in &self.metric_values {
os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
};
for v in &self.sessions {
os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
};
if !self.monitor_url.is_empty() {
os.write_string(5, &self.monitor_url)?;
}
os.write_unknown_fields(self.get_unknown_fields())?;
::std::result::Result::Ok(())
}
fn get_cached_size(&self) -> u32 {
self.cached_size.get()
}
fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
&self.unknown_fields
}
fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
&mut self.unknown_fields
}
fn as_any(&self) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> SessionGroup {
SessionGroup::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"name",
|m: &SessionGroup| { &m.name },
|m: &mut SessionGroup| { &mut m.name },
));
fields.push(::protobuf::reflect::accessor::make_map_accessor::<_, ::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Value>>(
"hparams",
|m: &SessionGroup| { &m.hparams },
|m: &mut SessionGroup| { &mut m.hparams },
));
fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<MetricValue>>(
"metric_values",
|m: &SessionGroup| { &m.metric_values },
|m: &mut SessionGroup| { &mut m.metric_values },
));
fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<Session>>(
"sessions",
|m: &SessionGroup| { &m.sessions },
|m: &mut SessionGroup| { &mut m.sessions },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"monitor_url",
|m: &SessionGroup| { &m.monitor_url },
|m: &mut SessionGroup| { &mut m.monitor_url },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<SessionGroup>(
"SessionGroup",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static SessionGroup {
static instance: ::protobuf::rt::LazyV2<SessionGroup> = ::protobuf::rt::LazyV2::INIT;
instance.get(SessionGroup::new)
}
}
impl ::protobuf::Clear for SessionGroup {
fn clear(&mut self) {
self.name.clear();
self.hparams.clear();
self.metric_values.clear();
self.sessions.clear();
self.monitor_url.clear();
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for SessionGroup {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for SessionGroup {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct MetricValue {
pub name: ::protobuf::SingularPtrField<MetricName>,
pub value: f64,
pub training_step: i32,
pub wall_time_secs: f64,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a MetricValue {
fn default() -> &'a MetricValue {
<MetricValue as ::protobuf::Message>::default_instance()
}
}
impl MetricValue {
pub fn new() -> MetricValue {
::std::default::Default::default()
}
pub fn get_name(&self) -> &MetricName {
self.name.as_ref().unwrap_or_else(|| <MetricName as ::protobuf::Message>::default_instance())
}
pub fn clear_name(&mut self) {
self.name.clear();
}
pub fn has_name(&self) -> bool {
self.name.is_some()
}
pub fn set_name(&mut self, v: MetricName) {
self.name = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_name(&mut self) -> &mut MetricName {
if self.name.is_none() {
self.name.set_default();
}
self.name.as_mut().unwrap()
}
pub fn take_name(&mut self) -> MetricName {
self.name.take().unwrap_or_else(|| MetricName::new())
}
pub fn get_value(&self) -> f64 {
self.value
}
pub fn clear_value(&mut self) {
self.value = 0.;
}
pub fn set_value(&mut self, v: f64) {
self.value = v;
}
pub fn get_training_step(&self) -> i32 {
self.training_step
}
pub fn clear_training_step(&mut self) {
self.training_step = 0;
}
pub fn set_training_step(&mut self, v: i32) {
self.training_step = v;
}
pub fn get_wall_time_secs(&self) -> f64 {
self.wall_time_secs
}
pub fn clear_wall_time_secs(&mut self) {
self.wall_time_secs = 0.;
}
pub fn set_wall_time_secs(&mut self, v: f64) {
self.wall_time_secs = v;
}
}
impl ::protobuf::Message for MetricValue {
fn is_initialized(&self) -> bool {
for v in &self.name {
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_message_into(wire_type, is, &mut self.name)?;
},
2 => {
if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
let tmp = is.read_double()?;
self.value = tmp;
},
3 => {
if wire_type != ::protobuf::wire_format::WireTypeVarint {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
let tmp = is.read_int32()?;
self.training_step = tmp;
},
4 => {
if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
let tmp = is.read_double()?;
self.wall_time_secs = tmp;
},
_ => {
::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u32 {
let mut my_size = 0;
if let Some(ref v) = self.name.as_ref() {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
}
if self.value != 0. {
my_size += 9;
}
if self.training_step != 0 {
my_size += ::protobuf::rt::value_size(3, self.training_step, ::protobuf::wire_format::WireTypeVarint);
}
if self.wall_time_secs != 0. {
my_size += 9;
}
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 Some(ref v) = self.name.as_ref() {
os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
}
if self.value != 0. {
os.write_double(2, self.value)?;
}
if self.training_step != 0 {
os.write_int32(3, self.training_step)?;
}
if self.wall_time_secs != 0. {
os.write_double(4, self.wall_time_secs)?;
}
os.write_unknown_fields(self.get_unknown_fields())?;
::std::result::Result::Ok(())
}
fn get_cached_size(&self) -> u32 {
self.cached_size.get()
}
fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
&self.unknown_fields
}
fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
&mut self.unknown_fields
}
fn as_any(&self) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> MetricValue {
MetricValue::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<MetricName>>(
"name",
|m: &MetricValue| { &m.name },
|m: &mut MetricValue| { &mut m.name },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeDouble>(
"value",
|m: &MetricValue| { &m.value },
|m: &mut MetricValue| { &mut m.value },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
"training_step",
|m: &MetricValue| { &m.training_step },
|m: &mut MetricValue| { &mut m.training_step },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeDouble>(
"wall_time_secs",
|m: &MetricValue| { &m.wall_time_secs },
|m: &mut MetricValue| { &mut m.wall_time_secs },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<MetricValue>(
"MetricValue",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static MetricValue {
static instance: ::protobuf::rt::LazyV2<MetricValue> = ::protobuf::rt::LazyV2::INIT;
instance.get(MetricValue::new)
}
}
impl ::protobuf::Clear for MetricValue {
fn clear(&mut self) {
self.name.clear();
self.value = 0.;
self.training_step = 0;
self.wall_time_secs = 0.;
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for MetricValue {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for MetricValue {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct Session {
pub name: ::std::string::String,
pub start_time_secs: f64,
pub end_time_secs: f64,
pub status: Status,
pub model_uri: ::std::string::String,
pub metric_values: ::protobuf::RepeatedField<MetricValue>,
pub monitor_url: ::std::string::String,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a Session {
fn default() -> &'a Session {
<Session as ::protobuf::Message>::default_instance()
}
}
impl Session {
pub fn new() -> Session {
::std::default::Default::default()
}
pub fn get_name(&self) -> &str {
&self.name
}
pub fn clear_name(&mut self) {
self.name.clear();
}
pub fn set_name(&mut self, v: ::std::string::String) {
self.name = v;
}
pub fn mut_name(&mut self) -> &mut ::std::string::String {
&mut self.name
}
pub fn take_name(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.name, ::std::string::String::new())
}
pub fn get_start_time_secs(&self) -> f64 {
self.start_time_secs
}
pub fn clear_start_time_secs(&mut self) {
self.start_time_secs = 0.;
}
pub fn set_start_time_secs(&mut self, v: f64) {
self.start_time_secs = v;
}
pub fn get_end_time_secs(&self) -> f64 {
self.end_time_secs
}
pub fn clear_end_time_secs(&mut self) {
self.end_time_secs = 0.;
}
pub fn set_end_time_secs(&mut self, v: f64) {
self.end_time_secs = v;
}
pub fn get_status(&self) -> Status {
self.status
}
pub fn clear_status(&mut self) {
self.status = Status::STATUS_UNKNOWN;
}
pub fn set_status(&mut self, v: Status) {
self.status = v;
}
pub fn get_model_uri(&self) -> &str {
&self.model_uri
}
pub fn clear_model_uri(&mut self) {
self.model_uri.clear();
}
pub fn set_model_uri(&mut self, v: ::std::string::String) {
self.model_uri = v;
}
pub fn mut_model_uri(&mut self) -> &mut ::std::string::String {
&mut self.model_uri
}
pub fn take_model_uri(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.model_uri, ::std::string::String::new())
}
pub fn get_metric_values(&self) -> &[MetricValue] {
&self.metric_values
}
pub fn clear_metric_values(&mut self) {
self.metric_values.clear();
}
pub fn set_metric_values(&mut self, v: ::protobuf::RepeatedField<MetricValue>) {
self.metric_values = v;
}
pub fn mut_metric_values(&mut self) -> &mut ::protobuf::RepeatedField<MetricValue> {
&mut self.metric_values
}
pub fn take_metric_values(&mut self) -> ::protobuf::RepeatedField<MetricValue> {
::std::mem::replace(&mut self.metric_values, ::protobuf::RepeatedField::new())
}
pub fn get_monitor_url(&self) -> &str {
&self.monitor_url
}
pub fn clear_monitor_url(&mut self) {
self.monitor_url.clear();
}
pub fn set_monitor_url(&mut self, v: ::std::string::String) {
self.monitor_url = v;
}
pub fn mut_monitor_url(&mut self) -> &mut ::std::string::String {
&mut self.monitor_url
}
pub fn take_monitor_url(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.monitor_url, ::std::string::String::new())
}
}
impl ::protobuf::Message for Session {
fn is_initialized(&self) -> bool {
for v in &self.metric_values {
if !v.is_initialized() {
return false;
}
};
true
}
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
while !is.eof()? {
let (field_number, wire_type) = is.read_tag_unpack()?;
match field_number {
1 => {
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
},
2 => {
if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
let tmp = is.read_double()?;
self.start_time_secs = tmp;
},
3 => {
if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
let tmp = is.read_double()?;
self.end_time_secs = tmp;
},
4 => {
::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.status, 4, &mut self.unknown_fields)?
},
5 => {
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.model_uri)?;
},
6 => {
::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.metric_values)?;
},
7 => {
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.monitor_url)?;
},
_ => {
::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u32 {
let mut my_size = 0;
if !self.name.is_empty() {
my_size += ::protobuf::rt::string_size(1, &self.name);
}
if self.start_time_secs != 0. {
my_size += 9;
}
if self.end_time_secs != 0. {
my_size += 9;
}
if self.status != Status::STATUS_UNKNOWN {
my_size += ::protobuf::rt::enum_size(4, self.status);
}
if !self.model_uri.is_empty() {
my_size += ::protobuf::rt::string_size(5, &self.model_uri);
}
for value in &self.metric_values {
let len = value.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
};
if !self.monitor_url.is_empty() {
my_size += ::protobuf::rt::string_size(7, &self.monitor_url);
}
my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
self.cached_size.set(my_size);
my_size
}
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
if !self.name.is_empty() {
os.write_string(1, &self.name)?;
}
if self.start_time_secs != 0. {
os.write_double(2, self.start_time_secs)?;
}
if self.end_time_secs != 0. {
os.write_double(3, self.end_time_secs)?;
}
if self.status != Status::STATUS_UNKNOWN {
os.write_enum(4, ::protobuf::ProtobufEnum::value(&self.status))?;
}
if !self.model_uri.is_empty() {
os.write_string(5, &self.model_uri)?;
}
for v in &self.metric_values {
os.write_tag(6, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
};
if !self.monitor_url.is_empty() {
os.write_string(7, &self.monitor_url)?;
}
os.write_unknown_fields(self.get_unknown_fields())?;
::std::result::Result::Ok(())
}
fn get_cached_size(&self) -> u32 {
self.cached_size.get()
}
fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
&self.unknown_fields
}
fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
&mut self.unknown_fields
}
fn as_any(&self) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> Session {
Session::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"name",
|m: &Session| { &m.name },
|m: &mut Session| { &mut m.name },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeDouble>(
"start_time_secs",
|m: &Session| { &m.start_time_secs },
|m: &mut Session| { &mut m.start_time_secs },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeDouble>(
"end_time_secs",
|m: &Session| { &m.end_time_secs },
|m: &mut Session| { &mut m.end_time_secs },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<Status>>(
"status",
|m: &Session| { &m.status },
|m: &mut Session| { &mut m.status },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"model_uri",
|m: &Session| { &m.model_uri },
|m: &mut Session| { &mut m.model_uri },
));
fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<MetricValue>>(
"metric_values",
|m: &Session| { &m.metric_values },
|m: &mut Session| { &mut m.metric_values },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"monitor_url",
|m: &Session| { &m.monitor_url },
|m: &mut Session| { &mut m.monitor_url },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<Session>(
"Session",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static Session {
static instance: ::protobuf::rt::LazyV2<Session> = ::protobuf::rt::LazyV2::INIT;
instance.get(Session::new)
}
}
impl ::protobuf::Clear for Session {
fn clear(&mut self) {
self.name.clear();
self.start_time_secs = 0.;
self.end_time_secs = 0.;
self.status = Status::STATUS_UNKNOWN;
self.model_uri.clear();
self.metric_values.clear();
self.monitor_url.clear();
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for Session {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for Session {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct GetExperimentRequest {
pub experiment_name: ::std::string::String,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a GetExperimentRequest {
fn default() -> &'a GetExperimentRequest {
<GetExperimentRequest as ::protobuf::Message>::default_instance()
}
}
impl GetExperimentRequest {
pub fn new() -> GetExperimentRequest {
::std::default::Default::default()
}
pub fn get_experiment_name(&self) -> &str {
&self.experiment_name
}
pub fn clear_experiment_name(&mut self) {
self.experiment_name.clear();
}
pub fn set_experiment_name(&mut self, v: ::std::string::String) {
self.experiment_name = v;
}
pub fn mut_experiment_name(&mut self) -> &mut ::std::string::String {
&mut self.experiment_name
}
pub fn take_experiment_name(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.experiment_name, ::std::string::String::new())
}
}
impl ::protobuf::Message for GetExperimentRequest {
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_singular_proto3_string_into(wire_type, is, &mut self.experiment_name)?;
},
_ => {
::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u32 {
let mut my_size = 0;
if !self.experiment_name.is_empty() {
my_size += ::protobuf::rt::string_size(1, &self.experiment_name);
}
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.experiment_name.is_empty() {
os.write_string(1, &self.experiment_name)?;
}
os.write_unknown_fields(self.get_unknown_fields())?;
::std::result::Result::Ok(())
}
fn get_cached_size(&self) -> u32 {
self.cached_size.get()
}
fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
&self.unknown_fields
}
fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
&mut self.unknown_fields
}
fn as_any(&self) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> GetExperimentRequest {
GetExperimentRequest::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"experiment_name",
|m: &GetExperimentRequest| { &m.experiment_name },
|m: &mut GetExperimentRequest| { &mut m.experiment_name },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<GetExperimentRequest>(
"GetExperimentRequest",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static GetExperimentRequest {
static instance: ::protobuf::rt::LazyV2<GetExperimentRequest> = ::protobuf::rt::LazyV2::INIT;
instance.get(GetExperimentRequest::new)
}
}
impl ::protobuf::Clear for GetExperimentRequest {
fn clear(&mut self) {
self.experiment_name.clear();
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for GetExperimentRequest {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for GetExperimentRequest {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct ListSessionGroupsRequest {
pub experiment_name: ::std::string::String,
pub allowed_statuses: ::std::vec::Vec<Status>,
pub col_params: ::protobuf::RepeatedField<ColParams>,
pub aggregation_type: AggregationType,
pub aggregation_metric: ::protobuf::SingularPtrField<MetricName>,
pub start_index: i32,
pub slice_size: i32,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a ListSessionGroupsRequest {
fn default() -> &'a ListSessionGroupsRequest {
<ListSessionGroupsRequest as ::protobuf::Message>::default_instance()
}
}
impl ListSessionGroupsRequest {
pub fn new() -> ListSessionGroupsRequest {
::std::default::Default::default()
}
pub fn get_experiment_name(&self) -> &str {
&self.experiment_name
}
pub fn clear_experiment_name(&mut self) {
self.experiment_name.clear();
}
pub fn set_experiment_name(&mut self, v: ::std::string::String) {
self.experiment_name = v;
}
pub fn mut_experiment_name(&mut self) -> &mut ::std::string::String {
&mut self.experiment_name
}
pub fn take_experiment_name(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.experiment_name, ::std::string::String::new())
}
pub fn get_allowed_statuses(&self) -> &[Status] {
&self.allowed_statuses
}
pub fn clear_allowed_statuses(&mut self) {
self.allowed_statuses.clear();
}
pub fn set_allowed_statuses(&mut self, v: ::std::vec::Vec<Status>) {
self.allowed_statuses = v;
}
pub fn mut_allowed_statuses(&mut self) -> &mut ::std::vec::Vec<Status> {
&mut self.allowed_statuses
}
pub fn take_allowed_statuses(&mut self) -> ::std::vec::Vec<Status> {
::std::mem::replace(&mut self.allowed_statuses, ::std::vec::Vec::new())
}
pub fn get_col_params(&self) -> &[ColParams] {
&self.col_params
}
pub fn clear_col_params(&mut self) {
self.col_params.clear();
}
pub fn set_col_params(&mut self, v: ::protobuf::RepeatedField<ColParams>) {
self.col_params = v;
}
pub fn mut_col_params(&mut self) -> &mut ::protobuf::RepeatedField<ColParams> {
&mut self.col_params
}
pub fn take_col_params(&mut self) -> ::protobuf::RepeatedField<ColParams> {
::std::mem::replace(&mut self.col_params, ::protobuf::RepeatedField::new())
}
pub fn get_aggregation_type(&self) -> AggregationType {
self.aggregation_type
}
pub fn clear_aggregation_type(&mut self) {
self.aggregation_type = AggregationType::AGGREGATION_UNSET;
}
pub fn set_aggregation_type(&mut self, v: AggregationType) {
self.aggregation_type = v;
}
pub fn get_aggregation_metric(&self) -> &MetricName {
self.aggregation_metric.as_ref().unwrap_or_else(|| <MetricName as ::protobuf::Message>::default_instance())
}
pub fn clear_aggregation_metric(&mut self) {
self.aggregation_metric.clear();
}
pub fn has_aggregation_metric(&self) -> bool {
self.aggregation_metric.is_some()
}
pub fn set_aggregation_metric(&mut self, v: MetricName) {
self.aggregation_metric = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_aggregation_metric(&mut self) -> &mut MetricName {
if self.aggregation_metric.is_none() {
self.aggregation_metric.set_default();
}
self.aggregation_metric.as_mut().unwrap()
}
pub fn take_aggregation_metric(&mut self) -> MetricName {
self.aggregation_metric.take().unwrap_or_else(|| MetricName::new())
}
pub fn get_start_index(&self) -> i32 {
self.start_index
}
pub fn clear_start_index(&mut self) {
self.start_index = 0;
}
pub fn set_start_index(&mut self, v: i32) {
self.start_index = v;
}
pub fn get_slice_size(&self) -> i32 {
self.slice_size
}
pub fn clear_slice_size(&mut self) {
self.slice_size = 0;
}
pub fn set_slice_size(&mut self, v: i32) {
self.slice_size = v;
}
}
impl ::protobuf::Message for ListSessionGroupsRequest {
fn is_initialized(&self) -> bool {
for v in &self.col_params {
if !v.is_initialized() {
return false;
}
};
for v in &self.aggregation_metric {
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 {
6 => {
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.experiment_name)?;
},
7 => {
::protobuf::rt::read_repeated_enum_with_unknown_fields_into(wire_type, is, &mut self.allowed_statuses, 7, &mut self.unknown_fields)?
},
1 => {
::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.col_params)?;
},
2 => {
::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.aggregation_type, 2, &mut self.unknown_fields)?
},
3 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.aggregation_metric)?;
},
4 => {
if wire_type != ::protobuf::wire_format::WireTypeVarint {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
let tmp = is.read_int32()?;
self.start_index = tmp;
},
5 => {
if wire_type != ::protobuf::wire_format::WireTypeVarint {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
let tmp = is.read_int32()?;
self.slice_size = tmp;
},
_ => {
::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u32 {
let mut my_size = 0;
if !self.experiment_name.is_empty() {
my_size += ::protobuf::rt::string_size(6, &self.experiment_name);
}
for value in &self.allowed_statuses {
my_size += ::protobuf::rt::enum_size(7, *value);
};
for value in &self.col_params {
let len = value.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
};
if self.aggregation_type != AggregationType::AGGREGATION_UNSET {
my_size += ::protobuf::rt::enum_size(2, self.aggregation_type);
}
if let Some(ref v) = self.aggregation_metric.as_ref() {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
}
if self.start_index != 0 {
my_size += ::protobuf::rt::value_size(4, self.start_index, ::protobuf::wire_format::WireTypeVarint);
}
if self.slice_size != 0 {
my_size += ::protobuf::rt::value_size(5, self.slice_size, ::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.experiment_name.is_empty() {
os.write_string(6, &self.experiment_name)?;
}
for v in &self.allowed_statuses {
os.write_enum(7, ::protobuf::ProtobufEnum::value(v))?;
};
for v in &self.col_params {
os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
};
if self.aggregation_type != AggregationType::AGGREGATION_UNSET {
os.write_enum(2, ::protobuf::ProtobufEnum::value(&self.aggregation_type))?;
}
if let Some(ref v) = self.aggregation_metric.as_ref() {
os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
}
if self.start_index != 0 {
os.write_int32(4, self.start_index)?;
}
if self.slice_size != 0 {
os.write_int32(5, self.slice_size)?;
}
os.write_unknown_fields(self.get_unknown_fields())?;
::std::result::Result::Ok(())
}
fn get_cached_size(&self) -> u32 {
self.cached_size.get()
}
fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
&self.unknown_fields
}
fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
&mut self.unknown_fields
}
fn as_any(&self) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> ListSessionGroupsRequest {
ListSessionGroupsRequest::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"experiment_name",
|m: &ListSessionGroupsRequest| { &m.experiment_name },
|m: &mut ListSessionGroupsRequest| { &mut m.experiment_name },
));
fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeEnum<Status>>(
"allowed_statuses",
|m: &ListSessionGroupsRequest| { &m.allowed_statuses },
|m: &mut ListSessionGroupsRequest| { &mut m.allowed_statuses },
));
fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<ColParams>>(
"col_params",
|m: &ListSessionGroupsRequest| { &m.col_params },
|m: &mut ListSessionGroupsRequest| { &mut m.col_params },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<AggregationType>>(
"aggregation_type",
|m: &ListSessionGroupsRequest| { &m.aggregation_type },
|m: &mut ListSessionGroupsRequest| { &mut m.aggregation_type },
));
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<MetricName>>(
"aggregation_metric",
|m: &ListSessionGroupsRequest| { &m.aggregation_metric },
|m: &mut ListSessionGroupsRequest| { &mut m.aggregation_metric },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
"start_index",
|m: &ListSessionGroupsRequest| { &m.start_index },
|m: &mut ListSessionGroupsRequest| { &mut m.start_index },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
"slice_size",
|m: &ListSessionGroupsRequest| { &m.slice_size },
|m: &mut ListSessionGroupsRequest| { &mut m.slice_size },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<ListSessionGroupsRequest>(
"ListSessionGroupsRequest",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static ListSessionGroupsRequest {
static instance: ::protobuf::rt::LazyV2<ListSessionGroupsRequest> = ::protobuf::rt::LazyV2::INIT;
instance.get(ListSessionGroupsRequest::new)
}
}
impl ::protobuf::Clear for ListSessionGroupsRequest {
fn clear(&mut self) {
self.experiment_name.clear();
self.allowed_statuses.clear();
self.col_params.clear();
self.aggregation_type = AggregationType::AGGREGATION_UNSET;
self.aggregation_metric.clear();
self.start_index = 0;
self.slice_size = 0;
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for ListSessionGroupsRequest {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for ListSessionGroupsRequest {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct ColParams {
pub order: SortOrder,
pub missing_values_first: bool,
pub exclude_missing_values: bool,
pub name: ::std::option::Option<ColParams_oneof_name>,
pub filter: ::std::option::Option<ColParams_oneof_filter>,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a ColParams {
fn default() -> &'a ColParams {
<ColParams as ::protobuf::Message>::default_instance()
}
}
#[derive(Clone,PartialEq,Debug)]
pub enum ColParams_oneof_name {
metric(MetricName),
hparam(::std::string::String),
}
#[derive(Clone,PartialEq,Debug)]
pub enum ColParams_oneof_filter {
filter_regexp(::std::string::String),
filter_interval(Interval),
filter_discrete(::protobuf::well_known_types::ListValue),
}
impl ColParams {
pub fn new() -> ColParams {
::std::default::Default::default()
}
pub fn get_metric(&self) -> &MetricName {
match self.name {
::std::option::Option::Some(ColParams_oneof_name::metric(ref v)) => v,
_ => <MetricName as ::protobuf::Message>::default_instance(),
}
}
pub fn clear_metric(&mut self) {
self.name = ::std::option::Option::None;
}
pub fn has_metric(&self) -> bool {
match self.name {
::std::option::Option::Some(ColParams_oneof_name::metric(..)) => true,
_ => false,
}
}
pub fn set_metric(&mut self, v: MetricName) {
self.name = ::std::option::Option::Some(ColParams_oneof_name::metric(v))
}
pub fn mut_metric(&mut self) -> &mut MetricName {
if let ::std::option::Option::Some(ColParams_oneof_name::metric(_)) = self.name {
} else {
self.name = ::std::option::Option::Some(ColParams_oneof_name::metric(MetricName::new()));
}
match self.name {
::std::option::Option::Some(ColParams_oneof_name::metric(ref mut v)) => v,
_ => panic!(),
}
}
pub fn take_metric(&mut self) -> MetricName {
if self.has_metric() {
match self.name.take() {
::std::option::Option::Some(ColParams_oneof_name::metric(v)) => v,
_ => panic!(),
}
} else {
MetricName::new()
}
}
pub fn get_hparam(&self) -> &str {
match self.name {
::std::option::Option::Some(ColParams_oneof_name::hparam(ref v)) => v,
_ => "",
}
}
pub fn clear_hparam(&mut self) {
self.name = ::std::option::Option::None;
}
pub fn has_hparam(&self) -> bool {
match self.name {
::std::option::Option::Some(ColParams_oneof_name::hparam(..)) => true,
_ => false,
}
}
pub fn set_hparam(&mut self, v: ::std::string::String) {
self.name = ::std::option::Option::Some(ColParams_oneof_name::hparam(v))
}
pub fn mut_hparam(&mut self) -> &mut ::std::string::String {
if let ::std::option::Option::Some(ColParams_oneof_name::hparam(_)) = self.name {
} else {
self.name = ::std::option::Option::Some(ColParams_oneof_name::hparam(::std::string::String::new()));
}
match self.name {
::std::option::Option::Some(ColParams_oneof_name::hparam(ref mut v)) => v,
_ => panic!(),
}
}
pub fn take_hparam(&mut self) -> ::std::string::String {
if self.has_hparam() {
match self.name.take() {
::std::option::Option::Some(ColParams_oneof_name::hparam(v)) => v,
_ => panic!(),
}
} else {
::std::string::String::new()
}
}
pub fn get_order(&self) -> SortOrder {
self.order
}
pub fn clear_order(&mut self) {
self.order = SortOrder::ORDER_UNSPECIFIED;
}
pub fn set_order(&mut self, v: SortOrder) {
self.order = v;
}
pub fn get_missing_values_first(&self) -> bool {
self.missing_values_first
}
pub fn clear_missing_values_first(&mut self) {
self.missing_values_first = false;
}
pub fn set_missing_values_first(&mut self, v: bool) {
self.missing_values_first = v;
}
pub fn get_filter_regexp(&self) -> &str {
match self.filter {
::std::option::Option::Some(ColParams_oneof_filter::filter_regexp(ref v)) => v,
_ => "",
}
}
pub fn clear_filter_regexp(&mut self) {
self.filter = ::std::option::Option::None;
}
pub fn has_filter_regexp(&self) -> bool {
match self.filter {
::std::option::Option::Some(ColParams_oneof_filter::filter_regexp(..)) => true,
_ => false,
}
}
pub fn set_filter_regexp(&mut self, v: ::std::string::String) {
self.filter = ::std::option::Option::Some(ColParams_oneof_filter::filter_regexp(v))
}
pub fn mut_filter_regexp(&mut self) -> &mut ::std::string::String {
if let ::std::option::Option::Some(ColParams_oneof_filter::filter_regexp(_)) = self.filter {
} else {
self.filter = ::std::option::Option::Some(ColParams_oneof_filter::filter_regexp(::std::string::String::new()));
}
match self.filter {
::std::option::Option::Some(ColParams_oneof_filter::filter_regexp(ref mut v)) => v,
_ => panic!(),
}
}
pub fn take_filter_regexp(&mut self) -> ::std::string::String {
if self.has_filter_regexp() {
match self.filter.take() {
::std::option::Option::Some(ColParams_oneof_filter::filter_regexp(v)) => v,
_ => panic!(),
}
} else {
::std::string::String::new()
}
}
pub fn get_filter_interval(&self) -> &Interval {
match self.filter {
::std::option::Option::Some(ColParams_oneof_filter::filter_interval(ref v)) => v,
_ => <Interval as ::protobuf::Message>::default_instance(),
}
}
pub fn clear_filter_interval(&mut self) {
self.filter = ::std::option::Option::None;
}
pub fn has_filter_interval(&self) -> bool {
match self.filter {
::std::option::Option::Some(ColParams_oneof_filter::filter_interval(..)) => true,
_ => false,
}
}
pub fn set_filter_interval(&mut self, v: Interval) {
self.filter = ::std::option::Option::Some(ColParams_oneof_filter::filter_interval(v))
}
pub fn mut_filter_interval(&mut self) -> &mut Interval {
if let ::std::option::Option::Some(ColParams_oneof_filter::filter_interval(_)) = self.filter {
} else {
self.filter = ::std::option::Option::Some(ColParams_oneof_filter::filter_interval(Interval::new()));
}
match self.filter {
::std::option::Option::Some(ColParams_oneof_filter::filter_interval(ref mut v)) => v,
_ => panic!(),
}
}
pub fn take_filter_interval(&mut self) -> Interval {
if self.has_filter_interval() {
match self.filter.take() {
::std::option::Option::Some(ColParams_oneof_filter::filter_interval(v)) => v,
_ => panic!(),
}
} else {
Interval::new()
}
}
pub fn get_filter_discrete(&self) -> &::protobuf::well_known_types::ListValue {
match self.filter {
::std::option::Option::Some(ColParams_oneof_filter::filter_discrete(ref v)) => v,
_ => <::protobuf::well_known_types::ListValue as ::protobuf::Message>::default_instance(),
}
}
pub fn clear_filter_discrete(&mut self) {
self.filter = ::std::option::Option::None;
}
pub fn has_filter_discrete(&self) -> bool {
match self.filter {
::std::option::Option::Some(ColParams_oneof_filter::filter_discrete(..)) => true,
_ => false,
}
}
pub fn set_filter_discrete(&mut self, v: ::protobuf::well_known_types::ListValue) {
self.filter = ::std::option::Option::Some(ColParams_oneof_filter::filter_discrete(v))
}
pub fn mut_filter_discrete(&mut self) -> &mut ::protobuf::well_known_types::ListValue {
if let ::std::option::Option::Some(ColParams_oneof_filter::filter_discrete(_)) = self.filter {
} else {
self.filter = ::std::option::Option::Some(ColParams_oneof_filter::filter_discrete(::protobuf::well_known_types::ListValue::new()));
}
match self.filter {
::std::option::Option::Some(ColParams_oneof_filter::filter_discrete(ref mut v)) => v,
_ => panic!(),
}
}
pub fn take_filter_discrete(&mut self) -> ::protobuf::well_known_types::ListValue {
if self.has_filter_discrete() {
match self.filter.take() {
::std::option::Option::Some(ColParams_oneof_filter::filter_discrete(v)) => v,
_ => panic!(),
}
} else {
::protobuf::well_known_types::ListValue::new()
}
}
pub fn get_exclude_missing_values(&self) -> bool {
self.exclude_missing_values
}
pub fn clear_exclude_missing_values(&mut self) {
self.exclude_missing_values = false;
}
pub fn set_exclude_missing_values(&mut self, v: bool) {
self.exclude_missing_values = v;
}
}
impl ::protobuf::Message for ColParams {
fn is_initialized(&self) -> bool {
if let Some(ColParams_oneof_name::metric(ref v)) = self.name {
if !v.is_initialized() {
return false;
}
}
if let Some(ColParams_oneof_filter::filter_interval(ref v)) = self.filter {
if !v.is_initialized() {
return false;
}
}
if let Some(ColParams_oneof_filter::filter_discrete(ref v)) = self.filter {
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 => {
if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
self.name = ::std::option::Option::Some(ColParams_oneof_name::metric(is.read_message()?));
},
2 => {
if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
self.name = ::std::option::Option::Some(ColParams_oneof_name::hparam(is.read_string()?));
},
3 => {
::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.order, 3, &mut self.unknown_fields)?
},
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.missing_values_first = tmp;
},
5 => {
if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
self.filter = ::std::option::Option::Some(ColParams_oneof_filter::filter_regexp(is.read_string()?));
},
6 => {
if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
self.filter = ::std::option::Option::Some(ColParams_oneof_filter::filter_interval(is.read_message()?));
},
7 => {
if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
self.filter = ::std::option::Option::Some(ColParams_oneof_filter::filter_discrete(is.read_message()?));
},
8 => {
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.exclude_missing_values = tmp;
},
_ => {
::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u32 {
let mut my_size = 0;
if self.order != SortOrder::ORDER_UNSPECIFIED {
my_size += ::protobuf::rt::enum_size(3, self.order);
}
if self.missing_values_first != false {
my_size += 2;
}
if self.exclude_missing_values != false {
my_size += 2;
}
if let ::std::option::Option::Some(ref v) = self.name {
match v {
&ColParams_oneof_name::metric(ref v) => {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
},
&ColParams_oneof_name::hparam(ref v) => {
my_size += ::protobuf::rt::string_size(2, &v);
},
};
}
if let ::std::option::Option::Some(ref v) = self.filter {
match v {
&ColParams_oneof_filter::filter_regexp(ref v) => {
my_size += ::protobuf::rt::string_size(5, &v);
},
&ColParams_oneof_filter::filter_interval(ref v) => {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
},
&ColParams_oneof_filter::filter_discrete(ref v) => {
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.order != SortOrder::ORDER_UNSPECIFIED {
os.write_enum(3, ::protobuf::ProtobufEnum::value(&self.order))?;
}
if self.missing_values_first != false {
os.write_bool(4, self.missing_values_first)?;
}
if self.exclude_missing_values != false {
os.write_bool(8, self.exclude_missing_values)?;
}
if let ::std::option::Option::Some(ref v) = self.name {
match v {
&ColParams_oneof_name::metric(ref v) => {
os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
},
&ColParams_oneof_name::hparam(ref v) => {
os.write_string(2, v)?;
},
};
}
if let ::std::option::Option::Some(ref v) = self.filter {
match v {
&ColParams_oneof_filter::filter_regexp(ref v) => {
os.write_string(5, v)?;
},
&ColParams_oneof_filter::filter_interval(ref v) => {
os.write_tag(6, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
},
&ColParams_oneof_filter::filter_discrete(ref v) => {
os.write_tag(7, ::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: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> ColParams {
ColParams::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, MetricName>(
"metric",
ColParams::has_metric,
ColParams::get_metric,
));
fields.push(::protobuf::reflect::accessor::make_singular_string_accessor::<_>(
"hparam",
ColParams::has_hparam,
ColParams::get_hparam,
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<SortOrder>>(
"order",
|m: &ColParams| { &m.order },
|m: &mut ColParams| { &mut m.order },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
"missing_values_first",
|m: &ColParams| { &m.missing_values_first },
|m: &mut ColParams| { &mut m.missing_values_first },
));
fields.push(::protobuf::reflect::accessor::make_singular_string_accessor::<_>(
"filter_regexp",
ColParams::has_filter_regexp,
ColParams::get_filter_regexp,
));
fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, Interval>(
"filter_interval",
ColParams::has_filter_interval,
ColParams::get_filter_interval,
));
fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, ::protobuf::well_known_types::ListValue>(
"filter_discrete",
ColParams::has_filter_discrete,
ColParams::get_filter_discrete,
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
"exclude_missing_values",
|m: &ColParams| { &m.exclude_missing_values },
|m: &mut ColParams| { &mut m.exclude_missing_values },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<ColParams>(
"ColParams",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static ColParams {
static instance: ::protobuf::rt::LazyV2<ColParams> = ::protobuf::rt::LazyV2::INIT;
instance.get(ColParams::new)
}
}
impl ::protobuf::Clear for ColParams {
fn clear(&mut self) {
self.name = ::std::option::Option::None;
self.name = ::std::option::Option::None;
self.order = SortOrder::ORDER_UNSPECIFIED;
self.missing_values_first = false;
self.filter = ::std::option::Option::None;
self.filter = ::std::option::Option::None;
self.filter = ::std::option::Option::None;
self.exclude_missing_values = false;
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for ColParams {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for ColParams {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct ListSessionGroupsResponse {
pub session_groups: ::protobuf::RepeatedField<SessionGroup>,
pub total_size: i32,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a ListSessionGroupsResponse {
fn default() -> &'a ListSessionGroupsResponse {
<ListSessionGroupsResponse as ::protobuf::Message>::default_instance()
}
}
impl ListSessionGroupsResponse {
pub fn new() -> ListSessionGroupsResponse {
::std::default::Default::default()
}
pub fn get_session_groups(&self) -> &[SessionGroup] {
&self.session_groups
}
pub fn clear_session_groups(&mut self) {
self.session_groups.clear();
}
pub fn set_session_groups(&mut self, v: ::protobuf::RepeatedField<SessionGroup>) {
self.session_groups = v;
}
pub fn mut_session_groups(&mut self) -> &mut ::protobuf::RepeatedField<SessionGroup> {
&mut self.session_groups
}
pub fn take_session_groups(&mut self) -> ::protobuf::RepeatedField<SessionGroup> {
::std::mem::replace(&mut self.session_groups, ::protobuf::RepeatedField::new())
}
pub fn get_total_size(&self) -> i32 {
self.total_size
}
pub fn clear_total_size(&mut self) {
self.total_size = 0;
}
pub fn set_total_size(&mut self, v: i32) {
self.total_size = v;
}
}
impl ::protobuf::Message for ListSessionGroupsResponse {
fn is_initialized(&self) -> bool {
for v in &self.session_groups {
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_repeated_message_into(wire_type, is, &mut self.session_groups)?;
},
3 => {
if wire_type != ::protobuf::wire_format::WireTypeVarint {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
let tmp = is.read_int32()?;
self.total_size = tmp;
},
_ => {
::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u32 {
let mut my_size = 0;
for value in &self.session_groups {
let len = value.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
};
if self.total_size != 0 {
my_size += ::protobuf::rt::value_size(3, self.total_size, ::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.session_groups {
os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
};
if self.total_size != 0 {
os.write_int32(3, self.total_size)?;
}
os.write_unknown_fields(self.get_unknown_fields())?;
::std::result::Result::Ok(())
}
fn get_cached_size(&self) -> u32 {
self.cached_size.get()
}
fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
&self.unknown_fields
}
fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
&mut self.unknown_fields
}
fn as_any(&self) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> ListSessionGroupsResponse {
ListSessionGroupsResponse::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<SessionGroup>>(
"session_groups",
|m: &ListSessionGroupsResponse| { &m.session_groups },
|m: &mut ListSessionGroupsResponse| { &mut m.session_groups },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
"total_size",
|m: &ListSessionGroupsResponse| { &m.total_size },
|m: &mut ListSessionGroupsResponse| { &mut m.total_size },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<ListSessionGroupsResponse>(
"ListSessionGroupsResponse",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static ListSessionGroupsResponse {
static instance: ::protobuf::rt::LazyV2<ListSessionGroupsResponse> = ::protobuf::rt::LazyV2::INIT;
instance.get(ListSessionGroupsResponse::new)
}
}
impl ::protobuf::Clear for ListSessionGroupsResponse {
fn clear(&mut self) {
self.session_groups.clear();
self.total_size = 0;
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for ListSessionGroupsResponse {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for ListSessionGroupsResponse {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct ListMetricEvalsRequest {
pub experiment_name: ::std::string::String,
pub session_name: ::std::string::String,
pub metric_name: ::protobuf::SingularPtrField<MetricName>,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a ListMetricEvalsRequest {
fn default() -> &'a ListMetricEvalsRequest {
<ListMetricEvalsRequest as ::protobuf::Message>::default_instance()
}
}
impl ListMetricEvalsRequest {
pub fn new() -> ListMetricEvalsRequest {
::std::default::Default::default()
}
pub fn get_experiment_name(&self) -> &str {
&self.experiment_name
}
pub fn clear_experiment_name(&mut self) {
self.experiment_name.clear();
}
pub fn set_experiment_name(&mut self, v: ::std::string::String) {
self.experiment_name = v;
}
pub fn mut_experiment_name(&mut self) -> &mut ::std::string::String {
&mut self.experiment_name
}
pub fn take_experiment_name(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.experiment_name, ::std::string::String::new())
}
pub fn get_session_name(&self) -> &str {
&self.session_name
}
pub fn clear_session_name(&mut self) {
self.session_name.clear();
}
pub fn set_session_name(&mut self, v: ::std::string::String) {
self.session_name = v;
}
pub fn mut_session_name(&mut self) -> &mut ::std::string::String {
&mut self.session_name
}
pub fn take_session_name(&mut self) -> ::std::string::String {
::std::mem::replace(&mut self.session_name, ::std::string::String::new())
}
pub fn get_metric_name(&self) -> &MetricName {
self.metric_name.as_ref().unwrap_or_else(|| <MetricName as ::protobuf::Message>::default_instance())
}
pub fn clear_metric_name(&mut self) {
self.metric_name.clear();
}
pub fn has_metric_name(&self) -> bool {
self.metric_name.is_some()
}
pub fn set_metric_name(&mut self, v: MetricName) {
self.metric_name = ::protobuf::SingularPtrField::some(v);
}
pub fn mut_metric_name(&mut self) -> &mut MetricName {
if self.metric_name.is_none() {
self.metric_name.set_default();
}
self.metric_name.as_mut().unwrap()
}
pub fn take_metric_name(&mut self) -> MetricName {
self.metric_name.take().unwrap_or_else(|| MetricName::new())
}
}
impl ::protobuf::Message for ListMetricEvalsRequest {
fn is_initialized(&self) -> bool {
for v in &self.metric_name {
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 {
3 => {
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.experiment_name)?;
},
1 => {
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.session_name)?;
},
2 => {
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.metric_name)?;
},
_ => {
::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u32 {
let mut my_size = 0;
if !self.experiment_name.is_empty() {
my_size += ::protobuf::rt::string_size(3, &self.experiment_name);
}
if !self.session_name.is_empty() {
my_size += ::protobuf::rt::string_size(1, &self.session_name);
}
if let Some(ref v) = self.metric_name.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.experiment_name.is_empty() {
os.write_string(3, &self.experiment_name)?;
}
if !self.session_name.is_empty() {
os.write_string(1, &self.session_name)?;
}
if let Some(ref v) = self.metric_name.as_ref() {
os.write_tag(2, ::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: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> ListMetricEvalsRequest {
ListMetricEvalsRequest::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"experiment_name",
|m: &ListMetricEvalsRequest| { &m.experiment_name },
|m: &mut ListMetricEvalsRequest| { &mut m.experiment_name },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
"session_name",
|m: &ListMetricEvalsRequest| { &m.session_name },
|m: &mut ListMetricEvalsRequest| { &mut m.session_name },
));
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<MetricName>>(
"metric_name",
|m: &ListMetricEvalsRequest| { &m.metric_name },
|m: &mut ListMetricEvalsRequest| { &mut m.metric_name },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<ListMetricEvalsRequest>(
"ListMetricEvalsRequest",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static ListMetricEvalsRequest {
static instance: ::protobuf::rt::LazyV2<ListMetricEvalsRequest> = ::protobuf::rt::LazyV2::INIT;
instance.get(ListMetricEvalsRequest::new)
}
}
impl ::protobuf::Clear for ListMetricEvalsRequest {
fn clear(&mut self) {
self.experiment_name.clear();
self.session_name.clear();
self.metric_name.clear();
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for ListMetricEvalsRequest {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for ListMetricEvalsRequest {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(Clone,PartialEq,Eq,Debug,Hash)]
pub enum DataType {
DATA_TYPE_UNSET = 0,
DATA_TYPE_STRING = 1,
DATA_TYPE_BOOL = 2,
DATA_TYPE_FLOAT64 = 3,
}
impl ::protobuf::ProtobufEnum for DataType {
fn value(&self) -> i32 {
*self as i32
}
fn from_i32(value: i32) -> ::std::option::Option<DataType> {
match value {
0 => ::std::option::Option::Some(DataType::DATA_TYPE_UNSET),
1 => ::std::option::Option::Some(DataType::DATA_TYPE_STRING),
2 => ::std::option::Option::Some(DataType::DATA_TYPE_BOOL),
3 => ::std::option::Option::Some(DataType::DATA_TYPE_FLOAT64),
_ => ::std::option::Option::None
}
}
fn values() -> &'static [Self] {
static values: &'static [DataType] = &[
DataType::DATA_TYPE_UNSET,
DataType::DATA_TYPE_STRING,
DataType::DATA_TYPE_BOOL,
DataType::DATA_TYPE_FLOAT64,
];
values
}
fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
::protobuf::reflect::EnumDescriptor::new_pb_name::<DataType>("DataType", file_descriptor_proto())
})
}
}
impl ::std::marker::Copy for DataType {
}
impl ::std::default::Default for DataType {
fn default() -> Self {
DataType::DATA_TYPE_UNSET
}
}
impl ::protobuf::reflect::ProtobufValue for DataType {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
}
}
#[derive(Clone,PartialEq,Eq,Debug,Hash)]
pub enum DatasetType {
DATASET_UNKNOWN = 0,
DATASET_TRAINING = 1,
DATASET_VALIDATION = 2,
}
impl ::protobuf::ProtobufEnum for DatasetType {
fn value(&self) -> i32 {
*self as i32
}
fn from_i32(value: i32) -> ::std::option::Option<DatasetType> {
match value {
0 => ::std::option::Option::Some(DatasetType::DATASET_UNKNOWN),
1 => ::std::option::Option::Some(DatasetType::DATASET_TRAINING),
2 => ::std::option::Option::Some(DatasetType::DATASET_VALIDATION),
_ => ::std::option::Option::None
}
}
fn values() -> &'static [Self] {
static values: &'static [DatasetType] = &[
DatasetType::DATASET_UNKNOWN,
DatasetType::DATASET_TRAINING,
DatasetType::DATASET_VALIDATION,
];
values
}
fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
::protobuf::reflect::EnumDescriptor::new_pb_name::<DatasetType>("DatasetType", file_descriptor_proto())
})
}
}
impl ::std::marker::Copy for DatasetType {
}
impl ::std::default::Default for DatasetType {
fn default() -> Self {
DatasetType::DATASET_UNKNOWN
}
}
impl ::protobuf::reflect::ProtobufValue for DatasetType {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
}
}
#[derive(Clone,PartialEq,Eq,Debug,Hash)]
pub enum Status {
STATUS_UNKNOWN = 0,
STATUS_SUCCESS = 1,
STATUS_FAILURE = 2,
STATUS_RUNNING = 3,
}
impl ::protobuf::ProtobufEnum for Status {
fn value(&self) -> i32 {
*self as i32
}
fn from_i32(value: i32) -> ::std::option::Option<Status> {
match value {
0 => ::std::option::Option::Some(Status::STATUS_UNKNOWN),
1 => ::std::option::Option::Some(Status::STATUS_SUCCESS),
2 => ::std::option::Option::Some(Status::STATUS_FAILURE),
3 => ::std::option::Option::Some(Status::STATUS_RUNNING),
_ => ::std::option::Option::None
}
}
fn values() -> &'static [Self] {
static values: &'static [Status] = &[
Status::STATUS_UNKNOWN,
Status::STATUS_SUCCESS,
Status::STATUS_FAILURE,
Status::STATUS_RUNNING,
];
values
}
fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
::protobuf::reflect::EnumDescriptor::new_pb_name::<Status>("Status", file_descriptor_proto())
})
}
}
impl ::std::marker::Copy for Status {
}
impl ::std::default::Default for Status {
fn default() -> Self {
Status::STATUS_UNKNOWN
}
}
impl ::protobuf::reflect::ProtobufValue for Status {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
}
}
#[derive(Clone,PartialEq,Eq,Debug,Hash)]
pub enum SortOrder {
ORDER_UNSPECIFIED = 0,
ORDER_ASC = 1,
ORDER_DESC = 2,
}
impl ::protobuf::ProtobufEnum for SortOrder {
fn value(&self) -> i32 {
*self as i32
}
fn from_i32(value: i32) -> ::std::option::Option<SortOrder> {
match value {
0 => ::std::option::Option::Some(SortOrder::ORDER_UNSPECIFIED),
1 => ::std::option::Option::Some(SortOrder::ORDER_ASC),
2 => ::std::option::Option::Some(SortOrder::ORDER_DESC),
_ => ::std::option::Option::None
}
}
fn values() -> &'static [Self] {
static values: &'static [SortOrder] = &[
SortOrder::ORDER_UNSPECIFIED,
SortOrder::ORDER_ASC,
SortOrder::ORDER_DESC,
];
values
}
fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
::protobuf::reflect::EnumDescriptor::new_pb_name::<SortOrder>("SortOrder", file_descriptor_proto())
})
}
}
impl ::std::marker::Copy for SortOrder {
}
impl ::std::default::Default for SortOrder {
fn default() -> Self {
SortOrder::ORDER_UNSPECIFIED
}
}
impl ::protobuf::reflect::ProtobufValue for SortOrder {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
}
}
#[derive(Clone,PartialEq,Eq,Debug,Hash)]
pub enum AggregationType {
AGGREGATION_UNSET = 0,
AGGREGATION_AVG = 1,
AGGREGATION_MEDIAN = 2,
AGGREGATION_MIN = 3,
AGGREGATION_MAX = 4,
}
impl ::protobuf::ProtobufEnum for AggregationType {
fn value(&self) -> i32 {
*self as i32
}
fn from_i32(value: i32) -> ::std::option::Option<AggregationType> {
match value {
0 => ::std::option::Option::Some(AggregationType::AGGREGATION_UNSET),
1 => ::std::option::Option::Some(AggregationType::AGGREGATION_AVG),
2 => ::std::option::Option::Some(AggregationType::AGGREGATION_MEDIAN),
3 => ::std::option::Option::Some(AggregationType::AGGREGATION_MIN),
4 => ::std::option::Option::Some(AggregationType::AGGREGATION_MAX),
_ => ::std::option::Option::None
}
}
fn values() -> &'static [Self] {
static values: &'static [AggregationType] = &[
AggregationType::AGGREGATION_UNSET,
AggregationType::AGGREGATION_AVG,
AggregationType::AGGREGATION_MEDIAN,
AggregationType::AGGREGATION_MIN,
AggregationType::AGGREGATION_MAX,
];
values
}
fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
::protobuf::reflect::EnumDescriptor::new_pb_name::<AggregationType>("AggregationType", file_descriptor_proto())
})
}
}
impl ::std::marker::Copy for AggregationType {
}
impl ::std::default::Default for AggregationType {
fn default() -> Self {
AggregationType::AGGREGATION_UNSET
}
}
impl ::protobuf::reflect::ProtobufValue for AggregationType {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
}
}
static file_descriptor_proto_data: &'static [u8] = b"\
\n\rsrc/api.proto\x12\x14tensorboardrs.hparam\x1a\x1cgoogle/protobuf/str\
uct.proto\"\x8c\x02\n\nExperiment\x12\x12\n\x04name\x18\x06\x20\x01(\tR\
\x04name\x12\x20\n\x0bdescription\x18\x01\x20\x01(\tR\x0bdescription\x12\
\x12\n\x04user\x18\x02\x20\x01(\tR\x04user\x12*\n\x11time_created_secs\
\x18\x03\x20\x01(\x01R\x0ftimeCreatedSecs\x12C\n\x0chparam_infos\x18\x04\
\x20\x03(\x0b2\x20.tensorboardrs.hparam.HParamInfoR\x0bhparamInfos\x12C\
\n\x0cmetric_infos\x18\x05\x20\x03(\x0b2\x20.tensorboardrs.hparam.Metric\
InfoR\x0bmetricInfos\"\xb5\x02\n\nHParamInfo\x12\x12\n\x04name\x18\x01\
\x20\x01(\tR\x04name\x12!\n\x0cdisplay_name\x18\x02\x20\x01(\tR\x0bdispl\
ayName\x12\x20\n\x0bdescription\x18\x03\x20\x01(\tR\x0bdescription\x122\
\n\x04type\x18\x04\x20\x01(\x0e2\x1e.tensorboardrs.hparam.DataTypeR\x04t\
ype\x12E\n\x0fdomain_discrete\x18\x05\x20\x01(\x0b2\x1a.google.protobuf.\
ListValueH\0R\x0edomainDiscrete\x12I\n\x0fdomain_interval\x18\x06\x20\
\x01(\x0b2\x1e.tensorboardrs.hparam.IntervalH\0R\x0edomainIntervalB\x08\
\n\x06domain\"D\n\x08Interval\x12\x1b\n\tmin_value\x18\x01\x20\x01(\x01R\
\x08minValue\x12\x1b\n\tmax_value\x18\x02\x20\x01(\x01R\x08maxValue\"4\n\
\nMetricName\x12\x14\n\x05group\x18\x01\x20\x01(\tR\x05group\x12\x10\n\
\x03tag\x18\x02\x20\x01(\tR\x03tag\"\xcd\x01\n\nMetricInfo\x124\n\x04nam\
e\x18\x01\x20\x01(\x0b2\x20.tensorboardrs.hparam.MetricNameR\x04name\x12\
!\n\x0cdisplay_name\x18\x03\x20\x01(\tR\x0bdisplayName\x12\x20\n\x0bdesc\
ription\x18\x04\x20\x01(\tR\x0bdescription\x12D\n\x0cdataset_type\x18\
\x05\x20\x01(\x0e2!.tensorboardrs.hparam.DatasetTypeR\x0bdatasetType\"\
\xe5\x02\n\x0cSessionGroup\x12\x12\n\x04name\x18\x01\x20\x01(\tR\x04name\
\x12I\n\x07hparams\x18\x02\x20\x03(\x0b2/.tensorboardrs.hparam.SessionGr\
oup.HparamsEntryR\x07hparams\x12F\n\rmetric_values\x18\x03\x20\x03(\x0b2\
!.tensorboardrs.hparam.MetricValueR\x0cmetricValues\x129\n\x08sessions\
\x18\x04\x20\x03(\x0b2\x1d.tensorboardrs.hparam.SessionR\x08sessions\x12\
\x1f\n\x0bmonitor_url\x18\x05\x20\x01(\tR\nmonitorUrl\x1aR\n\x0cHparamsE\
ntry\x12\x10\n\x03key\x18\x01\x20\x01(\tR\x03key\x12,\n\x05value\x18\x02\
\x20\x01(\x0b2\x16.google.protobuf.ValueR\x05value:\x028\x01\"\xa4\x01\n\
\x0bMetricValue\x124\n\x04name\x18\x01\x20\x01(\x0b2\x20.tensorboardrs.h\
param.MetricNameR\x04name\x12\x14\n\x05value\x18\x02\x20\x01(\x01R\x05va\
lue\x12#\n\rtraining_step\x18\x03\x20\x01(\x05R\x0ctrainingStep\x12$\n\
\x0ewall_time_secs\x18\x04\x20\x01(\x01R\x0cwallTimeSecs\"\xa5\x02\n\x07\
Session\x12\x12\n\x04name\x18\x01\x20\x01(\tR\x04name\x12&\n\x0fstart_ti\
me_secs\x18\x02\x20\x01(\x01R\rstartTimeSecs\x12\"\n\rend_time_secs\x18\
\x03\x20\x01(\x01R\x0bendTimeSecs\x124\n\x06status\x18\x04\x20\x01(\x0e2\
\x1c.tensorboardrs.hparam.StatusR\x06status\x12\x1b\n\tmodel_uri\x18\x05\
\x20\x01(\tR\x08modelUri\x12F\n\rmetric_values\x18\x06\x20\x03(\x0b2!.te\
nsorboardrs.hparam.MetricValueR\x0cmetricValues\x12\x1f\n\x0bmonitor_url\
\x18\x07\x20\x01(\tR\nmonitorUrl\"?\n\x14GetExperimentRequest\x12'\n\x0f\
experiment_name\x18\x01\x20\x01(\tR\x0eexperimentName\"\xaf\x03\n\x18Lis\
tSessionGroupsRequest\x12'\n\x0fexperiment_name\x18\x06\x20\x01(\tR\x0ee\
xperimentName\x12G\n\x10allowed_statuses\x18\x07\x20\x03(\x0e2\x1c.tenso\
rboardrs.hparam.StatusR\x0fallowedStatuses\x12>\n\ncol_params\x18\x01\
\x20\x03(\x0b2\x1f.tensorboardrs.hparam.ColParamsR\tcolParams\x12P\n\x10\
aggregation_type\x18\x02\x20\x01(\x0e2%.tensorboardrs.hparam.Aggregation\
TypeR\x0faggregationType\x12O\n\x12aggregation_metric\x18\x03\x20\x01(\
\x0b2\x20.tensorboardrs.hparam.MetricNameR\x11aggregationMetric\x12\x1f\
\n\x0bstart_index\x18\x04\x20\x01(\x05R\nstartIndex\x12\x1d\n\nslice_siz\
e\x18\x05\x20\x01(\x05R\tsliceSize\"\xcb\x03\n\tColParams\x12:\n\x06metr\
ic\x18\x01\x20\x01(\x0b2\x20.tensorboardrs.hparam.MetricNameH\0R\x06metr\
ic\x12\x18\n\x06hparam\x18\x02\x20\x01(\tH\0R\x06hparam\x125\n\x05order\
\x18\x03\x20\x01(\x0e2\x1f.tensorboardrs.hparam.SortOrderR\x05order\x120\
\n\x14missing_values_first\x18\x04\x20\x01(\x08R\x12missingValuesFirst\
\x12%\n\rfilter_regexp\x18\x05\x20\x01(\tH\x01R\x0cfilterRegexp\x12I\n\
\x0ffilter_interval\x18\x06\x20\x01(\x0b2\x1e.tensorboardrs.hparam.Inter\
valH\x01R\x0efilterInterval\x12E\n\x0ffilter_discrete\x18\x07\x20\x01(\
\x0b2\x1a.google.protobuf.ListValueH\x01R\x0efilterDiscrete\x124\n\x16ex\
clude_missing_values\x18\x08\x20\x01(\x08R\x14excludeMissingValuesB\x06\
\n\x04nameB\x08\n\x06filter\"\x85\x01\n\x19ListSessionGroupsResponse\x12\
I\n\x0esession_groups\x18\x01\x20\x03(\x0b2\".tensorboardrs.hparam.Sessi\
onGroupR\rsessionGroups\x12\x1d\n\ntotal_size\x18\x03\x20\x01(\x05R\ttot\
alSize\"\xa7\x01\n\x16ListMetricEvalsRequest\x12'\n\x0fexperiment_name\
\x18\x03\x20\x01(\tR\x0eexperimentName\x12!\n\x0csession_name\x18\x01\
\x20\x01(\tR\x0bsessionName\x12A\n\x0bmetric_name\x18\x02\x20\x01(\x0b2\
\x20.tensorboardrs.hparam.MetricNameR\nmetricName*`\n\x08DataType\x12\
\x13\n\x0fDATA_TYPE_UNSET\x10\0\x12\x14\n\x10DATA_TYPE_STRING\x10\x01\
\x12\x12\n\x0eDATA_TYPE_BOOL\x10\x02\x12\x15\n\x11DATA_TYPE_FLOAT64\x10\
\x03*P\n\x0bDatasetType\x12\x13\n\x0fDATASET_UNKNOWN\x10\0\x12\x14\n\x10\
DATASET_TRAINING\x10\x01\x12\x16\n\x12DATASET_VALIDATION\x10\x02*X\n\x06\
Status\x12\x12\n\x0eSTATUS_UNKNOWN\x10\0\x12\x12\n\x0eSTATUS_SUCCESS\x10\
\x01\x12\x12\n\x0eSTATUS_FAILURE\x10\x02\x12\x12\n\x0eSTATUS_RUNNING\x10\
\x03*A\n\tSortOrder\x12\x15\n\x11ORDER_UNSPECIFIED\x10\0\x12\r\n\tORDER_\
ASC\x10\x01\x12\x0e\n\nORDER_DESC\x10\x02*\x7f\n\x0fAggregationType\x12\
\x15\n\x11AGGREGATION_UNSET\x10\0\x12\x13\n\x0fAGGREGATION_AVG\x10\x01\
\x12\x16\n\x12AGGREGATION_MEDIAN\x10\x02\x12\x13\n\x0fAGGREGATION_MIN\
\x10\x03\x12\x13\n\x0fAGGREGATION_MAX\x10\x04J\xc3\x84\x01\n\x07\x12\x05\
\x1e\0\x8f\x03\x01\n\x95\x0b\n\x01\x0c\x12\x03\x1e\0\x122\x94\x05\x20Cop\
yright\x202019\x20The\x20TensorFlow\x20Authors.\x20All\x20Rights\x20Rese\
rved.\n\nLicensed\x20under\x20the\x20Apache\x20License,\x20Version\x202.\
0\x20(the\x20\"License\");\nyou\x20may\x20not\x20use\x20this\x20file\x20\
except\x20in\x20compliance\x20with\x20the\x20License.\nYou\x20may\x20obt\
ain\x20a\x20copy\x20of\x20the\x20License\x20at\n\nhttp://www.apache.org/\
licenses/LICENSE-2.0\n\nUnless\x20required\x20by\x20applicable\x20law\
\x20or\x20agreed\x20to\x20in\x20writing,\x20software\ndistributed\x20und\
er\x20the\x20License\x20is\x20distributed\x20on\x20an\x20\"AS\x20IS\"\
\x20BASIS,\nWITHOUT\x20WARRANTIES\x20OR\x20CONDITIONS\x20OF\x20ANY\x20KI\
ND,\x20either\x20express\x20or\x20implied.\nSee\x20the\x20License\x20for\
\x20the\x20specific\x20language\x20governing\x20permissions\x20and\nlimi\
tations\x20under\x20the\x20License.\n===================================\
===========================================2\xfd\x02\x20Defines\x20a\x20\
proto3-based\x20REST\x20API\x20that\x20the\x20HParams\x20web-component\
\x20of\x20the\x20plugin\n\x20would\x20use\x20to\x20read\x20data\x20from\
\x20a\x20hyperparameter-tuning\x20experiment.\n\x20This\x20file\x20defin\
es\x20the\x20message\x20types\x20(resources)\x20used\n\x20to\x20pass\x20\
information\x20into\x20and\x20out\x20of\x20the\x20API\x20methods.\x20The\
se\x20messages\x20will\x20be\n\x20transmitted\x20using\x20proto3\x20nati\
ve\x20JSON\x20encoding.\x20See\x20http_api.md\x20for\x20a\n\x20descripti\
on\x20of\x20the\x20actual\x20HTTP\x20API.\n2\x8d\x02\x20General\x20note:\
\x20in\x20what\x20follows\x20we\x20use\x20the\x20field\x20'name'\x20of\
\x20a\x20message\x20to\n\x20stores\x20its\x20id.\x20We\x20avoid\x20calli\
ng\x20this\x20field\x20'id'\x20since\x20it\x20is\x20a\x20reserved\x20wor\
d\n\x20in\x20Python,\x20as\x20well\x20as\x20to\x20be\x20more\x20complian\
t\x20with\x20the\x20API\x20style\x20guide\n\x20detailed\x20in\x20https:/\
/cloud.google.com/apis/design/.\n2d\x20IMPORTANT:\x20If\x20you\x20change\
\x20any\x20of\x20the\x20messages\x20here,\x20make\x20sure\x20to\x20also\
\x20update\n\x20api.d.ts\x20accordingly.\n\n\t\n\x02\x03\0\x12\x03\x20\0\
&\n\x08\n\x01\x02\x12\x03\"\0\x1d\n\x8d\x06\n\x02\x04\0\x12\x042\0E\x01\
\x1a\x80\x06\x20Represents\x20a\x20single\x20experiment.\n\x20An\x20expe\
riment\x20consists\x20of\x20multiple\x20\"sessions\".\x20Typically,\x20i\
n\x20each\x20session\n\x20a\x20model\x20is\x20trained\x20for\x20a\x20giv\
en\x20set\x20of\x20hyperparameter\x20values.\x20In\x20each\x20session\n\
\x20a\x20training\x20program\x20may\x20generate\x20one\x20or\x20more\x20\
series\x20of\x20real\x20numbers--each\n\x20containing\x20the\x20evaluati\
on\x20of\x20some\x20metric\x20on\x20the\x20model\x20at\x20different\x20t\
raining\n\x20steps.\n\n\x20Note\x20that\x20Sessions\x20can\x20consist\
\x20of\x20multiple\x20Tensorboard\x20\"runs\",\x20since\x20in\n\x20a\x20\
distributed\x20Tensorflow\x20deployment,\x20training\x20can\x20be\x20acc\
omplished\x20using\n\x20several\x20cooporating\x20processes,\x20each\x20\
one\x20emitting\x20Summary\x20data\x20to\x20a\x20different\n\x20log\x20d\
irectory\x20or\x20run.\x20For\x20example,\x20in\x20a\x20single\x20sessio\
n\x20one\x20process\x20could\n\x20periodically\x20compute\x20the\x20loss\
\x20on\x20the\x20validation\x20set,\x20and\x20another\x20could\n\x20comp\
ute\x20the\x20loss\x20on\x20the\x20training\x20set.\n\x20NEXT_TAG:\x207\
\n\n\n\n\x03\x04\0\x01\x12\x032\x08\x12\n\x84\x01\n\x04\x04\0\x02\0\x12\
\x035\x02\x12\x1aw\x20--\x20Experiments\x20are\x20scoped\x20by\x20a\x20g\
lobal\x20name.\n\x20Currently,\x20Tensorboard\x20supports\x20displaying\
\x20data\x20for\x20a\x20single\x20experiment.\n\n\x0c\n\x05\x04\0\x02\0\
\x05\x12\x035\x02\x08\n\x0c\n\x05\x04\0\x02\0\x01\x12\x035\t\r\n\x0c\n\
\x05\x04\0\x02\0\x03\x12\x035\x10\x11\n3\n\x04\x04\0\x02\x01\x12\x038\
\x02\x19\x1a&\x20A\x20description.\x20May\x20contain\x20markdown.\n\n\
\x0c\n\x05\x04\0\x02\x01\x05\x12\x038\x02\x08\n\x0c\n\x05\x04\0\x02\x01\
\x01\x12\x038\t\x14\n\x0c\n\x05\x04\0\x02\x01\x03\x12\x038\x17\x18\n2\n\
\x04\x04\0\x02\x02\x12\x03;\x02\x12\x1a%\x20An\x20id\x20for\x20the\x20ow\
ning\x20user\x20or\x20group.\n\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\r\n\x0c\n\x05\x04\0\
\x02\x02\x03\x12\x03;\x10\x11\nT\n\x04\x04\0\x02\x03\x12\x03>\x02\x1f\
\x1aG\x20The\x20time\x20the\x20experiment\x20was\x20created.\x20In\x20se\
conds\x20since\x20the\x20UNIX\x20epoch.\n\n\x0c\n\x05\x04\0\x02\x03\x05\
\x12\x03>\x02\x08\n\x0c\n\x05\x04\0\x02\x03\x01\x12\x03>\t\x1a\n\x0c\n\
\x05\x04\0\x02\x03\x03\x12\x03>\x1d\x1e\nL\n\x04\x04\0\x02\x04\x12\x03A\
\x02'\x1a?\x20Information\x20about\x20each\x20hyperparameter\x20used\x20\
in\x20the\x20experiment.\n\n\x0c\n\x05\x04\0\x02\x04\x04\x12\x03A\x02\n\
\n\x0c\n\x05\x04\0\x02\x04\x06\x12\x03A\x0b\x15\n\x0c\n\x05\x04\0\x02\
\x04\x01\x12\x03A\x16\"\n\x0c\n\x05\x04\0\x02\x04\x03\x12\x03A%&\nD\n\
\x04\x04\0\x02\x05\x12\x03D\x02'\x1a7\x20Information\x20about\x20each\
\x20metric\x20used\x20in\x20the\x20experiment.\n\n\x0c\n\x05\x04\0\x02\
\x05\x04\x12\x03D\x02\n\n\x0c\n\x05\x04\0\x02\x05\x06\x12\x03D\x0b\x15\n\
\x0c\n\x05\x04\0\x02\x05\x01\x12\x03D\x16\"\n\x0c\n\x05\x04\0\x02\x05\
\x03\x12\x03D%&\n\x19\n\x02\x04\x01\x12\x04H\0c\x01\x1a\r\x20NEXT_TAG:\
\x207\n\n\n\n\x03\x04\x01\x01\x12\x03H\x08\x12\n,\n\x04\x04\x01\x02\0\
\x12\x03J\x02\x12\x1a\x1f\x20An\x20id\x20for\x20the\x20hyperparameter.\n\
\n\x0c\n\x05\x04\x01\x02\0\x05\x12\x03J\x02\x08\n\x0c\n\x05\x04\x01\x02\
\0\x01\x12\x03J\t\r\n\x0c\n\x05\x04\x01\x02\0\x03\x12\x03J\x10\x11\nv\n\
\x04\x04\x01\x02\x01\x12\x03N\x02\x1a\x1ai\x20A\x20string\x20used\x20to\
\x20display\x20the\x20hyperparameter\x20in\x20the\x20UI.\x20If\x20empty,\
\x20the\x20UI\n\x20will\x20display\x20the\x20'name'\x20field.\n\n\x0c\n\
\x05\x04\x01\x02\x01\x05\x12\x03N\x02\x08\n\x0c\n\x05\x04\x01\x02\x01\
\x01\x12\x03N\t\x15\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03N\x18\x19\n3\
\n\x04\x04\x01\x02\x02\x12\x03Q\x02\x19\x1a&\x20A\x20description.\x20May\
\x20contain\x20markdown.\n\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\x03Q\x02\
\x08\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\x03Q\t\x14\n\x0c\n\x05\x04\x01\
\x02\x02\x03\x12\x03Q\x17\x18\n4\n\x04\x04\x01\x02\x03\x12\x03T\x02\x14\
\x1a'\x20The\x20data\x20type\x20of\x20this\x20hyperparameter.\n\n\x0c\n\
\x05\x04\x01\x02\x03\x06\x12\x03T\x02\n\n\x0c\n\x05\x04\x01\x02\x03\x01\
\x12\x03T\x0b\x0f\n\x0c\n\x05\x04\x01\x02\x03\x03\x12\x03T\x12\x13\n\xa9\
\x03\n\x04\x04\x01\x08\0\x12\x04\\\x02b\x03\x1a\x9a\x03\x20Specifies\x20\
the\x20set\x20of\x20values\x20this\x20hyperparameter\x20can\x20hold.\x20\
The\x20UI\x20assumes\n\x20every\x20instance\x20of\x20this\x20hyperparame\
ter\x20will\x20hold\x20a\x20value\x20from\x20this\x20set.\x20It\n\x20is\
\x20used\x20by\x20the\x20UI\x20to\x20allow\x20filtering\x20so\x20that\
\x20only\x20session\x20groups\x20(see\n\x20below)\x20whose\x20associated\
\x20hyperparameter\x20value\x20\"passes\"\x20the\x20filter\x20are\n\x20d\
isplayed.\x20If\x20this\x20is\x20not\x20populated,\x20the\x20domain\x20i\
s\x20assumed\x20to\x20be\x20the\n\x20entire\x20domain\x20of\x20the\x20ty\
pe\x20of\x20the\x20hyperparameter.\n\n\x0c\n\x05\x04\x01\x08\0\x01\x12\
\x03\\\x08\x0e\nI\n\x04\x04\x01\x02\x04\x12\x03^\x042\x1a<\x20A\x20discr\
ete\x20set\x20of\x20the\x20values\x20this\x20hyperparameter\x20can\x20ho\
ld.\n\n\x0c\n\x05\x04\x01\x02\x04\x06\x12\x03^\x04\x1d\n\x0c\n\x05\x04\
\x01\x02\x04\x01\x12\x03^\x1e-\n\x0c\n\x05\x04\x01\x02\x04\x03\x12\x03^0\
1\no\n\x04\x04\x01\x02\x05\x12\x03a\x04!\x1ab\x20Numeric\x20data\x20type\
\x20only.\x20The\x20(real)\x20interval\x20from\x20which\x20values\x20of\
\x20this\n\x20hyperparameter\x20are\x20taken.\n\n\x0c\n\x05\x04\x01\x02\
\x05\x06\x12\x03a\x04\x0c\n\x0c\n\x05\x04\x01\x02\x05\x01\x12\x03a\r\x1c\
\n\x0c\n\x05\x04\x01\x02\x05\x03\x12\x03a\x1f\x20\n\n\n\x02\x05\0\x12\
\x04e\0j\x01\n\n\n\x03\x05\0\x01\x12\x03e\x05\r\n\x0b\n\x04\x05\0\x02\0\
\x12\x03f\x02\x16\n\x0c\n\x05\x05\0\x02\0\x01\x12\x03f\x02\x11\n\x0c\n\
\x05\x05\0\x02\0\x02\x12\x03f\x14\x15\n\x0b\n\x04\x05\0\x02\x01\x12\x03g\
\x02\x17\n\x0c\n\x05\x05\0\x02\x01\x01\x12\x03g\x02\x12\n\x0c\n\x05\x05\
\0\x02\x01\x02\x12\x03g\x15\x16\n\x0b\n\x04\x05\0\x02\x02\x12\x03h\x02\
\x15\n\x0c\n\x05\x05\0\x02\x02\x01\x12\x03h\x02\x10\n\x0c\n\x05\x05\0\
\x02\x02\x02\x12\x03h\x13\x14\n\x0b\n\x04\x05\0\x02\x03\x12\x03i\x02\x18\
\n\x0c\n\x05\x05\0\x02\x03\x01\x12\x03i\x02\x13\n\x0c\n\x05\x05\0\x02\
\x03\x02\x12\x03i\x16\x17\nb\n\x02\x04\x02\x12\x04n\0q\x01\x1aV\x20Repre\
sents\x20the\x20closed\x20interval\x20[min_value,\x20max_value]\x20of\
\x20the\x20real\x20line.\n\x20NEXT_TAG:\x203\n\n\n\n\x03\x04\x02\x01\x12\
\x03n\x08\x10\n\x0b\n\x04\x04\x02\x02\0\x12\x03o\x02\x17\n\x0c\n\x05\x04\
\x02\x02\0\x05\x12\x03o\x02\x08\n\x0c\n\x05\x04\x02\x02\0\x01\x12\x03o\t\
\x12\n\x0c\n\x05\x04\x02\x02\0\x03\x12\x03o\x15\x16\n\x0b\n\x04\x04\x02\
\x02\x01\x12\x03p\x02\x17\n\x0c\n\x05\x04\x02\x02\x01\x05\x12\x03p\x02\
\x08\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x03p\t\x12\n\x0c\n\x05\x04\x02\
\x02\x01\x03\x12\x03p\x15\x16\n\x1a\n\x02\x04\x03\x12\x05t\0\x92\x01\x01\
\x1a\r\x20NEXT_TAG:\x203\n\n\n\n\x03\x04\x03\x01\x12\x03t\x08\x12\n\xb0\
\x0c\n\x04\x04\x03\x02\0\x12\x04\x90\x01\x02\x13\x1a\xa1\x0c\x20An\x20id\
entifier\x20for\x20a\x20metric.\x20A\x20metric\x20is\x20a\x20real-valued\
\x20function\x20of\x20the\n\x20model.\x20The\x20UI\x20can\x20plot\x20met\
rics\x20for\x20a\x20session\x20evaluated\x20on\x20the\x20model\x20at\n\
\x20different\x20training\x20steps.\n\n\x20We\x20identify\x20a\x20metric\
\x20by\x20a\x20(group,\x20tag)\x20pair\x20of\x20strings.\x20The\x20UI\
\x20treats\n\x20both\x20of\x20these\x20as\x20opaque\x20strings.\x20The\
\x20only\x20requirement\x20is\x20that\x20the\x20pair\n\x20uniquely\x20id\
entifies\x20a\x20metric\x20in\x20the\x20experiment.\n\n\x20We\x20use\x20\
a\x20pair\x20so\x20the\x20UI\x20could\x20allow\x20the\x20user\x20to\x20g\
roup\x20metrics\x20for\x20a\n\x20single\x20session\x20by\x20either\x20gr\
oup\x20or\x20tag\x20to\x20be\x20displayed\x20in\x20the\x20same\x20chart.\
\n\x20For\x20instance,\x20one\x20can\x20set\x20the\x20metric\x20group\
\x20to\x20correspond\x20to\x20the\x20dataset\n\x20on\x20which\x20the\x20\
model\x20was\x20evaluated,\x20and\x20the\x20UI\x20can\x20then\x20display\
\x20different\n\x20metrics\x20describing\x20the\x20same\x20underlying\
\x20computation\x20and\x20using\x20different\n\x20datasets,\x20on\x20the\
\x20same\x20chart.\n\n\x20When\x20exporting\x20summaries\x20from\x20Tens\
orflow,\x20in\x20a\x20typical\x20setup,\x20a\n\x20training\x20session\
\x20exports\x20evaluations\x20of\x20metrics\x20at\x20different\x20traini\
ng\x20steps\n\x20as\x20Scalar-plugin\x20summaries--each\x20having\x20a\
\x20run\x20of\x20the\x20form\n\x20\"<session_base_log_dir>/<sub_dir>\",\
\x20and\x20some\x20associated\x20tag.\x20The\x20same\n\x20metric\x20for\
\x20different\x20sessions\x20would\x20use\x20the\x20same\x20sub_dir\x20a\
nd\x20tag,\x20but\n\x20would\x20have\x20a\x20different\x20session_base_l\
og_dir.\x20For\x20example,\x20a\x20session\n\x20computing\x20two\x20metr\
ics:\x20model\x20loss\x20on\x20the\x20validation\x20set\x20and\x20model\
\x20loss\x20on\n\x20the\x20training\x20set,\x20can\x20export\x20these\
\x20as\x20scalar\x20summaries\x20with\x20the\x20tag\x20\"loss\"\n\x20and\
\x20runs\x20session_base_log_dir/validation\x20and\x20session_base_log_d\
ir/training,\n\x20respectively.\x20In\x20this\x20setup,\x20the\x20'group\
'\x20field\x20can\x20be\x20populated\x20with\n\x20the\x20\"sub_dir\"\x20\
associated\x20with\x20the\x20metric,\x20and\x20the\x20'tag'\x20field\x20\
can\x20be\n\x20populated\x20with\x20the\x20tag:\x20\"loss\".\n\n\r\n\x05\
\x04\x03\x02\0\x05\x12\x04\x90\x01\x02\x08\n\r\n\x05\x04\x03\x02\0\x01\
\x12\x04\x90\x01\t\x0e\n\r\n\x05\x04\x03\x02\0\x03\x12\x04\x90\x01\x11\
\x12\n\x0c\n\x04\x04\x03\x02\x01\x12\x04\x91\x01\x02\x11\n\r\n\x05\x04\
\x03\x02\x01\x05\x12\x04\x91\x01\x02\x08\n\r\n\x05\x04\x03\x02\x01\x01\
\x12\x04\x91\x01\t\x0c\n\r\n\x05\x04\x03\x02\x01\x03\x12\x04\x91\x01\x0f\
\x10\n\x1b\n\x02\x04\x04\x12\x06\x95\x01\0\xa1\x01\x01\x1a\r\x20NEXT_TAG\
:\x206\n\n\x0b\n\x03\x04\x04\x01\x12\x04\x95\x01\x08\x12\n\x0c\n\x04\x04\
\x04\x02\0\x12\x04\x96\x01\x02\x16\n\r\n\x05\x04\x04\x02\0\x06\x12\x04\
\x96\x01\x02\x0c\n\r\n\x05\x04\x04\x02\0\x01\x12\x04\x96\x01\r\x11\n\r\n\
\x05\x04\x04\x02\0\x03\x12\x04\x96\x01\x14\x15\no\n\x04\x04\x04\x02\x01\
\x12\x04\x9a\x01\x02\x1a\x1aa\x20A\x20string\x20used\x20to\x20display\
\x20the\x20metric\x20in\x20the\x20UI.\x20If\x20empty,\x20the\x20UI\n\x20\
will\x20display\x20the\x20'name'\x20field.\n\n\r\n\x05\x04\x04\x02\x01\
\x05\x12\x04\x9a\x01\x02\x08\n\r\n\x05\x04\x04\x02\x01\x01\x12\x04\x9a\
\x01\t\x15\n\r\n\x05\x04\x04\x02\x01\x03\x12\x04\x9a\x01\x18\x19\n4\n\
\x04\x04\x04\x02\x02\x12\x04\x9d\x01\x02\x19\x1a&\x20A\x20description.\
\x20May\x20contain\x20markdown.\n\n\r\n\x05\x04\x04\x02\x02\x05\x12\x04\
\x9d\x01\x02\x08\n\r\n\x05\x04\x04\x02\x02\x01\x12\x04\x9d\x01\t\x14\n\r\
\n\x05\x04\x04\x02\x02\x03\x12\x04\x9d\x01\x17\x18\nX\n\x04\x04\x04\x02\
\x03\x12\x04\xa0\x01\x02\x1f\x1aJ\x20The\x20dataset\x20type\x20(validati\
on,\x20training)\x20on\x20which\x20the\x20metric\x20is\x20computed.\n\n\
\r\n\x05\x04\x04\x02\x03\x06\x12\x04\xa0\x01\x02\r\n\r\n\x05\x04\x04\x02\
\x03\x01\x12\x04\xa0\x01\x0e\x1a\n\r\n\x05\x04\x04\x02\x03\x03\x12\x04\
\xa0\x01\x1d\x1e\n\x0c\n\x02\x05\x01\x12\x06\xa3\x01\0\xa7\x01\x01\n\x0b\
\n\x03\x05\x01\x01\x12\x04\xa3\x01\x05\x10\n\x0c\n\x04\x05\x01\x02\0\x12\
\x04\xa4\x01\x02\x16\n\r\n\x05\x05\x01\x02\0\x01\x12\x04\xa4\x01\x02\x11\
\n\r\n\x05\x05\x01\x02\0\x02\x12\x04\xa4\x01\x14\x15\n\x0c\n\x04\x05\x01\
\x02\x01\x12\x04\xa5\x01\x02\x17\n\r\n\x05\x05\x01\x02\x01\x01\x12\x04\
\xa5\x01\x02\x12\n\r\n\x05\x05\x01\x02\x01\x02\x12\x04\xa5\x01\x15\x16\n\
\x0c\n\x04\x05\x01\x02\x02\x12\x04\xa6\x01\x02\x19\n\r\n\x05\x05\x01\x02\
\x02\x01\x12\x04\xa6\x01\x02\x14\n\r\n\x05\x05\x01\x02\x02\x02\x12\x04\
\xa6\x01\x17\x18\n\x93\x04\n\x02\x04\x05\x12\x06\xb1\x01\0\xc5\x01\x01\
\x1a\x84\x04\x20In\x20some\x20experiments,\x20the\x20user\x20trains\x20a\
\x20model\x20with\x20the\x20same\x20set\x20of\n\x20hyperparameters\x20mu\
ltiple\x20times\x20to\x20get\x20the\x20distribution\x20of\x20metric\n\
\x20evaluations,\x20when\x20the\x20computation\x20(such\x20as\x20the\x20\
training\x20algorithm,\x20or\x20metric\n\x20evaluation)\x20is\x20non-det\
erministic.\x20To\x20make\x20the\x20UI\x20aware\x20of\x20this,\x20sessio\
ns\n\x20are\x20partitioned\x20into\x20groups:\x20each\x20group\x20consis\
ts\x20of\x20all\x20training\x20sessions\n\x20which\x20share\x20the\x20sa\
me\x20values\x20for\x20the\x20hyperparameters.\x20In\x20experiments\x20w\
ith\x20no\n\x20repeated\x20executions,\x20each\x20group\x20consists\x20o\
f\x20exactly\x20one\x20session.\n\x20NEXT_TAG:\x206\n\n\x0b\n\x03\x04\
\x05\x01\x12\x04\xb1\x01\x08\x14\n\x0c\n\x04\x04\x05\x02\0\x12\x04\xb2\
\x01\x02\x12\n\r\n\x05\x04\x05\x02\0\x05\x12\x04\xb2\x01\x02\x08\n\r\n\
\x05\x04\x05\x02\0\x01\x12\x04\xb2\x01\t\r\n\r\n\x05\x04\x05\x02\0\x03\
\x12\x04\xb2\x01\x10\x11\n\x82\x01\n\x04\x04\x05\x02\x01\x12\x04\xb6\x01\
\x02C\x1at\x20Stores\x20the\x20hyperparameters\x20for\x20sessions\x20wit\
hin\x20this\x20group\x20as\x20a\x20mapping\n\x20from\x20the\x20hyperpara\
meter\x20name\x20to\x20its\x20value.\n\n\r\n\x05\x04\x05\x02\x01\x06\x12\
\x04\xb6\x01\x026\n\r\n\x05\x04\x05\x02\x01\x01\x12\x04\xb6\x017>\n\r\n\
\x05\x04\x05\x02\x01\x03\x12\x04\xb6\x01AB\n\x87\x03\n\x04\x04\x05\x02\
\x02\x12\x04\xbe\x01\x02)\x1a\xf8\x02\x20A\x20list\x20of\x20pairs\x20(me\
tric,\x20value)--one\x20for\x20each\x20metric\x20in\x20the\x20experiment\
.\n\x20The\x20value\x20denotes\x20the\x20evaluation\x20of\x20the\x20corr\
esponding\x20metric\x20on\n\x20the\x20model\x20aggregated\x20across\x20t\
he\x20sessions\x20in\x20this\x20group.\x20The\x20exact\x20method\n\x20of\
\x20aggregation\x20is\x20specified\x20in\x20the\x20comments\x20of\x20Lis\
tSessionGroupsRequest.\n\x20Unfortunately,\x20we\x20can't\x20store\x20th\
ese\x20as\x20a\x20map,\x20since\x20proto\x20maps\x20can't\x20have\n\x20m\
essage\x20keys.\n\n\r\n\x05\x04\x05\x02\x02\x04\x12\x04\xbe\x01\x02\n\n\
\r\n\x05\x04\x05\x02\x02\x06\x12\x04\xbe\x01\x0b\x16\n\r\n\x05\x04\x05\
\x02\x02\x01\x12\x04\xbe\x01\x17$\n\r\n\x05\x04\x05\x02\x02\x03\x12\x04\
\xbe\x01'(\n5\n\x04\x04\x05\x02\x03\x12\x04\xc1\x01\x02\x20\x1a'\x20The\
\x20sessions\x20belonging\x20to\x20this\x20group.\n\n\r\n\x05\x04\x05\
\x02\x03\x04\x12\x04\xc1\x01\x02\n\n\r\n\x05\x04\x05\x02\x03\x06\x12\x04\
\xc1\x01\x0b\x12\n\r\n\x05\x04\x05\x02\x03\x01\x12\x04\xc1\x01\x13\x1b\n\
\r\n\x05\x04\x05\x02\x03\x03\x12\x04\xc1\x01\x1e\x1f\nL\n\x04\x04\x05\
\x02\x04\x12\x04\xc4\x01\x02\x19\x1a>\x20An\x20optional\x20link\x20to\
\x20a\x20web\x20page\x20monitoring\x20the\x20session\x20group.\n\n\r\n\
\x05\x04\x05\x02\x04\x05\x12\x04\xc4\x01\x02\x08\n\r\n\x05\x04\x05\x02\
\x04\x01\x12\x04\xc4\x01\t\x14\n\r\n\x05\x04\x05\x02\x04\x03\x12\x04\xc4\
\x01\x17\x18\n\x1b\n\x02\x04\x06\x12\x06\xc8\x01\0\xd2\x01\x01\x1a\r\x20\
NEXT_TAG:\x205\n\n\x0b\n\x03\x04\x06\x01\x12\x04\xc8\x01\x08\x13\n\x0c\n\
\x04\x04\x06\x02\0\x12\x04\xc9\x01\x02\x16\n\r\n\x05\x04\x06\x02\0\x06\
\x12\x04\xc9\x01\x02\x0c\n\r\n\x05\x04\x06\x02\0\x01\x12\x04\xc9\x01\r\
\x11\n\r\n\x05\x04\x06\x02\0\x03\x12\x04\xc9\x01\x14\x15\n\x0c\n\x04\x04\
\x06\x02\x01\x12\x04\xcb\x01\x02\x13\n\r\n\x05\x04\x06\x02\x01\x05\x12\
\x04\xcb\x01\x02\x08\n\r\n\x05\x04\x06\x02\x01\x01\x12\x04\xcb\x01\t\x0e\
\n\r\n\x05\x04\x06\x02\x01\x03\x12\x04\xcb\x01\x11\x12\nB\n\x04\x04\x06\
\x02\x02\x12\x04\xce\x01\x02\x1a\x1a4\x20The\x20training\x20step\x20at\
\x20which\x20this\x20value\x20is\x20computed.\n\n\r\n\x05\x04\x06\x02\
\x02\x05\x12\x04\xce\x01\x02\x07\n\r\n\x05\x04\x06\x02\x02\x01\x12\x04\
\xce\x01\x08\x15\n\r\n\x05\x04\x06\x02\x02\x03\x12\x04\xce\x01\x18\x19\n\
Z\n\x04\x04\x06\x02\x03\x12\x04\xd1\x01\x02\x1c\x1aL\x20The\x20wall\x20t\
ime\x20in\x20seconds\x20since\x20UNIX\x20epoch\x20at\x20which\x20this\
\x20value\x20is\x20computed.\n\n\r\n\x05\x04\x06\x02\x03\x05\x12\x04\xd1\
\x01\x02\x08\n\r\n\x05\x04\x06\x02\x03\x01\x12\x04\xd1\x01\t\x17\n\r\n\
\x05\x04\x06\x02\x03\x03\x12\x04\xd1\x01\x1a\x1b\n\x1b\n\x02\x04\x07\x12\
\x06\xd5\x01\0\xf0\x01\x01\x1a\r\x20NEXT_TAG:\x208\n\n\x0b\n\x03\x04\x07\
\x01\x12\x04\xd5\x01\x08\x0f\nX\n\x04\x04\x07\x02\0\x12\x04\xd7\x01\x02\
\x12\x1aJ\x20An\x20id\x20for\x20the\x20session.\x20Unique\x20within\x20a\
n\x20experiment\x20(not\x20just\x20the\x20group).\n\n\r\n\x05\x04\x07\
\x02\0\x05\x12\x04\xd7\x01\x02\x08\n\r\n\x05\x04\x07\x02\0\x01\x12\x04\
\xd7\x01\t\r\n\r\n\x05\x04\x07\x02\0\x03\x12\x04\xd7\x01\x10\x11\n0\n\
\x04\x04\x07\x02\x01\x12\x04\xda\x01\x02\x1d\x1a\"\x20In\x20seconds\x20s\
ince\x20the\x20UNIX\x20epoch.\n\n\r\n\x05\x04\x07\x02\x01\x05\x12\x04\
\xda\x01\x02\x08\n\r\n\x05\x04\x07\x02\x01\x01\x12\x04\xda\x01\t\x18\n\r\
\n\x05\x04\x07\x02\x01\x03\x12\x04\xda\x01\x1b\x1c\nn\n\x04\x04\x07\x02\
\x02\x12\x04\xde\x01\x02\x1b\x1a`\x20In\x20seconds\x20since\x20the\x20UN\
IX\x20epoch.\n\x20May\x20be\x200\x20if\x20unavailable\x20or\x20the\x20se\
ssion\x20has\x20not\x20finished\x20yet.\n\n\r\n\x05\x04\x07\x02\x02\x05\
\x12\x04\xde\x01\x02\x08\n\r\n\x05\x04\x07\x02\x02\x01\x12\x04\xde\x01\t\
\x16\n\r\n\x05\x04\x07\x02\x02\x03\x12\x04\xde\x01\x19\x1a\n5\n\x04\x04\
\x07\x02\x03\x12\x04\xe1\x01\x02\x14\x1a'\x20May\x20be\x20STATUS_UNKNOWN\
\x20if\x20unavailable.\n\n\r\n\x05\x04\x07\x02\x03\x06\x12\x04\xe1\x01\
\x02\x08\n\r\n\x05\x04\x07\x02\x03\x01\x12\x04\xe1\x01\t\x0f\n\r\n\x05\
\x04\x07\x02\x03\x03\x12\x04\xe1\x01\x12\x13\n\xa5\x02\n\x04\x04\x07\x02\
\x04\x12\x04\xe7\x01\x02\x17\x1a\x96\x02\x20A\x20URI\x20for\x20a\x20reso\
urce\x20that\x20will\x20allow\x20the\x20user\x20to\x20reconstruct\x20the\
\x20model\x20for\n\x20this\x20session.\x20E.g.,\x20in\x20Tensorflow\x20t\
his\x20could\x20point\x20to\x20a\x20directory\x20where\x20the\n\x20check\
points\x20are\x20stored.\x20Currently,\x20this\x20is\x20treated\x20opaqu\
ely\x20by\x20the\x20UI\n\x20and\x20only\x20displayed\x20to\x20the\x20use\
r\x20as\x20it\x20is\x20passed\x20here.\n\n\r\n\x05\x04\x07\x02\x04\x05\
\x12\x04\xe7\x01\x02\x08\n\r\n\x05\x04\x07\x02\x04\x01\x12\x04\xe7\x01\t\
\x12\n\r\n\x05\x04\x07\x02\x04\x03\x12\x04\xe7\x01\x15\x16\n\xb3\x01\n\
\x04\x04\x07\x02\x05\x12\x04\xec\x01\x02)\x1a\xa4\x01\x20Stores\x20each\
\x20metric\x20evaluation\x20on\x20the\x20model\x20at\x20the\x20current\
\x20training\x20step.\n\x20Unfortunately,\x20we\x20can't\x20store\x20the\
se\x20as\x20a\x20map,\x20since\x20proto\x20maps\x20can't\x20have\n\x20me\
ssage\x20keys.\n\n\r\n\x05\x04\x07\x02\x05\x04\x12\x04\xec\x01\x02\n\n\r\
\n\x05\x04\x07\x02\x05\x06\x12\x04\xec\x01\x0b\x16\n\r\n\x05\x04\x07\x02\
\x05\x01\x12\x04\xec\x01\x17$\n\r\n\x05\x04\x07\x02\x05\x03\x12\x04\xec\
\x01'(\nF\n\x04\x04\x07\x02\x06\x12\x04\xef\x01\x02\x19\x1a8\x20An\x20op\
tional\x20link\x20to\x20a\x20web\x20page\x20monitoring\x20the\x20session\
.\n\n\r\n\x05\x04\x07\x02\x06\x05\x12\x04\xef\x01\x02\x08\n\r\n\x05\x04\
\x07\x02\x06\x01\x12\x04\xef\x01\t\x14\n\r\n\x05\x04\x07\x02\x06\x03\x12\
\x04\xef\x01\x17\x18\n3\n\x02\x05\x02\x12\x06\xf3\x01\0\xf8\x01\x01\x1a%\
\x20Represents\x20the\x20status\x20of\x20a\x20Session.\n\n\x0b\n\x03\x05\
\x02\x01\x12\x04\xf3\x01\x05\x0b\n\x0c\n\x04\x05\x02\x02\0\x12\x04\xf4\
\x01\x02\x15\n\r\n\x05\x05\x02\x02\0\x01\x12\x04\xf4\x01\x02\x10\n\r\n\
\x05\x05\x02\x02\0\x02\x12\x04\xf4\x01\x13\x14\n\x0c\n\x04\x05\x02\x02\
\x01\x12\x04\xf5\x01\x02\x15\n\r\n\x05\x05\x02\x02\x01\x01\x12\x04\xf5\
\x01\x02\x10\n\r\n\x05\x05\x02\x02\x01\x02\x12\x04\xf5\x01\x13\x14\n\x0c\
\n\x04\x05\x02\x02\x02\x12\x04\xf6\x01\x02\x15\n\r\n\x05\x05\x02\x02\x02\
\x01\x12\x04\xf6\x01\x02\x10\n\r\n\x05\x05\x02\x02\x02\x02\x12\x04\xf6\
\x01\x13\x14\n\x0c\n\x04\x05\x02\x02\x03\x12\x04\xf7\x01\x02\x15\n\r\n\
\x05\x05\x02\x02\x03\x01\x12\x04\xf7\x01\x02\x10\n\r\n\x05\x05\x02\x02\
\x03\x02\x12\x04\xf7\x01\x13\x14\nw\n\x02\x04\x08\x12\x06\xfd\x01\0\x80\
\x02\x01\x1ai\x20Parameters\x20for\x20a\x20GetExperiment\x20API\x20call.\
\n\x20Each\x20experiment\x20is\x20scoped\x20by\x20a\x20unique\x20global\
\x20id.\n\x20NEXT_TAG:\x202\n\n\x0b\n\x03\x04\x08\x01\x12\x04\xfd\x01\
\x08\x1c\n\x18\n\x04\x04\x08\x02\0\x12\x04\xff\x01\x02\x1d\x1a\n\x20REQU\
IRED\n\n\r\n\x05\x04\x08\x02\0\x05\x12\x04\xff\x01\x02\x08\n\r\n\x05\x04\
\x08\x02\0\x01\x12\x04\xff\x01\t\x18\n\r\n\x05\x04\x08\x02\0\x03\x12\x04\
\xff\x01\x1b\x1c\n\x8c\x02\n\x02\x04\t\x12\x06\x87\x02\0\xb8\x02\x01\x1a\
\xfd\x01\x20Parameters\x20for\x20a\x20ListSessionGroups\x20API\x20call.\
\n\x20Computes\x20a\x20list\x20of\x20the\x20current\x20session\x20groups\
\x20allowing\x20for\x20filtering\x20and\n\x20sorting\x20by\x20metrics\
\x20and\x20hyperparameter\x20values.\x20Returns\x20a\x20\"slice\"\x20of\
\n\x20that\x20list\x20specified\x20by\x20start_index\x20and\x20slice_siz\
e.\n\x20NEXT_TAG:\x208\n\n\x0b\n\x03\x04\t\x01\x12\x04\x87\x02\x08\x20\n\
\x0c\n\x04\x04\t\x02\0\x12\x04\x88\x02\x02\x1d\n\r\n\x05\x04\t\x02\0\x05\
\x12\x04\x88\x02\x02\x08\n\r\n\x05\x04\t\x02\0\x01\x12\x04\x88\x02\t\x18\
\n\r\n\x05\x04\t\x02\0\x03\x12\x04\x88\x02\x1b\x1c\n\xa9\x01\n\x04\x04\t\
\x02\x01\x12\x04\x8d\x02\x02'\x1a\x9a\x01\x20Filters\x20the\x20set\x20of\
\x20sessions\x20(from\x20which\x20the\x20session\x20groups\x20are\x20for\
med)\x20to\n\x20contain\x20only\x20these\x20sessions\x20whose\x20status\
\x20is\x20contained\x20in\n\x20'allowed_statuses'.\n\n\r\n\x05\x04\t\x02\
\x01\x04\x12\x04\x8d\x02\x02\n\n\r\n\x05\x04\t\x02\x01\x06\x12\x04\x8d\
\x02\x0b\x11\n\r\n\x05\x04\t\x02\x01\x01\x12\x04\x8d\x02\x12\"\n\r\n\x05\
\x04\t\x02\x01\x03\x12\x04\x8d\x02%&\n\x8f\x05\n\x04\x04\t\x02\x02\x12\
\x04\x9a\x02\x02$\x1a\x80\x05\x20A\x20list\x20of\x20ColParams\x20message\
s--one\x20for\x20each\x20\"column\"\x20of\x20a\x20session\x20group.\x20A\
\n\x20session\x20group\x20column\x20contains\x20either\x20a\x20metric\
\x20evaluated\x20at\x20the\x20current\n\x20reported\x20computation\x20st\
ep\x20or\x20a\x20hyperparameter\x20value.\x20In\x20addition\x20to\n\x20'\
regular'\x20values,\x20a\x20column\x20may\x20take\x20on\x20a\x20special\
\x20'missing-value'\x20which\n\x20denotes\x20that\x20the\x20hyperparamet\
er\x20or\x20metric\x20is\x20not\x20available\n\x20for\x20the\x20session\
\x20group\x20(for\x20example,\x20if\x20the\x20metric\x20is\x20not\x20use\
d\x20in\x20the\n\x20group).\n\n\x20The\x20ColParams\x20messages\x20in\
\x20the\x20repeated\x20field\x20below\x20configure\x20filtering\x20and\n\
\x20sorting\x20of\x20the\x20resulting\x20collection\x20of\x20session\x20\
groups.\x20See\x20the\x20comments\x20of\n\x20the\x20fields\x20in\x20the\
\x20ColParam\x20message\x20below\x20for\x20more\x20details.\n\n\r\n\x05\
\x04\t\x02\x02\x04\x12\x04\x9a\x02\x02\n\n\r\n\x05\x04\t\x02\x02\x06\x12\
\x04\x9a\x02\x0b\x14\n\r\n\x05\x04\t\x02\x02\x01\x12\x04\x9a\x02\x15\x1f\
\n\r\n\x05\x04\t\x02\x02\x03\x12\x04\x9a\x02\"#\n\x84\x05\n\x04\x04\t\
\x02\x03\x12\x04\xa7\x02\x02'\x1a\xf5\x04\x20Fields\x20controlling\x20ho\
w\x20to\x20aggregate\x20metrics\x20across\x20sessions\x20within\x20a\n\
\x20session\x20group.\n\x20If\x20aggregation_type\x20is\x20AGGREGATION_A\
VG,\x20each\x20metric\x20value\x20of\x20the\n\x20session\x20group\x20is\
\x20the\x20average\x20of\x20the\x20values\x20of\x20the\x20metric\x20acro\
ss\x20the\n\x20sessions.\n\x20Otherwise,\x20the\x20session\x20group\x20m\
etric\x20values\x20are\x20taken\x20directly\x20from\x20a\n\x20\"represen\
tative\"\x20session\x20in\x20the\x20group,\x20selected\x20as\x20a\x20ses\
sion\x20for\x20which\n\x20primary_metric\x20takes\x20on\x20its\x20minimu\
m,\x20maximum,\x20or\x20median\x20value,\x20as\n\x20specified\x20by\x20t\
he\x20choice\x20of\x20aggregation_type\x20(for\x20median,\x20if\x20the\
\x20number\x20of\n\x20sessions\x20in\x20the\x20group\x20is\x20even,\x20a\
\x20session\x20with\x20a\x20lower\x20\"middle\"\x20value\x20is\n\x20chos\
en\x20as\x20the\x20representative\x20session).\n\n\r\n\x05\x04\t\x02\x03\
\x06\x12\x04\xa7\x02\x02\x11\n\r\n\x05\x04\t\x02\x03\x01\x12\x04\xa7\x02\
\x12\"\n\r\n\x05\x04\t\x02\x03\x03\x12\x04\xa7\x02%&\n9\n\x04\x04\t\x02\
\x04\x12\x04\xaa\x02\x02$\x1a+\x20See\x20comment\x20for\x20'aggregation_\
type'\x20above.\n\n\r\n\x05\x04\t\x02\x04\x06\x12\x04\xaa\x02\x02\x0c\n\
\r\n\x05\x04\t\x02\x04\x01\x12\x04\xaa\x02\r\x1f\n\r\n\x05\x04\t\x02\x04\
\x03\x12\x04\xaa\x02\"#\n\xd4\x01\n\x04\x04\t\x02\x05\x12\x04\xaf\x02\
\x02\x18\x1a\xc5\x01\x20The\x20next\x20two\x20parameters\x20determine\
\x20the\x20\"slice\"\x20of\x20the\x20full\x20list\x20of\n\x20session\x20\
groups--sorted\x20and\x20filtered\x20by\x20the\x20parameters\x20above--t\
o\x20return.\n\x20The\x200-based\x20index\x20of\x20the\x20first\x20sessi\
on\x20group\x20to\x20return.\n\n\r\n\x05\x04\t\x02\x05\x05\x12\x04\xaf\
\x02\x02\x07\n\r\n\x05\x04\t\x02\x05\x01\x12\x04\xaf\x02\x08\x13\n\r\n\
\x05\x04\t\x02\x05\x03\x12\x04\xaf\x02\x16\x17\n\xfb\x02\n\x04\x04\t\x02\
\x06\x12\x04\xb7\x02\x02\x17\x1a\xec\x02\x20The\x20number\x20of\x20sessi\
on\x20groups\x20to\x20return\x20starting\x20at\x20the\x20session\x20grou\
p\n\x20indexed\x20by\x20'start_index'.\x20The\x20actual\x20number\x20of\
\x20session\x20groups\x20returned\n\x20is\x20min{slice_size,\x20total_si\
ze\x20-\x20start_index},\x20where\n\x20total_size\x20is\x20the\x20number\
\x20of\x20session\x20groups\x20in\x20the\x20full\x20list\n\x20sorted\x20\
and\x20filtered\x20by\x20the\x20parameters\x20above\x20(if\x20start_inde\
x\x20>\x20total_size\n\x20no\x20session\x20groups\x20are\x20returned).\n\
\n\r\n\x05\x04\t\x02\x06\x05\x12\x04\xb7\x02\x02\x07\n\r\n\x05\x04\t\x02\
\x06\x01\x12\x04\xb7\x02\x08\x12\n\r\n\x05\x04\t\x02\x06\x03\x12\x04\xb7\
\x02\x15\x16\n\xad\x01\n\x02\x04\n\x12\x06\xbd\x02\0\xed\x02\x01\x1a\x9e\
\x01\x20Defines\x20parmeters\x20for\x20a\x20ListSessionGroupsRequest\x20\
for\x20a\x20specific\x20column.\n\x20See\x20the\x20comment\x20for\x20\"L\
istSessionGroupsRequest\"\x20above\x20for\x20more\x20details.\n\x20NEXT_\
TAG:\x209\n\n\x0b\n\x03\x04\n\x01\x12\x04\xbd\x02\x08\x11\n\x0e\n\x04\
\x04\n\x08\0\x12\x06\xbe\x02\x02\xc1\x02\x03\n\r\n\x05\x04\n\x08\0\x01\
\x12\x04\xbe\x02\x08\x0c\n\x0c\n\x04\x04\n\x02\0\x12\x04\xbf\x02\x04\x1a\
\n\r\n\x05\x04\n\x02\0\x06\x12\x04\xbf\x02\x04\x0e\n\r\n\x05\x04\n\x02\0\
\x01\x12\x04\xbf\x02\x0f\x15\n\r\n\x05\x04\n\x02\0\x03\x12\x04\xbf\x02\
\x18\x19\n\x0c\n\x04\x04\n\x02\x01\x12\x04\xc0\x02\x04\x16\n\r\n\x05\x04\
\n\x02\x01\x05\x12\x04\xc0\x02\x04\n\n\r\n\x05\x04\n\x02\x01\x01\x12\x04\
\xc0\x02\x0b\x11\n\r\n\x05\x04\n\x02\x01\x03\x12\x04\xc0\x02\x14\x15\n\
\xc1\x06\n\x04\x04\n\x02\x02\x12\x04\xd1\x02\x02\x16\x1a\xb2\x06\x20Sort\
ing.\n\x20The\x20final\x20order\x20of\x20session\x20groups\x20in\x20the\
\x20response\x20is\x20defined\x20by\x20the\x20sub\n\x20collection\x20of\
\x20ColParams\x20messages\x20(out\x20of\x20the\n\x20ListSessionGroupsReq\
uest.col_params\x20repeated\x20field)\x20whose\x20'order'\x20field\n\x20\
(below)\x20is\x20not\x20ORDER_UNSPECIFIED.\x20In\x20each\x20of\x20the\
\x20messages\x20in\x20this\n\x20sub-collection,\x20the\x20next\x20two\
\x20fields\x20specify\x20the\x20ordering\x20of\x20the\x20values\n\x20and\
\x20missing_values\x20in\x20the\x20associated\x20column\x20of\x20the\x20\
session\x20group.\x20The\n\x20order\x20of\x20the\x20ColParams\x20message\
s\x20themselves\x20within\x20the\x20sub-collection\n\x20determines\x20th\
e\x20\"significance\"\x20of\x20the\x20associated\x20column\x20as\x20a\
\x20sorting\x20key:\n\x20with\x20the\x20first\x20being\x20the\x20primary\
\x20sorting\x20key,\x20the\x20second\x20being\x20the\n\x20secondary\x20s\
orting\x20key,\x20etc.\n\x20Note:\x20The\x20'session\x20group\x20name'\
\x20is\x20added\x20as\x20a\x20least\x20significant\x20sorting\n\x20key\
\x20to\x20the\x20keys\x20defined\x20by\x20the\x20user,\x20so\x20the\x20o\
rder\x20in\x20the\x20response\x20is\x20always\n\x20deterministic.\n\n\r\
\n\x05\x04\n\x02\x02\x06\x12\x04\xd1\x02\x02\x0b\n\r\n\x05\x04\n\x02\x02\
\x01\x12\x04\xd1\x02\x0c\x11\n\r\n\x05\x04\n\x02\x02\x03\x12\x04\xd1\x02\
\x14\x15\n\xe0\x01\n\x04\x04\n\x02\x03\x12\x04\xd6\x02\x02\x20\x1a\xd1\
\x01\x20This\x20field\x20is\x20ignored\x20if\x20order\x20is\x20ORDER_UNS\
PECIFIED.\n\x20Otherwise,\x20if\x20true,\x20missing\x20values\x20are\x20\
ordered\x20before\x20every\x20other\x20value\x20in\n\x20the\x20column;\
\x20if\x20false\x20they\x20are\x20ordered\x20after\x20every\x20other\x20\
value\x20in\x20the\n\x20column.\n\n\r\n\x05\x04\n\x02\x03\x05\x12\x04\
\xd6\x02\x02\x06\n\r\n\x05\x04\n\x02\x03\x01\x12\x04\xd6\x02\x07\x1b\n\r\
\n\x05\x04\n\x02\x03\x03\x12\x04\xd6\x02\x1e\x1f\n\xb6\x02\n\x04\x04\n\
\x08\x01\x12\x06\xdd\x02\x02\xe9\x02\x03\x1a\xa5\x02\x20Filtering.\n\x20\
The\x20'filter'\x20oneof\x20specifies\x20a\x20subset\x20of\x20the\x20dom\
ain\x20of\x20the\x20values\x20a\x20column\n\x20may\x20take.\x20Only\x20s\
ession\x20groups\x20with\x20each\x20of\x20their\x20column\x20values\x20b\
elonging\n\x20to\x20this\x20subset\x20are\x20included\x20in\x20the\x20re\
sponse.\x20If\x20this\x20field\x20is\x20not\n\x20specified,\x20the\x20su\
bset\x20is\x20taken\x20to\x20be\x20the\x20entire\x20column\x20domain.\n\
\n\r\n\x05\x04\n\x08\x01\x01\x12\x04\xdd\x02\x08\x0e\n\xeb\x01\n\x04\x04\
\n\x02\x04\x12\x04\xe2\x02\x04\x1d\x1a\xdc\x01\x20Only\x20valid\x20for\
\x20string-valued\x20hyperparameter\x20columns.\x20The\x20subset\x20is\n\
\x20the\x20set\x20of\x20all\x20strings\x20matching\x20the\x20regular\x20\
expression\x20stored\n\x20in\x20'regexp'\x20as\x20a\x20partial\x20match\
\x20(use\x20'^<regexp>$'\x20to\x20have\x20a\x20full\n\x20match\x20agains\
t\x20regexp).\n\n\r\n\x05\x04\n\x02\x04\x05\x12\x04\xe2\x02\x04\n\n\r\n\
\x05\x04\n\x02\x04\x01\x12\x04\xe2\x02\x0b\x18\n\r\n\x05\x04\n\x02\x04\
\x03\x12\x04\xe2\x02\x1b\x1c\nX\n\x04\x04\n\x02\x05\x12\x04\xe5\x02\x04!\
\x1aJ\x20Only\x20valid\x20for\x20numeric-valued\x20columns.\x20The\x20su\
bset\x20is\x20the\x20given\x20interval.\n\n\r\n\x05\x04\n\x02\x05\x06\
\x12\x04\xe5\x02\x04\x0c\n\r\n\x05\x04\n\x02\x05\x01\x12\x04\xe5\x02\r\
\x1c\n\r\n\x05\x04\n\x02\x05\x03\x12\x04\xe5\x02\x1f\x20\nK\n\x04\x04\n\
\x02\x06\x12\x04\xe8\x02\x042\x1a=\x20Valid\x20for\x20all\x20data\x20typ\
es.\x20The\x20subset\x20is\x20defined\x20explicitly.\n\n\r\n\x05\x04\n\
\x02\x06\x06\x12\x04\xe8\x02\x04\x1d\n\r\n\x05\x04\n\x02\x06\x01\x12\x04\
\xe8\x02\x1e-\n\r\n\x05\x04\n\x02\x06\x03\x12\x04\xe8\x0201\nm\n\x04\x04\
\n\x02\x07\x12\x04\xec\x02\x02\"\x1a_\x20Specifies\x20whether\x20to\x20e\
xclude\x20session\x20groups\x20whose\x20column\x20value\x20is\x20missing\
\n\x20from\x20the\x20response.\n\n\r\n\x05\x04\n\x02\x07\x05\x12\x04\xec\
\x02\x02\x06\n\r\n\x05\x04\n\x02\x07\x01\x12\x04\xec\x02\x07\x1d\n\r\n\
\x05\x04\n\x02\x07\x03\x12\x04\xec\x02\x20!\n\x0c\n\x02\x05\x03\x12\x06\
\xef\x02\0\xf3\x02\x01\n\x0b\n\x03\x05\x03\x01\x12\x04\xef\x02\x05\x0e\n\
\x0c\n\x04\x05\x03\x02\0\x12\x04\xf0\x02\x02\x18\n\r\n\x05\x05\x03\x02\0\
\x01\x12\x04\xf0\x02\x02\x13\n\r\n\x05\x05\x03\x02\0\x02\x12\x04\xf0\x02\
\x16\x17\n\x0c\n\x04\x05\x03\x02\x01\x12\x04\xf1\x02\x02\x10\n\r\n\x05\
\x05\x03\x02\x01\x01\x12\x04\xf1\x02\x02\x0b\n\r\n\x05\x05\x03\x02\x01\
\x02\x12\x04\xf1\x02\x0e\x0f\n\x0c\n\x04\x05\x03\x02\x02\x12\x04\xf2\x02\
\x02\x11\n\r\n\x05\x05\x03\x02\x02\x01\x12\x04\xf2\x02\x02\x0c\n\r\n\x05\
\x05\x03\x02\x02\x02\x12\x04\xf2\x02\x0f\x10\n\x0c\n\x02\x05\x04\x12\x06\
\xf5\x02\0\xfb\x02\x01\n\x0b\n\x03\x05\x04\x01\x12\x04\xf5\x02\x05\x14\n\
\x0c\n\x04\x05\x04\x02\0\x12\x04\xf6\x02\x02\x18\n\r\n\x05\x05\x04\x02\0\
\x01\x12\x04\xf6\x02\x02\x13\n\r\n\x05\x05\x04\x02\0\x02\x12\x04\xf6\x02\
\x16\x17\n\x0c\n\x04\x05\x04\x02\x01\x12\x04\xf7\x02\x02\x16\n\r\n\x05\
\x05\x04\x02\x01\x01\x12\x04\xf7\x02\x02\x11\n\r\n\x05\x05\x04\x02\x01\
\x02\x12\x04\xf7\x02\x14\x15\n\x0c\n\x04\x05\x04\x02\x02\x12\x04\xf8\x02\
\x02\x19\n\r\n\x05\x05\x04\x02\x02\x01\x12\x04\xf8\x02\x02\x14\n\r\n\x05\
\x05\x04\x02\x02\x02\x12\x04\xf8\x02\x17\x18\n\x0c\n\x04\x05\x04\x02\x03\
\x12\x04\xf9\x02\x02\x16\n\r\n\x05\x05\x04\x02\x03\x01\x12\x04\xf9\x02\
\x02\x11\n\r\n\x05\x05\x04\x02\x03\x02\x12\x04\xf9\x02\x14\x15\n\x0c\n\
\x04\x05\x04\x02\x04\x12\x04\xfa\x02\x02\x16\n\r\n\x05\x05\x04\x02\x04\
\x01\x12\x04\xfa\x02\x02\x11\n\r\n\x05\x05\x04\x02\x04\x02\x12\x04\xfa\
\x02\x14\x15\nB\n\x02\x04\x0b\x12\x06\xff\x02\0\x87\x03\x01\x1a4\x20See\
\x20ListSessionGroups\x20in\x20http_api.md.\n\x20NEXT_TAG:\x204\n\n\x0b\
\n\x03\x04\x0b\x01\x12\x04\xff\x02\x08!\n\x0c\n\x04\x04\x0b\x02\0\x12\
\x04\x80\x03\x02+\n\r\n\x05\x04\x0b\x02\0\x04\x12\x04\x80\x03\x02\n\n\r\
\n\x05\x04\x0b\x02\0\x06\x12\x04\x80\x03\x0b\x17\n\r\n\x05\x04\x0b\x02\0\
\x01\x12\x04\x80\x03\x18&\n\r\n\x05\x04\x0b\x02\0\x03\x12\x04\x80\x03)*\
\n\xef\x01\n\x04\x04\x0b\x02\x01\x12\x04\x86\x03\x02\x17\x1a\xe0\x01\x20\
Denotes\x20the\x20total\x20number\x20of\x20session\x20groups\x20in\x20th\
e\x20full\x20filtered\x20list.\n\x20(Recall\x20that\x20this\x20response\
\x20may\x20only\x20be\x20a\x20slice).\n\x20It\x20is\x20used\x20by\x20the\
\x20UI\x20to\x20calculate\x20total\x20number\x20of\x20pages\x20and\x20ca\
n\x20be\n\x20set\x20here\x20to\x20-1\x20to\x20mean\x20\"unknown\".\n\n\r\
\n\x05\x04\x0b\x02\x01\x05\x12\x04\x86\x03\x02\x07\n\r\n\x05\x04\x0b\x02\
\x01\x01\x12\x04\x86\x03\x08\x12\n\r\n\x05\x04\x0b\x02\x01\x03\x12\x04\
\x86\x03\x15\x16\nG\n\x02\x04\x0c\x12\x06\x8b\x03\0\x8f\x03\x01\x1a9\x20\
See\x20ListMetricEvalsRequest\x20in\x20http_api.md.\n\x20NEXT_TAG:\x204\
\n\n\x0b\n\x03\x04\x0c\x01\x12\x04\x8b\x03\x08\x1e\n\x0c\n\x04\x04\x0c\
\x02\0\x12\x04\x8c\x03\x02\x1d\n\r\n\x05\x04\x0c\x02\0\x05\x12\x04\x8c\
\x03\x02\x08\n\r\n\x05\x04\x0c\x02\0\x01\x12\x04\x8c\x03\t\x18\n\r\n\x05\
\x04\x0c\x02\0\x03\x12\x04\x8c\x03\x1b\x1c\n\x0c\n\x04\x04\x0c\x02\x01\
\x12\x04\x8d\x03\x02\x1a\n\r\n\x05\x04\x0c\x02\x01\x05\x12\x04\x8d\x03\
\x02\x08\n\r\n\x05\x04\x0c\x02\x01\x01\x12\x04\x8d\x03\t\x15\n\r\n\x05\
\x04\x0c\x02\x01\x03\x12\x04\x8d\x03\x18\x19\n\x0c\n\x04\x04\x0c\x02\x02\
\x12\x04\x8e\x03\x02\x1d\n\r\n\x05\x04\x0c\x02\x02\x06\x12\x04\x8e\x03\
\x02\x0c\n\r\n\x05\x04\x0c\x02\x02\x01\x12\x04\x8e\x03\r\x18\n\r\n\x05\
\x04\x0c\x02\x02\x03\x12\x04\x8e\x03\x1b\x1cb\x06proto3\
";
static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;
fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
::protobuf::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
}
pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
file_descriptor_proto_lazy.get(|| {
parse_descriptor_proto()
})
}