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 2018/10/18 09:05:31 UTC

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

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 ec9d47b  Updated site at revision 8d69ad8
ec9d47b is described below

commit ec9d47bdbf36ff42357cf781c1b3dda5a689bab8
Author: jenkins <bu...@apache.org>
AuthorDate: Thu Oct 18 09:05:22 2018 +0000

    Updated site at revision 8d69ad8
---
 content/api/admin/allclasses-frame.html            |   2 +
 content/api/admin/allclasses-noframe.html          |   2 +
 content/api/admin/index-all.html                   | 134 ++++-
 .../org/apache/pulsar/client/admin/Functions.html  |  32 +-
 .../apache/pulsar/client/admin/PulsarAdmin.html    |  40 +-
 .../org/apache/pulsar/client/admin/Schemas.html    |   4 +-
 .../admin/org/apache/pulsar/client/admin/Sink.html | 635 +++++++++++++++++++++
 .../org/apache/pulsar/client/admin/Source.html     | 635 +++++++++++++++++++++
 .../org/apache/pulsar/client/admin/Tenants.html    |   4 +-
 .../apache/pulsar/client/admin/package-frame.html  |   2 +
 .../pulsar/client/admin/package-summary.html       |  12 +
 .../apache/pulsar/client/admin/package-tree.html   |   2 +
 content/api/admin/overview-tree.html               |   2 +
 content/docs/en/next/io-overview.html              |   2 +-
 content/docs/en/next/io-overview/index.html        |   2 +-
 content/docs/en/next/security-tls-transport.html   |  15 +-
 .../docs/en/next/security-tls-transport/index.html |  15 +-
 content/docs/fr/next/io-overview.html              |   2 +-
 content/docs/fr/next/io-overview/index.html        |   2 +-
 content/docs/fr/next/security-tls-transport.html   |  14 +-
 .../docs/fr/next/security-tls-transport/index.html |  14 +-
 content/docs/ja/next/io-overview.html              |   2 +-
 content/docs/ja/next/io-overview/index.html        |   2 +-
 content/docs/ja/next/security-tls-transport.html   |  14 +-
 .../docs/ja/next/security-tls-transport/index.html |  14 +-
 .../docs/latest/adaptors/PulsarSpark/index.html    |  10 +-
 .../docs/latest/adaptors/PulsarStorm/index.html    |   8 +-
 content/docs/latest/admin-api/overview/index.html  |  18 +-
 content/docs/latest/clients/Cpp/index.html         |   8 +-
 content/docs/latest/clients/Java/index.html        |  16 +-
 content/docs/latest/clients/Python/index.html      |  10 +-
 content/docs/latest/clients/WebSocket/index.html   |   8 +-
 content/docs/latest/clients/go/index.html          |   6 +-
 .../docs/latest/cookbooks/Encryption/index.html    |   6 +-
 .../latest/cookbooks/PartitionedTopics/index.html  |  16 +-
 .../latest/cookbooks/RetentionExpiry/index.html    |  16 +-
 .../docs/latest/cookbooks/compaction/index.html    |   8 +-
 .../cookbooks/message-deduplication/index.html     |  12 +-
 .../docs/latest/cookbooks/message-queue/index.html |  16 +-
 .../latest/cookbooks/tiered-storage/index.html     |   6 +-
 .../docs/latest/deployment/Kubernetes/index.html   |   4 +-
 .../docs/latest/deployment/aws-cluster/index.html  |   6 +-
 content/docs/latest/deployment/cluster/index.html  |   6 +-
 content/docs/latest/deployment/instance/index.html |   6 +-
 .../ConceptsAndArchitecture/index.html             |   4 +-
 .../latest/getting-started/LocalCluster/index.html |   4 +-
 .../latest/getting-started/Pulsar-2.0/index.html   |   2 +-
 .../docs/latest/getting-started/docker/index.html  |   4 +-
 .../docs/latest/project/BinaryProtocol/index.html  |   4 +-
 content/docs/latest/project/CompileCpp/index.html  |   8 +-
 .../docs/latest/project/SimulationTools/index.html |   2 +-
 .../docs/latest/project/schema-storage/index.html  |   4 +-
 content/docs/latest/reference/CliTools/index.html  |  22 +-
 .../docs/latest/security/authorization/index.html  |  14 +-
 content/docs/latest/security/encryption/index.html |   6 +-
 content/docs/zh-CN/next/io-overview.html           |   2 +-
 content/docs/zh-CN/next/io-overview/index.html     |   2 +-
 .../docs/zh-CN/next/security-tls-transport.html    |  14 +-
 .../zh-CN/next/security-tls-transport/index.html   |  14 +-
 content/ja/adaptors/PulsarSpark/index.html         |   8 +-
 content/ja/adaptors/PulsarStorm/index.html         |   6 +-
 content/ja/admin/AdminInterface/index.html         |  12 +-
 content/ja/admin/Authz/index.html                  |  12 +-
 content/ja/admin/ClustersBrokers/index.html        |   6 +-
 content/ja/admin/PropertiesNamespaces/index.html   |   6 +-
 content/ja/advanced/PartitionedTopics/index.html   |  12 +-
 content/ja/advanced/RetentionExpiry/index.html     |  12 +-
 content/ja/clients/Cpp/index.html                  |   6 +-
 content/ja/clients/Java/index.html                 |   8 +-
 content/ja/clients/Python/index.html               |   8 +-
 content/ja/clients/WebSocket/index.html            |   8 +-
 content/ja/deployment/InstanceSetup/index.html     |   6 +-
 content/ja/deployment/Kubernetes/index.html        |   4 +-
 .../ConceptsAndArchitecture/index.html             |   2 +-
 content/ja/getting-started/LocalCluster/index.html |   4 +-
 content/ja/project/BinaryProtocol/index.html       |   4 +-
 content/ja/project/SimulationTools/index.html      |   2 +-
 content/ja/reference/CliTools/index.html           |  18 +-
 content/swagger/swagger.json                       |  58 +-
 79 files changed, 1808 insertions(+), 290 deletions(-)

diff --git a/content/api/admin/allclasses-frame.html b/content/api/admin/allclasses-frame.html
index 2c77df0..04c5a73 100644
--- a/content/api/admin/allclasses-frame.html
+++ b/content/api/admin/allclasses-frame.html
@@ -82,6 +82,8 @@
 <li><a href="org/apache/pulsar/common/policies/data/RetentionPolicies.html" title="class in org.apache.pulsar.common.policies.data" target="classFrame">RetentionPolicies</a></li>
 <li><a href="org/apache/pulsar/common/policies/data/SchemaAutoUpdateCompatibilityStrategy.html" title="enum in org.apache.pulsar.common.policies.data" target="classFrame">SchemaAutoUpdateCompatibilityStrategy</a></li>
 <li><a href="org/apache/pulsar/client/admin/Schemas.html" title="interface in org.apache.pulsar.client.admin" target="classFrame"><span class="interfaceName">Schemas</span></a></li>
+<li><a href="org/apache/pulsar/client/admin/Sink.html" title="interface in org.apache.pulsar.client.admin" target="classFrame"><span class="interfaceName">Sink</span></a></li>
+<li><a href="org/apache/pulsar/client/admin/Source.html" title="interface in org.apache.pulsar.client.admin" target="classFrame"><span class="interfaceName">Source</span></a></li>
 <li><a href="org/apache/pulsar/common/policies/data/SubscriptionAuthMode.html" title="enum in org.apache.pulsar.common.policies.data" target="classFrame">SubscriptionAuthMode</a></li>
 <li><a href="org/apache/pulsar/common/policies/data/SubscriptionStats.html" title="class in org.apache.pulsar.common.policies.data" target="classFrame">SubscriptionStats</a></li>
 <li><a href="org/apache/pulsar/common/policies/data/TenantInfo.html" title="class in org.apache.pulsar.common.policies.data" target="classFrame">TenantInfo</a></li>
diff --git a/content/api/admin/allclasses-noframe.html b/content/api/admin/allclasses-noframe.html
index 438a78a..c8123a0 100644
--- a/content/api/admin/allclasses-noframe.html
+++ b/content/api/admin/allclasses-noframe.html
@@ -82,6 +82,8 @@
 <li><a href="org/apache/pulsar/common/policies/data/RetentionPolicies.html" title="class in org.apache.pulsar.common.policies.data">RetentionPolicies</a></li>
 <li><a href="org/apache/pulsar/common/policies/data/SchemaAutoUpdateCompatibilityStrategy.html" title="enum in org.apache.pulsar.common.policies.data">SchemaAutoUpdateCompatibilityStrategy</a></li>
 <li><a href="org/apache/pulsar/client/admin/Schemas.html" title="interface in org.apache.pulsar.client.admin"><span class="interfaceName">Schemas</span></a></li>
+<li><a href="org/apache/pulsar/client/admin/Sink.html" title="interface in org.apache.pulsar.client.admin"><span class="interfaceName">Sink</span></a></li>
+<li><a href="org/apache/pulsar/client/admin/Source.html" title="interface in org.apache.pulsar.client.admin"><span class="interfaceName">Source</span></a></li>
 <li><a href="org/apache/pulsar/common/policies/data/SubscriptionAuthMode.html" title="enum in org.apache.pulsar.common.policies.data">SubscriptionAuthMode</a></li>
 <li><a href="org/apache/pulsar/common/policies/data/SubscriptionStats.html" title="class in org.apache.pulsar.common.policies.data">SubscriptionStats</a></li>
 <li><a href="org/apache/pulsar/common/policies/data/TenantInfo.html" title="class in org.apache.pulsar.common.policies.data">TenantInfo</a></li>
diff --git a/content/api/admin/index-all.html b/content/api/admin/index-all.html
index cb02cc7..9a8af9f 100644
--- a/content/api/admin/index-all.html
+++ b/content/api/admin/index-all.html
@@ -352,11 +352,11 @@
 <dd>
 <div class="block">Create a domain into cluster</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Functions.html#createFunction-FunctionDetails-java.lang.String-">createFunction(FunctionDetails, String)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Functions.html" title="interface in org.apache.pulsar.client.admin">Functions</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Functions.html#createFunction-FunctionConfig-java.lang.String-">createFunction(FunctionConfig, String)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Functions.html" title="interface in org.apache.pulsar.client.admin">Functions</a></dt>
 <dd>
 <div class="block">Create a new function.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Functions.html#createFunctionWithUrl-FunctionDetails-java.lang.String-">createFunctionWithUrl(FunctionDetails, String)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Functions.html" title="interface in org.apache.pulsar.client.admin">Functions</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Functions.html#createFunctionWithUrl-FunctionConfig-java.lang.String-">createFunctionWithUrl(FunctionConfig, String)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Functions.html" title="interface in org.apache.pulsar.client.admin">Functions</a></dt>
 <dd>
 <div class="block">
  Create a new function by providing url from which fun-pkg can be downloaded.</div>
@@ -412,6 +412,24 @@
 <dd>
 <div class="block">Create a schema for a given <tt>topic</tt>.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Sink.html#createSink-SinkConfig-java.lang.String-">createSink(SinkConfig, String)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Sink.html" title="interface in org.apache.pulsar.client.admin">Sink</a></dt>
+<dd>
+<div class="block">Create a new sink.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Sink.html#createSinkWithUrl-SinkConfig-java.lang.String-">createSinkWithUrl(SinkConfig, String)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Sink.html" title="interface in org.apache.pulsar.client.admin">Sink</a></dt>
+<dd>
+<div class="block">
+ Create a new sink by providing url from which fun-pkg can be downloaded.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Source.html#createSource-SourceConfig-java.lang.String-">createSource(SourceConfig, String)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Source.html" title="interface in org.apache.pulsar.client.admin">Source</a></dt>
+<dd>
+<div class="block">Create a new source.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Source.html#createSourceWithUrl-SourceConfig-java.lang.String-">createSourceWithUrl(SourceConfig, String)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Source.html" title="interface in org.apache.pulsar.client.admin">Source</a></dt>
+<dd>
+<div class="block">
+ Create a new source by providing url from which fun-pkg can be downloaded.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Topics.html#createSubscription-java.lang.String-java.lang.String-MessageId-">createSubscription(String, String, MessageId)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Topics.html" title="interface in org.apache.pulsar.client.admin">Topics</a></dt>
 <dd>
 <div class="block">Create a new subscription on a topic</div>
@@ -533,6 +551,14 @@
 <dd>
 <div class="block">Delete the schema associated with a given <tt>topic</tt>.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Sink.html#deleteSink-java.lang.String-java.lang.String-java.lang.String-">deleteSink(String, String, String)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Sink.html" title="interface in org.apache.pulsar.client.admin">Sink</a></dt>
+<dd>
+<div class="block">Delete an existing sink</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Source.html#deleteSource-java.lang.String-java.lang.String-java.lang.String-">deleteSource(String, String, String)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Source.html" title="interface in org.apache.pulsar.client.admin">Source</a></dt>
+<dd>
+<div class="block">Delete an existing source</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Topics.html#deleteSubscription-java.lang.String-java.lang.String-">deleteSubscription(String, String)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Topics.html" title="interface in org.apache.pulsar.client.admin">Topics</a></dt>
 <dd>
 <div class="block">Delete a subscription.</div>
@@ -763,6 +789,14 @@
 <dd>
 <div class="block">Returns active broker with namespace-isolation policies attached to it.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Sink.html#getBuiltInSinks--">getBuiltInSinks()</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Sink.html" title="interface in org.apache.pulsar.client.admin">Sink</a></dt>
+<dd>
+<div class="block">Fetches a list of supported Pulsar IO sinks currently running in cluster mode</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Source.html#getBuiltInSources--">getBuiltInSources()</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Source.html" title="interface in org.apache.pulsar.client.admin">Source</a></dt>
+<dd>
+<div class="block">Fetches a list of supported Pulsar IO sources currently running in cluster mode</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Lookup.html#getBundleRange-java.lang.String-">getBundleRange(String)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Lookup.html" title="interface in org.apache.pulsar.client.admin">Lookup</a></dt>
 <dd>
 <div class="block">Get a bundle range of a topic</div>
@@ -1132,14 +1166,46 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/common/policies/data/ClusterData.html#getServiceUrlTls--">getServiceUrlTls()</a></span> - Method in class org.apache.pulsar.common.policies.data.<a href="org/apache/pulsar/common/policies/data/ClusterData.html" title="class in org.apache.pulsar.common.policies.data">ClusterData</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Sink.html#getSink-java.lang.String-java.lang.String-java.lang.String-">getSink(String, String, String)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Sink.html" title="interface in org.apache.pulsar.client.admin">Sink</a></dt>
+<dd>
+<div class="block">Get the configuration for the specified sink.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Functions.html#getSinks--">getSinks()</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Functions.html" title="interface in org.apache.pulsar.client.admin">Functions</a></dt>
 <dd>
 <div class="block">Fetches a list of supported Pulsar IO sinks currently running in cluster mode</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Sink.html#getSinks-java.lang.String-java.lang.String-">getSinks(String, String)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Sink.html" title="interface in org.apache.pulsar.client.admin">Sink</a></dt>
+<dd>
+<div class="block">Get the list of sinks.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Sink.html#getSinkStatus-java.lang.String-java.lang.String-java.lang.String-">getSinkStatus(String, String, String)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Sink.html" title="interface in org.apache.pulsar.client.admin">Sink</a></dt>
+<dd>
+<div class="block">Gets the current status of a sink.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Sink.html#getSinkStatus-java.lang.String-java.lang.String-java.lang.String-int-">getSinkStatus(String, String, String, int)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Sink.html" title="interface in org.apache.pulsar.client.admin">Sink</a></dt>
+<dd>
+<div class="block">Gets the current status of a sink instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Source.html#getSource-java.lang.String-java.lang.String-java.lang.String-">getSource(String, String, String)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Source.html" title="interface in org.apache.pulsar.client.admin">Source</a></dt>
+<dd>
+<div class="block">Get the configuration for the specified source.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Functions.html#getSources--">getSources()</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Functions.html" title="interface in org.apache.pulsar.client.admin">Functions</a></dt>
 <dd>
 <div class="block">Fetches a list of supported Pulsar IO sources currently running in cluster mode</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Source.html#getSources-java.lang.String-java.lang.String-">getSources(String, String)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Source.html" title="interface in org.apache.pulsar.client.admin">Source</a></dt>
+<dd>
+<div class="block">Get the list of sources.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Source.html#getSourceStatus-java.lang.String-java.lang.String-java.lang.String-">getSourceStatus(String, String, String)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Source.html" title="interface in org.apache.pulsar.client.admin">Source</a></dt>
+<dd>
+<div class="block">Gets the current status of a source.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Source.html#getSourceStatus-java.lang.String-java.lang.String-java.lang.String-int-">getSourceStatus(String, String, String, int)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Source.html" title="interface in org.apache.pulsar.client.admin">Source</a></dt>
+<dd>
+<div class="block">Gets the current status of a source instance.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/NonPersistentTopics.html#getStats-java.lang.String-">getStats(String)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/NonPersistentTopics.html" title="interface in org.apache.pulsar.client.admin">NonPersistentTopics</a></dt>
 <dd>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
@@ -1841,6 +1907,22 @@
 <dd>
 <div class="block">Restart all function instances</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Sink.html#restartSink-java.lang.String-java.lang.String-java.lang.String-int-">restartSink(String, String, String, int)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Sink.html" title="interface in org.apache.pulsar.client.admin">Sink</a></dt>
+<dd>
+<div class="block">Restart sink instance</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Sink.html#restartSink-java.lang.String-java.lang.String-java.lang.String-">restartSink(String, String, String)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Sink.html" title="interface in org.apache.pulsar.client.admin">Sink</a></dt>
+<dd>
+<div class="block">Restart all sink instances</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Source.html#restartSource-java.lang.String-java.lang.String-java.lang.String-int-">restartSource(String, String, String, int)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Source.html" title="interface in org.apache.pulsar.client.admin">Source</a></dt>
+<dd>
+<div class="block">Restart source instance</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Source.html#restartSource-java.lang.String-java.lang.String-java.lang.String-">restartSource(String, String, String)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Source.html" title="interface in org.apache.pulsar.client.admin">Source</a></dt>
+<dd>
+<div class="block">Restart all source instances</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/common/policies/data/Policies.html#retention_policies">retention_policies</a></span> - Variable in class org.apache.pulsar.common.policies.data.<a href="org/apache/pulsar/common/policies/data/Policies.html" title="class in org.apache.pulsar.common.policies.data">Policies</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/pulsar/common/policies/data/RetentionPolicies.html" title="class in org.apache.pulsar.common.policies.data"><span class="typeNameLink">RetentionPolicies</span></a> - Class in <a href="org/apache/pulsar/common/policies/data/package-summary.html">org.apache.pulsar.common.policies.data</a></dt>
@@ -2068,6 +2150,12 @@
 <dd>
 <div class="block">Check to see whether the namespace ownership should fallback to the primary brokers</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/PulsarAdmin.html#sink--">sink()</a></span> - Method in class org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/PulsarAdmin.html" title="class in org.apache.pulsar.client.admin">PulsarAdmin</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/pulsar/client/admin/Sink.html" title="interface in org.apache.pulsar.client.admin"><span class="typeNameLink">Sink</span></a> - Interface in <a href="org/apache/pulsar/client/admin/package-summary.html">org.apache.pulsar.client.admin</a></dt>
+<dd>
+<div class="block">Admin interface for Sink management.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/common/policies/data/PersistentOfflineTopicStats.LedgerDetails.html#size">size</a></span> - Variable in class org.apache.pulsar.common.policies.data.<a href="org/apache/pulsar/common/policies/data/PersistentOfflineTopicStats.LedgerDetails.html" title="class in org.apache.pulsar.common.policies.data">PersistentOfflineTopicStats.LedgerDetails</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/common/policies/data/PersistentTopicInternalStats.LedgerInfo.html#size">size</a></span> - Variable in class org.apache.pulsar.common.policies.data.<a href="org/apache/pulsar/common/policies/data/PersistentTopicInternalStats.LedgerInfo.html" title="class in org.apache.pulsar.common.policies.data">PersistentTopicInternalStats.LedgerInfo</a></dt>
@@ -2088,6 +2176,12 @@
 <dd>
 <div class="block">Skip messages on a topic subscription asynchronously.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/PulsarAdmin.html#source--">source()</a></span> - Method in class org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/PulsarAdmin.html" title="class in org.apache.pulsar.client.admin">PulsarAdmin</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/pulsar/client/admin/Source.html" title="interface in org.apache.pulsar.client.admin"><span class="typeNameLink">Source</span></a> - Interface in <a href="org/apache/pulsar/client/admin/package-summary.html">org.apache.pulsar.client.admin</a></dt>
+<dd>
+<div class="block">Admin interface for Source management.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Namespaces.html#splitNamespaceBundle-java.lang.String-java.lang.String-boolean-">splitNamespaceBundle(String, String, boolean)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Namespaces.html" title="interface in org.apache.pulsar.client.admin">Namespaces</a></dt>
 <dd>
 <div class="block">Split namespace bundle</div>
@@ -2110,6 +2204,22 @@
 <dd>
 <div class="block">Stop all function instances</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Sink.html#stopSink-java.lang.String-java.lang.String-java.lang.String-int-">stopSink(String, String, String, int)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Sink.html" title="interface in org.apache.pulsar.client.admin">Sink</a></dt>
+<dd>
+<div class="block">Stop sink instance</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Sink.html#stopSink-java.lang.String-java.lang.String-java.lang.String-">stopSink(String, String, String)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Sink.html" title="interface in org.apache.pulsar.client.admin">Sink</a></dt>
+<dd>
+<div class="block">Stop all sink instances</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Source.html#stopSource-java.lang.String-java.lang.String-java.lang.String-int-">stopSource(String, String, String, int)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Source.html" title="interface in org.apache.pulsar.client.admin">Source</a></dt>
+<dd>
+<div class="block">Stop source instance</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Source.html#stopSource-java.lang.String-java.lang.String-java.lang.String-">stopSource(String, String, String)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Source.html" title="interface in org.apache.pulsar.client.admin">Source</a></dt>
+<dd>
+<div class="block">Stop all source instances</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/common/policies/data/PersistentOfflineTopicStats.html#storageSize">storageSize</a></span> - Variable in class org.apache.pulsar.common.policies.data.<a href="org/apache/pulsar/common/policies/data/PersistentOfflineTopicStats.html" title="class in org.apache.pulsar.common.policies.data">PersistentOfflineTopicStats</a></dt>
 <dd>
 <div class="block">Space used to store the messages for the topic.</div>
