fastly_api/apis/
logging_ftp_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_log_ftp`]
15#[derive(Clone, Debug, Default)]
16pub struct CreateLogFtpParams {
17    /// Alphanumeric string identifying the service.
18    pub service_id: String,
19    /// Integer identifying a service version.
20    pub version_id: i32,
21    /// The name for the real-time logging configuration.
22    pub name: Option<String>,
23    /// Where in the generated VCL the logging call should be placed. If not set, endpoints with `format_version` of 2 are placed in `vcl_log` and those with `format_version` of 1 are placed in `vcl_deliver`. 
24    pub placement: Option<String>,
25    /// The name of an existing condition in the configured endpoint, or leave blank to always execute.
26    pub response_condition: Option<String>,
27    /// A Fastly [log format string](https://docs.fastly.com/en/guides/custom-log-formats).
28    pub format: Option<String>,
29    /// The version of the custom logging format used for the configured endpoint. The logging call gets placed by default in `vcl_log` if `format_version` is set to `2` and in `vcl_deliver` if `format_version` is set to `1`. 
30    pub format_version: Option<i32>,
31    /// How the message should be formatted.
32    pub message_type: Option<String>,
33    /// A timestamp format
34    pub timestamp_format: Option<String>,
35    /// The codec used for compressing your logs. Valid values are `zstd`, `snappy`, and `gzip`. Specifying both `compression_codec` and `gzip_level` in the same API request will result in an error.
36    pub compression_codec: Option<String>,
37    /// How frequently log files are finalized so they can be available for reading (in seconds).
38    pub period: Option<i32>,
39    /// The level of gzip encoding when sending logs (default `0`, no compression). Specifying both `compression_codec` and `gzip_level` in the same API request will result in an error.
40    pub gzip_level: Option<i32>,
41    /// An hostname or IPv4 address.
42    pub address: Option<String>,
43    /// Hostname used.
44    pub hostname: Option<String>,
45    /// IPv4 address of the host.
46    pub ipv4: Option<String>,
47    /// The password for the server. For anonymous use an email address.
48    pub password: Option<String>,
49    /// The path to upload log files to. If the path ends in `/` then it is treated as a directory.
50    pub path: Option<String>,
51    /// A PGP public key that Fastly will use to encrypt your log files before writing them to disk.
52    pub public_key: Option<String>,
53    /// The username for the server. Can be anonymous.
54    pub user: Option<String>,
55    /// The port number.
56    pub port: Option<i32>
57}
58
59/// struct for passing parameters to the method [`delete_log_ftp`]
60#[derive(Clone, Debug, Default)]
61pub struct DeleteLogFtpParams {
62    /// Alphanumeric string identifying the service.
63    pub service_id: String,
64    /// Integer identifying a service version.
65    pub version_id: i32,
66    /// The name for the real-time logging configuration.
67    pub logging_ftp_name: String
68}
69
70/// struct for passing parameters to the method [`get_log_ftp`]
71#[derive(Clone, Debug, Default)]
72pub struct GetLogFtpParams {
73    /// Alphanumeric string identifying the service.
74    pub service_id: String,
75    /// Integer identifying a service version.
76    pub version_id: i32,
77    /// The name for the real-time logging configuration.
78    pub logging_ftp_name: String
79}
80
81/// struct for passing parameters to the method [`list_log_ftp`]
82#[derive(Clone, Debug, Default)]
83pub struct ListLogFtpParams {
84    /// Alphanumeric string identifying the service.
85    pub service_id: String,
86    /// Integer identifying a service version.
87    pub version_id: i32
88}
89
90/// struct for passing parameters to the method [`update_log_ftp`]
91#[derive(Clone, Debug, Default)]
92pub struct UpdateLogFtpParams {
93    /// Alphanumeric string identifying the service.
94    pub service_id: String,
95    /// Integer identifying a service version.
96    pub version_id: i32,
97    /// The name for the real-time logging configuration.
98    pub logging_ftp_name: String,
99    /// The name for the real-time logging configuration.
100    pub name: Option<String>,
101    /// Where in the generated VCL the logging call should be placed. If not set, endpoints with `format_version` of 2 are placed in `vcl_log` and those with `format_version` of 1 are placed in `vcl_deliver`. 
102    pub placement: Option<String>,
103    /// The name of an existing condition in the configured endpoint, or leave blank to always execute.
104    pub response_condition: Option<String>,
105    /// A Fastly [log format string](https://docs.fastly.com/en/guides/custom-log-formats).
106    pub format: Option<String>,
107    /// The version of the custom logging format used for the configured endpoint. The logging call gets placed by default in `vcl_log` if `format_version` is set to `2` and in `vcl_deliver` if `format_version` is set to `1`. 
108    pub format_version: Option<i32>,
109    /// How the message should be formatted.
110    pub message_type: Option<String>,
111    /// A timestamp format
112    pub timestamp_format: Option<String>,
113    /// The codec used for compressing your logs. Valid values are `zstd`, `snappy`, and `gzip`. Specifying both `compression_codec` and `gzip_level` in the same API request will result in an error.
114    pub compression_codec: Option<String>,
115    /// How frequently log files are finalized so they can be available for reading (in seconds).
116    pub period: Option<i32>,
117    /// The level of gzip encoding when sending logs (default `0`, no compression). Specifying both `compression_codec` and `gzip_level` in the same API request will result in an error.
118    pub gzip_level: Option<i32>,
119    /// An hostname or IPv4 address.
120    pub address: Option<String>,
121    /// Hostname used.
122    pub hostname: Option<String>,
123    /// IPv4 address of the host.
124    pub ipv4: Option<String>,
125    /// The password for the server. For anonymous use an email address.
126    pub password: Option<String>,
127    /// The path to upload log files to. If the path ends in `/` then it is treated as a directory.
128    pub path: Option<String>,
129    /// A PGP public key that Fastly will use to encrypt your log files before writing them to disk.
130    pub public_key: Option<String>,
131    /// The username for the server. Can be anonymous.
132    pub user: Option<String>,
133    /// The port number.
134    pub port: Option<i32>
135}
136
137
138/// struct for typed errors of method [`create_log_ftp`]
139#[derive(Debug, Clone, Serialize, Deserialize)]
140#[serde(untagged)]
141pub enum CreateLogFtpError {
142    UnknownValue(serde_json::Value),
143}
144
145/// struct for typed errors of method [`delete_log_ftp`]
146#[derive(Debug, Clone, Serialize, Deserialize)]
147#[serde(untagged)]
148pub enum DeleteLogFtpError {
149    UnknownValue(serde_json::Value),
150}
151
152/// struct for typed errors of method [`get_log_ftp`]
153#[derive(Debug, Clone, Serialize, Deserialize)]
154#[serde(untagged)]
155pub enum GetLogFtpError {
156    UnknownValue(serde_json::Value),
157}
158
159/// struct for typed errors of method [`list_log_ftp`]
160#[derive(Debug, Clone, Serialize, Deserialize)]
161#[serde(untagged)]
162pub enum ListLogFtpError {
163    UnknownValue(serde_json::Value),
164}
165
166/// struct for typed errors of method [`update_log_ftp`]
167#[derive(Debug, Clone, Serialize, Deserialize)]
168#[serde(untagged)]
169pub enum UpdateLogFtpError {
170    UnknownValue(serde_json::Value),
171}
172
173
174/// Create a FTP for a particular service and version.
175pub async fn create_log_ftp(configuration: &mut configuration::Configuration, params: CreateLogFtpParams) -> Result<crate::models::LoggingFtpResponse, Error<CreateLogFtpError>> {
176    let local_var_configuration = configuration;
177
178    // unbox the parameters
179    let service_id = params.service_id;
180    let version_id = params.version_id;
181    let name = params.name;
182    let placement = params.placement;
183    let response_condition = params.response_condition;
184    let format = params.format;
185    let format_version = params.format_version;
186    let message_type = params.message_type;
187    let timestamp_format = params.timestamp_format;
188    let compression_codec = params.compression_codec;
189    let period = params.period;
190    let gzip_level = params.gzip_level;
191    let address = params.address;
192    let hostname = params.hostname;
193    let ipv4 = params.ipv4;
194    let password = params.password;
195    let path = params.path;
196    let public_key = params.public_key;
197    let user = params.user;
198    let port = params.port;
199
200
201    let local_var_client = &local_var_configuration.client;
202
203    let local_var_uri_str = format!("{}/service/{service_id}/version/{version_id}/logging/ftp", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id);
204    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
205
206    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
207        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
208    }
209    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
210        let local_var_key = local_var_apikey.key.clone();
211        let local_var_value = match local_var_apikey.prefix {
212            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
213            None => local_var_key,
214        };
215        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
216    };
217    let mut local_var_form_params = std::collections::HashMap::new();
218    if let Some(local_var_param_value) = name {
219        local_var_form_params.insert("name", local_var_param_value.to_string());
220    }
221    if let Some(local_var_param_value) = placement {
222        local_var_form_params.insert("placement", local_var_param_value.to_string());
223    }
224    if let Some(local_var_param_value) = response_condition {
225        local_var_form_params.insert("response_condition", local_var_param_value.to_string());
226    }
227    if let Some(local_var_param_value) = format {
228        local_var_form_params.insert("format", local_var_param_value.to_string());
229    }
230    if let Some(local_var_param_value) = format_version {
231        local_var_form_params.insert("format_version", local_var_param_value.to_string());
232    }
233    if let Some(local_var_param_value) = message_type {
234        local_var_form_params.insert("message_type", local_var_param_value.to_string());
235    }
236    if let Some(local_var_param_value) = timestamp_format {
237        local_var_form_params.insert("timestamp_format", local_var_param_value.to_string());
238    }
239    if let Some(local_var_param_value) = compression_codec {
240        local_var_form_params.insert("compression_codec", local_var_param_value.to_string());
241    }
242    if let Some(local_var_param_value) = period {
243        local_var_form_params.insert("period", local_var_param_value.to_string());
244    }
245    if let Some(local_var_param_value) = gzip_level {
246        local_var_form_params.insert("gzip_level", local_var_param_value.to_string());
247    }
248    if let Some(local_var_param_value) = address {
249        local_var_form_params.insert("address", local_var_param_value.to_string());
250    }
251    if let Some(local_var_param_value) = hostname {
252        local_var_form_params.insert("hostname", local_var_param_value.to_string());
253    }
254    if let Some(local_var_param_value) = ipv4 {
255        local_var_form_params.insert("ipv4", local_var_param_value.to_string());
256    }
257    if let Some(local_var_param_value) = password {
258        local_var_form_params.insert("password", local_var_param_value.to_string());
259    }
260    if let Some(local_var_param_value) = path {
261        local_var_form_params.insert("path", local_var_param_value.to_string());
262    }
263    if let Some(local_var_param_value) = public_key {
264        local_var_form_params.insert("public_key", local_var_param_value.to_string());
265    }
266    if let Some(local_var_param_value) = user {
267        local_var_form_params.insert("user", local_var_param_value.to_string());
268    }
269    if let Some(local_var_param_value) = port {
270        local_var_form_params.insert("port", local_var_param_value.to_string());
271    }
272    local_var_req_builder = local_var_req_builder.form(&local_var_form_params);
273
274    let local_var_req = local_var_req_builder.build()?;
275    let local_var_resp = local_var_client.execute(local_var_req).await?;
276
277    if "POST" != "GET" && "POST" != "HEAD" {
278      let headers = local_var_resp.headers();
279      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
280          Some(v) => v.to_str().unwrap().parse().unwrap(),
281          None => configuration::DEFAULT_RATELIMIT,
282      };
283      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
284          Some(v) => v.to_str().unwrap().parse().unwrap(),
285          None => 0,
286      };
287    }
288
289    let local_var_status = local_var_resp.status();
290    let local_var_content = local_var_resp.text().await?;
291
292    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
293        serde_json::from_str(&local_var_content).map_err(Error::from)
294    } else {
295        let local_var_entity: Option<CreateLogFtpError> = serde_json::from_str(&local_var_content).ok();
296        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
297        Err(Error::ResponseError(local_var_error))
298    }
299}
300
301/// Delete the FTP for a particular service and version.
302pub async fn delete_log_ftp(configuration: &mut configuration::Configuration, params: DeleteLogFtpParams) -> Result<crate::models::InlineResponse200, Error<DeleteLogFtpError>> {
303    let local_var_configuration = configuration;
304
305    // unbox the parameters
306    let service_id = params.service_id;
307    let version_id = params.version_id;
308    let logging_ftp_name = params.logging_ftp_name;
309
310
311    let local_var_client = &local_var_configuration.client;
312
313    let local_var_uri_str = format!("{}/service/{service_id}/version/{version_id}/logging/ftp/{logging_ftp_name}", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id, logging_ftp_name=crate::apis::urlencode(logging_ftp_name));
314    let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
315
316    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
317        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
318    }
319    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
320        let local_var_key = local_var_apikey.key.clone();
321        let local_var_value = match local_var_apikey.prefix {
322            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
323            None => local_var_key,
324        };
325        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
326    };
327
328    let local_var_req = local_var_req_builder.build()?;
329    let local_var_resp = local_var_client.execute(local_var_req).await?;
330
331    if "DELETE" != "GET" && "DELETE" != "HEAD" {
332      let headers = local_var_resp.headers();
333      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
334          Some(v) => v.to_str().unwrap().parse().unwrap(),
335          None => configuration::DEFAULT_RATELIMIT,
336      };
337      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
338          Some(v) => v.to_str().unwrap().parse().unwrap(),
339          None => 0,
340      };
341    }
342
343    let local_var_status = local_var_resp.status();
344    let local_var_content = local_var_resp.text().await?;
345
346    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
347        serde_json::from_str(&local_var_content).map_err(Error::from)
348    } else {
349        let local_var_entity: Option<DeleteLogFtpError> = serde_json::from_str(&local_var_content).ok();
350        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
351        Err(Error::ResponseError(local_var_error))
352    }
353}
354
355/// Get the FTP for a particular service and version.
356pub async fn get_log_ftp(configuration: &mut configuration::Configuration, params: GetLogFtpParams) -> Result<crate::models::LoggingFtpResponse, Error<GetLogFtpError>> {
357    let local_var_configuration = configuration;
358
359    // unbox the parameters
360    let service_id = params.service_id;
361    let version_id = params.version_id;
362    let logging_ftp_name = params.logging_ftp_name;
363
364
365    let local_var_client = &local_var_configuration.client;
366
367    let local_var_uri_str = format!("{}/service/{service_id}/version/{version_id}/logging/ftp/{logging_ftp_name}", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id, logging_ftp_name=crate::apis::urlencode(logging_ftp_name));
368    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
369
370    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
371        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
372    }
373    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
374        let local_var_key = local_var_apikey.key.clone();
375        let local_var_value = match local_var_apikey.prefix {
376            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
377            None => local_var_key,
378        };
379        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
380    };
381
382    let local_var_req = local_var_req_builder.build()?;
383    let local_var_resp = local_var_client.execute(local_var_req).await?;
384
385    if "GET" != "GET" && "GET" != "HEAD" {
386      let headers = local_var_resp.headers();
387      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
388          Some(v) => v.to_str().unwrap().parse().unwrap(),
389          None => configuration::DEFAULT_RATELIMIT,
390      };
391      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
392          Some(v) => v.to_str().unwrap().parse().unwrap(),
393          None => 0,
394      };
395    }
396
397    let local_var_status = local_var_resp.status();
398    let local_var_content = local_var_resp.text().await?;
399
400    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
401        serde_json::from_str(&local_var_content).map_err(Error::from)
402    } else {
403        let local_var_entity: Option<GetLogFtpError> = serde_json::from_str(&local_var_content).ok();
404        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
405        Err(Error::ResponseError(local_var_error))
406    }
407}
408
409/// List all of the FTPs for a particular service and version.
410pub async fn list_log_ftp(configuration: &mut configuration::Configuration, params: ListLogFtpParams) -> Result<Vec<crate::models::LoggingFtpResponse>, Error<ListLogFtpError>> {
411    let local_var_configuration = configuration;
412
413    // unbox the parameters
414    let service_id = params.service_id;
415    let version_id = params.version_id;
416
417
418    let local_var_client = &local_var_configuration.client;
419
420    let local_var_uri_str = format!("{}/service/{service_id}/version/{version_id}/logging/ftp", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id);
421    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
422
423    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
424        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
425    }
426    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
427        let local_var_key = local_var_apikey.key.clone();
428        let local_var_value = match local_var_apikey.prefix {
429            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
430            None => local_var_key,
431        };
432        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
433    };
434
435    let local_var_req = local_var_req_builder.build()?;
436    let local_var_resp = local_var_client.execute(local_var_req).await?;
437
438    if "GET" != "GET" && "GET" != "HEAD" {
439      let headers = local_var_resp.headers();
440      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
441          Some(v) => v.to_str().unwrap().parse().unwrap(),
442          None => configuration::DEFAULT_RATELIMIT,
443      };
444      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
445          Some(v) => v.to_str().unwrap().parse().unwrap(),
446          None => 0,
447      };
448    }
449
450    let local_var_status = local_var_resp.status();
451    let local_var_content = local_var_resp.text().await?;
452
453    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
454        serde_json::from_str(&local_var_content).map_err(Error::from)
455    } else {
456        let local_var_entity: Option<ListLogFtpError> = serde_json::from_str(&local_var_content).ok();
457        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
458        Err(Error::ResponseError(local_var_error))
459    }
460}
461
462/// Update the FTP for a particular service and version.
463pub async fn update_log_ftp(configuration: &mut configuration::Configuration, params: UpdateLogFtpParams) -> Result<crate::models::LoggingFtpResponse, Error<UpdateLogFtpError>> {
464    let local_var_configuration = configuration;
465
466    // unbox the parameters
467    let service_id = params.service_id;
468    let version_id = params.version_id;
469    let logging_ftp_name = params.logging_ftp_name;
470    let name = params.name;
471    let placement = params.placement;
472    let response_condition = params.response_condition;
473    let format = params.format;
474    let format_version = params.format_version;
475    let message_type = params.message_type;
476    let timestamp_format = params.timestamp_format;
477    let compression_codec = params.compression_codec;
478    let period = params.period;
479    let gzip_level = params.gzip_level;
480    let address = params.address;
481    let hostname = params.hostname;
482    let ipv4 = params.ipv4;
483    let password = params.password;
484    let path = params.path;
485    let public_key = params.public_key;
486    let user = params.user;
487    let port = params.port;
488
489
490    let local_var_client = &local_var_configuration.client;
491
492    let local_var_uri_str = format!("{}/service/{service_id}/version/{version_id}/logging/ftp/{logging_ftp_name}", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id, logging_ftp_name=crate::apis::urlencode(logging_ftp_name));
493    let mut local_var_req_builder = local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
494
495    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
496        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
497    }
498    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
499        let local_var_key = local_var_apikey.key.clone();
500        let local_var_value = match local_var_apikey.prefix {
501            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
502            None => local_var_key,
503        };
504        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
505    };
506    let mut local_var_form_params = std::collections::HashMap::new();
507    if let Some(local_var_param_value) = name {
508        local_var_form_params.insert("name", local_var_param_value.to_string());
509    }
510    if let Some(local_var_param_value) = placement {
511        local_var_form_params.insert("placement", local_var_param_value.to_string());
512    }
513    if let Some(local_var_param_value) = response_condition {
514        local_var_form_params.insert("response_condition", local_var_param_value.to_string());
515    }
516    if let Some(local_var_param_value) = format {
517        local_var_form_params.insert("format", local_var_param_value.to_string());
518    }
519    if let Some(local_var_param_value) = format_version {
520        local_var_form_params.insert("format_version", local_var_param_value.to_string());
521    }
522    if let Some(local_var_param_value) = message_type {
523        local_var_form_params.insert("message_type", local_var_param_value.to_string());
524    }
525    if let Some(local_var_param_value) = timestamp_format {
526        local_var_form_params.insert("timestamp_format", local_var_param_value.to_string());
527    }
528    if let Some(local_var_param_value) = compression_codec {
529        local_var_form_params.insert("compression_codec", local_var_param_value.to_string());
530    }
531    if let Some(local_var_param_value) = period {
532        local_var_form_params.insert("period", local_var_param_value.to_string());
533    }
534    if let Some(local_var_param_value) = gzip_level {
535        local_var_form_params.insert("gzip_level", local_var_param_value.to_string());
536    }
537    if let Some(local_var_param_value) = address {
538        local_var_form_params.insert("address", local_var_param_value.to_string());
539    }
540    if let Some(local_var_param_value) = hostname {
541        local_var_form_params.insert("hostname", local_var_param_value.to_string());
542    }
543    if let Some(local_var_param_value) = ipv4 {
544        local_var_form_params.insert("ipv4", local_var_param_value.to_string());
545    }
546    if let Some(local_var_param_value) = password {
547        local_var_form_params.insert("password", local_var_param_value.to_string());
548    }
549    if let Some(local_var_param_value) = path {
550        local_var_form_params.insert("path", local_var_param_value.to_string());
551    }
552    if let Some(local_var_param_value) = public_key {
553        local_var_form_params.insert("public_key", local_var_param_value.to_string());
554    }
555    if let Some(local_var_param_value) = user {
556        local_var_form_params.insert("user", local_var_param_value.to_string());
557    }
558    if let Some(local_var_param_value) = port {
559        local_var_form_params.insert("port", local_var_param_value.to_string());
560    }
561    local_var_req_builder = local_var_req_builder.form(&local_var_form_params);
562
563    let local_var_req = local_var_req_builder.build()?;
564    let local_var_resp = local_var_client.execute(local_var_req).await?;
565
566    if "PUT" != "GET" && "PUT" != "HEAD" {
567      let headers = local_var_resp.headers();
568      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
569          Some(v) => v.to_str().unwrap().parse().unwrap(),
570          None => configuration::DEFAULT_RATELIMIT,
571      };
572      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
573          Some(v) => v.to_str().unwrap().parse().unwrap(),
574          None => 0,
575      };
576    }
577
578    let local_var_status = local_var_resp.status();
579    let local_var_content = local_var_resp.text().await?;
580
581    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
582        serde_json::from_str(&local_var_content).map_err(Error::from)
583    } else {
584        let local_var_entity: Option<UpdateLogFtpError> = serde_json::from_str(&local_var_content).ok();
585        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
586        Err(Error::ResponseError(local_var_error))
587    }
588}
589