class Distinct extends ShuffleOperator<InputT, KeyT, InputT> implements CompositeOperator<InputT, InputT> {

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

  private  Distinct(
      @Nullable String name,
      UnaryFunction<InputT, KeyT> transform,
      @Nullable TypeDescriptor<InputT> outputType,
      @Nullable TypeDescriptor<KeyT> projectedType,
      @Nullable Window<InputT> window,
      @Nullable SelectionPolicy policy,
      boolean projected);

}