use serde::{Deserialize, Serialize};
use std::time::Duration;
#[derive(Debug, Serialize, Deserialize, Clone)]
#[serde(rename_all = "kebab-case")]
pub struct ApiClientConfig {
#[serde()]
pub base_url: String,
}
#[derive(Debug, Deserialize, Clone)]
#[serde(tag = "type")]
pub enum ApiAuthStrategy {
Token {
header: String,
token: String,
},
Basic {
username: String,
password: Option<String>,
},
Bearer {
algorithm: String,
private_key: String,
sub: String,
iss: String,
expires_in: Duration,
},
}
#[derive(Debug, Serialize, Deserialize, Clone)]
#[serde(rename_all = "kebab-case")]
pub struct Claim {
pub sub: String,
pub iss: String,
pub iat: i64,
pub exp: i64,
}