You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by mm...@apache.org on 2019/06/07 09:02:38 UTC

[pulsar] branch asf-site updated: Updated site at revision ed836e2

This is an automated email from the ASF dual-hosted git repository.

mmerli pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/pulsar.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 69bb315  Updated site at revision ed836e2
69bb315 is described below

commit 69bb315b2424d28e3c4d51bc55c5245f6a55f60f
Author: jenkins <bu...@apache.org>
AuthorDate: Fri Jun 7 09:02:28 2019 +0000

    Updated site at revision ed836e2
---
 content/docs/en/next/concepts-messaging.html       |  23 +++-
 content/docs/en/next/concepts-messaging/index.html |  23 +++-
 content/docs/fr/next/concepts-messaging.html       |  23 +++-
 content/docs/fr/next/concepts-messaging/index.html |  23 +++-
 content/docs/ja/next/concepts-messaging.html       |  23 +++-
 content/docs/ja/next/concepts-messaging/index.html |  23 +++-
 content/docs/zh-CN/next/concepts-messaging.html    |  23 +++-
 .../docs/zh-CN/next/concepts-messaging/index.html  |  23 +++-
 content/swagger/2.4.0-SNAPSHOT/swagger.json        | 102 ++------------
 .../swagger/2.4.0-SNAPSHOT/swaggerfunctions.json   | 149 +++++++++++++++++++--
 content/swagger/swagger.json                       | 102 ++------------
 content/swagger/swaggerfunctions.json              | 149 +++++++++++++++++++--
 12 files changed, 440 insertions(+), 246 deletions(-)

diff --git a/content/docs/en/next/concepts-messaging.html b/content/docs/en/next/concepts-messaging.html
index 9050d8b..b78aa6c 100644
--- a/content/docs/en/next/concepts-messaging.html
+++ b/content/docs/en/next/concepts-messaging.html
@@ -256,11 +256,17 @@ PulsarClient pulsarClient = <span class="hljs-comment">// Instantiate Pulsar cli
 
 <span class="hljs-comment">// Subscribe to all topics in a namespace</span>
 Pattern allTopicsInNamespace = Pattern.compile(<span class="hljs-string">"persistent://public/default/.*"</span>);
-Consumer allTopicsConsumer = pulsarClient.subscribe(allTopicsInNamespace, <span class="hljs-string">"subscription-1"</span>);
+Consumer&lt;<span class="hljs-keyword">byte</span>[]&gt; allTopicsConsumer = pulsarClient.newConsumer()
+                .topicsPattern(allTopicsInNamespace)
+                .subscriptionName(<span class="hljs-string">"subscription-1"</span>)
+                .subscribe();
 
 <span class="hljs-comment">// Subscribe to a subsets of topics in a namespace, based on regex</span>
 Pattern someTopicsInNamespace = Pattern.compile(<span class="hljs-string">"persistent://public/default/foo.*"</span>);
-Consumer someTopicsConsumer = pulsarClient.subscribe(someTopicsInNamespace, <span class="hljs-string">"subscription-1"</span>);
+Consumer&lt;<span class="hljs-keyword">byte</span>[]&gt; someTopicsConsumer = pulsarClient.newConsumer()
+                .topicsPattern(someTopicsInNamespace)
+                .subscriptionName(<span class="hljs-string">"subscription-1"</span>)
+                .subscribe();
 </code></pre>
 <p>For code examples, see:</p>
 <ul>
@@ -330,14 +336,21 @@ Please pay attention that <code>JavaStringHash</code> is not useful when produce
 <h3><a class="anchor" aria-hidden="true" id="client-api"></a><a href="#client-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
 <p>Producers and consumers can connect to non-persistent topics in the same way as persistent topics, with the crucial difference that the topic name must start with <code>non-persistent</code>. All three subscription modes---<a href="#exclusive">exclusive</a>, <a href="#shared">shared</a>, and <a href="#failover">failover</a>---are supported for non-persistent topics.</p>
 <p>Here's an example <a href="/docs/en/next/client-libraries-java#consumers">Java consumer</a> for a non-persistent topic:</p>
-<pre><code class="hljs css language-java">PulsarClient client = PulsarClient.create(<span class="hljs-string">"pulsar://localhost:6650"</span>);
+<pre><code class="hljs css language-java">PulsarClient client = PulsarClient.builder()
+        .serviceUrl(<span class="hljs-string">"pulsar://localhost:6650"</span>)
+        .build();
 String npTopic = <span class="hljs-string">"non-persistent://public/default/my-topic"</span>;
 String subscriptionName = <span class="hljs-string">"my-subscription-name"</span>;
 
-Consumer consumer = client.subscribe(npTopic, subscriptionName);
+Consumer&lt;<span class="hljs-keyword">byte</span>[]&gt; consumer = client.newConsumer()
+        .topic(npTopic)
+        .subscriptionName(subscriptionName)
+        .subscribe();
 </code></pre>
 <p>Here's an example <a href="/docs/en/next/client-libraries-java#producer">Java producer</a> for the same non-persistent topic:</p>
-<pre><code class="hljs css language-java">Producer producer = client.createProducer(npTopic);
+<pre><code class="hljs css language-java">Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = client.newProducer()
+                .topic(npTopic)
+                .create();
 </code></pre>
 <h2><a class="anchor" aria-hidden="true" id="message-retention-and-expiry"></a><a href="#message-retention-and-expiry" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 [...]
 <p>By default, Pulsar message brokers:</p>
diff --git a/content/docs/en/next/concepts-messaging/index.html b/content/docs/en/next/concepts-messaging/index.html
index 9050d8b..b78aa6c 100644
--- a/content/docs/en/next/concepts-messaging/index.html
+++ b/content/docs/en/next/concepts-messaging/index.html
@@ -256,11 +256,17 @@ PulsarClient pulsarClient = <span class="hljs-comment">// Instantiate Pulsar cli
 
 <span class="hljs-comment">// Subscribe to all topics in a namespace</span>
 Pattern allTopicsInNamespace = Pattern.compile(<span class="hljs-string">"persistent://public/default/.*"</span>);
-Consumer allTopicsConsumer = pulsarClient.subscribe(allTopicsInNamespace, <span class="hljs-string">"subscription-1"</span>);
+Consumer&lt;<span class="hljs-keyword">byte</span>[]&gt; allTopicsConsumer = pulsarClient.newConsumer()
+                .topicsPattern(allTopicsInNamespace)
+                .subscriptionName(<span class="hljs-string">"subscription-1"</span>)
+                .subscribe();
 
 <span class="hljs-comment">// Subscribe to a subsets of topics in a namespace, based on regex</span>
 Pattern someTopicsInNamespace = Pattern.compile(<span class="hljs-string">"persistent://public/default/foo.*"</span>);
-Consumer someTopicsConsumer = pulsarClient.subscribe(someTopicsInNamespace, <span class="hljs-string">"subscription-1"</span>);
+Consumer&lt;<span class="hljs-keyword">byte</span>[]&gt; someTopicsConsumer = pulsarClient.newConsumer()
+                .topicsPattern(someTopicsInNamespace)
+                .subscriptionName(<span class="hljs-string">"subscription-1"</span>)
+                .subscribe();
 </code></pre>
 <p>For code examples, see:</p>
 <ul>
