<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>Deprecated List (Apache Beam 2.38.0-SNAPSHOT)</title>
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="Deprecated List (Apache Beam 2.38.0-SNAPSHOT)";
        }
    }
    catch(err) {
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="overview-summary.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li class="navBarCell1Rev">Deprecated</li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
<li><a href="deprecated-list.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="Deprecated API" class="title">Deprecated API</h1>
<h2 title="Contents">Contents</h2>
<ul>
<li><a href="#interface">Deprecated Interfaces</a></li>
<li><a href="#class">Deprecated Classes</a></li>
<li><a href="#enum">Deprecated Enums</a></li>
<li><a href="#field">Deprecated Fields</a></li>
<li><a href="#method">Deprecated Methods</a></li>
<li><a href="#constructor">Deprecated Constructors</a></li>
<li><a href="#enum.constant">Deprecated Enum Constants</a></li>
</ul>
</div>
<div class="contentContainer"><a name="interface">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<table class="deprecatedSummary" border="0" cellpadding="3" cellspacing="0" summary="Deprecated Interfaces table, listing deprecated interfaces, and an explanation">
<caption><span>Deprecated Interfaces</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Interface and Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/AvroIO.RecordFormatter.html" title="interface in org.apache.beam.sdk.io">org.apache.beam.sdk.io.AvroIO.RecordFormatter</a>
<div class="block"><span class="deprecationComment">Users can achieve the same by providing this transform in a <a href="org/apache/beam/sdk/transforms/ParDo.html" title="class in org.apache.beam.sdk.transforms"><code>ParDo</code></a> before using write in AvroIO <a href="org/apache/beam/sdk/io/AvroIO.html#write-java.lang.Class-"><code>AvroIO.write(Class)</code></a>.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/aws2/kinesis/AWSClientsProvider.html" title="interface in org.apache.beam.sdk.io.aws2.kinesis">org.apache.beam.sdk.io.aws2.kinesis.AWSClientsProvider</a>
<div class="block"><span class="deprecationComment">Configure a custom <a href="org/apache/beam/sdk/io/aws2/common/ClientBuilderFactory.html" title="interface in org.apache.beam.sdk.io.aws2.common"><code>ClientBuilderFactory</code></a>
     using <a href="org/apache/beam/sdk/io/aws2/options/AwsOptions.html#getClientBuilderFactory--"><code>AwsOptions.getClientBuilderFactory()</code></a> instead.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/runners/dataflow/options/DataflowWorkerLoggingOptions.html" title="interface in org.apache.beam.runners.dataflow.options">org.apache.beam.runners.dataflow.options.DataflowWorkerLoggingOptions</a>
<div class="block"><span class="deprecationComment">This interface will no longer be the source of truth for worker logging configuration
     once jobs are executed using a dedicated SDK harness instead of user code being co-located
     alongside Dataflow worker code. Please set the option below and also the corresponding option
     within <a href="org/apache/beam/sdk/options/SdkHarnessOptions.html" title="interface in org.apache.beam.sdk.options"><code>SdkHarnessOptions</code></a> to ensure forward compatibility.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/aws2/dynamodb/DynamoDbClientProvider.html" title="interface in org.apache.beam.sdk.io.aws2.dynamodb">org.apache.beam.sdk.io.aws2.dynamodb.DynamoDbClientProvider</a>
<div class="block"><span class="deprecationComment">Configure a custom <a href="org/apache/beam/sdk/io/aws2/common/ClientBuilderFactory.html" title="interface in org.apache.beam.sdk.io.aws2.common"><code>ClientBuilderFactory</code></a>
     using <a href="org/apache/beam/sdk/io/aws2/options/AwsOptions.html#getClientBuilderFactory--"><code>AwsOptions.getClientBuilderFactory()</code></a> instead.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/fn/data/InboundDataClient.html" title="interface in org.apache.beam.sdk.fn.data">org.apache.beam.sdk.fn.data.InboundDataClient</a>
<div class="block"><span class="deprecationComment">Migrate to <a href="org/apache/beam/sdk/fn/data/BeamFnDataInboundObserver2.html" title="class in org.apache.beam.sdk.fn.data"><code>BeamFnDataInboundObserver2</code></a>.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/aws2/sns/SnsClientProvider.html" title="interface in org.apache.beam.sdk.io.aws2.sns">org.apache.beam.sdk.io.aws2.sns.SnsClientProvider</a>
<div class="block"><span class="deprecationComment">Configure a custom <a href="org/apache/beam/sdk/io/aws2/common/ClientBuilderFactory.html" title="interface in org.apache.beam.sdk.io.aws2.common"><code>ClientBuilderFactory</code></a>
     using <a href="org/apache/beam/sdk/io/aws2/options/AwsOptions.html#getClientBuilderFactory--"><code>AwsOptions.getClientBuilderFactory()</code></a> instead.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/aws2/sqs/SqsClientProvider.html" title="interface in org.apache.beam.sdk.io.aws2.sqs">org.apache.beam.sdk.io.aws2.sqs.SqsClientProvider</a>
<div class="block"><span class="deprecationComment">Configure a custom <a href="org/apache/beam/sdk/io/aws2/common/ClientBuilderFactory.html" title="interface in org.apache.beam.sdk.io.aws2.common"><code>ClientBuilderFactory</code></a>
     using <a href="org/apache/beam/sdk/io/aws2/options/AwsOptions.html#getClientBuilderFactory--"><code>AwsOptions.getClientBuilderFactory()</code></a> instead.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/testing/StreamingIT.html" title="interface in org.apache.beam.sdk.testing">org.apache.beam.sdk.testing.StreamingIT</a>
<div class="block"><span class="deprecationComment">tests which use unbounded PCollections should be in the category <a href="org/apache/beam/sdk/testing/UsesUnboundedPCollections.html" title="interface in org.apache.beam.sdk.testing"><code>UsesUnboundedPCollections</code></a>. Beyond that, it is up to the runner and test configuration to
     decide whether to run in streaming mode.</span></div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
<a name="class">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<table class="deprecatedSummary" border="0" cellpadding="3" cellspacing="0" summary="Deprecated Classes table, listing deprecated classes, and an explanation">
<caption><span>Deprecated Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Class and Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/ApproximateUnique.html" title="class in org.apache.beam.sdk.transforms">org.apache.beam.sdk.transforms.ApproximateUnique</a>
<div class="block"><span class="deprecationComment"><p>Consider using <code>ApproximateCountDistinct</code> in the <code>zetasketch</code> extension
     module, which makes use of the <code>HllCount</code> implementation.
     <p>If <code>ApproximateCountDistinct</code> does not meet your needs then you can directly use
     <code>HllCount</code>. Direct usage will also give you access to save intermediate aggregation
     result into a sketch for later processing.
     <p>For example, to estimate the number of distinct elements in a <code>PCollection&lt;String&gt;</code>:
     <pre><code>
 PCollection&lt;String&gt; input = ...;
 PCollection&lt;Long&gt; countDistinct =
     input.apply(HllCount.Init.forStrings().globally()).apply(HllCount.Extract.globally());
 </code></pre>
     For more details about using <code>HllCount</code> and the <code>zetasketch</code> extension module,
     see https://s.apache.org/hll-in-beam#bookmark=id.v6chsij1ixo7.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/AvroIO.ParseAll.html" title="class in org.apache.beam.sdk.io">org.apache.beam.sdk.io.AvroIO.ParseAll</a>
<div class="block"><span class="deprecationComment">See <a href="org/apache/beam/sdk/io/AvroIO.html#parseAllGenericRecords-org.apache.beam.sdk.transforms.SerializableFunction-"><code>AvroIO.parseAllGenericRecords(SerializableFunction)</code></a> for details.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/AvroIO.ReadAll.html" title="class in org.apache.beam.sdk.io">org.apache.beam.sdk.io.AvroIO.ReadAll</a>
<div class="block"><span class="deprecationComment">See <a href="org/apache/beam/sdk/io/AvroIO.html#readAll-java.lang.Class-"><code>AvroIO.readAll(Class)</code></a> for details.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/aws2/dynamodb/BasicDynamoDbClientProvider.html" title="class in org.apache.beam.sdk.io.aws2.dynamodb">org.apache.beam.sdk.io.aws2.dynamodb.BasicDynamoDbClientProvider</a>
<div class="block"><span class="deprecationComment">Configure a custom <a href="org/apache/beam/sdk/io/aws2/common/ClientBuilderFactory.html" title="interface in org.apache.beam.sdk.io.aws2.common"><code>ClientBuilderFactory</code></a>
     using <a href="org/apache/beam/sdk/io/aws2/options/AwsOptions.html#getClientBuilderFactory--"><code>AwsOptions.getClientBuilderFactory()</code></a> instead.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/fn/data/BeamFnDataGrpcMultiplexer.html" title="class in org.apache.beam.sdk.fn.data">org.apache.beam.sdk.fn.data.BeamFnDataGrpcMultiplexer</a>
<div class="block"><span class="deprecationComment">Migrate to <a href="org/apache/beam/sdk/fn/data/BeamFnDataGrpcMultiplexer2.html" title="class in org.apache.beam.sdk.fn.data"><code>BeamFnDataGrpcMultiplexer2</code></a>.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/fn/data/BeamFnDataInboundObserver.html" title="class in org.apache.beam.sdk.fn.data">org.apache.beam.sdk.fn.data.BeamFnDataInboundObserver</a>
<div class="block"><span class="deprecationComment">Migrate to <a href="org/apache/beam/sdk/fn/data/BeamFnDataInboundObserver2.html" title="class in org.apache.beam.sdk.fn.data"><code>BeamFnDataInboundObserver2</code></a>.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/fn/data/BeamFnDataOutboundObserver.html" title="class in org.apache.beam.sdk.fn.data">org.apache.beam.sdk.fn.data.BeamFnDataOutboundObserver</a>
<div class="block"><span class="deprecationComment">Migrate to use <a href="org/apache/beam/sdk/fn/data/BeamFnDataOutboundAggregator.html" title="class in org.apache.beam.sdk.fn.data"><code>BeamFnDataOutboundAggregator</code></a> directly.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/coders/Coder.Context.html" title="class in org.apache.beam.sdk.coders">org.apache.beam.sdk.coders.Coder.Context</a>
<div class="block"><span class="deprecationComment">To implement a coder, do not use any <a href="org/apache/beam/sdk/coders/Coder.Context.html" title="class in org.apache.beam.sdk.coders"><code>Coder.Context</code></a>. Just implement only those
     abstract methods which do not accept a <a href="org/apache/beam/sdk/coders/Coder.Context.html" title="class in org.apache.beam.sdk.coders"><code>Coder.Context</code></a> and leave the default
     implementations for methods accepting a <a href="org/apache/beam/sdk/coders/Coder.Context.html" title="class in org.apache.beam.sdk.coders"><code>Coder.Context</code></a>.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/Combine.SimpleCombineFn.html" title="class in org.apache.beam.sdk.transforms">org.apache.beam.sdk.transforms.Combine.SimpleCombineFn</a></td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/DoFnTester.html" title="class in org.apache.beam.sdk.transforms">org.apache.beam.sdk.transforms.DoFnTester</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/testing/TestPipeline.html" title="class in org.apache.beam.sdk.testing"><code>TestPipeline</code></a> with the <code>DirectRunner</code>.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/aws2/dynamodb/DynamoDBIO.RetryConfiguration.html" title="class in org.apache.beam.sdk.io.aws2.dynamodb">org.apache.beam.sdk.io.aws2.dynamodb.DynamoDBIO.RetryConfiguration</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/aws2/common/RetryConfiguration.html" title="class in org.apache.beam.sdk.io.aws2.common"><code>RetryConfiguration</code></a> instead to
     delegate retries to the AWS SDK.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/values/PCollectionViews.IterableViewFn.html" title="class in org.apache.beam.sdk.values">org.apache.beam.sdk.values.PCollectionViews.IterableViewFn</a>
<div class="block"><span class="deprecationComment">See <a href="org/apache/beam/sdk/values/PCollectionViews.IterableViewFn2.html" title="class in org.apache.beam.sdk.values"><code>PCollectionViews.IterableViewFn2</code></a>.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/values/PCollectionViews.ListViewFn.html" title="class in org.apache.beam.sdk.values">org.apache.beam.sdk.values.PCollectionViews.ListViewFn</a>
<div class="block"><span class="deprecationComment">See <a href="org/apache/beam/sdk/values/PCollectionViews.ListViewFn2.html" title="class in org.apache.beam.sdk.values"><code>PCollectionViews.ListViewFn2</code></a>.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/values/PCollectionViews.MapViewFn.html" title="class in org.apache.beam.sdk.values">org.apache.beam.sdk.values.PCollectionViews.MapViewFn</a>
<div class="block"><span class="deprecationComment">See <a href="org/apache/beam/sdk/values/PCollectionViews.MapViewFn2.html" title="class in org.apache.beam.sdk.values"><code>PCollectionViews.MapViewFn2</code></a>.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/values/PCollectionViews.MultimapViewFn.html" title="class in org.apache.beam.sdk.values">org.apache.beam.sdk.values.PCollectionViews.MultimapViewFn</a>
<div class="block"><span class="deprecationComment">See <a href="org/apache/beam/sdk/values/PCollectionViews.MultimapViewFn2.html" title="class in org.apache.beam.sdk.values"><code>PCollectionViews.MultimapViewFn2</code></a>.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/values/PCollectionViews.SingletonViewFn.html" title="class in org.apache.beam.sdk.values">org.apache.beam.sdk.values.PCollectionViews.SingletonViewFn</a>
<div class="block"><span class="deprecationComment">See <a href="org/apache/beam/sdk/values/PCollectionViews.SingletonViewFn2.html" title="class in org.apache.beam.sdk.values"><code>PCollectionViews.SingletonViewFn2</code></a>.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/Reshuffle.html" title="class in org.apache.beam.sdk.transforms">org.apache.beam.sdk.transforms.Reshuffle</a>
<div class="block"><span class="deprecationComment">this transform's intended side effects are not portable; it will likely be removed</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/windowing/ReshuffleTrigger.html" title="class in org.apache.beam.sdk.transforms.windowing">org.apache.beam.sdk.transforms.windowing.ReshuffleTrigger</a>
<div class="block"><span class="deprecationComment">The intended side effect of <a href="org/apache/beam/sdk/transforms/Reshuffle.html" title="class in org.apache.beam.sdk.transforms"><code>Reshuffle</code></a> is not portable; it will likely be
     removed</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/runners/fnexecution/control/SingleEnvironmentInstanceJobBundleFactory.html" title="class in org.apache.beam.runners.fnexecution.control">org.apache.beam.runners.fnexecution.control.SingleEnvironmentInstanceJobBundleFactory</a>
<div class="block"><span class="deprecationComment">replace with a <a href="org/apache/beam/runners/fnexecution/control/DefaultJobBundleFactory.html" title="class in org.apache.beam.runners.fnexecution.control"><code>DefaultJobBundleFactory</code></a> when appropriate if the <a href="org/apache/beam/runners/fnexecution/environment/EnvironmentFactory.html" title="interface in org.apache.beam.runners.fnexecution.environment"><code>EnvironmentFactory</code></a> is a <a href="org/apache/beam/runners/fnexecution/environment/DockerEnvironmentFactory.html" title="class in org.apache.beam.runners.fnexecution.environment"><code>DockerEnvironmentFactory</code></a>, or create an
     <code>InProcessJobBundleFactory</code> and inline the creation of the environment if appropriate.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/aws2/sns/SnsIO.RetryConfiguration.html" title="class in org.apache.beam.sdk.io.aws2.sns">org.apache.beam.sdk.io.aws2.sns.SnsIO.RetryConfiguration</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/aws2/common/RetryConfiguration.html" title="class in org.apache.beam.sdk.io.aws2.common"><code>RetryConfiguration</code></a> instead to
     delegate retries to the AWS SDK.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/aws2/sns/SnsIO.WriteAsync.html" title="class in org.apache.beam.sdk.io.aws2.sns">org.apache.beam.sdk.io.aws2.sns.SnsIO.WriteAsync</a>
<div class="block"><span class="deprecationComment">Please use <a href="org/apache/beam/sdk/io/aws2/sns/SnsIO.html#write--"><code>SnsIO.write()</code></a> to avoid the risk of data loss.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/TextIO.ReadAll.html" title="class in org.apache.beam.sdk.io">org.apache.beam.sdk.io.TextIO.ReadAll</a>
<div class="block"><span class="deprecationComment">See <a href="org/apache/beam/sdk/io/TextIO.html#readAll--"><code>TextIO.readAll()</code></a> for details.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/Top.Largest.html" title="class in org.apache.beam.sdk.transforms">org.apache.beam.sdk.transforms.Top.Largest</a>
<div class="block"><span class="deprecationComment">use <a href="org/apache/beam/sdk/transforms/Top.Natural.html" title="class in org.apache.beam.sdk.transforms"><code>Top.Natural</code></a> instead</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/Top.Smallest.html" title="class in org.apache.beam.sdk.transforms">org.apache.beam.sdk.transforms.Top.Smallest</a>
<div class="block"><span class="deprecationComment">use <a href="org/apache/beam/sdk/transforms/Top.Reversed.html" title="class in org.apache.beam.sdk.transforms"><code>Top.Reversed</code></a> instead</span></div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
<a name="enum">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<table class="deprecatedSummary" border="0" cellpadding="3" cellspacing="0" summary="Deprecated Enums table, listing deprecated enums, and an explanation">
<caption><span>Deprecated Enums</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Enum and Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/CompressedSource.CompressionMode.html" title="enum in org.apache.beam.sdk.io">org.apache.beam.sdk.io.CompressedSource.CompressionMode</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/Compression.html" title="enum in org.apache.beam.sdk.io"><code>Compression</code></a> instead</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/DoFnTester.CloningBehavior.html" title="enum in org.apache.beam.sdk.transforms">org.apache.beam.sdk.transforms.DoFnTester.CloningBehavior</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/testing/TestPipeline.html" title="class in org.apache.beam.sdk.testing"><code>TestPipeline</code></a> with the <code>DirectRunner</code>.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/FileBasedSink.CompressionType.html" title="enum in org.apache.beam.sdk.io">org.apache.beam.sdk.io.FileBasedSink.CompressionType</a>
<div class="block"><span class="deprecationComment">use <a href="org/apache/beam/sdk/io/Compression.html" title="enum in org.apache.beam.sdk.io"><code>Compression</code></a>.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/TextIO.CompressionType.html" title="enum in org.apache.beam.sdk.io">org.apache.beam.sdk.io.TextIO.CompressionType</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/Compression.html" title="enum in org.apache.beam.sdk.io"><code>Compression</code></a>.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/TFRecordIO.CompressionType.html" title="enum in org.apache.beam.sdk.io">org.apache.beam.sdk.io.TFRecordIO.CompressionType</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/Compression.html" title="enum in org.apache.beam.sdk.io"><code>Compression</code></a>.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/xml/XmlIO.Read.CompressionType.html" title="enum in org.apache.beam.sdk.io.xml">org.apache.beam.sdk.io.xml.XmlIO.Read.CompressionType</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/Compression.html" title="enum in org.apache.beam.sdk.io"><code>Compression</code></a> instead.</span></div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
<a name="field">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<table class="deprecatedSummary" border="0" cellpadding="3" cellspacing="0" summary="Deprecated Fields table, listing deprecated fields, and an explanation">
<caption><span>Deprecated Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Field and Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/runners/dataflow/util/PropertyNames.html#RESTRICTION_CODER">org.apache.beam.runners.dataflow.util.PropertyNames.RESTRICTION_CODER</a>
<div class="block"><span class="deprecationComment">Uses the incorrect terminology. <a href="org/apache/beam/runners/dataflow/util/PropertyNames.html#RESTRICTION_ENCODING"><code>PropertyNames.RESTRICTION_ENCODING</code></a>. Should be removed
     once non FnAPI SplittableDoFn expansion for Dataflow is removed.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/schemas/parser/generated/FieldSpecifierNotationParser.html#tokenNames">org.apache.beam.sdk.schemas.parser.generated.FieldSpecifierNotationParser.tokenNames</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/schemas/parser/generated/FieldSpecifierNotationParser.html#VOCABULARY"><code>FieldSpecifierNotationParser.VOCABULARY</code></a> instead.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/schemas/parser/generated/FieldSpecifierNotationLexer.html#tokenNames">org.apache.beam.sdk.schemas.parser.generated.FieldSpecifierNotationLexer.tokenNames</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/schemas/parser/generated/FieldSpecifierNotationLexer.html#VOCABULARY"><code>FieldSpecifierNotationLexer.VOCABULARY</code></a> instead.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/extensions/gcp/options/GcpOptions.html#WINDMILL_SERVICE_EXPERIMENT">org.apache.beam.sdk.extensions.gcp.options.GcpOptions.WINDMILL_SERVICE_EXPERIMENT</a>
<div class="block"><span class="deprecationComment">Use STREAMING_ENGINE_EXPERIMENT instead.</span></div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
<a name="method">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<table class="deprecatedSummary" border="0" cellpadding="3" cellspacing="0" summary="Deprecated Methods table, listing deprecated methods, and an explanation">
<caption><span>Deprecated Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Method and Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/schemas/Schema.FieldType.html#array-org.apache.beam.sdk.schemas.Schema.FieldType-boolean-">org.apache.beam.sdk.schemas.Schema.FieldType.array(Schema.FieldType, boolean)</a>
<div class="block"><span class="deprecationComment">Set the nullability on the elementType instead</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/gcp/pubsub/PubsubIO.PubsubSubscription.html#asV1Beta1Path--">org.apache.beam.sdk.io.gcp.pubsub.PubsubIO.PubsubSubscription.asV1Beta1Path()</a>
<div class="block"><span class="deprecationComment">the v1beta1 API for Cloud Pub/Sub is deprecated.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/gcp/pubsub/PubsubIO.PubsubTopic.html#asV1Beta1Path--">org.apache.beam.sdk.io.gcp.pubsub.PubsubIO.PubsubTopic.asV1Beta1Path()</a>
<div class="block"><span class="deprecationComment">the v1beta1 API for Cloud Pub/Sub is deprecated.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/gcp/pubsub/PubsubIO.PubsubSubscription.html#asV1Beta2Path--">org.apache.beam.sdk.io.gcp.pubsub.PubsubIO.PubsubSubscription.asV1Beta2Path()</a>
<div class="block"><span class="deprecationComment">the v1beta2 API for Cloud Pub/Sub is deprecated.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/gcp/pubsub/PubsubIO.PubsubTopic.html#asV1Beta2Path--">org.apache.beam.sdk.io.gcp.pubsub.PubsubIO.PubsubTopic.asV1Beta2Path()</a>
<div class="block"><span class="deprecationComment">the v1beta2 API for Cloud Pub/Sub is deprecated.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/gcp/pubsub/TestPubsub.html#checkIfAnySubscriptionExists-java.lang.String-org.joda.time.Duration-">org.apache.beam.sdk.io.gcp.pubsub.TestPubsub.checkIfAnySubscriptionExists(String, Duration)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/gcp/pubsub/TestPubsub.html#assertSubscriptionEventuallyCreated-java.lang.String-org.joda.time.Duration-"><code>TestPubsub.assertSubscriptionEventuallyCreated(java.lang.String, org.joda.time.Duration)</code></a>.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/DoFnTester.html#clearOutputElements--">org.apache.beam.sdk.transforms.DoFnTester.clearOutputElements()</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/testing/TestPipeline.html" title="class in org.apache.beam.sdk.testing"><code>TestPipeline</code></a> with the <code>DirectRunner</code>.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/DoFnTester.html#clearOutputElements-org.apache.beam.sdk.values.TupleTag-">org.apache.beam.sdk.transforms.DoFnTester.clearOutputElements(TupleTag&lt;T&gt;)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/testing/TestPipeline.html" title="class in org.apache.beam.sdk.testing"><code>TestPipeline</code></a> with the <code>DirectRunner</code>.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/DoFnTester.html#close--">org.apache.beam.sdk.transforms.DoFnTester.close()</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/testing/TestPipeline.html" title="class in org.apache.beam.sdk.testing"><code>TestPipeline</code></a> with the <code>DirectRunner</code>.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/testing/PAssert.IterableAssert.html#containsInAnyOrder--">org.apache.beam.sdk.testing.PAssert.IterableAssert.containsInAnyOrder()</a>
<div class="block"><span class="deprecationComment">Prefer <a href="org/apache/beam/sdk/testing/PAssert.IterableAssert.html#empty--"><code>PAssert.IterableAssert.empty()</code></a> to this method.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/extensions/gcp/util/GcsUtil.html#create-org.apache.beam.sdk.extensions.gcp.util.gcsfs.GcsPath-java.lang.String-">org.apache.beam.sdk.extensions.gcp.util.GcsUtil.create(GcsPath, String)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/extensions/gcp/util/GcsUtil.html#create-org.apache.beam.sdk.extensions.gcp.util.gcsfs.GcsPath-org.apache.beam.sdk.extensions.gcp.util.GcsUtil.CreateOptions-"><code>GcsUtil.create(GcsPath, CreateOptions)</code></a> instead.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/extensions/gcp/util/GcsUtil.html#create-org.apache.beam.sdk.extensions.gcp.util.gcsfs.GcsPath-java.lang.String-java.lang.Integer-">org.apache.beam.sdk.extensions.gcp.util.GcsUtil.create(GcsPath, String, Integer)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/extensions/gcp/util/GcsUtil.html#create-org.apache.beam.sdk.extensions.gcp.util.gcsfs.GcsPath-org.apache.beam.sdk.extensions.gcp.util.GcsUtil.CreateOptions-"><code>GcsUtil.create(GcsPath, CreateOptions)</code></a> instead.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/aws2/sns/SnsIO.RetryConfiguration.html#create-int-org.joda.time.Duration-">org.apache.beam.sdk.io.aws2.sns.SnsIO.RetryConfiguration.create(int, Duration)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/aws2/common/RetryConfiguration.html" title="class in org.apache.beam.sdk.io.aws2.common"><code>RetryConfiguration</code></a> instead.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/fn/server/GrpcFnServer.html#create-ServiceT-org.apache.beam.model.pipeline.v1.Endpoints.ApiServiceDescriptor-">org.apache.beam.sdk.fn.server.GrpcFnServer.create(ServiceT, Endpoints.ApiServiceDescriptor)</a>
<div class="block"><span class="deprecationComment">This create function is used for Dataflow migration purpose only.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/AvroSource.html#createForSubrangeOfFile-java.lang.String-long-long-">org.apache.beam.sdk.io.AvroSource.createForSubrangeOfFile(String, long, long)</a>
<div class="block"><span class="deprecationComment">Used by Dataflow worker</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/DoFnTester.html#createProcessContext-org.apache.beam.sdk.values.ValueInSingleWindow-">org.apache.beam.sdk.transforms.DoFnTester.createProcessContext(ValueInSingleWindow&lt;InputT&gt;)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/testing/TestPipeline.html" title="class in org.apache.beam.sdk.testing"><code>TestPipeline</code></a> with the <code>DirectRunner</code>.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/coders/Coder.html#decode-java.io.InputStream-org.apache.beam.sdk.coders.Coder.Context-">org.apache.beam.sdk.coders.Coder.decode(InputStream, Coder.Context)</a>
<div class="block"><span class="deprecationComment">only implement and call <a href="org/apache/beam/sdk/coders/Coder.html#decode-java.io.InputStream-"><code>Coder.decode(InputStream)</code></a></span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/coders/Coder.html#encode-T-java.io.OutputStream-org.apache.beam.sdk.coders.Coder.Context-">org.apache.beam.sdk.coders.Coder.encode(T, OutputStream, Coder.Context)</a>
<div class="block"><span class="deprecationComment">only implement and call <a href="org/apache/beam/sdk/coders/Coder.html#encode-T-java.io.OutputStream-"><code>Coder.encode(Object value, OutputStream)</code></a></span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/testing/PAssert.PCollectionContentsAssert.html#equals-java.lang.Object-">org.apache.beam.sdk.testing.PAssert.PCollectionContentsAssert.equals(Object)</a>
<div class="block"><span class="deprecationComment"><code>Object.equals(Object)</code> is not supported on PAssert objects. If you meant
     to test object equality, use a variant of <a href="org/apache/beam/sdk/testing/PAssert.PCollectionContentsAssert.html#containsInAnyOrder-T...-"><code>PAssert.PCollectionContentsAssert.containsInAnyOrder(T...)</code></a> instead.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/values/PValue.html#expand--">org.apache.beam.sdk.values.PValue.expand()</a>
<div class="block"><span class="deprecationComment">A <a href="org/apache/beam/sdk/values/PValue.html" title="interface in org.apache.beam.sdk.values"><code>PValue</code></a> always expands into itself. Calling <a href="org/apache/beam/sdk/values/PValue.html#expand--"><code>PValue.expand()</code></a> on a PValue
     is almost never appropriate.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/DoFnTester.html#finishBundle--">org.apache.beam.sdk.transforms.DoFnTester.finishBundle()</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/testing/TestPipeline.html" title="class in org.apache.beam.sdk.testing"><code>TestPipeline</code></a> with the <code>DirectRunner</code>.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/fn/data/CloseableFnDataReceiver.html#flush--">org.apache.beam.sdk.fn.data.CloseableFnDataReceiver.flush()</a>
<div class="block"><span class="deprecationComment">to be removed once splitting/checkpointing are available in SDKs and rewinding in
     readers.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/schemas/Schema.FieldType.html#getAllMetadata--">org.apache.beam.sdk.schemas.Schema.FieldType.getAllMetadata()</a>
<div class="block"><span class="deprecationComment">use schema options instead.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/WithTimestamps.html#getAllowedTimestampSkew--">org.apache.beam.sdk.transforms.WithTimestamps.getAllowedTimestampSkew()</a>
<div class="block"><span class="deprecationComment">This method permits a to elements to be emitted behind the watermark. These
     elements are considered late, and if behind the <a href="org/apache/beam/sdk/transforms/windowing/Window.html#withAllowedLateness-org.joda.time.Duration-"><code>allowed lateness</code></a> of a downstream <a href="org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values"><code>PCollection</code></a> may be silently dropped. See
     https://issues.apache.org/jira/browse/BEAM-644 for details on a replacement.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/DoFn.html#getAllowedTimestampSkew--">org.apache.beam.sdk.transforms.DoFn.getAllowedTimestampSkew()</a>
<div class="block"><span class="deprecationComment">This method permits a <a href="org/apache/beam/sdk/transforms/DoFn.html" title="class in org.apache.beam.sdk.transforms"><code>DoFn</code></a> to emit elements behind the watermark. These
     elements are considered late, and if behind the <a href="org/apache/beam/sdk/transforms/windowing/Window.html#withAllowedLateness-org.joda.time.Duration-"><code>allowed lateness</code></a> of a downstream <a href="org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values"><code>PCollection</code></a> may be silently dropped. See
     https://issues.apache.org/jira/browse/BEAM-644 for details on a replacement.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/gcp/bigtable/BigtableIO.Read.html#getBigtableOptions--">org.apache.beam.sdk.io.gcp.bigtable.BigtableIO.Read.getBigtableOptions()</a>
<div class="block"><span class="deprecationComment">will be replaced by bigtable options configurator.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/gcp/bigtable/BigtableIO.Write.html#getBigtableOptions--">org.apache.beam.sdk.io.gcp.bigtable.BigtableIO.Write.getBigtableOptions()</a>
<div class="block"><span class="deprecationComment">will be replaced by bigtable options configurator.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/DoFnTester.html#getCloningBehavior--">org.apache.beam.sdk.transforms.DoFnTester.getCloningBehavior()</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/testing/TestPipeline.html" title="class in org.apache.beam.sdk.testing"><code>TestPipeline</code></a> with the <code>DirectRunner</code>.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/aws/sns/AwsClientsProvider.html#getCloudWatchClient--">org.apache.beam.sdk.io.aws.sns.AwsClientsProvider.getCloudWatchClient()</a>
<div class="block"><span class="deprecationComment">SnsIO doesn't require a CloudWatch client</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/aws/dynamodb/AwsClientsProvider.html#getCloudWatchClient--">org.apache.beam.sdk.io.aws.dynamodb.AwsClientsProvider.getCloudWatchClient()</a>
<div class="block"><span class="deprecationComment">DynamoDBIO doesn't require a CloudWatch client</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/coders/CoderRegistry.html#getCoder-java.lang.Class-java.lang.Class-java.util.Map-java.lang.reflect.TypeVariable-">org.apache.beam.sdk.coders.CoderRegistry.getCoder(Class&lt;? extends T&gt;, Class&lt;T&gt;, Map&lt;Type, ? extends Coder&lt;?&gt;&gt;, TypeVariable&lt;?&gt;)</a>
<div class="block"><span class="deprecationComment">This method is to change in an unknown backwards incompatible way once support for
     this functionality is refined.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/coders/CoderRegistry.html#getCoder-org.apache.beam.sdk.values.TypeDescriptor-org.apache.beam.sdk.values.TypeDescriptor-org.apache.beam.sdk.coders.Coder-">org.apache.beam.sdk.coders.CoderRegistry.getCoder(TypeDescriptor&lt;OutputT&gt;, TypeDescriptor&lt;InputT&gt;, Coder&lt;InputT&gt;)</a>
<div class="block"><span class="deprecationComment">This method is to change in an unknown backwards incompatible way once support for
     this functionality is refined.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/values/PCollectionView.html#getCoderInternal--">org.apache.beam.sdk.values.PCollectionView.getCoderInternal()</a>
<div class="block"><span class="deprecationComment">this method will be removed entirely. The <a href="org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values"><code>PCollection</code></a> underlying a side
     input, including its <a href="org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders"><code>Coder</code></a>, is part of the side input's specification with a <a href="org/apache/beam/sdk/transforms/ParDo.html" title="class in org.apache.beam.sdk.transforms"><code>ParDo</code></a> transform, which will obtain that information via a package-private channel.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/PTransform.html#getDefaultOutputCoder--">org.apache.beam.sdk.transforms.PTransform.getDefaultOutputCoder()</a>
<div class="block"><span class="deprecationComment">Instead, the PTransform should explicitly call <a href="org/apache/beam/sdk/values/PCollection.html#setCoder-org.apache.beam.sdk.coders.Coder-"><code>PCollection.setCoder(org.apache.beam.sdk.coders.Coder&lt;T&gt;)</code></a> on the
     returned PCollection.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/Source.html#getDefaultOutputCoder--">org.apache.beam.sdk.io.Source.getDefaultOutputCoder()</a>
<div class="block"><span class="deprecationComment">Override <a href="org/apache/beam/sdk/io/Source.html#getOutputCoder--"><code>Source.getOutputCoder()</code></a> instead.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/PTransform.html#getDefaultOutputCoder-InputT-">org.apache.beam.sdk.transforms.PTransform.getDefaultOutputCoder(InputT)</a>
<div class="block"><span class="deprecationComment">Instead, the PTransform should explicitly call <a href="org/apache/beam/sdk/values/PCollection.html#setCoder-org.apache.beam.sdk.coders.Coder-"><code>PCollection.setCoder(org.apache.beam.sdk.coders.Coder&lt;T&gt;)</code></a> on the
     returned PCollection.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/PTransform.html#getDefaultOutputCoder-InputT-org.apache.beam.sdk.values.PCollection-">org.apache.beam.sdk.transforms.PTransform.getDefaultOutputCoder(InputT, PCollection&lt;T&gt;)</a>
<div class="block"><span class="deprecationComment">Instead, the PTransform should explicitly call <a href="org/apache/beam/sdk/values/PCollection.html#setCoder-org.apache.beam.sdk.coders.Coder-"><code>PCollection.setCoder(org.apache.beam.sdk.coders.Coder&lt;T&gt;)</code></a> on the
     returned PCollection.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/runners/dataflow/util/MonitoringUtil.html#getJobMonitoringPageURL-java.lang.String-java.lang.String-">org.apache.beam.runners.dataflow.util.MonitoringUtil.getJobMonitoringPageURL(String, String)</a>
<div class="block"><span class="deprecationComment">this method defaults the region to "us-central1". Prefer using the overload with an
     explicit regionId parameter.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/DoFnTester.html#getMainOutputTag--">org.apache.beam.sdk.transforms.DoFnTester.getMainOutputTag()</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/testing/TestPipeline.html" title="class in org.apache.beam.sdk.testing"><code>TestPipeline</code></a> with the <code>DirectRunner</code>.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/schemas/Schema.FieldType.html#getMetadata-java.lang.String-">org.apache.beam.sdk.schemas.Schema.FieldType.getMetadata(String)</a>
<div class="block"><span class="deprecationComment">use schema options instead.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/schemas/Schema.FieldType.html#getMetadataString-java.lang.String-">org.apache.beam.sdk.schemas.Schema.FieldType.getMetadataString(String)</a>
<div class="block"><span class="deprecationComment">use schema options instead.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/DoFnTester.html#getMutableOutput-org.apache.beam.sdk.values.TupleTag-">org.apache.beam.sdk.transforms.DoFnTester.getMutableOutput(TupleTag&lt;T&gt;)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/testing/TestPipeline.html" title="class in org.apache.beam.sdk.testing"><code>TestPipeline</code></a> with the <code>DirectRunner</code>.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/coders/CoderRegistry.html#getOutputCoder-org.apache.beam.sdk.transforms.SerializableFunction-org.apache.beam.sdk.coders.Coder-">org.apache.beam.sdk.coders.CoderRegistry.getOutputCoder(SerializableFunction&lt;InputT, OutputT&gt;, Coder&lt;InputT&gt;)</a>
<div class="block"><span class="deprecationComment">This method is to change in an unknown backwards incompatible way once support for
     this functionality is refined.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/DoFnTester.html#getPipelineOptions--">org.apache.beam.sdk.transforms.DoFnTester.getPipelineOptions()</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/testing/TestPipeline.html" title="class in org.apache.beam.sdk.testing"><code>TestPipeline</code></a> with the <code>DirectRunner</code>.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/runners/flink/FlinkPipelineOptions.html#getStateBackendFactory--">org.apache.beam.runners.flink.FlinkPipelineOptions.getStateBackendFactory()</a>
<div class="block"><span class="deprecationComment">Please use setStateBackend below.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/values/PCollectionView.html#getTagInternal--">org.apache.beam.sdk.values.PCollectionView.getTagInternal()</a>
<div class="block"><span class="deprecationComment">this method will be removed entirely. The <a href="org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values"><code>PCollection</code></a> underlying a side
     input, is part of the side input's specification with a <a href="org/apache/beam/sdk/transforms/ParDo.html" title="class in org.apache.beam.sdk.transforms"><code>ParDo</code></a> transform, which will
     obtain that information via a package-private channel.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/schemas/parser/generated/FieldSpecifierNotationParser.html#getTokenNames--">org.apache.beam.sdk.schemas.parser.generated.FieldSpecifierNotationParser.getTokenNames()</a></td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/schemas/parser/generated/FieldSpecifierNotationLexer.html#getTokenNames--">org.apache.beam.sdk.schemas.parser.generated.FieldSpecifierNotationLexer.getTokenNames()</a></td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/View.CreatePCollectionView.html#getView--">org.apache.beam.sdk.transforms.View.CreatePCollectionView.getView()</a>
<div class="block"><span class="deprecationComment">This should not be used to obtain the output of any given application of this
     <a href="org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms"><code>PTransform</code></a>. That should be obtained by inspecting the <code>TransformHierarchy.Node</code> that contains
     this <a href="org/apache/beam/sdk/transforms/View.CreatePCollectionView.html" title="class in org.apache.beam.sdk.transforms"><code>View.CreatePCollectionView</code></a>, as this view may have been replaced within pipeline
     surgery.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/values/PCollectionView.html#getViewFn--">org.apache.beam.sdk.values.PCollectionView.getViewFn()</a>
<div class="block"><span class="deprecationComment">this method will be removed entirely. The <a href="org/apache/beam/sdk/transforms/ViewFn.html" title="class in org.apache.beam.sdk.transforms"><code>ViewFn</code></a> for a side input is an
     attribute of the side input's specification with a <a href="org/apache/beam/sdk/transforms/ParDo.html" title="class in org.apache.beam.sdk.transforms"><code>ParDo</code></a> transform, which will
     obtain this specification via a package-private channel.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/values/PCollectionView.html#getWindowingStrategyInternal--">org.apache.beam.sdk.values.PCollectionView.getWindowingStrategyInternal()</a>
<div class="block"><span class="deprecationComment">this method will be removed entirely. The <a href="org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values"><code>PCollection</code></a> underlying a side
     input, including its <a href="org/apache/beam/sdk/values/WindowingStrategy.html" title="class in org.apache.beam.sdk.values"><code>WindowingStrategy</code></a>, is part of the side input's specification
     with a <a href="org/apache/beam/sdk/transforms/ParDo.html" title="class in org.apache.beam.sdk.transforms"><code>ParDo</code></a> transform, which will obtain that information via a package-private
     channel.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/runners/dataflow/options/DataflowPipelineWorkerPoolOptions.html#getWorkerHarnessContainerImage--">org.apache.beam.runners.dataflow.options.DataflowPipelineWorkerPoolOptions.getWorkerHarnessContainerImage()</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/runners/dataflow/options/DataflowPipelineWorkerPoolOptions.html#getSdkContainerImage--"><code>DataflowPipelineWorkerPoolOptions.getSdkContainerImage()</code></a> instead.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/extensions/gcp/options/GcpOptions.html#getZone--">org.apache.beam.sdk.extensions.gcp.options.GcpOptions.getZone()</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/extensions/gcp/options/GcpOptions.html#getWorkerZone--"><code>GcpOptions.getWorkerZone()</code></a> instead.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/testing/PAssert.PCollectionContentsAssert.html#hashCode--">org.apache.beam.sdk.testing.PAssert.PCollectionContentsAssert.hashCode()</a>
<div class="block"><span class="deprecationComment"><code>Object.hashCode()</code> is not supported on PAssert objects.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/windowing/WindowFn.html#isCompatible-org.apache.beam.sdk.transforms.windowing.WindowFn-">org.apache.beam.sdk.transforms.windowing.WindowFn.isCompatible(WindowFn&lt;?, ?&gt;)</a>
<div class="block"><span class="deprecationComment">please override verifyCompatibility to throw a useful error message; we will remove
     isCompatible at version 3.0.0</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/values/PCollectionViews.html#iterableViewUsingVoidKey-org.apache.beam.sdk.values.TupleTag-org.apache.beam.sdk.values.PCollection-org.apache.beam.sdk.values.PCollectionViews.TypeDescriptorSupplier-org.apache.beam.sdk.values.WindowingStrategy-">org.apache.beam.sdk.values.PCollectionViews.iterableViewUsingVoidKey(TupleTag&lt;Materializations.MultimapView&lt;Void, T&gt;&gt;, PCollection&lt;KV&lt;Void, T&gt;&gt;, PCollectionViews.TypeDescriptorSupplier&lt;T&gt;, WindowingStrategy&lt;?, W&gt;)</a>
<div class="block"><span class="deprecationComment">See <a href="org/apache/beam/sdk/values/PCollectionViews.html#iterableView-org.apache.beam.sdk.values.PCollection-org.apache.beam.sdk.values.PCollectionViews.TypeDescriptorSupplier-org.apache.beam.sdk.values.WindowingStrategy-"><code>PCollectionViews.iterableView(org.apache.beam.sdk.values.PCollection&lt;T&gt;, org.apache.beam.sdk.values.PCollectionViews.TypeDescriptorSupplier&lt;T&gt;, org.apache.beam.sdk.values.WindowingStrategy&lt;?, W&gt;)</code></a>.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/expansion/ExternalTransformRegistrar.html#knownBuilders--">org.apache.beam.sdk.expansion.ExternalTransformRegistrar.knownBuilders()</a>
<div class="block"><span class="deprecationComment">Prefer implementing 'knownBuilderInstances'. This method will be removed in a
     future version of Beam.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/values/PCollectionViews.html#listViewUsingVoidKey-org.apache.beam.sdk.values.PCollection-org.apache.beam.sdk.values.TupleTag-org.apache.beam.sdk.values.PCollectionViews.TypeDescriptorSupplier-org.apache.beam.sdk.values.WindowingStrategy-">org.apache.beam.sdk.values.PCollectionViews.listViewUsingVoidKey(PCollection&lt;KV&lt;Void, T&gt;&gt;, TupleTag&lt;Materializations.MultimapView&lt;Void, T&gt;&gt;, PCollectionViews.TypeDescriptorSupplier&lt;T&gt;, WindowingStrategy&lt;?, W&gt;)</a>
<div class="block"><span class="deprecationComment">See <a href="org/apache/beam/sdk/values/PCollectionViews.html#listView-org.apache.beam.sdk.values.PCollection-org.apache.beam.sdk.values.PCollectionViews.TypeDescriptorSupplier-org.apache.beam.sdk.values.WindowingStrategy-"><code>PCollectionViews.listView(org.apache.beam.sdk.values.PCollection&lt;org.apache.beam.sdk.values.KV&lt;java.lang.Long, org.apache.beam.sdk.values.PCollectionViews.ValueOrMetadata&lt;T, org.apache.beam.sdk.io.range.OffsetRange&gt;&gt;&gt;, org.apache.beam.sdk.values.PCollectionViews.TypeDescriptorSupplier&lt;T&gt;, org.apache.beam.sdk.values.WindowingStrategy&lt;?, W&gt;)</code></a>.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/values/PCollectionViews.html#listViewUsingVoidKey-org.apache.beam.sdk.values.TupleTag-org.apache.beam.sdk.values.PCollection-org.apache.beam.sdk.values.PCollectionViews.TypeDescriptorSupplier-org.apache.beam.sdk.values.WindowingStrategy-">org.apache.beam.sdk.values.PCollectionViews.listViewUsingVoidKey(TupleTag&lt;Materializations.MultimapView&lt;Void, T&gt;&gt;, PCollection&lt;KV&lt;Void, T&gt;&gt;, PCollectionViews.TypeDescriptorSupplier&lt;T&gt;, WindowingStrategy&lt;?, W&gt;)</a>
<div class="block"><span class="deprecationComment">See <a href="org/apache/beam/sdk/values/PCollectionViews.html#listView-org.apache.beam.sdk.values.PCollection-org.apache.beam.sdk.values.PCollectionViews.TypeDescriptorSupplier-org.apache.beam.sdk.values.WindowingStrategy-"><code>PCollectionViews.listView(org.apache.beam.sdk.values.PCollection&lt;org.apache.beam.sdk.values.KV&lt;java.lang.Long, org.apache.beam.sdk.values.PCollectionViews.ValueOrMetadata&lt;T, org.apache.beam.sdk.io.range.OffsetRange&gt;&gt;&gt;, org.apache.beam.sdk.values.PCollectionViews.TypeDescriptorSupplier&lt;T&gt;, org.apache.beam.sdk.values.WindowingStrategy&lt;?, W&gt;)</code></a>.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/schemas/Schema.FieldType.html#map-org.apache.beam.sdk.schemas.Schema.FieldType-org.apache.beam.sdk.schemas.Schema.FieldType-boolean-">org.apache.beam.sdk.schemas.Schema.FieldType.map(Schema.FieldType, Schema.FieldType, boolean)</a>
<div class="block"><span class="deprecationComment">Set the nullability on the valueType instead</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/values/PCollectionViews.html#mapViewUsingVoidKey-org.apache.beam.sdk.values.TupleTag-org.apache.beam.sdk.values.PCollection-org.apache.beam.sdk.values.PCollectionViews.TypeDescriptorSupplier-org.apache.beam.sdk.values.PCollectionViews.TypeDescriptorSupplier-org.apache.beam.sdk.values.WindowingStrategy-">org.apache.beam.sdk.values.PCollectionViews.mapViewUsingVoidKey(TupleTag&lt;Materializations.MultimapView&lt;Void, KV&lt;K, V&gt;&gt;&gt;, PCollection&lt;KV&lt;Void, KV&lt;K, V&gt;&gt;&gt;, PCollectionViews.TypeDescriptorSupplier&lt;K&gt;, PCollectionViews.TypeDescriptorSupplier&lt;V&gt;, WindowingStrategy&lt;?, W&gt;)</a>
<div class="block"><span class="deprecationComment">See <a href="org/apache/beam/sdk/values/PCollectionViews.html#mapView-org.apache.beam.sdk.values.PCollection-org.apache.beam.sdk.values.PCollectionViews.TypeDescriptorSupplier-org.apache.beam.sdk.values.PCollectionViews.TypeDescriptorSupplier-org.apache.beam.sdk.values.WindowingStrategy-"><code>PCollectionViews.mapView(org.apache.beam.sdk.values.PCollection&lt;org.apache.beam.sdk.values.KV&lt;K, V&gt;&gt;, org.apache.beam.sdk.values.PCollectionViews.TypeDescriptorSupplier&lt;K&gt;, org.apache.beam.sdk.values.PCollectionViews.TypeDescriptorSupplier&lt;V&gt;, org.apache.beam.sdk.values.WindowingStrategy&lt;?, W&gt;)</code></a>.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/values/PCollectionViews.html#multimapViewUsingVoidKey-org.apache.beam.sdk.values.TupleTag-org.apache.beam.sdk.values.PCollection-org.apache.beam.sdk.values.PCollectionViews.TypeDescriptorSupplier-org.apache.beam.sdk.values.PCollectionViews.TypeDescriptorSupplier-org.apache.beam.sdk.values.WindowingStrategy-">org.apache.beam.sdk.values.PCollectionViews.multimapViewUsingVoidKey(TupleTag&lt;Materializations.MultimapView&lt;Void, KV&lt;K, V&gt;&gt;&gt;, PCollection&lt;KV&lt;Void, KV&lt;K, V&gt;&gt;&gt;, PCollectionViews.TypeDescriptorSupplier&lt;K&gt;, PCollectionViews.TypeDescriptorSupplier&lt;V&gt;, WindowingStrategy&lt;?, W&gt;)</a>
<div class="block"><span class="deprecationComment">See <a href="org/apache/beam/sdk/values/PCollectionViews.html#multimapView-org.apache.beam.sdk.values.PCollection-org.apache.beam.sdk.values.PCollectionViews.TypeDescriptorSupplier-org.apache.beam.sdk.values.PCollectionViews.TypeDescriptorSupplier-org.apache.beam.sdk.values.WindowingStrategy-"><code>PCollectionViews.multimapView(org.apache.beam.sdk.values.PCollection&lt;org.apache.beam.sdk.values.KV&lt;K, V&gt;&gt;, org.apache.beam.sdk.values.PCollectionViews.TypeDescriptorSupplier&lt;K&gt;, org.apache.beam.sdk.values.PCollectionViews.TypeDescriptorSupplier&lt;V&gt;, org.apache.beam.sdk.values.WindowingStrategy&lt;?, W&gt;)</code></a>.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/DoFnTester.html#of-org.apache.beam.sdk.transforms.DoFn-">org.apache.beam.sdk.transforms.DoFnTester.of(DoFn&lt;InputT, OutputT&gt;)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/testing/TestPipeline.html" title="class in org.apache.beam.sdk.testing"><code>TestPipeline</code></a> with the <code>DirectRunner</code>.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/AvroIO.html#parseAllGenericRecords-org.apache.beam.sdk.transforms.SerializableFunction-">org.apache.beam.sdk.io.AvroIO.parseAllGenericRecords(SerializableFunction&lt;GenericRecord, T&gt;)</a>
<div class="block"><span class="deprecationComment">You can achieve The functionality of <a href="org/apache/beam/sdk/io/AvroIO.html#parseAllGenericRecords-org.apache.beam.sdk.transforms.SerializableFunction-"><code>AvroIO.parseAllGenericRecords(SerializableFunction)</code></a> using <a href="org/apache/beam/sdk/io/FileIO.html" title="class in org.apache.beam.sdk.io"><code>FileIO</code></a> matching plus <a href="org/apache/beam/sdk/io/AvroIO.html#parseFilesGenericRecords-org.apache.beam.sdk.transforms.SerializableFunction-"><code>AvroIO.parseFilesGenericRecords(SerializableFunction)</code></a> ()}. This is the preferred method to make
     composition explicit. <a href="org/apache/beam/sdk/io/AvroIO.ParseAll.html" title="class in org.apache.beam.sdk.io"><code>AvroIO.ParseAll</code></a> will not receive upgrades and will be removed in a
     future version of Beam.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/DoFnTester.html#peekOutputElements--">org.apache.beam.sdk.transforms.DoFnTester.peekOutputElements()</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/testing/TestPipeline.html" title="class in org.apache.beam.sdk.testing"><code>TestPipeline</code></a> with the <code>DirectRunner</code>.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/DoFnTester.html#peekOutputElements-org.apache.beam.sdk.values.TupleTag-">org.apache.beam.sdk.transforms.DoFnTester.peekOutputElements(TupleTag&lt;T&gt;)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/testing/TestPipeline.html" title="class in org.apache.beam.sdk.testing"><code>TestPipeline</code></a> with the <code>DirectRunner</code>.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/DoFnTester.html#peekOutputElementsInWindow-org.apache.beam.sdk.transforms.windowing.BoundedWindow-">org.apache.beam.sdk.transforms.DoFnTester.peekOutputElementsInWindow(BoundedWindow)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/testing/TestPipeline.html" title="class in org.apache.beam.sdk.testing"><code>TestPipeline</code></a> with the <code>DirectRunner</code>.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/DoFnTester.html#peekOutputElementsInWindow-org.apache.beam.sdk.values.TupleTag-org.apache.beam.sdk.transforms.windowing.BoundedWindow-">org.apache.beam.sdk.transforms.DoFnTester.peekOutputElementsInWindow(TupleTag&lt;OutputT&gt;, BoundedWindow)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/testing/TestPipeline.html" title="class in org.apache.beam.sdk.testing"><code>TestPipeline</code></a> with the <code>DirectRunner</code>.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/DoFnTester.html#peekOutputElementsWithTimestamp--">org.apache.beam.sdk.transforms.DoFnTester.peekOutputElementsWithTimestamp()</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/testing/TestPipeline.html" title="class in org.apache.beam.sdk.testing"><code>TestPipeline</code></a> with the <code>DirectRunner</code>.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/DoFn.html#prepareForProcessing--">org.apache.beam.sdk.transforms.DoFn.prepareForProcessing()</a>
