use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct Action {
pub id: String,
pub label_key: String,
pub state: ActionState,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum ActionState {
Allowed,
Forbidden {
verb: String,
resource: String,
namespace: Option<String>,
},
Gated {
reason_key: String,
},
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum Status {
Ok,
Warning {
message_key: String,
},
Error {
message_key: String,
},
ReadOnly {
message_key: String,
},
}