class Write extends PTransform<PCollection<T>, PDone> {

  public static <T> Write<T> to(Sink<T> sink) {
    checkNotNull(sink, "sink");
    return new Write<>(sink, null /* runner-determined sharding */, null, false);
  }

  private  Write(
      Sink<T> sink,
      @Nullable PTransform<PCollection<T>, PCollectionView<Integer>> computeNumShards,
      @Nullable ValueProvider<Integer> numShardsProvider,
      boolean windowedWrites);

}