bitwarden_api_api/apis/
access_requests_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 AccessRequestsApi: Send + Sync {
29 async fn activate<'a>(&self, id: uuid::Uuid)
31 -> Result<models::AccessLeaseResponseModel, Error>;
32
33 async fn decide<'a>(
35 &self,
36 id: uuid::Uuid,
37 access_decision_request_model: models::AccessDecisionRequestModel,
38 ) -> Result<models::AccessRequestDetailsResponseModel, Error>;
39
40 async fn get_details<'a>(
42 &self,
43 id: uuid::Uuid,
44 ) -> Result<models::AccessRequestDetailsResponseModel, Error>;
45
46 async fn get_history(
48 &self,
49 ) -> Result<models::AccessRequestDetailsResponseModelListResponseModel, Error>;
50
51 async fn get_inbox(
53 &self,
54 ) -> Result<models::AccessRequestDetailsResponseModelListResponseModel, Error>;
55
56 async fn get_mine(
58 &self,
59 ) -> Result<models::AccessRequestDetailsResponseModelListResponseModel, Error>;
60
61 async fn revoke<'a>(
63 &self,
64 id: uuid::Uuid,
65 access_request_revoke_request_model: Option<models::AccessRequestRevokeRequestModel>,
66 ) -> Result<(), Error>;
67}
68
69pub struct AccessRequestsApiClient {
70 configuration: Arc<configuration::Configuration>,
71}
72
73impl AccessRequestsApiClient {
74 pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
75 Self { configuration }
76 }
77}
78
79#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
80#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
81impl AccessRequestsApi for AccessRequestsApiClient {
82 async fn activate<'a>(
83 &self,
84 id: uuid::Uuid,
85 ) -> Result<models::AccessLeaseResponseModel, Error> {
86 let local_var_configuration = &self.configuration;
87
88 let local_var_client = &local_var_configuration.client;
89
90 let local_var_uri_str = format!(
91 "{}/access-requests/{id}/activate",
92 local_var_configuration.base_path,
93 id = id
94 );
95 let mut local_var_req_builder =
96 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
97
98 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
99
100 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
101 }
102
103 async fn decide<'a>(
104 &self,
105 id: uuid::Uuid,
106 access_decision_request_model: models::AccessDecisionRequestModel,
107 ) -> Result<models::AccessRequestDetailsResponseModel, Error> {
108 let local_var_configuration = &self.configuration;
109
110 let local_var_client = &local_var_configuration.client;
111
112 let local_var_uri_str = format!(
113 "{}/access-requests/{id}/decision",
114 local_var_configuration.base_path,
115 id = id
116 );
117 let mut local_var_req_builder =
118 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
119
120 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
121 local_var_req_builder = local_var_req_builder.json(&access_decision_request_model);
122
123 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
124 }
125
126 async fn get_details<'a>(
127 &self,
128 id: uuid::Uuid,
129 ) -> Result<models::AccessRequestDetailsResponseModel, Error> {
130 let local_var_configuration = &self.configuration;
131
132 let local_var_client = &local_var_configuration.client;
133
134 let local_var_uri_str = format!(
135 "{}/access-requests/{id}",
136 local_var_configuration.base_path,
137 id = id
138 );
139 let mut local_var_req_builder =
140 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
141
142 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
143
144 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
145 }
146
147 async fn get_history(
148 &self,
149 ) -> Result<models::AccessRequestDetailsResponseModelListResponseModel, Error> {
150 let local_var_configuration = &self.configuration;
151
152 let local_var_client = &local_var_configuration.client;
153
154 let local_var_uri_str = format!(
155 "{}/access-requests/history",
156 local_var_configuration.base_path
157 );
158 let mut local_var_req_builder =
159 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
160
161 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
162
163 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
164 }
165
166 async fn get_inbox(
167 &self,
168 ) -> Result<models::AccessRequestDetailsResponseModelListResponseModel, Error> {
169 let local_var_configuration = &self.configuration;
170
171 let local_var_client = &local_var_configuration.client;
172
173 let local_var_uri_str = format!(
174 "{}/access-requests/inbox",
175 local_var_configuration.base_path
176 );
177 let mut local_var_req_builder =
178 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
179
180 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
181
182 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
183 }
184
185 async fn get_mine(
186 &self,
187 ) -> Result<models::AccessRequestDetailsResponseModelListResponseModel, Error> {
188 let local_var_configuration = &self.configuration;
189
190 let local_var_client = &local_var_configuration.client;
191
192 let local_var_uri_str =
193 format!("{}/access-requests/mine", local_var_configuration.base_path);
194 let mut local_var_req_builder =
195 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
196
197 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
198
199 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
200 }
201
202 async fn revoke<'a>(
203 &self,
204 id: uuid::Uuid,
205 access_request_revoke_request_model: Option<models::AccessRequestRevokeRequestModel>,
206 ) -> Result<(), Error> {
207 let local_var_configuration = &self.configuration;
208
209 let local_var_client = &local_var_configuration.client;
210
211 let local_var_uri_str = format!(
212 "{}/access-requests/{id}/revoke",
213 local_var_configuration.base_path,
214 id = id
215 );
216 let mut local_var_req_builder =
217 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
218
219 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
220 local_var_req_builder = local_var_req_builder.json(&access_request_revoke_request_model);
221
222 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
223 }
224}