1use reqwest;
10
11use crate::apis::ResponseContent;
12use super::{Error, configuration};
13
14#[derive(Clone, Debug, Default)]
16pub struct CreateDashboardParams {
17 pub create_dashboard_request: Option<crate::models::CreateDashboardRequest>
18}
19
20#[derive(Clone, Debug, Default)]
22pub struct DeleteDashboardParams {
23 pub dashboard_id: String
24}
25
26#[derive(Clone, Debug, Default)]
28pub struct GetDashboardParams {
29 pub dashboard_id: String
30}
31
32#[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#[derive(Debug, Clone, Serialize, Deserialize)]
42#[serde(untagged)]
43pub enum CreateDashboardError {
44 UnknownValue(serde_json::Value),
45}
46
47#[derive(Debug, Clone, Serialize, Deserialize)]
49#[serde(untagged)]
50pub enum DeleteDashboardError {
51 UnknownValue(serde_json::Value),
52}
53
54#[derive(Debug, Clone, Serialize, Deserialize)]
56#[serde(untagged)]
57pub enum GetDashboardError {
58 UnknownValue(serde_json::Value),
59}
60
61#[derive(Debug, Clone, Serialize, Deserialize)]
63#[serde(untagged)]
64pub enum ListDashboardsError {
65 UnknownValue(serde_json::Value),
66}
67
68#[derive(Debug, Clone, Serialize, Deserialize)]
70#[serde(untagged)]
71pub enum UpdateDashboardError {
72 UnknownValue(serde_json::Value),
73}
74
75
76pub async fn create_dashboard(configuration: &mut configuration::Configuration, params: CreateDashboardParams) -> Result<crate::models::Dashboard, Error<CreateDashboardError>> {
78 let local_var_configuration = configuration;
79
80 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
129pub async fn delete_dashboard(configuration: &mut configuration::Configuration, params: DeleteDashboardParams) -> Result<(), Error<DeleteDashboardError>> {
131 let local_var_configuration = configuration;
132
133 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
181pub async fn get_dashboard(configuration: &mut configuration::Configuration, params: GetDashboardParams) -> Result<crate::models::Dashboard, Error<GetDashboardError>> {
183 let local_var_configuration = configuration;
184
185 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
233pub async fn list_dashboards(configuration: &mut configuration::Configuration) -> Result<crate::models::ListDashboardsResponse, Error<ListDashboardsError>> {
235 let local_var_configuration = configuration;
236
237 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
284pub async fn update_dashboard(configuration: &mut configuration::Configuration, params: UpdateDashboardParams) -> Result<crate::models::Dashboard, Error<UpdateDashboardError>> {
286 let local_var_configuration = configuration;
287
288 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