#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum AccessCheckOperator {
And = 0,
Or = 1,
}
impl AccessCheckOperator {
pub fn as_str_name(&self) -> &'static str {
match self {
AccessCheckOperator::And => "AND",
AccessCheckOperator::Or => "OR",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"AND" => Some(Self::And),
"OR" => Some(Self::Or),
_ => None,
}
}
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AccessCheck {
#[prost(oneof="access_check::Kind", tags="1, 2, 3")]
#[serde(flatten)]
pub kind: ::core::option::Option<access_check::Kind>,
}
pub mod access_check {
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Kind {
#[prost(message, tag="1")]
Chain(super::AccessCheckChain),
#[prost(string, tag="2")]
User(::prost::alloc::string::String),
#[prost(string, tag="3")]
Role(::prost::alloc::string::String),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AccessCheckChain {
#[prost(enumeration="AccessCheckOperator", tag="1")]
pub operator: i32,
#[prost(message, repeated, tag="2")]
pub checks: ::prost::alloc::vec::Vec<AccessCheck>,
}