@@ -2304,11 +2414,11 @@
 <dd>
 <div class="block">Update a domain into cluster</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Functions.html#updateFunction-FunctionDetails-java.lang.String-">updateFunction(FunctionDetails, String)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Functions.html" title="interface in org.apache.pulsar.client.admin">Functions</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Functions.html#updateFunction-FunctionConfig-java.lang.String-">updateFunction(FunctionConfig, String)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Functions.html" title="interface in org.apache.pulsar.client.admin">Functions</a></dt>
 <dd>
 <div class="block">Update the configuration for a function.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Functions.html#updateFunctionWithUrl-FunctionDetails-java.lang.String-">updateFunctionWithUrl(FunctionDetails, String)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Functions.html" title="interface in org.apache.pulsar.client.admin">Functions</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Functions.html#updateFunctionWithUrl-FunctionConfig-java.lang.String-">updateFunctionWithUrl(FunctionConfig, String)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Functions.html" title="interface in org.apache.pulsar.client.admin">Functions</a></dt>
 <dd>
 <div class="block">Update the configuration for a function.</div>
 </dd>
@@ -2333,6 +2443,22 @@
 <div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
 <div class="block">Update the admins for a property.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Sink.html#updateSink-SinkConfig-java.lang.String-">updateSink(SinkConfig, String)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Sink.html" title="interface in org.apache.pulsar.client.admin">Sink</a></dt>
+<dd>
+<div class="block">Update the configuration for a sink.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Sink.html#updateSinkWithUrl-SinkConfig-java.lang.String-">updateSinkWithUrl(SinkConfig, String)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Sink.html" title="interface in org.apache.pulsar.client.admin">Sink</a></dt>
+<dd>
+<div class="block">Update the configuration for a sink.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Source.html#updateSource-SourceConfig-java.lang.String-">updateSource(SourceConfig, String)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Source.html" title="interface in org.apache.pulsar.client.admin">Source</a></dt>
+<dd>
+<div class="block">Update the configuration for a source.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Source.html#updateSourceWithUrl-SourceConfig-java.lang.String-">updateSourceWithUrl(SourceConfig, String)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Source.html" title="interface in org.apache.pulsar.client.admin">Source</a></dt>
+<dd>
+<div class="block">Update the configuration for a source.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/client/admin/Tenants.html#updateTenant-java.lang.String-org.apache.pulsar.common.policies.data.TenantInfo-">updateTenant(String, TenantInfo)</a></span> - Method in interface org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Tenants.html" title="interface in org.apache.pulsar.client.admin">Tenants</a></dt>
 <dd>
 <div class="block">Update the admins for a tenant.</div>
diff --git a/content/api/admin/org/apache/pulsar/client/admin/Functions.html b/content/api/admin/org/apache/pulsar/client/admin/Functions.html
index 1d92c69..2cf0bb9 100644
--- a/content/api/admin/org/apache/pulsar/client/admin/Functions.html
+++ b/content/api/admin/org/apache/pulsar/client/admin/Functions.html
@@ -121,14 +121,14 @@ var activeTableTab = "activeTableTab";
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Functions.html#createFunction-FunctionDetails-java.lang.String-">createFunction</a></span>(FunctionDetails&nbsp;functionDetails,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Functions.html#createFunction-FunctionConfig-java.lang.String-">createFunction</a></span>(FunctionConfig&nbsp;functionConfig,
               String&nbsp;fileName)</code>
 <div class="block">Create a new function.</div>
 </td>
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Functions.html#createFunctionWithUrl-FunctionDetails-java.lang.String-">createFunctionWithUrl</a></span>(FunctionDetails&nbsp;functionDetails,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Functions.html#createFunctionWithUrl-FunctionConfig-java.lang.String-">createFunctionWithUrl</a></span>(FunctionConfig&nbsp;functionConfig,
                      String&nbsp;pkgUrl)</code>
 <div class="block">
  Create a new function by providing url from which fun-pkg can be downloaded.</div>
@@ -255,14 +255,14 @@ var activeTableTab = "activeTableTab";
 </tr>
 <tr id="i17" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Functions.html#updateFunction-FunctionDetails-java.lang.String-">updateFunction</a></span>(FunctionDetails&nbsp;functionDetails,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Functions.html#updateFunction-FunctionConfig-java.lang.String-">updateFunction</a></span>(FunctionConfig&nbsp;functionConfig,
               String&nbsp;fileName)</code>
 <div class="block">Update the configuration for a function.</div>
 </td>
 </tr>
 <tr id="i18" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Functions.html#updateFunctionWithUrl-FunctionDetails-java.lang.String-">updateFunctionWithUrl</a></span>(FunctionDetails&nbsp;functionDetails,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Functions.html#updateFunctionWithUrl-FunctionConfig-java.lang.String-">updateFunctionWithUrl</a></span>(FunctionConfig&nbsp;functionConfig,
                      String&nbsp;pkgUrl)</code>
 <div class="block">Update the configuration for a function.</div>
 </td>
@@ -345,31 +345,31 @@ var activeTableTab = "activeTableTab";
 </dl>
 </li>
 </ul>
-<a name="createFunction-FunctionDetails-java.lang.String-">
+<a name="createFunction-FunctionConfig-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>createFunction</h4>
-<pre>void&nbsp;createFunction(FunctionDetails&nbsp;functionDetails,
+<pre>void&nbsp;createFunction(FunctionConfig&nbsp;functionConfig,
                     String&nbsp;fileName)
              throws <a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></pre>
 <div class="block">Create a new function.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>functionDetails</code> - the function configuration object</dd>
+<dd><code>functionConfig</code> - the function configuration object</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></code> - Unexpected error</dd>
 </dl>
 </li>
 </ul>
-<a name="createFunctionWithUrl-FunctionDetails-java.lang.String-">
+<a name="createFunctionWithUrl-FunctionConfig-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>createFunctionWithUrl</h4>
-<pre>void&nbsp;createFunctionWithUrl(FunctionDetails&nbsp;functionDetails,
+<pre>void&nbsp;createFunctionWithUrl(FunctionConfig&nbsp;functionConfig,
                            String&nbsp;pkgUrl)
                     throws <a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></pre>
 <div class="block"><pre>
@@ -380,27 +380,27 @@ var activeTableTab = "activeTableTab";
  </pre></div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>functionDetails</code> - the function configuration object</dd>
+<dd><code>functionConfig</code> - the function configuration object</dd>
 <dd><code>pkgUrl</code> - url from which pkg can be downloaded</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></code></dd>
 </dl>
 </li>
 </ul>
-<a name="updateFunction-FunctionDetails-java.lang.String-">
+<a name="updateFunction-FunctionConfig-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>updateFunction</h4>
-<pre>void&nbsp;updateFunction(FunctionDetails&nbsp;functionDetails,
+<pre>void&nbsp;updateFunction(FunctionConfig&nbsp;functionConfig,
                     String&nbsp;fileName)
              throws <a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></pre>
 <div class="block">Update the configuration for a function.
  <p></div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>functionDetails</code> - the function configuration object</dd>
+<dd><code>functionConfig</code> - the function configuration object</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.NotAuthorizedException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException.NotAuthorizedException</a></code> - You don't have admin permission to create the cluster</dd>
 <dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.NotFoundException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException.NotFoundException</a></code> - Cluster doesn't exist</dd>
@@ -408,13 +408,13 @@ var activeTableTab = "activeTableTab";
 </dl>
 </li>
 </ul>
-<a name="updateFunctionWithUrl-FunctionDetails-java.lang.String-">
+<a name="updateFunctionWithUrl-FunctionConfig-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>updateFunctionWithUrl</h4>
-<pre>void&nbsp;updateFunctionWithUrl(FunctionDetails&nbsp;functionDetails,
+<pre>void&nbsp;updateFunctionWithUrl(FunctionConfig&nbsp;functionConfig,
                            String&nbsp;pkgUrl)
                     throws <a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></pre>
 <div class="block">Update the configuration for a function.
@@ -426,7 +426,7 @@ var activeTableTab = "activeTableTab";
  </pre></div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>functionDetails</code> - the function configuration object</dd>
+<dd><code>functionConfig</code> - the function configuration object</dd>
 <dd><code>pkgUrl</code> - url from which pkg can be downloaded</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.NotAuthorizedException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException.NotAuthorizedException</a></code> - You don't have admin permission to create the cluster</dd>
diff --git a/content/api/admin/org/apache/pulsar/client/admin/PulsarAdmin.html b/content/api/admin/org/apache/pulsar/client/admin/PulsarAdmin.html
index 7e24672..14e6df9 100644
--- a/content/api/admin/org/apache/pulsar/client/admin/PulsarAdmin.html
+++ b/content/api/admin/org/apache/pulsar/client/admin/PulsarAdmin.html
@@ -17,7 +17,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":9,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":42,"i12":42,"i13":42,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":9,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":42,"i12":42,"i13":42,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -289,14 +289,22 @@ implements Closeable</pre>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdmin.html#schemas--">schemas</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i16" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/admin/Sink.html" title="interface in org.apache.pulsar.client.admin">Sink</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdmin.html#sink--">sink</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/admin/Source.html" title="interface in org.apache.pulsar.client.admin">Source</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdmin.html#source--">source</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i18" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/admin/Tenants.html" title="interface in org.apache.pulsar.client.admin">Tenants</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdmin.html#tenants--">tenants</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i17" class="rowColor">
+<tr id="i19" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/admin/Topics.html" title="interface in org.apache.pulsar.client.admin">Topics</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdmin.html#topics--">topics</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i18" class="altColor">
+<tr id="i20" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/pulsar/client/admin/Worker.html" title="interface in org.apache.pulsar.client.admin">Worker</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdmin.html#worker--">worker</a></span>()</code>&nbsp;</td>
 </tr>
@@ -631,6 +639,32 @@ public&nbsp;<a href="../../../../../org/apache/pulsar/client/admin/NonPersistent
 </dl>
 </li>
 </ul>
+<a name="source--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>source</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/pulsar/client/admin/Source.html" title="interface in org.apache.pulsar.client.admin">Source</a>&nbsp;source()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the source management object</dd>
+</dl>
+</li>
+</ul>
+<a name="sink--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sink</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/pulsar/client/admin/Sink.html" title="interface in org.apache.pulsar.client.admin">Sink</a>&nbsp;sink()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the sink management object</dd>
+</dl>
+</li>
+</ul>
 <a name="worker--">
 <!--   -->
 </a>
diff --git a/content/api/admin/org/apache/pulsar/client/admin/Schemas.html b/content/api/admin/org/apache/pulsar/client/admin/Schemas.html
index e4aa869..8b291e0 100644
--- a/content/api/admin/org/apache/pulsar/client/admin/Schemas.html
+++ b/content/api/admin/org/apache/pulsar/client/admin/Schemas.html
@@ -48,7 +48,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/pulsar/client/admin/ResourceQuotas.html" title="interface in org.apache.pulsar.client.admin"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/pulsar/client/admin/Tenants.html" title="interface in org.apache.pulsar.client.admin"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/pulsar/client/admin/Sink.html" title="interface in org.apache.pulsar.client.admin"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/pulsar/client/admin/Schemas.html" target="_top">Frames</a></li>
@@ -264,7 +264,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/pulsar/client/admin/ResourceQuotas.html" title="interface in org.apache.pulsar.client.admin"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/pulsar/client/admin/Tenants.html" title="interface in org.apache.pulsar.client.admin"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/pulsar/client/admin/Sink.html" title="interface in org.apache.pulsar.client.admin"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/pulsar/client/admin/Schemas.html" target="_top">Frames</a></li>
diff --git a/content/api/admin/org/apache/pulsar/client/admin/Sink.html b/content/api/admin/org/apache/pulsar/client/admin/Sink.html
new file mode 100644
index 0000000..e126b1a
--- /dev/null
+++ b/content/api/admin/org/apache/pulsar/client/admin/Sink.html
@@ -0,0 +1,635 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>Sink (Pulsar Admin Java API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Sink (Pulsar Admin Java API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract 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/pulsar/client/admin/Schemas.html" title="interface in org.apache.pulsar.client.admin"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/pulsar/client/admin/Source.html" title="interface in org.apache.pulsar.client.admin"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/pulsar/client/admin/Sink.html" target="_top">Frames</a></li>
+<li><a href="Sink.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>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&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.pulsar.client.admin</div>
+<h2 title="Interface Sink" class="title">Interface Sink</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">Sink</span></pre>
+<div class="block">Admin interface for Sink management.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== 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="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract 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>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Sink.html#createSink-SinkConfig-java.lang.String-">createSink</a></span>(SinkConfig&nbsp;sinkConfig,
+          String&nbsp;fileName)</code>
+<div class="block">Create a new sink.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Sink.html#createSinkWithUrl-SinkConfig-java.lang.String-">createSinkWithUrl</a></span>(SinkConfig&nbsp;sinkConfig,
+                 String&nbsp;pkgUrl)</code>
+<div class="block">
+ Create a new sink by providing url from which fun-pkg can be downloaded.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Sink.html#deleteSink-java.lang.String-java.lang.String-java.lang.String-">deleteSink</a></span>(String&nbsp;tenant,
+          String&nbsp;namespace,
+          String&nbsp;sink)</code>
+<div class="block">Delete an existing sink</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>List&lt;ConnectorDefinition&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Sink.html#getBuiltInSinks--">getBuiltInSinks</a></span>()</code>
+<div class="block">Fetches a list of supported Pulsar IO sinks currently running in cluster mode</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>Function.FunctionDetails</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Sink.html#getSink-java.lang.String-java.lang.String-java.lang.String-">getSink</a></span>(String&nbsp;tenant,
+       String&nbsp;namespace,
+       String&nbsp;sink)</code>
+<div class="block">Get the configuration for the specified sink.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>List&lt;String&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Sink.html#getSinks-java.lang.String-java.lang.String-">getSinks</a></span>(String&nbsp;tenant,
+        String&nbsp;namespace)</code>
+<div class="block">Get the list of sinks.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>FunctionStatusList</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Sink.html#getSinkStatus-java.lang.String-java.lang.String-java.lang.String-">getSinkStatus</a></span>(String&nbsp;tenant,
+             String&nbsp;namespace,
+             String&nbsp;sink)</code>
+<div class="block">Gets the current status of a sink.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>FunctionStatus</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Sink.html#getSinkStatus-java.lang.String-java.lang.String-java.lang.String-int-">getSinkStatus</a></span>(String&nbsp;tenant,
+             String&nbsp;namespace,
+             String&nbsp;sink,
+             int&nbsp;id)</code>
+<div class="block">Gets the current status of a sink instance.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Sink.html#restartSink-java.lang.String-java.lang.String-java.lang.String-">restartSink</a></span>(String&nbsp;tenant,
+           String&nbsp;namespace,
+           String&nbsp;sink)</code>
+<div class="block">Restart all sink instances</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Sink.html#restartSink-java.lang.String-java.lang.String-java.lang.String-int-">restartSink</a></span>(String&nbsp;tenant,
+           String&nbsp;namespace,
+           String&nbsp;sink,
+           int&nbsp;instanceId)</code>
+<div class="block">Restart sink instance</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Sink.html#stopSink-java.lang.String-java.lang.String-java.lang.String-">stopSink</a></span>(String&nbsp;tenant,
+        String&nbsp;namespace,
+        String&nbsp;sink)</code>
+<div class="block">Stop all sink instances</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Sink.html#stopSink-java.lang.String-java.lang.String-java.lang.String-int-">stopSink</a></span>(String&nbsp;tenant,
+        String&nbsp;namespace,
+        String&nbsp;sink,
+        int&nbsp;instanceId)</code>
+<div class="block">Stop sink instance</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Sink.html#updateSink-SinkConfig-java.lang.String-">updateSink</a></span>(SinkConfig&nbsp;sinkConfig,
+          String&nbsp;fileName)</code>
+<div class="block">Update the configuration for a sink.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Sink.html#updateSinkWithUrl-SinkConfig-java.lang.String-">updateSinkWithUrl</a></span>(SinkConfig&nbsp;sinkConfig,
+                 String&nbsp;pkgUrl)</code>
+<div class="block">Update the configuration for a sink.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getSinks-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSinks</h4>
+<pre>List&lt;String&gt;&nbsp;getSinks(String&nbsp;tenant,
+                      String&nbsp;namespace)
+               throws <a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></pre>
+<div class="block">Get the list of sinks.
+ <p>
+ Get the list of all the Pulsar Sinks.
+ <p>
+ Response Example:
+
+ <pre>
+ <code>["f1", "f2", "f3"]</code>
+ </pre></div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.NotAuthorizedException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException.NotAuthorizedException</a></code> - Don't have admin permission</dd>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></code> - Unexpected error</dd>
+</dl>
+</li>
+</ul>
+<a name="getSink-java.lang.String-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSink</h4>
+<pre>Function.FunctionDetails&nbsp;getSink(String&nbsp;tenant,
+                                 String&nbsp;namespace,
+                                 String&nbsp;sink)
+                          throws <a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></pre>
+<div class="block">Get the configuration for the specified sink.
+ <p>
+ Response Example:
+
+ <pre>
+ <code>{ serviceUrl : "http://my-broker.example.com:8080/" }</code>
+ </pre></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tenant</code> - Tenant name</dd>
+<dd><code>namespace</code> - Namespace name</dd>
+<dd><code>sink</code> - Sink name</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the sink configuration</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.NotAuthorizedException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException.NotAuthorizedException</a></code> - You don't have admin permission to get the configuration of the cluster</dd>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.NotFoundException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException.NotFoundException</a></code> - Cluster doesn't exist</dd>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></code> - Unexpected error</dd>
+</dl>
+</li>
+</ul>
+<a name="createSink-SinkConfig-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createSink</h4>
+<pre>void&nbsp;createSink(SinkConfig&nbsp;sinkConfig,
+                String&nbsp;fileName)
+         throws <a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></pre>
+<div class="block">Create a new sink.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sinkConfig</code> - the sink configuration object</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></code> - Unexpected error</dd>
+</dl>
+</li>
+</ul>
+<a name="createSinkWithUrl-SinkConfig-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createSinkWithUrl</h4>
+<pre>void&nbsp;createSinkWithUrl(SinkConfig&nbsp;sinkConfig,
+                       String&nbsp;pkgUrl)
+                throws <a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></pre>
+<div class="block"><pre>
+ Create a new sink by providing url from which fun-pkg can be downloaded. supported url: http/file
+ eg:
+ File: file:/dir/fileName.jar
+ Http: http://www.repo.com/fileName.jar
+ </pre></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sinkConfig</code> - the sink configuration object</dd>
+<dd><code>pkgUrl</code> - url from which pkg can be downloaded</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="updateSink-SinkConfig-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateSink</h4>
+<pre>void&nbsp;updateSink(SinkConfig&nbsp;sinkConfig,
+                String&nbsp;fileName)
+         throws <a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></pre>
+<div class="block">Update the configuration for a sink.
+ <p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sinkConfig</code> - the sink configuration object</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.NotAuthorizedException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException.NotAuthorizedException</a></code> - You don't have admin permission to create the cluster</dd>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.NotFoundException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException.NotFoundException</a></code> - Cluster doesn't exist</dd>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></code> - Unexpected error</dd>
+</dl>
+</li>
+</ul>
+<a name="updateSinkWithUrl-SinkConfig-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateSinkWithUrl</h4>
+<pre>void&nbsp;updateSinkWithUrl(SinkConfig&nbsp;sinkConfig,
+                       String&nbsp;pkgUrl)
+                throws <a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></pre>
+<div class="block">Update the configuration for a sink.
+ <pre>
+ Update a sink by providing url from which fun-pkg can be downloaded. supported url: http/file
+ eg:
+ File: file:/dir/fileName.jar
+ Http: http://www.repo.com/fileName.jar
+ </pre></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sinkConfig</code> - the sink configuration object</dd>
+<dd><code>pkgUrl</code> - url from which pkg can be downloaded</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.NotAuthorizedException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException.NotAuthorizedException</a></code> - You don't have admin permission to create the cluster</dd>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.NotFoundException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException.NotFoundException</a></code> - Cluster doesn't exist</dd>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></code> - Unexpected error</dd>
+</dl>
+</li>
+</ul>
+<a name="deleteSink-java.lang.String-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>deleteSink</h4>
+<pre>void&nbsp;deleteSink(String&nbsp;tenant,
+                String&nbsp;namespace,
+                String&nbsp;sink)
+         throws <a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></pre>
+<div class="block">Delete an existing sink
+ <p>
+ Delete a sink</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tenant</code> - Tenant name</dd>
+<dd><code>namespace</code> - Namespace name</dd>
+<dd><code>sink</code> - Sink name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.NotAuthorizedException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException.NotAuthorizedException</a></code> - You don't have admin permission</dd>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.NotFoundException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException.NotFoundException</a></code> - Cluster does not exist</dd>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.PreconditionFailedException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException.PreconditionFailedException</a></code> - Cluster is not empty</dd>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></code> - Unexpected error</dd>
+</dl>
+</li>
+</ul>
+<a name="getSinkStatus-java.lang.String-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSinkStatus</h4>
+<pre>FunctionStatusList&nbsp;getSinkStatus(String&nbsp;tenant,
+                                 String&nbsp;namespace,
+                                 String&nbsp;sink)
+                          throws <a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></pre>
+<div class="block">Gets the current status of a sink.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tenant</code> - Tenant name</dd>
+<dd><code>namespace</code> - Namespace name</dd>
+<dd><code>sink</code> - Sink name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></code> - Unexpected error</dd>
+</dl>
+</li>
+</ul>
+<a name="getSinkStatus-java.lang.String-java.lang.String-java.lang.String-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSinkStatus</h4>
+<pre>FunctionStatus&nbsp;getSinkStatus(String&nbsp;tenant,
+                             String&nbsp;namespace,
+                             String&nbsp;sink,
+                             int&nbsp;id)
+                      throws <a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></pre>
+<div class="block">Gets the current status of a sink instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tenant</code> - Tenant name</dd>
+<dd><code>namespace</code> - Namespace name</dd>
+<dd><code>sink</code> - Sink name</dd>
+<dd><code>id</code> - Sink instance-id</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="restartSink-java.lang.String-java.lang.String-java.lang.String-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>restartSink</h4>
+<pre>void&nbsp;restartSink(String&nbsp;tenant,
+                 String&nbsp;namespace,
+                 String&nbsp;sink,
+                 int&nbsp;instanceId)
+          throws <a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></pre>
+<div class="block">Restart sink instance</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tenant</code> - Tenant name</dd>
+<dd><code>namespace</code> - Namespace name</dd>
+<dd><code>sink</code> - Sink name</dd>
+<dd><code>instanceId</code> - Sink instanceId</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></code> - Unexpected error</dd>
+</dl>
+</li>
+</ul>
+<a name="restartSink-java.lang.String-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>restartSink</h4>
+<pre>void&nbsp;restartSink(String&nbsp;tenant,
+                 String&nbsp;namespace,
+                 String&nbsp;sink)
+          throws <a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></pre>
+<div class="block">Restart all sink instances</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tenant</code> - Tenant name</dd>
+<dd><code>namespace</code> - Namespace name</dd>
+<dd><code>sink</code> - Sink name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></code> - Unexpected error</dd>
+</dl>
+</li>
+</ul>
+<a name="stopSink-java.lang.String-java.lang.String-java.lang.String-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>stopSink</h4>
+<pre>void&nbsp;stopSink(String&nbsp;tenant,
+              String&nbsp;namespace,
+              String&nbsp;sink,
+              int&nbsp;instanceId)
+       throws <a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></pre>
+<div class="block">Stop sink instance</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tenant</code> - Tenant name</dd>
+<dd><code>namespace</code> - Namespace name</dd>
+<dd><code>sink</code> - Sink name</dd>
+<dd><code>instanceId</code> - Sink instanceId</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></code> - Unexpected error</dd>
+</dl>
+</li>
+</ul>
+<a name="stopSink-java.lang.String-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>stopSink</h4>
+<pre>void&nbsp;stopSink(String&nbsp;tenant,
+              String&nbsp;namespace,
+              String&nbsp;sink)
+       throws <a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></pre>
+<div class="block">Stop all sink instances</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tenant</code> - Tenant name</dd>
+<dd><code>namespace</code> - Namespace name</dd>
+<dd><code>sink</code> - Sink name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></code> - Unexpected error</dd>
+</dl>
+</li>
+</ul>
+<a name="getBuiltInSinks--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getBuiltInSinks</h4>
+<pre>List&lt;ConnectorDefinition&gt;&nbsp;getBuiltInSinks()
+                                   throws <a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></pre>
+<div class="block">Fetches a list of supported Pulsar IO sinks currently running in cluster mode</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></code> - Unexpected error</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/pulsar/client/admin/Schemas.html" title="interface in org.apache.pulsar.client.admin"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/pulsar/client/admin/Source.html" title="interface in org.apache.pulsar.client.admin"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/pulsar/client/admin/Sink.html" target="_top">Frames</a></li>
+<li><a href="Sink.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>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&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>
diff --git a/content/api/admin/org/apache/pulsar/client/admin/Source.html b/content/api/admin/org/apache/pulsar/client/admin/Source.html
new file mode 100644
index 0000000..edbf386
--- /dev/null
+++ b/content/api/admin/org/apache/pulsar/client/admin/Source.html
@@ -0,0 +1,635 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>Source (Pulsar Admin Java API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Source (Pulsar Admin Java API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract 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/pulsar/client/admin/Sink.html" title="interface in org.apache.pulsar.client.admin"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/pulsar/client/admin/Tenants.html" title="interface in org.apache.pulsar.client.admin"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/pulsar/client/admin/Source.html" target="_top">Frames</a></li>
+<li><a href="Source.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>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&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.pulsar.client.admin</div>
+<h2 title="Interface Source" class="title">Interface Source</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">Source</span></pre>
+<div class="block">Admin interface for Source management.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== 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="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract 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>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Source.html#createSource-SourceConfig-java.lang.String-">createSource</a></span>(SourceConfig&nbsp;sourceConfig,
+            String&nbsp;fileName)</code>
+<div class="block">Create a new source.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Source.html#createSourceWithUrl-SourceConfig-java.lang.String-">createSourceWithUrl</a></span>(SourceConfig&nbsp;sourceConfig,
+                   String&nbsp;pkgUrl)</code>
+<div class="block">
+ Create a new source by providing url from which fun-pkg can be downloaded.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Source.html#deleteSource-java.lang.String-java.lang.String-java.lang.String-">deleteSource</a></span>(String&nbsp;tenant,
+            String&nbsp;namespace,
+            String&nbsp;source)</code>
+<div class="block">Delete an existing source</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>List&lt;ConnectorDefinition&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Source.html#getBuiltInSources--">getBuiltInSources</a></span>()</code>
+<div class="block">Fetches a list of supported Pulsar IO sources currently running in cluster mode</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>Function.FunctionDetails</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Source.html#getSource-java.lang.String-java.lang.String-java.lang.String-">getSource</a></span>(String&nbsp;tenant,
+         String&nbsp;namespace,
+         String&nbsp;source)</code>
+<div class="block">Get the configuration for the specified source.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>List&lt;String&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Source.html#getSources-java.lang.String-java.lang.String-">getSources</a></span>(String&nbsp;tenant,
+          String&nbsp;namespace)</code>
+<div class="block">Get the list of sources.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>FunctionStatusList</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Source.html#getSourceStatus-java.lang.String-java.lang.String-java.lang.String-">getSourceStatus</a></span>(String&nbsp;tenant,
+               String&nbsp;namespace,
+               String&nbsp;source)</code>
+<div class="block">Gets the current status of a source.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>FunctionStatus</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Source.html#getSourceStatus-java.lang.String-java.lang.String-java.lang.String-int-">getSourceStatus</a></span>(String&nbsp;tenant,
+               String&nbsp;namespace,
+               String&nbsp;source,
+               int&nbsp;id)</code>
+<div class="block">Gets the current status of a source instance.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Source.html#restartSource-java.lang.String-java.lang.String-java.lang.String-">restartSource</a></span>(String&nbsp;tenant,
+             String&nbsp;namespace,
+             String&nbsp;source)</code>
+<div class="block">Restart all source instances</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Source.html#restartSource-java.lang.String-java.lang.String-java.lang.String-int-">restartSource</a></span>(String&nbsp;tenant,
+             String&nbsp;namespace,
+             String&nbsp;source,
+             int&nbsp;instanceId)</code>
+<div class="block">Restart source instance</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Source.html#stopSource-java.lang.String-java.lang.String-java.lang.String-">stopSource</a></span>(String&nbsp;tenant,
+          String&nbsp;namespace,
+          String&nbsp;source)</code>
+<div class="block">Stop all source instances</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Source.html#stopSource-java.lang.String-java.lang.String-java.lang.String-int-">stopSource</a></span>(String&nbsp;tenant,
+          String&nbsp;namespace,
+          String&nbsp;source,
+          int&nbsp;instanceId)</code>
+<div class="block">Stop source instance</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Source.html#updateSource-SourceConfig-java.lang.String-">updateSource</a></span>(SourceConfig&nbsp;sourceConfig,
+            String&nbsp;fileName)</code>
+<div class="block">Update the configuration for a source.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/client/admin/Source.html#updateSourceWithUrl-SourceConfig-java.lang.String-">updateSourceWithUrl</a></span>(SourceConfig&nbsp;sourceConfig,
+                   String&nbsp;pkgUrl)</code>
+<div class="block">Update the configuration for a source.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getSources-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSources</h4>
+<pre>List&lt;String&gt;&nbsp;getSources(String&nbsp;tenant,
+                        String&nbsp;namespace)
+                 throws <a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></pre>
+<div class="block">Get the list of sources.
+ <p>
+ Get the list of all the Pulsar Sources.
+ <p>
+ Response Example:
+
+ <pre>
+ <code>["f1", "f2", "f3"]</code>
+ </pre></div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.NotAuthorizedException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException.NotAuthorizedException</a></code> - Don't have admin permission</dd>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></code> - Unexpected error</dd>
+</dl>
+</li>
+</ul>
+<a name="getSource-java.lang.String-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSource</h4>
+<pre>Function.FunctionDetails&nbsp;getSource(String&nbsp;tenant,
+                                   String&nbsp;namespace,
+                                   String&nbsp;source)
+                            throws <a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></pre>
+<div class="block">Get the configuration for the specified source.
+ <p>
+ Response Example:
+
+ <pre>
+ <code>{ serviceUrl : "http://my-broker.example.com:8080/" }</code>
+ </pre></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tenant</code> - Tenant name</dd>
+<dd><code>namespace</code> - Namespace name</dd>
+<dd><code>source</code> - Source name</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the source configuration</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.NotAuthorizedException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException.NotAuthorizedException</a></code> - You don't have admin permission to get the configuration of the cluster</dd>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.NotFoundException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException.NotFoundException</a></code> - Cluster doesn't exist</dd>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></code> - Unexpected error</dd>
+</dl>
+</li>
+</ul>
+<a name="createSource-SourceConfig-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createSource</h4>
+<pre>void&nbsp;createSource(SourceConfig&nbsp;sourceConfig,
+                  String&nbsp;fileName)
+           throws <a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></pre>
+<div class="block">Create a new source.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sourceConfig</code> - the source configuration object</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></code> - Unexpected error</dd>
+</dl>
+</li>
+</ul>
+<a name="createSourceWithUrl-SourceConfig-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createSourceWithUrl</h4>
+<pre>void&nbsp;createSourceWithUrl(SourceConfig&nbsp;sourceConfig,
+                         String&nbsp;pkgUrl)
+                  throws <a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></pre>
+<div class="block"><pre>
+ Create a new source by providing url from which fun-pkg can be downloaded. supported url: http/file
+ eg:
+ File: file:/dir/fileName.jar
+ Http: http://www.repo.com/fileName.jar
+ </pre></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sourceConfig</code> - the source configuration object</dd>
+<dd><code>pkgUrl</code> - url from which pkg can be downloaded</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="updateSource-SourceConfig-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateSource</h4>
+<pre>void&nbsp;updateSource(SourceConfig&nbsp;sourceConfig,
+                  String&nbsp;fileName)
+           throws <a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></pre>
+<div class="block">Update the configuration for a source.
+ <p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sourceConfig</code> - the source configuration object</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.NotAuthorizedException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException.NotAuthorizedException</a></code> - You don't have admin permission to create the cluster</dd>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.NotFoundException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException.NotFoundException</a></code> - Cluster doesn't exist</dd>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></code> - Unexpected error</dd>
+</dl>
+</li>
+</ul>
+<a name="updateSourceWithUrl-SourceConfig-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateSourceWithUrl</h4>
+<pre>void&nbsp;updateSourceWithUrl(SourceConfig&nbsp;sourceConfig,
+                         String&nbsp;pkgUrl)
+                  throws <a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></pre>
+<div class="block">Update the configuration for a source.
+ <pre>
+ Update a source by providing url from which fun-pkg can be downloaded. supported url: http/file
+ eg:
+ File: file:/dir/fileName.jar
+ Http: http://www.repo.com/fileName.jar
+ </pre></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sourceConfig</code> - the source configuration object</dd>
+<dd><code>pkgUrl</code> - url from which pkg can be downloaded</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.NotAuthorizedException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException.NotAuthorizedException</a></code> - You don't have admin permission to create the cluster</dd>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.NotFoundException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException.NotFoundException</a></code> - Cluster doesn't exist</dd>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></code> - Unexpected error</dd>
+</dl>
+</li>
+</ul>
+<a name="deleteSource-java.lang.String-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>deleteSource</h4>
+<pre>void&nbsp;deleteSource(String&nbsp;tenant,
+                  String&nbsp;namespace,
+                  String&nbsp;source)
+           throws <a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></pre>
+<div class="block">Delete an existing source
+ <p>
+ Delete a source</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tenant</code> - Tenant name</dd>
+<dd><code>namespace</code> - Namespace name</dd>
+<dd><code>source</code> - Source name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.NotAuthorizedException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException.NotAuthorizedException</a></code> - You don't have admin permission</dd>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.NotFoundException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException.NotFoundException</a></code> - Cluster does not exist</dd>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.PreconditionFailedException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException.PreconditionFailedException</a></code> - Cluster is not empty</dd>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></code> - Unexpected error</dd>
+</dl>
+</li>
+</ul>
+<a name="getSourceStatus-java.lang.String-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSourceStatus</h4>
+<pre>FunctionStatusList&nbsp;getSourceStatus(String&nbsp;tenant,
+                                   String&nbsp;namespace,
+                                   String&nbsp;source)
+                            throws <a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></pre>
+<div class="block">Gets the current status of a source.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tenant</code> - Tenant name</dd>
+<dd><code>namespace</code> - Namespace name</dd>
+<dd><code>source</code> - Source name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></code> - Unexpected error</dd>
+</dl>
+</li>
+</ul>
+<a name="getSourceStatus-java.lang.String-java.lang.String-java.lang.String-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSourceStatus</h4>
+<pre>FunctionStatus&nbsp;getSourceStatus(String&nbsp;tenant,
+                               String&nbsp;namespace,
+                               String&nbsp;source,
+                               int&nbsp;id)
+                        throws <a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></pre>
+<div class="block">Gets the current status of a source instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tenant</code> - Tenant name</dd>
+<dd><code>namespace</code> - Namespace name</dd>
+<dd><code>source</code> - Source name</dd>
+<dd><code>id</code> - Source instance-id</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="restartSource-java.lang.String-java.lang.String-java.lang.String-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>restartSource</h4>
+<pre>void&nbsp;restartSource(String&nbsp;tenant,
+                   String&nbsp;namespace,
+                   String&nbsp;source,
+                   int&nbsp;instanceId)
+            throws <a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></pre>
+<div class="block">Restart source instance</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tenant</code> - Tenant name</dd>
+<dd><code>namespace</code> - Namespace name</dd>
+<dd><code>source</code> - Source name</dd>
+<dd><code>instanceId</code> - Source instanceId</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></code> - Unexpected error</dd>
+</dl>
+</li>
+</ul>
+<a name="restartSource-java.lang.String-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>restartSource</h4>
+<pre>void&nbsp;restartSource(String&nbsp;tenant,
+                   String&nbsp;namespace,
+                   String&nbsp;source)
+            throws <a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></pre>
+<div class="block">Restart all source instances</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tenant</code> - Tenant name</dd>
+<dd><code>namespace</code> - Namespace name</dd>
+<dd><code>source</code> - Source name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></code> - Unexpected error</dd>
+</dl>
+</li>
+</ul>
+<a name="stopSource-java.lang.String-java.lang.String-java.lang.String-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>stopSource</h4>
+<pre>void&nbsp;stopSource(String&nbsp;tenant,
+                String&nbsp;namespace,
+                String&nbsp;source,
+                int&nbsp;instanceId)
+         throws <a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></pre>
+<div class="block">Stop source instance</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tenant</code> - Tenant name</dd>
+<dd><code>namespace</code> - Namespace name</dd>
+<dd><code>source</code> - Source name</dd>
+<dd><code>instanceId</code> - Source instanceId</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></code> - Unexpected error</dd>
+</dl>
+</li>
+</ul>
+<a name="stopSource-java.lang.String-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>stopSource</h4>
+<pre>void&nbsp;stopSource(String&nbsp;tenant,
+                String&nbsp;namespace,
+                String&nbsp;source)
+         throws <a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></pre>
+<div class="block">Stop all source instances</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tenant</code> - Tenant name</dd>
+<dd><code>namespace</code> - Namespace name</dd>
+<dd><code>source</code> - Source name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></code> - Unexpected error</dd>
+</dl>
+</li>
+</ul>
+<a name="getBuiltInSources--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getBuiltInSources</h4>
+<pre>List&lt;ConnectorDefinition&gt;&nbsp;getBuiltInSources()
+                                     throws <a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></pre>
+<div class="block">Fetches a list of supported Pulsar IO sources currently running in cluster mode</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminException.html" title="class in org.apache.pulsar.client.admin">PulsarAdminException</a></code> - Unexpected error</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/pulsar/client/admin/Sink.html" title="interface in org.apache.pulsar.client.admin"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/pulsar/client/admin/Tenants.html" title="interface in org.apache.pulsar.client.admin"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/pulsar/client/admin/Source.html" target="_top">Frames</a></li>
+<li><a href="Source.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>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&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>
diff --git a/content/api/admin/org/apache/pulsar/client/admin/Tenants.html b/content/api/admin/org/apache/pulsar/client/admin/Tenants.html
index 0ac6be0..db4d4a9 100644
--- a/content/api/admin/org/apache/pulsar/client/admin/Tenants.html
+++ b/content/api/admin/org/apache/pulsar/client/admin/Tenants.html
@@ -47,7 +47,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/pulsar/client/admin/Schemas.html" title="interface in org.apache.pulsar.client.admin"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/pulsar/client/admin/Source.html" title="interface in org.apache.pulsar.client.admin"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/pulsar/client/admin/Topics.html" title="interface in org.apache.pulsar.client.admin"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -309,7 +309,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/pulsar/client/admin/Schemas.html" title="interface in org.apache.pulsar.client.admin"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/pulsar/client/admin/Source.html" title="interface in org.apache.pulsar.client.admin"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/pulsar/client/admin/Topics.html" title="interface in org.apache.pulsar.client.admin"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
diff --git a/content/api/admin/org/apache/pulsar/client/admin/package-frame.html b/content/api/admin/org/apache/pulsar/client/admin/package-frame.html
index 041693e..00a17f6 100644
--- a/content/api/admin/org/apache/pulsar/client/admin/package-frame.html
+++ b/content/api/admin/org/apache/pulsar/client/admin/package-frame.html
@@ -25,6 +25,8 @@
 <li><a href="PulsarAdminBuilder.html" title="interface in org.apache.pulsar.client.admin" target="classFrame"><span class="interfaceName">PulsarAdminBuilder</span></a></li>
 <li><a href="ResourceQuotas.html" title="interface in org.apache.pulsar.client.admin" target="classFrame"><span class="interfaceName">ResourceQuotas</span></a></li>
 <li><a href="Schemas.html" title="interface in org.apache.pulsar.client.admin" target="classFrame"><span class="interfaceName">Schemas</span></a></li>
