#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HostSharingRequirements {
#[prost(oneof = "host_sharing_requirements::Requirements", tags = "2, 4, 5, 6")]
pub requirements: ::core::option::Option<host_sharing_requirements::Requirements>,
}
pub mod host_sharing_requirements {
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct Shared {
#[prost(message, optional, tag = "1")]
pub weight_class: ::core::option::Option<super::WeightClass>,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ExclusiveAccess {}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OnePerToken {
#[prost(string, tag = "1")]
pub identifier: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub weight_class: ::core::option::Option<super::WeightClass>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OnePerTokens {
#[prost(string, repeated, tag = "1")]
pub identifiers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(message, optional, tag = "2")]
pub weight_class: ::core::option::Option<super::WeightClass>,
}
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Requirements {
#[prost(message, tag = "2")]
ExclusiveAccess(ExclusiveAccess),
#[prost(message, tag = "4")]
Shared(Shared),
#[prost(message, tag = "5")]
OnePerToken(OnePerToken),
#[prost(message, tag = "6")]
OnePerTokens(OnePerTokens),
}
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct WeightClass {
#[prost(oneof = "weight_class::Value", tags = "1, 2")]
pub value: ::core::option::Option<weight_class::Value>,
}
pub mod weight_class {
#[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
pub enum Value {
#[prost(uint64, tag = "1")]
Permits(u64),
#[prost(uint32, tag = "2")]
Percentage(u32),
}
}