@@ -330,14 +336,21 @@ Please pay attention that <code>JavaStringHash</code> is not useful when produce
 <h3><a class="anchor" aria-hidden="true" id="client-api"></a><a href="#client-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
 <p>Producers and consumers can connect to non-persistent topics in the same way as persistent topics, with the crucial difference that the topic name must start with <code>non-persistent</code>. All three subscription modes---<a href="#exclusive">exclusive</a>, <a href="#shared">shared</a>, and <a href="#failover">failover</a>---are supported for non-persistent topics.</p>
 <p>Here's an example <a href="/docs/en/next/client-libraries-java#consumers">Java consumer</a> for a non-persistent topic:</p>
-<pre><code class="hljs css language-java">PulsarClient client = PulsarClient.create(<span class="hljs-string">"pulsar://localhost:6650"</span>);
+<pre><code class="hljs css language-java">PulsarClient client = PulsarClient.builder()
+        .serviceUrl(<span class="hljs-string">"pulsar://localhost:6650"</span>)
+        .build();
 String npTopic = <span class="hljs-string">"non-persistent://public/default/my-topic"</span>;
 String subscriptionName = <span class="hljs-string">"my-subscription-name"</span>;
 
-Consumer consumer = client.subscribe(npTopic, subscriptionName);
+Consumer&lt;<span class="hljs-keyword">byte</span>[]&gt; consumer = client.newConsumer()
+        .topic(npTopic)
+        .subscriptionName(subscriptionName)
+        .subscribe();
 </code></pre>
 <p>Here's an example <a href="/docs/en/next/client-libraries-java#producer">Java producer</a> for the same non-persistent topic:</p>
-<pre><code class="hljs css language-java">Producer producer = client.createProducer(npTopic);
+<pre><code class="hljs css language-java">Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = client.newProducer()
+                .topic(npTopic)
+                .create();
 </code></pre>
 <h2><a class="anchor" aria-hidden="true" id="message-retention-and-expiry"></a><a href="#message-retention-and-expiry" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 [...]
 <p>By default, Pulsar message brokers:</p>
diff --git a/content/docs/fr/next/concepts-messaging.html b/content/docs/fr/next/concepts-messaging.html
index a0e1f5e..5922626 100644
--- a/content/docs/fr/next/concepts-messaging.html
+++ b/content/docs/fr/next/concepts-messaging.html
@@ -248,11 +248,17 @@ PulsarClient pulsarClient = <span class="hljs-comment">// Instantiate Pulsar cli
 
 <span class="hljs-comment">// Subscribe to all topics in a namespace</span>
 Pattern allTopicsInNamespace = Pattern.compile(<span class="hljs-string">"persistent://public/default/.*"</span>);
-Consumer allTopicsConsumer = pulsarClient.subscribe(allTopicsInNamespace, <span class="hljs-string">"subscription-1"</span>);
+Consumer&lt;<span class="hljs-keyword">byte</span>[]&gt; allTopicsConsumer = pulsarClient.newConsumer()
+                .topicsPattern(allTopicsInNamespace)
+                .subscriptionName(<span class="hljs-string">"subscription-1"</span>)
+                .subscribe();
 
 <span class="hljs-comment">// Subscribe to a subsets of topics in a namespace, based on regex</span>
 Pattern someTopicsInNamespace = Pattern.compile(<span class="hljs-string">"persistent://public/default/foo.*"</span>);
-Consumer someTopicsConsumer = pulsarClient.subscribe(someTopicsInNamespace, <span class="hljs-string">"subscription-1"</span>);
+Consumer&lt;<span class="hljs-keyword">byte</span>[]&gt; someTopicsConsumer = pulsarClient.newConsumer()
+                .topicsPattern(someTopicsInNamespace)
+                .subscriptionName(<span class="hljs-string">"subscription-1"</span>)
+                .subscribe();
 </code></pre>
 <p>For code examples, see:</p>
 <ul>
