'Grab properties and values that can be generated.
:param options:
:type options:
:return:
:rtype:'

def properties(self, options=None):

    unordered = introspect(self.rebulk, options).properties
    ordered = OrderedDict()
    for k in sorted(unordered.keys(), key=six.text_type):
        ordered[k] = list(sorted(unordered[k], key=six.text_type))
    if hasattr(self.rebulk, 'customize_properties'):
        ordered = self.rebulk.customize_properties(ordered)
    return ordered
