### Description

We've been working on the health API for a while and the breaking changes have slowed to the point where we can promote the API away from the `/_internal` categorization.
qa/smoke-test-http/src/javaRestTest/java/org/elasticsearch/http/HealthRestCancellationIT.java
import org.elasticsearch.health.node.HealthInfo;
import org.elasticsearch.plugins.HealthPlugin;
import org.elasticsearch.plugins.Plugin;
import org.elasticsearch.plugins.PluginsService;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.concurrent.CancellationException;
import java.util.concurrent.Semaphore;
import static org.elasticsearch.action.support.ActionTestUtils.wrapAsRestResponseListener;
import static org.elasticsearch.test.TaskAssertions.assertAllCancellableTasksAreCancelled;
import static org.elasticsearch.test.TaskAssertions.assertAllTasksHaveFinished;
import static org.elasticsearch.test.TaskAssertions.awaitTaskWithPrefix;
import static org.hamcrest.Matchers.empty;
import static org.hamcrest.Matchers.not;
public class HealthRestCancellationIT extends HttpSmokeTestCase {
    @Override
    protected Collection<Class<? extends Plugin>> nodePlugins() {
        return CollectionUtils.appendToCopy(super.nodePlugins(), BlockingHealthPlugin.class);
    }
    public void testHealthRestCancellation() throws Exception {
        runTest(new Request(HttpGet.METHOD_NAME, "/_internal/_health"));
    }
    private void runTest(Request request) throws Exception {
        List<Semaphore> blocks = new ArrayList<>();
        for (PluginsService pluginsService : internalCluster().getInstances(PluginsService.class)) {
            for (BlockingHealthPlugin plugin : pluginsService.filterPlugins(BlockingHealthPlugin.class)) {
                blocks.add(plugin.operationBlock);
            }
        }