@@ -320,14 +326,21 @@ Consumer someTopicsConsumer = pulsarClient.subscribe(someTopicsInNamespace, <spa
 <h3><a class="anchor" aria-hidden="true" id="client-api"></a><a href="#client-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
 <p>Producers and consumers can connect to non-persistent topics in the same way as persistent topics, with the crucial difference that the topic name must start with <code>non-persistent</code>. All three subscription modes---<a href="#exclusive">exclusive</a>, <a href="#shared">shared</a>, and <a href="#failover">failover</a>---are supported for non-persistent topics.</p>
 <p>Here's an example <a href="/docs/fr/next/client-libraries-java#consumers">Java consumer</a> for a non-persistent topic:</p>
-<pre><code class="hljs css language-java">PulsarClient client = PulsarClient.create(<span class="hljs-string">"pulsar://localhost:6650"</span>);
+<pre><code class="hljs css language-java">PulsarClient client = PulsarClient.builder()
+        .serviceUrl(<span class="hljs-string">"pulsar://localhost:6650"</span>)
+        .build();
 String npTopic = <span class="hljs-string">"non-persistent://public/default/my-topic"</span>;
 String subscriptionName = <span class="hljs-string">"my-subscription-name"</span>;
 
-Consumer consumer = client.subscribe(npTopic, subscriptionName);
+Consumer&lt;<span class="hljs-keyword">byte</span>[]&gt; consumer = client.newConsumer()
+        .topic(npTopic)
+        .subscriptionName(subscriptionName)
+        .subscribe();
 </code></pre>
 <p>Here's an example <a href="/docs/fr/next/client-libraries-java#producer">Java producer</a> for the same non-persistent topic:</p>
-<pre><code class="hljs css language-java">Producer producer = client.createProducer(npTopic);
+<pre><code class="hljs css language-java">Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = client.newProducer()
+                .topic(npTopic)
+                .create();
 </code></pre>
 <h2><a class="anchor" aria-hidden="true" id="message-retention-and-expiry"></a><a href="#message-retention-and-expiry" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 [...]
 <p>By default, Pulsar message brokers:</p>
diff --git a/content/docs/fr/next/concepts-messaging/index.html b/content/docs/fr/next/concepts-messaging/index.html
index a0e1f5e..5922626 100644
--- a/content/docs/fr/next/concepts-messaging/index.html
+++ b/content/docs/fr/next/concepts-messaging/index.html
@@ -248,11 +248,17 @@ PulsarClient pulsarClient = <span class="hljs-comment">// Instantiate Pulsar cli
 
 <span class="hljs-comment">// Subscribe to all topics in a namespace</span>
 Pattern allTopicsInNamespace = Pattern.compile(<span class="hljs-string">"persistent://public/default/.*"</span>);
-Consumer allTopicsConsumer = pulsarClient.subscribe(allTopicsInNamespace, <span class="hljs-string">"subscription-1"</span>);
+Consumer&lt;<span class="hljs-keyword">byte</span>[]&gt; allTopicsConsumer = pulsarClient.newConsumer()
+                .topicsPattern(allTopicsInNamespace)
+                .subscriptionName(<span class="hljs-string">"subscription-1"</span>)
+                .subscribe();
 
 <span class="hljs-comment">// Subscribe to a subsets of topics in a namespace, based on regex</span>
 Pattern someTopicsInNamespace = Pattern.compile(<span class="hljs-string">"persistent://public/default/foo.*"</span>);
-Consumer someTopicsConsumer = pulsarClient.subscribe(someTopicsInNamespace, <span class="hljs-string">"subscription-1"</span>);
+Consumer&lt;<span class="hljs-keyword">byte</span>[]&gt; someTopicsConsumer = pulsarClient.newConsumer()
+                .topicsPattern(someTopicsInNamespace)
+                .subscriptionName(<span class="hljs-string">"subscription-1"</span>)
+                .subscribe();
 </code></pre>
 <p>For code examples, see:</p>
 <ul>
@@ -320,14 +326,21 @@ Consumer someTopicsConsumer = pulsarClient.subscribe(someTopicsInNamespace, <spa
 <h3><a class="anchor" aria-hidden="true" id="client-api"></a><a href="#client-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
 <p>Producers and consumers can connect to non-persistent topics in the same way as persistent topics, with the crucial difference that the topic name must start with <code>non-persistent</code>. All three subscription modes---<a href="#exclusive">exclusive</a>, <a href="#shared">shared</a>, and <a href="#failover">failover</a>---are supported for non-persistent topics.</p>
 <p>Here's an example <a href="/docs/fr/next/client-libraries-java#consumers">Java consumer</a> for a non-persistent topic:</p>
-<pre><code class="hljs css language-java">PulsarClient client = PulsarClient.create(<span class="hljs-string">"pulsar://localhost:6650"</span>);
+<pre><code class="hljs css language-java">PulsarClient client = PulsarClient.builder()
+        .serviceUrl(<span class="hljs-string">"pulsar://localhost:6650"</span>)
+        .build();
 String npTopic = <span class="hljs-string">"non-persistent://public/default/my-topic"</span>;
 String subscriptionName = <span class="hljs-string">"my-subscription-name"</span>;
 
-Consumer consumer = client.subscribe(npTopic, subscriptionName);
+Consumer&lt;<span class="hljs-keyword">byte</span>[]&gt; consumer = client.newConsumer()
+        .topic(npTopic)
+        .subscriptionName(subscriptionName)
+        .subscribe();
 </code></pre>
 <p>Here's an example <a href="/docs/fr/next/client-libraries-java#producer">Java producer</a> for the same non-persistent topic:</p>
-<pre><code class="hljs css language-java">Producer producer = client.createProducer(npTopic);
+<pre><code class="hljs css language-java">Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = client.newProducer()
+                .topic(npTopic)
+                .create();
 </code></pre>
 <h2><a class="anchor" aria-hidden="true" id="message-retention-and-expiry"></a><a href="#message-retention-and-expiry" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 [...]
 <p>By default, Pulsar message brokers:</p>
diff --git a/content/docs/ja/next/concepts-messaging.html b/content/docs/ja/next/concepts-messaging.html
index 1fba6c6..6d7ff90 100644
--- a/content/docs/ja/next/concepts-messaging.html
+++ b/content/docs/ja/next/concepts-messaging.html
@@ -248,11 +248,17 @@ PulsarClient pulsarClient = <span class="hljs-comment">// Instantiate Pulsar cli
 
 <span class="hljs-comment">// Subscribe to all topics in a namespace</span>
 Pattern allTopicsInNamespace = Pattern.compile(<span class="hljs-string">"persistent://public/default/.*"</span>);
-Consumer allTopicsConsumer = pulsarClient.subscribe(allTopicsInNamespace, <span class="hljs-string">"subscription-1"</span>);
+Consumer&lt;<span class="hljs-keyword">byte</span>[]&gt; allTopicsConsumer = pulsarClient.newConsumer()
+                .topicsPattern(allTopicsInNamespace)
+                .subscriptionName(<span class="hljs-string">"subscription-1"</span>)
+                .subscribe();
 
 <span class="hljs-comment">// Subscribe to a subsets of topics in a namespace, based on regex</span>
 Pattern someTopicsInNamespace = Pattern.compile(<span class="hljs-string">"persistent://public/default/foo.*"</span>);
-Consumer someTopicsConsumer = pulsarClient.subscribe(someTopicsInNamespace, <span class="hljs-string">"subscription-1"</span>);
+Consumer&lt;<span class="hljs-keyword">byte</span>[]&gt; someTopicsConsumer = pulsarClient.newConsumer()
+                .topicsPattern(someTopicsInNamespace)
+                .subscriptionName(<span class="hljs-string">"subscription-1"</span>)
+                .subscribe();
 </code></pre>
 <p>For code examples, see:</p>
 <ul>
@@ -320,14 +326,21 @@ Consumer someTopicsConsumer = pulsarClient.subscribe(someTopicsInNamespace, <spa
 <h3><a class="anchor" aria-hidden="true" id="client-api"></a><a href="#client-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
 <p>Producers and consumers can connect to non-persistent topics in the same way as persistent topics, with the crucial difference that the topic name must start with <code>non-persistent</code>. All three subscription modes---<a href="#exclusive">exclusive</a>, <a href="#shared">shared</a>, and <a href="#failover">failover</a>---are supported for non-persistent topics.</p>
 <p>Here's an example <a href="/docs/ja/next/client-libraries-java#consumers">Java consumer</a> for a non-persistent topic:</p>
-<pre><code class="hljs css language-java">PulsarClient client = PulsarClient.create(<span class="hljs-string">"pulsar://localhost:6650"</span>);
+<pre><code class="hljs css language-java">PulsarClient client = PulsarClient.builder()
+        .serviceUrl(<span class="hljs-string">"pulsar://localhost:6650"</span>)
+        .build();
 String npTopic = <span class="hljs-string">"non-persistent://public/default/my-topic"</span>;
 String subscriptionName = <span class="hljs-string">"my-subscription-name"</span>;
 
-Consumer consumer = client.subscribe(npTopic, subscriptionName);
+Consumer&lt;<span class="hljs-keyword">byte</span>[]&gt; consumer = client.newConsumer()
+        .topic(npTopic)
+        .subscriptionName(subscriptionName)
+        .subscribe();
 </code></pre>
 <p>Here's an example <a href="/docs/ja/next/client-libraries-java#producer">Java producer</a> for the same non-persistent topic:</p>
-<pre><code class="hljs css language-java">Producer producer = client.createProducer(npTopic);
+<pre><code class="hljs css language-java">Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = client.newProducer()
+                .topic(npTopic)
+                .create();
 </code></pre>
 <h2><a class="anchor" aria-hidden="true" id="message-retention-and-expiry"></a><a href="#message-retention-and-expiry" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 [...]
 <p>By default, Pulsar message brokers:</p>
diff --git a/content/docs/ja/next/concepts-messaging/index.html b/content/docs/ja/next/concepts-messaging/index.html
index 1fba6c6..6d7ff90 100644
--- a/content/docs/ja/next/concepts-messaging/index.html
+++ b/content/docs/ja/next/concepts-messaging/index.html
@@ -248,11 +248,17 @@ PulsarClient pulsarClient = <span class="hljs-comment">// Instantiate Pulsar cli
 
 <span class="hljs-comment">// Subscribe to all topics in a namespace</span>
 Pattern allTopicsInNamespace = Pattern.compile(<span class="hljs-string">"persistent://public/default/.*"</span>);
-Consumer allTopicsConsumer = pulsarClient.subscribe(allTopicsInNamespace, <span class="hljs-string">"subscription-1"</span>);
+Consumer&lt;<span class="hljs-keyword">byte</span>[]&gt; allTopicsConsumer = pulsarClient.newConsumer()
+                .topicsPattern(allTopicsInNamespace)
+                .subscriptionName(<span class="hljs-string">"subscription-1"</span>)
+                .subscribe();
 
 <span class="hljs-comment">// Subscribe to a subsets of topics in a namespace, based on regex</span>
 Pattern someTopicsInNamespace = Pattern.compile(<span class="hljs-string">"persistent://public/default/foo.*"</span>);
-Consumer someTopicsConsumer = pulsarClient.subscribe(someTopicsInNamespace, <span class="hljs-string">"subscription-1"</span>);
+Consumer&lt;<span class="hljs-keyword">byte</span>[]&gt; someTopicsConsumer = pulsarClient.newConsumer()
+                .topicsPattern(someTopicsInNamespace)
+                .subscriptionName(<span class="hljs-string">"subscription-1"</span>)
+                .subscribe();
 </code></pre>
 <p>For code examples, see:</p>
 <ul>
@@ -320,14 +326,21 @@ Consumer someTopicsConsumer = pulsarClient.subscribe(someTopicsInNamespace, <spa
 <h3><a class="anchor" aria-hidden="true" id="client-api"></a><a href="#client-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
 <p>Producers and consumers can connect to non-persistent topics in the same way as persistent topics, with the crucial difference that the topic name must start with <code>non-persistent</code>. All three subscription modes---<a href="#exclusive">exclusive</a>, <a href="#shared">shared</a>, and <a href="#failover">failover</a>---are supported for non-persistent topics.</p>
 <p>Here's an example <a href="/docs/ja/next/client-libraries-java#consumers">Java consumer</a> for a non-persistent topic:</p>
-<pre><code class="hljs css language-java">PulsarClient client = PulsarClient.create(<span class="hljs-string">"pulsar://localhost:6650"</span>);
+<pre><code class="hljs css language-java">PulsarClient client = PulsarClient.builder()
+        .serviceUrl(<span class="hljs-string">"pulsar://localhost:6650"</span>)
+        .build();
 String npTopic = <span class="hljs-string">"non-persistent://public/default/my-topic"</span>;
 String subscriptionName = <span class="hljs-string">"my-subscription-name"</span>;
 
-Consumer consumer = client.subscribe(npTopic, subscriptionName);
+Consumer&lt;<span class="hljs-keyword">byte</span>[]&gt; consumer = client.newConsumer()
+        .topic(npTopic)
+        .subscriptionName(subscriptionName)
+        .subscribe();
 </code></pre>
 <p>Here's an example <a href="/docs/ja/next/client-libraries-java#producer">Java producer</a> for the same non-persistent topic:</p>
-<pre><code class="hljs css language-java">Producer producer = client.createProducer(npTopic);
+<pre><code class="hljs css language-java">Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = client.newProducer()
+                .topic(npTopic)
+                .create();
 </code></pre>
 <h2><a class="anchor" aria-hidden="true" id="message-retention-and-expiry"></a><a href="#message-retention-and-expiry" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 [...]
 <p>By default, Pulsar message brokers:</p>
diff --git a/content/docs/zh-CN/next/concepts-messaging.html b/content/docs/zh-CN/next/concepts-messaging.html
index ff30251..25e1958 100644
--- a/content/docs/zh-CN/next/concepts-messaging.html
+++ b/content/docs/zh-CN/next/concepts-messaging.html
@@ -248,11 +248,17 @@ PulsarClient pulsarClient = <span class="hljs-comment">// Instantiate Pulsar cli
 
 <span class="hljs-comment">// Subscribe to all topics in a namespace</span>
 Pattern allTopicsInNamespace = Pattern.compile(<span class="hljs-string">"persistent://public/default/.*"</span>);
-Consumer allTopicsConsumer = pulsarClient.subscribe(allTopicsInNamespace, <span class="hljs-string">"subscription-1"</span>);
+Consumer&lt;<span class="hljs-keyword">byte</span>[]&gt; allTopicsConsumer = pulsarClient.newConsumer()
+                .topicsPattern(allTopicsInNamespace)
+                .subscriptionName(<span class="hljs-string">"subscription-1"</span>)
+                .subscribe();
 
 <span class="hljs-comment">// Subscribe to a subsets of topics in a namespace, based on regex</span>
 Pattern someTopicsInNamespace = Pattern.compile(<span class="hljs-string">"persistent://public/default/foo.*"</span>);
-Consumer someTopicsConsumer = pulsarClient.subscribe(someTopicsInNamespace, <span class="hljs-string">"subscription-1"</span>);
+Consumer&lt;<span class="hljs-keyword">byte</span>[]&gt; someTopicsConsumer = pulsarClient.newConsumer()
+                .topicsPattern(someTopicsInNamespace)
+                .subscriptionName(<span class="hljs-string">"subscription-1"</span>)
+                .subscribe();
 </code></pre>
 <p>代码例子,请见:</p>
 <ul>
@@ -320,14 +326,21 @@ Consumer someTopicsConsumer = pulsarClient.subscribe(someTopicsInNamespace, <spa
 <h3><a class="anchor" aria-hidden="true" id="客户端api"></a><a href="#客户端api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <p>Producer和consumer以连接持久topic同样的方式连接到非持久topic。重要的区别是,topic的名称必须以<code>non-persistent</code>开头。 三种订阅模式--<a href="#exclusive">exclusive</a>,<a href="#shared">shared</a>,<a href="#failover">failover</a>对于非持久topic都是支持的。</p>
 <p>下面是一个非持久topic的<a href="/docs/zh-CN/next/client-libraries-java#consumers">java consumer</a>例子:</p>
-<pre><code class="hljs css language-java">PulsarClient client = PulsarClient.create(<span class="hljs-string">"pulsar://localhost:6650"</span>);
+<pre><code class="hljs css language-java">PulsarClient client = PulsarClient.builder()
+        .serviceUrl(<span class="hljs-string">"pulsar://localhost:6650"</span>)
+        .build();
 String npTopic = <span class="hljs-string">"non-persistent://public/default/my-topic"</span>;
 String subscriptionName = <span class="hljs-string">"my-subscription-name"</span>;
 
-Consumer consumer = client.subscribe(npTopic, subscriptionName);
+Consumer&lt;<span class="hljs-keyword">byte</span>[]&gt; consumer = client.newConsumer()
+        .topic(npTopic)
+        .subscriptionName(subscriptionName)
+        .subscribe();
 </code></pre>
 <p>这里还有一个非持久topic的<a href="/docs/zh-CN/next/client-libraries-java#producer">java producer</a>例子:</p>
-<pre><code class="hljs css language-java">Producer producer = client.createProducer(npTopic);
+<pre><code class="hljs css language-java">Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = client.newProducer()
+                .topic(npTopic)
+                .create();
 </code></pre>
 <h2><a class="anchor" aria-hidden="true" id="消息保留和到期"></a><a href="#消息保留和到期" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
 <p>Pulsar broker默认如下:</p>
diff --git a/content/docs/zh-CN/next/concepts-messaging/index.html b/content/docs/zh-CN/next/concepts-messaging/index.html
index ff30251..25e1958 100644
--- a/content/docs/zh-CN/next/concepts-messaging/index.html
+++ b/content/docs/zh-CN/next/concepts-messaging/index.html
@@ -248,11 +248,17 @@ PulsarClient pulsarClient = <span class="hljs-comment">// Instantiate Pulsar cli
 
 <span class="hljs-comment">// Subscribe to all topics in a namespace</span>
 Pattern allTopicsInNamespace = Pattern.compile(<span class="hljs-string">"persistent://public/default/.*"</span>);
-Consumer allTopicsConsumer = pulsarClient.subscribe(allTopicsInNamespace, <span class="hljs-string">"subscription-1"</span>);
+Consumer&lt;<span class="hljs-keyword">byte</span>[]&gt; allTopicsConsumer = pulsarClient.newConsumer()
+                .topicsPattern(allTopicsInNamespace)
+                .subscriptionName(<span class="hljs-string">"subscription-1"</span>)
+                .subscribe();
 
 <span class="hljs-comment">// Subscribe to a subsets of topics in a namespace, based on regex</span>
 Pattern someTopicsInNamespace = Pattern.compile(<span class="hljs-string">"persistent://public/default/foo.*"</span>);
-Consumer someTopicsConsumer = pulsarClient.subscribe(someTopicsInNamespace, <span class="hljs-string">"subscription-1"</span>);
+Consumer&lt;<span class="hljs-keyword">byte</span>[]&gt; someTopicsConsumer = pulsarClient.newConsumer()
+                .topicsPattern(someTopicsInNamespace)
+                .subscriptionName(<span class="hljs-string">"subscription-1"</span>)
+                .subscribe();
 </code></pre>
 <p>代码例子,请见:</p>
 <ul>
@@ -320,14 +326,21 @@ Consumer someTopicsConsumer = pulsarClient.subscribe(someTopicsInNamespace, <spa
 <h3><a class="anchor" aria-hidden="true" id="客户端api"></a><a href="#客户端api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <p>Producer和consumer以连接持久topic同样的方式连接到非持久topic。重要的区别是,topic的名称必须以<code>non-persistent</code>开头。 三种订阅模式--<a href="#exclusive">exclusive</a>,<a href="#shared">shared</a>,<a href="#failover">failover</a>对于非持久topic都是支持的。</p>
 <p>下面是一个非持久topic的<a href="/docs/zh-CN/next/client-libraries-java#consumers">java consumer</a>例子:</p>
-<pre><code class="hljs css language-java">PulsarClient client = PulsarClient.create(<span class="hljs-string">"pulsar://localhost:6650"</span>);
+<pre><code class="hljs css language-java">PulsarClient client = PulsarClient.builder()
+        .serviceUrl(<span class="hljs-string">"pulsar://localhost:6650"</span>)
+        .build();
 String npTopic = <span class="hljs-string">"non-persistent://public/default/my-topic"</span>;
 String subscriptionName = <span class="hljs-string">"my-subscription-name"</span>;
 
-Consumer consumer = client.subscribe(npTopic, subscriptionName);
+Consumer&lt;<span class="hljs-keyword">byte</span>[]&gt; consumer = client.newConsumer()
+        .topic(npTopic)
+        .subscriptionName(subscriptionName)
+        .subscribe();
 </code></pre>
 <p>这里还有一个非持久topic的<a href="/docs/zh-CN/next/client-libraries-java#producer">java producer</a>例子:</p>
-<pre><code class="hljs css language-java">Producer producer = client.createProducer(npTopic);
+<pre><code class="hljs css language-java">Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = client.newProducer()
+                .topic(npTopic)
+                .create();
 </code></pre>
 <h2><a class="anchor" aria-hidden="true" id="消息保留和到期"></a><a href="#消息保留和到期" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
 <p>Pulsar broker默认如下:</p>
diff --git a/content/swagger/2.4.0-SNAPSHOT/swagger.json b/content/swagger/2.4.0-SNAPSHOT/swagger.json
index 645a3f2..d4a785b 100644
--- a/content/swagger/2.4.0-SNAPSHOT/swagger.json
+++ b/content/swagger/2.4.0-SNAPSHOT/swagger.json
@@ -2342,7 +2342,7 @@
         }
       }
     },
-    "/namespaces/{tenant}/{namespace}/persistence/bookieAffinity/{bookieAffinityGroup}" : {
+    "/namespaces/{tenant}/{namespace}/persistence/bookieAffinity" : {
       "post" : {
         "tags" : [ "namespaces" ],
         "summary" : "Set the bookie-affinity-group to namespace-persistent policy.",
@@ -2360,11 +2360,6 @@
           "in" : "path",
           "required" : true,
           "type" : "string"
-        }, {
-          "name" : "bookieAffinityGroup",
-          "in" : "path",
-          "required" : true,
-          "type" : "string"
         } ],
         "responses" : {
           "403" : {
@@ -3875,12 +3870,6 @@
           "default" : false
         } ],
         "responses" : {
-          "200" : {
-            "description" : "successful operation",
-            "schema" : {
-              "$ref" : "#/definitions/PartitionedTopicStats"
-            }
-          },
           "403" : {
             "description" : "Don't have admin permission"
           },
@@ -5340,12 +5329,6 @@
           "default" : false
         } ],
         "responses" : {
-          "200" : {
-            "description" : "successful operation",
-            "schema" : {
-              "$ref" : "#/definitions/PartitionedTopicStats"
-            }
-          },
           "403" : {
             "description" : "Don't have admin permission"
           },
@@ -7293,6 +7276,15 @@
         "cpu" : {
           "$ref" : "#/definitions/ResourceUsage"
         },
+        "overLoaded" : {
+          "type" : "boolean"
+        },
+        "loadReportType" : {
+          "type" : "string"
+        },
+        "underLoaded" : {
+          "type" : "boolean"
+        },
         "directMemory" : {
           "$ref" : "#/definitions/ResourceUsage"
         },
@@ -7316,15 +7308,6 @@
         },
         "memory" : {
           "$ref" : "#/definitions/ResourceUsage"
-        },
-        "underLoaded" : {
-          "type" : "boolean"
-        },
-        "overLoaded" : {
-          "type" : "boolean"
-        },
-        "loadReportType" : {
-          "type" : "string"
         }
       }
     },
@@ -7687,65 +7670,6 @@
         }
       }
     },
