use {
crate::models,
serde::{Deserialize, Serialize},
};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct VerdictConfigV2 {
#[serde(rename = "action")]
pub action: Action,
#[serde(rename = "approvers", skip_serializing_if = "Option::is_none")]
pub approvers: Option<models::ApproversConfigV2>,
#[serde(rename = "designatedSigners", skip_serializing_if = "Option::is_none")]
pub designated_signers: Option<models::DesignatedSignersConfigV2>,
}
impl VerdictConfigV2 {
pub fn new(action: Action) -> VerdictConfigV2 {
VerdictConfigV2 {
action,
approvers: None,
designated_signers: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Action {
#[serde(rename = "ALLOW")]
Allow,
#[serde(rename = "BLOCK")]
Block,
#[serde(rename = "2-TIER")]
Variant2Tier,
#[serde(rename = "ACCEPT")]
Accept,
#[serde(rename = "REJECT")]
Reject,
#[serde(rename = "ALERT")]
Alert,
#[serde(rename = "SCREEN")]
Screen,
#[serde(rename = "PASS")]
Pass,
#[serde(rename = "WAIT")]
Wait,
#[serde(rename = "FREEZE")]
Freeze,
#[serde(rename = "CANCEL")]
Cancel,
}
impl Default for Action {
fn default() -> Action {
Self::Allow
}
}