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 ExistsWorkersWithTagsError {
22 UnknownValue(serde_json::Value),
23}
24
25#[derive(Debug, Clone, Serialize, Deserialize)]
27#[serde(untagged)]
28pub enum GeDefaultTagsError {
29 UnknownValue(serde_json::Value),
30}
31
32#[derive(Debug, Clone, Serialize, Deserialize)]
34#[serde(untagged)]
35pub enum GetCountsOfJobsWaitingPerTagError {
36 UnknownValue(serde_json::Value),
37}
38
39#[derive(Debug, Clone, Serialize, Deserialize)]
41#[serde(untagged)]
42pub enum GetCountsOfRunningJobsPerTagError {
43 UnknownValue(serde_json::Value),
44}
45
46#[derive(Debug, Clone, Serialize, Deserialize)]
48#[serde(untagged)]
49pub enum GetCustomTagsError {
50 UnknownValue(serde_json::Value),
51}
52
53#[derive(Debug, Clone, Serialize, Deserialize)]
55#[serde(untagged)]
56pub enum GetCustomTagsForWorkspaceError {
57 UnknownValue(serde_json::Value),
58}
59
60#[derive(Debug, Clone, Serialize, Deserialize)]
62#[serde(untagged)]
63pub enum GetQueueMetricsError {
64 UnknownValue(serde_json::Value),
65}
66
67#[derive(Debug, Clone, Serialize, Deserialize)]
69#[serde(untagged)]
70pub enum GetQueueMetricsSeriesError {
71 UnknownValue(serde_json::Value),
72}
73
74#[derive(Debug, Clone, Serialize, Deserialize)]
76#[serde(untagged)]
77pub enum GetQueueStatusError {
78 UnknownValue(serde_json::Value),
79}
80
81#[derive(Debug, Clone, Serialize, Deserialize)]
83#[serde(untagged)]
84pub enum GetWorkspaceFairnessEventsError {
85 UnknownValue(serde_json::Value),
86}
87
88#[derive(Debug, Clone, Serialize, Deserialize)]
90#[serde(untagged)]
91pub enum IsDefaultTagsPerWorkspaceError {
92 UnknownValue(serde_json::Value),
93}
94
95#[derive(Debug, Clone, Serialize, Deserialize)]
97#[serde(untagged)]
98pub enum ListWorkersError {
99 UnknownValue(serde_json::Value),
100}
101
102
103pub async fn exists_workers_with_tags(configuration: &configuration::Configuration, tags: &str, workspace: Option<&str>) -> Result<std::collections::HashMap<String, bool>, Error<ExistsWorkersWithTagsError>> {
104 let local_var_configuration = configuration;
105
106 let local_var_client = &local_var_configuration.client;
107
108 let local_var_uri_str = format!("{}/workers/exists_workers_with_tags", local_var_configuration.base_path);
109 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
110
111 local_var_req_builder = local_var_req_builder.query(&[("tags", &tags.to_string())]);
112 if let Some(ref local_var_str) = workspace {
113 local_var_req_builder = local_var_req_builder.query(&[("workspace", &local_var_str.to_string())]);
114 }
115 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
116 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
117 }
118 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
119 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
120 };
121
122 let local_var_req = local_var_req_builder.build()?;
123 let local_var_resp = local_var_client.execute(local_var_req).await?;
124
125 let local_var_status = local_var_resp.status();
126 let local_var_content = local_var_resp.text().await?;
127
128 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
129 crate::from_str_patched(&local_var_content).map_err(Error::from)
130 } else {
131 let local_var_entity: Option<ExistsWorkersWithTagsError> = crate::from_str_patched(&local_var_content).ok();
132 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
133 Err(Error::ResponseError(local_var_error))
134 }
135}
136
137pub async fn ge_default_tags(configuration: &configuration::Configuration, ) -> Result<Vec<String>, Error<GeDefaultTagsError>> {
138 let local_var_configuration = configuration;
139
140 let local_var_client = &local_var_configuration.client;
141
142 let local_var_uri_str = format!("{}/workers/get_default_tags", local_var_configuration.base_path);
143 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
144
145 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
146 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
147 }
148 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
149 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
150 };
151
152 let local_var_req = local_var_req_builder.build()?;
153 let local_var_resp = local_var_client.execute(local_var_req).await?;
154
155 let local_var_status = local_var_resp.status();
156 let local_var_content = local_var_resp.text().await?;
157
158 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
159 crate::from_str_patched(&local_var_content).map_err(Error::from)
160 } else {
161 let local_var_entity: Option<GeDefaultTagsError> = crate::from_str_patched(&local_var_content).ok();
162 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
163 Err(Error::ResponseError(local_var_error))
164 }
165}
166
167pub async fn get_counts_of_jobs_waiting_per_tag(configuration: &configuration::Configuration, ) -> Result<std::collections::HashMap<String, i32>, Error<GetCountsOfJobsWaitingPerTagError>> {
168 let local_var_configuration = configuration;
169
170 let local_var_client = &local_var_configuration.client;
171
172 let local_var_uri_str = format!("{}/workers/queue_counts", local_var_configuration.base_path);
173 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
174
175 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
176 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
177 }
178 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
179 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
180 };
181
182 let local_var_req = local_var_req_builder.build()?;
183 let local_var_resp = local_var_client.execute(local_var_req).await?;
184
185 let local_var_status = local_var_resp.status();
186 let local_var_content = local_var_resp.text().await?;
187
188 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
189 crate::from_str_patched(&local_var_content).map_err(Error::from)
190 } else {
191 let local_var_entity: Option<GetCountsOfJobsWaitingPerTagError> = crate::from_str_patched(&local_var_content).ok();
192 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
193 Err(Error::ResponseError(local_var_error))
194 }
195}
196
197pub async fn get_counts_of_running_jobs_per_tag(configuration: &configuration::Configuration, ) -> Result<std::collections::HashMap<String, i32>, Error<GetCountsOfRunningJobsPerTagError>> {
198 let local_var_configuration = configuration;
199
200 let local_var_client = &local_var_configuration.client;
201
202 let local_var_uri_str = format!("{}/workers/queue_running_counts", local_var_configuration.base_path);
203 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
204
205 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
206 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
207 }
208 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
209 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
210 };
211
212 let local_var_req = local_var_req_builder.build()?;
213 let local_var_resp = local_var_client.execute(local_var_req).await?;
214
215 let local_var_status = local_var_resp.status();
216 let local_var_content = local_var_resp.text().await?;
217
218 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
219 crate::from_str_patched(&local_var_content).map_err(Error::from)
220 } else {
221 let local_var_entity: Option<GetCountsOfRunningJobsPerTagError> = crate::from_str_patched(&local_var_content).ok();
222 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
223 Err(Error::ResponseError(local_var_error))
224 }
225}
226
227pub async fn get_custom_tags(configuration: &configuration::Configuration, show_workspace_restriction: Option<bool>) -> Result<Vec<String>, Error<GetCustomTagsError>> {
228 let local_var_configuration = configuration;
229
230 let local_var_client = &local_var_configuration.client;
231
232 let local_var_uri_str = format!("{}/workers/custom_tags", local_var_configuration.base_path);
233 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
234
235 if let Some(ref local_var_str) = show_workspace_restriction {
236 local_var_req_builder = local_var_req_builder.query(&[("show_workspace_restriction", &local_var_str.to_string())]);
237 }
238 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
239 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
240 }
241 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
242 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
243 };
244
245 let local_var_req = local_var_req_builder.build()?;
246 let local_var_resp = local_var_client.execute(local_var_req).await?;
247
248 let local_var_status = local_var_resp.status();
249 let local_var_content = local_var_resp.text().await?;
250
251 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
252 crate::from_str_patched(&local_var_content).map_err(Error::from)
253 } else {
254 let local_var_entity: Option<GetCustomTagsError> = crate::from_str_patched(&local_var_content).ok();
255 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
256 Err(Error::ResponseError(local_var_error))
257 }
258}
259
260pub async fn get_custom_tags_for_workspace(configuration: &configuration::Configuration, workspace: &str) -> Result<Vec<String>, Error<GetCustomTagsForWorkspaceError>> {
261 let local_var_configuration = configuration;
262
263 let local_var_client = &local_var_configuration.client;
264
265 let local_var_uri_str = format!("{}/w/{workspace}/workers/custom_tags", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace));
266 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
267
268 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
269 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
270 }
271 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
272 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
273 };
274
275 let local_var_req = local_var_req_builder.build()?;
276 let local_var_resp = local_var_client.execute(local_var_req).await?;
277
278 let local_var_status = local_var_resp.status();
279 let local_var_content = local_var_resp.text().await?;
280
281 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
282 crate::from_str_patched(&local_var_content).map_err(Error::from)
283 } else {
284 let local_var_entity: Option<GetCustomTagsForWorkspaceError> = crate::from_str_patched(&local_var_content).ok();
285 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
286 Err(Error::ResponseError(local_var_error))
287 }
288}
289
290pub async fn get_queue_metrics(configuration: &configuration::Configuration, ) -> Result<Vec<models::GetQueueMetrics200ResponseInner>, Error<GetQueueMetricsError>> {
291 let local_var_configuration = configuration;
292
293 let local_var_client = &local_var_configuration.client;
294
295 let local_var_uri_str = format!("{}/workers/queue_metrics", local_var_configuration.base_path);
296 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
297
298 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
299 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
300 }
301 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
302 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
303 };
304
305 let local_var_req = local_var_req_builder.build()?;
306 let local_var_resp = local_var_client.execute(local_var_req).await?;
307
308 let local_var_status = local_var_resp.status();
309 let local_var_content = local_var_resp.text().await?;
310
311 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
312 crate::from_str_patched(&local_var_content).map_err(Error::from)
313 } else {
314 let local_var_entity: Option<GetQueueMetricsError> = crate::from_str_patched(&local_var_content).ok();
315 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
316 Err(Error::ResponseError(local_var_error))
317 }
318}
319
320pub async fn get_queue_metrics_series(configuration: &configuration::Configuration, window_secs: Option<i32>) -> Result<models::GetQueueMetricsSeries200Response, Error<GetQueueMetricsSeriesError>> {
321 let local_var_configuration = configuration;
322
323 let local_var_client = &local_var_configuration.client;
324
325 let local_var_uri_str = format!("{}/workers/queue_metrics_series", local_var_configuration.base_path);
326 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
327
328 if let Some(ref local_var_str) = window_secs {
329 local_var_req_builder = local_var_req_builder.query(&[("window_secs", &local_var_str.to_string())]);
330 }
331 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
332 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
333 }
334 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
335 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
336 };
337
338 let local_var_req = local_var_req_builder.build()?;
339 let local_var_resp = local_var_client.execute(local_var_req).await?;
340
341 let local_var_status = local_var_resp.status();
342 let local_var_content = local_var_resp.text().await?;
343
344 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
345 crate::from_str_patched(&local_var_content).map_err(Error::from)
346 } else {
347 let local_var_entity: Option<GetQueueMetricsSeriesError> = crate::from_str_patched(&local_var_content).ok();
348 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
349 Err(Error::ResponseError(local_var_error))
350 }
351}
352
353pub async fn get_queue_status(configuration: &configuration::Configuration, ) -> Result<Vec<models::GetQueueStatus200ResponseInner>, Error<GetQueueStatusError>> {
354 let local_var_configuration = configuration;
355
356 let local_var_client = &local_var_configuration.client;
357
358 let local_var_uri_str = format!("{}/workers/queue_status", local_var_configuration.base_path);
359 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
360
361 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
362 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
363 }
364 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
365 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
366 };
367
368 let local_var_req = local_var_req_builder.build()?;
369 let local_var_resp = local_var_client.execute(local_var_req).await?;
370
371 let local_var_status = local_var_resp.status();
372 let local_var_content = local_var_resp.text().await?;
373
374 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
375 crate::from_str_patched(&local_var_content).map_err(Error::from)
376 } else {
377 let local_var_entity: Option<GetQueueStatusError> = crate::from_str_patched(&local_var_content).ok();
378 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
379 Err(Error::ResponseError(local_var_error))
380 }
381}
382
383pub async fn get_workspace_fairness_events(configuration: &configuration::Configuration, ) -> Result<Vec<models::GetWorkspaceFairnessEvents200ResponseInner>, Error<GetWorkspaceFairnessEventsError>> {
384 let local_var_configuration = configuration;
385
386 let local_var_client = &local_var_configuration.client;
387
388 let local_var_uri_str = format!("{}/workers/workspace_fairness_events", local_var_configuration.base_path);
389 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
390
391 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
392 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
393 }
394 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
395 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
396 };
397
398 let local_var_req = local_var_req_builder.build()?;
399 let local_var_resp = local_var_client.execute(local_var_req).await?;
400
401 let local_var_status = local_var_resp.status();
402 let local_var_content = local_var_resp.text().await?;
403
404 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
405 crate::from_str_patched(&local_var_content).map_err(Error::from)
406 } else {
407 let local_var_entity: Option<GetWorkspaceFairnessEventsError> = crate::from_str_patched(&local_var_content).ok();
408 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
409 Err(Error::ResponseError(local_var_error))
410 }
411}
412
413pub async fn is_default_tags_per_workspace(configuration: &configuration::Configuration, ) -> Result<bool, Error<IsDefaultTagsPerWorkspaceError>> {
414 let local_var_configuration = configuration;
415
416 let local_var_client = &local_var_configuration.client;
417
418 let local_var_uri_str = format!("{}/workers/is_default_tags_per_workspace", local_var_configuration.base_path);
419 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
420
421 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
422 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
423 }
424 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
425 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
426 };
427
428 let local_var_req = local_var_req_builder.build()?;
429 let local_var_resp = local_var_client.execute(local_var_req).await?;
430
431 let local_var_status = local_var_resp.status();
432 let local_var_content = local_var_resp.text().await?;
433
434 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
435 crate::from_str_patched(&local_var_content).map_err(Error::from)
436 } else {
437 let local_var_entity: Option<IsDefaultTagsPerWorkspaceError> = crate::from_str_patched(&local_var_content).ok();
438 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
439 Err(Error::ResponseError(local_var_error))
440 }
441}
442
443pub async fn list_workers(configuration: &configuration::Configuration, page: Option<i32>, per_page: Option<i32>, ping_since: Option<i32>) -> Result<Vec<models::WorkerPing>, Error<ListWorkersError>> {
444 let local_var_configuration = configuration;
445
446 let local_var_client = &local_var_configuration.client;
447
448 let local_var_uri_str = format!("{}/workers/list", local_var_configuration.base_path);
449 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
450
451 if let Some(ref local_var_str) = page {
452 local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
453 }
454 if let Some(ref local_var_str) = per_page {
455 local_var_req_builder = local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
456 }
457 if let Some(ref local_var_str) = ping_since {
458 local_var_req_builder = local_var_req_builder.query(&[("ping_since", &local_var_str.to_string())]);
459 }
460 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
461 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
462 }
463 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
464 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
465 };
466
467 let local_var_req = local_var_req_builder.build()?;
468 let local_var_resp = local_var_client.execute(local_var_req).await?;
469
470 let local_var_status = local_var_resp.status();
471 let local_var_content = local_var_resp.text().await?;
472
473 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
474 crate::from_str_patched(&local_var_content).map_err(Error::from)
475 } else {
476 let local_var_entity: Option<ListWorkersError> = crate::from_str_patched(&local_var_content).ok();
477 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
478 Err(Error::ResponseError(local_var_error))
479 }
480}
481