@Override
 public void writeTo(StreamOutput out) throws IOException {
   super.writeTo(out);
   if (snapshotIds != null) {
     out.writeVInt(snapshotIds.length);
     for (int i = 0; i < snapshotIds.length; i++) {
       snapshotIds[i].writeTo(out);
     }
   } else {
     out.writeVInt(0);
   }
 }
 @Override
 public void writeTo(StreamOutput out) throws IOException {
   super.writeTo(out);
   out.writeString(requestName);
   out.writeString(nodeId);
 }
 @Override
 public void writeTo(StreamOutput out) throws IOException {
   super.writeTo(out);
   request.writeTo(out);
 }
 @Override
 public void writeTo(StreamOutput out) throws IOException {
   super.writeTo(out);
   shardId.writeTo(out);
   out.writeBoolean(unallocated);
 }