docs: def from_any(cls, obj, bucket):
          """
          Ensure the current object is an index. Always returns a new object
          :param obj: string or IndexInfo object
          :param bucket: The bucket name
          :return: A new IndexInfo object
          """
          if isinstance(obj, cls):
              return cls(obj.raw)
  
          return cls({
              'namespace_id': 'default',
              'keyspace_id': bucket,
              'name': obj if obj else N1QL_PRIMARY_INDEX,
              'using': 'gsi'
          })