<div class="block"><span class="deprecationComment">use <a href="org/apache/beam/sdk/transforms/DoFn.Setup.html" title="annotation in org.apache.beam.sdk.transforms"><code>DoFn.Setup</code></a> or <a href="org/apache/beam/sdk/transforms/DoFn.StartBundle.html" title="annotation in org.apache.beam.sdk.transforms"><code>DoFn.StartBundle</code></a> instead. This method will be removed in a
     future release.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/DoFnTester.html#processBundle-InputT...-">org.apache.beam.sdk.transforms.DoFnTester.processBundle(InputT...)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/testing/TestPipeline.html" title="class in org.apache.beam.sdk.testing"><code>TestPipeline</code></a> with the <code>DirectRunner</code>.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/DoFnTester.html#processBundle-java.lang.Iterable-">org.apache.beam.sdk.transforms.DoFnTester.processBundle(Iterable&lt;? extends InputT&gt;)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/testing/TestPipeline.html" title="class in org.apache.beam.sdk.testing"><code>TestPipeline</code></a> with the <code>DirectRunner</code>.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/DoFnTester.html#processElement-InputT-">org.apache.beam.sdk.transforms.DoFnTester.processElement(InputT)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/testing/TestPipeline.html" title="class in org.apache.beam.sdk.testing"><code>TestPipeline</code></a> with the <code>DirectRunner</code>.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/DoFnTester.html#processTimestampedElement-org.apache.beam.sdk.values.TimestampedValue-">org.apache.beam.sdk.transforms.DoFnTester.processTimestampedElement(TimestampedValue&lt;InputT&gt;)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/testing/TestPipeline.html" title="class in org.apache.beam.sdk.testing"><code>TestPipeline</code></a> with the <code>DirectRunner</code>.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/DoFnTester.html#processWindowedElement-InputT-org.joda.time.Instant-org.apache.beam.sdk.transforms.windowing.BoundedWindow-">org.apache.beam.sdk.transforms.DoFnTester.processWindowedElement(InputT, Instant, BoundedWindow)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/testing/TestPipeline.html" title="class in org.apache.beam.sdk.testing"><code>TestPipeline</code></a> with the <code>DirectRunner</code>.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO.html#read--">org.apache.beam.sdk.io.gcp.bigquery.BigQueryIO.read()</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO.html#read-org.apache.beam.sdk.transforms.SerializableFunction-"><code>BigQueryIO.read(SerializableFunction)</code></a> or <a href="org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO.html#readTableRows--"><code>BigQueryIO.readTableRows()</code></a> instead. <a href="org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO.html#readTableRows--"><code>BigQueryIO.readTableRows()</code></a> does exactly the same as <a href="org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO.html#read--"><code>BigQueryIO.read()</code></a>, however <a href="org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO.html#read-org.apache.beam.sdk.transforms.SerializableFunction-"><code>BigQueryIO.read(SerializableFunction)</code></a> performs better.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/TextIO.html#readAll--">org.apache.beam.sdk.io.TextIO.readAll()</a>
