Thanks for all the help! Here's what I came up with. myvlans = meraki.getvlans(apikey, networkid, suppressprint=False) vlanid = 100 myipassignments = {newmac: {'ip': myip, 'name': name}} for vlan in myvlans: if vlan['id'] == vlanid: vlan['fixedIpAssignments'].pop(oldmac) vlan['fixedIpAssignments'][newmac] ={'name': name, 'ip': myip} meraki.updatevlan(apikey, networkid, vlanid, name=None, subnet=None, mxip=None, fixedipassignments=vlan['fixedIpAssignments'], reservedipranges=None, vpnnatsubnet=None, dnsnameservers=None, suppressprint=False) It works great, but while I was testing I noticed a slight quirk. I was swapping old mac and new mac back and forth, but changing the name so I could be sure things were changing, but the UpdateVLAN function doesn't change the name. It will set the name if it's a new MAC, but if you are recycling a MAC it will retain the name it had originally. You have to use the dashboard to actually change the name. Shouldn't *really* be an issue, but it could be a quirk if you are trying to write a script that adds more description to reservation names. (I like to use CompName-Username, but previous admins didn't follow this method, so I wouldn't be able to write a script to normalize this naming scheme.) Also, it seems like sometimes it will change the name and other times it won't...can't really figure out what the reason is behind it.
... View more