Hi Irfan,
Thanks for reaching out. The following are the answers to your questions:
1. You need to use AdService/MutateAds instead of AdGroupAdService/MutateAdGroupAds when you update existing ad.
2. Currently there is no specific method to create the ResourceName. However, you could create it on your own or request ad_group_ad.resource_name from the ad_group_ad resource.
Please let us know if you have any further questions.
Thanks and regards,
Xiaoming, Google Ads API Team