<div class="block"><span class="deprecationComment">You can achieve The functionality of <a href="org/apache/beam/sdk/io/TextIO.html#readAll--"><code>TextIO.readAll()</code></a> using <a href="org/apache/beam/sdk/io/FileIO.html" title="class in org.apache.beam.sdk.io"><code>FileIO</code></a>
     matching plus <a href="org/apache/beam/sdk/io/TextIO.html#readFiles--"><code>TextIO.readFiles()</code></a>. This is the preferred method to make composition
     explicit. <a href="org/apache/beam/sdk/io/TextIO.ReadAll.html" title="class in org.apache.beam.sdk.io"><code>TextIO.ReadAll</code></a> will not receive upgrades and will be removed in a future version
     of Beam.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/AvroIO.html#readAll-java.lang.Class-">org.apache.beam.sdk.io.AvroIO.readAll(Class&lt;T&gt;)</a>
<div class="block"><span class="deprecationComment">You can achieve The functionality of <a href="org/apache/beam/sdk/io/AvroIO.html#readAll-java.lang.Class-"><code>AvroIO.readAll(java.lang.Class&lt;T&gt;)</code></a> using <a href="org/apache/beam/sdk/io/FileIO.html" title="class in org.apache.beam.sdk.io"><code>FileIO</code></a> matching
     plus <a href="org/apache/beam/sdk/io/AvroIO.html#readFiles-java.lang.Class-"><code>AvroIO.readFiles(Class)</code></a>. This is the preferred method to make composition explicit.
     <a href="org/apache/beam/sdk/io/AvroIO.ReadAll.html" title="class in org.apache.beam.sdk.io"><code>AvroIO.ReadAll</code></a> will not receive upgrades and will be removed in a future version of Beam.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/AvroIO.html#readAllGenericRecords-org.apache.avro.Schema-">org.apache.beam.sdk.io.AvroIO.readAllGenericRecords(Schema)</a>
