Source code for assets_guardian.core.domain.ports.repository

from abc import ABC, abstractmethod
from collections.abc import Iterable
from typing import Any


[docs] class IRepository(ABC): """Port: Raw data repository access. Defines the contract for retrieving raw data from an external source (API, database, etc.). """
[docs] @abstractmethod def get_raw_users(self) -> Iterable[dict[str, Any]]: """Retrieves the raw list of users.""" raise NotImplementedError
[docs] @abstractmethod def get_raw_assets(self) -> Iterable[dict[str, Any]]: """Retrieves the raw list of assets (projects, sites, etc.).""" raise NotImplementedError
[docs] @abstractmethod def get_raw_accesses(self) -> Iterable[dict[str, Any]]: """Retrieves the raw list of accesses/permissions.""" raise NotImplementedError