def __get_action_params_type(func: Callable):
        """
        Returns the parameters class for a playbook action or None if the action has no parameters
        E.g. given an action like:

            @action
            def some_playbook(event: PodEvent, params: MyPlaybookParams):
                pass

        This function returns the class MyPlaybookParams
        """
        func_params = iter(inspect.signature(func).parameters.values())
        next(func_params)  # skip the event parameter
        action_params = next(func_params, None)
        if not action_params:
            return None
        params_cls = action_params.annotation
        if not issubclass(params_cls, BaseModel):
            raise Exception(f"Illegal action second parameter {params_cls}. Action params must extend BaseModel")
        return params_cls

        Returns the parameters class for a playbook action or None if the action has no parameters
        E.g. given an action like:

            @action
            def some_playbook(event: PodEvent, params: MyPlaybookParams):
                pass

        This function returns the class MyPlaybookParams
        
src/robusta/core/playbooks/actions_registry.py