1use reqwest;
10
11use crate::apis::ResponseContent;
12use super::{Error, configuration};
13
14#[derive(Clone, Debug, Default)]
16pub struct CreateResponseObjectParams {
17 pub service_id: String,
19 pub version_id: i32,
21 pub create_response_object_request: Option<crate::models::CreateResponseObjectRequest>
22}
23
24#[derive(Clone, Debug, Default)]
26pub struct DeleteResponseObjectParams {
27 pub service_id: String,
29 pub version_id: i32,
31 pub response_object_name: String
33}
34
35#[derive(Clone, Debug, Default)]
37pub struct GetResponseObjectParams {
38 pub service_id: String,
40 pub version_id: i32,
42 pub response_object_name: String
44}
45
46#[derive(Clone, Debug, Default)]
48pub struct ListResponseObjectsParams {
49 pub service_id: String,
51 pub version_id: i32
53}
54
55#[derive(Clone, Debug, Default)]
57pub struct UpdateResponseObjectParams {
58 pub service_id: String,
60 pub version_id: i32,
62 pub response_object_name: String,
64 pub create_response_object_request: Option<crate::models::CreateResponseObjectRequest>
65}
66
67
68#[derive(Debug, Clone, Serialize, Deserialize)]
70#[serde(untagged)]
71pub enum CreateResponseObjectError {
72 Status400(),
73 Status404(),
74 UnknownValue(serde_json::Value),
75}
76
77#[derive(Debug, Clone, Serialize, Deserialize)]
79#[serde(untagged)]
80pub enum DeleteResponseObjectError {
81 UnknownValue(serde_json::Value),
82}
83
84#[derive(Debug, Clone, Serialize, Deserialize)]
86#[serde(untagged)]
87pub enum GetResponseObjectError {
88 UnknownValue(serde_json::Value),
89}
90
91#[derive(Debug, Clone, Serialize, Deserialize)]
93#[serde(untagged)]
94pub enum ListResponseObjectsError {
95 UnknownValue(serde_json::Value),
96}
97
98#[derive(Debug, Clone, Serialize, Deserialize)]
100#[serde(untagged)]
101pub enum UpdateResponseObjectError {
102 Status400(),
103 Status404(),
104 UnknownValue(serde_json::Value),
105}
106
107
108pub async fn create_response_object(configuration: &mut configuration::Configuration, params: CreateResponseObjectParams) -> Result<crate::models::ResponseObjectResponse, Error<CreateResponseObjectError>> {
110 let local_var_configuration = configuration;
111
112 let service_id = params.service_id;
114 let version_id = params.version_id;
115 let create_response_object_request = params.create_response_object_request;
116
117
118 let local_var_client = &local_var_configuration.client;
119
120 let local_var_uri_str = format!("{}/service/{service_id}/version/{version_id}/response_object", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id);
121 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
122
123 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
124 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
125 }
126 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
127 let local_var_key = local_var_apikey.key.clone();
128 let local_var_value = match local_var_apikey.prefix {
129 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
130 None => local_var_key,
131 };
132 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
133 };
134 local_var_req_builder = local_var_req_builder.json(&create_response_object_request);
135
136 let local_var_req = local_var_req_builder.build()?;
137 let local_var_resp = local_var_client.execute(local_var_req).await?;
138
139 if "POST" != "GET" && "POST" != "HEAD" {
140 let headers = local_var_resp.headers();
141 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
142 Some(v) => v.to_str().unwrap().parse().unwrap(),
143 None => configuration::DEFAULT_RATELIMIT,
144 };
145 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
146 Some(v) => v.to_str().unwrap().parse().unwrap(),
147 None => 0,
148 };
149 }
150
151 let local_var_status = local_var_resp.status();
152 let local_var_content = local_var_resp.text().await?;
153
154 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
155 serde_json::from_str(&local_var_content).map_err(Error::from)
156 } else {
157 let local_var_entity: Option<CreateResponseObjectError> = serde_json::from_str(&local_var_content).ok();
158 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
159 Err(Error::ResponseError(local_var_error))
160 }
161}
162
163pub async fn delete_response_object(configuration: &mut configuration::Configuration, params: DeleteResponseObjectParams) -> Result<crate::models::InlineResponse200, Error<DeleteResponseObjectError>> {
165 let local_var_configuration = configuration;
166
167 let service_id = params.service_id;
169 let version_id = params.version_id;
170 let response_object_name = params.response_object_name;
171
172
173 let local_var_client = &local_var_configuration.client;
174
175 let local_var_uri_str = format!("{}/service/{service_id}/version/{version_id}/response_object/{response_object_name}", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id, response_object_name=crate::apis::urlencode(response_object_name));
176 let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
177
178 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
179 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
180 }
181 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
182 let local_var_key = local_var_apikey.key.clone();
183 let local_var_value = match local_var_apikey.prefix {
184 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
185 None => local_var_key,
186 };
187 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
188 };
189
190 let local_var_req = local_var_req_builder.build()?;
191 let local_var_resp = local_var_client.execute(local_var_req).await?;
192
193 if "DELETE" != "GET" && "DELETE" != "HEAD" {
194 let headers = local_var_resp.headers();
195 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
196 Some(v) => v.to_str().unwrap().parse().unwrap(),
197 None => configuration::DEFAULT_RATELIMIT,
198 };
199 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
200 Some(v) => v.to_str().unwrap().parse().unwrap(),
201 None => 0,
202 };
203 }
204
205 let local_var_status = local_var_resp.status();
206 let local_var_content = local_var_resp.text().await?;
207
208 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
209 serde_json::from_str(&local_var_content).map_err(Error::from)
210 } else {
211 let local_var_entity: Option<DeleteResponseObjectError> = serde_json::from_str(&local_var_content).ok();
212 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
213 Err(Error::ResponseError(local_var_error))
214 }
215}
216
217pub async fn get_response_object(configuration: &mut configuration::Configuration, params: GetResponseObjectParams) -> Result<crate::models::ResponseObjectResponse, Error<GetResponseObjectError>> {
219 let local_var_configuration = configuration;
220
221 let service_id = params.service_id;
223 let version_id = params.version_id;
224 let response_object_name = params.response_object_name;
225
226
227 let local_var_client = &local_var_configuration.client;
228
229 let local_var_uri_str = format!("{}/service/{service_id}/version/{version_id}/response_object/{response_object_name}", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id, response_object_name=crate::apis::urlencode(response_object_name));
230 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
231
232 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
233 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
234 }
235 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
236 let local_var_key = local_var_apikey.key.clone();
237 let local_var_value = match local_var_apikey.prefix {
238 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
239 None => local_var_key,
240 };
241 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
242 };
243
244 let local_var_req = local_var_req_builder.build()?;
245 let local_var_resp = local_var_client.execute(local_var_req).await?;
246
247 if "GET" != "GET" && "GET" != "HEAD" {
248 let headers = local_var_resp.headers();
249 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
250 Some(v) => v.to_str().unwrap().parse().unwrap(),
251 None => configuration::DEFAULT_RATELIMIT,
252 };
253 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
254 Some(v) => v.to_str().unwrap().parse().unwrap(),
255 None => 0,
256 };
257 }
258
259 let local_var_status = local_var_resp.status();
260 let local_var_content = local_var_resp.text().await?;
261
262 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
263 serde_json::from_str(&local_var_content).map_err(Error::from)
264 } else {
265 let local_var_entity: Option<GetResponseObjectError> = serde_json::from_str(&local_var_content).ok();
266 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
267 Err(Error::ResponseError(local_var_error))
268 }
269}
270
271pub async fn list_response_objects(configuration: &mut configuration::Configuration, params: ListResponseObjectsParams) -> Result<Vec<crate::models::ResponseObjectResponse>, Error<ListResponseObjectsError>> {
273 let local_var_configuration = configuration;
274
275 let service_id = params.service_id;
277 let version_id = params.version_id;
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}/response_object", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id);
283 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, 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 "GET" != "GET" && "GET" != "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<ListResponseObjectsError> = 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 update_response_object(configuration: &mut configuration::Configuration, params: UpdateResponseObjectParams) -> Result<crate::models::ResponseObjectResponse, Error<UpdateResponseObjectError>> {
326 let local_var_configuration = configuration;
327
328 let service_id = params.service_id;
330 let version_id = params.version_id;
331 let response_object_name = params.response_object_name;
332 let create_response_object_request = params.create_response_object_request;
333
334
335 let local_var_client = &local_var_configuration.client;
336
337 let local_var_uri_str = format!("{}/service/{service_id}/version/{version_id}/response_object/{response_object_name}", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id, response_object_name=crate::apis::urlencode(response_object_name));
338 let mut local_var_req_builder = local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
339
340 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
341 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
342 }
343 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
344 let local_var_key = local_var_apikey.key.clone();
345 let local_var_value = match local_var_apikey.prefix {
346 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
347 None => local_var_key,
348 };
349 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
350 };
351 local_var_req_builder = local_var_req_builder.json(&create_response_object_request);
352
353 let local_var_req = local_var_req_builder.build()?;
354 let local_var_resp = local_var_client.execute(local_var_req).await?;
355
356 if "PUT" != "GET" && "PUT" != "HEAD" {
357 let headers = local_var_resp.headers();
358 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
359 Some(v) => v.to_str().unwrap().parse().unwrap(),
360 None => configuration::DEFAULT_RATELIMIT,
361 };
362 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
363 Some(v) => v.to_str().unwrap().parse().unwrap(),
364 None => 0,
365 };
366 }
367
368 let local_var_status = local_var_resp.status();
369 let local_var_content = local_var_resp.text().await?;
370
371 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
372 serde_json::from_str(&local_var_content).map_err(Error::from)
373 } else {
374 let local_var_entity: Option<UpdateResponseObjectError> = serde_json::from_str(&local_var_content).ok();
375 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
376 Err(Error::ResponseError(local_var_error))
377 }
378}
379