<div class="block"><span class="deprecationComment">You can achieve The functionality of <a href="org/apache/beam/sdk/io/AvroIO.html#readAllGenericRecords-org.apache.avro.Schema-"><code>AvroIO.readAllGenericRecords(Schema)</code></a> using
     <a href="org/apache/beam/sdk/io/FileIO.html" title="class in org.apache.beam.sdk.io"><code>FileIO</code></a> matching plus <a href="org/apache/beam/sdk/io/AvroIO.html#readFilesGenericRecords-org.apache.avro.Schema-"><code>AvroIO.readFilesGenericRecords(Schema)</code></a>. This is the
     preferred method to make composition explicit. <a href="org/apache/beam/sdk/io/AvroIO.ReadAll.html" title="class in org.apache.beam.sdk.io"><code>AvroIO.ReadAll</code></a> will not receive upgrades
     and will be removed in a future version of Beam.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/AvroIO.html#readAllGenericRecords-java.lang.String-">org.apache.beam.sdk.io.AvroIO.readAllGenericRecords(String)</a>
<div class="block"><span class="deprecationComment">You can achieve The functionality of <a href="org/apache/beam/sdk/io/AvroIO.html#readAllGenericRecords-java.lang.String-"><code>AvroIO.readAllGenericRecords(String)</code></a> using
     <a href="org/apache/beam/sdk/io/FileIO.html" title="class in org.apache.beam.sdk.io"><code>FileIO</code></a> matching plus <a href="org/apache/beam/sdk/io/AvroIO.html#readFilesGenericRecords-java.lang.String-"><code>AvroIO.readFilesGenericRecords(String)</code></a>. This is the
     preferred method to make composition explicit. <a href="org/apache/beam/sdk/io/AvroIO.ReadAll.html" title="class in org.apache.beam.sdk.io"><code>AvroIO.ReadAll</code></a> will not receive upgrades
     and will be removed in a future version of Beam.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/runners/fnexecution/data/FnDataService.html#send-org.apache.beam.sdk.fn.data.LogicalEndpoint-org.apache.beam.sdk.coders.Coder-">org.apache.beam.runners.fnexecution.data.FnDataService.send(LogicalEndpoint, Coder&lt;T&gt;)</a>
