<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 async def get_zones(self) -> List[Zone]: """Return list of available zones."""

        res = await self.services["avContent"]["getCurrentExternalTerminalsStatus"]()
        zones = [Zone.make(services=self.services, **x) for x in res if 'meta:zone:output' in x['meta']]
        if not zones:
            raise SongpalException("Device has no zones")
        return zones