1use reqwest;
10
11use crate::apis::ResponseContent;
12use super::{Error, configuration};
13
14#[derive(Clone, Debug, Default)]
16pub struct CreateDictionaryParams {
17 pub service_id: String,
19 pub version_id: i32,
21 pub name: Option<String>,
23 pub write_only: Option<bool>
25}
26
27#[derive(Clone, Debug, Default)]
29pub struct DeleteDictionaryParams {
30 pub service_id: String,
32 pub version_id: i32,
34 pub dictionary_name: String
36}
37
38#[derive(Clone, Debug, Default)]
40pub struct GetDictionaryParams {
41 pub service_id: String,
43 pub version_id: i32,
45 pub dictionary_name: String
47}
48
49#[derive(Clone, Debug, Default)]
51pub struct ListDictionariesParams {
52 pub service_id: String,
54 pub version_id: i32
56}
57
58#[derive(Clone, Debug, Default)]
60pub struct UpdateDictionaryParams {
61 pub service_id: String,
63 pub version_id: i32,
65 pub dictionary_name: String,
67 pub name: Option<String>,
69 pub write_only: Option<bool>
71}
72
73
74#[derive(Debug, Clone, Serialize, Deserialize)]
76#[serde(untagged)]
77pub enum CreateDictionaryError {
78 UnknownValue(serde_json::Value),
79}
80
81#[derive(Debug, Clone, Serialize, Deserialize)]
83#[serde(untagged)]
84pub enum DeleteDictionaryError {
85 UnknownValue(serde_json::Value),
86}
87
88#[derive(Debug, Clone, Serialize, Deserialize)]
90#[serde(untagged)]
91pub enum GetDictionaryError {
92 UnknownValue(serde_json::Value),
93}
94
95#[derive(Debug, Clone, Serialize, Deserialize)]
97#[serde(untagged)]
98pub enum ListDictionariesError {
99 UnknownValue(serde_json::Value),
100}
101
102#[derive(Debug, Clone, Serialize, Deserialize)]
104#[serde(untagged)]
105pub enum UpdateDictionaryError {
106 UnknownValue(serde_json::Value),
107}
108
109
110pub async fn create_dictionary(configuration: &mut configuration::Configuration, params: CreateDictionaryParams) -> Result<crate::models::DictionaryResponse, Error<CreateDictionaryError>> {
112 let local_var_configuration = configuration;
113
114 let service_id = params.service_id;
116 let version_id = params.version_id;
117 let name = params.name;
118 let write_only = params.write_only;
119
120
121 let local_var_client = &local_var_configuration.client;
122
123 let local_var_uri_str = format!("{}/service/{service_id}/version/{version_id}/dictionary", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id);
124 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
125
126 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
127 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
128 }
129 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
130 let local_var_key = local_var_apikey.key.clone();
131 let local_var_value = match local_var_apikey.prefix {
132 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
133 None => local_var_key,
134 };
135 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
136 };
137 let mut local_var_form_params = std::collections::HashMap::new();
138 if let Some(local_var_param_value) = name {
139 local_var_form_params.insert("name", local_var_param_value.to_string());
140 }
141 if let Some(local_var_param_value) = write_only {
142 local_var_form_params.insert("write_only", local_var_param_value.to_string());
143 }
144 local_var_req_builder = local_var_req_builder.form(&local_var_form_params);
145
146 let local_var_req = local_var_req_builder.build()?;
147 let local_var_resp = local_var_client.execute(local_var_req).await?;
148
149 if "POST" != "GET" && "POST" != "HEAD" {
150 let headers = local_var_resp.headers();
151 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
152 Some(v) => v.to_str().unwrap().parse().unwrap(),
153 None => configuration::DEFAULT_RATELIMIT,
154 };
155 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
156 Some(v) => v.to_str().unwrap().parse().unwrap(),
157 None => 0,
158 };
159 }
160
161 let local_var_status = local_var_resp.status();
162 let local_var_content = local_var_resp.text().await?;
163
164 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
165 serde_json::from_str(&local_var_content).map_err(Error::from)
166 } else {
167 let local_var_entity: Option<CreateDictionaryError> = serde_json::from_str(&local_var_content).ok();
168 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
169 Err(Error::ResponseError(local_var_error))
170 }
171}
172
173pub async fn delete_dictionary(configuration: &mut configuration::Configuration, params: DeleteDictionaryParams) -> Result<crate::models::InlineResponse200, Error<DeleteDictionaryError>> {
175 let local_var_configuration = configuration;
176
177 let service_id = params.service_id;
179 let version_id = params.version_id;
180 let dictionary_name = params.dictionary_name;
181
182
183 let local_var_client = &local_var_configuration.client;
184
185 let local_var_uri_str = format!("{}/service/{service_id}/version/{version_id}/dictionary/{dictionary_name}", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id, dictionary_name=crate::apis::urlencode(dictionary_name));
186 let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
187
188 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
189 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
190 }
191 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
192 let local_var_key = local_var_apikey.key.clone();
193 let local_var_value = match local_var_apikey.prefix {
194 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
195 None => local_var_key,
196 };
197 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
198 };
199
200 let local_var_req = local_var_req_builder.build()?;
201 let local_var_resp = local_var_client.execute(local_var_req).await?;
202
203 if "DELETE" != "GET" && "DELETE" != "HEAD" {
204 let headers = local_var_resp.headers();
205 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
206 Some(v) => v.to_str().unwrap().parse().unwrap(),
207 None => configuration::DEFAULT_RATELIMIT,
208 };
209 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
210 Some(v) => v.to_str().unwrap().parse().unwrap(),
211 None => 0,
212 };
213 }
214
215 let local_var_status = local_var_resp.status();
216 let local_var_content = local_var_resp.text().await?;
217
218 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
219 serde_json::from_str(&local_var_content).map_err(Error::from)
220 } else {
221 let local_var_entity: Option<DeleteDictionaryError> = serde_json::from_str(&local_var_content).ok();
222 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
223 Err(Error::ResponseError(local_var_error))
224 }
225}
226
227pub async fn get_dictionary(configuration: &mut configuration::Configuration, params: GetDictionaryParams) -> Result<crate::models::DictionaryResponse, Error<GetDictionaryError>> {
229 let local_var_configuration = configuration;
230
231 let service_id = params.service_id;
233 let version_id = params.version_id;
234 let dictionary_name = params.dictionary_name;
235
236
237 let local_var_client = &local_var_configuration.client;
238
239 let local_var_uri_str = format!("{}/service/{service_id}/version/{version_id}/dictionary/{dictionary_name}", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id, dictionary_name=crate::apis::urlencode(dictionary_name));
240 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
241
242 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
243 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
244 }
245 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
246 let local_var_key = local_var_apikey.key.clone();
247 let local_var_value = match local_var_apikey.prefix {
248 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
249 None => local_var_key,
250 };
251 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
252 };
253
254 let local_var_req = local_var_req_builder.build()?;
255 let local_var_resp = local_var_client.execute(local_var_req).await?;
256
257 if "GET" != "GET" && "GET" != "HEAD" {
258 let headers = local_var_resp.headers();
259 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
260 Some(v) => v.to_str().unwrap().parse().unwrap(),
261 None => configuration::DEFAULT_RATELIMIT,
262 };
263 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
264 Some(v) => v.to_str().unwrap().parse().unwrap(),
265 None => 0,
266 };
267 }
268
269 let local_var_status = local_var_resp.status();
270 let local_var_content = local_var_resp.text().await?;
271
272 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
273 serde_json::from_str(&local_var_content).map_err(Error::from)
274 } else {
275 let local_var_entity: Option<GetDictionaryError> = serde_json::from_str(&local_var_content).ok();
276 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
277 Err(Error::ResponseError(local_var_error))
278 }
279}
280
281pub async fn list_dictionaries(configuration: &mut configuration::Configuration, params: ListDictionariesParams) -> Result<Vec<crate::models::DictionaryResponse>, Error<ListDictionariesError>> {
283 let local_var_configuration = configuration;
284
285 let service_id = params.service_id;
287 let version_id = params.version_id;
288
289
290 let local_var_client = &local_var_configuration.client;
291
292 let local_var_uri_str = format!("{}/service/{service_id}/version/{version_id}/dictionary", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id);
293 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
294
295 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
296 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
297 }
298 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
299 let local_var_key = local_var_apikey.key.clone();
300 let local_var_value = match local_var_apikey.prefix {
301 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
302 None => local_var_key,
303 };
304 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
305 };
306
307 let local_var_req = local_var_req_builder.build()?;
308 let local_var_resp = local_var_client.execute(local_var_req).await?;
309
310 if "GET" != "GET" && "GET" != "HEAD" {
311 let headers = local_var_resp.headers();
312 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
313 Some(v) => v.to_str().unwrap().parse().unwrap(),
314 None => configuration::DEFAULT_RATELIMIT,
315 };
316 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
317 Some(v) => v.to_str().unwrap().parse().unwrap(),
318 None => 0,
319 };
320 }
321
322 let local_var_status = local_var_resp.status();
323 let local_var_content = local_var_resp.text().await?;
324
325 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
326 serde_json::from_str(&local_var_content).map_err(Error::from)
327 } else {
328 let local_var_entity: Option<ListDictionariesError> = serde_json::from_str(&local_var_content).ok();
329 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
330 Err(Error::ResponseError(local_var_error))
331 }
332}
333
334pub async fn update_dictionary(configuration: &mut configuration::Configuration, params: UpdateDictionaryParams) -> Result<crate::models::DictionaryResponse, Error<UpdateDictionaryError>> {
336 let local_var_configuration = configuration;
337
338 let service_id = params.service_id;
340 let version_id = params.version_id;
341 let dictionary_name = params.dictionary_name;
342 let name = params.name;
343 let write_only = params.write_only;
344
345
346 let local_var_client = &local_var_configuration.client;
347
348 let local_var_uri_str = format!("{}/service/{service_id}/version/{version_id}/dictionary/{dictionary_name}", local_var_configuration.base_path, service_id=crate::apis::urlencode(service_id), version_id=version_id, dictionary_name=crate::apis::urlencode(dictionary_name));
349 let mut local_var_req_builder = local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
350
351 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
352 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
353 }
354 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
355 let local_var_key = local_var_apikey.key.clone();
356 let local_var_value = match local_var_apikey.prefix {
357 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
358 None => local_var_key,
359 };
360 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
361 };
362 let mut local_var_form_params = std::collections::HashMap::new();
363 if let Some(local_var_param_value) = name {
364 local_var_form_params.insert("name", local_var_param_value.to_string());
365 }
366 if let Some(local_var_param_value) = write_only {
367 local_var_form_params.insert("write_only", local_var_param_value.to_string());
368 }
369 local_var_req_builder = local_var_req_builder.form(&local_var_form_params);
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 "PUT" != "GET" && "PUT" != "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<UpdateDictionaryError> = 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