code: def update(self, callback=None, errback=None, parent=True, **kwargs):
          
          if not self.data:
              raise AddressException('Address not loaded')
  
          def success(result, *args):
              self.data = result
              self.id = result['id']
              self.prefix = result['prefix']
              self.type = result['type']
              self.network = Network(self.config, id=result['network_id'])
              # self.scope_group = Scopegroup(config=self.config, id=result['scope_group_id'])
              if self.type != 'host':
                  self.report = self._rest.report(self.id)
                  children = self._rest.retrieve_children(self.id)
                  self.children = [Address(self.config, id=child['id']) for child in
                                   children if len(children) > 0]
              try:
                  parent = self._rest.retrieve_parent(self.id)
                  self.parent = Address(self.config, id=parent['id'])
              except ResourceException:
                  pass
              if callback:
                  return callback(self)
              else:
                  return self
  
          return self._rest.update(self.id, callback=success, errback=errback, parent=parent,
                                   **kwargs)
docs: Update address configuration. Pass a list of keywords and their values to
          update. For the list of keywords available for address configuration, see :attr:`ns1.rest.ipam.Addresses.INT_FIELDS` and :attr:`ns1.rest.ipam.Addresses.PASSTHRU_FIELDS`