Explicitly execute a cluster reroute allocation command including specific commands.
        `<http://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-reroute.html>`_

        :arg body: The definition of `commands` to perform (`move`, `cancel`,
            `allocate`)
        :arg dry_run: Simulate the operation only and return the resulting state
        :arg explain: Return an explanation of why the commands can or cannot be
            executed
        :arg master_timeout: Explicit operation timeout for connection to master
            node
        :arg metric: Limit the information returned to the specified metrics.
            Defaults to all but metadata, valid choices are: '_all', 'blocks',
            'metadata', 'nodes', 'routing_table', 'master_node', 'version'
        :arg retry_failed: Retries allocation of shards that are blocked due to
            too many subsequent allocation failures
        :arg timeout: Explicit operation timeout

def reroute(self, body=None, params=None):
        """
        Explicitly execute a cluster reroute allocation command including specific commands.
        `<http://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-reroute.html>`_

        :arg body: The definition of `commands` to perform (`move`, `cancel`,
            `allocate`)
        :arg dry_run: Simulate the operation only and return the resulting state
        :arg explain: Return an explanation of why the commands can or cannot be
            executed
        :arg master_timeout: Explicit operation timeout for connection to master
            node
        :arg metric: Limit the information returned to the specified metrics.
            Defaults to all but metadata, valid choices are: '_all', 'blocks',
            'metadata', 'nodes', 'routing_table', 'master_node', 'version'
        :arg retry_failed: Retries allocation of shards that are blocked due to
            too many subsequent allocation failures
        :arg timeout: Explicit operation timeout
        """
        return self.transport.perform_request('POST', '/_cluster/reroute',
            params=params, body=body)