gcloud should fill in obvious default values
"gcloud compute instances add-access-config" requires you to specify the address but also the network tier of that address. Why? If you have allocated an External IP to your account it has a fixed network tier. There can't be confusion between a "Standard" 18.104.22.168 IP and a "Premium" 22.214.171.124 IP, the two can't co-exist. But the network tier argument defaults to Premium so if you specify a standard address without saying "--network-tier=standard" the access config creation fails.
Likewise for any command which refers to a specific machine, you have to specify a zone. You cannot create two identically named machines in different zones within a project, so if you have the name there can only be one possible zone. Why do you need to provide this information to gcloud?
For values with only one possible answer gcloud should work out the answer for itself.