use reqwest::blocking::Client;
use zabbix_api::client::client::{ZabbixApiClient, ZabbixApiClientImpl};
use zabbix_api::error::ZabbixApiError;
use zabbix_api::usergroup::model::CreateUserGroupRequest;
fn generate_unique_user_group_name() -> String {
let timestamp = std::time::SystemTime::now()
.duration_since(std::time::UNIX_EPOCH)
.unwrap_or_default()
.as_secs();
format!("example_user_group_{}", timestamp)
}
fn main() -> Result<(), ZabbixApiError> {
let zabbix_api_url = "http://localhost:3080/api_jsonrpc.php".to_string();
let zabbix_api_user = "Admin".to_string();
let zabbix_api_password = "zabbix".to_string();
let http_client = Client::new();
let client = ZabbixApiClientImpl::new(http_client, &zabbix_api_url);
let session = client.get_auth_session(&zabbix_api_user, &zabbix_api_password)?;
println!("Authenticated successfully.");
let user_group_name = generate_unique_user_group_name();
let create_request = CreateUserGroupRequest {
name: user_group_name.clone(),
..Default::default() };
println!("Attempting to create user group '{}'...", user_group_name);
match client.create_user_group(&session, &create_request) {
Ok(user_group_id) => {
println!(
"Successfully created user group '{}' with ID: {}",
user_group_name, user_group_id
);
}
Err(e) => {
eprintln!("Error creating user group '{}': {}", user_group_name, e);
return Err(e);
}
}
Ok(())
}