use crate::models;
use serde::{Deserialize, Serialize};
use serde_with::serde_as;
#[serde_as]
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ReadContextDetails {
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "summary")]
pub summary: String,
#[serde(rename = "description")]
pub description: String,
#[serde(rename = "disableReadLogging")]
pub disable_read_logging: bool,
#[serde(rename = "keyCacheTTL")]
pub key_cache_ttl: i32,
#[serde(rename = "requiredHooks", skip_serializing_if = "Option::is_none")]
pub required_hooks: Option<Vec<models::ReadContextRequiredHook>>,
#[serde(rename = "readParameters")]
pub read_parameters: Vec<models::ReadContextParameter>,
#[serde(rename = "attachedPolicies", skip_serializing_if = "Option::is_none")]
pub attached_policies: Option<Vec<models::ReadContextDetailsAttachedPoliciesInner>>,
#[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_as(as = "Option<serde_with::base64::Base64>")]
#[serde(rename = "policyAssembly", skip_serializing_if = "Option::is_none")]
pub policy_assembly: Option<Vec<u8>>,
}
impl ReadContextDetails {
pub fn new(name: String, summary: String, description: String, disable_read_logging: bool, key_cache_ttl: i32, read_parameters: Vec<models::ReadContextParameter>, imported: bool) -> ReadContextDetails {
ReadContextDetails {
name,
summary,
description,
disable_read_logging,
key_cache_ttl,
required_hooks: None,
read_parameters,
attached_policies: None,
imported,
source_domain_id: None,
source_domain_name: None,
policy_assembly: None,
}
}
}