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<(), Error>;
37
38 async fn delete<'a>(&self, org_id: uuid::Uuid) -> Result<(), Error>;
40
41 async fn get<'a>(&self, org_id: uuid::Uuid) -> Result<(), Error>;
43
44 async fn get_policies<'a>(
46 &self,
47 get_organization_invite_link_policies_request_model: Option<
48 models::GetOrganizationInviteLinkPoliciesRequestModel,
49 >,
50 ) -> Result<(), Error>;
51
52 async fn get_status<'a>(
54 &self,
55 get_organization_invite_link_status_request_model: Option<
56 models::GetOrganizationInviteLinkStatusRequestModel,
57 >,
58 ) -> Result<(), Error>;
59
60 async fn refresh<'a>(
62 &self,
63 org_id: uuid::Uuid,
64 refresh_organization_invite_link_request_model: Option<
65 models::RefreshOrganizationInviteLinkRequestModel,
66 >,
67 ) -> Result<(), Error>;
68
69 async fn update<'a>(
71 &self,
72 org_id: uuid::Uuid,
73 update_organization_invite_link_request_model: Option<
74 models::UpdateOrganizationInviteLinkRequestModel,
75 >,
76 ) -> Result<(), Error>;
77
78 async fn validate_email_domain<'a>(
80 &self,
81 organization_invite_link_validate_email_domain_request_model: Option<
82 models::OrganizationInviteLinkValidateEmailDomainRequestModel,
83 >,
84 ) -> Result<(), Error>;
85}
86
87pub struct OrganizationInviteLinksApiClient {
88 configuration: Arc<configuration::Configuration>,
89}
90
91impl OrganizationInviteLinksApiClient {
92 pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
93 Self { configuration }
94 }
95}
96
97#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
98#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
99impl OrganizationInviteLinksApi for OrganizationInviteLinksApiClient {
100 async fn create<'a>(
101 &self,
102 org_id: uuid::Uuid,
103 create_organization_invite_link_request_model: Option<
104 models::CreateOrganizationInviteLinkRequestModel,
105 >,
106 ) -> Result<(), 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!(
112 "{}/organizations/{orgId}/invite-link",
113 local_var_configuration.base_path,
114 orgId = org_id
115 );
116 let mut local_var_req_builder =
117 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
118
119 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
120 local_var_req_builder =
121 local_var_req_builder.json(&create_organization_invite_link_request_model);
122
123 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
124 }
125
126 async fn delete<'a>(&self, org_id: uuid::Uuid) -> Result<(), Error> {
127 let local_var_configuration = &self.configuration;
128
129 let local_var_client = &local_var_configuration.client;
130
131 let local_var_uri_str = format!(
132 "{}/organizations/{orgId}/invite-link",
133 local_var_configuration.base_path,
134 orgId = org_id
135 );
136 let mut local_var_req_builder =
137 local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
138
139 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
140
141 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
142 }
143
144 async fn get<'a>(&self, org_id: uuid::Uuid) -> Result<(), Error> {
145 let local_var_configuration = &self.configuration;
146
147 let local_var_client = &local_var_configuration.client;
148
149 let local_var_uri_str = format!(
150 "{}/organizations/{orgId}/invite-link",
151 local_var_configuration.base_path,
152 orgId = org_id
153 );
154 let mut local_var_req_builder =
155 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
156
157 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
158
159 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
160 }
161
162 async fn get_policies<'a>(
163 &self,
164 get_organization_invite_link_policies_request_model: Option<
165 models::GetOrganizationInviteLinkPoliciesRequestModel,
166 >,
167 ) -> Result<(), Error> {
168 let local_var_configuration = &self.configuration;
169
170 let local_var_client = &local_var_configuration.client;
171
172 let local_var_uri_str = format!(
173 "{}/organizations/invite-link/policies",
174 local_var_configuration.base_path
175 );
176 let mut local_var_req_builder =
177 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
178
179 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
180 local_var_req_builder =
181 local_var_req_builder.json(&get_organization_invite_link_policies_request_model);
182
183 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
184 }
185
186 async fn get_status<'a>(
187 &self,
188 get_organization_invite_link_status_request_model: Option<
189 models::GetOrganizationInviteLinkStatusRequestModel,
190 >,
191 ) -> Result<(), Error> {
192 let local_var_configuration = &self.configuration;
193
194 let local_var_client = &local_var_configuration.client;
195
196 let local_var_uri_str = format!(
197 "{}/organizations/invite-link/status",
198 local_var_configuration.base_path
199 );
200 let mut local_var_req_builder =
201 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
202
203 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
204 local_var_req_builder =
205 local_var_req_builder.json(&get_organization_invite_link_status_request_model);
206
207 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
208 }
209
210 async fn refresh<'a>(
211 &self,
212 org_id: uuid::Uuid,
213 refresh_organization_invite_link_request_model: Option<
214 models::RefreshOrganizationInviteLinkRequestModel,
215 >,
216 ) -> Result<(), Error> {
217 let local_var_configuration = &self.configuration;
218
219 let local_var_client = &local_var_configuration.client;
220
221 let local_var_uri_str = format!(
222 "{}/organizations/{orgId}/invite-link/refresh",
223 local_var_configuration.base_path,
224 orgId = org_id
225 );
226 let mut local_var_req_builder =
227 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
228
229 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
230 local_var_req_builder =
231 local_var_req_builder.json(&refresh_organization_invite_link_request_model);
232
233 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
234 }
235
236 async fn update<'a>(
237 &self,
238 org_id: uuid::Uuid,
239 update_organization_invite_link_request_model: Option<
240 models::UpdateOrganizationInviteLinkRequestModel,
241 >,
242 ) -> Result<(), Error> {
243 let local_var_configuration = &self.configuration;
244
245 let local_var_client = &local_var_configuration.client;
246
247 let local_var_uri_str = format!(
248 "{}/organizations/{orgId}/invite-link",
249 local_var_configuration.base_path,
250 orgId = org_id
251 );
252 let mut local_var_req_builder =
253 local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
254
255 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
256 local_var_req_builder =
257 local_var_req_builder.json(&update_organization_invite_link_request_model);
258
259 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
260 }
261
262 async fn validate_email_domain<'a>(
263 &self,
264 organization_invite_link_validate_email_domain_request_model: Option<
265 models::OrganizationInviteLinkValidateEmailDomainRequestModel,
266 >,
267 ) -> Result<(), Error> {
268 let local_var_configuration = &self.configuration;
269
270 let local_var_client = &local_var_configuration.client;
271
272 let local_var_uri_str = format!(
273 "{}/organizations/invite-link/validate-email-domain",
274 local_var_configuration.base_path
275 );
276 let mut local_var_req_builder =
277 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
278
279 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
280 local_var_req_builder = local_var_req_builder
281 .json(&organization_invite_link_validate_email_domain_request_model);
282
283 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
284 }
285}