code: def update(self, data):
          
          updated = self.set_property('description', data.description)
          updated |= self.set_property('state', data.state)
  
          tags = {x['Key']: x['Value'] for x in data.tags or {}}
          existing_tags = {x.key: x for x in self.tags}
  
          # Check for new tags
          for key, value in list(tags.items()):
              updated |= self.set_tag(key, value)
  
          # Check for updated or removed tags
          for key in list(existing_tags.keys()):
              if key not in tags:
                  updated |= self.delete_tag(key)
  
          return updated
docs: Updates the object information based on live data, if there were any changes made. Any changes will be
          automatically applied to the object, but will not be automatically persisted. You must manually call
          `db.session.add(ami)` on the object.
  
          Args:
              data (bunch): Data fetched from AWS API
  
          Returns:
              True if there were any changes to the object, else false