fastly_api/apis/
logging_splunk_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_splunk`]
15#[derive(Clone, Debug, Default)]
16pub struct CreateLogSplunkParams {
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://www.fastly.com/documentation/guides/integrations/streaming-logs/custom-log-formats/).
28    pub format: Option<String>,
29    /// The geographic region where the logs will be processed before streaming. Valid values are `us`, `eu`, and `none` for global.
30    pub log_processing_region: Option<String>,
31    /// 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`. 
32    pub format_version: Option<i32>,
33    /// A secure certificate to authenticate a server with. Must be in PEM format.
34    pub tls_ca_cert: Option<String>,
35    /// The client certificate used to make authenticated requests. Must be in PEM format.
36    pub tls_client_cert: Option<String>,
37    /// The client private key used to make authenticated requests. Must be in PEM format.
38    pub tls_client_key: Option<String>,
39    /// The hostname to verify the server's certificate. This should be one of the Subject Alternative Name (SAN) fields for the certificate. Common Names (CN) are not supported.
40    pub tls_hostname: Option<String>,
41    /// The maximum number of logs sent in one request. Defaults `0` for unbounded.
42    pub request_max_entries: Option<i32>,
43    /// The maximum number of bytes sent in one request. Defaults `0` for unbounded.
44    pub request_max_bytes: Option<i32>,
45    /// The URL to post logs to.
46    pub url: Option<String>,
47    /// A Splunk token for use in posting logs over HTTP to your collector.
48    pub token: Option<String>,
49    pub use_tls: Option<crate::models::LoggingUseTlsString>
50}
51
52/// struct for passing parameters to the method [`delete_log_splunk`]
53#[derive(Clone, Debug, Default)]
54pub struct DeleteLogSplunkParams {
55    /// Alphanumeric string identifying the service.
56    pub service_id: String,
57    /// Integer identifying a service version.
58    pub version_id: i32,
59    /// The name for the real-time logging configuration.
60    pub logging_splunk_name: String
61}
62
63/// struct for passing parameters to the method [`get_log_splunk`]
64#[derive(Clone, Debug, Default)]
65pub struct GetLogSplunkParams {
66    /// Alphanumeric string identifying the service.
67    pub service_id: String,
68    /// Integer identifying a service version.
69    pub version_id: i32,
70    /// The name for the real-time logging configuration.
71    pub logging_splunk_name: String
72}
73
74/// struct for passing parameters to the method [`list_log_splunk`]
75#[derive(Clone, Debug, Default)]
76pub struct ListLogSplunkParams {
77    /// Alphanumeric string identifying the service.
78    pub service_id: String,
79    /// Integer identifying a service version.
80    pub version_id: i32
81}
82
83/// struct for passing parameters to the method [`update_log_splunk`]
84#[derive(Clone, Debug, Default)]
85pub struct UpdateLogSplunkParams {
86    /// Alphanumeric string identifying the service.
87    pub service_id: String,
88    /// Integer identifying a service version.
89    pub version_id: i32,
90    /// The name for the real-time logging configuration.
91    pub logging_splunk_name: String,
92    /// The name for the real-time logging configuration.
93    pub name: Option<String>,
94    /// 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`. 
95    pub placement: Option<String>,
96    /// The name of an existing condition in the configured endpoint, or leave blank to always execute.
97    pub response_condition: Option<String>,
98    /// A Fastly [log format string](https://www.fastly.com/documentation/guides/integrations/streaming-logs/custom-log-formats/).
99    pub format: Option<String>,
100    /// The geographic region where the logs will be processed before streaming. Valid values are `us`, `eu`, and `none` for global.
101    pub log_processing_region: Option<String>,
102    /// 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`. 
103    pub format_version: Option<i32>,
104    /// A secure certificate to authenticate a server with. Must be in PEM format.
105    pub tls_ca_cert: Option<String>,
106    /// The client certificate used to make authenticated requests. Must be in PEM format.
107    pub tls_client_cert: Option<String>,
108    /// The client private key used to make authenticated requests. Must be in PEM format.
109    pub tls_client_key: Option<String>,
110    /// The hostname to verify the server's certificate. This should be one of the Subject Alternative Name (SAN) fields for the certificate. Common Names (CN) are not supported.
111    pub tls_hostname: Option<String>,
112    /// The maximum number of logs sent in one request. Defaults `0` for unbounded.
113    pub request_max_entries: Option<i32>,
114    /// The maximum number of bytes sent in one request. Defaults `0` for unbounded.
115    pub request_max_bytes: Option<i32>,
116    /// The URL to post logs to.
117    pub url: Option<String>,
118    /// A Splunk token for use in posting logs over HTTP to your collector.
119    pub token: Option<String>,
120    pub use_tls: Option<crate::models::LoggingUseTlsString>
121}
122
123
124/// struct for typed errors of method [`create_log_splunk`]
125#[derive(Debug, Clone, Serialize, Deserialize)]
126#[serde(untagged)]
127pub enum CreateLogSplunkError {
128    UnknownValue(serde_json::Value),
129}
130
131/// struct for typed errors of method [`delete_log_splunk`]
132#[derive(Debug, Clone, Serialize, Deserialize)]
133#[serde(untagged)]
134pub enum DeleteLogSplunkError {
135    UnknownValue(serde_json::Value),
136}
137
138/// struct for typed errors of method [`get_log_splunk`]
139#[derive(Debug, Clone, Serialize, Deserialize)]
140#[serde(untagged)]
141pub enum GetLogSplunkError {
142    UnknownValue(serde_json::Value),
143}
144
145/// struct for typed errors of method [`list_log_splunk`]
146#[derive(Debug, Clone, Serialize, Deserialize)]
147#[serde(untagged)]
148pub enum ListLogSplunkError {
149    UnknownValue(serde_json::Value),
150}
151
152/// struct for typed errors of method [`update_log_splunk`]
153#[derive(Debug, Clone, Serialize, Deserialize)]
154#[serde(untagged)]
155pub enum UpdateLogSplunkError {
156    UnknownValue(serde_json::Value),
157}
158
159
160/// Create a Splunk logging object for a particular service and version.
161pub async fn create_log_splunk(configuration: &mut configuration::Configuration, params: CreateLogSplunkParams) -> Result<crate::models::LoggingSplunkResponse, Error<CreateLogSplunkError>> {
162    let local_var_configuration = configuration;
163
164    // unbox the parameters
165    let service_id = params.service_id;
166    let version_id = params.version_id;
167    let name = params.name;
168    let placement = params.placement;
169    let response_condition = params.response_condition;
170    let format = params.format;
171    let log_processing_region = params.log_processing_region;
172    let format_version = params.format_version;
173    let tls_ca_cert = params.tls_ca_cert;
174    let tls_client_cert = params.tls_client_cert;
175    let tls_client_key = params.tls_client_key;
176    let tls_hostname = params.tls_hostname;
177    let request_max_entries = params.request_max_entries;
178    let request_max_bytes = params.request_max_bytes;
179    let url = params.url;
180    let token = params.token;
181    let use_tls = params.use_tls;
182
183
184    let local_var_client = &local_var_configuration.client;
185
186    let local_var_uri_str = format!("{}/service/{service_id}/version/{version_id}/logging/splunk", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id);
187    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
188
189    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
190        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
191    }
192    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
193        let local_var_key = local_var_apikey.key.clone();
194        let local_var_value = match local_var_apikey.prefix {
195            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
196            None => local_var_key,
197        };
198        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
199    };
200    let mut local_var_form_params = std::collections::HashMap::new();
201    if let Some(local_var_param_value) = name {
202        local_var_form_params.insert("name", local_var_param_value.to_string());
203    }
204    if let Some(local_var_param_value) = placement {
205        local_var_form_params.insert("placement", local_var_param_value.to_string());
206    }
207    if let Some(local_var_param_value) = response_condition {
208        local_var_form_params.insert("response_condition", local_var_param_value.to_string());
209    }
210    if let Some(local_var_param_value) = format {
211        local_var_form_params.insert("format", local_var_param_value.to_string());
212    }
213    if let Some(local_var_param_value) = log_processing_region {
214        local_var_form_params.insert("log_processing_region", local_var_param_value.to_string());
215    }
216    if let Some(local_var_param_value) = format_version {
217        local_var_form_params.insert("format_version", local_var_param_value.to_string());
218    }
219    if let Some(local_var_param_value) = tls_ca_cert {
220        local_var_form_params.insert("tls_ca_cert", local_var_param_value.to_string());
221    }
222    if let Some(local_var_param_value) = tls_client_cert {
223        local_var_form_params.insert("tls_client_cert", local_var_param_value.to_string());
224    }
225    if let Some(local_var_param_value) = tls_client_key {
226        local_var_form_params.insert("tls_client_key", local_var_param_value.to_string());
227    }
228    if let Some(local_var_param_value) = tls_hostname {
229        local_var_form_params.insert("tls_hostname", local_var_param_value.to_string());
230    }
231    if let Some(local_var_param_value) = request_max_entries {
232        local_var_form_params.insert("request_max_entries", local_var_param_value.to_string());
233    }
234    if let Some(local_var_param_value) = request_max_bytes {
235        local_var_form_params.insert("request_max_bytes", local_var_param_value.to_string());
236    }
237    if let Some(local_var_param_value) = url {
238        local_var_form_params.insert("url", local_var_param_value.to_string());
239    }
240    if let Some(local_var_param_value) = token {
241        local_var_form_params.insert("token", local_var_param_value.to_string());
242    }
243    if let Some(local_var_param_value) = use_tls {
244        local_var_form_params.insert("use_tls", local_var_param_value.to_string());
245    }
246    local_var_req_builder = local_var_req_builder.form(&local_var_form_params);
247
248    let local_var_req = local_var_req_builder.build()?;
249    let local_var_resp = local_var_client.execute(local_var_req).await?;
250
251    if "POST" != "GET" && "POST" != "HEAD" {
252      let headers = local_var_resp.headers();
253      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
254          Some(v) => v.to_str().unwrap().parse().unwrap(),
255          None => configuration::DEFAULT_RATELIMIT,
256      };
257      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
258          Some(v) => v.to_str().unwrap().parse().unwrap(),
259          None => 0,
260      };
261    }
262
263    let local_var_status = local_var_resp.status();
264    let local_var_content = local_var_resp.text().await?;
265
266    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
267        serde_json::from_str(&local_var_content).map_err(Error::from)
268    } else {
269        let local_var_entity: Option<CreateLogSplunkError> = serde_json::from_str(&local_var_content).ok();
270        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
271        Err(Error::ResponseError(local_var_error))
272    }
273}
274
275/// Delete the Splunk logging object for a particular service and version.
276pub async fn delete_log_splunk(configuration: &mut configuration::Configuration, params: DeleteLogSplunkParams) -> Result<crate::models::InlineResponse200, Error<DeleteLogSplunkError>> {
277    let local_var_configuration = configuration;
278
279    // unbox the parameters
280    let service_id = params.service_id;
281    let version_id = params.version_id;
282    let logging_splunk_name = params.logging_splunk_name;
283
284
285    let local_var_client = &local_var_configuration.client;
286
287    let local_var_uri_str = format!("{}/service/{service_id}/version/{version_id}/logging/splunk/{logging_splunk_name}", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id, logging_splunk_name=crate::apis::urlencode(logging_splunk_name));
288    let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
289
290    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
291        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
292    }
293    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
294        let local_var_key = local_var_apikey.key.clone();
295        let local_var_value = match local_var_apikey.prefix {
296            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
297            None => local_var_key,
298        };
299        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
300    };
301
302    let local_var_req = local_var_req_builder.build()?;
303    let local_var_resp = local_var_client.execute(local_var_req).await?;
304
305    if "DELETE" != "GET" && "DELETE" != "HEAD" {
306      let headers = local_var_resp.headers();
307      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
308          Some(v) => v.to_str().unwrap().parse().unwrap(),
309          None => configuration::DEFAULT_RATELIMIT,
310      };
311      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
312          Some(v) => v.to_str().unwrap().parse().unwrap(),
313          None => 0,
314      };
315    }
316
317    let local_var_status = local_var_resp.status();
318    let local_var_content = local_var_resp.text().await?;
319
320    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
321        serde_json::from_str(&local_var_content).map_err(Error::from)
322    } else {
323        let local_var_entity: Option<DeleteLogSplunkError> = serde_json::from_str(&local_var_content).ok();
324        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
325        Err(Error::ResponseError(local_var_error))
326    }
327}
328
329/// Get the details for a Splunk logging object for a particular service and version.
330pub async fn get_log_splunk(configuration: &mut configuration::Configuration, params: GetLogSplunkParams) -> Result<crate::models::LoggingSplunkResponse, Error<GetLogSplunkError>> {
331    let local_var_configuration = configuration;
332
333    // unbox the parameters
334    let service_id = params.service_id;
335    let version_id = params.version_id;
336    let logging_splunk_name = params.logging_splunk_name;
337
338
339    let local_var_client = &local_var_configuration.client;
340
341    let local_var_uri_str = format!("{}/service/{service_id}/version/{version_id}/logging/splunk/{logging_splunk_name}", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id, logging_splunk_name=crate::apis::urlencode(logging_splunk_name));
342    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
343
344    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
345        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
346    }
347    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
348        let local_var_key = local_var_apikey.key.clone();
349        let local_var_value = match local_var_apikey.prefix {
350            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
351            None => local_var_key,
352        };
353        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
354    };
355
356    let local_var_req = local_var_req_builder.build()?;
357    let local_var_resp = local_var_client.execute(local_var_req).await?;
358
359    if "GET" != "GET" && "GET" != "HEAD" {
360      let headers = local_var_resp.headers();
361      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
362          Some(v) => v.to_str().unwrap().parse().unwrap(),
363          None => configuration::DEFAULT_RATELIMIT,
364      };
365      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
366          Some(v) => v.to_str().unwrap().parse().unwrap(),
367          None => 0,
368      };
369    }
370
371    let local_var_status = local_var_resp.status();
372    let local_var_content = local_var_resp.text().await?;
373
374    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
375        serde_json::from_str(&local_var_content).map_err(Error::from)
376    } else {
377        let local_var_entity: Option<GetLogSplunkError> = serde_json::from_str(&local_var_content).ok();
378        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
379        Err(Error::ResponseError(local_var_error))
380    }
381}
382
383/// List all of the Splunk logging objects for a particular service and version.
384pub async fn list_log_splunk(configuration: &mut configuration::Configuration, params: ListLogSplunkParams) -> Result<Vec<crate::models::LoggingSplunkResponse>, Error<ListLogSplunkError>> {
385    let local_var_configuration = configuration;
386
387    // unbox the parameters
388    let service_id = params.service_id;
389    let version_id = params.version_id;
390
391
392    let local_var_client = &local_var_configuration.client;
393
394    let local_var_uri_str = format!("{}/service/{service_id}/version/{version_id}/logging/splunk", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id);
395    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
396
397    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
398        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
399    }
400    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
401        let local_var_key = local_var_apikey.key.clone();
402        let local_var_value = match local_var_apikey.prefix {
403            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
404            None => local_var_key,
405        };
406        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
407    };
408
409    let local_var_req = local_var_req_builder.build()?;
410    let local_var_resp = local_var_client.execute(local_var_req).await?;
411
412    if "GET" != "GET" && "GET" != "HEAD" {
413      let headers = local_var_resp.headers();
414      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
415          Some(v) => v.to_str().unwrap().parse().unwrap(),
416          None => configuration::DEFAULT_RATELIMIT,
417      };
418      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
419          Some(v) => v.to_str().unwrap().parse().unwrap(),
420          None => 0,
421      };
422    }
423
424    let local_var_status = local_var_resp.status();
425    let local_var_content = local_var_resp.text().await?;
426
427    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
428        serde_json::from_str(&local_var_content).map_err(Error::from)
429    } else {
430        let local_var_entity: Option<ListLogSplunkError> = serde_json::from_str(&local_var_content).ok();
431        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
432        Err(Error::ResponseError(local_var_error))
433    }
434}
435
436/// Update the Splunk logging object for a particular service and version.
437pub async fn update_log_splunk(configuration: &mut configuration::Configuration, params: UpdateLogSplunkParams) -> Result<crate::models::LoggingSplunkResponse, Error<UpdateLogSplunkError>> {
438    let local_var_configuration = configuration;
439
440    // unbox the parameters
441    let service_id = params.service_id;
442    let version_id = params.version_id;
443    let logging_splunk_name = params.logging_splunk_name;
444    let name = params.name;
445    let placement = params.placement;
446    let response_condition = params.response_condition;
447    let format = params.format;
448    let log_processing_region = params.log_processing_region;
449    let format_version = params.format_version;
450    let tls_ca_cert = params.tls_ca_cert;
451    let tls_client_cert = params.tls_client_cert;
452    let tls_client_key = params.tls_client_key;
453    let tls_hostname = params.tls_hostname;
454    let request_max_entries = params.request_max_entries;
455    let request_max_bytes = params.request_max_bytes;
456    let url = params.url;
457    let token = params.token;
458    let use_tls = params.use_tls;
459
460
461    let local_var_client = &local_var_configuration.client;
462
463    let local_var_uri_str = format!("{}/service/{service_id}/version/{version_id}/logging/splunk/{logging_splunk_name}", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id, logging_splunk_name=crate::apis::urlencode(logging_splunk_name));
464    let mut local_var_req_builder = local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
465
466    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
467        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
468    }
469    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
470        let local_var_key = local_var_apikey.key.clone();
471        let local_var_value = match local_var_apikey.prefix {
472            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
473            None => local_var_key,
474        };
475        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
476    };
477    let mut local_var_form_params = std::collections::HashMap::new();
478    if let Some(local_var_param_value) = name {
479        local_var_form_params.insert("name", local_var_param_value.to_string());
480    }
481    if let Some(local_var_param_value) = placement {
482        local_var_form_params.insert("placement", local_var_param_value.to_string());
483    }
484    if let Some(local_var_param_value) = response_condition {
485        local_var_form_params.insert("response_condition", local_var_param_value.to_string());
486    }
487    if let Some(local_var_param_value) = format {
488        local_var_form_params.insert("format", local_var_param_value.to_string());
489    }
490    if let Some(local_var_param_value) = log_processing_region {
491        local_var_form_params.insert("log_processing_region", local_var_param_value.to_string());
492    }
493    if let Some(local_var_param_value) = format_version {
494        local_var_form_params.insert("format_version", local_var_param_value.to_string());
495    }
496    if let Some(local_var_param_value) = tls_ca_cert {
497        local_var_form_params.insert("tls_ca_cert", local_var_param_value.to_string());
498    }
499    if let Some(local_var_param_value) = tls_client_cert {
500        local_var_form_params.insert("tls_client_cert", local_var_param_value.to_string());
501    }
502    if let Some(local_var_param_value) = tls_client_key {
503        local_var_form_params.insert("tls_client_key", local_var_param_value.to_string());
504    }
505    if let Some(local_var_param_value) = tls_hostname {
506        local_var_form_params.insert("tls_hostname", local_var_param_value.to_string());
507    }
508    if let Some(local_var_param_value) = request_max_entries {
509        local_var_form_params.insert("request_max_entries", local_var_param_value.to_string());
510    }
511    if let Some(local_var_param_value) = request_max_bytes {
512        local_var_form_params.insert("request_max_bytes", local_var_param_value.to_string());
513    }
514    if let Some(local_var_param_value) = url {
515        local_var_form_params.insert("url", local_var_param_value.to_string());
516    }
517    if let Some(local_var_param_value) = token {
518        local_var_form_params.insert("token", local_var_param_value.to_string());
519    }
520    if let Some(local_var_param_value) = use_tls {
521        local_var_form_params.insert("use_tls", local_var_param_value.to_string());
522    }
523    local_var_req_builder = local_var_req_builder.form(&local_var_form_params);
524
525    let local_var_req = local_var_req_builder.build()?;
526    let local_var_resp = local_var_client.execute(local_var_req).await?;
527
528    if "PUT" != "GET" && "PUT" != "HEAD" {
529      let headers = local_var_resp.headers();
530      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
531          Some(v) => v.to_str().unwrap().parse().unwrap(),
532          None => configuration::DEFAULT_RATELIMIT,
533      };
534      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
535          Some(v) => v.to_str().unwrap().parse().unwrap(),
536          None => 0,
537      };
538    }
539
540    let local_var_status = local_var_resp.status();
541    let local_var_content = local_var_resp.text().await?;
542
543    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
544        serde_json::from_str(&local_var_content).map_err(Error::from)
545    } else {
546        let local_var_entity: Option<UpdateLogSplunkError> = serde_json::from_str(&local_var_content).ok();
547        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
548        Err(Error::ResponseError(local_var_error))
549    }
550}
551