box_open_sdk/managers/
classifications.rs1use crate::runtime::{self, Error};
4
5pub struct ClassificationsManager {
7 session: std::sync::Arc<runtime::Client>,
8}
9
10impl ClassificationsManager {
11 pub(crate) fn new(session: std::sync::Arc<runtime::Client>) -> Self {
12 Self { session }
13 }
14
15 pub async fn get(&self) -> Result<crate::models::schemas::ClassificationTemplate, Error> {
16 let mut url = self.session.base_url("api");
17 url.push_str("/metadata_templates");
18 url.push_str("/enterprise");
19 url.push_str("/securityClassification-6VMVochwUWo");
20 url.push_str("/schema");
21 let req = self.session.new_request("GET", &url);
22 let resp = self.session.fetch(req).await?;
23 let data = runtime::response_bytes(&resp)?;
24 Ok(serde_json::from_slice(&data)?)
25 }
26
27 pub async fn update_add(
28 &self,
29 body: Vec<crate::models::schemas::UpdateClassificationAddRequest>,
30 ) -> Result<crate::models::schemas::ClassificationTemplate, Error> {
31 let mut url = self.session.base_url("api");
32 url.push_str("/metadata_templates");
33 url.push_str("/enterprise");
34 url.push_str("/securityClassification-6VMVochwUWo");
35 url.push_str("/schema");
36 let mut req = self.session.new_request("PUT", &url);
37 let payload = serde_json::to_vec(&body)?;
38 req = runtime::with_json_body(req, &payload);
39 let resp = self.session.fetch(req).await?;
40 let data = runtime::response_bytes(&resp)?;
41 Ok(serde_json::from_slice(&data)?)
42 }
43
44 pub async fn update_update(
45 &self,
46 body: Vec<crate::models::schemas::UpdateClassificationUpdateRequest>,
47 ) -> Result<crate::models::schemas::ClassificationTemplate, Error> {
48 let mut url = self.session.base_url("api");
49 url.push_str("/metadata_templates");
50 url.push_str("/enterprise");
51 url.push_str("/securityClassification-6VMVochwUWo");
52 url.push_str("/schema");
53 let mut req = self.session.new_request("PUT", &url);
54 let payload = serde_json::to_vec(&body)?;
55 req = runtime::with_json_body(req, &payload);
56 let resp = self.session.fetch(req).await?;
57 let data = runtime::response_bytes(&resp)?;
58 Ok(serde_json::from_slice(&data)?)
59 }
60
61 pub async fn create_metadata_template_schema_classifications(
62 &self,
63 body: crate::models::schemas::CreateMetadataTemplateSchemaClassificationsRequest,
64 ) -> Result<crate::models::schemas::ClassificationTemplate, Error> {
65 let mut url = self.session.base_url("api");
66 url.push_str("/metadata_templates");
67 url.push_str("/schema");
68 let mut req = self.session.new_request("POST", &url);
69 let payload = serde_json::to_vec(&body)?;
70 req = runtime::with_json_body(req, &payload);
71 let resp = self.session.fetch(req).await?;
72 let data = runtime::response_bytes(&resp)?;
73 Ok(serde_json::from_slice(&data)?)
74 }
75}