bitwarden_api_api/apis/
leases_api.rs1use std::sync::Arc;
12
13use async_trait::async_trait;
14#[cfg(feature = "mockall")]
15use mockall::automock;
16use reqwest;
17use serde::{Deserialize, Serialize, de::Error as _};
18
19use super::{Error, configuration};
20use crate::{
21 apis::{AuthRequired, ContentType, ResponseContent},
22 models,
23};
24
25#[cfg_attr(feature = "mockall", automock)]
26#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
27#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
28pub trait LeasesApi: Send + Sync {
29 async fn extend<'a>(
31 &self,
32 id: uuid::Uuid,
33 access_lease_extension_request_model: models::AccessLeaseExtensionRequestModel,
34 ) -> Result<models::AccessRequestDetailsResponseModel, Error>;
35
36 async fn get_active(&self) -> Result<models::AccessLeaseResponseModelListResponseModel, Error>;
38
39 async fn get_history(&self)
41 -> Result<models::AccessLeaseResponseModelListResponseModel, Error>;
42
43 async fn get_mine(&self) -> Result<models::AccessLeaseResponseModelListResponseModel, Error>;
45
46 async fn revoke<'a>(
48 &self,
49 id: uuid::Uuid,
50 access_lease_revoke_request_model: models::AccessLeaseRevokeRequestModel,
51 ) -> Result<(), Error>;
52}
53
54pub struct LeasesApiClient {
55 configuration: Arc<configuration::Configuration>,
56}
57
58impl LeasesApiClient {
59 pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
60 Self { configuration }
61 }
62}
63
64#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
65#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
66impl LeasesApi for LeasesApiClient {
67 async fn extend<'a>(
68 &self,
69 id: uuid::Uuid,
70 access_lease_extension_request_model: models::AccessLeaseExtensionRequestModel,
71 ) -> Result<models::AccessRequestDetailsResponseModel, Error> {
72 let local_var_configuration = &self.configuration;
73
74 let local_var_client = &local_var_configuration.client;
75
76 let local_var_uri_str = format!(
77 "{}/leases/{id}/extend",
78 local_var_configuration.base_path,
79 id = id
80 );
81 let mut local_var_req_builder =
82 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
83
84 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
85 local_var_req_builder = local_var_req_builder.json(&access_lease_extension_request_model);
86
87 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
88 }
89
90 async fn get_active(&self) -> Result<models::AccessLeaseResponseModelListResponseModel, Error> {
91 let local_var_configuration = &self.configuration;
92
93 let local_var_client = &local_var_configuration.client;
94
95 let local_var_uri_str = format!("{}/leases/active", local_var_configuration.base_path);
96 let mut local_var_req_builder =
97 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
98
99 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
100
101 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
102 }
103
104 async fn get_history(
105 &self,
106 ) -> Result<models::AccessLeaseResponseModelListResponseModel, Error> {
107 let local_var_configuration = &self.configuration;
108
109 let local_var_client = &local_var_configuration.client;
110
111 let local_var_uri_str = format!("{}/leases/history", local_var_configuration.base_path);
112 let mut local_var_req_builder =
113 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
114
115 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
116
117 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
118 }
119
120 async fn get_mine(&self) -> Result<models::AccessLeaseResponseModelListResponseModel, Error> {
121 let local_var_configuration = &self.configuration;
122
123 let local_var_client = &local_var_configuration.client;
124
125 let local_var_uri_str = format!("{}/leases/mine", local_var_configuration.base_path);
126 let mut local_var_req_builder =
127 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
128
129 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
130
131 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
132 }
133
134 async fn revoke<'a>(
135 &self,
136 id: uuid::Uuid,
137 access_lease_revoke_request_model: models::AccessLeaseRevokeRequestModel,
138 ) -> Result<(), Error> {
139 let local_var_configuration = &self.configuration;
140
141 let local_var_client = &local_var_configuration.client;
142
143 let local_var_uri_str = format!(
144 "{}/leases/{id}/revoke",
145 local_var_configuration.base_path,
146 id = id
147 );
148 let mut local_var_req_builder =
149 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
150
151 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
152 local_var_req_builder = local_var_req_builder.json(&access_lease_revoke_request_model);
153
154 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
155 }
156}