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 OrganizationDomainApi: Send + Sync {
29 async fn get<'a>(
31 &self,
32 org_id: uuid::Uuid,
33 id: uuid::Uuid,
34 ) -> Result<models::OrganizationDomainResponseModel, Error>;
35
36 async fn get_all<'a>(
38 &self,
39 org_id: uuid::Uuid,
40 ) -> Result<models::OrganizationDomainResponseModelListResponseModel, Error>;
41
42 async fn get_all_mini<'a>(
44 &self,
45 org_id: uuid::Uuid,
46 ) -> Result<models::OrganizationDomainMiniResponseModelListResponseModel, Error>;
47
48 async fn get_verified_org_domain_sso_details<'a>(
50 &self,
51 organization_domain_sso_details_request_model: Option<
52 models::OrganizationDomainSsoDetailsRequestModel,
53 >,
54 ) -> Result<models::VerifiedOrganizationDomainSsoDetailsResponseModel, Error>;
55
56 async fn post<'a>(
58 &self,
59 org_id: uuid::Uuid,
60 organization_domain_request_model: Option<models::OrganizationDomainRequestModel>,
61 ) -> Result<models::OrganizationDomainResponseModel, Error>;
62
63 async fn remove_domain<'a>(&self, org_id: uuid::Uuid, id: uuid::Uuid) -> Result<(), Error>;
65
66 async fn verify<'a>(
68 &self,
69 org_id: uuid::Uuid,
70 id: uuid::Uuid,
71 ) -> Result<models::OrganizationDomainResponseModel, Error>;
72}
73
74pub struct OrganizationDomainApiClient {
75 configuration: Arc<configuration::Configuration>,
76}
77
78impl OrganizationDomainApiClient {
79 pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
80 Self { configuration }
81 }
82}
83
84#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
85#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
86impl OrganizationDomainApi for OrganizationDomainApiClient {
87 async fn get<'a>(
88 &self,
89 org_id: uuid::Uuid,
90 id: uuid::Uuid,
91 ) -> Result<models::OrganizationDomainResponseModel, Error> {
92 let local_var_configuration = &self.configuration;
93
94 let local_var_client = &local_var_configuration.client;
95
96 let local_var_uri_str = format!(
97 "{}/organizations/{orgId}/domain/{id}",
98 local_var_configuration.base_path,
99 orgId = org_id,
100 id = id
101 );
102 let mut local_var_req_builder =
103 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
104
105 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
106
107 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
108 }
109
110 async fn get_all<'a>(
111 &self,
112 org_id: uuid::Uuid,
113 ) -> Result<models::OrganizationDomainResponseModelListResponseModel, Error> {
114 let local_var_configuration = &self.configuration;
115
116 let local_var_client = &local_var_configuration.client;
117
118 let local_var_uri_str = format!(
119 "{}/organizations/{orgId}/domain",
120 local_var_configuration.base_path,
121 orgId = org_id
122 );
123 let mut local_var_req_builder =
124 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
125
126 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
127
128 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
129 }
130
131 async fn get_all_mini<'a>(
132 &self,
133 org_id: uuid::Uuid,
134 ) -> Result<models::OrganizationDomainMiniResponseModelListResponseModel, Error> {
135 let local_var_configuration = &self.configuration;
136
137 let local_var_client = &local_var_configuration.client;
138
139 let local_var_uri_str = format!(
140 "{}/organizations/{orgId}/domain/mini",
141 local_var_configuration.base_path,
142 orgId = org_id
143 );
144 let mut local_var_req_builder =
145 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
146
147 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
148
149 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
150 }
151
152 async fn get_verified_org_domain_sso_details<'a>(
153 &self,
154 organization_domain_sso_details_request_model: Option<
155 models::OrganizationDomainSsoDetailsRequestModel,
156 >,
157 ) -> Result<models::VerifiedOrganizationDomainSsoDetailsResponseModel, Error> {
158 let local_var_configuration = &self.configuration;
159
160 let local_var_client = &local_var_configuration.client;
161
162 let local_var_uri_str = format!(
163 "{}/organizations/domain/sso/verified",
164 local_var_configuration.base_path
165 );
166 let mut local_var_req_builder =
167 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
168
169 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
170 local_var_req_builder =
171 local_var_req_builder.json(&organization_domain_sso_details_request_model);
172
173 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
174 }
175
176 async fn post<'a>(
177 &self,
178 org_id: uuid::Uuid,
179 organization_domain_request_model: Option<models::OrganizationDomainRequestModel>,
180 ) -> Result<models::OrganizationDomainResponseModel, Error> {
181 let local_var_configuration = &self.configuration;
182
183 let local_var_client = &local_var_configuration.client;
184
185 let local_var_uri_str = format!(
186 "{}/organizations/{orgId}/domain",
187 local_var_configuration.base_path,
188 orgId = org_id
189 );
190 let mut local_var_req_builder =
191 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
192
193 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
194 local_var_req_builder = local_var_req_builder.json(&organization_domain_request_model);
195
196 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
197 }
198
199 async fn remove_domain<'a>(&self, org_id: uuid::Uuid, id: uuid::Uuid) -> Result<(), Error> {
200 let local_var_configuration = &self.configuration;
201
202 let local_var_client = &local_var_configuration.client;
203
204 let local_var_uri_str = format!(
205 "{}/organizations/{orgId}/domain/{id}",
206 local_var_configuration.base_path,
207 orgId = org_id,
208 id = id
209 );
210 let mut local_var_req_builder =
211 local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
212
213 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
214
215 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
216 }
217
218 async fn verify<'a>(
219 &self,
220 org_id: uuid::Uuid,
221 id: uuid::Uuid,
222 ) -> Result<models::OrganizationDomainResponseModel, Error> {
223 let local_var_configuration = &self.configuration;
224
225 let local_var_client = &local_var_configuration.client;
226
227 let local_var_uri_str = format!(
228 "{}/organizations/{orgId}/domain/{id}/verify",
229 local_var_configuration.base_path,
230 orgId = org_id,
231 id = id
232 );
233 let mut local_var_req_builder =
234 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
235
236 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
237
238 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
239 }
240}