-    "PartitionedTopicStats" : {
-      "type" : "object",
-      "properties" : {
-        "msgRateIn" : {
-          "type" : "number",
-          "format" : "double"
-        },
-        "msgThroughputIn" : {
-          "type" : "number",
-          "format" : "double"
-        },
-        "msgRateOut" : {
-          "type" : "number",
-          "format" : "double"
-        },
-        "msgThroughputOut" : {
-          "type" : "number",
-          "format" : "double"
-        },
-        "averageMsgSize" : {
-          "type" : "number",
-          "format" : "double"
-        },
-        "storageSize" : {
-          "type" : "integer",
-          "format" : "int64"
-        },
-        "publishers" : {
-          "type" : "array",
-          "items" : {
-            "$ref" : "#/definitions/PublisherStats"
-          }
-        },
-        "subscriptions" : {
-          "type" : "object",
-          "additionalProperties" : {
-            "$ref" : "#/definitions/SubscriptionStats"
-          }
-        },
-        "replication" : {
-          "type" : "object",
-          "additionalProperties" : {
-            "$ref" : "#/definitions/ReplicatorStats"
-          }
-        },
-        "deduplicationStatus" : {
-          "type" : "string"
-        },
-        "metadata" : {
-          "$ref" : "#/definitions/PartitionedTopicMetadata"
-        },
-        "partitions" : {
-          "type" : "object",
-          "additionalProperties" : {
-            "$ref" : "#/definitions/TopicStats"
-          }
-        }
-      }
-    },
     "PendingBookieOpsStats" : {
       "type" : "object",
       "properties" : {
@@ -8322,11 +8246,11 @@
     "ResourceUnit" : {
       "type" : "object",
       "properties" : {
-        "availableResource" : {
-          "$ref" : "#/definitions/ResourceDescription"
-        },
         "resourceId" : {
           "type" : "string"
+        },
+        "availableResource" : {
+          "$ref" : "#/definitions/ResourceDescription"
         }
       }
     },
diff --git a/content/swagger/2.4.0-SNAPSHOT/swaggerfunctions.json b/content/swagger/2.4.0-SNAPSHOT/swaggerfunctions.json
index 5ec27fb..434841f 100644
--- a/content/swagger/2.4.0-SNAPSHOT/swaggerfunctions.json
+++ b/content/swagger/2.4.0-SNAPSHOT/swaggerfunctions.json
@@ -57,11 +57,13 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
+          "description" : "The tenant of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
+          "description" : "The namespace of functions",
           "required" : true,
           "type" : "string"
         } ],
