use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct DataPolicyBindingInfo {
#[serde(rename = "policyId")]
pub policy_id: String,
#[serde(rename = "policyName")]
pub policy_name: String,
#[serde(rename = "imported")]
pub imported: bool,
#[serde(rename = "sourceDomainID", skip_serializing_if = "Option::is_none")]
pub source_domain_id: Option<String>,
#[serde(rename = "sourceDomainName", skip_serializing_if = "Option::is_none")]
pub source_domain_name: Option<String>,
#[serde(rename = "readContexts")]
pub read_contexts: Vec<models::DataPolicyBindingInfoReadContextsInner>,
#[serde(rename = "defaultAttachment")]
pub default_attachment: DefaultAttachment,
#[serde(rename = "peerDefault", skip_serializing_if = "Option::is_none")]
pub peer_default: Option<PeerDefault>,
}
impl DataPolicyBindingInfo {
pub fn new(policy_id: String, policy_name: String, imported: bool, read_contexts: Vec<models::DataPolicyBindingInfoReadContextsInner>, default_attachment: DefaultAttachment) -> DataPolicyBindingInfo {
DataPolicyBindingInfo {
policy_id,
policy_name,
imported,
source_domain_id: None,
source_domain_name: None,
read_contexts,
default_attachment,
peer_default: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum DefaultAttachment {
#[serde(rename = "Inherit")]
Inherit,
#[serde(rename = "NotAttached")]
NotAttached,
#[serde(rename = "Attached")]
Attached,
}
impl Default for DefaultAttachment {
fn default() -> DefaultAttachment {
Self::Inherit
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum PeerDefault {
#[serde(rename = "Attached")]
Attached,
#[serde(rename = "NotAttached")]
NotAttached,
#[serde(rename = "NoConfiguration")]
NoConfiguration,
}
impl Default for PeerDefault {
fn default() -> PeerDefault {
Self::Attached
}
}