1use reqwest;
10
11use crate::apis::ResponseContent;
12use super::{Error, configuration};
13
14#[derive(Clone, Debug, Default)]
16pub struct AddServiceGroupServicesParams {
17 pub service_group_id: String,
19 pub request_body: Option<::std::collections::HashMap<String, serde_json::Value>>
20}
21
22#[derive(Clone, Debug, Default)]
24pub struct CreateAServiceGroupParams {
25 pub request_body: Option<::std::collections::HashMap<String, serde_json::Value>>
26}
27
28#[derive(Clone, Debug, Default)]
30pub struct DeleteAServiceGroupParams {
31 pub service_group_id: String
33}
34
35#[derive(Clone, Debug, Default)]
37pub struct GetAServiceGroupParams {
38 pub service_group_id: String
40}
41
42#[derive(Clone, Debug, Default)]
44pub struct ListServiceGroupServicesParams {
45 pub service_group_id: String,
47 pub per_page: Option<i32>,
49 pub page: Option<i32>
51}
52
53#[derive(Clone, Debug, Default)]
55pub struct ListServiceGroupsParams {
56 pub per_page: Option<i32>,
58 pub page: Option<i32>
60}
61
62#[derive(Clone, Debug, Default)]
64pub struct RemoveServiceGroupServicesParams {
65 pub service_group_id: String,
67 pub request_body: Option<::std::collections::HashMap<String, serde_json::Value>>
68}
69
70#[derive(Clone, Debug, Default)]
72pub struct UpdateAServiceGroupParams {
73 pub service_group_id: String,
75 pub request_body: Option<::std::collections::HashMap<String, serde_json::Value>>
76}
77
78
79#[derive(Debug, Clone, Serialize, Deserialize)]
81#[serde(untagged)]
82pub enum AddServiceGroupServicesError {
83 UnknownValue(serde_json::Value),
84}
85
86#[derive(Debug, Clone, Serialize, Deserialize)]
88#[serde(untagged)]
89pub enum CreateAServiceGroupError {
90 UnknownValue(serde_json::Value),
91}
92
93#[derive(Debug, Clone, Serialize, Deserialize)]
95#[serde(untagged)]
96pub enum DeleteAServiceGroupError {
97 UnknownValue(serde_json::Value),
98}
99
100#[derive(Debug, Clone, Serialize, Deserialize)]
102#[serde(untagged)]
103pub enum GetAServiceGroupError {
104 UnknownValue(serde_json::Value),
105}
106
107#[derive(Debug, Clone, Serialize, Deserialize)]
109#[serde(untagged)]
110pub enum ListServiceGroupServicesError {
111 UnknownValue(serde_json::Value),
112}
113
114#[derive(Debug, Clone, Serialize, Deserialize)]
116#[serde(untagged)]
117pub enum ListServiceGroupsError {
118 UnknownValue(serde_json::Value),
119}
120
121#[derive(Debug, Clone, Serialize, Deserialize)]
123#[serde(untagged)]
124pub enum RemoveServiceGroupServicesError {
125 UnknownValue(serde_json::Value),
126}
127
128#[derive(Debug, Clone, Serialize, Deserialize)]
130#[serde(untagged)]
131pub enum UpdateAServiceGroupError {
132 UnknownValue(serde_json::Value),
133}
134
135
136pub async fn add_service_group_services(configuration: &mut configuration::Configuration, params: AddServiceGroupServicesParams) -> Result<serde_json::Value, Error<AddServiceGroupServicesError>> {
138 let local_var_configuration = configuration;
139
140 let service_group_id = params.service_group_id;
142 let request_body = params.request_body;
143
144
145 let local_var_client = &local_var_configuration.client;
146
147 let local_var_uri_str = format!("{}/service-groups/{service_group_id}/services", local_var_configuration.base_path, service_group_id=crate::apis::urlencode(service_group_id));
148 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
149
150 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
151 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
152 }
153 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
154 let local_var_key = local_var_apikey.key.clone();
155 let local_var_value = match local_var_apikey.prefix {
156 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
157 None => local_var_key,
158 };
159 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
160 };
161 local_var_req_builder = local_var_req_builder.json(&request_body);
162
163 let local_var_req = local_var_req_builder.build()?;
164 let local_var_resp = local_var_client.execute(local_var_req).await?;
165
166 if "POST" != "GET" && "POST" != "HEAD" {
167 let headers = local_var_resp.headers();
168 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
169 Some(v) => v.to_str().unwrap().parse().unwrap(),
170 None => configuration::DEFAULT_RATELIMIT,
171 };
172 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
173 Some(v) => v.to_str().unwrap().parse().unwrap(),
174 None => 0,
175 };
176 }
177
178 let local_var_status = local_var_resp.status();
179 let local_var_content = local_var_resp.text().await?;
180
181 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
182 serde_json::from_str(&local_var_content).map_err(Error::from)
183 } else {
184 let local_var_entity: Option<AddServiceGroupServicesError> = serde_json::from_str(&local_var_content).ok();
185 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
186 Err(Error::ResponseError(local_var_error))
187 }
188}
189
190pub async fn create_a_service_group(configuration: &mut configuration::Configuration, params: CreateAServiceGroupParams) -> Result<serde_json::Value, Error<CreateAServiceGroupError>> {
192 let local_var_configuration = configuration;
193
194 let request_body = params.request_body;
196
197
198 let local_var_client = &local_var_configuration.client;
199
200 let local_var_uri_str = format!("{}/service-groups", local_var_configuration.base_path);
201 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
202
203 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
204 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
205 }
206 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
207 let local_var_key = local_var_apikey.key.clone();
208 let local_var_value = match local_var_apikey.prefix {
209 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
210 None => local_var_key,
211 };
212 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
213 };
214 local_var_req_builder = local_var_req_builder.json(&request_body);
215
216 let local_var_req = local_var_req_builder.build()?;
217 let local_var_resp = local_var_client.execute(local_var_req).await?;
218
219 if "POST" != "GET" && "POST" != "HEAD" {
220 let headers = local_var_resp.headers();
221 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
222 Some(v) => v.to_str().unwrap().parse().unwrap(),
223 None => configuration::DEFAULT_RATELIMIT,
224 };
225 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
226 Some(v) => v.to_str().unwrap().parse().unwrap(),
227 None => 0,
228 };
229 }
230
231 let local_var_status = local_var_resp.status();
232 let local_var_content = local_var_resp.text().await?;
233
234 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
235 serde_json::from_str(&local_var_content).map_err(Error::from)
236 } else {
237 let local_var_entity: Option<CreateAServiceGroupError> = serde_json::from_str(&local_var_content).ok();
238 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
239 Err(Error::ResponseError(local_var_error))
240 }
241}
242
243pub async fn delete_a_service_group(configuration: &mut configuration::Configuration, params: DeleteAServiceGroupParams) -> Result<(), Error<DeleteAServiceGroupError>> {
245 let local_var_configuration = configuration;
246
247 let service_group_id = params.service_group_id;
249
250
251 let local_var_client = &local_var_configuration.client;
252
253 let local_var_uri_str = format!("{}/service-groups/{service_group_id}", local_var_configuration.base_path, service_group_id=crate::apis::urlencode(service_group_id));
254 let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
255
256 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
257 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
258 }
259 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
260 let local_var_key = local_var_apikey.key.clone();
261 let local_var_value = match local_var_apikey.prefix {
262 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
263 None => local_var_key,
264 };
265 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
266 };
267
268 let local_var_req = local_var_req_builder.build()?;
269 let local_var_resp = local_var_client.execute(local_var_req).await?;
270
271 if "DELETE" != "GET" && "DELETE" != "HEAD" {
272 let headers = local_var_resp.headers();
273 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
274 Some(v) => v.to_str().unwrap().parse().unwrap(),
275 None => configuration::DEFAULT_RATELIMIT,
276 };
277 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
278 Some(v) => v.to_str().unwrap().parse().unwrap(),
279 None => 0,
280 };
281 }
282
283 let local_var_status = local_var_resp.status();
284 let local_var_content = local_var_resp.text().await?;
285
286 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
287 Ok(())
288 } else {
289 let local_var_entity: Option<DeleteAServiceGroupError> = serde_json::from_str(&local_var_content).ok();
290 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
291 Err(Error::ResponseError(local_var_error))
292 }
293}
294
295pub async fn get_a_service_group(configuration: &mut configuration::Configuration, params: GetAServiceGroupParams) -> Result<serde_json::Value, Error<GetAServiceGroupError>> {
297 let local_var_configuration = configuration;
298
299 let service_group_id = params.service_group_id;
301
302
303 let local_var_client = &local_var_configuration.client;
304
305 let local_var_uri_str = format!("{}/service-groups/{service_group_id}", local_var_configuration.base_path, service_group_id=crate::apis::urlencode(service_group_id));
306 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
307
308 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
309 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
310 }
311 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
312 let local_var_key = local_var_apikey.key.clone();
313 let local_var_value = match local_var_apikey.prefix {
314 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
315 None => local_var_key,
316 };
317 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
318 };
319
320 let local_var_req = local_var_req_builder.build()?;
321 let local_var_resp = local_var_client.execute(local_var_req).await?;
322
323 if "GET" != "GET" && "GET" != "HEAD" {
324 let headers = local_var_resp.headers();
325 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
326 Some(v) => v.to_str().unwrap().parse().unwrap(),
327 None => configuration::DEFAULT_RATELIMIT,
328 };
329 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
330 Some(v) => v.to_str().unwrap().parse().unwrap(),
331 None => 0,
332 };
333 }
334
335 let local_var_status = local_var_resp.status();
336 let local_var_content = local_var_resp.text().await?;
337
338 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
339 serde_json::from_str(&local_var_content).map_err(Error::from)
340 } else {
341 let local_var_entity: Option<GetAServiceGroupError> = serde_json::from_str(&local_var_content).ok();
342 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
343 Err(Error::ResponseError(local_var_error))
344 }
345}
346
347pub async fn list_service_group_services(configuration: &mut configuration::Configuration, params: ListServiceGroupServicesParams) -> Result<serde_json::Value, Error<ListServiceGroupServicesError>> {
349 let local_var_configuration = configuration;
350
351 let service_group_id = params.service_group_id;
353 let per_page = params.per_page;
354 let page = params.page;
355
356
357 let local_var_client = &local_var_configuration.client;
358
359 let local_var_uri_str = format!("{}/service-groups/{service_group_id}/services", local_var_configuration.base_path, service_group_id=crate::apis::urlencode(service_group_id));
360 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
361
362 if let Some(ref local_var_str) = per_page {
363 local_var_req_builder = local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
364 }
365 if let Some(ref local_var_str) = page {
366 local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
367 }
368 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
369 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
370 }
371 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
372 let local_var_key = local_var_apikey.key.clone();
373 let local_var_value = match local_var_apikey.prefix {
374 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
375 None => local_var_key,
376 };
377 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
378 };
379
380 let local_var_req = local_var_req_builder.build()?;
381 let local_var_resp = local_var_client.execute(local_var_req).await?;
382
383 if "GET" != "GET" && "GET" != "HEAD" {
384 let headers = local_var_resp.headers();
385 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
386 Some(v) => v.to_str().unwrap().parse().unwrap(),
387 None => configuration::DEFAULT_RATELIMIT,
388 };
389 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
390 Some(v) => v.to_str().unwrap().parse().unwrap(),
391 None => 0,
392 };
393 }
394
395 let local_var_status = local_var_resp.status();
396 let local_var_content = local_var_resp.text().await?;
397
398 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
399 serde_json::from_str(&local_var_content).map_err(Error::from)
400 } else {
401 let local_var_entity: Option<ListServiceGroupServicesError> = serde_json::from_str(&local_var_content).ok();
402 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
403 Err(Error::ResponseError(local_var_error))
404 }
405}
406
407pub async fn list_service_groups(configuration: &mut configuration::Configuration, params: ListServiceGroupsParams) -> Result<serde_json::Value, Error<ListServiceGroupsError>> {
409 let local_var_configuration = configuration;
410
411 let per_page = params.per_page;
413 let page = params.page;
414
415
416 let local_var_client = &local_var_configuration.client;
417
418 let local_var_uri_str = format!("{}/service-groups", 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_str) = per_page {
422 local_var_req_builder = local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
423 }
424 if let Some(ref local_var_str) = page {
425 local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
426 }
427 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
428 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
429 }
430 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
431 let local_var_key = local_var_apikey.key.clone();
432 let local_var_value = match local_var_apikey.prefix {
433 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
434 None => local_var_key,
435 };
436 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
437 };
438
439 let local_var_req = local_var_req_builder.build()?;
440 let local_var_resp = local_var_client.execute(local_var_req).await?;
441
442 if "GET" != "GET" && "GET" != "HEAD" {
443 let headers = local_var_resp.headers();
444 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
445 Some(v) => v.to_str().unwrap().parse().unwrap(),
446 None => configuration::DEFAULT_RATELIMIT,
447 };
448 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
449 Some(v) => v.to_str().unwrap().parse().unwrap(),
450 None => 0,
451 };
452 }
453
454 let local_var_status = local_var_resp.status();
455 let local_var_content = local_var_resp.text().await?;
456
457 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
458 serde_json::from_str(&local_var_content).map_err(Error::from)
459 } else {
460 let local_var_entity: Option<ListServiceGroupsError> = serde_json::from_str(&local_var_content).ok();
461 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
462 Err(Error::ResponseError(local_var_error))
463 }
464}
465
466pub async fn remove_service_group_services(configuration: &mut configuration::Configuration, params: RemoveServiceGroupServicesParams) -> Result<(), Error<RemoveServiceGroupServicesError>> {
468 let local_var_configuration = configuration;
469
470 let service_group_id = params.service_group_id;
472 let request_body = params.request_body;
473
474
475 let local_var_client = &local_var_configuration.client;
476
477 let local_var_uri_str = format!("{}/service-groups/{service_group_id}/services", local_var_configuration.base_path, service_group_id=crate::apis::urlencode(service_group_id));
478 let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
479
480 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
481 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
482 }
483 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
484 let local_var_key = local_var_apikey.key.clone();
485 let local_var_value = match local_var_apikey.prefix {
486 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
487 None => local_var_key,
488 };
489 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
490 };
491 local_var_req_builder = local_var_req_builder.json(&request_body);
492
493 let local_var_req = local_var_req_builder.build()?;
494 let local_var_resp = local_var_client.execute(local_var_req).await?;
495
496 if "DELETE" != "GET" && "DELETE" != "HEAD" {
497 let headers = local_var_resp.headers();
498 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
499 Some(v) => v.to_str().unwrap().parse().unwrap(),
500 None => configuration::DEFAULT_RATELIMIT,
501 };
502 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
503 Some(v) => v.to_str().unwrap().parse().unwrap(),
504 None => 0,
505 };
506 }
507
508 let local_var_status = local_var_resp.status();
509 let local_var_content = local_var_resp.text().await?;
510
511 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
512 Ok(())
513 } else {
514 let local_var_entity: Option<RemoveServiceGroupServicesError> = serde_json::from_str(&local_var_content).ok();
515 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
516 Err(Error::ResponseError(local_var_error))
517 }
518}
519
520pub async fn update_a_service_group(configuration: &mut configuration::Configuration, params: UpdateAServiceGroupParams) -> Result<serde_json::Value, Error<UpdateAServiceGroupError>> {
522 let local_var_configuration = configuration;
523
524 let service_group_id = params.service_group_id;
526 let request_body = params.request_body;
527
528
529 let local_var_client = &local_var_configuration.client;
530
531 let local_var_uri_str = format!("{}/service-groups/{service_group_id}", local_var_configuration.base_path, service_group_id=crate::apis::urlencode(service_group_id));
532 let mut local_var_req_builder = local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
533
534 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
535 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
536 }
537 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
538 let local_var_key = local_var_apikey.key.clone();
539 let local_var_value = match local_var_apikey.prefix {
540 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
541 None => local_var_key,
542 };
543 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
544 };
545 local_var_req_builder = local_var_req_builder.json(&request_body);
546
547 let local_var_req = local_var_req_builder.build()?;
548 let local_var_resp = local_var_client.execute(local_var_req).await?;
549
550 if "PATCH" != "GET" && "PATCH" != "HEAD" {
551 let headers = local_var_resp.headers();
552 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
553 Some(v) => v.to_str().unwrap().parse().unwrap(),
554 None => configuration::DEFAULT_RATELIMIT,
555 };
556 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
557 Some(v) => v.to_str().unwrap().parse().unwrap(),
558 None => 0,
559 };
560 }
561
562 let local_var_status = local_var_resp.status();
563 let local_var_content = local_var_resp.text().await?;
564
565 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
566 serde_json::from_str(&local_var_content).map_err(Error::from)
567 } else {
568 let local_var_entity: Option<UpdateAServiceGroupError> = serde_json::from_str(&local_var_content).ok();
569 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
570 Err(Error::ResponseError(local_var_error))
571 }
572}
573