class_docstr: The `User` class is used to manage users in Argilla. It provides methods to
  create new users, list all the users, get a user by its name or ID, and delete it.
  While it's not allowed to update the user information for the moment.
  
  Args:
      name: the name of the user to be managed. Defaults to None.
      id: the ID of the user to be managed. Defaults to None.
  
  Attributes:
      _client: the `httpx.Client` initialized to interact with the Argilla API.
      id: the ID of the user.
      username: the username of the user.
      first_name: the first name of the user.
      last_name: the last name of the user. Defaults to None.
      full_name: the full name of the user. Defaults to None.
      role: the role of the user.
      api_key: the API key of the user.
      inserted_at: the datetime when the user was created.
      updated_at: the datetime when the user was last updated.
  
  Examples:
      >>> from argilla import rg
      >>> user = rg.User.from_name("my-user") # or `User.from_id("...")`
      >>> print(user)
      User(id='...', username='my-user', role='annotator', first_name='Luke', last_name="Skywalker', full_name='Luke Skywalker', role='annotator', api_key='...', inserted_at=datetime.datetime(2021, 8, 31, 10, 0, 0), updated_at=datetime.datetime(2021, 8, 31, 10, 0, 0))
class_docstr_tok: ["The","`","User","`","class","is","used","to","manage","users","in","Argilla",".","It","provides","methods","to","create","new","users",",","list","all","the","users",",","get","a","user","by","its","name","or","ID",",","and","delete","it",".","While","it","'s","not","allowed","to","update","the","user","information","for","the","moment",".","Args",":","name",":","the","name","of","the","user","to","be","managed",".","Defaults","to","None",".","id",":","the","ID","of","the","user","to","be","managed",".","Defaults","to","None",".","Attributes",":","_client",":","the","`","httpx.Client","`","initialized","to","interact","with","the","Argilla","API",".","id",":","the","ID","of","the","user",".","username",":","the","username","of","the","user",".","first_name",":","the","first","name","of","the","user",".","last_name",":","the","last","name","of","the","user",".","Defaults","to","None",".","full_name",":","the","full","name","of","the","user",".","Defaults","to","None",".","role",":","the","role","of","the","user",".","api_key",":","the","API","key","of","the","user",".","inserted_at",":","the","datetime","when","the","user","was","created",".","updated_at",":","the","datetime","when","the","user","was","last","updated",".","Examples",":",">",">",">","from","argilla","import","rg",">",">",">","user","=","rg.User.from_name","(","``","my-user","''",")","#","or","`","User.from_id","(","``","...","''",")","`",">",">",">","print","(","user",")","User","(","id=","'","...","'",",","username='my-user","'",",","role='annotator","'",",","first_name='Luke","'",",","last_name=","''","Skywalker","'",",","full_name='Luke","Skywalker","'",",","role='annotator","'",",","api_key=","'","...","'",",","inserted_at=datetime.datetime","(","2021",",","8",",","31",",","10",",","0",",","0",")",",","updated_at=datetime.datetime","(","2021",",","8",",","31",",","10",",","0",",","0",")",")"]
docstr: Doesn't initialize the `User`, as it needs to be instantiated via any of
  the following classmethods, as the Argilla API is required.
      - `User.create` to create a new user in Argilla
      - `User.from_name` to get an existing user from Argilla by its name
      - `User.from_id` to get an existing user from Argilla by its ID
      - `User.list` to list all the users in Argilla
  
  Args:
      name: the name of the user to be managed. Defaults to None.
      id: the ID of the user to be managed. Defaults to None.
  
  Raises:
      Exception: if the `User` is initialized via the `__init__` method.
docstr_tok: ["Does","n't","initialize","the","`","User","`",",","as","it","needs","to","be","instantiated","via","any","of","the","following","classmethods",",","as","the","Argilla","API","is","required",".","-","`","User.create","`","to","create","a","new","user","in","Argilla","-","`","User.from_name","`","to","get","an","existing","user","from","Argilla","by","its","name","-","`","User.from_id","`","to","get","an","existing","user","from","Argilla","by","its","ID","-","`","User.list","`","to","list","all","the","users","in","Argilla","Args",":","name",":","the","name","of","the","user","to","be","managed",".","Defaults","to","None",".","id",":","the","ID","of","the","user","to","be","managed",".","Defaults","to","None",".","Raises",":","Exception",":","if","the","`","User","`","is","initialized","via","the","`","__init__","`","method","."]
code: def __init__(
      self,
      name: Optional[str] = None,
      *,
      id: Optional[Union[str, UUID]] = None,
  ) -> None:
      """Doesn't initialize the `User`, as it needs to be instantiated via any of
      the following classmethods, as the Argilla API is required.
          - `User.create` to create a new user in Argilla
          - `User.from_name` to get an existing user from Argilla by its name
          - `User.from_id` to get an existing user from Argilla by its ID
          - `User.list` to list all the users in Argilla
  
      Args:
          name: the name of the user to be managed. Defaults to None.
          id: the ID of the user to be managed. Defaults to None.
  
      Raises:
          Exception: if the `User` is initialized via the `__init__` method.
      """
      error_msg = (
          "`User` cannot be initialized via the `__init__` method, as it needs"
          " to send requests to the Argilla API, so it can just be instantiated via"
          " the following classmethods: `User.create`, `User.from_name`,"
          " `User.from_id` and `User.list`; note that it must exist in"
          " advance in Argilla, unless you are creating a new one."
      )
      if id is not None:
          error_msg += f" As the `id` argument is not None, you should use `User.from_id('{id}')` instead."
      if name is not None:
          error_msg += f" As the `name` argument is not None, you should use `User.from_name('{name}')` instead."
      raise Exception(error_msg)
  
imports: import warnings
  from datetime import datetime
  from typing import TYPE_CHECKING, Iterator, List, Optional, Union
  from uuid import UUID
  from argilla.client.sdk.commons.errors import AlreadyExistsApiError, BaseClientError, NotFoundApiError, ValidationApiError
  from argilla.client.sdk.users import api
  from argilla.client.sdk.users.models import UserModel, UserRole
  from argilla.client.sdk.v1.users import api
  from argilla.client.sdk.v1.workspaces import api
  from argilla.client.singleton import active_client
  from argilla.client.utils import allowed_for_roles
label_desc: Use image node_id 1 to create a new User object  with example: obj = User(name)