I've noticed that the update() method only updates some fields. For example, the customTimeout parameter can only be set at hook creation, but not later modified through client.hook.update().
In another instance, a parameter may only be modified in a particular way. For example, one is permitted to modify the parameters isPublic from false --> true, but not from true --> false. The opposite is true for isPrivate.
Perhaps there's a good reason for this, but I've not been able to decipher why this is occurring just yet.