use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct RevokeRole {
#[serde(rename = "user", skip_serializing_if = "Option::is_none")]
pub user: Option<String>,
#[serde(rename = "resource_id", skip_serializing_if = "Option::is_none")]
pub resource_id: Option<String>,
#[serde(rename = "resource_type", skip_serializing_if = "Option::is_none")]
pub resource_type: Option<ResourceType>,
#[serde(rename = "role_name", skip_serializing_if = "Option::is_none")]
pub role_name: Option<RoleName>,
}
impl RevokeRole {
pub fn new() -> RevokeRole {
RevokeRole {
user: None,
resource_id: None,
resource_type: None,
role_name: None,
}
}
}
#[derive(
Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, Default,
)]
pub enum ResourceType {
#[serde(rename = "project")]
#[default]
Project,
#[serde(rename = "channel")]
Channel,
#[serde(rename = "template")]
Template,
}
#[derive(
Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, Default,
)]
pub enum RoleName {
#[serde(rename = "admin")]
#[default]
Admin,
#[serde(rename = "manager")]
Manager,
#[serde(rename = "user")]
User,
}