1use reqwest;
10
11use crate::apis::ResponseContent;
12use super::{Error, configuration};
13
14#[derive(Clone, Debug, Default)]
16pub struct CreateLogBigqueryParams {
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 user: Option<String>,
35 pub secret_key: Option<String>,
37 pub account_name: Option<String>,
39 pub dataset: Option<String>,
41 pub table: Option<String>,
43 pub template_suffix: Option<String>,
45 pub project_id: Option<String>
47}
48
49#[derive(Clone, Debug, Default)]
51pub struct DeleteLogBigqueryParams {
52 pub service_id: String,
54 pub version_id: i32,
56 pub logging_bigquery_name: String
58}
59
60#[derive(Clone, Debug, Default)]
62pub struct GetLogBigqueryParams {
63 pub service_id: String,
65 pub version_id: i32,
67 pub logging_bigquery_name: String
69}
70
71#[derive(Clone, Debug, Default)]
73pub struct ListLogBigqueryParams {
74 pub service_id: String,
76 pub version_id: i32
78}
79
80#[derive(Clone, Debug, Default)]
82pub struct UpdateLogBigqueryParams {
83 pub service_id: String,
85 pub version_id: i32,
87 pub logging_bigquery_name: String,
89 pub name: Option<String>,
91 pub placement: Option<String>,
93 pub response_condition: Option<String>,
95 pub format: Option<String>,
97 pub log_processing_region: Option<String>,
99 pub format_version: Option<i32>,
101 pub user: Option<String>,
103 pub secret_key: Option<String>,
105 pub account_name: Option<String>,
107 pub dataset: Option<String>,
109 pub table: Option<String>,
111 pub template_suffix: Option<String>,
113 pub project_id: Option<String>
115}
116
117
118#[derive(Debug, Clone, Serialize, Deserialize)]
120#[serde(untagged)]
121pub enum CreateLogBigqueryError {
122 UnknownValue(serde_json::Value),
123}
124
125#[derive(Debug, Clone, Serialize, Deserialize)]
127#[serde(untagged)]
128pub enum DeleteLogBigqueryError {
129 UnknownValue(serde_json::Value),
130}
131
132#[derive(Debug, Clone, Serialize, Deserialize)]
134#[serde(untagged)]
135pub enum GetLogBigqueryError {
136 UnknownValue(serde_json::Value),
137}
138
139#[derive(Debug, Clone, Serialize, Deserialize)]
141#[serde(untagged)]
142pub enum ListLogBigqueryError {
143 UnknownValue(serde_json::Value),
144}
145
146#[derive(Debug, Clone, Serialize, Deserialize)]
148#[serde(untagged)]
149pub enum UpdateLogBigqueryError {
150 UnknownValue(serde_json::Value),
151}
152
153
154pub async fn create_log_bigquery(configuration: &mut configuration::Configuration, params: CreateLogBigqueryParams) -> Result<crate::models::LoggingBigqueryResponse, Error<CreateLogBigqueryError>> {
156 let local_var_configuration = configuration;
157
158 let service_id = params.service_id;
160 let version_id = params.version_id;
161 let name = params.name;
162 let placement = params.placement;
163 let response_condition = params.response_condition;
164 let format = params.format;
165 let log_processing_region = params.log_processing_region;
166 let format_version = params.format_version;
167 let user = params.user;
168 let secret_key = params.secret_key;
169 let account_name = params.account_name;
170 let dataset = params.dataset;
171 let table = params.table;
172 let template_suffix = params.template_suffix;
173 let project_id = params.project_id;
174
175
176 let local_var_client = &local_var_configuration.client;
177
178 let local_var_uri_str = format!("{}/service/{service_id}/version/{version_id}/logging/bigquery", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id);
179 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
180
181 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
182 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
183 }
184 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
185 let local_var_key = local_var_apikey.key.clone();
186 let local_var_value = match local_var_apikey.prefix {
187 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
188 None => local_var_key,
189 };
190 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
191 };
192 let mut local_var_form_params = std::collections::HashMap::new();
193 if let Some(local_var_param_value) = name {
194 local_var_form_params.insert("name", local_var_param_value.to_string());
195 }
196 if let Some(local_var_param_value) = placement {
197 local_var_form_params.insert("placement", local_var_param_value.to_string());
198 }
199 if let Some(local_var_param_value) = response_condition {
200 local_var_form_params.insert("response_condition", local_var_param_value.to_string());
201 }
202 if let Some(local_var_param_value) = format {
203 local_var_form_params.insert("format", local_var_param_value.to_string());
204 }
205 if let Some(local_var_param_value) = log_processing_region {
206 local_var_form_params.insert("log_processing_region", local_var_param_value.to_string());
207 }
208 if let Some(local_var_param_value) = format_version {
209 local_var_form_params.insert("format_version", local_var_param_value.to_string());
210 }
211 if let Some(local_var_param_value) = user {
212 local_var_form_params.insert("user", local_var_param_value.to_string());
213 }
214 if let Some(local_var_param_value) = secret_key {
215 local_var_form_params.insert("secret_key", local_var_param_value.to_string());
216 }
217 if let Some(local_var_param_value) = account_name {
218 local_var_form_params.insert("account_name", local_var_param_value.to_string());
219 }
220 if let Some(local_var_param_value) = dataset {
221 local_var_form_params.insert("dataset", local_var_param_value.to_string());
222 }
223 if let Some(local_var_param_value) = table {
224 local_var_form_params.insert("table", local_var_param_value.to_string());
225 }
226 if let Some(local_var_param_value) = template_suffix {
227 local_var_form_params.insert("template_suffix", local_var_param_value.to_string());
228 }
229 if let Some(local_var_param_value) = project_id {
230 local_var_form_params.insert("project_id", local_var_param_value.to_string());
231 }
232 local_var_req_builder = local_var_req_builder.form(&local_var_form_params);
233
234 let local_var_req = local_var_req_builder.build()?;
235 let local_var_resp = local_var_client.execute(local_var_req).await?;
236
237 if "POST" != "GET" && "POST" != "HEAD" {
238 let headers = local_var_resp.headers();
239 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
240 Some(v) => v.to_str().unwrap().parse().unwrap(),
241 None => configuration::DEFAULT_RATELIMIT,
242 };
243 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
244 Some(v) => v.to_str().unwrap().parse().unwrap(),
245 None => 0,
246 };
247 }
248
249 let local_var_status = local_var_resp.status();
250 let local_var_content = local_var_resp.text().await?;
251
252 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
253 serde_json::from_str(&local_var_content).map_err(Error::from)
254 } else {
255 let local_var_entity: Option<CreateLogBigqueryError> = serde_json::from_str(&local_var_content).ok();
256 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
257 Err(Error::ResponseError(local_var_error))
258 }
259}
260
261pub async fn delete_log_bigquery(configuration: &mut configuration::Configuration, params: DeleteLogBigqueryParams) -> Result<crate::models::InlineResponse200, Error<DeleteLogBigqueryError>> {
263 let local_var_configuration = configuration;
264
265 let service_id = params.service_id;
267 let version_id = params.version_id;
268 let logging_bigquery_name = params.logging_bigquery_name;
269
270
271 let local_var_client = &local_var_configuration.client;
272
273 let local_var_uri_str = format!("{}/service/{service_id}/version/{version_id}/logging/bigquery/{logging_bigquery_name}", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id, logging_bigquery_name=crate::apis::urlencode(logging_bigquery_name));
274 let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
275
276 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
277 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
278 }
279 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
280 let local_var_key = local_var_apikey.key.clone();
281 let local_var_value = match local_var_apikey.prefix {
282 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
283 None => local_var_key,
284 };
285 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
286 };
287
288 let local_var_req = local_var_req_builder.build()?;
289 let local_var_resp = local_var_client.execute(local_var_req).await?;
290
291 if "DELETE" != "GET" && "DELETE" != "HEAD" {
292 let headers = local_var_resp.headers();
293 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
294 Some(v) => v.to_str().unwrap().parse().unwrap(),
295 None => configuration::DEFAULT_RATELIMIT,
296 };
297 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
298 Some(v) => v.to_str().unwrap().parse().unwrap(),
299 None => 0,
300 };
301 }
302
303 let local_var_status = local_var_resp.status();
304 let local_var_content = local_var_resp.text().await?;
305
306 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
307 serde_json::from_str(&local_var_content).map_err(Error::from)
308 } else {
309 let local_var_entity: Option<DeleteLogBigqueryError> = serde_json::from_str(&local_var_content).ok();
310 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
311 Err(Error::ResponseError(local_var_error))
312 }
313}
314
315pub async fn get_log_bigquery(configuration: &mut configuration::Configuration, params: GetLogBigqueryParams) -> Result<crate::models::LoggingBigqueryResponse, Error<GetLogBigqueryError>> {
317 let local_var_configuration = configuration;
318
319 let service_id = params.service_id;
321 let version_id = params.version_id;
322 let logging_bigquery_name = params.logging_bigquery_name;
323
324
325 let local_var_client = &local_var_configuration.client;
326
327 let local_var_uri_str = format!("{}/service/{service_id}/version/{version_id}/logging/bigquery/{logging_bigquery_name}", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id, logging_bigquery_name=crate::apis::urlencode(logging_bigquery_name));
328 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
329
330 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
331 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
332 }
333 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
334 let local_var_key = local_var_apikey.key.clone();
335 let local_var_value = match local_var_apikey.prefix {
336 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
337 None => local_var_key,
338 };
339 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
340 };
341
342 let local_var_req = local_var_req_builder.build()?;
343 let local_var_resp = local_var_client.execute(local_var_req).await?;
344
345 if "GET" != "GET" && "GET" != "HEAD" {
346 let headers = local_var_resp.headers();
347 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
348 Some(v) => v.to_str().unwrap().parse().unwrap(),
349 None => configuration::DEFAULT_RATELIMIT,
350 };
351 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
352 Some(v) => v.to_str().unwrap().parse().unwrap(),
353 None => 0,
354 };
355 }
356
357 let local_var_status = local_var_resp.status();
358 let local_var_content = local_var_resp.text().await?;
359
360 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
361 serde_json::from_str(&local_var_content).map_err(Error::from)
362 } else {
363 let local_var_entity: Option<GetLogBigqueryError> = serde_json::from_str(&local_var_content).ok();
364 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
365 Err(Error::ResponseError(local_var_error))
366 }
367}
368
369pub async fn list_log_bigquery(configuration: &mut configuration::Configuration, params: ListLogBigqueryParams) -> Result<Vec<crate::models::LoggingBigqueryResponse>, Error<ListLogBigqueryError>> {
371 let local_var_configuration = configuration;
372
373 let service_id = params.service_id;
375 let version_id = params.version_id;
376
377
378 let local_var_client = &local_var_configuration.client;
379
380 let local_var_uri_str = format!("{}/service/{service_id}/version/{version_id}/logging/bigquery", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id);
381 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
382
383 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
384 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
385 }
386 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
387 let local_var_key = local_var_apikey.key.clone();
388 let local_var_value = match local_var_apikey.prefix {
389 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
390 None => local_var_key,
391 };
392 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
393 };
394
395 let local_var_req = local_var_req_builder.build()?;
396 let local_var_resp = local_var_client.execute(local_var_req).await?;
397
398 if "GET" != "GET" && "GET" != "HEAD" {
399 let headers = local_var_resp.headers();
400 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
401 Some(v) => v.to_str().unwrap().parse().unwrap(),
402 None => configuration::DEFAULT_RATELIMIT,
403 };
404 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
405 Some(v) => v.to_str().unwrap().parse().unwrap(),
406 None => 0,
407 };
408 }
409
410 let local_var_status = local_var_resp.status();
411 let local_var_content = local_var_resp.text().await?;
412
413 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
414 serde_json::from_str(&local_var_content).map_err(Error::from)
415 } else {
416 let local_var_entity: Option<ListLogBigqueryError> = serde_json::from_str(&local_var_content).ok();
417 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
418 Err(Error::ResponseError(local_var_error))
419 }
420}
421
422pub async fn update_log_bigquery(configuration: &mut configuration::Configuration, params: UpdateLogBigqueryParams) -> Result<crate::models::LoggingBigqueryResponse, Error<UpdateLogBigqueryError>> {
424 let local_var_configuration = configuration;
425
426 let service_id = params.service_id;
428 let version_id = params.version_id;
429 let logging_bigquery_name = params.logging_bigquery_name;
430 let name = params.name;
431 let placement = params.placement;
432 let response_condition = params.response_condition;
433 let format = params.format;
434 let log_processing_region = params.log_processing_region;
435 let format_version = params.format_version;
436 let user = params.user;
437 let secret_key = params.secret_key;
438 let account_name = params.account_name;
439 let dataset = params.dataset;
440 let table = params.table;
441 let template_suffix = params.template_suffix;
442 let project_id = params.project_id;
443
444
445 let local_var_client = &local_var_configuration.client;
446
447 let local_var_uri_str = format!("{}/service/{service_id}/version/{version_id}/logging/bigquery/{logging_bigquery_name}", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id, logging_bigquery_name=crate::apis::urlencode(logging_bigquery_name));
448 let mut local_var_req_builder = local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
449
450 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
451 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
452 }
453 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
454 let local_var_key = local_var_apikey.key.clone();
455 let local_var_value = match local_var_apikey.prefix {
456 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
457 None => local_var_key,
458 };
459 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
460 };
461 let mut local_var_form_params = std::collections::HashMap::new();
462 if let Some(local_var_param_value) = name {
463 local_var_form_params.insert("name", local_var_param_value.to_string());
464 }
465 if let Some(local_var_param_value) = placement {
466 local_var_form_params.insert("placement", local_var_param_value.to_string());
467 }
468 if let Some(local_var_param_value) = response_condition {
469 local_var_form_params.insert("response_condition", local_var_param_value.to_string());
470 }
471 if let Some(local_var_param_value) = format {
472 local_var_form_params.insert("format", local_var_param_value.to_string());
473 }
474 if let Some(local_var_param_value) = log_processing_region {
475 local_var_form_params.insert("log_processing_region", local_var_param_value.to_string());
476 }
477 if let Some(local_var_param_value) = format_version {
478 local_var_form_params.insert("format_version", local_var_param_value.to_string());
479 }
480 if let Some(local_var_param_value) = user {
481 local_var_form_params.insert("user", local_var_param_value.to_string());
482 }
483 if let Some(local_var_param_value) = secret_key {
484 local_var_form_params.insert("secret_key", local_var_param_value.to_string());
485 }
486 if let Some(local_var_param_value) = account_name {
487 local_var_form_params.insert("account_name", local_var_param_value.to_string());
488 }
489 if let Some(local_var_param_value) = dataset {
490 local_var_form_params.insert("dataset", local_var_param_value.to_string());
491 }
492 if let Some(local_var_param_value) = table {
493 local_var_form_params.insert("table", local_var_param_value.to_string());
494 }
495 if let Some(local_var_param_value) = template_suffix {
496 local_var_form_params.insert("template_suffix", local_var_param_value.to_string());
497 }
498 if let Some(local_var_param_value) = project_id {
499 local_var_form_params.insert("project_id", local_var_param_value.to_string());
500 }
501 local_var_req_builder = local_var_req_builder.form(&local_var_form_params);
502
503 let local_var_req = local_var_req_builder.build()?;
504 let local_var_resp = local_var_client.execute(local_var_req).await?;
505
506 if "PUT" != "GET" && "PUT" != "HEAD" {
507 let headers = local_var_resp.headers();
508 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
509 Some(v) => v.to_str().unwrap().parse().unwrap(),
510 None => configuration::DEFAULT_RATELIMIT,
511 };
512 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
513 Some(v) => v.to_str().unwrap().parse().unwrap(),
514 None => 0,
515 };
516 }
517
518 let local_var_status = local_var_resp.status();
519 let local_var_content = local_var_resp.text().await?;
520
521 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
522 serde_json::from_str(&local_var_content).map_err(Error::from)
523 } else {
524 let local_var_entity: Option<UpdateLogBigqueryError> = serde_json::from_str(&local_var_content).ok();
525 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
526 Err(Error::ResponseError(local_var_error))
527 }
528}
529