'Add criteria for a check.
Args:
artifact: An artifact name.
target: A tuple of artifact necessary to process the data.
callback: Entities that should be called if the condition matches.'

def Add(self, artifact=None, target=None, callback=None):

    if (target is None):
        target = Target()
    os_name = (target.Get('os') or [None])
    cpe = (target.Get('cpe') or [None])
    label = (target.Get('label') or [None])
    attributes = itertools.product(os_name, cpe, label)
    new_conditions = [Condition(artifact, *attr) for attr in attributes]
    self.conditions.update(new_conditions)
    self._Register(new_conditions, callback)
