Right, so SecurityRule in aiclib doesn't allow an update via dict, but provides a method for each rule field. If the value is unspecified, NVP doesn't want it in it's input dict at all; ie the relation method in SecurityRule isn't called. I was trying to avoid popping the value for each required key, checking if it were invalid or None, and if not then calling the relation function in secrule (a long list of pops and if statements). This loop may be unstable or blindly catching too broad an exception, but it seemed cleaner. Thoughts?