diff --git a/elastic4s-domain/src/main/scala/com/sksamuel/elastic4s/requests/snapshots/DeleteSnapshotRequest.scala b/elastic4s-domain/src/main/scala/com/sksamuel/elastic4s/requests/snapshots/DeleteSnapshotRequest.scala index c9393f68a..d261490a6 100644 --- a/elastic4s-domain/src/main/scala/com/sksamuel/elastic4s/requests/snapshots/DeleteSnapshotRequest.scala +++ b/elastic4s-domain/src/main/scala/com/sksamuel/elastic4s/requests/snapshots/DeleteSnapshotRequest.scala @@ -1,3 +1,7 @@ package com.sksamuel.elastic4s.requests.snapshots -case class DeleteSnapshotRequest(snapshotName: String, repositoryName: String) +import com.sksamuel.elastic4s.ext.OptionImplicits._ + +case class DeleteSnapshotRequest(snapshotName: String, repositoryName: String, waitForCompletion: Option[Boolean] = None) { + def waitForCompletion(wait: Boolean): DeleteSnapshotRequest = copy(waitForCompletion = wait.some) +} diff --git a/elastic4s-handlers/src/main/scala/com/sksamuel/elastic4s/handlers/snapshot/SnapshotHandlers.scala b/elastic4s-handlers/src/main/scala/com/sksamuel/elastic4s/handlers/snapshot/SnapshotHandlers.scala index b076c1083..5b1cb6a34 100644 --- a/elastic4s-handlers/src/main/scala/com/sksamuel/elastic4s/handlers/snapshot/SnapshotHandlers.scala +++ b/elastic4s-handlers/src/main/scala/com/sksamuel/elastic4s/handlers/snapshot/SnapshotHandlers.scala @@ -53,7 +53,9 @@ trait SnapshotHandlers { implicit object DeleteSnapshotHandler extends Handler[DeleteSnapshotRequest, DeleteSnapshotResponse] { override def build(request: DeleteSnapshotRequest): ElasticRequest = { val endpoint = s"/_snapshot/" + request.repositoryName + "/" + request.snapshotName - ElasticRequest("DELETE", endpoint) + val params = scala.collection.mutable.Map.empty[String, String] + request.waitForCompletion.map(_.toString).foreach(params.put("wait_for_completion", _)) + ElasticRequest("DELETE", endpoint, params.toMap) } }