cognite/api/iam/
sessions.rs

1use crate::api::resource::Resource;
2use crate::dto::iam::session::*;
3use crate::{CogniteId, Create, Items, List, Retrieve, WithBasePath};
4use crate::{ItemsVec, Result};
5
6/// Sessions are used to maintain access to CDF resources for an extended period of time.
7pub type SessionsResource = Resource<Session>;
8
9impl WithBasePath for SessionsResource {
10    const BASE_PATH: &'static str = "sessions";
11}
12
13impl List<SessionQuery, Session> for SessionsResource {}
14impl Create<AddSession, Session> for SessionsResource {}
15impl Retrieve<CogniteId, Session> for SessionsResource {}
16
17impl SessionsResource {
18    /// Revoke a list of sessions.
19    ///
20    /// # Arguments
21    ///
22    /// * `session_ids` - Sessions to revoke.
23    pub async fn revoke(&self, session_ids: &[CogniteId]) -> Result<Vec<Session>> {
24        let items = Items::new(session_ids);
25        let response: ItemsVec<Session> = self.api_client.post("sessions/revoke", &items).await?;
26        Ok(response.items)
27    }
28}