'Keyword arguments:
valid_types -- valid value types for this key
valid_values -- if present, a set of valid options for this key
valid_regex -- if present, a regex the value must satisfy
valid_targets -- this key can only be defined for these target types
default -- if this key isn\'t defined, default to this value
component_type -- "action" or "check" if relevant for this key
aliases -- other keys you can use (only if "normal" one isn\'t used)'

def __init__(self, valid_types=None, valid_values=None, valid_regex=None, valid_targets=None, default=None, component_type=None, aliases=None):

    self.valid_types = valid_types
    self.valid_values = valid_values
    if valid_regex:
        self.valid_regex = re.compile(valid_regex)
    else:
        self.valid_regex = None
    self.valid_targets = tup(valid_targets)
    self.default = default
    self.component_type = component_type
    self.aliases = (aliases or [])
