use {
crate::models,
serde::{Deserialize, Serialize},
};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct AccountConfigV2 {
#[serde(rename = "type")]
pub r#type: models::AccountTypeV2,
#[serde(rename = "subType", skip_serializing_if = "Option::is_none")]
pub sub_type: Option<Vec<models::AccountIdentifierV2>>,
#[serde(rename = "ids", skip_serializing_if = "Option::is_none")]
pub ids: Option<Vec<models::AccountIdentifierV2>>,
#[serde(rename = "operator")]
pub operator: models::PolicyOperatorV2,
#[serde(rename = "matchFrom", skip_serializing_if = "Option::is_none")]
pub match_from: Option<MatchFrom>,
}
impl AccountConfigV2 {
pub fn new(
r#type: models::AccountTypeV2,
operator: models::PolicyOperatorV2,
) -> AccountConfigV2 {
AccountConfigV2 {
r#type,
sub_type: None,
ids: None,
operator,
match_from: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum MatchFrom {
#[serde(rename = "ACCOUNT")]
Account,
#[serde(rename = "SOURCE")]
Source,
}
impl Default for MatchFrom {
fn default() -> MatchFrom {
Self::Account
}
}