@@ -92,16 +94,19 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
+          "description" : "The tenant of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
+          "description" : "The namespace of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
+          "description" : "The name of functions",
           "required" : true,
           "type" : "string"
         } ],
@@ -136,18 +141,32 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
+          "description" : "The functions tenant",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
+          "description" : "The functions namespace",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
+          "description" : "The functions name",
           "required" : true,
           "type" : "string"
+        }, {
+          "in" : "body",
+          "name" : "body",
+          "description" : "A JSON value presenting functions configuration payload. An example of the expected functions can be found here.  \nautoAck  \n  Whether or not the framework will automatically acknowledge messages.  \nruntime  \n  What is the runtime of the function. Possible Values: [JAVA, PYTHON, GO]  \nresources  \n  The size of the system resources allowed by the function runtime. The resources include: cpu, ram, disk.  \nclassName  \n  The class name of functions.  \ntena [...]
+          "required" : false,
+          "schema" : {
+            "type" : "string"
+          },
+          "x-examples" : {
+            "application/json" : "{\n  \"inputs\": persistent://public/default/input-topic,\n  \"parallelism\": 4\n  \"output\": persistent://public/default/output-topic\n  \"log-topic\": persistent://public/default/log-topic\n  \"classname\": org.example.test.ExclamationFunction\n  \"jar\": java-function-1.0-SNAPSHOT.jar\n}"
+          }
         } ],
         "responses" : {
           "200" : {
@@ -174,18 +193,40 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
+          "description" : "The tenant of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
+          "description" : "The namespace of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
+          "description" : "The name of functions",
           "required" : true,
           "type" : "string"
+        }, {
+          "in" : "body",
+          "name" : "body",
+          "description" : "A JSON value presenting a functions config playload. An example of the expected functions can be found down here.  \nautoAck  \n  Whether or not the framework will automatically acknowledge messages.  \nruntime  \n  What is the runtime of the function. Possible Values: [JAVA, PYTHON, GO]  \nresources  \n  The size of the system resources allowed by the function runtime. The resources include: cpu, ram, disk.  \nclassName  \n  The class name of functions.  \nten [...]
+          "required" : false,
+          "schema" : {
+            "type" : "string"
+          },
+          "x-examples" : {
+            "application/json" : "{\n  \"inputs\": persistent://public/default/input-topic,\n  \"parallelism\": 4\n  \"output\": persistent://public/default/output-topic\n  \"log-topic\": persistent://public/default/log-topic\n  \"classname\": org.example.test.ExclamationFunction\n  \"jar\": java-function-1.0-SNAPSHOT.jar\n}"
+          }
+        }, {
+          "in" : "body",
+          "name" : "body",
+          "description" : "The update options is for the Pulsar Function that needs to be updated.",
+          "required" : false,
+          "schema" : {
+            "$ref" : "#/definitions/UpdateOptions"
+          }
         } ],
         "responses" : {
           "200" : {
@@ -209,16 +250,19 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
+          "description" : "The tenant of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
+          "description" : "The namespace of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
+          "description" : "The name of functions",
           "required" : true,
           "type" : "string"
         } ],
