#![allow(unused_imports)]
use super::builders::*;
use super::client::PolicyServiceClient;
use unitycatalog_common::models::policies::v1::*;
#[derive(Clone)]
pub struct PolicyClient {
pub(crate) policy_name: String,
pub(crate) client: PolicyServiceClient,
}
impl PolicyClient {
pub fn new(policy_name: impl Into<String>, client: PolicyServiceClient) -> Self {
Self {
policy_name: policy_name.into(),
client,
}
}
pub fn name(&self) -> &str {
&self.policy_name
}
pub fn full_name(&self) -> String {
self.policy_name.clone()
}
pub fn create_policy(&self, policy_info: PolicyInfo) -> CreatePolicyBuilder {
CreatePolicyBuilder::new(
self.client.clone(),
&self.policy_name,
&self.policy_name,
policy_info,
)
}
pub fn get(&self) -> GetPolicyBuilder {
GetPolicyBuilder::new(
self.client.clone(),
&self.policy_name,
&self.policy_name,
&self.policy_name,
)
}
pub fn update(&self, policy_info: PolicyInfo) -> UpdatePolicyBuilder {
UpdatePolicyBuilder::new(
self.client.clone(),
&self.policy_name,
&self.policy_name,
&self.policy_name,
policy_info,
)
}
pub fn delete(&self) -> DeletePolicyBuilder {
DeletePolicyBuilder::new(
self.client.clone(),
&self.policy_name,
&self.policy_name,
&self.policy_name,
)
}
}