<div class="block"><span class="deprecationComment">Migrate to use <a href="org/apache/beam/sdk/fn/data/BeamFnDataOutboundAggregator.html" title="class in org.apache.beam.sdk.fn.data"><code>BeamFnDataOutboundAggregator</code></a> directly for sending outbound
     data.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/DoFnTester.html#setCloningBehavior-org.apache.beam.sdk.transforms.DoFnTester.CloningBehavior-">org.apache.beam.sdk.transforms.DoFnTester.setCloningBehavior(DoFnTester.CloningBehavior)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/testing/TestPipeline.html" title="class in org.apache.beam.sdk.testing"><code>TestPipeline</code></a> with the <code>DirectRunner</code>.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/Pipeline.html#setCoderRegistry-org.apache.beam.sdk.coders.CoderRegistry-">org.apache.beam.sdk.Pipeline.setCoderRegistry(CoderRegistry)</a>
<div class="block"><span class="deprecationComment">this should never be used - every <a href="org/apache/beam/sdk/Pipeline.html" title="class in org.apache.beam.sdk"><code>Pipeline</code></a> has a registry throughout its
     lifetime.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/aws2/dynamodb/DynamoDBIO.RetryConfiguration.Builder.html#setMaxDuration-org.joda.time.Duration-">org.apache.beam.sdk.io.aws2.dynamodb.DynamoDBIO.RetryConfiguration.Builder.setMaxDuration(Duration)</a>
<div class="block"><span class="deprecationComment"><b>Warning</b>, max accumulative retry latency is silently ignored as it is not
     supported by the AWS SDK.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/DoFnTester.html#setSideInput-org.apache.beam.sdk.values.PCollectionView-org.apache.beam.sdk.transforms.windowing.BoundedWindow-T-">org.apache.beam.sdk.transforms.DoFnTester.setSideInput(PCollectionView&lt;T&gt;, BoundedWindow, T)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/testing/TestPipeline.html" title="class in org.apache.beam.sdk.testing"><code>TestPipeline</code></a> with the <code>DirectRunner</code>.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/DoFnTester.html#setSideInputs-java.util.Map-">org.apache.beam.sdk.transforms.DoFnTester.setSideInputs(Map&lt;PCollectionView&lt;?&gt;, Map&lt;BoundedWindow, ?&gt;&gt;)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/testing/TestPipeline.html" title="class in org.apache.beam.sdk.testing"><code>TestPipeline</code></a> with the <code>DirectRunner</code>.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/runners/flink/FlinkPipelineOptions.html#setStateBackendFactory-java.lang.Class-">org.apache.beam.runners.flink.FlinkPipelineOptions.setStateBackendFactory(Class&lt;? extends FlinkStateBackendFactory&gt;)</a>
