'Initializer.
Args:
name: The name of the index. An index name must be a visible printable
ASCII string not starting with \'!\'. Whitespace characters are excluded.
namespace: The namespace of the index name. If not set, then the current
namespace is used.
source: Deprecated as of 1.7.6. The source of
the index:
SEARCH - The Index was created by adding documents throught this
search API.
DATASTORE - The Index was created as a side-effect of putting entities
into Datastore.
CLOUD_STORAGE - The Index was created as a side-effect of adding
objects into a Cloud Storage bucket.
Raises:
TypeError: If an unknown attribute is passed.
ValueError: If invalid namespace is given.'

def __init__(self, name, namespace=None, source=SEARCH):

    if (source not in self._SOURCES):
        raise ValueError(('source    must    be    one    of    %s' % self._SOURCES))
    if (source is not self.SEARCH):
        warnings.warn('source    is    deprecated.', DeprecationWarning, stacklevel=2)
    self._source = source
    self._name = _CheckIndexName(_ConvertToUnicode(name))
    self._namespace = _ConvertToUnicode(namespace)
    if (self._namespace is None):
        self._namespace = _ConvertToUnicode(namespace_manager.get_namespace())
    if (self._namespace is None):
        self._namespace = u''
    namespace_manager.validate_namespace(self._namespace, exception=ValueError)
    self._schema = None
    self._storage_usage = None
    self._storage_limit = None
