Skip to main content

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    /// (Optional) Filter fully-qualified domain name (FQDN) specifically by match type. If used, requires filtering by FQDN.
37    pub fqdn_match: Option<String>,
38    /// Filter results based on a service_id.
39    pub service_id: Option<String>,
40    /// The order in which to list the results.
41    pub sort: Option<String>,
42    pub activated: Option<bool>,
43    pub verified: Option<bool>,
44    /// 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.
45    pub cursor: Option<String>,
46    /// Limit how many results are returned.
47    pub limit: Option<i32>
48}
49
50/// struct for passing parameters to the method [`update_dm_domain`]
51#[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/// struct for typed errors of method [`create_dm_domain`]
59#[derive(Debug, Clone, Serialize, Deserialize)]
60#[serde(untagged)]
61pub enum CreateDmDomainError {
62    UnknownValue(serde_json::Value),
63}
64
65/// struct for typed errors of method [`delete_dm_domain`]
66#[derive(Debug, Clone, Serialize, Deserialize)]
67#[serde(untagged)]
68pub enum DeleteDmDomainError {
69    UnknownValue(serde_json::Value),
70}
71
72/// struct for typed errors of method [`get_dm_domain`]
73#[derive(Debug, Clone, Serialize, Deserialize)]
74#[serde(untagged)]
75pub enum GetDmDomainError {
76    UnknownValue(serde_json::Value),
77}
78
79/// struct for typed errors of method [`list_dm_domains`]
80#[derive(Debug, Clone, Serialize, Deserialize)]
81#[serde(untagged)]
82pub enum ListDmDomainsError {
83    UnknownValue(serde_json::Value),
84}
85
86/// struct for typed errors of method [`update_dm_domain`]
87#[derive(Debug, Clone, Serialize, Deserialize)]
88#[serde(untagged)]
89pub enum UpdateDmDomainError {
90    UnknownValue(serde_json::Value),
91}
92
93
94/// Create a domain
95pub 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    // unbox the parameters
99    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
147/// Delete a domain
148pub async fn delete_dm_domain(configuration: &mut configuration::Configuration, params: DeleteDmDomainParams) -> Result<(), Error<DeleteDmDomainError>> {
149    let local_var_configuration = configuration;
150
151    // unbox the parameters
152    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
199/// Show a domain
200pub 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    // unbox the parameters
204    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
251/// List all domains
252pub 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    // unbox the parameters
256    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
334/// Update a domain
335pub 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    // unbox the parameters
339    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