diff --git a/.github/workflows/gradle-check.yml b/.github/workflows/gradle-check.yml
index 34742fbafe041..e72765e68fb13 100644
--- a/.github/workflows/gradle-check.yml
+++ b/.github/workflows/gradle-check.yml
@@ -94,7 +94,9 @@ jobs:
### Gradle Check (Jenkins) Run Completed with:
* **RESULT:** ${{ env.result }} :x:
* **FAILURES:**
+ ```
${{ env.test_failures }}
+ ```
* **URL:** ${{ env.workflow_url }}
* **CommitID:** ${{ env.pr_from_sha }}
Please examine the workflow log, locate, and copy-paste the failure below, then iterate to green.
diff --git a/.idea/runConfigurations/Debug_OpenSearch.xml b/.idea/runConfigurations/Debug_OpenSearch.xml
index 0d8bf59823acf..c18046f873477 100644
--- a/.idea/runConfigurations/Debug_OpenSearch.xml
+++ b/.idea/runConfigurations/Debug_OpenSearch.xml
@@ -6,6 +6,10 @@
+
+
+
+
-
+
\ No newline at end of file
diff --git a/client/rest-high-level/src/main/java/org/opensearch/client/RequestConverters.java b/client/rest-high-level/src/main/java/org/opensearch/client/RequestConverters.java
index 88e3a3a904830..70a18ff85374f 100644
--- a/client/rest-high-level/src/main/java/org/opensearch/client/RequestConverters.java
+++ b/client/rest-high-level/src/main/java/org/opensearch/client/RequestConverters.java
@@ -53,12 +53,7 @@
import org.opensearch.action.get.GetRequest;
import org.opensearch.action.get.MultiGetRequest;
import org.opensearch.action.index.IndexRequest;
-import org.opensearch.action.search.ClearScrollRequest;
-import org.opensearch.action.search.CreatePitRequest;
-import org.opensearch.action.search.DeletePitRequest;
-import org.opensearch.action.search.MultiSearchRequest;
-import org.opensearch.action.search.SearchRequest;
-import org.opensearch.action.search.SearchScrollRequest;
+import org.opensearch.action.search.*;
import org.opensearch.action.support.ActiveShardCount;
import org.opensearch.action.support.IndicesOptions;
import org.opensearch.action.support.WriteRequest;
@@ -502,6 +497,11 @@ static Request getAllPits() {
return new Request(HttpGet.METHOD_NAME, "/_search/point_in_time/_all");
}
+ static Request updatePit(UpdatePitRequest updatePitRequest) throws IOException {
+ Request request = new Request(HttpDelete.METHOD_NAME, "/_search/point_in_time");
+ request.setEntity(createEntity(updatePitRequest, REQUEST_BODY_CONTENT_TYPE));
+ return request;
+ }
static Request multiSearch(MultiSearchRequest multiSearchRequest) throws IOException {
Request request = new Request(HttpPost.METHOD_NAME, "/_msearch");
diff --git a/client/rest-high-level/src/main/java/org/opensearch/client/RestHighLevelClient.java b/client/rest-high-level/src/main/java/org/opensearch/client/RestHighLevelClient.java
index 27f13fc3c00c4..4852b2138ae1a 100644
--- a/client/rest-high-level/src/main/java/org/opensearch/client/RestHighLevelClient.java
+++ b/client/rest-high-level/src/main/java/org/opensearch/client/RestHighLevelClient.java
@@ -57,18 +57,7 @@
import org.opensearch.action.get.MultiGetResponse;
import org.opensearch.action.index.IndexRequest;
import org.opensearch.action.index.IndexResponse;
-import org.opensearch.action.search.ClearScrollRequest;
-import org.opensearch.action.search.ClearScrollResponse;
-import org.opensearch.action.search.CreatePitRequest;
-import org.opensearch.action.search.CreatePitResponse;
-import org.opensearch.action.search.DeletePitRequest;
-import org.opensearch.action.search.DeletePitResponse;
-import org.opensearch.action.search.GetAllPitNodesResponse;
-import org.opensearch.action.search.MultiSearchRequest;
-import org.opensearch.action.search.MultiSearchResponse;
-import org.opensearch.action.search.SearchRequest;
-import org.opensearch.action.search.SearchResponse;
-import org.opensearch.action.search.SearchScrollRequest;
+import org.opensearch.action.search.*;
import org.opensearch.action.support.master.AcknowledgedResponse;
import org.opensearch.action.update.UpdateRequest;
import org.opensearch.action.update.UpdateResponse;
@@ -1403,6 +1392,16 @@ public final Cancellable getAllPitsAsync(RequestOptions options, ActionListener<
);
}
+ public final UpdatePitResponse updatePit(UpdatePitRequest updatePitRequest, RequestOptions options) throws IOException {
+ return performRequestAndParseEntity(
+ updatePitRequest,
+ RequestConverters::updatePit,
+ options,
+ UpdatePitResponse::fromXContent,
+ emptySet()
+ );
+ }
+
/**
* Clears one or more scroll ids using the Clear Scroll API.
*
diff --git a/client/rest-high-level/src/test/java/org/opensearch/client/PitIT.java b/client/rest-high-level/src/test/java/org/opensearch/client/PitIT.java
index 1f10deb400ecc..c2b48b692c61e 100644
--- a/client/rest-high-level/src/test/java/org/opensearch/client/PitIT.java
+++ b/client/rest-high-level/src/test/java/org/opensearch/client/PitIT.java
@@ -32,7 +32,7 @@
* Tests point in time API with rest high level client
*/
public class PitIT extends OpenSearchRestHighLevelClientTestCase {
-
+//--this is is PITIT
@Before
public void indexDocuments() throws IOException {
Request doc1 = new Request(HttpPut.METHOD_NAME, "/index/_doc/1");
diff --git a/server/src/main/java/org/opensearch/action/ActionModule.java b/server/src/main/java/org/opensearch/action/ActionModule.java
index 84bc9b395c5dc..b48c7cbdf2e8c 100644
--- a/server/src/main/java/org/opensearch/action/ActionModule.java
+++ b/server/src/main/java/org/opensearch/action/ActionModule.java
@@ -247,20 +247,7 @@
import org.opensearch.action.ingest.SimulatePipelineTransportAction;
import org.opensearch.action.main.MainAction;
import org.opensearch.action.main.TransportMainAction;
-import org.opensearch.action.search.ClearScrollAction;
-import org.opensearch.action.search.CreatePitAction;
-import org.opensearch.action.search.DeletePitAction;
-import org.opensearch.action.search.MultiSearchAction;
-import org.opensearch.action.search.GetAllPitsAction;
-import org.opensearch.action.search.SearchAction;
-import org.opensearch.action.search.SearchScrollAction;
-import org.opensearch.action.search.TransportClearScrollAction;
-import org.opensearch.action.search.TransportCreatePitAction;
-import org.opensearch.action.search.TransportDeletePitAction;
-import org.opensearch.action.search.TransportGetAllPitsAction;
-import org.opensearch.action.search.TransportMultiSearchAction;
-import org.opensearch.action.search.TransportSearchAction;
-import org.opensearch.action.search.TransportSearchScrollAction;
+import org.opensearch.action.search.*;
import org.opensearch.action.support.ActionFilters;
import org.opensearch.action.support.AutoCreateIndex;
import org.opensearch.action.support.DestructiveOperations;
@@ -699,7 +686,7 @@ public void reg
actions.register(DeletePitAction.INSTANCE, TransportDeletePitAction.class);
actions.register(PitSegmentsAction.INSTANCE, TransportPitSegmentsAction.class);
actions.register(GetAllPitsAction.INSTANCE, TransportGetAllPitsAction.class);
-
+ // TODO: register the api here
// Remote Store
actions.register(RestoreRemoteStoreAction.INSTANCE, TransportRestoreRemoteStoreAction.class);
@@ -890,6 +877,7 @@ public void initRestHandlers(Supplier nodesInCluster) {
registerHandler.accept(new RestGetAllPitsAction(nodesInCluster));
registerHandler.accept(new RestPitSegmentsAction(nodesInCluster));
registerHandler.accept(new RestDeleteDecommissionStateAction());
+ // TODO: add update api here
for (ActionPlugin plugin : actionPlugins) {
for (RestHandler handler : plugin.getRestHandlers(
diff --git a/server/src/main/java/org/opensearch/action/search/UpdatePitAction.java b/server/src/main/java/org/opensearch/action/search/UpdatePitAction.java
new file mode 100644
index 0000000000000..01dff89def026
--- /dev/null
+++ b/server/src/main/java/org/opensearch/action/search/UpdatePitAction.java
@@ -0,0 +1,20 @@
+/*
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * The OpenSearch Contributors require contributions made to
+ * this file be licensed under the Apache-2.0 license or a
+ * compatible open source license.
+ */
+
+package org.opensearch.action.search;
+
+import org.opensearch.action.ActionType;
+
+public class UpdatePitAction extends ActionType {
+ public static final UpdatePitAction INSTANCE = new UpdatePitAction();
+ public static final String NAME = "indices:data/read/point_in_time/update";
+
+ private UpdatePitAction(){
+ super(NAME, UpdatePitResponse::new);
+ }
+}
diff --git a/server/src/main/java/org/opensearch/action/search/UpdatePitRequest.java b/server/src/main/java/org/opensearch/action/search/UpdatePitRequest.java
new file mode 100644
index 0000000000000..8c9ef54a0b79e
--- /dev/null
+++ b/server/src/main/java/org/opensearch/action/search/UpdatePitRequest.java
@@ -0,0 +1,90 @@
+/*
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * The OpenSearch Contributors require contributions made to
+ * this file be licensed under the Apache-2.0 license or a
+ * compatible open source license.
+ */
+
+package org.opensearch.action.search;
+
+import org.opensearch.action.ActionRequest;
+import org.opensearch.action.ActionRequestValidationException;
+import org.opensearch.common.io.stream.StreamInput;
+import org.opensearch.common.unit.TimeValue;
+import org.opensearch.common.xcontent.ToXContent;
+import org.opensearch.common.xcontent.ToXContentObject;
+import org.opensearch.common.xcontent.XContentBuilder;
+import org.opensearch.common.xcontent.XContentParser;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import static org.opensearch.action.ValidateActions.addValidationError;
+
+public class UpdatePitRequest extends ActionRequest implements ToXContentObject {
+// TODO: update the pit reqyest to handle not just array
+ private final List updatePitRequests;
+
+ public UpdatePitRequest(StreamInput in) throws IOException {
+ super(in);
+ int size = in.readVInt();
+ updatePitRequests = new ArrayList<>();
+ for(int i=0;i getUpdatePitRequests() {
+ return updatePitRequests;
+ }
+
+ public UpdatePitRequest(UpdatePitRequestInfo... updatePitRequests){
+ this.updatePitRequests = (Arrays.asList(updatePitRequests));
+ }
+
+ public UpdatePitRequest(List updatePitRequests){
+ this.updatePitRequests = updatePitRequests;
+ }
+
+ public UpdatePitRequest() {}
+
+
+ @Override
+ public ActionRequestValidationException validate() {
+ ActionRequestValidationException validationException = null;
+ if (keepAlive == null) {
+ validationException = addValidationError("keep alive not specified", validationException);
+ }
+ return validationException;
+ }
+
+ @Override
+ public XContentBuilder toXContent(XContentBuilder builder, ToXContent.Params params) throws IOException {
+ builder.field("keep_alive", keepAlive);
+ builder.field("pit_id", pit_id);
+ return builder;
+ }
+
+ public void fromXContent(XContentParser parser) throws IOException {
+ if(parser.nextToken() != XContentParser.Token.START_OBJECT){
+ throw new IllegalArgumentException("Malformed content, must start with an object");
+ } else {
+ XContentParser.Token token;
+ String currentFieldName = null;
+ while((token = parser.nextToken()) != XContentParser.Token.END_OBJECT){
+ if (token == XContentParser.Token.FIELD_NAME){
+ currentFieldName = parser.currentName();
+ } else if("keep_alive".equals(currentFieldName)){
+ if(token.isValue() == false){
+ throw new IllegalArgumentException("keep_alive should only contain a time value");
+ }
+ keepAlive = TimeValue.parseTimeValue(parser.text(),"keep_alive");
+ }
+
+ }
+ }
+ }
+}
diff --git a/server/src/main/java/org/opensearch/action/search/UpdatePitRequestInfo.java b/server/src/main/java/org/opensearch/action/search/UpdatePitRequestInfo.java
new file mode 100644
index 0000000000000..f2a6cb7029979
--- /dev/null
+++ b/server/src/main/java/org/opensearch/action/search/UpdatePitRequestInfo.java
@@ -0,0 +1,35 @@
+/*
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * The OpenSearch Contributors require contributions made to
+ * this file be licensed under the Apache-2.0 license or a
+ * compatible open source license.
+ */
+
+package org.opensearch.action.search;
+
+import org.opensearch.common.io.stream.StreamInput;
+import org.opensearch.common.io.stream.StreamOutput;
+import org.opensearch.common.unit.TimeValue;
+
+import java.io.IOException;
+
+public class UpdatePitRequestInfo {
+ private final String pitId;
+ private final TimeValue keepAlive;
+
+ public UpdatePitRequestInfo(String pitId, TimeValue keepAlive){
+ this.pitId = pitId;
+ this.keepAlive = keepAlive;
+ }
+
+ public UpdatePitRequestInfo(StreamInput in) throws IOException {
+ pitId = in.readString();
+ keepAlive = in.readTimeValue();
+ }
+
+ public void writeTo(StreamOutput out) throws IOException {
+ out.writeString(pitId);
+ out.writeTimeValue(keepAlive);
+ }
+}
diff --git a/server/src/main/java/org/opensearch/action/search/UpdatePitResponse.java b/server/src/main/java/org/opensearch/action/search/UpdatePitResponse.java
new file mode 100644
index 0000000000000..2d007f5c00648
--- /dev/null
+++ b/server/src/main/java/org/opensearch/action/search/UpdatePitResponse.java
@@ -0,0 +1,88 @@
+/*
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * The OpenSearch Contributors require contributions made to
+ * this file be licensed under the Apache-2.0 license or a
+ * compatible open source license.
+ */
+
+package org.opensearch.action.search;
+
+import org.opensearch.action.ActionResponse;
+import org.opensearch.common.ParseField;
+import org.opensearch.common.io.stream.StreamInput;
+import org.opensearch.common.io.stream.StreamOutput;
+import org.opensearch.common.xcontent.*;
+import org.opensearch.rest.RestStatus;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.opensearch.common.xcontent.ConstructingObjectParser.constructorArg;
+import static org.opensearch.rest.RestStatus.NOT_FOUND;
+import static org.opensearch.rest.RestStatus.OK;
+
+public class UpdatePitResponse extends ActionResponse implements StatusToXContentObject {
+ private final List updatePitResults;
+
+ public UpdatePitResponse(List updatePitResults){
+ this.updatePitResults = updatePitResults;
+ }
+ public UpdatePitResponse(StreamInput in) throws IOException{
+ super(in);
+ int size = in.readVInt();
+ updatePitResults = new ArrayList<>();
+ for (int i=0; i < size; i++) {
+ updatePitResults.add(new UpdatePitResponseInfo(in));
+ }
+ }
+
+ public List getUpdatePitResults() {
+ return updatePitResults;
+ }
+
+ @Override
+ public RestStatus status() {
+ if (updatePitResults.isEmpty()) return NOT_FOUND;
+ return OK;
+ }
+
+ @Override
+ public void writeTo(StreamOutput out) throws IOException {
+ out.writeVInt(updatePitResults.size());
+ for (UpdatePitResponseInfo updatePitResult : updatePitResults) {
+ updatePitResult.writeTo(out);
+ }
+ }
+
+ @Override
+ public XContentBuilder toXContent(XContentBuilder builder, ToXContent.Params params) throws IOException {
+ builder.startObject();
+ builder.startArray("pits");
+ for (UpdatePitResponseInfo response: updatePitResults) {
+ response.toXContent(builder,params);
+ }
+ builder.endArray();
+ builder.endObject();
+ return builder;
+ }
+
+ private static final ConstructingObjectParser PARSER = new ConstructingObjectParser<>(
+ "update_pit_response",
+ true,
+ (Object[] parsedObjects) -> {
+ @SuppressWarnings("unchecked")
+ List updatePitResponseInfoList = (List) parsedObjects[0];
+ return new UpdatePitResponse(updatePitResponseInfoList);
+ }
+ );
+
+ static {
+ PARSER.declareObjectArray(constructorArg(), UpdatePitResponseInfo.PARSER, new ParseField("pits"));
+ }
+
+ public static UpdatePitResponse fromXContent(XContentParser parser) throws IOException {
+ return PARSER.parse(parser, null);
+ }
+}
diff --git a/server/src/main/java/org/opensearch/action/search/UpdatePitResponseInfo.java b/server/src/main/java/org/opensearch/action/search/UpdatePitResponseInfo.java
new file mode 100644
index 0000000000000..3ab6c09a571ee
--- /dev/null
+++ b/server/src/main/java/org/opensearch/action/search/UpdatePitResponseInfo.java
@@ -0,0 +1,76 @@
+/*
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * The OpenSearch Contributors require contributions made to
+ * this file be licensed under the Apache-2.0 license or a
+ * compatible open source license.
+ */
+
+package org.opensearch.action.search;
+
+import org.opensearch.common.ParseField;
+import org.opensearch.common.io.stream.StreamInput;
+import org.opensearch.common.io.stream.StreamOutput;
+import org.opensearch.common.io.stream.Writeable;
+import org.opensearch.common.xcontent.ConstructingObjectParser;
+import org.opensearch.common.xcontent.ToXContent;
+import org.opensearch.common.xcontent.XContentBuilder;
+import org.opensearch.transport.TransportResponse;
+
+import java.io.IOException;
+
+import static org.opensearch.common.xcontent.ConstructingObjectParser.constructorArg;
+
+public class UpdatePitResponseInfo extends TransportResponse implements Writeable, ToXContent {
+ private final boolean successful;
+ private final String pitId;
+ // TODO: to add more fields as per the contract
+
+ public UpdatePitResponseInfo(boolean successful, String pitId){
+ this.successful = successful;
+ this.pitId = pitId;
+ }
+
+ public UpdatePitResponseInfo(StreamInput in) throws IOException{
+ successful = in.readBoolean();
+ pitId = in.readString();
+ }
+
+ public boolean isSuccessful(){
+ return successful;
+ }
+
+ public String getPitId(){
+ return pitId;
+ }
+
+ @Override
+ public void writeTo(StreamOutput out) throws IOException {
+ out.writeBoolean(successful);
+ out.writeString(pitId);
+ }
+
+ static final ConstructingObjectParser PARSER = new ConstructingObjectParser<>(
+ "update_pit_info",
+ true,
+ args -> new UpdatePitResponseInfo((boolean) args[0], (String) args[1])
+ );
+
+ static {
+ PARSER.declareBoolean(constructorArg(), new ParseField("successful"));
+ PARSER.declareString(constructorArg(), new ParseField("pit_id"));
+ }
+
+ private static final ParseField SUCCESSFUL = new ParseField("successful");
+ private static final ParseField PIT_ID = new ParseField("pit_id");
+
+ @Override
+ public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException {
+ builder.startObject();
+ builder.field(SUCCESSFUL.getPreferredName(), successful);
+ builder.field(PIT_ID.getPreferredName(), pitId);
+ builder.endObject();
+ return builder;
+ }
+}
+
diff --git a/server/src/main/java/org/opensearch/client/support/AbstractClient.java b/server/src/main/java/org/opensearch/client/support/AbstractClient.java
index 828ca5f8083ee..2927f59444b32 100644
--- a/server/src/main/java/org/opensearch/client/support/AbstractClient.java
+++ b/server/src/main/java/org/opensearch/client/support/AbstractClient.java
@@ -349,30 +349,7 @@
import org.opensearch.action.ingest.SimulatePipelineRequest;
import org.opensearch.action.ingest.SimulatePipelineRequestBuilder;
import org.opensearch.action.ingest.SimulatePipelineResponse;
-import org.opensearch.action.search.ClearScrollAction;
-import org.opensearch.action.search.ClearScrollRequest;
-import org.opensearch.action.search.ClearScrollRequestBuilder;
-import org.opensearch.action.search.ClearScrollResponse;
-import org.opensearch.action.search.CreatePitAction;
-import org.opensearch.action.search.CreatePitRequest;
-import org.opensearch.action.search.CreatePitResponse;
-import org.opensearch.action.search.DeletePitAction;
-import org.opensearch.action.search.DeletePitRequest;
-import org.opensearch.action.search.DeletePitResponse;
-import org.opensearch.action.search.GetAllPitNodesRequest;
-import org.opensearch.action.search.GetAllPitNodesResponse;
-import org.opensearch.action.search.MultiSearchAction;
-import org.opensearch.action.search.MultiSearchRequest;
-import org.opensearch.action.search.MultiSearchRequestBuilder;
-import org.opensearch.action.search.MultiSearchResponse;
-import org.opensearch.action.search.GetAllPitsAction;
-import org.opensearch.action.search.SearchAction;
-import org.opensearch.action.search.SearchRequest;
-import org.opensearch.action.search.SearchRequestBuilder;
-import org.opensearch.action.search.SearchResponse;
-import org.opensearch.action.search.SearchScrollAction;
-import org.opensearch.action.search.SearchScrollRequest;
-import org.opensearch.action.search.SearchScrollRequestBuilder;
+import org.opensearch.action.search.*;
import org.opensearch.action.support.PlainActionFuture;
import org.opensearch.action.support.master.AcknowledgedResponse;
import org.opensearch.action.termvectors.MultiTermVectorsAction;
@@ -627,6 +604,11 @@ public void getAllPits(final GetAllPitNodesRequest getAllPitNodesRequest, final
execute(GetAllPitsAction.INSTANCE, getAllPitNodesRequest, listener);
}
+ @Override
+ public void updatePit(final UpdatePitRequest updatePitRequest, final ActionListener listener){
+ execute(UpdatePitAction.INSTANCE, updatePitRequest, listener);
+ }
+
@Override
public void pitSegments(final PitSegmentsRequest request, final ActionListener listener) {
execute(PitSegmentsAction.INSTANCE, request, listener);
diff --git a/server/src/main/java/org/opensearch/rest/action/search/RestUpdatePitAction.java b/server/src/main/java/org/opensearch/rest/action/search/RestUpdatePitAction.java
new file mode 100644
index 0000000000000..707478727f51f
--- /dev/null
+++ b/server/src/main/java/org/opensearch/rest/action/search/RestUpdatePitAction.java
@@ -0,0 +1,53 @@
+/*
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * The OpenSearch Contributors require contributions made to
+ * this file be licensed under the Apache-2.0 license or a
+ * compatible open source license.
+ */
+
+package org.opensearch.rest.action.search;
+
+import org.opensearch.action.search.UpdatePitRequest;
+import org.opensearch.action.search.UpdatePitResponse;
+import org.opensearch.client.node.NodeClient;
+import org.opensearch.common.unit.TimeValue;
+import org.opensearch.rest.BaseRestHandler;
+import org.opensearch.rest.RestRequest;
+import org.opensearch.rest.action.RestStatusToXContentListener;
+
+import java.io.IOException;
+import java.util.List;
+
+import static java.util.Arrays.asList;
+import static java.util.Collections.unmodifiableList;
+import static org.opensearch.rest.RestRequest.Method.POST;
+
+public class RestUpdatePitAction extends BaseRestHandler {
+
+ @Override
+ public String getName(){
+ return "update_pit_action";
+ }
+
+ @Override
+ public RestChannelConsumer prepareRequest(RestRequest request, NodeClient client) throws IOException {
+ final UpdatePitRequest updatePitRequest = new UpdatePitRequest();
+ request.withContentOrSourceParamParserOrNull((xContentParser -> {
+ if (xContentParser != null){
+ try {
+ updatePitRequest.fromXContent(xContentParser);
+ } catch (IOException e) {
+ throw new IllegalArgumentException(" Failed to parse request body", e);
+ }
+ }
+ }));
+
+ return channel -> client.updatePit(updatePitRequest, new RestStatusToXContentListener(channel));
+ }
+
+ @Override
+ public List routes() {
+ return unmodifiableList(asList(new Route(POST, "/_search/point_in_time")));
+ }
+}