+<li><a href="Sink.html" title="interface in org.apache.pulsar.client.admin" target="classFrame"><span class="interfaceName">Sink</span></a></li>
+<li><a href="Source.html" title="interface in org.apache.pulsar.client.admin" target="classFrame"><span class="interfaceName">Source</span></a></li>
 <li><a href="Tenants.html" title="interface in org.apache.pulsar.client.admin" target="classFrame"><span class="interfaceName">Tenants</span></a></li>
 <li><a href="Topics.html" title="interface in org.apache.pulsar.client.admin" target="classFrame"><span class="interfaceName">Topics</span></a></li>
 <li><a href="Worker.html" title="interface in org.apache.pulsar.client.admin" target="classFrame"><span class="interfaceName">Worker</span></a></li>
diff --git a/content/api/admin/org/apache/pulsar/client/admin/package-summary.html b/content/api/admin/org/apache/pulsar/client/admin/package-summary.html
index dab1b8d..829f495 100644
--- a/content/api/admin/org/apache/pulsar/client/admin/package-summary.html
+++ b/content/api/admin/org/apache/pulsar/client/admin/package-summary.html
@@ -155,6 +155,18 @@
 </td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/pulsar/client/admin/Sink.html" title="interface in org.apache.pulsar.client.admin">Sink</a></td>
+<td class="colLast">
+<div class="block">Admin interface for Sink management.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/pulsar/client/admin/Source.html" title="interface in org.apache.pulsar.client.admin">Source</a></td>
+<td class="colLast">
+<div class="block">Admin interface for Source management.</div>
+</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/pulsar/client/admin/Tenants.html" title="interface in org.apache.pulsar.client.admin">Tenants</a></td>
 <td class="colLast">
 <div class="block">Admin interface for tenants management</div>
diff --git a/content/api/admin/org/apache/pulsar/client/admin/package-tree.html b/content/api/admin/org/apache/pulsar/client/admin/package-tree.html
index a4bd831..00607af 100644
--- a/content/api/admin/org/apache/pulsar/client/admin/package-tree.html
+++ b/content/api/admin/org/apache/pulsar/client/admin/package-tree.html
@@ -123,6 +123,8 @@
 <li type="circle">org.apache.pulsar.client.admin.<a href="../../../../../org/apache/pulsar/client/admin/PulsarAdminBuilder.html" title="interface in org.apache.pulsar.client.admin"><span class="typeNameLink">PulsarAdminBuilder</span></a></li>
 <li type="circle">org.apache.pulsar.client.admin.<a href="../../../../../org/apache/pulsar/client/admin/ResourceQuotas.html" title="interface in org.apache.pulsar.client.admin"><span class="typeNameLink">ResourceQuotas</span></a></li>
 <li type="circle">org.apache.pulsar.client.admin.<a href="../../../../../org/apache/pulsar/client/admin/Schemas.html" title="interface in org.apache.pulsar.client.admin"><span class="typeNameLink">Schemas</span></a></li>
+<li type="circle">org.apache.pulsar.client.admin.<a href="../../../../../org/apache/pulsar/client/admin/Sink.html" title="interface in org.apache.pulsar.client.admin"><span class="typeNameLink">Sink</span></a></li>
+<li type="circle">org.apache.pulsar.client.admin.<a href="../../../../../org/apache/pulsar/client/admin/Source.html" title="interface in org.apache.pulsar.client.admin"><span class="typeNameLink">Source</span></a></li>
 <li type="circle">org.apache.pulsar.client.admin.<a href="../../../../../org/apache/pulsar/client/admin/Tenants.html" title="interface in org.apache.pulsar.client.admin"><span class="typeNameLink">Tenants</span></a></li>
 <li type="circle">org.apache.pulsar.client.admin.<a href="../../../../../org/apache/pulsar/client/admin/Topics.html" title="interface in org.apache.pulsar.client.admin"><span class="typeNameLink">Topics</span></a>
 <ul>
diff --git a/content/api/admin/overview-tree.html b/content/api/admin/overview-tree.html
index ea0f7df..081d592 100644
--- a/content/api/admin/overview-tree.html
+++ b/content/api/admin/overview-tree.html
@@ -192,6 +192,8 @@
 <li type="circle">org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/PulsarAdminBuilder.html" title="interface in org.apache.pulsar.client.admin"><span class="typeNameLink">PulsarAdminBuilder</span></a></li>
 <li type="circle">org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/ResourceQuotas.html" title="interface in org.apache.pulsar.client.admin"><span class="typeNameLink">ResourceQuotas</span></a></li>
 <li type="circle">org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Schemas.html" title="interface in org.apache.pulsar.client.admin"><span class="typeNameLink">Schemas</span></a></li>
+<li type="circle">org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Sink.html" title="interface in org.apache.pulsar.client.admin"><span class="typeNameLink">Sink</span></a></li>
+<li type="circle">org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Source.html" title="interface in org.apache.pulsar.client.admin"><span class="typeNameLink">Source</span></a></li>
 <li type="circle">org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Tenants.html" title="interface in org.apache.pulsar.client.admin"><span class="typeNameLink">Tenants</span></a></li>
 <li type="circle">org.apache.pulsar.client.admin.<a href="org/apache/pulsar/client/admin/Topics.html" title="interface in org.apache.pulsar.client.admin"><span class="typeNameLink">Topics</span></a>
 <ul>
