1use reqwest;
10
11use crate::apis::ResponseContent;
12use super::{Error, configuration};
13
14#[derive(Clone, Debug, Default)]
16pub struct CreateServiceParams {
17 pub comment: Option<String>,
19 pub name: Option<String>,
21 pub customer_id: Option<String>,
23 pub _type: Option<String>
25}
26
27#[derive(Clone, Debug, Default)]
29pub struct DeleteServiceParams {
30 pub service_id: String
32}
33
34#[derive(Clone, Debug, Default)]
36pub struct GetServiceParams {
37 pub service_id: String
39}
40
41#[derive(Clone, Debug, Default)]
43pub struct GetServiceDetailParams {
44 pub service_id: String,
46 pub version: Option<i32>
48}
49
50#[derive(Clone, Debug, Default)]
52pub struct ListServiceDomainsParams {
53 pub service_id: String
55}
56
57#[derive(Clone, Debug, Default)]
59pub struct ListServicesParams {
60 pub page: Option<i32>,
62 pub per_page: Option<i32>,
64 pub sort: Option<String>,
66 pub direction: Option<String>
68}
69
70#[derive(Clone, Debug, Default)]
72pub struct SearchServiceParams {
73 pub name: String
75}
76
77#[derive(Clone, Debug, Default)]
79pub struct UpdateServiceParams {
80 pub service_id: String,
82 pub comment: Option<String>,
84 pub name: Option<String>,
86 pub customer_id: Option<String>
88}
89
90
91#[derive(Debug, Clone, Serialize, Deserialize)]
93#[serde(untagged)]
94pub enum CreateServiceError {
95 UnknownValue(serde_json::Value),
96}
97
98#[derive(Debug, Clone, Serialize, Deserialize)]
100#[serde(untagged)]
101pub enum DeleteServiceError {
102 UnknownValue(serde_json::Value),
103}
104
105#[derive(Debug, Clone, Serialize, Deserialize)]
107#[serde(untagged)]
108pub enum GetServiceError {
109 UnknownValue(serde_json::Value),
110}
111
112#[derive(Debug, Clone, Serialize, Deserialize)]
114#[serde(untagged)]
115pub enum GetServiceDetailError {
116 UnknownValue(serde_json::Value),
117}
118
119#[derive(Debug, Clone, Serialize, Deserialize)]
121#[serde(untagged)]
122pub enum ListServiceDomainsError {
123 UnknownValue(serde_json::Value),
124}
125
126#[derive(Debug, Clone, Serialize, Deserialize)]
128#[serde(untagged)]
129pub enum ListServicesError {
130 UnknownValue(serde_json::Value),
131}
132
133#[derive(Debug, Clone, Serialize, Deserialize)]
135#[serde(untagged)]
136pub enum SearchServiceError {
137 UnknownValue(serde_json::Value),
138}
139
140#[derive(Debug, Clone, Serialize, Deserialize)]
142#[serde(untagged)]
143pub enum UpdateServiceError {
144 UnknownValue(serde_json::Value),
145}
146
147
148pub async fn create_service(configuration: &mut configuration::Configuration, params: CreateServiceParams) -> Result<crate::models::ServiceResponse, Error<CreateServiceError>> {
150 let local_var_configuration = configuration;
151
152 let comment = params.comment;
154 let name = params.name;
155 let customer_id = params.customer_id;
156 let _type = params._type;
157
158
159 let local_var_client = &local_var_configuration.client;
160
161 let local_var_uri_str = format!("{}/service", local_var_configuration.base_path);
162 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
163
164 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
165 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
166 }
167 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
168 let local_var_key = local_var_apikey.key.clone();
169 let local_var_value = match local_var_apikey.prefix {
170 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
171 None => local_var_key,
172 };
173 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
174 };
175 let mut local_var_form_params = std::collections::HashMap::new();
176 if let Some(local_var_param_value) = comment {
177 local_var_form_params.insert("comment", local_var_param_value.to_string());
178 }
179 if let Some(local_var_param_value) = name {
180 local_var_form_params.insert("name", local_var_param_value.to_string());
181 }
182 if let Some(local_var_param_value) = customer_id {
183 local_var_form_params.insert("customer_id", local_var_param_value.to_string());
184 }
185 if let Some(local_var_param_value) = _type {
186 local_var_form_params.insert("type", local_var_param_value.to_string());
187 }
188 local_var_req_builder = local_var_req_builder.form(&local_var_form_params);
189
190 let local_var_req = local_var_req_builder.build()?;
191 let local_var_resp = local_var_client.execute(local_var_req).await?;
192
193 if "POST" != "GET" && "POST" != "HEAD" {
194 let headers = local_var_resp.headers();
195 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
196 Some(v) => v.to_str().unwrap().parse().unwrap(),
197 None => configuration::DEFAULT_RATELIMIT,
198 };
199 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
200 Some(v) => v.to_str().unwrap().parse().unwrap(),
201 None => 0,
202 };
203 }
204
205 let local_var_status = local_var_resp.status();
206 let local_var_content = local_var_resp.text().await?;
207
208 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
209 serde_json::from_str(&local_var_content).map_err(Error::from)
210 } else {
211 let local_var_entity: Option<CreateServiceError> = serde_json::from_str(&local_var_content).ok();
212 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
213 Err(Error::ResponseError(local_var_error))
214 }
215}
216
217pub async fn delete_service(configuration: &mut configuration::Configuration, params: DeleteServiceParams) -> Result<crate::models::InlineResponse200, Error<DeleteServiceError>> {
219 let local_var_configuration = configuration;
220
221 let service_id = params.service_id;
223
224
225 let local_var_client = &local_var_configuration.client;
226
227 let local_var_uri_str = format!("{}/service/{service_id}", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id));
228 let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
229
230 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
231 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
232 }
233 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
234 let local_var_key = local_var_apikey.key.clone();
235 let local_var_value = match local_var_apikey.prefix {
236 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
237 None => local_var_key,
238 };
239 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
240 };
241
242 let local_var_req = local_var_req_builder.build()?;
243 let local_var_resp = local_var_client.execute(local_var_req).await?;
244
245 if "DELETE" != "GET" && "DELETE" != "HEAD" {
246 let headers = local_var_resp.headers();
247 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
248 Some(v) => v.to_str().unwrap().parse().unwrap(),
249 None => configuration::DEFAULT_RATELIMIT,
250 };
251 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
252 Some(v) => v.to_str().unwrap().parse().unwrap(),
253 None => 0,
254 };
255 }
256
257 let local_var_status = local_var_resp.status();
258 let local_var_content = local_var_resp.text().await?;
259
260 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
261 serde_json::from_str(&local_var_content).map_err(Error::from)
262 } else {
263 let local_var_entity: Option<DeleteServiceError> = serde_json::from_str(&local_var_content).ok();
264 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
265 Err(Error::ResponseError(local_var_error))
266 }
267}
268
269pub async fn get_service(configuration: &mut configuration::Configuration, params: GetServiceParams) -> Result<crate::models::ServiceResponse, Error<GetServiceError>> {
271 let local_var_configuration = configuration;
272
273 let service_id = params.service_id;
275
276
277 let local_var_client = &local_var_configuration.client;
278
279 let local_var_uri_str = format!("{}/service/{service_id}", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id));
280 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
281
282 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
283 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
284 }
285 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
286 let local_var_key = local_var_apikey.key.clone();
287 let local_var_value = match local_var_apikey.prefix {
288 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
289 None => local_var_key,
290 };
291 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
292 };
293
294 let local_var_req = local_var_req_builder.build()?;
295 let local_var_resp = local_var_client.execute(local_var_req).await?;
296
297 if "GET" != "GET" && "GET" != "HEAD" {
298 let headers = local_var_resp.headers();
299 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
300 Some(v) => v.to_str().unwrap().parse().unwrap(),
301 None => configuration::DEFAULT_RATELIMIT,
302 };
303 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
304 Some(v) => v.to_str().unwrap().parse().unwrap(),
305 None => 0,
306 };
307 }
308
309 let local_var_status = local_var_resp.status();
310 let local_var_content = local_var_resp.text().await?;
311
312 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
313 serde_json::from_str(&local_var_content).map_err(Error::from)
314 } else {
315 let local_var_entity: Option<GetServiceError> = serde_json::from_str(&local_var_content).ok();
316 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
317 Err(Error::ResponseError(local_var_error))
318 }
319}
320
321pub async fn get_service_detail(configuration: &mut configuration::Configuration, params: GetServiceDetailParams) -> Result<crate::models::ServiceDetail, Error<GetServiceDetailError>> {
323 let local_var_configuration = configuration;
324
325 let service_id = params.service_id;
327 let version = params.version;
328
329
330 let local_var_client = &local_var_configuration.client;
331
332 let local_var_uri_str = format!("{}/service/{service_id}/details", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id));
333 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
334
335 if let Some(ref local_var_str) = version {
336 local_var_req_builder = local_var_req_builder.query(&[("version", &local_var_str.to_string())]);
337 }
338 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
339 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
340 }
341 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
342 let local_var_key = local_var_apikey.key.clone();
343 let local_var_value = match local_var_apikey.prefix {
344 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
345 None => local_var_key,
346 };
347 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
348 };
349
350 let local_var_req = local_var_req_builder.build()?;
351 let local_var_resp = local_var_client.execute(local_var_req).await?;
352
353 if "GET" != "GET" && "GET" != "HEAD" {
354 let headers = local_var_resp.headers();
355 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
356 Some(v) => v.to_str().unwrap().parse().unwrap(),
357 None => configuration::DEFAULT_RATELIMIT,
358 };
359 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
360 Some(v) => v.to_str().unwrap().parse().unwrap(),
361 None => 0,
362 };
363 }
364
365 let local_var_status = local_var_resp.status();
366 let local_var_content = local_var_resp.text().await?;
367
368 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
369 serde_json::from_str(&local_var_content).map_err(Error::from)
370 } else {
371 let local_var_entity: Option<GetServiceDetailError> = serde_json::from_str(&local_var_content).ok();
372 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
373 Err(Error::ResponseError(local_var_error))
374 }
375}
376
377pub async fn list_service_domains(configuration: &mut configuration::Configuration, params: ListServiceDomainsParams) -> Result<Vec<crate::models::DomainResponse>, Error<ListServiceDomainsError>> {
379 let local_var_configuration = configuration;
380
381 let service_id = params.service_id;
383
384
385 let local_var_client = &local_var_configuration.client;
386
387 let local_var_uri_str = format!("{}/service/{service_id}/domain", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id));
388 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
389
390 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
391 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
392 }
393 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
394 let local_var_key = local_var_apikey.key.clone();
395 let local_var_value = match local_var_apikey.prefix {
396 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
397 None => local_var_key,
398 };
399 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
400 };
401
402 let local_var_req = local_var_req_builder.build()?;
403 let local_var_resp = local_var_client.execute(local_var_req).await?;
404
405 if "GET" != "GET" && "GET" != "HEAD" {
406 let headers = local_var_resp.headers();
407 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
408 Some(v) => v.to_str().unwrap().parse().unwrap(),
409 None => configuration::DEFAULT_RATELIMIT,
410 };
411 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
412 Some(v) => v.to_str().unwrap().parse().unwrap(),
413 None => 0,
414 };
415 }
416
417 let local_var_status = local_var_resp.status();
418 let local_var_content = local_var_resp.text().await?;
419
420 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
421 serde_json::from_str(&local_var_content).map_err(Error::from)
422 } else {
423 let local_var_entity: Option<ListServiceDomainsError> = serde_json::from_str(&local_var_content).ok();
424 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
425 Err(Error::ResponseError(local_var_error))
426 }
427}
428
429pub async fn list_services(configuration: &mut configuration::Configuration, params: ListServicesParams) -> Result<Vec<crate::models::ServiceListResponse>, Error<ListServicesError>> {
431 let local_var_configuration = configuration;
432
433 let page = params.page;
435 let per_page = params.per_page;
436 let sort = params.sort;
437 let direction = params.direction;
438
439
440 let local_var_client = &local_var_configuration.client;
441
442 let local_var_uri_str = format!("{}/service", local_var_configuration.base_path);
443 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
444
445 if let Some(ref local_var_str) = page {
446 local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
447 }
448 if let Some(ref local_var_str) = per_page {
449 local_var_req_builder = local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
450 }
451 if let Some(ref local_var_str) = sort {
452 local_var_req_builder = local_var_req_builder.query(&[("sort", &local_var_str.to_string())]);
453 }
454 if let Some(ref local_var_str) = direction {
455 local_var_req_builder = local_var_req_builder.query(&[("direction", &local_var_str.to_string())]);
456 }
457 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
458 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
459 }
460 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
461 let local_var_key = local_var_apikey.key.clone();
462 let local_var_value = match local_var_apikey.prefix {
463 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
464 None => local_var_key,
465 };
466 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
467 };
468
469 let local_var_req = local_var_req_builder.build()?;
470 let local_var_resp = local_var_client.execute(local_var_req).await?;
471
472 if "GET" != "GET" && "GET" != "HEAD" {
473 let headers = local_var_resp.headers();
474 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
475 Some(v) => v.to_str().unwrap().parse().unwrap(),
476 None => configuration::DEFAULT_RATELIMIT,
477 };
478 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
479 Some(v) => v.to_str().unwrap().parse().unwrap(),
480 None => 0,
481 };
482 }
483
484 let local_var_status = local_var_resp.status();
485 let local_var_content = local_var_resp.text().await?;
486
487 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
488 serde_json::from_str(&local_var_content).map_err(Error::from)
489 } else {
490 let local_var_entity: Option<ListServicesError> = serde_json::from_str(&local_var_content).ok();
491 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
492 Err(Error::ResponseError(local_var_error))
493 }
494}
495
496pub async fn search_service(configuration: &mut configuration::Configuration, params: SearchServiceParams) -> Result<crate::models::ServiceResponse, Error<SearchServiceError>> {
498 let local_var_configuration = configuration;
499
500 let name = params.name;
502
503
504 let local_var_client = &local_var_configuration.client;
505
506 let local_var_uri_str = format!("{}/service/search", local_var_configuration.base_path);
507 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
508
509 local_var_req_builder = local_var_req_builder.query(&[("name", &name.to_string())]);
510 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
511 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
512 }
513 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
514 let local_var_key = local_var_apikey.key.clone();
515 let local_var_value = match local_var_apikey.prefix {
516 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
517 None => local_var_key,
518 };
519 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
520 };
521
522 let local_var_req = local_var_req_builder.build()?;
523 let local_var_resp = local_var_client.execute(local_var_req).await?;
524
525 if "GET" != "GET" && "GET" != "HEAD" {
526 let headers = local_var_resp.headers();
527 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
528 Some(v) => v.to_str().unwrap().parse().unwrap(),
529 None => configuration::DEFAULT_RATELIMIT,
530 };
531 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
532 Some(v) => v.to_str().unwrap().parse().unwrap(),
533 None => 0,
534 };
535 }
536
537 let local_var_status = local_var_resp.status();
538 let local_var_content = local_var_resp.text().await?;
539
540 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
541 serde_json::from_str(&local_var_content).map_err(Error::from)
542 } else {
543 let local_var_entity: Option<SearchServiceError> = serde_json::from_str(&local_var_content).ok();
544 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
545 Err(Error::ResponseError(local_var_error))
546 }
547}
548
549pub async fn update_service(configuration: &mut configuration::Configuration, params: UpdateServiceParams) -> Result<crate::models::ServiceResponse, Error<UpdateServiceError>> {
551 let local_var_configuration = configuration;
552
553 let service_id = params.service_id;
555 let comment = params.comment;
556 let name = params.name;
557 let customer_id = params.customer_id;
558
559
560 let local_var_client = &local_var_configuration.client;
561
562 let local_var_uri_str = format!("{}/service/{service_id}", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id));
563 let mut local_var_req_builder = local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
564
565 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
566 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
567 }
568 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
569 let local_var_key = local_var_apikey.key.clone();
570 let local_var_value = match local_var_apikey.prefix {
571 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
572 None => local_var_key,
573 };
574 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
575 };
576 let mut local_var_form_params = std::collections::HashMap::new();
577 if let Some(local_var_param_value) = comment {
578 local_var_form_params.insert("comment", local_var_param_value.to_string());
579 }
580 if let Some(local_var_param_value) = name {
581 local_var_form_params.insert("name", local_var_param_value.to_string());
582 }
583 if let Some(local_var_param_value) = customer_id {
584 local_var_form_params.insert("customer_id", local_var_param_value.to_string());
585 }
586 local_var_req_builder = local_var_req_builder.form(&local_var_form_params);
587
588 let local_var_req = local_var_req_builder.build()?;
589 let local_var_resp = local_var_client.execute(local_var_req).await?;
590
591 if "PUT" != "GET" && "PUT" != "HEAD" {
592 let headers = local_var_resp.headers();
593 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
594 Some(v) => v.to_str().unwrap().parse().unwrap(),
595 None => configuration::DEFAULT_RATELIMIT,
596 };
597 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
598 Some(v) => v.to_str().unwrap().parse().unwrap(),
599 None => 0,
600 };
601 }
602
603 let local_var_status = local_var_resp.status();
604 let local_var_content = local_var_resp.text().await?;
605
606 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
607 serde_json::from_str(&local_var_content).map_err(Error::from)
608 } else {
609 let local_var_entity: Option<UpdateServiceError> = serde_json::from_str(&local_var_content).ok();
610 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
611 Err(Error::ResponseError(local_var_error))
612 }
613}
614