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