Honestly, when we automate GCP from Rust, we use a thousand lines of hand-written client code and a normal HTTP client. Auth we do using a library.
We've also tried the open source GCP client libraries, but they were huge didn't support async at the time.
(Still, I'm much happier hand-rolling some HTTP wrappers than using the official Google Python bindings. Those pull in tons of fragile dependencies.)