class_docstr: A User object represents an individual account on a Determined installation.
  
  It can be obtained from :func:`determined.experimental.client.list_users`
  or :func:`determined.experimental.client.get_user_by_name`.
  
  Attributes:
      session: HTTP request session.
      user_id: (int) Unique ID for the user in the Determined database.
      username: (Mutable, Optional[str]) Username of the user in the Determined cluster.
      admin: (Mutable, Optional[bool]) Whether the user has admin privileges.
      remote: (Mutable, Optional[bool]) When true, prevents password sign-on and requires user to
          sign-on using external IdP
      agent_uid: (Mutable, Optional[int]) UID on the agent this user is linked to.
      agent_gid: (Mutable, Optional[int]) GID on the agent this user is linked to.
      agent_user: (Mutable, Optional[str]) Unix user on the agent this user is linked to.
      agent_group: (Mutable, Optional[str]) Unix group on the agent this user is linked to.
      display_name: (Mutable, Optional[str]) Human-friendly name of the user.
  
  Note:
      All attributes are cached by default.
  
      Mutable properties may be changed by methods that update these values either automatically
      (eg. `rename`, `change_display_name`) or explicitly with :meth:`reload()`.
code: def deactivate(self) -> None:
      patch_user = bindings.v1PatchUser(active=False)
      bindings.patch_PatchUser(
          self._session, body=patch_user, userId=self.user_id
      )
      self.reload()
  
file_path: determined/harness/determined/common/experimental/user.py
imports: from typing import Optional
  from determined.common import api
  from determined.common.api import bindings
label_desc: Use image node_id 6 for calling the User obj's underlying member method code with example usage: obj.deactivate() without return types