1use 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 OrganizationInviteLinksApi: Send + Sync {
29 async fn create<'a>(
31 &self,
32 org_id: uuid::Uuid,
33 create_organization_invite_link_request_model: Option<
34 models::CreateOrganizationInviteLinkRequestModel,
35 >,
36 ) -> Result<models::OrganizationInviteLinkResponseModel, Error>;
37
38 async fn delete<'a>(&self, org_id: uuid::Uuid) -> Result<(), Error>;
40
41 async fn get<'a>(
43 &self,
44 org_id: uuid::Uuid,
45 ) -> Result<models::OrganizationInviteLinkResponseModel, Error>;
46
47 async fn get_policies<'a>(
49 &self,
50 get_organization_invite_link_policies_request_model: Option<
51 models::GetOrganizationInviteLinkPoliciesRequestModel,
52 >,
53 ) -> Result<models::PolicyResponseModelListResponseModel, Error>;
54
55 async fn get_status<'a>(
57 &self,
58 get_organization_invite_link_status_request_model: Option<
59 models::GetOrganizationInviteLinkStatusRequestModel,
60 >,
61 ) -> Result<models::OrganizationInviteLinkStatusResponseModel, Error>;
62
63 async fn refresh<'a>(
65 &self,
66 org_id: uuid::Uuid,
67 refresh_organization_invite_link_request_model: Option<
68 models::RefreshOrganizationInviteLinkRequestModel,
69 >,
70 ) -> Result<models::OrganizationInviteLinkResponseModel, Error>;
71
72 async fn update<'a>(
74 &self,
75 org_id: uuid::Uuid,
76 update_organization_invite_link_request_model: Option<
77 models::UpdateOrganizationInviteLinkRequestModel,
78 >,
79 ) -> Result<models::OrganizationInviteLinkResponseModel, Error>;
80
81 async fn update_invite_support_confirm<'a>(
83 &self,
84 org_id: uuid::Uuid,
85 update_invite_support_confirm_request_model: Option<
86 models::UpdateInviteSupportConfirmRequestModel,
87 >,
88 ) -> Result<models::OrganizationInviteLinkResponseModel, Error>;
89
90 async fn validate_email_domain<'a>(
92 &self,
93 organization_invite_link_validate_email_domain_request_model: Option<
94 models::OrganizationInviteLinkValidateEmailDomainRequestModel,
95 >,
96 ) -> Result<models::OrganizationInviteLinkValidateEmailDomainResponseModel, Error>;
97}
98
99pub struct OrganizationInviteLinksApiClient {
100 configuration: Arc<configuration::Configuration>,
101}
102
103impl OrganizationInviteLinksApiClient {
104 pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
105 Self { configuration }
106 }
107}
108
109#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
110#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
111impl OrganizationInviteLinksApi for OrganizationInviteLinksApiClient {
112 async fn create<'a>(
113 &self,
114 org_id: uuid::Uuid,
115 create_organization_invite_link_request_model: Option<
116 models::CreateOrganizationInviteLinkRequestModel,
117 >,
118 ) -> Result<models::OrganizationInviteLinkResponseModel, Error> {
119 let local_var_configuration = &self.configuration;
120
121 let local_var_client = &local_var_configuration.client;
122
123 let local_var_uri_str = format!(
124 "{}/organizations/{orgId}/invite-link",
125 local_var_configuration.base_path,
126 orgId = org_id
127 );
128 let mut local_var_req_builder =
129 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
130
131 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
132 local_var_req_builder =
133 local_var_req_builder.json(&create_organization_invite_link_request_model);
134
135 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
136 }
137
138 async fn delete<'a>(&self, org_id: uuid::Uuid) -> 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 "{}/organizations/{orgId}/invite-link",
145 local_var_configuration.base_path,
146 orgId = org_id
147 );
148 let mut local_var_req_builder =
149 local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
150
151 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
152
153 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
154 }
155
156 async fn get<'a>(
157 &self,
158 org_id: uuid::Uuid,
159 ) -> Result<models::OrganizationInviteLinkResponseModel, Error> {
160 let local_var_configuration = &self.configuration;
161
162 let local_var_client = &local_var_configuration.client;
163
164 let local_var_uri_str = format!(
165 "{}/organizations/{orgId}/invite-link",
166 local_var_configuration.base_path,
167 orgId = org_id
168 );
169 let mut local_var_req_builder =
170 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
171
172 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
173
174 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
175 }
176
177 async fn get_policies<'a>(
178 &self,
179 get_organization_invite_link_policies_request_model: Option<
180 models::GetOrganizationInviteLinkPoliciesRequestModel,
181 >,
182 ) -> Result<models::PolicyResponseModelListResponseModel, Error> {
183 let local_var_configuration = &self.configuration;
184
185 let local_var_client = &local_var_configuration.client;
186
187 let local_var_uri_str = format!(
188 "{}/organizations/invite-link/policies",
189 local_var_configuration.base_path
190 );
191 let mut local_var_req_builder =
192 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
193
194 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
195 local_var_req_builder =
196 local_var_req_builder.json(&get_organization_invite_link_policies_request_model);
197
198 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
199 }
200
201 async fn get_status<'a>(
202 &self,
203 get_organization_invite_link_status_request_model: Option<
204 models::GetOrganizationInviteLinkStatusRequestModel,
205 >,
206 ) -> Result<models::OrganizationInviteLinkStatusResponseModel, 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 "{}/organizations/invite-link/status",
213 local_var_configuration.base_path
214 );
215 let mut local_var_req_builder =
216 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
217
218 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
219 local_var_req_builder =
220 local_var_req_builder.json(&get_organization_invite_link_status_request_model);
221
222 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
223 }
224
225 async fn refresh<'a>(
226 &self,
227 org_id: uuid::Uuid,
228 refresh_organization_invite_link_request_model: Option<
229 models::RefreshOrganizationInviteLinkRequestModel,
230 >,
231 ) -> Result<models::OrganizationInviteLinkResponseModel, Error> {
232 let local_var_configuration = &self.configuration;
233
234 let local_var_client = &local_var_configuration.client;
235
236 let local_var_uri_str = format!(
237 "{}/organizations/{orgId}/invite-link/refresh",
238 local_var_configuration.base_path,
239 orgId = org_id
240 );
241 let mut local_var_req_builder =
242 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
243
244 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
245 local_var_req_builder =
246 local_var_req_builder.json(&refresh_organization_invite_link_request_model);
247
248 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
249 }
250
251 async fn update<'a>(
252 &self,
253 org_id: uuid::Uuid,
254 update_organization_invite_link_request_model: Option<
255 models::UpdateOrganizationInviteLinkRequestModel,
256 >,
257 ) -> Result<models::OrganizationInviteLinkResponseModel, Error> {
258 let local_var_configuration = &self.configuration;
259
260 let local_var_client = &local_var_configuration.client;
261
262 let local_var_uri_str = format!(
263 "{}/organizations/{orgId}/invite-link",
264 local_var_configuration.base_path,
265 orgId = org_id
266 );
267 let mut local_var_req_builder =
268 local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
269
270 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
271 local_var_req_builder =
272 local_var_req_builder.json(&update_organization_invite_link_request_model);
273
274 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
275 }
276
277 async fn update_invite_support_confirm<'a>(
278 &self,
279 org_id: uuid::Uuid,
280 update_invite_support_confirm_request_model: Option<
281 models::UpdateInviteSupportConfirmRequestModel,
282 >,
283 ) -> Result<models::OrganizationInviteLinkResponseModel, Error> {
284 let local_var_configuration = &self.configuration;
285
286 let local_var_client = &local_var_configuration.client;
287
288 let local_var_uri_str = format!(
289 "{}/organizations/{orgId}/invite-link/support-confirm",
290 local_var_configuration.base_path,
291 orgId = org_id
292 );
293 let mut local_var_req_builder =
294 local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
295
296 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
297 local_var_req_builder =
298 local_var_req_builder.json(&update_invite_support_confirm_request_model);
299
300 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
301 }
302
303 async fn validate_email_domain<'a>(
304 &self,
305 organization_invite_link_validate_email_domain_request_model: Option<
306 models::OrganizationInviteLinkValidateEmailDomainRequestModel,
307 >,
308 ) -> Result<models::OrganizationInviteLinkValidateEmailDomainResponseModel, Error> {
309 let local_var_configuration = &self.configuration;
310
311 let local_var_client = &local_var_configuration.client;
312
313 let local_var_uri_str = format!(
314 "{}/organizations/invite-link/validate-email-domain",
315 local_var_configuration.base_path
316 );
317 let mut local_var_req_builder =
318 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
319
320 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
321 local_var_req_builder = local_var_req_builder
322 .json(&organization_invite_link_validate_email_domain_request_model);
323
324 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
325 }
326}