@@ -252,16 +296,19 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
+          "description" : "The tenant of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
+          "description" : "The namespace of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
+          "description" : "The name of functions",
           "required" : true,
           "type" : "string"
         } ],
@@ -289,16 +336,19 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
+          "description" : "The tenant of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
+          "description" : "The namespace of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
+          "description" : "The name of functions",
           "required" : true,
           "type" : "string"
         } ],
@@ -326,21 +376,25 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
+          "description" : "The tenant of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
+          "description" : "The namespace of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
+          "description" : "The name of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "key",
           "in" : "path",
+          "description" : "The stats key",
           "required" : true,
           "type" : "string"
         } ],
@@ -420,16 +474,19 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
+          "description" : "The tenant of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
+          "description" : "The namespace of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
+          "description" : "The name of functions",
           "required" : true,
           "type" : "string"
         } ],
@@ -463,16 +520,19 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
+          "description" : "The tenant of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
+          "description" : "The namespace of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
+          "description" : "The name of functions",
           "required" : true,
           "type" : "string"
         } ],
@@ -506,16 +566,19 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
+          "description" : "The tenant of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
+          "description" : "The namespace of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
+          "description" : "The name of functions",
           "required" : true,
           "type" : "string"
         } ],
@@ -543,18 +606,45 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
+          "description" : "The tenant of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
+          "description" : "The namespace of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
+          "description" : "The name of functions",
           "required" : true,
           "type" : "string"
+        }, {
+          "in" : "body",
+          "name" : "body",
+          "description" : "The value with which you want to trigger the function",
+          "required" : false,
+          "schema" : {
+            "type" : "string"
+          }
+        }, {
+          "in" : "body",
+          "name" : "body",
+          "description" : "The path to the file that contains the data with which you'd like to trigger the function",
+          "required" : false,
+          "schema" : {
+            "$ref" : "#/definitions/InputStream"
+          }
+        }, {
+          "in" : "body",
+          "name" : "body",
+          "description" : "The specific topic name that the function consumes from which you want to inject the data to",
+          "required" : false,
+          "schema" : {
+            "type" : "string"
+          }
         } ],
         "responses" : {
           "200" : {
@@ -589,21 +679,25 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
+          "description" : "The tenant of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
+          "description" : "The namespace of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
+          "description" : "The name of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "instanceId",
           "in" : "path",
+          "description" : "The function instanceId (if instance-id is not provided, all instances are restarted",
           "required" : true,
           "type" : "string"
         } ],
@@ -631,21 +725,25 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
+          "description" : "The tenant of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
+          "description" : "The namespace of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
+          "description" : "The name of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "instanceId",
           "in" : "path",
+          "description" : "The function instanceId (if instance-id is not provided, all instances sre started. ",
           "required" : true,
           "type" : "string"
         } ],
@@ -673,21 +771,25 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
+          "description" : "The tenant of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
+          "description" : "The namespace of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
+          "description" : "The name of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "instanceId",
           "in" : "path",
+          "description" : "The function instanceId (if instance-id is not provided, the stats of all instances is returned",
           "required" : true,
           "type" : "string"
         } ],
@@ -721,21 +823,25 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
+          "description" : "The tenant of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
+          "description" : "The namespace of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
+          "description" : "The name of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "instanceId",
           "in" : "path",
+          "description" : "The function instanceId (if instance-id is not provided, the stats of all instances is returned",
           "required" : true,
           "type" : "string"
         } ],
@@ -769,21 +875,25 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
+          "description" : "The tenant of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
+          "description" : "The namespace of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
+          "description" : "The name of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "instanceId",
           "in" : "path",
+          "description" : "The function instanceId (if instance-id is not provided, all instances are stopped. ",
           "required" : true,
           "type" : "string"
         } ],
@@ -1232,9 +1342,16 @@
         }
       }
     },
