blob: 2b475485da1ff1f082d04e6e8af39e44da6ce1a8 [file] [log] [blame]
<!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 Wed Aug 14 17:37:14 PDT 2019 -->
<title>PubsubUnboundedSource (Apache Beam 2.15.0-SNAPSHOT)</title>
<meta name="date" content="2019-08-14">
<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="PubsubUnboundedSource (Apache Beam 2.15.0-SNAPSHOT)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</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><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></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><a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubUnboundedSink.html" title="class in org.apache.beam.sdk.io.gcp.pubsub"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/TestPubsub.html" title="class in org.apache.beam.sdk.io.gcp.pubsub"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../index.html?org/apache/beam/sdk/io/gcp/pubsub/PubsubUnboundedSource.html" target="_top">Frames</a></li>
<li><a href="PubsubUnboundedSource.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>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.org.apache.beam.sdk.transforms.PTransform">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.beam.sdk.io.gcp.pubsub</div>
<h2 title="Class PubsubUnboundedSource" class="title">Class PubsubUnboundedSource</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../../../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms">org.apache.beam.sdk.transforms.PTransform</a>&lt;<a href="../../../../../../../org/apache/beam/sdk/values/PBegin.html" title="class in org.apache.beam.sdk.values">PBegin</a>,<a href="../../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values">PCollection</a>&lt;<a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubMessage.html" title="class in org.apache.beam.sdk.io.gcp.pubsub">PubsubMessage</a>&gt;&gt;</li>
<li>
<ul class="inheritance">
<li>org.apache.beam.sdk.io.gcp.pubsub.PubsubUnboundedSource</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd>java.io.Serializable, <a href="../../../../../../../org/apache/beam/sdk/transforms/display/HasDisplayData.html" title="interface in org.apache.beam.sdk.transforms.display">HasDisplayData</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">PubsubUnboundedSource</span>
extends <a href="../../../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms">PTransform</a>&lt;<a href="../../../../../../../org/apache/beam/sdk/values/PBegin.html" title="class in org.apache.beam.sdk.values">PBegin</a>,<a href="../../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values">PCollection</a>&lt;<a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubMessage.html" title="class in org.apache.beam.sdk.io.gcp.pubsub">PubsubMessage</a>&gt;&gt;</pre>
<div class="block">Users should use <a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubIO.html#read--"><code>PubsubIO.read()</code></a> instead.
<p>A PTransform which streams messages from Pubsub.
<ul>
<li>The underlying implementation in an <a href="../../../../../../../org/apache/beam/sdk/io/UnboundedSource.html" title="class in org.apache.beam.sdk.io"><code>UnboundedSource</code></a> which receives messages in
batches and hands them out one at a time.
<li>The watermark (either in Pubsub processing time or custom timestamp time) is estimated by
keeping track of the minimum of the last minutes worth of messages. This assumes Pubsub
delivers the oldest (in Pubsub processing time) available message at least once a minute,
and that custom timestamps are 'mostly' monotonic with Pubsub processing time.
Unfortunately both of those assumptions are fragile. Thus the estimated watermark may get
ahead of the 'true' watermark and cause some messages to be late.
<li>Checkpoints are used both to ACK received messages back to Pubsub (so that they may be
retired on the Pubsub end), and to NACK already consumed messages should a checkpoint need
to be restored (so that Pubsub will resend those messages promptly).
<li>The backlog is determined by each reader using the messages which have been pulled from
Pubsub but not yet consumed downstream. The backlog does not take account of any messages
queued by Pubsub for the subscription. Unfortunately there is currently no API to determine
the size of the Pubsub queue's backlog.
<li>The subscription must already exist.
<li>The subscription timeout is read whenever a reader is started. However it is not checked
thereafter despite the timeout being user-changeable on-the-fly.
<li>We log vital stats every 30 seconds.
<li>Though some background threads may be used by the underlying transport all Pubsub calls are
blocking. We rely on the underlying runner to allow multiple <code>UnboundedSource.UnboundedReader</code> instances to execute concurrently and thus hide latency.
</ul></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../../serialized-form.html#org.apache.beam.sdk.io.gcp.pubsub.PubsubUnboundedSource">Serialized Form</a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.beam.sdk.transforms.PTransform">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.beam.sdk.transforms.<a href="../../../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms">PTransform</a></h3>
<code><a href="../../../../../../../org/apache/beam/sdk/transforms/PTransform.html#name">name</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubUnboundedSource.html#PubsubUnboundedSource-org.apache.beam.sdk.io.gcp.pubsub.PubsubClient.PubsubClientFactory-org.apache.beam.sdk.options.ValueProvider-org.apache.beam.sdk.options.ValueProvider-org.apache.beam.sdk.options.ValueProvider-java.lang.String-java.lang.String-boolean-">PubsubUnboundedSource</a></span>(<a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubClient.PubsubClientFactory.html" title="interface in org.apache.beam.sdk.io.gcp.pubsub">PubsubClient.PubsubClientFactory</a>&nbsp;pubsubFactory,
<a href="../../../../../../../org/apache/beam/sdk/options/ValueProvider.html" title="interface in org.apache.beam.sdk.options">ValueProvider</a>&lt;<a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubClient.ProjectPath.html" title="class in org.apache.beam.sdk.io.gcp.pubsub">PubsubClient.ProjectPath</a>&gt;&nbsp;project,
<a href="../../../../../../../org/apache/beam/sdk/options/ValueProvider.html" title="interface in org.apache.beam.sdk.options">ValueProvider</a>&lt;<a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubClient.TopicPath.html" title="class in org.apache.beam.sdk.io.gcp.pubsub">PubsubClient.TopicPath</a>&gt;&nbsp;topic,
<a href="../../../../../../../org/apache/beam/sdk/options/ValueProvider.html" title="interface in org.apache.beam.sdk.options">ValueProvider</a>&lt;<a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubClient.SubscriptionPath.html" title="class in org.apache.beam.sdk.io.gcp.pubsub">PubsubClient.SubscriptionPath</a>&gt;&nbsp;subscription,
java.lang.String&nbsp;timestampAttribute,
java.lang.String&nbsp;idAttribute,
boolean&nbsp;needsAttributes)</code>
<div class="block">Construct an unbounded source to consume from the Pubsub <code>subscription</code>.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values">PCollection</a>&lt;<a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubMessage.html" title="class in org.apache.beam.sdk.io.gcp.pubsub">PubsubMessage</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubUnboundedSource.html#expand-org.apache.beam.sdk.values.PBegin-">expand</a></span>(<a href="../../../../../../../org/apache/beam/sdk/values/PBegin.html" title="class in org.apache.beam.sdk.values">PBegin</a>&nbsp;input)</code>
<div class="block">Override this method to specify how this <code>PTransform</code> should be expanded on the given
<code>InputT</code>.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubUnboundedSource.html#getIdAttribute--">getIdAttribute</a></span>()</code>
<div class="block">Get the id attribute.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubUnboundedSource.html#getNeedsAttributes--">getNeedsAttributes</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubClient.ProjectPath.html" title="class in org.apache.beam.sdk.io.gcp.pubsub">PubsubClient.ProjectPath</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubUnboundedSource.html#getProject--">getProject</a></span>()</code>
<div class="block">Get the project path.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubClient.SubscriptionPath.html" title="class in org.apache.beam.sdk.io.gcp.pubsub">PubsubClient.SubscriptionPath</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubUnboundedSource.html#getSubscription--">getSubscription</a></span>()</code>
<div class="block">Get the subscription being read from.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/beam/sdk/options/ValueProvider.html" title="interface in org.apache.beam.sdk.options">ValueProvider</a>&lt;<a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubClient.SubscriptionPath.html" title="class in org.apache.beam.sdk.io.gcp.pubsub">PubsubClient.SubscriptionPath</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubUnboundedSource.html#getSubscriptionProvider--">getSubscriptionProvider</a></span>()</code>
<div class="block">Get the <a href="../../../../../../../org/apache/beam/sdk/options/ValueProvider.html" title="interface in org.apache.beam.sdk.options"><code>ValueProvider</code></a> for the subscription being read from.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubUnboundedSource.html#getTimestampAttribute--">getTimestampAttribute</a></span>()</code>
<div class="block">Get the timestamp attribute.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubClient.TopicPath.html" title="class in org.apache.beam.sdk.io.gcp.pubsub">PubsubClient.TopicPath</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubUnboundedSource.html#getTopic--">getTopic</a></span>()</code>
<div class="block">Get the topic being read from.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/beam/sdk/options/ValueProvider.html" title="interface in org.apache.beam.sdk.options">ValueProvider</a>&lt;<a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubClient.TopicPath.html" title="class in org.apache.beam.sdk.io.gcp.pubsub">PubsubClient.TopicPath</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubUnboundedSource.html#getTopicProvider--">getTopicProvider</a></span>()</code>
<div class="block">Get the <a href="../../../../../../../org/apache/beam/sdk/options/ValueProvider.html" title="interface in org.apache.beam.sdk.options"><code>ValueProvider</code></a> for the topic being read from.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.beam.sdk.transforms.PTransform">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.beam.sdk.transforms.<a href="../../../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms">PTransform</a></h3>
<code><a href="../../../../../../../org/apache/beam/sdk/transforms/PTransform.html#compose-org.apache.beam.sdk.transforms.SerializableFunction-">compose</a>, <a href="../../../../../../../org/apache/beam/sdk/transforms/PTransform.html#compose-java.lang.String-org.apache.beam.sdk.transforms.SerializableFunction-">compose</a>, <a href="../../../../../../../org/apache/beam/sdk/transforms/PTransform.html#getAdditionalInputs--">getAdditionalInputs</a>, <a href="../../../../../../../org/apache/beam/sdk/transforms/PTransform.html#getDefaultOutputCoder--">getDefaultOutputCoder</a>, <a href="../../../../../../../org/apache/beam/sdk/transforms/PTransform.html#getDefaultOutputCoder-InputT-">getDefaultOutputCoder</a>, <a href="../../../../../../../org/apache/beam/sdk/transforms/PTransform.html#getDefaultOutputCoder-InputT-org.apache.beam.sdk.values.PCollection-">getDefaultOutputCoder</a>, <a href="../../../../../../../org/apache/beam/sdk/transforms/PTransform.html#getKindString--">getKindString</a>, <a href="../../../../../../../org/apache/beam/sdk/transforms/PTransform.html#getName--">getName</a>, <a href="../../../../../../../org/apache/beam/sdk/transforms/PTransform.html#populateDisplayData-org.apache.beam.sdk.transforms.display.DisplayData.Builder-">populateDisplayData</a>, <a href="../../../../../../../org/apache/beam/sdk/transforms/PTransform.html#toString--">toString</a>, <a href="../../../../../../../org/apache/beam/sdk/transforms/PTransform.html#validate-org.apache.beam.sdk.options.PipelineOptions-">validate</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="PubsubUnboundedSource-org.apache.beam.sdk.io.gcp.pubsub.PubsubClient.PubsubClientFactory-org.apache.beam.sdk.options.ValueProvider-org.apache.beam.sdk.options.ValueProvider-org.apache.beam.sdk.options.ValueProvider-java.lang.String-java.lang.String-boolean-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>PubsubUnboundedSource</h4>
<pre>public&nbsp;PubsubUnboundedSource(<a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubClient.PubsubClientFactory.html" title="interface in org.apache.beam.sdk.io.gcp.pubsub">PubsubClient.PubsubClientFactory</a>&nbsp;pubsubFactory,
@Nullable
<a href="../../../../../../../org/apache/beam/sdk/options/ValueProvider.html" title="interface in org.apache.beam.sdk.options">ValueProvider</a>&lt;<a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubClient.ProjectPath.html" title="class in org.apache.beam.sdk.io.gcp.pubsub">PubsubClient.ProjectPath</a>&gt;&nbsp;project,
@Nullable
<a href="../../../../../../../org/apache/beam/sdk/options/ValueProvider.html" title="interface in org.apache.beam.sdk.options">ValueProvider</a>&lt;<a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubClient.TopicPath.html" title="class in org.apache.beam.sdk.io.gcp.pubsub">PubsubClient.TopicPath</a>&gt;&nbsp;topic,
@Nullable
<a href="../../../../../../../org/apache/beam/sdk/options/ValueProvider.html" title="interface in org.apache.beam.sdk.options">ValueProvider</a>&lt;<a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubClient.SubscriptionPath.html" title="class in org.apache.beam.sdk.io.gcp.pubsub">PubsubClient.SubscriptionPath</a>&gt;&nbsp;subscription,
@Nullable
java.lang.String&nbsp;timestampAttribute,
@Nullable
java.lang.String&nbsp;idAttribute,
boolean&nbsp;needsAttributes)</pre>
<div class="block">Construct an unbounded source to consume from the Pubsub <code>subscription</code>.</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getProject--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getProject</h4>
<pre>@Nullable
public&nbsp;<a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubClient.ProjectPath.html" title="class in org.apache.beam.sdk.io.gcp.pubsub">PubsubClient.ProjectPath</a>&nbsp;getProject()</pre>
<div class="block">Get the project path.</div>
</li>
</ul>
<a name="getTopic--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTopic</h4>
<pre>@Nullable
public&nbsp;<a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubClient.TopicPath.html" title="class in org.apache.beam.sdk.io.gcp.pubsub">PubsubClient.TopicPath</a>&nbsp;getTopic()</pre>
<div class="block">Get the topic being read from.</div>
</li>
</ul>
<a name="getTopicProvider--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTopicProvider</h4>
<pre>@Nullable
public&nbsp;<a href="../../../../../../../org/apache/beam/sdk/options/ValueProvider.html" title="interface in org.apache.beam.sdk.options">ValueProvider</a>&lt;<a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubClient.TopicPath.html" title="class in org.apache.beam.sdk.io.gcp.pubsub">PubsubClient.TopicPath</a>&gt;&nbsp;getTopicProvider()</pre>
<div class="block">Get the <a href="../../../../../../../org/apache/beam/sdk/options/ValueProvider.html" title="interface in org.apache.beam.sdk.options"><code>ValueProvider</code></a> for the topic being read from.</div>
</li>
</ul>
<a name="getSubscription--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSubscription</h4>
<pre>@Nullable
public&nbsp;<a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubClient.SubscriptionPath.html" title="class in org.apache.beam.sdk.io.gcp.pubsub">PubsubClient.SubscriptionPath</a>&nbsp;getSubscription()</pre>
<div class="block">Get the subscription being read from.</div>
</li>
</ul>
<a name="getSubscriptionProvider--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSubscriptionProvider</h4>
<pre>@Nullable
public&nbsp;<a href="../../../../../../../org/apache/beam/sdk/options/ValueProvider.html" title="interface in org.apache.beam.sdk.options">ValueProvider</a>&lt;<a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubClient.SubscriptionPath.html" title="class in org.apache.beam.sdk.io.gcp.pubsub">PubsubClient.SubscriptionPath</a>&gt;&nbsp;getSubscriptionProvider()</pre>
<div class="block">Get the <a href="../../../../../../../org/apache/beam/sdk/options/ValueProvider.html" title="interface in org.apache.beam.sdk.options"><code>ValueProvider</code></a> for the subscription being read from.</div>
</li>
</ul>
<a name="getTimestampAttribute--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTimestampAttribute</h4>
<pre>@Nullable
public&nbsp;java.lang.String&nbsp;getTimestampAttribute()</pre>
<div class="block">Get the timestamp attribute.</div>
</li>
</ul>
<a name="getIdAttribute--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getIdAttribute</h4>
<pre>@Nullable
public&nbsp;java.lang.String&nbsp;getIdAttribute()</pre>
<div class="block">Get the id attribute.</div>
</li>
</ul>
<a name="getNeedsAttributes--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNeedsAttributes</h4>
<pre>public&nbsp;boolean&nbsp;getNeedsAttributes()</pre>
</li>
</ul>
<a name="expand-org.apache.beam.sdk.values.PBegin-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>expand</h4>
<pre>public&nbsp;<a href="../../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values">PCollection</a>&lt;<a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubMessage.html" title="class in org.apache.beam.sdk.io.gcp.pubsub">PubsubMessage</a>&gt;&nbsp;expand(<a href="../../../../../../../org/apache/beam/sdk/values/PBegin.html" title="class in org.apache.beam.sdk.values">PBegin</a>&nbsp;input)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../../org/apache/beam/sdk/transforms/PTransform.html#expand-InputT-">PTransform</a></code></span></div>
<div class="block">Override this method to specify how this <code>PTransform</code> should be expanded on the given
<code>InputT</code>.
<p>NOTE: This method should not be called directly. Instead apply the <code>PTransform</code> should
be applied to the <code>InputT</code> using the <code>apply</code> method.
<p>Composite transforms, which are defined in terms of other transforms, should return the
output of one of the composed transforms. Non-composite transforms, which do not apply any
transforms internally, should return a new unbound output and register evaluators (via
backend-specific registration methods).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../org/apache/beam/sdk/transforms/PTransform.html#expand-InputT-">expand</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms">PTransform</a>&lt;<a href="../../../../../../../org/apache/beam/sdk/values/PBegin.html" title="class in org.apache.beam.sdk.values">PBegin</a>,<a href="../../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values">PCollection</a>&lt;<a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubMessage.html" title="class in org.apache.beam.sdk.io.gcp.pubsub">PubsubMessage</a>&gt;&gt;</code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= 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><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></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><a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/PubsubUnboundedSink.html" title="class in org.apache.beam.sdk.io.gcp.pubsub"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../../org/apache/beam/sdk/io/gcp/pubsub/TestPubsub.html" title="class in org.apache.beam.sdk.io.gcp.pubsub"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../index.html?org/apache/beam/sdk/io/gcp/pubsub/PubsubUnboundedSource.html" target="_top">Frames</a></li>
<li><a href="PubsubUnboundedSource.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>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.org.apache.beam.sdk.transforms.PTransform">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>