pub struct ZeroTrustClient { /* private fields */ }
Expand description
Main client for interacting with Zero Trust Database API
The ZeroTrustClient
provides a high-level interface for all Zero Trust operations
including authentication, database management, migrations, and synchronization.
§Examples
use zero_trust_sdk::{ZeroTrustClient, Config};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let config = Config::new("https://api.zerotrust.com")?;
let client = ZeroTrustClient::new(config).await?;
// Authenticate
client.auth().login("user@example.com", "password").await?;
// Check system status
let health = client.health().await?;
println!("System status: {}", health.status);
Ok(())
}
Implementations§
Source§impl ZeroTrustClient
impl ZeroTrustClient
Sourcepub async fn new(config: Config) -> Result<Self>
pub async fn new(config: Config) -> Result<Self>
Create a new Zero Trust client
§Arguments
config
- Client configuration
§Examples
use zero_trust_sdk::{ZeroTrustClient, Config};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let config = Config::new("https://api.zerotrust.com")?;
let client = ZeroTrustClient::new(config).await?;
Ok(())
}
Sourcepub async fn with_default_config() -> Result<Self>
pub async fn with_default_config() -> Result<Self>
Create a client with default configuration
This will attempt to load configuration from environment variables or the default config file location.
§Examples
use zero_trust_sdk::ZeroTrustClient;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = ZeroTrustClient::with_default_config().await?;
Ok(())
}
Sourcepub fn auth(&self) -> &AuthManager
pub fn auth(&self) -> &AuthManager
Get the authentication manager
§Examples
use zero_trust_sdk::{ZeroTrustClient, Config};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let config = Config::new("https://api.zerotrust.com")?;
let client = ZeroTrustClient::new(config).await?;
// Login
client.auth().login("user@example.com", "password").await?;
Ok(())
}
Sourcepub fn databases(&self) -> &DatabaseManager
pub fn databases(&self) -> &DatabaseManager
Get the database manager
§Examples
use zero_trust_sdk::{ZeroTrustClient, Config};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let config = Config::new("https://api.zerotrust.com")?;
let client = ZeroTrustClient::new(config).await?;
// List databases
let databases = client.databases().list().await?;
Ok(())
}
Sourcepub fn migration(&self) -> &MigrationManager
pub fn migration(&self) -> &MigrationManager
Get the migration manager (requires ‘migration’ feature)
§Examples
use zero_trust_sdk::{ZeroTrustClient, Config};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let config = Config::new("https://api.zerotrust.com")?;
let client = ZeroTrustClient::new(config).await?;
// Import data
client.migration()
.import_csv("data.csv")
.to_database("mydb")
.to_table("users")
.execute()
.await?;
Ok(())
}
Sourcepub fn sync(&self) -> &SyncManager
pub fn sync(&self) -> &SyncManager
Get the sync manager (requires ‘sync’ feature)
§Examples
use zero_trust_sdk::{ZeroTrustClient, Config};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let config = Config::new("https://api.zerotrust.com")?;
let client = ZeroTrustClient::new(config).await?;
// Set up sync
let sync = client.sync()
.from_database("postgresql://localhost:5432/source")
.to_database("target-db")
.with_interval(Duration::from_secs(300))
.create("my-sync")
.await?;
Ok(())
}
Sourcepub async fn health(&self) -> Result<HealthStatus>
pub async fn health(&self) -> Result<HealthStatus>
Check system health
§Examples
use zero_trust_sdk::{ZeroTrustClient, Config};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let config = Config::new("https://api.zerotrust.com")?;
let client = ZeroTrustClient::new(config).await?;
let health = client.health().await?;
println!("Status: {}, Version: {}", health.status, health.version);
Ok(())
}
Sourcepub async fn stats(&self) -> Result<SystemStats>
pub async fn stats(&self) -> Result<SystemStats>
Get system statistics
§Examples
use zero_trust_sdk::{ZeroTrustClient, Config};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let config = Config::new("https://api.zerotrust.com")?;
let client = ZeroTrustClient::new(config).await?;
let stats = client.stats().await?;
println!("Databases: {}, Tables: {}", stats.databases, stats.tables);
Ok(())
}
Sourcepub fn set_token<S: Into<String>>(&mut self, token: S)
pub fn set_token<S: Into<String>>(&mut self, token: S)
Update the authentication token
§Arguments
token
- New JWT authentication token
§Examples
use zero_trust_sdk::{ZeroTrustClient, Config};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let config = Config::new("https://api.zerotrust.com")?;
let mut client = ZeroTrustClient::new(config).await?;
client.set_token("new-jwt-token");
Ok(())
}
Sourcepub fn is_authenticated(&self) -> bool
pub fn is_authenticated(&self) -> bool
Check if the client is authenticated
Trait Implementations§
Source§impl Clone for ZeroTrustClient
impl Clone for ZeroTrustClient
Source§fn clone(&self) -> ZeroTrustClient
fn clone(&self) -> ZeroTrustClient
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreAuto Trait Implementations§
impl Freeze for ZeroTrustClient
impl !RefUnwindSafe for ZeroTrustClient
impl Send for ZeroTrustClient
impl Sync for ZeroTrustClient
impl Unpin for ZeroTrustClient
impl !UnwindSafe for ZeroTrustClient
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more