@Override
 public void writeTo(StreamOutput out) throws IOException {
   super.writeTo(out);
   out.writeVInt(indices.size());
   for (IndexDeleteByQueryResponse indexResponse : indices.values()) {
     indexResponse.writeTo(out);
   }
 }
 @Override
 public void readFrom(StreamInput in) throws IOException {
   super.readFrom(in);
   int size = in.readVInt();
   for (int i = 0; i < size; i++) {
     IndexDeleteByQueryResponse response = new IndexDeleteByQueryResponse();
     response.readFrom(in);
     indices.put(response.getIndex(), response);
   }
 }
 public RestStatus status() {
   RestStatus status = RestStatus.OK;
   for (IndexDeleteByQueryResponse indexResponse : indices.values()) {
     if (indexResponse.getFailedShards() > 0) {
       RestStatus indexStatus = indexResponse.getFailures()[0].status();
       if (indexResponse.getFailures().length > 1) {
         for (int i = 1; i < indexResponse.getFailures().length; i++) {
           if (indexResponse.getFailures()[i].status().getStatus() >= 500) {
             indexStatus = indexResponse.getFailures()[i].status();
           }
         }
       }
       if (status.getStatus() < indexStatus.getStatus()) {
         status = indexStatus;
       }
     }
   }
   return status;
 }