Skip to content

Roles

albert.collections.roles.RoleCollection

RoleCollection(*, session: AlbertSession)

Bases: BaseCollection

RoleCollection is a collection class for managing Role entities in the Albert platform.

Parameters:

Name Type Description Default
session AlbertSession

The Albert session instance.

required

Methods:

Name Description
get_by_id

Retrieve a Role by its ID.

create

Create a new role.

list

Lists the available Roles

Attributes:

Name Type Description
base_path
Source code in src/albert/collections/roles.py
def __init__(self, *, session: AlbertSession):
    """
    Initializes the RoleCollection with the provided session.

    Parameters
    ----------
    session : AlbertSession
        The Albert session instance.
    """
    super().__init__(session=session)
    self.base_path = f"/api/{RoleCollection._api_version}/acl/roles"

base_path

base_path = f'/api/{_api_version}/acl/roles'

get_by_id

get_by_id(*, id: str) -> Role

Retrieve a Role by its ID.

Parameters:

Name Type Description Default
id str

The ID of the role.

required

Returns:

Type Description
Role

The retrieved role.

Source code in src/albert/collections/roles.py
def get_by_id(self, *, id: str) -> Role:
    """
    Retrieve a Role by its ID.
    Parameters
    ----------
    id : str
        The ID of the role.
    Returns
    -------
    Role
        The retrieved role.
    """
    # role IDs have # symbols
    url = urllib.parse.quote(f"{self.base_path}/{id}")
    response = self.session.get(url=url)
    return Role(**response.json())

create

create(*, role: Role)

Create a new role.

Parameters:

Name Type Description Default
role Role

The role to create.

required
Source code in src/albert/collections/roles.py
def create(self, *, role: Role):
    """
    Create a new role.
    Parameters
    ----------
    role : Role
        The role to create.
    """
    response = self.session.post(
        self.base_path,
        json=role.model_dump(by_alias=True, exclude_none=True, mode="json"),
    )
    return Role(**response.json())

list

list(*, params: dict | None = None) -> list[Role]

Lists the available Roles

Parameters:

Name Type Description Default
params dict

description, by default {}

None

Returns:

Type Description
List

List of available Roles

Source code in src/albert/collections/roles.py
def list(self, *, params: dict | None = None) -> list[Role]:
    """Lists the available Roles

    Parameters
    ----------
    params : dict, optional
        _description_, by default {}

    Returns
    -------
    List
        List of available Roles
    """
    if params is None:
        params = {}
    response = self.session.get(self.base_path, params=params)
    role_data = response.json().get("Items", [])
    return [Role(**r) for r in role_data]