<div class="block"><span class="deprecationComment">Please use setStateBackend below.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/runners/dataflow/options/DataflowPipelineWorkerPoolOptions.html#setWorkerHarnessContainerImage-java.lang.String-">org.apache.beam.runners.dataflow.options.DataflowPipelineWorkerPoolOptions.setWorkerHarnessContainerImage(String)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/runners/dataflow/options/DataflowPipelineWorkerPoolOptions.html#setSdkContainerImage-java.lang.String-"><code>DataflowPipelineWorkerPoolOptions.setSdkContainerImage(java.lang.String)</code></a> instead.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/extensions/gcp/options/GcpOptions.html#setZone-java.lang.String-">org.apache.beam.sdk.extensions.gcp.options.GcpOptions.setZone(String)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/extensions/gcp/options/GcpOptions.html#setWorkerZone-java.lang.String-"><code>GcpOptions.setWorkerZone(java.lang.String)</code></a> instead.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/values/PCollectionViews.html#singletonViewUsingVoidKey-org.apache.beam.sdk.values.TupleTag-org.apache.beam.sdk.values.PCollection-org.apache.beam.sdk.values.PCollectionViews.TypeDescriptorSupplier-org.apache.beam.sdk.values.WindowingStrategy-boolean-T-org.apache.beam.sdk.coders.Coder-">org.apache.beam.sdk.values.PCollectionViews.singletonViewUsingVoidKey(TupleTag&lt;Materializations.MultimapView&lt;Void, T&gt;&gt;, PCollection&lt;KV&lt;Void, T&gt;&gt;, PCollectionViews.TypeDescriptorSupplier&lt;T&gt;, WindowingStrategy&lt;?, W&gt;, boolean, T, Coder&lt;T&gt;)</a>
<div class="block"><span class="deprecationComment">See <a href="org/apache/beam/sdk/values/PCollectionViews.html#singletonView-org.apache.beam.sdk.values.PCollection-org.apache.beam.sdk.values.PCollectionViews.TypeDescriptorSupplier-org.apache.beam.sdk.values.WindowingStrategy-boolean-T-org.apache.beam.sdk.coders.Coder-"><code>PCollectionViews.singletonView(org.apache.beam.sdk.values.PCollection&lt;T&gt;, org.apache.beam.sdk.values.PCollectionViews.TypeDescriptorSupplier&lt;T&gt;, org.apache.beam.sdk.values.WindowingStrategy&lt;?, W&gt;, boolean, T, org.apache.beam.sdk.coders.Coder&lt;T&gt;)</code></a>.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/AvroIO.html#sinkViaGenericRecords-org.apache.avro.Schema-org.apache.beam.sdk.io.AvroIO.RecordFormatter-">org.apache.beam.sdk.io.AvroIO.sinkViaGenericRecords(Schema, AvroIO.RecordFormatter&lt;ElementT&gt;)</a>
<div class="block"><span class="deprecationComment">RecordFormatter will be removed in future versions.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/DoFnTester.html#startBundle--">org.apache.beam.sdk.transforms.DoFnTester.startBundle()</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/testing/TestPipeline.html" title="class in org.apache.beam.sdk.testing"><code>TestPipeline</code></a> with the <code>DirectRunner</code>.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/DoFnTester.html#takeOutputElements--">org.apache.beam.sdk.transforms.DoFnTester.takeOutputElements()</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/testing/TestPipeline.html" title="class in org.apache.beam.sdk.testing"><code>TestPipeline</code></a> with the <code>DirectRunner</code>.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/DoFnTester.html#takeOutputElements-org.apache.beam.sdk.values.TupleTag-">org.apache.beam.sdk.transforms.DoFnTester.takeOutputElements(TupleTag&lt;T&gt;)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/testing/TestPipeline.html" title="class in org.apache.beam.sdk.testing"><code>TestPipeline</code></a> with the <code>DirectRunner</code>.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/DoFnTester.html#takeOutputElementsWithTimestamp--">org.apache.beam.sdk.transforms.DoFnTester.takeOutputElementsWithTimestamp()</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/testing/TestPipeline.html" title="class in org.apache.beam.sdk.testing"><code>TestPipeline</code></a> with the <code>DirectRunner</code>.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/AvroIO.Write.html#to-org.apache.beam.sdk.io.DynamicAvroDestinations-">org.apache.beam.sdk.io.AvroIO.Write.to(DynamicAvroDestinations&lt;T, ?, T&gt;)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/FileIO.html#write--"><code>FileIO.write()</code></a> or <a href="org/apache/beam/sdk/io/FileIO.html#writeDynamic--"><code>FileIO.writeDynamic()</code></a> instead.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/AvroIO.TypedWrite.html#to-org.apache.beam.sdk.io.DynamicAvroDestinations-">org.apache.beam.sdk.io.AvroIO.TypedWrite.to(DynamicAvroDestinations&lt;UserT, NewDestinationT, OutputT&gt;)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/FileIO.html#write--"><code>FileIO.write()</code></a> or <a href="org/apache/beam/sdk/io/FileIO.html#writeDynamic--"><code>FileIO.writeDynamic()</code></a> instead.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/TextIO.Write.html#to-org.apache.beam.sdk.io.FileBasedSink.DynamicDestinations-">org.apache.beam.sdk.io.TextIO.Write.to(FileBasedSink.DynamicDestinations&lt;String, ?, String&gt;)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/FileIO.html#write--"><code>FileIO.write()</code></a> or <a href="org/apache/beam/sdk/io/FileIO.html#writeDynamic--"><code>FileIO.writeDynamic()</code></a> ()} with <a href="org/apache/beam/sdk/io/TextIO.html#sink--"><code>TextIO.sink()</code></a> instead.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/TextIO.TypedWrite.html#to-org.apache.beam.sdk.io.FileBasedSink.DynamicDestinations-">org.apache.beam.sdk.io.TextIO.TypedWrite.to(FileBasedSink.DynamicDestinations&lt;UserT, NewDestinationT, String&gt;)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/FileIO.html#write--"><code>FileIO.write()</code></a> or <a href="org/apache/beam/sdk/io/FileIO.html#writeDynamic--"><code>FileIO.writeDynamic()</code></a> with <a href="org/apache/beam/sdk/io/TextIO.html#sink--"><code>TextIO.sink()</code></a>
     instead.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/TextIO.Write.html#to-org.apache.beam.sdk.transforms.SerializableFunction-org.apache.beam.sdk.io.DefaultFilenamePolicy.Params-">org.apache.beam.sdk.io.TextIO.Write.to(SerializableFunction&lt;String, DefaultFilenamePolicy.Params&gt;, DefaultFilenamePolicy.Params)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/FileIO.html#write--"><code>FileIO.write()</code></a> or <a href="org/apache/beam/sdk/io/FileIO.html#writeDynamic--"><code>FileIO.writeDynamic()</code></a> ()} with <a href="org/apache/beam/sdk/io/TextIO.html#sink--"><code>TextIO.sink()</code></a> instead.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/TextIO.TypedWrite.html#to-org.apache.beam.sdk.transforms.SerializableFunction-org.apache.beam.sdk.io.DefaultFilenamePolicy.Params-">org.apache.beam.sdk.io.TextIO.TypedWrite.to(SerializableFunction&lt;UserT, DefaultFilenamePolicy.Params&gt;, DefaultFilenamePolicy.Params)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/FileIO.html#write--"><code>FileIO.write()</code></a> or <a href="org/apache/beam/sdk/io/FileIO.html#writeDynamic--"><code>FileIO.writeDynamic()</code></a> with <a href="org/apache/beam/sdk/io/TextIO.html#sink--"><code>TextIO.sink()</code></a>
     instead.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/CountingSource.html#unbounded--">org.apache.beam.sdk.io.CountingSource.unbounded()</a>
<div class="block"><span class="deprecationComment">use <a href="org/apache/beam/sdk/io/GenerateSequence.html" title="class in org.apache.beam.sdk.io"><code>GenerateSequence</code></a> instead</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/CountingSource.html#unboundedWithTimestampFn-org.apache.beam.sdk.transforms.SerializableFunction-">org.apache.beam.sdk.io.CountingSource.unboundedWithTimestampFn(SerializableFunction&lt;Long, Instant&gt;)</a>
<div class="block"><span class="deprecationComment">use <a href="org/apache/beam/sdk/io/GenerateSequence.html" title="class in org.apache.beam.sdk.io"><code>GenerateSequence</code></a> and call <a href="org/apache/beam/sdk/io/GenerateSequence.html#withTimestampFn-org.apache.beam.sdk.transforms.SerializableFunction-"><code>GenerateSequence.withTimestampFn(SerializableFunction)</code></a> instead</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/kafka/KafkaIO.Read.html#updateConsumerProperties-java.util.Map-">org.apache.beam.sdk.io.kafka.KafkaIO.Read.updateConsumerProperties(Map&lt;String, Object&gt;)</a>
<div class="block"><span class="deprecationComment">as of version 2.13. Use <a href="org/apache/beam/sdk/io/kafka/KafkaIO.Read.html#withConsumerConfigUpdates-java.util.Map-"><code>KafkaIO.Read.withConsumerConfigUpdates(Map)</code></a> instead</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/kafka/KafkaIO.WriteRecords.html#updateProducerProperties-java.util.Map-">org.apache.beam.sdk.io.kafka.KafkaIO.WriteRecords.updateProducerProperties(Map&lt;String, Object&gt;)</a>
<div class="block"><span class="deprecationComment">as of version 2.13. Use <a href="org/apache/beam/sdk/io/kafka/KafkaIO.WriteRecords.html#withProducerConfigUpdates-java.util.Map-"><code>KafkaIO.WriteRecords.withProducerConfigUpdates(Map)</code></a> instead.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/kafka/KafkaIO.Write.html#updateProducerProperties-java.util.Map-">org.apache.beam.sdk.io.kafka.KafkaIO.Write.updateProducerProperties(Map&lt;String, Object&gt;)</a>
<div class="block"><span class="deprecationComment">as of version 2.13. Use <a href="org/apache/beam/sdk/io/kafka/KafkaIO.Write.html#withProducerConfigUpdates-java.util.Map-"><code>KafkaIO.Write.withProducerConfigUpdates(Map)</code></a> instead.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/options/ValueProviders.html#updateSerializedOptions-java.lang.String-java.util.Map-">org.apache.beam.sdk.options.ValueProviders.updateSerializedOptions(String, Map&lt;String, String&gt;)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/testing/TestPipeline.html#newProvider-T-"><code>TestPipeline.newProvider(T)</code></a> for testing <a href="org/apache/beam/sdk/options/ValueProvider.html" title="interface in org.apache.beam.sdk.options"><code>ValueProvider</code></a> code.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/CountingSource.html#upTo-long-">org.apache.beam.sdk.io.CountingSource.upTo(long)</a>
<div class="block"><span class="deprecationComment">use <a href="org/apache/beam/sdk/io/GenerateSequence.html" title="class in org.apache.beam.sdk.io"><code>GenerateSequence</code></a> instead</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/WithTimestamps.html#withAllowedTimestampSkew-org.joda.time.Duration-">org.apache.beam.sdk.transforms.WithTimestamps.withAllowedTimestampSkew(Duration)</a>
<div class="block"><span class="deprecationComment">This method permits a to elements to be emitted behind the watermark. These
     elements are considered late, and if behind the <a href="org/apache/beam/sdk/transforms/windowing/Window.html#withAllowedLateness-org.joda.time.Duration-"><code>allowed lateness</code></a> of a downstream <a href="org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values"><code>PCollection</code></a> may be silently dropped. See
     https://issues.apache.org/jira/browse/BEAM-644 for details on a replacement.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/aws2/kinesis/KinesisIO.Read.html#withAWSClientsProvider-org.apache.beam.sdk.io.aws2.kinesis.AWSClientsProvider-">org.apache.beam.sdk.io.aws2.kinesis.KinesisIO.Read.withAWSClientsProvider(AWSClientsProvider)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/aws2/kinesis/KinesisIO.Read.html#withClientConfiguration-org.apache.beam.sdk.io.aws2.common.ClientConfiguration-"><code>KinesisIO.Read.withClientConfiguration(ClientConfiguration)</code></a> instead. Alternatively
     you can configure a custom <a href="org/apache/beam/sdk/io/aws2/common/ClientBuilderFactory.html" title="interface in org.apache.beam.sdk.io.aws2.common"><code>ClientBuilderFactory</code></a> in <a href="org/apache/beam/sdk/io/aws2/options/AwsOptions.html" title="interface in org.apache.beam.sdk.io.aws2.options"><code>AwsOptions</code></a>.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/aws2/kinesis/KinesisIO.Read.html#withAWSClientsProvider-software.amazon.awssdk.auth.credentials.AwsCredentialsProvider-software.amazon.awssdk.regions.Region-">org.apache.beam.sdk.io.aws2.kinesis.KinesisIO.Read.withAWSClientsProvider(AwsCredentialsProvider, Region)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/aws2/kinesis/KinesisIO.Read.html#withClientConfiguration-org.apache.beam.sdk.io.aws2.common.ClientConfiguration-"><code>KinesisIO.Read.withClientConfiguration(ClientConfiguration)</code></a> instead.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/aws2/kinesis/KinesisIO.Read.html#withAWSClientsProvider-software.amazon.awssdk.auth.credentials.AwsCredentialsProvider-software.amazon.awssdk.regions.Region-java.lang.String-">org.apache.beam.sdk.io.aws2.kinesis.KinesisIO.Read.withAWSClientsProvider(AwsCredentialsProvider, Region, String)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/aws2/kinesis/KinesisIO.Read.html#withClientConfiguration-org.apache.beam.sdk.io.aws2.common.ClientConfiguration-"><code>KinesisIO.Read.withClientConfiguration(ClientConfiguration)</code></a> instead.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/aws2/kinesis/KinesisIO.Read.html#withAWSClientsProvider-java.lang.String-java.lang.String-software.amazon.awssdk.regions.Region-">org.apache.beam.sdk.io.aws2.kinesis.KinesisIO.Read.withAWSClientsProvider(String, String, Region)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/aws2/kinesis/KinesisIO.Read.html#withClientConfiguration-org.apache.beam.sdk.io.aws2.common.ClientConfiguration-"><code>KinesisIO.Read.withClientConfiguration(ClientConfiguration)</code></a> instead.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/aws2/kinesis/KinesisIO.Read.html#withAWSClientsProvider-java.lang.String-java.lang.String-software.amazon.awssdk.regions.Region-java.lang.String-">org.apache.beam.sdk.io.aws2.kinesis.KinesisIO.Read.withAWSClientsProvider(String, String, Region, String)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/aws2/kinesis/KinesisIO.Read.html#withClientConfiguration-org.apache.beam.sdk.io.aws2.common.ClientConfiguration-"><code>KinesisIO.Read.withClientConfiguration(ClientConfiguration)</code></a> instead.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/gcp/bigtable/BigtableIO.Read.html#withBigtableOptions-com.google.cloud.bigtable.config.BigtableOptions.Builder-">org.apache.beam.sdk.io.gcp.bigtable.BigtableIO.Read.withBigtableOptions(BigtableOptions.Builder)</a>
