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 service_id: Option<String>,
38 pub sort: Option<String>,
40 pub activated: Option<bool>,
41 pub verified: Option<bool>,
42 pub cursor: Option<String>,
44 pub limit: Option<i32>
46}
47
48#[derive(Clone, Debug, Default)]
50pub struct UpdateDmDomainParams {
51 pub domain_id: String,
52 pub request_body_for_update: Option<crate::models::RequestBodyForUpdate>
53}
54
55
56#[derive(Debug, Clone, Serialize, Deserialize)]
58#[serde(untagged)]
59pub enum CreateDmDomainError {
60 UnknownValue(serde_json::Value),
61}
62
63#[derive(Debug, Clone, Serialize, Deserialize)]
65#[serde(untagged)]
66pub enum DeleteDmDomainError {
67 UnknownValue(serde_json::Value),
68}
69
70#[derive(Debug, Clone, Serialize, Deserialize)]
72#[serde(untagged)]
73pub enum GetDmDomainError {
74 UnknownValue(serde_json::Value),
75}
76
77#[derive(Debug, Clone, Serialize, Deserialize)]
79#[serde(untagged)]
80pub enum ListDmDomainsError {
81 UnknownValue(serde_json::Value),
82}
83
84#[derive(Debug, Clone, Serialize, Deserialize)]
86#[serde(untagged)]
87pub enum UpdateDmDomainError {
88 UnknownValue(serde_json::Value),
89}
90
91
92pub async fn create_dm_domain(configuration: &mut configuration::Configuration, params: CreateDmDomainParams) -> Result<crate::models::SuccessfulResponseAsObject, Error<CreateDmDomainError>> {
94 let local_var_configuration = configuration;
95
96 let request_body_for_create = params.request_body_for_create;
98
99
100 let local_var_client = &local_var_configuration.client;
101
102 let local_var_uri_str = format!("{}/domain-management/v1/domains", local_var_configuration.base_path);
103 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
104
105 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
106 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
107 }
108 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
109 let local_var_key = local_var_apikey.key.clone();
110 let local_var_value = match local_var_apikey.prefix {
111 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
112 None => local_var_key,
113 };
114 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
115 };
116 local_var_req_builder = local_var_req_builder.json(&request_body_for_create);
117
118 let local_var_req = local_var_req_builder.build()?;
119 let local_var_resp = local_var_client.execute(local_var_req).await?;
120
121 if "POST" != "GET" && "POST" != "HEAD" {
122 let headers = local_var_resp.headers();
123 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
124 Some(v) => v.to_str().unwrap().parse().unwrap(),
125 None => configuration::DEFAULT_RATELIMIT,
126 };
127 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
128 Some(v) => v.to_str().unwrap().parse().unwrap(),
129 None => 0,
130 };
131 }
132
133 let local_var_status = local_var_resp.status();
134 let local_var_content = local_var_resp.text().await?;
135
136 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
137 serde_json::from_str(&local_var_content).map_err(Error::from)
138 } else {
139 let local_var_entity: Option<CreateDmDomainError> = serde_json::from_str(&local_var_content).ok();
140 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
141 Err(Error::ResponseError(local_var_error))
142 }
143}
144
145pub async fn delete_dm_domain(configuration: &mut configuration::Configuration, params: DeleteDmDomainParams) -> Result<(), Error<DeleteDmDomainError>> {
147 let local_var_configuration = configuration;
148
149 let domain_id = params.domain_id;
151
152
153 let local_var_client = &local_var_configuration.client;
154
155 let local_var_uri_str = format!("{}/domain-management/v1/domains/{domain_id}", local_var_configuration.base_path, domain_id=crate::apis::urlencode(domain_id));
156 let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
157
158 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
159 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
160 }
161 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
162 let local_var_key = local_var_apikey.key.clone();
163 let local_var_value = match local_var_apikey.prefix {
164 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
165 None => local_var_key,
166 };
167 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
168 };
169
170 let local_var_req = local_var_req_builder.build()?;
171 let local_var_resp = local_var_client.execute(local_var_req).await?;
172
173 if "DELETE" != "GET" && "DELETE" != "HEAD" {
174 let headers = local_var_resp.headers();
175 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
176 Some(v) => v.to_str().unwrap().parse().unwrap(),
177 None => configuration::DEFAULT_RATELIMIT,
178 };
179 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
180 Some(v) => v.to_str().unwrap().parse().unwrap(),
181 None => 0,
182 };
183 }
184
185 let local_var_status = local_var_resp.status();
186 let local_var_content = local_var_resp.text().await?;
187
188 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
189 Ok(())
190 } else {
191 let local_var_entity: Option<DeleteDmDomainError> = serde_json::from_str(&local_var_content).ok();
192 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
193 Err(Error::ResponseError(local_var_error))
194 }
195}
196
197pub async fn get_dm_domain(configuration: &mut configuration::Configuration, params: GetDmDomainParams) -> Result<crate::models::SuccessfulResponseAsObject, Error<GetDmDomainError>> {
199 let local_var_configuration = configuration;
200
201 let domain_id = params.domain_id;
203
204
205 let local_var_client = &local_var_configuration.client;
206
207 let local_var_uri_str = format!("{}/domain-management/v1/domains/{domain_id}", local_var_configuration.base_path, domain_id=crate::apis::urlencode(domain_id));
208 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
209
210 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
211 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
212 }
213 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
214 let local_var_key = local_var_apikey.key.clone();
215 let local_var_value = match local_var_apikey.prefix {
216 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
217 None => local_var_key,
218 };
219 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
220 };
221
222 let local_var_req = local_var_req_builder.build()?;
223 let local_var_resp = local_var_client.execute(local_var_req).await?;
224
225 if "GET" != "GET" && "GET" != "HEAD" {
226 let headers = local_var_resp.headers();
227 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
228 Some(v) => v.to_str().unwrap().parse().unwrap(),
229 None => configuration::DEFAULT_RATELIMIT,
230 };
231 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
232 Some(v) => v.to_str().unwrap().parse().unwrap(),
233 None => 0,
234 };
235 }
236
237 let local_var_status = local_var_resp.status();
238 let local_var_content = local_var_resp.text().await?;
239
240 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
241 serde_json::from_str(&local_var_content).map_err(Error::from)
242 } else {
243 let local_var_entity: Option<GetDmDomainError> = serde_json::from_str(&local_var_content).ok();
244 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
245 Err(Error::ResponseError(local_var_error))
246 }
247}
248
249pub async fn list_dm_domains(configuration: &mut configuration::Configuration, params: ListDmDomainsParams) -> Result<crate::models::InlineResponse2004, Error<ListDmDomainsError>> {
251 let local_var_configuration = configuration;
252
253 let fqdn = params.fqdn;
255 let service_id = params.service_id;
256 let sort = params.sort;
257 let activated = params.activated;
258 let verified = params.verified;
259 let cursor = params.cursor;
260 let limit = params.limit;
261
262
263 let local_var_client = &local_var_configuration.client;
264
265 let local_var_uri_str = format!("{}/domain-management/v1/domains", local_var_configuration.base_path);
266 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
267
268 if let Some(ref local_var_str) = fqdn {
269 local_var_req_builder = local_var_req_builder.query(&[("fqdn", &local_var_str.to_string())]);
270 }
271 if let Some(ref local_var_str) = service_id {
272 local_var_req_builder = local_var_req_builder.query(&[("service_id", &local_var_str.to_string())]);
273 }
274 if let Some(ref local_var_str) = sort {
275 local_var_req_builder = local_var_req_builder.query(&[("sort", &local_var_str.to_string())]);
276 }
277 if let Some(ref local_var_str) = activated {
278 local_var_req_builder = local_var_req_builder.query(&[("activated", &local_var_str.to_string())]);
279 }
280 if let Some(ref local_var_str) = verified {
281 local_var_req_builder = local_var_req_builder.query(&[("verified", &local_var_str.to_string())]);
282 }
283 if let Some(ref local_var_str) = cursor {
284 local_var_req_builder = local_var_req_builder.query(&[("cursor", &local_var_str.to_string())]);
285 }
286 if let Some(ref local_var_str) = limit {
287 local_var_req_builder = local_var_req_builder.query(&[("limit", &local_var_str.to_string())]);
288 }
289 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
290 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
291 }
292 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
293 let local_var_key = local_var_apikey.key.clone();
294 let local_var_value = match local_var_apikey.prefix {
295 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
296 None => local_var_key,
297 };
298 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
299 };
300
301 let local_var_req = local_var_req_builder.build()?;
302 let local_var_resp = local_var_client.execute(local_var_req).await?;
303
304 if "GET" != "GET" && "GET" != "HEAD" {
305 let headers = local_var_resp.headers();
306 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
307 Some(v) => v.to_str().unwrap().parse().unwrap(),
308 None => configuration::DEFAULT_RATELIMIT,
309 };
310 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
311 Some(v) => v.to_str().unwrap().parse().unwrap(),
312 None => 0,
313 };
314 }
315
316 let local_var_status = local_var_resp.status();
317 let local_var_content = local_var_resp.text().await?;
318
319 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
320 serde_json::from_str(&local_var_content).map_err(Error::from)
321 } else {
322 let local_var_entity: Option<ListDmDomainsError> = serde_json::from_str(&local_var_content).ok();
323 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
324 Err(Error::ResponseError(local_var_error))
325 }
326}
327
328pub async fn update_dm_domain(configuration: &mut configuration::Configuration, params: UpdateDmDomainParams) -> Result<crate::models::SuccessfulResponseAsObject, Error<UpdateDmDomainError>> {
330 let local_var_configuration = configuration;
331
332 let domain_id = params.domain_id;
334 let request_body_for_update = params.request_body_for_update;
335
336
337 let local_var_client = &local_var_configuration.client;
338
339 let local_var_uri_str = format!("{}/domain-management/v1/domains/{domain_id}", local_var_configuration.base_path, domain_id=crate::apis::urlencode(domain_id));
340 let mut local_var_req_builder = local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
341
342 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
343 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
344 }
345 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
346 let local_var_key = local_var_apikey.key.clone();
347 let local_var_value = match local_var_apikey.prefix {
348 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
349 None => local_var_key,
350 };
351 local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
352 };
353 local_var_req_builder = local_var_req_builder.json(&request_body_for_update);
354
355 let local_var_req = local_var_req_builder.build()?;
356 let local_var_resp = local_var_client.execute(local_var_req).await?;
357
358 if "PATCH" != "GET" && "PATCH" != "HEAD" {
359 let headers = local_var_resp.headers();
360 local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
361 Some(v) => v.to_str().unwrap().parse().unwrap(),
362 None => configuration::DEFAULT_RATELIMIT,
363 };
364 local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
365 Some(v) => v.to_str().unwrap().parse().unwrap(),
366 None => 0,
367 };
368 }
369
370 let local_var_status = local_var_resp.status();
371 let local_var_content = local_var_resp.text().await?;
372
373 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
374 serde_json::from_str(&local_var_content).map_err(Error::from)
375 } else {
376 let local_var_entity: Option<UpdateDmDomainError> = serde_json::from_str(&local_var_content).ok();
377 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
378 Err(Error::ResponseError(local_var_error))
379 }
380}
381