diff --git a/content/docs/en/next/io-overview.html b/content/docs/en/next/io-overview.html
index 3826dbb..4c5d28d 100644
--- a/content/docs/en/next/io-overview.html
+++ b/content/docs/en/next/io-overview.html
@@ -75,7 +75,7 @@
 <tr><td><a href="https://kafka.apache.org">Kafka sink</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/kafka/src/main/java/org/apache/pulsar/io/kafka/KafkaStringSink.java"><code>org.apache.pulsar.io.kafka.KafkaSink</code></a></td><td><a href="/docs/en/next/io-kafka#sink">Documentation</a></td></tr>
 <tr><td><a href="https://aws.amazon.com/kinesis/">Kinesis sink</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/kinesis/src/main/java/org/apache/pulsar/io/kinesis/KinesisSink.java"><code>org.apache.pulsar.io.kinesis.KinesisSink</code></a></td><td><a href="/docs/en/next/io-kinesis#sink">Documentation</a></td></tr>
 <tr><td><a href="https://www.rabbitmq.com">RabbitMQ source</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/rabbitmq/src/main/java/org/apache/pulsar/io/rabbitmq/RabbitMQSource.java"><code>org.apache.pulsar.io.rabbitmq.RabbitMQSource</code></a></td><td><a href="/docs/en/next/io-rabbitmq#sink">Documentation</a></td></tr>
-<tr><td><a href="https://developer.twitter.com/en/docs">Twitter Firehose source</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/twitter/src/main/java/org/apache/pulsar/io/twitter/TwitterFireHose.java">org.apache.pulsar.io.twitter.TwitterFireHose</a></td><td><a href="/docs/en/next/io-twitter#source">Documentation</a></td></tr>
+<tr><td><a href="https://developer.twitter.com/en/docs">Twitter Firehose source</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/twitter/src/main/java/org/apache/pulsar/io/twitter/TwitterFireHose.java"><code>org.apache.pulsar.io.twitter.TwitterFireHose</code></a></td><td><a href="/docs/en/next/io-twitter#source">Documentation</a></td></tr>
 </tbody>
 </table>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/functions-metrics"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/next/io-quickstart"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#sources-and-sinks">Sources and sinks</a></li><li><a href="#working-with-connectors">Working with co [...]
diff --git a/content/docs/en/next/io-overview/index.html b/content/docs/en/next/io-overview/index.html
index 3826dbb..4c5d28d 100644
--- a/content/docs/en/next/io-overview/index.html
+++ b/content/docs/en/next/io-overview/index.html
@@ -75,7 +75,7 @@
 <tr><td><a href="https://kafka.apache.org">Kafka sink</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/kafka/src/main/java/org/apache/pulsar/io/kafka/KafkaStringSink.java"><code>org.apache.pulsar.io.kafka.KafkaSink</code></a></td><td><a href="/docs/en/next/io-kafka#sink">Documentation</a></td></tr>
 <tr><td><a href="https://aws.amazon.com/kinesis/">Kinesis sink</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/kinesis/src/main/java/org/apache/pulsar/io/kinesis/KinesisSink.java"><code>org.apache.pulsar.io.kinesis.KinesisSink</code></a></td><td><a href="/docs/en/next/io-kinesis#sink">Documentation</a></td></tr>
 <tr><td><a href="https://www.rabbitmq.com">RabbitMQ source</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/rabbitmq/src/main/java/org/apache/pulsar/io/rabbitmq/RabbitMQSource.java"><code>org.apache.pulsar.io.rabbitmq.RabbitMQSource</code></a></td><td><a href="/docs/en/next/io-rabbitmq#sink">Documentation</a></td></tr>
-<tr><td><a href="https://developer.twitter.com/en/docs">Twitter Firehose source</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/twitter/src/main/java/org/apache/pulsar/io/twitter/TwitterFireHose.java">org.apache.pulsar.io.twitter.TwitterFireHose</a></td><td><a href="/docs/en/next/io-twitter#source">Documentation</a></td></tr>
+<tr><td><a href="https://developer.twitter.com/en/docs">Twitter Firehose source</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/twitter/src/main/java/org/apache/pulsar/io/twitter/TwitterFireHose.java"><code>org.apache.pulsar.io.twitter.TwitterFireHose</code></a></td><td><a href="/docs/en/next/io-twitter#source">Documentation</a></td></tr>
 </tbody>
 </table>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/functions-metrics"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/en/next/io-quickstart"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#sources-and-sinks">Sources and sinks</a></li><li><a href="#working-with-connectors">Working with co [...]
diff --git a/content/docs/en/next/security-tls-transport.html b/content/docs/en/next/security-tls-transport.html
index 214598b..44f3f23 100644
--- a/content/docs/en/next/security-tls-transport.html
+++ b/content/docs/en/next/security-tls-transport.html
@@ -95,7 +95,8 @@ $ chmod 444 certs/ca.cert.pem
 <p>Sometimes it is not possible or makes no sense to match the hostname,
 such as when the brokers are created with random hostnames, or you
 plan to connect to the hosts via their IP. In this case, the client
-should be configured to disable TLS hostname verification.</p>
+should be configured to disable TLS hostname verification. For more
+details, see <a href="#hostname-verification">the host verification section in client configuration</a>.</p>
 </blockquote>
 <p>First generate the key.</p>
 <pre><code class="hljs css language-bash">$ openssl genrsa -out broker.key.pem 2048
@@ -141,6 +142,11 @@ as well as the default values for those parameters, can be found in <a href="/do
 <h2><a class="anchor" aria-hidden="true" id="client-configuration"></a><a href="#client-configuration" 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 [...]
 <p>When TLS transport encryption is enabled, you need to configure the client to use <code>https://</code> and port 8443 for the web service URL, and <code>pulsar+ssl://</code> and port 6651 for the broker service URL.</p>
 <p>As the server certificate you generated above doesn't belong to any of the default trust chains, you also need to either specify the path the <strong>trust cert</strong> (recommended), or tell the client to allow untrusted server certs.</p>
+<h4><a class="anchor" aria-hidden="true" id="hostname-verification"></a><a href="#hostname-verification" 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 [...]
+<p>Hostname verification is a TLS security feature whereby a client can refuse to connect to a server if the &quot;CommonName&quot; does not match the hostname to which it is connecting. By default, Pulsar clients disable hostname verification, as it requires that each broker has a DNS record and a unique cert.</p>
+<p>Moreover, as the administrator has full control of the certificate authority, it is unlikely that a bad actor would be able to pull off a man-in-the-middle attack. &quot;allowInsecureConnection&quot; allows the client to connect to servers whose cert has not been signed by an approved CA. The client disables it by default, and should always be disabled in production environments. As long as &quot;allowInsecureConnection&quot; is disabled, a man-in-the-middle attack would require that  [...]
+<p>One scenario where you may want to enable hostname verification is where you have multiple proxy nodes behind a VIP, and the VIP has a DNS record, for example, pulsar.mycompany.com. In this case, you can generate a TLS cert with pulsar.mycompany.com as the &quot;CommonName,&quot; and then enable hostname verification on the client.</p>
+<p>The examples below show hostname verification being disabled for the Java client, though you can be omit this as the client disables it by default. C++/python clients do now allow this to be configured at the moment.</p>
 <h3><a class="anchor" aria-hidden="true" id="cli-tools"></a><a href="#cli-tools" 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.6 [...]
 <p><a href="/docs/en/next/reference-cli-tools">Command-line tools</a> like <a href="reference-cli-tools#pulsar-admin"><code>pulsar-admin</code></a>, <a href="reference-cli-tools#pulsar-perf"><code>pulsar-perf</code></a>, and <a href="reference-cli-tools#pulsar-client"><code>pulsar-client</code></a> use the <code>conf/client.conf</code> config file in a Pulsar installation.</p>
 <p>You'll need to add the following parameters to that file to use TLS transport with Pulsar's CLI tools:</p>
@@ -149,6 +155,7 @@ as well as the default values for those parameters, can be found in <a href="/do
 <span class="hljs-attr">useTls</span>=<span class="hljs-string">true</span>
 <span class="hljs-attr">tlsAllowInsecureConnection</span>=<span class="hljs-string">false</span>
 <span class="hljs-attr">tlsTrustCertsFilePath</span>=<span class="hljs-string">/path/to/ca.cert.pem</span>
+<span class="hljs-attr">tlsEnableHostnameVerification</span>=<span class="hljs-string">false</span>
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="java-client"></a><a href="#java-client" 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 [...]
 <pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> org.apache.pulsar.client.api.PulsarClient;
@@ -157,6 +164,8 @@ PulsarClient client = PulsarClient.builder()
     .serviceUrl(<span class="hljs-string">"pulsar+ssl://broker.example.com:6651/"</span>)
     .enableTls(<span class="hljs-keyword">true</span>)
     .tlsTrustCertsFilePath(<span class="hljs-string">"/path/to/ca.cert.pem"</span>)
+    .enableTlsHostnameVerification(<span class="hljs-keyword">false</span>) <span class="hljs-comment">// false by default, in any case</span>
+    .allowTlsInsecureConnection(<span class="hljs-keyword">false</span>) <span class="hljs-comment">// false by default, in any case</span>
     .build();
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="python-client"></a><a href="#python-client" 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-.8 [...]
@@ -164,7 +173,7 @@ PulsarClient client = PulsarClient.builder()
 
 client = Client(<span class="hljs-string">"pulsar+ssl://broker.example.com:6651/"</span>,
                 tls_trust_certs_file_path=<span class="hljs-string">"/path/to/ca.cert.pem"</span>,
-                tls_allow_insecure_connection=<span class="hljs-keyword">False</span>)
+                tls_allow_insecure_connection=<span class="hljs-keyword">False</span>) // defaults to false <span class="hljs-keyword">from</span> v2<span class="hljs-number">.2</span><span class="hljs-number">.0</span> onwards
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="c-client"></a><a href="#c-client" 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  [...]
 <pre><code class="hljs css language-c++"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;pulsar/Client.h&gt;</span></span>
@@ -172,7 +181,7 @@ client = Client(<span class="hljs-string">"pulsar+ssl://broker.example.com:6651/
 pulsar::ClientConfiguration config;
 config.setUseTls(<span class="hljs-literal">true</span>);
 config.setTlsTrustCertsFilePath(<span class="hljs-string">"/path/to/ca.cert.pem"</span>);
-config.setTlsAllowInsecureConnection(<span class="hljs-literal">false</span>);
+config.setTlsAllowInsecureConnection(<span class="hljs-literal">false</span>); <span class="hljs-comment">// defaults to false from v2.2.0 onwards</span>
 
 pulsar::<span class="hljs-function">Client <span class="hljs-title">client</span><span class="hljs-params">(<span class="hljs-string">"pulsar+ssl://broker.example.com:6651/"</span>, config)</span></span>;
 </code></pre>
diff --git a/content/docs/en/next/security-tls-transport/index.html b/content/docs/en/next/security-tls-transport/index.html
index 214598b..44f3f23 100644
--- a/content/docs/en/next/security-tls-transport/index.html
+++ b/content/docs/en/next/security-tls-transport/index.html
@@ -95,7 +95,8 @@ $ chmod 444 certs/ca.cert.pem
 <p>Sometimes it is not possible or makes no sense to match the hostname,
 such as when the brokers are created with random hostnames, or you
 plan to connect to the hosts via their IP. In this case, the client
-should be configured to disable TLS hostname verification.</p>
+should be configured to disable TLS hostname verification. For more
+details, see <a href="#hostname-verification">the host verification section in client configuration</a>.</p>
 </blockquote>
 <p>First generate the key.</p>
 <pre><code class="hljs css language-bash">$ openssl genrsa -out broker.key.pem 2048
@@ -141,6 +142,11 @@ as well as the default values for those parameters, can be found in <a href="/do
 <h2><a class="anchor" aria-hidden="true" id="client-configuration"></a><a href="#client-configuration" 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 [...]
 <p>When TLS transport encryption is enabled, you need to configure the client to use <code>https://</code> and port 8443 for the web service URL, and <code>pulsar+ssl://</code> and port 6651 for the broker service URL.</p>
 <p>As the server certificate you generated above doesn't belong to any of the default trust chains, you also need to either specify the path the <strong>trust cert</strong> (recommended), or tell the client to allow untrusted server certs.</p>
+<h4><a class="anchor" aria-hidden="true" id="hostname-verification"></a><a href="#hostname-verification" 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 [...]
+<p>Hostname verification is a TLS security feature whereby a client can refuse to connect to a server if the &quot;CommonName&quot; does not match the hostname to which it is connecting. By default, Pulsar clients disable hostname verification, as it requires that each broker has a DNS record and a unique cert.</p>
+<p>Moreover, as the administrator has full control of the certificate authority, it is unlikely that a bad actor would be able to pull off a man-in-the-middle attack. &quot;allowInsecureConnection&quot; allows the client to connect to servers whose cert has not been signed by an approved CA. The client disables it by default, and should always be disabled in production environments. As long as &quot;allowInsecureConnection&quot; is disabled, a man-in-the-middle attack would require that  [...]
+<p>One scenario where you may want to enable hostname verification is where you have multiple proxy nodes behind a VIP, and the VIP has a DNS record, for example, pulsar.mycompany.com. In this case, you can generate a TLS cert with pulsar.mycompany.com as the &quot;CommonName,&quot; and then enable hostname verification on the client.</p>
+<p>The examples below show hostname verification being disabled for the Java client, though you can be omit this as the client disables it by default. C++/python clients do now allow this to be configured at the moment.</p>
 <h3><a class="anchor" aria-hidden="true" id="cli-tools"></a><a href="#cli-tools" 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.6 [...]
 <p><a href="/docs/en/next/reference-cli-tools">Command-line tools</a> like <a href="reference-cli-tools#pulsar-admin"><code>pulsar-admin</code></a>, <a href="reference-cli-tools#pulsar-perf"><code>pulsar-perf</code></a>, and <a href="reference-cli-tools#pulsar-client"><code>pulsar-client</code></a> use the <code>conf/client.conf</code> config file in a Pulsar installation.</p>
 <p>You'll need to add the following parameters to that file to use TLS transport with Pulsar's CLI tools:</p>
@@ -149,6 +155,7 @@ as well as the default values for those parameters, can be found in <a href="/do
 <span class="hljs-attr">useTls</span>=<span class="hljs-string">true</span>
 <span class="hljs-attr">tlsAllowInsecureConnection</span>=<span class="hljs-string">false</span>
 <span class="hljs-attr">tlsTrustCertsFilePath</span>=<span class="hljs-string">/path/to/ca.cert.pem</span>
+<span class="hljs-attr">tlsEnableHostnameVerification</span>=<span class="hljs-string">false</span>
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="java-client"></a><a href="#java-client" 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 [...]
 <pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> org.apache.pulsar.client.api.PulsarClient;
@@ -157,6 +164,8 @@ PulsarClient client = PulsarClient.builder()
     .serviceUrl(<span class="hljs-string">"pulsar+ssl://broker.example.com:6651/"</span>)
     .enableTls(<span class="hljs-keyword">true</span>)
     .tlsTrustCertsFilePath(<span class="hljs-string">"/path/to/ca.cert.pem"</span>)
+    .enableTlsHostnameVerification(<span class="hljs-keyword">false</span>) <span class="hljs-comment">// false by default, in any case</span>
+    .allowTlsInsecureConnection(<span class="hljs-keyword">false</span>) <span class="hljs-comment">// false by default, in any case</span>
     .build();
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="python-client"></a><a href="#python-client" 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-.8 [...]
@@ -164,7 +173,7 @@ PulsarClient client = PulsarClient.builder()
 
 client = Client(<span class="hljs-string">"pulsar+ssl://broker.example.com:6651/"</span>,
                 tls_trust_certs_file_path=<span class="hljs-string">"/path/to/ca.cert.pem"</span>,
-                tls_allow_insecure_connection=<span class="hljs-keyword">False</span>)
+                tls_allow_insecure_connection=<span class="hljs-keyword">False</span>) // defaults to false <span class="hljs-keyword">from</span> v2<span class="hljs-number">.2</span><span class="hljs-number">.0</span> onwards
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="c-client"></a><a href="#c-client" 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  [...]
 <pre><code class="hljs css language-c++"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;pulsar/Client.h&gt;</span></span>
@@ -172,7 +181,7 @@ client = Client(<span class="hljs-string">"pulsar+ssl://broker.example.com:6651/
 pulsar::ClientConfiguration config;
 config.setUseTls(<span class="hljs-literal">true</span>);
 config.setTlsTrustCertsFilePath(<span class="hljs-string">"/path/to/ca.cert.pem"</span>);
-config.setTlsAllowInsecureConnection(<span class="hljs-literal">false</span>);
+config.setTlsAllowInsecureConnection(<span class="hljs-literal">false</span>); <span class="hljs-comment">// defaults to false from v2.2.0 onwards</span>
 
 pulsar::<span class="hljs-function">Client <span class="hljs-title">client</span><span class="hljs-params">(<span class="hljs-string">"pulsar+ssl://broker.example.com:6651/"</span>, config)</span></span>;
 </code></pre>
diff --git a/content/docs/fr/next/io-overview.html b/content/docs/fr/next/io-overview.html
index 5ce2e0d..d77c645 100644
--- a/content/docs/fr/next/io-overview.html
+++ b/content/docs/fr/next/io-overview.html
@@ -75,7 +75,7 @@
 <tr><td><a href="https://kafka.apache.org">Kafka sink</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/kafka/src/main/java/org/apache/pulsar/io/kafka/KafkaStringSink.java"><code>org.apache.pulsar.io.kafka.KafkaSink</code></a></td><td><a href="/docs/fr/next/io-kafka#sink">Documentation</a></td></tr>
 <tr><td><a href="https://aws.amazon.com/kinesis/">Kinesis sink</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/kinesis/src/main/java/org/apache/pulsar/io/kinesis/KinesisSink.java"><code>org.apache.pulsar.io.kinesis.KinesisSink</code></a></td><td><a href="/docs/fr/next/io-kinesis#sink">Documentation</a></td></tr>
 <tr><td><a href="https://www.rabbitmq.com">RabbitMQ source</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/rabbitmq/src/main/java/org/apache/pulsar/io/rabbitmq/RabbitMQSource.java"><code>org.apache.pulsar.io.rabbitmq.RabbitMQSource</code></a></td><td><a href="/docs/fr/next/io-rabbitmq#sink">Documentation</a></td></tr>
-<tr><td><a href="https://developer.twitter.com/en/docs">Twitter Firehose source</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/twitter/src/main/java/org/apache/pulsar/io/twitter/TwitterFireHose.java">org.apache.pulsar.io.twitter.TwitterFireHose</a></td><td><a href="/docs/fr/next/io-twitter#source">Documentation</a></td></tr>
+<tr><td><a href="https://developer.twitter.com/en/docs">Twitter Firehose source</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/twitter/src/main/java/org/apache/pulsar/io/twitter/TwitterFireHose.java"><code>org.apache.pulsar.io.twitter.TwitterFireHose</code></a></td><td><a href="/docs/fr/next/io-twitter#source">Documentation</a></td></tr>
 </tbody>
 </table>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/next/functions-metrics"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/next/io-quickstart"><span>Suivant</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#sources-and-sinks">Sources and sinks</a></li><li><a href="#working-with-connectors">Working wit [...]
diff --git a/content/docs/fr/next/io-overview/index.html b/content/docs/fr/next/io-overview/index.html
index 5ce2e0d..d77c645 100644
--- a/content/docs/fr/next/io-overview/index.html
+++ b/content/docs/fr/next/io-overview/index.html
@@ -75,7 +75,7 @@
 <tr><td><a href="https://kafka.apache.org">Kafka sink</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/kafka/src/main/java/org/apache/pulsar/io/kafka/KafkaStringSink.java"><code>org.apache.pulsar.io.kafka.KafkaSink</code></a></td><td><a href="/docs/fr/next/io-kafka#sink">Documentation</a></td></tr>
 <tr><td><a href="https://aws.amazon.com/kinesis/">Kinesis sink</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/kinesis/src/main/java/org/apache/pulsar/io/kinesis/KinesisSink.java"><code>org.apache.pulsar.io.kinesis.KinesisSink</code></a></td><td><a href="/docs/fr/next/io-kinesis#sink">Documentation</a></td></tr>
 <tr><td><a href="https://www.rabbitmq.com">RabbitMQ source</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/rabbitmq/src/main/java/org/apache/pulsar/io/rabbitmq/RabbitMQSource.java"><code>org.apache.pulsar.io.rabbitmq.RabbitMQSource</code></a></td><td><a href="/docs/fr/next/io-rabbitmq#sink">Documentation</a></td></tr>
-<tr><td><a href="https://developer.twitter.com/en/docs">Twitter Firehose source</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/twitter/src/main/java/org/apache/pulsar/io/twitter/TwitterFireHose.java">org.apache.pulsar.io.twitter.TwitterFireHose</a></td><td><a href="/docs/fr/next/io-twitter#source">Documentation</a></td></tr>
+<tr><td><a href="https://developer.twitter.com/en/docs">Twitter Firehose source</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/twitter/src/main/java/org/apache/pulsar/io/twitter/TwitterFireHose.java"><code>org.apache.pulsar.io.twitter.TwitterFireHose</code></a></td><td><a href="/docs/fr/next/io-twitter#source">Documentation</a></td></tr>
 </tbody>
 </table>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/next/functions-metrics"><span class="arrow-prev">← </span><span>Précédent</span></a><a class="docs-next button" href="/docs/fr/next/io-quickstart"><span>Suivant</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#sources-and-sinks">Sources and sinks</a></li><li><a href="#working-with-connectors">Working wit [...]
diff --git a/content/docs/fr/next/security-tls-transport.html b/content/docs/fr/next/security-tls-transport.html
index 0dddb59..91ae643 100644
--- a/content/docs/fr/next/security-tls-transport.html
+++ b/content/docs/fr/next/security-tls-transport.html
@@ -92,7 +92,7 @@ $ chmod 444 certs/ca.cert.pem
 <p>The following commands will ask you a few questions and then create the certificates. When asked for the common name, you should match the hostname of the broker. You could also use a wildcard to match a group of broker hostnames, for example <code>*.broker.usw.example.com</code>. This ensures that the same certificate can be reused on multiple machines.</p>
 <blockquote>
 <h4><a class="anchor" aria-hidden="true" id="tips"></a><a href="#tips" 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.09V6 [...]
-<p>Sometimes it is not possible or makes no sense to match the hostname, such as when the brokers are created with random hostnames, or you plan to connect to the hosts via their IP. In this case, the client should be configured to disable TLS hostname verification.</p>
+<p>Sometimes it is not possible or makes no sense to match the hostname, such as when the brokers are created with random hostnames, or you plan to connect to the hosts via their IP. In this case, the client should be configured to disable TLS hostname verification. For more details, see <a href="#hostname-verification">the host verification section in client configuration</a>.</p>
 </blockquote>
 <p>First generate the key.</p>
 <pre><code class="hljs css language-bash">$ openssl genrsa -out broker.key.pem 2048
@@ -137,6 +137,11 @@ $ chmod 444 certs/ca.cert.pem
 <h2><a class="anchor" aria-hidden="true" id="client-configuration"></a><a href="#client-configuration" 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 [...]
 <p>When TLS transport encryption is enabled, you need to configure the client to use <code>https://</code> and port 8443 for the web service URL, and <code>pulsar+ssl://</code> and port 6651 for the broker service URL.</p>
 <p>As the server certificate you generated above doesn't belong to any of the default trust chains, you also need to either specify the path the <strong>trust cert</strong> (recommended), or tell the client to allow untrusted server certs.</p>
+<h4><a class="anchor" aria-hidden="true" id="hostname-verification"></a><a href="#hostname-verification" 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 [...]
+<p>Hostname verification is a TLS security feature whereby a client can refuse to connect to a server if the &quot;CommonName&quot; does not match the hostname to which it is connecting. By default, Pulsar clients disable hostname verification, as it requires that each broker has a DNS record and a unique cert.</p>
+<p>Moreover, as the administrator has full control of the certificate authority, it is unlikely that a bad actor would be able to pull off a man-in-the-middle attack. &quot;allowInsecureConnection&quot; allows the client to connect to servers whose cert has not been signed by an approved CA. The client disables it by default, and should always be disabled in production environments. As long as &quot;allowInsecureConnection&quot; is disabled, a man-in-the-middle attack would require that  [...]
+<p>One scenario where you may want to enable hostname verification is where you have multiple proxy nodes behind a VIP, and the VIP has a DNS record, for example, pulsar.mycompany.com. In this case, you can generate a TLS cert with pulsar.mycompany.com as the &quot;CommonName,&quot; and then enable hostname verification on the client.</p>
+<p>The examples below show hostname verification being disabled for the Java client, though you can be omit this as the client disables it by default. C++/python clients do now allow this to be configured at the moment.</p>
 <h3><a class="anchor" aria-hidden="true" id="cli-tools"></a><a href="#cli-tools" 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.6 [...]
 <p><a href="/docs/fr/next/reference-cli-tools">Command-line tools</a> like <a href="reference-cli-tools#pulsar-admin"><code>pulsar-admin</code></a>, <a href="reference-cli-tools#pulsar-perf"><code>pulsar-perf</code></a>, and <a href="reference-cli-tools#pulsar-client"><code>pulsar-client</code></a> use the <code>conf/client.conf</code> config file in a Pulsar installation.</p>
 <p>You'll need to add the following parameters to that file to use TLS transport with Pulsar's CLI tools:</p>
@@ -145,6 +150,7 @@ $ chmod 444 certs/ca.cert.pem
 <span class="hljs-attr">useTls</span>=<span class="hljs-string">true</span>
 <span class="hljs-attr">tlsAllowInsecureConnection</span>=<span class="hljs-string">false</span>
 <span class="hljs-attr">tlsTrustCertsFilePath</span>=<span class="hljs-string">/path/to/ca.cert.pem</span>
+<span class="hljs-attr">tlsEnableHostnameVerification</span>=<span class="hljs-string">false</span>
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="java-client"></a><a href="#java-client" 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 [...]
 <pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> org.apache.pulsar.client.api.PulsarClient;
@@ -153,6 +159,8 @@ PulsarClient client = PulsarClient.builder()
     .serviceUrl(<span class="hljs-string">"pulsar+ssl://broker.example.com:6651/"</span>)
     .enableTls(<span class="hljs-keyword">true</span>)
     .tlsTrustCertsFilePath(<span class="hljs-string">"/path/to/ca.cert.pem"</span>)
+    .enableTlsHostnameVerification(<span class="hljs-keyword">false</span>) <span class="hljs-comment">// false by default, in any case</span>
+    .allowTlsInsecureConnection(<span class="hljs-keyword">false</span>) <span class="hljs-comment">// false by default, in any case</span>
     .build();
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="python-client"></a><a href="#python-client" 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-.8 [...]
@@ -160,7 +168,7 @@ PulsarClient client = PulsarClient.builder()
 
 client = Client(<span class="hljs-string">"pulsar+ssl://broker.example.com:6651/"</span>,
                 tls_trust_certs_file_path=<span class="hljs-string">"/path/to/ca.cert.pem"</span>,
-                tls_allow_insecure_connection=<span class="hljs-keyword">False</span>)
+                tls_allow_insecure_connection=<span class="hljs-keyword">False</span>) // defaults to false <span class="hljs-keyword">from</span> v2<span class="hljs-number">.2</span><span class="hljs-number">.0</span> onwards
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="c-client"></a><a href="#c-client" 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  [...]
 <pre><code class="hljs css language-c++"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;pulsar/Client.h&gt;</span></span>
