class SumByKey extends ShuffleOperator<InputT, KeyT, KV<KeyT, Long>> implements CompositeOperator<InputT, KV<KeyT, Long>> {

  public static <InputT> KeyByBuilder<InputT> of(PCollection<InputT> input) {
    return named(null).of(input);
  }

  private  SumByKey(
      @Nullable String name,
      UnaryFunction<InputT, KeyT> keyExtractor,
      @Nullable TypeDescriptor<KeyT> keyType,
      UnaryFunction<InputT, Long> valueExtractor,
      @Nullable Window<InputT> window,
      TypeDescriptor<KV<KeyT, Long>> outputType);

}