1use reqwest;
10
11use crate::apis::ResponseContent;
12use super::{Error, configuration};
13
14#[derive(Clone, Debug, Default)]
16pub struct CreateAutomationTokenParams {
17 pub automation_token_create_request: Option<crate::models::AutomationTokenCreateRequest>
18}
19
20#[derive(Clone, Debug, Default)]
22pub struct GetAutomationTokenIdParams {
23 pub id: String
24}
25
26#[derive(Clone, Debug, Default)]
28pub struct GetAutomationTokensIdServicesParams {
29 pub id: String,
30 pub per_page: Option<i32>,
31 pub page: Option<i32>
32}
33
34#[derive(Clone, Debug, Default)]
36pub struct GetAutomationTokensIdWorkspacesParams {
37 pub id: String,
39 pub limit: Option<i32>,
41 pub cursor: Option<String>
43}
44
45#[derive(Clone, Debug, Default)]
47pub struct ListAutomationTokensParams {
48 pub per_page: Option<i32>,
49 pub page: Option<i32>
50}
51
52#[derive(Clone, Debug, Default)]
54pub struct RevokeAutomationTokenIdParams {
55 pub id: String
56}
57
58
59#[derive(Debug, Clone, Serialize, Deserialize)]
61#[serde(untagged)]
62pub enum CreateAutomationTokenError {
63 Status400(crate::models::AutomationTokenErrorResponse),
64 Status401(crate::models::AutomationTokenErrorResponse),
65 Status403(crate::models::AutomationTokenErrorResponse),
66 UnknownValue(serde_json::Value),
67}
68
69#[derive(Debug, Clone, Serialize, Deserialize)]
71#[serde(untagged)]
72pub enum GetAutomationTokenIdError {
73 Status401(crate::models::AutomationTokenErrorResponse),
74 Status403(crate::models::AutomationTokenErrorResponse),
75 UnknownValue(serde_json::Value),
76}
77
78#[derive(Debug, Clone, Serialize, Deserialize)]
80#[serde(untagged)]
81pub enum GetAutomationTokensIdServicesError {
82 Status401(crate::models::AutomationTokenErrorResponse),
83 Status403(crate::models::AutomationTokenErrorResponse),
84 UnknownValue(serde_json::Value),
85}
86
87#[derive(Debug, Clone, Serialize, Deserialize)]
89#[serde(untagged)]
90pub enum GetAutomationTokensIdWorkspacesError {
91 Status400(crate::models::AutomationTokenUnversionedErrorResponse),
92 Status403(crate::models::AutomationTokenUnversionedErrorResponse),
93 Status404(crate::models::AutomationTokenUnversionedErrorResponse),
94 UnknownValue(serde_json::Value),
95}
96
97#[derive(Debug, Clone, Serialize, Deserialize)]
99#[serde(untagged)]
100pub enum ListAutomationTokensError {
101 Status401(crate::models::AutomationTokenErrorResponse),
102 Status403(crate::models::AutomationTokenErrorResponse),
103 UnknownValue(serde_json::Value),
104}
105
106#[derive(Debug, Clone, Serialize, Deserialize)]
108#[serde(untagged)]
109pub enum RevokeAutomationTokenIdError {
110 Status400(crate::models::AutomationTokenErrorResponse),
111 Status401(crate::models::AutomationTokenErrorResponse),
112 Status403(crate::models::AutomationTokenErrorResponse),
113 Status404(crate::models::AutomationTokenErrorResponse),
114 UnknownValue(serde_json::Value),
115}
116
117
118pub async fn create_automation_token(configuration: &mut configuration::Configuration, params: CreateAutomationTokenParams) -> Result<crate::models::AutomationTokenCreateResponse, Error<CreateAutomationTokenError>> {
120 let local_var_configuration = configuration;
121
122 let automation_token_create_request = params.automation_token_create_request;
124
125
126 let local_var_client = &local_var_configuration.client;
127
128 let local_var_uri_str = format!("{}/automation-tokens", local_var_configuration.base_path);
129 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
130
131 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
132 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
133 }
134 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
135 let local_var_key = local_var_apikey.key.clone();
136 let local_var_value = match local_var_apikey.prefix {
137 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
138 None => local_var_key,
139 };
140 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
141 };
142 local_var_req_builder = local_var_req_builder.json(&automation_token_create_request);
143
144 let local_var_req = local_var_req_builder.build()?;
145 let local_var_resp = local_var_client.execute(local_var_req).await?;
146
147 if "POST" != "GET" && "POST" != "HEAD" {
148 let headers = local_var_resp.headers();
149 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
150 Some(v) => v.to_str().unwrap().parse().unwrap(),
151 None => configuration::DEFAULT_RATELIMIT,
152 };
153 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
154 Some(v) => v.to_str().unwrap().parse().unwrap(),
155 None => 0,
156 };
157 }
158
159 let local_var_status = local_var_resp.status();
160 let local_var_content = local_var_resp.text().await?;
161
162 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
163 serde_json::from_str(&local_var_content).map_err(Error::from)
164 } else {
165 let local_var_entity: Option<CreateAutomationTokenError> = serde_json::from_str(&local_var_content).ok();
166 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
167 Err(Error::ResponseError(local_var_error))
168 }
169}
170
171pub async fn get_automation_token_id(configuration: &mut configuration::Configuration, params: GetAutomationTokenIdParams) -> Result<crate::models::AutomationTokenResponse, Error<GetAutomationTokenIdError>> {
173 let local_var_configuration = configuration;
174
175 let id = params.id;
177
178
179 let local_var_client = &local_var_configuration.client;
180
181 let local_var_uri_str = format!("{}/automation-tokens/{id}", local_var_configuration.base_path, id=crate::apis::urlencode(id));
182 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
183
184 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
185 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
186 }
187 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
188 let local_var_key = local_var_apikey.key.clone();
189 let local_var_value = match local_var_apikey.prefix {
190 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
191 None => local_var_key,
192 };
193 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
194 };
195
196 let local_var_req = local_var_req_builder.build()?;
197 let local_var_resp = local_var_client.execute(local_var_req).await?;
198
199 if "GET" != "GET" && "GET" != "HEAD" {
200 let headers = local_var_resp.headers();
201 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
202 Some(v) => v.to_str().unwrap().parse().unwrap(),
203 None => configuration::DEFAULT_RATELIMIT,
204 };
205 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
206 Some(v) => v.to_str().unwrap().parse().unwrap(),
207 None => 0,
208 };
209 }
210
211 let local_var_status = local_var_resp.status();
212 let local_var_content = local_var_resp.text().await?;
213
214 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
215 serde_json::from_str(&local_var_content).map_err(Error::from)
216 } else {
217 let local_var_entity: Option<GetAutomationTokenIdError> = serde_json::from_str(&local_var_content).ok();
218 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
219 Err(Error::ResponseError(local_var_error))
220 }
221}
222
223pub async fn get_automation_tokens_id_services(configuration: &mut configuration::Configuration, params: GetAutomationTokensIdServicesParams) -> Result<crate::models::InlineResponse2004, Error<GetAutomationTokensIdServicesError>> {
225 let local_var_configuration = configuration;
226
227 let id = params.id;
229 let per_page = params.per_page;
230 let page = params.page;
231
232
233 let local_var_client = &local_var_configuration.client;
234
235 let local_var_uri_str = format!("{}/automation-tokens/{id}/services", local_var_configuration.base_path, id=crate::apis::urlencode(id));
236 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
237
238 if let Some(ref local_var_str) = per_page {
239 local_var_req_builder = local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
240 }
241 if let Some(ref local_var_str) = page {
242 local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
243 }
244 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
245 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
246 }
247 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
248 let local_var_key = local_var_apikey.key.clone();
249 let local_var_value = match local_var_apikey.prefix {
250 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
251 None => local_var_key,
252 };
253 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
254 };
255
256 let local_var_req = local_var_req_builder.build()?;
257 let local_var_resp = local_var_client.execute(local_var_req).await?;
258
259 if "GET" != "GET" && "GET" != "HEAD" {
260 let headers = local_var_resp.headers();
261 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
262 Some(v) => v.to_str().unwrap().parse().unwrap(),
263 None => configuration::DEFAULT_RATELIMIT,
264 };
265 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
266 Some(v) => v.to_str().unwrap().parse().unwrap(),
267 None => 0,
268 };
269 }
270
271 let local_var_status = local_var_resp.status();
272 let local_var_content = local_var_resp.text().await?;
273
274 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
275 serde_json::from_str(&local_var_content).map_err(Error::from)
276 } else {
277 let local_var_entity: Option<GetAutomationTokensIdServicesError> = serde_json::from_str(&local_var_content).ok();
278 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
279 Err(Error::ResponseError(local_var_error))
280 }
281}
282
283pub async fn get_automation_tokens_id_workspaces(configuration: &mut configuration::Configuration, params: GetAutomationTokensIdWorkspacesParams) -> Result<crate::models::AutomationTokenWorkspacesResponse, Error<GetAutomationTokensIdWorkspacesError>> {
285 let local_var_configuration = configuration;
286
287 let id = params.id;
289 let limit = params.limit;
290 let cursor = params.cursor;
291
292
293 let local_var_client = &local_var_configuration.client;
294
295 let local_var_uri_str = format!("{}/automation-tokens/{id}/workspaces", local_var_configuration.base_path, id=crate::apis::urlencode(id));
296 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
297
298 if let Some(ref local_var_str) = limit {
299 local_var_req_builder = local_var_req_builder.query(&[("limit", &local_var_str.to_string())]);
300 }
301 if let Some(ref local_var_str) = cursor {
302 local_var_req_builder = local_var_req_builder.query(&[("cursor", &local_var_str.to_string())]);
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 "GET" != "GET" && "GET" != "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<GetAutomationTokensIdWorkspacesError> = 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 list_automation_tokens(configuration: &mut configuration::Configuration, params: ListAutomationTokensParams) -> Result<Vec<crate::models::AutomationTokenResponse>, Error<ListAutomationTokensError>> {
345 let local_var_configuration = configuration;
346
347 let per_page = params.per_page;
349 let page = params.page;
350
351
352 let local_var_client = &local_var_configuration.client;
353
354 let local_var_uri_str = format!("{}/automation-tokens", local_var_configuration.base_path);
355 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
356
357 if let Some(ref local_var_str) = per_page {
358 local_var_req_builder = local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
359 }
360 if let Some(ref local_var_str) = page {
361 local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
362 }
363 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
364 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
365 }
366 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
367 let local_var_key = local_var_apikey.key.clone();
368 let local_var_value = match local_var_apikey.prefix {
369 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
370 None => local_var_key,
371 };
372 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
373 };
374
375 let local_var_req = local_var_req_builder.build()?;
376 let local_var_resp = local_var_client.execute(local_var_req).await?;
377
378 if "GET" != "GET" && "GET" != "HEAD" {
379 let headers = local_var_resp.headers();
380 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
381 Some(v) => v.to_str().unwrap().parse().unwrap(),
382 None => configuration::DEFAULT_RATELIMIT,
383 };
384 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
385 Some(v) => v.to_str().unwrap().parse().unwrap(),
386 None => 0,
387 };
388 }
389
390 let local_var_status = local_var_resp.status();
391 let local_var_content = local_var_resp.text().await?;
392
393 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
394 serde_json::from_str(&local_var_content).map_err(Error::from)
395 } else {
396 let local_var_entity: Option<ListAutomationTokensError> = serde_json::from_str(&local_var_content).ok();
397 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
398 Err(Error::ResponseError(local_var_error))
399 }
400}
401
402pub async fn revoke_automation_token_id(configuration: &mut configuration::Configuration, params: RevokeAutomationTokenIdParams) -> Result<crate::models::AutomationTokenErrorResponse, Error<RevokeAutomationTokenIdError>> {
404 let local_var_configuration = configuration;
405
406 let id = params.id;
408
409
410 let local_var_client = &local_var_configuration.client;
411
412 let local_var_uri_str = format!("{}/automation-tokens/{id}", local_var_configuration.base_path, id=crate::apis::urlencode(id));
413 let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
414
415 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
416 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
417 }
418 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
419 let local_var_key = local_var_apikey.key.clone();
420 let local_var_value = match local_var_apikey.prefix {
421 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
422 None => local_var_key,
423 };
424 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
425 };
426
427 let local_var_req = local_var_req_builder.build()?;
428 let local_var_resp = local_var_client.execute(local_var_req).await?;
429
430 if "DELETE" != "GET" && "DELETE" != "HEAD" {
431 let headers = local_var_resp.headers();
432 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
433 Some(v) => v.to_str().unwrap().parse().unwrap(),
434 None => configuration::DEFAULT_RATELIMIT,
435 };
436 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
437 Some(v) => v.to_str().unwrap().parse().unwrap(),
438 None => 0,
439 };
440 }
441
442 let local_var_status = local_var_resp.status();
443 let local_var_content = local_var_resp.text().await?;
444
445 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
446 serde_json::from_str(&local_var_content).map_err(Error::from)
447 } else {
448 let local_var_entity: Option<RevokeAutomationTokenIdError> = serde_json::from_str(&local_var_content).ok();
449 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
450 Err(Error::ResponseError(local_var_error))
451 }
452}
453