1use reqwest;
10
11use crate::apis::ResponseContent;
12use super::{Error, configuration};
13
14#[derive(Clone, Debug, Default)]
16pub struct CreateLogSplunkParams {
17 pub service_id: String,
19 pub version_id: i32,
21 pub name: Option<String>,
23 pub placement: Option<String>,
25 pub response_condition: Option<String>,
27 pub format: Option<String>,
29 pub log_processing_region: Option<String>,
31 pub format_version: Option<i32>,
33 pub tls_ca_cert: Option<String>,
35 pub tls_client_cert: Option<String>,
37 pub tls_client_key: Option<String>,
39 pub tls_hostname: Option<String>,
41 pub request_max_entries: Option<i32>,
43 pub request_max_bytes: Option<i32>,
45 pub url: Option<String>,
47 pub token: Option<String>,
49 pub use_tls: Option<crate::models::LoggingUseTlsString>
50}
51
52#[derive(Clone, Debug, Default)]
54pub struct DeleteLogSplunkParams {
55 pub service_id: String,
57 pub version_id: i32,
59 pub logging_splunk_name: String
61}
62
63#[derive(Clone, Debug, Default)]
65pub struct GetLogSplunkParams {
66 pub service_id: String,
68 pub version_id: i32,
70 pub logging_splunk_name: String
72}
73
74#[derive(Clone, Debug, Default)]
76pub struct ListLogSplunkParams {
77 pub service_id: String,
79 pub version_id: i32
81}
82
83#[derive(Clone, Debug, Default)]
85pub struct UpdateLogSplunkParams {
86 pub service_id: String,
88 pub version_id: i32,
90 pub logging_splunk_name: String,
92 pub name: Option<String>,
94 pub placement: Option<String>,
96 pub response_condition: Option<String>,
98 pub format: Option<String>,
100 pub log_processing_region: Option<String>,
102 pub format_version: Option<i32>,
104 pub tls_ca_cert: Option<String>,
106 pub tls_client_cert: Option<String>,
108 pub tls_client_key: Option<String>,
110 pub tls_hostname: Option<String>,
112 pub request_max_entries: Option<i32>,
114 pub request_max_bytes: Option<i32>,
116 pub url: Option<String>,
118 pub token: Option<String>,
120 pub use_tls: Option<crate::models::LoggingUseTlsString>
121}
122
123
124#[derive(Debug, Clone, Serialize, Deserialize)]
126#[serde(untagged)]
127pub enum CreateLogSplunkError {
128 UnknownValue(serde_json::Value),
129}
130
131#[derive(Debug, Clone, Serialize, Deserialize)]
133#[serde(untagged)]
134pub enum DeleteLogSplunkError {
135 UnknownValue(serde_json::Value),
136}
137
138#[derive(Debug, Clone, Serialize, Deserialize)]
140#[serde(untagged)]
141pub enum GetLogSplunkError {
142 UnknownValue(serde_json::Value),
143}
144
145#[derive(Debug, Clone, Serialize, Deserialize)]
147#[serde(untagged)]
148pub enum ListLogSplunkError {
149 UnknownValue(serde_json::Value),
150}
151
152#[derive(Debug, Clone, Serialize, Deserialize)]
154#[serde(untagged)]
155pub enum UpdateLogSplunkError {
156 UnknownValue(serde_json::Value),
157}
158
159
160pub 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 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
275pub 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 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
329pub 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 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
383pub 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 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
436pub 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 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