1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//! # openapp-sdk-core
//!
//! Language-agnostic core of the `OpenApp` SDK. All language SDKs (Python today; .NET,
//! Ruby, Go, TypeScript in the future) sit on top of this crate — either directly via
//! a native binding (`PyO3` for Python) or through [`openapp-sdk-core-c-bridge`].
//!
//! What lives here:
//!
//! * [`Client`] / [`ClientBuilder`] — the main entry point. `Client` owns an async
//! [`reqwest::Client`] configured with retries, telemetry, and a pluggable
//! [`auth::TokenProvider`].
//! * Per-tag sub-clients (e.g. [`resources::OrgsClient`], [`resources::DevicesClient`])
//! mirror the `OpenAPI` groups defined in `packages/api-spec/openapi.json`.
//! * [`error::SdkError`] — exhaustive error enum. All fallible SDK calls return
//! `Result<_, SdkError>`.
//! * [`interceptor::Interceptor`] — hook for request/response observability (logging,
//! tracing, custom headers, tenant pinning).
//!
//! What **does not** live here:
//!
//! * Workflow / determinism layers. `OpenApp` is REST; there is no workflow sandbox.
//! * Language-specific ergonomics. Those live in `packages/sdk/python/python/openapp_sdk/`.
pub use ;
pub use ;
pub use Interceptor;
pub use ;