+    "InputStream" : {
+      "type" : "object"
+    },
     "Message" : {
       "type" : "object",
       "properties" : {
+        "redeliveryCount" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
         "messageId" : {
           "$ref" : "#/definitions/MessageId"
         },
@@ -1242,13 +1359,6 @@
           "type" : "integer",
           "format" : "int64"
         },
-        "keyBytes" : {
-          "type" : "array",
-          "items" : {
-            "type" : "string",
-            "format" : "byte"
-          }
-        },
         "orderingKey" : {
           "type" : "array",
           "items" : {
@@ -1259,10 +1369,6 @@
         "encryptionCtx" : {
           "$ref" : "#/definitions/EncryptionContext"
         },
-        "redeliveryCount" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
         "schemaVersion" : {
           "type" : "array",
           "items" : {
@@ -1270,9 +1376,6 @@
             "format" : "byte"
           }
         },
-        "producerName" : {
-          "type" : "string"
-        },
         "publishTime" : {
           "type" : "integer",
           "format" : "int64"
@@ -1284,6 +1387,16 @@
         "topicName" : {
           "type" : "string"
         },
+        "producerName" : {
+          "type" : "string"
+        },
+        "keyBytes" : {
+          "type" : "array",
+          "items" : {
+            "type" : "string",
+            "format" : "byte"
+          }
+        },
         "data" : {
           "type" : "array",
           "items" : {
@@ -1325,6 +1438,14 @@
         }
       }
     },
+    "UpdateOptions" : {
+      "type" : "object",
+      "properties" : {
+        "updateAuthData" : {
+          "type" : "boolean"
+        }
+      }
+    },
     "WindowConfig" : {
       "type" : "object",
       "properties" : {
diff --git a/content/swagger/swagger.json b/content/swagger/swagger.json
index 645a3f2..d4a785b 100644
--- a/content/swagger/swagger.json
+++ b/content/swagger/swagger.json
@@ -2342,7 +2342,7 @@
         }
       }
     },
-    "/namespaces/{tenant}/{namespace}/persistence/bookieAffinity/{bookieAffinityGroup}" : {
+    "/namespaces/{tenant}/{namespace}/persistence/bookieAffinity" : {
       "post" : {
         "tags" : [ "namespaces" ],
         "summary" : "Set the bookie-affinity-group to namespace-persistent policy.",
@@ -2360,11 +2360,6 @@
           "in" : "path",
           "required" : true,
           "type" : "string"
-        }, {
-          "name" : "bookieAffinityGroup",
-          "in" : "path",
-          "required" : true,
-          "type" : "string"
         } ],
         "responses" : {
           "403" : {
@@ -3875,12 +3870,6 @@
           "default" : false
         } ],
         "responses" : {
-          "200" : {
-            "description" : "successful operation",
-            "schema" : {
-              "$ref" : "#/definitions/PartitionedTopicStats"
-            }
-          },
           "403" : {
             "description" : "Don't have admin permission"
           },
@@ -5340,12 +5329,6 @@
           "default" : false
         } ],
         "responses" : {
-          "200" : {
-            "description" : "successful operation",
-            "schema" : {
-              "$ref" : "#/definitions/PartitionedTopicStats"
-            }
-          },
           "403" : {
             "description" : "Don't have admin permission"
           },
@@ -7293,6 +7276,15 @@
         "cpu" : {
           "$ref" : "#/definitions/ResourceUsage"
         },
+        "overLoaded" : {
+          "type" : "boolean"
+        },
+        "loadReportType" : {
+          "type" : "string"
+        },
+        "underLoaded" : {
+          "type" : "boolean"
+        },
         "directMemory" : {
           "$ref" : "#/definitions/ResourceUsage"
         },
@@ -7316,15 +7308,6 @@
         },
         "memory" : {
           "$ref" : "#/definitions/ResourceUsage"
-        },
-        "underLoaded" : {
-          "type" : "boolean"
-        },
-        "overLoaded" : {
-          "type" : "boolean"
-        },
-        "loadReportType" : {
-          "type" : "string"
         }
       }
     },
@@ -7687,65 +7670,6 @@
         }
       }
     },
-    "PartitionedTopicStats" : {
-      "type" : "object",
-      "properties" : {
-        "msgRateIn" : {
-          "type" : "number",
-          "format" : "double"
-        },
-        "msgThroughputIn" : {
-          "type" : "number",
-          "format" : "double"
-        },
-        "msgRateOut" : {
-          "type" : "number",
-          "format" : "double"
-        },
-        "msgThroughputOut" : {
-          "type" : "number",
-          "format" : "double"
-        },
-        "averageMsgSize" : {
-          "type" : "number",
-          "format" : "double"
-        },
-        "storageSize" : {
-          "type" : "integer",
-          "format" : "int64"
-        },
-        "publishers" : {
-          "type" : "array",
-          "items" : {
-            "$ref" : "#/definitions/PublisherStats"
-          }
-        },
-        "subscriptions" : {
-          "type" : "object",
-          "additionalProperties" : {
-            "$ref" : "#/definitions/SubscriptionStats"
-          }
-        },
-        "replication" : {
-          "type" : "object",
-          "additionalProperties" : {
-            "$ref" : "#/definitions/ReplicatorStats"
-          }
-        },
-        "deduplicationStatus" : {
-          "type" : "string"
-        },
-        "metadata" : {
-          "$ref" : "#/definitions/PartitionedTopicMetadata"
-        },
-        "partitions" : {
-          "type" : "object",
-          "additionalProperties" : {
-            "$ref" : "#/definitions/TopicStats"
-          }
-        }
-      }
-    },
     "PendingBookieOpsStats" : {
       "type" : "object",
       "properties" : {
@@ -8322,11 +8246,11 @@
     "ResourceUnit" : {
       "type" : "object",
       "properties" : {
-        "availableResource" : {
-          "$ref" : "#/definitions/ResourceDescription"
-        },
         "resourceId" : {
           "type" : "string"
+        },
+        "availableResource" : {
+          "$ref" : "#/definitions/ResourceDescription"
         }
       }
     },
diff --git a/content/swagger/swaggerfunctions.json b/content/swagger/swaggerfunctions.json
index 5ec27fb..434841f 100644
--- a/content/swagger/swaggerfunctions.json
+++ b/content/swagger/swaggerfunctions.json
@@ -57,11 +57,13 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
+          "description" : "The tenant of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
+          "description" : "The namespace of functions",
           "required" : true,
           "type" : "string"
         } ],
@@ -92,16 +94,19 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
+          "description" : "The tenant of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
+          "description" : "The namespace of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
+          "description" : "The name of functions",
           "required" : true,
           "type" : "string"
         } ],
@@ -136,18 +141,32 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
+          "description" : "The functions tenant",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
+          "description" : "The functions namespace",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
+          "description" : "The functions name",
           "required" : true,
           "type" : "string"
