use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct EffectiveRole {
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "label")]
pub label: String,
#[serde(rename = "capabilities")]
pub capabilities: Box<models::RoleCapabilities>,
#[serde(rename = "source")]
pub source: Source,
#[serde(rename = "overridden")]
pub overridden: bool,
}
impl EffectiveRole {
pub fn new(name: String, label: String, capabilities: models::RoleCapabilities, source: Source, overridden: bool) -> EffectiveRole {
EffectiveRole {
name,
label,
capabilities: Box::new(capabilities),
source,
overridden,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Source {
#[serde(rename = "instance")]
Instance,
#[serde(rename = "workspace")]
Workspace,
}
impl Default for Source {
fn default() -> Source {
Self::Instance
}
}