<div class="block"><span class="deprecationComment">will be replaced by bigtable options configurator.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/gcp/bigtable/BigtableIO.Write.html#withBigtableOptions-com.google.cloud.bigtable.config.BigtableOptions.Builder-">org.apache.beam.sdk.io.gcp.bigtable.BigtableIO.Write.withBigtableOptions(BigtableOptions.Builder)</a>
<div class="block"><span class="deprecationComment">will be replaced by bigtable options configurator.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/gcp/bigtable/BigtableIO.Read.html#withBigtableOptions-com.google.cloud.bigtable.config.BigtableOptions-">org.apache.beam.sdk.io.gcp.bigtable.BigtableIO.Read.withBigtableOptions(BigtableOptions)</a>
<div class="block"><span class="deprecationComment">will be replaced by bigtable options configurator.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/gcp/bigtable/BigtableIO.Write.html#withBigtableOptions-com.google.cloud.bigtable.config.BigtableOptions-">org.apache.beam.sdk.io.gcp.bigtable.BigtableIO.Write.withBigtableOptions(BigtableOptions)</a>
<div class="block"><span class="deprecationComment">will be replaced by bigtable options configurator.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/jdbc/JdbcIO.ReadAll.html#withCoder-org.apache.beam.sdk.coders.Coder-">org.apache.beam.sdk.io.jdbc.JdbcIO.ReadAll.withCoder(Coder&lt;OutputT&gt;)</a>
<div class="block"><span class="deprecationComment"><p><a href="org/apache/beam/sdk/io/jdbc/JdbcIO.html" title="class in org.apache.beam.sdk.io.jdbc"><code>JdbcIO</code></a> is able to infer aprppriate coders from other parameters.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/jdbc/JdbcIO.Read.html#withCoder-org.apache.beam.sdk.coders.Coder-">org.apache.beam.sdk.io.jdbc.JdbcIO.Read.withCoder(Coder&lt;T&gt;)</a>
<div class="block"><span class="deprecationComment"><p><a href="org/apache/beam/sdk/io/jdbc/JdbcIO.html" title="class in org.apache.beam.sdk.io.jdbc"><code>JdbcIO</code></a> is able to infer aprppriate coders from other parameters.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/jdbc/JdbcIO.ReadWithPartitions.html#withCoder-org.apache.beam.sdk.coders.Coder-">org.apache.beam.sdk.io.jdbc.JdbcIO.ReadWithPartitions.withCoder(Coder&lt;T&gt;)</a>
<div class="block"><span class="deprecationComment"><p><a href="org/apache/beam/sdk/io/jdbc/JdbcIO.html" title="class in org.apache.beam.sdk.io.jdbc"><code>JdbcIO</code></a> is able to infer appropriate coders from other parameters.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/TextIO.Read.html#withCompressionType-org.apache.beam.sdk.io.TextIO.CompressionType-">org.apache.beam.sdk.io.TextIO.Read.withCompressionType(TextIO.CompressionType)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/TextIO.Read.html#withCompression-org.apache.beam.sdk.io.Compression-"><code>TextIO.Read.withCompression(org.apache.beam.sdk.io.Compression)</code></a>.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/TextIO.ReadAll.html#withCompressionType-org.apache.beam.sdk.io.TextIO.CompressionType-">org.apache.beam.sdk.io.TextIO.ReadAll.withCompressionType(TextIO.CompressionType)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/TextIO.ReadAll.html#withCompression-org.apache.beam.sdk.io.Compression-"><code>TextIO.ReadAll.withCompression(org.apache.beam.sdk.io.Compression)</code></a>.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/TFRecordIO.Read.html#withCompressionType-org.apache.beam.sdk.io.TFRecordIO.CompressionType-">org.apache.beam.sdk.io.TFRecordIO.Read.withCompressionType(TFRecordIO.CompressionType)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/TFRecordIO.Read.html#withCompression-org.apache.beam.sdk.io.Compression-"><code>TFRecordIO.Read.withCompression(org.apache.beam.sdk.io.Compression)</code></a>.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/TFRecordIO.Write.html#withCompressionType-org.apache.beam.sdk.io.TFRecordIO.CompressionType-">org.apache.beam.sdk.io.TFRecordIO.Write.withCompressionType(TFRecordIO.CompressionType)</a>
<div class="block"><span class="deprecationComment">use <a href="org/apache/beam/sdk/io/TFRecordIO.Write.html#withCompression-org.apache.beam.sdk.io.Compression-"><code>TFRecordIO.Write.withCompression(org.apache.beam.sdk.io.Compression)</code></a>.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/xml/XmlIO.Read.html#withCompressionType-org.apache.beam.sdk.io.xml.XmlIO.Read.CompressionType-">org.apache.beam.sdk.io.xml.XmlIO.Read.withCompressionType(XmlIO.Read.CompressionType)</a>
<div class="block"><span class="deprecationComment">use <a href="org/apache/beam/sdk/io/xml/XmlIO.Read.html#withCompression-org.apache.beam.sdk.io.Compression-"><code>XmlIO.Read.withCompression(org.apache.beam.sdk.io.Compression)</code></a>.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/aws2/dynamodb/DynamoDBIO.Read.html#withDynamoDbClientProvider-software.amazon.awssdk.auth.credentials.AwsCredentialsProvider-java.lang.String-">org.apache.beam.sdk.io.aws2.dynamodb.DynamoDBIO.Read.withDynamoDbClientProvider(AwsCredentialsProvider, String)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/aws2/dynamodb/DynamoDBIO.Read.html#withClientConfiguration-org.apache.beam.sdk.io.aws2.common.ClientConfiguration-"><code>DynamoDBIO.Read.withClientConfiguration(ClientConfiguration)</code></a> instead.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/aws2/dynamodb/DynamoDBIO.Write.html#withDynamoDbClientProvider-software.amazon.awssdk.auth.credentials.AwsCredentialsProvider-java.lang.String-">org.apache.beam.sdk.io.aws2.dynamodb.DynamoDBIO.Write.withDynamoDbClientProvider(AwsCredentialsProvider, String)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/aws2/dynamodb/DynamoDBIO.Write.html#withClientConfiguration-org.apache.beam.sdk.io.aws2.common.ClientConfiguration-"><code>DynamoDBIO.Write.withClientConfiguration(ClientConfiguration)</code></a> instead.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/aws2/dynamodb/DynamoDBIO.Read.html#withDynamoDbClientProvider-software.amazon.awssdk.auth.credentials.AwsCredentialsProvider-java.lang.String-java.net.URI-">org.apache.beam.sdk.io.aws2.dynamodb.DynamoDBIO.Read.withDynamoDbClientProvider(AwsCredentialsProvider, String, URI)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/aws2/dynamodb/DynamoDBIO.Read.html#withClientConfiguration-org.apache.beam.sdk.io.aws2.common.ClientConfiguration-"><code>DynamoDBIO.Read.withClientConfiguration(ClientConfiguration)</code></a> instead.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/aws2/dynamodb/DynamoDBIO.Write.html#withDynamoDbClientProvider-software.amazon.awssdk.auth.credentials.AwsCredentialsProvider-java.lang.String-java.net.URI-">org.apache.beam.sdk.io.aws2.dynamodb.DynamoDBIO.Write.withDynamoDbClientProvider(AwsCredentialsProvider, String, URI)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/aws2/dynamodb/DynamoDBIO.Write.html#withClientConfiguration-org.apache.beam.sdk.io.aws2.common.ClientConfiguration-"><code>DynamoDBIO.Write.withClientConfiguration(ClientConfiguration)</code></a> instead.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/aws2/dynamodb/DynamoDBIO.Read.html#withDynamoDbClientProvider-org.apache.beam.sdk.io.aws2.dynamodb.DynamoDbClientProvider-">org.apache.beam.sdk.io.aws2.dynamodb.DynamoDBIO.Read.withDynamoDbClientProvider(DynamoDbClientProvider)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/aws2/dynamodb/DynamoDBIO.Read.html#withClientConfiguration-org.apache.beam.sdk.io.aws2.common.ClientConfiguration-"><code>DynamoDBIO.Read.withClientConfiguration(ClientConfiguration)</code></a> instead. Alternatively
     you can configure a custom <a href="org/apache/beam/sdk/io/aws2/common/ClientBuilderFactory.html" title="interface in org.apache.beam.sdk.io.aws2.common"><code>ClientBuilderFactory</code></a> in <a href="org/apache/beam/sdk/io/aws2/options/AwsOptions.html" title="interface in org.apache.beam.sdk.io.aws2.options"><code>AwsOptions</code></a>.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/aws2/dynamodb/DynamoDBIO.Write.html#withDynamoDbClientProvider-org.apache.beam.sdk.io.aws2.dynamodb.DynamoDbClientProvider-">org.apache.beam.sdk.io.aws2.dynamodb.DynamoDBIO.Write.withDynamoDbClientProvider(DynamoDbClientProvider)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/aws2/dynamodb/DynamoDBIO.Write.html#withClientConfiguration-org.apache.beam.sdk.io.aws2.common.ClientConfiguration-"><code>DynamoDBIO.Write.withClientConfiguration(ClientConfiguration)</code></a> instead. Alternatively
     you can configure a custom <a href="org/apache/beam/sdk/io/aws2/common/ClientBuilderFactory.html" title="interface in org.apache.beam.sdk.io.aws2.common"><code>ClientBuilderFactory</code></a> in <a href="org/apache/beam/sdk/io/aws2/options/AwsOptions.html" title="interface in org.apache.beam.sdk.io.aws2.options"><code>AwsOptions</code></a>.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/TextIO.TypedWrite.html#withFormatFunction-org.apache.beam.sdk.transforms.SerializableFunction-">org.apache.beam.sdk.io.TextIO.TypedWrite.withFormatFunction(SerializableFunction&lt;UserT, String&gt;)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/FileIO.html#write--"><code>FileIO.write()</code></a> or <a href="org/apache/beam/sdk/io/FileIO.html#writeDynamic--"><code>FileIO.writeDynamic()</code></a> with <a href="org/apache/beam/sdk/io/TextIO.html#sink--"><code>TextIO.sink()</code></a>
     instead.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/FileIO.Write.html#withIgnoreWindowing--">org.apache.beam.sdk.io.FileIO.Write.withIgnoreWindowing()</a>
<div class="block"><span class="deprecationComment">Avoid usage of this method: its effects are complex and it will be removed in
     future versions of Beam. Right now it exists for compatibility with <a href="org/apache/beam/sdk/io/WriteFiles.html" title="class in org.apache.beam.sdk.io"><code>WriteFiles</code></a>.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/schemas/Schema.FieldType.html#withMetadata-java.util.Map-">org.apache.beam.sdk.schemas.Schema.FieldType.withMetadata(Map&lt;String, byte[]&gt;)</a>
<div class="block"><span class="deprecationComment">use schema options instead.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/schemas/Schema.FieldType.html#withMetadata-java.lang.String-byte:A-">org.apache.beam.sdk.schemas.Schema.FieldType.withMetadata(String, byte[])</a>
<div class="block"><span class="deprecationComment">use schema options instead.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/schemas/Schema.FieldType.html#withMetadata-java.lang.String-java.lang.String-">org.apache.beam.sdk.schemas.Schema.FieldType.withMetadata(String, String)</a>
<div class="block"><span class="deprecationComment">use schema options instead.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/parquet/ParquetIO.Read.html#withoutSplit--">org.apache.beam.sdk.io.parquet.ParquetIO.Read.withoutSplit()</a>
<div class="block"><span class="deprecationComment">This method may currently be used to opt-out of the default, splittable,
     behavior. However, this will be removed in a future release assuming no issues are
     discovered.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/parquet/ParquetIO.Parse.html#withoutSplit--">org.apache.beam.sdk.io.parquet.ParquetIO.Parse.withoutSplit()</a>
<div class="block"><span class="deprecationComment">This method may currently be used to opt-out of the default, splittable,
     behavior. However, this will be removed in a future release assuming no issues are
     discovered.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/parquet/ParquetIO.ParseFiles.html#withoutSplit--">org.apache.beam.sdk.io.parquet.ParquetIO.ParseFiles.withoutSplit()</a>
<div class="block"><span class="deprecationComment">This method may currently be used to opt-out of the default, splittable,
     behavior. However, this will be removed in a future release assuming no issues are
     discovered.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/parquet/ParquetIO.ReadFiles.html#withoutSplit--">org.apache.beam.sdk.io.parquet.ParquetIO.ReadFiles.withoutSplit()</a>
<div class="block"><span class="deprecationComment">This method may currently be used to opt-out of the default, splittable,
     behavior. However, this will be removed in a future release assuming no issues are
     discovered.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/aws2/sns/SnsIO.Write.html#withPublishRequestFn-org.apache.beam.sdk.transforms.SerializableFunction-">org.apache.beam.sdk.io.aws2.sns.SnsIO.Write.withPublishRequestFn(SerializableFunction&lt;T, PublishRequest&gt;)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/aws2/sns/SnsIO.Write.html#withPublishRequestBuilder-org.apache.beam.sdk.transforms.SerializableFunction-"><code>SnsIO.Write.withPublishRequestBuilder(SerializableFunction)</code></a> instead.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/kafka/KafkaIO.Write.html#withPublishTimestampFunction-org.apache.beam.sdk.io.kafka.KafkaPublishTimestampFunction-">org.apache.beam.sdk.io.kafka.KafkaIO.Write.withPublishTimestampFunction(KafkaPublishTimestampFunction&lt;KV&lt;K, V&gt;&gt;)</a>
<div class="block"><span class="deprecationComment">use <a href="org/apache/beam/sdk/io/kafka/KafkaIO.WriteRecords.html" title="class in org.apache.beam.sdk.io.kafka"><code>KafkaIO.WriteRecords</code></a> and <code>ProducerRecords</code> to set publish timestamp.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/kafka/KafkaIO.WriteRecords.html#withPublishTimestampFunction-org.apache.beam.sdk.io.kafka.KafkaPublishTimestampFunction-">org.apache.beam.sdk.io.kafka.KafkaIO.WriteRecords.withPublishTimestampFunction(KafkaPublishTimestampFunction&lt;ProducerRecord&lt;K, V&gt;&gt;)</a>
<div class="block"><span class="deprecationComment">use <code>ProducerRecords</code> to set publish timestamp.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/aws2/dynamodb/DynamoDBIO.Write.html#withRetryConfiguration-org.apache.beam.sdk.io.aws2.dynamodb.DynamoDBIO.RetryConfiguration-">org.apache.beam.sdk.io.aws2.dynamodb.DynamoDBIO.Write.withRetryConfiguration(DynamoDBIO.RetryConfiguration)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/aws2/dynamodb/DynamoDBIO.Write.html#withClientConfiguration-org.apache.beam.sdk.io.aws2.common.ClientConfiguration-"><code>DynamoDBIO.Write.withClientConfiguration(ClientConfiguration)</code></a> with <a href="org/apache/beam/sdk/io/aws2/common/RetryConfiguration.html" title="class in org.apache.beam.sdk.io.aws2.common"><code>RetryConfiguration</code></a> instead to delegate retries to the
     AWS SDK.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/aws2/sns/SnsIO.Write.html#withRetryConfiguration-org.apache.beam.sdk.io.aws2.sns.SnsIO.RetryConfiguration-">org.apache.beam.sdk.io.aws2.sns.SnsIO.Write.withRetryConfiguration(SnsIO.RetryConfiguration)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/aws2/sns/SnsIO.Write.html#withClientConfiguration-org.apache.beam.sdk.io.aws2.common.ClientConfiguration-"><code>SnsIO.Write.withClientConfiguration(ClientConfiguration)</code></a> with <a href="org/apache/beam/sdk/io/aws2/common/RetryConfiguration.html" title="class in org.apache.beam.sdk.io.aws2.common"><code>RetryConfiguration</code></a> instead to delegate retries to the
     AWS SDK.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/transforms/View.AsMap.html#withSingletonValues--">org.apache.beam.sdk.transforms.View.AsMap.withSingletonValues()</a>