+        }, {
+          "in" : "body",
+          "name" : "body",
+          "description" : "A JSON value presenting functions configuration payload. An example of the expected functions can be found here.  \nautoAck  \n  Whether or not the framework will automatically acknowledge messages.  \nruntime  \n  What is the runtime of the function. Possible Values: [JAVA, PYTHON, GO]  \nresources  \n  The size of the system resources allowed by the function runtime. The resources include: cpu, ram, disk.  \nclassName  \n  The class name of functions.  \ntena [...]
+          "required" : false,
+          "schema" : {
+            "type" : "string"
+          },
+          "x-examples" : {
+            "application/json" : "{\n  \"inputs\": persistent://public/default/input-topic,\n  \"parallelism\": 4\n  \"output\": persistent://public/default/output-topic\n  \"log-topic\": persistent://public/default/log-topic\n  \"classname\": org.example.test.ExclamationFunction\n  \"jar\": java-function-1.0-SNAPSHOT.jar\n}"
+          }
         } ],
         "responses" : {
           "200" : {
@@ -174,18 +193,40 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
+          "description" : "The tenant of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
+          "description" : "The namespace of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
+          "description" : "The name of functions",
           "required" : true,
           "type" : "string"
+        }, {
+          "in" : "body",
+          "name" : "body",
+          "description" : "A JSON value presenting a functions config playload. An example of the expected functions can be found down here.  \nautoAck  \n  Whether or not the framework will automatically acknowledge messages.  \nruntime  \n  What is the runtime of the function. Possible Values: [JAVA, PYTHON, GO]  \nresources  \n  The size of the system resources allowed by the function runtime. The resources include: cpu, ram, disk.  \nclassName  \n  The class name of functions.  \nten [...]
+          "required" : false,
+          "schema" : {
+            "type" : "string"
+          },
+          "x-examples" : {
+            "application/json" : "{\n  \"inputs\": persistent://public/default/input-topic,\n  \"parallelism\": 4\n  \"output\": persistent://public/default/output-topic\n  \"log-topic\": persistent://public/default/log-topic\n  \"classname\": org.example.test.ExclamationFunction\n  \"jar\": java-function-1.0-SNAPSHOT.jar\n}"
+          }
+        }, {
+          "in" : "body",
+          "name" : "body",
+          "description" : "The update options is for the Pulsar Function that needs to be updated.",
+          "required" : false,
+          "schema" : {
+            "$ref" : "#/definitions/UpdateOptions"
+          }
         } ],
         "responses" : {
           "200" : {
@@ -209,16 +250,19 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
+          "description" : "The tenant of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
+          "description" : "The namespace of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
+          "description" : "The name of functions",
           "required" : true,
           "type" : "string"
         } ],
@@ -252,16 +296,19 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
+          "description" : "The tenant of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
+          "description" : "The namespace of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
+          "description" : "The name of functions",
           "required" : true,
           "type" : "string"
         } ],
@@ -289,16 +336,19 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
+          "description" : "The tenant of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
+          "description" : "The namespace of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
+          "description" : "The name of functions",
           "required" : true,
           "type" : "string"
         } ],
@@ -326,21 +376,25 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
+          "description" : "The tenant of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
+          "description" : "The namespace of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
+          "description" : "The name of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "key",
           "in" : "path",
+          "description" : "The stats key",
           "required" : true,
           "type" : "string"
         } ],
@@ -420,16 +474,19 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
+          "description" : "The tenant of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
+          "description" : "The namespace of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
+          "description" : "The name of functions",
           "required" : true,
           "type" : "string"
         } ],
@@ -463,16 +520,19 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
+          "description" : "The tenant of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
+          "description" : "The namespace of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
+          "description" : "The name of functions",
           "required" : true,
           "type" : "string"
         } ],
@@ -506,16 +566,19 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
+          "description" : "The tenant of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
+          "description" : "The namespace of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
+          "description" : "The name of functions",
           "required" : true,
           "type" : "string"
         } ],
@@ -543,18 +606,45 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
+          "description" : "The tenant of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
+          "description" : "The namespace of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
+          "description" : "The name of functions",
           "required" : true,
           "type" : "string"
+        }, {
+          "in" : "body",
+          "name" : "body",
+          "description" : "The value with which you want to trigger the function",
+          "required" : false,
+          "schema" : {
+            "type" : "string"
+          }
+        }, {
+          "in" : "body",
+          "name" : "body",
+          "description" : "The path to the file that contains the data with which you'd like to trigger the function",
+          "required" : false,
+          "schema" : {
+            "$ref" : "#/definitions/InputStream"
+          }
+        }, {
+          "in" : "body",
+          "name" : "body",
+          "description" : "The specific topic name that the function consumes from which you want to inject the data to",
+          "required" : false,
+          "schema" : {
+            "type" : "string"
+          }
         } ],
         "responses" : {
           "200" : {
@@ -589,21 +679,25 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
+          "description" : "The tenant of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
+          "description" : "The namespace of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
+          "description" : "The name of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "instanceId",
           "in" : "path",
+          "description" : "The function instanceId (if instance-id is not provided, all instances are restarted",
           "required" : true,
           "type" : "string"
         } ],
@@ -631,21 +725,25 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
+          "description" : "The tenant of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
+          "description" : "The namespace of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
+          "description" : "The name of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "instanceId",
           "in" : "path",
+          "description" : "The function instanceId (if instance-id is not provided, all instances sre started. ",
           "required" : true,
           "type" : "string"
         } ],
@@ -673,21 +771,25 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
+          "description" : "The tenant of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
+          "description" : "The namespace of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
+          "description" : "The name of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "instanceId",
           "in" : "path",
+          "description" : "The function instanceId (if instance-id is not provided, the stats of all instances is returned",
           "required" : true,
           "type" : "string"
         } ],
@@ -721,21 +823,25 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
+          "description" : "The tenant of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
+          "description" : "The namespace of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
+          "description" : "The name of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "instanceId",
           "in" : "path",
+          "description" : "The function instanceId (if instance-id is not provided, the stats of all instances is returned",
           "required" : true,
           "type" : "string"
         } ],
@@ -769,21 +875,25 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
+          "description" : "The tenant of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
+          "description" : "The namespace of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
+          "description" : "The name of functions",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "instanceId",
           "in" : "path",
+          "description" : "The function instanceId (if instance-id is not provided, all instances are stopped. ",
           "required" : true,
           "type" : "string"
         } ],
@@ -1232,9 +1342,16 @@
         }
       }
     },
+    "InputStream" : {
+      "type" : "object"
+    },
     "Message" : {
       "type" : "object",
       "properties" : {
+        "redeliveryCount" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
         "messageId" : {
           "$ref" : "#/definitions/MessageId"
         },
@@ -1242,13 +1359,6 @@
           "type" : "integer",
           "format" : "int64"
         },
-        "keyBytes" : {
-          "type" : "array",
-          "items" : {
-            "type" : "string",
-            "format" : "byte"
-          }
-        },
         "orderingKey" : {
           "type" : "array",
           "items" : {
@@ -1259,10 +1369,6 @@
         "encryptionCtx" : {
           "$ref" : "#/definitions/EncryptionContext"
         },
-        "redeliveryCount" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
         "schemaVersion" : {
           "type" : "array",
           "items" : {
@@ -1270,9 +1376,6 @@
             "format" : "byte"
           }
         },
-        "producerName" : {
-          "type" : "string"
-        },
         "publishTime" : {
           "type" : "integer",
           "format" : "int64"
@@ -1284,6 +1387,16 @@
         "topicName" : {
           "type" : "string"
         },
+        "producerName" : {
+          "type" : "string"
+        },
+        "keyBytes" : {
+          "type" : "array",
+          "items" : {
+            "type" : "string",
+            "format" : "byte"
+          }
+        },
         "data" : {
           "type" : "array",
           "items" : {
@@ -1325,6 +1438,14 @@
         }
       }
     },
+    "UpdateOptions" : {
+      "type" : "object",
+      "properties" : {
+        "updateAuthData" : {
+          "type" : "boolean"
+        }
+      }
+    },
     "WindowConfig" : {
       "type" : "object",
       "properties" : {