1use reqwest;
10
11use crate::apis::ResponseContent;
12use super::{Error, configuration};
13
14#[derive(Clone, Debug, Default)]
16pub struct BotManagementGetBotParams {
17 pub workspace_id: String,
19 pub category_id: String,
21 pub bot_id: String
23}
24
25#[derive(Clone, Debug, Default)]
27pub struct BotManagementGetCategoryParams {
28 pub workspace_id: String,
30 pub category_id: String
32}
33
34#[derive(Clone, Debug, Default)]
36pub struct BotManagementGetWorkspaceParams {
37 pub workspace_id: String
39}
40
41#[derive(Clone, Debug, Default)]
43pub struct BotManagementListBotsParams {
44 pub workspace_id: String,
46 pub limit: Option<i32>,
48 pub cursor: Option<String>
50}
51
52#[derive(Clone, Debug, Default)]
54pub struct BotManagementListCategoriesParams {
55 pub workspace_id: String,
57 pub limit: Option<i32>,
59 pub cursor: Option<String>
61}
62
63#[derive(Clone, Debug, Default)]
65pub struct BotManagementListCategoryBotsParams {
66 pub workspace_id: String,
68 pub category_id: String,
70 pub limit: Option<i32>,
72 pub cursor: Option<String>
74}
75
76#[derive(Clone, Debug, Default)]
78pub struct BotManagementListWorkspacesParams {
79 pub service_id: Option<String>,
81 pub limit: Option<i32>,
83 pub cursor: Option<String>
85}
86
87#[derive(Clone, Debug, Default)]
89pub struct BotManagementUpdateBotParams {
90 pub workspace_id: String,
92 pub category_id: String,
94 pub bot_id: String,
96 pub bot_management_bot: crate::models::BotManagementBot
97}
98
99#[derive(Clone, Debug, Default)]
101pub struct BotManagementUpdateCategoryParams {
102 pub workspace_id: String,
104 pub category_id: String,
106 pub bot_management_category: crate::models::BotManagementCategory
107}
108
109#[derive(Clone, Debug, Default)]
111pub struct BotManagementUpdateWorkspaceParams {
112 pub workspace_id: String,
114 pub bot_management_workspace: crate::models::BotManagementWorkspace
115}
116
117
118#[derive(Debug, Clone, Serialize, Deserialize)]
120#[serde(untagged)]
121pub enum BotManagementGetBotError {
122 Status400(crate::models::BotManagementInvalidRequestError),
123 Status401(crate::models::BotManagementNotAuthenticatedError),
124 Status403(crate::models::BotManagementNotAllowedError),
125 Status404(crate::models::BotManagementNotFoundError),
126 Status429(crate::models::BotManagementRateLimitError),
127 UnknownValue(serde_json::Value),
128}
129
130#[derive(Debug, Clone, Serialize, Deserialize)]
132#[serde(untagged)]
133pub enum BotManagementGetCategoryError {
134 Status400(crate::models::BotManagementInvalidRequestError),
135 Status401(crate::models::BotManagementNotAuthenticatedError),
136 Status403(crate::models::BotManagementNotAllowedError),
137 Status404(crate::models::BotManagementNotFoundError),
138 Status429(crate::models::BotManagementRateLimitError),
139 UnknownValue(serde_json::Value),
140}
141
142#[derive(Debug, Clone, Serialize, Deserialize)]
144#[serde(untagged)]
145pub enum BotManagementGetWorkspaceError {
146 Status400(crate::models::BotManagementInvalidRequestError),
147 Status401(crate::models::BotManagementNotAuthenticatedError),
148 Status403(crate::models::BotManagementNotAllowedError),
149 Status404(crate::models::BotManagementNotFoundError),
150 Status429(crate::models::BotManagementRateLimitError),
151 UnknownValue(serde_json::Value),
152}
153
154#[derive(Debug, Clone, Serialize, Deserialize)]
156#[serde(untagged)]
157pub enum BotManagementListBotsError {
158 Status400(crate::models::BotManagementInvalidRequestError),
159 Status401(crate::models::BotManagementNotAuthenticatedError),
160 Status403(crate::models::BotManagementNotAllowedError),
161 Status404(crate::models::BotManagementNotFoundError),
162 Status429(crate::models::BotManagementRateLimitError),
163 UnknownValue(serde_json::Value),
164}
165
166#[derive(Debug, Clone, Serialize, Deserialize)]
168#[serde(untagged)]
169pub enum BotManagementListCategoriesError {
170 Status400(crate::models::BotManagementInvalidRequestError),
171 Status401(crate::models::BotManagementNotAuthenticatedError),
172 Status403(crate::models::BotManagementNotAllowedError),
173 Status404(crate::models::BotManagementNotFoundError),
174 Status429(crate::models::BotManagementRateLimitError),
175 UnknownValue(serde_json::Value),
176}
177
178#[derive(Debug, Clone, Serialize, Deserialize)]
180#[serde(untagged)]
181pub enum BotManagementListCategoryBotsError {
182 Status400(crate::models::BotManagementInvalidRequestError),
183 Status401(crate::models::BotManagementNotAuthenticatedError),
184 Status403(crate::models::BotManagementNotAllowedError),
185 Status404(crate::models::BotManagementNotFoundError),
186 Status429(crate::models::BotManagementRateLimitError),
187 UnknownValue(serde_json::Value),
188}
189
190#[derive(Debug, Clone, Serialize, Deserialize)]
192#[serde(untagged)]
193pub enum BotManagementListWorkspacesError {
194 Status400(crate::models::BotManagementInvalidRequestError),
195 Status401(crate::models::BotManagementNotAuthenticatedError),
196 Status403(crate::models::BotManagementNotAllowedError),
197 Status429(crate::models::BotManagementRateLimitError),
198 UnknownValue(serde_json::Value),
199}
200
201#[derive(Debug, Clone, Serialize, Deserialize)]
203#[serde(untagged)]
204pub enum BotManagementUpdateBotError {
205 Status400(crate::models::BotManagementInvalidRequestError),
206 Status401(crate::models::BotManagementNotAuthenticatedError),
207 Status403(crate::models::BotManagementNotAllowedError),
208 Status404(crate::models::BotManagementNotFoundError),
209 Status429(crate::models::BotManagementRateLimitError),
210 UnknownValue(serde_json::Value),
211}
212
213#[derive(Debug, Clone, Serialize, Deserialize)]
215#[serde(untagged)]
216pub enum BotManagementUpdateCategoryError {
217 Status400(crate::models::BotManagementInvalidRequestError),
218 Status401(crate::models::BotManagementNotAuthenticatedError),
219 Status403(crate::models::BotManagementNotAllowedError),
220 Status404(crate::models::BotManagementNotFoundError),
221 Status429(crate::models::BotManagementRateLimitError),
222 UnknownValue(serde_json::Value),
223}
224
225#[derive(Debug, Clone, Serialize, Deserialize)]
227#[serde(untagged)]
228pub enum BotManagementUpdateWorkspaceError {
229 Status400(crate::models::BotManagementInvalidRequestError),
230 Status401(crate::models::BotManagementNotAuthenticatedError),
231 Status403(crate::models::BotManagementNotAllowedError),
232 Status404(crate::models::BotManagementNotFoundError),
233 Status429(crate::models::BotManagementRateLimitError),
234 UnknownValue(serde_json::Value),
235}
236
237
238pub async fn bot_management_get_bot(configuration: &mut configuration::Configuration, params: BotManagementGetBotParams) -> Result<crate::models::BotManagementBotResponse, Error<BotManagementGetBotError>> {
240 let local_var_configuration = configuration;
241
242 let workspace_id = params.workspace_id;
244 let category_id = params.category_id;
245 let bot_id = params.bot_id;
246
247
248 let local_var_client = &local_var_configuration.client;
249
250 let local_var_uri_str = format!("{}/bot-management/v1/workspaces/{workspace_id}/policy/categories/{category_id}/bots/{bot_id}", local_var_configuration.base_path, workspace_id=crate::apis::urlencode(workspace_id), category_id=crate::apis::urlencode(category_id), bot_id=crate::apis::urlencode(bot_id));
251 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
252
253 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
254 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
255 }
256 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
257 let local_var_key = local_var_apikey.key.clone();
258 let local_var_value = match local_var_apikey.prefix {
259 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
260 None => local_var_key,
261 };
262 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
263 };
264
265 let local_var_req = local_var_req_builder.build()?;
266 let local_var_resp = local_var_client.execute(local_var_req).await?;
267
268 if "GET" != "GET" && "GET" != "HEAD" {
269 let headers = local_var_resp.headers();
270 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
271 Some(v) => v.to_str().unwrap().parse().unwrap(),
272 None => configuration::DEFAULT_RATELIMIT,
273 };
274 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
275 Some(v) => v.to_str().unwrap().parse().unwrap(),
276 None => 0,
277 };
278 }
279
280 let local_var_status = local_var_resp.status();
281 let local_var_content = local_var_resp.text().await?;
282
283 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
284 serde_json::from_str(&local_var_content).map_err(Error::from)
285 } else {
286 let local_var_entity: Option<BotManagementGetBotError> = serde_json::from_str(&local_var_content).ok();
287 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
288 Err(Error::ResponseError(local_var_error))
289 }
290}
291
292pub async fn bot_management_get_category(configuration: &mut configuration::Configuration, params: BotManagementGetCategoryParams) -> Result<crate::models::BotManagementCategoryResponse, Error<BotManagementGetCategoryError>> {
294 let local_var_configuration = configuration;
295
296 let workspace_id = params.workspace_id;
298 let category_id = params.category_id;
299
300
301 let local_var_client = &local_var_configuration.client;
302
303 let local_var_uri_str = format!("{}/bot-management/v1/workspaces/{workspace_id}/policy/categories/{category_id}", local_var_configuration.base_path, workspace_id=crate::apis::urlencode(workspace_id), category_id=crate::apis::urlencode(category_id));
304 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
305
306 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
307 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
308 }
309 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
310 let local_var_key = local_var_apikey.key.clone();
311 let local_var_value = match local_var_apikey.prefix {
312 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
313 None => local_var_key,
314 };
315 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
316 };
317
318 let local_var_req = local_var_req_builder.build()?;
319 let local_var_resp = local_var_client.execute(local_var_req).await?;
320
321 if "GET" != "GET" && "GET" != "HEAD" {
322 let headers = local_var_resp.headers();
323 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
324 Some(v) => v.to_str().unwrap().parse().unwrap(),
325 None => configuration::DEFAULT_RATELIMIT,
326 };
327 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
328 Some(v) => v.to_str().unwrap().parse().unwrap(),
329 None => 0,
330 };
331 }
332
333 let local_var_status = local_var_resp.status();
334 let local_var_content = local_var_resp.text().await?;
335
336 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
337 serde_json::from_str(&local_var_content).map_err(Error::from)
338 } else {
339 let local_var_entity: Option<BotManagementGetCategoryError> = serde_json::from_str(&local_var_content).ok();
340 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
341 Err(Error::ResponseError(local_var_error))
342 }
343}
344
345pub async fn bot_management_get_workspace(configuration: &mut configuration::Configuration, params: BotManagementGetWorkspaceParams) -> Result<crate::models::BotManagementWorkspaceResponse, Error<BotManagementGetWorkspaceError>> {
347 let local_var_configuration = configuration;
348
349 let workspace_id = params.workspace_id;
351
352
353 let local_var_client = &local_var_configuration.client;
354
355 let local_var_uri_str = format!("{}/bot-management/v1/workspaces/{workspace_id}", local_var_configuration.base_path, workspace_id=crate::apis::urlencode(workspace_id));
356 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
357
358 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
359 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
360 }
361 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
362 let local_var_key = local_var_apikey.key.clone();
363 let local_var_value = match local_var_apikey.prefix {
364 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
365 None => local_var_key,
366 };
367 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
368 };
369
370 let local_var_req = local_var_req_builder.build()?;
371 let local_var_resp = local_var_client.execute(local_var_req).await?;
372
373 if "GET" != "GET" && "GET" != "HEAD" {
374 let headers = local_var_resp.headers();
375 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
376 Some(v) => v.to_str().unwrap().parse().unwrap(),
377 None => configuration::DEFAULT_RATELIMIT,
378 };
379 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
380 Some(v) => v.to_str().unwrap().parse().unwrap(),
381 None => 0,
382 };
383 }
384
385 let local_var_status = local_var_resp.status();
386 let local_var_content = local_var_resp.text().await?;
387
388 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
389 serde_json::from_str(&local_var_content).map_err(Error::from)
390 } else {
391 let local_var_entity: Option<BotManagementGetWorkspaceError> = serde_json::from_str(&local_var_content).ok();
392 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
393 Err(Error::ResponseError(local_var_error))
394 }
395}
396
397pub async fn bot_management_list_bots(configuration: &mut configuration::Configuration, params: BotManagementListBotsParams) -> Result<crate::models::BotManagementWorkspaceBotsResponse, Error<BotManagementListBotsError>> {
399 let local_var_configuration = configuration;
400
401 let workspace_id = params.workspace_id;
403 let limit = params.limit;
404 let cursor = params.cursor;
405
406
407 let local_var_client = &local_var_configuration.client;
408
409 let local_var_uri_str = format!("{}/bot-management/v1/workspaces/{workspace_id}/policy/bots", local_var_configuration.base_path, workspace_id=crate::apis::urlencode(workspace_id));
410 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
411
412 if let Some(ref local_var_str) = limit {
413 local_var_req_builder = local_var_req_builder.query(&[("limit", &local_var_str.to_string())]);
414 }
415 if let Some(ref local_var_str) = cursor {
416 local_var_req_builder = local_var_req_builder.query(&[("cursor", &local_var_str.to_string())]);
417 }
418 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
419 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
420 }
421 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
422 let local_var_key = local_var_apikey.key.clone();
423 let local_var_value = match local_var_apikey.prefix {
424 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
425 None => local_var_key,
426 };
427 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
428 };
429
430 let local_var_req = local_var_req_builder.build()?;
431 let local_var_resp = local_var_client.execute(local_var_req).await?;
432
433 if "GET" != "GET" && "GET" != "HEAD" {
434 let headers = local_var_resp.headers();
435 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
436 Some(v) => v.to_str().unwrap().parse().unwrap(),
437 None => configuration::DEFAULT_RATELIMIT,
438 };
439 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
440 Some(v) => v.to_str().unwrap().parse().unwrap(),
441 None => 0,
442 };
443 }
444
445 let local_var_status = local_var_resp.status();
446 let local_var_content = local_var_resp.text().await?;
447
448 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
449 serde_json::from_str(&local_var_content).map_err(Error::from)
450 } else {
451 let local_var_entity: Option<BotManagementListBotsError> = serde_json::from_str(&local_var_content).ok();
452 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
453 Err(Error::ResponseError(local_var_error))
454 }
455}
456
457pub async fn bot_management_list_categories(configuration: &mut configuration::Configuration, params: BotManagementListCategoriesParams) -> Result<crate::models::BotManagementCategoriesResponse, Error<BotManagementListCategoriesError>> {
459 let local_var_configuration = configuration;
460
461 let workspace_id = params.workspace_id;
463 let limit = params.limit;
464 let cursor = params.cursor;
465
466
467 let local_var_client = &local_var_configuration.client;
468
469 let local_var_uri_str = format!("{}/bot-management/v1/workspaces/{workspace_id}/policy/categories", local_var_configuration.base_path, workspace_id=crate::apis::urlencode(workspace_id));
470 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
471
472 if let Some(ref local_var_str) = limit {
473 local_var_req_builder = local_var_req_builder.query(&[("limit", &local_var_str.to_string())]);
474 }
475 if let Some(ref local_var_str) = cursor {
476 local_var_req_builder = local_var_req_builder.query(&[("cursor", &local_var_str.to_string())]);
477 }
478 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
479 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
480 }
481 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
482 let local_var_key = local_var_apikey.key.clone();
483 let local_var_value = match local_var_apikey.prefix {
484 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
485 None => local_var_key,
486 };
487 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
488 };
489
490 let local_var_req = local_var_req_builder.build()?;
491 let local_var_resp = local_var_client.execute(local_var_req).await?;
492
493 if "GET" != "GET" && "GET" != "HEAD" {
494 let headers = local_var_resp.headers();
495 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
496 Some(v) => v.to_str().unwrap().parse().unwrap(),
497 None => configuration::DEFAULT_RATELIMIT,
498 };
499 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
500 Some(v) => v.to_str().unwrap().parse().unwrap(),
501 None => 0,
502 };
503 }
504
505 let local_var_status = local_var_resp.status();
506 let local_var_content = local_var_resp.text().await?;
507
508 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
509 serde_json::from_str(&local_var_content).map_err(Error::from)
510 } else {
511 let local_var_entity: Option<BotManagementListCategoriesError> = serde_json::from_str(&local_var_content).ok();
512 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
513 Err(Error::ResponseError(local_var_error))
514 }
515}
516
517pub async fn bot_management_list_category_bots(configuration: &mut configuration::Configuration, params: BotManagementListCategoryBotsParams) -> Result<crate::models::BotManagementBotsResponse, Error<BotManagementListCategoryBotsError>> {
519 let local_var_configuration = configuration;
520
521 let workspace_id = params.workspace_id;
523 let category_id = params.category_id;
524 let limit = params.limit;
525 let cursor = params.cursor;
526
527
528 let local_var_client = &local_var_configuration.client;
529
530 let local_var_uri_str = format!("{}/bot-management/v1/workspaces/{workspace_id}/policy/categories/{category_id}/bots", local_var_configuration.base_path, workspace_id=crate::apis::urlencode(workspace_id), category_id=crate::apis::urlencode(category_id));
531 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
532
533 if let Some(ref local_var_str) = limit {
534 local_var_req_builder = local_var_req_builder.query(&[("limit", &local_var_str.to_string())]);
535 }
536 if let Some(ref local_var_str) = cursor {
537 local_var_req_builder = local_var_req_builder.query(&[("cursor", &local_var_str.to_string())]);
538 }
539 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
540 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
541 }
542 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
543 let local_var_key = local_var_apikey.key.clone();
544 let local_var_value = match local_var_apikey.prefix {
545 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
546 None => local_var_key,
547 };
548 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
549 };
550
551 let local_var_req = local_var_req_builder.build()?;
552 let local_var_resp = local_var_client.execute(local_var_req).await?;
553
554 if "GET" != "GET" && "GET" != "HEAD" {
555 let headers = local_var_resp.headers();
556 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
557 Some(v) => v.to_str().unwrap().parse().unwrap(),
558 None => configuration::DEFAULT_RATELIMIT,
559 };
560 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
561 Some(v) => v.to_str().unwrap().parse().unwrap(),
562 None => 0,
563 };
564 }
565
566 let local_var_status = local_var_resp.status();
567 let local_var_content = local_var_resp.text().await?;
568
569 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
570 serde_json::from_str(&local_var_content).map_err(Error::from)
571 } else {
572 let local_var_entity: Option<BotManagementListCategoryBotsError> = serde_json::from_str(&local_var_content).ok();
573 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
574 Err(Error::ResponseError(local_var_error))
575 }
576}
577
578pub async fn bot_management_list_workspaces(configuration: &mut configuration::Configuration, params: BotManagementListWorkspacesParams) -> Result<crate::models::BotManagementWorkspacesResponse, Error<BotManagementListWorkspacesError>> {
580 let local_var_configuration = configuration;
581
582 let service_id = params.service_id;
584 let limit = params.limit;
585 let cursor = params.cursor;
586
587
588 let local_var_client = &local_var_configuration.client;
589
590 let local_var_uri_str = format!("{}/bot-management/v1/workspaces", local_var_configuration.base_path);
591 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
592
593 if let Some(ref local_var_str) = service_id {
594 local_var_req_builder = local_var_req_builder.query(&[("service_id", &local_var_str.to_string())]);
595 }
596 if let Some(ref local_var_str) = limit {
597 local_var_req_builder = local_var_req_builder.query(&[("limit", &local_var_str.to_string())]);
598 }
599 if let Some(ref local_var_str) = cursor {
600 local_var_req_builder = local_var_req_builder.query(&[("cursor", &local_var_str.to_string())]);
601 }
602 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
603 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
604 }
605 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
606 let local_var_key = local_var_apikey.key.clone();
607 let local_var_value = match local_var_apikey.prefix {
608 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
609 None => local_var_key,
610 };
611 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
612 };
613
614 let local_var_req = local_var_req_builder.build()?;
615 let local_var_resp = local_var_client.execute(local_var_req).await?;
616
617 if "GET" != "GET" && "GET" != "HEAD" {
618 let headers = local_var_resp.headers();
619 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
620 Some(v) => v.to_str().unwrap().parse().unwrap(),
621 None => configuration::DEFAULT_RATELIMIT,
622 };
623 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
624 Some(v) => v.to_str().unwrap().parse().unwrap(),
625 None => 0,
626 };
627 }
628
629 let local_var_status = local_var_resp.status();
630 let local_var_content = local_var_resp.text().await?;
631
632 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
633 serde_json::from_str(&local_var_content).map_err(Error::from)
634 } else {
635 let local_var_entity: Option<BotManagementListWorkspacesError> = serde_json::from_str(&local_var_content).ok();
636 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
637 Err(Error::ResponseError(local_var_error))
638 }
639}
640
641pub async fn bot_management_update_bot(configuration: &mut configuration::Configuration, params: BotManagementUpdateBotParams) -> Result<crate::models::BotManagementBotResponse, Error<BotManagementUpdateBotError>> {
643 let local_var_configuration = configuration;
644
645 let workspace_id = params.workspace_id;
647 let category_id = params.category_id;
648 let bot_id = params.bot_id;
649 let bot_management_bot = params.bot_management_bot;
650
651
652 let local_var_client = &local_var_configuration.client;
653
654 let local_var_uri_str = format!("{}/bot-management/v1/workspaces/{workspace_id}/policy/categories/{category_id}/bots/{bot_id}", local_var_configuration.base_path, workspace_id=crate::apis::urlencode(workspace_id), category_id=crate::apis::urlencode(category_id), bot_id=crate::apis::urlencode(bot_id));
655 let mut local_var_req_builder = local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
656
657 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
658 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
659 }
660 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
661 let local_var_key = local_var_apikey.key.clone();
662 let local_var_value = match local_var_apikey.prefix {
663 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
664 None => local_var_key,
665 };
666 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
667 };
668 local_var_req_builder = local_var_req_builder.json(&bot_management_bot);
669
670 let local_var_req = local_var_req_builder.build()?;
671 let local_var_resp = local_var_client.execute(local_var_req).await?;
672
673 if "PATCH" != "GET" && "PATCH" != "HEAD" {
674 let headers = local_var_resp.headers();
675 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
676 Some(v) => v.to_str().unwrap().parse().unwrap(),
677 None => configuration::DEFAULT_RATELIMIT,
678 };
679 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
680 Some(v) => v.to_str().unwrap().parse().unwrap(),
681 None => 0,
682 };
683 }
684
685 let local_var_status = local_var_resp.status();
686 let local_var_content = local_var_resp.text().await?;
687
688 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
689 serde_json::from_str(&local_var_content).map_err(Error::from)
690 } else {
691 let local_var_entity: Option<BotManagementUpdateBotError> = serde_json::from_str(&local_var_content).ok();
692 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
693 Err(Error::ResponseError(local_var_error))
694 }
695}
696
697pub async fn bot_management_update_category(configuration: &mut configuration::Configuration, params: BotManagementUpdateCategoryParams) -> Result<crate::models::BotManagementCategoryResponse, Error<BotManagementUpdateCategoryError>> {
699 let local_var_configuration = configuration;
700
701 let workspace_id = params.workspace_id;
703 let category_id = params.category_id;
704 let bot_management_category = params.bot_management_category;
705
706
707 let local_var_client = &local_var_configuration.client;
708
709 let local_var_uri_str = format!("{}/bot-management/v1/workspaces/{workspace_id}/policy/categories/{category_id}", local_var_configuration.base_path, workspace_id=crate::apis::urlencode(workspace_id), category_id=crate::apis::urlencode(category_id));
710 let mut local_var_req_builder = local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
711
712 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
713 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
714 }
715 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
716 let local_var_key = local_var_apikey.key.clone();
717 let local_var_value = match local_var_apikey.prefix {
718 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
719 None => local_var_key,
720 };
721 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
722 };
723 local_var_req_builder = local_var_req_builder.json(&bot_management_category);
724
725 let local_var_req = local_var_req_builder.build()?;
726 let local_var_resp = local_var_client.execute(local_var_req).await?;
727
728 if "PATCH" != "GET" && "PATCH" != "HEAD" {
729 let headers = local_var_resp.headers();
730 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
731 Some(v) => v.to_str().unwrap().parse().unwrap(),
732 None => configuration::DEFAULT_RATELIMIT,
733 };
734 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
735 Some(v) => v.to_str().unwrap().parse().unwrap(),
736 None => 0,
737 };
738 }
739
740 let local_var_status = local_var_resp.status();
741 let local_var_content = local_var_resp.text().await?;
742
743 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
744 serde_json::from_str(&local_var_content).map_err(Error::from)
745 } else {
746 let local_var_entity: Option<BotManagementUpdateCategoryError> = serde_json::from_str(&local_var_content).ok();
747 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
748 Err(Error::ResponseError(local_var_error))
749 }
750}
751
752pub async fn bot_management_update_workspace(configuration: &mut configuration::Configuration, params: BotManagementUpdateWorkspaceParams) -> Result<crate::models::BotManagementWorkspaceResponse, Error<BotManagementUpdateWorkspaceError>> {
754 let local_var_configuration = configuration;
755
756 let workspace_id = params.workspace_id;
758 let bot_management_workspace = params.bot_management_workspace;
759
760
761 let local_var_client = &local_var_configuration.client;
762
763 let local_var_uri_str = format!("{}/bot-management/v1/workspaces/{workspace_id}", local_var_configuration.base_path, workspace_id=crate::apis::urlencode(workspace_id));
764 let mut local_var_req_builder = local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
765
766 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
767 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
768 }
769 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
770 let local_var_key = local_var_apikey.key.clone();
771 let local_var_value = match local_var_apikey.prefix {
772 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
773 None => local_var_key,
774 };
775 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
776 };
777 local_var_req_builder = local_var_req_builder.json(&bot_management_workspace);
778
779 let local_var_req = local_var_req_builder.build()?;
780 let local_var_resp = local_var_client.execute(local_var_req).await?;
781
782 if "PATCH" != "GET" && "PATCH" != "HEAD" {
783 let headers = local_var_resp.headers();
784 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
785 Some(v) => v.to_str().unwrap().parse().unwrap(),
786 None => configuration::DEFAULT_RATELIMIT,
787 };
788 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
789 Some(v) => v.to_str().unwrap().parse().unwrap(),
790 None => 0,
791 };
792 }
793
794 let local_var_status = local_var_resp.status();
795 let local_var_content = local_var_resp.text().await?;
796
797 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
798 serde_json::from_str(&local_var_content).map_err(Error::from)
799 } else {
800 let local_var_entity: Option<BotManagementUpdateWorkspaceError> = serde_json::from_str(&local_var_content).ok();
801 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
802 Err(Error::ResponseError(local_var_error))
803 }
804}
805