def METHOD_NAME(self, threshold: float, metrics: Optional[List[str]] = None, class_mode: str = 'all'
                               ):
    """Add condition - the selected metrics scores are greater than the threshold.
    Parameters
    ----------
    threshold: float
        The threshold that the metrics result should be grater than.
    metrics: List[str]
        The names of the metrics from the check to apply the condition to. If None, runs on all the metrics that
        were calculated in the check.
    class_mode: str, default: 'all'
        The decision rule over the classes, one of 'any', 'all', class name. If 'any', passes if at least one class
        result is above the threshold, if 'all' passes if all the class results are above the threshold,
        class name, passes if the result for this specified class is above the threshold.
    """
    def condition(check_result, metrics_to_check=metrics):
        metrics_to_check = check_result['Metric'].unique() if metrics_to_check is None else metrics_to_check
        metrics_pass = []
        for metric in metrics_to_check:
            if metric not in check_result.Metric.unique():
                raise DeepchecksValueError(f'The requested metric was not calculated, the metrics calculated in '
                                           f'this check are: {check_result.Metric.unique()}.')
            class_val = check_result[check_result.Metric == metric].groupby('Class').Value
            class_gt = class_val.apply(lambda x: x > threshold)
            if class_mode == 'all':
                metrics_pass.append(all(class_gt))
            elif class_mode == 'any':
                metrics_pass.append(any(class_gt))
            elif class_mode in class_val.groups:
                metrics_pass.append(class_gt[class_val.indices[class_mode]].item())
            else:
                raise DeepchecksValueError(f'class_mode expected be one of the classes in the check results or any '
                                           f'or all, received {class_mode}.')
        if all(metrics_pass):
            return ConditionResult(ConditionCategory.PASS, 'Passed for all of the metrics.')
        else:
            failed_metrics = ([a for a, b in zip(metrics_to_check, metrics_pass) if not b])
            return ConditionResult(ConditionCategory.FAIL, f'Failed for metrics: {failed_metrics}')
    return self.add_condition(f'Selected metrics scores are greater than {format_number(threshold)}', condition)