docs: def _manage_flags(self):
          """
          Manage automatic relation flags.
          """
          already_joined = is_flag_set(self.expand_name('joined'))
          hook_name = hookenv.hook_name()
          rel_hook = hook_name.startswith(self.endpoint_name + '-relation-')
          departed_hook = rel_hook and hook_name.endswith('-departed')
  
          toggle_flag(self.expand_name('joined'), self.is_joined)
  
          if departed_hook:
              set_flag(self.expand_name('departed'))
          elif self.is_joined:
              clear_flag(self.expand_name('departed'))
  
          if already_joined and not rel_hook:
              # skip checking relation data outside hooks for this relation
              # to save on API calls to the controller (unless we didn't have
              # the joined flag before, since then we might migrating to Endpoints)
              return
  
          for unit in self.all_units:
              for key, value in unit.received.items():
                  data_key = 'endpoint.{}.{}.{}.{}'.format(self.endpoint_name,
                                                           unit.relation.relation_id,
                                                           unit.unit_name,
                                                           key)
                  if data_changed(data_key, value):
                      set_flag(self.expand_name('changed'))
                      set_flag(self.expand_name('changed.{}'.format(key)))