public static void buildBroadcastShardsHeader(
     JsonBuilder builder, BroadcastOperationResponse response) throws IOException {
   builder.startObject("_shards");
   builder.field("total", response.totalShards());
   builder.field("successful", response.successfulShards());
   builder.field("failed", response.failedShards());
   if (!response.shardFailures().isEmpty()) {
     builder.startArray("failures");
     for (ShardOperationFailedException shardFailure : response.shardFailures()) {
       builder.startObject();
       if (shardFailure.index() != null) {
         builder.field("index", shardFailure.index());
       }
       if (shardFailure.shardId() != -1) {
         builder.field("shard", shardFailure.shardId());
       }
       builder.field("reason", shardFailure.reason());
       builder.endObject();
     }
     builder.endArray();
   }
   builder.endObject();
 }