1use reqwest;
10
11use crate::apis::ResponseContent;
12use super::{Error, configuration};
13
14#[derive(Clone, Debug, Default)]
16pub struct CreateDmDomainParams {
17 pub request_body_for_create: Option<crate::models::RequestBodyForCreate>
18}
19
20#[derive(Clone, Debug, Default)]
22pub struct DeleteDmDomainParams {
23 pub domain_id: String
24}
25
26#[derive(Clone, Debug, Default)]
28pub struct GetDmDomainParams {
29 pub domain_id: String
30}
31
32#[derive(Clone, Debug, Default)]
34pub struct ListDmDomainsParams {
35 pub fqdn: Option<String>,
36 pub fqdn_match: Option<String>,
38 pub service_id: Option<String>,
40 pub sort: Option<String>,
42 pub activated: Option<bool>,
43 pub verified: Option<bool>,
44 pub cursor: Option<String>,
46 pub limit: Option<i32>
48}
49
50#[derive(Clone, Debug, Default)]
52pub struct UpdateDmDomainParams {
53 pub domain_id: String,
54 pub request_body_for_update: Option<crate::models::RequestBodyForUpdate>
55}
56
57
58#[derive(Debug, Clone, Serialize, Deserialize)]
60#[serde(untagged)]
61pub enum CreateDmDomainError {
62 UnknownValue(serde_json::Value),
63}
64
65#[derive(Debug, Clone, Serialize, Deserialize)]
67#[serde(untagged)]
68pub enum DeleteDmDomainError {
69 UnknownValue(serde_json::Value),
70}
71
72#[derive(Debug, Clone, Serialize, Deserialize)]
74#[serde(untagged)]
75pub enum GetDmDomainError {
76 UnknownValue(serde_json::Value),
77}
78
79#[derive(Debug, Clone, Serialize, Deserialize)]
81#[serde(untagged)]
82pub enum ListDmDomainsError {
83 UnknownValue(serde_json::Value),
84}
85
86#[derive(Debug, Clone, Serialize, Deserialize)]
88#[serde(untagged)]
89pub enum UpdateDmDomainError {
90 UnknownValue(serde_json::Value),
91}
92
93
94pub async fn create_dm_domain(configuration: &mut configuration::Configuration, params: CreateDmDomainParams) -> Result<crate::models::SuccessfulResponseAsObject, Error<CreateDmDomainError>> {
96 let local_var_configuration = configuration;
97
98 let request_body_for_create = params.request_body_for_create;
100
101
102 let local_var_client = &local_var_configuration.client;
103
104 let local_var_uri_str = format!("{}/domain-management/v1/domains", local_var_configuration.base_path);
105 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
106
107 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
108 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
109 }
110 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
111 let local_var_key = local_var_apikey.key.clone();
112 let local_var_value = match local_var_apikey.prefix {
113 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
114 None => local_var_key,
115 };
116 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
117 };
118 local_var_req_builder = local_var_req_builder.json(&request_body_for_create);
119
120 let local_var_req = local_var_req_builder.build()?;
121 let local_var_resp = local_var_client.execute(local_var_req).await?;
122
123 if "POST" != "GET" && "POST" != "HEAD" {
124 let headers = local_var_resp.headers();
125 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
126 Some(v) => v.to_str().unwrap().parse().unwrap(),
127 None => configuration::DEFAULT_RATELIMIT,
128 };
129 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
130 Some(v) => v.to_str().unwrap().parse().unwrap(),
131 None => 0,
132 };
133 }
134
135 let local_var_status = local_var_resp.status();
136 let local_var_content = local_var_resp.text().await?;
137
138 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
139 serde_json::from_str(&local_var_content).map_err(Error::from)
140 } else {
141 let local_var_entity: Option<CreateDmDomainError> = serde_json::from_str(&local_var_content).ok();
142 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
143 Err(Error::ResponseError(local_var_error))
144 }
145}
146
147pub async fn delete_dm_domain(configuration: &mut configuration::Configuration, params: DeleteDmDomainParams) -> Result<(), Error<DeleteDmDomainError>> {
149 let local_var_configuration = configuration;
150
151 let domain_id = params.domain_id;
153
154
155 let local_var_client = &local_var_configuration.client;
156
157 let local_var_uri_str = format!("{}/domain-management/v1/domains/{domain_id}", local_var_configuration.base_path, domain_id=crate::apis::urlencode(domain_id));
158 let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
159
160 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
161 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
162 }
163 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
164 let local_var_key = local_var_apikey.key.clone();
165 let local_var_value = match local_var_apikey.prefix {
166 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
167 None => local_var_key,
168 };
169 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
170 };
171
172 let local_var_req = local_var_req_builder.build()?;
173 let local_var_resp = local_var_client.execute(local_var_req).await?;
174
175 if "DELETE" != "GET" && "DELETE" != "HEAD" {
176 let headers = local_var_resp.headers();
177 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
178 Some(v) => v.to_str().unwrap().parse().unwrap(),
179 None => configuration::DEFAULT_RATELIMIT,
180 };
181 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
182 Some(v) => v.to_str().unwrap().parse().unwrap(),
183 None => 0,
184 };
185 }
186
187 let local_var_status = local_var_resp.status();
188 let local_var_content = local_var_resp.text().await?;
189
190 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
191 Ok(())
192 } else {
193 let local_var_entity: Option<DeleteDmDomainError> = serde_json::from_str(&local_var_content).ok();
194 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
195 Err(Error::ResponseError(local_var_error))
196 }
197}
198
199pub async fn get_dm_domain(configuration: &mut configuration::Configuration, params: GetDmDomainParams) -> Result<crate::models::SuccessfulResponseAsObject, Error<GetDmDomainError>> {
201 let local_var_configuration = configuration;
202
203 let domain_id = params.domain_id;
205
206
207 let local_var_client = &local_var_configuration.client;
208
209 let local_var_uri_str = format!("{}/domain-management/v1/domains/{domain_id}", local_var_configuration.base_path, domain_id=crate::apis::urlencode(domain_id));
210 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
211
212 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
213 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
214 }
215 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
216 let local_var_key = local_var_apikey.key.clone();
217 let local_var_value = match local_var_apikey.prefix {
218 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
219 None => local_var_key,
220 };
221 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
222 };
223
224 let local_var_req = local_var_req_builder.build()?;
225 let local_var_resp = local_var_client.execute(local_var_req).await?;
226
227 if "GET" != "GET" && "GET" != "HEAD" {
228 let headers = local_var_resp.headers();
229 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
230 Some(v) => v.to_str().unwrap().parse().unwrap(),
231 None => configuration::DEFAULT_RATELIMIT,
232 };
233 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
234 Some(v) => v.to_str().unwrap().parse().unwrap(),
235 None => 0,
236 };
237 }
238
239 let local_var_status = local_var_resp.status();
240 let local_var_content = local_var_resp.text().await?;
241
242 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
243 serde_json::from_str(&local_var_content).map_err(Error::from)
244 } else {
245 let local_var_entity: Option<GetDmDomainError> = serde_json::from_str(&local_var_content).ok();
246 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
247 Err(Error::ResponseError(local_var_error))
248 }
249}
250
251pub async fn list_dm_domains(configuration: &mut configuration::Configuration, params: ListDmDomainsParams) -> Result<crate::models::InlineResponse2007, Error<ListDmDomainsError>> {
253 let local_var_configuration = configuration;
254
255 let fqdn = params.fqdn;
257 let fqdn_match = params.fqdn_match;
258 let service_id = params.service_id;
259 let sort = params.sort;
260 let activated = params.activated;
261 let verified = params.verified;
262 let cursor = params.cursor;
263 let limit = params.limit;
264
265
266 let local_var_client = &local_var_configuration.client;
267
268 let local_var_uri_str = format!("{}/domain-management/v1/domains", local_var_configuration.base_path);
269 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
270
271 if let Some(ref local_var_str) = fqdn {
272 local_var_req_builder = local_var_req_builder.query(&[("fqdn", &local_var_str.to_string())]);
273 }
274 if let Some(ref local_var_str) = fqdn_match {
275 local_var_req_builder = local_var_req_builder.query(&[("fqdn_match", &local_var_str.to_string())]);
276 }
277 if let Some(ref local_var_str) = service_id {
278 local_var_req_builder = local_var_req_builder.query(&[("service_id", &local_var_str.to_string())]);
279 }
280 if let Some(ref local_var_str) = sort {
281 local_var_req_builder = local_var_req_builder.query(&[("sort", &local_var_str.to_string())]);
282 }
283 if let Some(ref local_var_str) = activated {
284 local_var_req_builder = local_var_req_builder.query(&[("activated", &local_var_str.to_string())]);
285 }
286 if let Some(ref local_var_str) = verified {
287 local_var_req_builder = local_var_req_builder.query(&[("verified", &local_var_str.to_string())]);
288 }
289 if let Some(ref local_var_str) = cursor {
290 local_var_req_builder = local_var_req_builder.query(&[("cursor", &local_var_str.to_string())]);
291 }
292 if let Some(ref local_var_str) = limit {
293 local_var_req_builder = local_var_req_builder.query(&[("limit", &local_var_str.to_string())]);
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<ListDmDomainsError> = 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_dm_domain(configuration: &mut configuration::Configuration, params: UpdateDmDomainParams) -> Result<crate::models::SuccessfulResponseAsObject, Error<UpdateDmDomainError>> {
336 let local_var_configuration = configuration;
337
338 let domain_id = params.domain_id;
340 let request_body_for_update = params.request_body_for_update;
341
342
343 let local_var_client = &local_var_configuration.client;
344
345 let local_var_uri_str = format!("{}/domain-management/v1/domains/{domain_id}", local_var_configuration.base_path, domain_id=crate::apis::urlencode(domain_id));
346 let mut local_var_req_builder = local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
347
348 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
349 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
350 }
351 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
352 let local_var_key = local_var_apikey.key.clone();
353 let local_var_value = match local_var_apikey.prefix {
354 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
355 None => local_var_key,
356 };
357 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
358 };
359 local_var_req_builder = local_var_req_builder.json(&request_body_for_update);
360
361 let local_var_req = local_var_req_builder.build()?;
362 let local_var_resp = local_var_client.execute(local_var_req).await?;
363
364 if "PATCH" != "GET" && "PATCH" != "HEAD" {
365 let headers = local_var_resp.headers();
366 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
367 Some(v) => v.to_str().unwrap().parse().unwrap(),
368 None => configuration::DEFAULT_RATELIMIT,
369 };
370 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
371 Some(v) => v.to_str().unwrap().parse().unwrap(),
372 None => 0,
373 };
374 }
375
376 let local_var_status = local_var_resp.status();
377 let local_var_content = local_var_resp.text().await?;
378
379 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
380 serde_json::from_str(&local_var_content).map_err(Error::from)
381 } else {
382 let local_var_entity: Option<UpdateDmDomainError> = serde_json::from_str(&local_var_content).ok();
383 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
384 Err(Error::ResponseError(local_var_error))
385 }
386}
387