public static ReadChangeStream readChangeStream() {
    return ReadChangeStream.create();
  }
@Test
  public void testReadChangeStreamBuildsCorrectly() {
    Instant startTime = Instant.now();
    BigtableIO.ReadChangeStream readChangeStream =
        BigtableIO.readChangeStream()
            .withProjectId("project")
            .withInstanceId("instance")
            .withTableId("table")
            .withAppProfileId("app-profile")
            .withChangeStreamName("change-stream-name")
            .withMetadataTableProjectId("metadata-project")
            .withMetadataTableInstanceId("metadata-instance")
            .withMetadataTableTableId("metadata-table")
            .withMetadataTableAppProfileId("metadata-app-profile")
            .withStartTime(startTime)
            .withBacklogReplicationAdjustment(Duration.standardMinutes(1))
            .withCreateOrUpdateMetadataTable(false)
            .withExistingPipelineOptions(BigtableIO.ExistingPipelineOptions.FAIL_IF_EXISTS);
    assertEquals("project", readChangeStream.getBigtableConfig().getProjectId().get());
    assertEquals("instance", readChangeStream.getBigtableConfig().getInstanceId().get());
    assertEquals("app-profile", readChangeStream.getBigtableConfig().getAppProfileId().get());
    assertEquals("table", readChangeStream.getTableId());
    assertEquals(
        "metadata-project", readChangeStream.getMetadataTableBigtableConfig().getProjectId().get());
    assertEquals(
        "metadata-instance",
        readChangeStream.getMetadataTableBigtableConfig().getInstanceId().get());
    assertEquals(
        "metadata-app-profile",
        readChangeStream.getMetadataTableBigtableConfig().getAppProfileId().get());
    assertEquals("metadata-table", readChangeStream.getMetadataTableId());
    assertEquals("change-stream-name", readChangeStream.getChangeStreamName());
    assertEquals(startTime, readChangeStream.getStartTime());
    assertEquals(Duration.standardMinutes(1), readChangeStream.getBacklogReplicationAdjustment());
    assertEquals(false, readChangeStream.getCreateOrUpdateMetadataTable());
    assertEquals(
        BigtableIO.ExistingPipelineOptions.FAIL_IF_EXISTS,
        readChangeStream.getExistingPipelineOptions());
  }