babelforce_manager_sdk/resources/
schedules.rs1use crate::error::{map_task_schedule_err as map_err, ManagerError};
2use crate::gen::task_schedule::apis::configuration::Configuration;
3use crate::gen::task_schedule::apis::schedule_manager_api as api;
4use crate::gen::task_schedule::models;
5use crate::retry::{with_retry, RetryPolicy};
6use crate::token::SharedCfg;
7
8pub struct TaskSchedulesResource {
10 pub(crate) cfg: SharedCfg<Configuration>,
11 pub(crate) retry: RetryPolicy,
12}
13
14impl TaskSchedulesResource {
15 pub async fn list(&self) -> Result<models::TaskScheduleList, ManagerError> {
17 let cfg = self.cfg.get().await?;
18 let cfg = cfg.as_ref();
19 with_retry(&self.retry, true, || {
20 api::get_task_schedules(cfg, None, None)
21 })
22 .await
23 .map_err(map_err)
24 }
25
26 pub async fn create(&self, body: models::SubmitTaskSchedule) -> Result<(), ManagerError> {
28 let cfg = self.cfg.get().await?;
29 let cfg = cfg.as_ref();
30 with_retry(&self.retry, false, || {
31 api::submit_task_schedule(cfg, body.clone())
32 })
33 .await
34 .map_err(map_err)
35 }
36
37 pub async fn get(&self, name: &str) -> Result<models::TaskSchedule, ManagerError> {
39 let cfg = self.cfg.get().await?;
40 let cfg = cfg.as_ref();
41 with_retry(&self.retry, true, || api::get_task_schedule(cfg, name))
42 .await
43 .map_err(map_err)
44 }
45
46 pub async fn delete(&self, name: &str) -> Result<(), ManagerError> {
48 let cfg = self.cfg.get().await?;
49 let cfg = cfg.as_ref();
50 with_retry(&self.retry, false, || api::delete_schedule_task(cfg, name))
51 .await
52 .map_err(map_err)
53 }
54}