#![warn(missing_docs)]
pub mod approle;
pub mod database;
pub mod kubernetes;
pub mod kv2;
pub mod token;
mod client;
mod errors;
mod internals;
pub use client::*;
pub use errors::*;
pub trait Auth {
fn is_expired(&self) -> bool;
fn auth(&self, vault_url: &str) -> Result<(), Error>;
fn get_token(&self) -> String;
fn is_renewable(&self) -> bool;
fn get_total_duration(&self) -> u64;
fn renew(&self, vault_url: &str) -> Result<(), Error>;
}
pub enum RenewPolicy {
Reauth,
Renew(f32),
Nothing,
}
pub struct Config {
pub vault_url: String,
pub renew_policy: RenewPolicy,
}
impl Default for Config {
fn default() -> Config {
Config {
vault_url: "http://localhost:8200".to_string(),
renew_policy: RenewPolicy::Reauth,
}
}
}