async def import_aggregated(self, async_client, pid):
        """Import the SciObj at {pid}.

        If the SciObj is a Resource Map, also recursively import the aggregated objects.

        """
        self._logger.info('Importing: {}'.format(pid))

        task_set = set()

        object_info_pyxb = d1_common.types.dataoneTypes.ObjectInfo()
        object_info_pyxb.identifier = pid
        task_set.add(self.import_object(async_client, object_info_pyxb))

        result_set, task_set = await asyncio.wait(task_set)

        assert len(result_set) == 1
        assert not task_set

        sysmeta_pyxb = result_set.pop().result()

        if not sysmeta_pyxb:
            # Import was skipped
            return

        assert d1_common.xml.get_req_val(sysmeta_pyxb.identifier) == pid

        if d1_gmn.app.did.is_resource_map_db(pid):
            for member_pid in d1_gmn.app.resource_map.get_resource_map_members_by_map(
                pid
            ):
                self.progress_logger.event("Importing aggregated SciObj")
                self._logger.info('Importing aggregated SciObj. pid="{}"'.format(pid))
                await self.import_aggregated(async_client, member_pid)