def get_resource_id(prefix, *data):
    parts = flatten(data)
    for part in parts:
        if type(part) not in (str, int, float):
            raise ValueError('Supported data types: int, float, list, tuple, str. Got: {}'.format(type(part)))
    return '{}-{}'.format(
        prefix,
        get_hash('-'.join(sorted(map(str, parts))))[-16:]
    )