@@ -168,7 +176,7 @@ client = Client(<span class="hljs-string">"pulsar+ssl://broker.example.com:6651/
 pulsar::ClientConfiguration config;
 config.setUseTls(<span class="hljs-literal">true</span>);
 config.setTlsTrustCertsFilePath(<span class="hljs-string">"/path/to/ca.cert.pem"</span>);
-config.setTlsAllowInsecureConnection(<span class="hljs-literal">false</span>);
+config.setTlsAllowInsecureConnection(<span class="hljs-literal">false</span>); <span class="hljs-comment">// defaults to false from v2.2.0 onwards</span>
 
 pulsar::<span class="hljs-function">Client <span class="hljs-title">client</span><span class="hljs-params">(<span class="hljs-string">"pulsar+ssl://broker.example.com:6651/"</span>, config)</span></span>;
 </code></pre>
diff --git a/content/docs/fr/next/security-tls-transport/index.html b/content/docs/fr/next/security-tls-transport/index.html
index 0dddb59..91ae643 100644
--- a/content/docs/fr/next/security-tls-transport/index.html
+++ b/content/docs/fr/next/security-tls-transport/index.html
@@ -92,7 +92,7 @@ $ chmod 444 certs/ca.cert.pem
 <p>The following commands will ask you a few questions and then create the certificates. When asked for the common name, you should match the hostname of the broker. You could also use a wildcard to match a group of broker hostnames, for example <code>*.broker.usw.example.com</code>. This ensures that the same certificate can be reused on multiple machines.</p>
 <blockquote>
 <h4><a class="anchor" aria-hidden="true" id="tips"></a><a href="#tips" 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.09V6 [...]
-<p>Sometimes it is not possible or makes no sense to match the hostname, such as when the brokers are created with random hostnames, or you plan to connect to the hosts via their IP. In this case, the client should be configured to disable TLS hostname verification.</p>
+<p>Sometimes it is not possible or makes no sense to match the hostname, such as when the brokers are created with random hostnames, or you plan to connect to the hosts via their IP. In this case, the client should be configured to disable TLS hostname verification. For more details, see <a href="#hostname-verification">the host verification section in client configuration</a>.</p>
 </blockquote>
 <p>First generate the key.</p>
 <pre><code class="hljs css language-bash">$ openssl genrsa -out broker.key.pem 2048
@@ -137,6 +137,11 @@ $ chmod 444 certs/ca.cert.pem
 <h2><a class="anchor" aria-hidden="true" id="client-configuration"></a><a href="#client-configuration" 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 [...]
 <p>When TLS transport encryption is enabled, you need to configure the client to use <code>https://</code> and port 8443 for the web service URL, and <code>pulsar+ssl://</code> and port 6651 for the broker service URL.</p>
 <p>As the server certificate you generated above doesn't belong to any of the default trust chains, you also need to either specify the path the <strong>trust cert</strong> (recommended), or tell the client to allow untrusted server certs.</p>
+<h4><a class="anchor" aria-hidden="true" id="hostname-verification"></a><a href="#hostname-verification" 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 [...]
+<p>Hostname verification is a TLS security feature whereby a client can refuse to connect to a server if the &quot;CommonName&quot; does not match the hostname to which it is connecting. By default, Pulsar clients disable hostname verification, as it requires that each broker has a DNS record and a unique cert.</p>
+<p>Moreover, as the administrator has full control of the certificate authority, it is unlikely that a bad actor would be able to pull off a man-in-the-middle attack. &quot;allowInsecureConnection&quot; allows the client to connect to servers whose cert has not been signed by an approved CA. The client disables it by default, and should always be disabled in production environments. As long as &quot;allowInsecureConnection&quot; is disabled, a man-in-the-middle attack would require that  [...]
+<p>One scenario where you may want to enable hostname verification is where you have multiple proxy nodes behind a VIP, and the VIP has a DNS record, for example, pulsar.mycompany.com. In this case, you can generate a TLS cert with pulsar.mycompany.com as the &quot;CommonName,&quot; and then enable hostname verification on the client.</p>
+<p>The examples below show hostname verification being disabled for the Java client, though you can be omit this as the client disables it by default. C++/python clients do now allow this to be configured at the moment.</p>
 <h3><a class="anchor" aria-hidden="true" id="cli-tools"></a><a href="#cli-tools" 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.6 [...]
 <p><a href="/docs/fr/next/reference-cli-tools">Command-line tools</a> like <a href="reference-cli-tools#pulsar-admin"><code>pulsar-admin</code></a>, <a href="reference-cli-tools#pulsar-perf"><code>pulsar-perf</code></a>, and <a href="reference-cli-tools#pulsar-client"><code>pulsar-client</code></a> use the <code>conf/client.conf</code> config file in a Pulsar installation.</p>
 <p>You'll need to add the following parameters to that file to use TLS transport with Pulsar's CLI tools:</p>
@@ -145,6 +150,7 @@ $ chmod 444 certs/ca.cert.pem
 <span class="hljs-attr">useTls</span>=<span class="hljs-string">true</span>
 <span class="hljs-attr">tlsAllowInsecureConnection</span>=<span class="hljs-string">false</span>
 <span class="hljs-attr">tlsTrustCertsFilePath</span>=<span class="hljs-string">/path/to/ca.cert.pem</span>
+<span class="hljs-attr">tlsEnableHostnameVerification</span>=<span class="hljs-string">false</span>
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="java-client"></a><a href="#java-client" 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 [...]
 <pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> org.apache.pulsar.client.api.PulsarClient;
@@ -153,6 +159,8 @@ PulsarClient client = PulsarClient.builder()
     .serviceUrl(<span class="hljs-string">"pulsar+ssl://broker.example.com:6651/"</span>)
     .enableTls(<span class="hljs-keyword">true</span>)
     .tlsTrustCertsFilePath(<span class="hljs-string">"/path/to/ca.cert.pem"</span>)
+    .enableTlsHostnameVerification(<span class="hljs-keyword">false</span>) <span class="hljs-comment">// false by default, in any case</span>
+    .allowTlsInsecureConnection(<span class="hljs-keyword">false</span>) <span class="hljs-comment">// false by default, in any case</span>
     .build();
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="python-client"></a><a href="#python-client" 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-.8 [...]
@@ -160,7 +168,7 @@ PulsarClient client = PulsarClient.builder()
 
 client = Client(<span class="hljs-string">"pulsar+ssl://broker.example.com:6651/"</span>,
                 tls_trust_certs_file_path=<span class="hljs-string">"/path/to/ca.cert.pem"</span>,
-                tls_allow_insecure_connection=<span class="hljs-keyword">False</span>)
+                tls_allow_insecure_connection=<span class="hljs-keyword">False</span>) // defaults to false <span class="hljs-keyword">from</span> v2<span class="hljs-number">.2</span><span class="hljs-number">.0</span> onwards
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="c-client"></a><a href="#c-client" 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  [...]
 <pre><code class="hljs css language-c++"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;pulsar/Client.h&gt;</span></span>
@@ -168,7 +176,7 @@ client = Client(<span class="hljs-string">"pulsar+ssl://broker.example.com:6651/
 pulsar::ClientConfiguration config;
 config.setUseTls(<span class="hljs-literal">true</span>);
 config.setTlsTrustCertsFilePath(<span class="hljs-string">"/path/to/ca.cert.pem"</span>);
-config.setTlsAllowInsecureConnection(<span class="hljs-literal">false</span>);
+config.setTlsAllowInsecureConnection(<span class="hljs-literal">false</span>); <span class="hljs-comment">// defaults to false from v2.2.0 onwards</span>
 
 pulsar::<span class="hljs-function">Client <span class="hljs-title">client</span><span class="hljs-params">(<span class="hljs-string">"pulsar+ssl://broker.example.com:6651/"</span>, config)</span></span>;
 </code></pre>
diff --git a/content/docs/ja/next/io-overview.html b/content/docs/ja/next/io-overview.html
index 9b060ca..d0aa845 100644
--- a/content/docs/ja/next/io-overview.html
+++ b/content/docs/ja/next/io-overview.html
@@ -75,7 +75,7 @@
 <tr><td><a href="https://kafka.apache.org">Kafka sink</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/kafka/src/main/java/org/apache/pulsar/io/kafka/KafkaStringSink.java"><code>org.apache.pulsar.io.kafka.KafkaSink</code></a></td><td><a href="/docs/ja/next/io-kafka#sink">Documentation</a></td></tr>
 <tr><td><a href="https://aws.amazon.com/kinesis/">Kinesis sink</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/kinesis/src/main/java/org/apache/pulsar/io/kinesis/KinesisSink.java"><code>org.apache.pulsar.io.kinesis.KinesisSink</code></a></td><td><a href="/docs/ja/next/io-kinesis#sink">Documentation</a></td></tr>
 <tr><td><a href="https://www.rabbitmq.com">RabbitMQ source</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/rabbitmq/src/main/java/org/apache/pulsar/io/rabbitmq/RabbitMQSource.java"><code>org.apache.pulsar.io.rabbitmq.RabbitMQSource</code></a></td><td><a href="/docs/ja/next/io-rabbitmq#sink">Documentation</a></td></tr>
-<tr><td><a href="https://developer.twitter.com/en/docs">Twitter Firehose source</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/twitter/src/main/java/org/apache/pulsar/io/twitter/TwitterFireHose.java">org.apache.pulsar.io.twitter.TwitterFireHose</a></td><td><a href="/docs/ja/next/io-twitter#source">Documentation</a></td></tr>
+<tr><td><a href="https://developer.twitter.com/en/docs">Twitter Firehose source</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/twitter/src/main/java/org/apache/pulsar/io/twitter/TwitterFireHose.java"><code>org.apache.pulsar.io.twitter.TwitterFireHose</code></a></td><td><a href="/docs/ja/next/io-twitter#source">Documentation</a></td></tr>
 </tbody>
 </table>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/next/functions-metrics"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/ja/next/io-quickstart"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#sources-and-sinks">Sources and sinks</a></li><li><a href="#working-with-connectors">Working with co [...]
diff --git a/content/docs/ja/next/io-overview/index.html b/content/docs/ja/next/io-overview/index.html
index 9b060ca..d0aa845 100644
--- a/content/docs/ja/next/io-overview/index.html
+++ b/content/docs/ja/next/io-overview/index.html
@@ -75,7 +75,7 @@
 <tr><td><a href="https://kafka.apache.org">Kafka sink</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/kafka/src/main/java/org/apache/pulsar/io/kafka/KafkaStringSink.java"><code>org.apache.pulsar.io.kafka.KafkaSink</code></a></td><td><a href="/docs/ja/next/io-kafka#sink">Documentation</a></td></tr>
 <tr><td><a href="https://aws.amazon.com/kinesis/">Kinesis sink</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/kinesis/src/main/java/org/apache/pulsar/io/kinesis/KinesisSink.java"><code>org.apache.pulsar.io.kinesis.KinesisSink</code></a></td><td><a href="/docs/ja/next/io-kinesis#sink">Documentation</a></td></tr>
 <tr><td><a href="https://www.rabbitmq.com">RabbitMQ source</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/rabbitmq/src/main/java/org/apache/pulsar/io/rabbitmq/RabbitMQSource.java"><code>org.apache.pulsar.io.rabbitmq.RabbitMQSource</code></a></td><td><a href="/docs/ja/next/io-rabbitmq#sink">Documentation</a></td></tr>
-<tr><td><a href="https://developer.twitter.com/en/docs">Twitter Firehose source</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/twitter/src/main/java/org/apache/pulsar/io/twitter/TwitterFireHose.java">org.apache.pulsar.io.twitter.TwitterFireHose</a></td><td><a href="/docs/ja/next/io-twitter#source">Documentation</a></td></tr>
+<tr><td><a href="https://developer.twitter.com/en/docs">Twitter Firehose source</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/twitter/src/main/java/org/apache/pulsar/io/twitter/TwitterFireHose.java"><code>org.apache.pulsar.io.twitter.TwitterFireHose</code></a></td><td><a href="/docs/ja/next/io-twitter#source">Documentation</a></td></tr>
 </tbody>
 </table>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/next/functions-metrics"><span class="arrow-prev">← </span><span>Previous</span></a><a class="docs-next button" href="/docs/ja/next/io-quickstart"><span>Next</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#sources-and-sinks">Sources and sinks</a></li><li><a href="#working-with-connectors">Working with co [...]
diff --git a/content/docs/ja/next/security-tls-transport.html b/content/docs/ja/next/security-tls-transport.html
index cf97081..99b6b09 100644
--- a/content/docs/ja/next/security-tls-transport.html
+++ b/content/docs/ja/next/security-tls-transport.html
@@ -92,7 +92,7 @@ $ chmod 444 certs/ca.cert.pem
 <p>The following commands will ask you a few questions and then create the certificates. When asked for the common name, you should match the hostname of the broker. You could also use a wildcard to match a group of broker hostnames, for example <code>*.broker.usw.example.com</code>. This ensures that the same certificate can be reused on multiple machines.</p>
 <blockquote>
 <h4><a class="anchor" aria-hidden="true" id="tips"></a><a href="#tips" 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.09V6 [...]
-<p>Sometimes it is not possible or makes no sense to match the hostname, such as when the brokers are created with random hostnames, or you plan to connect to the hosts via their IP. In this case, the client should be configured to disable TLS hostname verification.</p>
+<p>Sometimes it is not possible or makes no sense to match the hostname, such as when the brokers are created with random hostnames, or you plan to connect to the hosts via their IP. In this case, the client should be configured to disable TLS hostname verification. For more details, see <a href="#hostname-verification">the host verification section in client configuration</a>.</p>
 </blockquote>
 <p>まず鍵を生成します。</p>
 <pre><code class="hljs css language-bash">$ openssl genrsa -out broker.key.pem 2048
@@ -137,6 +137,11 @@ $ chmod 444 certs/ca.cert.pem
 <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.6 [...]
 <p>When TLS transport encryption is enabled, you need to configure the client to use <code>https://</code> and port 8443 for the web service URL, and <code>pulsar+ssl://</code> and port 6651 for the broker service URL.</p>
 <p>As the server certificate you generated above doesn't belong to any of the default trust chains, you also need to either specify the path the <strong>trust cert</strong> (recommended), or tell the client to allow untrusted server certs.</p>
+<h4><a class="anchor" aria-hidden="true" id="hostname-verification"></a><a href="#hostname-verification" 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 [...]
+<p>Hostname verification is a TLS security feature whereby a client can refuse to connect to a server if the &quot;CommonName&quot; does not match the hostname to which it is connecting. By default, Pulsar clients disable hostname verification, as it requires that each broker has a DNS record and a unique cert.</p>
+<p>Moreover, as the administrator has full control of the certificate authority, it is unlikely that a bad actor would be able to pull off a man-in-the-middle attack. &quot;allowInsecureConnection&quot; allows the client to connect to servers whose cert has not been signed by an approved CA. The client disables it by default, and should always be disabled in production environments. As long as &quot;allowInsecureConnection&quot; is disabled, a man-in-the-middle attack would require that  [...]
+<p>One scenario where you may want to enable hostname verification is where you have multiple proxy nodes behind a VIP, and the VIP has a DNS record, for example, pulsar.mycompany.com. In this case, you can generate a TLS cert with pulsar.mycompany.com as the &quot;CommonName,&quot; and then enable hostname verification on the client.</p>
+<p>The examples below show hostname verification being disabled for the Java client, though you can be omit this as the client disables it by default. C++/python clients do now allow this to be configured at the moment.</p>
 <h3><a class="anchor" aria-hidden="true" id="cli-ツール"></a><a href="#cli-ツール" 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><a href="reference-cli-tools#pulsar-admin"><code>pulsar-admin</code></a>、<a href="reference-cli-tools#pulsar-perf"><code>pulsar-perf</code></a>、<a href="reference-cli-tools#pulsar-client"><code>pulsar-client</code></a> といった<a href="/docs/ja/next/reference-cli-tools">コマンドラインツール</a>は Pulsar をインストールした場所にある <code>conf/client.conf</code> という設定ファイルを使用します。</p>
 <p>Pulsar の CLI ツールで TLS トランスポートを使用するにはそのファイルに次のパラメータを追加する必要がります。</p>
@@ -145,6 +150,7 @@ $ chmod 444 certs/ca.cert.pem
 <span class="hljs-attr">useTls</span>=<span class="hljs-string">true</span>
 <span class="hljs-attr">tlsAllowInsecureConnection</span>=<span class="hljs-string">false</span>
 <span class="hljs-attr">tlsTrustCertsFilePath</span>=<span class="hljs-string">/path/to/ca.cert.pem</span>
+<span class="hljs-attr">tlsEnableHostnameVerification</span>=<span class="hljs-string">false</span>
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="java-クライアント"></a><a href="#java-クライアント" 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 [...]
 <pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> org.apache.pulsar.client.api.PulsarClient;
@@ -153,6 +159,8 @@ PulsarClient client = PulsarClient.builder()
     .serviceUrl(<span class="hljs-string">"pulsar+ssl://broker.example.com:6651/"</span>)
     .enableTls(<span class="hljs-keyword">true</span>)
     .tlsTrustCertsFilePath(<span class="hljs-string">"/path/to/ca.cert.pem"</span>)
+    .enableTlsHostnameVerification(<span class="hljs-keyword">false</span>) <span class="hljs-comment">// false by default, in any case</span>
+    .allowTlsInsecureConnection(<span class="hljs-keyword">false</span>) <span class="hljs-comment">// false by default, in any case</span>
     .build();
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="python-クライアント"></a><a href="#python-クライアント" 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-.8 [...]
@@ -160,7 +168,7 @@ PulsarClient client = PulsarClient.builder()
 
 client = Client(<span class="hljs-string">"pulsar+ssl://broker.example.com:6651/"</span>,
                 tls_trust_certs_file_path=<span class="hljs-string">"/path/to/ca.cert.pem"</span>,
-                tls_allow_insecure_connection=<span class="hljs-keyword">False</span>)
+                tls_allow_insecure_connection=<span class="hljs-keyword">False</span>) // defaults to false <span class="hljs-keyword">from</span> v2<span class="hljs-number">.2</span><span class="hljs-number">.0</span> onwards
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="c-クライアント"></a><a href="#c-クライアント" 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  [...]
 <pre><code class="hljs css language-c++"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;pulsar/Client.h&gt;</span></span>
