fastly_api/apis/
dm_domains_api.rs

1/*
2 * Fastly API
3 *
4 * Via the Fastly API you can perform any of the operations that are possible within the management console,  including creating services, domains, and backends, configuring rules or uploading your own application code, as well as account operations such as user administration and billing reports. The API is organized into collections of endpoints that allow manipulation of objects related to Fastly services and accounts. For the most accurate and up-to-date API reference content, visit our [Developer Hub](https://www.fastly.com/documentation/reference/api/) 
5 *
6 */
7
8
9use reqwest;
10
11use crate::apis::ResponseContent;
12use super::{Error, configuration};
13
14/// struct for passing parameters to the method [`create_dm_domain`]
15#[derive(Clone, Debug, Default)]
16pub struct CreateDmDomainParams {
17    pub request_body_for_create: Option<crate::models::RequestBodyForCreate>
18}
19
20/// struct for passing parameters to the method [`delete_dm_domain`]
21#[derive(Clone, Debug, Default)]
22pub struct DeleteDmDomainParams {
23    pub domain_id: String
24}
25
26/// struct for passing parameters to the method [`get_dm_domain`]
27#[derive(Clone, Debug, Default)]
28pub struct GetDmDomainParams {
29    pub domain_id: String
30}
31
32/// struct for passing parameters to the method [`list_dm_domains`]
33#[derive(Clone, Debug, Default)]
34pub struct ListDmDomainsParams {
35    pub fqdn: Option<String>,
36    /// Filter results based on a service_id.
37    pub service_id: Option<String>,
38    /// The order in which to list the results.
39    pub sort: Option<String>,
40    pub activated: Option<bool>,
41    pub verified: Option<bool>,
42    /// Cursor value from the `next_cursor` field of a previous response, used to retrieve the next page. To request the first page, this should be empty.
43    pub cursor: Option<String>,
44    /// Limit how many results are returned.
45    pub limit: Option<i32>
46}
47
48/// struct for passing parameters to the method [`update_dm_domain`]
49#[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/// struct for typed errors of method [`create_dm_domain`]
57#[derive(Debug, Clone, Serialize, Deserialize)]
58#[serde(untagged)]
59pub enum CreateDmDomainError {
60    UnknownValue(serde_json::Value),
61}
62
63/// struct for typed errors of method [`delete_dm_domain`]
64#[derive(Debug, Clone, Serialize, Deserialize)]
65#[serde(untagged)]
66pub enum DeleteDmDomainError {
67    UnknownValue(serde_json::Value),
68}
69
70/// struct for typed errors of method [`get_dm_domain`]
71#[derive(Debug, Clone, Serialize, Deserialize)]
72#[serde(untagged)]
73pub enum GetDmDomainError {
74    UnknownValue(serde_json::Value),
75}
76
77/// struct for typed errors of method [`list_dm_domains`]
78#[derive(Debug, Clone, Serialize, Deserialize)]
79#[serde(untagged)]
80pub enum ListDmDomainsError {
81    UnknownValue(serde_json::Value),
82}
83
84/// struct for typed errors of method [`update_dm_domain`]
85#[derive(Debug, Clone, Serialize, Deserialize)]
86#[serde(untagged)]
87pub enum UpdateDmDomainError {
88    UnknownValue(serde_json::Value),
89}
90
91
92/// Create a domain
93pub 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    // unbox the parameters
97    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
145/// Delete a domain
146pub async fn delete_dm_domain(configuration: &mut configuration::Configuration, params: DeleteDmDomainParams) -> Result<(), Error<DeleteDmDomainError>> {
147    let local_var_configuration = configuration;
148
149    // unbox the parameters
150    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
197/// Show a domain
198pub 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    // unbox the parameters
202    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
249/// List all domains
250pub 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    // unbox the parameters
254    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
328/// Update a domain
329pub 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    // unbox the parameters
333    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