User Models

User models for the ACPortal API.

class ab.api.models.users.User(*, id=None, username=None, email=None, roles=None, company=None, login=None, fullName=None, contactId=None, contactDisplayId=None, contactCompanyName=None, contactCompanyId=None, contactCompanyDisplayId=None, emailConfirmed=None, contactPhone=None, contactEmail=None, password=None, lockoutDateUtc=None, lockoutEnabled=None, role=None, isActive=None, legacyId=None, additionalUserCompanies=None, additionalUserCompaniesNames=None, crmContactId=None, **extra_data)[source]

Bases: ResponseModel, IdentifiedModel

User record — POST /users/list.

Parameters:
  • id (str | int | None)

  • username (str | None)

  • email (str | None)

  • roles (List[dict] | None)

  • company (dict | None)

  • login (str | None)

  • fullName (str | None)

  • contactId (int | None)

  • contactDisplayId (str | None)

  • contactCompanyName (str | None)

  • contactCompanyId (str | None)

  • contactCompanyDisplayId (str | None)

  • emailConfirmed (bool | None)

  • contactPhone (str | None)

  • contactEmail (str | None)

  • password (str | None)

  • lockoutDateUtc (str | None)

  • lockoutEnabled (bool | None)

  • role (str | None)

  • isActive (bool | None)

  • legacyId (str | None)

  • additionalUserCompanies (List[str] | None)

  • additionalUserCompaniesNames (List[str] | None)

  • crmContactId (int | None)

  • extra_data (Any)

username: str | None
email: str | None
roles: List[dict] | None
company: dict | None
login: str | None
full_name: str | None
contact_id: int | None
contact_display_id: str | None
contact_company_name: str | None
contact_company_id: str | None
contact_company_display_id: str | None
email_confirmed: bool | None
contact_phone: str | None
contact_email: str | None
password: str | None
lockout_date_utc: str | None
lockout_enabled: bool | None
role: str | None
is_active: bool | None
legacy_id: str | None
additional_user_companies: List[str] | None
additional_user_companies_names: List[str] | None
crm_contact_id: int | None
model_config = {'alias_generator': <function _to_camel>, 'extra': 'allow', 'populate_by_name': True, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ab.api.models.users.UserRole(*, id=None, name=None, **extra_data)[source]

Bases: ResponseModel

Deprecated — the live API returns roles as plain strings, not objects.

The GET /users/roles endpoint returns List[str] (e.g. ["CorporateAccounting", "Admin"]), not List[{id, name}] objects as the Swagger spec originally implied. The route now uses response_model="List[str]" and this class is retained only for backward compatibility.

Parameters:
  • id (str | None)

  • name (str | None)

  • extra_data (Any)

id: str | None
name: str | None
model_config = {'alias_generator': <function _to_camel>, 'extra': 'allow', 'populate_by_name': True, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ab.api.models.users.UserCreateRequest(*, username=None, email=None, roles=None)[source]

Bases: RequestModel

Body for POST /users/user.

Parameters:
  • username (str | None)

  • email (str | None)

  • roles (List[str] | None)

username: str | None
email: str | None
roles: List[str] | None
model_config = {'alias_generator': <function _to_camel>, 'extra': 'forbid', 'populate_by_name': True, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class ab.api.models.users.UserUpdateRequest(*, id=None, username=None, email=None, roles=None)[source]

Bases: RequestModel

Body for PUT /users/user.

Parameters:
  • id (str | None)

  • username (str | None)

  • email (str | None)

  • roles (List[str] | None)

id: str | None
username: str | None
email: str | None
roles: List[str] | None
model_config = {'alias_generator': <function _to_camel>, 'extra': 'forbid', 'populate_by_name': True, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].