@@ -168,7 +176,7 @@ client = Client(<span class="hljs-string">"pulsar+ssl://broker.example.com:6651/
 pulsar::ClientConfiguration config;
 config.setUseTls(<span class="hljs-literal">true</span>);
 config.setTlsTrustCertsFilePath(<span class="hljs-string">"/path/to/ca.cert.pem"</span>);
-config.setTlsAllowInsecureConnection(<span class="hljs-literal">false</span>);
+config.setTlsAllowInsecureConnection(<span class="hljs-literal">false</span>); <span class="hljs-comment">// defaults to false from v2.2.0 onwards</span>
 
 pulsar::<span class="hljs-function">Client <span class="hljs-title">client</span><span class="hljs-params">(<span class="hljs-string">"pulsar+ssl://broker.example.com:6651/"</span>, config)</span></span>;
 </code></pre>
diff --git a/content/docs/ja/next/security-tls-transport/index.html b/content/docs/ja/next/security-tls-transport/index.html
index cf97081..99b6b09 100644
--- a/content/docs/ja/next/security-tls-transport/index.html
+++ b/content/docs/ja/next/security-tls-transport/index.html
@@ -92,7 +92,7 @@ $ chmod 444 certs/ca.cert.pem
 <p>The following commands will ask you a few questions and then create the certificates. When asked for the common name, you should match the hostname of the broker. You could also use a wildcard to match a group of broker hostnames, for example <code>*.broker.usw.example.com</code>. This ensures that the same certificate can be reused on multiple machines.</p>
 <blockquote>
 <h4><a class="anchor" aria-hidden="true" id="tips"></a><a href="#tips" 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.09V6 [...]
-<p>Sometimes it is not possible or makes no sense to match the hostname, such as when the brokers are created with random hostnames, or you plan to connect to the hosts via their IP. In this case, the client should be configured to disable TLS hostname verification.</p>
+<p>Sometimes it is not possible or makes no sense to match the hostname, such as when the brokers are created with random hostnames, or you plan to connect to the hosts via their IP. In this case, the client should be configured to disable TLS hostname verification. For more details, see <a href="#hostname-verification">the host verification section in client configuration</a>.</p>
 </blockquote>
 <p>まず鍵を生成します。</p>
 <pre><code class="hljs css language-bash">$ openssl genrsa -out broker.key.pem 2048
@@ -137,6 +137,11 @@ $ chmod 444 certs/ca.cert.pem
 <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.6 [...]
 <p>When TLS transport encryption is enabled, you need to configure the client to use <code>https://</code> and port 8443 for the web service URL, and <code>pulsar+ssl://</code> and port 6651 for the broker service URL.</p>
 <p>As the server certificate you generated above doesn't belong to any of the default trust chains, you also need to either specify the path the <strong>trust cert</strong> (recommended), or tell the client to allow untrusted server certs.</p>
+<h4><a class="anchor" aria-hidden="true" id="hostname-verification"></a><a href="#hostname-verification" 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 [...]
+<p>Hostname verification is a TLS security feature whereby a client can refuse to connect to a server if the &quot;CommonName&quot; does not match the hostname to which it is connecting. By default, Pulsar clients disable hostname verification, as it requires that each broker has a DNS record and a unique cert.</p>
+<p>Moreover, as the administrator has full control of the certificate authority, it is unlikely that a bad actor would be able to pull off a man-in-the-middle attack. &quot;allowInsecureConnection&quot; allows the client to connect to servers whose cert has not been signed by an approved CA. The client disables it by default, and should always be disabled in production environments. As long as &quot;allowInsecureConnection&quot; is disabled, a man-in-the-middle attack would require that  [...]
+<p>One scenario where you may want to enable hostname verification is where you have multiple proxy nodes behind a VIP, and the VIP has a DNS record, for example, pulsar.mycompany.com. In this case, you can generate a TLS cert with pulsar.mycompany.com as the &quot;CommonName,&quot; and then enable hostname verification on the client.</p>
+<p>The examples below show hostname verification being disabled for the Java client, though you can be omit this as the client disables it by default. C++/python clients do now allow this to be configured at the moment.</p>
 <h3><a class="anchor" aria-hidden="true" id="cli-ツール"></a><a href="#cli-ツール" 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><a href="reference-cli-tools#pulsar-admin"><code>pulsar-admin</code></a>、<a href="reference-cli-tools#pulsar-perf"><code>pulsar-perf</code></a>、<a href="reference-cli-tools#pulsar-client"><code>pulsar-client</code></a> といった<a href="/docs/ja/next/reference-cli-tools">コマンドラインツール</a>は Pulsar をインストールした場所にある <code>conf/client.conf</code> という設定ファイルを使用します。</p>
 <p>Pulsar の CLI ツールで TLS トランスポートを使用するにはそのファイルに次のパラメータを追加する必要がります。</p>
@@ -145,6 +150,7 @@ $ chmod 444 certs/ca.cert.pem
 <span class="hljs-attr">useTls</span>=<span class="hljs-string">true</span>
 <span class="hljs-attr">tlsAllowInsecureConnection</span>=<span class="hljs-string">false</span>
 <span class="hljs-attr">tlsTrustCertsFilePath</span>=<span class="hljs-string">/path/to/ca.cert.pem</span>
+<span class="hljs-attr">tlsEnableHostnameVerification</span>=<span class="hljs-string">false</span>
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="java-クライアント"></a><a href="#java-クライアント" 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 [...]
 <pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> org.apache.pulsar.client.api.PulsarClient;
@@ -153,6 +159,8 @@ PulsarClient client = PulsarClient.builder()
     .serviceUrl(<span class="hljs-string">"pulsar+ssl://broker.example.com:6651/"</span>)
     .enableTls(<span class="hljs-keyword">true</span>)
     .tlsTrustCertsFilePath(<span class="hljs-string">"/path/to/ca.cert.pem"</span>)
+    .enableTlsHostnameVerification(<span class="hljs-keyword">false</span>) <span class="hljs-comment">// false by default, in any case</span>
+    .allowTlsInsecureConnection(<span class="hljs-keyword">false</span>) <span class="hljs-comment">// false by default, in any case</span>
     .build();
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="python-クライアント"></a><a href="#python-クライアント" 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-.8 [...]
@@ -160,7 +168,7 @@ PulsarClient client = PulsarClient.builder()
 
 client = Client(<span class="hljs-string">"pulsar+ssl://broker.example.com:6651/"</span>,
                 tls_trust_certs_file_path=<span class="hljs-string">"/path/to/ca.cert.pem"</span>,
-                tls_allow_insecure_connection=<span class="hljs-keyword">False</span>)
+                tls_allow_insecure_connection=<span class="hljs-keyword">False</span>) // defaults to false <span class="hljs-keyword">from</span> v2<span class="hljs-number">.2</span><span class="hljs-number">.0</span> onwards
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="c-クライアント"></a><a href="#c-クライアント" 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  [...]
 <pre><code class="hljs css language-c++"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;pulsar/Client.h&gt;</span></span>
