diff --git a/client/rest-high-level/src/main/java/org/elasticsearch/client/RestHighLevelClientBuilder.java b/client/rest-high-level/src/main/java/org/elasticsearch/client/RestHighLevelClientBuilder.java
deleted file mode 100644
index 7109329da8198..0000000000000
--- a/client/rest-high-level/src/main/java/org/elasticsearch/client/RestHighLevelClientBuilder.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
- * or more contributor license agreements. Licensed under the Elastic License
- * 2.0 and the Server Side Public License, v 1; you may not use this file except
- * in compliance with, at your election, the Elastic License 2.0 or the Server
- * Side Public License, v 1.
- */
-
-package org.elasticsearch.client;
-
-import org.elasticsearch.core.CheckedConsumer;
-import org.elasticsearch.xcontent.NamedXContentRegistry;
-
-import java.io.IOException;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * Helper to build a {@link RestHighLevelClient}, allowing setting the low-level client that
- * should be used as well as whether API compatibility should be used.
- * @deprecated The High Level Rest Client is deprecated in favor of the
- *
- * Elasticsearch Java API Client
- */
-@Deprecated(since = "7.16.0", forRemoval = true)
-@SuppressWarnings("removal")
-public class RestHighLevelClientBuilder {
- private final RestClient restClient;
- private CheckedConsumer closeHandler = RestClient::close;
- private List namedXContentEntries = Collections.emptyList();
- private Boolean apiCompatibilityMode = null;
-
- public RestHighLevelClientBuilder(RestClient restClient) {
- this.restClient = restClient;
- }
-
- public RestHighLevelClientBuilder closeHandler(CheckedConsumer closeHandler) {
- this.closeHandler = closeHandler;
- return this;
- }
-
- public RestHighLevelClientBuilder namedXContentEntries(List namedXContentEntries) {
- this.namedXContentEntries = namedXContentEntries;
- return this;
- }
-
- public RestHighLevelClientBuilder setApiCompatibilityMode(Boolean enabled) {
- this.apiCompatibilityMode = enabled;
- return this;
- }
-
- public RestHighLevelClient build() {
- return new RestHighLevelClient(this.restClient, this.closeHandler, this.namedXContentEntries, this.apiCompatibilityMode);
- }
-}
diff --git a/client/rest-high-level/src/main/java/org/elasticsearch/client/SnapshotRequestConverters.java b/client/rest-high-level/src/main/java/org/elasticsearch/client/SnapshotRequestConverters.java
deleted file mode 100644
index 37e40fcd10a8b..0000000000000
--- a/client/rest-high-level/src/main/java/org/elasticsearch/client/SnapshotRequestConverters.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/*
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
- * or more contributor license agreements. Licensed under the Elastic License
- * 2.0 and the Server Side Public License, v 1; you may not use this file except
- * in compliance with, at your election, the Elastic License 2.0 or the Server
- * Side Public License, v 1.
- */
-
-package org.elasticsearch.client;
-
-import org.apache.http.client.methods.HttpDelete;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.client.methods.HttpPost;
-import org.apache.http.client.methods.HttpPut;
-import org.elasticsearch.action.admin.cluster.repositories.cleanup.CleanupRepositoryRequest;
-import org.elasticsearch.action.admin.cluster.repositories.delete.DeleteRepositoryRequest;
-import org.elasticsearch.action.admin.cluster.repositories.get.GetRepositoriesRequest;
-import org.elasticsearch.action.admin.cluster.repositories.put.PutRepositoryRequest;
-import org.elasticsearch.action.admin.cluster.repositories.verify.VerifyRepositoryRequest;
-import org.elasticsearch.action.admin.cluster.snapshots.clone.CloneSnapshotRequest;
-import org.elasticsearch.action.admin.cluster.snapshots.create.CreateSnapshotRequest;
-import org.elasticsearch.action.admin.cluster.snapshots.delete.DeleteSnapshotRequest;
-import org.elasticsearch.action.admin.cluster.snapshots.get.GetSnapshotsRequest;
-import org.elasticsearch.action.admin.cluster.snapshots.restore.RestoreSnapshotRequest;
-import org.elasticsearch.action.admin.cluster.snapshots.status.SnapshotsStatusRequest;
-import org.elasticsearch.common.Strings;
-
-import java.io.IOException;
-
-final class SnapshotRequestConverters {
-
- private SnapshotRequestConverters() {}
-
- static Request getRepositories(GetRepositoriesRequest getRepositoriesRequest) {
- String[] repositories = getRepositoriesRequest.repositories() == null ? Strings.EMPTY_ARRAY : getRepositoriesRequest.repositories();
- String endpoint = new RequestConverters.EndpointBuilder().addPathPartAsIs("_snapshot")
- .addCommaSeparatedPathParts(repositories)
- .build();
- Request request = new Request(HttpGet.METHOD_NAME, endpoint);
-
- RequestConverters.Params parameters = new RequestConverters.Params();
- parameters.withMasterTimeout(getRepositoriesRequest.masterNodeTimeout());
- parameters.withLocal(getRepositoriesRequest.local());
- request.addParameters(parameters.asMap());
- return request;
- }
-
- static Request createRepository(PutRepositoryRequest putRepositoryRequest) throws IOException {
- String endpoint = new RequestConverters.EndpointBuilder().addPathPart("_snapshot").addPathPart(putRepositoryRequest.name()).build();
- Request request = new Request(HttpPut.METHOD_NAME, endpoint);
-
- RequestConverters.Params parameters = new RequestConverters.Params();
- parameters.withMasterTimeout(putRepositoryRequest.masterNodeTimeout());
- parameters.withTimeout(putRepositoryRequest.timeout());
- if (putRepositoryRequest.verify() == false) {
- parameters.putParam("verify", "false");
- }
- request.addParameters(parameters.asMap());
- request.setEntity(RequestConverters.createEntity(putRepositoryRequest, RequestConverters.REQUEST_BODY_CONTENT_TYPE));
- return request;
- }
-
- static Request deleteRepository(DeleteRepositoryRequest deleteRepositoryRequest) {
- String endpoint = new RequestConverters.EndpointBuilder().addPathPartAsIs("_snapshot")
- .addPathPart(deleteRepositoryRequest.name())
- .build();
- Request request = new Request(HttpDelete.METHOD_NAME, endpoint);
-
- RequestConverters.Params parameters = new RequestConverters.Params();
- parameters.withMasterTimeout(deleteRepositoryRequest.masterNodeTimeout());
- parameters.withTimeout(deleteRepositoryRequest.timeout());
- request.addParameters(parameters.asMap());
- return request;
- }
-
- static Request verifyRepository(VerifyRepositoryRequest verifyRepositoryRequest) {
- String endpoint = new RequestConverters.EndpointBuilder().addPathPartAsIs("_snapshot")
- .addPathPart(verifyRepositoryRequest.name())
- .addPathPartAsIs("_verify")
- .build();
- Request request = new Request(HttpPost.METHOD_NAME, endpoint);
-
- RequestConverters.Params parameters = new RequestConverters.Params();
- parameters.withMasterTimeout(verifyRepositoryRequest.masterNodeTimeout());
- parameters.withTimeout(verifyRepositoryRequest.timeout());
- request.addParameters(parameters.asMap());
- return request;
- }
-
- static Request cleanupRepository(CleanupRepositoryRequest cleanupRepositoryRequest) {
- String endpoint = new RequestConverters.EndpointBuilder().addPathPartAsIs("_snapshot")
- .addPathPart(cleanupRepositoryRequest.name())
- .addPathPartAsIs("_cleanup")
- .build();
- Request request = new Request(HttpPost.METHOD_NAME, endpoint);
-
- RequestConverters.Params parameters = new RequestConverters.Params();
- parameters.withMasterTimeout(cleanupRepositoryRequest.masterNodeTimeout());
- parameters.withTimeout(cleanupRepositoryRequest.timeout());
- request.addParameters(parameters.asMap());
- return request;
- }
-
- static Request createSnapshot(CreateSnapshotRequest createSnapshotRequest) throws IOException {
- String endpoint = new RequestConverters.EndpointBuilder().addPathPart("_snapshot")
- .addPathPart(createSnapshotRequest.repository())
- .addPathPart(createSnapshotRequest.snapshot())
- .build();
- Request request = new Request(HttpPut.METHOD_NAME, endpoint);
- RequestConverters.Params params = new RequestConverters.Params();
- params.withMasterTimeout(createSnapshotRequest.masterNodeTimeout());
- params.withWaitForCompletion(createSnapshotRequest.waitForCompletion());
- request.addParameters(params.asMap());
- request.setEntity(RequestConverters.createEntity(createSnapshotRequest, RequestConverters.REQUEST_BODY_CONTENT_TYPE));
- return request;
- }
-
- static Request cloneSnapshot(CloneSnapshotRequest cloneSnapshotRequest) throws IOException {
- String endpoint = new RequestConverters.EndpointBuilder().addPathPart("_snapshot")
- .addPathPart(cloneSnapshotRequest.repository())
- .addPathPart(cloneSnapshotRequest.source())
- .addPathPart("_clone")
- .addPathPart(cloneSnapshotRequest.target())
- .build();
- Request request = new Request(HttpPut.METHOD_NAME, endpoint);
- RequestConverters.Params params = new RequestConverters.Params();
- params.withMasterTimeout(cloneSnapshotRequest.masterNodeTimeout());
- request.addParameters(params.asMap());
- request.setEntity(RequestConverters.createEntity(cloneSnapshotRequest, RequestConverters.REQUEST_BODY_CONTENT_TYPE));
- return request;
- }
-
- static Request getSnapshots(GetSnapshotsRequest getSnapshotsRequest) {
- RequestConverters.EndpointBuilder endpointBuilder = new RequestConverters.EndpointBuilder().addPathPartAsIs("_snapshot")
- .addCommaSeparatedPathParts(getSnapshotsRequest.repositories());
- String endpoint;
- if (getSnapshotsRequest.snapshots().length == 0) {
- endpoint = endpointBuilder.addPathPart("_all").build();
- } else {
- endpoint = endpointBuilder.addCommaSeparatedPathParts(getSnapshotsRequest.snapshots()).build();
- }
-
- Request request = new Request(HttpGet.METHOD_NAME, endpoint);
-
- RequestConverters.Params parameters = new RequestConverters.Params();
- parameters.withMasterTimeout(getSnapshotsRequest.masterNodeTimeout());
- parameters.putParam("ignore_unavailable", Boolean.toString(getSnapshotsRequest.ignoreUnavailable()));
- parameters.putParam("verbose", Boolean.toString(getSnapshotsRequest.verbose()));
- request.addParameters(parameters.asMap());
- return request;
- }
-
- static Request snapshotsStatus(SnapshotsStatusRequest snapshotsStatusRequest) {
- String endpoint = new RequestConverters.EndpointBuilder().addPathPartAsIs("_snapshot")
- .addPathPart(snapshotsStatusRequest.repository())
- .addCommaSeparatedPathParts(snapshotsStatusRequest.snapshots())
- .addPathPartAsIs("_status")
- .build();
- Request request = new Request(HttpGet.METHOD_NAME, endpoint);
-
- RequestConverters.Params parameters = new RequestConverters.Params();
- parameters.withMasterTimeout(snapshotsStatusRequest.masterNodeTimeout());
- parameters.withIgnoreUnavailable(snapshotsStatusRequest.ignoreUnavailable());
- request.addParameters(parameters.asMap());
- return request;
- }
-
- static Request restoreSnapshot(RestoreSnapshotRequest restoreSnapshotRequest) throws IOException {
- String endpoint = new RequestConverters.EndpointBuilder().addPathPartAsIs("_snapshot")
- .addPathPart(restoreSnapshotRequest.repository())
- .addPathPart(restoreSnapshotRequest.snapshot())
- .addPathPartAsIs("_restore")
- .build();
- Request request = new Request(HttpPost.METHOD_NAME, endpoint);
- RequestConverters.Params parameters = new RequestConverters.Params();
- parameters.withMasterTimeout(restoreSnapshotRequest.masterNodeTimeout());
- parameters.withWaitForCompletion(restoreSnapshotRequest.waitForCompletion());
- request.addParameters(parameters.asMap());
- request.setEntity(RequestConverters.createEntity(restoreSnapshotRequest, RequestConverters.REQUEST_BODY_CONTENT_TYPE));
- return request;
- }
-
- static Request deleteSnapshot(DeleteSnapshotRequest deleteSnapshotRequest) {
- String endpoint = new RequestConverters.EndpointBuilder().addPathPartAsIs("_snapshot")
- .addPathPart(deleteSnapshotRequest.repository())
- .addCommaSeparatedPathParts(deleteSnapshotRequest.snapshots())
- .build();
- Request request = new Request(HttpDelete.METHOD_NAME, endpoint);
-
- RequestConverters.Params parameters = new RequestConverters.Params();
- parameters.withMasterTimeout(deleteSnapshotRequest.masterNodeTimeout());
- request.addParameters(parameters.asMap());
- return request;
- }
-}
diff --git a/client/rest-high-level/src/main/java/org/elasticsearch/client/XPackRequestConverters.java b/client/rest-high-level/src/main/java/org/elasticsearch/client/XPackRequestConverters.java
deleted file mode 100644
index d5605d2211fcf..0000000000000
--- a/client/rest-high-level/src/main/java/org/elasticsearch/client/XPackRequestConverters.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
- * or more contributor license agreements. Licensed under the Elastic License
- * 2.0 and the Server Side Public License, v 1; you may not use this file except
- * in compliance with, at your election, the Elastic License 2.0 or the Server
- * Side Public License, v 1.
- */
-
-package org.elasticsearch.client;
-
-import org.apache.http.client.methods.HttpGet;
-import org.elasticsearch.client.xpack.XPackInfoRequest;
-import org.elasticsearch.client.xpack.XPackUsageRequest;
-
-import java.util.EnumSet;
-import java.util.Locale;
-import java.util.stream.Collectors;
-
-final class XPackRequestConverters {
-
- private XPackRequestConverters() {}
-
- static Request info(XPackInfoRequest infoRequest) {
- Request request = new Request(HttpGet.METHOD_NAME, "/_xpack");
- if (false == infoRequest.isVerbose()) {
- request.addParameter("human", "false");
- }
- if (false == infoRequest.getCategories().equals(EnumSet.allOf(XPackInfoRequest.Category.class))) {
- request.addParameter(
- "categories",
- infoRequest.getCategories().stream().map(c -> c.toString().toLowerCase(Locale.ROOT)).collect(Collectors.joining(","))
- );
- }
- return request;
- }
-
- static Request usage(XPackUsageRequest usageRequest) {
- Request request = new Request(HttpGet.METHOD_NAME, "/_xpack/usage");
- RequestConverters.Params parameters = new RequestConverters.Params();
- parameters.withMasterTimeout(usageRequest.masterNodeTimeout());
- request.addParameters(parameters.asMap());
- return request;
- }
-}
diff --git a/client/rest-high-level/src/main/java/org/elasticsearch/client/common/ProtocolUtils.java b/client/rest-high-level/src/main/java/org/elasticsearch/client/common/ProtocolUtils.java
deleted file mode 100644
index 181cb983f1514..0000000000000
--- a/client/rest-high-level/src/main/java/org/elasticsearch/client/common/ProtocolUtils.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
- * or more contributor license agreements. Licensed under the Elastic License
- * 2.0 and the Server Side Public License, v 1; you may not use this file except
- * in compliance with, at your election, the Elastic License 2.0 or the Server
- * Side Public License, v 1.
- */
-
-package org.elasticsearch.client.common;
-
-import java.util.Arrays;
-import java.util.Map;
-
-/**
- * Common utilities used for XPack protocol classes
- */
-public final class ProtocolUtils {
-
- /**
- * Implements equals for a map of string arrays
- *
- * The map of string arrays is used in some XPack protocol classes but does't work with equal.
- */
- public static boolean equals(Map a, Map b) {
- if (a == null) {
- return b == null;
- }
- if (b == null) {
- return false;
- }
- if (a.size() != b.size()) {
- return false;
- }
- for (Map.Entry entry : a.entrySet()) {
- String[] val = entry.getValue();
- String key = entry.getKey();
- if (val == null) {
- if (b.get(key) != null || b.containsKey(key) == false) {
- return false;
- }
- } else {
- if (Arrays.equals(val, b.get(key)) == false) {
- return false;
- }
- }
- }
- return true;
- }
-
- /**
- * Implements hashCode for map of string arrays
- *
- * The map of string arrays does't work with hashCode.
- */
- public static int hashCode(Map a) {
- int hash = 0;
- for (Map.Entry entry : a.entrySet())
- hash += Arrays.hashCode(entry.getValue());
- return hash;
- }
-}
diff --git a/client/rest-high-level/src/main/java/org/elasticsearch/client/common/TimeUtil.java b/client/rest-high-level/src/main/java/org/elasticsearch/client/common/TimeUtil.java
deleted file mode 100644
index 5971dea044daa..0000000000000
--- a/client/rest-high-level/src/main/java/org/elasticsearch/client/common/TimeUtil.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
- * or more contributor license agreements. Licensed under the Elastic License
- * 2.0 and the Server Side Public License, v 1; you may not use this file except
- * in compliance with, at your election, the Elastic License 2.0 or the Server
- * Side Public License, v 1.
- */
-package org.elasticsearch.client.common;
-
-import org.elasticsearch.common.time.DateFormatters;
-import org.elasticsearch.xcontent.XContentParser;
-
-import java.io.IOException;
-import java.time.Instant;
-import java.time.format.DateTimeFormatter;
-import java.util.Date;
-
-public final class TimeUtil {
-
- /**
- * Parse out a Date object given the current parser and field name.
- *
- * @param parser current XContentParser
- * @param fieldName the field's preferred name (utilized in exception)
- * @return parsed Date object
- * @throws IOException from XContentParser
- */
- public static Date parseTimeField(XContentParser parser, String fieldName) throws IOException {
- if (parser.currentToken() == XContentParser.Token.VALUE_NUMBER) {
- return new Date(parser.longValue());
- } else if (parser.currentToken() == XContentParser.Token.VALUE_STRING) {
- return new Date(DateFormatters.from(DateTimeFormatter.ISO_INSTANT.parse(parser.text())).toInstant().toEpochMilli());
- }
- throw new IllegalArgumentException("unexpected token [" + parser.currentToken() + "] for [" + fieldName + "]");
- }
-
- /**
- * Parse out an Instant object given the current parser and field name.
- *
- * @param parser current XContentParser
- * @param fieldName the field's preferred name (utilized in exception)
- * @return parsed Instant object
- * @throws IOException from XContentParser
- */
- public static Instant parseTimeFieldToInstant(XContentParser parser, String fieldName) throws IOException {
- if (parser.currentToken() == XContentParser.Token.VALUE_NUMBER) {
- return Instant.ofEpochMilli(parser.longValue());
- } else if (parser.currentToken() == XContentParser.Token.VALUE_STRING) {
- return DateFormatters.from(DateTimeFormatter.ISO_INSTANT.parse(parser.text())).toInstant();
- }
- throw new IllegalArgumentException("unexpected token [" + parser.currentToken() + "] for [" + fieldName + "]");
- }
-
-}
diff --git a/client/rest-high-level/src/main/java/org/elasticsearch/client/common/XContentSource.java b/client/rest-high-level/src/main/java/org/elasticsearch/client/common/XContentSource.java
deleted file mode 100644
index e01e61fda5884..0000000000000
--- a/client/rest-high-level/src/main/java/org/elasticsearch/client/common/XContentSource.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
- * or more contributor license agreements. Licensed under the Elastic License
- * 2.0 and the Server Side Public License, v 1; you may not use this file except
- * in compliance with, at your election, the Elastic License 2.0 or the Server
- * Side Public License, v 1.
- */
-
-package org.elasticsearch.client.common;
-
-import org.elasticsearch.xcontent.ObjectPath;
-import org.elasticsearch.xcontent.XContentParser;
-import org.elasticsearch.xcontent.XContentUtils;
-
-import java.io.IOException;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Encapsulates the xcontent source
- */
-public class XContentSource {
-
- private final Object data;
-
- /**
- * Constructs a new XContentSource out of the given parser
- */
- public XContentSource(XContentParser parser) throws IOException {
- this.data = XContentUtils.readValue(parser, parser.nextToken());
- }
-
- /**
- * @return true if the top level value of the source is a map
- */
- public boolean isMap() {
- return data instanceof Map;
- }
-
- /**
- * @return The source as a map
- */
- @SuppressWarnings("unchecked")
- public Map getAsMap() {
- return (Map) data;
- }
-
- /**
- * @return true if the top level value of the source is a list
- */
- public boolean isList() {
- return data instanceof List;
- }
-
- /**
- * @return The source as a list
- */
- @SuppressWarnings("unchecked")
- public List