use cortex_client::apis::status_api;
mod common;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let config = match common::setup_configuration() {
Ok(cfg) => cfg,
Err(e) => {
eprintln!("Configuration error: {}", e);
eprintln!("Please ensure CORTEX_ENDPOINT and CORTEX_API_KEY environment variables are set.");
eprintln!("Example usage:");
eprintln!(" export CORTEX_ENDPOINT=\"http://localhost:9000/api\"");
eprintln!(" export CORTEX_API_KEY=\"your_api_key_here\"");
eprintln!(" cargo run --example status_example");
return Err(e.into());
}
};
println!("Fetching API status (/status)...");
match status_api::get_status(&config).await {
Ok(status_response) => {
println!("Successfully fetched API status:");
println!("{:#?}", status_response);
if let Some(versions) = status_response.versions {
println!("\nVersions:");
println!(" Cortex: {}", versions.cortex.as_deref().unwrap_or("N/A"));
println!(" Elastic4Play: {}", versions.elastic4_play.as_deref().unwrap_or("N/A"));
}
if let Some(api_config) = status_response.config {
println!("\nAPI Configuration:");
println!(" Auth Type: {:?}", api_config.auth_type);
println!(" Capabilities: {:?}", api_config.capabilities.unwrap_or_default());
}
}
Err(e) => {
eprintln!("Error fetching API status: {:?}", e);
}
}
Ok(())
}