1use reqwest;
13use serde::{Deserialize, Serialize};
14use crate::{apis::ResponseContent, models};
15use super::{Error, configuration};
16
17
18#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum ConnectCallbackError {
22 UnknownValue(serde_json::Value),
23}
24
25#[derive(Debug, Clone, Serialize, Deserialize)]
27#[serde(untagged)]
28pub enum ConnectClientCredentialsError {
29 UnknownValue(serde_json::Value),
30}
31
32#[derive(Debug, Clone, Serialize, Deserialize)]
34#[serde(untagged)]
35pub enum ConnectSlackCallbackError {
36 UnknownValue(serde_json::Value),
37}
38
39#[derive(Debug, Clone, Serialize, Deserialize)]
41#[serde(untagged)]
42pub enum ConnectSlackCallbackInstanceError {
43 UnknownValue(serde_json::Value),
44}
45
46#[derive(Debug, Clone, Serialize, Deserialize)]
48#[serde(untagged)]
49pub enum ConnectSlackInstanceError {
50 UnknownValue(serde_json::Value),
51}
52
53#[derive(Debug, Clone, Serialize, Deserialize)]
55#[serde(untagged)]
56pub enum CreateAccountError {
57 UnknownValue(serde_json::Value),
58}
59
60#[derive(Debug, Clone, Serialize, Deserialize)]
62#[serde(untagged)]
63pub enum DisconnectAccountError {
64 UnknownValue(serde_json::Value),
65}
66
67#[derive(Debug, Clone, Serialize, Deserialize)]
69#[serde(untagged)]
70pub enum DisconnectSlackError {
71 UnknownValue(serde_json::Value),
72}
73
74#[derive(Debug, Clone, Serialize, Deserialize)]
76#[serde(untagged)]
77pub enum DisconnectTeamsError {
78 UnknownValue(serde_json::Value),
79}
80
81#[derive(Debug, Clone, Serialize, Deserialize)]
83#[serde(untagged)]
84pub enum GetOAuthConnectError {
85 UnknownValue(serde_json::Value),
86}
87
88#[derive(Debug, Clone, Serialize, Deserialize)]
90#[serde(untagged)]
91pub enum ListOAuthConnectsError {
92 UnknownValue(serde_json::Value),
93}
94
95#[derive(Debug, Clone, Serialize, Deserialize)]
97#[serde(untagged)]
98pub enum ListOAuthLoginsError {
99 UnknownValue(serde_json::Value),
100}
101
102#[derive(Debug, Clone, Serialize, Deserialize)]
104#[serde(untagged)]
105pub enum RefreshTokenError {
106 UnknownValue(serde_json::Value),
107}
108
109
110pub async fn connect_callback(configuration: &configuration::Configuration, client_name: &str, connect_slack_callback_request: models::ConnectSlackCallbackRequest) -> Result<models::TokenResponse, Error<ConnectCallbackError>> {
111 let local_var_configuration = configuration;
112
113 let local_var_client = &local_var_configuration.client;
114
115 let local_var_uri_str = format!("{}/oauth/connect_callback/{client_name}", local_var_configuration.base_path, client_name=crate::apis::urlencode(client_name));
116 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
117
118 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
119 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
120 }
121 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
122 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
123 };
124 local_var_req_builder = local_var_req_builder.json(&connect_slack_callback_request);
125
126 let local_var_req = local_var_req_builder.build()?;
127 let local_var_resp = local_var_client.execute(local_var_req).await?;
128
129 let local_var_status = local_var_resp.status();
130 let local_var_content = local_var_resp.text().await?;
131
132 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
133 crate::from_str_patched(&local_var_content).map_err(Error::from)
134 } else {
135 let local_var_entity: Option<ConnectCallbackError> = crate::from_str_patched(&local_var_content).ok();
136 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
137 Err(Error::ResponseError(local_var_error))
138 }
139}
140
141pub async fn connect_client_credentials(configuration: &configuration::Configuration, client: &str, connect_client_credentials_request: models::ConnectClientCredentialsRequest) -> Result<models::TokenResponse, Error<ConnectClientCredentialsError>> {
142 let local_var_configuration = configuration;
143
144 let local_var_client = &local_var_configuration.client;
145
146 let local_var_uri_str = format!("{}/oauth/connect_client_credentials/{client}", local_var_configuration.base_path, client=crate::apis::urlencode(client));
147 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
148
149 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
150 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
151 }
152 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
153 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
154 };
155 local_var_req_builder = local_var_req_builder.json(&connect_client_credentials_request);
156
157 let local_var_req = local_var_req_builder.build()?;
158 let local_var_resp = local_var_client.execute(local_var_req).await?;
159
160 let local_var_status = local_var_resp.status();
161 let local_var_content = local_var_resp.text().await?;
162
163 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
164 crate::from_str_patched(&local_var_content).map_err(Error::from)
165 } else {
166 let local_var_entity: Option<ConnectClientCredentialsError> = crate::from_str_patched(&local_var_content).ok();
167 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
168 Err(Error::ResponseError(local_var_error))
169 }
170}
171
172pub async fn connect_slack_callback(configuration: &configuration::Configuration, workspace: &str, connect_slack_callback_request: models::ConnectSlackCallbackRequest) -> Result<String, Error<ConnectSlackCallbackError>> {
173 let local_var_configuration = configuration;
174
175 let local_var_client = &local_var_configuration.client;
176
177 let local_var_uri_str = format!("{}/w/{workspace}/oauth/connect_slack_callback", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace));
178 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
179
180 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
181 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
182 }
183 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
184 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
185 };
186 local_var_req_builder = local_var_req_builder.json(&connect_slack_callback_request);
187
188 let local_var_req = local_var_req_builder.build()?;
189 let local_var_resp = local_var_client.execute(local_var_req).await?;
190
191 let local_var_status = local_var_resp.status();
192 let local_var_content = local_var_resp.text().await?;
193
194 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
195 crate::from_str_patched(&local_var_content).map_err(Error::from)
196 } else {
197 let local_var_entity: Option<ConnectSlackCallbackError> = crate::from_str_patched(&local_var_content).ok();
198 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
199 Err(Error::ResponseError(local_var_error))
200 }
201}
202
203pub async fn connect_slack_callback_instance(configuration: &configuration::Configuration, connect_slack_callback_request: models::ConnectSlackCallbackRequest) -> Result<String, Error<ConnectSlackCallbackInstanceError>> {
204 let local_var_configuration = configuration;
205
206 let local_var_client = &local_var_configuration.client;
207
208 let local_var_uri_str = format!("{}/oauth/connect_slack_callback", local_var_configuration.base_path);
209 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
210
211 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
212 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
213 }
214 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
215 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
216 };
217 local_var_req_builder = local_var_req_builder.json(&connect_slack_callback_request);
218
219 let local_var_req = local_var_req_builder.build()?;
220 let local_var_resp = local_var_client.execute(local_var_req).await?;
221
222 let local_var_status = local_var_resp.status();
223 let local_var_content = local_var_resp.text().await?;
224
225 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
226 crate::from_str_patched(&local_var_content).map_err(Error::from)
227 } else {
228 let local_var_entity: Option<ConnectSlackCallbackInstanceError> = crate::from_str_patched(&local_var_content).ok();
229 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
230 Err(Error::ResponseError(local_var_error))
231 }
232}
233
234pub async fn connect_slack_instance(configuration: &configuration::Configuration, connect_slack_request: models::ConnectSlackRequest) -> Result<(), Error<ConnectSlackInstanceError>> {
235 let local_var_configuration = configuration;
236
237 let local_var_client = &local_var_configuration.client;
238
239 let local_var_uri_str = format!("{}/oauth/connect_slack_instance", local_var_configuration.base_path);
240 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
241
242 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
243 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
244 }
245 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
246 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
247 };
248 local_var_req_builder = local_var_req_builder.json(&connect_slack_request);
249
250 let local_var_req = local_var_req_builder.build()?;
251 let local_var_resp = local_var_client.execute(local_var_req).await?;
252
253 let local_var_status = local_var_resp.status();
254 let local_var_content = local_var_resp.text().await?;
255
256 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
257 Ok(())
258 } else {
259 let local_var_entity: Option<ConnectSlackInstanceError> = crate::from_str_patched(&local_var_content).ok();
260 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
261 Err(Error::ResponseError(local_var_error))
262 }
263}
264
265pub async fn create_account(configuration: &configuration::Configuration, workspace: &str, create_account_request: models::CreateAccountRequest) -> Result<String, Error<CreateAccountError>> {
266 let local_var_configuration = configuration;
267
268 let local_var_client = &local_var_configuration.client;
269
270 let local_var_uri_str = format!("{}/w/{workspace}/oauth/create_account", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace));
271 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
272
273 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
274 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
275 }
276 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
277 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
278 };
279 local_var_req_builder = local_var_req_builder.json(&create_account_request);
280
281 let local_var_req = local_var_req_builder.build()?;
282 let local_var_resp = local_var_client.execute(local_var_req).await?;
283
284 let local_var_status = local_var_resp.status();
285 let local_var_content = local_var_resp.text().await?;
286
287 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
288 crate::from_str_patched(&local_var_content).map_err(Error::from)
289 } else {
290 let local_var_entity: Option<CreateAccountError> = crate::from_str_patched(&local_var_content).ok();
291 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
292 Err(Error::ResponseError(local_var_error))
293 }
294}
295
296pub async fn disconnect_account(configuration: &configuration::Configuration, workspace: &str, id: i32) -> Result<String, Error<DisconnectAccountError>> {
297 let local_var_configuration = configuration;
298
299 let local_var_client = &local_var_configuration.client;
300
301 let local_var_uri_str = format!("{}/w/{workspace}/oauth/disconnect/{id}", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace), id=id);
302 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
303
304 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
305 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
306 }
307 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
308 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
309 };
310
311 let local_var_req = local_var_req_builder.build()?;
312 let local_var_resp = local_var_client.execute(local_var_req).await?;
313
314 let local_var_status = local_var_resp.status();
315 let local_var_content = local_var_resp.text().await?;
316
317 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
318 crate::from_str_patched(&local_var_content).map_err(Error::from)
319 } else {
320 let local_var_entity: Option<DisconnectAccountError> = crate::from_str_patched(&local_var_content).ok();
321 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
322 Err(Error::ResponseError(local_var_error))
323 }
324}
325
326pub async fn disconnect_slack(configuration: &configuration::Configuration, workspace: &str) -> Result<String, Error<DisconnectSlackError>> {
327 let local_var_configuration = configuration;
328
329 let local_var_client = &local_var_configuration.client;
330
331 let local_var_uri_str = format!("{}/w/{workspace}/oauth/disconnect_slack", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace));
332 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
333
334 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
335 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
336 }
337 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
338 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
339 };
340
341 let local_var_req = local_var_req_builder.build()?;
342 let local_var_resp = local_var_client.execute(local_var_req).await?;
343
344 let local_var_status = local_var_resp.status();
345 let local_var_content = local_var_resp.text().await?;
346
347 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
348 crate::from_str_patched(&local_var_content).map_err(Error::from)
349 } else {
350 let local_var_entity: Option<DisconnectSlackError> = crate::from_str_patched(&local_var_content).ok();
351 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
352 Err(Error::ResponseError(local_var_error))
353 }
354}
355
356pub async fn disconnect_teams(configuration: &configuration::Configuration, workspace: &str) -> Result<String, Error<DisconnectTeamsError>> {
357 let local_var_configuration = configuration;
358
359 let local_var_client = &local_var_configuration.client;
360
361 let local_var_uri_str = format!("{}/w/{workspace}/oauth/disconnect_teams", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace));
362 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
363
364 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
365 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
366 }
367 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
368 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
369 };
370
371 let local_var_req = local_var_req_builder.build()?;
372 let local_var_resp = local_var_client.execute(local_var_req).await?;
373
374 let local_var_status = local_var_resp.status();
375 let local_var_content = local_var_resp.text().await?;
376
377 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
378 crate::from_str_patched(&local_var_content).map_err(Error::from)
379 } else {
380 let local_var_entity: Option<DisconnectTeamsError> = crate::from_str_patched(&local_var_content).ok();
381 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
382 Err(Error::ResponseError(local_var_error))
383 }
384}
385
386pub async fn get_o_auth_connect(configuration: &configuration::Configuration, client: &str) -> Result<models::GetOAuthConnect200Response, Error<GetOAuthConnectError>> {
387 let local_var_configuration = configuration;
388
389 let local_var_client = &local_var_configuration.client;
390
391 let local_var_uri_str = format!("{}/oauth/get_connect/{client}", local_var_configuration.base_path, client=crate::apis::urlencode(client));
392 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
393
394 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
395 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
396 }
397 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
398 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
399 };
400
401 let local_var_req = local_var_req_builder.build()?;
402 let local_var_resp = local_var_client.execute(local_var_req).await?;
403
404 let local_var_status = local_var_resp.status();
405 let local_var_content = local_var_resp.text().await?;
406
407 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
408 crate::from_str_patched(&local_var_content).map_err(Error::from)
409 } else {
410 let local_var_entity: Option<GetOAuthConnectError> = crate::from_str_patched(&local_var_content).ok();
411 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
412 Err(Error::ResponseError(local_var_error))
413 }
414}
415
416pub async fn list_o_auth_connects(configuration: &configuration::Configuration, ) -> Result<Vec<String>, Error<ListOAuthConnectsError>> {
417 let local_var_configuration = configuration;
418
419 let local_var_client = &local_var_configuration.client;
420
421 let local_var_uri_str = format!("{}/oauth/list_connects", local_var_configuration.base_path);
422 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
423
424 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
425 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
426 }
427 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
428 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
429 };
430
431 let local_var_req = local_var_req_builder.build()?;
432 let local_var_resp = local_var_client.execute(local_var_req).await?;
433
434 let local_var_status = local_var_resp.status();
435 let local_var_content = local_var_resp.text().await?;
436
437 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
438 crate::from_str_patched(&local_var_content).map_err(Error::from)
439 } else {
440 let local_var_entity: Option<ListOAuthConnectsError> = crate::from_str_patched(&local_var_content).ok();
441 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
442 Err(Error::ResponseError(local_var_error))
443 }
444}
445
446pub async fn list_o_auth_logins(configuration: &configuration::Configuration, ) -> Result<models::ListOAuthLogins200Response, Error<ListOAuthLoginsError>> {
447 let local_var_configuration = configuration;
448
449 let local_var_client = &local_var_configuration.client;
450
451 let local_var_uri_str = format!("{}/oauth/list_logins", local_var_configuration.base_path);
452 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
453
454 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
455 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
456 }
457 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
458 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
459 };
460
461 let local_var_req = local_var_req_builder.build()?;
462 let local_var_resp = local_var_client.execute(local_var_req).await?;
463
464 let local_var_status = local_var_resp.status();
465 let local_var_content = local_var_resp.text().await?;
466
467 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
468 crate::from_str_patched(&local_var_content).map_err(Error::from)
469 } else {
470 let local_var_entity: Option<ListOAuthLoginsError> = crate::from_str_patched(&local_var_content).ok();
471 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
472 Err(Error::ResponseError(local_var_error))
473 }
474}
475
476pub async fn refresh_token(configuration: &configuration::Configuration, workspace: &str, id: i32, refresh_token_request: models::RefreshTokenRequest) -> Result<String, Error<RefreshTokenError>> {
477 let local_var_configuration = configuration;
478
479 let local_var_client = &local_var_configuration.client;
480
481 let local_var_uri_str = format!("{}/w/{workspace}/oauth/refresh_token/{id}", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace), id=id);
482 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
483
484 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
485 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
486 }
487 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
488 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
489 };
490 local_var_req_builder = local_var_req_builder.json(&refresh_token_request);
491
492 let local_var_req = local_var_req_builder.build()?;
493 let local_var_resp = local_var_client.execute(local_var_req).await?;
494
495 let local_var_status = local_var_resp.status();
496 let local_var_content = local_var_resp.text().await?;
497
498 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
499 crate::from_str_patched(&local_var_content).map_err(Error::from)
500 } else {
501 let local_var_entity: Option<RefreshTokenError> = crate::from_str_patched(&local_var_content).ok();
502 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
503 Err(Error::ResponseError(local_var_error))
504 }
505}
506