[docs]@router.post("/subscribe")asyncdefsubscribe(scanner:DependsScanner,logger:DependsLogger,subscriptions:Union[SupportedSubscription,List[SupportedSubscription]])->Json:'''subscribe to specified subscriptions Args: subscriptions (Union[SupportedSubscription, List[SupportedSubscription]]): the subscriptions Returns: Json response with subscription ids in the result'''try:ifnotisinstance(subscriptions,list):subscriptions=[subscriptions]subscriptions=[Subscription(type=sub.type,**sub.model_dump())forsubinsubscriptions]sub_ids=awaitscanner.subscribe(subscriptions)ifnotscanner.is_running:asyncio.create_task(scanner.run())returnJson({"ok":True,"message":None,"result":sub_ids})exceptExceptionase:logger.info(f"{scanner.__class__.__name__}: Subscription Failed ({e}) 🔴")returnJson({"ok":False,"message":"Cannot Subscribe, an issue has occurred","result":None},status_code=500)