def __init__(
        self,
        username: Optional[str] = None,
        first_name: Optional[str] = None,
        last_name: Optional[str] = None,
        role: Optional[str] = None,
        password: Optional[str] = None,
        id: Optional[UUID] = None,
        client: Optional["Argilla"] = None,
        _model: Optional[UserModel] = None,
    ) -> None:
        """Initializes a User object with a client and a username

        Parameters:
            username (str): The username of the user
            first_name (str): The first name of the user
            last_name (str): The last name of the user
            role (str): The role of the user, either 'annotator', admin, or 'owner'
            password (str): The password of the user
            id (UUID): The ID of the user. If provided before a .create, the will be created with this ID
            client (Argilla): The client used to interact with Argilla

        Returns:
            User: The initialized user object
        """
        client = client or Argilla._get_default()
        super().__init__(client=client, api=client.api.users)

        if _model is None:
            _model = UserModel(
                username=username,
                password=password,
                first_name=first_name or username,
                last_name=last_name,
                role=role or Role.annotator,
                id=id,
            )
            self._log_message(f"Initialized user with username {username}")
        self._model = _model
Initializes a User object with a client and a username

        Parameters:
            username (str): The username of the user
            first_name (str): The first name of the user
            last_name (str): The last name of the user
            role (str): The role of the user, either 'annotator', admin, or 'owner'
            password (str): The password of the user
            id (UUID): The ID of the user. If provided before a .create, the will be created with this ID
            client (Argilla): The client used to interact with Argilla

        Returns:
            User: The initialized user object
        
argilla/src/argilla/users/_resource.py