code: def shrink(self, using=None, **kwargs):
          
          return self._get_connection(using).indices.shrink(index=self._name, **kwargs)
docs: The shrink index API allows you to shrink an existing index into a new
          index with fewer primary shards. The number of primary shards in the
          target index must be a factor of the shards in the source index. For
          example an index with 8 primary shards can be shrunk into 4, 2 or 1
          primary shards or an index with 15 primary shards can be shrunk into 5,
          3 or 1. If the number of shards in the index is a prime number it can
          only be shrunk into a single primary shard. Before shrinking, a
          (primary or replica) copy of every shard in the index must be present
          on the same node.
  
          Any additional keyword arguments will be passed to
          ``Elasticsearch.indices.shrink`` unchanged.