fastly_api/apis/
logging_sftp_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_sftp`]
15#[derive(Clone, Debug, Default)]
16pub struct CreateLogSftpParams {
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    /// A hostname or IPv4 address.
42    pub address: Option<String>,
43    /// The port number.
44    pub port: Option<i32>,
45    /// The password for the server. If both `password` and `secret_key` are passed, `secret_key` will be used in preference.
46    pub password: Option<String>,
47    /// The path to upload logs to.
48    pub path: Option<String>,
49    /// A PGP public key that Fastly will use to encrypt your log files before writing them to disk.
50    pub public_key: Option<String>,
51    /// The SSH private key for the server. If both `password` and `secret_key` are passed, `secret_key` will be used in preference.
52    pub secret_key: Option<String>,
53    /// A list of host keys for all hosts we can connect to over SFTP.
54    pub ssh_known_hosts: Option<String>,
55    /// The username for the server.
56    pub user: Option<String>
57}
58
59/// struct for passing parameters to the method [`delete_log_sftp`]
60#[derive(Clone, Debug, Default)]
61pub struct DeleteLogSftpParams {
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_sftp_name: String
68}
69
70/// struct for passing parameters to the method [`get_log_sftp`]
71#[derive(Clone, Debug, Default)]
72pub struct GetLogSftpParams {
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_sftp_name: String
79}
80
81/// struct for passing parameters to the method [`list_log_sftp`]
82#[derive(Clone, Debug, Default)]
83pub struct ListLogSftpParams {
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_sftp`]
91#[derive(Clone, Debug, Default)]
92pub struct UpdateLogSftpParams {
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_sftp_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    /// A hostname or IPv4 address.
120    pub address: Option<String>,
121    /// The port number.
122    pub port: Option<i32>,
123    /// The password for the server. If both `password` and `secret_key` are passed, `secret_key` will be used in preference.
124    pub password: Option<String>,
125    /// The path to upload logs to.
126    pub path: Option<String>,
127    /// A PGP public key that Fastly will use to encrypt your log files before writing them to disk.
128    pub public_key: Option<String>,
129    /// The SSH private key for the server. If both `password` and `secret_key` are passed, `secret_key` will be used in preference.
130    pub secret_key: Option<String>,
131    /// A list of host keys for all hosts we can connect to over SFTP.
132    pub ssh_known_hosts: Option<String>,
133    /// The username for the server.
134    pub user: Option<String>
135}
136
137
138/// struct for typed errors of method [`create_log_sftp`]
139#[derive(Debug, Clone, Serialize, Deserialize)]
140#[serde(untagged)]
141pub enum CreateLogSftpError {
142    UnknownValue(serde_json::Value),
143}
144
145/// struct for typed errors of method [`delete_log_sftp`]
146#[derive(Debug, Clone, Serialize, Deserialize)]
147#[serde(untagged)]
148pub enum DeleteLogSftpError {
149    UnknownValue(serde_json::Value),
150}
151
152/// struct for typed errors of method [`get_log_sftp`]
153#[derive(Debug, Clone, Serialize, Deserialize)]
154#[serde(untagged)]
155pub enum GetLogSftpError {
156    UnknownValue(serde_json::Value),
157}
158
159/// struct for typed errors of method [`list_log_sftp`]
160#[derive(Debug, Clone, Serialize, Deserialize)]
161#[serde(untagged)]
162pub enum ListLogSftpError {
163    UnknownValue(serde_json::Value),
164}
165
166/// struct for typed errors of method [`update_log_sftp`]
167#[derive(Debug, Clone, Serialize, Deserialize)]
168#[serde(untagged)]
169pub enum UpdateLogSftpError {
170    UnknownValue(serde_json::Value),
171}
172
173
174/// Create a SFTP for a particular service and version.
175pub async fn create_log_sftp(configuration: &mut configuration::Configuration, params: CreateLogSftpParams) -> Result<crate::models::LoggingSftpResponse, Error<CreateLogSftpError>> {
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 port = params.port;
193    let password = params.password;
194    let path = params.path;
195    let public_key = params.public_key;
196    let secret_key = params.secret_key;
197    let ssh_known_hosts = params.ssh_known_hosts;
198    let user = params.user;
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/sftp", 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) = port {
252        local_var_form_params.insert("port", local_var_param_value.to_string());
253    }
254    if let Some(local_var_param_value) = password {
255        local_var_form_params.insert("password", local_var_param_value.to_string());
256    }
257    if let Some(local_var_param_value) = path {
258        local_var_form_params.insert("path", local_var_param_value.to_string());
259    }
260    if let Some(local_var_param_value) = public_key {
261        local_var_form_params.insert("public_key", local_var_param_value.to_string());
262    }
263    if let Some(local_var_param_value) = secret_key {
264        local_var_form_params.insert("secret_key", local_var_param_value.to_string());
265    }
266    if let Some(local_var_param_value) = ssh_known_hosts {
267        local_var_form_params.insert("ssh_known_hosts", local_var_param_value.to_string());
268    }
269    if let Some(local_var_param_value) = user {
270        local_var_form_params.insert("user", 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<CreateLogSftpError> = 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 SFTP for a particular service and version.
302pub async fn delete_log_sftp(configuration: &mut configuration::Configuration, params: DeleteLogSftpParams) -> Result<crate::models::InlineResponse200, Error<DeleteLogSftpError>> {
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_sftp_name = params.logging_sftp_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/sftp/{logging_sftp_name}", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id, logging_sftp_name=crate::apis::urlencode(logging_sftp_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<DeleteLogSftpError> = 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 SFTP for a particular service and version.
356pub async fn get_log_sftp(configuration: &mut configuration::Configuration, params: GetLogSftpParams) -> Result<crate::models::LoggingSftpResponse, Error<GetLogSftpError>> {
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_sftp_name = params.logging_sftp_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/sftp/{logging_sftp_name}", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id, logging_sftp_name=crate::apis::urlencode(logging_sftp_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<GetLogSftpError> = 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 SFTPs for a particular service and version.
410pub async fn list_log_sftp(configuration: &mut configuration::Configuration, params: ListLogSftpParams) -> Result<Vec<crate::models::LoggingSftpResponse>, Error<ListLogSftpError>> {
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/sftp", 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<ListLogSftpError> = 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 SFTP for a particular service and version.
463pub async fn update_log_sftp(configuration: &mut configuration::Configuration, params: UpdateLogSftpParams) -> Result<crate::models::LoggingSftpResponse, Error<UpdateLogSftpError>> {
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_sftp_name = params.logging_sftp_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 port = params.port;
482    let password = params.password;
483    let path = params.path;
484    let public_key = params.public_key;
485    let secret_key = params.secret_key;
486    let ssh_known_hosts = params.ssh_known_hosts;
487    let user = params.user;
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/sftp/{logging_sftp_name}", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id, logging_sftp_name=crate::apis::urlencode(logging_sftp_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) = port {
541        local_var_form_params.insert("port", local_var_param_value.to_string());
542    }
543    if let Some(local_var_param_value) = password {
544        local_var_form_params.insert("password", local_var_param_value.to_string());
545    }
546    if let Some(local_var_param_value) = path {
547        local_var_form_params.insert("path", local_var_param_value.to_string());
548    }
549    if let Some(local_var_param_value) = public_key {
550        local_var_form_params.insert("public_key", local_var_param_value.to_string());
551    }
552    if let Some(local_var_param_value) = secret_key {
553        local_var_form_params.insert("secret_key", local_var_param_value.to_string());
554    }
555    if let Some(local_var_param_value) = ssh_known_hosts {
556        local_var_form_params.insert("ssh_known_hosts", local_var_param_value.to_string());
557    }
558    if let Some(local_var_param_value) = user {
559        local_var_form_params.insert("user", 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<UpdateLogSftpError> = 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