babelforce-manager-sdk 0.46.0

Rust SDK for the babelforce manager APIs — auth, user & agent management, call reporting, metrics, and task automations.
Documentation

babelforce-manager-sdk

Rust SDK for the babelforce manager APIs — auth, user & agent management, call reporting, metrics, and task automations.

One client, configured once, exposes resource namespaces over the API. Authentication, typed errors, and retries are handled for you.

📖 Docs: https://babelforce.github.io/manager-sdk/

Install

[dependencies]
babelforce-manager-sdk = "0.46"
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }

Usage

use babelforce_manager_sdk::{Auth, ManagerClient};

#[tokio::main]
async fn main() -> Result<(), babelforce_manager_sdk::ManagerError> {
    let mgr = ManagerClient::connect(Auth::ClientCredentials {
        client_id: "".into(),
        client_secret: "".into(),
    })
    .await?; // base_url defaults to https://services.babelforce.com

    for user in mgr.users.list_all().await? {
        println!("{}", user.email);
    }
    Ok(())
}

Point at another host or tune retries with the builder:

# use babelforce_manager_sdk::{Auth, ManagerClient, RetryPolicy};
# async fn f() -> Result<(), babelforce_manager_sdk::ManagerError> {
let mgr = ManagerClient::builder(Auth::Bearer { token: "".into() })
    .base_url("https://acme.babelforce.com")
    .retry(RetryPolicy::default())
    .connect()
    .await?;
# Ok(()) }

Authentication

Auth selects how the client authenticates:

  • Auth::RefreshToken { refresh_token, client_id, client_secret } — a refresh token from the Authorization Code + PKCE flow (helpers: pkce_challenge, build_authorize_url, plus mgr.auth.token for the code exchange). client_secret is None for public PKCE clients; confidential clients set it.
  • Auth::ClientCredentials { client_id, client_secret } — server-to-server (credential issuance is in security review; see the guide).
  • Auth::Bearer { token } — a token you already hold (used as-is; the SDK cannot renew it).
  • Auth::Password { user, pass, client_id } — OAuth2 password grant (legacy); client_id: None uses the default "manager" client.

The grant-based flavours resolve their token at connect (failing fast on bad credentials) and transparently re-grant it shortly before it expires — refresh-token rotation included — so a long-lived client keeps working without rebuilding.

See the Authentication guide for the full PKCE walkthrough and when to use each flow.

This SDK is generated from the same OpenAPI specs as the TypeScript and Go SDKs and is at full parity with them — see the coverage page.

License

Apache-2.0.