from typing import Union
from typing import List


def is_valid_label(label: Union[str, List[str]]) -> bool:
    """Test whether label has a valid value.

    :param label: a phrase label (either a string or a list of strings)
    :type label: Union[str, List[str]]
    :return: whether the label is valid
    :rtype: bool
    """
    if isinstance(label, list):
        for item in label:
            if not isinstance(item, str):
                return False
        return True
    return isinstance(label, str)