babelforce_manager_sdk/resources/
metrics.rs1use crate::error::{map_manager_err, ManagerError};
2use crate::gen::manager::apis::configuration::Configuration;
3use crate::gen::manager::apis::{manager_api, metric_api};
4use crate::gen::manager::models;
5use crate::retry::{with_retry, RetryPolicy};
6use crate::token::SharedCfg;
7
8pub struct MetricsResource {
10 pub(crate) cfg: SharedCfg<Configuration>,
11 pub(crate) retry: RetryPolicy,
12}
13
14impl MetricsResource {
15 pub async fn list_ids(&self) -> Result<models::MetricIdItemsResponse, ManagerError> {
17 let cfg = self.cfg.get().await?;
18 let cfg = cfg.as_ref();
19 with_retry(&self.retry, true, || manager_api::list_metric_ids(cfg))
20 .await
21 .map_err(map_manager_err)
22 }
23
24 pub async fn definitions(&self) -> Result<models::MetricDefinitionListResponse, ManagerError> {
26 let cfg = self.cfg.get().await?;
27 let cfg = cfg.as_ref();
28 with_retry(&self.retry, true, || {
29 manager_api::get_all_metric_definitions(cfg)
30 })
31 .await
32 .map_err(map_manager_err)
33 }
34
35 pub async fn get(&self, id: &str) -> Result<models::MetricResponse, ManagerError> {
37 let cfg = self.cfg.get().await?;
38 let cfg = cfg.as_ref();
39 with_retry(&self.retry, true, || manager_api::get_metric(cfg, id))
40 .await
41 .map_err(map_manager_err)
42 }
43
44 pub async fn describe(
46 &self,
47 id: &str,
48 ) -> Result<models::MetricDefinitionItemResponse, ManagerError> {
49 let cfg = self.cfg.get().await?;
50 let cfg = cfg.as_ref();
51 with_retry(&self.retry, true, || {
52 metric_api::get_metric_definition(cfg, id)
53 })
54 .await
55 .map_err(map_manager_err)
56 }
57}