fastly_api/apis/
observability_custom_dashboards_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_dashboard`]
15#[derive(Clone, Debug, Default)]
16pub struct CreateDashboardParams {
17    pub create_dashboard_request: Option<crate::models::CreateDashboardRequest>
18}
19
20/// struct for passing parameters to the method [`delete_dashboard`]
21#[derive(Clone, Debug, Default)]
22pub struct DeleteDashboardParams {
23    pub dashboard_id: String
24}
25
26/// struct for passing parameters to the method [`get_dashboard`]
27#[derive(Clone, Debug, Default)]
28pub struct GetDashboardParams {
29    pub dashboard_id: String
30}
31
32/// struct for passing parameters to the method [`update_dashboard`]
33#[derive(Clone, Debug, Default)]
34pub struct UpdateDashboardParams {
35    pub dashboard_id: String,
36    pub update_dashboard_request: Option<crate::models::UpdateDashboardRequest>
37}
38
39
40/// struct for typed errors of method [`create_dashboard`]
41#[derive(Debug, Clone, Serialize, Deserialize)]
42#[serde(untagged)]
43pub enum CreateDashboardError {
44    UnknownValue(serde_json::Value),
45}
46
47/// struct for typed errors of method [`delete_dashboard`]
48#[derive(Debug, Clone, Serialize, Deserialize)]
49#[serde(untagged)]
50pub enum DeleteDashboardError {
51    UnknownValue(serde_json::Value),
52}
53
54/// struct for typed errors of method [`get_dashboard`]
55#[derive(Debug, Clone, Serialize, Deserialize)]
56#[serde(untagged)]
57pub enum GetDashboardError {
58    UnknownValue(serde_json::Value),
59}
60
61/// struct for typed errors of method [`list_dashboards`]
62#[derive(Debug, Clone, Serialize, Deserialize)]
63#[serde(untagged)]
64pub enum ListDashboardsError {
65    UnknownValue(serde_json::Value),
66}
67
68/// struct for typed errors of method [`update_dashboard`]
69#[derive(Debug, Clone, Serialize, Deserialize)]
70#[serde(untagged)]
71pub enum UpdateDashboardError {
72    UnknownValue(serde_json::Value),
73}
74
75
76/// Create a new dashboard
77pub async fn create_dashboard(configuration: &mut configuration::Configuration, params: CreateDashboardParams) -> Result<crate::models::Dashboard, Error<CreateDashboardError>> {
78    let local_var_configuration = configuration;
79
80    // unbox the parameters
81    let create_dashboard_request = params.create_dashboard_request;
82
83
84    let local_var_client = &local_var_configuration.client;
85
86    let local_var_uri_str = format!("{}/observability/dashboards", local_var_configuration.base_path);
87    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
88
89    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
90        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
91    }
92    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
93        let local_var_key = local_var_apikey.key.clone();
94        let local_var_value = match local_var_apikey.prefix {
95            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
96            None => local_var_key,
97        };
98        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
99    };
100    local_var_req_builder = local_var_req_builder.json(&create_dashboard_request);
101
102    let local_var_req = local_var_req_builder.build()?;
103    let local_var_resp = local_var_client.execute(local_var_req).await?;
104
105    if "POST" != "GET" && "POST" != "HEAD" {
106      let headers = local_var_resp.headers();
107      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
108          Some(v) => v.to_str().unwrap().parse().unwrap(),
109          None => configuration::DEFAULT_RATELIMIT,
110      };
111      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
112          Some(v) => v.to_str().unwrap().parse().unwrap(),
113          None => 0,
114      };
115    }
116
117    let local_var_status = local_var_resp.status();
118    let local_var_content = local_var_resp.text().await?;
119
120    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
121        serde_json::from_str(&local_var_content).map_err(Error::from)
122    } else {
123        let local_var_entity: Option<CreateDashboardError> = serde_json::from_str(&local_var_content).ok();
124        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
125        Err(Error::ResponseError(local_var_error))
126    }
127}
128
129/// Delete an existing dashboard
130pub async fn delete_dashboard(configuration: &mut configuration::Configuration, params: DeleteDashboardParams) -> Result<(), Error<DeleteDashboardError>> {
131    let local_var_configuration = configuration;
132
133    // unbox the parameters
134    let dashboard_id = params.dashboard_id;
135
136
137    let local_var_client = &local_var_configuration.client;
138
139    let local_var_uri_str = format!("{}/observability/dashboards/{dashboard_id}", local_var_configuration.base_path, dashboard_id=crate::apis::urlencode(dashboard_id));
140    let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
141
142    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
143        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
144    }
145    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
146        let local_var_key = local_var_apikey.key.clone();
147        let local_var_value = match local_var_apikey.prefix {
148            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
149            None => local_var_key,
150        };
151        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
152    };
153
154    let local_var_req = local_var_req_builder.build()?;
155    let local_var_resp = local_var_client.execute(local_var_req).await?;
156
157    if "DELETE" != "GET" && "DELETE" != "HEAD" {
158      let headers = local_var_resp.headers();
159      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
160          Some(v) => v.to_str().unwrap().parse().unwrap(),
161          None => configuration::DEFAULT_RATELIMIT,
162      };
163      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
164          Some(v) => v.to_str().unwrap().parse().unwrap(),
165          None => 0,
166      };
167    }
168
169    let local_var_status = local_var_resp.status();
170    let local_var_content = local_var_resp.text().await?;
171
172    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
173        Ok(())
174    } else {
175        let local_var_entity: Option<DeleteDashboardError> = serde_json::from_str(&local_var_content).ok();
176        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
177        Err(Error::ResponseError(local_var_error))
178    }
179}
180
181/// Retrieve a dashboard by ID
182pub async fn get_dashboard(configuration: &mut configuration::Configuration, params: GetDashboardParams) -> Result<crate::models::Dashboard, Error<GetDashboardError>> {
183    let local_var_configuration = configuration;
184
185    // unbox the parameters
186    let dashboard_id = params.dashboard_id;
187
188
189    let local_var_client = &local_var_configuration.client;
190
191    let local_var_uri_str = format!("{}/observability/dashboards/{dashboard_id}", local_var_configuration.base_path, dashboard_id=crate::apis::urlencode(dashboard_id));
192    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
193
194    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
195        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
196    }
197    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
198        let local_var_key = local_var_apikey.key.clone();
199        let local_var_value = match local_var_apikey.prefix {
200            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
201            None => local_var_key,
202        };
203        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
204    };
205
206    let local_var_req = local_var_req_builder.build()?;
207    let local_var_resp = local_var_client.execute(local_var_req).await?;
208
209    if "GET" != "GET" && "GET" != "HEAD" {
210      let headers = local_var_resp.headers();
211      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
212          Some(v) => v.to_str().unwrap().parse().unwrap(),
213          None => configuration::DEFAULT_RATELIMIT,
214      };
215      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
216          Some(v) => v.to_str().unwrap().parse().unwrap(),
217          None => 0,
218      };
219    }
220
221    let local_var_status = local_var_resp.status();
222    let local_var_content = local_var_resp.text().await?;
223
224    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
225        serde_json::from_str(&local_var_content).map_err(Error::from)
226    } else {
227        let local_var_entity: Option<GetDashboardError> = serde_json::from_str(&local_var_content).ok();
228        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
229        Err(Error::ResponseError(local_var_error))
230    }
231}
232
233/// List all custom dashboards
234pub async fn list_dashboards(configuration: &mut configuration::Configuration) -> Result<crate::models::ListDashboardsResponse, Error<ListDashboardsError>> {
235    let local_var_configuration = configuration;
236
237    // unbox the parameters
238
239
240    let local_var_client = &local_var_configuration.client;
241
242    let local_var_uri_str = format!("{}/observability/dashboards", local_var_configuration.base_path);
243    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
244
245    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
246        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
247    }
248    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
249        let local_var_key = local_var_apikey.key.clone();
250        let local_var_value = match local_var_apikey.prefix {
251            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
252            None => local_var_key,
253        };
254        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
255    };
256
257    let local_var_req = local_var_req_builder.build()?;
258    let local_var_resp = local_var_client.execute(local_var_req).await?;
259
260    if "GET" != "GET" && "GET" != "HEAD" {
261      let headers = local_var_resp.headers();
262      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
263          Some(v) => v.to_str().unwrap().parse().unwrap(),
264          None => configuration::DEFAULT_RATELIMIT,
265      };
266      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
267          Some(v) => v.to_str().unwrap().parse().unwrap(),
268          None => 0,
269      };
270    }
271
272    let local_var_status = local_var_resp.status();
273    let local_var_content = local_var_resp.text().await?;
274
275    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
276        serde_json::from_str(&local_var_content).map_err(Error::from)
277    } else {
278        let local_var_entity: Option<ListDashboardsError> = serde_json::from_str(&local_var_content).ok();
279        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
280        Err(Error::ResponseError(local_var_error))
281    }
282}
283
284/// Update an existing dashboard
285pub async fn update_dashboard(configuration: &mut configuration::Configuration, params: UpdateDashboardParams) -> Result<crate::models::Dashboard, Error<UpdateDashboardError>> {
286    let local_var_configuration = configuration;
287
288    // unbox the parameters
289    let dashboard_id = params.dashboard_id;
290    let update_dashboard_request = params.update_dashboard_request;
291
292
293    let local_var_client = &local_var_configuration.client;
294
295    let local_var_uri_str = format!("{}/observability/dashboards/{dashboard_id}", local_var_configuration.base_path, dashboard_id=crate::apis::urlencode(dashboard_id));
296    let mut local_var_req_builder = local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
297
298    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
299        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
300    }
301    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
302        let local_var_key = local_var_apikey.key.clone();
303        let local_var_value = match local_var_apikey.prefix {
304            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
305            None => local_var_key,
306        };
307        local_var_req_builder = local_var_req_builder.header("Fastly-Key", local_var_value);
308    };
309    local_var_req_builder = local_var_req_builder.json(&update_dashboard_request);
310
311    let local_var_req = local_var_req_builder.build()?;
312    let local_var_resp = local_var_client.execute(local_var_req).await?;
313
314    if "PATCH" != "GET" && "PATCH" != "HEAD" {
315      let headers = local_var_resp.headers();
316      local_var_configuration.rate_limit_remaining = match headers.get("Fastly-RateLimit-Remaining") {
317          Some(v) => v.to_str().unwrap().parse().unwrap(),
318          None => configuration::DEFAULT_RATELIMIT,
319      };
320      local_var_configuration.rate_limit_reset = match headers.get("Fastly-RateLimit-Reset") {
321          Some(v) => v.to_str().unwrap().parse().unwrap(),
322          None => 0,
323      };
324    }
325
326    let local_var_status = local_var_resp.status();
327    let local_var_content = local_var_resp.text().await?;
328
329    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
330        serde_json::from_str(&local_var_content).map_err(Error::from)
331    } else {
332        let local_var_entity: Option<UpdateDashboardError> = serde_json::from_str(&local_var_content).ok();
333        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
334        Err(Error::ResponseError(local_var_error))
335    }
336}
337