<!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 (1.8.0_181-google-v7) on Mon Jan 27 16:42:37 PST 2020 -->
<title>Deprecated List (Apache Beam 2.20.0-SNAPSHOT)</title>
<meta name="date" content="2020-01-27">
<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.20.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/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="altColor">
<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/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="rowColor">
<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="altColor">
<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="rowColor">
<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="altColor">
<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="rowColor">
<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="altColor">
<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="rowColor">
<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="altColor">
<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="rowColor">
<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="altColor">
<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/sdk/fn/data/BeamFnDataBufferingOutboundObserver.html#BEAM_FN_API_DATA_BUFFER_LIMIT">org.apache.beam.sdk.fn.data.BeamFnDataBufferingOutboundObserver.BEAM_FN_API_DATA_BUFFER_LIMIT</a>
<div class="block"><span class="deprecationComment">Use DATA_BUFFER_SIZE_LIMIT instead.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/fn/data/BeamFnDataBufferingOutboundObserver.html#BEAM_FN_API_DATA_BUFFER_SIZE_LIMIT">org.apache.beam.sdk.fn.data.BeamFnDataBufferingOutboundObserver.BEAM_FN_API_DATA_BUFFER_SIZE_LIMIT</a>
<div class="block"><span class="deprecationComment">Use DATA_BUFFER_SIZE_LIMIT instead.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/beam/sdk/fn/data/BeamFnDataBufferingOutboundObserver.html#BEAM_FN_API_DATA_BUFFER_TIME_LIMIT">org.apache.beam.sdk.fn.data.BeamFnDataBufferingOutboundObserver.BEAM_FN_API_DATA_BUFFER_TIME_LIMIT</a>
<div class="block"><span class="deprecationComment">Use DATA_BUFFER_TIME_LIMIT_MS instead.</span></div>
</td>
</tr>
<tr class="rowColor">
<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="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/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/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/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="altColor">
<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="rowColor">
<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="altColor">
<td class="colOne"><a href="org/apache/beam/runners/fnexecution/GrpcFnServer.html#create-ServiceT-org.apache.beam.model.pipeline.v1.Endpoints.ApiServiceDescriptor-">org.apache.beam.runners.fnexecution.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="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/mqtt/MqttIO.ConnectionConfiguration.html#create-java.lang.String-java.lang.String-java.lang.String-">org.apache.beam.sdk.io.mqtt.MqttIO.ConnectionConfiguration.create(String, String, String)</a>
<div class="block"><span class="deprecationComment">This constructor will be removed in a future version of Beam, please use
     #create(String, String)} and <a href="org/apache/beam/sdk/io/mqtt/MqttIO.ConnectionConfiguration.html#withClientId-java.lang.String-"><code>MqttIO.ConnectionConfiguration.withClientId(String)</code></a> instead.</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/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="rowColor">
<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="altColor">
<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="rowColor">
<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="altColor">
<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="rowColor">
<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="altColor">
<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="rowColor">
<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="altColor">
<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="rowColor">
<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="altColor">
<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="rowColor">
<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="altColor">
<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="rowColor">
<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="altColor">
<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="rowColor">
<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="altColor">
<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="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/FieldSpecifierNotationLexer.html#getTokenNames--">org.apache.beam.sdk.schemas.parser.generated.FieldSpecifierNotationLexer.getTokenNames()</a></td>
</tr>
<tr class="rowColor">
<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="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/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/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/metrics/MetricName.html#name--">org.apache.beam.sdk.metrics.MetricName.name()</a>
<div class="block"><span class="deprecationComment">to be removed once Dataflow no longer requires this method.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/metrics/MetricName.html#namespace--">org.apache.beam.sdk.metrics.MetricName.namespace()</a>
<div class="block"><span class="deprecationComment">to be removed once Dataflow no longer requires this method.</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#readGenericRecords-org.apache.avro.Schema-"><code>AvroIO.readGenericRecords(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#readGenericRecords-java.lang.String-"><code>AvroIO.readGenericRecords(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/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="rowColor">
<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="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/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/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="altColor">
<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="rowColor">
<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="altColor">
<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="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/mongodb/MongoDbIO.Read.html#withFilter-java.lang.String-">org.apache.beam.sdk.io.mongodb.MongoDbIO.Read.withFilter(String)</a>
<div class="block"><span class="deprecationComment">Filtering manually is discouraged. Use <a href="org/apache/beam/sdk/io/mongodb/MongoDbIO.Read.html#withQueryFn-org.apache.beam.sdk.transforms.SerializableFunction-"><code>with {@link FindQuery#withFilters(Bson)} as an argument to set up the projection</code></a>.</span></div>
</td>
</tr>
<tr class="rowColor">
<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="altColor">
<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="rowColor">
<td class="colOne"><a href="org/apache/beam/sdk/io/mongodb/MongoDbIO.Read.html#withProjection-java.lang.String...-">org.apache.beam.sdk.io.mongodb.MongoDbIO.Read.withProjection(String...)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/mongodb/MongoDbIO.Read.html#withQueryFn-org.apache.beam.sdk.transforms.SerializableFunction-"><code>with {@link
     FindQuery#withProjection(List)} as an argument to set up the projection</code></a>.</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/gcp/bigquery/BigQueryIO.TypedRead.html#withReadOptions-com.google.cloud.bigquery.storage.v1beta1.ReadOptions.TableReadOptions-">org.apache.beam.sdk.io.gcp.bigquery.BigQueryIO.TypedRead.withReadOptions(ReadOptions.TableReadOptions)</a>
<div class="block"><span class="deprecationComment">Use <a href="org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO.TypedRead.html#withSelectedFields-java.util.List-"><code>BigQueryIO.TypedRead.withSelectedFields(List)</code></a> and <a href="org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO.TypedRead.html#withRowRestriction-java.lang.String-"><code>BigQueryIO.TypedRead.withRowRestriction(String)</code></a>
     instead.</span></div>
</td>
</tr>
<tr class="rowColor">
<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="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>
</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>
