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 ListAutomationTokensParams {
37 pub per_page: Option<i32>,
38 pub page: Option<i32>
39}
40
41#[derive(Clone, Debug, Default)]
43pub struct RevokeAutomationTokenIdParams {
44 pub id: String
45}
46
47
48#[derive(Debug, Clone, Serialize, Deserialize)]
50#[serde(untagged)]
51pub enum CreateAutomationTokenError {
52 Status400(),
53 Status422(),
54 UnknownValue(serde_json::Value),
55}
56
57#[derive(Debug, Clone, Serialize, Deserialize)]
59#[serde(untagged)]
60pub enum GetAutomationTokenIdError {
61 Status401(crate::models::AutomationTokenErrorResponse),
62 Status403(crate::models::AutomationTokenErrorResponse),
63 UnknownValue(serde_json::Value),
64}
65
66#[derive(Debug, Clone, Serialize, Deserialize)]
68#[serde(untagged)]
69pub enum GetAutomationTokensIdServicesError {
70 Status401(crate::models::AutomationTokenErrorResponse),
71 Status403(crate::models::AutomationTokenErrorResponse),
72 UnknownValue(serde_json::Value),
73}
74
75#[derive(Debug, Clone, Serialize, Deserialize)]
77#[serde(untagged)]
78pub enum ListAutomationTokensError {
79 Status401(crate::models::AutomationTokenErrorResponse),
80 Status403(crate::models::AutomationTokenErrorResponse),
81 UnknownValue(serde_json::Value),
82}
83
84#[derive(Debug, Clone, Serialize, Deserialize)]
86#[serde(untagged)]
87pub enum RevokeAutomationTokenIdError {
88 Status400(crate::models::AutomationTokenErrorResponse),
89 Status401(crate::models::AutomationTokenErrorResponse),
90 Status403(crate::models::AutomationTokenErrorResponse),
91 Status404(crate::models::AutomationTokenErrorResponse),
92 UnknownValue(serde_json::Value),
93}
94
95
96pub async fn create_automation_token(configuration: &mut configuration::Configuration, params: CreateAutomationTokenParams) -> Result<crate::models::AutomationTokenCreateResponse, Error<CreateAutomationTokenError>> {
98 let local_var_configuration = configuration;
99
100 let automation_token_create_request = params.automation_token_create_request;
102
103
104 let local_var_client = &local_var_configuration.client;
105
106 let local_var_uri_str = format!("{}/automation-tokens", local_var_configuration.base_path);
107 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
108
109 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
110 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
111 }
112 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
113 let local_var_key = local_var_apikey.key.clone();
114 let local_var_value = match local_var_apikey.prefix {
115 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
116 None => local_var_key,
117 };
118 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
119 };
120 local_var_req_builder = local_var_req_builder.json(&automation_token_create_request);
121
122 let local_var_req = local_var_req_builder.build()?;
123 let local_var_resp = local_var_client.execute(local_var_req).await?;
124
125 if "POST" != "GET" && "POST" != "HEAD" {
126 let headers = local_var_resp.headers();
127 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
128 Some(v) => v.to_str().unwrap().parse().unwrap(),
129 None => configuration::DEFAULT_RATELIMIT,
130 };
131 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
132 Some(v) => v.to_str().unwrap().parse().unwrap(),
133 None => 0,
134 };
135 }
136
137 let local_var_status = local_var_resp.status();
138 let local_var_content = local_var_resp.text().await?;
139
140 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
141 serde_json::from_str(&local_var_content).map_err(Error::from)
142 } else {
143 let local_var_entity: Option<CreateAutomationTokenError> = serde_json::from_str(&local_var_content).ok();
144 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
145 Err(Error::ResponseError(local_var_error))
146 }
147}
148
149pub async fn get_automation_token_id(configuration: &mut configuration::Configuration, params: GetAutomationTokenIdParams) -> Result<crate::models::AutomationTokenResponse, Error<GetAutomationTokenIdError>> {
151 let local_var_configuration = configuration;
152
153 let id = params.id;
155
156
157 let local_var_client = &local_var_configuration.client;
158
159 let local_var_uri_str = format!("{}/automation-tokens/{id}", local_var_configuration.base_path, id=crate::apis::urlencode(id));
160 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
161
162 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
163 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
164 }
165 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
166 let local_var_key = local_var_apikey.key.clone();
167 let local_var_value = match local_var_apikey.prefix {
168 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
169 None => local_var_key,
170 };
171 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
172 };
173
174 let local_var_req = local_var_req_builder.build()?;
175 let local_var_resp = local_var_client.execute(local_var_req).await?;
176
177 if "GET" != "GET" && "GET" != "HEAD" {
178 let headers = local_var_resp.headers();
179 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
180 Some(v) => v.to_str().unwrap().parse().unwrap(),
181 None => configuration::DEFAULT_RATELIMIT,
182 };
183 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
184 Some(v) => v.to_str().unwrap().parse().unwrap(),
185 None => 0,
186 };
187 }
188
189 let local_var_status = local_var_resp.status();
190 let local_var_content = local_var_resp.text().await?;
191
192 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
193 serde_json::from_str(&local_var_content).map_err(Error::from)
194 } else {
195 let local_var_entity: Option<GetAutomationTokenIdError> = serde_json::from_str(&local_var_content).ok();
196 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
197 Err(Error::ResponseError(local_var_error))
198 }
199}
200
201pub async fn get_automation_tokens_id_services(configuration: &mut configuration::Configuration, params: GetAutomationTokensIdServicesParams) -> Result<crate::models::InlineResponse2001, Error<GetAutomationTokensIdServicesError>> {
203 let local_var_configuration = configuration;
204
205 let id = params.id;
207 let per_page = params.per_page;
208 let page = params.page;
209
210
211 let local_var_client = &local_var_configuration.client;
212
213 let local_var_uri_str = format!("{}/automation-tokens/{id}/services", local_var_configuration.base_path, id=crate::apis::urlencode(id));
214 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
215
216 if let Some(ref local_var_str) = per_page {
217 local_var_req_builder = local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
218 }
219 if let Some(ref local_var_str) = page {
220 local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
221 }
222 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
223 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
224 }
225 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
226 let local_var_key = local_var_apikey.key.clone();
227 let local_var_value = match local_var_apikey.prefix {
228 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
229 None => local_var_key,
230 };
231 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
232 };
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 "GET" != "GET" && "GET" != "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<GetAutomationTokensIdServicesError> = 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 list_automation_tokens(configuration: &mut configuration::Configuration, params: ListAutomationTokensParams) -> Result<Vec<crate::models::AutomationTokenResponse>, Error<ListAutomationTokensError>> {
263 let local_var_configuration = configuration;
264
265 let per_page = params.per_page;
267 let page = params.page;
268
269
270 let local_var_client = &local_var_configuration.client;
271
272 let local_var_uri_str = format!("{}/automation-tokens", local_var_configuration.base_path);
273 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
274
275 if let Some(ref local_var_str) = per_page {
276 local_var_req_builder = local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
277 }
278 if let Some(ref local_var_str) = page {
279 local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
280 }
281 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
282 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
283 }
284 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
285 let local_var_key = local_var_apikey.key.clone();
286 let local_var_value = match local_var_apikey.prefix {
287 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
288 None => local_var_key,
289 };
290 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
291 };
292
293 let local_var_req = local_var_req_builder.build()?;
294 let local_var_resp = local_var_client.execute(local_var_req).await?;
295
296 if "GET" != "GET" && "GET" != "HEAD" {
297 let headers = local_var_resp.headers();
298 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
299 Some(v) => v.to_str().unwrap().parse().unwrap(),
300 None => configuration::DEFAULT_RATELIMIT,
301 };
302 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
303 Some(v) => v.to_str().unwrap().parse().unwrap(),
304 None => 0,
305 };
306 }
307
308 let local_var_status = local_var_resp.status();
309 let local_var_content = local_var_resp.text().await?;
310
311 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
312 serde_json::from_str(&local_var_content).map_err(Error::from)
313 } else {
314 let local_var_entity: Option<ListAutomationTokensError> = serde_json::from_str(&local_var_content).ok();
315 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
316 Err(Error::ResponseError(local_var_error))
317 }
318}
319
320pub async fn revoke_automation_token_id(configuration: &mut configuration::Configuration, params: RevokeAutomationTokenIdParams) -> Result<crate::models::AutomationTokenErrorResponse, Error<RevokeAutomationTokenIdError>> {
322 let local_var_configuration = configuration;
323
324 let id = params.id;
326
327
328 let local_var_client = &local_var_configuration.client;
329
330 let local_var_uri_str = format!("{}/automation-tokens/{id}", local_var_configuration.base_path, id=crate::apis::urlencode(id));
331 let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
332
333 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
334 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
335 }
336 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
337 let local_var_key = local_var_apikey.key.clone();
338 let local_var_value = match local_var_apikey.prefix {
339 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
340 None => local_var_key,
341 };
342 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
343 };
344
345 let local_var_req = local_var_req_builder.build()?;
346 let local_var_resp = local_var_client.execute(local_var_req).await?;
347
348 if "DELETE" != "GET" && "DELETE" != "HEAD" {
349 let headers = local_var_resp.headers();
350 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
351 Some(v) => v.to_str().unwrap().parse().unwrap(),
352 None => configuration::DEFAULT_RATELIMIT,
353 };
354 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
355 Some(v) => v.to_str().unwrap().parse().unwrap(),
356 None => 0,
357 };
358 }
359
360 let local_var_status = local_var_resp.status();
361 let local_var_content = local_var_resp.text().await?;
362
363 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
364 serde_json::from_str(&local_var_content).map_err(Error::from)
365 } else {
366 let local_var_entity: Option<RevokeAutomationTokenIdError> = serde_json::from_str(&local_var_content).ok();
367 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
368 Err(Error::ResponseError(local_var_error))
369 }
370}
371