fastly_api/apis/
service_api.rs

1/*
2 * Fastly API
3 *
4 * Via the Fastly API you can perform any of the operations that are possible within the management console,  including creating services, domains, and backends, configuring rules or uploading your own application code, as well as account operations such as user administration and billing reports. The API is organized into collections of endpoints that allow manipulation of objects related to Fastly services and accounts. For the most accurate and up-to-date API reference content, visit our [Developer Hub](https://www.fastly.com/documentation/reference/api/) 
5 *
6 */
7
8
9use reqwest;
10
11use crate::apis::ResponseContent;
12use super::{Error, configuration};
13
14/// struct for passing parameters to the method [`create_service`]
15#[derive(Clone, Debug, Default)]
16pub struct CreateServiceParams {
17    /// A freeform descriptive note.
18    pub comment: Option<String>,
19    /// The name of the service.
20    pub name: Option<String>,
21    /// Alphanumeric string identifying the customer.
22    pub customer_id: Option<String>,
23    /// The type of this service.
24    pub _type: Option<String>
25}
26
27/// struct for passing parameters to the method [`delete_service`]
28#[derive(Clone, Debug, Default)]
29pub struct DeleteServiceParams {
30    /// Alphanumeric string identifying the service.
31    pub service_id: String
32}
33
34/// struct for passing parameters to the method [`get_service`]
35#[derive(Clone, Debug, Default)]
36pub struct GetServiceParams {
37    /// Alphanumeric string identifying the service.
38    pub service_id: String
39}
40
41/// struct for passing parameters to the method [`get_service_detail`]
42#[derive(Clone, Debug, Default)]
43pub struct GetServiceDetailParams {
44    /// Alphanumeric string identifying the service.
45    pub service_id: String,
46    /// Number identifying a version of the service.
47    pub version: Option<i32>
48}
49
50/// struct for passing parameters to the method [`list_service_domains`]
51#[derive(Clone, Debug, Default)]
52pub struct ListServiceDomainsParams {
53    /// Alphanumeric string identifying the service.
54    pub service_id: String
55}
56
57/// struct for passing parameters to the method [`list_services`]
58#[derive(Clone, Debug, Default)]
59pub struct ListServicesParams {
60    /// Current page.
61    pub page: Option<i32>,
62    /// Number of records per page.
63    pub per_page: Option<i32>,
64    /// Field on which to sort.
65    pub sort: Option<String>,
66    /// Direction in which to sort results.
67    pub direction: Option<String>
68}
69
70/// struct for passing parameters to the method [`search_service`]
71#[derive(Clone, Debug, Default)]
72pub struct SearchServiceParams {
73    /// The name of the service.
74    pub name: String
75}
76
77/// struct for passing parameters to the method [`update_service`]
78#[derive(Clone, Debug, Default)]
79pub struct UpdateServiceParams {
80    /// Alphanumeric string identifying the service.
81    pub service_id: String,
82    /// A freeform descriptive note.
83    pub comment: Option<String>,
84    /// The name of the service.
85    pub name: Option<String>,
86    /// Alphanumeric string identifying the customer.
87    pub customer_id: Option<String>
88}
89
90
91/// struct for typed errors of method [`create_service`]
92#[derive(Debug, Clone, Serialize, Deserialize)]
93#[serde(untagged)]
94pub enum CreateServiceError {
95    UnknownValue(serde_json::Value),
96}
97
98/// struct for typed errors of method [`delete_service`]
99#[derive(Debug, Clone, Serialize, Deserialize)]
100#[serde(untagged)]
101pub enum DeleteServiceError {
102    UnknownValue(serde_json::Value),
103}
104
105/// struct for typed errors of method [`get_service`]
106#[derive(Debug, Clone, Serialize, Deserialize)]
107#[serde(untagged)]
108pub enum GetServiceError {
109    UnknownValue(serde_json::Value),
110}
111
112/// struct for typed errors of method [`get_service_detail`]
113#[derive(Debug, Clone, Serialize, Deserialize)]
114#[serde(untagged)]
115pub enum GetServiceDetailError {
116    UnknownValue(serde_json::Value),
117}
118
119/// struct for typed errors of method [`list_service_domains`]
120#[derive(Debug, Clone, Serialize, Deserialize)]
121#[serde(untagged)]
122pub enum ListServiceDomainsError {
123    UnknownValue(serde_json::Value),
124}
125
126/// struct for typed errors of method [`list_services`]
127#[derive(Debug, Clone, Serialize, Deserialize)]
128#[serde(untagged)]
129pub enum ListServicesError {
130    UnknownValue(serde_json::Value),
131}
132
133/// struct for typed errors of method [`search_service`]
134#[derive(Debug, Clone, Serialize, Deserialize)]
135#[serde(untagged)]
136pub enum SearchServiceError {
137    UnknownValue(serde_json::Value),
138}
139
140/// struct for typed errors of method [`update_service`]
141#[derive(Debug, Clone, Serialize, Deserialize)]
142#[serde(untagged)]
143pub enum UpdateServiceError {
144    UnknownValue(serde_json::Value),
145}
146
147
148/// Create a service.
149pub async fn create_service(configuration: &mut configuration::Configuration, params: CreateServiceParams) -> Result<crate::models::ServiceResponse, Error<CreateServiceError>> {
150    let local_var_configuration = configuration;
151
152    // unbox the parameters
153    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
217/// Delete a service.
218pub async fn delete_service(configuration: &mut configuration::Configuration, params: DeleteServiceParams) -> Result<crate::models::InlineResponse200, Error<DeleteServiceError>> {
219    let local_var_configuration = configuration;
220
221    // unbox the parameters
222    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
269/// Get a specific service by id.
270pub async fn get_service(configuration: &mut configuration::Configuration, params: GetServiceParams) -> Result<crate::models::ServiceResponse, Error<GetServiceError>> {
271    let local_var_configuration = configuration;
272
273    // unbox the parameters
274    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
321/// List detailed information on a specified service.
322pub 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    // unbox the parameters
326    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
377/// List the domains within a service.
378pub 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    // unbox the parameters
382    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
429/// List services.
430pub 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    // unbox the parameters
434    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
496/// Get a specific service by name.
497pub async fn search_service(configuration: &mut configuration::Configuration, params: SearchServiceParams) -> Result<crate::models::ServiceResponse, Error<SearchServiceError>> {
498    let local_var_configuration = configuration;
499
500    // unbox the parameters
501    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
549/// Update a service.
550pub async fn update_service(configuration: &mut configuration::Configuration, params: UpdateServiceParams) -> Result<crate::models::ServiceResponse, Error<UpdateServiceError>> {
551    let local_var_configuration = configuration;
552
553    // unbox the parameters
554    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