Skip to main content

box_open_sdk/managers/
session_termination.rs

1// Code generated by box-gantry. DO NOT EDIT.
2
3use crate::runtime::{self, Error};
4
5/// Operations for the "session_termination" API area.
6pub struct SessionTerminationManager {
7    session: std::sync::Arc<runtime::Client>,
8}
9
10impl SessionTerminationManager {
11    pub(crate) fn new(session: std::sync::Arc<runtime::Client>) -> Self {
12        Self { session }
13    }
14
15    pub async fn create_user_terminate_sessions(
16        &self,
17        body: crate::models::schemas::UserTerminateSessionsCreateRequest,
18    ) -> Result<crate::models::schemas::SessionTerminationMessage, Error> {
19        let mut url = self.session.base_url("api");
20        url.push_str("/users");
21        url.push_str("/terminate_sessions");
22        let mut req = self.session.new_request("POST", &url);
23        let payload = serde_json::to_vec(&body)?;
24        req = runtime::with_json_body(req, &payload);
25        let resp = self.session.fetch(req).await?;
26        let data = runtime::response_bytes(&resp)?;
27        Ok(serde_json::from_slice(&data)?)
28    }
29
30    pub async fn create_group_terminate_sessions(
31        &self,
32        body: crate::models::schemas::GroupTerminateSessionsCreateRequest,
33    ) -> Result<crate::models::schemas::SessionTerminationMessage, Error> {
34        let mut url = self.session.base_url("api");
35        url.push_str("/groups");
36        url.push_str("/terminate_sessions");
37        let mut req = self.session.new_request("POST", &url);
38        let payload = serde_json::to_vec(&body)?;
39        req = runtime::with_json_body(req, &payload);
40        let resp = self.session.fetch(req).await?;
41        let data = runtime::response_bytes(&resp)?;
42        Ok(serde_json::from_slice(&data)?)
43    }
44}