@@ -168,7 +176,7 @@ client = Client(<span class="hljs-string">"pulsar+ssl://broker.example.com:6651/
 pulsar::ClientConfiguration config;
 config.setUseTls(<span class="hljs-literal">true</span>);
 config.setTlsTrustCertsFilePath(<span class="hljs-string">"/path/to/ca.cert.pem"</span>);
-config.setTlsAllowInsecureConnection(<span class="hljs-literal">false</span>);
+config.setTlsAllowInsecureConnection(<span class="hljs-literal">false</span>); <span class="hljs-comment">// defaults to false from v2.2.0 onwards</span>
 
 pulsar::<span class="hljs-function">Client <span class="hljs-title">client</span><span class="hljs-params">(<span class="hljs-string">"pulsar+ssl://broker.example.com:6651/"</span>, config)</span></span>;
 </code></pre>
diff --git a/content/docs/latest/adaptors/PulsarSpark/index.html b/content/docs/latest/adaptors/PulsarSpark/index.html
index c00dd49..d130108 100644
--- a/content/docs/latest/adaptors/PulsarSpark/index.html
+++ b/content/docs/latest/adaptors/PulsarSpark/index.html
@@ -1079,9 +1079,9 @@
           
           
           
+          <li><a href="/docs/latest/adaptors/PulsarSpark/">Spark Streaming Pulsar receiver</a></li>
           
           
-          <li><a href="/docs/latest/adaptors/PulsarSpark/">Spark Streaming Pulsar receiver</a></li>
           
           
           
@@ -1325,9 +1325,9 @@
           
           
           
+          <li><a href="/docs/latest/adaptors/PulsarSpark/">Spark Streaming Pulsar receiver</a></li>
           
           
-          <li><a href="/docs/latest/adaptors/PulsarSpark/">Spark Streaming Pulsar receiver</a></li>
           
           
           
@@ -1537,8 +1537,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
@@ -1617,6 +1615,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1673,9 +1673,9 @@
           
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
diff --git a/content/docs/latest/adaptors/PulsarStorm/index.html b/content/docs/latest/adaptors/PulsarStorm/index.html
index a100055..67a4256 100644
--- a/content/docs/latest/adaptors/PulsarStorm/index.html
+++ b/content/docs/latest/adaptors/PulsarStorm/index.html
@@ -1083,9 +1083,9 @@
           
           
           
+          <li><a href="/docs/latest/adaptors/PulsarStorm/">Pulsar adaptor for Apache Storm</a></li>
           
           
-          <li><a href="/docs/latest/adaptors/PulsarStorm/">Pulsar adaptor for Apache Storm</a></li>
           
           
           
@@ -1291,8 +1291,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
@@ -1371,6 +1369,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1427,9 +1427,9 @@
           
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
diff --git a/content/docs/latest/admin-api/overview/index.html b/content/docs/latest/admin-api/overview/index.html
index 994ad01..a2bc7c5 100644
--- a/content/docs/latest/admin-api/overview/index.html
+++ b/content/docs/latest/admin-api/overview/index.html
@@ -1005,8 +1005,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1125,6 +1123,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1189,9 +1189,9 @@
           
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
@@ -1271,9 +1271,9 @@
           
           
           
+          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
-          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
           
@@ -1439,9 +1439,9 @@
           
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
@@ -1685,9 +1685,9 @@
           
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
@@ -1805,8 +1805,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
@@ -1885,6 +1883,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1941,9 +1941,9 @@
           
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
diff --git a/content/docs/latest/clients/Cpp/index.html b/content/docs/latest/clients/Cpp/index.html
index 5dabb35..58e0246 100644
--- a/content/docs/latest/clients/Cpp/index.html
+++ b/content/docs/latest/clients/Cpp/index.html
@@ -1005,8 +1005,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1021,9 +1019,9 @@
           
           
           
-          <li><a href="/docs/latest/project/CompileCpp/">Building Pulsar C++ client</a></li>
           
           
+          <li><a href="/docs/latest/project/CompileCpp/">Building Pulsar C++ client</a></li>
           
           
           
@@ -1157,6 +1155,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/clients/go/">The Pulsar Go client</a></li>
           
           
@@ -1287,9 +1287,9 @@
           
           
           
+          <li><a href="/docs/latest/clients/Cpp/">The Pulsar C++ client</a></li>
           
           
-          <li><a href="/docs/latest/clients/Cpp/">The Pulsar C++ client</a></li>
           
           
           
diff --git a/content/docs/latest/clients/Java/index.html b/content/docs/latest/clients/Java/index.html
index 8ce7177..5b89223 100644
--- a/content/docs/latest/clients/Java/index.html
+++ b/content/docs/latest/clients/Java/index.html
@@ -1005,8 +1005,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1021,9 +1019,9 @@
           
           
           
-          <li><a href="/docs/latest/project/CompileCpp/">Building Pulsar C++ client</a></li>
           
           
+          <li><a href="/docs/latest/project/CompileCpp/">Building Pulsar C++ client</a></li>
           
           
           
@@ -1157,6 +1155,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/clients/go/">The Pulsar Go client</a></li>
           
           
@@ -1301,8 +1301,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
@@ -1381,6 +1379,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1437,9 +1437,9 @@
           
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
@@ -1557,9 +1557,9 @@
           
           
           
+          <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
-          <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
           
@@ -1805,9 +1805,9 @@
           
           
           
+          <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
-          <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
           
diff --git a/content/docs/latest/clients/Python/index.html b/content/docs/latest/clients/Python/index.html
index 4d34e49..60bea8e 100644
--- a/content/docs/latest/clients/Python/index.html
+++ b/content/docs/latest/clients/Python/index.html
@@ -1005,8 +1005,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1021,9 +1019,9 @@
           
           
           
-          <li><a href="/docs/latest/project/CompileCpp/">Building Pulsar C++ client</a></li>
           
           
+          <li><a href="/docs/latest/project/CompileCpp/">Building Pulsar C++ client</a></li>
           
           
           
@@ -1157,6 +1155,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/clients/go/">The Pulsar Go client</a></li>
           
           
@@ -1343,8 +1343,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/clients/Python/">The Pulsar Python client</a></li>
           
           
@@ -1417,6 +1415,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/cookbooks/message-queue/">Using Pulsar as a message queue</a></li>
           
           
diff --git a/content/docs/latest/clients/WebSocket/index.html b/content/docs/latest/clients/WebSocket/index.html
index 0c3f19d..b881453 100644
--- a/content/docs/latest/clients/WebSocket/index.html
+++ b/content/docs/latest/clients/WebSocket/index.html
@@ -1107,9 +1107,9 @@
           
           
           
+          <li><a href="/docs/latest/clients/WebSocket/">Pulsar's WebSocket API</a></li>
           
           
-          <li><a href="/docs/latest/clients/WebSocket/">Pulsar's WebSocket API</a></li>
           
           
           
@@ -1353,9 +1353,9 @@
           
           
           
+          <li><a href="/docs/latest/clients/WebSocket/">Pulsar's WebSocket API</a></li>
           
           
-          <li><a href="/docs/latest/clients/WebSocket/">Pulsar's WebSocket API</a></li>
           
           
           
@@ -1579,8 +1579,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/clients/Python/">The Pulsar Python client</a></li>
           
           
@@ -1653,6 +1651,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/cookbooks/message-queue/">Using Pulsar as a message queue</a></li>
           
           
diff --git a/content/docs/latest/clients/go/index.html b/content/docs/latest/clients/go/index.html
index 1492ffb..a06ad5f 100644
--- a/content/docs/latest/clients/go/index.html
+++ b/content/docs/latest/clients/go/index.html
@@ -1005,8 +1005,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1021,9 +1019,9 @@
           
           
           
-          <li><a href="/docs/latest/project/CompileCpp/">Building Pulsar C++ client</a></li>
           
           
+          <li><a href="/docs/latest/project/CompileCpp/">Building Pulsar C++ client</a></li>
           
           
           
@@ -1157,6 +1155,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/clients/go/">The Pulsar Go client</a></li>
           
           
diff --git a/content/docs/latest/cookbooks/Encryption/index.html b/content/docs/latest/cookbooks/Encryption/index.html
index 18ca402..a6132a3 100644
--- a/content/docs/latest/cookbooks/Encryption/index.html
+++ b/content/docs/latest/cookbooks/Encryption/index.html
@@ -1567,9 +1567,9 @@
           
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
@@ -1823,8 +1823,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
@@ -1901,6 +1899,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/encryption/">Pulsar Encryption</a></li>
           
           
diff --git a/content/docs/latest/cookbooks/PartitionedTopics/index.html b/content/docs/latest/cookbooks/PartitionedTopics/index.html
index 25ce2c6..b385286 100644
--- a/content/docs/latest/cookbooks/PartitionedTopics/index.html
+++ b/content/docs/latest/cookbooks/PartitionedTopics/index.html
@@ -1069,9 +1069,9 @@
           
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
@@ -1315,9 +1315,9 @@
           
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
@@ -1497,8 +1497,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1617,6 +1615,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1681,9 +1681,9 @@
           
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
@@ -1829,9 +1829,9 @@
           
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
@@ -2085,8 +2085,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
@@ -2163,6 +2161,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/encryption/">Pulsar Encryption</a></li>
           
           
diff --git a/content/docs/latest/cookbooks/RetentionExpiry/index.html b/content/docs/latest/cookbooks/RetentionExpiry/index.html
index 0a51438..48e2d65 100644
--- a/content/docs/latest/cookbooks/RetentionExpiry/index.html
+++ b/content/docs/latest/cookbooks/RetentionExpiry/index.html
@@ -1005,8 +1005,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1125,6 +1123,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1189,9 +1189,9 @@
           
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
@@ -1361,9 +1361,9 @@
           
           
           
+          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
-          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
           
@@ -1607,9 +1607,9 @@
           
           
           
+          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
-          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
           
@@ -1853,9 +1853,9 @@
           
           
           
+          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
-          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
           
@@ -2075,8 +2075,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
@@ -2153,6 +2151,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/encryption/">Pulsar Encryption</a></li>
           
           
diff --git a/content/docs/latest/cookbooks/compaction/index.html b/content/docs/latest/cookbooks/compaction/index.html
index fd7475c..0d47061 100644
--- a/content/docs/latest/cookbooks/compaction/index.html
+++ b/content/docs/latest/cookbooks/compaction/index.html
@@ -1005,8 +1005,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1125,6 +1123,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1189,9 +1189,9 @@
           
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
@@ -1337,9 +1337,9 @@
           
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
diff --git a/content/docs/latest/cookbooks/message-deduplication/index.html b/content/docs/latest/cookbooks/message-deduplication/index.html
index 03df0bf..5505920 100644
--- a/content/docs/latest/cookbooks/message-deduplication/index.html
+++ b/content/docs/latest/cookbooks/message-deduplication/index.html
@@ -1005,8 +1005,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1125,6 +1123,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1189,9 +1189,9 @@
           
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
@@ -1287,9 +1287,9 @@
           
           
           
+          <li><a href="/docs/latest/getting-started/ConceptsAndArchitecture/">Pulsar concepts and architecture</a></li>
           
           
-          <li><a href="/docs/latest/getting-started/ConceptsAndArchitecture/">Pulsar concepts and architecture</a></li>
           
           
           
@@ -1585,8 +1585,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
@@ -1663,6 +1661,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/encryption/">Pulsar Encryption</a></li>
           
           
diff --git a/content/docs/latest/cookbooks/message-queue/index.html b/content/docs/latest/cookbooks/message-queue/index.html
index 3655ec9..3aed975 100644
--- a/content/docs/latest/cookbooks/message-queue/index.html
+++ b/content/docs/latest/cookbooks/message-queue/index.html
@@ -1071,9 +1071,9 @@
           
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
@@ -1301,8 +1301,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
@@ -1381,6 +1379,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1437,9 +1437,9 @@
           
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
@@ -1599,8 +1599,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/clients/Python/">The Pulsar Python client</a></li>
           
           
@@ -1673,6 +1671,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/cookbooks/message-queue/">Using Pulsar as a message queue</a></li>
           
           
@@ -2079,8 +2079,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
@@ -2157,6 +2155,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/encryption/">Pulsar Encryption</a></li>
           
           
diff --git a/content/docs/latest/cookbooks/tiered-storage/index.html b/content/docs/latest/cookbooks/tiered-storage/index.html
index 92718d6..e6a26c3 100644
--- a/content/docs/latest/cookbooks/tiered-storage/index.html
+++ b/content/docs/latest/cookbooks/tiered-storage/index.html
@@ -1005,8 +1005,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1125,6 +1123,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1189,9 +1189,9 @@
           
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
diff --git a/content/docs/latest/deployment/Kubernetes/index.html b/content/docs/latest/deployment/Kubernetes/index.html
index 868a18b..82e2140 100644
--- a/content/docs/latest/deployment/Kubernetes/index.html
+++ b/content/docs/latest/deployment/Kubernetes/index.html
@@ -1051,9 +1051,9 @@
           
           
           
+          <li><a href="/docs/latest/deployment/Kubernetes/">Deploying Pulsar on Kubernetes</a></li>
           
           
-          <li><a href="/docs/latest/deployment/Kubernetes/">Deploying Pulsar on Kubernetes</a></li>
           
           
           
@@ -1297,9 +1297,9 @@
           
           
           
+          <li><a href="/docs/latest/deployment/Kubernetes/">Deploying Pulsar on Kubernetes</a></li>
           
           
-          <li><a href="/docs/latest/deployment/Kubernetes/">Deploying Pulsar on Kubernetes</a></li>
           
           
           
diff --git a/content/docs/latest/deployment/aws-cluster/index.html b/content/docs/latest/deployment/aws-cluster/index.html
index 31cfc51..c0f626a 100644
--- a/content/docs/latest/deployment/aws-cluster/index.html
+++ b/content/docs/latest/deployment/aws-cluster/index.html
@@ -1005,8 +1005,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1125,6 +1123,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1189,9 +1189,9 @@
           
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
diff --git a/content/docs/latest/deployment/cluster/index.html b/content/docs/latest/deployment/cluster/index.html
index 0a12601..64813ca 100644
--- a/content/docs/latest/deployment/cluster/index.html
+++ b/content/docs/latest/deployment/cluster/index.html
@@ -1005,8 +1005,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1125,6 +1123,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1189,9 +1189,9 @@
           
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
diff --git a/content/docs/latest/deployment/instance/index.html b/content/docs/latest/deployment/instance/index.html
index e4d8219..cf29458 100644
--- a/content/docs/latest/deployment/instance/index.html
+++ b/content/docs/latest/deployment/instance/index.html
@@ -1005,8 +1005,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1125,6 +1123,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1189,9 +1189,9 @@
           
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
diff --git a/content/docs/latest/getting-started/ConceptsAndArchitecture/index.html b/content/docs/latest/getting-started/ConceptsAndArchitecture/index.html
index c4bf12b..c31a02a 100644
--- a/content/docs/latest/getting-started/ConceptsAndArchitecture/index.html
+++ b/content/docs/latest/getting-started/ConceptsAndArchitecture/index.html
@@ -1021,9 +1021,9 @@
           
           
           
+          <li><a href="/docs/latest/getting-started/ConceptsAndArchitecture/">Pulsar concepts and architecture</a></li>
           
           
-          <li><a href="/docs/latest/getting-started/ConceptsAndArchitecture/">Pulsar concepts and architecture</a></li>
           
           
           
@@ -1267,9 +1267,9 @@
           
           
           
+          <li><a href="/docs/latest/getting-started/ConceptsAndArchitecture/">Pulsar concepts and architecture</a></li>
           
           
-          <li><a href="/docs/latest/getting-started/ConceptsAndArchitecture/">Pulsar concepts and architecture</a></li>
           
           
           
diff --git a/content/docs/latest/getting-started/LocalCluster/index.html b/content/docs/latest/getting-started/LocalCluster/index.html
index 564bdd5..dcceda6 100644
--- a/content/docs/latest/getting-started/LocalCluster/index.html
+++ b/content/docs/latest/getting-started/LocalCluster/index.html
@@ -1057,9 +1057,9 @@
           
           
           
+          <li><a href="/docs/latest/getting-started/LocalCluster/">Setting up a local standalone cluster</a></li>
           
           
-          <li><a href="/docs/latest/getting-started/LocalCluster/">Setting up a local standalone cluster</a></li>
           
           
           
@@ -1305,9 +1305,9 @@
           
           
           
+          <li><a href="/docs/latest/getting-started/LocalCluster/">Setting up a local standalone cluster</a></li>
           
           
-          <li><a href="/docs/latest/getting-started/LocalCluster/">Setting up a local standalone cluster</a></li>
           
           
           
diff --git a/content/docs/latest/getting-started/Pulsar-2.0/index.html b/content/docs/latest/getting-started/Pulsar-2.0/index.html
index 45ec5ca..2018e47 100644
--- a/content/docs/latest/getting-started/Pulsar-2.0/index.html
+++ b/content/docs/latest/getting-started/Pulsar-2.0/index.html
@@ -1563,9 +1563,9 @@
           
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
diff --git a/content/docs/latest/getting-started/docker/index.html b/content/docs/latest/getting-started/docker/index.html
index 9bd32cd..d67525e 100644
--- a/content/docs/latest/getting-started/docker/index.html
+++ b/content/docs/latest/getting-started/docker/index.html
@@ -1057,9 +1057,9 @@
           
           
           
+          <li><a href="/docs/latest/getting-started/LocalCluster/">Setting up a local standalone cluster</a></li>
           
           
-          <li><a href="/docs/latest/getting-started/LocalCluster/">Setting up a local standalone cluster</a></li>
           
           
           
@@ -1305,9 +1305,9 @@
           
           
           
+          <li><a href="/docs/latest/getting-started/LocalCluster/">Setting up a local standalone cluster</a></li>
           
           
-          <li><a href="/docs/latest/getting-started/LocalCluster/">Setting up a local standalone cluster</a></li>
           
           
           
diff --git a/content/docs/latest/project/BinaryProtocol/index.html b/content/docs/latest/project/BinaryProtocol/index.html
index 3e28b29..5d74a12 100644
--- a/content/docs/latest/project/BinaryProtocol/index.html
+++ b/content/docs/latest/project/BinaryProtocol/index.html
@@ -1001,9 +1001,9 @@
           
           
           
+          <li><a href="/docs/latest/project/BinaryProtocol/">Pulsar binary protocol specification</a></li>
           
           
-          <li><a href="/docs/latest/project/BinaryProtocol/">Pulsar binary protocol specification</a></li>
           
           
           
@@ -1247,9 +1247,9 @@
           
           
           
+          <li><a href="/docs/latest/project/BinaryProtocol/">Pulsar binary protocol specification</a></li>
           
           
-          <li><a href="/docs/latest/project/BinaryProtocol/">Pulsar binary protocol specification</a></li>
           
           
           
diff --git a/content/docs/latest/project/CompileCpp/index.html b/content/docs/latest/project/CompileCpp/index.html
index bd1db5f..0b1376a 100644
--- a/content/docs/latest/project/CompileCpp/index.html
+++ b/content/docs/latest/project/CompileCpp/index.html
@@ -1005,8 +1005,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1021,9 +1019,9 @@
           
           
           
-          <li><a href="/docs/latest/project/CompileCpp/">Building Pulsar C++ client</a></li>
           
           
+          <li><a href="/docs/latest/project/CompileCpp/">Building Pulsar C++ client</a></li>
           
           
           
@@ -1157,6 +1155,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/clients/go/">The Pulsar Go client</a></li>
           
           
@@ -1287,9 +1287,9 @@
           
           
           
+          <li><a href="/docs/latest/clients/Cpp/">The Pulsar C++ client</a></li>
           
           
-          <li><a href="/docs/latest/clients/Cpp/">The Pulsar C++ client</a></li>
           
           
           
diff --git a/content/docs/latest/project/SimulationTools/index.html b/content/docs/latest/project/SimulationTools/index.html
index e601624..8857516 100644
--- a/content/docs/latest/project/SimulationTools/index.html
+++ b/content/docs/latest/project/SimulationTools/index.html
@@ -1099,9 +1099,9 @@
           
           
           
+          <li><a href="/docs/latest/project/SimulationTools/">Simulation tools</a></li>
           
           
-          <li><a href="/docs/latest/project/SimulationTools/">Simulation tools</a></li>
           
           
           
diff --git a/content/docs/latest/project/schema-storage/index.html b/content/docs/latest/project/schema-storage/index.html
index 333ed51..9d6b5fd 100644
--- a/content/docs/latest/project/schema-storage/index.html
+++ b/content/docs/latest/project/schema-storage/index.html
@@ -1045,9 +1045,9 @@
           
           
           
+          <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
-          <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
           
@@ -1293,9 +1293,9 @@
           
           
           
+          <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
-          <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
           
diff --git a/content/docs/latest/reference/CliTools/index.html b/content/docs/latest/reference/CliTools/index.html
index cc20bbd..6956c81 100644
--- a/content/docs/latest/reference/CliTools/index.html
+++ b/content/docs/latest/reference/CliTools/index.html
@@ -1005,8 +1005,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1125,6 +1123,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1189,9 +1189,9 @@
           
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
@@ -1271,9 +1271,9 @@
           
           
           
+          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
-          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
           
@@ -1439,9 +1439,9 @@
           
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
@@ -1519,8 +1519,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1535,9 +1533,9 @@
           
           
           
-          <li><a href="/docs/latest/project/CompileCpp/">Building Pulsar C++ client</a></li>
           
           
+          <li><a href="/docs/latest/project/CompileCpp/">Building Pulsar C++ client</a></li>
           
           
           
@@ -1671,6 +1669,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/clients/go/">The Pulsar Go client</a></li>
           
           
@@ -1775,9 +1775,9 @@
           
           
           
+          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
-          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
           
@@ -2021,9 +2021,9 @@
           
           
           
+          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
-          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
           
@@ -2267,9 +2267,9 @@
           
           
           
+          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
-          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
           
diff --git a/content/docs/latest/security/authorization/index.html b/content/docs/latest/security/authorization/index.html
index 755417d..45a42d9 100644
--- a/content/docs/latest/security/authorization/index.html
+++ b/content/docs/latest/security/authorization/index.html
@@ -1005,8 +1005,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1125,6 +1123,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1189,9 +1189,9 @@
           
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
@@ -2299,8 +2299,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
@@ -2379,6 +2377,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -2435,9 +2435,9 @@
           
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
@@ -2541,9 +2541,9 @@
           
           
           
+          <li><a href="/docs/latest/clients/Cpp/">The Pulsar C++ client</a></li>
           
           
-          <li><a href="/docs/latest/clients/Cpp/">The Pulsar C++ client</a></li>
           
           
           
diff --git a/content/docs/latest/security/encryption/index.html b/content/docs/latest/security/encryption/index.html
index 18ca402..a6132a3 100644
--- a/content/docs/latest/security/encryption/index.html
+++ b/content/docs/latest/security/encryption/index.html
@@ -1567,9 +1567,9 @@
           
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
@@ -1823,8 +1823,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
@@ -1901,6 +1899,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/encryption/">Pulsar Encryption</a></li>
           
           
diff --git a/content/docs/zh-CN/next/io-overview.html b/content/docs/zh-CN/next/io-overview.html
index 5b56140..5af43f3 100644
--- a/content/docs/zh-CN/next/io-overview.html
+++ b/content/docs/zh-CN/next/io-overview.html
@@ -75,7 +75,7 @@
 <tr><td><a href="https://kafka.apache.org">Kafka sink</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/kafka/src/main/java/org/apache/pulsar/io/kafka/KafkaStringSink.java"><code>org.apache.pulsar.io.kafka.KafkaSink</code></a></td><td><a href="/docs/zh-CN/next/io-kafka#sink">Documentation</a></td></tr>
 <tr><td><a href="https://aws.amazon.com/kinesis/">Kinesis sink</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/kinesis/src/main/java/org/apache/pulsar/io/kinesis/KinesisSink.java"><code>org.apache.pulsar.io.kinesis.KinesisSink</code></a></td><td><a href="/docs/zh-CN/next/io-kinesis#sink">Documentation</a></td></tr>
 <tr><td><a href="https://www.rabbitmq.com">RabbitMQ source</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/rabbitmq/src/main/java/org/apache/pulsar/io/rabbitmq/RabbitMQSource.java"><code>org.apache.pulsar.io.rabbitmq.RabbitMQSource</code></a></td><td><a href="/docs/zh-CN/next/io-rabbitmq#sink">Documentation</a></td></tr>
-<tr><td><a href="https://developer.twitter.com/en/docs">Twitter Firehose source</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/twitter/src/main/java/org/apache/pulsar/io/twitter/TwitterFireHose.java">org.apache.pulsar.io.twitter.TwitterFireHose</a></td><td><a href="/docs/zh-CN/next/io-twitter#source">Documentation</a></td></tr>
+<tr><td><a href="https://developer.twitter.com/en/docs">Twitter Firehose source</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/twitter/src/main/java/org/apache/pulsar/io/twitter/TwitterFireHose.java"><code>org.apache.pulsar.io.twitter.TwitterFireHose</code></a></td><td><a href="/docs/zh-CN/next/io-twitter#source">Documentation</a></td></tr>
 </tbody>
 </table>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/functions-metrics"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/next/io-quickstart"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#sources-and-sinks">Sources and sinks</a></li><li><a href="#working-with-connectors">Working with co [...]
diff --git a/content/docs/zh-CN/next/io-overview/index.html b/content/docs/zh-CN/next/io-overview/index.html
index 5b56140..5af43f3 100644
--- a/content/docs/zh-CN/next/io-overview/index.html
+++ b/content/docs/zh-CN/next/io-overview/index.html
@@ -75,7 +75,7 @@
 <tr><td><a href="https://kafka.apache.org">Kafka sink</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/kafka/src/main/java/org/apache/pulsar/io/kafka/KafkaStringSink.java"><code>org.apache.pulsar.io.kafka.KafkaSink</code></a></td><td><a href="/docs/zh-CN/next/io-kafka#sink">Documentation</a></td></tr>
 <tr><td><a href="https://aws.amazon.com/kinesis/">Kinesis sink</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/kinesis/src/main/java/org/apache/pulsar/io/kinesis/KinesisSink.java"><code>org.apache.pulsar.io.kinesis.KinesisSink</code></a></td><td><a href="/docs/zh-CN/next/io-kinesis#sink">Documentation</a></td></tr>
 <tr><td><a href="https://www.rabbitmq.com">RabbitMQ source</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/rabbitmq/src/main/java/org/apache/pulsar/io/rabbitmq/RabbitMQSource.java"><code>org.apache.pulsar.io.rabbitmq.RabbitMQSource</code></a></td><td><a href="/docs/zh-CN/next/io-rabbitmq#sink">Documentation</a></td></tr>
-<tr><td><a href="https://developer.twitter.com/en/docs">Twitter Firehose source</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/twitter/src/main/java/org/apache/pulsar/io/twitter/TwitterFireHose.java">org.apache.pulsar.io.twitter.TwitterFireHose</a></td><td><a href="/docs/zh-CN/next/io-twitter#source">Documentation</a></td></tr>
+<tr><td><a href="https://developer.twitter.com/en/docs">Twitter Firehose source</a></td><td><a href="https://github.com/apache/pulsar/blob/master/pulsar-io/twitter/src/main/java/org/apache/pulsar/io/twitter/TwitterFireHose.java"><code>org.apache.pulsar.io.twitter.TwitterFireHose</code></a></td><td><a href="/docs/zh-CN/next/io-twitter#source">Documentation</a></td></tr>
 </tbody>
 </table>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/functions-metrics"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/next/io-quickstart"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#sources-and-sinks">Sources and sinks</a></li><li><a href="#working-with-connectors">Working with co [...]
diff --git a/content/docs/zh-CN/next/security-tls-transport.html b/content/docs/zh-CN/next/security-tls-transport.html
index 0bffa63..7d21007 100644
--- a/content/docs/zh-CN/next/security-tls-transport.html
+++ b/content/docs/zh-CN/next/security-tls-transport.html
@@ -92,7 +92,7 @@ $ chmod 444 certs/ca.cert.pem
 <p>The following commands will ask you a few questions and then create the certificates. When asked for the common name, you should match the hostname of the broker. You could also use a wildcard to match a group of broker hostnames, for example <code>*.broker.usw.example.com</code>. This ensures that the same certificate can be reused on multiple machines.</p>
 <blockquote>
 <h4><a class="anchor" aria-hidden="true" id="tips"></a><a href="#tips" 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.09V6 [...]
-<p>Sometimes it is not possible or makes no sense to match the hostname, such as when the brokers are created with random hostnames, or you plan to connect to the hosts via their IP. In this case, the client should be configured to disable TLS hostname verification.</p>
+<p>Sometimes it is not possible or makes no sense to match the hostname, such as when the brokers are created with random hostnames, or you plan to connect to the hosts via their IP. In this case, the client should be configured to disable TLS hostname verification. For more details, see <a href="#hostname-verification">the host verification section in client configuration</a>.</p>
 </blockquote>
 <p>First generate the key.</p>
 <pre><code class="hljs css language-bash">$ openssl genrsa -out broker.key.pem 2048
@@ -137,6 +137,11 @@ $ chmod 444 certs/ca.cert.pem
 <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-2.09 [...]
 <p>When TLS transport encryption is enabled, you need to configure the client to use <code>https://</code> and port 8443 for the web service URL, and <code>pulsar+ssl://</code> and port 6651 for the broker service URL.</p>
 <p>As the server certificate you generated above doesn't belong to any of the default trust chains, you also need to either specify the path the <strong>trust cert</strong> (recommended), or tell the client to allow untrusted server certs.</p>
+<h4><a class="anchor" aria-hidden="true" id="hostname-verification"></a><a href="#hostname-verification" 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 [...]
+<p>Hostname verification is a TLS security feature whereby a client can refuse to connect to a server if the &quot;CommonName&quot; does not match the hostname to which it is connecting. By default, Pulsar clients disable hostname verification, as it requires that each broker has a DNS record and a unique cert.</p>
+<p>Moreover, as the administrator has full control of the certificate authority, it is unlikely that a bad actor would be able to pull off a man-in-the-middle attack. &quot;allowInsecureConnection&quot; allows the client to connect to servers whose cert has not been signed by an approved CA. The client disables it by default, and should always be disabled in production environments. As long as &quot;allowInsecureConnection&quot; is disabled, a man-in-the-middle attack would require that  [...]
+<p>One scenario where you may want to enable hostname verification is where you have multiple proxy nodes behind a VIP, and the VIP has a DNS record, for example, pulsar.mycompany.com. In this case, you can generate a TLS cert with pulsar.mycompany.com as the &quot;CommonName,&quot; and then enable hostname verification on the client.</p>
+<p>The examples below show hostname verification being disabled for the Java client, though you can be omit this as the client disables it by default. C++/python clients do now allow this to be configured at the moment.</p>
 <h3><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-2.09 [...]
 <p><a href="/docs/zh-CN/next/reference-cli-tools">Command-line tools</a> like <a href="reference-cli-tools#pulsar-admin"><code>pulsar-admin</code></a>, <a href="reference-cli-tools#pulsar-perf"><code>pulsar-perf</code></a>, and <a href="reference-cli-tools#pulsar-client"><code>pulsar-client</code></a> use the <code>conf/client.conf</code> config file in a Pulsar installation.</p>
 <p>You'll need to add the following parameters to that file to use TLS transport with Pulsar's CLI tools:</p>
@@ -145,6 +150,7 @@ $ chmod 444 certs/ca.cert.pem
 <span class="hljs-attr">useTls</span>=<span class="hljs-string">true</span>
 <span class="hljs-attr">tlsAllowInsecureConnection</span>=<span class="hljs-string">false</span>
 <span class="hljs-attr">tlsTrustCertsFilePath</span>=<span class="hljs-string">/path/to/ca.cert.pem</span>
+<span class="hljs-attr">tlsEnableHostnameVerification</span>=<span class="hljs-string">false</span>
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="java客户端"></a><a href="#java客户端" 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- [...]
 <pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> org.apache.pulsar.client.api.PulsarClient;
@@ -153,6 +159,8 @@ PulsarClient client = PulsarClient.builder()
     .serviceUrl(<span class="hljs-string">"pulsar+ssl://broker.example.com:6651/"</span>)
     .enableTls(<span class="hljs-keyword">true</span>)
     .tlsTrustCertsFilePath(<span class="hljs-string">"/path/to/ca.cert.pem"</span>)
+    .enableTlsHostnameVerification(<span class="hljs-keyword">false</span>) <span class="hljs-comment">// false by default, in any case</span>
+    .allowTlsInsecureConnection(<span class="hljs-keyword">false</span>) <span class="hljs-comment">// false by default, in any case</span>
     .build();
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="python客户端"></a><a href="#python客户端" 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.6 [...]
@@ -160,7 +168,7 @@ PulsarClient client = PulsarClient.builder()
 
 client = Client(<span class="hljs-string">"pulsar+ssl://broker.example.com:6651/"</span>,
                 tls_trust_certs_file_path=<span class="hljs-string">"/path/to/ca.cert.pem"</span>,
-                tls_allow_insecure_connection=<span class="hljs-keyword">False</span>)
+                tls_allow_insecure_connection=<span class="hljs-keyword">False</span>) // defaults to false <span class="hljs-keyword">from</span> v2<span class="hljs-number">.2</span><span class="hljs-number">.0</span> onwards
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="c-客户端"></a><a href="#c-客户端" 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.09 [...]
 <pre><code class="hljs css language-c++"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;pulsar/Client.h&gt;</span></span>
@@ -168,7 +176,7 @@ client = Client(<span class="hljs-string">"pulsar+ssl://broker.example.com:6651/
 pulsar::ClientConfiguration config;
 config.setUseTls(<span class="hljs-literal">true</span>);
 config.setTlsTrustCertsFilePath(<span class="hljs-string">"/path/to/ca.cert.pem"</span>);
-config.setTlsAllowInsecureConnection(<span class="hljs-literal">false</span>);
+config.setTlsAllowInsecureConnection(<span class="hljs-literal">false</span>); <span class="hljs-comment">// defaults to false from v2.2.0 onwards</span>
 
 pulsar::<span class="hljs-function">Client <span class="hljs-title">client</span><span class="hljs-params">(<span class="hljs-string">"pulsar+ssl://broker.example.com:6651/"</span>, config)</span></span>;
 </code></pre>
diff --git a/content/docs/zh-CN/next/security-tls-transport/index.html b/content/docs/zh-CN/next/security-tls-transport/index.html
index 0bffa63..7d21007 100644
--- a/content/docs/zh-CN/next/security-tls-transport/index.html
+++ b/content/docs/zh-CN/next/security-tls-transport/index.html
@@ -92,7 +92,7 @@ $ chmod 444 certs/ca.cert.pem
 <p>The following commands will ask you a few questions and then create the certificates. When asked for the common name, you should match the hostname of the broker. You could also use a wildcard to match a group of broker hostnames, for example <code>*.broker.usw.example.com</code>. This ensures that the same certificate can be reused on multiple machines.</p>
 <blockquote>
 <h4><a class="anchor" aria-hidden="true" id="tips"></a><a href="#tips" 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.09V6 [...]
-<p>Sometimes it is not possible or makes no sense to match the hostname, such as when the brokers are created with random hostnames, or you plan to connect to the hosts via their IP. In this case, the client should be configured to disable TLS hostname verification.</p>
+<p>Sometimes it is not possible or makes no sense to match the hostname, such as when the brokers are created with random hostnames, or you plan to connect to the hosts via their IP. In this case, the client should be configured to disable TLS hostname verification. For more details, see <a href="#hostname-verification">the host verification section in client configuration</a>.</p>
 </blockquote>
 <p>First generate the key.</p>
 <pre><code class="hljs css language-bash">$ openssl genrsa -out broker.key.pem 2048
@@ -137,6 +137,11 @@ $ chmod 444 certs/ca.cert.pem
 <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-2.09 [...]
 <p>When TLS transport encryption is enabled, you need to configure the client to use <code>https://</code> and port 8443 for the web service URL, and <code>pulsar+ssl://</code> and port 6651 for the broker service URL.</p>
 <p>As the server certificate you generated above doesn't belong to any of the default trust chains, you also need to either specify the path the <strong>trust cert</strong> (recommended), or tell the client to allow untrusted server certs.</p>
+<h4><a class="anchor" aria-hidden="true" id="hostname-verification"></a><a href="#hostname-verification" 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 [...]
+<p>Hostname verification is a TLS security feature whereby a client can refuse to connect to a server if the &quot;CommonName&quot; does not match the hostname to which it is connecting. By default, Pulsar clients disable hostname verification, as it requires that each broker has a DNS record and a unique cert.</p>
+<p>Moreover, as the administrator has full control of the certificate authority, it is unlikely that a bad actor would be able to pull off a man-in-the-middle attack. &quot;allowInsecureConnection&quot; allows the client to connect to servers whose cert has not been signed by an approved CA. The client disables it by default, and should always be disabled in production environments. As long as &quot;allowInsecureConnection&quot; is disabled, a man-in-the-middle attack would require that  [...]
+<p>One scenario where you may want to enable hostname verification is where you have multiple proxy nodes behind a VIP, and the VIP has a DNS record, for example, pulsar.mycompany.com. In this case, you can generate a TLS cert with pulsar.mycompany.com as the &quot;CommonName,&quot; and then enable hostname verification on the client.</p>
+<p>The examples below show hostname verification being disabled for the Java client, though you can be omit this as the client disables it by default. C++/python clients do now allow this to be configured at the moment.</p>
 <h3><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-2.09 [...]
 <p><a href="/docs/zh-CN/next/reference-cli-tools">Command-line tools</a> like <a href="reference-cli-tools#pulsar-admin"><code>pulsar-admin</code></a>, <a href="reference-cli-tools#pulsar-perf"><code>pulsar-perf</code></a>, and <a href="reference-cli-tools#pulsar-client"><code>pulsar-client</code></a> use the <code>conf/client.conf</code> config file in a Pulsar installation.</p>
 <p>You'll need to add the following parameters to that file to use TLS transport with Pulsar's CLI tools:</p>
@@ -145,6 +150,7 @@ $ chmod 444 certs/ca.cert.pem
 <span class="hljs-attr">useTls</span>=<span class="hljs-string">true</span>
 <span class="hljs-attr">tlsAllowInsecureConnection</span>=<span class="hljs-string">false</span>
 <span class="hljs-attr">tlsTrustCertsFilePath</span>=<span class="hljs-string">/path/to/ca.cert.pem</span>
+<span class="hljs-attr">tlsEnableHostnameVerification</span>=<span class="hljs-string">false</span>
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="java客户端"></a><a href="#java客户端" 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- [...]
 <pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> org.apache.pulsar.client.api.PulsarClient;
@@ -153,6 +159,8 @@ PulsarClient client = PulsarClient.builder()
     .serviceUrl(<span class="hljs-string">"pulsar+ssl://broker.example.com:6651/"</span>)
     .enableTls(<span class="hljs-keyword">true</span>)
     .tlsTrustCertsFilePath(<span class="hljs-string">"/path/to/ca.cert.pem"</span>)
+    .enableTlsHostnameVerification(<span class="hljs-keyword">false</span>) <span class="hljs-comment">// false by default, in any case</span>
+    .allowTlsInsecureConnection(<span class="hljs-keyword">false</span>) <span class="hljs-comment">// false by default, in any case</span>
     .build();
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="python客户端"></a><a href="#python客户端" 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.6 [...]
@@ -160,7 +168,7 @@ PulsarClient client = PulsarClient.builder()
 
 client = Client(<span class="hljs-string">"pulsar+ssl://broker.example.com:6651/"</span>,
                 tls_trust_certs_file_path=<span class="hljs-string">"/path/to/ca.cert.pem"</span>,
-                tls_allow_insecure_connection=<span class="hljs-keyword">False</span>)
+                tls_allow_insecure_connection=<span class="hljs-keyword">False</span>) // defaults to false <span class="hljs-keyword">from</span> v2<span class="hljs-number">.2</span><span class="hljs-number">.0</span> onwards
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="c-客户端"></a><a href="#c-客户端" 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.09 [...]
 <pre><code class="hljs css language-c++"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;pulsar/Client.h&gt;</span></span>
