1use crate::Environment;
2use std::collections::HashMap;
3use std::time::Duration;
4
5#[derive(Debug, Clone)]
6pub struct ClientConfig {
7 pub base_url: String,
8 pub api_key: Option<String>,
9 pub token: Option<String>,
10 pub username: Option<String>,
11 pub password: Option<String>,
12 pub client_id: Option<String>,
13 pub client_secret: Option<String>,
14 pub timeout: Duration,
15 pub max_retries: u32,
16 pub custom_headers: HashMap<String, String>,
17 pub user_agent: String,
18}
19impl Default for ClientConfig {
20 fn default() -> Self {
21 Self {
22 base_url: Environment::default().url().to_string(),
23 api_key: None,
24 token: None,
25 username: None,
26 password: None,
27 client_id: None,
28 client_secret: None,
29 timeout: Duration::from_secs(60),
30 max_retries: 3,
31 custom_headers: HashMap::from([
32 ("X-Fern-Language".to_string(), "Rust".to_string()),
33 ("X-Fern-SDK-Name".to_string(), "trace_db_api".to_string()),
34 ("X-Fern-SDK-Version".to_string(), "0.1.1".to_string()),
35 ]),
36 user_agent: "Api Rust SDK".to_string(),
37 }
38 }
39}