pub struct SyncManager { /* private fields */ }
Expand description
Synchronization manager for handling real-time data sync operations
Implementations§
Source§impl SyncManager
impl SyncManager
Sourcepub fn from_database<S: AsRef<str>>(
&self,
connection_string: S,
) -> SyncFromDatabaseBuilder
pub fn from_database<S: AsRef<str>>( &self, connection_string: S, ) -> SyncFromDatabaseBuilder
Create a new sync configuration from a PostgreSQL database
§Examples
use zero_trust_sdk::{ZeroTrustClient, Config};
use std::time::Duration;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let config = Config::new("https://api.zerotrust.com")?
.with_token("your-jwt-token");
let client = ZeroTrustClient::new(config).await?;
let sync_config = client.sync()
.from_database("postgresql://localhost:5432/source")
.to_database("target-db")
.with_interval(Duration::from_secs(300))
.create("postgres-sync")
.await?;
println!("Created sync: {}", sync_config.name);
Ok(())
}
Sourcepub fn from_api<S: AsRef<str>>(&self, api_url: S) -> SyncFromApiBuilder
pub fn from_api<S: AsRef<str>>(&self, api_url: S) -> SyncFromApiBuilder
Create a new sync configuration from an API endpoint
§Examples
use zero_trust_sdk::{ZeroTrustClient, Config};
use std::time::Duration;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let config = Config::new("https://api.zerotrust.com")?
.with_token("your-jwt-token");
let client = ZeroTrustClient::new(config).await?;
let sync_config = client.sync()
.from_api("https://api.example.com/data")
.to_database("target-db")
.with_interval(Duration::from_secs(600))
.with_headers([("Authorization", "Bearer token")])
.create("api-sync")
.await?;
println!("Created sync: {}", sync_config.name);
Ok(())
}
Sourcepub fn from_csv<S: AsRef<str>>(&self, file_path: S) -> SyncFromCsvBuilder
pub fn from_csv<S: AsRef<str>>(&self, file_path: S) -> SyncFromCsvBuilder
Create a new sync configuration from a CSV file
§Examples
use zero_trust_sdk::{ZeroTrustClient, Config};
use std::time::Duration;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let config = Config::new("https://api.zerotrust.com")?
.with_token("your-jwt-token");
let client = ZeroTrustClient::new(config).await?;
let sync_config = client.sync()
.from_csv("/path/to/data.csv")
.to_database("target-db")
.to_table("imported_data")
.with_interval(Duration::from_secs(3600))
.create("csv-sync")
.await?;
println!("Created sync: {}", sync_config.name);
Ok(())
}
Sourcepub async fn list(&self) -> Result<Vec<SyncConfig>>
pub async fn list(&self) -> Result<Vec<SyncConfig>>
List all sync configurations
§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")?
.with_token("your-jwt-token");
let client = ZeroTrustClient::new(config).await?;
let syncs = client.sync().list().await?;
for sync in syncs {
println!("Sync {}: {:?} (interval: {}s)",
sync.name, sync.status, sync.interval);
}
Ok(())
}
Sourcepub async fn get<S: AsRef<str>>(&self, name: S) -> Result<SyncConfig>
pub async fn get<S: AsRef<str>>(&self, name: S) -> Result<SyncConfig>
Get sync configuration by name
§Arguments
name
- Sync configuration name
§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")?
.with_token("your-jwt-token");
let client = ZeroTrustClient::new(config).await?;
let sync = client.sync().get("my-sync").await?;
println!("Sync status: {:?}", sync.status);
Ok(())
}
Sourcepub async fn start<S: AsRef<str>>(&self, name: S) -> Result<()>
pub async fn start<S: AsRef<str>>(&self, name: S) -> Result<()>
Start a sync configuration
§Arguments
name
- Sync configuration name
§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")?
.with_token("your-jwt-token");
let client = ZeroTrustClient::new(config).await?;
client.sync().start("my-sync").await?;
println!("Sync started");
Ok(())
}
Sourcepub async fn stop<S: AsRef<str>>(&self, name: S) -> Result<()>
pub async fn stop<S: AsRef<str>>(&self, name: S) -> Result<()>
Stop a sync configuration
§Arguments
name
- Sync configuration name
§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")?
.with_token("your-jwt-token");
let client = ZeroTrustClient::new(config).await?;
client.sync().stop("my-sync").await?;
println!("Sync stopped");
Ok(())
}
Sourcepub async fn delete<S: AsRef<str>>(&self, name: S) -> Result<()>
pub async fn delete<S: AsRef<str>>(&self, name: S) -> Result<()>
Delete a sync configuration
§Arguments
name
- Sync configuration name
§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")?
.with_token("your-jwt-token");
let client = ZeroTrustClient::new(config).await?;
client.sync().delete("old-sync").await?;
println!("Sync deleted");
Ok(())
}
Sourcepub async fn trigger<S: AsRef<str>>(&self, name: S) -> Result<()>
pub async fn trigger<S: AsRef<str>>(&self, name: S) -> Result<()>
Trigger a manual sync run
§Arguments
name
- Sync configuration name
§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")?
.with_token("your-jwt-token");
let client = ZeroTrustClient::new(config).await?;
client.sync().trigger("my-sync").await?;
println!("Manual sync triggered");
Ok(())
}
Trait Implementations§
Source§impl Clone for SyncManager
impl Clone for SyncManager
Source§fn clone(&self) -> SyncManager
fn clone(&self) -> SyncManager
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 SyncManager
impl !RefUnwindSafe for SyncManager
impl Send for SyncManager
impl Sync for SyncManager
impl Unpin for SyncManager
impl !UnwindSafe for SyncManager
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