<div class="block"><span class="deprecationComment">this method simply returns this AsMap unmodified</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/aws2/sns/SnsIO.Write.html#withSnsClientProvider-software.amazon.awssdk.auth.credentials.AwsCredentialsProvider-java.lang.String-">org.apache.beam.sdk.io.aws2.sns.SnsIO.Write.withSnsClientProvider(AwsCredentialsProvider, String)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/aws2/sns/SnsIO.Write.html#withClientConfiguration-org.apache.beam.sdk.io.aws2.common.ClientConfiguration-"><code>SnsIO.Write.withClientConfiguration(ClientConfiguration)</code></a> instead.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/aws2/sns/SnsIO.Write.html#withSnsClientProvider-software.amazon.awssdk.auth.credentials.AwsCredentialsProvider-java.lang.String-java.net.URI-">org.apache.beam.sdk.io.aws2.sns.SnsIO.Write.withSnsClientProvider(AwsCredentialsProvider, String, URI)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/aws2/sns/SnsIO.Write.html#withClientConfiguration-org.apache.beam.sdk.io.aws2.common.ClientConfiguration-"><code>SnsIO.Write.withClientConfiguration(ClientConfiguration)</code></a> instead.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/aws2/sns/SnsIO.Write.html#withSnsClientProvider-org.apache.beam.sdk.io.aws2.sns.SnsClientProvider-">org.apache.beam.sdk.io.aws2.sns.SnsIO.Write.withSnsClientProvider(SnsClientProvider)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/aws2/sns/SnsIO.Write.html#withClientConfiguration-org.apache.beam.sdk.io.aws2.common.ClientConfiguration-"><code>SnsIO.Write.withClientConfiguration(ClientConfiguration)</code></a> instead. Alternatively
     you can configure a custom <a href="org/apache/beam/sdk/io/aws2/common/ClientBuilderFactory.html" title="interface in org.apache.beam.sdk.io.aws2.common"><code>ClientBuilderFactory</code></a> in <a href="org/apache/beam/sdk/io/aws2/options/AwsOptions.html" title="interface in org.apache.beam.sdk.io.aws2.options"><code>AwsOptions</code></a>.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/parquet/ParquetIO.Read.html#withSplit--">org.apache.beam.sdk.io.parquet.ParquetIO.Read.withSplit()</a>
<div class="block"><span class="deprecationComment">as of version 2.35.0. Splittable reading is enabled by default.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/parquet/ParquetIO.Parse.html#withSplit--">org.apache.beam.sdk.io.parquet.ParquetIO.Parse.withSplit()</a>
<div class="block"><span class="deprecationComment">as of version 2.35.0. Splittable reading is enabled by default.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/parquet/ParquetIO.ParseFiles.html#withSplit--">org.apache.beam.sdk.io.parquet.ParquetIO.ParseFiles.withSplit()</a>
<div class="block"><span class="deprecationComment">as of version 2.35.0. Splittable reading is enabled by default.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/parquet/ParquetIO.ReadFiles.html#withSplit--">org.apache.beam.sdk.io.parquet.ParquetIO.ReadFiles.withSplit()</a>
<div class="block"><span class="deprecationComment">as of version 2.35.0. Splittable reading is enabled by default.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/aws2/sqs/SqsIO.Read.html#withSqsClientProvider-software.amazon.awssdk.auth.credentials.AwsCredentialsProvider-java.lang.String-">org.apache.beam.sdk.io.aws2.sqs.SqsIO.Read.withSqsClientProvider(AwsCredentialsProvider, String)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/aws2/sqs/SqsIO.Read.html#withClientConfiguration-org.apache.beam.sdk.io.aws2.common.ClientConfiguration-"><code>SqsIO.Read.withClientConfiguration(ClientConfiguration)</code></a> instead.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/aws2/sqs/SqsIO.Write.html#withSqsClientProvider-software.amazon.awssdk.auth.credentials.AwsCredentialsProvider-java.lang.String-">org.apache.beam.sdk.io.aws2.sqs.SqsIO.Write.withSqsClientProvider(AwsCredentialsProvider, String)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/aws2/sqs/SqsIO.Write.html#withClientConfiguration-org.apache.beam.sdk.io.aws2.common.ClientConfiguration-"><code>SqsIO.Write.withClientConfiguration(ClientConfiguration)</code></a> instead.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/aws2/sqs/SqsIO.Read.html#withSqsClientProvider-software.amazon.awssdk.auth.credentials.AwsCredentialsProvider-java.lang.String-java.net.URI-">org.apache.beam.sdk.io.aws2.sqs.SqsIO.Read.withSqsClientProvider(AwsCredentialsProvider, String, URI)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/aws2/sqs/SqsIO.Read.html#withClientConfiguration-org.apache.beam.sdk.io.aws2.common.ClientConfiguration-"><code>SqsIO.Read.withClientConfiguration(ClientConfiguration)</code></a> instead.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/aws2/sqs/SqsIO.Write.html#withSqsClientProvider-software.amazon.awssdk.auth.credentials.AwsCredentialsProvider-java.lang.String-java.net.URI-">org.apache.beam.sdk.io.aws2.sqs.SqsIO.Write.withSqsClientProvider(AwsCredentialsProvider, String, URI)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/aws2/sqs/SqsIO.Write.html#withClientConfiguration-org.apache.beam.sdk.io.aws2.common.ClientConfiguration-"><code>SqsIO.Write.withClientConfiguration(ClientConfiguration)</code></a> instead.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/aws2/sqs/SqsIO.Read.html#withSqsClientProvider-org.apache.beam.sdk.io.aws2.sqs.SqsClientProvider-">org.apache.beam.sdk.io.aws2.sqs.SqsIO.Read.withSqsClientProvider(SqsClientProvider)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/aws2/sqs/SqsIO.Read.html#withClientConfiguration-org.apache.beam.sdk.io.aws2.common.ClientConfiguration-"><code>SqsIO.Read.withClientConfiguration(ClientConfiguration)</code></a> instead. Alternatively
     you can configure a custom <a href="org/apache/beam/sdk/io/aws2/common/ClientBuilderFactory.html" title="interface in org.apache.beam.sdk.io.aws2.common"><code>ClientBuilderFactory</code></a> in <a href="org/apache/beam/sdk/io/aws2/options/AwsOptions.html" title="interface in org.apache.beam.sdk.io.aws2.options"><code>AwsOptions</code></a>.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/aws2/sqs/SqsIO.Write.html#withSqsClientProvider-org.apache.beam.sdk.io.aws2.sqs.SqsClientProvider-">org.apache.beam.sdk.io.aws2.sqs.SqsIO.Write.withSqsClientProvider(SqsClientProvider)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/aws2/sqs/SqsIO.Write.html#withClientConfiguration-org.apache.beam.sdk.io.aws2.common.ClientConfiguration-"><code>SqsIO.Write.withClientConfiguration(ClientConfiguration)</code></a> instead. Alternatively
     you can configure a custom <a href="org/apache/beam/sdk/io/aws2/common/ClientBuilderFactory.html" title="interface in org.apache.beam.sdk.io.aws2.common"><code>ClientBuilderFactory</code></a> in <a href="org/apache/beam/sdk/io/aws2/options/AwsOptions.html" title="interface in org.apache.beam.sdk.io.aws2.options"><code>AwsOptions</code></a>.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/kafka/TimestampPolicyFactory.html#withTimestampFn-org.apache.beam.sdk.transforms.SerializableFunction-">org.apache.beam.sdk.io.kafka.TimestampPolicyFactory.withTimestampFn(SerializableFunction&lt;KafkaRecord&lt;K, V&gt;, Instant&gt;)</a>
<div class="block"><span class="deprecationComment">Use @<a href="org/apache/beam/sdk/io/kafka/CustomTimestampPolicyWithLimitedDelay.html" title="class in org.apache.beam.sdk.io.kafka"><code>CustomTimestampPolicyWithLimitedDelay</code></a>.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/kafka/KafkaIO.Read.html#withTimestampFn-org.apache.beam.sdk.transforms.SerializableFunction-">org.apache.beam.sdk.io.kafka.KafkaIO.Read.withTimestampFn(SerializableFunction&lt;KV&lt;K, V&gt;, Instant&gt;)</a>
<div class="block"><span class="deprecationComment">as of version 2.4. Use <a href="org/apache/beam/sdk/io/kafka/KafkaIO.Read.html#withTimestampPolicyFactory-org.apache.beam.sdk.io.kafka.TimestampPolicyFactory-"><code>KafkaIO.Read.withTimestampPolicyFactory(TimestampPolicyFactory)</code></a> instead.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/kafka/KafkaIO.Read.html#withTimestampFn2-org.apache.beam.sdk.transforms.SerializableFunction-">org.apache.beam.sdk.io.kafka.KafkaIO.Read.withTimestampFn2(SerializableFunction&lt;KafkaRecord&lt;K, V&gt;, Instant&gt;)</a>
<div class="block"><span class="deprecationComment">as of version 2.4. Use <a href="org/apache/beam/sdk/io/kafka/KafkaIO.Read.html#withTimestampPolicyFactory-org.apache.beam.sdk.io.kafka.TimestampPolicyFactory-"><code>KafkaIO.Read.withTimestampPolicyFactory(TimestampPolicyFactory)</code></a> instead.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/kafka/KafkaIO.Read.html#withWatermarkFn-org.apache.beam.sdk.transforms.SerializableFunction-">org.apache.beam.sdk.io.kafka.KafkaIO.Read.withWatermarkFn(SerializableFunction&lt;KV&lt;K, V&gt;, Instant&gt;)</a>
<div class="block"><span class="deprecationComment">as of version 2.4. Use <a href="org/apache/beam/sdk/io/kafka/KafkaIO.Read.html#withTimestampPolicyFactory-org.apache.beam.sdk.io.kafka.TimestampPolicyFactory-"><code>KafkaIO.Read.withTimestampPolicyFactory(TimestampPolicyFactory)</code></a> instead.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/kafka/KafkaIO.Read.html#withWatermarkFn2-org.apache.beam.sdk.transforms.SerializableFunction-">org.apache.beam.sdk.io.kafka.KafkaIO.Read.withWatermarkFn2(SerializableFunction&lt;KafkaRecord&lt;K, V&gt;, Instant&gt;)</a>
<div class="block"><span class="deprecationComment">as of version 2.4. Use <a href="org/apache/beam/sdk/io/kafka/KafkaIO.Read.html#withTimestampPolicyFactory-org.apache.beam.sdk.io.kafka.TimestampPolicyFactory-"><code>KafkaIO.Read.withTimestampPolicyFactory(TimestampPolicyFactory)</code></a> instead.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/aws2/sns/SnsIO.html#writeAsync--">org.apache.beam.sdk.io.aws2.sns.SnsIO.writeAsync()</a>
<div class="block"><span class="deprecationComment">Please use <a href="org/apache/beam/sdk/io/aws2/sns/SnsIO.html#write--"><code>SnsIO.write()</code></a> to avoid the risk of data loss.</span></div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
<a name="constructor">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<table class="deprecatedSummary" border="0" cellpadding="3" cellspacing="0" summary="Deprecated Constructors table, listing deprecated constructors, and an explanation">
<caption><span>Deprecated Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/runners/fnexecution/data/GrpcDataService.html#GrpcDataService--">org.apache.beam.runners.fnexecution.data.GrpcDataService()</a>
<div class="block"><span class="deprecationComment">This constructor is for migrating Dataflow purpose only.</span></div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
<a name="enum.constant">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<table class="deprecatedSummary" border="0" cellpadding="3" cellspacing="0" summary="Deprecated Enum Constants table, listing deprecated enum constants, and an explanation">
<caption><span>Deprecated Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Enum Constant and Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/runners/dataflow/options/DataflowPipelineWorkerPoolOptions.AutoscalingAlgorithmType.html#BASIC">org.apache.beam.runners.dataflow.options.DataflowPipelineWorkerPoolOptions.AutoscalingAlgorithmType.BASIC</a>
<div class="block"><span class="deprecationComment">use <a href="org/apache/beam/runners/dataflow/options/DataflowPipelineWorkerPoolOptions.AutoscalingAlgorithmType.html#THROUGHPUT_BASED"><code>DataflowPipelineWorkerPoolOptions.AutoscalingAlgorithmType.THROUGHPUT_BASED</code></a>.</span></div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="overview-summary.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li class="navBarCell1Rev">Deprecated</li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
<li><a href="deprecated-list.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
