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