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