use serde_json::Value;
use std::env;
use openstack_sdk::api::QueryAsync;
use openstack_sdk::OpenStackError;
use openstack_sdk::{config::ConfigFile, AsyncOpenStack};
use openstack_sdk::api::compute::v2::flavor::get;
#[tokio::main]
async fn main() -> Result<(), OpenStackError> {
let cfg = ConfigFile::new().unwrap();
let profile = cfg
.get_cloud_config(env::var("OS_CLOUD").expect("OS_CLOUD variable must be set"))
.unwrap()
.unwrap();
let client = AsyncOpenStack::new(&profile).await?;
let mut ep_builder = get::Request::builder();
ep_builder.id(env::var("FLAVOR_ID").expect("FLAVOR_ID variable must be set"));
let ep = ep_builder.build().unwrap();
let data_raw: Value = ep.query_async(&client).await?;
println!("Flavor raw json {:?}", serde_json::to_string(&data_raw)?);
Ok(())
}