use azure_mgmt_resourcegraph::{
models::{QueryRequest, QueryRequestOptions},
Client,
};
#[tokio::main]
async fn main() -> azure_core::Result<()> {
let credential = azure_identity::create_credential()?;
let client = Client::builder(credential).build()?;
let options = Some(QueryRequestOptions {
top: Option::from(10),
..Default::default()
});
let mut query_request = QueryRequest {
subscriptions: vec![],
management_groups: vec![],
query: "Resources | where type == 'microsoft.compute/virtualmachines'".to_string(),
options,
facets: vec![],
};
loop {
let response = client.resources(query_request.clone()).await?;
if let Some(as_array) = response.data.as_array() {
for entry in as_array {
if let Some(resource_id) = entry.get("id").and_then(|x| x.as_str()) {
println!("{resource_id:?}");
}
}
}
if response.skip_token.is_none() {
break;
}
query_request.options = Some(QueryRequestOptions {
skip_token: response.skip_token,
..Default::default()
});
}
Ok(())
}