public void MergeFrom(pb::CodedInputStream input) {
   uint tag;
   while ((tag = input.ReadTag()) != 0) {
     switch(tag) {
       default:
         _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
         break;
       case 10: {
         global::Google.Ads.GoogleAds.V2.Resources.MerchantCenterLink subBuilder = new global::Google.Ads.GoogleAds.V2.Resources.MerchantCenterLink();
         if (operationCase_ == OperationOneofCase.Update) {
           subBuilder.MergeFrom(Update);
         }
         input.ReadMessage(subBuilder);
         Update = subBuilder;
         break;
       }
       case 18: {
         Remove = input.ReadString();
         break;
       }
       case 26: {
         if (updateMask_ == null) {
           UpdateMask = new global::Google.Protobuf.WellKnownTypes.FieldMask();
         }
         input.ReadMessage(UpdateMask);
         break;
       }
     }
   }
 }
    public void MergeFrom(MerchantCenterLinkOperation other) {
      if (other == null) {
        return;
      }
      if (other.updateMask_ != null) {
        if (updateMask_ == null) {
          UpdateMask = new global::Google.Protobuf.WellKnownTypes.FieldMask();
        }
        UpdateMask.MergeFrom(other.UpdateMask);
      }
      switch (other.OperationCase) {
        case OperationOneofCase.Update:
          if (Update == null) {
            Update = new global::Google.Ads.GoogleAds.V2.Resources.MerchantCenterLink();
          }
          Update.MergeFrom(other.Update);
          break;
        case OperationOneofCase.Remove:
          Remove = other.Remove;
          break;
      }

      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }