Skip to main content

tracedb_sdk/api/resources/tracedb/
mod.rs

1use crate::api::*;
2use crate::{ApiError, ClientConfig, HttpClient};
3
4pub mod admin;
5pub use admin::AdminClient;
6pub mod catalog;
7pub use catalog::CatalogClient;
8pub mod query;
9pub use query::QueryClient;
10pub mod health;
11pub use health::HealthClient;
12pub mod records;
13pub use records::RecordsClient;
14pub mod metrics;
15pub use metrics::MetricsClient;
16pub mod readiness;
17pub use readiness::ReadinessClient;
18pub mod schema;
19pub use schema::SchemaClient;
20pub struct TracedbClient {
21    pub http_client: HttpClient,
22    pub admin: AdminClient,
23    pub catalog: CatalogClient,
24    pub query: QueryClient,
25    pub health: HealthClient,
26    pub records: RecordsClient,
27    pub metrics: MetricsClient,
28    pub readiness: ReadinessClient,
29    pub schema: SchemaClient,
30}
31
32impl TracedbClient {
33    pub fn new(config: ClientConfig) -> Result<Self, ApiError> {
34        Ok(Self {
35            http_client: HttpClient::new(config.clone())?,
36            admin: AdminClient::new(config.clone())?,
37            catalog: CatalogClient::new(config.clone())?,
38            query: QueryClient::new(config.clone())?,
39            health: HealthClient::new(config.clone())?,
40            records: RecordsClient::new(config.clone())?,
41            metrics: MetricsClient::new(config.clone())?,
42            readiness: ReadinessClient::new(config.clone())?,
43            schema: SchemaClient::new(config.clone())?,
44        })
45    }
46}