Programmatically upgrade a canister using Rust

I would like to programmatically upgrade a canister using Rust, but I couldn’t find a way to do it with ic_agent nor with the management_canister from ic_utils, there is only install or create but it does not serve the same purpose.

Does anybody knows how to do it without using the terminal and dfx ?