@@ -168,7 +176,7 @@ client = Client(<span class="hljs-string">"pulsar+ssl://broker.example.com:6651/
 pulsar::ClientConfiguration config;
 config.setUseTls(<span class="hljs-literal">true</span>);
 config.setTlsTrustCertsFilePath(<span class="hljs-string">"/path/to/ca.cert.pem"</span>);
-config.setTlsAllowInsecureConnection(<span class="hljs-literal">false</span>);
+config.setTlsAllowInsecureConnection(<span class="hljs-literal">false</span>); <span class="hljs-comment">// defaults to false from v2.2.0 onwards</span>
 
 pulsar::<span class="hljs-function">Client <span class="hljs-title">client</span><span class="hljs-params">(<span class="hljs-string">"pulsar+ssl://broker.example.com:6651/"</span>, config)</span></span>;
 </code></pre>
diff --git a/content/ja/adaptors/PulsarSpark/index.html b/content/ja/adaptors/PulsarSpark/index.html
index 34dd969..51c3895 100644
--- a/content/ja/adaptors/PulsarSpark/index.html
+++ b/content/ja/adaptors/PulsarSpark/index.html
@@ -762,9 +762,9 @@
           
           
           
-          <li><a href="/ja/adaptors/PulsarSpark/">Spark Streaming Pulsar Receiver</a></li>
           
           
+          <li><a href="/ja/adaptors/PulsarSpark/">Spark Streaming Pulsar Receiver</a></li>
           
           
           
@@ -1008,9 +1008,9 @@
           
           
           
-          <li><a href="/ja/adaptors/PulsarSpark/">Spark Streaming Pulsar Receiver</a></li>
           
           
+          <li><a href="/ja/adaptors/PulsarSpark/">Spark Streaming Pulsar Receiver</a></li>
           
           
           
@@ -1224,6 +1224,8 @@
           
           
           
+          
+          
           <li><a href="/ja/clients/Java/">Pulsar Javaクライアント</a></li>
           
           
@@ -1385,8 +1387,6 @@
           
           
           
-          
-          
         </ul>
       </div>
     </div>
diff --git a/content/ja/adaptors/PulsarStorm/index.html b/content/ja/adaptors/PulsarStorm/index.html
index d24d155..8d8ca73 100644
--- a/content/ja/adaptors/PulsarStorm/index.html
+++ b/content/ja/adaptors/PulsarStorm/index.html
@@ -766,9 +766,9 @@
           
           
           
-          <li><a href="/ja/adaptors/PulsarStorm/">Apache StormのためのPulsarアダプタ</a></li>
           
           
+          <li><a href="/ja/adaptors/PulsarStorm/">Apache StormのためのPulsarアダプタ</a></li>
           
           
           
@@ -978,6 +978,8 @@
           
           
           
+          
+          
           <li><a href="/ja/clients/Java/">Pulsar Javaクライアント</a></li>
           
           
@@ -1139,8 +1141,6 @@
           
           
           
-          
-          
         </ul>
       </div>
     </div>
diff --git a/content/ja/admin/AdminInterface/index.html b/content/ja/admin/AdminInterface/index.html
index 5a8fbe4..9a1d3fa 100644
--- a/content/ja/admin/AdminInterface/index.html
+++ b/content/ja/admin/AdminInterface/index.html
@@ -692,9 +692,9 @@
           
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
@@ -762,9 +762,9 @@
           
           
           
-          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
+          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
           
@@ -792,9 +792,9 @@
           
           
           
-          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
+          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
           
@@ -950,9 +950,9 @@
           
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
@@ -1486,6 +1486,8 @@
           
           
           
+          
+          
           <li><a href="/ja/clients/Java/">Pulsar Javaクライアント</a></li>
           
           
@@ -1647,8 +1649,6 @@
           
           
           
-          
-          
         </ul>
       </div>
     </div>
diff --git a/content/ja/admin/Authz/index.html b/content/ja/admin/Authz/index.html
index 910e23f..f31d19b 100644
--- a/content/ja/admin/Authz/index.html
+++ b/content/ja/admin/Authz/index.html
@@ -692,9 +692,9 @@
           
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
@@ -762,9 +762,9 @@
           
           
           
-          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
+          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
           
@@ -792,9 +792,9 @@
           
           
           
-          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
+          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
           
@@ -1976,6 +1976,8 @@
           
           
           
+          
+          
           <li><a href="/ja/clients/Java/">Pulsar Javaクライアント</a></li>
           
           
@@ -2137,8 +2139,6 @@
           
           
           
-          
-          
         </ul>
       </div>
     </div>
@@ -2212,9 +2212,9 @@
           
           
           
-          <li><a href="/ja/clients/Cpp/">Pulsar C++クライアント</a></li>
           
           
+          <li><a href="/ja/clients/Cpp/">Pulsar C++クライアント</a></li>
           
           
           
diff --git a/content/ja/admin/ClustersBrokers/index.html b/content/ja/admin/ClustersBrokers/index.html
index ad4bdb4..0c37b98 100644
--- a/content/ja/admin/ClustersBrokers/index.html
+++ b/content/ja/admin/ClustersBrokers/index.html
@@ -692,9 +692,9 @@
           
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
@@ -762,9 +762,9 @@
           
           
           
-          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
+          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
           
@@ -792,9 +792,9 @@
           
           
           
-          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
+          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
           
diff --git a/content/ja/admin/PropertiesNamespaces/index.html b/content/ja/admin/PropertiesNamespaces/index.html
index 807551e..050393b 100644
--- a/content/ja/admin/PropertiesNamespaces/index.html
+++ b/content/ja/admin/PropertiesNamespaces/index.html
@@ -1184,9 +1184,9 @@
           
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
@@ -1254,9 +1254,9 @@
           
           
           
-          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
+          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
           
@@ -1284,9 +1284,9 @@
           
           
           
-          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
+          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
           
diff --git a/content/ja/advanced/PartitionedTopics/index.html b/content/ja/advanced/PartitionedTopics/index.html
index 4297a12..3ab5407 100644
--- a/content/ja/advanced/PartitionedTopics/index.html
+++ b/content/ja/advanced/PartitionedTopics/index.html
@@ -752,9 +752,9 @@
           
           
           
-          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
+          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
           
@@ -998,9 +998,9 @@
           
           
           
-          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
+          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
           
@@ -1184,9 +1184,9 @@
           
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
@@ -1254,9 +1254,9 @@
           
           
           
-          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
+          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
           
@@ -1284,9 +1284,9 @@
           
           
           
-          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
+          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
           
@@ -1504,9 +1504,9 @@
           
           
           
-          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
+          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
           
diff --git a/content/ja/advanced/RetentionExpiry/index.html b/content/ja/advanced/RetentionExpiry/index.html
index fd6137c..eb7d4b0 100644
--- a/content/ja/advanced/RetentionExpiry/index.html
+++ b/content/ja/advanced/RetentionExpiry/index.html
@@ -692,9 +692,9 @@
           
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
@@ -762,9 +762,9 @@
           
           
           
-          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
+          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
           
@@ -792,9 +792,9 @@
           
           
           
-          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
+          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
           
@@ -1038,9 +1038,9 @@
           
           
           
-          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
+          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
           
@@ -1284,9 +1284,9 @@
           
           
           
-          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
+          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
           
@@ -1530,9 +1530,9 @@
           
           
           
-          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
+          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
           
diff --git a/content/ja/clients/Cpp/index.html b/content/ja/clients/Cpp/index.html
index e6411a1..e51d5eb 100644
--- a/content/ja/clients/Cpp/index.html
+++ b/content/ja/clients/Cpp/index.html
@@ -688,6 +688,8 @@
           
           
           
+          
+          
           <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
@@ -891,8 +893,6 @@
           
           
           
-          
-          
         </ul>
       </div>
     </div>
@@ -966,9 +966,9 @@
           
           
           
-          <li><a href="/ja/clients/Cpp/">Pulsar C++クライアント</a></li>
           
           
+          <li><a href="/ja/clients/Cpp/">Pulsar C++クライアント</a></li>
           
           
           
diff --git a/content/ja/clients/Java/index.html b/content/ja/clients/Java/index.html
index e543182..2a626c7 100644
--- a/content/ja/clients/Java/index.html
+++ b/content/ja/clients/Java/index.html
@@ -688,6 +688,8 @@
           
           
           
+          
+          
           <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
@@ -891,8 +893,6 @@
           
           
           
-          
-          
         </ul>
       </div>
     </div>
@@ -984,6 +984,8 @@
           
           
           
+          
+          
           <li><a href="/ja/clients/Java/">Pulsar Javaクライアント</a></li>
           
           
@@ -1145,8 +1147,6 @@
           
           
           
-          
-          
         </ul>
       </div>
     </div>
diff --git a/content/ja/clients/Python/index.html b/content/ja/clients/Python/index.html
index ed49516..b937ecf 100644
--- a/content/ja/clients/Python/index.html
+++ b/content/ja/clients/Python/index.html
@@ -688,6 +688,8 @@
           
           
           
+          
+          
           <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
@@ -891,8 +893,6 @@
           
           
           
-          
-          
         </ul>
       </div>
     </div>
@@ -1022,9 +1022,9 @@
           
           
           
-          <li><a href="/ja/clients/Python/">Pulsar Pythonクライアント</a></li>
           
           
+          <li><a href="/ja/clients/Python/">Pulsar Pythonクライアント</a></li>
           
           
           
@@ -1044,9 +1044,9 @@
           
           
           
-          <li><a href="/ja/clients/WebSocket/">PulsarにおけるWebSocket API</a></li>
           
           
+          <li><a href="/ja/clients/WebSocket/">PulsarにおけるWebSocket API</a></li>
           
           
           
diff --git a/content/ja/clients/WebSocket/index.html b/content/ja/clients/WebSocket/index.html
index b7b7730..ee0d865 100644
--- a/content/ja/clients/WebSocket/index.html
+++ b/content/ja/clients/WebSocket/index.html
@@ -790,9 +790,9 @@
           
           
           
-          <li><a href="/ja/clients/WebSocket/">PulsarにおけるWebSocket API</a></li>
           
           
+          <li><a href="/ja/clients/WebSocket/">PulsarにおけるWebSocket API</a></li>
           
           
           
@@ -1036,9 +1036,9 @@
           
           
           
-          <li><a href="/ja/clients/WebSocket/">PulsarにおけるWebSocket API</a></li>
           
           
+          <li><a href="/ja/clients/WebSocket/">PulsarにおけるWebSocket API</a></li>
           
           
           
@@ -1262,9 +1262,9 @@
           
           
           
-          <li><a href="/ja/clients/Python/">Pulsar Pythonクライアント</a></li>
           
           
+          <li><a href="/ja/clients/Python/">Pulsar Pythonクライアント</a></li>
           
           
           
@@ -1284,9 +1284,9 @@
           
           
           
-          <li><a href="/ja/clients/WebSocket/">PulsarにおけるWebSocket API</a></li>
           
           
+          <li><a href="/ja/clients/WebSocket/">PulsarにおけるWebSocket API</a></li>
           
           
           
diff --git a/content/ja/deployment/InstanceSetup/index.html b/content/ja/deployment/InstanceSetup/index.html
index 6499654..d12999b 100644
--- a/content/ja/deployment/InstanceSetup/index.html
+++ b/content/ja/deployment/InstanceSetup/index.html
@@ -692,9 +692,9 @@
           
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
@@ -762,9 +762,9 @@
           
           
           
-          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
+          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
           
@@ -792,9 +792,9 @@
           
           
           
-          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
+          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
           
diff --git a/content/ja/deployment/Kubernetes/index.html b/content/ja/deployment/Kubernetes/index.html
index dd736d4..4dd17d9 100644
--- a/content/ja/deployment/Kubernetes/index.html
+++ b/content/ja/deployment/Kubernetes/index.html
@@ -734,9 +734,9 @@
           
           
           
-          <li><a href="/ja/deployment/Kubernetes/">Kubernetes上でのPulsarのデプロイ</a></li>
           
           
+          <li><a href="/ja/deployment/Kubernetes/">Kubernetes上でのPulsarのデプロイ</a></li>
           
           
           
@@ -980,9 +980,9 @@
           
           
           
-          <li><a href="/ja/deployment/Kubernetes/">Kubernetes上でのPulsarのデプロイ</a></li>
           
           
+          <li><a href="/ja/deployment/Kubernetes/">Kubernetes上でのPulsarのデプロイ</a></li>
           
           
           
diff --git a/content/ja/getting-started/ConceptsAndArchitecture/index.html b/content/ja/getting-started/ConceptsAndArchitecture/index.html
index 6c57f6a..0efaab5 100644
--- a/content/ja/getting-started/ConceptsAndArchitecture/index.html
+++ b/content/ja/getting-started/ConceptsAndArchitecture/index.html
@@ -704,9 +704,9 @@
           
           
           
-          <li><a href="/ja/getting-started/ConceptsAndArchitecture/">Pulsarのコンセプトとアーキテクチャ</a></li>
           
           
+          <li><a href="/ja/getting-started/ConceptsAndArchitecture/">Pulsarのコンセプトとアーキテクチャ</a></li>
           
           
           
diff --git a/content/ja/getting-started/LocalCluster/index.html b/content/ja/getting-started/LocalCluster/index.html
index f3a8dca..bcf9413 100644
--- a/content/ja/getting-started/LocalCluster/index.html
+++ b/content/ja/getting-started/LocalCluster/index.html
@@ -740,9 +740,9 @@
           
           
           
-          <li><a href="/ja/getting-started/LocalCluster/">ローカルスタンドアローンクラスタのセットアップ</a></li>
           
           
+          <li><a href="/ja/getting-started/LocalCluster/">ローカルスタンドアローンクラスタのセットアップ</a></li>
           
           
           
@@ -986,9 +986,9 @@
           
           
           
-          <li><a href="/ja/getting-started/LocalCluster/">ローカルスタンドアローンクラスタのセットアップ</a></li>
           
           
+          <li><a href="/ja/getting-started/LocalCluster/">ローカルスタンドアローンクラスタのセットアップ</a></li>
           
           
           
diff --git a/content/ja/project/BinaryProtocol/index.html b/content/ja/project/BinaryProtocol/index.html
index 642f8fd..f595218 100644
--- a/content/ja/project/BinaryProtocol/index.html
+++ b/content/ja/project/BinaryProtocol/index.html
@@ -684,9 +684,9 @@
           
           
           
-          <li><a href="/ja/project/BinaryProtocol/">Pulsarのバイナリプロトコルの仕様</a></li>
           
           
+          <li><a href="/ja/project/BinaryProtocol/">Pulsarのバイナリプロトコルの仕様</a></li>
           
           
           
@@ -930,9 +930,9 @@
           
           
           
-          <li><a href="/ja/project/BinaryProtocol/">Pulsarのバイナリプロトコルの仕様</a></li>
           
           
+          <li><a href="/ja/project/BinaryProtocol/">Pulsarのバイナリプロトコルの仕様</a></li>
           
           
           
diff --git a/content/ja/project/SimulationTools/index.html b/content/ja/project/SimulationTools/index.html
index e5a28bb..b9b8152 100644
--- a/content/ja/project/SimulationTools/index.html
+++ b/content/ja/project/SimulationTools/index.html
@@ -782,9 +782,9 @@
           
           
           
-          <li><a href="/ja/project/SimulationTools/">シミュレーションツール</a></li>
           
           
+          <li><a href="/ja/project/SimulationTools/">シミュレーションツール</a></li>
           
           
           
diff --git a/content/ja/reference/CliTools/index.html b/content/ja/reference/CliTools/index.html
index eb25626..97c8e05 100644
--- a/content/ja/reference/CliTools/index.html
+++ b/content/ja/reference/CliTools/index.html
@@ -692,9 +692,9 @@
           
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
@@ -762,9 +762,9 @@
           
           
           
-          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
+          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
           
@@ -792,9 +792,9 @@
           
           
           
-          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
+          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
           
@@ -950,9 +950,9 @@
           
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
@@ -1196,6 +1196,8 @@
           
           
           
+          
+          
           <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
@@ -1399,8 +1401,6 @@
           
           
           
-          
-          
         </ul>
       </div>
     </div>
@@ -1448,9 +1448,9 @@
           
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
@@ -1694,9 +1694,9 @@
           
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
@@ -1940,9 +1940,9 @@
           
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
diff --git a/content/swagger/swagger.json b/content/swagger/swagger.json
index 73826af..5fa8449 100644
--- a/content/swagger/swagger.json
+++ b/content/swagger/swagger.json
@@ -3841,7 +3841,7 @@
           "200" : {
             "description" : "successful operation",
             "schema" : {
-              "$ref" : "#/definitions/TopicStats"
+              "$ref" : "#/definitions/NonPersistentTopicStats"
             }
           },
           "403" : {
@@ -6467,10 +6467,10 @@
             "type" : "string"
           }
         },
-        "clientVersion" : {
+        "connectedSince" : {
           "type" : "string"
         },
-        "connectedSince" : {
+        "clientVersion" : {
           "type" : "string"
         },
         "address" : {
@@ -6790,41 +6790,41 @@
           "type" : "number",
           "format" : "double"
         },
-        "cpu" : {
-          "$ref" : "#/definitions/ResourceUsage"
-        },
-        "directMemory" : {
-          "$ref" : "#/definitions/ResourceUsage"
+        "msgThroughputIn" : {
+          "type" : "number",
+          "format" : "double"
         },
         "underLoaded" : {
           "type" : "boolean"
         },
-        "overLoaded" : {
-          "type" : "boolean"
-        },
         "loadReportType" : {
           "type" : "string"
         },
-        "bandwidthIn" : {
+        "cpu" : {
           "$ref" : "#/definitions/ResourceUsage"
         },
-        "bandwidthOut" : {
+        "memory" : {
           "$ref" : "#/definitions/ResourceUsage"
         },
-        "memory" : {
+        "directMemory" : {
+          "$ref" : "#/definitions/ResourceUsage"
+        },
+        "bandwidthIn" : {
+          "$ref" : "#/definitions/ResourceUsage"
+        },
+        "bandwidthOut" : {
           "$ref" : "#/definitions/ResourceUsage"
         },
         "lastUpdate" : {
           "type" : "integer",
           "format" : "int64"
         },
-        "msgThroughputIn" : {
-          "type" : "number",
-          "format" : "double"
-        },
         "msgThroughputOut" : {
           "type" : "number",
           "format" : "double"
+        },
+        "overLoaded" : {
+          "type" : "boolean"
         }
       }
     },
@@ -6987,10 +6987,10 @@
         "producerName" : {
           "type" : "string"
         },
-        "clientVersion" : {
+        "connectedSince" : {
           "type" : "string"
         },
-        "connectedSince" : {
+        "clientVersion" : {
           "type" : "string"
         },
         "address" : {
@@ -7695,10 +7695,10 @@
         "producerName" : {
           "type" : "string"
         },
-        "clientVersion" : {
+        "connectedSince" : {
           "type" : "string"
         },
-        "connectedSince" : {
+        "clientVersion" : {
           "type" : "string"
         },
         "address" : {
@@ -7757,15 +7757,15 @@
     "ResourceDescription" : {
       "type" : "object",
       "properties" : {
+        "usagePct" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
         "resourceUsage" : {
           "type" : "object",
           "additionalProperties" : {
             "$ref" : "#/definitions/ResourceUsage"
           }
-        },
-        "usagePct" : {
-          "type" : "integer",
-          "format" : "int32"
         }
       }
     },
@@ -7800,11 +7800,11 @@
     "ResourceUnit" : {
       "type" : "object",
       "properties" : {
-        "availableResource" : {
-          "$ref" : "#/definitions/ResourceDescription"
-        },
         "resourceId" : {
           "type" : "string"
+        },
+        "availableResource" : {
+          "$ref" : "#/definitions/ResourceDescription"
         }
       }
     },