1use reqwest;
10
11use crate::apis::ResponseContent;
12use super::{Error, configuration};
13
14#[derive(Clone, Debug, Default)]
16pub struct CreateLogKafkaParams {
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 topic: Option<String>,
43 pub brokers: Option<String>,
45 pub compression_codec: Option<String>,
47 pub required_acks: Option<i32>,
49 pub request_max_bytes: Option<i32>,
51 pub parse_log_keyvals: Option<bool>,
53 pub auth_method: Option<String>,
55 pub user: Option<String>,
57 pub password: Option<String>,
59 pub use_tls: Option<crate::models::LoggingUseTlsString>
60}
61
62#[derive(Clone, Debug, Default)]
64pub struct DeleteLogKafkaParams {
65 pub service_id: String,
67 pub version_id: i32,
69 pub logging_kafka_name: String
71}
72
73#[derive(Clone, Debug, Default)]
75pub struct GetLogKafkaParams {
76 pub service_id: String,
78 pub version_id: i32,
80 pub logging_kafka_name: String
82}
83
84#[derive(Clone, Debug, Default)]
86pub struct ListLogKafkaParams {
87 pub service_id: String,
89 pub version_id: i32
91}
92
93#[derive(Clone, Debug, Default)]
95pub struct UpdateLogKafkaParams {
96 pub service_id: String,
98 pub version_id: i32,
100 pub logging_kafka_name: String
102}
103
104
105#[derive(Debug, Clone, Serialize, Deserialize)]
107#[serde(untagged)]
108pub enum CreateLogKafkaError {
109 UnknownValue(serde_json::Value),
110}
111
112#[derive(Debug, Clone, Serialize, Deserialize)]
114#[serde(untagged)]
115pub enum DeleteLogKafkaError {
116 UnknownValue(serde_json::Value),
117}
118
119#[derive(Debug, Clone, Serialize, Deserialize)]
121#[serde(untagged)]
122pub enum GetLogKafkaError {
123 UnknownValue(serde_json::Value),
124}
125
126#[derive(Debug, Clone, Serialize, Deserialize)]
128#[serde(untagged)]
129pub enum ListLogKafkaError {
130 UnknownValue(serde_json::Value),
131}
132
133#[derive(Debug, Clone, Serialize, Deserialize)]
135#[serde(untagged)]
136pub enum UpdateLogKafkaError {
137 UnknownValue(serde_json::Value),
138}
139
140
141pub async fn create_log_kafka(configuration: &mut configuration::Configuration, params: CreateLogKafkaParams) -> Result<crate::models::LoggingKafkaResponsePost, Error<CreateLogKafkaError>> {
143 let local_var_configuration = configuration;
144
145 let service_id = params.service_id;
147 let version_id = params.version_id;
148 let name = params.name;
149 let placement = params.placement;
150 let response_condition = params.response_condition;
151 let format = params.format;
152 let log_processing_region = params.log_processing_region;
153 let format_version = params.format_version;
154 let tls_ca_cert = params.tls_ca_cert;
155 let tls_client_cert = params.tls_client_cert;
156 let tls_client_key = params.tls_client_key;
157 let tls_hostname = params.tls_hostname;
158 let topic = params.topic;
159 let brokers = params.brokers;
160 let compression_codec = params.compression_codec;
161 let required_acks = params.required_acks;
162 let request_max_bytes = params.request_max_bytes;
163 let parse_log_keyvals = params.parse_log_keyvals;
164 let auth_method = params.auth_method;
165 let user = params.user;
166 let password = params.password;
167 let use_tls = params.use_tls;
168
169
170 let local_var_client = &local_var_configuration.client;
171
172 let local_var_uri_str = format!("{}/service/{service_id}/version/{version_id}/logging/kafka", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id);
173 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
174
175 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
176 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
177 }
178 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
179 let local_var_key = local_var_apikey.key.clone();
180 let local_var_value = match local_var_apikey.prefix {
181 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
182 None => local_var_key,
183 };
184 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
185 };
186 let mut local_var_form_params = std::collections::HashMap::new();
187 if let Some(local_var_param_value) = name {
188 local_var_form_params.insert("name", local_var_param_value.to_string());
189 }
190 if let Some(local_var_param_value) = placement {
191 local_var_form_params.insert("placement", local_var_param_value.to_string());
192 }
193 if let Some(local_var_param_value) = response_condition {
194 local_var_form_params.insert("response_condition", local_var_param_value.to_string());
195 }
196 if let Some(local_var_param_value) = format {
197 local_var_form_params.insert("format", local_var_param_value.to_string());
198 }
199 if let Some(local_var_param_value) = log_processing_region {
200 local_var_form_params.insert("log_processing_region", local_var_param_value.to_string());
201 }
202 if let Some(local_var_param_value) = format_version {
203 local_var_form_params.insert("format_version", local_var_param_value.to_string());
204 }
205 if let Some(local_var_param_value) = tls_ca_cert {
206 local_var_form_params.insert("tls_ca_cert", local_var_param_value.to_string());
207 }
208 if let Some(local_var_param_value) = tls_client_cert {
209 local_var_form_params.insert("tls_client_cert", local_var_param_value.to_string());
210 }
211 if let Some(local_var_param_value) = tls_client_key {
212 local_var_form_params.insert("tls_client_key", local_var_param_value.to_string());
213 }
214 if let Some(local_var_param_value) = tls_hostname {
215 local_var_form_params.insert("tls_hostname", local_var_param_value.to_string());
216 }
217 if let Some(local_var_param_value) = topic {
218 local_var_form_params.insert("topic", local_var_param_value.to_string());
219 }
220 if let Some(local_var_param_value) = brokers {
221 local_var_form_params.insert("brokers", local_var_param_value.to_string());
222 }
223 if let Some(local_var_param_value) = compression_codec {
224 local_var_form_params.insert("compression_codec", local_var_param_value.to_string());
225 }
226 if let Some(local_var_param_value) = required_acks {
227 local_var_form_params.insert("required_acks", local_var_param_value.to_string());
228 }
229 if let Some(local_var_param_value) = request_max_bytes {
230 local_var_form_params.insert("request_max_bytes", local_var_param_value.to_string());
231 }
232 if let Some(local_var_param_value) = parse_log_keyvals {
233 local_var_form_params.insert("parse_log_keyvals", local_var_param_value.to_string());
234 }
235 if let Some(local_var_param_value) = auth_method {
236 local_var_form_params.insert("auth_method", local_var_param_value.to_string());
237 }
238 if let Some(local_var_param_value) = user {
239 local_var_form_params.insert("user", local_var_param_value.to_string());
240 }
241 if let Some(local_var_param_value) = password {
242 local_var_form_params.insert("password", local_var_param_value.to_string());
243 }
244 if let Some(local_var_param_value) = use_tls {
245 local_var_form_params.insert("use_tls", local_var_param_value.to_string());
246 }
247 local_var_req_builder = local_var_req_builder.form(&local_var_form_params);
248
249 let local_var_req = local_var_req_builder.build()?;
250 let local_var_resp = local_var_client.execute(local_var_req).await?;
251
252 if "POST" != "GET" && "POST" != "HEAD" {
253 let headers = local_var_resp.headers();
254 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
255 Some(v) => v.to_str().unwrap().parse().unwrap(),
256 None => configuration::DEFAULT_RATELIMIT,
257 };
258 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
259 Some(v) => v.to_str().unwrap().parse().unwrap(),
260 None => 0,
261 };
262 }
263
264 let local_var_status = local_var_resp.status();
265 let local_var_content = local_var_resp.text().await?;
266
267 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
268 serde_json::from_str(&local_var_content).map_err(Error::from)
269 } else {
270 let local_var_entity: Option<CreateLogKafkaError> = serde_json::from_str(&local_var_content).ok();
271 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
272 Err(Error::ResponseError(local_var_error))
273 }
274}
275
276pub async fn delete_log_kafka(configuration: &mut configuration::Configuration, params: DeleteLogKafkaParams) -> Result<crate::models::InlineResponse200, Error<DeleteLogKafkaError>> {
278 let local_var_configuration = configuration;
279
280 let service_id = params.service_id;
282 let version_id = params.version_id;
283 let logging_kafka_name = params.logging_kafka_name;
284
285
286 let local_var_client = &local_var_configuration.client;
287
288 let local_var_uri_str = format!("{}/service/{service_id}/version/{version_id}/logging/kafka/{logging_kafka_name}", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id, logging_kafka_name=crate::apis::urlencode(logging_kafka_name));
289 let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
290
291 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
292 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
293 }
294 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
295 let local_var_key = local_var_apikey.key.clone();
296 let local_var_value = match local_var_apikey.prefix {
297 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
298 None => local_var_key,
299 };
300 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
301 };
302
303 let local_var_req = local_var_req_builder.build()?;
304 let local_var_resp = local_var_client.execute(local_var_req).await?;
305
306 if "DELETE" != "GET" && "DELETE" != "HEAD" {
307 let headers = local_var_resp.headers();
308 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
309 Some(v) => v.to_str().unwrap().parse().unwrap(),
310 None => configuration::DEFAULT_RATELIMIT,
311 };
312 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
313 Some(v) => v.to_str().unwrap().parse().unwrap(),
314 None => 0,
315 };
316 }
317
318 let local_var_status = local_var_resp.status();
319 let local_var_content = local_var_resp.text().await?;
320
321 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
322 serde_json::from_str(&local_var_content).map_err(Error::from)
323 } else {
324 let local_var_entity: Option<DeleteLogKafkaError> = serde_json::from_str(&local_var_content).ok();
325 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
326 Err(Error::ResponseError(local_var_error))
327 }
328}
329
330pub async fn get_log_kafka(configuration: &mut configuration::Configuration, params: GetLogKafkaParams) -> Result<crate::models::LoggingKafkaResponse, Error<GetLogKafkaError>> {
332 let local_var_configuration = configuration;
333
334 let service_id = params.service_id;
336 let version_id = params.version_id;
337 let logging_kafka_name = params.logging_kafka_name;
338
339
340 let local_var_client = &local_var_configuration.client;
341
342 let local_var_uri_str = format!("{}/service/{service_id}/version/{version_id}/logging/kafka/{logging_kafka_name}", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id, logging_kafka_name=crate::apis::urlencode(logging_kafka_name));
343 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
344
345 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
346 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
347 }
348 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
349 let local_var_key = local_var_apikey.key.clone();
350 let local_var_value = match local_var_apikey.prefix {
351 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
352 None => local_var_key,
353 };
354 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
355 };
356
357 let local_var_req = local_var_req_builder.build()?;
358 let local_var_resp = local_var_client.execute(local_var_req).await?;
359
360 if "GET" != "GET" && "GET" != "HEAD" {
361 let headers = local_var_resp.headers();
362 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
363 Some(v) => v.to_str().unwrap().parse().unwrap(),
364 None => configuration::DEFAULT_RATELIMIT,
365 };
366 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
367 Some(v) => v.to_str().unwrap().parse().unwrap(),
368 None => 0,
369 };
370 }
371
372 let local_var_status = local_var_resp.status();
373 let local_var_content = local_var_resp.text().await?;
374
375 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
376 serde_json::from_str(&local_var_content).map_err(Error::from)
377 } else {
378 let local_var_entity: Option<GetLogKafkaError> = serde_json::from_str(&local_var_content).ok();
379 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
380 Err(Error::ResponseError(local_var_error))
381 }
382}
383
384pub async fn list_log_kafka(configuration: &mut configuration::Configuration, params: ListLogKafkaParams) -> Result<Vec<crate::models::LoggingKafkaResponse>, Error<ListLogKafkaError>> {
386 let local_var_configuration = configuration;
387
388 let service_id = params.service_id;
390 let version_id = params.version_id;
391
392
393 let local_var_client = &local_var_configuration.client;
394
395 let local_var_uri_str = format!("{}/service/{service_id}/version/{version_id}/logging/kafka", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id);
396 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
397
398 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
399 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
400 }
401 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
402 let local_var_key = local_var_apikey.key.clone();
403 let local_var_value = match local_var_apikey.prefix {
404 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
405 None => local_var_key,
406 };
407 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
408 };
409
410 let local_var_req = local_var_req_builder.build()?;
411 let local_var_resp = local_var_client.execute(local_var_req).await?;
412
413 if "GET" != "GET" && "GET" != "HEAD" {
414 let headers = local_var_resp.headers();
415 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
416 Some(v) => v.to_str().unwrap().parse().unwrap(),
417 None => configuration::DEFAULT_RATELIMIT,
418 };
419 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
420 Some(v) => v.to_str().unwrap().parse().unwrap(),
421 None => 0,
422 };
423 }
424
425 let local_var_status = local_var_resp.status();
426 let local_var_content = local_var_resp.text().await?;
427
428 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
429 serde_json::from_str(&local_var_content).map_err(Error::from)
430 } else {
431 let local_var_entity: Option<ListLogKafkaError> = serde_json::from_str(&local_var_content).ok();
432 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
433 Err(Error::ResponseError(local_var_error))
434 }
435}
436
437pub async fn update_log_kafka(configuration: &mut configuration::Configuration, params: UpdateLogKafkaParams) -> Result<crate::models::LoggingKafkaResponse, Error<UpdateLogKafkaError>> {
439 let local_var_configuration = configuration;
440
441 let service_id = params.service_id;
443 let version_id = params.version_id;
444 let logging_kafka_name = params.logging_kafka_name;
445
446
447 let local_var_client = &local_var_configuration.client;
448
449 let local_var_uri_str = format!("{}/service/{service_id}/version/{version_id}/logging/kafka/{logging_kafka_name}", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id, logging_kafka_name=crate::apis::urlencode(logging_kafka_name));
450 let mut local_var_req_builder = local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
451
452 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
453 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
454 }
455 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
456 let local_var_key = local_var_apikey.key.clone();
457 let local_var_value = match local_var_apikey.prefix {
458 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
459 None => local_var_key,
460 };
461 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
462 };
463
464 let local_var_req = local_var_req_builder.build()?;
465 let local_var_resp = local_var_client.execute(local_var_req).await?;
466
467 if "PUT" != "GET" && "PUT" != "HEAD" {
468 let headers = local_var_resp.headers();
469 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
470 Some(v) => v.to_str().unwrap().parse().unwrap(),
471 None => configuration::DEFAULT_RATELIMIT,
472 };
473 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
474 Some(v) => v.to_str().unwrap().parse().unwrap(),
475 None => 0,
476 };
477 }
478
479 let local_var_status = local_var_resp.status();
480 let local_var_content = local_var_resp.text().await?;
481
482 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
483 serde_json::from_str(&local_var_content).map_err(Error::from)
484 } else {
485 let local_var_entity: Option<UpdateLogKafkaError> = serde_json::from_str(&local_var_content).ok();
486 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
487 Err(Error::ResponseError(local_var_error))
488 }
489}
490