Skip to main content

babelforce_manager_sdk/
lib.rs

1//! Rust SDK for the babelforce **manager APIs** — auth, user & agent management, call reporting,
2//! metrics, and task automations.
3//!
4//! One client, configured once, exposes resource namespaces over the API. The low-level clients
5//! under [`gen`] are generated from the OpenAPI specs and are an internal detail; the public surface
6//! is the hand-written facade.
7//!
8//! ```no_run
9//! # async fn demo() -> Result<(), babelforce_manager_sdk::ManagerError> {
10//! use babelforce_manager_sdk::{ManagerClient, Auth};
11//!
12//! let mgr = ManagerClient::connect(Auth::ClientCredentials {
13//!     client_id: "…".into(),
14//!     client_secret: "…".into(),
15//! })
16//! .await?;
17//!
18//! for user in mgr.users.list_all().await? {
19//!     println!("{:?}", user.email);
20//! }
21//! # Ok(()) }
22//! ```
23#![warn(missing_docs)]
24
25#[doc(hidden)]
26pub mod gen;
27
28mod auth;
29mod client;
30mod error;
31mod http;
32mod resources;
33mod retry;
34mod token;
35
36pub use auth::{build_authorize_url, pkce_challenge, Auth, PkceChallenge};
37pub use client::{ManagerClient, ManagerClientBuilder, DEFAULT_BASE_URL};
38pub use error::ManagerError;
39pub use http::Page;
40pub use resources::agents::{AgentGroupsResource, AgentsResource, ListAgentsQuery};
41pub use resources::applications::{
42    ApplicationItem, ApplicationsResource, LocalAutomationsResource,
43};
44pub use resources::auth::{AuthResource, TokenRequest};
45pub use resources::automations::AutomationsResource;
46pub use resources::babeldesk::{BabeldeskResource, BabeldeskWidgetsResource};
47pub use resources::businesshours::BusinessHoursResource;
48pub use resources::calendars::CalendarsResource;
49pub use resources::calls::{CallReportFilter, CallsResource, ReportingResource};
50pub use resources::campaigns::CampaignsResource;
51pub use resources::conferences::ConferencesResource;
52pub use resources::conversations::ConversationsResource;
53pub use resources::dashboards::DashboardsResource;
54pub use resources::dialer::{DialerBehavioursResource, DialerResource};
55pub use resources::events::EventsResource;
56pub use resources::expressions::ExpressionsResource;
57pub use resources::files::FilesResource;
58pub use resources::integrations::IntegrationsResource;
59pub use resources::logs::LogsResource;
60pub use resources::me::MeResource;
61pub use resources::metrics::MetricsResource;
62pub use resources::numbers::NumbersResource;
63pub use resources::outbound::OutboundResource;
64pub use resources::phonebook::PhonebookResource;
65pub use resources::prompts::PromptsResource;
66pub use resources::queues::{QueueSelectionsResource, QueuesResource};
67pub use resources::recordings::RecordingsResource;
68pub use resources::routing::RoutingResource;
69pub use resources::schedules::TaskSchedulesResource;
70pub use resources::sessions::SessionsResource;
71pub use resources::settings::SettingsResource;
72pub use resources::sms::SmsResource;
73pub use resources::tasks::{
74    TaskMetricsResource, TaskScriptsResource, TaskSecretsResource, TaskSelectionConfigResource,
75    TasksResource,
76};
77pub use resources::triggers::TriggersResource;
78pub use resources::users::{ListUsersQuery, UsersResource};
79pub use retry::RetryPolicy;