def get_shared_users(self, dataset_id: str) -> List[str]:
        """Fetches a list of users that have access to the dataset.

        Args:
            dataset_id:
                Dataset ID.

        Returns:
            List of email addresses of users that have write access to the dataset.

        Examples:
            >>> client = ApiWorkflowClient(token="MY_AWESOME_TOKEN")
            >>> client.get_shared_users(dataset_id="MY_DATASET_ID")
            >>> ["user@something.com"]
        """

        access_configs: List[
            SharedAccessConfigData
        ] = self._collaboration_api.get_shared_access_configs_by_dataset_id(
            dataset_id=dataset_id
        )
        user_emails = []

        # iterate through configs and find first WRITE config
        # we use the same hard rule in the frontend to communicate with the API
        # as we currently only support WRITE access
        for access_config in access_configs:
            if access_config.access_type == SharedAccessType.WRITE:
                user_emails.extend(access_config.users)
                break

        return user_emails
Fetches a list of users that have access to the dataset.

        Args:
            dataset_id:
                Dataset ID.

        Returns:
            List of email addresses of users that have write access to the dataset.

        Examples:
            >>> client = ApiWorkflowClient(token="MY_AWESOME_TOKEN")
            >>> client.get_shared_users(dataset_id="MY_DATASET_ID")
            >>> ["user@something.com"]
        
lightly/api/api_workflow_collaboration.py