1use reqwest;
10
11use crate::apis::ResponseContent;
12use super::{Error, configuration};
13
14#[derive(Clone, Debug, Default)]
16pub struct CreateLogSyslogParams {
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 address: Option<String>,
43 pub port: Option<i32>,
45 pub message_type: Option<crate::models::LoggingMessageType>,
46 pub hostname: Option<String>,
48 pub ipv4: Option<String>,
50 pub token: Option<String>,
52 pub use_tls: Option<crate::models::LoggingUseTlsString>
53}
54
55#[derive(Clone, Debug, Default)]
57pub struct DeleteLogSyslogParams {
58 pub service_id: String,
60 pub version_id: i32,
62 pub logging_syslog_name: String
64}
65
66#[derive(Clone, Debug, Default)]
68pub struct GetLogSyslogParams {
69 pub service_id: String,
71 pub version_id: i32,
73 pub logging_syslog_name: String
75}
76
77#[derive(Clone, Debug, Default)]
79pub struct ListLogSyslogParams {
80 pub service_id: String,
82 pub version_id: i32
84}
85
86#[derive(Clone, Debug, Default)]
88pub struct UpdateLogSyslogParams {
89 pub service_id: String,
91 pub version_id: i32,
93 pub logging_syslog_name: String,
95 pub name: Option<String>,
97 pub placement: Option<String>,
99 pub response_condition: Option<String>,
101 pub format: Option<String>,
103 pub log_processing_region: Option<String>,
105 pub format_version: Option<i32>,
107 pub tls_ca_cert: Option<String>,
109 pub tls_client_cert: Option<String>,
111 pub tls_client_key: Option<String>,
113 pub tls_hostname: Option<String>,
115 pub address: Option<String>,
117 pub port: Option<i32>,
119 pub message_type: Option<crate::models::LoggingMessageType>,
120 pub hostname: Option<String>,
122 pub ipv4: Option<String>,
124 pub token: Option<String>,
126 pub use_tls: Option<crate::models::LoggingUseTlsString>
127}
128
129
130#[derive(Debug, Clone, Serialize, Deserialize)]
132#[serde(untagged)]
133pub enum CreateLogSyslogError {
134 UnknownValue(serde_json::Value),
135}
136
137#[derive(Debug, Clone, Serialize, Deserialize)]
139#[serde(untagged)]
140pub enum DeleteLogSyslogError {
141 UnknownValue(serde_json::Value),
142}
143
144#[derive(Debug, Clone, Serialize, Deserialize)]
146#[serde(untagged)]
147pub enum GetLogSyslogError {
148 UnknownValue(serde_json::Value),
149}
150
151#[derive(Debug, Clone, Serialize, Deserialize)]
153#[serde(untagged)]
154pub enum ListLogSyslogError {
155 UnknownValue(serde_json::Value),
156}
157
158#[derive(Debug, Clone, Serialize, Deserialize)]
160#[serde(untagged)]
161pub enum UpdateLogSyslogError {
162 UnknownValue(serde_json::Value),
163}
164
165
166pub async fn create_log_syslog(configuration: &mut configuration::Configuration, params: CreateLogSyslogParams) -> Result<crate::models::LoggingSyslogResponse, Error<CreateLogSyslogError>> {
168 let local_var_configuration = configuration;
169
170 let service_id = params.service_id;
172 let version_id = params.version_id;
173 let name = params.name;
174 let placement = params.placement;
175 let response_condition = params.response_condition;
176 let format = params.format;
177 let log_processing_region = params.log_processing_region;
178 let format_version = params.format_version;
179 let tls_ca_cert = params.tls_ca_cert;
180 let tls_client_cert = params.tls_client_cert;
181 let tls_client_key = params.tls_client_key;
182 let tls_hostname = params.tls_hostname;
183 let address = params.address;
184 let port = params.port;
185 let message_type = params.message_type;
186 let hostname = params.hostname;
187 let ipv4 = params.ipv4;
188 let token = params.token;
189 let use_tls = params.use_tls;
190
191
192 let local_var_client = &local_var_configuration.client;
193
194 let local_var_uri_str = format!("{}/service/{service_id}/version/{version_id}/logging/syslog", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id);
195 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
196
197 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
198 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
199 }
200 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
201 let local_var_key = local_var_apikey.key.clone();
202 let local_var_value = match local_var_apikey.prefix {
203 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
204 None => local_var_key,
205 };
206 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
207 };
208 let mut local_var_form_params = std::collections::HashMap::new();
209 if let Some(local_var_param_value) = name {
210 local_var_form_params.insert("name", local_var_param_value.to_string());
211 }
212 if let Some(local_var_param_value) = placement {
213 local_var_form_params.insert("placement", local_var_param_value.to_string());
214 }
215 if let Some(local_var_param_value) = response_condition {
216 local_var_form_params.insert("response_condition", local_var_param_value.to_string());
217 }
218 if let Some(local_var_param_value) = format {
219 local_var_form_params.insert("format", local_var_param_value.to_string());
220 }
221 if let Some(local_var_param_value) = log_processing_region {
222 local_var_form_params.insert("log_processing_region", local_var_param_value.to_string());
223 }
224 if let Some(local_var_param_value) = format_version {
225 local_var_form_params.insert("format_version", local_var_param_value.to_string());
226 }
227 if let Some(local_var_param_value) = tls_ca_cert {
228 local_var_form_params.insert("tls_ca_cert", local_var_param_value.to_string());
229 }
230 if let Some(local_var_param_value) = tls_client_cert {
231 local_var_form_params.insert("tls_client_cert", local_var_param_value.to_string());
232 }
233 if let Some(local_var_param_value) = tls_client_key {
234 local_var_form_params.insert("tls_client_key", local_var_param_value.to_string());
235 }
236 if let Some(local_var_param_value) = tls_hostname {
237 local_var_form_params.insert("tls_hostname", local_var_param_value.to_string());
238 }
239 if let Some(local_var_param_value) = address {
240 local_var_form_params.insert("address", local_var_param_value.to_string());
241 }
242 if let Some(local_var_param_value) = port {
243 local_var_form_params.insert("port", local_var_param_value.to_string());
244 }
245 if let Some(local_var_param_value) = message_type {
246 local_var_form_params.insert("message_type", local_var_param_value.to_string());
247 }
248 if let Some(local_var_param_value) = hostname {
249 local_var_form_params.insert("hostname", local_var_param_value.to_string());
250 }
251 if let Some(local_var_param_value) = ipv4 {
252 local_var_form_params.insert("ipv4", local_var_param_value.to_string());
253 }
254 if let Some(local_var_param_value) = token {
255 local_var_form_params.insert("token", local_var_param_value.to_string());
256 }
257 if let Some(local_var_param_value) = use_tls {
258 local_var_form_params.insert("use_tls", local_var_param_value.to_string());
259 }
260 local_var_req_builder = local_var_req_builder.form(&local_var_form_params);
261
262 let local_var_req = local_var_req_builder.build()?;
263 let local_var_resp = local_var_client.execute(local_var_req).await?;
264
265 if "POST" != "GET" && "POST" != "HEAD" {
266 let headers = local_var_resp.headers();
267 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
268 Some(v) => v.to_str().unwrap().parse().unwrap(),
269 None => configuration::DEFAULT_RATELIMIT,
270 };
271 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
272 Some(v) => v.to_str().unwrap().parse().unwrap(),
273 None => 0,
274 };
275 }
276
277 let local_var_status = local_var_resp.status();
278 let local_var_content = local_var_resp.text().await?;
279
280 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
281 serde_json::from_str(&local_var_content).map_err(Error::from)
282 } else {
283 let local_var_entity: Option<CreateLogSyslogError> = serde_json::from_str(&local_var_content).ok();
284 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
285 Err(Error::ResponseError(local_var_error))
286 }
287}
288
289pub async fn delete_log_syslog(configuration: &mut configuration::Configuration, params: DeleteLogSyslogParams) -> Result<crate::models::InlineResponse200, Error<DeleteLogSyslogError>> {
291 let local_var_configuration = configuration;
292
293 let service_id = params.service_id;
295 let version_id = params.version_id;
296 let logging_syslog_name = params.logging_syslog_name;
297
298
299 let local_var_client = &local_var_configuration.client;
300
301 let local_var_uri_str = format!("{}/service/{service_id}/version/{version_id}/logging/syslog/{logging_syslog_name}", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id, logging_syslog_name=crate::apis::urlencode(logging_syslog_name));
302 let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
303
304 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
305 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
306 }
307 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
308 let local_var_key = local_var_apikey.key.clone();
309 let local_var_value = match local_var_apikey.prefix {
310 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
311 None => local_var_key,
312 };
313 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
314 };
315
316 let local_var_req = local_var_req_builder.build()?;
317 let local_var_resp = local_var_client.execute(local_var_req).await?;
318
319 if "DELETE" != "GET" && "DELETE" != "HEAD" {
320 let headers = local_var_resp.headers();
321 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
322 Some(v) => v.to_str().unwrap().parse().unwrap(),
323 None => configuration::DEFAULT_RATELIMIT,
324 };
325 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
326 Some(v) => v.to_str().unwrap().parse().unwrap(),
327 None => 0,
328 };
329 }
330
331 let local_var_status = local_var_resp.status();
332 let local_var_content = local_var_resp.text().await?;
333
334 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
335 serde_json::from_str(&local_var_content).map_err(Error::from)
336 } else {
337 let local_var_entity: Option<DeleteLogSyslogError> = serde_json::from_str(&local_var_content).ok();
338 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
339 Err(Error::ResponseError(local_var_error))
340 }
341}
342
343pub async fn get_log_syslog(configuration: &mut configuration::Configuration, params: GetLogSyslogParams) -> Result<crate::models::LoggingSyslogResponse, Error<GetLogSyslogError>> {
345 let local_var_configuration = configuration;
346
347 let service_id = params.service_id;
349 let version_id = params.version_id;
350 let logging_syslog_name = params.logging_syslog_name;
351
352
353 let local_var_client = &local_var_configuration.client;
354
355 let local_var_uri_str = format!("{}/service/{service_id}/version/{version_id}/logging/syslog/{logging_syslog_name}", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id, logging_syslog_name=crate::apis::urlencode(logging_syslog_name));
356 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
357
358 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
359 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
360 }
361 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
362 let local_var_key = local_var_apikey.key.clone();
363 let local_var_value = match local_var_apikey.prefix {
364 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
365 None => local_var_key,
366 };
367 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
368 };
369
370 let local_var_req = local_var_req_builder.build()?;
371 let local_var_resp = local_var_client.execute(local_var_req).await?;
372
373 if "GET" != "GET" && "GET" != "HEAD" {
374 let headers = local_var_resp.headers();
375 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
376 Some(v) => v.to_str().unwrap().parse().unwrap(),
377 None => configuration::DEFAULT_RATELIMIT,
378 };
379 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
380 Some(v) => v.to_str().unwrap().parse().unwrap(),
381 None => 0,
382 };
383 }
384
385 let local_var_status = local_var_resp.status();
386 let local_var_content = local_var_resp.text().await?;
387
388 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
389 serde_json::from_str(&local_var_content).map_err(Error::from)
390 } else {
391 let local_var_entity: Option<GetLogSyslogError> = serde_json::from_str(&local_var_content).ok();
392 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
393 Err(Error::ResponseError(local_var_error))
394 }
395}
396
397pub async fn list_log_syslog(configuration: &mut configuration::Configuration, params: ListLogSyslogParams) -> Result<Vec<crate::models::LoggingSyslogResponse>, Error<ListLogSyslogError>> {
399 let local_var_configuration = configuration;
400
401 let service_id = params.service_id;
403 let version_id = params.version_id;
404
405
406 let local_var_client = &local_var_configuration.client;
407
408 let local_var_uri_str = format!("{}/service/{service_id}/version/{version_id}/logging/syslog", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id);
409 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
410
411 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
412 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
413 }
414 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
415 let local_var_key = local_var_apikey.key.clone();
416 let local_var_value = match local_var_apikey.prefix {
417 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
418 None => local_var_key,
419 };
420 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
421 };
422
423 let local_var_req = local_var_req_builder.build()?;
424 let local_var_resp = local_var_client.execute(local_var_req).await?;
425
426 if "GET" != "GET" && "GET" != "HEAD" {
427 let headers = local_var_resp.headers();
428 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
429 Some(v) => v.to_str().unwrap().parse().unwrap(),
430 None => configuration::DEFAULT_RATELIMIT,
431 };
432 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
433 Some(v) => v.to_str().unwrap().parse().unwrap(),
434 None => 0,
435 };
436 }
437
438 let local_var_status = local_var_resp.status();
439 let local_var_content = local_var_resp.text().await?;
440
441 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
442 serde_json::from_str(&local_var_content).map_err(Error::from)
443 } else {
444 let local_var_entity: Option<ListLogSyslogError> = serde_json::from_str(&local_var_content).ok();
445 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
446 Err(Error::ResponseError(local_var_error))
447 }
448}
449
450pub async fn update_log_syslog(configuration: &mut configuration::Configuration, params: UpdateLogSyslogParams) -> Result<crate::models::LoggingSyslogResponse, Error<UpdateLogSyslogError>> {
452 let local_var_configuration = configuration;
453
454 let service_id = params.service_id;
456 let version_id = params.version_id;
457 let logging_syslog_name = params.logging_syslog_name;
458 let name = params.name;
459 let placement = params.placement;
460 let response_condition = params.response_condition;
461 let format = params.format;
462 let log_processing_region = params.log_processing_region;
463 let format_version = params.format_version;
464 let tls_ca_cert = params.tls_ca_cert;
465 let tls_client_cert = params.tls_client_cert;
466 let tls_client_key = params.tls_client_key;
467 let tls_hostname = params.tls_hostname;
468 let address = params.address;
469 let port = params.port;
470 let message_type = params.message_type;
471 let hostname = params.hostname;
472 let ipv4 = params.ipv4;
473 let token = params.token;
474 let use_tls = params.use_tls;
475
476
477 let local_var_client = &local_var_configuration.client;
478
479 let local_var_uri_str = format!("{}/service/{service_id}/version/{version_id}/logging/syslog/{logging_syslog_name}", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id, logging_syslog_name=crate::apis::urlencode(logging_syslog_name));
480 let mut local_var_req_builder = local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
481
482 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
483 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
484 }
485 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
486 let local_var_key = local_var_apikey.key.clone();
487 let local_var_value = match local_var_apikey.prefix {
488 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
489 None => local_var_key,
490 };
491 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
492 };
493 let mut local_var_form_params = std::collections::HashMap::new();
494 if let Some(local_var_param_value) = name {
495 local_var_form_params.insert("name", local_var_param_value.to_string());
496 }
497 if let Some(local_var_param_value) = placement {
498 local_var_form_params.insert("placement", local_var_param_value.to_string());
499 }
500 if let Some(local_var_param_value) = response_condition {
501 local_var_form_params.insert("response_condition", local_var_param_value.to_string());
502 }
503 if let Some(local_var_param_value) = format {
504 local_var_form_params.insert("format", local_var_param_value.to_string());
505 }
506 if let Some(local_var_param_value) = log_processing_region {
507 local_var_form_params.insert("log_processing_region", local_var_param_value.to_string());
508 }
509 if let Some(local_var_param_value) = format_version {
510 local_var_form_params.insert("format_version", local_var_param_value.to_string());
511 }
512 if let Some(local_var_param_value) = tls_ca_cert {
513 local_var_form_params.insert("tls_ca_cert", local_var_param_value.to_string());
514 }
515 if let Some(local_var_param_value) = tls_client_cert {
516 local_var_form_params.insert("tls_client_cert", local_var_param_value.to_string());
517 }
518 if let Some(local_var_param_value) = tls_client_key {
519 local_var_form_params.insert("tls_client_key", local_var_param_value.to_string());
520 }
521 if let Some(local_var_param_value) = tls_hostname {
522 local_var_form_params.insert("tls_hostname", local_var_param_value.to_string());
523 }
524 if let Some(local_var_param_value) = address {
525 local_var_form_params.insert("address", local_var_param_value.to_string());
526 }
527 if let Some(local_var_param_value) = port {
528 local_var_form_params.insert("port", local_var_param_value.to_string());
529 }
530 if let Some(local_var_param_value) = message_type {
531 local_var_form_params.insert("message_type", local_var_param_value.to_string());
532 }
533 if let Some(local_var_param_value) = hostname {
534 local_var_form_params.insert("hostname", local_var_param_value.to_string());
535 }
536 if let Some(local_var_param_value) = ipv4 {
537 local_var_form_params.insert("ipv4", local_var_param_value.to_string());
538 }
539 if let Some(local_var_param_value) = token {
540 local_var_form_params.insert("token", local_var_param_value.to_string());
541 }
542 if let Some(local_var_param_value) = use_tls {
543 local_var_form_params.insert("use_tls", local_var_param_value.to_string());
544 }
545 local_var_req_builder = local_var_req_builder.form(&local_var_form_params);
546
547 let local_var_req = local_var_req_builder.build()?;
548 let local_var_resp = local_var_client.execute(local_var_req).await?;
549
550 if "PUT" != "GET" && "PUT" != "HEAD" {
551 let headers = local_var_resp.headers();
552 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
553 Some(v) => v.to_str().unwrap().parse().unwrap(),
554 None => configuration::DEFAULT_RATELIMIT,
555 };
556 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
557 Some(v) => v.to_str().unwrap().parse().unwrap(),
558 None => 0,
559 };
560 }
561
562 let local_var_status = local_var_resp.status();
563 let local_var_content = local_var_resp.text().await?;
564
565 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
566 serde_json::from_str(&local_var_content).map_err(Error::from)
567 } else {
568 let local_var_entity: Option<UpdateLogSyslogError> = serde_json::from_str(&local_var_content).ok();
569 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
570 Err(Error::ResponseError(local_var_error))
571 }
572}
573